@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/fef07dbb0973bf53-s.3p2_lha1f2xer.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/8a480f0b521d4e75-s.1qq4vpdcun5oj.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/53b9e256198e5412-s.390ncx5urfkfu.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7178b3e590c64307-s.21jp631_3pja2.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/caa3a2e1cccd8315-s.p.0wgildi0cnwt9.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Fallback;src:local(Arial);ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.0%;size-adjust:104.76%}.geist_da832ead-module__aN_Ytq__className{font-family:Geist,Geist Fallback;font-style:normal}.geist_da832ead-module__aN_Ytq__variable{--font-sans:"Geist", "Geist Fallback"}
:root{--bg:#f6f7fb;--surface:#fff;--surface-2:#f2f3f8;--border:#e4e6ef;--text:#171923;--text-muted:#6b7080;--primary:#0f2e5c;--primary-hover:#163f7a;--primary-soft:#e7edf6;--success:#287a1d;--success-soft:#e7f2e2;--warning:#d97706;--warning-soft:#fef3e3;--danger:#dc2626;--danger-soft:#fdecec;--info:#0891b2;--info-soft:#e5f8fb;--radius-sm:8px;--radius:12px;--radius-lg:16px;--shadow-sm:0 1px 2px #1719230f;--shadow-md:0 8px 24px -8px #17192329;--sidebar-w:236px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-7:32px;--space-8:48px;--ease:cubic-bezier(.4, 0, .2, 1);--transition-fast:.12s;--transition-base:.18s;--role-super_admin:#7c3aed;--role-super_admin-soft:#f2ebfe;--role-school_admin:#4f46e5;--role-school_admin-soft:#eef0fd;--role-school_owner:#2563eb;--role-school_owner-soft:#e8eefd;--role-principal:#e11d48;--role-principal-soft:#fde7ec;--role-teacher:#d97706;--role-teacher-soft:#fef3e3;--role-accountant:#059669;--role-accountant-soft:#e3f7ef;--role-receptionist:#db2777;--role-receptionist-soft:#fce8f1;--role-librarian:#92400e;--role-librarian-soft:#f5ebe3;--role-driver:#475569;--role-driver-soft:#eef1f4;--role-guardian:#0d9488;--role-guardian-soft:#e4f7f4;--role-student:#0891b2;--role-student-soft:#e5f5f9;--auth-glow-a:#dbe5f4;--auth-glow-b:#e1f0d9;--auth-glow-c:#eef4e8;--auth-line:#d7dce8}@media (prefers-color-scheme:dark){:root{--bg:#0d0e14;--surface:#15161f;--surface-2:#1b1d29;--border:#2a2c3a;--text:#edeef5;--text-muted:#9298ab;--primary:#5b8fd9;--primary-hover:#75a3e3;--primary-soft:#17253d;--success:#5cb85c;--success-soft:#16301a;--warning:#f0a93f;--warning-soft:#3a2c11;--danger:#f0564f;--danger-soft:#3a1616;--info:#38bcdb;--info-soft:#0f2e35;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 12px 28px -10px #0000008c;--role-super_admin:#a78bfa;--role-super_admin-soft:#241c3a;--role-school_admin:#8b83f5;--role-school_admin-soft:#201d3a;--role-school_owner:#5b8ff9;--role-school_owner-soft:#16233d;--role-principal:#fb6f92;--role-principal-soft:#3a1420;--role-teacher:#f0a93f;--role-teacher-soft:#3a2c11;--role-accountant:#34d399;--role-accountant-soft:#0e2e22;--role-receptionist:#f472b6;--role-receptionist-soft:#3a1830;--role-librarian:#d99a6c;--role-librarian-soft:#3a2a17;--role-driver:#94a3b8;--role-driver-soft:#262d38;--role-guardian:#2dd4bf;--role-guardian-soft:#10302c;--role-student:#38bcdb;--role-student-soft:#0f2e35;--auth-glow-a:#2b3163;--auth-glow-b:#14313a;--auth-glow-c:#241f3d;--auth-line:#262b3d}}:root[data-theme=dark]{--bg:#0d0e14;--surface:#15161f;--surface-2:#1b1d29;--border:#2a2c3a;--text:#edeef5;--text-muted:#9298ab;--primary:#6d64f0;--primary-hover:#7f77f3;--primary-soft:#1f1d3a;--success:#34c266;--success-soft:#123322;--warning:#f0a93f;--warning-soft:#3a2c11;--danger:#f0564f;--danger-soft:#3a1616;--info:#38bcdb;--info-soft:#0f2e35;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 12px 28px -10px #0000008c;--role-super_admin:#a78bfa;--role-super_admin-soft:#241c3a;--role-school_admin:#8b83f5;--role-school_admin-soft:#201d3a;--role-school_owner:#5b8ff9;--role-school_owner-soft:#16233d;--role-principal:#fb6f92;--role-principal-soft:#3a1420;--role-teacher:#f0a93f;--role-teacher-soft:#3a2c11;--role-accountant:#34d399;--role-accountant-soft:#0e2e22;--role-receptionist:#f472b6;--role-receptionist-soft:#3a1830;--role-librarian:#d99a6c;--role-librarian-soft:#3a2a17;--role-guardian:#2dd4bf;--role-guardian-soft:#10302c;--role-student:#38bcdb;--role-student-soft:#0f2e35;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--auth-glow-a:#1c2c4a;--auth-glow-b:#13301c;--auth-glow-c:#1a2618;--auth-line:#262b3d}:root[data-theme=light]{--bg:#f6f7fb;--surface:#fff;--surface-2:#f2f3f8;--border:#e4e6ef;--text:#171923;--text-muted:#6b7080;--primary:#0f2e5c;--primary-hover:#163f7a;--primary-soft:#e7edf6;--success:#287a1d;--success-soft:#e7f2e2;--warning:#d97706;--warning-soft:#fef3e3;--danger:#dc2626;--danger-soft:#fdecec;--info:#0891b2;--info-soft:#e5f8fb;--shadow-sm:0 1px 2px #1719230f;--shadow-md:0 8px 24px -8px #17192329;--role-super_admin:#7c3aed;--role-super_admin-soft:#f2ebfe;--role-school_admin:#4f46e5;--role-school_admin-soft:#eef0fd;--role-school_owner:#2563eb;--role-school_owner-soft:#e8eefd;--role-principal:#e11d48;--role-principal-soft:#fde7ec;--role-teacher:#d97706;--role-teacher-soft:#fef3e3;--role-accountant:#059669;--role-accountant-soft:#e3f7ef;--role-receptionist:#db2777;--role-receptionist-soft:#fce8f1;--role-librarian:#92400e;--role-librarian-soft:#f5ebe3;--role-guardian:#0d9488;--role-guardian-soft:#e4f7f4;--role-student:#0891b2;--role-student-soft:#e5f5f9;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--auth-glow-a:#dbe5f4;--auth-glow-b:#e1f0d9;--auth-glow-c:#eef4e8;--auth-line:#d7dce8}html{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;height:100%}@media (prefers-color-scheme:dark){html{--lightningcss-light: ;--lightningcss-dark:initial}}html,body{max-width:100vw;overflow-x:hidden}body{min-height:100%;color:var(--text);background:var(--bg);font-family:var(--font-sans,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;flex-direction:column;font-size:14.5px;line-height:1.5;display:flex}*{box-sizing:border-box;margin:0;padding:0}a{color:inherit;text-decoration:none}.shell{width:100%;min-height:100vh;display:flex}.sidebar{width:var(--sidebar-w);background:var(--surface);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;height:100vh;padding:20px 14px;display:flex;position:sticky;top:0}.sidebar-brand{align-items:center;gap:10px;padding:6px 8px 22px;display:flex}.sidebar-brand .name{font-size:.95rem;font-weight:700;line-height:1.2}.sidebar-brand .role{color:var(--text-muted);font-size:.72rem}.sidebar-nav{flex-direction:column;flex:1;gap:2px;display:flex}.sidebar-nav a{border-radius:var(--radius-sm);color:var(--text-muted);align-items:center;gap:10px;padding:9px 12px;font-size:.88rem;font-weight:500;display:flex}.sidebar-nav a:hover{background:var(--surface-2);color:var(--text)}.sidebar-nav a.on{background:var(--role-accent-soft,var(--primary-soft));color:var(--role-accent,var(--primary));font-weight:600}.sidebar-nav a .dot{opacity:.55;background:currentColor;border-radius:50%;flex-shrink:0;width:6px;height:6px}.sidebar-group-btn{border-radius:var(--radius-sm);cursor:pointer;width:100%;font:inherit;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;background:0 0;border:none;align-items:center;gap:10px;padding:9px 12px;font-size:.78rem;font-weight:600;display:flex}.sidebar-group-btn:hover{background:var(--surface-2);color:var(--text)}.sidebar-group-btn .chev{transition:transform var(--transition-fast) var(--ease);flex-shrink:0;margin-left:auto}.sidebar-group-btn[aria-expanded=true] .chev{transform:rotate(90deg)}.sidebar-group-items{flex-direction:column;gap:2px;margin-bottom:4px;padding-left:10px;display:flex}.sidebar-foot{border-top:1px solid var(--border);margin-top:12px;padding-top:12px}.nav-toggle-checkbox{opacity:0;pointer-events:none;width:0;height:0;position:absolute}.sidebar-backdrop,.topbar-menu-btn{display:none}.topbar{border-bottom:1px solid var(--border);background:var(--surface);z-index:5;justify-content:space-between;align-items:center;gap:12px;padding:14px 20px;display:none;position:sticky;top:0}.main{flex-direction:column;flex:1;min-width:0;display:flex}.main-inner{width:100%;max-width:1080px;margin:0 auto;padding:32px 28px 60px}.tabs{border-bottom:1px solid var(--border);gap:2px;margin-bottom:24px;display:flex;overflow-x:auto}.tab{color:var(--text-muted);white-space:nowrap;border-bottom:2px solid #0000;flex-shrink:0;padding:10px 14px;font-size:.85rem;font-weight:500}.tab:hover{color:var(--text)}.tab.on{color:var(--role-accent,var(--primary));border-bottom-color:var(--role-accent,var(--primary));font-weight:600}.breadcrumb{margin-bottom:var(--space-3);flex-wrap:wrap;align-items:center;gap:4px;font-size:.82rem;display:flex}.breadcrumb-item{align-items:center;gap:4px;display:inline-flex}.breadcrumb-item a{color:var(--text-muted);font-weight:500}.breadcrumb-item a:hover{color:var(--primary)}.breadcrumb-item span[aria-current=page]{color:var(--text);font-weight:600}.breadcrumb-sep{color:var(--text-muted);opacity:.6}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:24px;display:flex}.page-head h1{margin:0;font-size:1.4rem}.page-head p{color:var(--text-muted);margin-top:2px;font-size:.88rem}@media (max-width:860px){.sidebar{z-index:50;width:84vw;max-width:300px;transition:transform var(--transition-base) var(--ease);position:fixed;inset:0 auto 0 0;transform:translate(-100%)}.nav-toggle-checkbox:checked~.sidebar{transform:translate(0)}.sidebar-backdrop{z-index:49;background:#0006;display:none;position:fixed;inset:0}.nav-toggle-checkbox:checked~.sidebar-backdrop{display:block}.topbar{display:flex}.topbar-menu-btn{border-radius:var(--radius-sm);width:34px;height:34px;color:var(--text-muted);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.topbar-menu-btn:hover{background:var(--surface-2);color:var(--text)}.main-inner{padding:22px 16px 48px}}.container{width:100%;max-width:1080px;margin:0 auto;padding:24px 20px}.stack-tight{gap:var(--space-1);flex-direction:column;display:flex}.stack-tight h1,.stack-tight h2,.stack-tight h3{margin:0}.nav{border-bottom:1px solid var(--border);background:var(--surface);justify-content:space-between;align-items:center;padding:14px 20px;display:flex}.nav-links{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.nav-links a.on{font-weight:700}.section{margin-bottom:32px}.section-head{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:12px;display:flex}.section-head h2{margin:0}.section-head .count{color:var(--text-muted);font-size:.85rem;font-weight:500}h1{letter-spacing:-.01em;font-size:1.45rem;font-weight:700}h2{margin:0 0 4px;font-size:1.05rem;font-weight:650}h3{font-size:.95rem;font-weight:650}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px;margin-bottom:28px;display:grid}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:16px 18px}.stat-card .label{color:var(--text-muted);align-items:center;gap:6px;font-size:.78rem;font-weight:550;display:flex}.stat-card .value{letter-spacing:-.02em;margin-top:6px;font-size:1.65rem;font-weight:700}.stat-card .sub{color:var(--text-muted);margin-top:2px;font-size:.78rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);margin-bottom:12px;padding:16px 18px}.card.form-card{max-width:460px}.card-row{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.card-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));align-items:stretch;gap:12px;display:grid}.card-grid-wide{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));align-items:stretch;gap:14px;display:grid}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.panel-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:14px 18px;display:flex}.panel-body{padding:4px 18px 18px}.field{flex-direction:column;gap:5px;min-width:0;margin-bottom:13px;display:flex}.field label{color:var(--text-muted);font-size:.8rem;font-weight:600}.field input,.field select,.field textarea{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);width:100%;min-width:0;color:var(--text);font:inherit;transition:border-color var(--transition-fast), background var(--transition-fast);padding:9px 11px}.field-row{grid-template-columns:1fr 1fr;gap:8px;display:grid}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--primary);background:var(--surface);outline:none}.field textarea{resize:vertical;min-height:84px}form.card{flex-direction:column;gap:0;display:flex}form.card .field{max-width:360px}.input,select.input,textarea.input{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);color:var(--text);font:inherit;transition:border-color var(--transition-fast), background var(--transition-fast);padding:9px 11px}.input:focus{border-color:var(--primary);background:var(--surface);outline:none}.input.small{padding:6px 8px;font-size:.85rem}textarea.input{resize:vertical;min-height:84px}.search-box{max-width:320px;position:relative}.search-box input{width:100%;padding-left:34px}.search-box-icon{color:var(--text-muted);opacity:.7;pointer-events:none;position:absolute;top:50%;left:11px;transform:translateY(-50%)}.table-toolbar{align-items:center;gap:var(--space-3);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.sort-controls{align-items:center;gap:var(--space-1);flex-wrap:wrap;display:flex}.sort-controls .btn.active{background:var(--primary-soft);color:var(--primary)}.pagination{justify-content:space-between;align-items:center;gap:var(--space-3);margin-top:var(--space-3);display:flex}.bulk-actions-bar{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-3);background:var(--primary-soft);border:1px solid color-mix(in srgb, var(--primary) 30%, transparent);border-radius:var(--radius-sm);color:var(--primary);font-size:.85rem;font-weight:600;display:flex}.skeleton{background:linear-gradient(90deg, var(--surface-2) 25%, var(--surface) 37%, var(--surface-2) 63%);border-radius:var(--radius-sm);background-size:400% 100%;animation:1.4s infinite skeleton-wave}@keyframes skeleton-wave{0%{background-position:100%}to{background-position:0}}.btn{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;font:inherit;transition:background var(--transition-fast), border-color var(--transition-fast), opacity var(--transition-fast);justify-content:center;align-items:center;gap:6px;padding:8px 16px;font-size:.86rem;font-weight:600;display:inline-flex}.btn:hover{background:var(--surface-2)}.btn:disabled{opacity:.6;cursor:default}.btn.primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn.primary:hover{background:var(--primary-hover);border-color:var(--primary-hover)}.btn.small{padding:5px 11px;font-size:.8rem}.btn.ghost{color:var(--text-muted);background:0 0;border-color:#0000}.btn.ghost:hover{background:var(--surface-2);color:var(--text)}.btn.outline{border-color:var(--primary);color:var(--primary);background:0 0}.btn.outline:hover{background:var(--primary-soft)}.btn.danger{background:var(--danger);border-color:var(--danger);color:#fff}.btn.danger:hover{background:color-mix(in srgb, var(--danger) 85%, black);border-color:color-mix(in srgb, var(--danger) 85%, black)}.btn.danger.ghost{color:var(--danger);background:0 0;border-color:#0000}.btn.danger.ghost:hover{background:var(--danger-soft)}.btn.icon{flex-shrink:0;width:36px;height:36px;padding:0}.btn.icon.small{width:30px;height:30px}.pill-choice{flex-wrap:wrap;gap:6px;display:flex}.pill-choice label{border:1px solid var(--border);cursor:pointer;color:var(--text-muted);background:var(--surface-2);text-transform:capitalize;transition:all var(--transition-fast);border-radius:999px;align-items:center;gap:5px;padding:6px 12px;font-size:.78rem;font-weight:600;display:inline-flex}.pill-choice input{accent-color:var(--primary);margin:0}.pill-choice label:has(input:checked){border-color:currentColor}.pill-choice label.present:has(input:checked){background:var(--success-soft);color:var(--success)}.pill-choice label.absent:has(input:checked){background:var(--danger-soft);color:var(--danger)}.pill-choice label.late:has(input:checked){background:var(--warning-soft);color:var(--warning)}.pill-choice label.excused:has(input:checked){background:var(--info-soft);color:var(--info)}.table-wrap{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);overflow-x:auto}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--border);padding:10px 14px;font-size:.88rem}th{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);background:var(--surface-2);font-size:.74rem;font-weight:650}tbody tr:last-child td{border-bottom:none}tbody tr:hover{background:var(--surface-2)}.pill{background:var(--surface-2);color:var(--text-muted);border-radius:999px;align-items:center;gap:4px;padding:3px 10px;font-size:.74rem;font-weight:600;display:inline-flex}.pill.present{background:var(--success-soft);color:var(--success)}.pill.absent{background:var(--danger-soft);color:var(--danger)}.pill.late{background:var(--warning-soft);color:var(--warning)}.pill.excused{background:var(--info-soft);color:var(--info)}.pill.role{background:var(--role-accent-soft,var(--primary-soft));color:var(--role-accent,var(--primary))}.avatar{background:var(--primary-soft);width:34px;height:34px;color:var(--primary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.82rem;font-weight:700;display:flex}.avatar-row{align-items:center;gap:var(--space-3);min-width:0;display:flex}.bar-list{flex-direction:column;gap:10px;display:flex}.bar-row{align-items:center;gap:10px;display:flex}.bar-row .bar-label{width:150px;color:var(--text);text-overflow:ellipsis;white-space:nowrap;flex-shrink:0;font-size:.82rem;overflow:hidden}.bar-track{background:var(--surface-2);border-radius:6px;flex:1;height:10px;overflow:hidden}.bar-fill{border-radius:6px;height:100%}.bar-row .bar-value{text-align:right;width:48px;color:var(--text-muted);flex-shrink:0;font-size:.82rem;font-weight:600}.trend-chart{align-items:flex-end;gap:3px;height:110px;padding-top:8px;display:flex}.trend-bar{background:var(--primary);border-radius:3px 3px 0 0;flex:1;min-height:3px}.trend-bar.empty{background:var(--surface-2)}.trend-axis{color:var(--text-muted);justify-content:space-between;margin-top:6px;font-size:.68rem;display:flex}.legend{flex-wrap:wrap;gap:14px;margin-top:10px;display:flex}.legend-item{color:var(--text-muted);align-items:center;gap:6px;font-size:.8rem;display:flex}.legend-swatch{border-radius:3px;flex-shrink:0;width:10px;height:10px}.empty-state{text-align:center;color:var(--text-muted);border:1px dashed var(--border);border-radius:var(--radius);background:var(--surface-2);padding:48px 20px}.empty-state .icon{color:var(--text-muted);justify-content:center;margin-bottom:8px;display:flex}.error{color:var(--danger);margin:8px 0;font-size:.85rem}.success-msg{color:var(--success);margin:8px 0;font-size:.85rem}.muted{color:var(--text-muted);font-size:.87rem}code{background:var(--surface-2);border:1px solid var(--border);border-radius:5px;padding:2px 6px;font-size:.85em}.auth-shell{z-index:1;background:0 0;justify-content:center;align-items:center;width:100%;min-height:100vh;padding:20px;display:flex;position:relative}.auth-card{background:color-mix(in srgb, var(--surface) 86%, transparent);-webkit-backdrop-filter:blur(20px)saturate(150%);border:1px solid color-mix(in srgb, var(--border) 70%, transparent);border-radius:var(--radius-lg);width:100%;max-width:380px;box-shadow:var(--shadow-md), 0 1px 0 0 #ffffff40 inset;padding:32px 28px}.auth-brand{align-items:center;gap:10px;margin-bottom:22px;display:flex}.auth-card.wide{max-width:640px;padding:36px 40px}.auth-footer{text-align:center;color:var(--text-muted);margin-top:18px;font-size:.85rem}.auth-footer a{color:var(--primary);font-weight:600}.auth-bg{z-index:0;pointer-events:none;background:var(--bg);position:fixed;inset:0;overflow:hidden}.auth-bg-wash{background:radial-gradient(1100px 760px at 12% -8%, var(--auth-glow-a), transparent 60%), radial-gradient(900px 680px at 104% 18%, var(--auth-glow-b), transparent 58%), radial-gradient(1000px 620px at 50% 118%, var(--auth-glow-c), transparent 62%);animation:22s ease-in-out infinite alternate auth-wash-drift;position:absolute;inset:0}@keyframes auth-wash-drift{0%{transform:translate(0,0)scale(1)}to{transform:translate(-1.5%,1%)scale(1.04)}}.auth-bg-grid{opacity:.5;background-image:linear-gradient(color-mix(in srgb, var(--auth-line) 55%, transparent) 1px, transparent 1px), linear-gradient(90deg, color-mix(in srgb, var(--auth-line) 55%, transparent) 1px, transparent 1px);background-size:64px 64px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(1100px 700px at 50% 0,#000 0%,#0000 72%);mask-image:radial-gradient(1100px 700px at 50% 0,#000 0%,#0000 72%)}.auth-bg-skyline{opacity:.55;justify-content:center;align-items:flex-end;gap:clamp(10px,2.2vw,30px);height:34vh;min-height:200px;max-height:320px;padding:0 4vw;display:flex;position:absolute;bottom:-2px;left:0;right:0}.auth-bg-building{background:repeating-linear-gradient(0deg, transparent 0 13px, color-mix(in srgb, var(--bg) 65%, transparent) 13px 15px), linear-gradient(180deg, color-mix(in srgb, var(--auth-line) 65%, transparent), color-mix(in srgb, var(--auth-line) 15%, transparent));border-radius:12px 12px 0 0;flex:none;width:clamp(46px,6vw,92px)}.auth-bg-orb{filter:blur(1px);background:radial-gradient(circle at 35% 30%, color-mix(in srgb, var(--primary) 55%, transparent), transparent 70%);border-radius:50%;animation:13s ease-in-out infinite auth-orb-float;position:absolute}@keyframes auth-orb-float{0%,to{transform:translateY(0)translate(0)}50%{transform:translateY(-16px)translate(6px)}}.auth-bg-card{border-radius:var(--radius);background:color-mix(in srgb, var(--surface) 72%, transparent);-webkit-backdrop-filter:blur(14px);border:1px solid color-mix(in srgb, var(--border) 65%, transparent);width:190px;box-shadow:var(--shadow-md);opacity:.8;padding:14px 16px;animation:10s ease-in-out infinite auth-card-float;position:absolute}.auth-bg-card .abc-label{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-size:.68rem;font-weight:700}.auth-bg-card .abc-value{font-family:var(--font-sans);letter-spacing:-.02em;margin-top:3px;font-size:1.35rem;font-weight:700}.auth-bg-card .abc-bars{align-items:flex-end;gap:4px;height:24px;margin-top:10px;display:flex}.auth-bg-card .abc-bars span{background:color-mix(in srgb, var(--primary) 55%, transparent);border-radius:2px;flex:1}.auth-bg-card .abc-rows{flex-direction:column;gap:6px;margin-top:2px;display:flex}.auth-bg-card .abc-row{color:var(--text-muted);align-items:center;gap:7px;font-size:.74rem;display:flex}.auth-bg-card .abc-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}@keyframes auth-card-float{0%,to{transform:translateY(0) rotate(var(--auth-card-r,0deg))}50%{transform:translateY(-12px) rotate(var(--auth-card-r,0deg))}}@media (max-width:1023px){.auth-bg-card:nth-of-type(n+2){display:none}}@media (max-width:639px){.auth-bg-card,.auth-bg-skyline{display:none}.auth-bg-grid{opacity:.3}}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:4px}.btn:focus-visible{outline-offset:3px}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}.password-field{position:relative}.password-field input{width:100%;padding-right:42px}.password-toggle{cursor:pointer;border-radius:var(--radius-sm);color:var(--text-muted);background:0 0;border:none;padding:7px 8px;font-size:.8rem;font-weight:600;position:absolute;top:50%;right:4px;transform:translateY(-50%)}.password-toggle:hover{background:var(--surface-2);color:var(--text)}.pw-strength{margin-top:8px}.pw-strength-track{gap:4px;height:4px;display:flex}.pw-strength-track span{background:var(--border);transition:background-color var(--transition-base);border-radius:2px;flex:1}.pw-strength[data-level="1"] .pw-strength-track span:first-child{background:var(--danger)}.pw-strength[data-level="2"] .pw-strength-track span:nth-child(-n+2){background:var(--warning)}.pw-strength[data-level="3"] .pw-strength-track span:nth-child(-n+3){background:var(--info)}.pw-strength[data-level="4"] .pw-strength-track span{background:var(--success)}.pw-strength-label{color:var(--text-muted);margin-top:5px;font-size:.74rem}.pw-rules{flex-direction:column;gap:3px;margin-top:8px;list-style:none;display:flex}.pw-rules li{color:var(--text-muted);align-items:center;gap:6px;font-size:.76rem;display:flex}.pw-rules li.met{color:var(--success)}.pw-rules li:before{content:"○";font-size:.65rem}.pw-rules li.met:before{content:"●"}.checkbox-field{align-items:center;gap:8px;margin:4px 0 16px;display:flex}.checkbox-field input[type=checkbox]{width:16px;height:16px;accent-color:var(--primary);cursor:pointer}.checkbox-field label{color:var(--text);cursor:pointer;font-size:.85rem;font-weight:500}.alert{border-radius:var(--radius-sm);border:1px solid #0000;align-items:flex-start;gap:10px;margin-bottom:16px;padding:12px 14px;font-size:.85rem;display:flex}.alert.error{background:var(--danger-soft);color:var(--danger);border-color:color-mix(in srgb, var(--danger) 30%, transparent)}.alert.info{background:var(--info-soft);color:var(--info);border-color:color-mix(in srgb, var(--info) 30%, transparent)}.alert.success{background:var(--success-soft);color:var(--success);border-color:color-mix(in srgb, var(--success) 30%, transparent)}.alert.warning{background:var(--warning-soft);color:var(--warning);border-color:color-mix(in srgb, var(--warning) 30%, transparent)}.spinner{opacity:.8;border:2px solid;border-top-color:#0000;border-radius:50%;width:14px;height:14px;animation:.7s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.wizard-shell{z-index:1;background:0 0;width:100%;min-height:100vh;position:relative}.wizard-header{border-bottom:1px solid color-mix(in srgb, var(--border) 70%, transparent);background:color-mix(in srgb, var(--surface) 78%, transparent);-webkit-backdrop-filter:blur(16px);justify-content:space-between;align-items:center;padding:18px 24px;display:flex}.wizard-body{max-width:720px;margin:0 auto;padding:36px 20px 60px}.stepper{align-items:center;margin-bottom:32px;padding-bottom:4px;display:flex;overflow-x:auto}.stepper-step{flex-shrink:0;align-items:center;display:flex}.stepper-dot{background:var(--surface-2);width:28px;height:28px;color:var(--text-muted);border:2px solid var(--border);transition:all var(--transition-base);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.74rem;font-weight:700;display:flex}.stepper-step.active .stepper-dot{background:var(--primary);border-color:var(--primary);color:#fff}.stepper-step.done .stepper-dot{background:var(--success);border-color:var(--success);color:#fff}.stepper-label{color:var(--text-muted);white-space:nowrap;margin-left:8px;font-size:.74rem;font-weight:600}.stepper-step.active .stepper-label{color:var(--text)}.stepper-line{background:var(--border);flex-shrink:0;width:28px;height:2px;margin:0 8px}.stepper-step.done+.stepper-line{background:var(--success)}@media (max-width:640px){.stepper-label{display:none}.stepper-line{width:16px;margin:0 4px}}.wizard-actions{border-top:1px solid var(--border);justify-content:space-between;gap:12px;margin-top:28px;padding-top:20px;display:flex}.switch-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:12px 0;display:flex}.switch-row:last-child{border-bottom:none}.switch-row .switch-label{font-size:.88rem;font-weight:600}.switch-row .switch-desc{color:var(--text-muted);margin-top:1px;font-size:.78rem}.switch{flex-shrink:0;width:40px;height:22px;position:relative}.switch input{opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute}.switch-track{background:var(--border);transition:background-color var(--transition-fast);pointer-events:none;border-radius:999px;position:absolute;inset:0}.switch-track:before{content:"";width:18px;height:18px;box-shadow:var(--shadow-sm);transition:transform var(--transition-fast);background:#fff;border-radius:50%;position:absolute;top:2px;left:2px}.switch input:checked+.switch-track{background:var(--primary)}.switch input:checked+.switch-track:before{transform:translate(18px)}.switch input:focus-visible+.switch-track{outline:2px solid var(--primary);outline-offset:2px}.plan-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;display:grid}.plan-card{border:2px solid var(--border);border-radius:var(--radius);cursor:pointer;background:var(--surface);transition:border-color var(--transition-fast), transform var(--transition-fast);padding:20px 18px;position:relative}.plan-card:hover{border-color:color-mix(in srgb, var(--primary) 40%, var(--border))}.plan-card.selected{border-color:var(--primary);background:var(--primary-soft)}.plan-card input{opacity:0;pointer-events:none;position:absolute}.plan-card .plan-name{font-size:.95rem;font-weight:700}.plan-card .plan-price{letter-spacing:-.02em;margin-top:6px;font-size:1.5rem;font-weight:700}.plan-card .plan-price span{color:var(--text-muted);font-size:.78rem;font-weight:500}.plan-card .plan-features{flex-direction:column;gap:6px;margin-top:12px;list-style:none;display:flex}.plan-card .plan-features li{color:var(--text-muted);gap:6px;font-size:.8rem;display:flex}.plan-card .plan-badge{background:var(--primary);color:#fff;text-transform:uppercase;letter-spacing:.03em;border-radius:999px;padding:3px 9px;font-size:.68rem;font-weight:700;position:absolute;top:-10px;right:14px}.progress-steps{flex-direction:column;gap:4px;display:flex}.progress-step{color:var(--text-muted);align-items:center;gap:12px;padding:12px 4px;font-size:.88rem;display:flex}.progress-step .progress-icon{background:var(--surface-2);border:2px solid var(--border);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;font-size:.7rem;display:flex}.progress-step.done{color:var(--text)}.progress-step.done .progress-icon{background:var(--success);border-color:var(--success);color:#fff}.progress-step.active{color:var(--text);font-weight:600}.progress-step.active .progress-icon{border-color:var(--primary);color:var(--primary)}.review-section{margin-bottom:22px}.review-section-head{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.review-section-head h3{font-size:.88rem}.review-grid{background:var(--surface-2);border-radius:var(--radius-sm);grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px 20px;padding:14px 16px;display:grid}.review-row .review-key{color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em;font-size:.72rem}.review-row .review-value{margin-top:2px;font-size:.87rem;font-weight:550}.dropzone{border:2px dashed var(--border);border-radius:var(--radius);text-align:center;cursor:pointer;background:var(--surface-2);transition:border-color var(--transition-fast);padding:20px}.dropzone:hover{border-color:var(--primary)}.dropzone input{display:none}.logo-preview{border-radius:var(--radius-sm);object-fit:cover;width:64px;height:64px;margin:0 auto 8px;display:block}.skip-link{z-index:100;background:var(--primary);color:#fff;border-radius:var(--radius-sm);transition:top var(--transition-fast);padding:10px 16px;font-size:.85rem;font-weight:600;position:absolute;top:-48px;left:12px}.skip-link:focus{top:12px}.theme-toggle-corner{z-index:10;position:fixed;top:16px;right:16px}@media (max-width:600px){.auth-card,.auth-card.wide{max-width:100%;padding:24px 18px}.wizard-body{padding:22px 14px 48px}.wizard-header{padding:14px 16px}.wizard-actions{flex-direction:column-reverse;gap:10px}.wizard-actions .btn{width:100%}.review-grid{grid-template-columns:1fr}}.auth-brand .mark{background:var(--primary);color:#fff;border-radius:9px;justify-content:center;align-items:center;width:34px;height:34px;font-weight:700;display:flex}.id-card-preview{flex-wrap:wrap;gap:24px;padding:20px 0;display:flex}.id-card{background:var(--surface);border:1px solid var(--border);width:85.6mm;height:54mm;box-shadow:var(--shadow-sm);color:var(--text);border-radius:3mm;flex-direction:column;font-size:8.5px;display:flex;position:relative;overflow:hidden}.id-card-header{background:var(--primary);color:#fff;flex-shrink:0;align-items:center;gap:2mm;padding:2mm 3mm;display:flex}.id-card-header img,.id-card-header .id-card-mark{object-fit:cover;background:#fff3;border-radius:1mm;flex-shrink:0;justify-content:center;align-items:center;width:5mm;height:5mm;font-size:7px;font-weight:700;display:flex}.id-card-header .id-card-school-name{font-size:8px;font-weight:700;line-height:1.2}.id-card-body{flex:1;gap:2.5mm;padding:2.5mm 3mm;display:flex}.id-card-photo{object-fit:cover;background:var(--surface-2);border-radius:1mm;flex-shrink:0;width:16mm;height:19mm}.id-card-fields{flex-direction:column;flex:1;justify-content:center;gap:1mm;min-width:0;display:flex}.id-card-name{font-size:9.5px;font-weight:700;line-height:1.2}.id-card-row{color:var(--text-muted);gap:3px;display:flex}.id-card-row b{color:var(--text);font-weight:600}.id-card-qr{position:absolute;bottom:2.5mm;right:3mm}.id-card-footer{text-align:center;color:var(--text-muted);padding:1mm 0 1.5mm;font-size:6px}@media print{body *{visibility:hidden}.id-card-print-area,.id-card-print-area *{visibility:visible}.id-card-print-area{padding:0;position:absolute;inset:0}.id-card{box-shadow:none;break-inside:avoid;border:1px solid #ccc}.id-card-header{-webkit-print-color-adjust:exact;print-color-adjust:exact}.report-card-print-area,.report-card-print-area *{visibility:visible}.report-card-print-area{padding:24px;position:absolute;inset:0}.report-card-print-area .panel{box-shadow:none;border:1px solid #ccc}}.ai-launcher{z-index:60;cursor:pointer;background:var(--primary);color:#fff;width:52px;height:52px;box-shadow:var(--shadow-md);border:none;border-radius:50%;justify-content:center;align-items:center;display:flex;position:fixed;bottom:22px;right:22px}.ai-launcher:hover{background:var(--primary-hover)}.ai-panel{z-index:60;flex-direction:column;width:min(400px,100vw - 32px);height:min(600px,100vh - 140px);display:flex;position:fixed;bottom:86px;right:22px}.ai-panel-head{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;padding:12px 14px;display:flex}.ai-panel-head strong{font-size:.92rem}.ai-messages{flex-direction:column;flex:1;gap:12px;padding:14px;display:flex;overflow-y:auto}.ai-msg{border-radius:var(--radius);max-width:88%;padding:8px 12px;font-size:.85rem;line-height:1.5}.ai-msg.user{background:var(--primary);color:#fff;align-self:flex-end}.ai-msg.assistant{background:var(--surface-2);color:var(--text);align-self:flex-start}.ai-msg.error{background:var(--danger-soft);color:var(--danger);align-self:flex-start}.ai-msg p{margin:0 0 6px}.ai-msg p:last-child{margin-bottom:0}.ai-msg ul,.ai-msg ol{margin:0 0 6px 18px;padding:0}.ai-msg table{border-collapse:collapse;width:100%;margin:4px 0;font-size:.78rem}.ai-msg th,.ai-msg td{border:1px solid var(--border);text-align:left;padding:3px 6px}.ai-msg code{background:#00000014;border-radius:4px;padding:1px 4px;font-size:.85em}.ai-tool-note{color:var(--text-muted);align-self:flex-start;font-size:.72rem;font-style:italic}.ai-confirm-card{border:1px solid var(--border);max-width:92%}.ai-confirm-preview{white-space:pre-wrap;font-size:.83rem;line-height:1.55}.ai-confirm-meta{color:var(--text-muted);margin-top:8px;font-size:.76rem;font-weight:600}.ai-confirm-actions{gap:8px;margin-top:10px;display:flex}.ai-confirm-actions .btn{align-items:center;gap:5px;display:inline-flex}.ai-result-card{border:1px solid var(--border);max-width:92%}.ai-result-card.cancelled{color:var(--text-muted)}.ai-result-head{color:var(--success);margin-bottom:8px;font-weight:650}.ai-result-grid{gap:18px;display:flex}.ai-result-grid>div{flex-direction:column;display:flex}.ai-result-num{font-variant-numeric:tabular-nums;font-size:1.15rem;font-weight:700}.ai-result-grid .muted{font-size:.7rem}.ai-suggestions{flex-wrap:wrap;flex-shrink:0;gap:6px;padding:0 14px 10px;display:flex}.ai-suggestions button{border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:999px;padding:5px 10px;font-size:.76rem}.ai-suggestions button:hover{background:var(--surface-2)}.ai-input-row{border-top:1px solid var(--border);flex-shrink:0;gap:8px;padding:12px 14px;display:flex}.ai-input-row textarea{resize:none;border:1px solid var(--border);border-radius:var(--radius-sm);font:inherit;background:var(--surface);color:var(--text);flex:1;max-height:100px;padding:8px 10px;font-size:.85rem}.ai-typing{align-items:center;gap:3px;display:inline-flex}.ai-typing span{background:var(--text-muted);border-radius:50%;width:5px;height:5px;animation:1s ease-in-out infinite ai-typing-bounce}.ai-typing span:nth-child(2){animation-delay:.15s}.ai-typing span:nth-child(3){animation-delay:.3s}@keyframes ai-typing-bounce{0%,80%,to{opacity:.3;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}@media (prefers-reduced-motion:reduce){.ai-typing span{animation:none}}.notif-backdrop{z-index:59;pointer-events:none;background:0 0;position:fixed;inset:0}.notif-panel{z-index:60;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);width:min(400px,100vw - 24px);max-height:78vh;box-shadow:var(--shadow-md);opacity:0;transform-origin:100% 0;flex-direction:column;transition:opacity .16s,transform .16s;display:flex;position:fixed;overflow:hidden;transform:scale(.96)translateY(-6px)}.notif-panel.notif-visible{opacity:1;transform:scale(1)translateY(0)}.notif-panel.notif-origin-top-left{transform-origin:0 0}.notif-panel.notif-origin-bottom-right{transform-origin:100% 100%}.notif-panel.notif-origin-bottom-left{transform-origin:0 100%}.notif-header{z-index:1;background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;gap:10px;padding:14px 16px 12px;display:flex;position:sticky;top:0}.notif-header h3{align-items:center;gap:8px;margin:0;font-size:.95rem;display:flex}.notif-unread-badge{background:var(--primary);color:#fff;border-radius:999px;padding:1px 7px;font-size:.68rem;font-weight:700;line-height:1.5}.notif-header-close{display:none}.notif-list{overscroll-behavior:contain;flex:1;overflow-y:auto}.notif-group-label{z-index:1;background:var(--surface);text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);padding:8px 16px 6px;font-size:.72rem;font-weight:700;position:sticky;top:0}.notif-card{border-bottom:1px solid var(--border);cursor:pointer;text-align:left;width:100%;font:inherit;color:inherit;background:0 0;border-top:none;border-left:none;border-right:none;align-items:flex-start;gap:10px;padding:10px 68px 10px 16px;display:flex;position:relative}.notif-card:hover,.notif-card:focus-visible{background:var(--surface-2)}.notif-card:hover .notif-card-actions,.notif-card:focus-within .notif-card-actions{opacity:1}.notif-card.notif-unread{background:var(--primary-soft)}.notif-card-icon{background:var(--surface);width:32px;height:32px;color:var(--primary);border:1px solid var(--border);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.notif-card-body{flex-direction:column;flex:1;min-width:0;display:flex}.notif-card-title{font-size:.85rem;font-weight:600;display:block}.notif-card-text{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:.8rem;display:block;overflow:hidden}.notif-card-time{color:var(--text-muted);margin-top:4px;font-size:.72rem;display:block}.notif-card-dot{background:var(--primary);border-radius:50%;flex-shrink:0;width:8px;height:8px;margin-top:6px}.notif-card-actions{opacity:0;background:var(--surface);border-radius:var(--radius-sm);gap:2px;transition:opacity .12s;display:flex;position:absolute;top:8px;right:8px}.notif-card-actions button{width:26px;height:26px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;display:flex}.notif-card-actions button:hover{background:var(--border);color:var(--text)}.notif-empty{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:48px 20px;display:flex}.notif-empty-emoji{margin-bottom:4px;font-size:2rem}.notif-empty p{color:var(--text-muted);margin:0;font-size:.85rem}.notif-empty strong{font-size:.92rem}.notif-load-more{text-align:center;padding:10px}@media (max-width:640px){.notif-panel{transform-origin:bottom;border-radius:20px 20px 0 0;width:100%;max-width:none;height:92dvh;max-height:none;transform:translateY(100%);inset:8dvh 0 0!important}.notif-panel.notif-visible{transform:translateY(0)}.notif-backdrop{pointer-events:auto;background:#00000059}.notif-header-close{display:flex}}@media (prefers-reduced-motion:reduce){.notif-panel{transition:none}}.msg-hub{gap:16px;height:70vh;min-height:420px;display:flex}.msg-list-pane{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);flex-direction:column;flex-shrink:0;width:320px;display:flex;overflow:hidden}.msg-list-head{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;padding:14px 16px;display:flex}.msg-list-head h2{margin:0;font-size:.95rem}.msg-thread-list{flex:1;overflow-y:auto}.msg-thread-item{border-bottom:1px solid var(--border);cursor:pointer;padding:12px 16px;position:relative}.msg-thread-item:hover,.msg-thread-item:focus-visible{background:var(--surface-2)}.msg-thread-active{background:var(--primary-soft)}.msg-thread-unread strong{font-weight:700}.msg-thread-row{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.msg-thread-row strong{font-size:.88rem}.msg-thread-row .muted{flex-shrink:0;font-size:.72rem}.msg-thread-subject{margin-top:2px;font-size:.8rem;font-weight:600}.msg-thread-snippet{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:.8rem;overflow:hidden}.msg-thread-dot{fill:var(--primary);color:var(--primary);position:absolute;top:16px;right:12px}.msg-detail-pane{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.msg-detail-head{border-bottom:1px solid var(--border);flex-shrink:0;align-items:baseline;gap:10px;padding:14px 18px;display:flex}.msg-detail-head h3{margin:0;font-size:.95rem}.msg-thread-view{flex-direction:column;flex:1;min-height:0;display:flex}.msg-bubble-list{flex-direction:column;flex:1;gap:10px;padding:16px 18px;display:flex;overflow-y:auto}.msg-bubble{background:var(--surface-2);border-radius:var(--radius);align-self:flex-start;max-width:72%;padding:8px 12px}.msg-bubble-mine{background:var(--primary-soft);align-self:flex-end}.msg-bubble-body{white-space:pre-line;font-size:.86rem;line-height:1.5}.msg-bubble-time{color:var(--text-muted);margin-top:4px;font-size:.7rem}.msg-reply-form{border-top:1px solid var(--border);flex-direction:column;flex-shrink:0;gap:8px;padding:12px 18px;display:flex}.msg-reply-form textarea{resize:vertical}.msg-reply-form button{align-self:flex-end}.msg-compose{flex-direction:column;flex:1;min-height:0;padding:0 18px 18px;display:flex;overflow-y:auto}.msg-compose .field{max-width:none}@media (max-width:800px){.msg-hub{flex-direction:column;height:auto;min-height:0}.msg-list-pane{width:100%;max-height:260px}.msg-detail-pane{min-height:420px}}
