:root{--bg0:#070a12;--bg1:#0b1020;--bg2:#121a2d;--glass:rgba(255,255,255,.06);--glass-strong:rgba(255,255,255,.1);--stroke:rgba(255,255,255,.1);--stroke-strong:rgba(255,255,255,.16);--text:#eaf0ff;--text-strong:#ffffff;--muted:rgba(234,240,255,.62);--muted-soft:rgba(234,240,255,.42);--muted2:rgba(234,240,255,.55);--blue:#4da3ff;--blue-dark:#2e6dff;--green:#31d09a;--orange:#ff9f43;--red:#ff6b6b;--card-bg:linear-gradient(180deg, rgba(255,255,255,.09), rgba(255,255,255,.05));--card-border:rgba(255,255,255,.12);--card-border-strong:rgba(255,255,255,.18);--card-highlight: radial-gradient(420px 260px at 25% 15%, rgba(255,255,255,.1), transparent 55%), radial-gradient(360px 240px at 90% 10%, rgba(77,163,255,.1), transparent 60%);--panel-bg:linear-gradient(180deg, rgba(255,255,255,.1), rgba(255,255,255,.04));--panel-border:rgba(255,255,255,.1);--soft-bg:rgba(255,255,255,.04);--soft-bg-2:rgba(255,255,255,.05);--hover-bg:rgba(255,255,255,.06);--table-border:rgba(255,255,255,.08);--input-bg:linear-gradient(180deg, rgba(255,255,255,.1), rgba(255,255,255,.04));--input-focus-bg:linear-gradient(180deg, rgba(255,255,255,.12), rgba(255,255,255,.06));--body-bg: radial-gradient(1200px 600px at 35% 10%, rgba(77,163,255,.18), transparent 55%), radial-gradient(900px 520px at 70% 25%, rgba(255,159,67,.14), transparent 55%), radial-gradient(1200px 900px at 50% 90%, rgba(0,0,0,.65), rgba(0,0,0,.88)), linear-gradient(180deg, var(--bg1), var(--bg0));--chart-bg: radial-gradient(360px 180px at 20% 30%, rgba(77,163,255,.16), transparent 62%), linear-gradient(180deg, rgba(255,255,255,.04), rgba(0,0,0,.1));--theme-switch-bg:rgba(255,255,255,.06);--theme-switch-border:rgba(255,255,255,.1);--theme-switch-thumb:linear-gradient(135deg, var(--blue), var(--blue-dark));--radius-xl:28px;--radius-lg:24px;--radius-md:18px;--radius-sm:14px;--radius-xs:10px;--shadow-lg:0 28px 70px rgba(0,0,0,.55);--shadow-md:0 18px 40px rgba(0,0,0,.5);--shadow-sm:0 10px 24px rgba(0,0,0,.22);--shadow-primary:0 10px 30px rgba(77,163,255,.35);--grain-opacity:.06}body[data-theme=light]{--bg0:#f4f7fb;--bg1:#ffffff;--bg2:#f1f5f9;--text:#0f172a;--text-strong:#020617;--muted:rgba(15,23,42,.72);--muted-soft:rgba(15,23,42,.52);--muted2:rgba(15,23,42,.6);--blue:#2563eb;--blue-dark:#1e40af;--green:#059669;--orange:#ea580c;--red:#dc2626;--glass:rgba(255,255,255,.85);--glass-strong:rgba(255,255,255,.95);--stroke:rgba(15,23,42,.14);--stroke-strong:rgba(15,23,42,.26);--panel-border:rgba(148,163,184,.34);--card-border:rgba(148,163,184,.38);--card-border-strong:rgba(100,116,139,.45);--card-bg: linear-gradient(180deg, #ffffff 0%, #f6f9ff 100%);--card-highlight: radial-gradient(420px 260px at 20% 10%, rgba(255,255,255,.95), transparent 55%), radial-gradient(360px 240px at 90% 10%, rgba(37,99,235,.1), transparent 60%);--panel-bg: linear-gradient(180deg, #ffffff 0%, #f4f7fb 100%);--soft-bg:rgba(15,23,42,.04);--soft-bg-2:rgba(15,23,42,.06);--hover-bg:rgba(37,99,235,.08);--input-bg: linear-gradient(180deg, #ffffff 0%, #f5f8ff 100%);--input-focus-bg: linear-gradient(180deg, #ffffff 0%, #eef4ff 100%);--table-border:rgba(148,163,184,.3);--body-bg: radial-gradient(900px 440px at 15% 0%, rgba(59,130,246,.12), transparent 58%), radial-gradient(700px 340px at 90% 10%, rgba(14,165,233,.08), transparent 55%), linear-gradient(180deg, #ffffff 0%, #f6f9ff 50%, #eef3f9 100%);--chart-bg: radial-gradient(360px 180px at 20% 30%, rgba(37,99,235,.12), transparent 62%), linear-gradient(180deg, #ffffff, #f1f6ff);--theme-switch-bg:rgba(255,255,255,.95);--theme-switch-border:rgba(148,163,184,.3);--theme-switch-thumb:linear-gradient(135deg, #2563eb, #1d4ed8);--shadow-lg: 0 20px 50px rgba(15,23,42,.1), 0 6px 16px rgba(15,23,42,.06);--shadow-md: 0 12px 28px rgba(15,23,42,.08);--shadow-sm: 0 6px 14px rgba(15,23,42,.06);--shadow-primary: 0 10px 26px rgba(37,99,235,.22);--grain-opacity:.02}body[data-theme=midnight]{--bg0:#08101d;--bg1:#0d1728;--bg2:#16243c;--glass:rgba(255,255,255,.07);--glass-strong:rgba(255,255,255,.11);--stroke:rgba(255,255,255,.1);--stroke-strong:rgba(255,255,255,.17);--text:#edf4ff;--text-strong:#ffffff;--muted:rgba(237,244,255,.66);--muted-soft:rgba(237,244,255,.44);--muted2:rgba(237,244,255,.56);--blue:#60a5fa;--blue-dark:#2563eb;--green:#22c55e;--orange:#f59e0b;--red:#f87171;--card-bg:linear-gradient(180deg, rgba(19,32,55,.94), rgba(12,22,40,.92));--card-border:rgba(148,163,184,.18);--card-border-strong:rgba(191,219,254,.18);--card-highlight: radial-gradient(420px 260px at 25% 15%, rgba(255,255,255,.05), transparent 55%), radial-gradient(360px 240px at 90% 10%, rgba(96,165,250,.12), transparent 60%);--panel-bg:linear-gradient(180deg, rgba(17,28,46,.92), rgba(12,21,37,.9));--panel-border:rgba(148,163,184,.16);--soft-bg:rgba(255,255,255,.035);--soft-bg-2:rgba(255,255,255,.05);--hover-bg:rgba(255,255,255,.07);--table-border:rgba(148,163,184,.12);--input-bg:linear-gradient(180deg, rgba(20,33,56,.95), rgba(12,22,40,.92));--input-focus-bg:linear-gradient(180deg, rgba(24,39,66,.98), rgba(14,26,46,.95));--body-bg: radial-gradient(1000px 500px at 12% 0%, rgba(96,165,250,.16), transparent 60%), radial-gradient(900px 400px at 100% 10%, rgba(37,99,235,.12), transparent 60%), linear-gradient(180deg, #0f1a2d 0%, #0a1322 55%, #07101d 100%);--chart-bg: radial-gradient(360px 180px at 20% 30%, rgba(96,165,250,.18), transparent 62%), linear-gradient(180deg, rgba(255,255,255,.04), rgba(0,0,0,.14));--theme-switch-bg:rgba(17,28,46,.9);--theme-switch-border:rgba(148,163,184,.16);--theme-switch-thumb:linear-gradient(135deg, #60a5fa, #2563eb);--shadow-lg:0 26px 60px rgba(0,0,0,.4);--shadow-md:0 16px 34px rgba(0,0,0,.32);--shadow-sm:0 10px 22px rgba(0,0,0,.22);--shadow-primary:0 10px 28px rgba(37,99,235,.28);--grain-opacity:.045}body[data-theme=gradient]{--bg0:#120d24;--bg1:#1a1335;--bg2:#25174c;--glass:rgba(255,255,255,.08);--glass-strong:rgba(255,255,255,.12);--stroke:rgba(255,255,255,.11);--stroke-strong:rgba(255,255,255,.18);--text:#f4f2ff;--text-strong:#ffffff;--muted:rgba(244,242,255,.72);--muted-soft:rgba(244,242,255,.48);--muted2:rgba(244,242,255,.58);--blue:#7c4dff;--blue-dark:#5b3df5;--green:#22c55e;--orange:#fb7185;--red:#f43f5e;--card-bg:linear-gradient(180deg, rgba(255,255,255,.1), rgba(255,255,255,.05));--card-border:rgba(255,255,255,.13);--card-highlight: radial-gradient(420px 260px at 18% 12%, rgba(255,255,255,.12), transparent 55%), radial-gradient(360px 240px at 88% 10%, rgba(124,77,255,.18), transparent 60%), radial-gradient(420px 260px at 70% 100%, rgba(236,72,153,.12), transparent 55%);--panel-bg:linear-gradient(180deg, rgba(255,255,255,.1), rgba(255,255,255,.04));--panel-border:rgba(255,255,255,.12);--hover-bg:rgba(255,255,255,.07);--soft-bg:rgba(255,255,255,.045);--soft-bg-2:rgba(255,255,255,.06);--table-border:rgba(255,255,255,.08);--input-bg:linear-gradient(180deg, rgba(255,255,255,.12), rgba(255,255,255,.05));--input-focus-bg:linear-gradient(180deg, rgba(255,255,255,.15), rgba(255,255,255,.06));--grain-opacity:.055;--shadow-lg:0 28px 70px rgba(10,6,26,.48);--shadow-md:0 16px 40px rgba(10,6,26,.42);--shadow-sm:0 10px 24px rgba(10,6,26,.28);--shadow-primary:0 12px 32px rgba(124,77,255,.28);--body-bg: radial-gradient(1200px 600px at 10% 0%, rgba(124,77,255,.22), transparent 55%), radial-gradient(1000px 620px at 88% 8%, rgba(236,72,153,.18), transparent 55%), radial-gradient(900px 520px at 50% 100%, rgba(34,197,94,.1), transparent 60%), linear-gradient(135deg, #110b23 0%, #1b1240 28%, #291756 58%, #17112d 100%);--chart-bg: radial-gradient(360px 180px at 20% 30%, rgba(124,77,255,.2), transparent 62%), linear-gradient(180deg, rgba(255,255,255,.05), rgba(0,0,0,.12));--theme-switch-bg:rgba(255,255,255,.08);--theme-switch-border:rgba(255,255,255,.14);--theme-switch-thumb:linear-gradient(135deg, #7c4dff, #ec4899)}*{box-sizing:border-box}html,body{min-height:100%;overflow-x:hidden;scroll-behavior:smooth}body.modal-open{overflow:hidden}body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;color:var(--text);background:var(--body-bg);overflow-x:hidden;transition:background .35s ease,color .25s ease}body:before{content:"";position:fixed;inset:0;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.7' numOctaves='2'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)' opacity='.07'/%3E%3C/svg%3E");opacity:var(--grain-opacity);z-index:0}img{max-width:100%;display:block}a{color:inherit}.glass-card:before,.glass:before,.card:before{pointer-events:none}.glass{background:var(--panel-bg);border:1px solid var(--panel-border);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);transition:background .25s ease,border-color .25s ease,box-shadow .25s ease}.glass-card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);position:relative;overflow:hidden;transition:background .25s ease,border-color .25s ease,box-shadow .25s ease,transform .25s ease}.glass-card:before{content:"";position:absolute;inset:0;background:var(--card-highlight);opacity:.85}.glass-card:hover{transform:translateY(-2px)}.h1{font-size:20px;font-weight:700;color:var(--text-strong)}.h2{font-size:16px;font-weight:700;color:var(--text-strong)}.h3{font-size:13px;font-weight:600;color:var(--text-strong)}.text-muted{color:var(--muted)}.text-soft{color:var(--muted-soft)}.btn{min-height:38px;padding:0 18px;margin-right:10px;border-radius:var(--radius-sm);border:1px solid var(--stroke);background:var(--glass);color:var(--text);font-size:13px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;white-space:nowrap;transition:transform .18s ease,background .22s ease,border-color .22s ease,box-shadow .22s ease,color .22s ease;box-shadow:inset 0 1px #ffffff0f}.btn:hover{transform:translateY(-1px);background:var(--hover-bg);border-color:var(--stroke-strong)}.btn:active{transform:translateY(0)}.btn-primary{background:linear-gradient(135deg,var(--blue),var(--blue-dark));border:none;color:#fff;box-shadow:var(--shadow-primary)}.btn-primary:hover{filter:brightness(1.03)}.btn-success{background:color-mix(in srgb,var(--green) 16%,transparent);border:1px solid color-mix(in srgb,var(--green) 30%,transparent);color:var(--text)}.btn-warning{background:color-mix(in srgb,var(--orange) 16%,transparent);border:1px solid color-mix(in srgb,var(--orange) 30%,transparent);color:var(--text)}.btn.primary{background:linear-gradient(135deg,var(--blue),var(--blue-dark));border:none;color:#fff}.btn.start{background:linear-gradient(135deg,color-mix(in srgb,var(--blue) 90%,white 10%),color-mix(in srgb,var(--blue-dark) 78%,transparent));border:none;color:#fff}.btn.detect{background:color-mix(in srgb,var(--green) 10%,transparent);border:1px solid color-mix(in srgb,var(--green) 20%,transparent);font-weight:700}.btn.present{background:var(--soft-bg-2);border:1px solid var(--stroke);font-weight:700}.btn-outline{background:transparent;border:1px solid var(--stroke);color:var(--text)}.btn-icon{width:38px;min-width:38px;padding:0}.btn-group{display:flex;flex-wrap:wrap;gap:10px}.btn-group .btn{margin-right:0}.btn:disabled{background:#dcdcdc;color:#fff;border:1px solid #dcdcdc;cursor:not-allowed;opacity:.7;transform:none;box-shadow:none}.theme-switch{display:inline-flex;align-items:center;gap:6px;padding:6px;border-radius:999px;background:var(--theme-switch-bg);border:1px solid var(--theme-switch-border);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:var(--shadow-sm)}.theme-switch .theme-btn{border:none;background:transparent;color:var(--muted);height:34px;min-width:88px;padding:0 14px;border-radius:999px;font-size:12px;font-weight:700;cursor:pointer;transition:all .2s ease}body[data-theme=dark] .theme-switch .theme-btn[data-theme=dark],body[data-theme=light] .theme-switch .theme-btn[data-theme=light],body[data-theme=gradient] .theme-switch .theme-btn[data-theme=gradient]{background:var(--theme-switch-thumb);color:#fff;box-shadow:0 8px 22px #00000029}.chip{min-height:30px;padding:0 12px;border-radius:999px;font-size:12px;font-weight:700;display:inline-flex;align-items:center;gap:8px;background:var(--soft-bg-2);border:1px solid var(--stroke);color:var(--text);box-shadow:inset 0 1px #ffffff14}.chip.blue{background:color-mix(in srgb,var(--blue) 14%,transparent);border-color:color-mix(in srgb,var(--blue) 22%,transparent)}.chip.green{background:color-mix(in srgb,var(--green) 14%,transparent);border-color:color-mix(in srgb,var(--green) 22%,transparent)}.chip.orange{background:color-mix(in srgb,var(--orange) 14%,transparent);border-color:color-mix(in srgb,var(--orange) 22%,transparent)}.chip.gray{background:color-mix(in srgb,var(--muted) 12%,transparent);border-color:var(--stroke)}.page{min-height:100vh;padding:20px;position:relative;z-index:1}.center{display:flex;align-items:center;justify-content:center}.stack{display:flex;flex-direction:column;gap:18px}.row{display:flex;gap:16px}.wrap{flex-wrap:wrap}.grid{position:relative;z-index:1;display:grid;grid-template-columns:300px 1fr 370px;gap:18px;padding:6px 8px 2px}.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;width:100%}.grid-5{display:grid;grid-template-columns:repeat(5,1fr);gap:16px;width:100%}.w-100{width:100%}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 18px}.nav{display:flex;gap:28px;align-items:center}.nav a{text-decoration:none;color:var(--muted);font-weight:600;position:relative;transition:color .2s ease}.nav a:hover{color:var(--text)}.nav a.active{color:var(--text-strong)}.nav a.active:after{content:"";position:absolute;left:10%;right:10%;bottom:-8px;height:3px;border-radius:999px;background:linear-gradient(90deg,transparent,var(--blue),transparent)}input,.input,select,textarea{width:100%;height:40px;padding:0 14px;border-radius:var(--radius-sm);border:1px solid var(--stroke);background:var(--input-bg);color:var(--text);font-family:inherit;font-size:13px;font-weight:500;outline:none;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);transition:border .2s ease,box-shadow .2s ease,background .2s ease,color .2s ease}input::placeholder,.input::placeholder,textarea::placeholder{color:var(--muted-soft);font-weight:500}input:focus,.input:focus,select:focus,textarea:focus{border-color:color-mix(in srgb,var(--blue) 55%,transparent);box-shadow:0 0 0 1px color-mix(in srgb,var(--blue) 24%,transparent),0 10px 30px color-mix(in srgb,var(--blue) 18%,transparent);background:var(--input-focus-bg)}input:disabled,.input:disabled,select:disabled,textarea:disabled{opacity:.52;cursor:not-allowed}textarea{min-height:110px;height:auto;padding:12px 14px;resize:vertical;line-height:1.55}input[type=date]{color:var(--muted)}body[data-theme=dark] input[type=date]::-webkit-calendar-picker-indicator,body[data-theme=gradient] input[type=date]::-webkit-calendar-picker-indicator{filter:invert(1);opacity:.7}body[data-theme=light] input[type=date]::-webkit-calendar-picker-indicator{filter:none;opacity:.75}input[type=file]{height:auto;padding:10px;font-size:12px;cursor:pointer}select{padding:0 36px 0 14px;appearance:none;-webkit-appearance:none;-moz-appearance:none;color:var(--text)!important;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-position:calc(100% - 18px) calc(50% - 3px),calc(100% - 12px) calc(50% - 3px);background-size:6px 6px,6px 6px;background-repeat:no-repeat}body[data-theme=dark] select,body[data-theme=gradient] select{color-scheme:dark}body[data-theme=light] select{color-scheme:light}body[data-theme=dark] select option,body[data-theme=gradient] select option{background-color:#1f2435!important;color:#eaf0ff!important}body[data-theme=light] select option{background-color:#fff!important;color:#0f172a!important}input[type=checkbox]{appearance:none;width:18px;height:18px;border-radius:6px;background:var(--glass);border:1px solid var(--stroke);display:inline-grid;place-items:center;cursor:pointer;margin-top:2px;padding:0}input[type=checkbox]:checked{background:linear-gradient(135deg,var(--blue),var(--blue-dark));border-color:transparent}input[type=checkbox]:checked:after{content:"\2714";font-size:12px;font-weight:900;color:#fff}input[type=radio]{appearance:none;width:18px;height:18px;border-radius:50%;background:var(--glass);border:1px solid var(--stroke);display:grid;place-items:center;cursor:pointer;padding:0}input[type=radio]:checked{border-color:var(--blue)}input[type=radio]:checked:after{content:"";width:8px;height:8px;border-radius:50%;background:var(--blue)}.form-group{display:flex;flex-direction:column;gap:6px}.form-label{font-size:12px;font-weight:700;color:var(--muted)}.input.error,input.error,select.error,textarea.error{border-color:#ff505099;box-shadow:0 0 0 1px #ff50502e}.form-error{font-size:12px;color:var(--red);margin-top:4px}.input.sm{height:36px;font-size:12px}.input.lg{height:52px;font-size:15px}.titleRow{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.title{font-size:15px;font-weight:700;letter-spacing:.2px;color:var(--text-strong)}.sub{color:var(--muted);font-size:12px}.weatherHead{display:flex;justify-content:space-between;gap:12px}.temp{font-size:44px;font-weight:700;line-height:1;margin-top:8px;color:var(--text-strong)}.cloud{width:86px;height:86px;border-radius:22px;display:grid;place-items:center;background:var(--soft-bg-2);border:1px solid var(--stroke);box-shadow:inset 0 1px #ffffff1a;font-size:36px}.miniStats{margin-top:14px;display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}.mini{border-radius:16px;padding:12px 10px;background:var(--soft-bg-2);border:1px solid var(--stroke);text-align:center}.mini b{display:block;font-size:22px;margin-top:6px;color:var(--text-strong)}.mini span{font-size:12px;color:var(--muted)}.addRow{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}.ghostBtn{height:36px;border-radius:14px;border:1px solid var(--stroke);background:var(--soft-bg-2);color:var(--text);font-weight:700;display:flex;align-items:center;justify-content:center;gap:10px;box-shadow:inset 0 1px #ffffff1a;cursor:pointer;transition:all .2s ease}.ghostBtn:hover{transform:translateY(-1px);background:var(--hover-bg)}.chartArea{margin-top:12px;height:150px;border-radius:16px;border:1px solid var(--stroke);background:var(--chart-bg);position:relative;overflow:hidden}.chartLine{position:absolute;inset:0;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 600 200'%3E%3Cpath d='M20 160 C80 60, 140 180, 210 120 C280 60, 340 160, 420 90 C500 30, 560 140, 580 70' fill='none' stroke='%234da3ff' stroke-width='4' stroke-linecap='round' opacity='.8'/%3E%3Ccircle cx='210' cy='120' r='6' fill='%23ffffff' opacity='.65'/%3E%3Ccircle cx='420' cy='90' r='6' fill='%23ffffff' opacity='.65'/%3E%3C/svg%3E") center/cover no-repeat;opacity:.85;filter:drop-shadow(0 10px 18px color-mix(in srgb,var(--blue) 20%,transparent))}.filters{display:flex;gap:12px;margin:10px 0 18px;flex-wrap:nowrap;position:relative;z-index:50}.filters input,.filters select{height:38px;border-radius:14px;background:var(--glass);border:1px solid var(--stroke);color:var(--text);padding:0 14px}.select{flex:1;min-height:40px;border-radius:14px;padding:0 12px;display:flex;align-items:center;justify-content:space-between;background:var(--soft-bg-2);border:1px solid var(--stroke);color:var(--text);font-weight:600;font-size:13px;position:relative;z-index:60}.select small{color:var(--muted2);font-weight:600}.dots{width:40px;flex:0 0 40px;justify-content:center}.studentsRow{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:6px}.studentsRow b{font-size:14px;color:var(--text-strong)}.toggle{display:flex;align-items:center;gap:10px;padding:6px 10px;border-radius:999px;background:color-mix(in srgb,var(--green) 10%,transparent);border:1px solid color-mix(in srgb,var(--green) 18%,transparent);font-size:12px;font-weight:700;color:var(--text)}.dot{width:10px;height:10px;border-radius:50%;background:var(--green);box-shadow:0 0 0 4px color-mix(in srgb,var(--green) 18%,transparent)}.studentGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px}.stu{display:flex;align-items:center;gap:12px;padding:12px;border-radius:14px;background:var(--soft-bg-2);border:1px solid var(--stroke);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:transform .2s ease,box-shadow .2s ease,background .2s ease}.stu:hover{transform:translateY(-2px);box-shadow:var(--shadow-sm)}.stu img{width:44px;height:36px;border-radius:50%;object-fit:cover;flex-shrink:0}.stu .name{font-weight:700;font-size:14px;color:var(--text-strong)}.stu .id{font-size:12px;color:var(--muted2)}.btnRow{margin-top:16px;display:grid;grid-template-columns:1.1fr 1fr 1fr;gap:10px}.list{display:flex;flex-direction:column;gap:12px;margin-top:10px}.item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border-radius:16px;background:var(--soft-bg);border:1px solid var(--stroke)}.leftInfo{display:flex;align-items:center;gap:12px}.appIcon{width:40px;height:40px;border-radius:14px;background:color-mix(in srgb,var(--blue) 12%,transparent);border:1px solid color-mix(in srgb,var(--blue) 18%,transparent);display:grid;place-items:center;font-weight:900}.meta b{display:block;font-size:13px;color:var(--text-strong)}.meta small{display:block;color:var(--muted2);margin-top:4px}.examRow{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}.exam{display:flex;gap:12px;align-items:center;padding:12px;border-radius:18px;background:var(--soft-bg);border:1px solid var(--stroke)}.exam .face{width:44px;height:36px;border-radius:16px;background:url(https://i.pravatar.cc/100?img=13) center/cover no-repeat;border:1px solid var(--stroke-strong)}.exam b{display:block;font-size:13px;color:var(--text-strong)}.exam small{display:block;color:var(--muted2);margin-top:4px}.performGrid{margin-top:12px;display:grid;grid-template-columns:1fr 1fr;gap:12px}.perf{padding:12px;border-radius:18px;background:var(--soft-bg);border:1px solid var(--stroke);display:flex;align-items:center;justify-content:space-between;gap:10px}.perf .p{display:flex;gap:10px;align-items:center}.perf .p img{width:34px;height:34px;border-radius:14px;object-fit:cover;border:1px solid var(--stroke-strong)}.perf b{display:block;font-size:12px;color:var(--text-strong)}.perf small{display:block;color:var(--muted2);margin-top:2px}.score{font-weight:800;color:var(--green)}.header{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px}.header h1{margin:0;font-size:25px;color:var(--text-strong)}.header .btns{display:flex;gap:12px;flex-wrap:wrap}table{width:100%;border-collapse:collapse}th,td{padding:14px;font-size:11px;border-bottom:1px solid var(--table-border)}th{text-align:left;color:var(--muted);font-size:12px;font-weight:700}td{color:var(--text)}.user{display:flex;align-items:center;gap:12px}.user img{width:42px;height:42px;border-radius:14px;object-fit:cover}.tag{display:inline-flex;align-items:center;min-height:26px;padding:4px 10px;border-radius:10px;font-size:10px;font-weight:700;margin-right:6px;color:var(--text-strong);border:1px solid transparent}.physics{background:color-mix(in srgb,var(--orange) 24%,transparent);border-color:color-mix(in srgb,var(--orange) 34%,transparent)}.history{background:color-mix(in srgb,var(--blue) 24%,transparent);border-color:color-mix(in srgb,var(--blue) 34%,transparent)}.english{background:color-mix(in srgb,var(--green) 24%,transparent);border-color:color-mix(in srgb,var(--green) 34%,transparent)}.math{background:color-mix(in srgb,var(--blue) 18%,transparent);border-color:color-mix(in srgb,var(--blue) 28%,transparent)}.status{font-weight:700}.active{color:var(--green)}.leave{color:var(--orange)}.actions-col{font-size:12px;opacity:.95}.actions-col span{cursor:pointer;padding:6px;margin-right:6px;border-radius:8px;transition:background .2s ease,color .2s ease;font-size:12px;display:inline-flex;align-items:center;justify-content:center}.actions-col span:hover{background:var(--hover-bg)}.footer{display:flex;justify-content:space-between;gap:12px;margin-top:14px;font-size:12px;color:var(--muted)}.green{background:var(--green)}.orange{background:var(--orange)}.gray{background:#777}@media (max-width:768px){.responsive-table thead{display:none}.responsive-table,.responsive-table tbody,.responsive-table tr{display:block;width:100%}.responsive-table tr{background:var(--soft-bg);border:1px solid var(--stroke);border-radius:18px;padding:14px;margin-bottom:14px}.responsive-table td{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0;border:none;font-size:13px}.responsive-table td:before{content:attr(data-label);font-weight:700;color:var(--muted);flex:0 0 90px}.responsive-table td.user{justify-content:flex-start;gap:12px}.responsive-table td.user:before{display:none}.responsive-table td:first-child:before{display:none}.actions-col{justify-content:flex-end}}.avatar-lg{height:100px;width:100px;border-radius:50%;overflow:hidden;display:flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--bg2) 85%,#1f2937 15%);border:1px solid var(--stroke)}.avatar-lg img{width:100%;height:100%;object-fit:cover;display:block}.avatar-lg span{font-size:40px;color:var(--text)}input.ng-invalid.ng-touched,select.ng-invalid.ng-touched,textarea.ng-invalid.ng-touched{border:1px solid #e53935}input.ng-valid.ng-touched,select.ng-valid.ng-touched,textarea.ng-valid.ng-touched{border:1px solid var(--blue)}select.ng-invalid.ng-touched{border:1px solid #e53935!important;outline:none}select.ng-valid.ng-touched{border:1px solid var(--blue)!important;outline:none}.error{color:var(--red)}.swal2-container{z-index:999999!important}.import-dropdown{position:relative;display:inline-block}.import-menu{position:absolute;top:calc(100% + 6px);right:0;min-width:220px;border:1px solid var(--stroke);border-radius:10px;box-shadow:var(--shadow-sm);z-index:1000;overflow:hidden;background:var(--card-bg);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}.import-menu-item{width:100%;border:none;padding:12px 14px;text-align:left;cursor:pointer;background:transparent;color:var(--text);transition:background .2s ease}.import-menu-item:hover{background:var(--hover-bg)}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--muted) 45%,transparent);border-radius:999px}*::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb,var(--muted) 65%,transparent)}@media (max-width:1200px){.grid-5{grid-template-columns:repeat(4,1fr)}}@media (max-width:992px){.grid-5{grid-template-columns:repeat(3,1fr)}}@media (max-width:768px){.grid-5{grid-template-columns:repeat(2,1fr)}}@media (max-width:480px){.grid-5{grid-template-columns:1fr}}@media (max-width:1200px){.grid-4{grid-template-columns:repeat(2,1fr)}}@media (max-width:640px){.grid-4{grid-template-columns:1fr}}@media (max-width:1200px){.grid-3{grid-template-columns:1fr}.grid{grid-template-columns:280px 1fr}.grid>div:nth-child(3){grid-column:1 / -1}.rightMid,.rightBot{margin-top:14px}.weather,.markCard,.rightTop,.rightMid,.rightBot,.chartCard,.midBottom{height:auto}.studentGrid{grid-template-columns:repeat(3,1fr)}}@media (max-width:1024px){.header h1{font-size:22px}.filters{flex-wrap:wrap}.filters input,.filters select{flex:1 1 220px}}@media (max-width:768px){.page{padding:14px}.row{flex-direction:column}.nav{display:none}.grid{grid-template-columns:1fr;gap:14px;padding:6px 4px}.card{border-radius:18px}.studentGrid{grid-template-columns:repeat(2,1fr)}.stu{padding:14px}.stu img{width:48px;height:48px}.stu .name{font-size:15px}.btnRow{grid-template-columns:1fr}.filters{flex-wrap:wrap}.select{flex:1 1 48%;width:48%}.select.dots{width:100%}.examRow,.performGrid{grid-template-columns:1fr}.miniStats{grid-template-columns:1fr 1fr}.header{flex-direction:column;align-items:flex-start;gap:12px}.header h1{font-size:22px}.header .btns{width:100%;flex-direction:column;gap:10px}.header .btns .btn{width:100%;margin-right:0;justify-content:center}.topbar{flex-direction:column;align-items:flex-start}.theme-switch{width:100%;justify-content:space-between;flex-wrap:wrap}.theme-switch .theme-btn{flex:1 1 calc(33.333% - 6px);min-width:unset}}@media (max-width:480px){.title{font-size:18px}.temp{font-size:36px}.studentGrid,.miniStats{grid-template-columns:1fr}.cloud{width:64px;height:64px;font-size:28px}.header h1{font-size:20px}.user img{width:36px;height:36px}.tag{font-size:11px;padding:3px 8px}.theme-switch .theme-btn{flex:1 1 100%}}.card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:22px;padding:16px;box-shadow:var(--shadow-lg);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);position:relative;overflow:hidden;transition:all .25s ease}.card:hover{transform:translateY(-2px);border-color:var(--card-border-strong)}.card:before{content:"";position:absolute;inset:0;background:var(--card-highlight);opacity:.85}.glass-card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);position:relative;overflow:hidden;transition:all .25s ease}.glass-card:hover{border-color:var(--card-border-strong);transform:translateY(-2px)}.glass{background:var(--panel-bg);border:1px solid var(--panel-border);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}input,.input,select,textarea{width:100%;height:40px;padding:0 14px;border-radius:14px;border:1px solid var(--panel-border);background:var(--input-bg);color:var(--text);font-family:inherit;font-size:13px;font-weight:500;outline:none;transition:all .2s ease}input:focus,.input:focus,select:focus,textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px #2563eb1a,0 8px 24px #2563eb1a;background:var(--input-focus-bg)}.stu,.item,.exam,.perf,.mini,.select,.ghostBtn{border:1px solid var(--panel-border);background:var(--soft-bg-2)}::-webkit-scrollbar{width:0px;height:0px}*{scrollbar-width:none}*{-ms-overflow-style:none}
