:root{--bg:#f4f6f8;--fg:#1d232b;--muted:#5f6b7a;--card:#fff;--line:#dde2e8;--accent:#0b4f8a;--accent-fg:#fff;--ok:#1f7a3d;--bad:#b42318;--sel:#2563eb;color:var(--fg);background:var(--bg);font:14px/1.45 system-ui,Segoe UI,Arial,sans-serif}*{box-sizing:border-box}body{margin:0}h1{font-size:20px}h2{margin:0 0 10px;font-size:17px}h3{margin:16px 0 6px;font-size:14px}code{background:#eef1f4;border-radius:3px;padding:1px 4px;font-family:Consolas,Courier New,monospace;font-size:12px}button{font:inherit;border:1px solid var(--line);background:var(--card);color:var(--fg);cursor:pointer;border-radius:6px;padding:6px 12px}button:disabled{opacity:.5;cursor:default}button.primary{background:var(--accent);color:var(--accent-fg);border-color:var(--accent)}button.danger{color:var(--bad);border-color:var(--bad)}button.on{border-color:var(--accent);background:#e3ecf7}input,select,textarea{font:inherit;border:1px solid var(--line);background:#fff;border-radius:6px;padding:6px 8px}.muted{color:var(--muted)}.error{color:var(--bad)}.center{text-align:center;margin-top:20vh}.notice{background:#e8f5ec;border:1px solid #b7e1c3;border-radius:6px;margin:8px 0;padding:8px 12px}.problems{background:#fdecea;border:1px solid #f5c2bd;border-radius:6px;margin:8px 0;padding:8px 12px}.problems ul{margin:4px 0 0;padding-left:18px}.spacer{flex:1}.inline,.form label.inline{align-items:center;gap:6px;display:inline-flex}.login{background:var(--card);border:1px solid var(--line);border-radius:10px;gap:12px;max-width:380px;margin:12vh auto;padding:24px;display:grid}.login label,.form label{gap:4px;display:grid}.topbar{background:var(--card);border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:10px 20px;display:flex}.topbar nav{gap:6px;display:flex}.brand-logo{width:auto;height:32px;margin-right:-4px}.login-logo{justify-self:center;width:auto;height:96px}.login h1{text-align:center}.who{color:var(--muted)}.agents{grid-template-columns:minmax(360px,1fr) minmax(420px,1.2fr);gap:20px;display:grid}.agent-list,.agent-detail{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:14px}.list-header{gap:8px;display:flex}.list-header input{flex:1}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--line);padding:6px 8px}th{color:var(--muted);font-size:12px;font-weight:600}tbody tr{cursor:pointer}table.compact tbody tr{cursor:default}.facts{grid-template-columns:110px 1fr;gap:4px 10px;margin:0;display:grid}.facts dt{color:var(--muted)}.history{margin:0;padding-left:18px}.actions{flex-wrap:wrap;align-items:center;gap:8px;margin:8px 0;display:flex}.badge-box{border:1px solid var(--line);border-radius:8px;padding:10px}.agent-head{align-items:flex-start;gap:20px;display:flex}.agent-identity{flex:1;min-width:0}.photo-panel{flex:none;width:170px}.photo-frame{border:1px solid var(--line);background:#eef1f4;border-radius:6px;justify-content:center;align-items:center;width:150px;height:200px;display:flex;overflow:hidden}.photo-frame img{object-fit:cover;width:100%;height:100%}.photo-video{object-fit:cover;width:100%;height:100%;transform:scaleX(-1)}.photo-panel .actions button{padding:4px 8px;font-size:12px}.small{font-size:11px}.form{gap:10px;max-width:460px;display:grid}fieldset{border:1px solid var(--line);border-radius:6px;flex-wrap:wrap;gap:8px 16px;display:flex}.studio{grid-template-columns:260px 1fr;align-items:start;gap:20px;display:grid}.template-list,.template-editor{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:14px}.template-list ul{gap:6px;margin:12px 0 0;padding:0;list-style:none;display:grid}.template-list li button{text-align:left;flex-wrap:wrap;align-items:center;gap:6px;width:100%;display:flex}.tag{color:var(--muted);background:#eef1f4;border-radius:10px;padding:1px 6px;font-size:11px}.tag-published{color:var(--ok);background:#e8f5ec}.tag-draft{color:#8a5300;background:#fff4e5}.tag-default{color:var(--accent);background:#e3ecf7}.template-header{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;display:flex}.title-input{min-width:260px;font-size:16px;font-weight:600}.editor-toolbar{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:12px;padding:8px 0;display:flex}.segmented{display:inline-flex}.segmented button{border-radius:0}.segmented button:first-child{border-radius:6px 0 0 6px}.segmented button:last-child{border-radius:0 6px 6px 0}.add-buttons{align-items:center;gap:6px;display:flex}.hint{font-size:12px}.editor-body{grid-template-columns:1fr 300px;align-items:start;gap:16px;display:grid}.canvas-wrap{background:repeating-conic-gradient(#e9edf1 0% 25%,#f5f7f9 0% 50%) 50%/16px 16px;border-radius:8px;min-width:0;padding:24px;overflow:auto}.canvas{border-radius:2mm;position:relative;box-shadow:0 2px 12px #0000002e}.overlay{position:absolute;inset:0}.el-box{cursor:move;outline:0 dashed #0000;position:absolute}.el-box:hover{outline-style:dashed;outline-color:#2563eb99}.el-box.selected{outline-style:solid;outline-color:var(--sel)}.handle{border:1px solid var(--sel);background:#fff;position:absolute;transform:translate(-50%,-50%)}.h-nw{cursor:nwse-resize;top:0;left:0}.h-n{cursor:ns-resize;top:0;left:50%}.h-ne{cursor:nesw-resize;top:0;left:100%}.h-e{cursor:ew-resize;top:50%;left:100%}.h-se{cursor:nwse-resize;top:100%;left:100%}.h-s{cursor:ns-resize;top:100%;left:50%}.h-sw{cursor:nesw-resize;top:100%;left:0}.h-w{cursor:ew-resize;top:50%;left:0}.inspector{border:1px solid var(--line);background:#fafbfc;border-radius:8px;padding:12px}.inspector h3:first-child{margin-top:0}.row{grid-template-columns:110px 1fr;align-items:center;gap:8px;margin:6px 0;display:grid}.row input[type=number]{width:90px}.row textarea{resize:vertical;width:100%}.grid2{grid-template-columns:1fr 1fr;gap:0 8px;display:grid}.grid2 .row{grid-template-columns:54px minmax(0,1fr)}.grid2 .row input[type=number]{width:100%;min-width:0}.inspector{min-width:0}.toggles{flex-wrap:wrap;gap:4px;display:inline-flex}.toggles button{padding:3px 8px}.layers{gap:4px;margin:0;padding:0;list-style:none;display:grid}.layers button{text-align:left;width:100%;padding:4px 8px;font-size:12px}.print-area{position:fixed;top:0;left:-10000px}@media print{html,body{margin:0;padding:0;background:#fff!important}#root{display:none!important}.print-area{position:static}.print-page{break-after:page;overflow:hidden}.print-page:last-of-type{break-after:auto}*{-webkit-print-color-adjust:exact;print-color-adjust:exact}}.panel{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:14px}.toolbar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px;display:flex}.toolbar h3{margin:0}.legend{color:var(--muted);flex-wrap:wrap;gap:4px 14px;margin:6px 0 10px;font-size:12px;display:flex}.grid-wrap{overflow-x:auto}.att-grid th,.att-grid td{white-space:nowrap;padding:4px 6px}.att-grid tbody tr{cursor:default}.att-grid .day-col{text-align:center;min-width:54px}.agent-cell{background:var(--card);position:sticky;left:0}.chip{border:1px solid #0000;border-radius:5px;justify-content:center;align-items:center;min-width:24px;height:22px;padding:0 5px;font-size:12px;font-weight:600;display:inline-flex}button.chip{cursor:pointer;margin:0 1px}.chip.on{outline:2px solid var(--sel);outline-offset:1px}.chip.flagged{box-shadow:inset 0 -3px #d97706}.tone-ok{color:var(--ok);background:#e8f5ec}.tone-warn{color:#8a5300;background:#fff4e5}.tone-bad{color:var(--bad);background:#fdecea}.tone-info{color:var(--accent);background:#e3ecf7}.tone-off{color:var(--muted);background:#eef1f4}.day-detail{border-top:1px solid var(--line);margin-top:14px;padding-top:10px}.day-card{border:1px solid var(--line);border-radius:8px;margin-bottom:10px;padding:10px}.boxed{border:1px solid var(--line);border-radius:8px;margin:10px 0;padding:12px}.form.wide{max-width:900px}.grid3{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;display:grid}.form .grid2 label{gap:4px;display:grid}.choices{flex-wrap:wrap;gap:6px;display:flex}.split{grid-template-columns:300px 1fr;align-items:start;gap:20px;margin-top:12px;display:grid}.plain{gap:4px;margin:0 0 8px;padding:0;list-style:none;display:grid}.plain button{text-align:left;justify-content:space-between;gap:6px;width:100%;display:flex}.num{width:64px}.cycle-days{flex-wrap:wrap;gap:3px;display:flex}.tag.rest{border:1px dashed var(--line);background:0 0}.cycle-editor{flex-wrap:wrap;align-items:end;gap:8px;display:flex}.cycle-editor label{color:var(--muted);gap:2px;font-size:12px;display:grid}.week-strip{grid-template-columns:repeat(7,1fr);gap:4px;margin:6px 0 10px;display:grid}.week-day{border:1px solid var(--line);border-radius:6px;min-width:0;padding:4px 6px;font-size:12px;display:grid;overflow:hidden}.week-day.today{border-color:var(--accent)}button.link{color:var(--accent);background:0 0;border:0;padding:0 6px;text-decoration:underline}td.actions{white-space:nowrap;display:table-cell}td.actions>*{margin-right:6px}.downloads{gap:16px;display:grid}.downloads h2{margin:0}.release-cards{flex-wrap:wrap;gap:12px;margin:10px 0;display:flex}.release-card{border:1px solid var(--line);border-radius:8px;flex:1;gap:4px;min-width:300px;max-width:520px;padding:12px;display:grid}.release-version{font-size:22px}.release-notes{white-space:pre-line;margin:4px 0}code.hash{word-break:break-all}a.button{text-align:center;border:1px solid var(--line);color:var(--fg);border-radius:6px;justify-self:start;padding:6px 12px;text-decoration:none;display:inline-block}a.button.primary{background:var(--accent);color:var(--accent-fg);border-color:var(--accent)}.setup-qr{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.dashboard{gap:14px;display:grid}.dash-head{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.dash-head h2{margin:0}.dash-head p{margin:2px 0 0}.kpis{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px;display:grid}.kpi{background:var(--card);border:1px solid var(--line);border-radius:8px;align-content:start;gap:2px;padding:12px 14px;display:grid}.kpi-label{color:var(--muted);font-size:12px;font-weight:600}.kpi-value{font-size:26px;font-weight:700;line-height:1.2}.kpi-foot{flex-wrap:wrap;align-items:baseline;gap:4px 8px;font-size:12px;display:flex}.kpi-delta{font-weight:700}.kpi-delta.good{color:var(--ok)}.kpi-delta.bad{color:var(--bad)}.kpi-delta.neutral{color:var(--muted)}.kpi-foot button.link{padding:0;font-size:12px}h3.first{margin-top:0}.dash-cols{grid-template-columns:1.3fr 1fr 1fr;align-items:start;gap:14px;display:grid}@media (width<=1100px){.dash-cols{grid-template-columns:1fr}}.chart{width:100%;height:auto;display:block}.chart .grid-line{stroke:var(--line);stroke-width:1px}.chart .axis{fill:var(--muted);font-size:11px}.chart .axis.faint{fill:#9aa5b1;font-size:10px}.s-present{fill:#2f9e58;background:#2f9e58}.s-late{fill:#d97706;background:#d97706}.s-incomplete{fill:#f2b866;background:#f2b866}.s-absent{fill:#c8372d;background:#c8372d}.s-off{fill:#c4ccd6;background:#c4ccd6}.swatch{vertical-align:-1px;border-radius:2px;width:10px;height:10px;display:inline-block}.rate{white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.rate-track{background:#eef1f4;border-radius:4px;width:70px;height:7px;display:inline-block;overflow:hidden}.rate-fill{border-radius:4px;height:100%;display:block}.rate-fill.tone-ok{background:#2f9e58}.rate-fill.tone-warn{background:#d97706}.rate-fill.tone-bad{background:#c8372d}.ranking{gap:6px;margin:0;padding-left:20px;display:grid}.ranking li{grid-template-columns:1fr auto;gap:0 8px;display:grid}.ranking li .muted.small:last-child{text-align:right;grid-column:2}.rank-name{text-overflow:ellipsis;min-width:0;overflow:hidden}.anomaly-list li{border-bottom:1px solid var(--line);justify-content:space-between;gap:8px;padding:4px 0;display:flex}table.sortable th{padding:0}.th-sort{color:var(--muted);text-align:left;background:0 0;border:0;width:100%;padding:6px 8px;font-size:12px;font-weight:600}.late-text{color:#8a5300}.dash-head select{max-width:220px}.chip.justified{position:relative}.chip.justified:after{content:"✓";background:var(--ok);color:#fff;border-radius:50%;width:13px;height:13px;font-size:9px;line-height:13px;position:absolute;top:-6px;right:-6px}.devices{gap:16px;display:grid}.devices h2{margin:0}.devices .status{border-radius:10px;padding:2px 8px;font-size:12px;font-weight:600;display:inline-block}.devices .strike{text-decoration:line-through}.devices .panel.sub{background:#f7f9fb;gap:10px;max-width:760px;margin:0 0 14px;display:grid}.devices .panel.sub label{gap:4px;display:grid}.devices .panel.sub button.primary{justify-self:start}.inline-form{white-space:normal;flex-wrap:wrap;align-items:center;gap:6px;max-width:420px;display:flex}.inline-form input{flex:1;min-width:180px}.qr-scanner{justify-items:start;gap:6px;display:grid}.qr-scanner video{background:#000;border-radius:8px;width:100%;max-width:480px}.devices .issued{border-color:var(--ok);max-width:none}.devices td.actions textarea{min-width:320px;font-family:monospace;font-size:11px}pre.key{white-space:pre-wrap;word-break:break-all;-webkit-user-select:all;user-select:all;border:1px solid var(--line);border-radius:6px;padding:8px 10px;font-size:13px}.preview-backdrop{z-index:50;background:#0f17208c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.preview-box{background:var(--card);border-radius:10px;max-width:96vw;max-height:94vh;padding:16px 20px;overflow:auto;box-shadow:0 10px 40px #0000004d}.preview-faces{flex-wrap:wrap;align-items:flex-start;gap:24px;margin-top:12px;display:flex}@media print{.preview-backdrop{display:none}}.preview-box{min-width:min(560px,94vw);padding:0}.preview-head{background:var(--accent);color:var(--accent-fg);border-radius:10px 10px 0 0;align-items:center;gap:12px;padding:12px 16px;display:flex}.preview-head .spacer{flex:1}.preview-count{opacity:.85;font-size:13px}.preview-close{color:var(--accent-fg);background:0 0;border:none;padding:0 6px;font-size:24px;line-height:1}.preview-body{padding:16px 20px}.preview-actions{border-top:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:8px;padding:12px 16px;display:flex}.preview-actions .spacer{flex:1}.preview-actions .btn-print{background:var(--ok);color:#fff;border-color:var(--ok)}.preview-actions .btn-download{background:var(--accent);color:#fff;border-color:var(--accent)}.preview-actions button:disabled{opacity:.5}.preview-body{background:#d5dbe2}.preview-faces .badge-card{box-shadow:0 2px 10px #0f172059}.preview-faces figcaption{color:#3d4753;margin-top:6px}.badge-thumb{box-sizing:content-box;background:#d5dbe2;border-radius:6px;justify-content:center;align-items:center;padding:4px;display:flex;overflow:hidden}.badge-thumb .badge-card{box-shadow:0 1px 4px #0f172059}.template-list li>button{flex-direction:column;align-items:flex-start;gap:4px;display:flex}.preset-gallery{padding:4px 0}.preset-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;margin-top:10px;display:grid}.preset-card{text-align:left;border:1px solid var(--line);background:var(--card);cursor:pointer;border-radius:10px;flex-direction:column;align-items:flex-start;gap:6px;padding:10px;display:flex}.preset-card:hover{border-color:var(--accent);box-shadow:0 2px 10px #0b4f8a2e}:root{--bg:#eef2f7;--fg:#13233a;--muted:#5d6b7e;--card:#fff;--line:#e1e7ef;--accent:#1565d8;--accent-dark:#0f4fae;--accent-soft:#e8f0fc;--accent-fg:#fff;--navy:#0b2545;--navy-2:#12325c;--ok:#138a4a;--ok-soft:#e4f6ec;--warn:#a15c00;--warn-soft:#fff3df;--bad:#c4291c;--bad-soft:#fdecea;--radius:14px;--shadow:0 1px 2px #1024400d, 0 6px 20px #1024400f;font:14px/1.5 Segoe UI,system-ui,-apple-system,Arial,sans-serif}body{background:var(--bg)}h1{margin:0;font-size:21px;font-weight:650}h2{font-size:18px;font-weight:650}h3{font-size:15px;font-weight:650}.icon{vertical-align:middle;flex:none}.shell{grid-template-columns:236px 1fr;min-height:100vh;display:grid}.sidebar{background:linear-gradient(180deg, var(--navy) 0%, var(--navy-2) 100%);color:#dbe6f5;flex-direction:column;gap:6px;height:100vh;padding:18px 12px 14px;display:flex;position:sticky;top:0}.sidebar-brand{color:#fff;align-items:center;gap:10px;padding:2px 10px 18px;font-size:20px;font-weight:700;display:flex}.sidebar-brand img{filter:drop-shadow(0 1px 2px #0000004d);width:auto;height:38px}.sidebar-nav{gap:4px;display:grid;overflow-y:auto}.sidebar-nav button,.sidebar-logout{text-align:left;color:#dbe6f5;background:0 0;border:0;border-radius:10px;align-items:center;gap:12px;width:100%;padding:10px 12px;font-size:14.5px;display:flex}.sidebar-nav button:hover,.sidebar-logout:hover{color:#fff;background:#ffffff14}.sidebar-nav button.on{background:var(--accent);color:#fff;box-shadow:0 4px 14px #1565d873}.sidebar-logout{margin-top:10px}.sidebar-foot{border-top:1px solid #ffffff1a;align-items:center;gap:10px;margin-top:auto;padding:14px 10px 0;display:flex}.sidebar-foot img{height:30px}.sidebar-foot strong{color:#fff;font-size:14px;display:block}.sidebar-foot small{color:#9fb3cf;font-size:11px}.shell-main{flex-direction:column;min-width:0;display:flex}.shell-top{z-index:5;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#eef2f7eb;align-items:center;gap:14px;padding:14px 26px;display:flex;position:sticky;top:0}.shell-user{background:var(--card);box-shadow:var(--shadow);border-radius:999px;align-items:center;gap:10px;padding:6px 14px 6px 6px;display:flex}.shell-user .avatar{background:var(--accent-soft);width:34px;height:34px;color:var(--accent);border-radius:50%;place-items:center;display:grid}.shell-user strong{font-size:13.5px;line-height:1.2;display:block}.shell-user small{color:var(--muted);font-size:12px}main{padding:6px 26px 26px}.panel,.agent-list,.agent-detail,.template-list,.template-editor,.login{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px 20px}.boxed,.day-card,.badge-box{border-color:var(--line);background:#fbfcfe;border-radius:12px}.inspector{background:#f7f9fc;border-radius:12px}button{border-color:#d3dbe6;border-radius:9px;padding:7px 14px;transition:background .15s,border-color .15s,box-shadow .15s}button:hover:not(:disabled){border-color:var(--accent)}button.primary{background:var(--accent);border-color:var(--accent);font-weight:600;box-shadow:0 2px 8px #1565d840}button.primary:hover:not(:disabled){background:var(--accent-dark);border-color:var(--accent-dark)}button.danger{color:var(--bad);background:#fff;border-color:#f0b4ad}button.danger:hover:not(:disabled){background:var(--bad-soft);border-color:var(--bad)}button.outline{color:var(--accent);background:#fff;border-color:#a9c4ee;align-items:center;gap:6px;display:inline-flex}button.outline:hover:not(:disabled){background:var(--accent-soft)}button.with-icon{align-items:center;gap:8px;display:inline-flex}input,select,textarea{border-color:#d3dbe6;border-radius:9px;padding:8px 10px}input:focus,select:focus,textarea:focus,button:focus-visible{outline-offset:1px;border-color:var(--accent);outline:2px solid #1565d859}.search{flex:1;position:relative}.search input{width:100%;padding-left:36px}.search .icon{color:var(--muted);position:absolute;top:50%;left:11px;transform:translateY(-50%)}table{border-collapse:separate;border-spacing:0}th{color:#3b4a5e;border-bottom:1px solid var(--line);background:#f3f6fb;padding:10px 12px;font-size:12.5px;font-weight:650}th:first-child{border-top-left-radius:10px}th:last-child{border-top-right-radius:10px}td{border-bottom:1px solid #edf1f6;padding:11px 12px}tbody tr:hover,tbody tr.on{background:#f3f8ff}code{color:#22344d;background:#eef2f8;border-radius:6px;padding:2px 7px}.status,.pill{border-radius:999px;align-items:center;gap:6px;padding:3px 10px;font-size:12.5px;font-weight:600;display:inline-flex}.status:before,.pill:before{content:"";background:currentColor;border-radius:50%;width:7px;height:7px}.tone-ok{background:var(--ok-soft);color:var(--ok)}.tone-warn{background:var(--warn-soft);color:var(--warn)}.tone-bad{background:var(--bad-soft);color:var(--bad)}.tone-info{background:var(--accent-soft);color:var(--accent)}.tag{border-radius:999px;padding:2px 9px}.notice{background:var(--ok-soft);border:1px solid #b8e4c9;border-radius:10px;padding:10px 14px}p.error{background:var(--bad-soft);border:1px solid #f5c2bd;border-radius:10px;padding:9px 13px}.warn-box{background:var(--warn-soft);color:#6b4300;border:1px solid #f6dcae;border-radius:10px;align-items:center;gap:10px;padding:10px 14px;display:flex}.card-head{align-items:center;gap:14px;margin-bottom:16px;display:flex}.card-head .head-icon{background:var(--accent-soft);width:46px;height:46px;color:var(--accent);border-radius:12px;place-items:center;display:grid}.card-head h2{margin:0}.card-head p{color:var(--muted);margin:2px 0 0}.agents{grid-template-columns:minmax(420px,1fr) minmax(460px,1.15fr);align-items:start;gap:22px}.list-header{gap:10px;margin-bottom:14px}.agent-row td:first-child{box-shadow:inset 4px 0 0 var(--row-accent,transparent)}.agent-row.on td:first-child{box-shadow:inset 4px 0 0 var(--accent)}.unit-cell{color:#2b3a50;align-items:center;gap:7px;display:inline-flex}.unit-cell .icon{color:var(--muted)}.detail-head{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:16px;display:flex}.detail-head h2{margin:0;font-size:20px}.detail-head .head-icon{background:var(--accent-soft);width:42px;height:42px;color:var(--accent);border-radius:50%;place-items:center;display:grid}.facts{grid-template-columns:130px 1fr;align-items:center;gap:12px}.facts dt{color:var(--muted);align-items:center;gap:9px;display:flex}.facts dd{margin:0;font-weight:500}.photo-frame{box-shadow:var(--shadow);border:0;border-radius:12px}.history-card{background:#f5f8fd;border:1px solid #e3eaf5;border-radius:12px;margin-top:18px;padding:14px 16px}.history-card h3{align-items:center;gap:10px;margin:0 0 8px;display:flex}.history-card h3 .icon{color:var(--accent)}.section-title{align-items:center;gap:10px;margin:22px 0 10px;display:flex}.section-title .icon{color:var(--accent)}.week-day{background:#fff;border-radius:10px;padding:7px 9px}.week-day.today{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent);background:var(--accent-soft)}@media (width<=1100px){.shell{grid-template-columns:74px 1fr}.sidebar-nav button span,.sidebar-logout span,.sidebar-brand span,.sidebar-foot div{display:none}.agents{grid-template-columns:1fr}}.agent-head{grid-template-columns:minmax(0,1fr) 180px;align-items:start;gap:22px;display:grid}.agent-identity{min-width:0}.agent-identity>p{margin:14px 0 0}.agent-identity .form.boxed{max-width:none}.history-card .history{padding-left:18px}.agent-list td code,.agent-list td .status,.agent-list td button{white-space:nowrap}.agent-list td{vertical-align:middle}.sidebar-nav{scrollbar-width:thin;scrollbar-color:#ffffff40 transparent}.sidebar-nav button,.sidebar-logout{white-space:nowrap;text-overflow:ellipsis;padding:9px 12px;overflow:hidden}.sidebar-nav button span,.sidebar-logout span{text-overflow:ellipsis;overflow:hidden}.sidebar-toggle{background:var(--card);width:38px;height:38px;box-shadow:var(--shadow);color:var(--fg);border-radius:10px;place-items:center;padding:0;display:grid}.shell{transition:grid-template-columns .2s}.shell.collapsed{grid-template-columns:72px 1fr}.shell.collapsed .sidebar{padding-left:10px;padding-right:10px}.shell.collapsed .sidebar-nav button,.shell.collapsed .sidebar-logout{justify-content:center;padding:11px 0}.shell.collapsed .sidebar-nav button span,.shell.collapsed .sidebar-logout span,.shell.collapsed .sidebar-brand span,.shell.collapsed .sidebar-foot div{display:none}.shell.collapsed .sidebar-brand,.shell.collapsed .sidebar-foot{justify-content:center;padding-left:0;padding-right:0}.palette-open{background:var(--card);min-width:340px;color:var(--muted);border:1px solid var(--line);box-shadow:var(--shadow);text-align:left;border-radius:10px;align-items:center;gap:10px;margin-left:18px;padding:8px 12px;display:flex}.palette-open span{flex:1}kbd{color:#44536a;background:#f6f8fb;border:1px solid #cfd8e3;border-bottom-width:2px;border-radius:6px;padding:2px 6px;font:11px Consolas,monospace}.palette-backdrop{z-index:60;background:#0b254573;justify-content:center;align-items:flex-start;padding-top:12vh;display:flex;position:fixed;inset:0}.palette{background:var(--card);border-radius:16px;width:min(640px,92vw);overflow:hidden;box-shadow:0 24px 60px #0b254559}.palette-search{border-bottom:1px solid var(--line);color:var(--muted);align-items:center;gap:10px;padding:14px 16px;display:flex}.palette-search input{box-shadow:none;border:0;outline:none;flex:1;padding:4px 0;font-size:16px}.palette-search input:focus{outline:none}.palette-list{max-height:50vh;margin:0;padding:8px;list-style:none;overflow-y:auto}.palette-list button{text-align:left;width:100%;color:var(--fg);background:0 0;border:0;border-radius:10px;align-items:center;gap:12px;padding:10px 12px;display:flex}.palette-list button span{flex:1}.palette-list button small{color:var(--muted)}.palette-list button.on{background:var(--accent-soft);color:var(--accent-dark)}.palette-list button.on small{color:var(--accent)}.palette-empty{padding:12px}.palette-foot{border-top:1px solid var(--line);padding:8px 16px 12px}@media (width<=1100px){.palette-open span,.palette-open kbd{display:none}.palette-open{min-width:0}}.page-intro{align-items:center;gap:14px;margin:4px 0 18px;display:flex}.page-intro .head-icon{background:var(--card);width:48px;height:48px;color:var(--accent);box-shadow:var(--shadow);border-radius:14px;place-items:center;display:grid}.page-intro h1{font-size:22px}.page-intro p{color:var(--muted);margin:2px 0 0}.shell-top .palette-open{margin-left:4px}p.empty,.muted.empty{text-align:center;color:var(--muted);background:#fafcff;border:1px dashed #cdd7e4;border-radius:12px;flex-direction:column;align-items:center;gap:6px;margin:10px 0;padding:28px 16px;display:flex}p.empty:before{content:"";background:var(--accent-soft) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231565d8' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><path d='M4 6.5h16v13H4zM4 10.5h16M9 14.5h6'/></svg>") center / 24px no-repeat;border-radius:50%;width:44px;height:44px}.panel.empty{border-style:dashed}.sched-form{border:1px solid var(--line);background:#fbfcfe;border-radius:12px;justify-items:start;gap:10px;margin:12px 0;padding:14px 16px;display:grid}.sched-form h4{margin:0;font-size:14px}.sched-grid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px 14px;width:100%;display:grid}.sched-grid label{color:#3b4a5e;gap:4px;font-size:13px;font-weight:600;display:grid}.sched-grid label .muted{font-weight:400}.sched-grid select,.sched-grid input{width:100%;font-weight:400}.sched-form p{margin:0}.login-page{grid-template-columns:minmax(360px,1fr) minmax(420px,1.1fr);min-height:100vh;display:grid}.login-brand{color:#dbe6f5;background:radial-gradient(circle at 15% 10%, #1d4e89 0%, var(--navy) 55%, #071a33 100%);flex-direction:column;gap:32px;padding:40px 48px;display:flex}.login-brand-top{align-items:center;gap:14px;display:flex}.login-brand-top img{filter:drop-shadow(0 2px 6px #00000059);height:52px}.login-brand-top strong{color:#fff;font-size:24px;display:block}.login-brand-top small{color:#9fb3cf}.login-pitch{max-width:460px;margin:auto 0}.login-pitch h2{color:#fff;margin:0 0 26px;font-size:26px;line-height:1.3}.login-pitch ul{gap:18px;margin:0;padding:0;list-style:none;display:grid}.login-pitch li{align-items:flex-start;gap:14px;display:flex}.login-pitch li strong{color:#fff}.login-pitch li p{color:#b5c6de;margin:2px 0 0;font-size:13.5px}.login-point-icon{color:#fff;background:#ffffff1a;border-radius:12px;flex:none;place-items:center;width:40px;height:40px;display:grid}.login-foot{color:#8ea4c3}.login-main{background:var(--bg);place-items:center;padding:32px 20px;display:grid}.login-page .login{border-radius:18px;gap:16px;width:min(420px,100%);margin:0;padding:30px 32px}.login-page .login h1{text-align:left;font-size:24px}.login-page .login .login-logo{justify-self:start;height:64px}.login-page .login label{color:#3b4a5e;font-size:13px;font-weight:600}.input-icon{color:var(--muted);background:#fff;border:1px solid #d3dbe6;border-radius:10px;align-items:center;gap:10px;padding:0 12px;font-weight:400;display:flex}.input-icon:focus-within{border-color:var(--accent);color:var(--accent);box-shadow:0 0 0 3px #1565d826}.input-icon input{box-shadow:none;background:0 0;border:0;outline:none;flex:1;padding:11px 0}.input-icon input:focus{outline:none}.input-icon input.otp{letter-spacing:.4em;font-family:Consolas,monospace;font-size:16px}button.wide{justify-content:center;width:100%;padding:11px 14px}.muted.small,p.small{font-size:12.5px}@media (width<=900px){.login-page{grid-template-columns:1fr}.login-brand{gap:18px;padding:24px}.login-pitch{margin:0}.login-pitch ul,.login-foot{display:none}}.card-head-text{flex:1;min-width:0}.card-head-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.filter-tabs{background:#f1f4f9;border-radius:12px;flex-wrap:wrap;gap:4px;width:fit-content;max-width:100%;margin:0 0 14px;padding:4px;display:flex}.filter-tabs button{color:#44536a;background:0 0;border:0;border-radius:9px;align-items:center;gap:8px;padding:7px 14px;font-weight:600;display:inline-flex}.filter-tabs button:hover{background:#ffffffb3}.filter-tabs button.on{color:var(--accent-dark);background:#fff;box-shadow:0 1px 4px #1024401f}.filter-tabs .count{color:#44536a;text-align:center;background:#e3e9f2;border-radius:999px;min-width:22px;padding:0 7px;font-size:12px;line-height:20px}.filter-tabs button.on .count{background:var(--accent);color:#fff}.table-wrap{overflow-x:auto}.table-wrap table{width:100%}td.nowrap,.nowrap{white-space:nowrap}.agent-cell{align-items:center;gap:10px;display:inline-flex}.agent-cell .avatar{background:var(--accent-soft);width:34px;height:34px;color:var(--accent);letter-spacing:.02em;border-radius:50%;flex:none;place-items:center;font-size:12.5px;font-weight:700;display:grid}.agent-cell strong{white-space:nowrap;font-weight:600;display:block}.agent-cell code{font-size:11.5px}.file-chips{flex-wrap:wrap;gap:6px;display:flex}.file-chip{color:#22344d;background:#f1f4f9;border-radius:8px;align-items:center;gap:5px;padding:3px 9px;font-size:12.5px;text-decoration:none;display:inline-flex}.file-chip:hover{background:var(--accent-soft);color:var(--accent-dark)}.sched-grid .span2{grid-column:span 2}.sched-form label.full{color:#3b4a5e;gap:4px;width:100%;font-size:13px;font-weight:600;display:grid}.sched-form label.full textarea{width:100%;font-weight:400}.chosen{align-items:center;gap:12px;font-weight:400;display:flex}.request-form .choices button{font-weight:400}.sched-form .toolbar{margin:0}.page-stack{gap:16px;display:grid}.page-stack>.panel{margin:0}.filter-bar{flex-wrap:wrap;align-items:center;gap:10px 14px;display:flex}.filter-bar .filter-tabs{margin:0}.period-nav{align-items:center;gap:6px;display:inline-flex}.icon-button{width:36px;height:36px;color:var(--fg);background:#fff;border-radius:10px;place-items:center;padding:0;display:inline-grid}.icon-button:hover:not(:disabled){background:var(--accent-soft);color:var(--accent)}.stats{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;display:grid}.stat{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);align-items:center;gap:12px;padding:14px 16px;display:flex}.stat-icon{background:var(--accent-soft);width:42px;height:42px;color:var(--accent);border-radius:12px;flex:none;place-items:center;display:grid}.stat-ok .stat-icon{background:var(--ok-soft);color:var(--ok)}.stat-warn .stat-icon{background:var(--warn-soft);color:var(--warn)}.stat-bad .stat-icon{background:var(--bad-soft);color:var(--bad)}.stat-label{color:var(--muted);text-transform:uppercase;letter-spacing:.03em;margin:0;font-size:12px;font-weight:600}.stat-value{margin:2px 0 0;font-size:22px;font-weight:700;line-height:1.2}.stat-ok .stat-value{color:var(--ok)}.stat-warn .stat-value{color:var(--warn)}.stat-bad .stat-value{color:var(--bad)}.stat-foot{color:var(--muted);margin:2px 0 0;font-size:12px}.att-grid{border-collapse:separate;border-spacing:0}.att-grid th,.att-grid td{padding:8px}.att-grid .day-col{min-width:62px}.att-grid th.today{background:var(--accent-soft);color:var(--accent-dark)}.att-grid td.today{background:#f5f9ff}.att-grid .chip{border-radius:8px;min-width:28px;height:26px}.att-grid td.num{font-variant-numeric:tabular-nums;text-align:right}.warn-text{color:var(--warn);font-weight:600}.bad-text{color:var(--bad);font-weight:600}.legend{gap:6px 16px;margin:0 0 12px}.drawer-backdrop{z-index:50;background:#0b254559;justify-content:flex-end;display:flex;position:fixed;inset:0}.drawer{background:var(--card);flex-direction:column;width:min(560px,100vw);height:100vh;animation:.18s ease-out drawer-in;display:flex;box-shadow:-12px 0 40px #0b254540}@keyframes drawer-in{0%{opacity:0;transform:translate(40px)}to{opacity:1;transform:none}}.drawer-head{border-bottom:1px solid var(--line);align-items:flex-start;gap:12px;padding:18px 22px;display:flex}.drawer-head>div{flex:1}.drawer-head h2{margin:0}.drawer-head p{margin:2px 0 0}.drawer-body{flex:1;align-content:start;gap:14px;padding:18px 22px;display:grid;overflow-y:auto}.drawer-body .day-card{border:1px solid var(--line);padding:14px 16px}.day-card-head{flex-wrap:wrap;align-items:center;gap:10px;margin:0 0 10px;display:flex}.kpi{border-radius:var(--radius);box-shadow:var(--shadow);gap:4px;padding:14px 16px}.kpi-label{text-transform:uppercase;letter-spacing:.03em;align-items:center;gap:8px;display:flex}.kpi-icon{background:var(--accent-soft);width:28px;height:28px;color:var(--accent);border-radius:8px;place-items:center;display:grid}.kpi-value{font-size:24px}.period-label{text-transform:capitalize;color:var(--fg);font-weight:600}.ranking .rank-name{min-width:0}.ranking .agent-cell code{color:var(--muted);background:0 0;padding:0;font-family:inherit}.compact-search{width:240px}.compact-search input{padding:8px 0}.agent-sub{margin:2px 0 0 44px}.filter-bar select{max-width:260px}.section-actions{justify-content:flex-end;margin:0 0 12px;display:flex}.card-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px;display:grid}.ref-card{border:1px solid var(--line);background:#fff;border-radius:14px;align-content:start;gap:12px;padding:16px 18px;display:grid;box-shadow:0 1px 2px #1024400a}.ref-card.retired{opacity:.65;background:#fafbfd}.ref-card header{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.ref-card h3{margin:0 0 4px;font-size:16px}.ref-card footer{border-top:1px solid #edf1f6;gap:8px;padding-top:10px;display:flex}.ref-card footer button{align-items:center;gap:6px;display:inline-flex}.ref-card p{align-items:center;gap:6px;margin:0;display:flex}.ref-facts{grid-template-columns:auto 1fr;gap:6px 14px;margin:0;font-size:13px;display:grid}.ref-facts dt{color:var(--muted)}.ref-facts dd{margin:0;font-weight:600}.timeline{padding-bottom:16px;position:relative}.timeline-track{background:#eef2f8;border-radius:7px;height:14px;position:relative;overflow:visible}.tl-window{background:#cfe0f8;border-radius:7px;height:100%;position:absolute;top:0}.tl-shift{background:var(--accent);border-radius:5px;height:10px;position:absolute;top:2px}.tl-mark{border-radius:2px;width:3px;height:22px;position:absolute;top:-4px;transform:translate(-1px)}.tl-absent{background:var(--bad)}.tl-exit{background:var(--navy)}.timeline-scale{height:14px;position:absolute;bottom:0;left:0;right:0}.timeline-scale span{color:var(--muted);font-size:10.5px;position:absolute;transform:translate(-50%)}.timeline-scale span:first-child{transform:none}.timeline-scale span:last-child{transform:translate(-100%)}.cycle-week{grid-template-columns:repeat(auto-fill,minmax(38px,1fr));gap:5px;display:grid}.cycle-week span{text-align:center;border-radius:10px;gap:2px;padding:7px 4px;font-size:12px;display:grid}.cycle-week span small{color:inherit;opacity:.75;font-size:11px}.cycle-week span strong{text-overflow:ellipsis;white-space:nowrap;font-size:11.5px;overflow:hidden}.cycle-week .work{background:var(--accent-soft);color:var(--accent-dark)}.cycle-week .rest{color:var(--muted);background:#f1f4f9}.split aside{align-content:start;gap:10px;display:grid}.split aside ul.plain{gap:4px;display:grid}.side-item{text-align:left;background:0 0;border:1px solid #0000;border-radius:10px;align-items:center;gap:10px;width:100%;padding:9px 10px;display:flex}.side-item span:nth-child(2){flex:1}.side-item:hover{background:#f3f7fd}.side-item.on{background:var(--accent-soft);color:var(--accent-dark);border-color:#c7daf6;font-weight:600}.cal-title{align-items:center;gap:10px;margin:0 0 4px;display:flex}.holiday-list{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid}.holiday-list li{background:#fff;border:1px solid #edf1f6;border-radius:12px;align-items:center;gap:12px;padding:8px 10px;display:flex}.holiday-list li.past{opacity:.55}.date-badge{text-align:center;border:1px solid #c7daf6;border-radius:10px;flex:none;width:48px;display:grid;overflow:hidden}.date-badge strong{background:var(--accent);color:#fff;font-size:16px;line-height:26px}.date-badge small{color:var(--accent-dark);background:var(--accent-soft);font-size:11px;line-height:18px}.holiday-text{min-width:0;display:grid}.holiday-text small{text-transform:none}.period-form{border:1px solid var(--line);background:#fbfcfe;border-radius:12px;padding:12px 14px}.device-cell{align-items:center;gap:10px;display:inline-flex}.device-cell>span:last-child{display:grid}.device-icon{background:var(--accent-soft);width:34px;height:34px;color:var(--accent);border-radius:10px;flex:none;place-items:center;display:grid}.device-icon.server{color:var(--navy);background:#e9edf5}.readiness{background:#f8fbff;border:1px solid #dbe5f3;border-radius:14px;margin:0 0 16px;padding:16px 18px}.readiness-head{align-items:center;gap:12px;display:flex}.readiness-head>div{flex:1}.readiness-head h3{margin:0}.readiness-head p{margin:2px 0 0}.progress{background:#e3eaf5;border-radius:4px;height:8px;margin:12px 0 14px;overflow:hidden}.progress span{background:linear-gradient(90deg, var(--accent), #2f9e58);border-radius:4px;height:100%;display:block}.checklist{grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:8px 16px;margin:0;padding:0;list-style:none;display:grid}.checklist li{background:#fff;border:1px solid #edf1f6;border-radius:10px;align-items:flex-start;gap:10px;padding:9px 10px;display:flex}.checklist p{margin:2px 0 0}.check-icon{border-radius:50%;flex:none;place-items:center;width:30px;height:30px;display:grid}.check-ok .check-icon{background:var(--ok-soft);color:var(--ok)}.check-warn .check-icon{background:var(--warn-soft);color:var(--warn)}.check-todo .check-icon{color:var(--muted);background:#eef1f6}.tree-name{align-items:center;gap:9px;display:inline-flex}.tree-icon{color:#44536a;background:#eef2f8;border-radius:8px;flex:none;place-items:center;width:28px;height:28px;display:grid}.level-ministry{font-weight:700}.level-ministry .tree-icon{background:var(--navy);color:#fff}.level-direction{font-weight:600}.level-direction .tree-icon{background:var(--accent-soft);color:var(--accent)}.level-service .tree-icon{background:var(--ok-soft);color:var(--ok)}.kind-ministry{color:var(--navy);background:#e5e9f2}.kind-direction{background:var(--accent-soft);color:var(--accent-dark)}.kind-service{background:var(--ok-soft);color:var(--ok)}.kind-team{background:var(--warn-soft);color:var(--warn)}.organisation{gap:16px;display:grid}.organisation>.panel{margin:0}.integrations{gap:16px;display:grid}.integrations>.panel{margin:0}.sidebar-nav button{position:relative}.nav-count{background:var(--warn);color:#fff;text-align:center;border-radius:999px;min-width:22px;margin-left:auto;padding:0 7px;font-size:12px;font-style:normal;font-weight:700;line-height:20px}.nav-count.bad{background:var(--bad)}.shell.collapsed .nav-count{min-width:18px;padding:0 5px;font-size:10.5px;line-height:16px;position:absolute;top:4px;right:6px}.bell{background:var(--card);width:42px;height:42px;box-shadow:var(--shadow);color:var(--fg);border-radius:12px;place-items:center;padding:0;display:grid;position:relative}.bell em{background:var(--warn);color:#fff;border-radius:999px;min-width:20px;padding:0 5px;font-size:11px;font-style:normal;font-weight:700;line-height:18px;position:absolute;top:-4px;right:-4px}.bell em.bad{background:var(--bad)}.alert-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.alert-item{border:1px solid var(--line);border-left:4px solid var(--accent);background:#fff;border-radius:12px;grid-template-columns:auto 1fr auto;align-items:start;gap:14px;padding:14px 16px;display:grid}.alert-item.sev-bad{border-left-color:var(--bad)}.alert-item.sev-warn{border-left-color:var(--warn)}.alert-item.acked{opacity:.7;background:#fafbfd}.alert-icon{background:var(--accent-soft);width:40px;height:40px;color:var(--accent);border-radius:12px;place-items:center;display:grid}.sev-bad .alert-icon{background:var(--bad-soft);color:var(--bad)}.sev-warn .alert-icon{background:var(--warn-soft);color:var(--warn)}.alert-title{flex-wrap:wrap;align-items:center;gap:8px 12px;display:flex}.alert-body p{margin:4px 0 0}.alert-body .small{align-items:center;gap:6px;display:flex}.alert-ack{flex-wrap:wrap;margin-top:10px}.alert-ack input{min-width:320px}.alert-actions{flex-direction:column;align-items:stretch;gap:6px;display:flex}.alert-actions button{justify-content:center;align-items:center;gap:6px;display:inline-flex}a.button-link,button.button-link{color:var(--accent);white-space:nowrap;cursor:pointer;background:#fff;border:1px solid #a9c4ee;border-radius:9px;justify-content:center;align-items:center;padding:7px 14px;font-weight:600;text-decoration:none;display:inline-flex}a.button-link:hover,button.button-link:hover:not(:disabled){background:var(--accent-soft)}button.button-link:disabled{color:var(--muted);cursor:default;border-color:#d9e1ec}.report-link{align-items:center;gap:6px;display:inline-flex}.report-link input{padding:6px 8px}a.button-link .icon,button.button-link .icon{margin-right:6px}.report-download{align-items:center;gap:8px;display:inline-flex}.report-download progress{width:70px}.icon.spin{animation:.9s linear infinite icon-spin}@keyframes icon-spin{to{transform:rotate(360deg)}}.net-pill{background:var(--card);height:34px;box-shadow:var(--shadow);white-space:nowrap;border-radius:999px;align-items:center;gap:8px;padding:0 14px;font-size:13px;font-weight:600;display:inline-flex}.net-pill i{background:var(--ok,#2e7d32);width:10px;height:10px;box-shadow:0 0 0 3px color-mix(in srgb, var(--ok,#2e7d32) 25%, transparent);border-radius:50%}.net-pill.online{color:var(--ok,#2e7d32)}.net-pill.offline{color:var(--bad);background:var(--bad-soft)}.net-pill.offline i{background:var(--bad);animation:1s ease-in-out infinite net-blink}@keyframes net-blink{50%{opacity:.25}}.net-banner{background:var(--bad);color:#fff;border-radius:12px;flex-wrap:wrap;align-items:center;gap:8px 14px;margin:0 24px 12px;padding:12px 16px;display:flex}.net-banner button{color:var(--bad);background:#fff;border:0;margin-left:auto}@media (width<=720px){.net-pill{padding:0 10px}.net-banner{margin:0 16px 12px}}.roles-editor{gap:8px;margin:10px 0;display:grid}.role-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.role-row select{min-width:180px}.role-row .muted{flex-basis:100%}.muted-row{opacity:.6}.activation{max-width:520px}.activation-steps{gap:16px;margin:0;padding-left:20px;display:grid}.activation-steps li{gap:8px;display:grid}.activation-qr{justify-items:center;gap:6px;padding:8px;display:grid}.activation-qr img{border:1px solid var(--line);border-radius:12px;width:200px;height:200px}.activation-qr code{word-break:break-all}.day-times{color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums;margin-top:2px;font-size:11px;display:block}.pager{flex-wrap:wrap;align-items:center;gap:8px 12px;padding:12px 4px 4px;display:flex}.pager .spacer{flex:1}.pager button{align-items:center;gap:4px;display:inline-flex}.pager select{width:auto}.help-search{max-width:640px;margin-top:12px}.help-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;display:grid}.help-card{border:1px solid var(--line);background:var(--card);color:var(--fg);border-radius:12px;gap:6px;padding:14px 16px;text-decoration:none;transition:border-color .15s,box-shadow .15s;display:grid}.help-card:hover{border-color:var(--accent);box-shadow:var(--shadow)}.help-meta{color:var(--muted);justify-content:space-between;align-items:center;font-size:12px;display:flex}.help-meta span{align-items:center;gap:4px;display:inline-flex}.ok-text{color:var(--ok);font-weight:600}.help-progress{background:var(--line);border-radius:999px;height:8px;margin:8px 0 4px;overflow:hidden}.help-progress span{background:var(--ok);height:100%;transition:width .2s;display:block}.help-steps{gap:10px;margin:12px 0;padding:0;list-style:none;display:grid}.help-steps li{border:1px solid var(--line);border-radius:12px;grid-template-columns:auto 1fr;gap:12px;padding:12px 14px;display:grid}.help-steps li.current{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.help-steps li.done{opacity:.7}.help-steps li.done strong{text-decoration:line-through}.help-steps p{margin:4px 0 6px}.help-check{cursor:pointer;position:relative}.help-check input{opacity:0;cursor:pointer;width:28px;height:28px;margin:0;position:absolute}.help-num{background:var(--accent-soft);width:28px;height:28px;color:var(--accent);border-radius:50%;place-items:center;font-size:13px;font-weight:700;display:grid}.help-steps li.done .help-num{background:var(--ok);color:#fff}.help-where{margin-left:8px;font-size:11px}.help-tips{background:var(--accent-soft);border-radius:12px;margin-bottom:12px;padding:12px 16px}.help-tips strong{align-items:center;gap:6px;display:inline-flex}.help-tips ul{margin:6px 0 0;padding-left:20px}.help-drawer-list{gap:10px;display:grid}.assist-fab{z-index:60;background:var(--accent);color:#fff;cursor:pointer;border:0;border-radius:50%;place-items:center;width:56px;height:56px;padding:0;transition:transform .15s;display:grid;position:fixed;bottom:22px;right:22px;box-shadow:0 8px 24px #0b3d6e59}.assist-fab:hover{transform:scale(1.06)}.assist-fab.on{background:var(--fg)}.assist-panel{z-index:60;background:var(--card);border:1px solid var(--line);border-radius:16px;gap:10px;width:min(380px,100vw - 32px);max-height:min(560px,100vh - 120px);padding:16px;display:grid;position:fixed;bottom:90px;right:22px;overflow:auto;box-shadow:0 16px 40px #13233a33}.assist-panel header{gap:2px;display:grid}.assist-panel header strong{align-items:center;gap:6px;display:inline-flex}.assist-caption{margin:0}.assist-list{gap:8px;display:grid}.assist-item{border:1px solid var(--line);border-radius:12px;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;display:flex}.assist-item>div{gap:2px;display:grid}.assist-item button{white-space:nowrap}.assist-window{z-index:59;background:var(--card);border:2px solid var(--accent);border-radius:16px;gap:8px;width:min(360px,100vw - 32px);padding:14px 16px;display:grid;position:fixed;bottom:90px;right:22px;box-shadow:0 16px 40px #13233a38}.assist-window header{align-items:flex-start;gap:6px;display:flex}.assist-window header>div{flex:1;gap:2px;display:grid}.assist-window .icon-button{width:30px;height:30px}.assist-step{gap:6px;display:grid}.assist-step p{margin:0}.assist-actions{align-items:center;gap:8px;margin-top:4px;display:flex}.assist-actions .primary{flex:1;justify-content:center;align-items:center;gap:6px;display:inline-flex}.assist-mini{z-index:59;border:2px solid var(--accent);background:var(--card);color:var(--accent);box-shadow:var(--shadow);cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:8px 14px;font-weight:600;display:inline-flex;position:fixed;bottom:30px;right:88px}@media (width<=720px){.assist-fab{bottom:16px;right:16px}.assist-panel,.assist-window{bottom:84px;right:16px}}.shell-main main{padding-bottom:96px}.institution-layout{grid-template-columns:minmax(320px,520px) minmax(240px,320px);align-items:start;gap:24px;display:grid}.institution-layout .form{max-width:none}.institution-layout input[type=color]{cursor:pointer;width:44px;height:34px;padding:2px}.institution-side h3:first-child{margin-top:10px}.logo-frame{border:1px solid var(--line);background:#fff;border-radius:8px;justify-content:center;align-items:center;width:180px;height:120px;padding:10px;display:flex}.logo-frame img{object-fit:contain;max-width:100%;max-height:100%}label.button{border:1px solid var(--line);background:var(--card);cursor:pointer;border-radius:6px;align-items:center;gap:8px;padding:6px 12px;display:inline-flex}label.button.disabled{opacity:.5;cursor:default}.brand-preview{background:linear-gradient(180deg, var(--navy) 0%, var(--navy-2) 100%);border-radius:10px;align-items:center;gap:10px;margin-bottom:10px;padding:12px;display:flex}.brand-preview img{width:auto;height:34px}.brand-preview strong{color:#fff;font-size:14px;display:block}.brand-preview small{color:#9fb3cf;font-size:11px}@media (width<=900px){.institution-layout{grid-template-columns:1fr}}.sidebar-brand span{overflow-wrap:anywhere;min-width:0;font-size:16px;line-height:1.2;display:grid}.sidebar-brand small{color:#9fb3cf;font-size:11px;font-weight:400}.tt-week{gap:10px;display:grid;overflow-x:auto}.tt-day{border:1px solid var(--line);background:#fafbfd;border-radius:10px;align-content:start;gap:6px;min-width:140px;padding:8px;display:grid}.tt-day.today{border-color:var(--accent);box-shadow:inset 0 3px 0 var(--accent)}.tt-day h3{margin:0 0 2px;font-size:13px}.tt-card{text-align:left;cursor:pointer;font:inherit;border:1px solid #0000;border-radius:8px;gap:1px;padding:6px 8px;font-size:12.5px;line-height:1.3;display:grid}.tt-card:hover{border-color:currentColor}.tt-card em{font-style:normal;font-weight:600}.kv{grid-template-columns:minmax(120px,max-content) 1fr;gap:6px 14px;margin:0 0 14px;display:grid}.kv dt{color:var(--muted);font-size:13px}.kv dd{margin:0}.settings-grid{border:0;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px 18px;margin:0;padding:0;display:grid}.settings-grid label{gap:4px;font-size:13px;font-weight:600;display:grid}.settings-grid input[type=number]{width:80px}.sub-card{border:1px solid var(--line);border-radius:10px;margin:0 0 10px;padding:10px 14px}.sub-card h3{margin:0;font-size:15px}ul.term-list{margin:4px 0;padding:0;list-style:none}ul.term-list li{padding:2px 0}ul.term-list .link{margin-left:8px}.change-log{gap:8px;margin:0;padding:0;list-style:none;display:grid}.change-log li{border-left:3px solid var(--line);padding-left:10px}tr.clickable{cursor:pointer}tr.clickable:hover td{background:#f5f8fc}.filter-bar .grow{flex:1;min-width:200px}.inline-form.wide{max-width:none;margin-top:12px}@media (width<=720px){.kv{grid-template-columns:1fr}.kv dt{margin-top:6px}}label.file-button{border:1px solid var(--line);background:var(--card);cursor:pointer;border-radius:6px;align-items:center;gap:6px;padding:6px 12px;font-weight:600;display:inline-flex}label.file-button:hover{border-color:var(--accent)}.import .sched-form{margin:10px 0}
