.value-tiers-page td:first-child{width:300px;max-width:300px;overflow-wrap:anywhere}.value-tiers-page .value-tier-description-summary{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;max-width:288px;max-height:3em;overflow:hidden;overflow-wrap:anywhere;white-space:pre-wrap;margin:.6rem 0 0;color:var(--muted);font-size:.78rem;line-height:1.5}.value-tier-description-field{display:grid;gap:.55rem;min-width:0}.tier-editor>.value-tier-description-field{margin-top:1rem}.value-tier-description-field textarea{min-height:110px;max-height:260px;resize:vertical}.value-tier-description-field textarea[aria-invalid=true]{border-color:var(--red-dark)}.value-tier-description-feedback{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.35rem 1rem;margin:0;color:var(--muted);font-size:.75rem;line-height:1.5}.value-tier-description-feedback span:last-child{white-space:nowrap;margin-left:auto}textarea[aria-invalid=true]+.value-tier-description-feedback{color:var(--red-dark)}.prize-pool-editor{grid-column:1 / -1;min-width:0;border-top:1px solid var(--line, #e5d9c9);margin-top:12px;padding-top:18px}.prize-pool-editor>p{font-size:13px;line-height:1.7;color:#817460}.pool-characters{display:grid;gap:10px;max-height:420px;overflow:auto}.pool-characters details{border:1px solid #e5d9c9;border-radius:12px;padding:12px}.pool-characters summary{cursor:pointer;font-weight:650}.pool-characters summary span{float:right;color:#817460;font-weight:400;font-size:12px}.pool-prize-option{display:flex;gap:12px;align-items:center;padding:10px 0;margin:0!important}.pool-prize-option input,.pool-selected .checkbox input,.pool-characters .checkbox input{width:18px;height:18px;flex-shrink:0}.pool-prize-option small{display:block;margin-top:5px;color:#817460}.pool-total{display:flex;justify-content:space-between;gap:12px;padding:20px 0 8px}.pool-selected{padding:0;list-style:none}.pool-selected li{border:1px solid #e5d9c9;border-radius:12px;padding:12px;margin-bottom:10px;display:grid;grid-template-columns:minmax(0,1fr) 76px 38px;gap:12px;align-items:center}.pool-selected label{margin:0}.pool-selected input[type=number]{padding:8px}.pool-selected button{padding:5px 10px;min-height:30px;margin:2px 0}.pool-prize-title small{display:block;color:#817460;margin-top:8px}.pool-prize-title .checkbox{align-items:flex-start;overflow-wrap:anywhere}.configuration-tabs{margin:28px 32px 0;display:flex;gap:24px;border-bottom:1px solid var(--border, #e5d9c9)}.configuration-tabs button{background:transparent;border:0;border-bottom:3px solid transparent;border-radius:0;padding:12px 4px;color:inherit;font-weight:650}.configuration-tabs button[aria-current=page]{border-bottom-color:var(--accent, #b28b62)}.character-catalog-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:20px}.catalog-card{background:var(--surface, #fffcf7);border:1px solid var(--border, #e5d9c9);border-radius:18px;overflow:hidden;min-width:0}.catalog-card.selected{border-color:var(--accent, #b28b62);box-shadow:0 0 0 2px #b28b621c}.catalog-card-open{display:flex;text-align:left;align-items:center;gap:18px;width:100%;border:0;background:transparent;color:inherit;padding:20px}.catalog-card-open .catalog-cover{width:100px;height:116px;flex-shrink:0}.catalog-card h3,.catalog-card h4{margin:12px 0 8px;overflow-wrap:anywhere}.catalog-card p,.catalog-prizes header p{font-size:13px;color:var(--muted, #817460);line-height:1.7}.catalog-cover{height:190px;display:grid;grid-template-rows:minmax(0,1fr);place-items:center;overflow:hidden;background:#f5f0e7}.catalog-cover img,.content-asset-preview img{display:block;min-height:0;max-height:100%;max-width:100%;width:100%;height:100%;object-fit:contain}.catalog-search{display:block;max-width:480px;margin-bottom:24px;font-size:13px}.catalog-search input{margin-top:8px;width:100%}.catalog-card{position:relative}.catalog-drag-handle{position:absolute;top:8px;right:8px;z-index:1;border:1px solid #e5d9c9;border-radius:6px;background:#fffaf3;color:#817460;cursor:grab;padding:3px 8px}.catalog-drag-handle:active{cursor:grabbing}.content-image-placeholder{color:#8f8576;font-size:12px;padding:18px;text-align:center}.catalog-card-actions{display:flex;gap:8px;padding:14px 18px;border-top:1px solid var(--border, #e5d9c9);align-items:center;flex-wrap:wrap}.catalog-card-actions .secondary{padding:4px 10px;min-height:32px}.catalog-prizes{margin-top:36px}.catalog-prizes header{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:24px}.prize-catalog-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:20px}.catalog-card-copy{padding:16px 20px}.catalog-tier-tags{display:flex;gap:6px;flex-wrap:wrap;font-size:12px}.catalog-tier-tags span{background:#ede4d5;border-radius:6px;padding:3px 6px}.character-content-editor{width:min(1120px,96vw)!important;max-width:1120px!important}.content-helper{color:var(--muted, #817460);line-height:1.7;font-size:13px}.content-editor-layout{display:grid;grid-template-columns:170px minmax(0,1fr);gap:26px;margin-top:24px}.content-history{display:flex;flex-direction:column;gap:10px;align-self:start}.content-history button{text-align:left;padding:12px;background:#faf5eb;border:1px solid #e5d9c9;border-radius:12px}.content-history button.selected{border-color:#aa7947;background:#f5e5cb}.content-history span,.content-history small{display:block;margin-top:6px;font-size:12px}.content-editor-main{min-width:0}.content-editor-main fieldset{border:0;padding:0;min-width:0}.content-version-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center;padding-bottom:20px}.content-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px}.content-fields label:has(textarea){grid-column:1/-1}.content-fields textarea{width:100%;resize:vertical;min-height:100px}.content-assets{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.content-assets article{padding:14px;border:1px solid #e5d9c9;border-radius:14px;min-width:0}.content-assets small{display:block;overflow-wrap:anywhere;color:#817460;margin:6px 0}.content-asset-preview{margin-top:12px;height:150px;background:#f5f0e7;display:grid;place-items:center}.content-upload{font-size:13px}.content-upload input{max-width:100%;font-size:12px;padding:8px}.content-publish-review{padding:18px;background:#fff0cc;border-radius:12px;margin:0 0 20px;line-height:1.7}.content-publish-review button{margin-right:12px}@media(max-width:760px){.content-editor-layout{grid-template-columns:1fr}.content-history{flex-direction:row;overflow-x:auto}.content-history button{min-width:120px}.content-fields{grid-template-columns:1fr}.catalog-prizes header{align-items:flex-start;flex-direction:column}}@media(prefers-reduced-motion:reduce){.characters-page *,.character-content-editor *{transition:none!important;animation:none!important}}.medal-guide{display:flex;align-items:center;flex-wrap:wrap;gap:12px;padding:16px 20px;margin-bottom:24px;background:var(--surface, #fffcf7);border:1px solid var(--border, #e5d9c9);border-radius:14px}.medal-guide span{color:var(--accent, #9b764e);font-size:13px;font-weight:650}.medal-guide p{margin:0 0 0 auto;color:var(--muted, #817460);font-size:12px}.medal-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,350px),1fr));gap:20px}.medal-card{position:relative;min-width:0;border:1px solid var(--border, #e5d9c9);background:var(--surface, #fffcf7);border-radius:18px;overflow:hidden;display:flex;flex-direction:column}.medal-card.is-dragging{opacity:.55}.medal-card.is-drop-target{outline:2px dashed var(--accent, #9b764e);outline-offset:3px}.medal-card-head{display:flex;align-items:center;gap:18px;padding:22px 52px 22px 22px}.medal-drag-handle{position:absolute;top:10px;right:10px;z-index:1;min-width:32px;min-height:36px;padding:4px 8px;border:1px solid var(--border, #e5d9c9);border-radius:8px;background:var(--surface, #fffcf7);color:var(--muted, #817460);cursor:grab}.medal-drag-handle:active:not(:disabled){cursor:grabbing}.medal-drag-handle:disabled{cursor:not-allowed}.medals-page .catalog-search{margin-bottom:8px}.medal-sort-hint{margin:0 0 20px;color:var(--muted, #817460);font-size:12px;line-height:1.7}.medal-card-head>div:last-child{min-width:0}.medal-card h3{margin:12px 0 8px;font-size:20px;overflow-wrap:anywhere}.medal-card small{color:var(--muted, #817460)}.medal-art{width:90px;height:96px;display:grid;place-items:center;background:#f6eedf;border-radius:16px;flex-shrink:0;overflow:hidden}.medal-art img{width:100%;height:100%;object-fit:contain}.medal-card-body{padding:0 22px 20px;flex:1}.medal-card-body>p{margin:0 0 12px;font-size:13px;line-height:1.7}.medal-card-body>p>strong{display:block;color:var(--muted, #817460);font-size:11px;letter-spacing:.04em}.medal-draft-note{color:#886419;background:#fff3d7;border-radius:6px;padding:6px 9px;margin:8px 0;font-size:12px}.medal-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:14px 18px;border-top:1px solid var(--border, #e5d9c9)}.medal-actions button{font-size:12px;min-height:36px}.medal-actions .secondary{padding:6px 10px}.medal-order{display:flex;gap:6px;margin-left:auto}.medal-backfill{display:flex;flex-direction:column;gap:5px;padding-top:10px;color:var(--muted, #817460);font-size:12px}.medal-rule-editor{width:min(760px,96vw)!important;max-width:760px!important}.medal-fields{padding:0;border:0;min-width:0}.medal-fields label{display:block}.medal-fields input:not([type=checkbox]),.medal-fields select{width:100%}.medal-fields>.content-helper{margin:8px 0 16px}.medal-targets{padding:18px;border:1px solid var(--border, #e5d9c9);border-radius:14px;margin:18px 0}.medal-targets h4{margin:0 0 16px}.medal-targets h4 span{color:var(--muted, #817460);font-size:12px;font-weight:400}.medal-target-list{max-height:300px;overflow-y:auto}.medal-target-list details{padding:10px 0;border-bottom:1px solid var(--border, #e5d9c9)}.medal-target-list summary{cursor:pointer;font-size:14px;padding:4px 0}.medal-fields .medal-checkbox{display:flex;align-items:center;gap:8px;font-size:13px;margin:8px 0;padding:6px}.medal-checkbox input{margin:0;width:18px;height:18px;flex-shrink:0}.medal-selected{display:flex;flex-wrap:wrap;gap:6px;margin-top:16px}.medal-selected button{background:#f6e7ce;border:1px solid var(--border, #e5d9c9);color:inherit;font-size:12px;padding:6px 9px;border-radius:8px;overflow-wrap:anywhere;max-width:100%}.medal-rule-summary{padding:18px;margin:18px 0;border-radius:12px;background:#fff3d7;line-height:1.7;font-size:14px}.medal-rule-summary small{color:var(--muted, #817460)}.medal-history-entry{padding:20px 0;border-bottom:1px solid var(--border, #e5d9c9);line-height:1.6}.medal-history-entry code{display:block;font-size:12px;overflow-wrap:anywhere}@media(max-width:760px){.configuration-tabs{gap:14px;overflow-x:auto;white-space:nowrap}.medal-guide p{margin-left:0;width:100%}}@media(prefers-reduced-motion:reduce){.medals-page *,.medal-rule-editor *{transition:none!important;animation:none!important}}.weekly-guide{padding:18px 22px;margin-bottom:24px;border:1px solid var(--border);border-radius:16px;background:var(--surface);line-height:1.8}.weekly-guide p{margin:6px 0 0;color:var(--muted);font-size:13px}.weekly-status-tabs{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:20px}.weekly-status-tabs button{min-height:44px}.weekly-status-tabs [aria-pressed=true]{border-color:var(--accent);background:var(--surface);box-shadow:inset 0 -3px var(--accent)}.weekly-config-heading{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;align-items:start;margin:24px 0}.weekly-config-heading h3{margin:0 0 8px}.weekly-config-heading p{margin:0;color:var(--muted);font-size:13px;line-height:1.8}.weekly-schedule{padding:20px;margin-bottom:24px;border-radius:14px;background:var(--surface);border:1px solid var(--border)}.weekly-schedule-fields,.weekly-reward-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.weekly-schedule .content-helper{margin:12px 0 0;line-height:1.7}.weekly-reward-fields{margin-top:22px}.weekly-list{display:flex;flex-direction:column;gap:14px}.weekly-card{display:grid;grid-template-columns:68px minmax(0,1fr) auto;gap:18px;align-items:center;padding:20px;border:1px solid var(--border);border-radius:16px;background:var(--surface)}.weekly-card.is-drop-target{outline:2px dashed var(--accent)}.weekly-card-art{width:68px;height:76px;border-radius:12px;background:#fff3d7;display:grid;place-items:center;overflow:hidden}.weekly-card-art img{width:100%;height:100%;object-fit:contain}.weekly-card-art>span{color:var(--muted);font-size:12px;white-space:nowrap}.weekly-card h4{margin:0 0 8px;overflow-wrap:anywhere}.weekly-card p{margin:5px 0;font-size:13px;line-height:1.7}.weekly-card small{color:var(--muted);display:block}.weekly-card-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;max-width:250px}.weekly-card-actions button{min-height:36px;padding:7px 10px;font-size:12px}.weekly-save-bar{position:sticky;bottom:0;display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin:24px 0;padding:16px 20px;border:1px solid var(--border);border-radius:14px;background:var(--surface);z-index:2;box-shadow:0 -4px 20px #00000008}.weekly-save-bar span{margin-right:auto;font-size:13px;color:var(--muted)}.weekly-library-entry{padding:16px 0;border-bottom:1px solid var(--border)}.weekly-library-entry strong{display:block;margin-bottom:8px;overflow-wrap:anywhere}.weekly-library-entry .content-helper{margin:8px 0}.weekly-library-entry .button-row{margin-top:12px}.weekly-history-list{display:flex;flex-direction:column;gap:12px}@media(max-width:800px){.weekly-card{grid-template-columns:52px minmax(0,1fr);gap:12px;padding:16px}.weekly-card-art{width:52px;height:64px}.weekly-card-actions{grid-column:1 / -1;max-width:none;justify-content:flex-start}}@media(max-width:480px){.weekly-schedule-fields,.weekly-reward-fields{grid-template-columns:1fr}}.manual-services{max-width:1500px}.manual-guidance{background:var(--accent-soft);color:var(--accent-ink);padding:20px 24px;border-radius:14px;margin-bottom:24px}.manual-guidance p{margin:8px 0 0;font-size:14px;line-height:1.7}.manual-services .manual-lookup form{display:flex;gap:16px;align-items:end}.manual-lookup label{flex:1;max-width:520px;display:grid;gap:10px;margin:0}.manual-lookup small{display:block;color:var(--muted);margin-top:14px}.manual-player{margin-top:24px}.manual-player header,.manual-history header{display:flex;justify-content:space-between;align-items:center;gap:18px}.manual-player h3{margin:6px 0 10px;font-size:26px}.manual-player header small{line-height:1.8;color:var(--muted);text-align:right}.manual-account-id{font-size:12px;overflow-wrap:anywhere;color:var(--muted)}.manual-assets{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:22px}.manual-assets section{display:grid;grid-template-columns:1fr auto;gap:12px;border:1px solid var(--line);padding:22px;border-radius:12px;background:var(--subtle)}.manual-assets span{grid-column:1/-1;color:var(--muted)}.manual-assets strong{font-size:clamp(23px,2.5vw,34px);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.manual-history{margin-top:32px}.manual-history header{margin-bottom:14px}.manual-history td{max-width:240px;overflow-wrap:anywhere}.manual-history td small{display:block;color:var(--muted);margin-top:7px;font-size:12px}.manual-empty{padding:32px;color:var(--muted);text-align:center;margin-top:20px}.manual-result{margin:20px 0;padding:18px 20px;background:var(--accent-soft);color:var(--accent-ink);border-radius:12px;line-height:1.7}.manual-result button{margin-left:12px}.manual-adjustment{width:min(620px,94vw);max-height:90vh;overflow-y:auto}.manual-fields{border:0;padding:0;display:grid;gap:20px;margin:24px 0;min-width:0}.manual-fields label{display:grid;gap:10px;margin:0}.manual-fields textarea{min-height:90px;resize:vertical}.manual-preview{background:var(--subtle);padding:16px;border-radius:10px}.manual-preview p{color:var(--muted);margin:8px 0 0;line-height:1.7;font-size:13px}.manual-warning{border-left:3px solid #d58642}.manual-adjustment .button-row{justify-content:flex-end}@media(max-width:760px){.manual-assets{grid-template-columns:1fr}.manual-services .manual-lookup form{align-items:stretch;flex-direction:column}.manual-player header{align-items:flex-start;flex-direction:column}.manual-player header small{text-align:left}.manual-history .table-shell{overflow-x:auto}.manual-history table{min-width:620px}}:root{font-family:Inter,PingFang SC,Microsoft YaHei,system-ui,sans-serif;color:#111;background:#f5f1e9;font-synthesis:none;--ink:#111;--paper:#fff6eb;--card:#fff;--red:#ff3b30;--red-dark:#c71f17;--amber:#ffc83d;--blue:#3da5ff;--muted:#82786b;--line:#e8ddcd}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input,textarea,select{font:inherit}button{cursor:pointer}.login-layout{min-height:100vh;display:grid;grid-template-columns:minmax(360px,1.05fr) minmax(420px,.95fr);background:var(--ink);color:#fff}.login-brand{padding:9vh 8vw;display:flex;flex-direction:column;justify-content:space-between;background:radial-gradient(circle at 20% 20%,#333 0,transparent 36%),var(--ink)}.brand-mark{font-size:1.2rem;font-weight:900;letter-spacing:.14em}.login-brand h1{font-size:clamp(3rem,6vw,6.4rem);line-height:.94;letter-spacing:-.06em;margin:auto 0}.login-brand p{color:#c9c0b4}.login-card{color:var(--ink);background:var(--paper);padding:12vh clamp(2rem,7vw,7rem)}.tabs{display:flex;border-bottom:1px solid var(--line);margin-bottom:3rem}.tabs button{border:0;background:none;padding:1rem 0;margin-right:2rem;color:var(--muted);border-bottom:3px solid transparent}.tabs button[aria-selected=true]{color:var(--ink);border-color:var(--red);font-weight:800}.login-card h2{font-size:2.4rem;margin:.2rem 0 2rem}.login-card form,.panel form,.record-card form{display:grid;gap:1.25rem}label{display:grid;gap:.55rem;font-size:.86rem;font-weight:700;color:#514b43}input,textarea,select{width:100%;border:1px solid var(--line);border-radius:10px;background:#fff;padding:.8rem .9rem;color:var(--ink);outline:none}input:focus,textarea:focus,select:focus{border-color:var(--blue);box-shadow:0 0 0 3px #3da5ff22}.primary,.secondary,.danger{border-radius:10px;padding:.78rem 1.15rem;font-weight:800;border:1px solid var(--ink)}.primary{background:var(--red);border-color:var(--red);color:#fff}.secondary{background:#fff;color:var(--ink)}.danger{background:#fff0ef;color:var(--red-dark);border-color:#ffb4af}.security-note{font-size:.8rem;color:var(--muted);margin-top:1.5rem}.error-message{color:var(--red-dark);background:#fff0ef;border:1px solid #ffc2bd;border-radius:10px;padding:.8rem}.admin-shell{min-height:100vh;display:grid;grid-template-columns:248px 1fr}.sidebar{position:sticky;top:0;height:100vh;background:var(--ink);color:#fff;padding:1.6rem 1rem;display:flex;flex-direction:column}.sidebar-brand{display:flex;align-items:center;gap:.8rem;padding:0 .65rem 2.2rem}.sidebar-brand div,.sidebar-user div{display:grid}.sidebar-brand small,.sidebar-user small{color:#aaa49a}.logo-square{display:grid;place-items:center;width:42px;height:42px;background:var(--amber);color:var(--ink);border-radius:11px;font-size:1.4rem;font-weight:900}.sidebar nav{display:grid;gap:.4rem}.sidebar nav button{border:0;background:transparent;color:#c8c3bb;text-align:left;border-radius:10px;padding:.8rem;display:flex;gap:.75rem;align-items:center}.sidebar nav button .nav-glyph{width:28px;height:28px;border:1px solid #45423d;border-radius:7px;display:grid;place-items:center;font-size:.72rem;flex:0 0 auto}.nav-label{min-width:0}.sidebar nav button:hover,.sidebar nav button.active{background:#292825;color:#fff}.sidebar nav button.active .nav-glyph{background:var(--red);border-color:var(--red)}.sidebar-user{margin-top:auto;padding:1rem .5rem 0;border-top:1px solid #34322f;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.65rem}.sidebar-user>button{background:none;color:#aaa;border:0;font-size:1.3rem}.avatar{width:34px;height:34px;border-radius:50%;background:var(--blue);display:grid;place-items:center;font-weight:900}.workspace{min-width:0;background:#f5f1e9}.topbar{height:58px;background:#fff;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:0 2rem;font-size:.78rem;color:var(--muted)}.environment-dot:before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:#2ca66f;margin-right:.5rem}.workspace-section{padding:2rem clamp(1.2rem,3vw,3rem) 4rem;max-width:1500px}.page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:2rem}.eyebrow{font-size:.68rem;letter-spacing:.18em;font-weight:900;color:var(--red);margin:0}.page-header h2{font-size:2rem;margin:.35rem 0}.page-header p{margin:0;color:var(--muted)}.store-toolbar{display:flex;align-items:center;justify-content:flex-start;gap:.7rem;margin:-.9rem 0 1.35rem}.count-pill,.status,.tier{display:inline-flex;align-items:center;border-radius:999px;padding:.35rem .65rem;font-size:.72rem;font-weight:800}.count-pill{background:#fff;border:1px solid var(--line)}.status.active,.status.online{background:#dff6ea;color:#127548}.status.inactive,.status.offline{background:#eeeae4;color:#655e56}.status.busy{background:#fff0c7;color:#7d5a00}.status.abnormal{background:#ffe2df;color:#a3261e}.tier{background:#111;color:#fff}.record-card,.panel,.table-shell{background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 8px 26px #3e322411}.record-card{padding:1.25rem}.record-card-head{display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:.78rem}.record-card code{display:block;color:var(--muted);margin:1.3rem 0 .8rem}.notice{background:#e8f7ef;border:1px solid #b6e1ca;color:#176c49;border-radius:10px;padding:.8rem 1rem}.table-shell{overflow:auto}table{border-collapse:collapse;width:100%;min-width:850px}th,td{text-align:left;padding:1rem;border-bottom:1px solid #eee7dc;font-size:.82rem;vertical-align:middle}th{font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);background:#fcfaf6}td small{display:block;color:var(--muted);margin-top:.35rem}.text-button,.back-button{border:0;background:none;color:var(--red-dark);font-weight:800;padding:.5rem}.table-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .875rem}.empty-state{text-align:center;padding:4rem;color:var(--muted)}.empty-state h3{color:var(--ink)}.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.panel{padding:1.3rem}.panel h3{margin-top:0}.panel dl{margin:0 0 1.3rem}.panel dl div{display:flex;justify-content:space-between;padding:.8rem 0;border-bottom:1px solid #eee7dc}.panel dt{color:var(--muted)}.panel dd{font-weight:700;margin:0}.danger-panel{grid-column:1/-1;border-color:#f0b5b1}.button-row{display:flex;gap:.7rem;justify-content:flex-end}.mono{font-family:ui-monospace,monospace}.modal-backdrop{position:fixed;inset:0;background:#111b;display:grid;place-items:center;padding:1rem;z-index:10}.modal{background:#fff;border-radius:16px;padding:1.5rem;width:min(480px,100%);box-shadow:0 24px 80px #0007}.modal h3{margin-top:0}.modal form{display:grid;gap:1.25rem;margin-top:1.25rem}.modal-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.modal-title-row h3{margin:.35rem 0 0}.modal-close{border:0;background:#f3eee7;color:var(--ink);border-radius:50%;width:36px;height:36px;font-size:1.3rem;line-height:1}.one-time-secret{margin-top:1.5rem;background:#fff4ca;border:1px solid #e3c95e;padding:1rem;border-radius:10px;display:grid;gap:.6rem}.one-time-secret code{overflow-wrap:anywhere}.narrow-panel{max-width:650px}fieldset{border:1px solid var(--line);border-radius:10px}.checkbox{display:flex;align-items:center;gap:.6rem}.checkbox input{width:auto}.loading-screen{min-height:100vh;display:grid;place-content:center;text-align:center;background:var(--paper);color:var(--muted)}.loading-mark{margin:auto;width:54px;height:54px;display:grid;place-items:center;border-radius:14px;background:var(--amber);color:var(--ink);font-weight:900;font-size:1.6rem}.loading-mark.error{background:var(--red);color:#fff}.muted-copy,.loading-inline{color:var(--muted)}.workspace-error{margin:1rem clamp(1.2rem,3vw,3rem) 0}.create-store-modal{width:min(560px,100%)}.store-key{color:var(--muted);white-space:nowrap}.policy-checkbox{align-self:center}.policy{display:inline-flex;border-radius:999px;padding:.32rem .6rem;font-size:.7rem;font-weight:800}.policy.enabled{background:#dff6ea;color:#127548}.policy.disabled{background:#ffe2df;color:#a3261e}.record-card h3{margin:1rem 0 .35rem}.record-card-foot,.panel-title-row{display:flex;align-items:center;justify-content:space-between;gap:.8rem}.credential-panel label{margin:1rem 0}.credential-panel input[readonly]{font-family:ui-monospace,monospace;background:#f7f4ef;color:#4d4841}.lock-badge{border:1px solid var(--line);border-radius:999px;padding:.28rem .6rem;color:var(--muted);font-size:.7rem;font-weight:800}.filter-bar{display:flex;align-items:end;gap:.8rem;background:#fff;border:1px solid var(--line);border-radius:14px;padding:1rem;margin-bottom:1rem;flex-wrap:wrap}.filter-bar label{min-width:190px;flex:1}.filter-bar button{flex:0 0 auto}.device-firmware-controls{display:flex;align-items:center;gap:.65rem;flex-wrap:wrap}.selected-firmware{display:grid;grid-template-columns:auto minmax(220px,1fr) auto;align-items:center;gap:.45rem 1rem;background:#fff4ca;border:1px solid #e3c95e;border-radius:12px;padding:.85rem 1rem;margin-bottom:1rem}.selected-firmware strong{white-space:nowrap}.selected-firmware span{color:#514b43}.selected-firmware small{color:var(--muted);text-align:right}.firmware-modal{width:min(680px,100%);max-height:calc(100vh - 2rem);overflow:auto}.firmware-update-modal{width:min(760px,100%)}.firmware-version-list{display:grid;gap:.7rem;margin:1rem 0;max-height:48vh;overflow:auto}.firmware-version-option{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:.9rem;border:1px solid var(--line);border-radius:12px;padding:1rem;background:#fff;cursor:pointer}.firmware-version-option.selected{border-color:var(--red);box-shadow:0 0 0 2px #ff3b3020;background:#fff9f4}.firmware-version-option input{width:auto;margin:0;accent-color:var(--red)}.firmware-version-option span{display:grid;grid-template-columns:1fr auto;align-items:center;gap:.25rem .8rem}.firmware-version-option small{grid-column:1/-1;color:var(--muted)}.firmware-version-option em{font-size:.7rem;font-style:normal;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:.2rem .45rem}.full-width{width:100%}.empty-state.compact{padding:2rem}.firmware-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem;margin:1rem 0}.firmware-summary div{display:grid;gap:.25rem;background:#f8f5ef;border-radius:10px;padding:.75rem}.firmware-summary .wide{grid-column:1/-1}.firmware-summary dt{font-size:.7rem;color:var(--muted)}.firmware-summary dd{margin:0;font-weight:800;overflow-wrap:anywhere}.active-firmware-tasks{border:1px solid var(--line);border-radius:12px;padding:.85rem;max-height:200px;overflow:auto}.active-firmware-tasks h4{margin:.1rem 0 .8rem}.active-firmware-tasks article{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;padding:.65rem 0;border-top:1px solid #eee7dc;font-size:.78rem}.active-firmware-tasks article:first-of-type{border-top:0}.active-firmware-tasks article div{display:flex;gap:.65rem;align-items:center;flex-wrap:wrap}.active-firmware-tasks article div:last-child{justify-content:flex-end;color:var(--muted)}.force-switch{display:flex;align-items:center;justify-content:space-between;border:1px solid var(--line);border-radius:12px;padding:.8rem 1rem}.force-switch input[role=switch]{appearance:none;width:48px;height:26px;padding:0;border:0;border-radius:999px;background:#d8d1c8;position:relative;transition:background .18s ease;box-shadow:none}.force-switch input[role=switch]:before{content:"";position:absolute;width:20px;height:20px;top:3px;left:3px;border-radius:50%;background:#fff;box-shadow:0 1px 5px #0003;transition:transform .18s ease}.force-switch input[role=switch]:checked{background:var(--red)}.force-switch input[role=switch]:checked:before{transform:translate(22px)}.force-tips{background:#fff8dc;border:1px solid #eadb9c;border-radius:10px;padding:.65rem .8rem;color:#6c5a1c;font-size:.76rem;line-height:1.55}.force-tips p{margin:.25rem 0}.firmware-log-layout{display:grid;grid-template-columns:minmax(420px,.9fr) minmax(420px,1.1fr);gap:1rem;align-items:start}.firmware-task-history,.firmware-event-timeline{min-width:0}.firmware-task-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.65rem;align-items:center;border:1px solid var(--line);border-radius:11px;margin:.65rem 0;padding:.45rem}.firmware-task-row.selected{border-color:var(--blue);box-shadow:0 0 0 2px #3da5ff1f}.firmware-task-main{border:0;background:transparent;text-align:left;display:grid;grid-template-columns:minmax(130px,1fr) minmax(140px,1fr) auto;gap:.7rem;align-items:center;padding:.55rem;min-width:0;color:var(--ink)}.firmware-task-main>span{display:grid;gap:.25rem;min-width:0}.firmware-task-main small,.firmware-task-main time{font-size:.7rem;color:var(--muted)}.firmware-task-main time{white-space:nowrap}.compact-button{padding:.5rem .65rem;font-size:.74rem}.pagination-row.split{gap:.7rem;flex-wrap:wrap;padding:1rem 0 0}.firmware-event-timeline>article{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:.75rem;padding:.9rem 0;border-bottom:1px solid #eee7dc}.timeline-sequence{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--ink);color:#fff;font-size:.7rem;font-weight:900}.firmware-event-timeline article>div{display:grid;gap:.25rem;min-width:0}.firmware-event-timeline article>div:last-child{text-align:right;align-content:start}.firmware-event-timeline small,.firmware-event-timeline time{font-size:.7rem;color:var(--muted)}.firmware-event-timeline p{font-size:.72rem;color:var(--muted);overflow-wrap:anywhere;margin:.25rem 0 0}.pagination-row{display:flex;justify-content:center;padding:1.2rem}.log-list{display:grid;gap:.75rem}.log-row{display:grid;grid-template-columns:180px minmax(220px,1fr) minmax(300px,1.2fr);gap:1rem;align-items:center;background:#fff;border:1px solid var(--line);border-radius:14px;padding:1rem}.log-row>div{display:grid;gap:.35rem}.log-row time,.log-row small{color:var(--muted);font-size:.75rem}.log-row dl{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;margin:0}.log-row dl div{min-width:0}.log-row dt{font-size:.68rem;color:var(--muted)}.log-row dd{margin:.2rem 0 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.8rem}.registration-history{grid-column:1/-1}.registration-history dd{display:grid;text-align:right;gap:.25rem}.registration-history small{color:var(--muted);font-weight:400}.serial-monitor-modal{width:min(980px,100%);max-height:calc(100vh - 2rem);overflow:auto}.serial-monitor-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem;margin:1rem 0}.serial-monitor-summary>*{display:grid;place-items:center;min-height:52px;background:#f8f5ef;border:1px solid var(--line);border-radius:10px;font-size:.8rem;font-weight:800}.serial-monitor-summary .connection:before{content:"";width:7px;height:7px;border-radius:50%;background:#8d857b;margin-right:.45rem;display:inline-block}.serial-monitor-summary .connection.connected:before{background:#2ca66f}.serial-monitor-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:.85rem 0;color:var(--muted);font-size:.75rem}.serial-monitor-filters{display:flex;flex-wrap:wrap;gap:.4rem 1.2rem;margin:.6rem 0}.serial-monitor-filters label{display:inline-flex;align-items:center;gap:.5rem;min-height:36px;font-size:.8rem;cursor:pointer}.serial-monitor-filters input{width:16px;height:16px;padding:0;margin:0;accent-color:var(--blue);cursor:pointer}.serial-monitor-frames{height:min(48vh,440px);overflow:auto;background:#171715;border:1px solid #2d2d29;border-radius:12px;padding:.55rem;color:#f5f1e9;scrollbar-color:#625e57 #24231f}.serial-monitor-frames .empty-state{color:#999288}.serial-monitor-frame{display:grid;grid-template-columns:132px 58px 94px auto minmax(0,1fr);align-items:start;gap:.6rem;padding:.55rem;border-bottom:1px solid #302f2b;font-size:.75rem}.serial-monitor-frame .direction{white-space:nowrap}.serial-monitor-frame:last-child{border-bottom:0}.serial-monitor-frame time{color:#aaa49a;white-space:nowrap}.serial-monitor-frame code{grid-column:5;overflow-wrap:anywhere;color:#fff;letter-spacing:.06em;line-height:1.45}.direction,.truncated-badge{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:.2rem .4rem;font-size:.65rem;font-weight:900}.direction.tx{background:#173b5c;color:#8dcaff}.direction.rx{background:#164331;color:#8ce7b9}.truncated-badge{background:#5c4313;color:#ffe19a;white-space:nowrap}.serial-monitor-stop{border-top:1px solid var(--line);margin-top:1rem;padding-top:1rem}@media(max-width:850px){.login-layout{grid-template-columns:1fr}.login-brand{min-height:300px}.login-brand h1{font-size:3.2rem;margin:3rem 0}.admin-shell{grid-template-columns:76px 1fr}.sidebar{padding:1rem .55rem}.sidebar-brand div,.sidebar-user div,.sidebar .nav-label{display:none}.sidebar nav button{justify-content:center}.sidebar nav button .nav-glyph{font-size:.7rem}.sidebar-user{grid-template-columns:1fr}.avatar{margin:auto}.sidebar-user>button{display:grid;place-items:center;width:36px;height:36px;margin:auto;border:1px solid #45423d;border-radius:9px}.detail-grid{grid-template-columns:1fr}.danger-panel{grid-column:auto}.page-header{gap:1rem}.log-row{grid-template-columns:1fr 1fr}.log-row dl{grid-column:1/-1}.firmware-log-layout{grid-template-columns:1fr}.serial-monitor-frame{grid-template-columns:132px 52px 1fr auto}.serial-monitor-frame code{grid-column:1/-1}}@media(max-width:560px){.login-card{padding:3rem 1.4rem}.login-brand{padding:2rem}.workspace-section{padding:1.4rem .8rem}.topbar{padding:0 1rem}.admin-shell{grid-template-columns:62px 1fr}.page-header{display:block}.page-header .count-pill{margin-top:1rem}.store-toolbar{margin-top:-.85rem}.button-row{flex-direction:column}.button-row button{width:100%}.filter-bar{display:grid}.filter-bar button{width:100%}.device-firmware-controls{display:grid}.selected-firmware{grid-template-columns:1fr}.selected-firmware small{text-align:left}.firmware-summary{grid-template-columns:1fr 1fr}.firmware-task-main,.firmware-task-row{grid-template-columns:1fr}.firmware-task-row>.danger{width:100%}.active-firmware-tasks article{grid-template-columns:1fr}.active-firmware-tasks article div:last-child{justify-content:flex-start}.log-row{grid-template-columns:1fr}.log-row dl{grid-column:auto;grid-template-columns:1fr}.serial-monitor-summary{grid-template-columns:1fr}.serial-monitor-frame{grid-template-columns:48px minmax(0,1fr)}.serial-monitor-frame .direction,.serial-monitor-frame .truncated-badge{grid-column:1/-1;justify-self:start}}.occupancy-summary{display:grid;gap:.2rem;margin:.5rem 0;color:var(--muted);font-size:.78rem;line-height:1.5}.occupancy-summary strong{color:var(--ink);font-size:.9rem;letter-spacing:.03em}.occupancy-summary small{margin:0;font-size:.75rem}.occupancy-row-actions{display:grid;justify-items:start;gap:.15rem;margin-top:.4rem}.occupancy-row-actions .text-button{font-size:.75rem;padding:.35rem 0;text-align:left}.occupancy-panel{grid-column:1/-1;min-width:0}.occupancy-details{min-width:0}.occupancy-details>.occupancy-summary{border-left:3px solid var(--amber);padding:.45rem .8rem;background:#fffbef;border-radius:0 8px 8px 0}.occupancy-details dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 1.2rem;margin:1rem 0}.occupancy-details dl div{display:grid;grid-template-columns:90px minmax(0,1fr);gap:.6rem;border-bottom:1px solid var(--line);padding:.65rem 0;align-items:start;font-size:.76rem;line-height:1.5}.occupancy-details dt{color:var(--muted)}.occupancy-details dd{margin:0;min-width:0;font-weight:600;overflow-wrap:anywhere}.occupancy-modal{width:min(720px,100%);max-height:calc(100dvh - 2rem);overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable;outline:none}.occupancy-modal .modal-title-row{position:sticky;top:-1.5rem;z-index:1;background:#fff;padding:.65rem 0;border-bottom:1px solid var(--line)}.occupancy-modal .modal-close{flex:0 0 36px}.occupancy-modal .eyebrow{font-size:.62rem;letter-spacing:.1em}.occupancy-warning{padding:.85rem 1rem;border:1px solid #eac973;border-radius:10px;background:#fff5d6;color:#6a4b0c;font-size:.82rem;line-height:1.65}.occupancy-feedback{border:1px solid #d8c995;background:#fffbef;border-radius:10px;padding:.8rem;color:#695518;font-size:.82rem;line-height:1.6}.occupancy-request{font-size:.72rem;color:var(--muted);line-height:1.6;overflow-wrap:anywhere}.occupancy-confirm{display:flex;align-items:flex-start;gap:.7rem;font-size:.82rem;line-height:1.65}.occupancy-confirm input{flex:0 0 18px;width:18px;height:18px;margin:4px 0 0;padding:0;accent-color:var(--red)}.occupancy-modal form{gap:.9rem}.occupancy-modal textarea{resize:vertical;min-height:72px;max-height:180px}.occupancy-modal form>small{font-size:.7rem;color:var(--muted);margin-top:-.5rem}.occupancy-modal button:disabled{opacity:.5;cursor:not-allowed}.occupancy-modal button:focus-visible,.occupancy-row-actions button:focus-visible,.occupancy-panel button:focus-visible{outline:3px solid var(--blue);outline-offset:3px}.occupancy-device-page .page-header .mono,.occupancy-device-page .panel dd{overflow-wrap:anywhere;min-width:0}.configuration-subnav{display:flex;gap:.5rem;margin:-.5rem 0 1.2rem;border-bottom:1px solid var(--line)}.configuration-subnav span{display:inline-flex;padding:.65rem .2rem;border-bottom:3px solid var(--red);font-weight:800}.page-actions{display:flex;align-items:center;justify-content:flex-end;gap:.7rem;flex-wrap:wrap}.value-tiers-page table{min-width:1040px}.value-tiers-page td:first-child{min-width:245px}.config-status{display:inline-flex;border-radius:999px;padding:.32rem .6rem;font-size:.7rem;font-weight:800;white-space:nowrap}.config-status.active{background:#dff6ea;color:#127548}.config-status.draft{background:#fff0c7;color:#7d5a00}.config-status.inactive{background:#eeeae4;color:#655e56}.loading-state{color:var(--muted);padding:.5rem 0}.tier-editor{width:min(620px,100%);max-height:calc(100dvh - 2rem);overflow:auto}.tier-editor>label,.profile-panel>label{display:grid;gap:.45rem;margin-top:1rem}.readonly-facts{display:grid;gap:.6rem;margin:0 0 1rem!important}.readonly-facts div{display:grid!important;grid-template-columns:100px minmax(0,1fr);gap:.8rem!important;padding:.55rem 0!important}.readonly-facts dd{overflow-wrap:anywhere}.change-review{display:grid;gap:.5rem;background:#f8f5ef;border:1px solid var(--line);border-radius:12px;padding:1rem;margin:1rem 0}.change-review p{margin:0;font-weight:800}.profile-panel{min-width:0}.profile-panel .panel-hint{color:var(--muted);font-size:.78rem;line-height:1.55}.profile-panel textarea{min-height:120px;resize:vertical}.profile-panel label small{color:var(--muted);text-align:right}.profile-alert{display:flex;align-items:center;justify-content:space-between;gap:1rem;color:var(--red-dark);background:#fff0ef;border:1px solid #ffc2bd;border-radius:10px;padding:.8rem 1rem;margin:.8rem 0}.profile-alert p{margin:0}@media(max-width:560px){.occupancy-details dl{grid-template-columns:1fr}.occupancy-details dl div{grid-template-columns:80px minmax(0,1fr)}.occupancy-modal{padding:1rem;scrollbar-gutter:auto}.occupancy-modal .modal-title-row{top:-1rem}.occupancy-modal .eyebrow{max-width:170px;line-height:1.5}.occupancy-device-page .panel{padding:1rem;min-width:0}.occupancy-device-page .panel>dl>div{flex-wrap:wrap;gap:.4rem}.page-actions{justify-content:flex-start;margin-top:1rem}.profile-alert{display:grid}.tier-editor{padding:1rem}}:root{color:#303936;background:#f6f7f5;--ink: #303936;--paper: #f6f7f5;--red: #b95647;--red-dark: #a73d4e;--blue: #4a827a;--muted: #6d7771;--line: #e0e5df}body{font-size:14px;line-height:1.5}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible{outline:3px solid #80aaa0;outline-offset:3px}button:disabled{cursor:not-allowed;opacity:.5}label{color:#4c5650;font-weight:600;gap:6px}input,select,textarea{border-radius:8px;padding:10px 12px}input:focus,select:focus,textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px #4a827a18}textarea{resize:vertical}.primary,.secondary,.danger{min-height:38px;border-radius:8px;padding:8px 15px;font-size:13px;font-weight:600;transition:background .15s,border-color .15s}.primary:hover:not(:disabled){background:#a6493c;border-color:#a6493c}.secondary{border-color:#d7ddd6}.secondary:hover:not(:disabled){background:#f1f5f1;border-color:#a7b8ae}.danger{color:#a53e52;background:#fff8f9;border-color:#eed1d8}.danger:hover:not(:disabled){background:#fbe9ee;border-color:#dcacb7}.text-button,.back-button{color:#426d62;font-weight:600;border-radius:6px}.text-button:hover:not(:disabled),.back-button:hover{background:#edf4ee}.admin-shell{grid-template-columns:224px minmax(0,1fr)}.sidebar{background:#f0f3ef;border-right:1px solid var(--line);color:var(--ink);padding:28px 14px 20px}.sidebar-brand{padding:0 10px 26px;gap:10px}.sidebar-brand strong{font-size:17px;letter-spacing:.02em}.sidebar-brand small,.sidebar-user small{color:var(--muted);font-size:11px}.logo-square{width:38px;height:38px;border-radius:12px;background:#efe1c3;color:#655438;font-size:23px}.sidebar-section-label{margin:8px 14px 10px;font-size:11px;color:#77827a;letter-spacing:.12em}.sidebar nav{gap:5px}.sidebar nav button{min-height:46px;color:#636e66;padding:9px 12px;font-size:13px;font-weight:500}.sidebar nav button .nav-glyph{width:26px;height:26px;border-color:#d9e0d8;border-radius:7px;background:#f9fbf8}.sidebar nav button:hover{background:#e6ece5;color:#344a3f}.sidebar nav button.active{background:#fff;color:#385e4e;box-shadow:0 1px 4px #23332909;font-weight:600}.sidebar nav button.active .nav-glyph{background:#e7f0e8;border-color:#d7e6da;color:#426d53}.sidebar-user{border-color:#dce3da;font-size:12px}.sidebar-user>button{color:#717c73}.avatar{background:#dce9e3;color:#4d6b5c;font-weight:600}.workspace{background:#f6f7f5}.topbar{background:#fafbf9;height:54px;padding:0 28px;font-size:12px}.workspace-section{padding:28px clamp(18px,2.2vw,36px) 48px;max-width:1760px;margin:0 auto}.page-header{gap:20px;margin-bottom:24px}.page-header h2{font-size:26px;letter-spacing:-.025em;font-weight:650;margin:5px 0 7px}.page-header p{font-size:13px;line-height:1.7}.page-header .eyebrow,.eyebrow{font-size:10px;font-weight:650;color:#8b958d;letter-spacing:.14em}.page-header .primary{margin-top:8px}.record-card,.panel,.table-shell,.filter-bar{border-radius:12px;box-shadow:0 2px 6px #23332903}.panel{padding:22px}.panel h3{font-size:16px;font-weight:650;margin-bottom:18px}.panel dl div{border-color:#edf0eb;gap:16px;padding:10px 0;font-size:13px}.panel dd{font-weight:500;text-align:right}.panel-hint,.panel>p{color:var(--muted);font-size:13px}.count-pill{color:#738074;font-weight:500;background:#f7f9f5}.filter-bar{gap:12px;padding:16px;margin-bottom:16px}.filter-bar label{min-width:180px;max-width:360px}.device-firmware-controls{margin-left:auto}.filter-bar input,.filter-bar select{min-height:40px}.selected-firmware{background:#edf4ef;border-color:#d6e5d9;padding:12px 16px;font-size:12px}.selected-firmware span{color:#536b5c}th,td{padding:15px 17px;border-color:#edf0eb;font-size:13px}th{background:#f9faf7;font-size:11px;font-weight:600;letter-spacing:.035em;color:#7a857c;white-space:nowrap}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#fafcf9}td strong{font-weight:600}td small{font-size:11px;margin-top:5px}.status,.tier,.config-status,.policy{width:fit-content;max-width:100%;gap:7px;font-size:12px;font-weight:600;line-height:1.4;padding:5px 10px;white-space:nowrap}.status:before,.config-status:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;flex:0 0 6px;opacity:.85}.status.active,.status.online,.config-status.active,.policy.enabled{background:#e8f3ec;color:#357350}.status.busy,.config-status.draft{background:#fbf2dc;color:#8a641e}.status.offline,.status.inactive,.config-status.inactive{background:#eeebed;color:#71676e}.status.abnormal,.policy.disabled{background:#fbe9ee;color:#b14660}.tier{border-radius:7px;white-space:normal;overflow-wrap:anywhere;text-align:left}.tier-mark{width:6px;height:6px;transform:rotate(45deg);background:currentColor;flex:0 0 6px;opacity:.65}.tier-tone-0{background:#e8f0fb;color:#466895}.tier-tone-1{background:#e5f3ee;color:#3c7563}.tier-tone-2{background:#fbebdf;color:#986541}.tier-tone-3{background:#f0eafb;color:#796097}.tier-tone-4{background:#f8f1d8;color:#887224}.tier-tone-5{background:#e3f2f5;color:#3b7481}.tier-tone-6{background:#f9eaf1;color:#9b5d79}.tier-tone-7{background:#edf1df;color:#6d7a3a}.devices-page table{min-width:1040px}.devices-page .table-actions{display:grid;grid-template-columns:max-content max-content;gap:6px 12px}.devices-page .table-actions .text-button{padding:4px 0;font-size:12px;text-align:left}.devices-page .table-actions .text-button:first-child{color:#303936;font-weight:650}.heartbeat-cell{font-size:12px;font-variant-numeric:tabular-nums}.occupancy-summary{margin:6px 0;font-size:12px}.occupancy-summary strong{font-size:13px}.occupancy-row-actions{display:flex;gap:10px;flex-wrap:wrap}.occupancy-row-actions .text-button{font-size:11px;padding:4px 0}.configuration-subnav{margin:-8px 0 22px;font-size:13px}.configuration-subnav span{font-weight:600;border-bottom-width:2px}.value-tiers-page table{min-width:1060px}.value-tiers-page td:first-child{min-width:210px;width:250px}.value-tiers-page .value-tier-description-summary{margin-top:8px;font-size:12px}.modal-backdrop{background:#26332e57;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:30}.modal{border-radius:14px;box-shadow:0 16px 64px #15271b29;max-height:calc(100dvh - 32px);overflow-y:auto}.modal:focus{outline:none}.modal h3{font-size:20px;font-weight:650}.modal p{font-size:13px;line-height:1.7}.modal-close{border-radius:8px;background:#f2f5f0;color:#738076;flex:0 0 36px}.modal-close:hover:not(:disabled){background:#e7ede5;color:#334738}.drawer-backdrop{place-items:stretch end;padding:0}.drawer-surface{width:min(920px,calc(100vw - 56px));height:100dvh;max-height:100dvh;padding:24px 32px;border-radius:16px 0 0 16px;overscroll-behavior:contain;scrollbar-gutter:stable;animation:drawer-enter .2s ease-out}.drawer-surface>.modal-title-row{position:sticky;top:-24px;z-index:2;background:#fff;padding:14px 0 18px;margin-bottom:0;border-bottom:1px solid var(--line)}.drawer-surface .modal-title-row h3{margin-top:4px}.drawer-surface .modal-title-row .eyebrow{color:#889389}.drawer-surface .button-row{position:sticky;bottom:-24px;z-index:1;padding:16px 0;margin-top:12px;border-top:1px solid var(--line);background:#fff}.tier-editor{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 24px;align-content:start}.tier-editor>.modal-title-row,.tier-editor>p,.tier-editor>form,.tier-editor>.readonly-facts,.tier-editor>.button-row,.tier-editor>.profile-alert{grid-column:1 / -1}.tier-editor>p{margin:0;color:var(--muted)}.tier-editor>label{margin-top:0}.tier-editor form{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 24px;margin-top:0}.tier-editor form>.button-row,.tier-editor form>.error-message{grid-column:1 / -1}.tier-editor .value-tier-description-field{grid-column:1 / -1;order:2;margin:0}.tier-editor .button-row,.tier-editor .profile-alert,.tier-editor .error-message{order:3}.value-tier-description-field textarea{min-height:110px;max-height:220px}.readonly-facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px 20px;background:#f7f9f5;border:1px solid #e6ebe2;border-radius:10px;padding:10px 14px;margin:0!important;font-size:12px}.readonly-facts div{grid-template-columns:72px minmax(0,1fr);align-items:start;gap:8px!important;padding:2px 0!important}.readonly-facts div:first-child{grid-column:1 / -1}.readonly-facts dt{color:var(--muted)}.readonly-facts dd{margin:0}.tier-confirmation{width:min(560px,100%);padding:28px}.change-review{background:#f6f8f3;border-color:#e1e8d9}.create-store-modal.drawer-surface{width:min(820px,calc(100vw - 56px))}.create-store-modal form{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.create-store-modal .policy-checkbox,.create-store-modal .error-message,.create-store-modal .button-row{grid-column:1 / -1}.firmware-upload-drawer form{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 24px}.firmware-upload-drawer form>label:first-child,.firmware-upload-drawer form>label:has(textarea),.firmware-upload-drawer form>.button-row{grid-column:1 / -1}.firmware-upload-drawer form>label:has(textarea){order:1}.firmware-upload-drawer form>.button-row{order:2}.firmware-upload-drawer textarea{min-height:120px}.firmware-selection-drawer .firmware-version-list{grid-template-columns:repeat(2,minmax(0,1fr));max-height:none;overflow:visible}.firmware-version-option.selected{border-color:#8baa95;background:#f3f8f1;box-shadow:0 0 0 1px #8baa9522}.firmware-version-option input{accent-color:#527a5f}.firmware-version-option{font-size:13px;padding:16px}.firmware-version-option span{min-width:0;overflow-wrap:anywhere}.occupancy-device-page .profile-panel,.occupancy-device-page .runtime-panel{order:0}.occupancy-device-page .occupancy-panel{order:1}.occupancy-device-page .registration-history{order:2}.occupancy-device-page .danger-panel{order:3}.profile-panel textarea{min-height:96px}.profile-tier-preview{display:flex;align-items:center;gap:8px;margin:10px 0;color:var(--muted);font-size:12px}.profile-panel>button{margin-top:18px}.registration-history dl{display:grid;grid-template-columns:1fr 1fr;gap:24px}.danger-panel{border-color:#ead9dc;background:#fffdfd}.danger-panel .button-row{justify-content:flex-start;flex-wrap:wrap;margin-top:20px}.occupancy-modal{width:min(920px,100%)}.occupancy-details dl{grid-template-columns:repeat(3,minmax(0,1fr))}.occupancy-details dl div{grid-template-columns:76px minmax(0,1fr);gap:8px}.serial-monitor-modal{width:min(1100px,100%)}.log-row{border-radius:10px;border-color:var(--line)}.firmware-summary div,.serial-monitor-summary>*{background:#f4f7f1}.empty-state h3{font-size:17px;font-weight:600}@keyframes drawer-enter{0%{opacity:.5;transform:translate(24px)}to{opacity:1;transform:translate(0)}}@media(max-width:1100px){.admin-shell{grid-template-columns:80px minmax(0,1fr)}.sidebar{padding:24px 10px}.sidebar-brand{padding:0 10px 24px}.sidebar-brand div,.sidebar-section-label,.sidebar nav .nav-label,.sidebar-user>div{display:none}.sidebar nav button{justify-content:center;padding:10px}.sidebar-user{grid-template-columns:1fr;justify-items:center;gap:12px}.device-firmware-controls{margin-left:0}.occupancy-details dl{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.detail-grid,.registration-history dl{grid-template-columns:1fr}.registration-history dl{gap:0}.page-header{flex-wrap:wrap;gap:12px}.page-actions{margin-top:0}.drawer-surface,.create-store-modal.drawer-surface{width:calc(100vw - 24px);padding:20px}.drawer-surface>.modal-title-row{top:-20px}.drawer-surface .button-row{bottom:-20px}.firmware-selection-drawer .firmware-version-list,.readonly-facts{grid-template-columns:1fr}}@media(max-width:560px){.admin-shell{grid-template-columns:1fr}.sidebar{position:static;display:grid;grid-template-columns:minmax(0,1fr) 32px;align-items:center;gap:8px;width:100%;height:auto;padding:10px 12px;border-right:0;border-bottom:1px solid var(--line)}.sidebar-brand,.sidebar-user>.avatar{display:none}.sidebar-user{display:block;border:0;margin:0;padding:0}.sidebar-user>button{width:32px;height:32px;font-size:16px;border-color:var(--line)}.sidebar nav{display:flex;gap:4px;overflow-x:auto}.sidebar nav button{flex:0 0 auto;min-height:40px;padding:7px 10px;gap:5px}.sidebar nav button .nav-glyph{display:none}.sidebar nav .nav-label{display:inline;font-size:12px}.topbar{padding:0 16px;height:44px;font-size:10px}.workspace-section{padding:22px 14px 32px}.page-header h2{font-size:23px}.filter-bar label{min-width:100%}.device-firmware-controls{gap:8px}.selected-firmware{grid-template-columns:1fr}.selected-firmware small{text-align:left}.drawer-surface,.create-store-modal.drawer-surface{width:100vw;border-radius:0;padding:18px}.drawer-surface>.modal-title-row{top:-18px}.drawer-surface .button-row{bottom:-18px}.tier-editor,.tier-editor form,.create-store-modal form,.firmware-upload-drawer form{grid-template-columns:minmax(0,1fr);gap:16px}.occupancy-details dl{grid-template-columns:1fr}.button-row{flex-wrap:wrap}.tier-confirmation{padding:20px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}:root{--page: #f5f7f3;--surface: #ffffff;--subtle: #f1f5ef;--sidebar-surface: #edf2e9;--field: #fff;--ink: #303b32;--muted: #606d60;--line: #dce4d7;--accent: #526f56;--accent-hover: #405a44;--accent-soft: #e4eddf;--accent-ink: #405f42;--red: var(--accent);--red-dark: #a33d50;--blue: var(--accent);--paper: var(--page)}:root[data-admin-theme=paper]{--page: #f7f3eb;--surface: #fffdf8;--subtle: #f5efe3;--sidebar-surface: #efe7d7;--field: #fffefa;--ink: #453f33;--muted: #6e6452;--line: #e4dac8;--accent: #806342;--accent-hover: #695033;--accent-soft: #eee3cf;--accent-ink: #725631}:root[data-admin-theme=oak]{--page: #f3ede6;--surface: #fffaf4;--subtle: #f2e7da;--sidebar-surface: #eadecd;--field: #fffdf8;--ink: #4b3e32;--muted: #6f5e4b;--line: #dfcdb9;--accent: #85603d;--accent-hover: #6d4c2e;--accent-soft: #ecdbc5;--accent-ink: #754e2e}:root[data-admin-theme=mist]{--page: #f0f4f7;--surface: #fcfdff;--subtle: #edf2f7;--sidebar-surface: #e5edf3;--field: #fff;--ink: #354552;--muted: #566b7a;--line: #d7e2e9;--accent: #4d6d85;--accent-hover: #3d586d;--accent-soft: #dee9f1;--accent-ink: #45667d}:root[data-admin-theme=rose]{--page: #f7f1ef;--surface: #fffcfa;--subtle: #f6ece8;--sidebar-surface: #f0e3dd;--field: #fffdfb;--ink: #51403d;--muted: #765f59;--line: #e7d7d1;--accent: #93635e;--accent-hover: #7c504c;--accent-soft: #f0ded8;--accent-ink: #845851}body,.workspace{background:var(--page);color:var(--ink)}.sidebar{background:var(--sidebar-surface)}.topbar,th{background:var(--subtle)}.panel,.record-card,.table-shell,.filter-bar,.modal,.secondary{background:var(--surface);color:var(--ink)}input,textarea,select{background:var(--field);color:var(--ink)}label{color:var(--ink)}.primary{background:var(--accent);border-color:var(--accent)}.primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.secondary{border-color:var(--line)}.secondary:hover:not(:disabled),.text-button:hover:not(:disabled),.back-button:hover{background:var(--accent-soft);border-color:var(--line)}.text-button,.back-button{color:var(--accent-ink)}.sidebar nav button{color:var(--muted)}.sidebar nav button:hover{background:var(--accent-soft);color:var(--accent-ink)}.sidebar nav button.active{background:var(--surface);color:var(--accent-ink)}.sidebar nav button .nav-glyph{background:var(--subtle);border-color:var(--line)}.sidebar nav button.active .nav-glyph,.avatar{background:var(--accent-soft);border-color:var(--line);color:var(--accent-ink)}.sidebar-user{border-color:var(--line)}.logo-square{background:var(--accent-soft);color:var(--accent-ink)}.sidebar-section-label,.page-header .eyebrow,.eyebrow,th,.modal-close{color:var(--muted)}.modal-close,.count-pill,.readonly-facts,.change-review,.firmware-summary div,.serial-monitor-summary>*{background:var(--subtle);border-color:var(--line)}.modal-close:hover:not(:disabled){background:var(--accent-soft);color:var(--accent-ink)}tbody tr:hover{background:var(--subtle)}th,td,.panel dl div{border-color:var(--line)}.selected-firmware,.firmware-version-option.selected{background:var(--accent-soft);border-color:var(--line);box-shadow:none}.firmware-version-option,.credential-panel input[readonly]{background:var(--subtle)}.selected-firmware span{color:var(--ink)}.drawer-surface>.modal-title-row,.drawer-surface .button-row,.occupancy-modal .modal-title-row{background:var(--surface)}.topbar-tools{display:flex;align-items:center;gap:20px}.theme-picker{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:12px;font-weight:500}.theme-picker select{width:110px;padding:5px 7px;min-height:30px;font-size:12px;border-color:var(--line)}.theme-swatch{width:12px;height:12px;flex:0 0 12px;border-radius:50%;border:1px solid #0001}.device-directory{border:1px solid var(--line);border-radius:12px;background:var(--surface);overflow:hidden}.device-directory>.table-shell{border:0;border-top:1px solid var(--line);border-radius:0;box-shadow:none}.device-directory>.selected-firmware,.device-directory>.error-message{margin:0 14px 10px}.device-filters{display:grid;grid-template-columns:minmax(140px,1.4fr) minmax(86px,.8fr) 70px minmax(94px,.85fr) minmax(96px,.85fr) auto;gap:10px;align-items:end;padding:12px 14px 8px;margin:0;border:0;border-radius:0;box-shadow:none}.device-filters label{min-width:0;max-width:none;font-size:12px;gap:5px}.device-filters input,.device-filters select{min-height:34px;height:34px;padding:6px 8px;font-size:12px}.device-filter-actions,.device-filter-actions .device-firmware-controls{display:flex;flex-wrap:nowrap;gap:6px;align-items:center;margin:0}.device-filter-actions{padding-left:4px}.device-filter-actions button{white-space:nowrap;width:auto;min-height:34px;padding:6px 9px;font-size:12px}.device-filter-actions>.text-button{font-weight:500;padding-inline:5px}.device-directory-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 14px 9px;color:var(--muted);font-size:11px}.detail-row{cursor:pointer}.detail-row:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;background:var(--subtle)}.detail-row:hover td:first-child strong{color:var(--accent-ink)}@media(max-width:1230px){.device-filters{grid-template-columns:minmax(145px,1.5fr) 1fr 70px 1fr 1fr}.device-filter-actions{grid-column:1/-1;justify-content:flex-end;padding:0}}.detail-drawer{width:min(1180px,calc(100vw - 40px));padding:16px 24px}.detail-drawer>.detail-drawer-heading{top:-16px;padding:6px 0 12px}.detail-drawer-heading .eyebrow{display:none}.detail-drawer-heading h3{font-size:17px;margin:4px 0}.detail-drawer .workspace-section{padding:14px 0 4px}.detail-drawer .page-header{margin-bottom:12px;gap:10px;align-items:center}.detail-drawer .page-header .eyebrow{display:none}.detail-drawer .page-header h2{font-size:21px;margin:0 0 3px}.detail-drawer .page-header p{font-size:12px;margin:0}.detail-drawer .detail-grid{gap:10px;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}.detail-drawer .panel{padding:12px 16px;box-shadow:none;min-width:0}.detail-drawer .panel h3{font-size:14px;margin:0 0 8px}.detail-drawer .panel p{font-size:12px;margin:6px 0}.detail-drawer .panel label{font-size:12px;margin-top:8px;gap:4px}.detail-drawer .panel input,.detail-drawer .panel select{padding:7px 10px;min-height:34px;font-size:12px}.detail-drawer .panel textarea{padding:8px 10px;min-height:50px;height:50px;font-size:12px}.detail-drawer .primary,.detail-drawer .secondary,.detail-drawer .danger{min-height:32px;padding:6px 10px;font-size:12px}.detail-drawer .profile-tier-preview{margin:6px 0 0;font-size:12px}.detail-drawer .profile-tier-preview .tier{padding:3px 7px;font-size:12px}.detail-drawer .profile-panel>button{margin-top:8px}.detail-drawer .profile-panel label small{font-size:11px}.detail-drawer .runtime-panel dl{display:grid;grid-template-columns:1fr 1fr;gap:2px 12px;margin:0}.detail-drawer .runtime-panel dl div{display:grid;grid-template-columns:68px minmax(0,1fr);gap:6px;justify-content:start;align-items:center;padding:7px 0;font-size:12px}.detail-drawer .runtime-panel dd,.detail-drawer .registration-history dd{text-align:left}.detail-drawer .runtime-panel .status{font-size:12px;padding:4px 7px}.detail-drawer .runtime-panel .mono{font-size:11px}.detail-drawer .occupancy-panel{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:0 12px}.detail-drawer .occupancy-panel>h3{grid-column:1;grid-row:1;margin:5px 0}.detail-drawer .occupancy-panel>.occupancy-details{grid-row:2;grid-column:1/-1}.detail-drawer .occupancy-panel>.button-row{grid-row:1;grid-column:2}.detail-drawer .occupancy-details>.occupancy-summary{display:flex;align-items:center;flex-wrap:wrap;gap:6px 14px;margin:7px 0;padding:5px 8px}.detail-drawer .occupancy-details dl{margin:6px 0 0;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 14px}.detail-drawer .occupancy-details dl div{padding:4px 0;grid-template-columns:72px minmax(0,1fr);gap:6px;font-size:12px}.detail-drawer .occupancy-details dd{text-align:left;font-size:12px}.detail-drawer .occupancy-details dd.mono{font-size:11px}.detail-drawer .registration-history dl{margin:0;gap:16px}.detail-drawer .registration-history dl div{display:grid;grid-template-columns:60px minmax(0,1fr);gap:8px;padding:3px 0;font-size:12px;border:0}.detail-drawer .registration-history dd{gap:2px}.detail-drawer .registration-history dd strong{font-size:12px;font-weight:500}.detail-drawer .danger-panel{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:0 16px;align-items:center}.detail-drawer .danger-panel h3{grid-column:1;margin:0}.detail-drawer .danger-panel p{grid-column:1;max-width:380px}.detail-drawer .danger-panel>.button-row{grid-column:2;grid-row:1/3}.detail-drawer .button-row{position:static;padding:0;margin:0;border:0;background:transparent;gap:8px}.detail-drawer .store-detail-page .detail-grid{grid-template-columns:1fr 1fr}.detail-drawer .store-detail-page form{gap:10px}.detail-drawer .credential-panel label{margin:12px 0}.detail-drawer .firmware-log-layout{grid-template-columns:1fr 1fr;gap:12px}.detail-drawer .firmware-task-main{grid-template-columns:minmax(0,1fr) auto;gap:8px}.detail-drawer .firmware-task-main time{grid-column:1/-1}.detail-drawer .firmware-event-timeline>article{grid-template-columns:26px minmax(0,1fr)}.detail-drawer .firmware-event-timeline article>div:last-child{grid-column:2;text-align:left;display:flex;gap:12px}.occupancy-backdrop{z-index:50}.occupancy-backdrop.drawer-backdrop .occupancy-modal{width:min(1000px,calc(100vw - 40px))}.serial-monitor-modal.drawer-surface{width:min(1180px,calc(100vw - 40px))}@media(min-width:1051px){.detail-drawer .detail-grid:has(>.danger-panel)>.registration-history,.detail-drawer .danger-panel{grid-column:auto}.detail-drawer .detail-grid:has(>.danger-panel)>.registration-history dl{grid-template-columns:1fr;gap:5px}.detail-drawer .danger-panel{display:block}.detail-drawer .danger-panel p{max-width:none}.detail-drawer .danger-panel>.button-row{margin-top:12px}}@media(max-width:1050px){.detail-drawer .runtime-panel dl{grid-template-columns:1fr}.detail-drawer .occupancy-details dl{grid-template-columns:repeat(2,minmax(0,1fr))}.detail-drawer .danger-panel{grid-template-columns:1fr}.detail-drawer .danger-panel>.button-row{grid-column:1;grid-row:auto;margin-top:6px}}@media(max-width:760px){.device-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.detail-drawer{width:calc(100vw - 20px);padding:14px 18px}.detail-drawer>.detail-drawer-heading{top:-14px}.detail-drawer .detail-grid,.detail-drawer .store-detail-page .detail-grid,.detail-drawer .firmware-log-layout{grid-template-columns:1fr}.detail-drawer .runtime-panel dl{grid-template-columns:1fr 1fr}.topbar-tools{gap:10px}.topbar-tools .environment-dot{display:none}}@media(max-width:560px){.device-filters{grid-template-columns:1fr 1fr}.device-filters label{min-width:0}.device-filters label:first-child{grid-column:1/-1}.device-filter-actions,.device-filter-actions .device-firmware-controls{flex-wrap:wrap}.device-filter-actions{justify-content:flex-start}.detail-drawer,.serial-monitor-modal.drawer-surface,.occupancy-backdrop.drawer-backdrop .occupancy-modal{width:100vw;padding:12px}.detail-drawer>.detail-drawer-heading{top:-12px}.detail-drawer .panel{padding:12px}.detail-drawer .runtime-panel dl,.detail-drawer .occupancy-details dl,.detail-drawer .occupancy-panel{grid-template-columns:1fr}.detail-drawer .occupancy-panel>.button-row{grid-row:3;grid-column:1;margin-top:8px}.detail-drawer .registration-history dl{grid-template-columns:1fr}.theme-picker>span:not(.theme-swatch){display:none}.theme-picker select{width:90px;font-size:12px}}
