@import"https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap";:root{--bg: #f3f7f6;--panel: rgba(255, 255, 255, .9);--panel-strong: rgba(255, 255, 255, .98);--surface: #ffffff;--surface-soft: #f4fbf9;--surface-2: rgba(255, 255, 255, .72);--text: #112034;--muted: #667790;--primary: #0f766e;--primary-soft: #d8fbf5;--danger: #d6455d;--success: #23895f;--border: #dce8e5;--ring: rgba(15, 118, 110, .16);--shadow-soft: 0 10px 30px rgba(23, 43, 58, .04);--navbar-bg: rgba(255, 255, 255, .72);--navbar-border: rgba(220, 232, 229, .8);--nav-surface: rgba(255, 255, 255, .95);--nav-link: #56707f;--nav-link-hover: #edf4f2;--chip-bg: #ffffff;--field-bg: #ffffff;--secondary-bg: #ebf1f0;--secondary-text: #243748;--page-glow-a: #d7f8f4;--page-glow-b: #e4f0ff;--chart-track: #eaf3f2}:root[data-theme=dark]{--bg: #07131f;--panel: rgba(10, 25, 39, .9);--panel-strong: rgba(10, 25, 39, .98);--surface: #102334;--surface-soft: #132c3f;--surface-2: rgba(16, 35, 52, .84);--text: #edf7ff;--muted: #93adc4;--primary: #4fd3c4;--primary-soft: rgba(79, 211, 196, .15);--danger: #ff7c95;--success: #59d49c;--border: rgba(151, 182, 205, .18);--ring: rgba(79, 211, 196, .2);--shadow-soft: 0 18px 34px rgba(0, 0, 0, .24);--navbar-bg: rgba(7, 19, 31, .84);--navbar-border: rgba(151, 182, 205, .12);--nav-surface: rgba(16, 35, 52, .88);--nav-link: #aac0d2;--nav-link-hover: rgba(79, 211, 196, .1);--chip-bg: #0d1f30;--field-bg: #102334;--secondary-bg: #163249;--secondary-text: #edf7ff;--page-glow-a: rgba(17, 92, 103, .34);--page-glow-b: rgba(48, 87, 143, .32);--chart-track: rgba(151, 182, 205, .22)}*{box-sizing:border-box}html,body,#root{width:100%;max-width:100%}body{margin:0;font-family:Plus Jakarta Sans,sans-serif;color:var(--text);background:radial-gradient(circle at 5% 0%,var(--page-glow-a) 0%,transparent 34%),radial-gradient(circle at 100% 0%,var(--page-glow-b) 0%,transparent 28%),var(--bg);transition:background .25s ease,color .25s ease}h1,h2,h3,h4{margin:0}h2{font-size:29px;letter-spacing:-.03em}label{font-size:13px;font-weight:600;color:var(--muted)}input,select,button,textarea{font-family:inherit}input,select,textarea{width:100%;border:1px solid var(--border);border-radius:12px;padding:11px 12px;font-size:14px;color:var(--text);background:var(--field-bg);transition:box-shadow .2s,border-color .2s}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 4px var(--ring)}.app-shell{min-height:100vh;width:100%;min-width:0}.header-layout{display:flex;flex-direction:column;min-width:0}.navbar{position:sticky;top:0;z-index:400;width:100%;min-width:0;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 28px;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:var(--navbar-bg);border-bottom:1px solid var(--navbar-border);box-shadow:0 12px 28px #030f1b14;overflow:visible}.navbar.modern-header{isolation:auto}.navbar.drawer-open{z-index:1310}.navbar-head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex:0 1 auto;flex-shrink:0;min-width:0}.brand-wrap{display:flex;align-items:center;gap:10px;position:relative;min-width:0;isolation:isolate;overflow:hidden;border-radius:14px}.brand-wrap>div{min-width:0;position:relative;z-index:2}.brand-logo-shell{width:32px;height:32px;flex:0 0 32px;position:relative;overflow:hidden;border-radius:8px;z-index:2}.brand-logo{width:100%;height:100%;object-fit:contain;border-radius:inherit;box-shadow:0 8px 18px #0f172a1f;display:block}.brand-wrap:after{content:"";position:absolute;top:-18%;right:-8%;bottom:-18%;left:-8%;background:linear-gradient(110deg,#fff0 42%,#ffffff1a 47%,#ffffff6b,#ffffff1a 53%,#fff0 60%);transform:translate(-120%) skew(-18deg);animation:brandGlassSweep 5s ease-in-out infinite;pointer-events:none;mix-blend-mode:screen;z-index:3}.navbar-title{font-size:clamp(18px,2.1vw,20px);font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;letter-spacing:-.02em;transition:transform .45s ease,letter-spacing .45s ease,text-shadow .45s ease}.brand-subtitle{margin-top:2px;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@keyframes brandGlassSweep{0%{transform:translate(-120%) skew(-18deg);opacity:0}72%{transform:translate(-120%) skew(-18deg);opacity:0}80%{opacity:.92}88%{transform:translate(120%) skew(-18deg);opacity:.92}to{transform:translate(120%) skew(-18deg);opacity:0}}.navbar-mobile-toggle{display:none;width:44px;height:44px;border-radius:14px;border:1px solid var(--border);background:var(--surface);color:var(--text);padding:0;cursor:pointer;box-shadow:var(--shadow-soft)}.navbar-mobile-toggle span{display:block;width:18px;height:2px;margin:4px auto;border-radius:999px;background:currentColor;transition:transform .18s ease,opacity .18s ease}.navbar-mobile-toggle.open span:nth-child(1){transform:translateY(6px) rotate(45deg)}.navbar-mobile-toggle.open span:nth-child(2){opacity:0}.navbar-mobile-toggle.open span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}.navbar-panel{margin-left:auto;display:flex;align-items:center;justify-content:flex-end;flex:1 1 auto;flex-wrap:wrap;gap:18px;min-width:0}.navbar-drawer-backdrop,.navbar-drawer-shell{display:none}.top-nav{display:flex;align-items:center;flex:1 1 auto;flex-wrap:wrap;gap:6px;background:var(--nav-surface);border:1px solid var(--border);border-radius:16px;padding:6px;box-shadow:inset 0 1px #ffffff0f;min-width:0}.top-nav-link{text-decoration:none;color:var(--nav-link);padding:8px 12px;border-radius:10px;font-weight:700;font-size:13px;white-space:normal;transition:all .16s ease}.top-nav-group{position:relative;padding-bottom:8px;margin-bottom:-8px}.top-nav-trigger{border:0;background:transparent;color:var(--nav-link);padding:8px 12px;border-radius:10px;font-weight:700;font-size:13px;display:inline-flex;align-items:center;gap:8px;cursor:pointer;transition:all .16s ease}.top-nav-trigger svg{width:14px;height:14px;transition:transform .16s ease}.top-nav-group.open .top-nav-trigger svg{transform:rotate(180deg)}.top-nav-link:hover{color:var(--text);background:var(--nav-link-hover)}.top-nav-link.active,.top-nav-trigger:hover,.top-nav-trigger.active,.top-nav-group.open .top-nav-trigger{color:var(--primary);background:var(--primary-soft)}.top-nav-dropdown{position:absolute;top:calc(100% + 2px);left:0;min-width:188px;display:none;gap:4px;padding:8px;border-radius:14px;border:1px solid var(--border);background:var(--panel-strong);box-shadow:var(--shadow-soft);z-index:30}.top-nav-group.open .top-nav-dropdown{display:grid}.top-nav-dropdown-link{text-decoration:none;color:var(--nav-link);padding:9px 12px;border-radius:10px;font-weight:700;font-size:13px;transition:all .16s ease}.top-nav-dropdown-link:hover{color:var(--text);background:var(--nav-link-hover)}.top-nav-dropdown-link.active{color:var(--primary);background:var(--primary-soft)}.navbar-actions{display:flex;align-items:center;justify-content:flex-end;flex:0 1 auto;flex-wrap:wrap;gap:10px;min-width:0}.language-control{display:flex;align-items:center;gap:8px;flex-wrap:nowrap;min-width:0}.control-label{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.control-label.inline{margin-right:2px}.header-control-strip{display:flex;align-items:center;flex-wrap:wrap;gap:10px;max-width:100%;min-width:0;padding:8px;border-radius:18px;border:1px solid var(--border);background:linear-gradient(135deg,var(--surface) 0%,var(--surface-soft) 100%);box-shadow:var(--shadow-soft)}.control-tooltip-wrap{position:relative;display:inline-flex}.control-tooltip-copy{position:absolute;right:0;top:calc(100% + 12px);transform:translateY(-4px);width:max-content;max-width:min(180px,calc(100vw - 32px));min-width:0;padding:8px 10px;border-radius:12px;background:#081a27f0;color:#f6fbff;font-size:12px;line-height:1.35;white-space:normal;box-shadow:0 14px 32px #081a273d;opacity:0;pointer-events:none;transition:opacity .16s ease,transform .16s ease;z-index:40}.control-tooltip-wrap:hover .control-tooltip-copy{opacity:1;transform:translateY(0)}.notification-link{width:42px;height:42px;position:relative;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;border-radius:14px;border:1px solid var(--border);background:var(--panel-strong);color:var(--muted);transition:transform .16s ease,border-color .16s ease,background .16s ease,color .16s ease}.notification-link:hover{transform:translateY(-1px);color:var(--text);border-color:#4fd3c466}.notification-link.active{color:var(--primary);background:var(--primary-soft);border-color:#4fd3c44d}.notification-link svg{width:20px;height:20px}.notification-badge{position:absolute;top:-5px;right:-5px;min-width:18px;height:18px;padding:0 5px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:#ef4444;color:#fff;font-size:10px;font-weight:800;line-height:1;box-shadow:0 0 0 3px var(--surface)}.language-pills{display:inline-flex;align-items:center;flex-wrap:wrap;gap:6px;max-width:100%}.language-pill{border:1px solid transparent;background:transparent;color:var(--muted);border-radius:12px;padding:6px 10px;display:inline-flex;align-items:center;gap:8px;cursor:pointer;font-size:12px;font-weight:800;letter-spacing:.04em;transition:transform .16s ease,border-color .16s ease,background .16s ease,color .16s ease}.language-pill:hover{color:var(--text);background:var(--nav-link-hover)}.language-pill.active{color:var(--text);border-color:var(--border);background:var(--panel-strong);box-shadow:0 10px 18px #0a152214}.language-pill-compact{padding:8px 10px;border-color:var(--border);background:var(--panel-strong);color:var(--text);white-space:nowrap}.language-flag{width:18px;height:18px;border-radius:999px;object-fit:cover;box-shadow:0 0 0 1px #fff3}.theme-toggle{min-width:0;max-width:100%;border:1px solid var(--border);background:var(--panel-strong);color:var(--text);border-radius:14px;padding:9px 10px;display:inline-flex;align-items:center;gap:8px;cursor:pointer;transition:transform .16s ease,border-color .16s ease,background .16s ease}.theme-toggle:hover{transform:translateY(-1px);border-color:#4fd3c466}.theme-toggle-orb{width:18px;height:18px;border-radius:999px;background:linear-gradient(135deg,#ffd56a,#ff9c54);box-shadow:0 0 0 6px #ffd56a29;flex-shrink:0}:root[data-theme=dark] .theme-toggle-orb{background:linear-gradient(135deg,#79b8ff,#c6b2ff);box-shadow:0 0 0 6px #79b8ff24}.theme-toggle-copy{display:inline-flex;text-align:left;min-width:0}.theme-toggle-copy strong{font-size:13px;line-height:1.1}.user-chip{display:inline-flex;align-items:center;gap:8px;max-width:100%;padding:8px 12px;border-radius:999px;border:1px solid var(--border);background:var(--chip-bg);box-shadow:var(--shadow-soft)}.user-chip-trigger{border:1px solid var(--border);cursor:pointer;color:var(--text)}.account-menu{position:relative;min-width:0}.account-dropdown{position:absolute;right:0;top:calc(100% + 10px);min-width:180px;max-width:min(240px,calc(100vw - 24px));padding:10px;border-radius:16px;border:1px solid var(--border);background:var(--panel-strong);box-shadow:0 18px 34px #030f1b29;display:grid;z-index:50}.account-dropdown-action{border:1px solid var(--border);border-radius:12px;background:var(--secondary-bg);color:var(--secondary-text);padding:10px 12px;font-weight:700;cursor:pointer;text-align:left}.navbar-user{font-size:13px;font-weight:700;min-width:0;max-width:12rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.badge{padding:3px 9px;border-radius:999px;font-size:11px;font-weight:800;background:var(--primary-soft);color:var(--primary);text-transform:uppercase}.content{width:100%;min-width:0;padding:26px}.mobile-bottom-nav{display:none}img,svg,canvas{max-width:100%}.content>*{min-width:0}.dashboard-main-grid>*,.dashboard-secondary-grid>*,.attendance-workspace>*,.competitions-detail-grid>*,.competitions-wheel-layout>*{min-width:0}.toast-stack{position:fixed;top:18px;right:18px;z-index:2000;display:grid;gap:10px;width:min(360px,calc(100vw - 24px))}.toast-card{border:1px solid var(--border);border-radius:12px;background:#fffffff5;box-shadow:0 10px 24px #122b3929;padding:10px 12px;animation:toastIn .18s ease-out}.toast-card.success{border-color:#b9e6cf;background:linear-gradient(120deg,#ecfbf4,#fff 74%)}.toast-card.error{border-color:#f2c6cf;background:linear-gradient(120deg,#fff1f4,#fff 74%)}.toast-card.info{border-color:#cfe2f9;background:linear-gradient(120deg,#eff6ff,#fff 74%)}.toast-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:4px}.toast-head strong{font-size:13px}.toast-close{border:0;background:transparent;font-size:16px;line-height:1;color:#4c6475;cursor:pointer;padding:0}.toast-message{font-size:13px;color:#355065}@keyframes toastIn{0%{opacity:0;transform:translateY(-5px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.page-head{margin-bottom:14px}.page-head-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}.action-tooltip-wrap{position:relative;display:inline-flex}.action-tooltip-copy{position:absolute;right:0;top:calc(100% + 8px);transform:translateY(-4px);width:min(260px,calc(100vw - 32px));min-width:0;padding:8px 10px;border-radius:12px;background:#081a27f0;color:#f6fbff;font-size:12px;line-height:1.35;box-shadow:0 14px 32px #081a273d;opacity:0;pointer-events:none;transition:opacity .16s ease,transform .16s ease;z-index:30}.action-tooltip-wrap:hover .action-tooltip-copy,.action-tooltip-wrap:focus-within .action-tooltip-copy{opacity:1;transform:translateY(0)}.page-action-button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:46px;padding-inline:16px;box-shadow:0 14px 28px #0f172a1f}.page-action-icon{width:18px;height:18px;object-fit:contain;flex-shrink:0}.payments-filter-toggle{position:fixed;top:50%;right:18px;transform:translateY(-50%);z-index:900;width:46px;min-width:46px;padding-inline:0;flex:0 0 46px;border-radius:999px;background:linear-gradient(135deg,#0f766e,#22c5b5);color:#fff;border:0}.payments-filter-toggle:hover,.payments-filter-toggle:focus-visible,.payments-filter-toggle:active{background:linear-gradient(135deg,#0f766e,#22c5b5);color:#fff;transform:translateY(-50%);box-shadow:0 14px 28px #0f172a1f}.payments-filter-toggle:hover{transform:translateY(-50%)}.payments-filter-toggle:active,.payments-filter-toggle:focus-visible{transform:translateY(-50%)}.payments-filter-toggle .page-action-icon{width:20px;height:20px}.btn.page-action-button.btn-telegram{background-color:#039be5;background-image:none;color:#fff}.btn.page-action-button.btn-telegram:hover,.btn.page-action-button.btn-telegram:focus-visible,.btn.page-action-button.btn-telegram:active{background-color:#039be5;background-image:none;box-shadow:0 16px 32px #039be547}.btn.page-action-button.btn-sms{background-color:#34c759;background-image:linear-gradient(135deg,#7df08a,#34c759);color:#fffdf9}.btn.page-action-button.btn-sms:hover,.btn.page-action-button.btn-sms:focus-visible,.btn.page-action-button.btn-sms:active,.btn.page-action-button.btn-sms:disabled{background-color:#34c759;background-image:linear-gradient(135deg,#7df08a,#34c759);box-shadow:0 16px 32px #34c75947}.btn.page-action-button.btn-sms:disabled{opacity:1;cursor:not-allowed;filter:none}.btn.page-action-button.btn-notification-compose{background-color:#14836f;background-image:none;color:#fff}.btn.page-action-button.btn-notification-compose:hover,.btn.page-action-button.btn-notification-compose:focus-visible,.btn.page-action-button.btn-notification-compose:active{background-color:#14836f;background-image:none;box-shadow:0 16px 32px #14836f47}.btn.page-action-button.btn-chat-history{background-color:#2f6fed;background-image:linear-gradient(135deg,#3f8cff,#2f6fed);color:#fff}.btn.page-action-button.btn-chat-history:hover,.btn.page-action-button.btn-chat-history:focus-visible,.btn.page-action-button.btn-chat-history:active{background-color:#2f6fed;background-image:linear-gradient(135deg,#3f8cff,#2f6fed);box-shadow:0 16px 32px #2f6fed47}.btn.page-action-button.btn-scheduled-notifications{background-color:#0f766e;background-image:linear-gradient(135deg,#0f766e,#1d4ed8);color:#fff}.btn.page-action-button.btn-scheduled-notifications:hover,.btn.page-action-button.btn-scheduled-notifications:focus-visible,.btn.page-action-button.btn-scheduled-notifications:active{background-color:#0f766e;background-image:linear-gradient(135deg,#0f766e,#1d4ed8);box-shadow:0 16px 32px #1266854d}.students-head{display:flex;align-items:end;justify-content:space-between;gap:14px}.card{border:1px solid var(--border);border-radius:18px;background:var(--panel);padding:18px;margin-bottom:16px;box-shadow:var(--shadow-soft)}.muted{color:var(--muted)}.btn{border:0;border-radius:12px;background:linear-gradient(120deg,#0f766e,#18a197);color:#fff;padding:10px 14px;font-weight:700;cursor:pointer;transition:transform .15s ease,opacity .15s ease}.btn:hover{transform:translateY(-1px)}.btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.btn-secondary{background:var(--secondary-bg);color:var(--secondary-text)}.btn-danger{background:linear-gradient(120deg,#d6455d,#e5687b)}.btn-small{padding:6px 9px;margin-right:6px;font-size:12px}.form-grid{display:grid;gap:11px}.students-form-wrap{max-width:980px;margin:0 auto 16px}.compact-form{padding:16px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1600;display:grid;place-items:center;padding:16px}.glass-overlay{background:radial-gradient(circle at 10% 10%,rgba(26,164,145,.2),transparent 35%),radial-gradient(circle at 90% 20%,rgba(80,141,244,.2),transparent 35%),#0c162a6b;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.modal-card{width:min(920px,96vw);max-height:92vh;overflow-y:auto;background:var(--panel)}.modal-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.icon-btn{border:1px solid var(--border);background:var(--surface);color:var(--text);width:34px;height:34px;border-radius:10px;font-weight:800;cursor:pointer}.soft-block{display:grid;gap:10px;padding:12px;border:1px solid var(--border);border-radius:14px;background:var(--surface-2)}.section-title{font-size:14px;font-weight:800;letter-spacing:.01em}.hint{margin:-2px 0 2px;font-size:12px}.field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.row-actions{display:flex;gap:9px;align-items:center}.checkbox-field{display:inline-flex;gap:8px;align-items:center}.checkbox-field input{width:auto}.two-column-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.table-wrap{overflow-x:auto}.combined-list-card{overflow:hidden}.list-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.list-search{max-width:420px}.attendance-clean-controls{display:grid;gap:12px}.attendance-control-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.attendance-action-row{display:flex;justify-content:space-between;align-items:center;gap:10px}.attendance-primary-actions{display:inline-flex;align-items:center;gap:8px}.attendance-face-time{display:inline-flex;align-items:center;gap:6px;margin-top:6px;padding:5px 9px;border-radius:999px;background:#0f766e1a;color:#0f766e;font-size:12px;font-weight:700}.attendance-inline-actions{display:inline-flex;gap:8px;flex-wrap:wrap}.attendance-summary-card{display:grid;gap:10px;background:var(--surface-2);border-color:var(--border)}.attendance-photo-card{display:grid;gap:14px;padding:16px;border-radius:16px;background:var(--panel-strong)}.attendance-session-modal{width:min(540px,96vw);display:grid;gap:14px}.notification-compose-modal{width:min(640px,96vw);display:grid;gap:14px}.notification-compose-note{gap:6px}.notification-scheduler-hero{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;padding:0;overflow:hidden;background:radial-gradient(circle at top left,rgba(255,255,255,.56),transparent 32%),linear-gradient(125deg,#dff9f3,#eef5ff 44%,#f8f4ff)}.notification-scheduler-metric{display:grid;gap:6px;padding:22px 24px;border-right:1px solid rgba(17,24,39,.08)}.notification-scheduler-metric:last-child{border-right:0}.notification-scheduler-metric strong{font-size:30px;line-height:1;color:#0d3d4a}.notification-scheduler-metric span{color:#4b6473;font-size:13px}.notification-scheduler-layout{display:grid;grid-template-columns:minmax(320px,.95fr) minmax(420px,1.05fr);gap:16px;align-items:start}.scheduled-notifications-page{position:relative}.tour-focus{position:relative;z-index:71;box-shadow:0 0 0 2px #3f8cff57,0 24px 44px #0f172a2e}.tour-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:70;background:#08101c94;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.tour-card{position:fixed;right:24px;bottom:24px;z-index:72;width:min(360px,calc(100vw - 32px));display:grid;gap:14px;padding:18px;border-radius:20px;border:1px solid rgba(148,163,184,.18);background:radial-gradient(circle at top left,rgba(63,140,255,.14),transparent 28%),linear-gradient(180deg,#fffffffa,#f4fafffa);box-shadow:0 28px 60px #0f172a38}.tour-card p{margin:0;color:#4a6376;line-height:1.55}.tour-card-top{display:flex;align-items:start;justify-content:space-between;gap:12px}.tour-card-top>div{display:grid;gap:4px}.tour-card-top strong{color:#102c43;font-size:16px}.tour-card-top span{color:#698196;font-size:12px;font-weight:700}.tour-card-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}.notification-scheduler-form-card,.notification-scheduler-canvas-card,.notification-scheduler-list-card{display:grid;gap:14px}.notification-scheduler-section-head{display:flex;align-items:start;justify-content:space-between;gap:12px}.notification-scheduler-section-head h3{margin:0 0 4px}.notification-scheduler-pulse{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:8px 14px;border-radius:999px;background:#0f766e1a;color:#0f766e;font-size:12px;font-weight:700}.notification-scheduler-active{margin-top:-2px}.notification-scheduler-weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.notification-scheduler-daychip{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:16px;padding:12px 10px;display:grid;gap:4px;cursor:pointer;text-align:left;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}.notification-scheduler-daychip:hover{transform:translateY(-1px)}.notification-scheduler-daychip strong{font-size:13px}.notification-scheduler-daychip span{font-size:11px;color:var(--muted)}.notification-scheduler-daychip.active{border-color:#1d4ed833;background:linear-gradient(135deg,#0f766e,#1d4ed8);color:#fff;box-shadow:0 16px 28px #1d4ed82e}.notification-scheduler-daychip.active span{color:#ffffffd1}.notification-scheduler-week-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px;padding:14px;border-radius:22px;background:linear-gradient(180deg,#ffffffc7,#f1f8ffeb),linear-gradient(135deg,#0f766e0f,#1d4ed814);border:1px solid rgba(148,163,184,.2)}.notification-scheduler-daylane{min-height:188px;border:1px dashed rgba(148,163,184,.35);border-radius:18px;padding:12px;background:#ffffff9e;display:grid;gap:10px}.notification-scheduler-daylane.active{border-style:solid;border-color:#0f766e24;box-shadow:0 14px 28px #0f172a12}.notification-scheduler-daylane-head{font-size:13px;font-weight:800;color:#20445a}.notification-scheduler-daylane-body{display:flex;flex-direction:column;align-items:start;gap:8px}.notification-scheduler-timepill,.notification-scheduler-mini-time{display:inline-flex;align-items:center;min-height:28px;padding:5px 10px;border-radius:999px;background:#0f766e1a;color:#0b6173;font-size:12px;font-weight:700}.notification-scheduler-blocks{display:grid;gap:12px}.notification-scheduler-block{display:grid;gap:12px;padding:16px;border:1px solid var(--border);border-radius:18px;background:radial-gradient(circle at top right,rgba(15,118,110,.08),transparent 26%),var(--surface)}.notification-scheduler-block-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.notification-scheduler-block-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.notification-scheduler-fixed-list{display:grid;gap:10px}.notification-scheduler-fixed-row{display:flex;align-items:center;gap:10px}.notification-scheduler-fixed-row input{max-width:180px}.notification-scheduler-inline-add{justify-self:start}.notification-scheduler-block-preview,.notification-scheduler-card-times,.notification-scheduler-next-runs-list{display:flex;flex-wrap:wrap;gap:8px}.notification-scheduler-add{justify-self:start}.notification-scheduler-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px}.notification-scheduler-card{display:grid;gap:14px;padding:18px;border-radius:20px;border:1px solid var(--border);background:radial-gradient(circle at top left,rgba(15,118,110,.08),transparent 28%),var(--surface)}.notification-scheduler-card.paused{opacity:.86}.notification-scheduler-card-top{display:flex;justify-content:space-between;align-items:start;gap:12px}.notification-scheduler-card-top h4{margin:0 0 4px;font-size:17px}.notification-scheduler-card-top p,.notification-scheduler-card-message,.notification-scheduler-card-meta,.notification-scheduler-next-runs{margin:0;color:var(--muted)}.notification-scheduler-card-message{color:var(--text);line-height:1.5}.notification-scheduler-card-meta{display:flex;flex-wrap:wrap;gap:10px;font-size:13px}.notification-scheduler-next-runs{display:grid;gap:8px}.notification-scheduler-next-runs strong{color:var(--text);font-size:13px}.notification-scheduler-next-runs-list span{display:inline-flex;align-items:center;min-height:30px;padding:6px 10px;border-radius:12px;background:var(--surface-2);color:var(--muted);font-size:12px}.chat-history-layout{display:grid;grid-template-columns:minmax(300px,340px) minmax(0,1fr);gap:16px;align-items:start}.chat-history-sidebar,.chat-history-panel{margin-bottom:0}.chat-history-sidebar{padding:0;overflow:hidden}.chat-history-sidebar-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:18px 18px 10px}.chat-history-search{padding:0 18px 14px}.chat-history-search input{width:100%}.chat-history-conversation-list{display:grid;max-height:calc(100vh - 290px);overflow-y:auto}.chat-history-conversation{width:100%;border:0;border-top:1px solid var(--border);background:transparent;padding:14px 18px;display:grid;gap:10px;text-align:left;color:var(--text);cursor:pointer;transition:background .16s ease,transform .16s ease}.chat-history-conversation:hover{background:linear-gradient(135deg,#1db9a814,#3f8cff14)}.chat-history-conversation.active{background:linear-gradient(135deg,#1db9a824,#3f8cff1f)}.chat-history-conversation-main{display:flex;align-items:flex-start;gap:12px;min-width:0}.chat-history-avatar{width:42px;height:42px;border-radius:16px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;background:linear-gradient(135deg,#14836feb,#3f8cffeb);color:#fff;font-weight:800;letter-spacing:.04em;box-shadow:0 14px 28px #0f172a24}.chat-history-avatar.large{width:54px;height:54px;border-radius:20px;font-size:16px}.chat-history-conversation-copy{min-width:0;display:grid;gap:4px;flex:1}.chat-history-conversation-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.chat-history-conversation-title{min-width:0;font-size:14px;line-height:1.35}.chat-history-conversation-time,.chat-history-conversation-subtitle,.chat-history-conversation-preview,.chat-history-thread-meta{color:var(--muted)}.chat-history-conversation-time{flex-shrink:0;font-size:11px;white-space:nowrap}.chat-history-conversation-subtitle,.chat-history-conversation-preview{font-size:12px;line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-history-conversation-count{justify-self:flex-end;display:inline-flex;align-items:center;padding:4px 8px;border-radius:999px;background:#14836f1a;color:var(--primary);font-size:11px;font-weight:700}.chat-history-panel{padding:0;overflow:hidden;min-height:680px;display:grid;grid-template-rows:auto minmax(0,1fr)}.chat-history-thread-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:18px 20px;border-bottom:1px solid var(--border);background:linear-gradient(135deg,#14836f14,#3f8cff14)}.chat-history-thread-identity{display:flex;align-items:center;gap:14px;min-width:0}.chat-history-thread-copy{min-width:0;display:grid;gap:4px}.chat-history-thread-copy strong,.chat-history-thread-copy span,.chat-history-thread-meta span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-history-thread-meta{display:grid;gap:4px;justify-items:end;font-size:12px}.chat-history-thread-stage{display:flex;flex-direction:column;padding:20px;background:radial-gradient(circle at 10% 12%,rgba(20,131,111,.09),transparent 28%),radial-gradient(circle at 88% 20%,rgba(63,140,255,.09),transparent 24%),linear-gradient(180deg,#f4fafcf0,#ecf4f8fa)}.chat-history-thread{display:grid;gap:14px;max-height:calc(100vh - 290px);overflow-y:auto;padding-right:4px}.chat-message-row{display:flex}.chat-message-row.incoming{justify-content:flex-start}.chat-message-row.outgoing{justify-content:flex-end}.chat-bubble{width:fit-content;max-width:min(78%,620px);padding:12px 14px;border-radius:22px;border:1px solid var(--border);box-shadow:0 18px 32px #0f172a1a}.chat-bubble.incoming{background:#fffffff0;border-top-left-radius:10px}.chat-bubble.outgoing{background:linear-gradient(135deg,#14836ff5,#25a78ff0);color:#f8fffe;border-color:#14836f33;border-top-right-radius:10px}.chat-bubble.failed{border-color:#d6455d66}.chat-bubble-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:8px}.chat-bubble-sender{font-size:12px;font-weight:800}.chat-bubble-event{display:inline-flex;align-items:center;padding:3px 8px;border-radius:999px;font-size:11px;font-weight:700;background:#0f172a14;color:inherit}.chat-bubble.outgoing .chat-bubble-event{background:#ffffff29}.chat-bubble-body{white-space:pre-wrap;word-break:break-word;line-height:1.5}.chat-bubble-image-link{display:block;margin-bottom:8px}.chat-bubble-image{display:block;width:min(320px,100%);max-width:100%;border-radius:16px;border:1px solid rgba(255,255,255,.18);box-shadow:0 18px 30px #0f172a29}.chat-bubble-meta{display:flex;justify-content:flex-end;gap:8px;margin-top:10px;font-size:11px;opacity:.78}.chat-bubble-status.failed{color:#d6455d;opacity:1}.chat-bubble.outgoing .chat-bubble-status.failed{color:#ffe1e6}.chat-history-empty-state,.chat-history-empty-panel{min-height:220px}.chat-history-composer-shell{position:sticky;bottom:0;z-index:2;display:grid;gap:10px;margin-top:16px;padding-top:12px;background:linear-gradient(180deg,#ecf4f800,#ecf4f8eb 24%,#ecf4f8fa)}.chat-history-attachment-preview{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;padding:10px 12px;border:1px solid var(--border);border-radius:18px;background:#ffffffe0;box-shadow:0 14px 32px #0f172a1a}.chat-history-attachment-preview img{width:62px;height:62px;object-fit:cover;border-radius:14px}.chat-history-attachment-copy{min-width:0;display:grid;gap:4px}.chat-history-mini-btn{width:32px;height:32px;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text);font-size:20px;line-height:1;cursor:pointer}.chat-history-emoji-panel{display:flex;flex-wrap:wrap;gap:8px;padding:12px;border:1px solid var(--border);border-radius:18px;background:#ffffffe6;box-shadow:0 14px 32px #0f172a1a}.chat-history-emoji-btn{width:38px;height:38px;border:0;border-radius:12px;background:#0f172a0f;cursor:pointer;font-size:20px;transition:transform .16s ease,background .16s ease}.chat-history-emoji-btn:hover{transform:translateY(-1px);background:#0f172a1a}.chat-history-composer{display:grid;grid-template-columns:auto auto minmax(0,1fr) auto;gap:10px;align-items:end;padding:10px;border:1px solid var(--border);border-radius:24px;background:#ffffffe6;box-shadow:0 18px 32px #0f172a1f;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.chat-history-icon-btn{width:42px;height:42px;display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:14px;background:#0f172a0f;color:var(--text);cursor:pointer;transition:transform .16s ease,background .16s ease}.chat-history-icon-btn:hover{transform:translateY(-1px);background:#0f172a1a}.chat-history-icon-btn svg,.chat-history-send-btn svg{width:20px;height:20px}.chat-history-file-input{display:none}.chat-history-compose-textarea{min-height:42px;max-height:140px;resize:vertical;border:0;background:transparent;padding:10px 4px;color:var(--text);font:inherit}.chat-history-compose-textarea:focus{outline:none}.chat-history-send-btn{min-width:122px;height:46px;padding:0 16px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:16px;background:linear-gradient(135deg,#2f6fed,#14836f);color:#fff;font-weight:800;cursor:pointer;transition:transform .16s ease,opacity .16s ease,box-shadow .16s ease;box-shadow:0 16px 32px #14836f38}.chat-history-send-btn:hover{transform:translateY(-1px)}.chat-history-send-btn:disabled{opacity:.58;cursor:not-allowed;transform:none}:root[data-theme=dark] .chat-history-thread-stage{background:radial-gradient(circle at 12% 16%,rgba(37,167,143,.16),transparent 28%),radial-gradient(circle at 88% 18%,rgba(63,140,255,.16),transparent 24%),linear-gradient(180deg,#0c1626f5,#08111efa)}:root[data-theme=dark] .chat-bubble.incoming{background:#121f30f5}:root[data-theme=dark] .chat-history-composer-shell{background:linear-gradient(180deg,#08111e00,#08111ee6 24%,#08111efa)}:root[data-theme=dark] .chat-history-attachment-preview,:root[data-theme=dark] .chat-history-emoji-panel,:root[data-theme=dark] .chat-history-composer{background:#0e1b2ce6}:root[data-theme=dark] .chat-history-icon-btn,:root[data-theme=dark] .chat-history-emoji-btn{background:#ffffff14}:root[data-theme=dark] .notification-scheduler-hero{background:radial-gradient(circle at 12% 12%,rgba(45,212,191,.16),transparent 24%),radial-gradient(circle at 88% 18%,rgba(59,130,246,.18),transparent 26%),linear-gradient(135deg,#06131ffa,#0b2030f5)}:root[data-theme=dark] .tour-focus{box-shadow:0 0 0 2px #6ee7ff42,0 24px 46px #02081752}:root[data-theme=dark] .tour-overlay{background:#020814b8}:root[data-theme=dark] .tour-card{border-color:#94a3b824;background:radial-gradient(circle at top left,rgba(45,212,191,.12),transparent 30%),linear-gradient(180deg,#0a1826fa,#070f1bfa);box-shadow:inset 0 1px #ffffff08,0 28px 60px #02081761}:root[data-theme=dark] .tour-card p{color:#9cb2c3}:root[data-theme=dark] .tour-card-top strong{color:#ecf8ff}:root[data-theme=dark] .tour-card-top span{color:#7fa1b8}:root[data-theme=dark] .notification-scheduler-metric{border-right-color:#94a3b81f}:root[data-theme=dark] .notification-scheduler-metric strong,:root[data-theme=dark] .notification-scheduler-daylane-head{color:#e6f4ff}:root[data-theme=dark] .notification-scheduler-metric span,:root[data-theme=dark] .notification-scheduler-card-top p{color:#9cb5c6}:root[data-theme=dark] .notification-scheduler-pulse,:root[data-theme=dark] .notification-scheduler-timepill,:root[data-theme=dark] .notification-scheduler-mini-time{background:#2dd4bf24;color:#8cefe4}:root[data-theme=dark] .notification-scheduler-daychip,:root[data-theme=dark] .notification-scheduler-block,:root[data-theme=dark] .notification-scheduler-card{background:radial-gradient(circle at top right,rgba(45,212,191,.08),transparent 26%),linear-gradient(180deg,#0a1826f5,#070f1bf5);border-color:#94a3b824;box-shadow:inset 0 1px #ffffff08,0 20px 38px #02081747}:root[data-theme=dark] .notification-scheduler-form-card,:root[data-theme=dark] .notification-scheduler-canvas-card,:root[data-theme=dark] .notification-scheduler-list-card{background:radial-gradient(circle at top left,rgba(45,212,191,.06),transparent 24%),linear-gradient(180deg,#08131ffa,#070f1bfa);border-color:#94a3b824;box-shadow:inset 0 1px #ffffff08,0 24px 44px #0208174d}:root[data-theme=dark] .notification-scheduler-next-runs-list span{background:linear-gradient(180deg,#0b1c2af5,#08141ff5);border-color:#94a3b824;box-shadow:inset 0 1px #ffffff08}:root[data-theme=dark] .notification-scheduler-daychip{border-color:#94a3b824}:root[data-theme=dark] .notification-scheduler-daychip span{color:#8da5b8}:root[data-theme=dark] .notification-scheduler-daychip.active{border-color:#6ee7ff33;background:linear-gradient(135deg,#0d9488eb,#1d4ed8eb);box-shadow:0 16px 32px #0891b23d,inset 0 1px #ffffff14}:root[data-theme=dark] .notification-scheduler-week-grid{background:linear-gradient(180deg,#091725fa,#06101cfa),linear-gradient(135deg,#2dd4bf14,#3b82f61f);border-color:#94a3b829;box-shadow:inset 0 1px #ffffff08,0 18px 34px #0208173d}:root[data-theme=dark] .notification-scheduler-daylane{background:linear-gradient(180deg,#0b1b2ae0,#08121ef0);border-color:#94a3b824}:root[data-theme=dark] .notification-scheduler-daylane.active{border-color:#2dd4bf33;box-shadow:inset 0 1px #ffffff0a,0 16px 28px #0309143d}:root[data-theme=dark] .notification-scheduler-card-message,:root[data-theme=dark] .notification-scheduler-next-runs strong,:root[data-theme=dark] .notification-scheduler-block-head strong,:root[data-theme=dark] .notification-scheduler-section-head h3,:root[data-theme=dark] .scheduled-notifications-page h2{color:#eaf6ff}:root[data-theme=dark] .notification-scheduler-card-meta,:root[data-theme=dark] .notification-scheduler-next-runs,:root[data-theme=dark] .notification-scheduler-section-head .muted,:root[data-theme=dark] .scheduled-notifications-page .page-head .muted{color:#97adc0}:root[data-theme=dark] .notification-scheduler-fixed-row .btn-secondary,:root[data-theme=dark] .notification-scheduler-add.btn-secondary,:root[data-theme=dark] .notification-scheduler-inline-add.btn-secondary{background:linear-gradient(135deg,#0e2333f5,#0a1826f5);color:#d9ebf8;border:1px solid rgba(148,163,184,.14)}:root[data-theme=dark] .notification-scheduler-fixed-row .btn-secondary:hover,:root[data-theme=dark] .notification-scheduler-add.btn-secondary:hover,:root[data-theme=dark] .notification-scheduler-inline-add.btn-secondary:hover{box-shadow:0 14px 28px #02081738}:root[data-theme=dark] .notification-scheduler-block input,:root[data-theme=dark] .notification-scheduler-block select,:root[data-theme=dark] .notification-scheduler-form-card input,:root[data-theme=dark] .notification-scheduler-form-card select,:root[data-theme=dark] .notification-scheduler-form-card textarea{background:#091522f0;border-color:#94a3b829;color:#eef7ff}:root[data-theme=dark] .notification-scheduler-block input:focus,:root[data-theme=dark] .notification-scheduler-block select:focus,:root[data-theme=dark] .notification-scheduler-form-card input:focus,:root[data-theme=dark] .notification-scheduler-form-card select:focus,:root[data-theme=dark] .notification-scheduler-form-card textarea:focus{border-color:#2dd4bf57;box-shadow:0 0 0 3px #2dd4bf1f}.attendance-session-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.attendance-session-note{gap:6px}.attendance-session-footer{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}.attendance-photo-modal{width:min(920px,96vw);max-height:92vh;overflow-y:auto;margin-bottom:0}.attendance-photo-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:10px;border-bottom:1px solid var(--border)}.attendance-photo-upload-zone{display:grid;grid-template-columns:1.15fr 1fr;gap:12px}.photo-input-card{display:grid;gap:8px;padding:12px;border-radius:12px;border:1px solid var(--border);background:var(--surface-soft)}.photo-input-card-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.photo-caption-wrap{display:grid;gap:6px}.attendance-photo-footer{display:flex;align-items:center;justify-content:flex-end;gap:12px;padding-top:10px;border-top:1px solid var(--border)}.additional-photo-list{display:grid;gap:6px;max-height:152px;overflow-y:auto;padding-right:4px}.additional-photo-item{display:flex;align-items:center;justify-content:space-between;gap:8px;border:1px solid var(--border);border-radius:8px;padding:6px 8px;background:var(--surface)}.attendance-photo-history{display:grid;gap:8px}.attendance-photo-history h4{margin:0}.attendance-photo-batches{display:grid;gap:8px}.attendance-photo-batch-item{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;border:1px solid var(--border);border-radius:10px;padding:10px 12px;background:var(--surface-soft)}.attendance-photo-fileids{display:inline-flex;gap:6px;flex-wrap:wrap}.compact-stats{grid-template-columns:repeat(4,minmax(0,1fr))}.summary-lines{display:grid;gap:6px;font-size:13px}.attendance-workspace{display:grid;grid-template-columns:360px 1fr;gap:14px;margin-bottom:14px}.attendance-topbar{display:flex;justify-content:space-between;align-items:end;gap:12px}.attendance-topbar-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;flex:1}.attendance-analytics-card{display:grid;gap:12px}.daily-lists-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.daily-list-block{border:1px solid var(--border);border-radius:12px;padding:10px;background:#ffffffd6}.daily-list-block h4{margin:0 0 8px}.daily-list-block ul{margin:0;padding-left:16px;display:grid;gap:5px}.calendar-card{padding:14px}.calendar-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.week-head{margin-bottom:6px}.week-cell{text-align:center;font-size:11px;color:var(--muted);font-weight:700;text-transform:uppercase}.day-grid{margin-bottom:10px}.day-cell{border:1px solid var(--border);background:#fff;border-radius:10px;height:40px;font-weight:700;cursor:pointer}.day-cell.outside{opacity:.45}.day-cell.today{border-color:#91c8ff}.day-cell.selected{background:var(--primary-soft);border-color:#86d7cb;color:#0f655e}.calendar-footer{display:grid;gap:6px}.attendance-side-panel{display:grid;gap:12px}.attendance-side-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.attendance-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.stat-chip{border-radius:10px;padding:8px;font-size:12px;font-weight:700;text-align:center;border:1px solid var(--border);background:var(--surface)}.schedule-toolbar-card{display:grid;gap:16px;background:radial-gradient(circle at 100% 0%,rgba(45,212,191,.12),transparent 30%),radial-gradient(circle at 0% 100%,rgba(59,130,246,.1),transparent 28%),var(--panel)}.schedule-toolbar{display:grid;grid-template-columns:minmax(220px,280px) minmax(0,1fr);gap:16px;align-items:end}.schedule-filter{display:grid;gap:8px;max-width:280px}.schedule-toolbar-meta{display:grid;gap:8px}.schedule-toolbar-badge{display:inline-flex;align-items:center;justify-self:start;min-height:38px;padding:8px 14px;border-radius:999px;border:1px solid var(--border);background:var(--surface-2);color:var(--text);font-size:13px;font-weight:800}.schedule-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}.schedule-summary-card{min-height:106px;display:grid;align-content:end;gap:6px;padding:14px;border-radius:16px;border:1px solid var(--border);background:radial-gradient(circle at 100% 0%,rgba(45,212,191,.12),transparent 42%),linear-gradient(180deg,var(--surface) 0%,var(--surface-soft) 100%)}.schedule-summary-card span{color:var(--muted);font-size:12px;font-weight:700}.schedule-summary-card strong{font-size:28px;letter-spacing:-.03em}.schedule-calendar-card{padding:20px;overflow:hidden;background:radial-gradient(circle at 0% 0%,rgba(45,133,255,.1),transparent 30%),radial-gradient(circle at 100% 0%,rgba(15,118,110,.12),transparent 34%),var(--panel)}.schedule-calendar-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:16px}.schedule-calendar-hint{display:grid;gap:4px;align-items:start;justify-items:end;padding:10px 14px;border-radius:999px;border:1px solid var(--border);background:var(--surface-2);text-align:right}.schedule-calendar-hint strong{font-size:13px}.schedule-calendar-hint span{color:var(--muted);font-size:12px;font-weight:700}.schedule-week-scroll{overflow-x:auto;padding-bottom:8px}.schedule-week-grid{min-width:1220px;display:grid;grid-template-columns:72px repeat(7,minmax(150px,1fr));gap:12px;align-items:start}.schedule-time-rail{display:grid;grid-template-rows:56px 1fr}.schedule-time-rail-body{position:relative}.schedule-time-label{position:absolute;right:8px;transform:translateY(-50%);font-size:11px;font-weight:700;color:var(--muted)}.schedule-day-column{display:grid;grid-template-rows:56px 1fr;min-width:0}.schedule-day-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px;border:1px solid var(--border);border-radius:16px 16px 0 0;background:linear-gradient(180deg,var(--panel-strong) 0%,var(--surface) 100%)}.schedule-day-head strong{font-size:14px}.schedule-day-head span{color:var(--muted);font-size:12px;font-weight:700}.schedule-day-body{display:grid;grid-template-rows:1fr;gap:8px;border:1px solid var(--border);border-top:0;border-radius:0 0 18px 18px;padding:10px 10px 12px;background:linear-gradient(180deg,#ffffffd1,#f4fbf9eb),var(--surface);overflow:hidden}.schedule-day-body.with-all-day-lane{gap:10px}.schedule-all-day-stack{display:grid;align-content:start;gap:8px;min-height:84px;max-height:84px;padding-right:4px;overflow-y:auto}.schedule-all-day-stack.empty{min-height:84px}.schedule-all-day-event{--schedule-tone-rgb: 13, 148, 136;display:grid;gap:3px;align-content:start;width:100%;min-width:0;padding:10px 12px;border:1px solid rgba(var(--schedule-tone-rgb),.44);border-radius:14px;background:linear-gradient(135deg,rgba(var(--schedule-tone-rgb),.94),rgba(var(--schedule-tone-rgb),.72));box-shadow:0 12px 24px rgba(var(--schedule-tone-rgb),.16);color:#fff;cursor:pointer;text-align:left;overflow:hidden;transition:transform .16s ease,box-shadow .16s ease,opacity .16s ease}.schedule-all-day-event:hover{transform:translateY(-1px);box-shadow:0 16px 28px rgba(var(--schedule-tone-rgb),.2)}.schedule-all-day-event small{font-size:10px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;opacity:.85;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.schedule-all-day-event strong{font-size:13px;line-height:1.18;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.schedule-timeline{position:relative;min-height:0;border-radius:16px;background:linear-gradient(180deg,#ffffffc7,#f2f8f7f0),var(--surface);box-shadow:inset 0 0 0 1px #97b6cd1f}.schedule-grid-line{position:absolute;left:8px;right:8px;height:1px;background:#97b6cd3d}.schedule-day-empty{position:absolute;left:10px;right:10px;top:50%;transform:translateY(-50%);border:1px dashed var(--border);border-radius:14px;padding:10px;text-align:center;color:var(--muted);font-size:12px;background:var(--surface-2)}.schedule-event{--schedule-tone-rgb: 13, 148, 136;position:absolute;left:10px;right:10px;display:grid;gap:3px;align-content:start;min-width:0;padding:10px 12px;border-radius:16px;border:1px solid rgba(var(--schedule-tone-rgb),.38);text-align:left;color:#fff;background:linear-gradient(180deg,rgba(var(--schedule-tone-rgb),.92),rgba(var(--schedule-tone-rgb),.72));box-shadow:0 16px 28px rgba(var(--schedule-tone-rgb),.18);cursor:pointer;overflow:hidden;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.schedule-event:hover{transform:translateY(-2px);box-shadow:0 20px 34px rgba(var(--schedule-tone-rgb),.2)}.schedule-event small{font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;opacity:.8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.schedule-event strong{font-size:14px;line-height:1.15;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.schedule-event span{font-size:12px;opacity:.92;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.schedule-event.tone-teal,.schedule-all-day-event.tone-teal,.schedule-color-option.tone-teal{--schedule-tone-rgb: 13, 148, 136}.schedule-event.tone-blue,.schedule-all-day-event.tone-blue,.schedule-color-option.tone-blue{--schedule-tone-rgb: 37, 99, 235}.schedule-event.tone-violet,.schedule-all-day-event.tone-violet,.schedule-color-option.tone-violet{--schedule-tone-rgb: 124, 58, 237}.schedule-event.tone-rose,.schedule-all-day-event.tone-rose,.schedule-color-option.tone-rose{--schedule-tone-rgb: 225, 29, 72}.schedule-event.tone-amber,.schedule-all-day-event.tone-amber,.schedule-color-option.tone-amber{--schedule-tone-rgb: 180, 83, 9}.schedule-event.tone-cyan,.schedule-all-day-event.tone-cyan,.schedule-color-option.tone-cyan{--schedule-tone-rgb: 8, 145, 178}.schedule-event.tone-emerald,.schedule-all-day-event.tone-emerald,.schedule-color-option.tone-emerald{--schedule-tone-rgb: 5, 150, 105}.schedule-event.type-break{border-style:dashed}.schedule-all-day-event.type-holiday,.schedule-all-day-event.type-day_off{min-height:60px}.schedule-empty-state{margin-top:18px;display:grid;justify-items:start;gap:8px;padding:18px;border:1px dashed var(--border);border-radius:18px;background:var(--surface-2)}.schedule-form-modal{width:min(720px,96vw)}.schedule-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.schedule-form-wide{grid-column:1 / -1}.schedule-all-day-note{align-content:start}.schedule-color-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.schedule-color-picker{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px}.schedule-color-option{--schedule-tone-rgb: 13, 148, 136;display:inline-flex;align-items:center;gap:10px;width:100%;min-height:46px;padding:10px 12px;border-radius:14px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-weight:700;cursor:pointer;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}.schedule-color-option:hover{transform:translateY(-1px)}.schedule-color-option.selected{border-color:rgba(var(--schedule-tone-rgb),.52);box-shadow:0 0 0 4px rgba(var(--schedule-tone-rgb),.12)}.schedule-color-swatch{width:18px;height:18px;flex-shrink:0;border-radius:999px;background:linear-gradient(135deg,rgba(var(--schedule-tone-rgb),.96),rgba(var(--schedule-tone-rgb),.72));box-shadow:0 10px 18px rgba(var(--schedule-tone-rgb),.22)}.schedule-form-actions{flex-wrap:wrap}.stat-chip.present{background:#e5f9ef;color:#1f7b54}.stat-chip.late{background:#fff4df;color:#8b5b12}.stat-chip.absent{background:#fde9ed;color:#9a1d34}.attendance-list-card{overflow:hidden;background:var(--surface-2);border-color:var(--border)}.competitions-layout,.competitions-detail-grid{align-items:start}.competitions-layout{display:grid;gap:18px}.competitions-empty-state-card,.competitions-spotlight-card,.competitions-showcase-card{border:1px solid var(--border);border-radius:28px;background:radial-gradient(circle at top right,rgba(45,140,90,.08),transparent 28%),linear-gradient(180deg,var(--panel),color-mix(in srgb,var(--panel) 92%,#f8fbff 8%));box-shadow:var(--shadow-soft)}.competitions-empty-state-card{display:grid;gap:12px;padding:30px;text-align:center}.competitions-empty-state-card h3,.competitions-showcase-head h3,.competitions-spotlight-head h3{margin:0}.competitions-spotlight-shell{display:grid;gap:18px}.competitions-spotlight-card{display:grid;gap:18px;padding:24px}.competitions-spotlight-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.competitions-spotlight-badge{margin-bottom:10px;background:linear-gradient(135deg,#d1fae5,#bfdbfe);color:#0f3b58}.competitions-spotlight-description{margin:0;max-width:780px;color:var(--muted);line-height:1.6}.competitions-stat-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}.competitions-stat-pill{display:grid;gap:6px;padding:16px 18px;border-radius:20px;background:#0f172a0a;border:1px solid rgba(148,163,184,.14)}.competitions-stat-pill span{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.competitions-stat-pill strong{font-size:26px;line-height:1}.competitions-reward-chip-row{display:flex;flex-wrap:wrap;gap:12px}.competitions-reward-chip{display:inline-flex;align-items:center;gap:10px;padding:10px 14px;border-radius:999px;background:#0f172a0d;border:1px solid rgba(148,163,184,.14)}.competitions-reward-chip span{display:inline-flex;align-items:center;justify-content:center;min-width:28px;min-height:28px;border-radius:999px;background:#0f766e1f;color:#0f766e;font-size:12px;font-weight:800}.competitions-showcase-card{display:grid;gap:20px;padding:24px}.competitions-showcase-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.competitions-podium-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;align-items:end;perspective:1200px}.competitions-podium-card{position:relative;display:grid;justify-items:center;align-content:start;gap:10px;min-height:290px;padding:20px 18px 22px;border-radius:26px;border:1px solid rgba(148,163,184,.15);background:radial-gradient(circle at top,rgba(255,255,255,.24),transparent 32%),linear-gradient(180deg,#ffffffeb,#f1f5f9eb);box-shadow:0 18px 38px #0f172a14;text-align:center;overflow:hidden;transform-style:preserve-3d}.competitions-podium-card:after{content:"";position:absolute;inset:auto 16px 12px;height:10px;border-radius:999px;background:#0f172a14;filter:blur(14px)}.competitions-podium-card.rank-1{z-index:4;transform:translateY(-18px) scale(1.05);box-shadow:0 26px 46px #0f172a24}.competitions-podium-card.rank-1 .competitions-podium-character{width:112px;height:112px}.competitions-podium-card.rank-2{z-index:3}.competitions-podium-card.rank-3{z-index:2}.competitions-podium-card.pending{opacity:.82}.competitions-podium-card strong{font-size:24px;line-height:1.1}.competitions-podium-card span{color:#385066;font-weight:700}.competitions-podium-card small{color:#6b7f92;font-size:12px;letter-spacing:.08em;text-transform:uppercase}.competitions-podium-persona{display:inline-flex;align-items:center;justify-content:center;padding:6px 12px;border-radius:999px;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#0f172a;background:#ffffffa6;border:1px solid rgba(148,163,184,.16)}.competitions-podium-character{position:relative;width:96px;height:96px;margin-bottom:4px;border-radius:50%;display:grid;place-items:center;padding:4px;filter:drop-shadow(0 16px 24px rgba(15,23,42,.12))}.competitions-podium-card.tone-gold .competitions-podium-character{background:linear-gradient(180deg,#fde68a2e,#f59e0b0f)}.competitions-podium-card.tone-cyan .competitions-podium-character{background:linear-gradient(180deg,#67e8f92e,#0284c70f)}.competitions-podium-card.tone-violet .competitions-podium-character{background:linear-gradient(180deg,#d8b4fe2e,#6d28d90f)}.competitions-podium-card.tone-rose .competitions-podium-character{background:linear-gradient(180deg,#fda4af2e,#be123c0f)}.competitions-podium-card.tone-emerald .competitions-podium-character{background:linear-gradient(180deg,#a7f3d02e,#0f766e0f)}.competitions-podium-avatar{width:100%;height:100%;overflow:visible}.competitions-showcase-footer{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}.competition-link-banner{display:grid;gap:14px;padding:20px 22px;border-radius:24px;border:1px solid rgba(20,94,115,.14);background:radial-gradient(circle at top right,rgba(56,189,248,.12),transparent 26%),linear-gradient(180deg,#fffffff5,#f3f8fff5);box-shadow:var(--shadow-soft)}.competition-link-banner h3{margin:0}.competition-link-row{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.competition-link-input{flex:1 1 320px;min-width:0;padding:13px 16px;border-radius:16px;border:1px solid rgba(148,163,184,.18);background:#ffffffe6;color:var(--text);font-family:SFMono-Regular,SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace}.competitions-showcase-meta{display:grid;gap:6px;padding:14px 16px;border-radius:18px;background:#0f172a0a;border:1px solid rgba(148,163,184,.12)}.competitions-showcase-meta span{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.08em}.competitions-showcase-meta strong{font-size:15px;line-height:1.3}.competition-evaluation-page{min-height:100vh;width:100%;padding:32px 18px 40px;background:radial-gradient(circle at top,rgba(125,211,252,.16),transparent 24%),radial-gradient(circle at bottom left,rgba(74,222,128,.12),transparent 24%),linear-gradient(180deg,#f8fbff,#eef5ff 44%,#f7fbff)}.competition-evaluation-shell{max-width:1240px;margin:0 auto;display:grid;gap:18px}.competition-evaluation-hero,.competition-evaluation-toolbar,.competition-evaluation-card,.competition-evaluation-savebar{border:1px solid rgba(148,163,184,.16);border-radius:28px;background:#ffffffe6;box-shadow:0 22px 50px #0f172a14;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.competition-evaluation-hero{display:grid;gap:18px;padding:28px}.competition-evaluation-hero h1,.competition-evaluation-toolbar h2{margin:0}.competition-evaluation-badge{display:inline-flex;margin-bottom:10px;background:linear-gradient(135deg,#dbeafe,#dcfce7);color:#0f3b58}.competition-evaluation-description{margin:10px 0 0;max-width:860px;line-height:1.6;color:var(--muted)}.competition-evaluation-hero-actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:flex-end}.competition-evaluation-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}.competition-evaluation-metric{display:grid;gap:6px;padding:16px 18px;border-radius:20px;background:#0f172a0a;border:1px solid rgba(148,163,184,.14)}.competition-evaluation-metric span{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.competition-evaluation-metric strong{font-size:30px;line-height:1}.competition-evaluation-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 22px}.competition-evaluation-search{width:min(360px,100%)}.competition-evaluation-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(310px,1fr));gap:16px}.competition-evaluation-card{display:grid;gap:16px;padding:20px}.competition-evaluation-card.is-active{border-color:#22c55e38}.competition-evaluation-card.is-pending{border-color:#94a3b82e}.competition-evaluation-student{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.competition-evaluation-student strong{font-size:20px}.competition-evaluation-student p{margin:6px 0 0}.competition-evaluation-status{display:inline-flex;align-items:center;justify-content:center;padding:7px 12px;border-radius:999px;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.competition-evaluation-status.active{background:#22c55e1f;color:#166534}.competition-evaluation-status.pending{background:#94a3b81f;color:#475569}.competition-evaluation-toggle-row{display:flex;align-items:center;justify-content:space-between;gap:14px}.competition-evaluation-toggle-row span{font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.competition-evaluation-toggle-group{display:inline-flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.competition-evaluation-toggle{min-width:118px;padding:10px 14px;border-radius:999px;border:1px solid rgba(148,163,184,.18);background:#f8fafcf5;color:#475569;font-weight:800;cursor:pointer;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease,background .16s ease}.competition-evaluation-toggle:hover,.competition-evaluation-toggle.is-selected{transform:translateY(-1px);box-shadow:0 14px 26px #0f172a14}.competition-evaluation-toggle.is-positive.is-selected{border-color:#22c55e47;background:#dcfce7eb;color:#166534}.competition-evaluation-toggle.is-negative.is-selected{border-color:#f8717142;background:#fef2f2f5;color:#b91c1c}.competition-evaluation-score-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:end}.competition-evaluation-field{display:grid;gap:8px}.competition-evaluation-field span,.competition-evaluation-quick span{font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.competition-evaluation-quick{display:grid;gap:8px;justify-items:end}.competition-evaluation-quick-list{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.competition-evaluation-quick-chip{min-width:42px;padding:10px 12px;border-radius:999px;border:1px solid rgba(59,130,246,.16);background:#eff6fff0;color:#1d4ed8;font-weight:800;cursor:pointer;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.competition-evaluation-quick-chip:hover,.competition-evaluation-quick-chip.is-selected{transform:translateY(-1px);border-color:#2563eb4d;box-shadow:0 12px 24px #2563eb1f}.competition-evaluation-note textarea{resize:vertical}.competition-evaluation-card-footer{display:flex;justify-content:flex-end}.competition-evaluation-empty{padding:28px;border-radius:24px;text-align:center}.competition-evaluation-savebar{position:sticky;bottom:18px;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 22px}.competition-evaluation-savebar strong,.competition-evaluation-savebar p{margin:0}.competition-evaluation-savebar-actions{display:inline-flex;flex-wrap:wrap;justify-content:flex-end;gap:12px}.competition-evaluation-state{min-height:100vh}@media(max-width:768px){.competition-evaluation-toolbar,.competition-evaluation-savebar,.competition-evaluation-toggle-row{flex-direction:column;align-items:stretch}.competition-evaluation-search,.competition-evaluation-savebar-actions,.competition-evaluation-savebar-actions .btn{width:100%}.competition-evaluation-toggle-group{width:100%;justify-content:stretch}.competition-evaluation-toggle{flex:1 1 0;min-width:0}}:root[data-theme=dark] .competitions-showcase-card,:root[data-theme=dark] .competitions-empty-state-card{background:radial-gradient(circle at top right,rgba(59,130,246,.14),transparent 28%),linear-gradient(180deg,#0a101ff5,#0f172af0);border-color:#94a3b82e}:root[data-theme=dark] .competitions-podium-card{background:radial-gradient(circle at top,rgba(255,255,255,.08),transparent 32%),linear-gradient(180deg,#111827f0,#0a101ff0);border-color:#94a3b82e;box-shadow:0 22px 40px #02061757}:root[data-theme=dark] .competitions-podium-card strong{color:#f8fafc}:root[data-theme=dark] .competitions-podium-card span{color:#dbeafe}:root[data-theme=dark] .competitions-podium-card small{color:#bfdbfeb8}:root[data-theme=dark] .competitions-podium-persona{color:#f8fafc;background:#1e293bb8;border-color:#94a3b82e}:root[data-theme=dark] .competitions-showcase-meta{background:#0f172a9e;border-color:#94a3b82e}:root[data-theme=dark] .competitions-showcase-meta span{color:#bfdbfeb8}:root[data-theme=dark] .competitions-showcase-meta strong{color:#f8fafc}:root[data-theme=dark] .competition-link-banner{background:radial-gradient(circle at top right,rgba(59,130,246,.16),transparent 28%),linear-gradient(180deg,#0a101ff5,#0f172af0);border-color:#94a3b833}:root[data-theme=dark] .competition-link-input{background:#0f172ab3;border-color:#94a3b833;color:#e2e8f0}:root[data-theme=dark] .competition-evaluation-page{background:radial-gradient(circle at top,rgba(37,99,235,.18),transparent 24%),radial-gradient(circle at bottom left,rgba(16,185,129,.14),transparent 24%),linear-gradient(180deg,#020617,#081225 48%,#07111f)}:root[data-theme=dark] .competition-evaluation-hero,:root[data-theme=dark] .competition-evaluation-toolbar,:root[data-theme=dark] .competition-evaluation-card,:root[data-theme=dark] .competition-evaluation-savebar{background:#080f1dd1;border-color:#94a3b82e;box-shadow:0 28px 54px #02061757}:root[data-theme=dark] .competition-evaluation-metric{background:#0f172a9e;border-color:#94a3b82e}:root[data-theme=dark] .competition-evaluation-student strong,:root[data-theme=dark] .competition-evaluation-metric strong,:root[data-theme=dark] .competition-evaluation-toolbar h2,:root[data-theme=dark] .competition-evaluation-hero h1{color:#f8fafc}:root[data-theme=dark] .competition-evaluation-badge{background:linear-gradient(135deg,#3b82f647,#22c55e38);color:#dbeafe}:root[data-theme=dark] .competition-evaluation-status.pending{background:#4755696b;color:#cbd5e1}:root[data-theme=dark] .competition-evaluation-status.active{background:#22c55e2e;color:#bbf7d0}:root[data-theme=dark] .competition-evaluation-toggle{background:#0f172ac7;border-color:#94a3b833;color:#cbd5e1}:root[data-theme=dark] .competition-evaluation-toggle.is-positive.is-selected{background:#14532db8;border-color:#22c55e57;color:#dcfce7}:root[data-theme=dark] .competition-evaluation-toggle.is-negative.is-selected{background:#7f1d1dad;border-color:#f871714d;color:#fee2e2}:root[data-theme=dark] .competition-evaluation-quick-chip{background:#0f172ad6;border-color:#60a5fa38;color:#bfdbfe}:root[data-theme=dark] .competitions-podium-card.tone-violet.winner{background:radial-gradient(circle at top,rgba(196,181,253,.18),transparent 30%),linear-gradient(180deg,#3a1a68f5,#0f172af5);border-color:#c4b5fd47;box-shadow:0 24px 44px #02061761,0 0 34px #8b5cf62e}:root[data-theme=dark] .competitions-podium-card.tone-violet.winner .competitions-podium-persona{background:#8b5cf62e;border-color:#c4b5fd47;color:#f5f3ff}.competitions-detail-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:18px;margin-top:18px}.competitions-detail-head{margin-bottom:16px}.competitions-stats-grid{margin-bottom:18px}.competitions-reward-block{margin-top:12px}.competitions-create-students-block{margin-top:16px}.competitions-create-modal{width:min(1040px,96vw)}.competitions-reward-list,.competitions-student-list{display:grid;gap:12px}.competitions-create-student-list{max-height:min(40vh,380px);overflow-y:auto;padding-right:4px}.competitions-reward-item{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:16px;background:#0f172a0a}.competitions-hint{margin-top:12px}.competitions-rewards-input{grid-column:1 / -1}.competitions-student-row{align-items:center}.competitions-student-row.selected{border:1px solid rgba(45,140,90,.35);background:#2d8c5a14}.competitions-student-check{display:flex;justify-content:flex-end;align-items:center}.competitions-empty{min-height:120px}.competitions-draw-overlay{padding:0;background:radial-gradient(circle at 18% 16%,rgba(250,204,21,.12),transparent 18%),radial-gradient(circle at 84% 12%,rgba(59,130,246,.1),transparent 20%),linear-gradient(180deg,#fff,#f8fafc);-webkit-backdrop-filter:none;backdrop-filter:none}.competitions-draw-modal{position:relative;width:100vw;min-height:100vh;padding:32px clamp(20px,3vw,44px);overflow:auto;border:0;border-radius:0;background:radial-gradient(circle at top left,rgba(255,255,255,.8),transparent 24%),linear-gradient(180deg,#fff,#f8fafc);color:#132235;box-shadow:none}.competitions-draw-floating-actions{position:fixed;top:22px;right:22px;z-index:4;display:flex;align-items:center;justify-content:flex-end;gap:12px}.competitions-draw-close{width:42px;height:42px;border-radius:999px;border-color:#dbe4ec;background:#fffffff0;box-shadow:0 16px 30px #0f172a1f}.competitions-draw-status,.competitions-draw-progress-wrap,.competitions-draw-footer{border:1px solid #e3eaf0;border-radius:28px;background:#ffffffeb;box-shadow:0 20px 40px #0f172a14}.competitions-draw-status{display:grid;gap:10px;padding:24px 24px 22px}.competitions-draw-status h3{margin:0;font-size:clamp(34px,4vw,56px);line-height:.94;letter-spacing:-.05em;color:#0f172a}.competitions-draw-status .muted{color:#64748b}.competitions-draw-badge{background:linear-gradient(135deg,#fff1be,#fde68a);color:#8a4a00;justify-self:start}.competitions-draw-progress-wrap{display:grid;gap:10px;padding:18px 20px}.competitions-draw-progress-bar{height:12px;border-radius:999px;overflow:hidden;background:#edf2f7;box-shadow:inset 0 0 0 1px #8193a51f}.competitions-draw-progress-bar span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#2dd4bf,#f59e0b 72%,#fb7185);transition:width .14s linear}.competitions-draw-progress-meta{display:flex;justify-content:space-between;gap:12px;font-size:13px;color:#64748b}.competitions-wheel-layout{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);gap:clamp(20px,3vw,44px);align-items:center;min-height:calc(100vh - 64px);max-width:1480px;margin:0 auto}.competitions-wheel-card{min-height:min(82vh,860px);display:grid;place-items:center;padding:0;border:0;background:transparent;box-shadow:none}.competitions-wheel-shell{position:relative;width:min(74vh,760px);aspect-ratio:1;display:grid;place-items:center}.competitions-wheel-shell-ring{position:absolute;border-radius:50%;pointer-events:none}.competitions-wheel-shell-ring-outer{top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at 30% 28%,rgba(255,255,255,.9),rgba(255,255,255,.2) 18%,transparent 19%),linear-gradient(145deg,#2b2b2b,#090909 62%,#3c3c3c);box-shadow:0 30px 60px #0f172a2e,inset 0 2px #ffffff29,inset 0 -4px #0003}.competitions-wheel-shell-ring-outer:after{content:"";position:absolute;top:18px;right:18px;bottom:18px;left:18px;border-radius:inherit;background:radial-gradient(circle at center,transparent 68%,rgba(0,0,0,.08) 68% 70%,transparent 70%),radial-gradient(circle at 30% 26%,rgba(255,255,255,.22),transparent 18%)}.competitions-wheel-shell-ring-inner{top:18px;right:18px;bottom:18px;left:18px;border:10px solid #eab308;box-shadow:inset 0 0 0 4px #111827,0 0 0 3px #fff3}.competitions-wheel-component{width:min(66vh,660px);max-width:none;margin:0}.competitions-wheel-component>div>div:nth-child(2){border-width:18px!important;border-color:#111827!important;box-shadow:0 24px 46px #0f172a2e,inset 0 0 0 6px #ffffff24,inset 0 0 0 14px #0003}.competitions-wheel-component>div>div:nth-child(2):after{content:"";position:absolute;top:10px;right:10px;bottom:10px;left:10px;border-radius:50%;box-shadow:inset 0 0 0 1px #ffffff38,inset 0 0 0 12px #00000014;pointer-events:none}.competitions-wheel-pointer{width:0;height:0;border-left:22px solid transparent;border-right:22px solid transparent;border-top:36px solid #ef4444;filter:drop-shadow(0 10px 12px rgba(15,23,42,.24))}.competitions-wheel-button{width:132px;height:132px;border:0;border-radius:999px;background:radial-gradient(circle at 35% 30%,#fff7d4,#facc15 36%,#f59e0b,#b45309);color:#7c2d12;box-shadow:0 24px 42px #0f172a2e,inset 0 3px #ffffffc7,inset 0 -10px 16px #92400e38;font-weight:800;font-size:13px;letter-spacing:.06em;text-transform:uppercase;pointer-events:none;outline:8px solid #111827}.competitions-wheel-button span{display:block;padding:0 16px;line-height:1.2}.competitions-wheel-prize{display:grid;justify-items:center;text-align:center;color:#fff;width:92px;font-size:11px;line-height:1.05;font-weight:800;text-shadow:0 2px 4px rgba(0,0,0,.28);text-transform:uppercase}.competitions-wheel-prize-rank{display:inline-flex;align-items:center;justify-content:center;min-height:18px;padding:2px 7px;border-radius:999px;background:#11182738;font-size:10px;letter-spacing:.08em}.competitions-wheel-prize strong{font-size:13px;max-width:92px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.competitions-wheel-prize small{font-size:10px;opacity:.92}.competitions-draw-panel{display:grid;gap:18px;align-self:center}.competitions-draw-winners-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px}.competitions-draw-winners-grid.compact{grid-template-columns:repeat(2,minmax(0,1fr))}.competitions-draw-winner-card{position:relative;min-height:132px;display:grid;align-content:end;gap:8px;padding:18px;border-radius:24px;border:1px solid #e3eaf0;background:radial-gradient(circle at top right,rgba(59,130,246,.06),transparent 28%),linear-gradient(180deg,#fff,#f8fafc);box-shadow:0 18px 34px #0f172a14;transform:translateY(0) scale(1);transition:opacity .22s ease,transform .26s ease,border-color .22s ease,box-shadow .26s ease}.competitions-draw-winner-card.pending{opacity:.62}.competitions-draw-winner-card.visible{border-color:#f7c57c;box-shadow:0 16px 28px #f49e1a24;transform:translateY(-4px) scale(1.01);animation:competitionsRevealCard .48s ease}.competitions-draw-winner-card strong{font-size:20px;line-height:1.05}.competitions-draw-winner-card span{color:#3f5565;font-weight:600}.competitions-draw-winner-card small{color:#7a8b9a;font-size:12px;text-transform:uppercase;letter-spacing:.08em}.competitions-draw-card-rank{position:absolute;top:14px;right:14px;display:inline-flex;align-items:center;justify-content:center;min-width:40px;min-height:40px;border-radius:999px;background:#edf3f7;color:#1c2e3d;font-weight:800;letter-spacing:-.03em}.competitions-draw-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 18px;color:#5d7081}@keyframes competitionsRevealCard{0%{opacity:0;transform:translateY(18px) scale(.92) rotate(-2deg)}to{opacity:1;transform:translateY(-4px) scale(1.01) rotate(0)}}.attendance-list{display:grid;gap:10px}.attendance-row-card{display:grid;grid-template-columns:1.1fr 1.2fr 1fr;gap:12px;align-items:center;border:1px solid var(--border);border-radius:14px;padding:10px 12px;background:var(--surface)}.attendance-student-meta{display:grid;gap:2px}.status-switch{display:inline-flex;border:1px solid var(--border);border-radius:11px;overflow:hidden}.status-choice{border:0;background:var(--surface);color:var(--text);padding:8px 10px;font-size:12px;font-weight:700;cursor:pointer}.status-choice.selected.present{background:#dff6ea;color:#1b6f4c}.status-choice.selected.late{background:#ffefcf;color:#7e530d}.status-choice.selected.absent{background:#ffe2e7;color:#95213a}.attendance-row-inputs{display:grid;grid-template-columns:120px 1fr;gap:8px}table{width:100%;border-collapse:collapse}th,td{text-align:left;border-bottom:1px solid var(--border);padding:10px;vertical-align:top}th{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.03em}.parent-column{display:grid;gap:8px;min-width:220px}.parent-item{border:1px solid var(--border);border-radius:10px;padding:7px 9px;background:var(--surface-soft)}.parent-item-head{font-size:13px;font-weight:700}.parent-item-meta{font-size:12px;color:var(--muted);margin:2px 0 5px}.parent-remove{border:0;background:transparent;color:var(--danger);font-size:12px;font-weight:700;padding:0;cursor:pointer}.table-action-stack{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.students-face-status{display:flex;align-items:flex-start;gap:10px;min-width:220px}.students-face-meta{display:grid;gap:6px}.faceid-preview{width:44px;height:44px;border-radius:14px;object-fit:cover;flex-shrink:0;border:1px solid var(--border);background:var(--surface-soft);box-shadow:var(--shadow-soft)}.faceid-preview-placeholder{display:grid;place-items:center;font-size:15px;font-weight:800;color:#0f766e;background:radial-gradient(circle at top left,rgba(15,118,110,.16),transparent 34%),linear-gradient(180deg,#fffffffa,#eff8fbfa)}.faceid-preview-placeholder.registered{color:#13566b;background:radial-gradient(circle at top left,rgba(34,211,238,.16),transparent 34%),linear-gradient(180deg,#effafffa,#e7f4fffa)}.faceid-meta{font-size:12px}.faceid-trigger-btn{min-width:144px}.faceid-modal{width:min(1120px,96vw);display:grid;gap:14px;overflow:hidden}.faceid-steps{display:flex;flex-wrap:wrap;gap:8px}.faceid-step-chip{display:inline-grid;grid-template-columns:auto 1fr;align-items:center;gap:8px;padding:10px 12px;border-radius:14px;border:1px solid var(--border);background:var(--surface)}.faceid-step-chip span{width:24px;height:24px;border-radius:999px;display:grid;place-items:center;background:#0f766e1a;color:#0f766e;font-size:12px;font-weight:800}.faceid-step-chip strong{font-size:13px}.faceid-step-chip.current{border-color:#0f766e42;background:radial-gradient(circle at top left,rgba(15,118,110,.12),transparent 30%),linear-gradient(180deg,#fffffffa,#f1f9f8fa)}.faceid-step-chip.done{border-color:#15803d2e;background:radial-gradient(circle at top left,rgba(74,222,128,.16),transparent 30%),linear-gradient(180deg,#f7fffafa,#ecfdf5fa)}.faceid-step-chip.done span{background:#15803d24;color:#166534}.faceid-camera-shell{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(260px,.65fr);gap:16px;align-items:stretch}.faceid-camera-frame{position:relative;min-height:500px;border-radius:28px;overflow:hidden;border:1px solid rgba(148,163,184,.18);background:radial-gradient(circle at 20% 14%,rgba(34,211,238,.22),transparent 28%),radial-gradient(circle at 78% 24%,rgba(59,130,246,.18),transparent 30%),#081422}.faceid-camera-video{width:100%;height:100%;display:block;object-fit:cover}.faceid-camera-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;justify-content:space-between;padding:24px;background:linear-gradient(180deg,#040a141f,#040a149e)}.faceid-camera-ring{width:min(58%,336px);aspect-ratio:1;margin:auto;border-radius:50%;border:3px solid rgba(255,255,255,.92);box-shadow:0 0 0 14px #22d3ee14,0 0 54px #22d3ee33}.faceid-camera-copy{width:min(560px,100%);margin:0 auto;display:grid;gap:4px;padding:14px 16px;border-radius:18px;background:#081222c7;color:#f5fbff;text-align:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.faceid-camera-copy strong{font-size:16px}.faceid-camera-copy span{color:#f5fbffd1;font-size:13px}.faceid-sidepanel{display:grid;gap:12px;align-content:start}.faceid-help-card{gap:8px}.faceid-help-card p{margin:0;line-height:1.55}.faceid-captured-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.faceid-captured-item{display:grid;border-radius:18px;overflow:hidden;border:1px solid var(--border);background:var(--surface)}.faceid-captured-item img{width:100%;aspect-ratio:1 / .88;object-fit:cover;display:block}.faceid-captured-item span{padding:9px 10px;font-size:12px;font-weight:700}:root[data-theme=dark] .attendance-summary-card,:root[data-theme=dark] .attendance-list-card{box-shadow:var(--shadow-soft)}:root[data-theme=dark] .attendance-row-card,:root[data-theme=dark] .parent-item{box-shadow:inset 0 1px #ffffff05}:root[data-theme=dark] .attendance-face-time{background:#2dd4bf1f;color:#7cead2}:root[data-theme=dark] .faceid-preview-placeholder{color:#7ae7d1;background:radial-gradient(circle at top left,rgba(45,212,191,.18),transparent 34%),linear-gradient(180deg,#111a25fa,#0a141ffa)}:root[data-theme=dark] .faceid-preview-placeholder.registered{color:#98e8ff;background:radial-gradient(circle at top left,rgba(59,130,246,.2),transparent 34%),linear-gradient(180deg,#131c29fa,#0b121dfa)}:root[data-theme=dark] .faceid-step-chip{background:#0b121deb}:root[data-theme=dark] .faceid-step-chip.current{background:radial-gradient(circle at top left,rgba(15,118,110,.2),transparent 30%),#0a131ef5}:root[data-theme=dark] .faceid-step-chip.done{background:radial-gradient(circle at top left,rgba(21,128,61,.18),transparent 30%),#091712f5}:root[data-theme=dark] .faceid-captured-item,:root[data-theme=dark] .faceid-help-card{background:#08101cf2}.status-pill{display:inline-flex;align-items:center;border-radius:999px;padding:4px 9px;font-size:12px;font-weight:700}.status-pill.active{background:#def7ed;color:#1d764f}.status-pill.inactive{background:#ffe8eb;color:#9a1d34}.page-state{padding:24px;color:var(--muted)}.math-loading-state{min-height:180px;padding:28px 20px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;color:var(--muted)}.math-loading-card{position:relative;display:inline-flex;align-items:center;gap:10px;padding:12px 16px;border-radius:18px;border:1px solid var(--border);background:linear-gradient(180deg,#ffffffd9,#ffffff8c),var(--surface);box-shadow:var(--shadow-soft);overflow:hidden;isolation:isolate}:root[data-theme=dark] .math-loading-card{background:linear-gradient(180deg,#102334e6,#102334c2),var(--surface)}.math-loading-card:after{content:"";position:absolute;top:-35%;right:-60%;bottom:-35%;left:-60%;background:linear-gradient(115deg,#fff0 44%,#ffffff14 48%,#ffffff61,#ffffff14 54%,#fff0 58%);transform:translate(-120%) skew(-18deg);animation:mathLoadingSweep 5s ease-in-out infinite;pointer-events:none;mix-blend-mode:screen}.math-loading-chip,.math-loading-op{position:relative;z-index:1}.math-loading-chip{min-width:30px;height:30px;padding:0 8px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;font-size:15px;font-weight:800;letter-spacing:-.02em;color:var(--primary);background:var(--primary-soft);border:1px solid color-mix(in srgb,var(--primary) 20%,transparent);box-shadow:0 8px 18px #0f172a0f;animation:mathLoadingFloat 1.8s ease-in-out infinite}.math-loading-chip-one{animation-delay:0s}.math-loading-chip-two{animation-delay:.18s}.math-loading-chip-three{animation-delay:.36s}.math-loading-op{font-size:15px;font-weight:800;color:var(--muted);animation:mathLoadingPulse 1.8s ease-in-out infinite}.math-loading-track{width:min(240px,72vw);height:4px;border-radius:999px;background:var(--chart-track);overflow:hidden}.math-loading-track span{display:block;width:42%;height:100%;border-radius:inherit;background:linear-gradient(90deg,transparent,var(--primary),transparent);animation:mathLoadingBar 1.5s ease-in-out infinite}.math-loading-label{font-size:14px;font-weight:700;letter-spacing:-.01em;color:var(--muted)}.math-loading-state.math-loading-state-inline .math-loading-card{padding:10px 14px;gap:8px}.math-loading-state.math-loading-state-inline .math-loading-chip{min-width:26px;height:26px;font-size:14px}.math-loading-state.math-loading-state-inline .math-loading-track{width:min(180px,68vw)}@keyframes mathLoadingSweep{0%{transform:translate(-120%) skew(-18deg);opacity:0}68%{transform:translate(-120%) skew(-18deg);opacity:0}78%{opacity:.9}88%{transform:translate(120%) skew(-18deg);opacity:.9}to{transform:translate(120%) skew(-18deg);opacity:0}}@keyframes mathLoadingFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}@keyframes mathLoadingPulse{0%,to{opacity:.68}50%{opacity:1}}@keyframes mathLoadingBar{0%{transform:translate(-120%)}50%{transform:translate(60%)}to{transform:translate(240%)}}.math-loading-card{justify-content:center;align-items:center;gap:12px;padding:16px 18px;min-height:78px;border-radius:22px}.math-loading-card:after{top:-35%;right:-60%;bottom:-35%;left:-60%}.math-loading-grid{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent 0 16%,rgba(15,118,110,.08) 16% 17%,transparent 17% 34%,rgba(56,189,248,.08) 34% 35%,transparent 35% 52%,rgba(245,158,11,.08) 52% 53%,transparent 53% 70%,rgba(244,114,182,.08) 70% 71%,transparent 71% 100%);mask:linear-gradient(90deg,transparent,#000 16%,#000 84%,transparent);opacity:.16;z-index:0}.math-loading-shape{position:relative;z-index:1;flex:0 0 auto;animation:mathLoadingFloat 2.2s ease-in-out infinite;box-shadow:0 10px 20px #0f172a14}.math-loading-shape:after{content:"";position:absolute;top:-18%;right:-18%;bottom:-18%;left:-18%;border-radius:inherit;background:radial-gradient(circle,rgba(255,255,255,.34),transparent 68%);opacity:.5;transform:scale(.75)}.math-loading-shape-circle{width:22px;height:22px;border-radius:999px}.math-loading-shape-square{width:20px;height:20px;border-radius:7px;transform:rotate(12deg);animation-delay:.16s}.math-loading-shape-diamond{width:20px;height:20px;border-radius:6px;transform:rotate(45deg);animation-delay:.32s}.math-loading-shape-pill{width:36px;height:14px;border-radius:999px;animation-delay:.48s}.math-loading-shape-triangle{width:0;height:0;border-left:12px solid transparent;border-right:12px solid transparent;border-bottom:20px solid var(--primary);background:transparent;box-shadow:none;filter:drop-shadow(0 10px 16px rgba(15,23,42,.08));animation-delay:.64s}.math-loading-shape-triangle:after{display:none}.math-loading-shape-teal{background:linear-gradient(135deg,#0f766e,#22c5b5)}.math-loading-shape-cyan{background:linear-gradient(135deg,#2563eb,#38bdf8)}.math-loading-shape-amber{background:linear-gradient(135deg,#d97706,#fbbf24)}.math-loading-shape-emerald{background:linear-gradient(135deg,#047857,#34d399)}.math-loading-shape-rose{background:linear-gradient(135deg,#be123c,#fb7185)}.math-loading-track,.math-loading-chip,.math-loading-op{display:none}.math-loading-label{font-size:14px;font-weight:700;letter-spacing:-.01em;color:var(--muted);position:relative;z-index:1}.math-loading-state.math-loading-state-inline{min-height:120px;padding:18px 14px}.math-loading-state.math-loading-state-inline .math-loading-card{padding:12px 14px;gap:10px;min-height:64px;border-radius:18px}.math-loading-state.math-loading-state-inline .math-loading-shape-circle{width:18px;height:18px}.math-loading-state.math-loading-state-inline .math-loading-shape-square,.math-loading-state.math-loading-state-inline .math-loading-shape-diamond{width:16px;height:16px}.math-loading-state.math-loading-state-inline .math-loading-shape-pill{width:28px;height:12px}.math-loading-state.math-loading-state-inline .math-loading-shape-triangle{border-left-width:9px;border-right-width:9px;border-bottom-width:16px}.math-loading-state.math-loading-state-inline .math-loading-label{font-size:13px}.math-loading-state.math-loading-state-inline .math-loading-grid{opacity:.12}@media(prefers-reduced-motion:reduce){.math-loading-card:after,.math-loading-shape{animation:none}}.error,.success{padding:10px 12px;border-radius:10px;margin-bottom:12px;font-weight:700;font-size:13px}.error{background:#fde8ec;color:#9f1f39}.success{background:#e4faee;color:#1f7b54}.stats-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.stat-card{min-height:118px;display:flex;flex-direction:column;justify-content:space-between}.stat-card strong{font-size:36px}.dashboard-shell{display:grid;gap:14px}.dashboard-controls{display:grid;gap:12px}.dashboard-control-grid{display:grid;grid-template-columns:220px 220px 1fr;gap:10px;align-items:end}.dashboard-highlight{border:1px solid var(--border);border-radius:12px;padding:12px;background:var(--surface-soft);display:grid;gap:2px}.dashboard-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.kpi-card{border:1px solid var(--border);border-radius:12px;background:var(--surface);padding:12px;display:grid;gap:4px}.kpi-card span{color:var(--muted);font-size:12px;font-weight:600}.kpi-card strong{font-size:28px;letter-spacing:-.02em}.kpi-card.tone-students{background:linear-gradient(140deg,#e9fbf8,#fff 62%);border-color:#caeae5}.kpi-card.tone-records{background:linear-gradient(140deg,#edf5ff,#fff 62%);border-color:#d8e4f5}.kpi-card.tone-late{background:linear-gradient(140deg,#fff7e8,#fff 62%);border-color:#f2e1be}.kpi-card.tone-absent{background:linear-gradient(140deg,#ffeef1,#fff 62%);border-color:#f4d6dd}.dashboard-main-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:14px}.dashboard-status-card{background:radial-gradient(circle at 0% 0%,rgba(14,165,164,.12),transparent 38%),radial-gradient(circle at 100% 100%,rgba(245,158,11,.1),transparent 40%),var(--surface);border-color:var(--border)}.dashboard-donut-layout{display:grid;grid-template-columns:170px 1fr;gap:14px;align-items:center}.donut-shell{width:168px;height:168px;display:grid;place-items:center;border-radius:20px;border:1px solid var(--border);background:linear-gradient(180deg,var(--panel-strong) 0%,var(--surface-soft) 100%);box-shadow:inset 0 0 0 1px #fff9}.dashboard-donut{width:160px;height:160px;filter:drop-shadow(0 4px 10px rgba(16,43,56,.1))}.donut-center-value{font-size:15px;font-weight:800;fill:#1f3345}.donut-center-label{font-size:7.5px;fill:#6f8390}.dashboard-legend{display:grid;gap:9px}.legend-row{display:grid;grid-template-columns:14px 1fr auto;align-items:center;gap:9px;border:1px solid var(--border);border-radius:10px;padding:7px 9px;background:var(--surface)}.legend-row strong{font-size:14px}.legend-row.present{background:linear-gradient(90deg,#e8fbf7,#fff 68%)}.legend-row.late{background:linear-gradient(90deg,#fff7e6,#fff 68%)}.legend-row.absent{background:linear-gradient(90deg,#ffeef0,#fff 68%)}.legend-row.total{background:linear-gradient(90deg,#eef2f9,#fff 68%)}.legend-dot{width:11px;height:11px;border-radius:999px;box-shadow:0 0 0 3px #ffffffbf}.legend-dot.present{background:#0ea5a4}.legend-dot.late{background:#f59e0b}.legend-dot.absent{background:#ef4444}.legend-dot.total{background:#64748b}.lesson-bars{display:grid;gap:10px}.dashboard-lesson-card{background:radial-gradient(circle at 100% 0%,rgba(82,183,136,.12),transparent 42%),var(--surface);border-color:var(--border)}.lesson-row{border:1px solid var(--border);border-radius:10px;padding:9px;background:var(--surface)}.lesson-row-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:7px}.lesson-row-bar{display:flex;width:100%;height:10px;overflow:hidden;border-radius:999px;background:#7f9aab2e}.lesson-row-bar span{height:100%}.bar-present{background:#52b788}.bar-late{background:#e8b04b}.bar-absent{background:#db6b81}.lesson-row-meta{margin-top:6px;font-size:12px}.dashboard-secondary-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:14px}.dashboard-trend-card{background:radial-gradient(circle at 0% 100%,rgba(45,133,255,.1),transparent 45%),var(--surface);border-color:var(--border)}.trend-wrap{display:grid;gap:9px}.trend-chart{width:100%;height:160px;background:linear-gradient(180deg,var(--surface-soft) 0%,var(--surface) 100%);border:1px solid var(--border);border-radius:12px}.trend-line{fill:none;stroke-width:2.5}.trend-line.total{stroke:#23895f}.trend-line.risk{stroke:#d6455d;stroke-dasharray:5 3}.trend-footer{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.trend-day{border:1px solid var(--border);border-radius:9px;background:var(--surface);padding:6px;text-align:center;display:grid;gap:2px}.trend-day span{font-size:11px;color:var(--muted)}.trend-day strong{font-size:14px}.dashboard-mini-stats{display:grid;gap:8px}.dashboard-snapshot-card{background:radial-gradient(circle at 100% 100%,rgba(14,165,164,.1),transparent 45%),var(--surface);border-color:var(--border)}.mini-row{display:flex;justify-content:space-between;align-items:center;border:1px solid var(--border);border-radius:10px;background:var(--surface);padding:9px 10px}.dashboard-snapshot-card .mini-row{background:linear-gradient(90deg,var(--surface-soft) 0%,var(--surface) 72%);border-color:var(--border)}.dashboard-incidents-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.dashboard-incident-card{border-color:var(--border)}.dashboard-incident-card.late{background:radial-gradient(circle at 100% 0%,rgba(245,158,11,.1),transparent 40%),var(--surface)}.dashboard-incident-card.absent{background:radial-gradient(circle at 100% 0%,rgba(239,68,68,.12),transparent 40%),var(--surface)}.incident-list{display:grid;gap:8px}.incident-item{display:flex;justify-content:space-between;align-items:center;gap:8px;border:1px solid var(--border);border-radius:10px;background:var(--surface);padding:8px 10px}.incident-item.late{border-color:#f4dfb2;background:linear-gradient(90deg,#fff9ed,#fff 78%)}.incident-item.absent{border-color:#f3ccd4;background:linear-gradient(90deg,#fff2f4,#fff 78%)}:root[data-theme=dark] .kpi-card.tone-students{background:linear-gradient(140deg,#1a7a7452,#102334f5 62%);border-color:#4fd3c433}:root[data-theme=dark] .kpi-card.tone-records{background:linear-gradient(140deg,#3570b847,#102334f5 62%);border-color:#7caceb38}:root[data-theme=dark] .kpi-card.tone-late{background:linear-gradient(140deg,#b87e2b47,#102334f5 62%);border-color:#f59e0b3d}:root[data-theme=dark] .kpi-card.tone-absent{background:linear-gradient(140deg,#ae425c47,#102334f5 62%);border-color:#ff7c9538}:root[data-theme=dark] .legend-row.present{background:linear-gradient(90deg,#1a7a743d,#102334f5 68%)}:root[data-theme=dark] .legend-row.late{background:linear-gradient(90deg,#b87e2b3d,#102334f5 68%)}:root[data-theme=dark] .legend-row.absent{background:linear-gradient(90deg,#ae425c3d,#102334f5 68%)}:root[data-theme=dark] .legend-row.total{background:linear-gradient(90deg,#5469804d,#102334f5 68%)}:root[data-theme=dark] .dashboard-donut{filter:drop-shadow(0 4px 14px rgba(0,0,0,.26))}:root[data-theme=dark] .lesson-row-meta,:root[data-theme=dark] .trend-day span,:root[data-theme=dark] .competitions-draw-progress-meta,:root[data-theme=dark] .competitions-draw-footer,:root[data-theme=dark] .competitions-draw-winner-card span,:root[data-theme=dark] .competitions-draw-winner-card small{color:var(--muted)}:root[data-theme=dark] .competitions-draw-status .muted,:root[data-theme=dark] .competitions-draw-progress-meta,:root[data-theme=dark] .competitions-draw-footer,:root[data-theme=dark] .competitions-draw-winner-card span,:root[data-theme=dark] .competitions-draw-winner-card small,:root[data-theme=dark] .competitions-draw-card-rank{color:#64748b}:root[data-theme=dark] .dashboard-snapshot-card .mini-row,:root[data-theme=dark] .incident-item.late,:root[data-theme=dark] .incident-item.absent{border-color:var(--border)}:root[data-theme=dark] .incident-item.late{background:linear-gradient(90deg,#b87e2b2e,#102334f5 78%)}:root[data-theme=dark] .incident-item.absent{background:linear-gradient(90deg,#ae425c33,#102334f5 78%)}:root[data-theme=dark] .stat-chip{background:#102334eb;color:var(--text)}:root[data-theme=dark] .stat-chip.present{background:#23895f38;color:#7ff0b8;border-color:#59d49c3d}:root[data-theme=dark] .stat-chip.late{background:#f59e0b33;color:#ffd27c;border-color:#f59e0b3d}:root[data-theme=dark] .stat-chip.absent{background:#d6455d33;color:#ff9fb0;border-color:#ff7c953d}:root[data-theme=dark] .schedule-summary-card,:root[data-theme=dark] .schedule-toolbar-badge,:root[data-theme=dark] .schedule-day-head,:root[data-theme=dark] .schedule-empty-state,:root[data-theme=dark] .schedule-calendar-hint{border-color:var(--border)}:root[data-theme=dark] .schedule-summary-card{background:radial-gradient(circle at 100% 0%,rgba(79,211,196,.14),transparent 42%),linear-gradient(180deg,#102334fa,#132c3ff5)}:root[data-theme=dark] .schedule-calendar-card{background:radial-gradient(circle at 0% 0%,rgba(45,133,255,.16),transparent 30%),radial-gradient(circle at 100% 0%,rgba(79,211,196,.14),transparent 34%),var(--panel)}:root[data-theme=dark] .schedule-toolbar-card{background:radial-gradient(circle at 100% 0%,rgba(79,211,196,.14),transparent 30%),radial-gradient(circle at 0% 100%,rgba(45,133,255,.14),transparent 28%),var(--panel)}:root[data-theme=dark] .schedule-toolbar-badge,:root[data-theme=dark] .schedule-calendar-hint,:root[data-theme=dark] .schedule-color-option{background:#102334e0}:root[data-theme=dark] .schedule-day-head{background:linear-gradient(180deg,#102334fa,#0d1f30f5)}:root[data-theme=dark] .schedule-day-body{background:linear-gradient(180deg,#102334fa,#132c3ff5),var(--surface)}:root[data-theme=dark] .schedule-timeline{background:linear-gradient(180deg,#08141fd1,#0e1e2df5),var(--surface)}:root[data-theme=dark] .schedule-grid-line{background:#97b6cd2e}:root[data-theme=dark] .schedule-day-empty{background:#102334d6}:root[data-theme=dark] .schedule-event,:root[data-theme=dark] .schedule-all-day-event{box-shadow:0 16px 30px #00000038}.filter-row,.attendance-controls{display:grid;gap:10px;grid-template-columns:repeat(3,minmax(0,1fr));align-items:end}.elegant-filter{background:linear-gradient(135deg,#0f766e0f,#22c5b50f)}.message-cell{max-width:380px;white-space:normal}.channel-pill{display:inline-flex;align-items:center;padding:4px 9px;border-radius:999px;font-size:12px;font-weight:700}.channel-pill.telegram{background:#e0f2fe;color:#075985}.channel-pill.sms{background:#ede9fe;color:#5b21b6}.status{padding:4px 8px;border-radius:999px;font-size:12px;font-weight:700}.status.success{background:#dff7ec;color:#176846}.status.failed{background:#ffe2e7;color:#9a1d34}.status.pending{background:#eceff6;color:#435072}.login-page{min-height:100vh;display:grid;place-items:center;padding:20px}.login-card{width:100%;max-width:420px;display:grid;gap:10px}@media(max-width:1440px){.navbar{gap:14px;padding:14px 18px}.navbar-panel,.navbar-actions,.header-control-strip{gap:10px}.top-nav-link{padding:8px 10px;font-size:12px}.theme-toggle{min-width:0}.theme-toggle-copy small,.control-label.inline,.badge{display:none}}@media(max-width:1280px){.content{padding:18px}.dashboard-control-grid,.filter-row,.attendance-controls,.attendance-control-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-highlight{grid-column:1 / -1}.stats-grid,.dashboard-kpi-grid,.dashboard-incidents-grid,.daily-lists-grid,.compact-stats,.attendance-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-main-grid,.dashboard-secondary-grid,.attendance-workspace,.competitions-detail-grid,.competitions-wheel-layout{grid-template-columns:1fr}.competitions-spotlight-head,.competitions-showcase-head{flex-direction:column;align-items:flex-start}.competitions-podium-grid{grid-template-columns:1fr}.competitions-podium-card.rank-1{transform:none}.attendance-topbar{flex-direction:column;align-items:stretch}.trend-footer{grid-template-columns:repeat(4,minmax(0,1fr))}.schedule-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.schedule-toolbar,.notification-scheduler-layout{grid-template-columns:1fr}.notification-scheduler-weekdays,.notification-scheduler-week-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.chat-history-layout{grid-template-columns:1fr}.chat-history-conversation-list,.chat-history-thread{max-height:none}.chat-history-composer{grid-template-columns:auto auto minmax(0,1fr)}.chat-history-send-btn{grid-column:1 / -1;width:100%}}@media(max-width:1150px){.navbar{flex-direction:column;align-items:stretch;gap:12px;padding:12px 16px}.navbar-head,.navbar-panel{width:100%}.navbar-panel{justify-content:space-between;gap:12px}.navbar-actions{justify-content:flex-start}.top-nav{flex-wrap:wrap;justify-content:flex-start}.top-nav-link,.top-nav-trigger{flex:0 1 auto}}@media(max-width:980px){.navbar{flex-direction:row;align-items:center;padding:12px 14px}.navbar-mobile-toggle{display:inline-block;position:relative;z-index:1311}.navbar-drawer-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;border:0;background:radial-gradient(circle at 18% 14%,rgba(34,197,181,.12),transparent 30%),#040c146b;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:1290}.navbar-panel-inline{display:none}.navbar-drawer-shell{display:flex;position:fixed;top:0;right:0;bottom:0;left:0;justify-content:flex-end;pointer-events:none;z-index:1300}.navbar-panel-drawer{display:flex;position:relative;height:100%;width:min(320px,calc(100vw - 14px));max-width:calc(100vw - 14px);margin-left:auto;padding:84px 14px 18px;border-radius:28px 0 0 28px;border:1px solid var(--border);background:linear-gradient(180deg,var(--panel-strong) 0%,var(--surface-soft) 100%);box-shadow:var(--shadow-soft);flex-direction:column;align-items:stretch;gap:12px;overflow-y:auto;pointer-events:auto;transform:translate(0);z-index:1301}.navbar-panel-drawer.open{animation:navbarDrawerIn .24s ease}.navbar-panel-drawer .top-nav{width:100%;overflow-x:visible;flex-direction:column;align-items:stretch;justify-content:flex-start}.navbar-panel-drawer .top-nav-link{flex:unset;text-align:left;padding:11px 12px}.navbar-panel-drawer .top-nav-group{width:100%}.navbar-panel-drawer .top-nav-trigger{width:100%;justify-content:space-between;text-align:left;padding:11px 12px}.navbar-panel-drawer .top-nav-dropdown{position:static;min-width:0;margin-top:6px;padding:6px 0 0 10px;border:0;background:transparent;box-shadow:none}.navbar-panel-drawer .top-nav-dropdown-link{display:block;padding:10px 12px}.navbar-panel-drawer .navbar-actions,.navbar-panel-drawer .header-control-strip,.navbar-panel-drawer .account-menu,.navbar-head{width:100%}.brand-wrap{max-width:calc(100% - 60px)}.brand-logo-shell{width:28px;height:28px;flex-basis:28px;border-radius:7px}.navbar-panel-drawer .navbar-actions,.navbar-panel-drawer .header-control-strip{flex-direction:row;align-items:center;flex-wrap:nowrap}.control-label.inline,.badge{display:none}.navbar-panel-drawer .header-control-strip{gap:6px;width:100%;overflow-x:auto;padding:6px;scrollbar-width:none;-webkit-overflow-scrolling:touch}.navbar-panel-drawer .header-control-strip::-webkit-scrollbar{display:none}.brand-subtitle{font-size:11px}.navbar-panel-drawer .language-control{justify-content:stretch;gap:6px;flex:0 0 auto}.navbar-panel-drawer .language-pills{width:auto;display:inline-flex;align-items:center;gap:6px;flex-wrap:nowrap}.navbar-panel-drawer .language-pill,.navbar-panel-drawer .theme-toggle,.navbar-panel-drawer .user-chip,.navbar-panel-drawer .user-chip-trigger{width:auto}.navbar-panel-drawer .language-pill,.navbar-panel-drawer .theme-toggle{justify-content:center}.navbar-panel-drawer .user-chip,.navbar-panel-drawer .user-chip-trigger{justify-content:space-between}.navbar-panel-drawer .account-menu{display:flex;flex-direction:column-reverse;align-items:stretch;gap:8px}.navbar-panel-drawer .notification-link{width:38px;height:38px;border-radius:12px;flex:0 0 38px}.navbar-panel-drawer .notification-link svg{width:18px;height:18px}.navbar-panel-drawer .language-pill{padding:6px 8px;border-radius:12px;gap:6px;min-width:0}.navbar-panel-drawer .language-pill span{font-size:11px}.navbar-panel-drawer .theme-toggle{padding:7px 9px;border-radius:12px;flex:0 0 auto}.navbar-panel-drawer .theme-toggle-copy{display:none}.navbar-panel-drawer .theme-toggle-copy strong{font-size:11px;white-space:nowrap}.navbar-panel-drawer .account-dropdown{position:static;width:100%}.students-head,.list-toolbar{flex-direction:column;align-items:flex-start}.action-tooltip-copy,.control-tooltip-copy{left:0;right:auto}.chat-history-thread-head{flex-direction:column;align-items:flex-start}.students-face-status{min-width:170px}.faceid-camera-shell{grid-template-columns:1fr}.faceid-camera-frame{min-height:380px}.faceid-captured-list{grid-template-columns:repeat(3,minmax(0,1fr))}.chat-history-thread-meta{width:100%;justify-items:flex-start}.chat-bubble{max-width:100%}.chat-history-composer{grid-template-columns:auto auto minmax(0,1fr)}.chat-history-send-btn{grid-column:1 / -1;width:100%}.content{padding:14px 14px calc(92px + env(safe-area-inset-bottom))}.mobile-bottom-nav{position:fixed;left:12px;right:12px;bottom:calc(10px + env(safe-area-inset-bottom));z-index:1200;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:6px;padding:8px 8px calc(8px + env(safe-area-inset-bottom));border:1px solid var(--navbar-border);border-radius:20px;background:linear-gradient(180deg,#ffffffe0,#f6faf9f5),var(--panel-strong);box-shadow:0 12px 28px #030f1b24;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);transition:transform .22s ease,opacity .22s ease}:root[data-theme=dark] .mobile-bottom-nav{background:linear-gradient(180deg,#0a1927e6,#102334f5),var(--panel-strong);box-shadow:0 12px 28px #00000047}.mobile-bottom-nav.is-hidden{transform:translateY(calc(100% + 18px));opacity:0;pointer-events:none}.mobile-bottom-nav-item{min-width:0;display:grid;justify-items:center;gap:3px;padding:7px 5px 6px;border-radius:16px;color:var(--nav-link);text-decoration:none;transition:transform .16s ease,background .16s ease,color .16s ease}.mobile-bottom-nav-item:hover{transform:translateY(-1px);color:var(--text);background:var(--nav-link-hover)}.mobile-bottom-nav-item.active{color:var(--primary);background:var(--primary-soft)}.mobile-bottom-nav-icon{width:21px;height:21px;flex-shrink:0}.mobile-bottom-nav-item span{font-size:10px;line-height:1.15;font-weight:800;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.list-search{max-width:100%}.notification-scheduler-hero{grid-template-columns:1fr}.tour-card{right:16px;left:16px;bottom:16px;width:auto}.notification-scheduler-metric{border-right:0;border-bottom:1px solid rgba(148,163,184,.14)}.notification-scheduler-weekdays,.notification-scheduler-week-grid,.notification-scheduler-block-grid{grid-template-columns:1fr}.notification-scheduler-fixed-row{flex-direction:column;align-items:stretch}.notification-scheduler-fixed-row input{max-width:100%}.two-column-grid,.stats-grid,.dashboard-control-grid,.dashboard-kpi-grid,.dashboard-main-grid,.dashboard-secondary-grid,.dashboard-incidents-grid,.competitions-detail-grid,.filter-row,.attendance-controls,.field-grid,.schedule-form-grid{grid-template-columns:1fr}.schedule-calendar-head{flex-direction:column;align-items:flex-start}.schedule-calendar-hint{justify-items:start;text-align:left}.schedule-summary-grid{grid-template-columns:1fr}.schedule-color-picker{grid-template-columns:repeat(2,minmax(0,1fr))}.attendance-topbar{flex-direction:column;align-items:stretch}.attendance-topbar-fields,.attendance-control-grid,.attendance-session-grid,.attendance-photo-upload-zone{grid-template-columns:1fr}.attendance-photo-head,.attendance-photo-footer{flex-direction:column;align-items:flex-start}.attendance-action-row{flex-direction:column;align-items:stretch}.attendance-primary-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}.dashboard-donut-layout{grid-template-columns:1fr;justify-items:start}.trend-footer{grid-template-columns:repeat(4,minmax(0,1fr))}.attendance-workspace,.attendance-side-fields,.attendance-stats,.daily-lists-grid,.attendance-row-card,.attendance-row-inputs,.schedule-color-picker{grid-template-columns:1fr}.competitions-wheel-layout{grid-template-columns:1fr;min-height:auto;padding-top:44px}.competitions-draw-modal{padding:88px 16px 20px}.competitions-draw-floating-actions{top:14px;right:14px;left:14px;justify-content:space-between}.competitions-wheel-shell{width:min(88vw,620px)}.competitions-wheel-component{width:min(76vw,540px)}.competitions-draw-winners-grid.compact{grid-template-columns:1fr}.competitions-draw-footer{flex-direction:column;align-items:flex-start}.status-switch{width:100%}.content{padding:14px}}.competition-results-page{width:100%;height:100vh;background:radial-gradient(circle at top,rgba(43,85,255,.24),transparent 24%),radial-gradient(circle at 20% 24%,rgba(34,211,238,.18),transparent 18%),radial-gradient(circle at 82% 20%,rgba(244,114,182,.18),transparent 18%),linear-gradient(180deg,#050816,#090f25 34%,#0f1636);color:#f8fafc;overflow:hidden}.competition-results-space{position:relative;width:100%;height:100vh;overflow:hidden;padding:20px clamp(14px,2vw,24px) 18px;display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;gap:12px}.competition-results-nebula,.competition-results-planet,.competition-results-star,.competition-results-orbit,.competition-results-rocket,.competition-results-candidate{pointer-events:none}.competition-results-nebula{position:absolute;border-radius:999px;filter:blur(26px);opacity:.7}.competition-results-nebula-a{top:4%;left:8%;width:26vw;height:22vw;background:radial-gradient(circle,rgba(56,189,248,.36),transparent 72%)}.competition-results-nebula-b{top:18%;right:10%;width:24vw;height:20vw;background:radial-gradient(circle,rgba(168,85,247,.34),transparent 70%)}.competition-results-nebula-c{bottom:8%;left:40%;width:28vw;height:24vw;background:radial-gradient(circle,rgba(244,114,182,.24),transparent 72%)}.competition-results-star{position:absolute;border-radius:999px;background:#ffffffe6;box-shadow:0 0 12px #ffffffe6;animation:competitionTwinkle ease-in-out infinite}.competition-results-planet{position:absolute;border-radius:50%;opacity:.84;filter:blur(.1px)}.competition-results-planet.planet-a{background:radial-gradient(circle at 30% 30%,rgba(255,255,255,.62),transparent 22%),radial-gradient(circle at center,rgba(67,56,202,.28),transparent 64%),linear-gradient(140deg,#fbbf24cc,#f9731666)}.competition-results-planet.planet-b{background:radial-gradient(circle at 34% 26%,rgba(255,255,255,.58),transparent 22%),linear-gradient(135deg,#22d3eecc,#3b82f638)}.competition-results-planet.planet-c{background:radial-gradient(circle at 34% 26%,rgba(255,255,255,.44),transparent 18%),linear-gradient(145deg,#a855f7cc,#4f46e542)}.competition-results-planet.planet-d{background:radial-gradient(circle at 34% 26%,rgba(255,255,255,.44),transparent 18%),linear-gradient(145deg,#34d399cc,#0ea5e947)}.competition-results-topbar{position:relative;z-index:2}.competition-results-topbar{display:flex;align-items:center;justify-content:flex-end}.competition-results-actions{display:flex;align-items:center;gap:12px}.competition-results-galaxy{position:relative;z-index:1;min-height:0;height:100%;background:transparent;border:0;box-shadow:none}.competition-results-rocket{position:absolute;z-index:4;width:110px;height:110px;opacity:.92;transition:left 3.2s cubic-bezier(.18,.9,.14,1),top 3.2s cubic-bezier(.18,.9,.14,1),transform 3.2s cubic-bezier(.18,.9,.14,1),opacity 1.8s ease}.competition-results-rocket img{position:relative;z-index:1;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 12px 22px rgba(8,15,36,.62)) drop-shadow(0 0 32px rgba(56,189,248,.34))}.competition-results-rocket.is-flying img{animation:competitionRocketPulse .9s ease-in-out infinite alternate}.competition-results-rocket.is-docked img{animation:competitionRocketDock 2.8s ease-in-out infinite}.competition-results-rocket-trail{position:absolute;top:50%;left:-8px;width:120px;height:22px;border-radius:999px;background:linear-gradient(90deg,#ffc40000,#ffc400f5);filter:blur(12px);transform:translate(-100%,-50%)}.competition-results-candidate{position:absolute;z-index:2;display:grid;justify-items:center;gap:14px;transform:translate(-50%,-50%);animation:competitionFloat 7.6s ease-in-out infinite;animation-delay:var(--float-delay)}.competition-results-candidate-planet{display:block;width:var(--planet-size);height:var(--planet-size);border-radius:50%;box-shadow:inset -16px -18px 24px #0f172a57,inset 12px 10px 18px #ffffff2e,0 16px 28px #0f172a61}.competition-results-candidate.sun .competition-results-candidate-planet{background:radial-gradient(circle at 30% 28%,rgba(255,255,255,.86),transparent 18%),linear-gradient(140deg,#fbbf24,#f97316 70%,#ef4444)}.competition-results-candidate.violet .competition-results-candidate-planet{background:radial-gradient(circle at 30% 28%,rgba(255,255,255,.8),transparent 18%),linear-gradient(150deg,#a855f7,#6366f1 72%,#1d4ed8)}.competition-results-candidate.cyan .competition-results-candidate-planet{background:radial-gradient(circle at 30% 28%,rgba(255,255,255,.76),transparent 18%),linear-gradient(145deg,#22d3ee,#0ea5e9 70%,#2563eb)}.competition-results-candidate.mint .competition-results-candidate-planet{background:radial-gradient(circle at 30% 28%,rgba(255,255,255,.72),transparent 18%),linear-gradient(145deg,#34d399,#14b8a6 70%,#0f766e)}.competition-results-candidate.amber .competition-results-candidate-planet{background:radial-gradient(circle at 30% 28%,rgba(255,255,255,.76),transparent 18%),linear-gradient(145deg,#fde68a,#f59e0b 70%,#d97706)}.competition-results-candidate.rose .competition-results-candidate-planet{background:radial-gradient(circle at 30% 28%,rgba(255,255,255,.76),transparent 18%),linear-gradient(145deg,#fb7185,#ec4899 72%,#be185d)}.competition-results-candidate-card{min-width:150px;max-width:190px;padding:12px 14px;border-radius:20px;text-align:center;background:#0a1126b8;border:1px solid rgba(148,163,184,.16);box-shadow:0 12px 24px #02061742;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.competition-results-candidate-card strong{display:block;font-size:14px;line-height:1.2}.competition-results-candidate-card small{display:block;margin-top:6px;color:#bfdbfec2;font-size:12px}.competition-results-candidate.is-target .competition-results-candidate-planet,.competition-results-candidate.is-revealed .competition-results-candidate-planet{box-shadow:0 0 0 10px #fbbf2424,0 0 32px #fbbf2485,inset -16px -18px 24px #0f172a47,inset 12px 10px 18px #ffffff38}.competition-results-candidate.is-target .competition-results-candidate-card{border-color:#fbbf248a;transform:scale(1.04)}.competition-results-candidate.is-revealed .competition-results-candidate-card{border-color:#facc1570;background:#121d3ee6}.competition-results-celebration{position:absolute;top:0;right:0;bottom:0;left:0;z-index:5;display:grid;place-items:center;pointer-events:none;isolation:isolate}.competition-results-celebration:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at center,#0f172a2e,#0408146b),linear-gradient(180deg,#070c1c1f,#070c1c57);-webkit-backdrop-filter:blur(18px) saturate(1.25);backdrop-filter:blur(18px) saturate(1.25);animation:competitionCelebrationBackdrop .7s ease forwards}.competition-results-firework{position:absolute;z-index:1;width:14px;aspect-ratio:1;border-radius:50%;background:hsl(var(--firework-hue) 92% 64%);box-shadow:0 0 22px hsl(var(--firework-hue) 92% 64% / .9),0 0 44px hsl(var(--firework-hue) 92% 64% / .45);animation:competitionFirework 1.8s ease-out infinite}.competition-results-firework:before,.competition-results-firework:after{content:"";position:absolute;top:-28px;right:-28px;bottom:-28px;left:-28px;border-radius:50%;border:2px solid hsl(var(--firework-hue) 92% 68% / .58);animation:competitionFireworkRing 1.8s ease-out infinite}.competition-results-firework:after{top:-48px;right:-48px;bottom:-48px;left:-48px;animation-delay:.22s}.competition-results-winners{position:relative;z-index:2;display:grid;width:min(980px,calc(100% - 56px));grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;align-self:center;animation:competitionWinnersStage .75s cubic-bezier(.18,.9,.22,1) both}.competition-results-winner-card{position:relative;display:grid;gap:8px;min-height:112px;padding:16px;border-radius:24px;border:1px solid rgba(148,163,184,.14);background:linear-gradient(180deg,#0d1530f0,#0d1530c7),radial-gradient(circle at top right,rgba(56,189,248,.22),transparent 26%);box-shadow:0 24px 44px #02061757,0 0 60px #60a5fa1a;transition:transform .28s ease,border-color .28s ease,opacity .28s ease;opacity:0;transform:translateY(40px) scale(.92);animation:competitionWinnerReveal .8s cubic-bezier(.18,.9,.22,1) forwards;pointer-events:none}.competition-results-winner-card.pending{opacity:.62}.competition-results-winner-card.visible{border-color:#facc1557;box-shadow:0 24px 42px #0206175c,0 0 36px #facc1529}.competition-results-winner-rank{position:absolute;top:16px;right:16px;display:inline-flex;align-items:center;justify-content:center;min-width:40px;min-height:40px;padding:0 12px;border-radius:999px;background:#facc1529;color:#fde68a;font-weight:800}.competition-results-winner-card strong{padding-right:48px;font-size:20px;line-height:1.08}.competition-results-winner-card span{color:#e0e7fff0;font-weight:700}.competition-results-winner-card small{color:#bfdbfeb3;font-size:12px;letter-spacing:.08em;text-transform:uppercase}.competition-results-loading,.competition-results-empty{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at top,rgba(56,189,248,.18),transparent 26%),linear-gradient(180deg,#050816,#0f1636);color:#f8fafc}.competition-results-empty-card{max-width:420px;display:grid;gap:14px;padding:28px;text-align:center;border-radius:28px;background:#090e21c2;border:1px solid rgba(148,163,184,.16);box-shadow:0 24px 48px #0206176b}.competition-results-empty-card h2,.competition-results-empty-card p{margin:0}@keyframes competitionTwinkle{0%,to{opacity:.24;transform:scale(.9)}50%{opacity:1;transform:scale(1.2)}}@keyframes competitionFloat{0%,to{transform:translate(-50%,-50%) translateY(0)}50%{transform:translate(-50%,-50%) translateY(-10px)}}@keyframes competitionRocketPulse{0%{transform:translateY(0) scale(.98)}to{transform:translateY(-4px) scale(1.02)}}@keyframes competitionRocketDock{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(-6px) scale(1.02)}}@keyframes competitionFirework{0%{opacity:0;transform:scale(.2)}22%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.45)}}@keyframes competitionCelebrationBackdrop{0%{opacity:0}to{opacity:1}}@keyframes competitionFireworkRing{0%{opacity:0;transform:scale(.2)}30%{opacity:.9}to{opacity:0;transform:scale(1.18)}}@keyframes competitionWinnersStage{0%{opacity:0;transform:translateY(28px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes competitionWinnerReveal{0%{opacity:0;transform:translateY(42px) scale(.9) rotateX(12deg)}65%{opacity:1;transform:translateY(-8px) scale(1.02) rotateX(0)}to{opacity:1;transform:translateY(0) scale(1) rotateX(0)}}@media(max-width:980px){.competition-results-actions{justify-content:flex-start}.competition-results-galaxy{min-height:0}.competition-results-rocket{width:92px;height:92px}.competition-results-candidate-card{min-width:132px}.competition-results-winners{width:min(760px,calc(100% - 28px))}}@media(max-width:640px){.competition-results-space{padding:14px 10px}.competition-results-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}.competition-results-actions .btn{width:100%}.competition-results-galaxy{border-radius:0}.competition-results-candidate-card{min-width:116px;max-width:146px;padding:10px 11px}.competition-results-candidate-card strong{font-size:12px}.competition-results-candidate-card small{font-size:11px}.competition-results-rocket{width:78px;height:78px}.competition-results-winners{width:calc(100% - 18px);grid-template-columns:1fr}}@keyframes navbarDrawerIn{0%{opacity:0;transform:translate(28px)}to{opacity:1;transform:translate(0)}}.students-page{min-width:0}.students-table td{min-width:0;word-break:break-word}.students-table .parent-column{min-width:0}.students-table-actions{min-width:170px}.student-form-modal{width:min(960px,calc(100vw - 28px))}.student-form-modal{align-self:start;margin:10px auto 30px;max-height:calc(100vh - 50px)}.attendance-page{min-width:0}@media(max-width:980px){.students-page .students-head{width:100%;align-items:stretch}.students-page .students-head>.btn{width:100%}}@media(max-width:760px){.attendance-page{display:grid;gap:14px;padding-bottom:calc(140px + env(safe-area-inset-bottom))}.attendance-page .page-head{gap:10px}.attendance-page .page-head-actions{width:100%}.attendance-page .page-head-actions .action-tooltip-wrap{flex:1 1 0;min-width:0}.attendance-page .page-head-actions .page-action-button{width:100%}.attendance-page .attendance-clean-controls,.attendance-page .attendance-summary-card,.attendance-page .attendance-list-card{border-radius:16px}.students-page .table-wrap{overflow:visible}.students-table thead{display:none}.students-table,.students-table tbody,.students-table tr,.students-table td{display:block;width:100%}.students-table tbody{display:grid;gap:12px}.students-table tr{border:1px solid var(--border);border-radius:14px;padding:10px 12px;background:var(--surface);box-shadow:0 12px 30px #0f172a0a}.students-table td{border-bottom:1px dashed rgba(148,163,184,.34);padding:8px 0;display:grid;grid-template-columns:minmax(88px,36%) minmax(0,1fr);gap:10px;align-items:start}.students-table td:before{content:attr(data-label);font-size:11px;line-height:1.25;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.students-table td:last-child{border-bottom:0;padding-bottom:0}.students-table .students-table-actions{min-width:0}.students-table .table-action-stack{width:100%;display:grid;gap:8px}.students-table .table-action-stack .btn{width:100%;margin-right:0}.students-table .parent-column{gap:6px}.students-table .parent-item{padding:8px 9px}.students-table .status-pill{justify-self:flex-start}.student-form-modal{width:min(100vw - 16px,100%);max-height:calc(100vh - 50px);padding:12px;border-radius:14px;margin:10px auto 30px}.student-form-modal .modal-top{align-items:flex-start}.student-form-modal .modal-top h3{font-size:18px;line-height:1.24}.student-form-modal .soft-block{padding:10px}.student-form-modal .checkbox-field{width:100%}.student-form-modal .row-actions{flex-direction:column;align-items:stretch}.student-form-modal .row-actions .btn{width:100%}}@media(max-width:480px){.students-table td{grid-template-columns:1fr;gap:6px}.students-table td:before{font-size:10px}.student-form-modal .modal-top h3{font-size:16px}}.groups-page{min-width:0}.groups-page .list-search{width:100%;max-width:320px}.groups-list-card{overflow:hidden}.groups-table{width:100%;border-collapse:collapse}.groups-table td{min-width:0;word-break:break-word}.groups-table .groups-table-actions{min-width:166px}.groups-table .table-action-stack{display:flex;flex-wrap:wrap;gap:6px}.groups-table .table-action-stack .btn{margin-right:0}@media(max-width:980px){.groups-page .students-head{width:100%;align-items:stretch}.groups-page .students-head>.btn{width:100%}.groups-page .list-search{max-width:100%}}@media(max-width:760px){.groups-page .list-toolbar{align-items:stretch;flex-direction:column;gap:10px}.groups-page .list-toolbar h3{font-size:18px}.groups-page .table-wrap{overflow:visible}.groups-table thead{display:none}.groups-table,.groups-table tbody,.groups-table tr,.groups-table td{display:block;width:100%}.groups-table tbody{display:grid;gap:12px}.groups-table tr{border:1px solid var(--border);border-radius:14px;padding:10px 12px;background:var(--surface);box-shadow:0 12px 30px #0f172a0a}.groups-table td{border-bottom:1px dashed rgba(148,163,184,.34);padding:8px 0;display:grid;grid-template-columns:minmax(92px,38%) minmax(0,1fr);gap:10px;align-items:start}.groups-table td:before{content:attr(data-label);font-size:11px;line-height:1.25;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.groups-table td:last-child{border-bottom:0;padding-bottom:0}.groups-table .groups-table-actions{min-width:0}.groups-table .table-action-stack{width:100%;display:grid;gap:8px}.groups-table .table-action-stack .btn{width:100%}}@media(max-width:480px){.groups-page .students-head>.btn{padding-inline:12px}.groups-table td{grid-template-columns:1fr;gap:6px}.groups-table td:before{font-size:10px}}.payments-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:14px;margin-bottom:16px}.payments-page{min-width:0}.payments-summary-card{display:grid;gap:4px;min-height:84px}.payments-summary-card strong{font-size:1.45rem}.payments-filter-card{display:grid;gap:12px;margin-bottom:16px;padding:14px 16px 16px}.payments-filter-top{margin-bottom:0}.payments-filter-top h3{font-size:16px;letter-spacing:-.02em}.payments-filter-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;align-items:center}.payments-table td{min-width:0;word-break:break-word}.payments-table-actions{min-width:190px}.payments-table-empty{text-align:center}.payment-status{display:inline-flex;align-items:center;justify-content:center;padding:6px 10px;border-radius:999px;font-size:.78rem;font-weight:700;letter-spacing:.02em}.payment-status-paid{background:#16a34a26;color:#166534}.payment-status-pending{background:#2563eb1f;color:#1d4ed8}.payment-status-overdue{background:#dc262624;color:#b91c1c}.payment-status-waived{background:#6b728026;color:#374151}.payments-modal{width:min(1100px,calc(100vw - 32px))}.payment-confirm-modal{width:min(460px,calc(100vw - 32px))}.payments-modal-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px}.payments-modal-head .muted{font-weight:700}.payments-modal-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:16px}.payment-timeline-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}.payment-timeline-tile{display:grid;gap:8px;text-align:left;padding:14px;border-radius:18px;border:1px solid rgba(148,163,184,.24);background:#ffffffb8;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease,background .16s ease}.payment-timeline-tile.active{border-color:#0e749066;box-shadow:0 18px 40px #0f172a14}:root[data-theme=dark] .payment-timeline-tile{border-color:#94a3b82e;background:radial-gradient(circle at top left,rgba(34,197,181,.08),transparent 28%),linear-gradient(180deg,#0c1c2bf5,#08121ef5);box-shadow:inset 0 1px #ffffff08,0 16px 30px #0000002e}:root[data-theme=dark] .payment-timeline-tile:hover{border-color:#4fd3c447;transform:translateY(-1px);box-shadow:inset 0 1px #ffffff0a,0 18px 34px #00000038}:root[data-theme=dark] .payment-timeline-tile.active{border-color:#4fd3c457;background:radial-gradient(circle at top left,rgba(34,197,181,.12),transparent 26%),linear-gradient(180deg,#0e283afa,#08121efa);box-shadow:inset 0 1px #ffffff0d,0 20px 38px #00000047}:root[data-theme=dark] .payment-timeline-tile .payment-status{box-shadow:0 0 0 1px #ffffff0d inset}.payment-edit-grid{display:grid;gap:12px}.payment-status-row{display:flex;flex-wrap:wrap;gap:8px}.payment-note{min-height:120px;resize:vertical}@media(max-width:980px){.payments-page .page-head-actions{width:100%;justify-content:flex-start}.payments-page .page-head-actions .payments-filter-toggle{flex:0 0 46px}.payments-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.payments-modal-grid{grid-template-columns:1fr}}@media(max-width:760px){.payments-summary-grid{grid-auto-flow:column;grid-auto-columns:minmax(92px,1fr);grid-template-columns:unset;gap:8px;overflow-x:auto;padding-bottom:2px;margin-bottom:14px;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch}.payments-summary-card{padding:12px 11px;min-height:76px;scroll-snap-align:start}.payments-summary-card strong{font-size:1.05rem}.payments-summary-card .muted{font-size:11px}.payments-filter-grid{grid-template-columns:1fr}.payments-page .checkbox-field{width:100%}.payments-page .page-head-actions{display:block}.payments-page .page-head-actions .payments-filter-toggle{width:46px;min-width:46px;padding:0;flex:0 0 46px;right:12px}.payments-filter-card{padding:12px 12px 14px;gap:10px}.payments-page .table-wrap{overflow:visible}.payments-table thead{display:none}.payments-table,.payments-table tbody,.payments-table tr,.payments-table td{display:block;width:100%}.payments-table tbody{display:grid;gap:12px}.payments-table tr{border:1px solid var(--border);border-radius:14px;padding:10px 12px;background:var(--surface);box-shadow:0 12px 30px #0f172a0a}.payments-table td{border-bottom:1px dashed rgba(148,163,184,.34);padding:8px 0;display:grid;grid-template-columns:minmax(88px,36%) minmax(0,1fr);gap:10px;align-items:start}.payments-table td:before{content:attr(data-label);font-size:11px;line-height:1.25;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.payments-table td:last-child{border-bottom:0;padding-bottom:0}.payments-table .payments-table-actions{min-width:0}.payments-table .table-action-stack{width:100%;display:grid;gap:8px}.payments-table .table-action-stack .btn{width:100%;margin-right:0}.payments-table .payments-table-empty{display:block;border-bottom:0;padding:2px 0 0;text-align:left}.payments-table .payments-table-empty:before{content:none}.payments-modal,.payment-confirm-modal{width:min(100vw - 20px,100%)}.payments-modal-head{flex-wrap:wrap;gap:8px;margin-bottom:12px}.payments-modal-head .muted{width:100%;order:-1;text-align:center}.payments-modal-head .btn{flex:1 1 calc(50% - 4px);min-width:0}.payment-timeline-grid{grid-template-columns:1fr}.payment-status-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.payment-status-row .btn{width:100%;margin-right:0}.payment-edit-grid .row-actions{flex-direction:column;align-items:stretch}.payment-edit-grid .row-actions .btn{width:100%}}@media(max-width:480px){.payments-summary-grid{grid-auto-columns:minmax(84px,1fr);gap:7px}.payments-page .page-head-actions .payments-filter-toggle{right:10px}.payments-table td{grid-template-columns:1fr;gap:6px}.payments-table td:before{font-size:10px}.payments-table td .payment-status{justify-self:flex-start}.payment-status-row{grid-template-columns:1fr}}
