:root{color-scheme:light dark;--font-ui: -apple-system, BlinkMacSystemFont, "PingFang SC", "Segoe UI", sans-serif;--font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--radius-control: 12px;--radius-surface: 16px;--radius-bubble: 16px;--line-subtle: color-mix(in srgb, var(--line) 45%, transparent);--space-field: 12px;--space-group: 24px;--sheet-inset: 20px;--touch-target: 44px;--media-status-height: 24px;--media-complete-height: 20px;--subpage-header-height: calc(52px + env(safe-area-inset-top)) ;--paper: #f2f5f1;--paper-pure: #fff;--surface: #e8eee7;--surface-raised: #fff;--ink: #18231c;--ink-muted: #536159;--ink-faint: #647168;--line: #dce3dc;--line-strong: #85978a;--accent: #34784a;--accent-hover: #28643c;--accent-soft: #e0efdf;--action-surface: var(--accent);--action-ink: #fff;--incoming: #fff;--outgoing: #e0ffc6;--on-accent: #18231c;--message-time: #67726b;--message-time-on-wall: var(--ink);--message-time-outgoing: #3c783b;--danger: oklch(50% .18 28);--danger-fill: #be3730;--danger-soft: oklch(96% .025 28);--focus: var(--accent);--header-surface: var(--composer-surface);--composer-surface: #bce8cf;--composer-panel-surface: color-mix(in srgb, var(--surface) 70%, var(--composer-surface));--composer-surface-focused: #c8edda;--composer-field-surface: color-mix(in srgb,var(--composer-surface) 76%,var(--surface-raised));--composer-tool-surface: color-mix(in srgb,var(--composer-panel-surface) 88%,var(--ink));--chat-wallpaper: radial-gradient(ellipse at 0 0, var(--wall-a), transparent 68%), radial-gradient(ellipse at 100% 0, var(--wall-c), transparent 65%), radial-gradient(ellipse at 0 100%, var(--wall-b), transparent 65%), linear-gradient(110deg, var(--wall-a), var(--wall-d));--wall-a: #cad381;--wall-b: #66ab84;--wall-c: #89be87;--wall-d: #d0d7b2;--wall-pattern-opacity: .11;--wall-pattern-color: #263c2d;--outgoing-start: #944cd5;--outgoing-middle: #9349f4;--outgoing-end: #3768ff;--glass: var(--paper-pure);--glass-strong: var(--surface-raised);--glass-control: var(--surface);--glass-panel: var(--surface-raised);--glass-border: var(--line);--glass-sheen: none;--glass-shadow: none;--glass-filter: none;--material-blur: none;--material-blur-strong: none;--shadow: 0 8px 28px #18231c24}:root[data-color-scheme=dark]{--paper: #141214;--paper-pure: #242124;--surface: #2c282d;--surface-raised: #292529;--ink: #f4f0f4;--ink-muted: #bcb1bd;--ink-faint: #ada1ae;--line: #3c353e;--line-strong: #7f7183;--accent: #ba92f5;--accent-hover: #c9a9f7;--accent-soft: #382c47;--action-surface: #7950bd;--action-ink: #fff;--incoming: #342234;--outgoing: #7843c7;--on-accent: #fff;--message-time: #c3b4c5;--message-time-outgoing: #fefeff;--danger: oklch(76% .14 28);--danger-fill: #923c38;--danger-soft: oklch(29% .055 28);--header-surface: var(--composer-surface);--composer-surface: #242424;--composer-panel-surface: var(--surface-raised);--composer-surface-focused: #2c292e;--composer-field-surface: color-mix(in srgb,var(--composer-surface) 88%,var(--ink));--composer-tool-surface: var(--accent-soft);--wall-a: #000;--wall-b: #000;--wall-c: #000;--wall-d: #000;--wall-pattern-opacity: .25;--wall-pattern-color: #9d6ca8;--shadow: 0 8px 28px #0006}:root{--success: #246b45;--success-soft: #e8f4eb;--warning: #875a08;--warning-soft: #fff4d6;--info: #245ea8;--info-soft: #edf4ff}:root[data-color-scheme=dark]{--success: #86d5a0;--success-soft: #173b26;--warning: #ffd27a;--warning-soft: #3d2d12;--info: #9fc6ff;--info-soft: #192c45}:root{--canvas: var(--paper);--surface: var(--paper-pure);--subtle: light-dark(#e8eee7, #2c282d);--muted: var(--ink-muted);--border: var(--line-subtle);--accent-fill: var(--action-surface);--on-accent: var(--action-ink);--selected: var(--accent-soft);--danger-bg: var(--danger-soft);--success: light-dark(#34784a, #9ac9a3);--warning: light-dark(#84611e, #ddc084);--radius: var(--radius-control);--duration: .18s;color:var(--ink);background:var(--canvas);font-family:var(--font-ui);font-size:16px;line-height:1.5;letter-spacing:0}#admin{--on-accent: var(--action-ink)}.tabler-shell{--tblr-primary: var(--accent-fill);--tblr-primary-rgb: 52, 120, 74;--tblr-border-radius: var(--radius-control)}.tabler-shell .admin-sidebar{background:var(--surface);box-shadow:2px 0 12px #1824330a}.tabler-shell .brand-mark{border-radius:var(--radius-control)}.tabler-shell .nav-item{min-height:44px;border-radius:var(--radius-control)}.tabler-shell .nav-item[aria-current=page]{color:var(--accent);background:var(--selected)}.tabler-shell .topbar{min-height:64px;box-shadow:0 1px 4px #1824330d}.tabler-shell .content-wrap{background:var(--canvas)}.tabler-shell .table-scroll.card{border:1px solid var(--border);border-radius:var(--radius-control);box-shadow:0 1px 4px #1824330a}.tabler-shell .table-scroll.card table{margin:0}.tabler-shell .table-scroll.card th{background:color-mix(in srgb,var(--subtle) 72%,transparent);text-transform:uppercase;letter-spacing:.04em}.tabler-shell .status-badge.badge{border-radius:var(--radius-control);font-weight:600}.tabler-shell button.btn{min-height:44px}.tabler-shell .primary,.login .primary{background:var(--accent-fill);border-color:var(--accent-fill);color:var(--action-ink)}.tabler-shell .primary:hover:not(:disabled),.login .primary:hover:not(:disabled){background:color-mix(in srgb,var(--accent-fill) 88%,#000);border-color:var(--accent-fill);filter:none}.login{width:min(100% - 32px,440px);margin:12vh auto;padding:32px;border:1px solid var(--border);border-radius:var(--radius-surface);background:var(--surface);box-shadow:0 8px 32px #18243314}.login .primary{width:100%}.source-panel{margin:0 0 24px;border:1px solid var(--border);border-radius:var(--radius-control);box-shadow:0 1px 4px #1824330a}.source-panel{padding:20px}.source-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;flex-wrap:wrap}.source-heading h2{margin-bottom:4px}.source-heading p{margin:0;color:var(--muted);font-size:.8125rem}.source-search{display:flex;gap:8px;margin:0;max-width:360px}.source-search{width:100%;min-width:0}.source-search input{min-width:0;flex:1}.source-pack button{grid-column:2;justify-self:start;white-space:nowrap}@media(max-width:700px){.sidebar-nav{flex-wrap:wrap}.nav-item{white-space:nowrap}}.source-search button{min-width:64px;white-space:nowrap}.source-results{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px;margin-top:20px}.source-pack{display:grid;grid-template-columns:64px minmax(0,1fr);align-items:center;gap:12px;padding:12px;border:1px solid var(--border);border-radius:var(--radius-control);background:var(--surface);min-width:0}.source-cover{width:64px;height:64px;object-fit:cover;border-radius:var(--radius-surface);background:var(--subtle)}.source-pack-info{min-width:0}.source-pack strong,.source-pack small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.source-pack small{margin-top:3px;color:var(--muted);font-size:.75rem}.expression-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:12px}.expression-item{position:relative;display:grid;gap:6px;padding:6px;border:1px solid var(--border);border-radius:var(--radius-control)}.expression-item img{width:100%;aspect-ratio:1;object-fit:contain;background:var(--subtle)}*{box-sizing:border-box}body{margin:0}[hidden]{display:none!important}button,input,select{font:inherit}button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:9px 14px;border:1px solid var(--border);border-radius:var(--radius);color:var(--ink);background:var(--surface);font-size:.875rem;line-height:1.4;cursor:pointer;transition:background var(--duration),border-color var(--duration),color var(--duration)}button:hover:not(:disabled){background:var(--subtle);border-color:var(--muted)}button:active:not(:disabled){background:var(--selected)}button:disabled{opacity:.58;cursor:default}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:3px}:root[data-input-modality=pointer] #admin :focus-visible{outline:0}button svg{width:18px;height:18px;flex-shrink:0}.primary{background:var(--accent-fill);border-color:var(--accent-fill);color:var(--on-accent)}.primary:hover:not(:disabled){background:var(--accent-fill);border-color:var(--accent-fill);filter:brightness(1.12)}.danger,.unpublish{color:var(--danger)}.publish{color:var(--success)}.icon-button{width:44px;height:44px;padding:10px;flex:0 0 44px}.icon-button svg{width:20px;height:20px}.actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.admin-shell{display:grid;grid-template-columns:220px minmax(0,1fr);min-height:100dvh}.admin-sidebar{position:sticky;top:0;align-self:start;height:100dvh;display:flex;flex-direction:column;padding:28px 16px;background:var(--subtle);border-right:1px solid var(--border)}.brand{display:flex;align-items:center;gap:10px;padding:0 8px 36px}.brand-mark{display:grid;place-items:center;width:34px;height:34px;border-radius:var(--radius);background:var(--accent-fill);color:var(--on-accent);font-weight:700}.brand strong,.brand small{display:block}.brand strong{font-size:.95rem}.brand small{font-size:.75rem;color:var(--muted)}.sidebar-nav{display:grid;gap:6px}.nav-item{width:100%;justify-content:flex-start;border-color:transparent;background:transparent;gap:12px}.nav-item[aria-current=page]{color:var(--accent);background:var(--selected);font-weight:600}.nav-item:hover:not(:disabled){border-color:transparent}.nav-icon{display:flex}.nav-icon svg{width:18px;height:18px}.sidebar-note{margin-top:auto;padding:16px 12px 0;color:var(--muted);font-size:.75rem}.admin-main{min-width:0}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 28px;border-bottom:1px solid var(--border);background:var(--surface)}.topbar h1{font-size:1.25rem;line-height:1.35;margin:4px 0 0}.eyebrow{margin:0;font-size:.6875rem;color:var(--muted)}.logout-button{flex-shrink:0}.content-wrap{width:100%;max-width:1600px;padding:20px 28px 100px}h2{font-size:1.125rem;margin:0 0 12px}p{max-width:72ch}.page-toolbar,.resource-toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px;margin-bottom:20px}.page-toolbar h2{margin:0}.page-toolbar p{margin:4px 0 0;font-size:.8125rem;color:var(--muted)}.expression-tabs{padding:4px;gap:2px;border:1px solid var(--border);border-radius:var(--radius);background:var(--subtle)}.expression-tabs button{background:transparent;border-color:transparent;min-width:68px}.expression-tabs [aria-selected=true]{background:var(--surface);color:var(--accent);border-color:var(--border);font-weight:600}.filter-field{display:flex;align-items:center;gap:10px;color:var(--muted)}.filter-field select{width:auto}.table-scroll{width:100%;overflow-x:auto;margin:0 0 20px;border-block:1px solid var(--border);background:var(--surface)}table{width:100%;border-collapse:collapse;text-align:left;font-size:.8125rem}th{background:var(--subtle);color:var(--muted);font-size:.75rem;font-weight:600;white-space:nowrap}th,td{padding:14px 12px;border-bottom:1px solid var(--border);vertical-align:middle}td{overflow-wrap:anywhere}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:var(--canvas)}tbody tr:has(input:checked){background:var(--selected)}td p{margin:4px 0 0;font-size:.75rem;color:var(--muted)}td strong{font-weight:600}.room-id{font-family:ui-monospace,monospace;overflow-wrap:anywhere;font-size:.75rem}button.room-id{justify-content:flex-start;text-align:left;color:var(--accent);border-color:transparent;background:transparent;padding-inline:0}.status-badge{display:inline-flex;align-items:center;min-height:26px;padding:3px 8px;border-radius:var(--radius-control);font-size:.75rem;font-weight:600;white-space:nowrap}.status-badge.success{color:var(--success);background:#60a06e1f}.status-badge.warning{color:var(--warning);background:#d1a84b24}.status-badge.danger{color:var(--danger);background:var(--danger-bg)}.status-badge.muted{color:var(--muted);background:var(--subtle)}.expression-bulk{padding:12px 0;gap:12px;font-size:.8125rem}.expression-bulk>span{color:var(--muted);margin-right:auto}.expression-select{display:flex;align-items:center;gap:10px;min-height:44px;cursor:pointer}input[type=checkbox]:not(.toggle-input){appearance:none;position:relative;width:22px;height:22px;min-height:22px;flex:0 0 22px;padding:0;margin:0;border:0;border-radius:7px;background:var(--subtle);box-shadow:inset 0 0 0 1px var(--line-subtle)}input[type=checkbox]:not(.toggle-input):checked{background:var(--accent-fill);box-shadow:none}input[type=checkbox]:not(.toggle-input):checked:after{content:"";position:absolute;top:4px;left:8px;width:5px;height:10px;border:solid var(--on-accent);border-width:0 2px 2px 0;transform:rotate(45deg)}.expression-thumbnail{display:block;width:64px;height:64px;object-fit:contain;border-radius:var(--radius-control);background:var(--subtle)}.pagination{font-size:.8125rem;gap:6px}.page-count{padding:0 8px;font-variant-numeric:tabular-nums;color:var(--muted)}.page-jump{display:flex;align-items:center;gap:8px;margin:0 0 0 auto}.page-jump label{display:flex;align-items:center;gap:8px}.page-jump input{width:72px}form{max-width:32rem;display:grid;gap:20px;margin:24px 0}label{display:grid;gap:8px;font-size:.875rem}input,select{min-width:0;width:100%;min-height:44px;padding:9px 12px;border:1px solid transparent;border-radius:var(--radius);color:var(--ink);background:var(--subtle);font-size:1rem}input:disabled,select:disabled{opacity:.58}input:user-invalid{background:var(--danger-bg)}.login{width:min(100%,440px);margin:12vh auto;padding:24px}.login h1{font-size:1.25rem;margin:10px 0 16px}.login p{color:var(--muted);font-size:.875rem}.login input{font-size:1rem}.resource-detail{display:grid;grid-template-columns:minmax(240px,360px) minmax(0,1fr);gap:40px;margin-top:24px}.resource-editor,.resource-media{min-width:0}.resource-editor form{margin-top:0}.toggle-field{display:inline-flex;align-items:center;gap:8px;min-height:44px;cursor:pointer}.toggle-field .toggle-input{position:absolute;width:1px;height:1px;margin:-1px;opacity:0;clip:rect(0 0 0 0)}.toggle-track{position:relative;width:36px;height:22px;flex:0 0 36px;border:1px solid var(--border);border-radius:999px;background:var(--line-strong);transition:background-color var(--duration),border-color var(--duration)}.toggle-track:after{content:"";position:absolute;top:1px;left:1px;width:18px;height:18px;border-radius:50%;background:#fff;transition:transform var(--duration),background-color var(--duration)}.toggle-input:checked+.toggle-track{border-color:var(--accent-fill);background:var(--accent-fill)}.toggle-input:checked+.toggle-track:after{background:#fff;transform:translate(14px)}.toggle-input:focus-visible+.toggle-track{outline:2px solid var(--focus);outline-offset:2px}.toggle-input:disabled+.toggle-track{opacity:.6}.resource-attribution{font-size:.75rem;color:var(--muted);overflow-wrap:anywhere}.expression-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:12px}.expression-gallery img{display:block;width:100%;aspect-ratio:1;object-fit:contain;background:var(--subtle);border-radius:var(--radius)}.cleanup{margin-top:40px;padding-top:24px;border-top:1px solid var(--border)}.cleanup h2,.cleanup summary{color:var(--danger)}.cleanup p{font-size:.875rem;color:var(--muted)}summary{cursor:pointer;min-height:44px;padding-block:10px}#status:empty{display:none}#status:not(:empty){display:flex;align-items:center;gap:16px;position:fixed;right:24px;bottom:24px;z-index:10;max-width:min(560px,calc(100% - 48px));padding:8px 10px 8px 18px;border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 4px 24px #1218151f;background:var(--surface);font-size:.875rem}#status span{overflow-wrap:anywhere}#status[data-tone=danger]{color:var(--danger)}#status[data-tone=success]{color:var(--success)}.login #status:not(:empty){position:static;box-shadow:none;max-width:100%;margin-top:20px}.empty-state,.error-state{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:12px;min-height:180px;color:var(--muted)}.empty-state>svg,.error-state>svg{width:28px;height:28px}.error-state{color:var(--danger)}.error-state p{overflow-wrap:anywhere}.loading-state{min-height:240px;color:var(--muted);font-size:.875rem}.skeleton-line{height:40px;margin-top:16px;background:var(--subtle);border-radius:var(--radius)}@media(max-width:1100px){.topbar{padding:24px}.content-wrap{padding:24px 24px 100px}.resource-detail{grid-template-columns:1fr;gap:24px}}@media(max-width:960px){.admin-shell{grid-template-columns:180px minmax(0,1fr)}.admin-sidebar{padding-inline:8px}.table-scroll thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.table-scroll tbody,.table-scroll tr{display:block}.table-scroll tr{padding:12px;border-bottom:1px solid var(--border)}.table-scroll tr:last-child{border-bottom:0}.table-scroll td{display:grid;grid-template-columns:92px minmax(0,1fr);gap:8px;padding:6px 0;border:0}.table-scroll td:before{content:attr(data-label);color:var(--muted);font-size:.75rem;padding-top:3px}#expression-list tr{display:grid;grid-template-columns:92px minmax(0,1fr);gap:8px 12px}#expression-list td{display:block;padding:0;min-width:0}#expression-list td:before{display:none}#expression-list td:first-child{grid-row:1 / 4}#expression-list td:nth-child(4){grid-column:2;color:var(--muted)}#expression-list td:last-child{grid-column:2}}@media(max-width:700px){.admin-shell{display:block}.admin-sidebar{position:static;height:auto;padding:16px;border-right:0;border-bottom:1px solid var(--border)}.brand{padding:0 0 16px}.sidebar-nav{display:flex}.nav-item{width:auto;flex:1}.sidebar-note{display:none}.topbar{padding:20px 16px}.topbar h1{font-size:1.25rem}.content-wrap{padding:20px 16px 100px}.resource-toolbar{align-items:flex-start}.resource-toolbar>.actions{width:100%;justify-content:space-between}.resource-toolbar>.expression-tabs{width:auto}.filter-field{gap:8px}.filter-field>span{display:none}.pagination{gap:4px}.page-count{order:-1;width:100%;padding:0 0 10px}.page-jump{width:100%;margin-top:8px;justify-content:flex-end}#status:not(:empty){bottom:16px;right:16px;max-width:calc(100% - 32px)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important}}.collection-tasks{margin-bottom:28px}.collection-task{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 16px;padding:16px 0;border-bottom:1px solid var(--border)}.collection-task strong{overflow-wrap:anywhere}.collection-task progress,.collection-task p{grid-column:1 / -1;width:100%;margin:0}.collection-task progress{height:8px;accent-color:var(--accent)}.collection-task-actions{grid-column:1 / -1}.collection-capacity{margin:0;color:var(--muted);font-size:.8125rem}.collection-job-tabs{width:fit-content;margin-bottom:16px;overflow-x:auto;max-width:100%;flex-wrap:nowrap}.collection-job-tabs button{white-space:nowrap}.preview-retry{font-size:12px}.expression-mobile-meta{display:none}.resource-confirm{width:min(400px,calc(100% - 32px));padding:20px;border:1px solid var(--border);border-radius:16px;background:var(--surface);color:var(--ink)}.resource-confirm form{margin:0;gap:12px}.resource-confirm h2{margin:0;font-size:1.0625rem;line-height:1.4}.resource-confirm p{margin:0;font-size:.875rem;line-height:1.6}.resource-confirm::backdrop{background:#0006}.resource-confirm button{min-height:44px}@media(max-width:700px){.topbar{min-height:56px;padding:8px 16px}.topbar h1{font-size:1rem}.expression-bulk{position:fixed;z-index:25;bottom:0;inset-inline:0;min-height:64px;padding:8px 12px calc(8px + env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--border);gap:6px;flex-wrap:wrap}.expression-bulk button,.expression-select{min-height:44px}.expression-bulk>span{font-size:12px}#expression-list .expression-table{overflow:visible;margin-bottom:88px}#expression-list .expression-table tr{display:grid;grid-template-columns:52px minmax(0,1fr) 88px;grid-template-rows:43px 43px;padding:4px 8px;gap:0 8px}#expression-list .expression-table td{display:flex;min-width:0;padding:0;align-items:center}#expression-list .expression-table td:before{display:none}#expression-list .expression-table td:nth-child(1){grid-row:1 / 3;grid-column:1}#expression-list .expression-table td:nth-child(2){grid-row:1;grid-column:2}#expression-list .expression-table td:nth-child(3),#expression-list .expression-table td:nth-child(4){display:none}#expression-list .expression-table td:nth-child(5){grid-row:2;grid-column:2}#expression-list .expression-table td:nth-child(6){grid-row:1 / 3;grid-column:3}#expression-list .expression-table td:nth-child(2) strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;font-size:13px}#expression-list .expression-table td:nth-child(2)>div{min-width:0;width:100%}#expression-list .expression-table td:nth-child(2) p{display:none}.expression-mobile-meta{display:block;font-size:11px;color:var(--muted)}#expression-list .expression-table .expression-preview{flex-direction:column;gap:0}#expression-list .expression-table .expression-thumbnail{width:40px;height:40px}#expression-list .expression-table td:last-child .actions{gap:0;width:88px}#expression-list .expression-table td:last-child button{min-height:44px;min-width:44px;padding:4px}#expression-list .expression-table .toggle-field{font-size:12px}}@media(max-width:700px){.admin-sidebar{height:56px;padding:6px 12px}.admin-sidebar .brand{display:none}.sidebar-nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%;height:44px;gap:4px}.sidebar-nav .nav-item{min-width:0;min-height:44px;padding:4px;gap:4px;justify-content:center;white-space:nowrap;font-size:13px}.tabler-shell .topbar{min-height:56px}#expression-list .expression-table td:nth-child(2) strong{font-size:14px}.expression-mobile-meta{font-size:12px}}@media(max-width:700px){#expression-list .expression-table .expression-preview{min-width:44px}}.admin-mobile-menu,.expression-more,.expression-mobile-status{display:none}@media(max-width:700px){.admin-sidebar{position:relative;height:auto;min-height:56px;padding:0 12px;z-index:30}.admin-sidebar .brand{display:flex;align-items:center;min-height:56px;padding:0;gap:10px}.admin-sidebar .brand strong{font-size:.875rem}.admin-sidebar .brand small{display:none}.admin-sidebar .brand strong:after{content:" 管理"}.brand-mark{width:30px;height:30px}.admin-mobile-menu{display:grid;place-items:center;width:44px;height:44px;margin-left:auto;border:0;background:transparent;color:var(--ink)}.admin-mobile-menu svg{width:20px;height:20px}.admin-sidebar .sidebar-nav{display:none;height:auto;padding:8px 0 12px}.admin-sidebar.navigation-open .sidebar-nav{display:grid}.tabler-shell .topbar{min-height:56px;padding:8px 16px}.tabler-shell .topbar .eyebrow{display:none}.topbar h1{font-size:1.25rem}.content-wrap{padding:12px 12px 112px}#expression-list .expression-table tr{grid-template-columns:88px minmax(0,1fr) 44px;grid-template-rows:minmax(76px,auto);padding:4px;gap:0 8px}#expression-list .expression-table td:nth-child(1),#expression-list .expression-table td:nth-child(2),#expression-list .expression-table td:nth-child(6){grid-row:1}#expression-list .expression-table td:nth-child(5){display:none}#expression-list .expression-table .expression-preview{flex-direction:row;gap:8px}#expression-list .expression-table .expression-preview input{width:20px;height:20px;margin:0}#expression-list .expression-table .expression-thumbnail{width:52px;height:52px}#expression-list .expression-table td:last-child .actions{width:44px}#expression-list .expression-table td:last-child .actions>button{display:none}.expression-mobile-meta{font-size:.6875rem;margin-top:2px}.expression-mobile-status{display:block;width:fit-content;color:var(--muted);font-size:.6875rem;margin-top:2px}.expression-mobile-status[data-status=published]{color:var(--success);background:var(--selected);border-radius:var(--radius-control);padding:0 4px}.expression-more{position:relative;display:block}.expression-more summary{display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--border);border-radius:var(--radius-surface);list-style:none;cursor:pointer}.expression-more summary::-webkit-details-marker{display:none}.expression-more summary svg{width:20px;height:20px}.expression-menu-items{position:absolute;top:44px;right:0;min-width:148px;padding:6px;display:grid;gap:4px;border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 24px #18243324;background:var(--surface);z-index:10}.expression-menu-items button{text-align:left}.expression-menu-items .toggle-field{min-height:44px;padding-inline:8px}.expression-bulk{justify-content:space-between;padding-inline:12px;gap:4px}.expression-bulk>span{margin-right:auto}.expression-bulk>.expression-select{font-size:.75rem}}.admin-shell{grid-template-columns:240px minmax(0,1fr)}.tabler-shell .admin-sidebar{padding:28px 16px 20px;background:var(--surface);box-shadow:none;border-right:1px solid var(--border)}.brand{padding:0 8px 28px;gap:12px}.brand .brand-mark{flex:0 0 40px;width:40px;height:40px;background:var(--selected);color:var(--accent);border-radius:12px}.brand-mark svg{width:44px;height:44px}.brand strong{font-size:1.0625rem;letter-spacing:-.025em}.brand small{margin-top:3px}.sidebar-nav{gap:4px}.admin-nav-label{margin:20px 12px 8px;font-size:.6875rem;font-weight:600;color:var(--muted);letter-spacing:.08em}.admin-nav-label:first-child{margin-top:0}.sidebar-nav .nav-item{border-radius:10px;padding:10px 12px;gap:12px;font-size:.875rem;font-weight:500;text-align:left;transition:border-color var(--duration)}.sidebar-nav .nav-item svg{width:18px;height:18px;stroke-width:1.7;flex:0 0 auto}.sidebar-nav .nav-item:hover:not(:disabled){background:color-mix(in srgb,var(--selected) 55%,var(--surface))}.tabler-shell .nav-item[aria-current=page]{color:var(--ink);font-weight:650;background:var(--selected)}.sidebar-note{margin-top:auto;padding:24px 12px 0;border-top:1px solid var(--border);display:grid;gap:6px;font-size:.75rem}.sidebar-note svg{width:18px;height:18px;color:var(--accent)}.sidebar-note strong{color:var(--ink);font-weight:500}.sidebar-note small{color:var(--muted);line-height:1.6}.tabler-shell .topbar{min-height:98px;padding:22px 40px;box-shadow:none;background:var(--canvas);align-items:center}.topbar .eyebrow{color:var(--muted);font-size:.625rem;letter-spacing:.12em;margin:0 0 8px}.topbar h1{margin:0;font-size:1.5rem;letter-spacing:-.025em;font-weight:650}.logout-button{background:transparent;border-color:transparent;color:var(--muted);font-size:.8125rem}.content-wrap{max-width:1560px;padding:28px 40px 80px;margin-inline:auto}#content{outline-offset:4px;min-width:0}.admin-stamp{font-size:.6875rem;color:var(--muted);margin:0 0 24px;font-variant-numeric:tabular-nums}.admin-intro{display:flex;align-items:center;justify-content:space-between;gap:24px;margin:0 0 28px}.admin-intro h2{margin:4px 0 8px;font-size:1.75rem;line-height:1.3;font-weight:650;letter-spacing:-.035em}.admin-intro .eyebrow{font-size:.625rem;letter-spacing:.12em;color:var(--muted)}.admin-intro .admin-note{margin:0}.admin-counters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-block:1px solid var(--border);margin-bottom:32px}.admin-counter{display:grid;gap:8px;justify-content:start;padding:20px 24px;background:transparent;border:0;border-radius:0;text-align:left}.admin-counter+.admin-counter{border-left:1px solid var(--border)}.admin-counter:hover:not(:disabled){background:var(--selected)}.admin-counter span{font-size:.8125rem;color:var(--muted)}.admin-counter strong{font-size:1.75rem;line-height:1.2;font-weight:600;font-variant-numeric:tabular-nums}.admin-counter small{font-size:.6875rem;font-weight:400;color:var(--muted)}.admin-overview-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px;align-items:start}.admin-section{min-width:0;background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:24px;margin:0 0 24px}.admin-section>.page-toolbar{margin-bottom:20px}.admin-section .page-toolbar h2{font-size:.9375rem;font-weight:650}.admin-section .page-toolbar p{font-size:.75rem;max-width:65ch;line-height:1.65}.admin-section .table-scroll{box-shadow:none}.admin-attention-row{width:100%;padding:16px 0;display:flex;justify-content:flex-start;align-items:flex-start;gap:12px;background:transparent;border:0;border-radius:0;text-align:left;border-bottom:1px solid var(--border)}.admin-attention-row>svg{flex:0 0 18px;color:var(--warning);width:18px;height:18px;margin-top:3px}.admin-attention-row>svg:last-child{margin-left:auto;color:var(--muted)}.admin-attention-row strong{display:block;font-size:.8125rem;line-height:1.6;font-weight:550}.admin-attention-row small{display:block;font-size:.75rem;font-weight:400;color:var(--muted);line-height:1.7;margin-top:4px}.admin-note{margin:20px 0 0;font-size:.8125rem;color:var(--muted);line-height:1.8;max-width:78ch}.admin-note.positive{color:var(--success)}.admin-usage{padding:8px 0 16px;font-size:.75rem}.admin-usage>div{display:flex;justify-content:space-between;gap:16px;margin-bottom:10px}.admin-usage strong{font-weight:500;font-variant-numeric:tabular-nums}.admin-usage meter{appearance:none;width:100%;height:6px;display:block;border-radius:8px;background:var(--subtle)}.admin-usage meter::-webkit-meter-bar{border:0;background:var(--subtle);height:6px;border-radius:8px}.admin-usage meter::-webkit-meter-optimum-value{background:var(--accent);border-radius:8px}.admin-usage meter::-moz-meter-bar{background:var(--accent);border-radius:8px}.admin-usage[data-warning=true] meter::-webkit-meter-optimum-value{background:var(--warning)}.admin-filters{max-width:none;width:100%;display:flex;gap:12px;flex-wrap:wrap;align-items:end;padding:0 0 24px;margin:0}.admin-filters label{min-width:140px;font-size:.75rem;gap:8px}.admin-filters .admin-search{flex:1;max-width:420px;min-width:200px}.admin-filters input,.admin-filters select{min-height:44px;font-size:1rem;background:var(--surface)}.admin-filters button{min-width:76px}.admin-key{display:flex;align-items:center;gap:4px;min-width:0;max-width:100%}.admin-key .room-id{overflow-wrap:anywhere;white-space:normal;font-size:.75rem;line-height:1.7;letter-spacing:-.02em;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;text-align:left}.admin-key .text-link{padding:4px 0;min-width:0}.admin-key .icon-button{flex:0 0 44px;width:44px;height:44px;padding:12px;border-color:transparent;background:transparent;color:var(--muted)}.admin-key .icon-button svg{width:14px;height:14px}.cell-meta{display:block;margin-top:4px;color:var(--muted);font-size:.6875rem}.table-scroll table{font-size:.8125rem;font-variant-numeric:tabular-nums}.tabler-shell .table-scroll.card{box-shadow:none;border-radius:12px}.tabler-shell .table-scroll.card th{background:var(--surface);text-transform:none;letter-spacing:0;font-size:.6875rem;font-weight:500;padding-block:16px}.table-scroll td{padding-block:16px}.table-scroll tbody tr:hover{background:color-mix(in srgb,var(--selected) 30%,transparent)}.table-scroll .admin-key{max-width:310px}.admin-tabs{display:flex;gap:24px;max-width:100%;border-bottom:1px solid var(--border);margin-bottom:28px;overflow-x:auto;scrollbar-width:thin}.admin-tabs button{flex:0 0 auto;padding:12px 0 14px;background:transparent;border:0;border-bottom:2px solid transparent;border-radius:0;font-size:.8125rem;color:var(--muted)}.admin-tabs button[aria-current=page]{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}.resource-navigation{margin-top:-12px}.back-link,.text-link{border-color:transparent;background:transparent;padding-inline:0;color:var(--accent);font-size:.8125rem}.back-link{display:inline-flex;margin-bottom:12px}.admin-facts{margin:8px 0 0}.admin-facts>div{display:grid;grid-template-columns:minmax(130px,.7fr) minmax(0,2fr);gap:24px;padding:16px 0;border-bottom:1px solid var(--border);align-items:start}.admin-facts>div:last-child{border-bottom:0}.admin-facts dt{color:var(--muted);font-size:.75rem;line-height:1.8}.admin-facts dd{margin:0;font-size:.8125rem;line-height:1.8;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.admin-facts dd .admin-key{margin-block:-10px}.admin-danger-zone{border-color:color-mix(in srgb,var(--danger) 35%,var(--border))}.admin-danger-zone h2{color:var(--danger)}.admin-cleanup-form{max-width:540px;margin-top:24px;gap:16px}.admin-cleanup-form label{font-size:.8125rem}.admin-cleanup-form input{font-size:1rem}.admin-cleanup-form .actions{margin-top:8px}.login{margin:10vh auto;padding:36px;border-radius:20px;box-shadow:0 16px 48px color-mix(in srgb,var(--ink) 5%,transparent)}.login-brand{width:64px;height:64px;color:var(--accent);margin:-12px 0 16px -12px}.login h1{font-size:1.5rem;letter-spacing:-.035em;margin:12px 0}.login>p:not(.eyebrow){color:var(--muted);font-size:.8125rem;line-height:1.8}.login form{margin-top:28px;gap:20px}.login form label{font-size:.8125rem}.login form input{min-height:48px;font-size:1rem}.admin-skip-link{position:fixed;top:8px;left:8px;transform:translateY(-180%);z-index:100;padding:12px;background:var(--surface);color:var(--ink);border:2px solid var(--accent);border-radius:8px}.admin-skip-link:focus{transform:none}button:focus-visible,summary:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:3px}@media(min-width:701px){.admin-sidebar{position:sticky;top:0;height:100dvh;display:flex;flex-direction:column}}@media(max-width:1100px){.admin-shell{grid-template-columns:200px minmax(0,1fr)}.content-wrap{padding:24px 24px 80px}.tabler-shell .topbar{padding-inline:24px}.admin-overview-grid{grid-template-columns:minmax(0,1fr);gap:0}.admin-counter{padding-inline:16px}}@media(max-width:700px){.admin-shell{display:block}.tabler-shell .admin-sidebar{position:relative;height:auto;min-height:64px;padding:0 16px;border-right:0}.admin-sidebar .brand{display:flex;padding:0;min-height:64px}.brand .brand-mark{width:36px;height:36px;flex-basis:36px}.brand strong{font-size:1rem}.admin-sidebar .brand strong:after{content:""}.admin-sidebar .sidebar-nav{display:none;grid-template-columns:repeat(2,minmax(0,1fr));height:auto;padding-bottom:16px}.admin-sidebar.navigation-open .sidebar-nav{display:grid}.admin-nav-label{grid-column:1/-1;margin:12px 12px 4px}.sidebar-nav .nav-item{width:100%;justify-content:flex-start;padding:10px 12px;gap:10px;font-size:.8125rem}.sidebar-note{display:none}.tabler-shell .topbar{min-height:82px;padding:20px 16px}.topbar h1{font-size:1.375rem}.content-wrap{padding:20px 16px 112px}.admin-intro{align-items:start;gap:16px;flex-direction:column;margin-bottom:24px}.admin-intro h2{font-size:1.5rem}.admin-counters{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:24px}.admin-counter{padding:20px 12px}.admin-counter:nth-child(3){border-left:0}.admin-counter:nth-child(n+3){border-top:1px solid var(--border)}.admin-counter strong{font-size:1.5rem}.admin-section{padding:20px 16px}.admin-filters{gap:12px}.admin-filters .admin-search{flex-basis:100%;max-width:none;min-width:0}.admin-filters label{flex:1;min-width:0}.admin-filters input,.admin-filters select{font-size:1rem;width:100%}.admin-tabs{gap:24px;margin-bottom:24px}.admin-facts>div{grid-template-columns:minmax(90px,.6fr) minmax(0,1fr);gap:16px}.admin-key .room-id{font-size:.6875rem}.table-scroll td{padding-block:10px}.admin-stamp{line-height:1.7;margin-bottom:20px}.admin-usage>div{flex-wrap:wrap;gap:8px}.login{margin-top:6vh;padding:28px}#status:not(:empty){z-index:50}}@media(forced-colors:active){.admin-usage meter{border:1px solid CanvasText}.nav-item[aria-current=page],.admin-tabs button[aria-current=page]{outline:1px solid Highlight}}#status:not(:empty){pointer-events:none}#status>button{pointer-events:auto}@media(max-width:700px){.admin-main:has(.expression-bulk) #status:not(:empty){bottom:calc(88px + env(safe-area-inset-bottom))}}.feedback-admin-message{white-space:pre-wrap;overflow-wrap:anywhere;max-width:75ch}
