:root{color:#231a34;--bg:#faf8ff;--surface:#fff;--surface2:#f3efff;--text:#231a34;--muted:#756d84;--border:#e7e0f2;--primary:#7c5cff;--primary2:#9a7cff;--shadow:0 20px 60px #442d6e1c;background:#faf8ff;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif}:root[data-theme=dark]{--bg:#0e0a18;--surface:#171124;--surface2:#211832;--text:#f6f0ff;--muted:#a9a0ba;--border:#332745;--shadow:0 20px 60px #00000059;color:var(--text)}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0}button,input,textarea{font:inherit}button{cursor:pointer;border:0}input,textarea{background:var(--surface);width:100%;color:var(--text);border:1px solid var(--border);border-radius:14px;outline:none;margin:6px 0 10px;padding:12px 14px}textarea{resize:vertical;min-height:130px}.btn{border-radius:13px;align-items:center;gap:8px;padding:12px 16px;font-weight:700;display:inline-flex}.btn.primary{background:linear-gradient(135deg,var(--primary),var(--primary2));color:#fff;box-shadow:0 10px 24px #7c5cff38}.btn.ghost{background:var(--surface);color:var(--text);border:1px solid var(--border)}.full{justify-content:center;width:100%}.iconbtn{background:var(--surface);width:40px;height:40px;color:var(--text);border:1px solid var(--border);border-radius:12px;place-items:center;display:grid}.brand{align-items:center;gap:10px;font-size:20px;font-weight:900;display:flex}.logo{width:40px;height:40px;box-shadow:none;background:0 0;border-radius:0;place-items:center;display:grid;overflow:visible}.logo img{object-fit:contain;background:0 0;width:220%;height:220%;display:block}.topbar{justify-content:space-between;align-items:center;height:76px;padding:0 6vw;display:flex}.topactions{align-items:center;gap:10px;display:flex}.public{background:radial-gradient(circle at 80% 20%,#9c7cff2b,transparent 28%),var(--bg);min-height:100vh}.hero{grid-template-columns:1.05fr .95fr;align-items:center;gap:70px;max-width:1200px;margin:0 auto;padding:90px 32px 70px;display:grid}.eyebrow{letter-spacing:.16em;color:var(--primary);margin-bottom:14px;font-size:12px;font-weight:900}.hero h1{letter-spacing:-.055em;margin:0 0 24px;font-size:clamp(44px,6vw,74px);line-height:.98}.hero h1 span{color:var(--primary)}.hero p{color:var(--muted);max-width:650px;font-size:19px;line-height:1.7}.actions{gap:12px;margin:28px 0;display:flex}.trust{color:var(--muted);flex-wrap:wrap;gap:18px;font-size:13px;display:flex}.trust span{align-items:center;gap:6px;display:flex}.hero-card{border:1px solid var(--border);background:linear-gradient(145deg,var(--surface),var(--surface2));min-height:420px;box-shadow:var(--shadow);border-radius:32px;flex-direction:column;justify-content:center;gap:18px;padding:35px;display:flex;position:relative;overflow:hidden}.orb{background:radial-gradient(circle,#7c5cff66,#0000 65%);border-radius:50%;width:270px;height:270px;position:absolute;top:-80px;right:-70px}.mini-card{background:var(--surface);border:1px solid var(--border);border-radius:22px;justify-content:space-between;align-items:center;padding:24px;display:flex;position:relative}.mini-card span,.mini-card b{display:block}.mini-card span{color:var(--muted);font-size:12px}.mini-card b{margin-top:6px;font-size:22px}.mini-grid{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.mini-grid>div{background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:18px}.mini-grid b,.mini-grid small{display:block}.mini-grid b{font-size:24px}.mini-grid small{color:var(--muted);margin-top:4px}.auth{background:radial-gradient(circle at 50% 0,#7c5cff2e,transparent 38%),var(--bg);place-items:center;min-height:100vh;padding:24px;display:grid}.authbox{background:var(--surface);border:1px solid var(--border);width:min(430px,100%);box-shadow:var(--shadow);border-radius:26px;padding:34px}.center{justify-content:center}.authbox h2{margin:28px 0 5px;font-size:32px}.muted{color:var(--muted)}.modal{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:10;background:#140a238c;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modalbox{background:var(--surface);border:1px solid var(--border);border-radius:26px;width:min(520px,100%);padding:30px;position:relative}.close{background:var(--surface2);color:var(--text);border-radius:10px;width:36px;height:36px;font-size:24px;position:absolute;top:14px;right:16px}.notice{background:var(--surface2);border-radius:13px;margin:12px 0;padding:13px 15px;font-size:14px}.notice.success{border:1px solid #2cb4784d}.notice.error{border:1px solid #dc506e59}.shell{min-height:100vh}.shell aside{border-right:1px solid var(--border);background:var(--surface);z-index:10;flex-direction:column;width:245px;height:100vh;padding:22px 14px;display:flex;position:fixed;top:0;left:0;overflow-y:auto}.shell main{box-sizing:border-box;width:calc(100% - 245px);min-height:100vh;margin-left:245px;overflow-x:hidden}.side{padding:0 10px 24px}.tenant{background:var(--surface2);border-radius:15px;margin-bottom:14px;padding:11px 13px;font-weight:800}.tenant small{color:var(--muted);text-transform:capitalize;margin-top:3px;font-weight:500;display:block}nav{flex-direction:column;gap:4px;display:flex}nav button,.logout{color:var(--muted);text-align:left;background:0 0;border-radius:12px;align-items:center;gap:11px;padding:11px 12px;font-weight:700;display:flex}nav button.active{color:var(--primary);background:#7c5cff1f}nav button:hover,.logout:hover{background:var(--surface2);color:var(--text)}.logout{margin-top:auto}.content{width:100%;max-width:1400px;margin:0 auto;padding:0 34px 50px;overflow-x:hidden}.dashhead{justify-content:space-between;align-items:center;height:94px;display:flex}.dashhead h1{letter-spacing:-.03em;margin:0;font-size:28px}.dashhead p{color:var(--muted);margin:4px 0;font-size:13px}.menu{display:none}.welcome{border:1px solid var(--border);background:linear-gradient(135deg,var(--surface),var(--surface2));border-radius:25px;justify-content:space-between;align-items:center;padding:28px;display:flex}.welcome h2{margin:0 0 5px;font-size:27px}.avatar{background:var(--primary);color:#fff;border-radius:18px;place-items:center;width:58px;height:58px;font-weight:900;display:grid}.stats{grid-template-columns:repeat(4,1fr);gap:14px;margin:18px 0;display:grid}.stat{background:var(--surface);border:1px solid var(--border);border-radius:20px;padding:20px}.stat svg{color:var(--primary)}.stat b,.stat span{display:block}.stat span{color:var(--muted);font-size:13px}.grid2{grid-template-columns:1fr 1fr;gap:16px;display:grid}.panel{background:var(--surface);border:1px solid var(--border);border-radius:22px;padding:22px;box-shadow:0 8px 30px #3223500a}.panel h3{margin:0 0 6px;font-size:18px}.panelhead{justify-content:space-between;align-items:center;gap:18px;margin-bottom:18px;display:flex}.quick{grid-template-columns:1fr 1fr;gap:10px;display:grid}.quick button{background:var(--surface2);color:var(--text);text-align:left;border-radius:15px;align-items:center;gap:10px;padding:18px;font-weight:800;display:flex}.quick svg{color:var(--primary)}.inline{align-items:center;gap:8px;display:flex}.inline input{width:200px;margin:0}.tablewrap{overflow:auto}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;padding:13px 10px}th{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:12px}.listitem{border-bottom:1px solid var(--border);justify-content:space-between;gap:15px;padding:15px 0;display:flex}.listitem p{color:var(--muted);margin:5px 0 0}.listitem span,.pill,.chips span{background:var(--surface2);color:var(--primary);border-radius:999px;height:max-content;padding:5px 8px;font-size:11px;font-weight:800}.pollpreview{margin-top:25px}.progress{background:var(--surface2);border-radius:99px;height:11px;margin:12px 0;overflow:hidden}.progress span{background:linear-gradient(90deg,var(--primary),var(--primary2));border-radius:99px;height:100%;display:block}.election{background:var(--surface2);border-radius:18px;justify-content:space-between;align-items:center;padding:20px;display:flex}.election h2{margin:12px 0 3px}.live{color:#27a56d;background:#28b4781f}.license{place-items:center;min-height:500px;display:grid}.licensecard{color:#fff;background:linear-gradient(145deg,#1c1429,#0f0a18);border-radius:30px;width:min(650px,100%);padding:30px;position:relative;overflow:hidden;box-shadow:0 30px 80px #280f464d}.licensecard:after{content:"";background:#9c7cff33;border-radius:50%;width:300px;height:300px;position:absolute;bottom:-150px;right:-120px}.licensebrand{justify-content:space-between;font-weight:900;display:flex}.lictitle{color:#c7b9df;text-transform:uppercase;letter-spacing:.12em;margin-top:70px;font-size:11px}.licensecard h2{margin:8px 0 28px;font-size:32px}.licgrid{grid-template-columns:repeat(4,1fr);gap:12px;display:grid}.licgrid small,.licgrid b{display:block}.licgrid small{color:#a9a0ba;font-size:10px}.licgrid b{margin-top:5px;font-size:13px}.licfoot{color:#a9a0ba;border-top:1px solid #332745;margin-top:28px;padding-top:16px;font-size:12px}.attendance-card{align-items:center;gap:30px;display:flex}.ring{background:conic-gradient(var(--primary) var(--pct),var(--surface2) 0);border-radius:50%;place-items:center;width:190px;height:190px;display:grid;position:relative}.ring:after{content:"";background:var(--surface);border-radius:50%;position:absolute;inset:14px}.ring b,.ring span{z-index:1;position:relative}.ring b{font-size:36px}.ring span{color:var(--muted);margin-top:-50px;font-size:11px}.chips{flex-wrap:wrap;gap:8px;margin-top:18px;display:flex}.empty svg{color:var(--primary)}@media (width<=900px){.hero{grid-template-columns:1fr;gap:30px;padding-top:55px}.hero-card{min-height:320px}.shell aside{z-index:8;width:245px;box-shadow:var(--shadow);transition:all .25s;position:fixed;left:-270px}.shell aside.open{left:0}.shell main{width:100%;margin-left:0}.content{padding:0 18px 35px}.menu{margin-right:10px;display:grid}.dashhead{justify-content:flex-start;gap:10px}.dashhead>.iconbtn:last-child{margin-left:auto}.stats{grid-template-columns:1fr 1fr}.grid2{grid-template-columns:1fr}.licgrid{grid-template-columns:1fr 1fr}}@media (width<=540px){.topbar{padding:0 18px}.hero{padding:45px 18px}.hero h1{font-size:45px}.actions{flex-direction:column}.stats{grid-template-columns:1fr 1fr}.welcome{padding:20px}.welcome h2{font-size:22px}.inline{flex-direction:column;align-items:stretch}.inline input{width:100%}.attendance-card{flex-direction:column;align-items:flex-start}.ring{width:160px;height:160px}}.importbox{border:1px dashed var(--border);background:var(--surface2);border-radius:16px;justify-content:space-between;align-items:center;gap:18px;margin:18px 0;padding:18px;display:flex}.importbox>div{align-items:flex-start;gap:12px;display:flex}.importbox p{margin:4px 0 0}.securitypanel form{gap:12px;max-width:420px;display:grid}.securitypanel h3{align-items:center;gap:8px;display:flex}.pinmodal .modalbox{max-width:560px}.pinmodal .panel{box-shadow:none;background:0 0;border:0;margin:0;padding:0}@media (width<=700px){.importbox{flex-direction:column;align-items:stretch}.importbox .btn{justify-content:center}}.importbox{flex-wrap:wrap}.import-progress{background:var(--surface);border:1px solid var(--border);border-radius:999px;flex:1 0 100%;height:8px;margin-top:6px;overflow:hidden}.import-progress-bar{background:linear-gradient(90deg,var(--primary),var(--primary2));height:100%;transition:width .25s var(--ease-out,ease);border-radius:999px}select{background:var(--surface);width:100%;color:var(--text);border:1px solid var(--border);border-radius:14px;margin:6px 0 10px;padding:12px 14px}.polloption{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:10px 0;display:flex}.polloption>span{flex:1}.polloption small{color:var(--muted)}.polloption .btn{padding:7px 10px;font-size:12px}.securitypanel{max-width:620px}.logo img{width:100%;height:100%;display:block}.school-logo{background:var(--surface2);border:1px solid var(--border);border-radius:13px;place-items:center;width:40px;height:40px;display:grid;overflow:hidden}.school-logo img,.school-logo-preview{object-fit:contain;max-width:100%;max-height:100%}.school-logo-preview{border:1px solid var(--border);background:var(--surface2);border-radius:18px;width:110px;height:110px;margin:10px 0 16px;padding:10px}.uploadlogo{border:1px dashed var(--border);color:var(--muted);border-radius:14px;margin:10px 0;padding:12px;display:block}.uploadlogo input{margin:8px 0 0}.previewbrand{border:1px solid var(--border);background:var(--surface2);border-radius:18px;padding:20px;font-size:20px}.brand-small{font-size:16px}.classcard{background:var(--surface2);border:1px solid var(--border);width:100%;color:var(--text);text-align:left;border-radius:16px;justify-content:space-between;align-items:center;margin:6px 0;padding:16px;display:flex}.classcard div{flex-direction:column;gap:4px;display:flex}.classcard small{color:var(--muted)}.classcard.selected{border-color:var(--primary);box-shadow:0 0 0 2px #7c5cff1f}.attendance-filters{grid-template-columns:repeat(4,1fr);gap:12px;display:grid}.attendance-filters label{font-size:12px;font-weight:800}.position-row{grid-template-columns:1fr 130px 160px auto;align-items:center;gap:8px;display:grid}.position-row input{margin:4px 0}.formhint{margin:4px 0 12px;font-size:12px}.election-builder{background:var(--surface2);border-radius:16px;margin-bottom:18px;padding:16px}.election-position{border:1px solid var(--border);background:var(--surface);border-radius:14px;margin-top:14px;padding:12px}.position-head{justify-content:space-between;gap:10px;display:flex}.position-head small{color:var(--muted)}.selected-option{background:#7c5cff1a;border-radius:10px}.nomination-box{border:1px dashed var(--border);border-radius:14px;margin-top:12px;padding:12px}.results{border-top:1px solid var(--border);margin-top:12px;padding-top:10px}@media (width<=900px){.attendance-filters,.position-row{grid-template-columns:1fr 1fr}.position-row .btn{grid-column:1/-1}}@media (width<=540px){.attendance-filters,.position-row{grid-template-columns:1fr}.inline{flex-wrap:wrap}}@media (width<=700px){.election{border-radius:16px;flex-direction:column;justify-content:flex-start;align-items:stretch;gap:14px;padding:16px;display:flex;overflow:hidden}.election h2{margin:6px 0 4px;font-size:20px;line-height:1.25}.election p{font-size:12px;line-height:1.5}.election .btn{justify-content:center;width:100%}.election-builder{border-radius:15px;padding:14px;overflow:hidden}.election-builder>h3{font-size:17px;line-height:1.3}.election-position{border-radius:14px;margin-top:12px;padding:13px;overflow:hidden}.position-head{flex-direction:column;align-items:stretch;gap:6px;display:flex}.position-head>div:last-child{text-align:left}.position-row{grid-template-columns:1fr;gap:8px;display:grid}.position-row input,.position-row select{width:100%;margin:3px 0}.position-row .btn{grid-column:auto;justify-content:center;width:100%}.nomination-box{border-radius:13px;margin-top:10px;padding:13px;overflow:hidden}.nomination-box h4{margin-top:0;font-size:15px}.nomination-box textarea{min-height:120px}.symbol-picker{grid-template-columns:repeat(6,minmax(0,1fr));gap:7px;width:100%;display:grid;overflow:hidden}.symbol-picker button,.symbol-option{aspect-ratio:1;border-radius:11px;place-items:center;width:100%;min-width:0;min-height:42px;padding:0;font-size:21px;display:grid}.selected-symbol-preview{background:var(--surface2);border:1px solid var(--border);border-radius:12px;justify-content:space-between;align-items:center;gap:10px;margin-top:10px;padding:10px 12px;display:flex}.selected-symbol-preview b{font-size:25px}.results{margin-top:12px;padding-top:12px}.results-list{width:100%;overflow:hidden}.results-list .polloption{gap:10px;min-height:48px;padding:10px 0}.results-list .polloption>span{overflow-wrap:anywhere;min-width:0;line-height:1.35}.results-list .polloption>b{white-space:nowrap;flex-shrink:0;font-size:12px}.election .panelhead{flex-direction:column;align-items:stretch;gap:10px}.election .inline{flex-direction:column;align-items:stretch;width:100%}.election .inline .btn{width:100%}.election input,.election textarea,.election select{max-width:100%}}@media (width<=420px){.election{padding:13px}.election-builder,.election-position{padding:11px}.symbol-picker{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}.symbol-picker button,.symbol-option{border-radius:10px;min-height:44px;font-size:20px}.selected-symbol-preview{padding:9px 10px}.selected-symbol-preview b{font-size:23px}}aside{flex-direction:column;min-height:100dvh;display:flex;overflow:hidden}aside nav{scrollbar-width:thin;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;flex:auto;min-height:0;padding-bottom:14px;overflow:hidden auto}aside nav::-webkit-scrollbar{width:5px}aside nav::-webkit-scrollbar-thumb{background:#78788c59;border-radius:999px}aside .logout{z-index:5;flex:none;margin-top:auto;position:relative}@media (width<=900px){aside{height:100dvh;min-height:100dvh}aside .logout{min-height:46px;margin:10px 12px 14px}}.btn{will-change:transform;position:relative;overflow:hidden}.btn:hover:not(:disabled){transform:translateY(-2px)}.btn:active:not(:disabled){transform:translateY(0)scale(.98)}.btn:disabled{opacity:.55}.panel,.stat,.listitem,.election,.support-ticket-row,.support-message{transition:transform .2s,box-shadow .2s,border-color .2s}.panel:hover,.stat:hover,.support-ticket-row:hover,.listitem:hover,.polloption:hover{transform:translateY(-2px)}.symbol-option{transition:transform .15s,box-shadow .15s}.symbol-option:hover{transform:scale(1.06)}.symbol-option:active{transform:scale(.96)}.support-message{animation:.25s myEduEraMessage}@keyframes myEduEraFade{0%{opacity:0}to{opacity:1}}@keyframes myEduEraMessage{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}.brand-logo{background:0 0;border-radius:16px;flex:0 0 50px;place-items:center;width:50px;height:50px;display:grid;overflow:hidden;box-shadow:0 10px 28px #0000001a}.brand-logo img{object-fit:contain;width:100%;height:100%;padding:5px;display:block}.school-logo-preview{object-fit:contain;border-radius:16px;width:96px;height:96px;margin:14px 0;display:block}@media (width<=900px){.contact-grid{grid-template-columns:1fr}.contact-hero{align-items:flex-start}.contact-card-grid{grid-template-columns:1fr}.student-add-fields{width:100%}.student-add-fields input{flex:180px;width:auto}.student-add-fields .btn{flex:none}}@media (width<=540px){.topactions{gap:6px}.topactions .btn{padding:10px 11px;font-size:12px}.contact-hero{flex-direction:column}.contact-mark{width:50px;height:50px}.student-add-fields input,.student-add-fields .btn{flex:100%;width:100%}}@media (width<=900px){.contact-grid{grid-template-columns:1fr}.contact-hero{align-items:flex-start}.contact-card-grid{grid-template-columns:1fr}.student-add-fields{width:100%}.student-add-fields input{flex:180px;width:auto}.student-add-fields .btn{flex:none}}@media (width<=540px){.topactions{gap:6px}.topactions .btn{padding:10px 11px;font-size:12px}.contact-hero{flex-direction:column}.contact-mark{width:50px;height:50px}.student-add-fields input,.student-add-fields .btn{flex:100%;width:100%}}.contact-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:18px 0;display:grid}.contact-card{color:inherit;align-items:center;gap:14px;text-decoration:none;display:flex}.contact-card>div:nth-child(2){flex:1;min-width:0}.contact-icon,.contact-mark{background:var(--surface2);width:46px;height:46px;color:var(--primary);border-radius:14px;flex:0 0 46px;place-items:center;display:grid}.contact-card p{word-break:break-word;margin:5px 0 0}.contact-disabled{opacity:.72;cursor:default}.contact-note{margin-top:16px}.contact-note code{background:var(--surface2);border-radius:6px;padding:2px 6px}.contact-hero{justify-content:space-between;align-items:center;gap:24px;display:flex}.contact-hero h2{margin:8px 0}.registration-card{align-items:flex-start}.registration-main{width:100%}.registration-main>b{margin-bottom:12px;font-size:17px;display:block}.contact-card-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.contact-card-grid span{border:1px solid var(--border);background:var(--surface2);border-radius:13px;flex-direction:column;gap:4px;padding:11px 12px;display:flex}.contact-card-grid small{color:var(--muted);font-size:11px}.contact-card-grid strong{overflow-wrap:anywhere;font-size:13px}.student-add-fields{flex-wrap:wrap}.student-add-fields input{width:150px}.owner-security-card{margin-top:16px}@media (width<=900px){.contact-grid{grid-template-columns:1fr}.contact-hero{align-items:flex-start}.contact-card-grid{grid-template-columns:1fr}.student-add-fields{width:100%}.student-add-fields input{flex:180px;width:auto}.student-add-fields .btn{flex:none}}@media (width<=540px){.topactions{gap:6px}.topactions .btn{padding:10px 11px;font-size:12px}.contact-hero{flex-direction:column}.contact-mark{width:50px;height:50px}.student-add-fields input,.student-add-fields .btn{flex:100%;width:100%}}.grid2:has(.registration-card){grid-template-columns:1fr;gap:18px}.grid2:has(.registration-card)>.panel{width:100%;min-width:0}.grid2:has(.registration-card) .registration-card{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:18px;width:100%;display:grid}.grid2:has(.registration-card) .registration-main{width:100%;min-width:0}.grid2:has(.registration-card) .contact-card-grid{grid-template-columns:repeat(3,minmax(0,1fr));width:100%}.grid2:has(.registration-card) .contact-card-grid span{min-width:0}.grid2:has(.registration-card) .contact-card-grid strong{overflow-wrap:anywhere;word-break:break-word;min-width:0}.grid2:has(.registration-card)>.panel:nth-child(2) .listitem{flex-wrap:wrap;align-items:flex-start}.grid2:has(.registration-card)>.panel:nth-child(2) .listitem>div:first-child{flex:280px;min-width:0}.grid2:has(.registration-card)>.panel:nth-child(2) .listitem p{overflow-wrap:anywhere;word-break:break-word}.grid2:has(.registration-card)>.panel:nth-child(2) .inline{flex-wrap:wrap}@media (width<=900px){.grid2:has(.registration-card) .registration-card{grid-template-columns:1fr}.grid2:has(.registration-card) .contact-card-grid{grid-template-columns:1fr 1fr}.grid2:has(.registration-card)>.panel:nth-child(2) .inline{width:100%}}@media (width<=600px){.grid2:has(.registration-card) .contact-card-grid{grid-template-columns:1fr}.grid2:has(.registration-card)>.panel:nth-child(2) .inline{grid-template-columns:1fr 1fr;display:grid}.grid2:has(.registration-card)>.panel:nth-child(2) .inline .pill{grid-column:1/-1}}.attendance-status-buttons{flex-wrap:wrap;gap:6px;min-width:300px;display:flex}.attendance-status-btn{border:1px solid var(--border);background:var(--surface2);color:var(--muted);cursor:pointer;border-radius:10px;padding:8px 10px;font-size:12px;font-weight:800;transition:transform .15s,box-shadow .15s,border-color .15s}.attendance-status-btn:hover{transform:translateY(-1px);box-shadow:0 5px 14px #32235014}.attendance-status-btn.selected{color:#fff;border-color:#0000;box-shadow:0 0 0 2px #7c5cff29}.attendance-status-btn.status-present.selected{background:#22a06b}.attendance-status-btn.status-absent.selected{background:#d64545}.attendance-status-btn.status-late.selected{background:#d99a18}.attendance-status-btn.status-leave.selected{background:#4f7fc7}@media (width<=900px){.attendance-status-buttons{min-width:0}}@media (width<=540px){.attendance-status-buttons{grid-template-columns:1fr 1fr;min-width:0;display:grid}.attendance-status-btn{width:100%}}.attendance-status-btn.present{color:#fff!important;background:#22a06b!important;border-color:#22a06b!important}.attendance-status-btn.absent{color:#fff!important;background:#d64545!important;border-color:#d64545!important}.attendance-status-btn.late{color:#fff!important;background:#d99a18!important;border-color:#d99a18!important}.attendance-status-btn.leave{color:#fff!important;background:#4f7fc7!important;border-color:#4f7fc7!important}.teacher-verification-status{text-transform:capitalize;border-radius:999px;justify-content:center;align-items:center;min-width:92px;padding:6px 10px;font-size:12px;font-weight:700;display:inline-flex}.teacher-verification-status.pending{color:#9a6700;background:#fff1cc;border:1px solid #f0c36a}.teacher-verification-status.approved{color:#167447;background:#dff5e8;border:1px solid #8bd3a8}.teacher-verification-status.rejected{color:#a82d2d;background:#fde1e1;border:1px solid #e7a0a0}.teacher-verification-status.all{color:#5d4b83;background:#eee9f8;border:1px solid #cfc3e8}.attendance-status-btn{color:#4a4258!important;box-shadow:none!important;background:#fff!important;border:1px solid #ddd6ea!important;transform:none!important}.attendance-status-btn.selected{transform:translateY(-1px);box-shadow:0 0 0 3px #6f4eaf2e!important}.teacher-verification-filters{flex-wrap:wrap;gap:8px;margin:10px 0 14px;display:flex}.teacher-verification-filter{color:#4a4258;cursor:pointer;background:#fff;border:1px solid #ddd6ea;border-radius:999px;padding:8px 14px;font-weight:700;transition:all .18s}.teacher-verification-filter.selected.pending{color:#fff!important;background:#d99a18!important;border-color:#d99a18!important}.teacher-verification-filter.selected.approved{color:#fff!important;background:#22a06b!important;border-color:#22a06b!important}.teacher-verification-filter.selected.rejected{color:#fff!important;background:#d64545!important;border-color:#d64545!important}.teacher-verification-filter.selected.all{color:#fff!important;background:#6f4eaf!important;border-color:#6f4eaf!important}.teacher-verification-filter.selected{transform:translateY(-1px);box-shadow:0 0 0 3px #6f4eaf2e}.header-actions{align-items:center;gap:8px;margin-left:auto;display:flex}.notification-wrap,.notification-btn{position:relative}.notification-badge{color:#fff;border:2px solid var(--bg,#fff);background:#d64545;border-radius:999px;justify-content:center;align-items:center;min-width:17px;height:17px;padding:0 4px;font-size:10px;font-weight:800;display:flex;position:absolute;top:-4px;right:-4px}.notification-panel{background:var(--panel,#fff);border:1px solid var(--border,#e5e0ee);z-index:1000;border-radius:16px;width:360px;max-width:calc(100vw - 24px);max-height:480px;position:absolute;top:calc(100% + 10px);right:0;overflow:auto;box-shadow:0 16px 40px #1c142d29}.notification-head{border-bottom:1px solid var(--border,#e5e0ee);justify-content:space-between;align-items:center;gap:10px;padding:14px 16px;display:flex}.notification-head b{display:block}.notification-head small{color:#8a8195;margin-top:3px;display:block}.notification-empty{text-align:center;padding:28px 16px}.notification-list{padding:6px}.notification-item{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:12px;gap:10px;width:100%;padding:11px;display:flex}.notification-item:hover,.notification-item.unread{background:#6f4eaf14}.notification-item-icon{color:#6f4eaf;background:#eee9f8;border-radius:10px;flex:0 0 32px;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.notification-item-content{min-width:0}.notification-item-content b{margin-bottom:3px;display:block}.notification-item-content p{color:#6d6477;margin:0 0 5px;font-size:13px;line-height:1.4}.notification-item-content small{color:#958da0;font-size:11px}@media (width<=640px){.notification-panel{width:auto;max-width:none;position:fixed;top:70px;left:12px;right:12px}}.attendance-status-btn.present:not(.selected),.attendance-status-btn.absent:not(.selected),.attendance-status-btn.late:not(.selected),.attendance-status-btn.leave:not(.selected){color:#4a4258!important;background:#fff!important;border-color:#ddd6ea!important}.attendance-status-btn.present.selected{color:#fff!important;background:#22a06b!important;border-color:#22a06b!important}.attendance-status-btn.absent.selected{color:#fff!important;background:#d64545!important;border-color:#d64545!important}.attendance-status-btn.late.selected{color:#fff!important;background:#d99a18!important;border-color:#d99a18!important}.attendance-status-btn.leave.selected{color:#fff!important;background:#4f7fc7!important;border-color:#4f7fc7!important}.theme-controls{grid-template-columns:1fr 1fr;gap:12px;margin:8px 0 14px;display:grid}.color-control{align-items:center;gap:10px;display:flex}.color-control input[type=color]{cursor:pointer;border-radius:10px;width:48px;height:40px;padding:3px}.color-control span{color:var(--muted);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.theme-preview{border:1px solid var(--border);background:var(--surface2);border-radius:16px;padding:18px}.theme-preview-top{align-items:center;gap:12px;display:flex}.theme-preview-top span{color:var(--muted);margin-top:2px;font-size:12px;display:block}.theme-preview-buttons{gap:10px;margin-top:18px;display:flex}.theme-preview-buttons button{color:#fff;border:0;border-radius:10px;padding:9px 14px;font-weight:700}.theme-preview-buttons button:first-child{background:var(--preview-primary)}.theme-preview-buttons button:last-child{background:var(--preview-accent)}@media (width<=640px){.theme-controls{grid-template-columns:1fr}}.attendance-status-btn.status-present.selected{color:#fff!important;background:#22a06b!important;border-color:#22a06b!important}.attendance-status-btn.status-absent.selected{color:#fff!important;background:#d64545!important;border-color:#d64545!important}.attendance-status-btn.status-late.selected{color:#fff!important;background:#d99a18!important;border-color:#d99a18!important}.attendance-status-btn.status-leave.selected{color:#fff!important;background:#4f7fc7!important;border-color:#4f7fc7!important}.attendance-status-btn.status-present:not(.selected),.attendance-status-btn.status-absent:not(.selected),.attendance-status-btn.status-late:not(.selected),.attendance-status-btn.status-leave:not(.selected){color:#4a4258!important;background:#fff!important;border-color:#ddd6ea!important}.teacher-profile-modal{background:var(--panel,#fff);box-sizing:border-box;border-radius:18px;flex-direction:column;width:min(920px,100%);min-height:0;max-height:calc(100dvh - 40px);padding:24px;display:flex;overflow:hidden;box-shadow:0 24px 70px #00000038}.teacher-profile-modal .panelhead{flex:none;margin-bottom:18px}.teacher-profile-modal .panelhead h3{margin:0 0 5px}.teacher-profile-modal .panelhead p{margin:0}.teacher-profile-modal .teacher-profile-content>.panel{min-width:0}@media (width<=700px){.teacher-profile-modal{border-radius:16px;width:calc(100vw - 24px);max-height:calc(100dvh - 24px);padding:16px}.teacher-profile-modal .panelhead{align-items:flex-start;gap:12px}.teacher-profile-actions{flex-wrap:wrap}.teacher-profile-actions .btn{flex:140px;justify-content:center}}@media (width<=480px){.teacher-profile-modal{width:calc(100vw - 16px);max-height:calc(100dvh - 16px);padding:13px}.teacher-profile-modal .panelhead{flex-direction:column}.teacher-profile-modal .panelhead .btn{justify-content:center;width:100%}.teacher-profile-actions{flex-direction:column}.teacher-profile-actions .btn{width:100%}}.teacher-profile-backdrop{z-index:2000;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);box-sizing:border-box;background:#0f172a85;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0;overflow:hidden}.teacher-profile-modal{background:var(--surface);border:1px solid var(--border);box-sizing:border-box;border-radius:18px;flex-direction:column;width:min(920px,100%);min-height:0;max-height:calc(100dvh - 40px);padding:24px;display:flex;overflow:hidden;box-shadow:0 24px 70px #00000040}.teacher-profile-modal .teacher-profile-content{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;flex:auto;min-height:0;padding-right:4px;overflow:hidden auto}.teacher-profile-modal .panel{min-width:0}.teacher-profile-actions{border-top:1px solid var(--border);background:var(--surface);flex:none;justify-content:flex-end;align-items:center;gap:10px;margin-top:16px;padding-top:14px;display:flex}.custom-symbol-row{flex-wrap:wrap;align-items:center;gap:10px;margin-top:10px;display:flex}.owner-school-summary,.owner-campus-names{margin-top:5px;display:block}.owner-campus-names{overflow-wrap:anywhere}@media (width<=700px){.teacher-profile-backdrop{padding:12px}.teacher-profile-modal{border-radius:16px;width:calc(100vw - 24px);max-height:calc(100dvh - 24px);padding:16px}.teacher-profile-actions{flex-wrap:wrap}.teacher-profile-actions .btn{flex:140px;justify-content:center}.custom-symbol-row{align-items:stretch}.custom-symbol-row .btn,.custom-symbol-row input{flex:100%;width:100%}}@media (width<=420px){.teacher-profile-backdrop{padding:8px}.teacher-profile-modal{width:calc(100vw - 16px);max-height:calc(100dvh - 16px);padding:13px}.teacher-profile-actions{flex-direction:column}.teacher-profile-actions .btn{width:100%}}.teacher-profile-summary{border:1px solid var(--border);background:var(--surface2);border-radius:16px;align-items:center;gap:12px;min-width:0;margin-bottom:14px;padding:12px 14px;display:flex}.teacher-profile-summary-copy{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.teacher-profile-summary-copy>b{font-size:17px}@media (width<=420px){.teacher-profile-summary{padding:10px}}.teacher-profile-backdrop{z-index:3000;box-sizing:border-box;-webkit-backdrop-filter:blur(6px);overscroll-behavior:none;touch-action:none;background:#0f172a8f;justify-content:center;align-items:center;padding:clamp(8px,2vw,24px);display:flex;position:fixed;inset:0;overflow:hidden}.teacher-profile-modal{box-sizing:border-box;background:var(--surface);width:min(900px,100%);height:min(820px,100dvh - 32px);min-height:0;max-height:calc(100dvh - 32px);color:var(--text);border:1px solid var(--border);touch-action:auto;border-radius:22px;flex-direction:column;padding:20px;display:flex;position:relative;overflow:hidden;box-shadow:0 30px 90px #0000004d}.teacher-profile-modal .panelhead{flex:none;min-width:0;margin-bottom:12px}.teacher-profile-modal .panelhead>div{min-width:0}.teacher-profile-modal .panelhead h3{margin:0;font-size:20px}.teacher-profile-modal .panelhead p{overflow-wrap:anywhere;margin:4px 0 0}.teacher-profile-summary{flex:none;min-width:0;margin-bottom:12px}.teacher-profile-content{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-y;scrollbar-gutter:stable;flex:auto;min-height:0;padding:2px 4px 18px 0;overflow:hidden auto}.teacher-profile-content>.panel{box-sizing:border-box;width:100%;min-width:0;margin:0 0 12px}.teacher-profile-content>.panel:last-child{margin-bottom:0}.teacher-profile-content input,.teacher-profile-content select,.teacher-profile-content textarea{box-sizing:border-box;max-width:100%}.teacher-profile-actions{border-top:1px solid var(--border);background:var(--surface);flex:none;justify-content:flex-end;gap:10px;margin-top:4px;padding-top:14px;display:flex}.teacher-profile-modal button{touch-action:manipulation}@media (width<=700px){.teacher-profile-backdrop{align-items:center;padding:8px}.teacher-profile-modal{border-radius:18px;width:100%;height:calc(100dvh - 16px);max-height:calc(100dvh - 16px);padding:14px}.teacher-profile-modal .panelhead{align-items:flex-start;gap:10px}.teacher-profile-modal .panelhead .btn{flex:none}.teacher-profile-summary{padding:10px 12px}.teacher-profile-content{padding-bottom:12px;padding-right:2px}.teacher-profile-actions{padding-top:10px}.teacher-profile-actions .btn{flex:1 1 0;min-height:44px}}@media (width<=420px){.teacher-profile-modal{border-radius:16px;padding:12px}.teacher-profile-modal .panelhead h3{font-size:18px}.teacher-profile-modal .panelhead .muted{font-size:11px}.teacher-profile-actions{gap:8px}}html,body,#root{max-width:100%;overflow-x:hidden}.content,.panel,.grid2,.stats,.tablewrap{min-width:0}@media (width<=900px){.content{box-sizing:border-box;width:100%}.panel{border-radius:18px;padding:18px}.panelhead{align-items:flex-start}.tablewrap{-webkit-overflow-scrolling:touch;max-width:100%;overflow-x:auto}table{min-width:max-content}}@media (width<=540px){.content{padding-left:12px;padding-right:12px}.dashhead{height:auto;min-height:78px;padding:10px 0}.dashhead h1{font-size:23px}.dashhead p{white-space:nowrap;text-overflow:ellipsis;max-width:58vw;overflow:hidden}.welcome{border-radius:18px}.panel,.teacher-profile-content .panel{padding:15px}}.teacher-profile-backdrop{z-index:9999!important;box-sizing:border-box!important;justify-content:center!important;align-items:center!important;width:100vw!important;height:100dvh!important;margin:0!important;padding:12px!important;display:flex!important;position:fixed!important;inset:0!important;overflow:hidden!important}.teacher-profile-modal{box-sizing:border-box!important;grid-template-rows:auto auto minmax(0,1fr) auto!important;width:min(920px,100vw - 24px)!important;height:min(780px,100dvh - 24px)!important;min-height:0!important;max-height:calc(100dvh - 24px)!important;margin:0!important;padding:18px!important;animation:none!important;display:grid!important;position:relative!important;overflow:hidden!important;transform:none!important}.teacher-profile-modal:hover{transform:none!important}.teacher-profile-content{overscroll-behavior:contain!important;-webkit-overflow-scrolling:touch!important;touch-action:pan-y!important;height:auto!important;min-height:0!important;margin:0!important;padding:2px 8px 18px 2px!important;overflow:hidden auto!important}.teacher-profile-content>.panel{animation:none!important;transform:none!important}.teacher-profile-content>.panel:hover{transform:none!important}.teacher-profile-actions{border-top:1px solid var(--border)!important;margin:0!important;padding:12px 0 0!important}@media (width<=700px){.teacher-profile-backdrop{align-items:stretch!important;padding:6px!important}.teacher-profile-modal{border-radius:16px!important;width:100%!important;height:calc(100dvh - 12px)!important;max-height:calc(100dvh - 12px)!important;padding:12px!important}.teacher-profile-content{padding-bottom:14px!important;padding-right:3px!important}.teacher-profile-actions .btn{min-height:44px!important}}@media (width<=420px){.teacher-profile-modal{border-radius:14px!important;padding:10px!important}.teacher-profile-modal .panelhead h3{font-size:18px!important}.teacher-profile-modal .panelhead p{font-size:12px!important}}.student-profile-backdrop{z-index:9998!important;box-sizing:border-box!important;background:#0f172a73!important;justify-content:center!important;align-items:center!important;width:100vw!important;height:100dvh!important;margin:0!important;padding:12px!important;display:flex!important;position:fixed!important;inset:0!important;overflow:hidden!important}.student-profile-modal{box-sizing:border-box!important;flex-direction:column!important;width:min(980px,100vw - 24px)!important;height:min(820px,100dvh - 24px)!important;min-height:0!important;max-height:calc(100dvh - 24px)!important;margin:0!important;padding:20px!important;animation:none!important;display:flex!important;position:relative!important;overflow:hidden!important;transform:none!important}.student-profile-modal:hover{transform:none!important}.student-profile-modal>.chips{flex:none!important}.student-profile-modal .panel{animation:none!important;transform:none!important}.student-profile-modal .panel:hover{transform:none!important}@media (width<=700px){.student-profile-backdrop{align-items:stretch!important;padding:6px!important}.student-profile-modal{border-radius:16px!important;width:100%!important;height:calc(100dvh - 12px)!important;max-height:calc(100dvh - 12px)!important;padding:12px!important}}@media (width<=540px){.topbar{flex-wrap:wrap!important;align-items:center!important;gap:8px!important;height:auto!important;min-height:76px!important;padding:10px 18px!important}.topbar .brand{flex:auto!important;min-width:0!important}.topbar .brand>span{white-space:nowrap!important}.topactions{flex-wrap:wrap!important;flex:100%!important;justify-content:flex-end!important;gap:6px!important;width:100%!important;min-width:0!important}.topactions .btn{white-space:nowrap!important;flex:0 auto!important;min-width:0!important;padding:9px 10px!important;font-size:11px!important}}.logo{width:99px;height:66px;box-shadow:none;background:0 0;border-radius:12px;flex:0 0 99px;padding:0;overflow:visible}.logo img{object-fit:contain;width:100%;height:100%;display:block}.license-plans{grid-template-columns:1fr 1fr;gap:12px;width:min(650px,100%);margin-top:14px;display:grid}.license-plan{border:1px solid var(--border);background:var(--surface);border-radius:18px;justify-content:space-between;align-items:center;gap:12px;padding:16px;display:flex;box-shadow:0 8px 30px #3223500a}.license-plan b,.license-plan span{display:block}.license-plan span{color:var(--muted);margin-top:4px;font-size:12px}.license-plan.featured{border-color:#7c5cff73;box-shadow:0 10px 30px #7c5cff1a}@media (width<=540px){.logo{flex-basis:80px;width:80px;height:54px}.license-plans{grid-template-columns:1fr}.license-plan{flex-direction:column;align-items:flex-start}.license-plan .btn{justify-content:center;width:100%}}:root{--font-sans:"Inter", "Plus Jakarta Sans", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--font-display:"Plus Jakarta Sans", "Inter", ui-sans-serif, system-ui, sans-serif;--radius-xs:10px;--radius-sm:14px;--radius-md:18px;--radius-lg:22px;--radius-xl:28px;--shadow-xs:0 1px 2px #231a340a;--shadow-sm:0 2px 6px #231a340d, 0 1px 2px #231a340a;--shadow-md:0 6px 16px #231a340f, 0 2px 4px #231a340a;--shadow-lg:0 12px 32px #231a3417, 0 4px 8px #231a340a;--shadow-xl:0 24px 60px #231a341f, 0 8px 16px #231a340d;--shadow-brand-sm:0 4px 12px #7c5cff24;--shadow-brand-md:0 10px 24px #7c5cff2e;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--dur-fast:.14s;--dur-base:.22s;--dur-slow:.32s;--focus-ring:0 0 0 3px #7c5cff38}:root[data-theme=dark]{--shadow-sm:0 2px 6px #00000059, 0 1px 2px #00000040;--shadow-md:0 6px 16px #0006, 0 2px 4px #0000004d;--shadow-lg:0 12px 32px #00000073, 0 4px 8px #0000004d;--shadow-xl:0 24px 60px #0000008c, 0 8px 16px #00000059;--focus-ring:0 0 0 3px #9b87f54d}html,body,button,input,textarea,select{font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,.brand,.eyebrow,.stat b,.welcome h2,.dashhead h1{font-family:var(--font-display);letter-spacing:-.02em;font-weight:800}body{background:radial-gradient(900px 500px at 100% -10%, #9b87f514, transparent 60%), radial-gradient(700px 400px at -10% 110%, #7c5cff0f, transparent 60%), var(--bg);background-attachment:fixed;min-height:100vh}:root[data-theme=dark] body{background:radial-gradient(900px 500px at 100% -10%, #9b87f51a, transparent 60%), radial-gradient(700px 400px at -10% 110%, #7c5cff12, transparent 60%), var(--bg)}input:focus,textarea:focus,select:focus{border-color:var(--primary);box-shadow:var(--focus-ring);outline:none}input:hover:not(:focus):not(:disabled),textarea:hover:not(:focus):not(:disabled),select:hover:not(:focus):not(:disabled){border-color:color-mix(in srgb, var(--primary) 35%, var(--border))}.btn{transition:transform var(--dur-fast) var(--ease-out), box-shadow var(--dur-base) var(--ease-out), background-color var(--dur-fast) var(--ease-out);letter-spacing:-.01em;font-weight:700}.btn.primary{background:linear-gradient(135deg, var(--primary) 0%, var(--primary2) 100%);box-shadow:var(--shadow-brand-sm)}.btn.primary:hover:not(:disabled){box-shadow:var(--shadow-brand-md);filter:brightness(1.04);transform:translateY(-1px)}.btn.primary:active:not(:disabled){transform:translateY(0)scale(.98)}.btn.ghost{transition:all var(--dur-fast) var(--ease-out)}.btn.ghost:hover:not(:disabled){background:var(--surface2);border-color:color-mix(in srgb, var(--primary) 30%, var(--border));box-shadow:var(--shadow-sm);transform:translateY(-1px)}.btn:focus-visible{box-shadow:var(--focus-ring);outline:none}.iconbtn{transition:all var(--dur-fast) var(--ease-out)}.iconbtn:hover{background:var(--surface2);border-color:color-mix(in srgb, var(--primary) 25%, var(--border));box-shadow:var(--shadow-sm);transform:translateY(-1px)}.panel{border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);transition:box-shadow var(--dur-base) var(--ease-out), border-color var(--dur-base) var(--ease-out)}.stat{border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);transition:all var(--dur-base) var(--ease-out);position:relative;overflow:hidden}.stat:before{content:"";background:linear-gradient(135deg, color-mix(in srgb, var(--primary) 6%, transparent), transparent 60%);opacity:0;transition:opacity var(--dur-base) var(--ease-out);pointer-events:none;position:absolute;inset:0}.stat:hover{box-shadow:var(--shadow-lg);border-color:color-mix(in srgb, var(--primary) 22%, var(--border));transform:translateY(-3px)}.stat:hover:before{opacity:1}.stat svg{transition:transform var(--dur-base) var(--ease-spring)}.stat:hover svg{transform:scale(1.08)}.stat b{letter-spacing:-.04em;font-variant-numeric:tabular-nums;font-size:32px;line-height:1}.welcome{border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);background:radial-gradient(600px 300px at 100% 0%, color-mix(in srgb, var(--primary) 10%, transparent), transparent 60%), linear-gradient(135deg, var(--surface) 0%, var(--surface2) 100%);overflow:hidden}.welcome h2{font-size:28px}.avatar{background:linear-gradient(135deg, var(--primary), var(--primary2));box-shadow:var(--shadow-brand-md);font-family:var(--font-display);border-radius:20px}nav button,.logout{transition:all var(--dur-fast) var(--ease-out);border-radius:var(--radius-sm);font-weight:600;position:relative}nav button svg,.logout svg{transition:transform var(--dur-base) var(--ease-spring)}nav button:hover svg{transform:scale(1.08)}nav button.active{background:linear-gradient(135deg, color-mix(in srgb, var(--primary) 14%, transparent), color-mix(in srgb, var(--primary2) 8%, transparent));color:var(--primary);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--primary) 18%, transparent);font-weight:700}nav button.active:before{content:"";background:linear-gradient(180deg, var(--primary), var(--primary2));border-radius:999px;width:3px;height:60%;position:absolute;top:50%;left:-14px;transform:translateY(-50%)}.tenant{border-radius:var(--radius-sm);background:linear-gradient(135deg, var(--surface2), color-mix(in srgb, var(--primary) 6%, var(--surface2)));border:1px solid var(--border)}.dashhead{z-index:5;background:color-mix(in srgb, var(--bg) 82%, transparent);-webkit-backdrop-filter:saturate(180%)blur(14px);border-bottom:1px solid color-mix(in srgb, var(--border) 60%, transparent);position:sticky;top:0}.dashhead h1{background:linear-gradient(135deg, var(--text) 0%, color-mix(in srgb, var(--text) 75%, var(--primary)) 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:26px}th{letter-spacing:.09em;padding:14px 12px;font-size:11px;font-weight:800}td{padding:15px 12px;font-size:14px}.chips span,.pill{transition:all var(--dur-fast) var(--ease-out);border:1px solid color-mix(in srgb, var(--primary) 16%, transparent)}.listitem{transition:all var(--dur-fast) var(--ease-out);border-radius:var(--radius-sm);padding:16px 12px}.listitem:hover{background:color-mix(in srgb, var(--primary) 4%, transparent);padding-left:16px}.modal,.teacher-profile-backdrop,.student-profile-backdrop{-webkit-backdrop-filter:saturate(180%)blur(10px)}.modalbox,.teacher-profile-modal,.student-profile-modal{box-shadow:var(--shadow-xl);border-radius:var(--radius-xl)}.quick button{border-radius:var(--radius-md);transition:all var(--dur-fast) var(--ease-out);border:1px solid #0000}.quick button:hover{background:color-mix(in srgb, var(--primary) 8%, var(--surface2));border-color:color-mix(in srgb, var(--primary) 18%, transparent);box-shadow:var(--shadow-sm);transform:translateY(-2px)}.quick button:hover svg{transform:scale(1.1)}.classcard{transition:all var(--dur-fast) var(--ease-out);border-radius:var(--radius-md)}.classcard:hover{border-color:color-mix(in srgb, var(--primary) 30%, var(--border));box-shadow:var(--shadow-sm);transform:translate(3px)}.content{animation:myEduEraPageIn var(--dur-slow) var(--ease-out)}@keyframes myEduEraPageIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}*{scrollbar-width:thin;scrollbar-color:color-mix(in srgb, var(--primary) 25%, transparent) transparent}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:color-mix(in srgb, var(--primary) 22%, transparent);border-radius:999px}::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb, var(--primary) 45%, transparent)}.notification-panel{border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);border:1px solid var(--border);-webkit-backdrop-filter:saturate(180%)blur(14px);backdrop-filter:saturate(180%)blur(14px);background:color-mix(in srgb, var(--surface) 92%, transparent)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}.stat:hover,.panel:hover,.quick button:hover,.classcard:hover{transform:none!important}}@media (width<=900px){.welcome{padding:22px}.welcome h2{font-size:22px}.stat b{font-size:26px}.stat{padding:16px}}@media (width<=540px){.panel{padding:16px}.stat{padding:14px}.stat b{font-size:24px}.avatar{width:48px;height:48px}.dashhead h1{font-size:22px}}:root{--glass-bg:#ffffffb8;--glass-bg-strong:#ffffffdb;--glass-border:#ffffff8c;--glass-highlight:#ffffffe6;--glass-shadow:0 8px 32px #7c5cff1a, 0 2px 8px #231a340d;--glass-glow:0 0 0 1px #fff9 inset, 0 1px 0 #ffffffd9 inset}:root[data-theme=dark]{--glass-bg:#1e192b9e;--glass-bg-strong:#1e192bd1;--glass-border:#ffffff1a;--glass-highlight:#ffffff2e;--glass-shadow:0 8px 32px #00000073, 0 2px 8px #0000004d;--glass-glow:0 0 0 1px #ffffff14 inset, 0 1px 0 #ffffff1f inset}.dashhead{background:var(--glass-bg)!important;-webkit-backdrop-filter:saturate(200%)blur(24px)!important;border-bottom:1px solid var(--glass-border)!important;box-shadow:0 1px 0 var(--glass-highlight) inset, 0 4px 24px #7c5cff0f!important}.shell aside{background:var(--glass-bg)!important;-webkit-backdrop-filter:saturate(180%)blur(20px)!important;border-right:1px solid var(--glass-border)!important;box-shadow:1px 0 0 var(--glass-highlight) inset!important}nav button{position:relative;transition:all .24s cubic-bezier(.16,1,.3,1)!important}nav button svg{box-sizing:content-box;background:color-mix(in srgb, var(--primary) 8%, transparent);border-radius:10px;padding:6px;transition:all .24s cubic-bezier(.34,1.56,.64,1)!important}nav button:hover svg{background:color-mix(in srgb, var(--primary) 14%, transparent);box-shadow:0 0 0 1px color-mix(in srgb, var(--primary) 20%, transparent), 0 4px 12px color-mix(in srgb, var(--primary) 18%, transparent);transform:scale(1.06)}nav button.active svg{background:linear-gradient(135deg, var(--primary), var(--primary2));box-shadow:0 4px 14px color-mix(in srgb, var(--primary) 40%, transparent), 0 0 0 1px color-mix(in srgb, var(--primary) 25%, transparent);color:#fff!important}nav button.active{-webkit-backdrop-filter:blur(12px)saturate(180%);background:var(--glass-bg-strong)!important;box-shadow:0 0 0 1px color-mix(in srgb, var(--primary) 20%, transparent), 0 4px 16px color-mix(in srgb, var(--primary) 12%, transparent), 0 1px 0 var(--glass-highlight) inset!important}.panel{background:var(--glass-bg)!important;-webkit-backdrop-filter:saturate(180%)blur(16px)!important;border:1px solid var(--glass-border)!important;box-shadow:var(--glass-shadow), var(--glass-glow)!important;transition:all .32s cubic-bezier(.16,1,.3,1)!important}.panel:hover{box-shadow:0 12px 40px #7c5cff24, 0 4px 12px #231a340f, var(--glass-glow)!important}.stat{position:relative;overflow:hidden;background:var(--glass-bg)!important;-webkit-backdrop-filter:saturate(200%)blur(20px)!important;border:1px solid var(--glass-border)!important;box-shadow:var(--glass-shadow), var(--glass-glow)!important}.stat:after{content:"";background:linear-gradient(180deg, color-mix(in srgb, var(--glass-highlight) 100%, transparent), transparent);opacity:.5;pointer-events:none;border-radius:inherit;height:50%;position:absolute;top:0;left:0;right:0}.stat svg{box-sizing:content-box;background:color-mix(in srgb, var(--primary) 10%, transparent);color:var(--primary);box-shadow:0 0 0 1px color-mix(in srgb, var(--primary) 14%, transparent) inset;border-radius:12px;padding:8px}.stat:hover svg{background:linear-gradient(135deg, color-mix(in srgb, var(--primary) 18%, transparent), color-mix(in srgb, var(--primary2) 12%, transparent));box-shadow:0 4px 14px color-mix(in srgb, var(--primary) 22%, transparent)}.btn.primary{position:relative;overflow:hidden;background:linear-gradient(135deg, var(--primary) 0%, var(--primary2) 100%)!important;box-shadow:0 6px 20px color-mix(in srgb, var(--primary) 32%, transparent), 0 0 0 1px color-mix(in srgb, var(--primary) 20%, transparent) inset, 0 1px 0 #fff6 inset!important}.btn.primary:before{content:"";pointer-events:none;border-radius:inherit inherit 0 0;background:linear-gradient(#ffffff40,#0000);height:50%;position:absolute;top:0;left:0;right:0}.btn.primary:after{content:"";pointer-events:none;background:linear-gradient(90deg,#0000,#ffffff59,#0000);width:100%;height:100%;transition:left .6s cubic-bezier(.16,1,.3,1);position:absolute;top:0;left:-100%}.btn.primary:hover:not(:disabled):after{left:100%}.btn.primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 10px 28px color-mix(in srgb, var(--primary) 42%, transparent), 0 0 0 1px color-mix(in srgb, var(--primary) 28%, transparent) inset, 0 1px 0 #ffffff80 inset!important}.btn.ghost{-webkit-backdrop-filter:blur(10px)saturate(180%);background:var(--glass-bg)!important;border:1px solid var(--glass-border)!important;box-shadow:0 2px 8px #231a340a, 0 1px 0 var(--glass-highlight) inset!important}.btn.ghost:hover:not(:disabled){transform:translateY(-1px);background:var(--glass-bg-strong)!important;box-shadow:0 6px 20px color-mix(in srgb, var(--primary) 14%, transparent), 0 0 0 1px color-mix(in srgb, var(--primary) 22%, transparent), 0 1px 0 var(--glass-highlight) inset!important}.iconbtn{-webkit-backdrop-filter:blur(12px)saturate(180%);background:var(--glass-bg)!important;border:1px solid var(--glass-border)!important;box-shadow:0 2px 10px #231a340d, 0 1px 0 var(--glass-highlight) inset!important}.iconbtn:hover{transform:translateY(-1px)scale(1.04);background:var(--glass-bg-strong)!important;box-shadow:0 6px 20px color-mix(in srgb, var(--primary) 18%, transparent), 0 0 0 1px color-mix(in srgb, var(--primary) 22%, transparent), 0 1px 0 var(--glass-highlight) inset!important}input,textarea,select{-webkit-backdrop-filter:blur(8px);background:var(--glass-bg)!important;border:1px solid var(--glass-border)!important;box-shadow:0 1px 0 var(--glass-highlight) inset!important}input:focus,textarea:focus,select:focus{background:var(--glass-bg-strong)!important;border-color:color-mix(in srgb, var(--primary) 60%, transparent)!important;box-shadow:0 0 0 4px color-mix(in srgb, var(--primary) 18%, transparent), 0 0 24px color-mix(in srgb, var(--primary) 22%, transparent), 0 1px 0 var(--glass-highlight) inset!important}.welcome{background:radial-gradient(600px 300px at 100% 0%, color-mix(in srgb, var(--primary) 16%, transparent), transparent 60%), linear-gradient(135deg, var(--glass-bg-strong), var(--glass-bg))!important;-webkit-backdrop-filter:saturate(200%)blur(24px)!important;border:1px solid var(--glass-border)!important;box-shadow:0 12px 40px color-mix(in srgb, var(--primary) 14%, transparent), 0 1px 0 var(--glass-highlight) inset!important}.modalbox,.teacher-profile-modal,.student-profile-modal{background:var(--glass-bg-strong)!important;-webkit-backdrop-filter:saturate(200%)blur(30px)!important;border:1px solid var(--glass-border)!important;box-shadow:0 30px 80px #231a3440, 0 0 0 1px var(--glass-border), 0 1px 0 var(--glass-highlight) inset!important}.modal,.teacher-profile-backdrop,.student-profile-backdrop{-webkit-backdrop-filter:saturate(180%)blur(20px)!important;background:#0f0d1666!important}.notification-panel{background:var(--glass-bg-strong)!important;-webkit-backdrop-filter:saturate(200%)blur(30px)!important;border:1px solid var(--glass-border)!important;box-shadow:0 20px 60px #231a342e, 0 0 0 1px var(--glass-border), 0 1px 0 var(--glass-highlight) inset!important}.avatar{position:relative;background:linear-gradient(135deg, var(--primary), var(--primary2))!important;box-shadow:0 8px 24px color-mix(in srgb, var(--primary) 40%, transparent), 0 0 0 1px #ffffff4d inset, 0 1px 0 #ffffff80 inset!important}.avatar:after{content:"";border-radius:inherit;pointer-events:none;background:linear-gradient(135deg,#ffffff4d,#0000 50%);position:absolute;inset:0}.quick button{-webkit-backdrop-filter:blur(12px)saturate(180%);background:var(--glass-bg)!important;border:1px solid var(--glass-border)!important;box-shadow:0 2px 8px #231a340a, 0 1px 0 var(--glass-highlight) inset!important}.quick button:hover{background:var(--glass-bg-strong)!important;border-color:color-mix(in srgb, var(--primary) 30%, transparent)!important;box-shadow:0 8px 24px color-mix(in srgb, var(--primary) 16%, transparent), 0 0 0 1px color-mix(in srgb, var(--primary) 22%, transparent), 0 1px 0 var(--glass-highlight) inset!important}.chips span,.pill{-webkit-backdrop-filter:blur(8px);background:var(--glass-bg)!important;border:1px solid var(--glass-border)!important;box-shadow:0 1px 0 var(--glass-highlight) inset!important}.classcard{-webkit-backdrop-filter:blur(12px);background:var(--glass-bg)!important;border:1px solid var(--glass-border)!important;box-shadow:0 1px 0 var(--glass-highlight) inset!important}.classcard:hover{background:var(--glass-bg-strong)!important;box-shadow:0 8px 24px color-mix(in srgb, var(--primary) 14%, transparent), 0 0 0 1px color-mix(in srgb, var(--primary) 24%, transparent), 0 1px 0 var(--glass-highlight) inset!important}.classcard.selected{background:linear-gradient(135deg, color-mix(in srgb, var(--primary) 14%, var(--glass-bg-strong)), color-mix(in srgb, var(--primary2) 10%, var(--glass-bg-strong)))!important;border-color:color-mix(in srgb, var(--primary) 45%, transparent)!important;box-shadow:0 8px 24px color-mix(in srgb, var(--primary) 22%, transparent), 0 0 0 1px color-mix(in srgb, var(--primary) 32%, transparent), 0 1px 0 var(--glass-highlight) inset!important}.tenant{-webkit-backdrop-filter:blur(12px)saturate(180%);background:var(--glass-bg)!important;border:1px solid var(--glass-border)!important;box-shadow:0 1px 0 var(--glass-highlight) inset!important}@supports not ((-webkit-backdrop-filter:blur(10px)) or (backdrop-filter:blur(10px))){.panel,.stat,.btn.ghost,.iconbtn,input,textarea,select,.welcome,.modalbox,.notification-panel,.quick button,.classcard,.tenant{background:var(--surface)!important}}:root[data-theme=dark] .panel,:root[data-theme=dark] .stat,:root[data-theme=dark] .btn.ghost,:root[data-theme=dark] .iconbtn,:root[data-theme=dark] .quick button,:root[data-theme=dark] .classcard,:root[data-theme=dark] .tenant{border-color:#ffffff14!important}@media (prefers-reduced-motion:reduce){.btn.primary:after{display:none}nav button svg,.stat svg,.iconbtn,.btn{transition:none!important}}.shell aside{background:var(--glass-bg,#ffffffb8);-webkit-backdrop-filter:saturate(200%)blur(24px);padding:20px 12px}.shell aside .brand{letter-spacing:-.02em;margin-bottom:16px;padding:4px 6px;font-size:19px}.shell aside .tenant{box-shadow:0 1px 0 var(--glass-highlight,#ffffffe6) inset;border-radius:14px;margin-bottom:18px;padding:12px 14px;font-size:13px}.shell aside .tenant small{margin-top:4px;font-size:11px}.shell aside nav{gap:3px}.shell aside nav button{letter-spacing:-.01em;border-radius:13px;padding:11px 13px;font-size:14px;font-weight:600}.shell aside nav button svg{width:18px;height:18px}.shell aside .logout{border-top:1px solid var(--border);border-radius:13px;margin-top:10px;padding:16px 13px 12px;font-size:14px;font-weight:700}.dashhead{min-height:88px;padding:16px 24px}.dashhead h1{font-size:28px;font-weight:900}.dashhead p{margin-top:2px;font-size:13px}.stat{border-radius:22px;padding:22px}.stat b{margin-top:12px;font-size:34px}.stat span{margin-top:4px;font-size:13px;font-weight:600}.stat svg{box-sizing:content-box;border-radius:12px;width:20px;height:20px;padding:8px}table{border-collapse:separate;border-spacing:0}th{letter-spacing:.08em;background:var(--glass-bg,#ffffffb8);-webkit-backdrop-filter:blur(8px);z-index:1;border-bottom:1px solid var(--border);padding:16px 14px;font-size:11px;font-weight:800;position:sticky;top:0}td{padding:16px 14px;font-size:14px;line-height:1.5}tbody tr{transition:background-color .2s}tbody tr:hover td{background:color-mix(in srgb, var(--primary) 5%, transparent)}.btn{border-radius:14px;padding:12px 18px;font-weight:700}.btn.primary{background:linear-gradient(135deg, var(--primary) 0%, var(--primary2) 50%, var(--primary) 100%);background-position:0 0;background-size:200% 100%;transition:background-position .4s,transform .2s,box-shadow .3s}.btn.primary:hover:not(:disabled){background-position:100% 0}.modalbox,.teacher-profile-modal,.student-profile-modal{border-radius:24px;padding:26px;animation:.4s cubic-bezier(.34,1.56,.64,1) myEduEraModalIn}@keyframes myEduEraModalIn{0%{opacity:0;transform:translateY(20px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}.empty{text-align:center;padding:60px 30px}.empty svg{color:var(--primary);opacity:.5;margin-bottom:16px;animation:4s ease-in-out infinite myEduEraFloat}.empty h2{letter-spacing:-.02em;margin:0 0 8px;font-size:22px}.empty p{max-width:420px;margin:0 auto;font-size:14px}@keyframes myEduEraFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.quick{gap:12px}.quick button{border-radius:18px;align-items:center;gap:12px;padding:20px 18px;font-size:14px;font-weight:700;display:flex}.quick button svg{width:20px;height:20px}.btn.primary:before{content:"";pointer-events:none;background:linear-gradient(90deg,#0000,#ffffff4d,#0000);width:100%;height:100%;transition:left .6s cubic-bezier(.16,1,.3,1);position:absolute;top:0;left:-100%}.btn.primary:hover:before{left:100%}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,a:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb, var(--primary) 30%, transparent);outline:none}.chips{gap:8px}.chips span{border-radius:10px;padding:7px 12px;font-size:12px;font-weight:700;transition:transform .2s}.chips span:hover{transform:translateY(-1px)}.pill{letter-spacing:.02em;border-radius:10px;padding:6px 12px;font-size:11px;font-weight:800}.teacher-verification-filters,.attendance-filters{gap:8px}.shell aside .logout:hover{color:#d64545;background:#d6454514}@media (width<=900px){.mobile-bottom-nav{display:flex}.shell main .content{padding-bottom:90px}}.mobile-bottom-nav{z-index:50;background:var(--glass-bg-strong,#ffffffdb);-webkit-backdrop-filter:saturate(200%)blur(30px);border:1px solid var(--glass-border,#ffffff8c);box-shadow:0 12px 32px #231a341f, 0 2px 8px #231a340f, 0 1px 0 var(--glass-highlight,#ffffffe6) inset;border-radius:24px;justify-content:space-around;align-items:stretch;padding:8px 4px;display:none;position:fixed;bottom:12px;left:12px;right:12px}.mobile-bottom-nav button{color:var(--muted);letter-spacing:.02em;cursor:pointer;background:0 0;border:none;border-radius:16px;flex-direction:column;flex:1;align-items:center;gap:3px;min-width:0;padding:8px 4px;font-size:10px;font-weight:700;transition:all .2s;display:flex}.mobile-bottom-nav button svg{width:22px;height:22px;transition:transform .24s cubic-bezier(.34,1.56,.64,1)}.mobile-bottom-nav button.active{color:var(--primary);background:color-mix(in srgb, var(--primary) 12%, transparent)}.mobile-bottom-nav button.active svg{transform:scale(1.12)}.mobile-bottom-nav button:active svg{transform:scale(.94)}@media (prefers-reduced-motion:reduce){.mobile-bottom-nav button svg,.btn.primary:before,.empty svg{transition:none!important;animation:none!important}}.sidebar-backdrop,.sidebar-close{display:none}@media (width<=900px){.sidebar-backdrop{-webkit-backdrop-filter:blur(4px);z-index:7;background:#0f0d1680;animation:.2s sidebarFadeIn;display:block;position:fixed;inset:0}.sidebar-close{background:var(--surface2);width:36px;height:36px;color:var(--text);border:1px solid var(--border);cursor:pointer;z-index:10;border-radius:12px;place-items:center;font-size:22px;font-weight:700;line-height:1;transition:all .2s;display:grid;position:absolute;top:14px;right:14px}.sidebar-close:hover{background:var(--surface);border-color:var(--primary);color:var(--primary)}.shell aside{z-index:8}}@keyframes sidebarFadeIn{0%{opacity:0}to{opacity:1}}.notice.success,.notice.error{animation:4s forwards noticeFadeOut}@keyframes noticeFadeOut{0%,70%{opacity:1;max-height:200px;margin:12px 0;padding:13px 15px}to{opacity:0;visibility:hidden;max-height:0;margin:0;padding:0;overflow:hidden}}@media (prefers-reduced-motion:reduce){.notice.success,.notice.error{animation:none}}:root{--gold-1:#d4af37;--gold-2:#f4d03f;--gold-soft:#d4af3726;--winner-bg:linear-gradient(135deg, #d4af371f, #d4af370a);--winner-border:#d4af3766;--runner-up-bg:linear-gradient(135deg, #b0b0b01a, #b0b0b008);--runner-up-border:#b0b0b059}.election-status-pill{letter-spacing:.04em;text-transform:uppercase;border:1px solid;border-radius:999px;align-items:center;gap:6px;padding:6px 12px;font-size:11px;font-weight:800;display:inline-flex}.election-status-pill.draft{color:#6b6b6b;background:#7878781a;border-color:#78787840}.election-status-pill.scheduled{color:#4f7fc7;background:#4f7fc71a;border-color:#4f7fc74d}.election-status-pill.running{color:#22a06b;background:#22a06b1f;border-color:#22a06b59}.election-status-pill.running:before{content:"";background:#22a06b;border-radius:50%;width:6px;height:6px;animation:1.5s infinite pulse-live;box-shadow:0 0 #22a06bb3}.election-status-pill.paused{color:#d99a18;background:#d99a181f;border-color:#d99a1859}.election-status-pill.ended{color:#5a5a70;background:#78788c1a;border-color:#78788c40}@keyframes pulse-live{0%{box-shadow:0 0 #22a06b99}70%{box-shadow:0 0 0 8px #22a06b00}to{box-shadow:0 0 #22a06b00}}.candidate-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;margin-top:12px;display:grid}.candidate-card{background:var(--surface);border:1.5px solid var(--border);cursor:pointer;border-radius:16px;padding:16px;transition:all .2s cubic-bezier(.16,1,.3,1);position:relative;overflow:hidden}.candidate-card:hover{border-color:var(--primary);transform:translateY(-2px);box-shadow:0 8px 24px #7c5cff26}.candidate-card.selected{border-color:var(--primary);background:linear-gradient(135deg,#7c5cff0f,#9b87f508);box-shadow:0 0 0 3px #7c5cff26,0 8px 24px #7c5cff1f}.candidate-card.voted{background:linear-gradient(135deg,#22a06b0f,#22a06b05);border-color:#22a06b}.candidate-card.locked{opacity:.6;cursor:not-allowed}.candidate-symbol-lg{background:linear-gradient(135deg,#7c5cff1a,#9b87f50d);border:1px solid #7c5cff26;border-radius:14px;justify-content:center;align-items:center;width:56px;height:56px;margin-bottom:10px;font-size:30px;display:inline-flex}.candidate-name{color:var(--text);letter-spacing:-.01em;margin-bottom:2px;font-size:15px;font-weight:800}.candidate-class{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-size:11px;font-weight:600}.candidate-manifesto-preview{color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:10px;font-size:12px;line-height:1.5;display:-webkit-box;overflow:hidden}.candidate-check{background:var(--primary);color:#fff;border-radius:50%;place-items:center;width:24px;height:24px;font-size:13px;display:grid;position:absolute;top:12px;right:12px;box-shadow:0 2px 8px #7c5cff4d}.candidate-card.voted .candidate-check{background:#22a06b;box-shadow:0 2px 8px #22a06b4d}.winner-card{background:var(--winner-bg);border:2px solid var(--winner-border);border-radius:18px;align-items:center;gap:16px;margin-bottom:10px;padding:18px 20px;display:flex;position:relative;overflow:hidden}.winner-crown{filter:drop-shadow(0 2px 4px #d4af3766);flex-shrink:0;font-size:32px}.winner-info{flex:1;min-width:0}.winner-info b{color:var(--text);letter-spacing:-.01em;font-size:17px;display:block}.winner-info small{color:var(--muted);font-size:11px;font-weight:600}.winner-votes{text-align:right;flex-shrink:0}.winner-votes b{color:var(--gold-1);letter-spacing:-.02em;font-size:22px;display:block}.winner-votes small{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:10px;font-weight:700}.runnerup-card{background:var(--runner-up-bg);border:1px solid var(--runner-up-border);border-radius:14px;align-items:center;gap:14px;margin-bottom:10px;padding:14px 16px;display:flex}.runnerup-medal{opacity:.85;flex-shrink:0;font-size:22px}.result-card{background:var(--surface2);border:1px solid var(--border);border-radius:14px;align-items:center;gap:14px;margin-bottom:10px;padding:14px 16px;display:flex}.poll-bar-wrap{background:var(--surface2);border-radius:999px;height:8px;margin-top:6px;overflow:hidden}.poll-bar{background:linear-gradient(90deg, var(--primary), var(--primary2));border-radius:999px;min-width:4px;height:100%;transition:width .6s cubic-bezier(.16,1,.3,1)}.poll-bar.winner{background:linear-gradient(90deg, var(--gold-1), var(--gold-2))}.poll-option-card{border:1.5px solid var(--border);cursor:pointer;background:var(--surface);border-radius:14px;margin-bottom:10px;padding:14px 16px;transition:all .2s}.poll-option-card:hover{border-color:var(--primary);background:linear-gradient(135deg,#7c5cff08,#0000)}.poll-option-card.voted{border-color:var(--primary);background:linear-gradient(135deg,#7c5cff14,#9b87f508)}.poll-option-card.winner{border-color:var(--gold-1);background:var(--winner-bg)}.poll-option-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;display:flex}.poll-option-label{color:var(--text);font-size:14px;font-weight:700}.poll-option-count{color:var(--primary);font-size:12px;font-weight:800}.poll-option-card.winner .poll-option-count{color:var(--gold-1)}.premium-empty-icon{width:64px;height:64px;color:var(--primary);background:linear-gradient(135deg,#7c5cff1f,#9b87f50f);border-radius:20px;place-items:center;margin:0 auto 16px;font-size:28px;display:grid;box-shadow:0 8px 24px #7c5cff1a}.premium-empty h4{letter-spacing:-.01em;margin:0 0 6px;font-size:17px}th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;transition:color var(--dur-fast,.15s) var(--ease-out,ease)}th.sortable:hover,th.sortable.active{color:var(--primary)}th.sortable .sort-arrow{opacity:.45;margin-left:6px;font-size:10px;display:inline-block;transform:translateY(-1px)}th.sortable.active .sort-arrow{opacity:1}.pager{flex-wrap:wrap;justify-content:center;align-items:center;gap:14px;margin:14px 0 4px;display:flex}.pager-info{color:var(--muted);font-variant-numeric:tabular-nums;font-size:13px}.pager .btn[disabled]{opacity:.4;cursor:not-allowed}.profile-photo{background:var(--surface2);border:1px solid var(--border);box-shadow:var(--shadow-brand-sm);border-radius:18px;flex:none;position:relative;overflow:visible}.profile-photo img{object-fit:cover;border-radius:18px;width:100%;height:100%;display:block}.profile-photo-fallback{letter-spacing:.5px;color:#fff;background:linear-gradient(135deg, var(--primary), var(--primary2));border-radius:18px;justify-content:center;align-items:center;width:100%;height:100%;font-size:22px;font-weight:800;display:flex}.profile-photo-edit{cursor:pointer;color:#fff;background:linear-gradient(135deg, var(--primary), var(--primary2));border:2px solid var(--surface);width:30px;height:30px;box-shadow:0 4px 12px color-mix(in srgb, var(--primary) 40%, transparent);transition:transform var(--dur-fast) var(--ease-out);border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;bottom:-6px;right:-6px}.profile-photo-edit:hover{transform:scale(1.08)}.profile-photo-edit.busy{cursor:progress;opacity:.8}.profile-photo-edit .spin{animation:.8s linear infinite profile-photo-spin}@keyframes profile-photo-spin{to{transform:rotate(360deg)}}.profile-photo-err{color:#fff;z-index:5;background:#dc506ef2;border-radius:8px;width:max-content;max-width:240px;padding:4px 8px;font-size:11px;font-weight:600;position:absolute;top:calc(100% + 6px);left:0}.student-docs .doc-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.student-docs .doc-head h4{margin:0}.doc-upload{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:12px;display:flex}.doc-upload input[type=text],.doc-upload input:not([type]){flex:220px;min-width:0}.doc-upload .btn.disabled{opacity:.6;pointer-events:none}.doc-list{flex-direction:column;gap:8px;display:flex}.doc-row{border:1px solid var(--border);background:var(--surface2);transition:border-color var(--dur-fast) var(--ease-out);border-radius:14px;align-items:center;gap:12px;padding:10px 12px;display:flex}.doc-row:hover{border-color:color-mix(in srgb, var(--primary) 35%, var(--border))}.doc-icon{color:#fff;background:linear-gradient(135deg, var(--primary), var(--primary2));border-radius:11px;flex:none;justify-content:center;align-items:center;width:38px;height:38px;display:flex}.doc-meta{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.doc-meta b{text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.doc-actions{flex:none;align-items:center;gap:6px;display:flex}.doc-del:hover{color:#dc506e;border-color:#dc506e80}.student-docs .spin,.doc-head .spin,.doc-upload .spin{animation:.8s linear infinite profile-photo-spin}@media (width<=560px){.doc-row{flex-wrap:wrap}.doc-actions{justify-content:flex-end;width:100%}}.tt-panel{overflow:hidden}.tt-head{border-bottom:1px solid var(--border);align-items:center;gap:14px;margin-bottom:16px;padding:4px 2px 16px;display:flex}.tt-head b{letter-spacing:.4px;font-size:17px;display:block}.tt-logo{object-fit:contain;background:var(--surface2);border:1px solid var(--border);border-radius:14px;flex:none;width:52px;height:52px;padding:5px}.tt-logo-fallback{color:#fff;background:linear-gradient(135deg, var(--primary), var(--primary2));justify-content:center;align-items:center;display:flex}.tt-scroll{overflow-x:auto}.tt-grid{border-collapse:separate;border-spacing:0;width:100%;min-width:640px}.tt-grid th,.tt-grid td{border:1px solid var(--border);text-align:center;vertical-align:middle;background:var(--surface);padding:8px}.tt-grid thead th{background:var(--surface2);text-transform:uppercase;letter-spacing:.6px;color:var(--muted);font-size:12px;position:sticky;top:0}.tt-slot-col{min-width:110px;background:var(--surface2)!important}.tt-slot-col b{font-size:13px;display:block}.tt-slot-col small{color:var(--muted);font-variant-numeric:tabular-nums}.tt-cellbtn{cursor:pointer;width:100%;transition:background var(--dur-fast) var(--ease-out);background:0 0;border:none;border-radius:10px;padding:6px 4px}.tt-cellbtn:hover{background:var(--surface2)}.tt-cellbtn:disabled{cursor:default}.tt-cellbtn b{font-size:13px;display:block}.tt-cellbtn small{display:block}.tt-cell.empty{background:color-mix(in srgb, var(--surface2) 40%, var(--surface))}.tt-add{border:1px dashed var(--border);width:30px;height:30px;color:var(--muted);cursor:pointer;transition:all var(--dur-fast) var(--ease-out);background:0 0;border-radius:50%;font-size:17px;line-height:1}.tt-add:hover{color:#fff;background:linear-gradient(135deg, var(--primary), var(--primary2));border-color:#0000}.tt-break .tt-break-cell{background:linear-gradient(135deg, color-mix(in srgb, var(--primary) 14%, var(--surface2)), color-mix(in srgb, var(--primary2) 14%, var(--surface2)));letter-spacing:1.2px;text-transform:uppercase;color:color-mix(in srgb, var(--primary) 70%, var(--text));font-size:12px;font-weight:800}.btn.gold{background:linear-gradient(135deg, var(--gold-1), var(--gold-2));color:#1a1428;border:none;font-weight:800;box-shadow:0 8px 24px #d4af3740}.btn.gold:hover:not(:disabled){filter:brightness(1.05);transform:translateY(-2px);box-shadow:0 12px 32px #d4af3759}.premium-ribbon{letter-spacing:.08em;text-transform:uppercase;color:var(--primary);background:linear-gradient(135deg,#7c5cff1a,#9b87f50d);border:1px solid #7c5cff33;border-radius:999px;align-items:center;gap:8px;margin-bottom:14px;padding:6px 14px;font-size:11px;font-weight:800;display:inline-flex}.premium-ribbon.gold{color:#a8841f;background:linear-gradient(135deg,#d4af371f,#f4d03f0d);border-color:#d4af374d}@media (width<=640px){.candidate-grid{grid-template-columns:1fr}.winner-card{gap:12px;padding:14px 16px}.winner-crown{font-size:26px}.winner-info b{font-size:15px}.winner-votes b{font-size:18px}}.election-actions{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px;display:flex}.election-actions .btn{white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.election-status-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin-top:4px;display:grid}.election-status-card{background:var(--surface2);border:1px solid var(--border);border-radius:12px;padding:12px 14px}.election-status-label{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:6px;font-size:10px;font-weight:800}.election-status-value{letter-spacing:.02em;font-size:13px;font-weight:800}.election-status-value.open{color:#4f7fc7}.election-status-value.closed{color:#6b6478}.election-status-value.live{color:#22a06b;animation:1.5s infinite pulse-live}.election-status-value.idle{color:#8a8195}.election-status-value.ended{color:#5a5a70}.election-status-value.published{color:#7c5cff}@media (width<=640px){.election-actions{flex-direction:column;align-items:stretch}.election-actions .btn{justify-content:center;width:100%}.election-status-grid{grid-template-columns:1fr 1fr}}.election-premium{flex-direction:column;gap:20px;display:flex}.election-banner{background:radial-gradient(600px 300px at 100% 0%, color-mix(in srgb, var(--primary) 35%, transparent), transparent 60%), linear-gradient(135deg, color-mix(in srgb, var(--primary) 92%, #000 8%), color-mix(in srgb, var(--primary2) 92%, #000 8%));color:#fff;box-shadow:0 18px 44px color-mix(in srgb, var(--primary) 30%, transparent);border-radius:22px;padding:24px 22px;position:relative;overflow:hidden}.election-banner:after{content:"";pointer-events:none;background:radial-gradient(400px 200px at 100% 100%,#ffffff1a,#0000 70%);position:absolute;inset:0}.election-banner-top{z-index:1;align-items:center;gap:12px;margin-bottom:18px;display:flex;position:relative}.election-banner-logo{object-fit:contain;background:#fff;border-radius:12px;flex-shrink:0;width:46px;height:46px;padding:4px;box-shadow:0 4px 14px #0000002e}.election-banner-logo-fallback{background:#fff3;border:1px solid #ffffff4d;border-radius:12px;flex-shrink:0;place-items:center;width:46px;height:46px;font-size:22px;font-weight:800;display:grid}.election-banner-school{letter-spacing:.02em;opacity:.92;white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:13px;font-weight:700;overflow:hidden}.election-banner-status .election-status-pill{color:#fff;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fff3;border-color:#ffffff59}.election-banner-title{z-index:1;letter-spacing:-.025em;color:#fff;margin:0 0 10px;font-size:26px;font-weight:800;line-height:1.18;position:relative}.election-banner-dates{z-index:1;opacity:.9;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:18px;font-size:13px;font-weight:500;display:flex;position:relative}.election-date-sep{opacity:.55}.election-countdown{z-index:1;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#00000038;border:1px solid #ffffff24;border-radius:16px;padding:14px 16px;position:relative}.election-countdown-label{text-align:center;letter-spacing:.14em;opacity:.72;margin-bottom:10px;font-size:10px;font-weight:800}.election-countdown-grid{grid-template-columns:repeat(4,1fr);gap:10px;display:grid}.election-countdown-cell{text-align:center;background:#ffffff1a;border:1px solid #ffffff24;border-radius:12px;padding:12px 6px}.election-countdown-value{letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-size:26px;font-weight:800;line-height:1}.election-countdown-unit{letter-spacing:.12em;opacity:.78;margin-top:6px;font-size:9px;font-weight:800}.election-position-block{border-top:1px solid var(--border);padding:20px 0}.election-position-block:first-of-type{border-top:none;padding-top:4px}.election-position-head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px;display:flex}.election-position-titles{flex:1;min-width:0}.election-position-name{letter-spacing:-.02em;color:var(--text);margin:0 0 4px;font-size:19px;font-weight:800}.election-position-hint{color:var(--muted);margin:0;font-size:12px;font-weight:600}.election-selected-pill{letter-spacing:.08em;background:linear-gradient(135deg, var(--primary), var(--primary2));color:#fff;box-shadow:0 4px 14px color-mix(in srgb, var(--primary) 35%, transparent);border-radius:999px;flex-shrink:0;padding:5px 12px;font-size:10px;font-weight:800}.candidate-row{scroll-snap-type:x mandatory;scrollbar-width:thin;-webkit-overflow-scrolling:touch;gap:14px;padding:4px 4px 14px;display:flex;overflow-x:auto}.candidate-row::-webkit-scrollbar{height:6px}.candidate-row::-webkit-scrollbar-thumb{background:color-mix(in srgb, var(--primary) 25%, transparent);border-radius:999px}.candidate-tile{scroll-snap-align:start;background:var(--surface);border:1.5px solid var(--border);text-align:center;cursor:pointer;border-radius:18px;flex-direction:column;flex:0 0 170px;align-items:center;padding:18px 14px 16px;transition:all .22s cubic-bezier(.16,1,.3,1);display:flex;position:relative;overflow:hidden;box-shadow:0 1px 3px #0000000a}.candidate-tile:hover:not(.locked):not(.is-self){border-color:var(--primary);box-shadow:0 14px 30px color-mix(in srgb, var(--primary) 22%, transparent);transform:translateY(-4px)}.candidate-tile.selected{border-color:var(--primary);background:linear-gradient(135deg, color-mix(in srgb, var(--primary) 10%, var(--surface)), color-mix(in srgb, var(--primary2) 5%, var(--surface)));box-shadow:0 0 0 3px color-mix(in srgb, var(--primary) 22%, transparent), 0 12px 28px color-mix(in srgb, var(--primary) 22%, transparent);transform:translateY(-2px)}.candidate-tile.locked{opacity:.55;cursor:not-allowed}.candidate-tile.is-self{cursor:not-allowed;background:var(--surface2);border-style:dashed;border-color:color-mix(in srgb, var(--muted) 35%, var(--border))}.candidate-tile.is-self:hover{transform:none}.candidate-tile-check{background:linear-gradient(135deg, var(--primary), var(--primary2));color:#fff;width:24px;height:24px;box-shadow:0 3px 10px color-mix(in srgb, var(--primary) 40%, transparent);z-index:2;border-radius:50%;place-items:center;font-size:13px;font-weight:900;display:grid;position:absolute;top:10px;right:10px}.candidate-tile-symbol{background:radial-gradient(circle at 30% 25%, #ffffffe6, transparent 55%), linear-gradient(135deg, color-mix(in srgb, var(--primary) 18%, var(--surface2)), color-mix(in srgb, var(--primary2) 12%, var(--surface2)));border:1px solid color-mix(in srgb, var(--primary) 18%, transparent);width:72px;height:72px;box-shadow:0 6px 18px color-mix(in srgb, var(--primary) 14%, transparent);border-radius:20px;place-items:center;margin-bottom:10px;font-size:38px;line-height:1;display:grid}.candidate-tile.selected .candidate-tile-symbol{background:radial-gradient(circle at 30% 25%, #fffffff2, transparent 55%), linear-gradient(135deg, color-mix(in srgb, var(--primary) 28%, var(--surface2)), color-mix(in srgb, var(--primary2) 20%, var(--surface2)));box-shadow:0 8px 22px color-mix(in srgb, var(--primary) 26%, transparent)}.candidate-tile-symbol-label{letter-spacing:.08em;text-transform:uppercase;color:var(--primary);margin-bottom:8px;font-size:10px;font-weight:800}.candidate-tile-divider{background:var(--border);width:100%;height:1px;margin:8px 0 10px}.candidate-tile-name{color:var(--text);letter-spacing:-.01em;margin-bottom:4px;font-size:14px;font-weight:800;line-height:1.25}.candidate-tile-class{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;font-size:11px;font-weight:700}.candidate-tile-self-note{background:color-mix(in srgb, var(--muted) 12%, transparent);color:var(--muted);text-align:center;letter-spacing:.02em;border-radius:6px;margin-top:10px;padding:5px 8px;font-size:9px;font-weight:700}.candidate-row-hint{color:var(--muted);text-align:center;margin-top:10px;font-size:12px;font-weight:600}.admin-nom-row{background:var(--surface2);border:1px solid var(--border);border-radius:14px;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:10px;padding:14px 16px;display:flex}.admin-nom-left{flex:1;gap:12px;min-width:0;display:flex}.admin-nom-symbol{background:linear-gradient(135deg, color-mix(in srgb, var(--primary) 14%, var(--surface)), color-mix(in srgb, var(--primary2) 8%, var(--surface)));border:1px solid color-mix(in srgb, var(--primary) 18%, transparent);border-radius:12px;flex-shrink:0;place-items:center;width:44px;height:44px;font-size:22px;display:grid}.admin-nom-info{flex-direction:column;gap:3px;min-width:0;display:flex}.admin-nom-info b{color:var(--text);font-size:14px}.admin-nom-info small{font-size:11px}.admin-nom-manifesto{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-style:italic;overflow:hidden;font-size:11px!important}.admin-nom-actions{flex-wrap:wrap;flex-shrink:0;align-items:center;gap:8px;display:flex}.election-empty-hint{text-align:center;color:var(--muted);background:var(--surface2);border:1px dashed var(--border);border-radius:14px;padding:24px;font-size:13px}.election-submit-row{justify-content:center;padding-top:8px;display:flex}@media (width<=640px){.election-banner{border-radius:18px;padding:18px 16px}.election-banner-title{font-size:22px}.election-countdown{padding:12px}.election-countdown-value{font-size:22px}.election-countdown-cell{padding:10px 4px}.election-position-name{font-size:17px}.candidate-tile{flex:0 0 150px;padding:14px 12px}.candidate-tile-symbol{width:64px;height:64px;font-size:34px}.admin-nom-row{flex-direction:column;align-items:stretch}}.candidate-tile-manifesto{background:var(--surface2);color:var(--muted);text-align:center;-webkit-line-clamp:3;border:1px solid var(--border);border-radius:10px;-webkit-box-orient:vertical;min-height:38px;max-height:62px;margin-top:10px;padding:8px 10px;font-size:11px;font-style:italic;line-height:1.4;display:-webkit-box;overflow:hidden}.candidate-tile.selected .candidate-tile-manifesto{background:color-mix(in srgb, var(--primary) 8%, var(--surface2));border-color:color-mix(in srgb, var(--primary) 25%, var(--border));color:var(--text)}.nomination-wizard{background:var(--surface);border:1px solid var(--border);border-radius:22px;margin-top:20px;padding:24px;box-shadow:0 8px 32px #231a340f}.nomination-wizard-head{text-align:center;margin-bottom:24px}.nomination-wizard-title{letter-spacing:-.02em;color:var(--text);margin:0 0 6px;font-size:22px;font-weight:800}.nomination-wizard-subtitle{color:var(--muted);margin:0;font-size:13px}.nomination-progress{justify-content:center;align-items:center;gap:8px;margin-bottom:28px;padding:0 20px;display:flex}.nomination-step{flex-direction:column;flex-shrink:0;align-items:center;gap:8px;display:flex}.nomination-step-circle{background:var(--surface2);border:2px solid var(--border);width:38px;height:38px;color:var(--muted);border-radius:50%;place-items:center;font-size:13px;font-weight:800;transition:all .24s cubic-bezier(.16,1,.3,1);display:grid}.nomination-step.active .nomination-step-circle{background:linear-gradient(135deg, var(--primary), var(--primary2));border-color:var(--primary);color:#fff;box-shadow:0 6px 20px color-mix(in srgb, var(--primary) 40%, transparent);transform:scale(1.08)}.nomination-step.completed .nomination-step-circle{color:#fff;background:linear-gradient(135deg,#22a06b,#16a34a);border-color:#22a06b;font-size:11px}.nomination-step-label{letter-spacing:.04em;color:var(--muted);text-transform:uppercase;font-size:11px;font-weight:700}.nomination-step.active .nomination-step-label{color:var(--primary)}.nomination-step.completed .nomination-step-label{color:#22a06b}.nomination-step-line{background:var(--border);border-radius:999px;flex:1;min-width:30px;height:2px;margin-bottom:26px;transition:all .3s}.nomination-step-line.completed{background:#22a06b}.nomination-step-content{margin-bottom:20px}.nomination-step-heading{letter-spacing:-.01em;color:var(--text);margin:0 0 4px;font-size:17px;font-weight:800}.nomination-step-hint{color:var(--muted);margin:0 0 18px;font-size:13px}.nomination-position-grid{gap:10px;display:grid}.nomination-position-card{background:var(--surface2);border:1.5px solid var(--border);text-align:left;cursor:pointer;border-radius:14px;align-items:center;gap:14px;width:100%;padding:14px 16px;transition:all .2s cubic-bezier(.16,1,.3,1);display:flex}.nomination-position-card:hover:not(.disabled){border-color:var(--primary);box-shadow:0 6px 20px color-mix(in srgb, var(--primary) 12%, transparent);transform:translateY(-1px)}.nomination-position-card.selected{border-color:var(--primary);background:linear-gradient(135deg, color-mix(in srgb, var(--primary) 8%, var(--surface2)), color-mix(in srgb, var(--primary2) 4%, var(--surface2)));box-shadow:0 0 0 3px color-mix(in srgb, var(--primary) 18%, transparent)}.nomination-position-card.disabled{opacity:.5;cursor:not-allowed}.nomination-position-radio{border:2px solid var(--border);color:#fff;border-radius:50%;flex-shrink:0;place-items:center;width:24px;height:24px;font-size:13px;font-weight:900;transition:all .2s;display:grid}.nomination-position-card.selected .nomination-position-radio{background:linear-gradient(135deg, var(--primary), var(--primary2));border-color:var(--primary)}.nomination-position-info{flex:1;min-width:0}.nomination-position-name{color:var(--text);margin-bottom:3px;font-size:15px;font-weight:800}.nomination-position-meta{color:var(--muted);font-size:11px;font-weight:600}.symbol-picker-grid{grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:10px;margin-bottom:16px;display:grid}.symbol-option-tile{background:var(--surface2);border:1.5px solid var(--border);cursor:pointer;border-radius:12px;flex-direction:column;align-items:center;gap:6px;padding:12px 8px;transition:all .18s cubic-bezier(.16,1,.3,1);display:flex}.symbol-option-tile:hover{border-color:var(--primary);box-shadow:0 6px 18px color-mix(in srgb, var(--primary) 14%, transparent);transform:translateY(-2px)}.symbol-option-tile.selected{border-color:var(--primary);background:linear-gradient(135deg, color-mix(in srgb, var(--primary) 12%, var(--surface2)), color-mix(in srgb, var(--primary2) 6%, var(--surface2)));box-shadow:0 0 0 3px color-mix(in srgb, var(--primary) 22%, transparent);transform:scale(1.02)}.symbol-option-icon{font-size:30px;line-height:1}.symbol-option-name{letter-spacing:.05em;color:var(--muted);text-transform:uppercase;font-size:10px;font-weight:700}.symbol-option-tile.selected .symbol-option-name{color:var(--primary)}.custom-symbol-row{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px;display:flex}.custom-symbol-row input{flex:220px;min-width:0;margin:0}.selected-custom-symbol{box-shadow:0 0 0 2px color-mix(in srgb, var(--primary) 20%, transparent);border-color:var(--primary)!important}.selected-symbol-preview{background:linear-gradient(135deg, color-mix(in srgb, var(--primary) 8%, var(--surface2)), color-mix(in srgb, var(--primary2) 4%, var(--surface2)));border:1px solid color-mix(in srgb, var(--primary) 22%, transparent);border-radius:14px;align-items:center;gap:12px;margin-bottom:8px;padding:12px 16px;display:flex}.selected-symbol-label{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:11px;font-weight:700}.selected-symbol-icon{font-size:28px;line-height:1}.selected-symbol-name{color:var(--primary);font-size:14px;font-weight:800}.nomination-final-layout{grid-template-columns:1fr 220px;gap:20px;margin-bottom:16px;display:grid}.nomination-manifesto-col{min-width:0}.nomination-manifesto-input{resize:vertical;width:100%;min-height:220px;margin:0}.nomination-manifesto-count{color:var(--muted);text-align:right;margin-top:6px;font-size:11px;font-weight:600}.nomination-preview-col{flex-shrink:0}.nomination-preview-label{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);text-align:center;margin-bottom:8px;font-size:10px;font-weight:800}.candidate-tile.preview{cursor:default;flex:none;width:100%;transform:none!important}.nomination-validation-hint{color:#b88314;text-align:center;background:#d99a1814;border:1px solid #d99a1840;border-radius:10px;margin-top:12px;padding:10px 14px;font-size:12px;font-weight:600}.nomination-nav{border-top:1px solid var(--border);align-items:center;gap:10px;margin-top:20px;padding-top:20px;display:flex}@media (width<=640px){.nomination-wizard{border-radius:18px;padding:18px 16px}.nomination-wizard-title{font-size:19px}.nomination-progress{gap:6px;padding:0 8px}.nomination-step-circle{width:32px;height:32px;font-size:11px}.nomination-step-label{font-size:9px}.nomination-step-line{min-width:16px}.nomination-final-layout{grid-template-columns:1fr}.nomination-preview-col{order:-1}.symbol-picker-grid{grid-template-columns:repeat(auto-fill,minmax(75px,1fr))}.symbol-option-icon{font-size:26px}.symbol-option-name{font-size:9px}}.candidate-tile-vote-stamp{letter-spacing:.18em;color:var(--primary);opacity:.88;text-transform:uppercase;pointer-events:none;-webkit-backdrop-filter:blur(4px);box-shadow:0 4px 14px color-mix(in srgb, var(--primary) 30%, transparent), 0 0 0 1px color-mix(in srgb, var(--primary) 25%, transparent);z-index:3;background:#ffffffd1;border:3px solid;border-radius:6px;padding:6px 18px;font-family:Plus Jakarta Sans,Inter,sans-serif;font-size:20px;font-weight:900;animation:.3s cubic-bezier(.34,1.56,.64,1) voteStampIn;position:absolute;top:42%;left:50%;transform:translate(-50%,-50%)rotate(-15deg)}:root[data-theme=dark] .candidate-tile-vote-stamp{color:color-mix(in srgb, var(--primary) 85%, #fff);background:#140f23d9}@keyframes voteStampIn{0%{opacity:0;transform:translate(-50%,-50%)rotate(-15deg)scale(2)}60%{opacity:1;transform:translate(-50%,-50%)rotate(-15deg)scale(.95)}to{opacity:.88;transform:translate(-50%,-50%)rotate(-15deg)scale(1)}}@media (width<=640px){.candidate-tile-vote-stamp{letter-spacing:.14em;border-width:2.5px;padding:5px 14px;font-size:16px}}.election-dates-row{grid-template-columns:1fr 1fr;gap:12px;margin:8px 0 6px;display:grid}.election-date-field{flex-direction:column;gap:4px;display:flex}.election-date-field>span{letter-spacing:.04em;color:var(--muted);text-transform:uppercase;font-size:11px;font-weight:700}.election-date-field input[type=datetime-local]{margin:0;padding:10px 12px;font-size:13px}.election-dates-hint{color:var(--muted);margin:2px 0 12px;font-size:11px}@media (width<=640px){.election-dates-row{grid-template-columns:1fr}}.election-dates-row-3{grid-template-columns:repeat(3,1fr);gap:10px;margin:8px 0 6px;display:grid}@media (width<=768px){.election-dates-row-3{grid-template-columns:1fr}}.notice-delete-btn{transition:all .16s}.notice-delete-btn:hover{color:#fff!important;background:#d64545!important;border-color:#d64545!important}.live-vote-panel{background:linear-gradient(135deg, color-mix(in srgb, var(--primary) 8%, var(--surface)), color-mix(in srgb, var(--primary2) 4%, var(--surface)));border:1.5px solid color-mix(in srgb, var(--primary) 25%, var(--border));border-radius:18px;margin-top:16px;padding:18px 20px}.live-vote-header{letter-spacing:.08em;text-transform:uppercase;color:var(--primary);align-items:center;gap:8px;margin-bottom:16px;font-size:12px;font-weight:800;display:flex}.live-pulse{background:#22a06b;border-radius:50%;width:8px;height:8px;animation:1.5s infinite livePulse;display:inline-block;box-shadow:0 0 #22a06bb3}@keyframes livePulse{0%{box-shadow:0 0 #22a06bb3}70%{box-shadow:0 0 0 10px #22a06b00}to{box-shadow:0 0 #22a06b00}}.live-vote-overall{background:var(--surface);border:1px solid var(--border);border-radius:14px;margin-bottom:20px;padding:14px 16px}.live-vote-stats{color:var(--muted);align-items:baseline;gap:8px;margin-bottom:10px;font-size:13px;font-weight:600;display:flex}.live-vote-stats b{color:var(--text);letter-spacing:-.02em;font-size:22px;font-weight:800}.live-vote-stats-pct{color:var(--primary);margin-left:auto;font-size:16px;font-weight:800}.live-vote-bar{background:var(--surface2);border-radius:999px;height:10px;overflow:hidden}.live-vote-bar-fill{background:linear-gradient(90deg, var(--primary), var(--primary2));border-radius:999px;min-width:4px;height:100%;transition:width .6s cubic-bezier(.16,1,.3,1)}.live-vote-position{margin-bottom:18px}.live-vote-position:last-child{margin-bottom:0}.live-vote-position-name{color:var(--text);border-bottom:1px solid var(--border);letter-spacing:-.01em;margin-bottom:10px;padding-bottom:6px;font-size:13px;font-weight:800}.live-vote-candidate{align-items:center;gap:10px;padding:8px 0;display:flex}.live-vote-symbol{background:color-mix(in srgb, var(--primary) 10%, var(--surface2));border:1px solid color-mix(in srgb, var(--primary) 18%, transparent);border-radius:10px;flex-shrink:0;place-items:center;width:32px;height:32px;font-size:16px;display:grid}.live-vote-name{color:var(--text);text-overflow:ellipsis;white-space:nowrap;flex-shrink:0;min-width:100px;max-width:140px;font-size:13px;font-weight:700;overflow:hidden}.live-vote-bar-small{background:var(--surface2);border-radius:999px;flex:1;min-width:60px;height:6px;overflow:hidden}.live-vote-bar-fill-small{background:linear-gradient(90deg, var(--primary), var(--primary2));border-radius:999px;min-width:4px;height:100%;transition:width .6s cubic-bezier(.16,1,.3,1)}.live-vote-candidate.winner .live-vote-bar-fill-small{background:linear-gradient(90deg,#d4af37,#f4d03f)}.live-vote-count{color:var(--primary);text-align:right;letter-spacing:-.01em;min-width:45px;font-size:13px;font-weight:800}.live-vote-candidate.winner .live-vote-count{color:#b8912a}.live-vote-refresh{text-align:center;color:var(--muted);letter-spacing:.04em;margin-top:12px;font-size:10px;font-weight:600}@media (width<=640px){.live-vote-panel{border-radius:14px;padding:14px}.live-vote-stats b{font-size:18px}.live-vote-name{min-width:80px;max-width:100px;font-size:12px}.live-vote-count{min-width:35px;font-size:12px}}.dashboard-live-voting{background:linear-gradient(135deg, color-mix(in srgb, var(--primary) 8%, var(--surface)), color-mix(in srgb, var(--primary2) 4%, var(--surface)));border:1.5px solid color-mix(in srgb, var(--primary) 25%, var(--border));box-shadow:0 6px 20px color-mix(in srgb, var(--primary) 10%, transparent);border-radius:20px;margin-bottom:22px;padding:20px 22px}.dashboard-live-voting-head{border-bottom:1px solid color-mix(in srgb, var(--primary) 15%, var(--border));justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;padding-bottom:12px;display:flex}.dashboard-live-voting-title{color:var(--primary);letter-spacing:.06em;text-transform:uppercase;align-items:center;gap:10px;font-size:15px;font-weight:800;display:flex}.dashboard-live-voting-count{background:var(--primary);color:#fff;letter-spacing:.04em;border-radius:999px;padding:4px 10px;font-size:11px;font-weight:800}.dashboard-live-election{background:var(--surface);border:1px solid var(--border);border-radius:14px;margin-bottom:10px;padding:14px 16px;transition:all .2s}.dashboard-live-election:last-child{margin-bottom:0}.dashboard-live-election:hover{border-color:color-mix(in srgb, var(--primary) 40%, var(--border));box-shadow:0 4px 14px color-mix(in srgb, var(--primary) 8%, transparent)}.dashboard-live-election-title{color:var(--text);letter-spacing:-.01em;margin-bottom:10px;font-size:15px;font-weight:800}.dashboard-live-election-progress{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:8px;display:flex}.dashboard-live-election-count{color:var(--muted);font-size:13px;font-weight:700}.dashboard-live-election-count b{color:var(--text);letter-spacing:-.02em;margin-right:2px;font-size:20px;font-weight:800}.dashboard-live-election-pct{color:var(--primary);letter-spacing:-.01em;font-size:15px;font-weight:800}.dashboard-live-election-bar{background:var(--surface2);border-radius:999px;height:10px;margin-bottom:10px;overflow:hidden}.dashboard-live-election-bar-fill{background:linear-gradient(90deg, var(--primary), var(--primary2));border-radius:999px;min-width:4px;height:100%;transition:width .8s cubic-bezier(.16,1,.3,1)}.dashboard-live-election-meta{color:var(--muted);letter-spacing:.02em;flex-wrap:wrap;gap:14px;margin-bottom:10px;font-size:11px;font-weight:700;display:flex}.dashboard-live-election-meta span{align-items:center;gap:5px;display:inline-flex}.dashboard-live-election-btn{background:linear-gradient(135deg, var(--primary), var(--primary2));color:#fff;cursor:pointer;letter-spacing:.02em;box-shadow:0 4px 12px color-mix(in srgb, var(--primary) 30%, transparent);border:none;border-radius:10px;align-items:center;gap:6px;padding:8px 14px;font-size:12px;font-weight:800;transition:all .18s;display:inline-flex}.dashboard-live-election-btn:hover{box-shadow:0 6px 18px color-mix(in srgb, var(--primary) 40%, transparent);transform:translateY(-1px)}.dashboard-live-election-time{color:#d99a18;font-weight:800}@media (width<=640px){.dashboard-live-voting{border-radius:16px;padding:16px 14px}.dashboard-live-election{padding:12px 14px}.dashboard-live-election-count b{font-size:17px}.dashboard-live-election-btn{justify-content:center;width:100%}}.btn,.iconbtn{position:relative;box-shadow:0 1px 2px #231a340f,0 2px 6px #231a340a,inset 0 1px #ffffff8c}:root[data-theme=dark] .btn,:root[data-theme=dark] .iconbtn{box-shadow:0 1px 2px #00000040,0 2px 6px #00000026,inset 0 1px #ffffff0f}.btn.ghost{box-shadow:0 1px 2px #231a340f,0 2px 8px #231a340d,inset 0 1px #ffffffb3,inset 0 -1px #231a3405}:root[data-theme=dark] .btn.ghost{box-shadow:0 1px 2px #0000004d,0 2px 8px #0003,inset 0 1px #ffffff14,inset 0 -1px #0000001a}.iconbtn{box-shadow:0 1px 2px #231a340f,0 2px 6px #231a340a,inset 0 1px #ffffffa6}.btn.ghost:hover:not(:disabled),.iconbtn:hover:not(:disabled){box-shadow:0 2px 4px #231a3414,0 6px 16px #231a3414,inset 0 1px #fffc}:root[data-theme=dark] .btn.ghost:hover:not(:disabled),:root[data-theme=dark] .iconbtn:hover:not(:disabled){box-shadow:0 2px 4px #00000059,0 6px 16px #00000040,inset 0 1px #ffffff1f}.btn.ghost:active:not(:disabled),.iconbtn:active:not(:disabled){transform:translateY(1px)scale(.98);box-shadow:0 1px 2px #231a3414,inset 0 1px 2px #231a340a}.btn.primary{box-shadow:0 2px 4px color-mix(in srgb, var(--primary) 22%, transparent), 0 6px 16px color-mix(in srgb, var(--primary) 18%, transparent), inset 0 1px 0 #ffffff59}.btn.primary:hover:not(:disabled){box-shadow:0 4px 8px color-mix(in srgb, var(--primary) 28%, transparent), 0 10px 24px color-mix(in srgb, var(--primary) 22%, transparent), inset 0 1px 0 #fff6}.btn.gold{box-shadow:0 2px 4px #d4af3740,0 6px 16px #d4af3733,inset 0 1px #ffffff73}nav button{box-shadow:inset 0 1px #fff0}nav button:hover:not(.active){box-shadow:0 1px 2px #231a340a,inset 0 1px #ffffff80}.shell aside{box-shadow:1px 0 0 var(--glass-highlight) inset, 2px 0 12px #231a3408}.mobile-bottom-nav{box-shadow:0 12px 32px #231a341f, 0 2px 8px #231a340f, inset 0 1px 0 var(--glass-highlight)}.notice-delete-btn{box-shadow:0 1px 2px #231a340f,inset 0 1px #fff9}.notice-delete-btn:hover{box-shadow:0 2px 6px #d6454540,inset 0 1px #fff3}.notice-list-item{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:12px 4px;display:flex;position:relative}.notice-list-item:last-child{border-bottom:none}.notice-new-badge{letter-spacing:.08em;text-transform:uppercase;color:#fff;background:linear-gradient(135deg,#22a06b,#16a34a);border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;margin-left:6px;padding:2px 7px;font-size:9px;font-weight:800;display:inline-flex;box-shadow:0 2px 6px #22a06b4d}.notice-timestamp{color:var(--muted);letter-spacing:.01em;margin-top:4px;font-size:11px;font-weight:600;display:block}.notice-title-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.owner-stats-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin-bottom:22px;display:grid}.owner-stat-card{background:linear-gradient(135deg, var(--surface), var(--surface2));border:1px solid var(--border);border-radius:18px;padding:20px 22px;transition:all .24s cubic-bezier(.16,1,.3,1);position:relative;overflow:hidden}.owner-stat-card:hover{transform:translateY(-3px);box-shadow:0 12px 32px #231a341a}.owner-stat-icon{background:color-mix(in srgb, var(--primary) 12%, transparent);width:40px;height:40px;color:var(--primary);border-radius:12px;place-items:center;margin-bottom:14px;display:grid}.owner-stat-card.primary .owner-stat-icon{background:linear-gradient(135deg, var(--primary), var(--primary2));color:#fff;box-shadow:0 6px 16px color-mix(in srgb, var(--primary) 35%, transparent)}.owner-stat-card.success .owner-stat-icon{color:#fff;background:linear-gradient(135deg,#22a06b,#16a34a)}.owner-stat-card.warning .owner-stat-icon{color:#fff;background:linear-gradient(135deg,#d99a18,#b88314)}.owner-stat-card.danger .owner-stat-icon{color:#fff;background:linear-gradient(135deg,#d64545,#b83333)}.owner-stat-value{letter-spacing:-.03em;color:var(--text);font-variant-numeric:tabular-nums;margin-bottom:6px;font-size:32px;font-weight:800;line-height:1}.owner-stat-label{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:11px;font-weight:800}.owner-panel{background:var(--surface);border:1px solid var(--border);border-radius:20px;margin-bottom:18px;padding:22px;box-shadow:0 2px 8px #231a340a}.owner-panel-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:18px;padding-bottom:14px;display:flex}.owner-panel-title{letter-spacing:-.01em;color:var(--text);margin:0 0 4px;font-size:17px;font-weight:800}.owner-panel-subtitle{color:var(--muted);margin:0;font-size:12px;font-weight:500}.owner-panel-badge{background:color-mix(in srgb, var(--primary) 12%, transparent);color:var(--primary);border-radius:999px;flex-shrink:0;align-items:center;gap:6px;padding:5px 12px;font-size:11px;font-weight:800;display:inline-flex}.owner-school-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;margin-bottom:12px;padding:18px 20px;transition:all .22s}.owner-school-card:hover{border-color:color-mix(in srgb, var(--primary) 30%, var(--border));transform:translateY(-1px);box-shadow:0 6px 20px #231a340f}.owner-school-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px;display:flex}.owner-school-name{letter-spacing:-.01em;color:var(--text);margin:0 0 4px;font-size:16px;font-weight:800}.owner-school-code{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;font-size:11px;font-weight:700}.owner-school-stats{background:var(--surface2);border-radius:12px;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:12px;margin-bottom:14px;padding:12px 14px;display:grid}.owner-school-stat-item{text-align:center}.owner-school-stat-item small{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:4px;font-size:10px;font-weight:800;display:block}.owner-school-stat-item b{color:var(--text);font-size:16px;font-weight:800}.owner-school-meta{color:var(--muted);flex-wrap:wrap;gap:10px;margin-bottom:14px;font-size:12px;display:flex}.owner-school-actions{border-top:1px solid var(--border);flex-wrap:wrap;gap:8px;padding-top:12px;display:flex}.owner-school-actions .btn{padding:8px 14px;font-size:12px}.owner-registration-card{background:linear-gradient(135deg, color-mix(in srgb, var(--primary) 4%, var(--surface)), var(--surface));border:1px solid color-mix(in srgb, var(--primary) 18%, var(--border));border-radius:16px;margin-bottom:12px;padding:18px 20px}.owner-registration-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.owner-registration-name{color:var(--text);margin:0;font-size:16px;font-weight:800}.owner-registration-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin-bottom:14px;display:grid}.owner-registration-field{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:10px 12px}.owner-registration-field small{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:3px;font-size:9px;font-weight:800;display:block}.owner-registration-field b{color:var(--text);overflow-wrap:anywhere;font-size:13px;font-weight:700}@media (width<=640px){.owner-panel{border-radius:16px;padding:16px 14px}.owner-stat-value{font-size:26px}.owner-school-card,.owner-registration-card{padding:14px 16px}}.owner-filter-tabs{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:6px;margin-bottom:16px;padding-bottom:12px;display:flex}.owner-filter-tab{border:1px solid var(--border);background:var(--surface);color:var(--muted);cursor:pointer;border-radius:999px;padding:7px 14px;font-size:12px;font-weight:700;transition:all .18s}.owner-filter-tab:hover:not(.active){background:var(--surface2);color:var(--text);border-color:color-mix(in srgb, var(--primary) 30%, var(--border))}.owner-filter-tab.active{background:linear-gradient(135deg, var(--primary), var(--primary2));color:#fff;box-shadow:0 4px 12px color-mix(in srgb, var(--primary) 30%, transparent);border-color:#0000}.owner-tabs{background:var(--surface2);border:1px solid var(--border);border-radius:16px;flex-wrap:wrap;gap:8px;margin-bottom:20px;padding:6px;display:flex}.owner-tab{color:var(--muted);cursor:pointer;transition:all var(--dur-base,.18s) var(--ease-out,ease);background:0 0;border:1px solid #0000;border-radius:12px;align-items:center;gap:8px;padding:10px 16px;font-size:13px;font-weight:700;display:inline-flex;position:relative}.owner-tab:hover:not(.active){background:var(--surface);color:var(--text)}.owner-tab.active{background:linear-gradient(135deg, var(--primary), var(--primary2));color:#fff;box-shadow:var(--shadow-brand-sm,0 6px 18px color-mix(in srgb, var(--primary) 32%, transparent))}.owner-tab-badge{color:#fff;text-align:center;background:#dc506ef2;border-radius:999px;min-width:18px;height:18px;padding:0 5px;font-size:11px;font-weight:800;line-height:18px}.owner-tab.active .owner-tab-badge{background:#ffffff47}.owner-overview-quick{margin-top:4px}.owner-quick-row{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;display:grid}.owner-quick-item{border:1px solid var(--border);background:linear-gradient(135deg, var(--surface2), var(--surface));border-radius:14px;align-items:center;gap:12px;padding:14px 16px;display:flex}.owner-quick-item>svg{color:var(--primary);flex:none}.owner-quick-copy{flex-direction:column;flex:auto;min-width:0;display:flex}.owner-quick-copy b{letter-spacing:-.02em;font-size:22px;line-height:1.1}.owner-quick-copy span{color:var(--muted);font-size:12px}.owner-quick-item .btn{flex:none}@media (width<=560px){.owner-tab span{display:none}.owner-tab{padding:10px 12px}}@media (width>=901px){.owner-registration-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:10px!important;display:grid!important}.owner-registration-field{min-width:0;padding:10px 12px}.owner-registration-field small{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:3px;font-size:9px;font-weight:800;display:block}.owner-registration-field b{color:var(--text);overflow-wrap:anywhere;word-break:break-word;font-size:13px;font-weight:700}.owner-registration-card{background:linear-gradient(135deg, color-mix(in srgb, var(--primary) 4%, var(--surface)), var(--surface));border:1px solid color-mix(in srgb, var(--primary) 18%, var(--border));border-radius:16px;margin-bottom:12px;padding:18px 20px}.owner-registration-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.owner-registration-name{color:var(--text);letter-spacing:-.01em;margin:0;font-size:16px;font-weight:800}}@media (width<=540px){.owner-registration-grid{grid-template-columns:1fr;gap:8px;display:grid}}@media (width>=541px) and (width<=900px){.owner-registration-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}}.premium-empty-icon{width:56px;height:56px;color:var(--primary);background:linear-gradient(135deg,#7c5cff1f,#9b87f50f);border-radius:16px;place-items:center;margin:0 auto 14px;font-size:24px;font-weight:800;display:grid;box-shadow:0 6px 20px #7c5cff1a}.premium-empty h4{color:var(--text);margin:0 0 6px;font-size:15px;font-weight:800}.owner-support-panel{margin-top:18px}.owner-support-layout{grid-template-columns:340px 1fr;gap:16px;min-height:500px;margin-top:16px;display:grid}.owner-support-list{border-right:1px solid var(--border);flex-direction:column;gap:8px;max-height:600px;padding-right:4px;display:flex;overflow-y:auto}.owner-support-thread{flex-direction:column;gap:12px;max-height:600px;padding:4px 4px 4px 0;display:flex;overflow-y:auto}.support-ticket-row{border:1px solid var(--border);background:var(--surface);cursor:pointer;text-align:left;border-radius:12px;justify-content:space-between;align-items:flex-start;gap:10px;width:100%;padding:12px 14px;transition:all .18s;display:flex}.support-ticket-row:hover{background:var(--surface2);border-color:color-mix(in srgb, var(--primary) 30%, var(--border));transform:translateY(-1px)}.support-ticket-row.selected{background:linear-gradient(135deg, color-mix(in srgb, var(--primary) 8%, var(--surface)), color-mix(in srgb, var(--primary2) 4%, var(--surface)));border-color:color-mix(in srgb, var(--primary) 40%, var(--border));box-shadow:0 4px 12px color-mix(in srgb, var(--primary) 12%, transparent)}.support-ticket-row>div:first-child{flex:1;min-width:0}.support-ticket-row b{color:var(--text);text-overflow:ellipsis;white-space:nowrap;margin-bottom:3px;font-size:13px;font-weight:800;display:block;overflow:hidden}.support-ticket-row small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin-bottom:2px;font-size:11px;display:block;overflow:hidden}.support-row-right{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:4px;display:flex}.support-row-right small{color:var(--muted);font-size:10px}.support-empty{text-align:center;color:var(--muted);background:var(--surface2);border:1px dashed var(--border);border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:40px 20px;display:flex}.support-empty b{color:var(--text);font-size:14px;font-weight:800}.support-empty.large{min-height:400px}.support-empty svg{color:var(--primary);opacity:.5}.support-message{border-radius:14px;margin-bottom:10px;padding:14px 16px}.support-message.admin-message{background:var(--surface2);border:1px solid var(--border)}.support-message.owner-message{background:linear-gradient(135deg, color-mix(in srgb, var(--primary) 8%, var(--surface)), color-mix(in srgb, var(--primary2) 4%, var(--surface)));border:1px solid color-mix(in srgb, var(--primary) 25%, var(--border))}.support-message-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:8px;display:flex}.support-message-head b{color:var(--text);font-size:13px;font-weight:800}.support-message-head small{color:var(--muted);font-size:10px}.support-message p{color:var(--text);white-space:pre-wrap;margin:0;font-size:13px;line-height:1.6}.support-reply-box textarea{resize:vertical;min-height:100px;margin:0}.support-reply-box .btn{align-self:flex-end}@media (width<=900px){.owner-support-layout{grid-template-columns:1fr;gap:12px;min-height:auto}.owner-support-list{border-right:none;border-bottom:1px solid var(--border);max-height:300px;padding-bottom:12px;padding-right:0}.owner-support-thread{max-height:500px}.support-empty.large{min-height:250px}}@media (width<=540px){.owner-support-list{max-height:240px}.support-message{padding:12px 14px}.support-ticket-row{padding:10px 12px}}.support-status-pills{flex-wrap:wrap;gap:6px;display:flex}.support-status-pill{border:1px solid var(--border);background:var(--surface);color:var(--muted);letter-spacing:.03em;cursor:pointer;white-space:nowrap;border-radius:999px;padding:7px 14px;font-size:11px;font-weight:800;transition:all .18s}.support-status-pill:hover:not(.active){background:var(--surface2);color:var(--text);border-color:color-mix(in srgb, var(--primary) 30%, var(--border))}.support-status-pill.active.new{color:#fff;background:linear-gradient(135deg,#4f7fc7,#3b6db3);border-color:#0000;box-shadow:0 4px 12px #4f7fc74d}.support-status-pill.active.in_progress{color:#fff;background:linear-gradient(135deg,#d99a18,#b88314);border-color:#0000;box-shadow:0 4px 12px #d99a184d}.support-status-pill.active.resolved{color:#fff;background:linear-gradient(135deg,#22a06b,#16a34a);border-color:#0000;box-shadow:0 4px 12px #22a06b4d}.support-reply-box{border-top:1px solid var(--border);flex-direction:column;gap:10px;margin-top:14px;padding-top:14px;display:flex}.support-reply-box textarea{resize:vertical;min-height:120px;margin:0;padding:12px 14px;font-size:14px;line-height:1.5}.support-reply-box textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb, var(--primary) 18%, transparent)}.support-reply-box .btn{align-self:flex-end;padding:10px 22px;font-size:13px}.support-reply-hint{color:var(--muted);text-align:right;margin-top:-4px;font-size:11px;font-weight:600}@media (width<=640px){.support-status-pills{width:100%}.support-status-pill{text-align:center;flex:auto;padding:8px 10px;font-size:10px}.support-reply-box .btn{justify-content:center;align-self:stretch;width:100%}.support-reply-hint{text-align:center}}.calendar-page{flex-direction:column;gap:16px;display:flex}.calendar-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.calendar-title{letter-spacing:-.02em;color:var(--text);margin:0;font-size:24px;font-weight:800}.calendar-subtitle{color:var(--muted);margin:4px 0 0;font-size:13px;font-weight:600}.calendar-header-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.calendar-type-filter{width:auto;min-width:140px;margin:0;padding:10px 14px;font-size:13px}.calendar-nav{background:var(--surface);border:1px solid var(--border);border-radius:16px;align-items:center;gap:10px;padding:12px 14px;display:flex;box-shadow:0 2px 8px #231a340a}.calendar-month-label{text-align:center;letter-spacing:-.01em;color:var(--text);flex:1;font-size:17px;font-weight:800}.calendar-grid-wrapper{background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:14px;box-shadow:0 4px 16px #231a340d}.calendar-weekdays{grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:8px;display:grid}.calendar-weekday{text-align:center;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding:6px 0;font-size:11px;font-weight:800}.calendar-grid{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.calendar-cell{aspect-ratio:1;background:var(--surface);cursor:pointer;text-align:left;min-height:56px;color:inherit;border:1px solid #0000;border-radius:10px;flex-direction:column;align-items:stretch;padding:6px 6px 4px;font-family:inherit;transition:all .18s cubic-bezier(.16,1,.3,1);display:flex;position:relative;overflow:hidden}.calendar-cell:hover:not(.empty){background:color-mix(in srgb, var(--primary) 6%, var(--surface));border-color:color-mix(in srgb, var(--primary) 25%, transparent);transform:translateY(-1px)}.calendar-cell.empty{cursor:default;pointer-events:none;background:0 0;border:none}.calendar-cell.today{background:linear-gradient(135deg, color-mix(in srgb, var(--primary) 10%, var(--surface)), color-mix(in srgb, var(--primary2) 5%, var(--surface)));border-color:color-mix(in srgb, var(--primary) 40%, transparent)}.calendar-cell.selected{background:linear-gradient(135deg, color-mix(in srgb, var(--primary) 16%, var(--surface)), color-mix(in srgb, var(--primary2) 8%, var(--surface)));border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb, var(--primary) 18%, transparent)}.calendar-cell-date{color:var(--text);letter-spacing:-.01em;margin-bottom:4px;font-size:13px;font-weight:800;line-height:1}.calendar-cell.today .calendar-cell-date,.calendar-cell.selected .calendar-cell-date{color:var(--primary)}.calendar-cell-dots{flex-wrap:wrap;align-items:center;gap:2px;margin-top:auto;display:flex}.calendar-dot{border-radius:50%;flex-shrink:0;width:7px;height:7px;box-shadow:0 1px 2px #00000014}.calendar-dot-more{color:var(--muted);letter-spacing:-.02em;font-size:9px;font-weight:800}.calendar-legend{background:var(--surface);border:1px solid var(--border);border-radius:14px;flex-wrap:wrap;gap:12px 18px;padding:12px 16px;display:flex}.calendar-legend-item{color:var(--muted);align-items:center;gap:6px;font-size:12px;font-weight:700;display:flex}.calendar-legend-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.calendar-day-panel{background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:20px;animation:.26s cubic-bezier(.16,1,.3,1) calendarPanelIn;box-shadow:0 4px 16px #231a340d}@keyframes calendarPanelIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.calendar-event-list{flex-direction:column;gap:10px;margin-top:12px;display:flex}.calendar-event-card{background:var(--surface2);border:1px solid var(--border);border-radius:14px;align-items:stretch;gap:12px;padding:12px 14px;transition:all .18s;display:flex;overflow:hidden}.calendar-event-card:hover{border-color:color-mix(in srgb, var(--primary) 25%, var(--border));transform:translateY(-1px);box-shadow:0 4px 12px #231a340f}.calendar-event-type-bar{border-radius:4px;flex-shrink:0;width:4px}.calendar-event-body{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}.calendar-event-head{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.calendar-event-title{color:var(--text);letter-spacing:-.01em;font-size:14px;font-weight:800}.calendar-event-pill{letter-spacing:.04em;text-transform:uppercase;border-radius:999px;padding:3px 10px;font-size:10px;font-weight:800}.calendar-event-desc{color:var(--muted);white-space:pre-wrap;margin:0;font-size:12px;line-height:1.5}.calendar-event-delete{color:#d64545;border:1px solid var(--border);background:0 0;flex-shrink:0;align-self:flex-start;width:32px;height:32px}.calendar-event-delete:hover{color:#fff;background:#d64545;border-color:#d64545}@media (width<=640px){.calendar-header{flex-direction:column;align-items:stretch}.calendar-header-actions{width:100%}.calendar-header-actions .btn,.calendar-type-filter{flex:1;justify-content:center}.calendar-title{font-size:20px}.calendar-nav{gap:6px;padding:10px}.calendar-month-label{font-size:15px}.calendar-grid-wrapper{border-radius:14px;padding:10px}.calendar-cell{border-radius:8px;min-height:44px;padding:4px 4px 3px}.calendar-cell-date{margin-bottom:2px;font-size:11px}.calendar-dot{width:5px;height:5px}.calendar-dot-more{font-size:8px}.calendar-weekday{padding:4px 0;font-size:9px}.calendar-legend{gap:8px 12px;padding:10px 12px}.calendar-legend-item{font-size:11px}.calendar-day-panel{border-radius:14px;padding:14px}}@media (width<=400px){.calendar-cell{min-height:38px;padding:3px}.calendar-cell-date{font-size:10px}.calendar-dot{width:4px;height:4px}}.calendar-cell-events{flex-direction:column;gap:2px;min-height:0;margin-top:auto;display:flex;overflow:hidden}.calendar-cell-event{text-overflow:ellipsis;white-space:nowrap;letter-spacing:-.01em;border-left:2px solid;border-radius:3px;max-width:100%;padding:1px 4px;font-size:9px;font-weight:700;line-height:1.2;overflow:hidden}.calendar-cell-more{color:var(--muted);letter-spacing:-.01em;padding-left:4px;font-size:8px;font-weight:800}@media (width<=640px){.calendar-cell-event{border-left-width:1.5px;padding:1px 3px;font-size:8px}.calendar-cell-more{font-size:7px}}@media (width<=400px){.calendar-cell-event{padding:.5px 2px;font-size:7px}.calendar-cell-events{gap:1px}}.license-page{flex-direction:column;gap:16px;max-width:720px;display:flex}.license-card-premium{color:#fff;background:radial-gradient(600px 300px at 100% 0,#ffffff26,#0000 60%),linear-gradient(135deg,#1c1429 0%,#2a1e3d 50%,#1c1429 100%);border-radius:22px;padding:26px 28px;position:relative;overflow:hidden;box-shadow:0 20px 50px #1c14294d,0 4px 14px #1c142926,inset 0 1px #ffffff26}.license-card-glow{background:radial-gradient(circle, color-mix(in srgb, var(--primary) 45%, transparent), transparent 70%);pointer-events:none;filter:blur(40px);border-radius:50%;width:300px;height:300px;position:absolute;top:-100px;right:-100px}.license-card-head{z-index:1;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:24px;display:flex;position:relative}.license-card-brand{align-items:center;gap:12px;display:flex}.license-card-logo{background:linear-gradient(135deg, var(--primary), var(--primary2));color:#fff;width:44px;height:44px;box-shadow:0 8px 20px color-mix(in srgb, var(--primary) 40%, transparent), inset 0 1px 0 #ffffff4d;border-radius:12px;place-items:center;font-family:Plus Jakarta Sans,sans-serif;font-size:20px;font-weight:900;display:grid}.license-card-brand-name{letter-spacing:-.01em;color:#fff;font-size:15px;font-weight:800}.license-card-brand-type{letter-spacing:.1em;text-transform:uppercase;color:#ffffff8c;margin-top:2px;font-size:10px;font-weight:700}.license-card-body{z-index:1;margin-bottom:24px;position:relative}.license-card-school{letter-spacing:-.02em;color:#fff;margin-bottom:6px;font-size:26px;font-weight:800;line-height:1.15}.license-card-code{color:#ffffff8c;letter-spacing:.02em;font-size:12px;font-weight:600}.license-card-grid{z-index:1;border-top:1px solid #ffffff1a;grid-template-columns:repeat(3,1fr);gap:16px;padding-top:20px;display:grid;position:relative}.license-card-field small{letter-spacing:.1em;text-transform:uppercase;color:#ffffff73;margin-bottom:6px;font-size:9px;font-weight:800;display:block}.license-card-field b{color:#fff;letter-spacing:-.01em;word-break:break-word;font-size:15px;font-weight:800}.license-card-footer{z-index:1;border-top:1px solid #ffffff1a;margin-top:20px;padding-top:16px;position:relative}.license-card-footer-text{letter-spacing:.02em;font-size:13px;font-weight:800}.license-status-badge{letter-spacing:.04em;text-transform:uppercase;border:1px solid;border-radius:999px;flex-shrink:0;align-items:center;gap:6px;padding:6px 12px;font-size:11px;font-weight:800;display:inline-flex}.license-status-badge.big{padding:8px 16px;font-size:12px}.license-status-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px;box-shadow:0 0 0 3px #ffffff26}.license-message-card{border:1px solid;border-radius:14px;align-items:flex-start;gap:12px;padding:14px 16px;display:flex}.license-message-icon{background:#ffffff80;border-radius:50%;flex-shrink:0;place-items:center;width:24px;height:24px;font-family:Georgia,serif;font-size:13px;font-style:italic;font-weight:900;display:grid}.license-message-text{font-size:13px;font-weight:600;line-height:1.5}.license-urgent-cta{background:linear-gradient(135deg,#d645451a,#d645450d);border:1px solid #d645454d;border-radius:16px;align-items:center;gap:14px;padding:16px 18px;animation:3s ease-in-out infinite licensePulse;display:flex}@keyframes licensePulse{0%,to{box-shadow:0 0 #d6454526}50%{box-shadow:0 0 0 6px #d6454500}}.license-urgent-icon{color:#fff;background:linear-gradient(135deg,#d64545,#b83333);border-radius:50%;flex-shrink:0;place-items:center;width:36px;height:36px;font-size:18px;font-weight:900;display:grid;box-shadow:0 4px 12px #d6454559}.license-urgent-text{flex-direction:column;gap:2px;min-width:0;display:flex}.license-urgent-text b{color:#b83333;font-size:14px;font-weight:800}.license-urgent-text span{color:var(--muted);font-size:12px;font-weight:600}.license-owner{flex-direction:column;gap:18px;display:flex}.license-owner-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.license-owner-title{letter-spacing:-.02em;color:var(--text);margin:0;font-size:22px;font-weight:800}.license-owner-subtitle{color:var(--muted);margin:4px 0 0;font-size:13px;font-weight:500}.license-summary-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;display:grid}.license-summary-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:18px 20px;position:relative;overflow:hidden}.license-summary-card:before{content:"";width:4px;height:100%;position:absolute;top:0;left:0}.license-summary-card.active:before{background:#22a06b}.license-summary-card.trial:before{background:#d99a18}.license-summary-card.expired:before{background:#d64545}.license-summary-card.suspended:before{background:#6b6478}.license-summary-value{letter-spacing:-.03em;color:var(--text);font-variant-numeric:tabular-nums;margin-bottom:6px;font-size:28px;font-weight:800;line-height:1}.license-summary-label{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:11px;font-weight:800}.license-schools-list{flex-direction:column;gap:10px;display:flex}.license-school-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;justify-content:space-between;align-items:center;gap:16px;padding:16px 20px;transition:all .2s;display:flex}.license-school-card:hover{border-color:color-mix(in srgb, var(--primary) 30%, var(--border));transform:translateY(-1px);box-shadow:0 6px 20px #231a340f}.license-school-left{flex:1;min-width:0}.license-school-name{letter-spacing:-.01em;color:var(--text);margin-bottom:3px;font-size:15px;font-weight:800}.license-school-code{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin-bottom:8px;font-size:11px;font-weight:700}.license-school-meta{color:var(--muted);flex-wrap:wrap;gap:12px;font-size:12px;font-weight:600;display:flex}.license-school-meta b{color:var(--text);font-weight:800}.license-school-right{flex-wrap:wrap;flex-shrink:0;justify-content:flex-end;align-items:center;gap:10px;display:flex}.license-days-badge{letter-spacing:.02em;border:1px solid;border-radius:8px;padding:5px 11px;font-size:11px;font-weight:800}@media (width<=640px){.license-page{max-width:100%}.license-card-premium{border-radius:18px;padding:20px 18px}.license-card-head{flex-direction:column;align-items:stretch;gap:14px}.license-card-school{font-size:20px}.license-card-grid{grid-template-columns:1fr 1fr;gap:14px}.license-card-field b{font-size:13px}.license-status-badge.big{align-self:flex-start}.license-urgent-cta{gap:10px;padding:14px}.license-urgent-icon{width:32px;height:32px;font-size:16px}.license-urgent-text b{font-size:13px}.license-urgent-text span{font-size:11px}.license-owner-title{font-size:19px}.license-summary-grid{grid-template-columns:1fr 1fr}.license-summary-value{font-size:24px}.license-school-card{flex-direction:column;align-items:stretch;gap:12px;padding:14px 16px}.license-school-right{justify-content:flex-start}}@media (width<=400px){.license-card-grid{grid-template-columns:1fr}}.landing{background:radial-gradient(900px 500px at 90% -10%, #9b87f51a, transparent 60%), radial-gradient(700px 400px at -10% 100%, #7c5cff0f, transparent 60%), var(--bg);min-height:100vh}.landing-nav-links{flex-direction:row!important;flex:1!important;justify-content:center!important;align-items:center!important;gap:4px!important;display:flex!important}.landing-nav-links button{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:10px;padding:8px 14px;font-family:inherit;font-size:14px;font-weight:600;transition:all .16s}.landing-nav-links button:hover{background:var(--surface2);color:var(--text)}.landing-hero{max-width:1200px;margin:0 auto;padding:80px 32px 60px}.landing-hero-inner{grid-template-columns:1.05fr .95fr;align-items:center;gap:60px;display:grid}.landing-hero-left h1{letter-spacing:-.04em;color:var(--text);margin:12px 0 20px;font-size:clamp(38px,5.5vw,64px);font-weight:800;line-height:1.02}.landing-hero-left h1 span{background:linear-gradient(135deg, var(--primary), var(--primary2));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.landing-hero-left>p{color:var(--muted);max-width:540px;margin:0 0 28px;font-size:17px;line-height:1.65}.landing-hero-left .actions{flex-wrap:wrap;gap:12px;margin-bottom:26px;display:flex}.landing-hero-left .trust{color:var(--muted);flex-wrap:wrap;gap:18px;font-size:13px;font-weight:600;display:flex}.landing-hero-left .trust span{align-items:center;gap:6px;display:inline-flex}.hero-mockup{background:linear-gradient(145deg, var(--surface), var(--surface2));border:1px solid var(--border);border-radius:24px;padding:20px;position:relative;overflow:hidden;box-shadow:0 30px 80px #231a341f,0 8px 24px #231a340f}.hero-mockup-orb{background:radial-gradient(circle, color-mix(in srgb, var(--primary) 30%, transparent), transparent 70%);filter:blur(30px);pointer-events:none;border-radius:50%;width:240px;height:240px;position:absolute;top:-80px;right:-80px}.hero-mockup-header{border-bottom:1px solid var(--border);z-index:1;align-items:center;gap:12px;margin-bottom:14px;padding-bottom:14px;display:flex;position:relative}.hero-mockup-dots{gap:5px;display:flex}.hero-mockup-dots span{background:var(--border);border-radius:50%;width:10px;height:10px}.hero-mockup-dots span:first-child{background:#ff5f57}.hero-mockup-dots span:nth-child(2){background:#ffbd2e}.hero-mockup-dots span:last-child{background:#28ca42}.hero-mockup-title{letter-spacing:.04em;color:var(--muted);text-transform:uppercase;font-size:11px;font-weight:800}.hero-mockup-body{z-index:1;flex-direction:column;gap:12px;display:flex;position:relative}.hero-mockup-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;align-items:center;gap:12px;padding:14px 16px;display:flex;position:relative}.hero-mockup-card.primary{background:linear-gradient(135deg, color-mix(in srgb, var(--primary) 8%, var(--surface)), color-mix(in srgb, var(--primary2) 4%, var(--surface)));border-color:color-mix(in srgb, var(--primary) 25%, var(--border))}.hero-mockup-icon{background:linear-gradient(135deg, var(--primary), var(--primary2));color:#fff;width:40px;height:40px;box-shadow:0 6px 16px color-mix(in srgb, var(--primary) 30%, transparent);border-radius:12px;flex-shrink:0;place-items:center;display:grid}.hero-mockup-label{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:3px;font-size:10px;font-weight:800}.hero-mockup-value{color:var(--text);letter-spacing:-.01em;font-size:14px;font-weight:800}.hero-mockup-live{color:#fff;letter-spacing:.06em;background:#22a06b;border-radius:999px;margin-left:auto;padding:4px 10px;font-size:10px;font-weight:800;animation:1.6s infinite livePulse}.hero-mockup-grid{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.hero-mockup-stat{background:var(--surface);border:1px solid var(--border);text-align:center;border-radius:12px;padding:14px 12px}.hero-mockup-stat-value{letter-spacing:-.03em;color:var(--text);margin-bottom:4px;font-size:22px;font-weight:800;line-height:1}.hero-mockup-stat-label{letter-spacing:.04em;color:var(--muted);text-transform:uppercase;font-size:10px;font-weight:700}.hero-mockup-bar{background:var(--surface2);border-radius:999px;height:8px;overflow:hidden}.hero-mockup-bar-fill{background:linear-gradient(90deg, var(--primary), var(--primary2));border-radius:999px;height:100%;transition:width .8s cubic-bezier(.16,1,.3,1)}.hero-mockup-hint{color:var(--muted);text-align:center;letter-spacing:.02em;font-size:11px;font-weight:600}.landing-section{max-width:1200px;margin:0 auto;padding:80px 32px}.landing-section.why-section{background:linear-gradient(135deg, color-mix(in srgb, var(--surface2) 60%, transparent), transparent);border-radius:32px;max-width:1160px;margin:20px auto}.landing-section-head{text-align:center;max-width:720px;margin-bottom:48px;margin-left:auto;margin-right:auto}.landing-section-eyebrow{letter-spacing:.16em;color:var(--primary);text-transform:uppercase;margin-bottom:12px;font-size:11px;font-weight:900}.landing-section-title{letter-spacing:-.03em;color:var(--text);margin:0 0 14px;font-size:clamp(28px,4vw,42px);font-weight:800;line-height:1.15}.landing-section-desc{color:var(--muted);margin:0;font-size:16px;line-height:1.6}.landing-features-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;display:grid}.landing-feature-card{background:var(--surface);border:1px solid var(--border);border-radius:20px;padding:24px 22px;transition:all .22s cubic-bezier(.16,1,.3,1);position:relative;overflow:hidden}.landing-feature-card:before{content:"";background:radial-gradient(circle at 100% 0%, color-mix(in srgb, var(--primary) 8%, transparent), transparent 60%);opacity:0;pointer-events:none;transition:opacity .22s;position:absolute;inset:0}.landing-feature-card:hover{border-color:color-mix(in srgb, var(--primary) 30%, var(--border));transform:translateY(-4px);box-shadow:0 16px 40px #231a3414}.landing-feature-card:hover:before{opacity:1}.landing-feature-icon{margin-bottom:14px;font-size:30px;line-height:1;display:inline-block}.landing-feature-title{color:var(--text);letter-spacing:-.01em;margin:0 0 8px;font-size:16px;font-weight:800}.landing-feature-desc{color:var(--muted);margin:0;font-size:13px;line-height:1.6}.landing-why-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px;display:grid}.landing-why-card{background:var(--surface);border:1px solid var(--border);border-radius:18px;align-items:flex-start;gap:16px;padding:22px;transition:all .22s;display:flex}.landing-why-card:hover{border-color:color-mix(in srgb, var(--primary) 25%, var(--border));transform:translateY(-2px);box-shadow:0 12px 32px #231a340f}.landing-why-icon{flex-shrink:0;font-size:26px;line-height:1}.landing-why-title{color:var(--text);letter-spacing:-.01em;margin:0 0 6px;font-size:15px;font-weight:800}.landing-why-desc{color:var(--muted);margin:0;font-size:13px;line-height:1.55}.landing-faq-list{flex-direction:column;gap:10px;max-width:780px;margin:0 auto;display:flex}.landing-faq{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:4px;transition:all .2s;overflow:hidden}.landing-faq[open]{border-color:color-mix(in srgb, var(--primary) 30%, var(--border));box-shadow:0 6px 20px #231a340d}.landing-faq summary{color:var(--text);cursor:pointer;justify-content:space-between;align-items:center;gap:14px;padding:16px 20px;font-size:15px;font-weight:700;list-style:none;display:flex}.landing-faq summary::-webkit-details-marker{display:none}.landing-faq summary:after{content:"+";color:var(--primary);font-size:20px;font-weight:300;transition:transform .2s}.landing-faq[open] summary:after{transform:rotate(45deg)}.landing-faq p{color:var(--muted);margin:0;padding:0 20px 18px;font-size:14px;line-height:1.65}.landing-cta{padding:60px 32px}.landing-cta-inner{text-align:center;background:radial-gradient(600px 300px at 100% 0%, color-mix(in srgb, var(--primary) 20%, transparent), transparent 60%), linear-gradient(135deg, var(--surface), var(--surface2));border:1px solid var(--border);border-radius:28px;max-width:720px;margin:0 auto;padding:50px 32px;box-shadow:0 20px 60px #231a3414}.landing-cta h2{letter-spacing:-.025em;color:var(--text);margin:0 0 12px;font-size:clamp(24px,3vw,34px);font-weight:800;line-height:1.2}.landing-cta p{color:var(--muted);margin:0 0 26px;font-size:15px;line-height:1.6}.landing-footer{border-top:1px solid var(--border);background:var(--surface);margin-top:40px}.landing-footer-inner{text-align:center;flex-direction:column;align-items:center;gap:24px;max-width:1200px;margin:0 auto;padding:40px 32px 30px;display:flex}.landing-footer-brand{flex-direction:column;align-items:center;gap:8px;display:flex}.landing-footer-brand p{color:var(--muted);letter-spacing:.02em;margin:0;font-size:12px;font-weight:600}.landing-footer-links{flex-wrap:wrap;justify-content:center;gap:20px;display:flex}.landing-footer-links button{color:var(--muted);cursor:pointer;background:0 0;border:none;font-family:inherit;font-size:13px;font-weight:600;transition:color .16s}.landing-footer-copy{color:var(--muted);letter-spacing:.02em;font-size:12px;font-weight:600}@media (width<=900px){.landing-nav-links{display:none}.landing-nav-inner{padding:12px 18px}.landing-hero{padding:50px 18px 40px}.landing-hero-inner{grid-template-columns:1fr;gap:40px}.landing-hero-left h1{font-size:38px}.landing-section{padding:50px 18px}.landing-section.why-section{border-radius:24px;margin:12px}.landing-section-title{font-size:26px}.landing-cta{padding:40px 18px}.landing-cta-inner{border-radius:22px;padding:36px 22px}.landing-cta h2{font-size:22px}.landing-footer-inner{padding:30px 18px 24px}}@media (width<=540px){.landing-hero-left h1{font-size:32px}.landing-hero-left>p{font-size:15px}.landing-hero-left .actions{flex-direction:column}.landing-hero-left .actions .btn{justify-content:center;width:100%}.landing-hero-left .trust{gap:12px;font-size:12px}.hero-mockup{border-radius:18px;padding:16px}.hero-mockup-stat-value{font-size:18px}.landing-features-grid,.landing-why-grid{grid-template-columns:1fr}.landing-faq summary{padding:14px 16px;font-size:14px}.landing-faq p{padding:0 16px 14px;font-size:13px}.landing-nav-actions .btn{padding:8px 12px;font-size:12px}}.login-back{z-index:100;align-items:center;gap:6px;padding:8px 14px;font-size:13px;display:inline-flex;position:fixed;top:20px;left:20px}@media (width<=540px){.login-back{padding:8px 12px;font-size:12px;top:12px;left:12px}}body>.modal{z-index:9999!important;-webkit-backdrop-filter:blur(8px)!important;background:#140a238c!important;place-items:center!important;padding:20px!important;display:grid!important;position:fixed!important;inset:0!important;overflow-y:auto!important}body>.modal .modalbox{max-height:calc(100dvh - 40px);margin:auto;overflow-y:auto}@media (width<=900px){.landing-nav{width:100%!important;display:block!important}.landing-nav-inner{box-sizing:border-box!important;flex-flow:row!important;justify-content:space-between!important;align-items:center!important;gap:10px!important;width:100%!important;max-width:100%!important;padding:10px 14px!important;display:flex!important}.landing-nav-links{display:none!important}.landing-nav-inner>.brand{flex:0 auto!important;min-width:0!important;overflow:hidden!important}.landing-nav-inner>.brand>span{display:none!important}.landing-nav-actions{visibility:visible!important;opacity:1!important;flex-direction:row!important;flex:none!important;align-items:center!important;gap:6px!important;display:flex!important}.landing-nav-actions .btn{white-space:nowrap!important;padding:8px 12px!important;font-size:12px!important}.landing-nav-actions .iconbtn{width:34px!important;height:34px!important}}@media (width<=420px){.landing-nav-inner{gap:6px!important;padding:8px 10px!important}.landing-nav-actions .btn{padding:7px 10px!important;font-size:11px!important}}@media (width<=900px){.landing-nav-inner>.brand .logo,.landing-nav-inner>.brand .brand-logo{flex-basis:74px!important;width:74px!important;height:50px!important}}.contact-page-new{max-width:1100px;margin:0 auto;padding:80px 32px 100px}.contact-hero-new{text-align:center;margin-bottom:60px}.contact-hero-new-icon{width:72px;height:72px;color:var(--primary);background:linear-gradient(135deg,#7c5cfc26,#9b87f51a);border:1px solid #7c5cfc2e;border-radius:22px;place-items:center;margin:0 auto 24px;display:grid}.contact-hero-new h1{letter-spacing:-.04em;margin:16px 0 20px;font-size:clamp(38px,5vw,56px);line-height:1.05}.contact-hero-new h1 span{color:var(--primary)}.contact-hero-new p{color:var(--muted);max-width:620px;margin:0 auto;font-size:18px;line-height:1.65}.contact-cards-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;margin-bottom:60px;display:grid}.contact-card-new{background:var(--surface);border:1px solid var(--border);color:inherit;border-radius:20px;align-items:center;gap:16px;padding:20px;text-decoration:none;transition:transform .22s,box-shadow .22s,border-color .22s;display:flex;box-shadow:0 2px 8px #231a340a}.contact-card-new:hover{border-color:#7c5cfc59;transform:translateY(-3px);box-shadow:0 12px 32px #7c5cfc24}.contact-card-new-icon{background:linear-gradient(135deg,#7c5cfc1f,#9b87f514);border:1px solid #7c5cfc26;border-radius:16px;flex:0 0 52px;place-items:center;width:52px;height:52px;font-size:24px;display:grid}.contact-card-new-body{flex:1;min-width:0}.contact-card-new-label{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin-bottom:4px;font-size:12px;font-weight:800}.contact-card-new-value{color:var(--text);word-break:break-word;font-size:15px;font-weight:600;line-height:1.4}.contact-card-new-arrow{color:var(--muted);flex:none;transition:transform .22s,color .22s}.contact-card-new:hover .contact-card-new-arrow{color:var(--primary);transform:translate(4px)}.contact-info-card-new{background:linear-gradient(135deg, var(--surface), var(--surface2));border:1px solid #7c5cfc33;border-radius:24px;flex-wrap:wrap;align-items:center;gap:24px;padding:32px;display:flex;box-shadow:0 12px 40px #7c5cfc1a}.contact-info-card-new-icon{background:linear-gradient(135deg, var(--primary), var(--primary2));color:#fff;border-radius:18px;flex:0 0 60px;place-items:center;width:60px;height:60px;display:grid;box-shadow:0 8px 20px #7c5cfc4d}.contact-info-card-new h3{letter-spacing:-.02em;margin:0 0 6px;font-size:20px}.contact-info-card-new p{margin:0;font-size:14px}.contact-info-card-new>div:nth-child(2){flex:1;min-width:200px}.premium-empty{text-align:center;background:var(--surface);border:1px dashed var(--border);border-radius:22px;padding:60px 30px}.premium-empty-icon{margin-bottom:16px;font-size:40px}.premium-empty h4{margin:0 0 8px;font-size:18px}.premium-empty p{color:var(--muted);margin:0;font-size:14px}.about-page-new{max-width:1200px;margin:0 auto;padding:80px 32px 100px}.about-hero-new{grid-template-columns:1.2fr 1fr;align-items:center;gap:60px;margin-bottom:80px;display:grid}.about-hero-new-copy h1{letter-spacing:-.05em;margin:16px 0 24px;font-size:clamp(38px,5vw,60px);line-height:1.02}.about-hero-new-copy h1 span{color:var(--primary)}.about-lead{color:var(--text);max-width:560px;margin-bottom:16px;font-size:19px;line-height:1.65}.about-sub{color:var(--muted);max-width:560px;font-size:15px;line-height:1.7}.about-hero-new-card{background:linear-gradient(135deg, var(--surface), var(--surface2));text-align:center;border:1px solid #7c5cfc33;border-radius:28px;padding:40px 32px;position:relative;overflow:hidden;box-shadow:0 20px 60px #7c5cfc24}.about-hero-new-card:before{content:"";pointer-events:none;background:radial-gradient(circle,#7c5cfc40,#0000 70%);border-radius:50%;width:260px;height:260px;position:absolute;top:-100px;right:-100px}.about-hero-new-logo{background:linear-gradient(135deg, var(--primary), var(--primary2));color:#fff;border-radius:24px;place-items:center;width:80px;height:80px;margin:0 auto 20px;display:grid;position:relative;box-shadow:0 12px 32px #7c5cfc59}.about-hero-new-card b{letter-spacing:-.02em;margin-bottom:6px;font-size:24px;font-weight:900;display:block;position:relative}.about-hero-new-card span{color:var(--muted);font-size:13px;display:block;position:relative}.about-two-col{grid-template-columns:1fr 1fr;gap:20px;margin-bottom:60px;display:grid}.about-card-new{background:var(--surface);border:1px solid var(--border);border-radius:22px;padding:32px;transition:transform .24s,box-shadow .24s;box-shadow:0 8px 30px #3223500d}.about-card-new:hover{transform:translateY(-3px);box-shadow:0 16px 40px #7c5cfc1f}.about-card-new.accent{background:linear-gradient(135deg, var(--surface), var(--surface2));border-color:#7c5cfc2e}.about-card-new-icon{width:48px;height:48px;color:var(--primary);background:linear-gradient(135deg,#7c5cfc1f,#9b87f514);border:1px solid #7c5cfc26;border-radius:14px;place-items:center;margin-bottom:20px;display:grid}.about-card-new h3{letter-spacing:-.02em;margin:0 0 12px;font-size:20px}.about-card-new p{margin:0 0 10px;font-size:15px;line-height:1.65}.about-card-new p:last-child{margin-bottom:0}.about-section-new{margin-bottom:60px}.about-section-new h2{letter-spacing:-.03em;margin:12px 0 32px;font-size:clamp(28px,3.5vw,40px)}.about-features-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;display:grid}.about-feature-card{background:var(--surface);border:1px solid var(--border);border-radius:20px;padding:24px;transition:transform .24s,box-shadow .24s,border-color .24s}.about-feature-card:hover{border-color:#7c5cfc4d;transform:translateY(-3px);box-shadow:0 12px 32px #7c5cfc1f}.about-feature-icon{margin-bottom:14px;font-size:28px}.about-feature-card h4{letter-spacing:-.01em;margin:0 0 8px;font-size:16px}.about-feature-card p{color:var(--muted);margin:0;font-size:14px;line-height:1.6}.about-cta-new{text-align:center;background:linear-gradient(135deg, var(--surface), var(--surface2));border:1px solid #7c5cfc33;border-radius:28px;margin-top:40px;padding:60px 32px}.about-cta-new h2{letter-spacing:-.03em;margin:0 0 12px;font-size:clamp(24px,3vw,36px)}.about-cta-new p{color:var(--muted);margin:0 0 24px;font-size:16px}.btn.big{border-radius:16px;padding:16px 28px;font-size:15px}.landing-nav{z-index:50;background:color-mix(in srgb, var(--bg) 82%, transparent);-webkit-backdrop-filter:saturate(180%)blur(14px);border-bottom:1px solid color-mix(in srgb, var(--border) 60%, transparent);position:sticky;top:0}.landing-nav-inner{justify-content:space-between;align-items:center;gap:24px;max-width:1200px;margin:0 auto;padding:16px 32px;display:flex}.landing-nav-links{align-items:center;gap:8px;display:flex}.landing-nav-links button{color:var(--muted);background:0 0;border-radius:10px;padding:8px 14px;font-size:14px;font-weight:700;transition:all .18s}.landing-nav-links button:hover{color:var(--primary);background:#7c5cfc14}.landing-nav-actions{align-items:center;gap:8px;display:flex}.landing-footer{border-top:1px solid var(--border);margin-top:40px;padding:40px 32px 30px}.landing-footer-inner{grid-template-columns:1fr auto 1fr;align-items:center;gap:40px;max-width:1200px;margin:0 auto;display:grid}.landing-footer-brand p{color:var(--muted);margin:8px 0 0;font-size:12px}.landing-footer-links{justify-content:center;gap:8px;display:flex}.landing-footer-links button{color:var(--muted);background:0 0;border-radius:8px;padding:6px 12px;font-size:13px;font-weight:700;transition:all .18s}.landing-footer-links button:hover{color:var(--primary)}.landing-footer-copy{text-align:right;color:var(--muted);font-size:12px}@media (width<=900px){.contact-page-new,.about-page-new{padding:50px 20px 70px}.about-hero-new{grid-template-columns:1fr;gap:40px;margin-bottom:50px}.about-two-col{grid-template-columns:1fr}.contact-info-card-new{flex-direction:column;align-items:flex-start;padding:24px}.contact-info-card-new .btn{justify-content:center;width:100%}.landing-nav-inner{flex-wrap:wrap;padding:12px 20px}.landing-nav-links{display:none}.landing-footer-inner{text-align:center;grid-template-columns:1fr;gap:24px}.landing-footer-copy{text-align:center}}@media (width<=540px){.contact-hero-new h1,.about-hero-new-copy h1{font-size:32px}.contact-cards-grid,.about-features-grid{grid-template-columns:1fr}.about-hero-new-card{padding:28px 20px}.about-card-new{padding:22px}.contact-info-card-new{padding:20px}}.app-shell-footer{border-top:1px solid var(--border);margin-top:48px;padding-top:24px}.app-shell-footer-inner{color:var(--muted);letter-spacing:.01em;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding-bottom:12px;font-size:12px;font-weight:600;display:flex}.app-shell-footer-inner .muted{opacity:.7;font-size:11px;font-weight:500}@media (width<=640px){.app-shell-footer{margin-top:32px;padding-top:20px}.app-shell-footer-inner{text-align:center;flex-direction:column;gap:6px}}.hw-page{flex-direction:column;gap:18px;display:flex}.hw-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.hw-h2{letter-spacing:-.3px;color:var(--text);align-items:center;gap:9px;margin:0;font-size:22px;font-weight:800;display:flex}.hw-h2 svg{color:var(--primary)}.hw-sub{color:var(--muted);max-width:60ch;margin:5px 0 0;font-size:13.5px;line-height:1.5}.hw-refresh{border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:11px;align-items:center;gap:7px;padding:9px 15px;font-size:13px;font-weight:600;transition:all .18s;display:inline-flex;box-shadow:0 2px 8px #442d6e0d}.hw-refresh:hover{border-color:var(--primary);color:var(--primary);transform:translateY(-1px)}.hw-refresh:disabled{opacity:.6;cursor:default;transform:none}.hw-refresh .spin{animation:.8s linear infinite hw-spin}@keyframes hw-spin{to{transform:rotate(360deg)}}.hw-msg{color:#3a2d63;background:linear-gradient(135deg,#efe9ff,#f7f3ff);border:1px solid #ded2ff;border-radius:12px;padding:11px 15px;font-size:13.5px;font-weight:600}:root[data-theme=dark] .hw-msg{color:#e9e0ff;background:linear-gradient(135deg,#2a2140,#241b36);border-color:#3d2f5c}.hw-stats{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.hw-stat{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);text-align:center;border-radius:16px;padding:16px;position:relative;overflow:hidden}.hw-stat:before{content:"";background:var(--primary);height:3px;position:absolute;inset:0 0 auto}.hw-stat.pending:before{background:#f5a623}.hw-stat.done:before{background:#22c55e}.hw-stat-v{color:var(--text);font-size:28px;font-weight:800;line-height:1}.hw-stat-l{color:var(--muted);text-transform:uppercase;letter-spacing:.6px;margin-top:6px;font-size:12px;font-weight:600}.hw-tabs{flex-wrap:wrap;gap:8px;display:flex}.hw-tabs.compact{margin-bottom:4px}.hw-tab{border:1px solid var(--border);background:var(--surface);color:var(--muted);cursor:pointer;border-radius:999px;padding:8px 15px;font-size:13px;font-weight:600;transition:all .16s}.hw-tab:hover{border-color:var(--primary);color:var(--primary)}.hw-tab.active{background:linear-gradient(135deg,var(--primary),var(--primary2));color:#fff;border-color:#0000;box-shadow:0 6px 16px #7c5cff52}.hw-manage-layout{grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:18px;display:grid}.hw-student-list{flex-direction:column;gap:13px;display:flex}.hw-groups{flex-direction:column;gap:16px;display:flex}.hw-group{border:1px solid var(--border);background:var(--surface2);border-radius:18px;overflow:hidden}.hw-group-head{border-bottom:1px solid var(--border);background:linear-gradient(135deg,#7c5cff1f,#9a7cff0d);align-items:center;gap:9px;padding:13px 16px;display:flex}.hw-group-head svg{color:var(--primary)}.hw-group-title{color:var(--text);font-size:15px;font-weight:800}.hw-group-count{color:var(--muted);background:var(--surface);border:1px solid var(--border);border-radius:999px;margin-left:auto;padding:3px 10px;font-size:12px;font-weight:600}.hw-group-body{flex-direction:column;gap:12px;padding:14px;display:flex}.hw-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:16px;transition:all .18s;position:relative;box-shadow:0 6px 20px #442d6e0f}.hw-card:hover{border-color:#d9ccff;transform:translateY(-2px);box-shadow:0 12px 30px #442d6e1f}.hw-card.is-done{background:linear-gradient(#22c55e0d,#0000);border-color:#b9ecc9}.hw-card-top{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.hw-card-title{color:var(--text);font-size:15.5px;font-weight:750;line-height:1.35}.hw-card-tools{flex-shrink:0;gap:6px;display:flex}.hw-icon-btn{border:1px solid var(--border);background:var(--surface);width:32px;height:32px;color:var(--muted);cursor:pointer;border-radius:9px;justify-content:center;align-items:center;transition:all .16s;display:inline-flex}.hw-icon-btn:hover{border-color:var(--primary);color:var(--primary);background:var(--surface2)}.hw-icon-btn.danger:hover{color:#ef4444;background:#ef444412;border-color:#ef4444}.hw-card-desc{color:var(--muted);white-space:pre-wrap;margin:9px 0 12px;font-size:13.5px;line-height:1.55}.hw-chips{flex-wrap:wrap;gap:7px;margin-bottom:12px;display:flex}.hw-chip{background:var(--surface2);border:1px solid var(--border);color:var(--muted);border-radius:999px;align-items:center;gap:5px;padding:4px 10px;font-size:12px;font-weight:600;display:inline-flex}.hw-chip.link{color:var(--primary);cursor:pointer;background:#7c5cff12;border-color:#ded2ff;text-decoration:none}.hw-chip.link:hover{background:#7c5cff24}.hw-chip.due-overdue{color:#ef4444;background:#ef444414;border-color:#f6c9c9}.hw-chip.due-today{color:#f5a623;background:#f5a6231a;border-color:#f7dcae}.hw-chip.due-soon{color:#0ea5e9;background:#0ea5e914;border-color:#bfe4f7}.hw-chip.due-later,.hw-chip.due-none{color:var(--muted)}.hw-progress{background:var(--surface2);border:1px solid var(--border);cursor:pointer;border-radius:13px;padding:11px 13px;transition:all .16s}.hw-progress:hover{border-color:var(--primary);background:#7c5cff0f}.hw-progress-head{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.hw-progress-label{text-transform:uppercase;letter-spacing:.5px;color:var(--muted);font-size:12px;font-weight:700}.hw-progress-count{color:var(--muted);font-size:13px}.hw-progress-count b{color:var(--text);font-size:14px}.hw-progress-track{background:var(--border);border-radius:999px;height:8px;overflow:hidden}.hw-progress-fill{background:linear-gradient(90deg,var(--primary),var(--primary2));border-radius:999px;height:100%;transition:width .5s cubic-bezier(.4,0,.2,1)}.hw-progress-foot{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px;margin-top:9px;font-size:12px;display:flex}.hw-done-dot,.hw-pend-dot{border-radius:50%;width:8px;height:8px;margin-left:6px;display:inline-block}.hw-done-dot{background:#22c55e}.hw-pend-dot{background:#f5a623}.hw-progress-foot .hw-done-dot:first-child{margin-left:0}.hw-view-link{color:var(--primary);margin-left:auto;font-weight:700}.hw-badge-done{color:#166534;background:#dcfce7;border:1px solid #bbf7d0;border-radius:999px;align-items:center;gap:4px;padding:3px 9px;font-size:11.5px;font-weight:700;display:inline-flex}:root[data-theme=dark] .hw-badge-done{color:#bbf7d0;background:#22c55e26;border-color:#22c55e4d}.hw-toggle{border:1px solid var(--primary);background:linear-gradient(135deg,var(--primary),var(--primary2));color:#fff;cursor:pointer;border-radius:12px;justify-content:center;align-items:center;gap:7px;width:100%;margin-top:4px;padding:11px;font-size:13.5px;font-weight:700;transition:all .16s;display:inline-flex;box-shadow:0 6px 16px #7c5cff47}.hw-toggle:hover{transform:translateY(-1px);box-shadow:0 9px 22px #7c5cff5c}.hw-toggle.done{background:var(--surface);color:var(--muted);border-color:var(--border);box-shadow:none}.hw-toggle.done:hover{color:#f5a623;border-color:#f5a623}.hw-form-panel{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:18px;flex-direction:column;gap:13px;padding:18px;display:flex;position:sticky;top:16px}.hw-form-head{color:var(--text);border-bottom:1px solid var(--border);align-items:center;gap:8px;padding-bottom:12px;font-size:15px;display:flex}.hw-form-head svg{color:var(--primary)}.hw-field{flex-direction:column;gap:6px;display:flex}.hw-field>span{color:var(--muted);text-transform:uppercase;letter-spacing:.4px;font-size:12px;font-weight:700}.hw-field input,.hw-field select,.hw-field textarea{border:1px solid var(--border);background:var(--surface2);width:100%;color:var(--text);box-sizing:border-box;border-radius:11px;padding:10px 12px;font-family:inherit;font-size:13.5px;transition:all .16s}.hw-field textarea{resize:vertical;min-height:70px;line-height:1.5}.hw-field input:focus,.hw-field select:focus,.hw-field textarea:focus{border-color:var(--primary);background:var(--surface);outline:none;box-shadow:0 0 0 3px #7c5cff24}.hw-field input:disabled,.hw-field select:disabled{opacity:.6;cursor:not-allowed}.hw-attach-preview{color:var(--primary);background:#7c5cff14;border:1px dashed #d9ccff;border-radius:11px;align-items:center;gap:8px;padding:9px 12px;font-size:12.5px;display:flex}.hw-form-actions{gap:9px;margin-top:2px;display:flex}.hw-btn{cursor:pointer;border:1px solid #0000;border-radius:12px;flex:1;justify-content:center;align-items:center;gap:7px;padding:11px 16px;font-size:13.5px;font-weight:700;transition:all .16s;display:inline-flex}.hw-btn.primary{background:linear-gradient(135deg,var(--primary),var(--primary2));color:#fff;box-shadow:0 6px 16px #7c5cff4d}.hw-btn.primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 9px 22px #7c5cff66}.hw-btn.primary:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.hw-btn.ghost{background:var(--surface);color:var(--muted);border-color:var(--border);flex:none}.hw-btn.ghost:hover{border-color:var(--primary);color:var(--primary)}.hw-empty{text-align:center;color:var(--muted);border:1px dashed var(--border);background:var(--surface);border-radius:16px;flex-direction:column;align-items:center;gap:8px;padding:46px 20px;display:flex}.hw-empty svg{color:var(--primary);opacity:.55}.hw-empty b{color:var(--text);font-size:15px}.hw-empty p{margin:0;font-size:13px}.hw-empty.small{padding:28px 16px}.hw-modal-backdrop{z-index:1000;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#18102a8c;justify-content:center;align-items:center;padding:18px;animation:.18s hw-fade;display:flex;position:fixed;inset:0}@keyframes hw-fade{0%{opacity:0}to{opacity:1}}.hw-modal{background:var(--surface);border:1px solid var(--border);border-radius:20px;flex-direction:column;width:min(520px,100%);max-height:calc(100dvh - 40px);animation:.2s cubic-bezier(.2,.8,.3,1) hw-pop;display:flex;overflow:hidden;box-shadow:0 30px 80px #0006}@keyframes hw-pop{0%{opacity:0;transform:translateY(14px)scale(.97)}to{opacity:1;transform:none}}.hw-modal-head{border-bottom:1px solid var(--border);background:linear-gradient(135deg,#7c5cff1a,#0000);justify-content:space-between;align-items:flex-start;gap:12px;padding:18px 20px;display:flex}.hw-modal-title{color:var(--text);font-size:16px;font-weight:800}.hw-modal-sub{color:var(--muted);margin-top:3px;font-size:12.5px}.hw-modal-close{border:1px solid var(--border);background:var(--surface);width:32px;height:32px;color:var(--muted);cursor:pointer;border-radius:9px;flex-shrink:0;font-size:20px;line-height:1;transition:all .16s}.hw-modal-close:hover{color:#ef4444;background:#ef444412;border-color:#ef4444}.hw-modal-stats{gap:9px;padding:14px 20px 0;display:flex}.hw-pill{border-radius:999px;align-items:center;gap:6px;padding:6px 12px;font-size:12.5px;font-weight:700;display:inline-flex}.hw-pill.done{color:#166534;background:#dcfce7;border:1px solid #bbf7d0}.hw-pill.pending{color:#92400e;background:#fef3c7;border:1px solid #fde68a}:root[data-theme=dark] .hw-pill.done{color:#bbf7d0;background:#22c55e26;border-color:#22c55e4d}:root[data-theme=dark] .hw-pill.pending{color:#fde68a;background:#f5a62326;border-color:#f5a6234d}.hw-modal .hw-tabs{padding:12px 20px 0}.hw-modal-body{flex-direction:column;gap:8px;padding:12px 20px 20px;display:flex;overflow-y:auto}.hw-stu{background:var(--surface2);border:1px solid var(--border);border-radius:13px;align-items:center;gap:11px;padding:10px 12px;transition:all .15s;display:flex}.hw-stu.done{background:linear-gradient(#22c55e0f,#0000);border-color:#b9ecc9}.hw-stu-avatar{color:#fff;background:linear-gradient(135deg,var(--primary),var(--primary2));border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:15px;font-weight:800;display:flex}.hw-stu.done .hw-stu-avatar{background:linear-gradient(135deg,#22c55e,#16a34a)}.hw-stu-info{flex:1;min-width:0}.hw-stu-name{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:13.5px;font-weight:700;overflow:hidden}.hw-stu-meta{color:var(--muted);margin-top:2px;font-size:11.5px}.hw-stu-badge{color:#92400e;background:#fef3c7;border:1px solid #fde68a;border-radius:999px;flex-shrink:0;align-items:center;gap:4px;padding:4px 10px;font-size:11.5px;font-weight:700;display:inline-flex}.hw-stu-badge.done{color:#166534;background:#dcfce7;border-color:#bbf7d0}:root[data-theme=dark] .hw-stu-badge{color:#fde68a;background:#f5a62326;border-color:#f5a6234d}:root[data-theme=dark] .hw-stu-badge.done{color:#bbf7d0;background:#22c55e26;border-color:#22c55e4d}@media (width<=900px){.hw-manage-layout{grid-template-columns:1fr}.hw-form-panel{order:-1;position:static}}@media (width<=560px){.hw-h2{font-size:19px}.hw-stats{grid-template-columns:repeat(3,1fr);gap:8px}.hw-stat{padding:13px 8px}.hw-stat-v{font-size:22px}.hw-group-body{padding:11px}.hw-card{padding:14px}.hw-modal{border-radius:16px}.hw-form-actions{flex-direction:column}.hw-btn.ghost{flex:1}}.small{color:var(--muted);font-size:12px}.btn.sm{border-radius:12px;gap:6px;padding:7px 12px;font-size:13px}.btn.danger{color:#fff;background:linear-gradient(135deg,#dc506ef2,#c83c5ff2);border:1px solid #b4325580;box-shadow:0 4px 12px #dc506e38}.btn.danger:hover:not(:disabled){filter:brightness(1.05);transform:translateY(-1px);box-shadow:0 8px 20px #dc506e4d}.create-class-form{border:1px dashed color-mix(in srgb,var(--primary) 35%,var(--border));border-radius:var(--radius-md);background:color-mix(in srgb,var(--primary) 5%,var(--surface2));animation:ccFadeIn var(--dur-base) var(--ease-out);flex-wrap:wrap;align-items:center;gap:10px;margin:12px 0;padding:14px;display:flex}.create-class-form input{flex:150px;min-width:0;margin:0}.create-class-form input.cc-grade{flex:0 0 120px;min-width:110px}@keyframes ccFadeIn{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}.classcard.editing{background:color-mix(in srgb,var(--primary) 7%,var(--surface2));border-color:color-mix(in srgb,var(--primary) 40%,var(--border));box-shadow:var(--shadow-brand-sm)}.classcard-actions{align-items:center;gap:6px;margin-left:8px;display:flex}.icon-mini{cursor:pointer;border:1px solid var(--border);background:var(--surface);width:30px;height:30px;color:var(--muted);transition:all var(--dur-fast) var(--ease-out);border-radius:9px;justify-content:center;align-items:center;display:inline-flex}.icon-mini:hover{color:var(--primary);border-color:color-mix(in srgb,var(--primary) 35%,var(--border));background:var(--surface2);transform:translateY(-1px)}.icon-mini.danger:hover{color:#fff;background:linear-gradient(135deg,#dc506ef2,#c83c5ff2);border-color:#b4325580}.section-mgr{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface2);margin:14px 0;padding:16px}.section-mgr-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.section-mgr-head h4{letter-spacing:-.01em;margin:0;font-size:15px}.section-chips{flex-wrap:wrap;gap:8px;display:flex}.section-chip{border:1px solid var(--border);background:var(--surface);color:var(--text);transition:all var(--dur-fast) var(--ease-out);border-radius:999px;align-items:center;gap:8px;padding:7px 8px 7px 14px;font-size:13px;font-weight:600;display:inline-flex}.section-chip:hover{border-color:color-mix(in srgb,var(--primary) 35%,var(--border));box-shadow:var(--shadow-sm)}.section-chip .icon-mini{border-radius:8px;width:26px;height:26px}.section-edit{align-items:center;gap:8px;display:inline-flex}.section-edit input{border-radius:10px;margin:0;padding:6px 10px;font-size:13px}.confirm-backdrop{z-index:60}.confirm-box{width:min(420px,100%);animation:confirmPop var(--dur-base) var(--ease-out);position:relative}@keyframes confirmPop{0%{opacity:0;transform:scale(.94)translateY(8px)}to{opacity:1;transform:none}}.confirm-title{letter-spacing:-.02em;margin:4px 34px 0 0;font-size:19px;line-height:1.25}.confirm-title.danger{color:#d23c5f}:root[data-theme=dark] .confirm-title.danger{color:#ff8aa6}.confirm-body{color:var(--muted);margin:10px 0 22px;font-size:14px;line-height:1.55}.confirm-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.notice.msgbanner{align-items:flex-start;gap:9px;line-height:1.45;display:flex}.notice.msgbanner svg{flex:none;margin-top:1px}.notice.msgbanner.success{color:#1f7a52;background:#2cb4781a;border:1px solid #2cb47859}.notice.msgbanner.success svg{color:#27a56d}.notice.msgbanner.error{color:#a83a55;background:#dc506e1a;border:1px solid #dc506e66}.notice.msgbanner.error svg{color:#d64c6e}:root[data-theme=dark] .notice.msgbanner.success{color:#7fe0b0}:root[data-theme=dark] .notice.msgbanner.error{color:#ff9db4}.pinslip-card{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface2);margin:4px 0 18px;padding:16px 18px}.pinslip-row{border-bottom:1px dashed var(--border);justify-content:space-between;gap:12px;padding:7px 0;font-size:13px;display:flex}.pinslip-row:last-of-type{border-bottom:0}.pinslip-row span{color:var(--muted)}.pinslip-row b{font-weight:700}.pinslip-pin{text-align:center;letter-spacing:.3em;color:var(--primary);background:color-mix(in srgb,var(--primary) 8%,var(--surface));border:1px solid color-mix(in srgb,var(--primary) 30%,var(--border));border-radius:var(--radius-sm);margin-top:12px;padding:12px 8px 12px 14px;font-size:32px;font-weight:900}.dashhead{border-radius:20px;margin:0 0 12px;border:1px solid var(--glass-border)!important}input:not([type=checkbox]):not([type=radio]):not([type=color]):not([type=file]),textarea,select{transition:background .18s,border-color .18s,box-shadow .18s;background:color-mix(in srgb, var(--primary) 4%, var(--surface))!important;border:1px solid color-mix(in srgb, var(--border) 60%, var(--primary) 40%)!important;box-shadow:inset 0 1px 2px #3223500d,0 1px #ffffff8c!important}input:not([type=checkbox]):not([type=radio]):not([type=color]):not([type=file]):hover:not(:focus):not(:disabled),textarea:hover:not(:focus):not(:disabled),select:hover:not(:focus):not(:disabled){background:color-mix(in srgb, var(--primary) 6%, var(--surface))!important;border-color:color-mix(in srgb, var(--border) 40%, var(--primary) 60%)!important}input:not([type=checkbox]):not([type=radio]):not([type=color]):not([type=file]):focus,textarea:focus,select:focus{background:var(--surface)!important;border-color:var(--primary)!important;box-shadow:0 0 0 3px color-mix(in srgb, var(--primary) 18%, transparent), inset 0 1px 2px #3223500a!important}.btn{transition:background .18s,border-color .18s,box-shadow .18s,transform .1s;box-shadow:0 1px 3px #3223501a,inset 0 1px #ffffff59!important}.btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 14px #7c5cff33,inset 0 1px #ffffff59!important}.btn:active:not(:disabled){transform:translateY(0);box-shadow:0 1px 2px #32235024!important}.btn.ghost{background:color-mix(in srgb, var(--primary) 6%, var(--surface))!important;border:1px solid color-mix(in srgb, var(--border) 55%, var(--primary) 45%)!important;color:var(--text)!important}.btn.ghost:hover:not(:disabled){background:color-mix(in srgb, var(--primary) 12%, var(--surface))!important;border-color:color-mix(in srgb, var(--primary) 55%, var(--border) 45%)!important;color:var(--primary)!important}[data-theme=dark] input:not([type=checkbox]):not([type=radio]):not([type=color]):not([type=file]),[data-theme=dark] textarea,[data-theme=dark] select{background:color-mix(in srgb, var(--primary) 9%, var(--surface))!important;border-color:color-mix(in srgb, var(--border) 75%, var(--primary) 25%)!important;box-shadow:inset 0 1px 2px #00000038,0 1px #ffffff08!important}[data-theme=dark] .btn.ghost{background:color-mix(in srgb, var(--primary) 11%, var(--surface))!important;border-color:color-mix(in srgb, var(--border) 75%, var(--primary) 25%)!important}.quick button{transition:box-shadow .18s,transform .12s,background .18s;border:none!important;box-shadow:0 2px 6px #3223501a,0 1px 2px #3223500f!important}.quick button:hover{transform:translateY(-2px);box-shadow:0 6px 18px #7c5cff33,0 2px 4px #32235014!important}.quick button:active{transform:translateY(0);box-shadow:0 1px 3px #3223501f!important}[data-theme=dark] .quick button{box-shadow:0 2px 8px #00000059,0 1px 2px #00000040!important}[data-theme=dark] .quick button:hover{box-shadow:0 6px 20px #7c5cff38,0 2px 4px #0000004d!important}[data-theme=dark] .logo img,[data-theme=dark] .brand-logo img,[data-theme=dark] .brand .logo img{filter:drop-shadow(0 0 6px #ffffff8c)drop-shadow(0 0 14px #ffffff4d)drop-shadow(0 0 26px #9c7cff40);transition:filter .25s}[data-theme=dark] .logo img:hover,[data-theme=dark] .brand-logo img:hover{filter:drop-shadow(0 0 8px #ffffffb3)drop-shadow(0 0 18px #fff6)drop-shadow(0 0 32px #9c7cff59)}.notification-detail{padding:4px 2px}.notification-detail-back{margin-bottom:12px;padding:6px 10px;font-size:12px}.notification-detail-head{border-bottom:1px solid var(--border);align-items:flex-start;gap:12px;margin-bottom:12px;padding-bottom:12px;display:flex}.notification-detail-title{color:var(--text);margin-bottom:4px;font-size:15px;font-weight:700;line-height:1.35;display:block}.notification-detail-body{color:var(--text);white-space:pre-wrap;word-break:break-word;margin-bottom:16px;font-size:13px;line-height:1.6}.notification-detail-go{justify-content:center;width:100%;font-size:13px}.content{padding-top:20px!important}@media (width<=900px){.content{padding-top:14px!important}}.saved-by{color:var(--muted);margin-top:3px;font-size:10px;font-style:italic;font-weight:500;display:block}.attendance-quickfill{background:color-mix(in srgb, var(--primary) 4%, var(--surface));border:1px solid color-mix(in srgb, var(--border) 70%, var(--primary) 30%);border-radius:14px;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px;padding:12px 14px;display:flex}.attendance-quickfill .btn{padding:8px 14px;font-size:12px}.corrections-panel{background:var(--surface2);border:1px solid var(--border);border-radius:16px;margin-top:20px;padding:16px}.corrections-panel .panelhead{margin-bottom:12px}.corrections-list{max-height:320px;margin-top:8px;overflow-y:auto}.correction-item{background:var(--surface);border:1px solid var(--border);border-radius:12px;margin-bottom:8px;padding:10px 12px;font-size:12px;line-height:1.5}.correction-item b{color:var(--text);font-weight:700}.correction-item .corr-old{color:#8a8195;text-decoration:none}.correction-item .corr-new{font-weight:700}.correction-item small{color:var(--muted);margin-top:4px;font-size:10px;display:block}.leave-page{flex-direction:column;gap:20px;display:flex}.leave-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.leave-title{letter-spacing:-.02em;margin:0 0 4px;font-size:22px}.leave-sub{color:var(--muted);margin:0;font-size:13px}.leave-head-actions{flex-wrap:wrap;gap:8px;display:flex}.leave-tabs{border-bottom:1px solid var(--border);gap:6px;padding-bottom:0;display:flex}.leave-tab{color:var(--muted);background:0 0;border:1px solid #0000;border-bottom:none;border-radius:12px 12px 0 0;padding:10px 16px;font-size:13px;font-weight:700}.leave-tab:hover{color:var(--text);background:var(--surface2)}.leave-tab.active{color:var(--primary);background:color-mix(in srgb, var(--primary) 8%, var(--surface));border-color:var(--border)}.leave-list{flex-direction:column;gap:12px;display:flex}.leave-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;padding:16px 18px;display:flex;box-shadow:0 2px 8px #3223500a}.leave-card-main{flex:1;min-width:0}.leave-teacher{margin-bottom:6px;font-size:15px;display:block}.leave-dates{color:var(--text);align-items:center;gap:6px;margin-bottom:6px;font-size:13px;font-weight:600;display:flex}.leave-reason{color:var(--text);margin:6px 0;font-size:13px;line-height:1.5}.leave-meta{flex-wrap:wrap;align-items:center;gap:10px;margin-top:8px;font-size:12px;display:flex}.leave-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.affected-panel{background:color-mix(in srgb, var(--primary) 4%, var(--surface));border:1px solid color-mix(in srgb, var(--border) 70%, var(--primary) 30%);border-radius:16px;padding:16px 18px}.affected-head{margin-bottom:12px}.affected-head h4{margin:0 0 4px;font-size:15px}.affected-table{border-collapse:collapse;width:100%;font-size:12px}.affected-table th{text-align:left;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--border);padding:8px 6px;font-size:11px;font-weight:700}.affected-table td{border-bottom:1px solid var(--border);padding:10px 6px}.affected-table .btn.sm{padding:6px 10px;font-size:11px}.arrangements-widget{border:1px solid color-mix(in srgb, var(--primary) 35%, var(--border));background:linear-gradient(135deg,#7c5cff1a,#9c7cff0a);border-radius:20px;margin-bottom:20px;padding:18px 20px;box-shadow:0 4px 16px #7c5cff14}.arrangements-widget-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:6px;display:flex}.arrangements-widget-title{color:var(--primary);align-items:center;gap:8px;font-size:15px;display:flex}.arrangements-widget-title b{color:var(--text);letter-spacing:-.01em;font-weight:800}.arrangements-count{background:var(--primary);color:#fff;text-align:center;border-radius:999px;min-width:24px;padding:3px 10px;font-size:11px;font-weight:800}.arrangements-widget-sub{color:var(--muted);margin:0 0 14px;font-size:12px}.arrangements-list{flex-direction:column;gap:8px;display:flex}.arrangement-row{background:var(--surface);border:1px solid var(--border);border-radius:14px;flex-wrap:wrap;align-items:center;gap:14px;padding:12px 14px;display:flex}.arrangement-time{color:var(--text);background:color-mix(in srgb, var(--primary) 8%, var(--surface));border-radius:10px;align-items:center;gap:6px;min-width:120px;padding:6px 10px;font-size:12px;font-weight:700;display:flex}.arrangement-time b{color:var(--primary);font-weight:800}.arrangement-info{flex:1;min-width:0;font-size:13px;line-height:1.4}.arrangement-info b{margin-bottom:2px;font-size:14px;display:block}.arrangement-info small{margin-top:2px;font-size:11px;font-style:italic;display:block}.arrangement-period{background:color-mix(in srgb, var(--primary) 12%, var(--surface2));color:var(--primary);text-transform:uppercase;letter-spacing:.05em;border-radius:999px;padding:4px 10px;font-size:11px;font-weight:800}.notes-page{flex-direction:column;gap:18px;display:flex}.notes-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.notes-title{letter-spacing:-.02em;margin:0 0 4px;font-size:22px}.notes-sub{color:var(--muted);margin:0;font-size:13px}.notes-filters{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.notes-filters select{width:auto;min-width:180px;margin:0}.notes-filters input{flex:1;min-width:200px;margin:0}.notes-list{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px;display:grid}.note-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;flex-direction:column;gap:12px;padding:16px 18px;transition:transform .15s,box-shadow .15s;display:flex;box-shadow:0 2px 8px #3223500a}.note-card:hover{transform:translateY(-2px);box-shadow:0 8px 20px #32235014}.note-card-head{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.note-subject{color:var(--primary);text-transform:uppercase;letter-spacing:.05em;font-size:13px;font-weight:800}.note-chapter{color:var(--muted);margin-top:2px;font-size:11px}.note-class{background:color-mix(in srgb, var(--primary) 12%, var(--surface2));color:var(--primary);border-radius:999px;padding:4px 10px;font-size:11px;font-weight:800}.note-card-body{flex:1}.note-title{letter-spacing:-.01em;margin-bottom:6px;font-size:15px;font-weight:700;line-height:1.35;display:block}.note-desc{color:var(--muted);margin:6px 0;font-size:12px;line-height:1.5}.note-meta{color:var(--muted);flex-wrap:wrap;gap:12px;margin-top:8px;font-size:11px;display:flex}.note-meta span{align-items:center;gap:4px;display:flex}.note-card-actions{border-top:1px solid var(--border);flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;padding-top:12px;display:flex}.note-card-actions .btn.sm{padding:7px 12px;font-size:12px}.note-card-actions .btn.ghost.sm{padding:7px 10px}@media (width<=600px){.notes-list{grid-template-columns:1fr}.notes-filters{flex-direction:column;align-items:stretch}.notes-filters select,.notes-filters input{width:100%;min-width:0}}@media (width>=901px){.shell main{height:100vh;max-height:100vh;overflow:hidden auto}}@media (width<=900px){.shell main{overflow:hidden auto}}body,html{height:auto;overflow-y:auto}.dashhead{z-index:5;position:sticky;top:0}.modalbox{max-height:90vh;overflow:hidden auto}.modal{align-items:flex-start;padding:40px 20px;overflow-y:auto}@media (width<=600px){.modal{padding:20px 12px}.modalbox{max-height:calc(100vh - 40px)}}.lesson-page{flex-direction:column;gap:18px;display:flex}.lesson-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.lesson-title{letter-spacing:-.02em;margin:0 0 4px;font-size:22px}.lesson-sub{color:var(--muted);margin:0;font-size:13px}.lesson-today{background:color-mix(in srgb, var(--primary) 4%, var(--surface));border:1px solid color-mix(in srgb, var(--border) 70%, var(--primary) 30%);border-radius:16px;padding:16px 18px}.lesson-today-head{color:var(--primary);align-items:center;gap:8px;margin-bottom:12px;font-size:14px;display:flex}.lesson-today-head b{color:var(--text)}.lesson-today-head .muted{margin-left:auto;font-size:11px}.lesson-today-row{background:var(--surface);border:1px solid var(--border);border-radius:12px;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:6px;padding:10px 12px;display:flex}.lesson-today-time{background:color-mix(in srgb, var(--primary) 8%, var(--surface));border-radius:8px;align-items:center;gap:4px;min-width:110px;padding:6px 10px;font-size:12px;font-weight:700;display:flex}.lesson-today-info{flex:1;min-width:0;font-size:13px}.lesson-today-info b{margin-bottom:2px;font-size:14px;display:block}.lesson-badge-sub{color:#b88314;background:#d99a1826;border-radius:999px;margin-left:6px;padding:2px 8px;font-size:10px;font-weight:800;display:inline-block}.lesson-today-action{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.lesson-filters{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.lesson-filters input,.lesson-filters select{width:auto;min-width:140px;margin:0}.lesson-list{flex-direction:column;gap:10px;display:flex}.lesson-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:14px;padding:14px 16px;display:flex}.lesson-card-main{flex:1;min-width:0}.lesson-card-top{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:6px;display:flex}.lesson-date{color:var(--text);font-size:12px;font-weight:700}.lesson-period{background:color-mix(in srgb, var(--primary) 10%, var(--surface2));color:var(--primary);border-radius:999px;padding:3px 10px;font-size:11px;font-weight:700}.lesson-topic{margin:4px 0;font-size:15px;font-weight:700;display:block}.lesson-meta{color:var(--muted);flex-wrap:wrap;gap:10px;font-size:12px;display:flex}.lesson-card-actions{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.lesson-card-actions .btn.sm{padding:7px 12px;font-size:12px}@media (width<=600px){.lesson-today-row{flex-direction:column;align-items:stretch}.lesson-today-time{min-width:0}.lesson-card{flex-direction:column}}.lesson-card{cursor:pointer;transition:transform .15s,box-shadow .15s,border-color .15s}.lesson-card:hover{border-color:color-mix(in srgb, var(--primary) 40%, var(--border));transform:translateY(-2px);box-shadow:0 8px 24px #7c5cff1a}.lesson-details-box{max-height:90vh;overflow-y:auto}.lesson-details-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:16px;padding-bottom:16px;padding-right:40px;display:flex}.lesson-details-body{flex-direction:column;gap:14px;display:flex}.lesson-detail-row{border-bottom:1px dashed var(--border);padding-bottom:12px}.lesson-detail-row:last-child{border-bottom:none}.lesson-detail-label{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:6px;font-size:10px;font-weight:800}.lesson-detail-value{color:var(--text);white-space:pre-wrap;word-break:break-word;font-size:14px;line-height:1.6}.quiz-page{flex-direction:column;gap:18px;display:flex}.quiz-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.quiz-title{letter-spacing:-.02em;margin:0 0 4px;font-size:22px}.quiz-sub{color:var(--muted);margin:0;font-size:13px}.quiz-filters{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.quiz-filters select{width:auto;min-width:160px;margin:0}.quiz-list{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px;display:grid}.quiz-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;flex-direction:column;gap:10px;padding:16px 18px;display:flex;box-shadow:0 2px 8px #3223500a}.quiz-card-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.quiz-subject{color:var(--primary);text-transform:uppercase;letter-spacing:.05em;font-size:12px;font-weight:800}.quiz-topic{color:var(--muted);font-size:11px}.quiz-card-title{letter-spacing:-.01em;margin:0;font-size:16px;font-weight:800;line-height:1.3}.quiz-card-meta{color:var(--muted);flex-wrap:wrap;gap:10px;font-size:11px;font-weight:600;display:flex}.quiz-score{color:var(--primary);font-weight:800}.quiz-teacher{color:var(--muted);font-size:11px;font-style:italic}.quiz-card-actions{border-top:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:6px;padding-top:8px;display:flex}.quiz-card-actions .btn.sm{padding:7px 12px;font-size:12px}.quiz-question-editor{background:var(--surface2);border:1px solid var(--border);border-radius:12px;margin-top:12px;padding:14px}.quiz-q-head{justify-content:space-between;align-items:center;margin-bottom:8px;font-size:13px;display:flex}.quiz-option-row{align-items:center;gap:8px;margin:6px 0;display:flex}.quiz-option-row input[type=radio]{flex:none;width:auto;margin:0}.quiz-option-row input[type=text],.quiz-option-row input:not([type]){flex:1;margin:0}.quiz-q-footer{justify-content:flex-end;align-items:center;gap:8px;margin-top:8px;display:flex}.quiz-attempt-body{padding:8px 0}.quiz-attempt-question{margin:8px 0 20px;font-size:16px;font-weight:700;line-height:1.4}.quiz-attempt-option{border:1px solid var(--border);background:var(--surface);cursor:pointer;border-radius:12px;align-items:center;gap:10px;margin-bottom:8px;padding:12px 14px;transition:all .15s;display:flex}.quiz-attempt-option:hover{border-color:color-mix(in srgb, var(--primary) 40%, var(--border));background:color-mix(in srgb, var(--primary) 4%, var(--surface))}.quiz-attempt-option.selected{border-color:var(--primary);background:color-mix(in srgb, var(--primary) 10%, var(--surface));box-shadow:0 0 0 2px color-mix(in srgb, var(--primary) 20%, transparent)}.quiz-attempt-option input{margin:0}.quiz-result-score{color:var(--primary);letter-spacing:-.03em;font-size:48px;font-weight:900;line-height:1}.quiz-result-score span{color:var(--muted);font-size:24px;font-weight:700}.quiz-result-percentage{color:var(--text);margin-top:10px;font-size:20px;font-weight:800}.quiz-table{border-collapse:collapse;width:100%;margin-top:12px;font-size:13px}.quiz-table th{text-align:left;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--border);padding:10px 8px;font-size:11px;font-weight:700}.quiz-table td{border-bottom:1px solid var(--border);padding:10px 8px}.quiz-table small{font-size:10px}@media (width<=600px){.quiz-list{grid-template-columns:1fr}.quiz-card-actions{flex-direction:column;align-items:stretch}.quiz-card-actions .btn{justify-content:center;width:100%}}.tt-cell-wrap{width:100%;height:100%;position:relative}.tt-sub-btn{letter-spacing:.05em;background:color-mix(in srgb, var(--primary) 15%, var(--surface));color:var(--primary);border:1px solid color-mix(in srgb, var(--primary) 30%, var(--border));cursor:pointer;opacity:0;z-index:2;border-radius:6px;padding:3px 7px;font-size:9px;font-weight:800;transition:opacity .15s,background .15s;position:absolute;top:4px;right:4px}.tt-cell-wrap:hover .tt-sub-btn{opacity:1}.tt-sub-btn:hover{background:var(--primary);color:#fff;border-color:var(--primary)}.uncovered-panel{margin-bottom:22px;background:linear-gradient(135deg,#d645450a,#d6454503)!important;border:1px solid #d6454559!important}.uncovered-icon{color:#d64545;background:#d645451f;border-radius:12px;place-items:center;width:44px;height:44px;display:grid}.uncovered-badge{color:#fff;vertical-align:middle;background:#d64545;border-radius:999px;margin-left:10px;padding:3px 10px;font-size:11px;font-weight:800}.uncovered-list{flex-direction:column;gap:10px;display:flex}.uncovered-row{background:var(--surface);border:1px solid var(--border);border-radius:12px;flex-wrap:wrap;align-items:center;gap:14px;padding:12px 14px;display:flex}.uncovered-time{background:color-mix(in srgb, var(--primary) 6%, var(--surface2));border-radius:10px;flex-direction:column;gap:2px;min-width:100px;padding:8px 12px;font-size:12px;font-weight:700;display:flex}.uncovered-time small{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-size:10px;font-weight:600}.uncovered-info{flex:1;min-width:200px;font-size:13px}.uncovered-info b{margin-bottom:2px;font-size:14px;display:block}.uncovered-info small{margin-top:3px;font-size:11px;display:block}.uncovered-modal-info{background:color-mix(in srgb, var(--primary) 6%, var(--surface));border-radius:12px;margin-bottom:14px;padding:12px 14px;font-size:13px}@media (width<=600px){.uncovered-row{flex-direction:column;align-items:stretch}.uncovered-time{min-width:0}}.tt-head{border-bottom:1px solid var(--border);align-items:center;gap:16px;margin-bottom:16px;padding-bottom:16px;display:flex}.tt-head>div{flex:1;min-width:0}.tt-print-btn{flex-shrink:0}@media (width<=600px){.tt-head{flex-wrap:wrap}.tt-print-btn{justify-content:center;width:100%}}.tt-sat-toggle{background:var(--surface2);border:1px solid var(--border);color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:10px;flex-shrink:0;align-items:center;gap:6px;padding:7px 12px;font-size:12px;font-weight:700;transition:background .15s,border-color .15s;display:inline-flex}.tt-sat-toggle:hover{background:color-mix(in srgb, var(--primary) 8%, var(--surface2));border-color:color-mix(in srgb, var(--primary) 35%, var(--border))}.tt-sat-toggle input[type=checkbox]{cursor:pointer;width:14px;height:14px;accent-color:var(--primary);margin:0}@media (width<=600px){.tt-sat-toggle{justify-content:center;width:100%}}.lesson-taught-badge{color:#22a06b;text-transform:uppercase;letter-spacing:.05em;background:#22a06b1f;border-radius:999px;align-items:center;gap:4px;padding:5px 10px;font-size:11px;font-weight:800;display:inline-flex}.msgbanner-toast{z-index:99999;-webkit-backdrop-filter:blur(20px);border-radius:14px;align-items:center;gap:10px;min-width:280px;max-width:90vw;padding:14px 20px;font-size:13px;font-weight:600;animation:.3s toastSlide;display:flex;position:fixed;top:20px;left:50%;transform:translate(-50%);box-shadow:0 10px 40px #0000002e}.msgbanner-toast.success{color:#fff;background:linear-gradient(135deg,#22a06b,#1a8a5a);border:1px solid #fff3}.msgbanner-toast.error{color:#fff;background:linear-gradient(135deg,#d64545,#b83333);border:1px solid #fff3}.msgbanner-toast svg{flex-shrink:0}.msgbanner-toast span{flex:1;line-height:1.4}@keyframes toastSlide{0%{opacity:0;transform:translate(-50%)translateY(-20px)}to{opacity:1;transform:translate(-50%)translateY(0)}}@media (width<=600px){.msgbanner-toast{min-width:0;max-width:none;top:12px;left:12px;right:12px;transform:none}}.notice.msgbanner.warn{color:#96651a;background:#e6a23c1f;border:1px solid #e6a23c6b}.notice.msgbanner.warn svg{color:#d99420}.notice.msgbanner.info{color:#2b5f9e;background:#468ceb1a;border:1px solid #468ceb59}.notice.msgbanner.info svg{color:#3d7fd6}:root[data-theme=dark] .notice.msgbanner.warn{color:#ffd79a}:root[data-theme=dark] .notice.msgbanner.info{color:#a9cdfb}.msgbanner-toast.warn{color:#fff;background:linear-gradient(135deg,#e0a32c,#c98a1c);border:1px solid #fff3}.msgbanner-toast.info{color:#fff;background:linear-gradient(135deg,#3d7fd6,#2f66b0);border:1px solid #fff3}.log-page{flex-direction:column;gap:18px;display:flex}.log-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.log-title{letter-spacing:-.02em;align-items:center;gap:8px;margin:0 0 4px;font-size:22px;display:flex}.log-title svg{color:var(--primary)}.log-sub{color:var(--muted);margin:0;font-size:13px}.log-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.log-filters{background:var(--surface);border:1px solid var(--border);border-radius:14px;flex-wrap:wrap;align-items:center;gap:10px;padding:12px 14px;display:flex}.log-filters select,.log-filters input{min-width:160px}.log-list{flex-direction:column;gap:12px;display:flex}.log-entry{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--primary);border-radius:16px;padding:16px 18px;transition:box-shadow .18s,transform .18s}.log-entry:hover{transform:translateY(-1px);box-shadow:0 8px 26px #1e143c17}.log-entry-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.log-entry-date{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:5px;font-size:11px;font-weight:800}.log-entry-title{color:var(--text);margin-bottom:6px;font-size:15px;line-height:1.4}.log-entry-title b{color:var(--primary)}.log-entry-meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:12px;font-size:12px;display:flex}.log-entry-meta span{align-items:center;gap:4px;display:inline-flex}.log-entry-badge{color:#22a06b;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;background:#22a06b1f;border-radius:999px;align-items:center;gap:4px;padding:5px 10px;font-size:11px;font-weight:800;display:inline-flex}:root[data-theme=dark] .log-entry-badge{color:#7fe0b0}.log-entry-row{color:var(--text);margin-top:9px;font-size:13px;line-height:1.6}.log-entry-row b{color:var(--primary);margin-right:4px;font-weight:700}.log-entry-row.highlight{background:color-mix(in srgb,var(--accent,#f0a500) 9%,transparent);border:1px solid color-mix(in srgb,var(--accent,#f0a500) 26%,transparent);border-radius:10px;padding:9px 12px}.log-entry-note{background:color-mix(in srgb,var(--primary) 6%,var(--surface));border:1px dashed color-mix(in srgb,var(--primary) 32%,var(--border));color:var(--muted);border-radius:11px;margin-top:11px;padding:10px 13px;font-size:12.5px;font-style:italic;line-height:1.55}@media (width<=600px){.log-head{flex-direction:column;align-items:stretch}.log-actions{width:100%}.log-actions .btn{flex:1;justify-content:center}.log-filters select,.log-filters input{flex:1;width:100%;min-width:0}.log-entry{padding:14px}.log-entry-head{flex-direction:column;gap:9px}}.weekly-grid-wrapper{flex-direction:column;gap:14px;display:flex}.weekly-grid-head{background:var(--surface);border:1px solid var(--border);border-radius:14px;align-items:center;gap:8px;padding:10px 12px;display:flex}.weekly-grid-week{text-align:center;letter-spacing:-.01em;flex:1;font-size:14px;font-weight:800}.weekly-grid-filters{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.weekly-grid-filters select{width:auto;min-width:180px;margin:0}.weekly-grid-scroll{border:1px solid var(--border);background:var(--surface);border-radius:14px;overflow-x:auto}.weekly-grid-table{border-collapse:separate;border-spacing:0;width:100%;min-width:900px}.weekly-grid-table th,.weekly-grid-table td{border-right:1px solid var(--border);border-bottom:1px solid var(--border);vertical-align:top;padding:8px}.weekly-grid-table th:last-child,.weekly-grid-table td:last-child{border-right:none}.weekly-grid-table tbody tr:last-child td{border-bottom:none}.weekly-grid-table thead th{background:var(--surface2);text-align:center;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);z-index:2;font-size:11px;font-weight:800;position:sticky;top:0}.weekly-grid-table thead th small{opacity:.7;letter-spacing:0;text-transform:none;margin-top:2px;font-size:9px;font-weight:600;display:block}.weekly-grid-corner{min-width:110px;background:var(--surface2)!important;text-align:left!important;padding-left:12px!important}.weekly-grid-day{min-width:120px}.weekly-grid-period{background:var(--surface2);min-width:110px}.weekly-grid-period b{color:var(--text);font-size:12px;display:block}.weekly-grid-period small{color:var(--muted);font-size:10px;font-weight:600;display:block}.weekly-cell{min-width:120px;height:76px;position:relative;padding:0!important}.weekly-cell.empty{background:color-mix(in srgb, var(--surface2) 60%, transparent)}.weekly-cell-btn{text-align:left;cursor:pointer;width:100%;height:100%;font:inherit;color:inherit;background:0 0;border:none;border-radius:0;flex-direction:column;gap:2px;padding:8px 10px;display:flex}.weekly-cell-btn:hover{background:color-mix(in srgb, var(--primary) 6%, transparent)}.weekly-cell-btn b{color:var(--primary);text-transform:uppercase;letter-spacing:.04em;font-size:12px;font-weight:800}.weekly-cell-topic{color:var(--text);-webkit-line-clamp:2;word-break:break-word;-webkit-box-orient:vertical;font-size:12px;line-height:1.35;display:-webkit-box;overflow:hidden}.weekly-cell-badge{color:#22a06b;letter-spacing:.04em;background:#22a06b1f;border-radius:999px;align-self:flex-start;margin-top:auto;padding:2px 6px;font-size:9px;font-weight:800;display:inline-block}.weekly-cell.has-plan{background:color-mix(in srgb, var(--primary) 3%, var(--surface))}.weekly-cell.submitted{background:color-mix(in srgb, #d99a18 6%, var(--surface))}.weekly-cell.reviewed{background:color-mix(in srgb, #22a06b 5%, var(--surface))}.weekly-cell.is-taught{border-left:3px solid #22a06b}.weekly-cell-edit{background:var(--surface);border:1px solid var(--border);cursor:pointer;opacity:0;width:22px;height:22px;color:var(--muted);border-radius:6px;place-items:center;transition:opacity .15s;display:grid;position:absolute;top:4px;right:4px}.weekly-cell:hover .weekly-cell-edit{opacity:1}.weekly-cell-edit:hover{color:var(--primary);border-color:var(--primary)}.weekly-add{cursor:pointer;width:100%;height:100%;color:var(--muted);background:0 0;border:none;border-radius:0;place-items:center;transition:all .15s;display:grid}.weekly-add:hover{background:color-mix(in srgb, var(--primary) 10%, transparent);color:var(--primary)}@media (width<=640px){.weekly-grid-week{font-size:12px}.weekly-grid-filters select{width:100%;min-width:0}}.view-toggle{background:var(--surface2);border:1px solid var(--border);border-radius:10px;gap:2px;padding:3px;display:inline-flex}.view-toggle-btn{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:7px;padding:6px 14px;font-size:12px;font-weight:700;transition:all .15s}.view-toggle-btn:hover:not(.active){color:var(--text)}.view-toggle-btn.active{background:var(--surface);color:var(--primary);box-shadow:0 1px 3px #32235014}.weekly-period-subject{color:var(--primary);text-transform:uppercase;letter-spacing:.04em;margin-top:3px;font-size:10px;font-weight:700;display:block}.weekly-sat-toggle{background:var(--surface2);border:1px solid var(--border);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:10px;align-items:center;gap:6px;padding:6px 12px;font-size:12px;font-weight:700;transition:all .15s;display:inline-flex}.weekly-sat-toggle:hover{border-color:color-mix(in srgb, var(--primary) 35%, var(--border));background:color-mix(in srgb, var(--primary) 6%, var(--surface2))}.weekly-sat-toggle input[type=checkbox]{cursor:pointer;width:14px;height:14px;accent-color:var(--primary);margin:0}.weekly-cell.has-schedule{background:color-mix(in srgb, var(--surface2) 40%, transparent)}.weekly-cell-subject{color:var(--text);text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px;font-size:11px;font-weight:800;display:block}.weekly-cell-add-icon{opacity:0;color:var(--primary);margin:0 auto;transition:opacity .15s}.weekly-cell:hover .weekly-cell-add-icon{opacity:1}.log-tabs{background:var(--surface2);border:1px solid var(--border);border-radius:12px;gap:4px;width:fit-content;padding:4px;display:flex}.log-tab{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:9px;padding:8px 18px;font-size:13px;font-weight:700;transition:all .15s}.log-tab:hover:not(.active){color:var(--text)}.log-tab.active{background:var(--surface);color:var(--primary);box-shadow:0 1px 3px #32235014}.manual-log-tab{flex-direction:column;gap:16px;display:flex}.manual-log-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.manual-log-filters{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.manual-log-filters select,.manual-log-filters input{width:auto;min-width:160px;margin:0}.manual-log-list{flex-direction:column;gap:12px;display:flex}.manual-log-entry{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--primary);border-radius:16px;padding:16px 18px;transition:all .18s}.manual-log-entry:hover{transform:translateY(-1px);box-shadow:0 8px 26px #1e143c17}.manual-log-entry-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:10px;display:flex}.manual-log-entry-meta{flex-wrap:wrap;align-items:center;gap:10px;font-size:11px;display:flex}.manual-log-date{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-weight:800}.manual-log-period{background:color-mix(in srgb, var(--primary) 10%, var(--surface2));color:var(--primary);border-radius:999px;padding:2px 8px;font-weight:700}.manual-log-subject{background:color-mix(in srgb, #22a06b 12%, var(--surface2));color:#22a06b;border-radius:999px;padding:2px 8px;font-weight:700}.manual-log-class{color:var(--text);font-weight:700}.manual-log-role{text-transform:uppercase;letter-spacing:.06em;background:var(--surface2);color:var(--muted);border-radius:999px;padding:4px 10px;font-size:10px;font-weight:800}.manual-log-text{color:var(--text);white-space:pre-wrap;word-break:break-word;margin:8px 0;font-size:13.5px;line-height:1.6}.manual-log-footer{border-top:1px dashed var(--border);justify-content:space-between;align-items:center;gap:12px;margin-top:10px;padding-top:10px;display:flex}.manual-log-actions{gap:6px;display:flex}@media (width<=600px){.manual-log-toolbar{flex-direction:column;align-items:stretch}.manual-log-filters select,.manual-log-filters input{width:100%;min-width:0}.manual-log-entry-head{flex-direction:column;gap:8px}.log-tabs{width:100%}.log-tab{text-align:center;flex:1}}.day-tabs{background:var(--surface2);border:1px solid var(--border);border-radius:12px;flex-wrap:wrap;gap:4px;width:fit-content;margin-bottom:14px;padding:4px;display:flex}.day-tab{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:8px;min-width:48px;padding:8px 16px;font-size:13px;font-weight:700;transition:all .15s}.day-tab:hover:not(.active){color:var(--text);background:color-mix(in srgb, var(--primary) 6%, transparent)}.day-tab.active{background:var(--surface);color:var(--primary);box-shadow:0 1px 3px #32235014}.att-student-page{flex-direction:column;gap:18px;display:flex}.att-student-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.att-month-select{width:auto;min-width:200px;margin:0}.att-summary-grid{grid-template-columns:repeat(5,1fr);gap:10px;display:grid}.att-summary-card{background:var(--surface);border:1px solid var(--border);text-align:center;border-radius:14px;padding:14px 16px}.att-summary-card .att-summary-label{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:4px;font-size:11px;font-weight:700;display:block}.att-summary-card .att-summary-value{letter-spacing:-.02em;font-size:22px;font-weight:800;display:block}.att-summary-card.present{border-left:3px solid #22a06b}.att-summary-card.present .att-summary-value{color:#22a06b}.att-summary-card.absent{border-left:3px solid #d64545}.att-summary-card.absent .att-summary-value{color:#d64545}.att-summary-card.late{border-left:3px solid #d99a18}.att-summary-card.late .att-summary-value{color:#d99a18}.att-summary-card.leave{border-left:3px solid #4f7fc7}.att-summary-card.leave .att-summary-value{color:#4f7fc7}.att-summary-card.rate{border-left:3px solid var(--primary)}.att-summary-card.rate .att-summary-value{color:var(--primary)}.att-records-list{flex-direction:column;gap:8px;display:flex}.att-record-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;transition:all .15s;display:flex}.att-record-card:hover{border-color:color-mix(in srgb, var(--primary) 30%, var(--border))}.att-record-date{flex-direction:column;gap:2px;min-width:0;display:flex}.att-record-date b{color:var(--text);font-size:14px;font-weight:700}.att-record-date span{color:var(--muted);font-size:12px;font-weight:600}.att-status-badge{text-transform:uppercase;letter-spacing:.05em;border-radius:999px;flex-shrink:0;align-items:center;padding:5px 12px;font-size:11px;font-weight:800;display:inline-flex}.att-status-badge.present{color:#22a06b;background:#22a06b1f}.att-status-badge.absent{color:#d64545;background:#d645451f}.att-status-badge.late{color:#b88314;background:#d99a1824}.att-status-badge.leave{color:#4f7fc7;background:#4f7fc71f}.att-status-badge.other{background:var(--surface2);color:var(--muted)}@media (width<=640px){.att-summary-grid{grid-template-columns:repeat(2,1fr)}.att-summary-card.rate{grid-column:1/-1}.att-month-select{width:100%;min-width:0}.att-student-head{flex-direction:column;align-items:stretch}}.landing-schools-section{text-align:center;max-width:1200px;margin:0 auto;padding:60px 20px 20px}.landing-schools-marquee{margin-top:28px;padding:14px 0;position:relative;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000,#000 8% 92%,#0000);mask-image:linear-gradient(90deg,#0000,#000 8% 92%,#0000)}.landing-schools-track{will-change:transform;gap:48px;width:max-content;animation:40s linear infinite landingSchoolsSlide;display:flex}.landing-schools-item{opacity:.75;flex-direction:column;flex-shrink:0;align-items:center;gap:8px;min-width:120px;transition:opacity .22s,transform .22s;display:flex}.landing-schools-item:hover{opacity:1;transform:translateY(-2px)}.landing-schools-item img{object-fit:contain;background:var(--surface);border:1px solid var(--border);border-radius:14px;width:72px;height:72px;padding:8px;box-shadow:0 2px 8px #3223500a}.landing-schools-item span{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;max-width:130px;font-size:12px;font-weight:600;overflow:hidden}@keyframes landingSchoolsSlide{0%{transform:translate(0)}to{transform:translate(-50%)}}@media (width<=640px){.landing-schools-section{padding:40px 16px 10px}.landing-schools-track{gap:32px;animation-duration:28s}.landing-schools-item{min-width:100px}.landing-schools-item img{width:56px;height:56px}}.plan-manage-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:18px 20px;transition:border-color .18s,box-shadow .18s}.plan-manage-card:hover{border-color:color-mix(in srgb, var(--primary) 30%, var(--border));box-shadow:0 8px 26px #1e143c0f}.plan-manage-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px;display:flex}.plan-manage-badge{text-transform:uppercase;letter-spacing:.05em;border-radius:999px;padding:4px 10px;font-size:10px;font-weight:800}.plan-manage-badge.popular{color:#7c5cff;background:#7c5cff1f;border:1px solid #7c5cff4d}.plan-manage-badge.off{color:#d64545;background:#d645451f;border:1px solid #d645454d}.plan-manage-prices{background:var(--surface2);border:1px solid var(--border);border-radius:12px;grid-template-columns:1fr 1fr 1fr;gap:14px;margin-bottom:14px;padding:14px 16px;display:grid}.plan-price-block{flex-direction:column;gap:4px;display:flex}.plan-price-label{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:10px;font-weight:800}.plan-price-row{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.plan-price-current{color:var(--primary);letter-spacing:-.02em;font-size:18px;font-weight:800}.plan-price-old{color:var(--muted);font-size:12px;text-decoration:line-through}.plan-save-pill{color:#22a06b;background:#22a06b1f;border-radius:999px;width:fit-content;margin-top:2px;padding:2px 8px;font-size:10px;font-weight:800;display:inline-block}.plan-students-block{flex-direction:column;gap:4px;display:flex}@media (width<=640px){.plan-manage-prices{grid-template-columns:1fr 1fr}.plan-students-block{grid-column:1/-1}}.landing-pricing-section{background:linear-gradient(#0000 0%,#7c5cff08 50%,#0000 100%)}.pricing-toggle{background:var(--surface);border:1px solid var(--border);border-radius:999px;justify-content:center;gap:8px;width:fit-content;margin:28px auto 40px;padding:5px;display:flex;position:relative}.pricing-toggle button{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:999px;align-items:center;gap:8px;padding:9px 22px;font-family:inherit;font-size:13px;font-weight:700;transition:all .18s;display:inline-flex}.pricing-toggle button.active{background:linear-gradient(135deg, var(--primary), var(--primary2,#a78bfa));color:#fff;box-shadow:0 4px 14px #7c5cff4d}.pricing-toggle-badge{color:#22a06b;letter-spacing:.03em;background:#22a06b26;border-radius:999px;padding:2px 8px;font-size:10px;font-weight:800}.pricing-toggle button.active .pricing-toggle-badge{color:#fff;background:#ffffff40}.pricing-grid{grid-template-columns:repeat(3,1fr);gap:24px;max-width:1080px;margin:0 auto;display:grid}.pricing-card{background:var(--surface);border:1.5px solid var(--border);border-radius:20px;flex-direction:column;gap:4px;padding:32px 28px;transition:all .22s;display:flex;position:relative}.pricing-card:hover{border-color:color-mix(in srgb, var(--primary) 30%, var(--border));transform:translateY(-4px);box-shadow:0 20px 48px #3223501a}.pricing-card.popular{border-color:var(--primary);border-width:2px;box-shadow:0 16px 40px #7c5cff26}.pricing-card.popular:before{content:"";background:linear-gradient(135deg, var(--primary), var(--primary2,#a78bfa));z-index:-1;opacity:.08;border-radius:22px;position:absolute;inset:-2px}.pricing-card-badge{background:linear-gradient(135deg, var(--primary), var(--primary2,#a78bfa));color:#fff;text-transform:uppercase;letter-spacing:.08em;white-space:nowrap;border-radius:999px;padding:5px 14px;font-size:10px;font-weight:800;position:absolute;top:-12px;left:50%;transform:translate(-50%);box-shadow:0 4px 14px #7c5cff59}.pricing-card-name{letter-spacing:-.02em;color:var(--text);font-size:20px;font-weight:800}.pricing-card-tagline{color:var(--muted);margin-bottom:18px;font-size:13px}.pricing-card-price-block{border-top:1px solid var(--border);border-bottom:1px solid var(--border);margin-bottom:20px;padding:18px 0 20px}.pricing-card-price-row{align-items:baseline;gap:4px;line-height:1.1;display:flex}.pricing-card-currency{color:var(--muted);font-size:16px;font-weight:700}.pricing-card-price{letter-spacing:-.03em;color:var(--text);font-size:38px;font-weight:800}.pricing-card-period{color:var(--muted);font-size:14px;font-weight:600}.pricing-card-save-row{align-items:center;gap:10px;margin-top:8px;display:flex}.pricing-card-old{color:var(--muted);font-size:14px}.pricing-save-pill{color:#22a06b;letter-spacing:.03em;background:#22a06b1f;border-radius:999px;padding:3px 10px;font-size:11px;font-weight:800}.pricing-card-students{color:var(--text);margin-bottom:22px;font-size:14px}.pricing-card-students b{color:var(--primary);font-weight:800}.pricing-card-btn{border:1.5px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:12px;margin-top:auto;padding:13px 20px;font-family:inherit;font-size:14px;font-weight:700;transition:all .18s}.pricing-card-btn:hover{border-color:var(--primary);color:var(--primary)}.pricing-card-btn.primary{background:linear-gradient(135deg, var(--primary), var(--primary2,#a78bfa));color:#fff;border-color:#0000;box-shadow:0 8px 22px #7c5cff4d}.pricing-card-btn.primary:hover{color:#fff;transform:translateY(-1px);box-shadow:0 12px 28px #7c5cff66}.pricing-includes{background:var(--surface);border:1px solid var(--border);border-radius:22px;max-width:1080px;margin:72px auto 0;padding:40px 36px}.pricing-includes-title{text-align:center;margin-bottom:28px}.pricing-includes-eyebrow{color:var(--primary);letter-spacing:.1em;text-transform:uppercase;background:#7c5cff1a;border-radius:999px;margin-bottom:10px;padding:5px 14px;font-size:10px;font-weight:800;display:inline-block}.pricing-includes-title h3{letter-spacing:-.02em;margin:0;font-size:22px;font-weight:800}.pricing-includes-grid{grid-template-columns:repeat(3,1fr);gap:14px 28px;display:grid}.pricing-include-item{color:var(--text);align-items:flex-start;gap:10px;font-size:14px;line-height:1.5;display:flex}.pricing-include-check{color:#22a06b;background:#22a06b1f;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;margin-top:1px;font-size:12px;font-weight:900;display:inline-flex}@media (width<=900px){.pricing-grid{grid-template-columns:1fr;max-width:420px}.pricing-includes-grid{grid-template-columns:1fr 1fr}}@media (width<=640px){.pricing-card{padding:26px 22px}.pricing-card-price{font-size:32px}.pricing-includes{margin-top:48px;padding:28px 22px}.pricing-includes-grid{grid-template-columns:1fr}.pricing-toggle{padding:4px}.pricing-toggle button{padding:8px 16px;font-size:12px}.pricing-toggle-badge{display:none}}.license-plans-section{background:var(--surface);border:1px solid var(--border);border-radius:20px;margin-top:28px;padding:26px 24px}.license-plans-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:22px;display:flex}.license-plans-title{letter-spacing:-.02em;margin:0 0 4px;font-size:18px;font-weight:800}.license-plans-sub{color:var(--muted);margin:0;font-size:13px}.pricing-toggle.small{margin:0;padding:4px}.pricing-toggle.small button{padding:7px 16px;font-size:12px}.license-plans-grid{grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:22px;display:grid}.license-plan-card{background:var(--surface);border:1.5px solid var(--border);border-radius:16px;flex-direction:column;gap:4px;padding:22px 20px;transition:all .22s;display:flex;position:relative}.license-plan-card:hover{border-color:color-mix(in srgb, var(--primary) 30%, var(--border));box-shadow:0 10px 28px #3223500f}.license-plan-card.popular{border-color:var(--primary);border-width:2px;box-shadow:0 10px 28px #7c5cff1a}.license-plan-card.current{background:linear-gradient(180deg, #22a06b0a 0%, var(--surface) 100%);border-width:2px;border-color:#22a06b}.license-plan-current-badge{color:#fff;letter-spacing:.08em;white-space:nowrap;background:#22a06b;border-radius:999px;padding:4px 12px;font-size:10px;font-weight:800;position:absolute;top:-11px;left:50%;transform:translate(-50%);box-shadow:0 4px 12px #22a06b4d}.license-plan-badge{background:linear-gradient(135deg, var(--primary), var(--primary2,#a78bfa));color:#fff;text-transform:uppercase;letter-spacing:.08em;white-space:nowrap;border-radius:999px;padding:4px 12px;font-size:10px;font-weight:800;position:absolute;top:-11px;left:50%;transform:translate(-50%);box-shadow:0 4px 12px #7c5cff4d}.license-plan-name{letter-spacing:-.02em;color:var(--text);font-size:17px;font-weight:800}.license-plan-tagline{color:var(--muted);margin-bottom:14px;font-size:12px}.license-plan-price-block{border-top:1px solid var(--border);border-bottom:1px solid var(--border);margin-bottom:14px;padding:12px 0 14px}.license-plan-price-row{align-items:baseline;gap:4px;line-height:1.1;display:flex}.license-plan-currency{color:var(--muted);font-size:14px;font-weight:700}.license-plan-price{letter-spacing:-.03em;color:var(--text);font-size:28px;font-weight:800}.license-plan-period{color:var(--muted);font-size:13px;font-weight:600}.license-plan-save-row{flex-wrap:wrap;align-items:center;gap:8px;margin-top:6px;display:flex}.license-plan-old{color:var(--muted);font-size:12px}.license-plan-save-pill{color:#22a06b;background:#22a06b1f;border-radius:999px;padding:2px 8px;font-size:10px;font-weight:800}.license-plan-students{color:var(--text);margin-bottom:16px;font-size:13px}.license-plan-students b{color:var(--primary);font-weight:800}.license-plan-btn{border:1.5px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:10px;margin-top:auto;padding:11px 16px;font-family:inherit;font-size:13px;font-weight:700;transition:all .18s}.license-plan-btn:hover:not(:disabled){border-color:var(--primary);color:var(--primary)}.license-plan-btn.primary{background:linear-gradient(135deg, var(--primary), var(--primary2,#a78bfa));color:#fff;border-color:#0000;box-shadow:0 6px 18px #7c5cff47}.license-plan-btn.primary:hover:not(:disabled){color:#fff;transform:translateY(-1px);box-shadow:0 10px 24px #7c5cff61}.license-plan-btn:disabled{opacity:.6;cursor:not-allowed}.license-plan-features{background:var(--surface2);border:1px solid var(--border);border-radius:14px;margin-top:18px;padding:20px 20px 6px}.license-plan-features-title{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:14px;font-size:12px;font-weight:800}.license-plan-features-grid{grid-template-columns:repeat(3,1fr);gap:10px 22px;display:grid}.license-plan-feature-item{color:var(--text);align-items:flex-start;gap:8px;font-size:13px;line-height:1.5;display:flex}.license-plan-feature-check{color:#22a06b;background:#22a06b1f;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;margin-top:2px;font-size:10px;font-weight:900;display:inline-flex}@media (width<=900px){.license-plans-grid{grid-template-columns:1fr}.license-plan-features-grid{grid-template-columns:1fr 1fr}}@media (width<=640px){.license-plans-section{padding:20px 16px}.license-plan-features-grid{grid-template-columns:1fr}.license-plans-head{flex-direction:column;align-items:stretch}}.billing-subtabs{background:var(--surface2);border:1px solid var(--border);border-radius:12px;flex-wrap:wrap;gap:8px;width:fit-content;margin-bottom:22px;padding:5px;display:flex}.billing-subtabs button{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:9px;align-items:center;gap:8px;padding:9px 18px;font-family:inherit;font-size:13px;font-weight:700;transition:all .18s;display:inline-flex}.billing-subtabs button:hover{color:var(--text)}.billing-subtabs button.active{background:var(--surface);color:var(--primary);box-shadow:0 2px 8px #3223500f}.billing-subtab-badge{color:#fff;background:#d99a18;border-radius:999px;justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 6px;font-size:10px;font-weight:800;display:inline-flex}.owner-revenue-section{background:var(--surface);border:1px solid var(--border);border-radius:18px;margin-top:18px;padding:22px 24px}.owner-revenue-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:16px;display:flex}.owner-revenue-title{letter-spacing:-.02em;margin:0;font-size:17px;font-weight:800}.owner-revenue-sub{color:var(--muted);font-size:12px}.owner-revenue-grid{grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px;display:grid}.owner-revenue-card{background:var(--surface2);border:1px solid var(--border);border-radius:14px;padding:16px 18px}.owner-revenue-label{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:8px;font-size:10px;font-weight:800}.owner-revenue-value{letter-spacing:-.02em;color:var(--text);font-size:22px;font-weight:800;line-height:1.15}.owner-revenue-hint{color:var(--muted);margin-top:6px;font-size:11px}.owner-plan-usage{border-top:1px solid var(--border);padding-top:16px}.owner-plan-row{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;padding:12px 0;display:flex}.owner-plan-row:last-child{border-bottom:none;padding-bottom:0}.owner-plan-name{flex-direction:column;gap:2px;min-width:140px;display:flex}.owner-plan-name b{font-size:14px;font-weight:800}.owner-plan-cap{color:var(--muted);font-size:11px}.owner-plan-metric{flex-direction:column;align-items:flex-end;gap:2px;min-width:90px;display:flex}.owner-plan-count,.owner-plan-mrr{color:var(--text);font-size:15px;font-weight:800}.owner-plan-mrr{color:var(--primary)}.owner-plan-count-label{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-size:10px;font-weight:700}@media (width<=900px){.owner-revenue-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=640px){.owner-revenue-grid{grid-template-columns:1fr}.owner-plan-row{flex-direction:column;align-items:flex-start}.owner-plan-metric{align-items:flex-start}}.nav-soon-badge{color:#b88314;letter-spacing:.05em;text-transform:uppercase;background:#d99a1826;border-radius:999px;margin-left:6px;padding:2px 7px;font-size:9px;font-weight:800}.coming-soon-wrap{text-align:center;max-width:620px;margin:40px auto;padding:40px 32px}.coming-soon-icon{filter:drop-shadow(0 8px 24px #d99a1840);margin-bottom:16px;font-size:56px}.coming-soon-badge{color:#fff;letter-spacing:.14em;background:linear-gradient(135deg,#d99a18,#f5b944);border-radius:999px;margin-bottom:16px;padding:5px 14px;font-size:10px;font-weight:800;display:inline-block;box-shadow:0 6px 18px #d99a184d}.coming-soon-title{letter-spacing:-.02em;margin:0 0 10px;font-size:26px;font-weight:800}.coming-soon-sub{color:var(--muted);max-width:480px;margin:0 auto 28px;font-size:14px;line-height:1.6}.coming-soon-features{text-align:left;background:var(--surface2);border:1px solid var(--border);border-radius:16px;grid-template-columns:1fr 1fr;gap:12px 24px;padding:22px 24px;display:grid}.coming-soon-feature{color:var(--text);align-items:center;gap:10px;font-size:13px;display:flex}.coming-soon-feature span{color:#22a06b;font-size:14px;font-weight:900}@media (width<=640px){.coming-soon-features{grid-template-columns:1fr}.coming-soon-wrap{padding:30px 20px}}.group-req-page{flex-direction:column;gap:18px;display:flex}.group-req-card{border:1px solid var(--border);background:var(--surface2);border-radius:14px;margin-bottom:12px;padding:16px 18px}.group-req-card:last-child{margin-bottom:0}.group-req-card.pending{border-color:color-mix(in srgb, var(--primary) 34%, var(--border));background:color-mix(in srgb, var(--primary) 5%, var(--surface));box-shadow:0 2px 8px #3223500a}.group-req-owner{align-items:flex-start;gap:12px;display:flex}.group-req-avatar{background:color-mix(in srgb, var(--primary) 14%, var(--surface));width:38px;height:38px;color:var(--primary);border-radius:12px;flex-shrink:0;place-items:center;display:grid}.group-req-name{color:var(--text);font-size:15px;font-weight:800}.group-req-contact{color:var(--muted);flex-wrap:wrap;gap:6px 14px;margin-top:5px;font-size:12px;display:flex}.group-req-contact span{align-items:center;gap:5px;display:inline-flex}.group-req-contact svg{flex-shrink:0}.group-req-meta{border-top:1px dashed var(--border);color:var(--muted);flex-wrap:wrap;align-items:center;gap:8px 14px;margin-top:12px;padding-top:12px;font-size:11.5px;display:flex}.group-req-meta span{align-items:center;gap:5px;display:inline-flex}.group-req-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:14px;display:flex}@media (width<=600px){.group-req-card{padding:14px}.group-req-actions .btn{flex:1;justify-content:center}}
