/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.collapse{visibility:collapse}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.block{display:block}.contents{display:contents}.table{display:table}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}}@font-face{font-family:Be Vietnam Pro;src:url(/assets/BeVietnamPro_400Regular-D77_wdhb.ttf)format("truetype");font-weight:400;font-display:swap}@font-face{font-family:Be Vietnam Pro;src:url(/assets/BeVietnamPro_600SemiBold-mz5lGTJK.ttf)format("truetype");font-weight:600;font-display:swap}@font-face{font-family:Be Vietnam Pro;src:url(/assets/BeVietnamPro_700Bold-JtaKirW9.ttf)format("truetype");font-weight:700;font-display:swap}@font-face{font-family:Noto Sans SC;src:url(/assets/noto-sans-sc-DKfViQ49.woff2)format("woff2");font-display:swap}:root{color:#1c2030;--bg:#f7f3ee;--card:#fff;--ink:#1c2030;--muted:#858b9e;--line:#ececf0;--field:#fff;--soft:#f8f9fb;--side:#0f2e2a;background:#f7f3ee;font-family:Be Vietnam Pro,Noto Sans SC,sans-serif;font-size:13px;line-height:1.55}[data-theme=dark]{--bg:#131e1c;--card:#1a2926;--ink:#edf6f3;--muted:#a1b9b1;--line:#2b3f38;--field:#1d2f29;--soft:#22362e;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}body{color:var(--ink);background:var(--bg);margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}a{color:inherit;text-decoration:none}button:disabled{cursor:not-allowed;opacity:.45}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:3px;outline:3px solid #69cfc3}svg{flex-shrink:0}h1,h2,h3,p{margin:0}small{font-size:11px}.muted{color:var(--muted);font-size:11px}td b{font-weight:600}td small{color:var(--muted);margin-top:4px;font-size:9px;display:block}input:not([type=checkbox]),select,textarea{background:var(--field);color:var(--ink);border:1px solid var(--line);border-radius:7px;width:100%;min-height:36px;padding:9px 10px;font-size:11px}.app-shell{min-height:100vh;display:flex}.sidebar{z-index:30;background:var(--side);color:#b2cbc5;flex-direction:column;width:240px;padding:24px 16px 18px;display:flex;position:fixed;inset:0 auto 0 0}.brand{color:#fff;align-items:center;gap:11px;display:flex}.brand-mark{color:#fff;background:#12a594;border-radius:11px;flex-shrink:0;place-items:center;width:36px;height:36px;font-size:21px;font-weight:700;display:grid}.brand-copy{white-space:nowrap;flex-direction:column;display:flex}.brand b{font-size:14px}.brand small{color:#92aaa3;margin-top:2px;font-size:10px}.nav-group{letter-spacing:1.3px;color:#71938a;margin:30px 10px 10px;font-size:9px;font-weight:600}.nav-link{border-radius:9px;align-items:center;gap:10px;min-height:42px;margin:5px 0;padding:8px 10px;font-size:11px;font-weight:600;display:flex}.nav-link.active{color:#f2fffb;background:#195148;box-shadow:inset 3px 0 #35c1ab}.nav-link:hover{color:#fff;background:#19443d}.nav-link em{background:#1d5e51;border-radius:8px;margin-left:auto;padding:0 6px;font-size:10px;font-style:normal}.sidebar-bottom{margin-top:auto;padding-top:28px}.sidebar-tip{border-top:1px solid #285047;align-items:center;gap:10px;padding:20px 0;display:flex}.sidebar-tip p{color:#a1c2b7;font-size:10px}.app-main{flex:1;min-width:0;margin-left:240px}.topbar{background:var(--card);border-bottom:1px solid var(--line);align-items:center;gap:16px;height:56px;padding:0 28px;display:flex}.breadcrumb{color:var(--muted);font-size:11px}.breadcrumb span{color:#c1c7cc;margin:0 10px}.breadcrumb b{color:var(--ink)}.topbar-actions{align-items:center;gap:8px;margin-left:auto;display:flex}.profile{align-items:center;gap:8px;margin:0 6px;display:flex}.profile b{font-size:10px;display:block}.profile small{color:var(--muted);font-size:9px;display:block}.avatar{color:#fff;background:#12a594;border-radius:50%;place-items:center;width:32px;height:32px;font-size:11px;font-weight:600;display:grid}.content{flex-direction:column;gap:22px;max-width:1600px;margin:0 auto;padding:28px;display:flex}.page-heading{justify-content:space-between;align-items:flex-end;gap:20px;display:flex}.page-heading h1{letter-spacing:-.6px;font-size:24px;font-weight:700;line-height:1.35}.page-heading p{color:var(--muted);margin-top:7px;font-size:11px}.page-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.button{border:1px solid var(--line);min-height:36px;color:var(--ink);background:var(--card);white-space:nowrap;border-radius:8px;justify-content:center;align-items:center;gap:7px;padding:7px 12px;font-size:11px;font-weight:600;display:inline-flex}.button:hover{background:var(--soft)}.button-primary{color:#fff;background:#e5484d;border-color:#e5484d;box-shadow:0 2px 3px #bd31311a}.button-primary:hover{background:#d13c42}.sidebar .button-ghost{color:#a9c4bd}.button-ghost{background:0 0;border-color:#0000;padding:6px 7px}.button-danger{color:#c8363b;background:#fff0ef;border-color:#f5d6d6}.card{background:var(--card);border:1px solid var(--line);border-radius:14px;min-width:0;padding:20px}.card-heading{justify-content:space-between;align-items:center;gap:8px;margin-bottom:18px;display:flex}.card-heading h2{align-items:center;gap:7px;font-size:13px;font-weight:700;display:flex}.card-stack{flex-direction:column;gap:18px;min-width:0;display:flex}.stats-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;display:grid}.stat-card{flex-direction:column;gap:10px;padding:20px;display:flex}.stat-label{color:var(--muted);font-size:10px;font-weight:600}.stat-card strong{letter-spacing:-.8px;font-size:28px;font-weight:700;line-height:1.1}.stat-card .stat-text{font-size:21px}.stat-unit{color:var(--muted);font-size:16px}.stat-positive{color:#118776;font-size:10px;font-weight:600}.stat-negative{color:#d5474d;font-size:10px;font-weight:600}.grid-main-aside{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);align-items:start;gap:18px;display:grid}.grid-three{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;display:grid}.grid-mission{grid-template-columns:minmax(0,2fr) minmax(270px,1fr);align-items:start;gap:18px;display:grid}.grid-progress{grid-template-columns:minmax(0,2.5fr) minmax(270px,1fr);align-items:start;gap:18px;display:grid}.grid-report{grid-template-columns:minmax(300px,1fr) minmax(0,1.6fr);align-items:start;gap:18px;display:grid}.badge{background:var(--soft);color:var(--muted);white-space:nowrap;border-radius:5px;align-items:center;gap:5px;padding:3px 7px;font-size:9px;font-weight:600;line-height:1.5;display:inline-flex}.badge-ok{color:#0b7a6d;background:#e6f7f4}.badge-warn{color:#956500;background:#fff4de}.badge-error{color:#c8363b;background:#fff0ef}.badge-info{color:#3e63dd;background:#e8eeff}.notice{color:#4b64a0;background:#edf2ff;border:1px solid #dbe5ff;border-radius:8px;margin-top:14px;padding:11px 12px;font-size:10px;line-height:1.65}.notice-warn{color:#997027;background:#fff7e6;border-color:#f6e4b7}.notice-error{color:#c8363b;background:#fff0ef;border-color:#f3c3c4}.notice .button{margin-left:10px}.pai-tip{color:#67534a;background:#fff6f3;border:1px solid #ffe0d4;border-radius:10px;align-items:center;gap:11px;margin-top:16px;padding:12px;font-size:11px;display:flex}.pai-tip img{flex-shrink:0}.table-scroll{margin:0 -6px;overflow-x:auto}table{border-collapse:collapse;text-align:left;width:100%;font-size:10px}th{color:var(--muted);border-bottom:1px solid var(--line);white-space:nowrap;padding:10px 8px;font-size:9px;font-weight:600}td{border-bottom:1px solid var(--line);white-space:nowrap;padding:15px 8px}tr:last-child td{border-bottom:0}.selected-row{color:#213d34;background:#eef9f6}.table-sort{color:inherit;font-size:inherit;background:0 0;border:0;align-items:center;gap:5px;padding:0;display:flex}.student-name{text-align:left;background:0 0;border:0;padding:0;font-weight:600}.icon-link{color:#899995}.activity-chart{align-items:end;gap:14px;height:166px;padding:16px 0 20px;display:flex;position:relative}.chart-grid{background:repeating-linear-gradient(to top, transparent 0, transparent 35px, var(--line) 36px, var(--line) 37px);position:absolute;inset:0 0 20px}.chart-column{z-index:1;flex-direction:column;flex:1;justify-content:end;align-items:center;gap:5px;height:100%;display:flex;position:relative}.chart-column span{background:#12a594;border-radius:5px 5px 3px 3px;width:80%;max-width:30px;min-height:3px}.chart-column small{color:var(--muted);font-size:9px;position:absolute;bottom:-21px}.chart-legend{align-items:center;gap:6px;margin-top:12px;font-size:10px;display:flex}.chart-legend .muted{margin-left:auto}.dot{border-radius:50%;flex-shrink:0;width:6px;height:6px;display:inline-block}.jade{background:#12a594}.amber{background:#f5a524}.coral{background:#e5484d}.attention-list{flex-direction:column;gap:15px;font-size:10px;display:flex}.attention-list a{align-items:center;gap:6px;display:flex}.attention-list svg{margin-left:auto}.inline-meta{color:var(--muted);align-items:center;gap:7px;margin-top:15px;font-size:10px;display:flex}.mini-empty{align-items:center;gap:10px;font-size:10px;display:flex}.mini-empty p{color:var(--muted);margin:5px 0 8px}.demo-state-control{color:var(--muted);align-items:center;gap:7px;margin-top:-8px;font-size:9px;display:flex}.demo-state-control select{width:130px;min-height:28px;padding:4px 8px;font-size:9px}input[type=checkbox]{accent-color:#12a594;width:14px;height:14px}textarea{resize:vertical;min-height:80px}.field{flex-direction:column;gap:6px;min-width:0;display:flex}.field label{font-size:10px;font-weight:600}.field-error{color:#c8363b;margin-top:6px;font-size:11px}.form-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px 16px;display:grid}.form-full{grid-column:1/-1}.form-stack{flex-direction:column;gap:18px;display:flex}.section-title{margin:0 0 14px;font-size:11px;font-weight:700}.privacy-list{flex-direction:column;gap:20px;padding:6px 0;display:flex}.switch-label{cursor:pointer;align-items:center;gap:12px;font-size:11px;display:flex;position:relative}.switch-label>span:first-child{flex:1}.switch-label input{opacity:0;cursor:pointer;z-index:2;width:34px;height:22px;position:absolute;right:0}.switch-track{background:#d6dadf;border-radius:20px;flex-shrink:0;width:30px;height:17px;position:relative}.switch-track:after{content:"";background:#fff;border-radius:50%;width:11px;height:11px;position:absolute;top:3px;left:3px}.switch-label input:checked+.switch-track{background:#12a594}.switch-label input:checked+.switch-track:after{left:16px}.switch-label input:disabled+.switch-track{opacity:.6}.switch-label input:focus-visible+.switch-track{outline-offset:3px;outline:3px solid #69cfc3}.class-switcher{align-items:center;gap:12px;font-size:10px;display:flex}.class-switcher select{max-width:260px}.class-switcher .button{margin-left:auto}.invite-code{text-align:center;color:#26313d;letter-spacing:5px;background:#f2fbf9;border:2px dashed #bde9e1;border-radius:12px;padding:17px 8px;font-size:30px;font-weight:700}.qr-row{align-items:center;gap:20px;margin:20px 0;display:flex}.qr-row>svg{background:#fff;border:1px solid #ececf0;border-radius:10px;padding:7px}.qr-row p{color:var(--muted);margin:8px 0;font-size:10px}.qr-row small{font-size:9px}.button-row{flex-wrap:wrap;align-items:center;gap:7px;display:flex}.pending-row{align-items:center;gap:12px;padding:8px 0;display:flex}.pending-row>div{flex:1}.pending-row b{font-size:11px}.pending-row small{color:var(--muted);margin-top:4px;font-size:9px;display:block}.small-empty{color:var(--muted);padding:8px 0;font-size:11px}.tabs{border-bottom:1px solid var(--line);gap:16px;display:flex}.tabs button{color:var(--muted);background:0 0;border:0;border-bottom:2px solid #0000;padding:8px 0 12px;font-size:11px;font-weight:600}.tabs button.active{color:#db4a4e;border-color:#e5484d}.mission-basics{margin-top:20px}.theme-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.theme-card{background:var(--card);border:1px solid var(--line);border-radius:10px;flex-direction:column;align-items:center;gap:5px;padding:14px 5px;display:flex;position:relative}.theme-card>span{font-size:25px}.theme-card b{font-size:15px;font-weight:600}.theme-card small{color:var(--muted);font-size:9px}.theme-card.selected{color:#26313d;background:#fff7f4;border-color:#e5484d;box-shadow:0 0 0 1px #e5484d18}.theme-check{color:#e5484d;position:absolute;top:8px;right:8px}.word-grid{flex-wrap:wrap;gap:8px;display:flex}.word-chip{border:1px solid var(--line);background:var(--field);border-radius:8px;align-items:center;gap:5px;padding:7px 9px;font-size:12px;display:inline-flex}.word-chip b{font-family:Noto Sans SC,sans-serif;font-weight:600}.word-chip small{color:#c8363b;font-size:9px}.word-chip.selected{color:#22352f;background:#f2fbf8;border-color:#89d1c2}.invalid-word{border-color:#f3c3c4}.condition-summary{background:var(--soft);border-radius:8px;padding:14px;font-size:13px;font-weight:600}.condition-summary small{color:var(--muted);font-size:9px;font-weight:400}.checkbox-row{flex-wrap:wrap;gap:14px;margin-top:20px;display:flex}.checkbox-row label{align-items:center;gap:6px;font-size:10px;display:flex}.saved-missions>div{justify-content:space-between;align-items:center;padding:6px 0;display:flex}.saved-missions small{color:var(--muted);margin-top:4px;display:block}.phone-preview{color:#243239;background:#161b20;border-radius:35px;max-width:260px;min-height:485px;margin:8px auto 24px;padding:9px;position:relative;box-shadow:0 16px 30px -24px #17272170}.phone-notch{background:#161b20;border-radius:0 0 12px 12px;width:30%;height:13px;position:absolute;top:12px;left:35%}.phone-status{background:#f5f7f5;border-radius:27px 27px 0 0;justify-content:space-between;padding:10px 14px 7px;font-size:8px;display:flex}.phone-screen{text-align:center;background:#f5f7f5;border-radius:0 0 27px 27px;padding:20px 14px 22px}.phone-screen>small{color:#788581;font-size:8px}.phone-screen h3{margin:7px 0;font-size:14px;font-weight:700}.phone-screen p{color:#7e8984;font-size:9px}.phone-message{text-align:left;background:#fff;border:1px solid #e4e9e5;border-radius:10px;margin-top:16px;padding:10px;font-size:9px}.phone-screen>img{margin:14px auto 10px}.phone-targets{grid-template-columns:repeat(3,1fr);gap:5px;display:grid}.phone-targets>span{background:#fff;border:1px solid #e4e9e5;border-radius:9px;padding:10px 4px}.phone-progress{background:#e0e5e1;border-radius:10px;height:5px;margin:13px 0 4px}.phone-progress span{background:#12a594;border-radius:10px;width:8%;height:100%;display:block}.phone-button{color:#fff;background:#12a594;border-radius:10px;margin-top:12px;padding:10px;font-size:10px;font-weight:600}.phone-privacy{color:#6d8580;margin-top:14px;font-size:8px;line-height:1.6}.table-toolbar{gap:10px;display:flex}.table-toolbar>select{width:auto;max-width:230px}.search-input{background:var(--field);border:1px solid var(--line);border-radius:8px;flex:1;align-items:center;gap:8px;max-width:370px;padding:0 10px;display:flex}.search-input svg{color:var(--muted)}.search-input input{background:0 0;border:0;padding-left:0}.heatmap{gap:3px;display:inline-flex}.heat{border-radius:2px;width:9px;height:11px;display:inline-block}.heat-0{background:#e9edee}.heat-1{background:#bde9e1}.heat-2{background:#5fcdbb}.heat-3{background:#12a594}.heat-legend{color:var(--muted);align-items:center;gap:6px;font-size:9px;display:flex}.table-footer{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding-top:18px;display:flex}.pagination{align-items:center;gap:6px;display:flex}.pagination select{width:85px;min-height:30px;padding:5px;font-size:9px}.pagination .button{min-height:30px;padding:5px}.pagination small{color:var(--muted);font-size:9px}.details-list{grid-template-columns:85px minmax(0,1fr);gap:14px 9px;font-size:10px;display:grid}.details-list dt{color:var(--muted)}.details-list dd{overflow-wrap:anywhere;margin:0}.hanzi{font-family:Noto Sans SC,sans-serif;font-size:15px}.student-detail .button-row{margin-top:15px}.detail-intro{margin-top:16px;font-size:11px}.report-metrics{flex-direction:column;gap:12px;display:flex}.report-metrics span{align-items:center;gap:8px;font-size:10px;display:flex}.report-metrics svg{color:#12a594}.report-help{margin-top:13px;font-size:9px;display:block}.csv-preview{color:#dae4ee;background:#19202d;border-radius:10px;margin:0;padding:15px;font-size:10px;line-height:1.9;overflow:auto}.seat-bar{background:#e8f4ef;border-radius:10px;width:100%;height:5px}.seat-bar>span{background:#12a594;border-radius:10px;height:100%;display:block}.permission-table th,.permission-table td{text-align:center;white-space:normal;min-width:80px}.permission-table th:first-child,.permission-table td:first-child{text-align:left;min-width:130px}.permission-yes{color:#12a594;font-weight:700}.permission-no{color:#bfc8c9}.permission-partial{color:#b27d2a;font-size:9px}.matrix-note{color:var(--muted);margin-top:15px;font-size:9px;display:block}.pricing-list{margin:0;padding-left:16px;font-size:11px}.pricing-list li{padding:0 0 17px 3px}.pricing-list p{color:var(--muted);margin-top:5px}.dpa-icon{color:#12a594;background:#e6f7f4;border-radius:14px;place-items:center;width:55px;height:55px;margin-bottom:17px;display:grid}.dialog{border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:16px;width:min(500px,100vw - 32px);max-height:calc(100vh - 40px);margin:auto;padding:24px;overflow:auto}.dialog::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#11231d66}.dialog-heading{justify-content:space-between;align-items:center;gap:15px;margin-bottom:20px;display:flex}.dialog-heading h2{font-size:17px;font-weight:700}.dialog p{color:var(--muted);margin-bottom:18px;font-size:12px;line-height:1.8}.dialog .field{margin-top:15px}.dialog-actions{justify-content:end;gap:8px;margin-top:24px;display:flex}.empty-state{text-align:center;flex-direction:column;align-items:center;gap:12px;padding:30px 10px;display:flex}.empty-state h3{font-size:14px;font-weight:600}.empty-state p{color:var(--muted);font-size:11px}.skeleton{background:var(--soft);border-radius:5px;width:70%;height:11px}.skeleton.large{width:55%;height:29px;margin-top:15px}.skeleton-card{min-height:131px}.page-footer{color:var(--muted);justify-content:space-between;gap:20px;padding:12px 28px 22px;font-size:9px;display:flex}.mobile-menu,.mobile-close,.menu-backdrop{display:none}.collapsed .sidebar{width:64px;padding:24px 10px}.collapsed .app-main{margin-left:64px}.collapsed .brand-copy,.collapsed .nav-group,.collapsed .nav-link span,.collapsed .nav-link em,.collapsed .sidebar-tip,.collapsed .collapse-toggle span{display:none}.collapsed .nav-link{justify-content:center;padding:11px 0}.collapsed .brand{margin-bottom:28px}.collapsed .brand-mark{width:36px}.collapsed .collapse-toggle svg{transform:rotate(180deg)}.login-page{background:var(--card);grid-template-columns:1.1fr 1fr;min-height:100vh;display:grid}.login-intro{color:#fff;background:#103d37;padding:55px 12%;position:relative;overflow:hidden}.login-intro .brand{margin-bottom:60px}.eyebrow{color:#80cbb9;letter-spacing:2px;margin-bottom:20px;font-size:10px;display:block}.login-intro h1{letter-spacing:-1px;font-size:clamp(30px,4vw,52px);font-weight:700;line-height:1.25}.login-intro>p{color:#a8c6bf;max-width:370px;margin-top:22px;font-size:13px;line-height:1.9}.login-illustration{background:radial-gradient(#1d615366,#0000 70%);place-items:center;height:280px;margin:25px 0;display:grid;position:relative}.login-illustration>img{width:170px}.floating-word{background:#ffffff0f;border:1px solid #fff2;border-radius:14px;padding:10px 16px;font-size:24px;position:absolute}.floating-word small{color:#a0cabe;text-align:center;font-size:10px;display:block}.word-one{top:35px;left:4%;transform:rotate(-9deg)}.word-two{top:15px;right:3%;transform:rotate(8deg)}.word-three{bottom:10px;right:8%;transform:rotate(-6deg)}.login-footer{color:#8eb6aa;align-items:center;gap:9px;font-size:11px;display:flex}.login-form{flex-direction:column;justify-content:center;align-items:start;width:100%;max-width:470px;margin:auto;padding:40px;display:flex}.login-icon{color:#12a594;background:#e6f7f4;border-radius:14px;place-items:center;width:50px;height:50px;margin-bottom:27px;display:grid}.login-form h2{margin-bottom:14px;font-size:25px;font-weight:700}.login-form>p{color:var(--muted);font-size:12px;line-height:1.8}.demo-profile{background:var(--soft);border:1px solid var(--line);border-radius:11px;align-items:center;gap:12px;width:100%;margin:30px 0 20px;padding:17px;display:flex}.demo-profile small{color:var(--muted);margin-top:5px;font-size:10px;display:block}.login-form>.button{justify-content:space-between;width:100%;min-height:43px;padding:10px 15px}.login-note{color:var(--muted);align-items:start;gap:10px;margin-top:25px;font-size:10px;line-height:1.8;display:flex}.login-note svg{color:#12a594;margin-top:2px}.route-message{max-width:500px;margin:100px auto;padding:24px}.route-message h1{font-size:24px}.route-message p{color:var(--muted);margin:20px 0}@media (width<=1250px){.grid-progress{grid-template-columns:minmax(0,1fr)}.grid-three{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.grid-three>:last-child{grid-column:1/-1}.grid-main-aside{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr)}.topbar{padding:0 20px}.stats-grid{gap:12px}.stat-card strong{font-size:25px}}@media (width<=1050px){.grid-main-aside,.grid-mission,.grid-report{grid-template-columns:minmax(0,1fr)}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.preview-card .phone-preview{max-width:260px}.profile>div{display:none}.table-toolbar{flex-wrap:wrap}.table-toolbar .search-input{flex-basis:100%;max-width:none}.table-toolbar select{flex:1;max-width:none}.content{padding:24px}.page-heading{align-items:start}}@media (width<=760px){.sidebar,.collapsed .sidebar{width:240px;padding:24px 16px;transition:transform .15s;transform:translate(-100%)}.app-main,.collapsed .app-main{margin-left:0}.menu-open .sidebar{transform:translate(0)}.collapsed .brand-copy,.collapsed .nav-group,.collapsed .nav-link span,.collapsed .nav-link em,.collapsed .sidebar-tip{display:flex}.collapsed .nav-link{justify-content:start;padding:8px 10px}.collapsed .brand{margin-bottom:0}.mobile-menu{display:inline-flex}.mobile-close{display:inline-flex;position:absolute;top:19px;right:10px}.menu-backdrop{z-index:25;background:#0d282c88;border:0;display:block;position:fixed;inset:0}.collapse-toggle{display:none}.topbar{gap:7px;height:60px;padding:0 12px}.breadcrumb{display:none}.topbar-actions{gap:3px}.profile{margin:0 2px}.content{gap:18px;padding:22px 16px}.page-heading{flex-direction:column;gap:15px}.page-heading h1{font-size:23px}.page-actions{width:100%}.page-heading p{font-size:10px}.card{padding:16px}.stats-grid{gap:10px}.stat-card{padding:16px 13px}.stat-card strong,.stat-card .stat-text{font-size:23px}.stat-label,.stat-positive,.stat-negative{font-size:9px}.grid-three{grid-template-columns:minmax(0,1fr)}.grid-three>:last-child{grid-column:auto}.form-grid{gap:15px 10px}.class-switcher{flex-wrap:wrap}.class-switcher label{width:100%}.class-switcher select{flex:1;max-width:none}.qr-row{gap:15px}.qr-row>svg{width:110px;height:110px}.invite-code{letter-spacing:4px;font-size:30px}.theme-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.tabs{gap:12px}.tabs button{font-size:10px}.table-toolbar select{width:100%;font-size:10px}.table-footer{flex-direction:column;align-items:start}.pagination{flex-wrap:wrap}.table-scroll{max-width:100%}.table-scroll table{font-size:10px}.page-footer{gap:8px;padding:10px 16px 20px;font-size:8px}.login-page{grid-template-columns:1fr}.login-intro{padding:28px}.login-intro .brand{margin-bottom:30px}.login-intro h1{font-size:35px}.login-intro>p{font-size:11px}.login-illustration{display:none}.login-footer{margin-top:20px}.login-form{padding:35px 28px}.card-heading{flex-wrap:wrap}.permission-table td:first-child{min-width:125px}.dialog{padding:20px}.dialog-actions{flex-wrap:wrap}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto;transition:none;animation:none}}@media print{.sidebar,.topbar,.page-footer,.page-actions,.button,.class-switcher{display:none}.app-main,.collapsed .app-main{margin-left:0}.content{padding:10px}.card{break-inside:avoid}.qr-row svg{width:140px;height:140px}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}
