:root{font-family:PingFang SC,Microsoft YaHei,Noto Sans CJK SC,system-ui,sans-serif;color:#17212b;background:#f3f5f7;font-synthesis:none;--canvas: #f3f5f7;--surface: #ffffff;--surface-soft: #f7f9fa;--ink: #17212b;--muted: #65717d;--line: #dce2e7;--line-soft: #e9edf0;--blue: #1e67b1;--blue-soft: #e8f1fa;--present: #16895c;--present-soft: #e4f5ed;--absent: #ce3e47;--absent-soft: #fdebed;--leave: #a66a07;--leave-soft: #fff3d8;--internship: #7251bd;--internship-soft: #f0ebfb;--unchecked: #6f7b86;--unchecked-soft: #eef1f3;--focus: #80b7ff}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:var(--canvas)}button,input{font:inherit}button{color:inherit}button:focus-visible,input:focus-visible{outline:3px solid color-mix(in srgb,var(--focus) 55%,transparent);outline-offset:2px}button{cursor:pointer}button:disabled{cursor:not-allowed}.mono,code{font-variant-numeric:tabular-nums;font-family:SFMono-Regular,Consolas,monospace}.eyebrow{margin:0 0 7px;color:var(--blue);font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.eyebrow.light{color:#80b7ff}.primary-button,.secondary-button{min-height:42px;border-radius:9px;padding:0 17px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid transparent;font-weight:650;transition:background .16s ease,border .16s ease,transform .1s ease}.primary-button{color:#fff;background:var(--blue);box-shadow:0 5px 14px #1e67b12e}.primary-button:hover{background:#175b9f}.primary-button:active,.secondary-button:active{transform:translateY(1px)}.primary-button:disabled{opacity:.65}.secondary-button{background:var(--surface);border-color:var(--line);color:#30404e}.secondary-button:hover{border-color:#b8c4cd;background:#f9fafb}.secondary-button:disabled{opacity:.55}.secondary-button.compact{min-height:36px;padding:0 12px;font-size:13px}.login-page{min-height:100vh;display:grid;grid-template-columns:minmax(520px,1.08fr) minmax(480px,.92fr);background:#0b1118}.login-context{color:#f4f7fa;position:relative;overflow:hidden;padding:clamp(54px,7vw,108px);display:flex;flex-direction:column;justify-content:center;border-right:1px solid #24313d}.login-context:after{content:"";position:absolute;inset:auto -120px -170px auto;width:440px;height:440px;border:1px solid #24313d;border-radius:50%;box-shadow:0 0 0 70px #26344252,0 0 0 140px #2634422e;pointer-events:none}.brand-mark{width:40px;height:40px;display:grid;place-items:center;background:var(--blue);color:#fff;border-radius:10px;font-weight:800}.brand-mark.large{width:50px;height:50px;margin-bottom:48px;font-size:21px;position:relative;z-index:1}.login-context h1{font-size:clamp(38px,4.4vw,64px);line-height:1.13;letter-spacing:-.045em;margin:0 0 24px;max-width:720px;position:relative;z-index:1}.login-lead{color:#aebac5;font-size:17px;line-height:1.75;max-width:610px;margin:0 0 48px;position:relative;z-index:1}.path-preview{display:flex;align-items:center;max-width:700px;position:relative;z-index:1}.path-preview i{height:1px;min-width:24px;flex:1;background:#364553}.path-node{min-height:39px;padding:0 13px;display:flex;align-items:center;border:1px solid #364553;border-radius:9px;color:#bdc8d1;background:#111a23;font-size:13px;white-space:nowrap}.path-node.active{border-color:#4f8fea;color:#fff}.path-node.status-present{color:#83e1b9;border-color:#286d53}.login-trust{margin-top:54px;display:flex;align-items:center;gap:13px;color:#84b9ef;position:relative;z-index:1}.login-trust span{display:flex;flex-direction:column;gap:3px}.login-trust b{color:#e9f2fb;font-size:14px}.login-trust small{color:#80909e}.login-panel{background:#f6f8f9;display:grid;place-items:center;padding:48px}.login-card{width:min(430px,100%)}.login-card-head{display:none}.login-title{margin-bottom:34px}.login-title h2{font-size:31px;margin:0 0 9px;letter-spacing:-.025em}.login-title>p:last-child{color:var(--muted);margin:0}.field{display:grid;gap:8px;margin:0 0 18px;color:#35424e;font-size:14px;font-weight:650}.field>div{height:50px;display:flex;align-items:center;gap:11px;border:1px solid #cfd7de;background:#fff;border-radius:10px;padding:0 15px;color:#7a8793;transition:border .16s ease,box-shadow .16s ease}.field>div:focus-within{border-color:var(--blue);box-shadow:0 0 0 3px #dceafb}.field input{border:0;outline:0;flex:1;min-width:0;color:var(--ink);background:transparent}.form-error{color:var(--absent);background:var(--absent-soft);border:1px solid #f5cbd0;padding:11px 13px;border-radius:9px;display:flex;align-items:center;gap:8px;font-size:14px;margin-bottom:16px}.login-button{width:100%;height:50px;margin-top:4px;justify-content:space-between;padding-inline:18px}.demo-account{margin-top:24px;padding:14px 15px;background:#edf1f4;border-radius:9px;display:grid;grid-template-columns:1fr auto;gap:6px 14px;font-size:12px}.demo-account span{grid-row:1 / 3;align-self:center;color:var(--muted)}.demo-account code{color:#3e4b57}.privacy-note{color:#87929d;font-size:12px;line-height:1.6;margin:22px 0 0;text-align:center}.app-shell{min-height:100vh;display:grid;grid-template-columns:224px minmax(0,1fr)}.sidebar{min-height:100vh;position:fixed;inset:0 auto 0 0;width:224px;padding:24px 16px 16px;background:#111a23;color:#dce5ed;display:flex;flex-direction:column;z-index:20}.brand{display:flex;align-items:center;gap:12px;padding:0 8px 28px;border-bottom:1px solid #263442}.brand>div{display:flex;flex-direction:column;gap:2px}.brand b{color:#fff;font-size:16px}.brand small{color:#8594a1;font-size:11px}.main-nav,.secondary-nav{display:grid;gap:5px;padding-top:22px}.main-nav button,.secondary-nav button{width:100%;min-height:44px;border:0;background:transparent;color:#9eabb8;border-radius:8px;padding:0 12px;display:flex;align-items:center;gap:11px;text-align:left;font-size:14px;transition:.16s ease}.main-nav button:hover{background:#17232e;color:#eef4f8}.main-nav button.active{background:#203247;color:#fff;box-shadow:inset 3px 0 #4f8fea}.main-nav button em,.secondary-nav button em{margin-left:auto;min-width:22px;height:20px;display:grid;place-items:center;padding:0 5px;font-style:normal;font-size:11px;color:#ffdfe2;background:#7c333b;border-radius:6px}.nav-section-label{color:#60717f;font-size:10px;letter-spacing:.1em;font-weight:700;margin:30px 12px 0}.secondary-nav{padding-top:10px}.secondary-nav button:disabled{opacity:.58}.secondary-nav button small{margin-left:auto;color:#60717f;font-size:9px}.sidebar-foot{margin-top:auto;border-top:1px solid #263442;padding:16px 4px 0;display:grid;grid-template-columns:36px 1fr 34px;align-items:center;gap:10px}.sidebar-foot>span{width:36px;height:36px;background:#26394a;border-radius:9px;display:grid;place-items:center;color:#cfe4f8;font-weight:700}.sidebar-foot div{display:flex;min-width:0;flex-direction:column;gap:2px}.sidebar-foot b{font-size:13px;color:#f0f4f7;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-foot small{color:#7f909e;font-size:10px}.sidebar-foot button{width:34px;height:34px;display:grid;place-items:center;color:#8594a1;border:0;background:transparent;border-radius:7px}.sidebar-foot button:hover{background:#263442;color:#fff}.workspace{grid-column:2;min-width:0}.topbar{height:68px;position:sticky;top:0;z-index:15;background:#fffffff5;border-bottom:1px solid var(--line);padding:0 30px;display:flex;align-items:center;gap:18px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.menu-button{display:none}.global-search{width:min(440px,42vw);height:40px;display:flex;align-items:center;gap:9px;padding:0 13px;background:#f1f4f6;color:#77838e;border-radius:8px}.global-search input{width:100%;min-width:0;border:0;outline:0;background:transparent;font-size:13px}.service-status{margin-left:auto;display:flex;align-items:center;gap:7px;color:var(--muted);font-size:12px}.service-status i,.live-label i{width:7px;height:7px;border-radius:50%;background:var(--present);box-shadow:0 0 0 3px #d9f2e7}.avatar-button{width:36px;height:36px;border:0;border-radius:9px;background:#203247;color:#fff;font-weight:700}.content{max-width:1480px;margin:0 auto;padding:34px 38px 70px}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:26px}.page-head h1{font-size:29px;letter-spacing:-.025em;margin:0 0 7px}.page-head>div>p:last-child{color:var(--muted);margin:0;font-size:14px}.error-banner{margin-bottom:22px;min-height:46px;border:1px solid #f1c5ca;background:#fff4f5;color:#9a333a;border-radius:10px;padding:0 14px;display:flex;align-items:center;gap:9px;font-size:14px}.error-banner span{flex:1}.error-banner button{border:0;background:transparent;font-weight:700;color:#9a333a}.loading-page{min-height:50vh;display:flex;align-items:center;justify-content:center;gap:11px;color:var(--muted)}.module-error{min-height:520px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:#9f3740;background:#fff;border:1px solid #efc6ca;border-radius:12px;text-align:center;padding:34px}.module-error h2{margin:6px 0 0;color:var(--ink);font-size:22px}.module-error p{max-width:480px;margin:0 0 10px;color:var(--muted);line-height:1.65}.owner-selector{min-height:76px;margin-bottom:20px;padding:13px 16px;display:flex;align-items:center;gap:13px;background:#eef6fd;border:1px solid #c9dceb;border-radius:11px;color:#245f94}.owner-selector>div{min-width:0;display:flex;align-items:center;gap:11px}.owner-selector>div>svg{flex:0 0 auto}.owner-selector span{display:flex;flex-direction:column;gap:3px}.owner-selector b{color:#234f73;font-size:13px}.owner-selector small{color:#667f92;font-size:10px}.owner-selector select{width:min(340px,44%);min-height:43px;margin-left:auto;border:1px solid #b8ccdc;border-radius:8px;background:#fff;color:var(--ink);padding:0 11px}.spin{animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.metric-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:13px;margin-bottom:18px}.metric-card{min-width:0;min-height:142px;background:var(--surface);border:1px solid var(--line);border-radius:11px;padding:16px;text-align:left;display:flex;flex-direction:column;transition:border .16s ease,transform .16s ease}.metric-card:hover{border-color:#b9c5cf;transform:translateY(-2px)}.metric-label{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:13px}.metric-label i{width:24px;height:24px;display:grid;place-items:center;border-radius:6px;font-style:normal;font-weight:800}.metric-card strong{font-size:34px;line-height:1;margin-top:auto;padding-top:17px;font-variant-numeric:tabular-nums}.metric-card small{color:#87929c;margin-top:8px}.metric-unchecked .metric-label i{background:var(--unchecked-soft);color:var(--unchecked)}.metric-present .metric-label i{background:var(--present-soft);color:var(--present)}.metric-absent .metric-label i{background:var(--absent-soft);color:var(--absent)}.metric-leave .metric-label i{background:var(--leave-soft);color:var(--leave)}.metric-internship .metric-label i{background:var(--internship-soft);color:var(--internship)}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(340px,.65fr);gap:18px}.task-panel,.building-panel,.table-panel,.room-card{background:var(--surface);border:1px solid var(--line);border-radius:12px}.task-panel,.building-panel{padding:23px}.panel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:18px}.panel-head h2{font-size:19px;margin:0;letter-spacing:-.01em}.live-label{height:28px;display:inline-flex;align-items:center;gap:8px;color:#38715a;background:var(--present-soft);border-radius:7px;padding:0 9px;font-size:12px;font-weight:650}.live-label i{box-shadow:none}.task-summary{min-height:188px;display:grid;grid-template-columns:160px 1fr;gap:26px;align-items:center}.progress-ring{width:142px;height:142px;position:relative;display:grid;place-items:center}.progress-ring svg{position:absolute;inset:0;width:100%;transform:rotate(-90deg)}.progress-ring circle{fill:none;stroke-width:8}.ring-track{stroke:#edf1f4}.ring-value{stroke:var(--blue);stroke-linecap:round;transition:stroke-dashoffset .35s ease}.progress-ring span{display:flex;flex-direction:column;align-items:center}.progress-ring b{font-size:28px;line-height:1.2;font-variant-numeric:tabular-nums}.progress-ring small{color:var(--muted);font-size:11px}.task-facts{display:grid;gap:14px}.task-facts>div{display:grid;grid-template-columns:34px 1fr;align-items:center;gap:10px}.task-facts>div>svg{color:#687987}.task-facts span{display:flex;flex-direction:column;gap:3px}.task-facts small{color:var(--muted)}.task-facts b{font-size:13px;font-weight:650}.panel-action{width:100%;height:42px;border:1px solid var(--line);background:var(--surface-soft);border-radius:8px;display:flex;align-items:center;justify-content:space-between;padding:0 14px;color:#315e89;font-weight:650}.panel-action:hover{border-color:#abc3da;background:#f1f6fb}.building-list{display:grid;gap:8px;margin-top:18px}.building-list button{min-height:68px;border:1px solid var(--line-soft);background:var(--surface-soft);border-radius:9px;padding:10px;display:flex;align-items:center;gap:10px;text-align:left}.building-list button:hover{border-color:#b8c8d6}.building-empty{min-height:120px;display:flex;align-items:center;justify-content:center;gap:12px;color:#82919d;background:var(--surface-soft);border:1px dashed #cbd6de;border-radius:9px;padding:18px}.building-empty span{display:flex;flex-direction:column;gap:4px}.building-empty b{color:#4b5a66;font-size:13px}.building-empty small{max-width:280px;line-height:1.5}.building-icon{width:38px;height:38px;border:1px solid #d7e0e7;background:#fff;border-radius:8px;display:grid;place-items:center;color:#536b7f}.building-name{flex:1;display:flex;flex-direction:column;gap:3px}.building-name b{font-size:14px}.building-name small{color:var(--muted);font-size:11px}.building-alert,.building-done{font-size:11px;font-weight:650}.building-alert{color:var(--absent)}.building-done{color:var(--present)}.table-panel{overflow:hidden}.table-tools{min-height:70px;padding:14px 18px;display:flex;align-items:center;gap:18px;border-bottom:1px solid var(--line)}.search-field{width:min(500px,58%);height:40px;border:1px solid #ced6dc;border-radius:8px;display:flex;align-items:center;gap:9px;padding:0 12px;color:#72808b}.search-field:focus-within{border-color:var(--blue);box-shadow:0 0 0 3px #e1ecf8}.search-field input{flex:1;min-width:0;border:0;outline:0}.table-count{margin-left:auto;color:var(--muted);font-size:13px}.table-count b{color:var(--ink)}.data-table-wrap{overflow:auto}.data-table{width:100%;min-width:960px;border-collapse:collapse;font-size:13px}.data-table th{height:46px;background:#f7f9fa;color:#6d7984;font-weight:650;text-align:left;padding:0 16px;border-bottom:1px solid var(--line);white-space:nowrap}.data-table td{height:68px;padding:0 16px;border-bottom:1px solid var(--line-soft);color:#3d4a56;white-space:nowrap}.data-table tbody tr:last-child td{border-bottom:0}.data-table tbody tr:hover{background:#fafcfd}.student-cell{display:flex;align-items:center;gap:10px}.student-cell span{width:32px;height:32px;border-radius:8px;display:grid;place-items:center;color:#2f628f;background:#e8f1fa;font-weight:700}.student-cell b{color:var(--ink)}.location-cell{display:flex;align-items:center;gap:7px}.location-cell svg{color:#748899}.care-label{display:inline-flex;align-items:center;gap:5px;color:#765814;background:#fff3d8;border-radius:6px;padding:5px 7px;font-size:11px;font-weight:650}.muted{color:#a1aab2}.icon-button{width:34px;height:34px;display:grid;place-items:center;border:0;background:transparent;color:#778590;border-radius:7px}.icon-button:hover{background:#edf2f6;color:var(--blue)}.empty-state{min-height:300px;display:flex;flex-direction:column;justify-content:center;align-items:center;color:#8a96a0;gap:8px}.empty-state b{color:#485560}.empty-state p{margin:0;font-size:13px}.sync-chip{min-height:46px;border:1px solid #cfe6da;background:var(--present-soft);color:var(--present);border-radius:9px;padding:0 12px;display:flex;align-items:center;gap:9px}.sync-chip span{display:flex;flex-direction:column}.sync-chip b{font-size:12px}.sync-chip small{font-size:10px;color:#56816e}.building-tabs{display:flex;align-items:stretch;gap:10px;margin-bottom:18px;overflow-x:auto;padding-bottom:2px}.building-tabs button{min-width:170px;min-height:60px;padding:9px 13px;border:1px solid var(--line);border-radius:9px;background:var(--surface);display:flex;align-items:center;gap:10px;text-align:left;color:#53616d}.building-tabs button.active{border-color:#78a9d6;background:#eef5fb;color:#174f85;box-shadow:inset 3px 0 var(--blue)}.building-tabs span{display:flex;flex-direction:column;gap:3px}.building-tabs b{font-size:13px}.building-tabs small{color:var(--muted);font-size:10px}.room-stack{display:grid;gap:16px}.room-card{padding:20px}.room-card>header{display:flex;align-items:center;justify-content:space-between;padding-bottom:16px;border-bottom:1px solid var(--line-soft)}.room-title{display:flex;align-items:center;gap:12px}.room-title>span{width:46px;height:46px;display:grid;place-items:center;background:#172838;color:#fff;border-radius:9px;font-size:12px;font-weight:750}.room-title p{margin:0 0 3px;color:var(--muted);font-size:11px}.room-title h2{margin:0;font-size:18px}.room-issue-tags,.student-issue-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px}.room-issue-tags em,.student-issue-tags em{display:inline-flex;align-items:center;min-height:23px;padding:0 7px;color:#865316;background:#fff5e5;border:1px solid #e7c58f;border-radius:6px;font-size:9px;font-style:normal;font-weight:750}.bed-grid{display:grid;grid-template-columns:repeat(3,minmax(240px,1fr));gap:12px;padding-top:16px}.bed-card{min-width:0;border:1px solid var(--line);border-top:3px solid var(--unchecked);border-radius:9px;padding:14px;background:#fff}.bed-card.status-present{border-top-color:var(--present)}.bed-card.status-absent{border-top-color:var(--absent)}.bed-card.status-leave{border-top-color:var(--leave)}.bed-card.status-internship{border-top-color:var(--internship)}.bed-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.bed-number{color:#65717d;font-size:12px;font-weight:700}.status-label{height:26px;display:inline-flex;align-items:center;gap:5px;border-radius:6px;padding:0 7px;font-size:10px;font-weight:700}.status-label i{font-style:normal}.status-label.status-unchecked{background:var(--unchecked-soft);color:var(--unchecked)}.status-label.status-present{background:var(--present-soft);color:var(--present)}.status-label.status-absent{background:var(--absent-soft);color:var(--absent)}.status-label.status-leave{background:var(--leave-soft);color:var(--leave)}.status-label.status-internship{background:var(--internship-soft);color:var(--internship)}.bed-student{display:flex;flex-direction:column;margin-top:14px;gap:4px;min-width:0}.bed-student b{font-size:16px}.bed-student small{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.checked-time{color:#89949e;font-size:11px;margin:11px 0 13px;font-variant-numeric:tabular-nums}.status-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:5px}.status-actions button{min-width:0;height:40px;padding:0 3px;border:1px solid var(--line);background:#fff;border-radius:7px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;color:#6d7984;font-size:9px}.status-actions button span{font-size:11px;font-weight:800}.status-actions button:hover{background:#f7f9fa;border-color:#bdc8d0}.status-actions button.selected.present{background:var(--present-soft);border-color:#95cfb5;color:var(--present)}.status-actions button.selected.absent{background:var(--absent-soft);border-color:#edabb0;color:var(--absent)}.status-actions button.selected.leave{background:var(--leave-soft);border-color:#ebca89;color:var(--leave)}.status-actions button.selected.internship{background:var(--internship-soft);border-color:#c8b5eb;color:var(--internship)}.status-actions button:disabled{opacity:.55}.teacher-scope-panel{margin-bottom:22px;padding:18px;border:1px solid #c9d7e3;border-radius:14px;background:linear-gradient(135deg,#f8fbfe,#f2f7fb);box-shadow:0 10px 28px #234a6d0f}.teacher-scope-heading{display:flex;align-items:flex-start;gap:12px}.teacher-scope-heading .scope-shield{flex:0 0 auto;width:40px;height:40px;display:grid;place-items:center;color:#1765a8;background:#e1effb;border:1px solid #c2ddf3;border-radius:10px}.teacher-scope-heading .eyebrow{margin:0 0 2px}.teacher-scope-heading h2{margin:0;color:#172b3c;font-size:18px;letter-spacing:-.01em}.teacher-scope-heading p:last-child{margin:5px 0 0;color:#627383;font-size:12px;line-height:1.6}.teacher-scope-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px;margin-top:15px}.teacher-scope-list>button{min-width:0;min-height:82px;display:grid;grid-template-columns:42px minmax(0,1fr);align-items:center;gap:11px;padding:12px;text-align:left;color:#203342;background:#fff;border:1px solid #d8e1e8;border-radius:11px;position:relative;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.teacher-scope-list>button:hover{border-color:#8db9dd;box-shadow:0 8px 20px #265e8b17;transform:translateY(-1px)}.teacher-scope-list>button.active{border-color:#2876b9;box-shadow:inset 3px 0 #2876b9,0 8px 22px #2669a11f;background:#fbfdff}.scope-avatar{width:42px;height:42px;display:grid;place-items:center;color:#fff;background:#254b68;border-radius:10px;font-size:17px;font-weight:800}.teacher-scope-list>button.active .scope-avatar{background:#2876b9}.teacher-scope-list>button>span:nth-child(2){min-width:0;display:flex;flex-direction:column;gap:3px}.teacher-scope-list b{padding-right:70px;font-size:14px}.teacher-scope-list small,.teacher-scope-list em{overflow:hidden;color:#6d7e8c;font-size:10px;font-style:normal;text-overflow:ellipsis;white-space:nowrap}.teacher-scope-list i{position:absolute;top:10px;right:10px;display:inline-flex;align-items:center;gap:3px;color:#1765a8;font-size:9px;font-style:normal;font-weight:750}.teacher-scope-empty{display:flex;align-items:center;gap:11px;margin-top:14px;padding:15px;color:#6a7884;background:#fff;border:1px dashed #cbd7e0;border-radius:10px}.teacher-scope-empty span{display:flex;flex-direction:column;gap:3px}.teacher-scope-empty b{color:#2e404f;font-size:13px}.teacher-scope-empty small{font-size:11px}.scope-required-page{min-height:330px;display:flex;flex-direction:column;align-items:center;justify-content:center;margin-top:8px;padding:44px;text-align:center;color:#69808f;background:#fff;border:1px solid var(--line);border-radius:14px}.scope-required-page>svg{color:#2876b9;margin-bottom:14px}.scope-required-page h1{margin:0;color:#1f3342;font-size:24px}.scope-required-page p{max-width:520px;margin:10px 0 20px;font-size:13px;line-height:1.7}@media(max-width:760px){.teacher-scope-panel{padding:14px}.teacher-scope-heading p:last-child{display:none}.teacher-scope-list{display:flex;overflow-x:auto;padding-bottom:3px;scroll-snap-type:x mandatory}.teacher-scope-list>button{flex:0 0 230px;scroll-snap-align:start}}.status-lock-note{min-height:40px;display:flex;align-items:center;padding:8px 10px;color:#8b651c;background:#fff8e8;border:1px solid #ead39f;border-radius:7px;font-size:10px;line-height:1.45}.issue-controls{margin-top:12px;padding-top:11px;border-top:1px solid var(--line-soft)}.issue-controls>span{display:block;margin-bottom:7px;color:var(--muted);font-size:9px}.issue-controls>div{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.issue-controls button{min-width:0;min-height:34px;padding:0 4px;color:#745d42;background:#fff;border:1px solid #d8c9b6;border-radius:7px;font-size:9px;font-weight:700}.issue-controls button.active{color:#87500e;background:#fff2dc;border-color:#d8a858}.issue-controls button:disabled{opacity:.45}.toast{position:fixed;right:28px;bottom:28px;z-index:50;min-height:46px;max-width:420px;display:flex;align-items:center;gap:9px;color:#e8f8f1;background:#173c2e;border:1px solid #286549;border-radius:9px;padding:0 15px;box-shadow:0 12px 34px #0f21193d;font-size:13px;animation:toast-in .18s ease both}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}}.holiday-metrics{display:grid;grid-template-columns:repeat(5,1fr);gap:13px;margin-bottom:15px}.holiday-metrics article{min-height:126px;padding:16px;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:11px}.holiday-metrics article>span{color:var(--muted);font-size:13px}.holiday-metrics article strong{font-size:31px;line-height:1;margin-top:auto;padding-top:17px;font-variant-numeric:tabular-nums}.holiday-metrics article small{margin-top:8px;color:#87929c;font-size:11px}.holiday-metrics .holiday-primary{border-top:3px solid var(--present)}.holiday-metrics .holiday-primary strong{color:var(--present)}.holiday-metrics .holiday-warning{border-top:3px solid var(--absent)}.holiday-metrics .holiday-warning strong{color:var(--absent)}.formula-note{min-height:64px;margin-bottom:16px;padding:11px 14px;display:flex;align-items:center;gap:12px;border:1px solid #cbdceb;background:#eff6fc;border-radius:10px}.formula-icon{width:34px;height:34px;flex:0 0 auto;display:grid;place-items:center;color:#245f95;background:#d9eafa;border-radius:8px;font-size:18px;font-weight:800}.formula-note div{min-width:0}.formula-note b{font-size:12px;color:#245f95}.formula-note p{margin:3px 0 0;color:#506778;font-size:12px;line-height:1.55}.holiday-tools{gap:14px;flex-wrap:wrap}.holiday-tools .search-field{min-width:340px;flex:1}.segmented-filter{display:flex;gap:4px;padding:3px;border:1px solid var(--line);background:#f2f5f7;border-radius:8px}.segmented-filter button{min-height:32px;border:0;border-radius:6px;background:transparent;color:#687580;padding:0 11px;font-size:11px}.segmented-filter button:hover{color:#2c3d4b}.segmented-filter button.active{color:#174f85;background:#fff;box-shadow:0 1px 4px #1931461f;font-weight:700}.holiday-table{min-width:1180px}.holiday-table .student-cell>div{display:flex;flex-direction:column;gap:3px}.holiday-table .student-cell small,.table-subline{color:var(--muted);font-size:10px}.table-subline{display:block;margin-top:4px}.holiday-status{min-height:26px;display:inline-flex;align-items:center;padding:0 8px;border-radius:6px;font-size:10px;font-weight:700}.departure-stay,.return-not_required{color:#557064;background:#edf3f0}.departure-departed,.return-not_returned{color:var(--absent);background:var(--absent-soft)}.departure-unregistered{color:var(--unchecked);background:var(--unchecked-soft)}.return-returned{color:var(--present);background:var(--present-soft)}.time-stack{display:flex;flex-direction:column;gap:4px;color:#73808b;font-size:10px;font-variant-numeric:tabular-nums}.row-actions{display:flex;align-items:center;gap:6px}.row-actions button{min-height:32px;border:1px solid var(--line);background:#fff;color:#55636f;border-radius:7px;padding:0 9px;display:inline-flex;align-items:center;justify-content:center;gap:5px;font-size:10px;font-weight:650}.row-actions button:hover{border-color:#9fb4c5;background:#f7fafc}.row-actions .return-action{color:#166b49;border-color:#a8d5bf;background:#eef8f3}.row-actions .undo-action{width:32px;padding:0;color:#7c8892}.row-actions button:disabled{opacity:.5}.empty-page{min-height:500px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#89959f}.empty-page h2{color:#40505d;margin:14px 0 6px}.empty-page p{margin:0}.upload-panel{min-height:470px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--surface);border:1px dashed #b9c7d2;border-radius:12px;text-align:center;padding:44px}.upload-icon{width:58px;height:58px;display:grid;place-items:center;color:var(--blue);background:var(--blue-soft);border-radius:13px;margin-bottom:18px}.upload-panel h2{margin:0 0 8px;font-size:21px}.upload-panel>p{margin:0 0 23px;color:var(--muted);font-size:13px}.upload-rules{margin-top:26px;display:flex;gap:22px;color:#64727d;font-size:11px}.upload-rules span{display:flex;align-items:center;gap:6px}.upload-rules svg{color:var(--present)}.import-result{overflow:hidden;background:var(--surface);border:1px solid var(--line);border-radius:12px}.import-result>header{min-height:90px;padding:19px 22px;display:flex;align-items:flex-start;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line)}.import-result>header h2{margin:0 0 5px;font-size:19px}.import-result>header p:last-child{margin:0;color:var(--muted);font-size:11px}.import-counts{padding:17px 22px;display:grid;grid-template-columns:repeat(5,1fr);gap:10px;background:#f8fafb;border-bottom:1px solid var(--line)}.import-counts article{min-height:86px;padding:13px;display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:9px}.import-counts span{color:var(--muted);font-size:11px}.import-counts strong{margin-top:auto;font-size:25px;line-height:1}.import-counts .has-error{border-color:#edabb0;background:#fff8f8}.import-counts .has-error strong{color:var(--absent)}.import-counts .duplicate-count{border-color:#d8c79d;background:#fffdf7}.import-counts .duplicate-count strong{color:#8a6423}.import-errors{margin:20px 22px 0;border:1px solid #efc9cc;border-radius:9px;overflow:hidden}.result-section-head{min-height:58px;padding:10px 13px;display:flex;align-items:center;justify-content:space-between;gap:15px;background:#fff6f7;border-bottom:1px solid #efc9cc}.result-section-head>div{display:flex;flex-direction:column;gap:3px}.result-section-head b{color:#8e3238;font-size:13px}.result-section-head small{color:#9a6b6e}.result-section-head button{min-height:32px;border:1px solid #e1b2b6;background:#fff;color:#9a333a;border-radius:7px;display:flex;align-items:center;gap:6px;padding:0 10px;font-size:10px;font-weight:650}.import-errors table{width:100%;border-collapse:collapse;font-size:12px}.import-errors th,.import-errors td{height:43px;padding:0 13px;text-align:left;border-bottom:1px solid #f3e0e2}.import-errors th{color:#8e676a;background:snow;font-size:10px}.import-errors tr:last-child td{border-bottom:0}.import-errors.import-warnings{border-color:#dfd0a9}.import-warnings .result-section-head,.import-warnings th{background:#fffdf7;color:#7b622e}.import-warnings th,.import-warnings td{border-bottom-color:#eee5cf}.import-ready{margin:22px;min-height:88px;padding:15px;display:flex;align-items:center;gap:13px;background:#eff8f4;border:1px solid #b7ddca;border-radius:9px}.import-ready>span{width:38px;height:38px;display:grid;place-items:center;color:var(--present);background:#d8efe4;border-radius:8px}.import-ready b{color:#1e684d;font-size:13px}.import-ready p{margin:4px 0 0;color:#527565;font-size:11px}.import-ready.exact-duplicate{background:#f2f7fb;border-color:#bad0e1}.import-ready.exact-duplicate>span{color:var(--blue);background:var(--blue-soft)}.import-ready.exact-duplicate b{color:#245f95}.import-ready.exact-duplicate p{color:#587287}.import-ready.partial-ready{background:#f4f9f6;border-color:#b9d8c9}.wrong-file-alert{margin:20px 22px 0;padding:15px 17px;color:#7a3439;background:#fff6f6;border:1px solid #e6b8bc;border-radius:9px}.wrong-file-alert b{font-size:13px}.wrong-file-alert p{margin:5px 0 0;font-size:11px;line-height:1.7}.ownership-groups{margin:20px 22px 0;border:1px solid #dfc994;border-radius:9px;overflow:hidden}.ownership-groups .result-section-head{color:#755b24;background:#fffaf0}.ownership-groups article{min-height:72px;padding:13px 15px;display:flex;align-items:center;gap:18px;border-top:1px solid #eee2c8}.ownership-groups article>div{flex:1;min-width:0}.ownership-groups article b{font-size:12px}.ownership-groups article p{margin:5px 0 0;color:var(--muted);font-size:11px;line-height:1.55}.ownership-groups article button{flex:0 0 auto;min-height:34px;padding:0 13px;color:#2c6495;background:#f2f7fb;border:1px solid #bed1e1;border-radius:7px;font-weight:700}.ownership-groups article button:disabled{opacity:.55}.import-result>footer{min-height:76px;padding:14px 22px;display:flex;align-items:center;justify-content:flex-end;gap:18px;border-top:1px solid var(--line);margin-top:20px}.import-result>footer p{margin:0 auto 0 0;color:var(--muted);font-size:11px}.secondary-nav button.active{color:#d8eaff;background:#203247;box-shadow:inset 3px 0 var(--blue)}.audit-table{min-width:1080px}.audit-table td{height:72px}.source-chip{display:inline-flex;align-items:center;min-height:25px;padding:0 8px;color:#4b6579;background:#edf2f6;border-radius:6px;font-size:10px;font-weight:700}.settings-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,.75fr);gap:16px}.settings-card{min-height:310px;padding:22px;background:var(--surface);border:1px solid var(--line);border-radius:12px}.settings-card-head{display:flex;align-items:flex-start;gap:12px;padding-bottom:19px;border-bottom:1px solid var(--line-soft)}.settings-card-head>span{width:40px;height:40px;display:grid;place-items:center;color:#255f94;background:var(--blue-soft);border-radius:9px}.settings-card-head h2{margin:0 0 5px;font-size:17px}.settings-card-head p{margin:0;color:var(--muted);font-size:11px;line-height:1.5}.settings-fields{display:grid;grid-template-columns:1.1fr 1fr 1fr;gap:13px;padding-top:22px}.settings-fields label{display:flex;flex-direction:column;gap:8px;color:#4f5d68;font-size:11px;font-weight:650}.settings-fields input,.settings-fields select{width:100%;height:45px;border:1px solid #cbd4db;background:#fff;color:var(--ink);border-radius:8px;padding:0 12px;font:inherit}.settings-fields input:focus,.settings-fields select:focus{outline:3px solid #e1ecf8;border-color:var(--blue)}.retention-control{display:flex;align-items:center;justify-content:center;gap:20px;padding:34px 0 24px}.retention-control button{width:42px;height:42px;border:1px solid var(--line);background:#fff;border-radius:9px;color:var(--blue);font-size:20px}.retention-control button:hover{background:var(--blue-soft);border-color:#afc7dc}.retention-control strong{min-width:104px;color:var(--ink);font-size:38px;text-align:center;font-variant-numeric:tabular-nums}.retention-control small{display:block;color:var(--muted);font-size:11px;font-weight:500}.setting-note{margin:0;padding:12px;color:#687681;background:#f6f8f9;border-radius:8px;font-size:11px;line-height:1.6}.account-grid{display:grid;gap:12px}.account-card{min-height:118px;display:grid;grid-template-columns:50px 1fr auto;align-items:center;gap:15px;padding:18px 20px;background:#fff;border:1px solid var(--line);border-radius:11px}.account-card.disabled-account{background:#f8f9fa}.account-avatar{width:48px;height:48px;display:grid;place-items:center;color:#fff;background:#23394b;border-radius:10px;font-size:18px;font-weight:750}.disabled-account .account-avatar{background:#89949e}.account-main{min-width:0}.account-main>div{display:flex;align-items:center;gap:8px}.account-main h2{margin:0;font-size:16px}.account-main>div span{color:#48667e;background:#edf3f7;border-radius:5px;padding:3px 6px;font-size:9px;font-weight:700}.account-main code{display:block;margin-top:6px;color:#5d6b76;font-size:11px}.account-main p{margin:7px 0 0;color:var(--muted);font-size:11px}.account-state{display:flex;align-items:center;gap:18px}.account-state>span{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:700}.account-state>span i{width:7px;height:7px;border-radius:50%;background:currentColor}.account-state .enabled{color:var(--present)}.account-state .disabled{color:var(--absent)}.account-state button{min-height:36px;padding:0 12px;border:1px solid var(--line);background:#fff;color:#586773;border-radius:8px;font-size:11px;font-weight:650}.account-state button:hover:not(:disabled){border-color:#dca7ab;color:var(--absent);background:#fff8f8}.account-state button:disabled{color:#9aa4ac;background:#f3f5f6}.report-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:16px}.report-card{min-height:290px;display:flex;flex-direction:column;align-items:flex-start;padding:24px;background:#fff;border:1px solid var(--line);border-radius:12px}.report-icon{width:48px;height:48px;display:grid;place-items:center;color:var(--blue);background:var(--blue-soft);border-radius:11px;margin-bottom:26px}.report-icon.holiday{color:var(--present);background:var(--present-soft)}.report-icon.roster{color:#745321;background:#f7efe0}.report-card h2{margin:0 0 8px;font-size:21px}.report-card>div>p:last-child{max-width:460px;margin:0;color:var(--muted);font-size:12px;line-height:1.7}.report-card>button{margin-top:auto}.report-note{margin-top:4px}@media(max-width:1180px){.metric-grid{grid-template-columns:repeat(3,1fr)}.metric-card{min-height:122px}.dashboard-grid{grid-template-columns:1fr}.bed-grid{grid-template-columns:repeat(2,minmax(240px,1fr))}.holiday-metrics{grid-template-columns:repeat(3,1fr)}.settings-layout{grid-template-columns:1fr}}@media(max-width:860px){.login-page{grid-template-columns:1fr;background:#f6f8f9}.login-context{display:none}.login-panel{min-height:100vh;padding:30px 22px}.login-card-head{display:flex;align-items:center;gap:11px;margin-bottom:58px}.login-card-head div{display:flex;flex-direction:column}.login-card-head small{color:var(--muted)}.mobile-brand-mark{width:40px;height:40px;display:grid;place-items:center;color:#fff;background:#172838;border-radius:9px;font-weight:800}.app-shell{grid-template-columns:76px minmax(0,1fr)}.sidebar{width:76px;padding-inline:10px}.brand{justify-content:center;padding-inline:0}.brand>div,.main-nav button span,.main-nav button em,.secondary-nav,.nav-section-label,.sidebar-foot div,.sidebar-foot button{display:none}.main-nav button{justify-content:center;padding:0}.sidebar-foot{display:flex;justify-content:center}.workspace{grid-column:2}.content{padding-inline:24px}.topbar{padding-inline:20px}.topbar .secondary-button,.service-status{display:none}.global-search{width:100%}.metric-grid{grid-template-columns:repeat(2,1fr)}.task-summary{grid-template-columns:1fr;justify-items:center;padding-block:20px}.task-facts{width:100%}.bed-grid,.settings-fields,.report-grid{grid-template-columns:1fr}.account-card{grid-template-columns:44px 1fr}.account-state{grid-column:1 / -1;justify-content:flex-end}.owner-selector{align-items:stretch;flex-direction:column}.owner-selector select{width:100%;margin-left:0}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;transition-duration:.001ms!important}}.page-actions,.report-actions{display:flex;align-items:center;gap:9px}.modal-backdrop{position:fixed;inset:0;z-index:80;display:flex;justify-content:center;align-items:center;padding:22px;background:#111f2b75;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.modal-card,.drawer-panel{background:#fff;border:1px solid #cbd5dd;box-shadow:0 26px 70px #0f1f2d3d}.modal-card{width:min(600px,100%);border-radius:14px;overflow:hidden}.modal-card>header,.drawer-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:20px 22px;border-bottom:1px solid var(--line)}.modal-card h2,.drawer-head h2{margin:2px 0 4px;font-size:20px}.modal-card>.form-grid{padding:22px}.drawer-panel{position:absolute;inset:0 0 0 auto;width:min(690px,94vw);display:flex;flex-direction:column}.drawer-head p:last-child{margin:0;color:var(--muted);font-size:12px}.drawer-tabs{display:flex;gap:4px;padding:10px 18px;border-bottom:1px solid var(--line);background:#f7f9fa;overflow-x:auto}.drawer-tabs button{min-height:36px;display:flex;align-items:center;gap:5px;border:0;border-radius:7px;background:transparent;color:#667581;padding:0 12px;font-size:11px;font-weight:650;white-space:nowrap}.drawer-tabs button.active{color:#174f85;background:#fff;box-shadow:0 1px 5px #1e374b1f}.drawer-body{flex:1;min-height:0;overflow-y:auto;padding:22px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.form-grid label{display:flex;flex-direction:column;gap:7px;color:#4f5f6b;font-size:11px;font-weight:650}.form-grid input:not([type=checkbox]),.form-grid select,.form-grid textarea{width:100%;min-height:43px;border:1px solid #cbd4db;background:#fff;border-radius:8px;padding:0 11px;color:var(--ink);font:inherit}.form-grid textarea{min-height:82px;padding-block:10px;resize:vertical}.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus{outline:3px solid #e1ecf8;border-color:var(--blue)}.form-grid .span-2{grid-column:1 / -1}.form-grid .checkbox-field{min-height:42px;flex-direction:row;align-items:center;gap:9px}.checkbox-field input[type=checkbox]{width:17px;height:17px;accent-color:var(--blue)}.form-hint{padding:11px 12px;color:#526d80;background:#eff6fb;border-radius:8px;font-size:11px;line-height:1.55}.history-stack{display:grid;gap:20px}.history-group h3{margin:0 0 10px;display:flex;align-items:center;justify-content:space-between;font-size:14px}.history-group h3 span{min-width:25px;height:22px;display:grid;place-items:center;color:#52708a;background:#edf3f7;border-radius:6px;font-size:10px}.history-group article{display:grid;grid-template-columns:12px 1fr;gap:9px;padding:10px 0;border-top:1px solid var(--line-soft)}.history-group article>i{width:7px;height:7px;margin-top:5px;border-radius:50%;background:var(--blue);box-shadow:0 0 0 3px var(--blue-soft)}.history-group article div{display:flex;flex-direction:column;gap:3px}.history-group article b{font-size:12px}.history-group article small{color:var(--muted);font-size:10px}.history-group article p{margin:2px 0 0;color:#6d7a84;font-size:11px}.task-history{margin-top:18px;padding:20px;background:#fff;border:1px solid var(--line);border-radius:11px}.task-history .panel-head{padding-bottom:14px;border-bottom:1px solid var(--line-soft)}.task-history article{min-height:66px;display:grid;grid-template-columns:22px minmax(250px,1fr) 80px 150px 38px 38px;align-items:center;gap:12px;border-bottom:1px solid var(--line-soft)}.task-history article:last-child{border-bottom:0}.task-history article>div{display:flex;flex-direction:column;gap:4px}.task-history article small{color:var(--muted);font-size:10px}.task-history article>span:not(.task-state){color:#62717d;font-size:11px}.task-state{min-height:25px;display:inline-flex;justify-content:center;align-items:center;border-radius:6px;background:#edf2f5;color:#5f707d;font-size:10px;font-weight:700}.task-state.active{color:var(--present);background:var(--present-soft)}.task-state.submitted{color:#245f95;background:var(--blue-soft)}.icon-button.danger{color:#a44349}.icon-button.danger:hover{background:#fff0f1;color:var(--absent)}.history-head-actions{display:flex;align-items:center;gap:10px}.history-check{width:16px;height:16px;accent-color:var(--blue)}.danger-text{color:#a44349;border-color:#e4b9bc}.teacher-history-groups{display:grid;gap:14px;margin-top:16px}.teacher-history-group{overflow:hidden;border:1px solid #dbe3e8;border-radius:10px;background:#fff}.teacher-history-group>header{min-height:70px;display:grid;grid-template-columns:40px minmax(180px,1fr) auto;align-items:center;gap:11px;padding:12px 14px;background:#f7fafb;border-bottom:1px solid var(--line-soft)}.teacher-history-avatar{width:40px;height:40px;display:grid;place-items:center;color:#fff;background:#2c6ea6;border-radius:9px;font-weight:800}.teacher-history-group>header h3{margin:0 0 4px;font-size:13px}.teacher-history-group>header p{margin:0;color:var(--muted);font-size:10px}.teacher-history-group>header>span{color:#4d6577;background:#e9f0f5;border-radius:7px;padding:6px 9px;font-size:10px;font-weight:750}.teacher-history-group>article{padding-inline:14px}.teacher-history-empty{padding:22px 14px;color:var(--muted);text-align:center;font-size:11px}.compact-empty{min-height:280px;background:#fff;border:1px solid var(--line);border-radius:11px}.security-card .form-grid{padding-top:20px}.report-actions{margin-top:auto;width:100%}.report-card>.report-actions{margin-top:auto}.report-card>div:not(.report-actions){margin-bottom:16px}.print-report{display:none}.register-card{max-width:560px}.auth-switch{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin-bottom:25px;padding:4px;background:#edf1f4;border-radius:9px}.auth-switch button{min-height:37px;border:0;border-radius:7px;background:transparent;color:#697985;font-size:11px;font-weight:700}.auth-switch button.active{color:#174f85;background:#fff;box-shadow:0 2px 7px #1831441f}.register-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.field select{width:100%;height:48px;border:0;background:transparent;color:var(--ink);font:inherit}.registration-file{display:flex;flex-direction:column;gap:7px;margin-top:14px;color:#53636f;font-size:11px;font-weight:650}.registration-file input{padding:9px;border:1px dashed #b4c4d0;border-radius:8px;background:#f7fafb}.registration-file small{color:var(--muted);line-height:1.5;font-weight:400}.registration-submitted{min-height:330px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--present)}.registration-submitted h2{margin:14px 0 7px;color:var(--ink)}.registration-submitted p{max-width:330px;margin:0 0 22px;color:var(--muted);font-size:12px;line-height:1.7}.teacher-onboard{width:min(700px,100%)}.teacher-file-field input[type=file]{min-height:48px;padding:9px 10px;border:1px dashed #9eb4c6;background:#f8fbfd}.teacher-file-field small{color:var(--muted);line-height:1.5}.onboard-template{min-height:64px;display:grid;grid-template-columns:34px 1fr auto;align-items:center;gap:10px;padding:10px 12px;color:#36566e;background:#edf5fa;border:1px solid #c9ddea;border-radius:9px}.onboard-template span{min-width:0;display:flex;flex-direction:column;gap:3px}.onboard-template b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}.onboard-template small{color:#708796;font-size:10px}.onboard-template button{min-height:32px;border:1px solid #a8c3d5;background:#fff;color:#245f8b;border-radius:7px;padding:0 10px;font-size:10px;font-weight:700}.registration-review{margin-bottom:16px;padding:20px;background:#fffaf0;border:1px solid #ead7ad;border-radius:12px}.registration-review .panel-head{padding-bottom:13px;border-bottom:1px solid #eadfc6}.registration-review article{min-height:78px;display:grid;grid-template-columns:minmax(230px,1fr) minmax(190px,.8fr) auto;align-items:center;gap:16px;border-bottom:1px solid #eee3cd}.registration-review article:last-child{border-bottom:0}.contact-review{background:#f4f9ff;border-color:#bfd7ef}.contact-review .panel-head,.contact-review article{border-color:#d7e6f4}.review-person{display:flex;align-items:center;gap:11px}.review-person>span{width:38px;height:38px;display:grid;place-items:center;color:#fff;background:#806128;border-radius:8px;font-weight:800}.review-person div,.review-scope{display:flex;flex-direction:column;gap:4px}.review-person b,.review-scope b{font-size:12px}.review-person small,.review-scope small{color:#887b64;font-size:10px}.review-actions{display:flex;gap:7px}.review-actions button{min-height:34px;padding:0 11px;border:1px solid #d7c49e;border-radius:7px;background:#fff;color:#8b5f37;font-size:10px;font-weight:700}.review-actions button.approve{color:#176449;border-color:#a8d4c1;background:#edf8f3}.credential-card{width:min(520px,100%)}.credential-body{padding:22px}.credential-body>p{margin:0 0 16px;color:#875923;background:#fff6e7;border:1px solid #efd4a9;border-radius:8px;padding:11px;font-size:11px;line-height:1.6}.credential-body>div{display:grid;grid-template-columns:90px 1fr;align-items:center;min-height:55px;border-bottom:1px solid var(--line-soft)}.credential-body span{color:var(--muted);font-size:11px}.credential-body code{color:#173d5c;font-size:17px;font-weight:800;letter-spacing:.04em}.credential-body .primary-button{width:100%;margin-top:20px}.download-station{min-height:610px;display:grid;grid-template-columns:minmax(360px,.9fr) minmax(380px,1.1fr);background:#102331;border-radius:14px;overflow:hidden;box-shadow:0 20px 50px #11263429}.qr-ticket{margin:34px;padding:26px;display:flex;flex-direction:column;align-items:center;color:#13283a;background:#fff;border-radius:12px;box-shadow:0 16px 35px #020f183d}.qr-ticket-brand{width:100%;display:flex;align-items:center;gap:11px;padding-bottom:20px;border-bottom:1px solid #e3e9ed}.qr-ticket-brand .brand-mark{flex:0 0 auto}.qr-ticket-brand div{display:flex;flex-direction:column;gap:3px}.qr-ticket-brand b{font-size:14px}.qr-ticket-brand small{color:#7b8993;font-size:10px}.qr-frame{width:min(310px,100%);aspect-ratio:1;margin:25px 0 18px;display:grid;place-items:center;border:1px solid #dbe4e9;border-radius:8px;background:#fff}.qr-frame img{width:100%;height:100%;display:block;border-radius:7px}.qr-ticket h2{margin:0 0 7px;font-size:22px}.qr-ticket>p{margin:0;color:#778691;font-size:12px}.qr-address{margin-top:17px;min-height:34px;display:flex;align-items:center;gap:7px;padding:0 11px;color:#287052;background:#edf7f2;border-radius:7px;font-size:10px;font-weight:700}.download-guide{position:relative;padding:65px 58px;color:#fff;background:linear-gradient(145deg,#142b3b,#0d1d29)}.download-guide:after{content:"";position:absolute;right:-90px;bottom:-120px;width:300px;height:300px;border:1px solid rgba(93,157,205,.16);border-radius:50%;box-shadow:0 0 0 55px #4a86b20d}.download-device{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:78px;color:#78b8e8}.download-device span{display:flex;align-items:center;gap:7px;color:#a8c4d8;font-size:10px;font-weight:700}.download-device i{width:7px;height:7px;border-radius:50%;background:#54d199;box-shadow:0 0 0 4px #54d1991f}.download-guide .eyebrow{color:#6daee0}.download-guide h2{margin:7px 0 26px;font-size:31px;letter-spacing:-.02em}.download-guide ol{position:relative;z-index:1;list-style:none;margin:0 0 32px;padding:0;display:grid;gap:20px;counter-reset:guide}.download-guide li{counter-increment:guide;display:grid;grid-template-columns:30px 1fr;gap:12px;align-items:start}.download-guide li:before{content:counter(guide,decimal-leading-zero);color:#6daee0;font-size:10px;font-weight:800;padding-top:2px}.download-guide li b,.download-guide li span{grid-column:2}.download-guide li b{font-size:13px}.download-guide li span{margin-top:-8px;color:#8fa8ba;font-size:11px;line-height:1.55}.download-guide .secondary-button{position:relative;z-index:1;color:#dceaf4;background:#203a4d;border-color:#35566e}.page-head>a.primary-button{text-decoration:none}@media(max-width:720px){.form-grid{grid-template-columns:1fr}.form-grid .span-2{grid-column:auto}.task-history article{grid-template-columns:1fr auto;padding:12px 0}.task-history article>span:not(.task-state){grid-column:1 / -1}.page-actions{align-items:stretch;flex-direction:column}.download-station{grid-template-columns:1fr}.download-guide{padding:38px 30px}.download-device{margin-bottom:42px}.qr-ticket{margin:20px}.register-fields{grid-template-columns:1fr}.registration-review article{grid-template-columns:1fr;padding:13px 0}.review-actions{justify-content:flex-end}}@media print{@page{size:A4 landscape;margin:10mm}body{background:#fff!important}.sidebar,.topbar,.content>*{display:none!important}.app-shell,.workspace,.content{display:block!important;width:auto!important;margin:0!important;padding:0!important}.content .print-report{display:block!important;color:#111;font-family:Noto Sans SC,Microsoft YaHei,sans-serif}.print-report h1{margin:0 0 4mm;text-align:center;font-size:18pt}.print-report>p{margin:0 0 4mm;text-align:right;font-size:8pt}.print-report table{width:100%;border-collapse:collapse;font-size:8pt}.print-report th,.print-report td{padding:2mm;border:1px solid #777;text-align:left}.print-report th{background:#e9eef2!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}}
