:root{--font-sans: "Inter", ui-sans-serif, system-ui, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;--fs-10: 10px;--fs-11: 11px;--fs-12: 12px;--fs-13: 13px;--fs-14: 14px;--fs-16: 16px;--fs-18: 18px;--fs-22: 22px;--fs-28: 28px;--fs-36: 36px;--fs-48: 48px;--lh-tight: 1.15;--lh-snug: 1.35;--lh-normal: 1.55;--tracking-mono: .02em;--tracking-caps: .14em;--sp-0: 0;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-8: 32px;--sp-10: 40px;--sp-12: 48px;--sp-16: 64px;--sp-20: 80px;--r-0: 0px;--r-1: 2px;--r-2: 4px;--r-3: 6px;--r-pill: 999px;--bw-1: 1px;--bw-2: 2px;--ease: cubic-bezier(.2,.8,.2,1);--dur-1: .12s;--dur-2: .2s;--dur-3: .32s;--shadow-1: 0 1px 0 rgba(0,0,0,.4);--shadow-2: 0 6px 18px rgba(0,0,0,.35);--shadow-3: 0 18px 60px rgba(0,0,0,.55)}:root,[data-theme=dark]{--bg-0: #0a0c0b;--bg-1: #0f1311;--bg-2: #141815;--bg-3: #1a1f1c;--bg-inset: #07090a;--line-1: #1f2622;--line-2: #2a322d;--line-3: #3a4540;--fg-1: #e8efe9;--fg-2: #aab4ad;--fg-3: #6f7a73;--fg-4: #4a544e;--accent: #6ef0a4;--accent-dim: #2f7a4d;--accent-ink: #061a0f;--accent-glow: 0 0 0 1px rgba(110,240,164,.35), 0 0 22px rgba(110,240,164,.18);--warn: #f0c46e;--warn-ink: #1a1305;--danger: #f06e7a;--danger-ink: #1a0608;--info: #6ec8f0;--info-ink: #051219;--ok: var(--accent);--selection: rgba(110,240,164,.22);--scrim: rgba(0,0,0,.55)}[data-theme=light]{--bg-0: #f3f4f1;--bg-1: #ffffff;--bg-2: #f8f9f6;--bg-3: #eef0ea;--bg-inset: #eceee8;--line-1: #dde0d8;--line-2: #c8ccc2;--line-3: #9aa195;--fg-1: #0d100e;--fg-2: #3b423d;--fg-3: #6a716a;--fg-4: #a0a59d;--accent: #0f8a4d;--accent-dim: #b4e6c8;--accent-ink: #ffffff;--accent-glow: 0 0 0 1px rgba(15,138,77,.25), 0 0 22px rgba(15,138,77,.1);--warn: #a8740b;--warn-ink: #fff7e6;--danger: #b6303d;--danger-ink: #ffeaec;--info: #1f6ea0;--info-ink: #e6f1f9;--ok: var(--accent);--selection: rgba(15,138,77,.18);--scrim: rgba(20,30,25,.4)}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0;height:100%}body{background:var(--bg-0);color:var(--fg-1);font-family:var(--font-sans);font-size:var(--fs-14);line-height:var(--lh-normal);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}::selection{background:var(--selection)}button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}input,textarea,select{font:inherit;color:inherit}a{color:inherit;text-decoration:none}.mono{font-family:var(--font-mono);letter-spacing:var(--tracking-mono)}.caps{text-transform:uppercase;letter-spacing:var(--tracking-caps);font-size:var(--fs-11)}.app{display:grid;grid-template-columns:248px 1fr;grid-template-rows:44px 1fr;grid-template-areas:"logo  topbar" "nav   main";height:100vh;min-height:720px}.logo{grid-area:logo;display:flex;align-items:center;gap:var(--sp-3);padding:0 var(--sp-5);background:var(--bg-1);border-right:var(--bw-1) solid var(--line-1);border-bottom:var(--bw-1) solid var(--line-1)}.logo-mark{width:20px;height:20px;position:relative;display:grid;place-items:center}.logo-mark:before,.logo-mark:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border:var(--bw-1) solid var(--accent)}.logo-mark:before{transform:rotate(45deg)}.logo-mark:after{width:6px;height:6px;inset:auto;background:var(--accent);box-shadow:0 0 8px var(--accent)}.logo-name{font-family:var(--font-mono);font-weight:600;letter-spacing:.02em;font-size:var(--fs-13)}.logo-name em{color:var(--accent);font-style:normal}.logo-tag{margin-left:auto;font-family:var(--font-mono);font-size:var(--fs-10);color:var(--fg-3);border:var(--bw-1) solid var(--line-2);padding:1px 6px;border-radius:var(--r-1)}.topbar{grid-area:topbar;display:flex;align-items:center;gap:var(--sp-4);padding:0 var(--sp-5);background:var(--bg-1);border-bottom:var(--bw-1) solid var(--line-1)}.crumbs{display:flex;align-items:center;gap:var(--sp-2);font-family:var(--font-mono);font-size:var(--fs-12);color:var(--fg-3)}.crumbs .sep{color:var(--fg-4)}.crumbs .here{color:var(--fg-1)}.crumbs .root{color:var(--accent)}.topbar-spacer{flex:1}.topbar-meta{display:flex;align-items:center;gap:var(--sp-3);color:var(--fg-3);font-family:var(--font-mono);font-size:var(--fs-12)}.dot{width:6px;height:6px;border-radius:var(--r-pill);background:var(--accent);box-shadow:0 0 8px var(--accent)}.dot.warn{background:var(--warn);box-shadow:0 0 8px var(--warn)}.dot.danger{background:var(--danger);box-shadow:0 0 8px var(--danger)}.dot.idle{background:var(--fg-4);box-shadow:none}.icon-btn{width:28px;height:28px;display:grid;place-items:center;border:var(--bw-1) solid var(--line-1);border-radius:var(--r-1);color:var(--fg-2);background:var(--bg-2);transition:border-color var(--dur-1) var(--ease),color var(--dur-1) var(--ease)}.icon-btn:hover{border-color:var(--line-3);color:var(--fg-1)}.icon-btn svg{width:14px;height:14px}.kbd{font-family:var(--font-mono);font-size:var(--fs-10);color:var(--fg-3);border:var(--bw-1) solid var(--line-2);border-bottom-width:2px;padding:1px 5px;border-radius:var(--r-1);background:var(--bg-2)}.nav{grid-area:nav;background:var(--bg-1);border-right:var(--bw-1) solid var(--line-1);overflow-y:auto;padding:var(--sp-4) 0 var(--sp-6);display:flex;flex-direction:column;gap:var(--sp-2)}.nav-section{padding:var(--sp-3) var(--sp-4) var(--sp-1)}.nav-section .caps{color:var(--fg-3)}.nav-item{display:flex;align-items:center;gap:var(--sp-3);padding:7px var(--sp-4);margin:0 var(--sp-2);border-radius:var(--r-2);color:var(--fg-2);font-size:var(--fs-13);cursor:pointer;-webkit-user-select:none;user-select:none;position:relative;border:var(--bw-1) solid transparent;transition:background var(--dur-1) var(--ease),color var(--dur-1) var(--ease),border-color var(--dur-1) var(--ease)}.nav-item:hover{background:var(--bg-2);color:var(--fg-1)}.nav-item.active{background:var(--bg-2);color:var(--fg-1);border-color:var(--line-2)}.nav-item.active:before{content:"";position:absolute;left:-2px;top:6px;bottom:6px;width:2px;background:var(--accent);box-shadow:0 0 8px var(--accent)}.nav-item .ico{width:14px;height:14px;color:var(--fg-3);flex:0 0 auto}.nav-item.active .ico{color:var(--accent)}.nav-item .count{margin-left:auto;font-family:var(--font-mono);font-size:var(--fs-11);color:var(--fg-3)}.nav-item.active .count{color:var(--fg-2)}.nav-foot{margin-top:auto;padding:var(--sp-4);border-top:var(--bw-1) solid var(--line-1);display:flex;align-items:center;gap:var(--sp-3)}.avatar{width:28px;height:28px;border-radius:var(--r-1);background:linear-gradient(135deg,var(--accent),var(--accent-dim));color:var(--accent-ink);display:grid;place-items:center;font-family:var(--font-mono);font-weight:700;font-size:var(--fs-12)}.who{font-size:var(--fs-12)}.who .name{color:var(--fg-1);font-weight:500}.who .sub{color:var(--fg-3);font-family:var(--font-mono);font-size:var(--fs-11)}.main{grid-area:main;overflow-y:auto;background:var(--bg-0)}.btn{display:inline-flex;align-items:center;gap:var(--sp-2);height:30px;padding:0 var(--sp-4);border:var(--bw-1) solid var(--line-2);background:var(--bg-2);color:var(--fg-1);border-radius:var(--r-2);font-size:var(--fs-13);transition:border-color var(--dur-1) var(--ease),background var(--dur-1) var(--ease),color var(--dur-1) var(--ease)}.btn:hover{border-color:var(--line-3);background:var(--bg-3)}.btn.sm{height:26px;padding:0 var(--sp-3);font-size:var(--fs-12)}.btn.lg{height:34px;padding:0 var(--sp-5)}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:600}.btn.primary:hover{box-shadow:var(--accent-glow)}.btn.ghost{background:transparent;border-color:transparent;color:var(--fg-2)}.btn.ghost:hover{background:var(--bg-2);color:var(--fg-1)}.btn.danger{color:var(--danger);border-color:var(--line-2)}.btn.danger:hover{background:#f06e7a14;border-color:var(--danger)}.btn .ico{width:14px;height:14px}.input,.select,.textarea{width:100%;background:var(--bg-inset);border:var(--bw-1) solid var(--line-2);border-radius:var(--r-2);color:var(--fg-1);padding:8px 10px;font-size:var(--fs-13);transition:border-color var(--dur-1) var(--ease),box-shadow var(--dur-1) var(--ease)}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #6ef0a41f}.input.mono,.textarea.mono{font-family:var(--font-mono);font-size:var(--fs-13)}.textarea{min-height:120px;resize:vertical;line-height:var(--lh-snug)}.field{display:flex;flex-direction:column;gap:var(--sp-2)}.field-label{font-family:var(--font-mono);font-size:var(--fs-11);color:var(--fg-3);letter-spacing:var(--tracking-mono)}.field-help{font-family:var(--font-mono);font-size:var(--fs-11);color:var(--fg-3)}.input-group{position:relative}.input-group .prefix{position:absolute;left:10px;top:50%;transform:translateY(-50%);font-family:var(--font-mono);font-size:var(--fs-12);color:var(--fg-3);pointer-events:none}.input-group .input{padding-left:100px}.switch{position:relative;width:32px;height:18px;flex:0 0 auto}.switch input{display:none}.switch span{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--bg-3);border:var(--bw-1) solid var(--line-2);border-radius:var(--r-pill);transition:background var(--dur-1) var(--ease)}.switch span:after{content:"";position:absolute;left:2px;top:1px;width:12px;height:12px;background:var(--fg-3);border-radius:var(--r-pill);transition:transform var(--dur-2) var(--ease),background var(--dur-2) var(--ease)}.switch input:checked+span{background:var(--accent-dim);border-color:var(--accent)}.switch input:checked+span:after{transform:translate(14px);background:var(--accent)}.pill{display:inline-flex;align-items:center;gap:6px;height:20px;padding:0 8px;border-radius:var(--r-pill);border:var(--bw-1) solid var(--line-2);background:var(--bg-2);font-family:var(--font-mono);font-size:var(--fs-11);color:var(--fg-2);letter-spacing:var(--tracking-mono)}.pill.published{color:var(--accent);border-color:#6ef0a44d;background:#6ef0a40f}.pill.draft{color:var(--warn);border-color:#f0c46e4d;background:#f0c46e0f}.pill.scheduled{color:var(--info);border-color:#6ec8f04d;background:#6ec8f00f}.pill.archived{color:var(--fg-3);border-color:var(--line-2);background:var(--bg-2)}.pill.online{color:var(--accent);border-color:#6ef0a44d;background:#6ef0a40f}.pill.degraded{color:var(--warn);border-color:#f0c46e4d;background:#f0c46e0f}.pill.offline{color:var(--danger);border-color:#f06e7a4d;background:#f06e7a0f}.page{padding:var(--sp-6) var(--sp-8);max-width:1280px}.page-head{display:flex;align-items:flex-end;gap:var(--sp-5);padding-bottom:var(--sp-5);border-bottom:var(--bw-1) solid var(--line-1);margin-bottom:var(--sp-6)}.page-head h1{font-size:var(--fs-28);font-weight:600;margin:0;letter-spacing:-.01em}.page-head .sub{font-family:var(--font-mono);font-size:var(--fs-12);color:var(--fg-3);margin-top:4px}.page-head .actions{margin-left:auto;display:flex;gap:var(--sp-2)}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-4);margin-bottom:var(--sp-6)}.stat{background:var(--bg-1);border:var(--bw-1) solid var(--line-1);border-radius:var(--r-2);padding:var(--sp-4) var(--sp-5);position:relative;overflow:hidden}.stat .label{font-family:var(--font-mono);font-size:var(--fs-11);color:var(--fg-3);letter-spacing:var(--tracking-caps);text-transform:uppercase}.stat .value{font-family:var(--font-mono);font-size:var(--fs-28);font-weight:600;color:var(--fg-1);margin-top:8px}.stat .delta{font-family:var(--font-mono);font-size:var(--fs-11);color:var(--fg-3);margin-top:4px}.stat .delta b{color:var(--accent);font-weight:500}.stat .spark{position:absolute;right:var(--sp-4);top:var(--sp-4);width:80px;height:32px;color:var(--accent);opacity:.7}.dash-grid{display:grid;grid-template-columns:1.6fr 1fr;gap:var(--sp-5);margin-bottom:var(--sp-6)}.panel{background:var(--bg-1);border:var(--bw-1) solid var(--line-1);border-radius:var(--r-2)}.panel-head{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-bottom:var(--bw-1) solid var(--line-1)}.panel-head .title{font-family:var(--font-mono);font-size:var(--fs-12);color:var(--fg-2);letter-spacing:var(--tracking-mono)}.panel-head .actions{margin-left:auto;display:flex;gap:var(--sp-2)}.panel-body{padding:var(--sp-4)}.panel-body.flush{padding:0}.feed{display:flex;flex-direction:column}.feed-row{display:grid;grid-template-columns:80px 1fr auto;align-items:center;gap:var(--sp-4);padding:10px var(--sp-4);border-bottom:var(--bw-1) solid var(--line-1);font-size:var(--fs-13)}.feed-row:last-child{border-bottom:0}.feed-row .ts{font-family:var(--font-mono);font-size:var(--fs-11);color:var(--fg-3)}.feed-row .what b{color:var(--fg-1);font-weight:500}.feed-row .what .tag{font-family:var(--font-mono);font-size:var(--fs-11);color:var(--accent)}.feed-row .what .tag.warn{color:var(--warn)}.feed-row .what .tag.danger{color:var(--danger)}.svc-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-2);padding:var(--sp-3)}.svc{display:grid;grid-template-columns:24px 1fr auto;gap:var(--sp-3);align-items:center;padding:10px var(--sp-3);border:var(--bw-1) solid var(--line-1);border-radius:var(--r-2);background:var(--bg-2)}.svc .glyph{width:24px;height:24px;border-radius:var(--r-1);display:grid;place-items:center;font-family:var(--font-mono);font-size:var(--fs-11);font-weight:700;color:var(--accent-ink);background:var(--accent)}.svc .glyph.b{background:#6ec8f0}.svc .glyph.c{background:#f0c46e;color:var(--warn-ink)}.svc .glyph.d{background:#c46ef0}.svc .glyph.e{background:#f06e7a}.svc .name{font-size:var(--fs-13);color:var(--fg-1)}.svc .host{font-family:var(--font-mono);font-size:var(--fs-11);color:var(--fg-3)}.toolbar{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);background:var(--bg-1);border:var(--bw-1) solid var(--line-1);border-bottom:0;border-radius:var(--r-2) var(--r-2) 0 0}.toolbar .search{flex:1;max-width:360px;position:relative}.toolbar .search input{background:var(--bg-inset);border:var(--bw-1) solid var(--line-2);border-radius:var(--r-2);height:30px;width:100%;padding:0 var(--sp-3) 0 30px;font-size:var(--fs-13);color:var(--fg-1)}.toolbar .search input:focus{outline:none;border-color:var(--accent)}.toolbar .search svg{position:absolute;left:9px;top:50%;transform:translateY(-50%);width:14px;height:14px;color:var(--fg-3)}.toolbar .filters{display:flex;gap:var(--sp-2)}.chip{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 10px;font-family:var(--font-mono);font-size:var(--fs-11);color:var(--fg-2);border:var(--bw-1) solid var(--line-2);border-radius:var(--r-pill);background:var(--bg-2);cursor:pointer}.chip.active{color:var(--accent);border-color:var(--accent);background:#6ef0a40f}.chip:hover{color:var(--fg-1)}.table{width:100%;border-collapse:collapse;background:var(--bg-1);border:var(--bw-1) solid var(--line-1);border-radius:0 0 var(--r-2) var(--r-2);overflow:hidden}.table thead th{text-align:left;font-family:var(--font-mono);font-size:var(--fs-11);color:var(--fg-3);letter-spacing:var(--tracking-caps);text-transform:uppercase;padding:10px var(--sp-4);border-bottom:var(--bw-1) solid var(--line-1);background:var(--bg-1);font-weight:500}.table tbody td{padding:12px var(--sp-4);border-bottom:var(--bw-1) solid var(--line-1);font-size:var(--fs-13);vertical-align:middle}.table tbody tr:last-child td{border-bottom:0}.table tbody tr{transition:background var(--dur-1) var(--ease);cursor:pointer}.table tbody tr:hover{background:var(--bg-2)}.table .title-cell{color:var(--fg-1);font-weight:500}.table .title-cell .slug{font-family:var(--font-mono);font-size:var(--fs-11);color:var(--fg-3);margin-top:2px}.table .meta{font-family:var(--font-mono);color:var(--fg-3);font-size:var(--fs-12)}.table .num{font-family:var(--font-mono);font-size:var(--fs-12);color:var(--fg-2);text-align:right}.table .row-actions{display:flex;gap:4px;justify-content:flex-end;opacity:0;transition:opacity var(--dur-1) var(--ease)}.table tbody tr:hover .row-actions{opacity:1}.row-actions .icon-btn{width:24px;height:24px}.row-actions .icon-btn svg{width:12px;height:12px}.checkbox{width:14px;height:14px;border:var(--bw-1) solid var(--line-3);border-radius:var(--r-1);background:var(--bg-inset);display:inline-grid;place-items:center;cursor:pointer}.checkbox.checked{background:var(--accent);border-color:var(--accent)}.checkbox.checked:after{content:"";width:6px;height:3px;border-left:2px solid var(--accent-ink);border-bottom:2px solid var(--accent-ink);transform:rotate(-45deg) translateY(-1px)}.editor-grid{display:grid;grid-template-columns:1fr 320px;gap:var(--sp-5)}.editor-main{display:flex;flex-direction:column;gap:var(--sp-4)}.title-input{width:100%;background:transparent;border:0;font-size:var(--fs-36);font-weight:600;color:var(--fg-1);letter-spacing:-.015em;padding:4px 0}.title-input:focus{outline:none}.title-input::placeholder{color:var(--fg-4)}.slug-row{display:flex;align-items:center;gap:var(--sp-2);font-family:var(--font-mono);font-size:var(--fs-12);color:var(--fg-3)}.slug-row .host{color:var(--fg-3)}.slug-row .slug-val{color:var(--accent)}.slug-row .edit{color:var(--fg-3);border-bottom:1px dashed var(--line-3);cursor:pointer}.slug-input-field{background:var(--bg-inset);border:var(--bw-1) solid var(--line-2);border-radius:var(--r-2);padding:4px 8px;font-family:var(--font-mono);font-size:var(--fs-12);color:var(--accent);width:320px}.slug-input-field:focus{outline:none;border-color:var(--accent)}.editor-toolbar{display:flex;align-items:center;gap:2px;padding:6px;background:var(--bg-1);border:var(--bw-1) solid var(--line-1);border-radius:var(--r-2) var(--r-2) 0 0}.tb-btn{width:28px;height:28px;display:grid;place-items:center;border-radius:var(--r-1);color:var(--fg-2);font-family:var(--font-mono);font-size:var(--fs-12)}.tb-btn:hover{background:var(--bg-3);color:var(--fg-1)}.tb-btn.active{background:var(--bg-3);color:var(--accent)}.tb-sep{width:1px;align-self:stretch;background:var(--line-1);margin:4px}.editor-body{background:var(--bg-1);border:var(--bw-1) solid var(--line-1);border-top:0;border-radius:0 0 var(--r-2) var(--r-2);padding:var(--sp-5) var(--sp-6);min-height:380px;font-size:var(--fs-16);line-height:1.65;color:var(--fg-1);outline:none}.editor-body h2{font-size:var(--fs-22);margin:1.4em 0 .5em}.editor-body p{margin:0 0 1em}.editor-body code,.editor-body pre{font-family:var(--font-mono);font-size:.92em;background:var(--bg-inset);border:var(--bw-1) solid var(--line-1);border-radius:var(--r-1)}.editor-body code{padding:1px 5px}.editor-body pre{padding:var(--sp-3) var(--sp-4);margin:1em 0;overflow-x:auto}.editor-body blockquote{border-left:2px solid var(--accent);padding-left:var(--sp-4);color:var(--fg-2);margin:1em 0}.editor-side{display:flex;flex-direction:column;gap:var(--sp-4)}.side-card{background:var(--bg-1);border:var(--bw-1) solid var(--line-1);border-radius:var(--r-2)}.side-card .head{padding:10px var(--sp-4);border-bottom:var(--bw-1) solid var(--line-1);font-family:var(--font-mono);font-size:var(--fs-11);color:var(--fg-3);text-transform:uppercase;letter-spacing:var(--tracking-caps)}.side-card .body{padding:var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-3)}.kv{display:flex;justify-content:space-between;align-items:center;gap:var(--sp-3)}.kv .k{font-family:var(--font-mono);font-size:var(--fs-12);color:var(--fg-3)}.kv .v{font-size:var(--fs-13);color:var(--fg-1)}.tag-input{display:flex;flex-wrap:wrap;gap:4px;padding:4px;background:var(--bg-inset);border:var(--bw-1) solid var(--line-2);border-radius:var(--r-2);min-height:32px}.tag{display:inline-flex;align-items:center;gap:4px;height:22px;padding:0 8px;font-family:var(--font-mono);font-size:var(--fs-11);color:var(--accent);background:#6ef0a414;border:var(--bw-1) solid rgba(110,240,164,.3);border-radius:var(--r-pill)}.tag .x{color:var(--fg-3);cursor:pointer}.tag .x:hover{color:var(--danger)}.tag-input input{flex:1;min-width:80px;background:transparent;border:0;font-family:var(--font-mono);font-size:var(--fs-12);color:var(--fg-1)}.tag-input input:focus{outline:none}.apps-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-4)}.app-card{background:var(--bg-1);border:var(--bw-1) solid var(--line-1);border-radius:var(--r-2);padding:var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-3);transition:border-color var(--dur-1) var(--ease)}.app-card:hover{border-color:var(--line-3)}.app-card .top{display:flex;align-items:flex-start;gap:var(--sp-3)}.app-icon{width:36px;height:36px;border-radius:var(--r-2);background:var(--bg-3);display:grid;place-items:center;font-family:var(--font-mono);font-weight:700;font-size:var(--fs-14);color:var(--fg-1);border:var(--bw-1) solid var(--line-2);flex:0 0 auto}.app-card .name{font-size:var(--fs-14);font-weight:500;color:var(--fg-1)}.app-card .host{font-family:var(--font-mono);font-size:var(--fs-11);color:var(--fg-3);margin-top:2px}.app-card .desc{font-size:var(--fs-12);color:var(--fg-2);line-height:var(--lh-snug)}.app-card .foot{display:flex;align-items:center;gap:var(--sp-2);margin-top:auto;padding-top:var(--sp-3);border-top:var(--bw-1) dashed var(--line-1)}.app-card .foot .tunnel{font-family:var(--font-mono);font-size:var(--fs-11);color:var(--fg-3)}.app-card .foot .tunnel b{color:var(--info);font-weight:500}.drag{width:14px;height:14px;color:var(--fg-4);cursor:grab;display:grid;place-items:center}.drag:active{cursor:grabbing}.media-toolbar{display:flex;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-4)}.media-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:var(--sp-3)}.media-tile{background:var(--bg-1);border:var(--bw-1) solid var(--line-1);border-radius:var(--r-2);overflow:hidden;position:relative}.media-tile .thumb{aspect-ratio:1 / 1;background:repeating-linear-gradient(45deg,var(--bg-2) 0 6px,var(--bg-3) 6px 12px);display:grid;place-items:center;color:var(--fg-3);font-family:var(--font-mono);font-size:var(--fs-11)}.media-tile .meta{padding:8px 10px;border-top:var(--bw-1) solid var(--line-1);font-family:var(--font-mono);font-size:var(--fs-11);display:flex;justify-content:space-between;gap:var(--sp-2)}.media-tile .meta .name{color:var(--fg-1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.media-tile .meta .size{color:var(--fg-3)}.storage{background:var(--bg-1);border:var(--bw-1) solid var(--line-1);border-radius:var(--r-2);padding:var(--sp-4) var(--sp-5);display:grid;grid-template-columns:1fr auto;gap:var(--sp-4);margin-bottom:var(--sp-4)}.storage .label{font-family:var(--font-mono);font-size:var(--fs-12);color:var(--fg-3)}.storage .bar{height:6px;background:var(--bg-3);border-radius:var(--r-pill);overflow:hidden;margin-top:8px}.storage .bar>span{display:block;height:100%;background:linear-gradient(90deg,var(--accent),var(--info))}.storage .nums{font-family:var(--font-mono);font-size:var(--fs-12);color:var(--fg-2);text-align:right}.storage .nums b{color:var(--fg-1);font-size:var(--fs-18);display:block;font-weight:500}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-4)}.settings-grid .panel-body{display:flex;flex-direction:column;gap:var(--sp-4)}.row-2{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-3)}.modal-scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--scrim);display:none;align-items:center;justify-content:center;z-index:100;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.modal-scrim.open{display:flex}.modal{width:520px;background:var(--bg-1);border:var(--bw-1) solid var(--line-2);border-radius:var(--r-3);box-shadow:var(--shadow-3);overflow:hidden}.modal-head{padding:var(--sp-4) var(--sp-5);border-bottom:var(--bw-1) solid var(--line-1);display:flex;align-items:center;gap:var(--sp-3)}.modal-head h3{margin:0;font-size:var(--fs-16);font-weight:600}.modal-head .close{margin-left:auto}.modal-body{padding:var(--sp-5);display:flex;flex-direction:column;gap:var(--sp-3)}.modal-foot{padding:var(--sp-4) var(--sp-5);border-top:var(--bw-1) solid var(--line-1);display:flex;gap:var(--sp-2);justify-content:flex-end}.toast{position:fixed;bottom:24px;right:24px;background:var(--bg-1);border:var(--bw-1) solid var(--line-2);border-left:3px solid var(--accent);border-radius:var(--r-2);padding:var(--sp-3) var(--sp-4);font-family:var(--font-mono);font-size:var(--fs-12);color:var(--fg-1);box-shadow:var(--shadow-2);display:flex;align-items:center;gap:var(--sp-3);z-index:200;transform:translateY(140%);opacity:0;transition:transform var(--dur-3) var(--ease),opacity var(--dur-3) var(--ease)}.toast.show{transform:translateY(0);opacity:1}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--line-2);border-radius:var(--r-pill);border:2px solid var(--bg-0)}::-webkit-scrollbar-thumb:hover{background:var(--line-3)}.row{display:flex;align-items:center;gap:var(--sp-3)}.spacer{flex:1}.uptime{font-family:var(--font-mono);font-size:var(--fs-11);color:var(--accent)}.uptime.warn{color:var(--warn)}.uptime.danger{color:var(--danger)}
