*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font-family:inherit}.appshell{display:grid;grid-template-columns:240px 1fr;min-height:100vh}html.is-embedded .appshell{grid-template-columns:1fr;min-height:0}html.is-embedded .appshell-side,html.is-embedded .appshell-pagehead{display:none}html.is-embedded .appshell-main,html.is-embedded,html.is-embedded body{min-height:0}html.is-embedded .pu-banner,html.is-embedded .ib-banner,html.is-embedded .bi-banner,html.is-embedded .np-banner,html.is-embedded .set-banner,html.is-embedded .dx-banner{display:none}html.is-embedded .pu-filterbar{display:none!important}.appshell-side{background:var(--paper-2);border-right:1px solid var(--hairline);padding:22px 14px;display:flex;flex-direction:column;gap:22px;position:sticky;top:0;height:100vh;overflow-y:auto}.appshell-brand{display:flex;align-items:center;gap:10px;padding:4px 6px 18px;border-bottom:1px solid var(--hairline)}.logo-mark{width:26px;height:26px;border-radius:var(--r-4);background:var(--ink);color:var(--paper);display:grid;place-items:center;font-family:var(--serif);font-size:17px;font-style:italic;padding-bottom:2px;line-height:1}.logo-word{font-size:12px;letter-spacing:.18em;color:var(--ink);font-weight:500}.appshell-section{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-4);padding:0 8px 8px}.appshell-nav{display:flex;flex-direction:column;gap:1px}.appshell-link{display:flex;align-items:center;gap:10px;padding:8px 10px;font-size:var(--fs-app-row);color:var(--ink-2);border-radius:var(--r-3);cursor:pointer;background:transparent;border:none;width:100%;text-align:left;transition:background var(--t-fast) ease,color var(--t-fast) ease}.appshell-link:hover{background:var(--paper-3);color:var(--ink)}.appshell-link.is-active{background:var(--ink);color:var(--paper)}.appshell-link.is-active .appshell-icon{color:var(--paper)}.appshell-icon{width:15px;height:15px;color:var(--ink-3);flex-shrink:0}.appshell-badge{margin-left:auto;display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;font-family:var(--mono);font-size:10px;letter-spacing:.04em;color:var(--paper);background:var(--status-warn);border-radius:var(--r-pill)}.appshell-link.is-active .appshell-badge{background:var(--paper);color:var(--ink)}.appshell-link.is-disabled{color:var(--ink-4);cursor:not-allowed;opacity:.6}.appshell-link.is-disabled:hover{background:transparent;color:var(--ink-4)}.appshell-link.is-disabled .appshell-icon{color:var(--ink-4)}.appshell-foot{margin-top:auto}.appshell-perspective{display:grid;grid-template-columns:1fr 1fr;gap:2px;padding:2px;background:var(--paper-3);border:1px solid var(--hairline);border-radius:var(--r-pill)}.appshell-perspective-pill{display:inline-flex;align-items:center;justify-content:center;height:28px;padding:0 10px;font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);border-radius:var(--r-pill);transition:background var(--t-fast) ease,color var(--t-fast) ease}.appshell-perspective-pill:hover{color:var(--ink)}.appshell-perspective-pill.is-active{background:var(--paper);color:var(--ink);box-shadow:0 1px 0 var(--hairline)}.appshell-tenant{display:flex;flex-direction:column;gap:4px;padding:10px 12px;background:var(--paper);border:1px solid var(--hairline);border-radius:var(--r-3);transition:border-color var(--t-fast) ease,background var(--t-fast) ease}.appshell-tenant[hidden]{display:none}.appshell-tenant:hover{border-color:var(--hairline-strong);background:var(--paper-2)}.appshell-tenant-label{font-family:var(--mono);font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-4)}.appshell-tenant-name{font-size:13px;line-height:1.25;color:var(--ink);font-weight:500;word-break:break-word}.appshell-tenant-switch{margin-top:2px;font-family:var(--mono);font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);align-self:flex-end}.appshell-tenant:hover .appshell-tenant-switch{color:var(--accent-deep)}.appshell-main{display:flex;flex-direction:column;min-width:0;min-height:100vh}.appshell-pagehead{padding:20px 28px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--hairline);background:var(--paper)}.appshell-pagetitle{font-family:var(--serif);font-weight:400;font-size:22px;line-height:1.2;letter-spacing:-.012em;color:var(--ink)}.appshell-pagesub{font-family:var(--mono);font-size:11px;color:var(--ink-4);letter-spacing:.04em;margin-top:4px}.appshell-pagesub a{color:var(--ink-3);border-bottom:1px solid transparent}.appshell-pagesub a:hover{color:var(--ink);border-bottom-color:var(--hairline-strong)}.appshell-pagesub .sep{color:var(--ink-4)}.appshell-pagehead-right{display:flex;gap:8px;align-items:center}.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;background:transparent;border:1px solid var(--hairline-strong);border-radius:var(--r-3);color:var(--ink-3);cursor:pointer;transition:color var(--t-fast),border-color var(--t-fast),background var(--t-fast)}.theme-toggle:hover{color:var(--ink);border-color:var(--ink-3);background:var(--paper-2)}.theme-toggle .th-moon{display:none}:root[data-theme=dark] .theme-toggle .th-sun{display:none}:root[data-theme=dark] .theme-toggle .th-moon{display:inline}.appshell-content{flex:1;padding:24px 28px 60px;min-width:0}html.is-embedded .appshell-content{padding:20px 24px 32px}.badge{display:inline-flex;align-items:center;gap:6px;padding:2px 8px;font-family:var(--mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;border-radius:var(--r-pill);border:1px solid var(--hairline-strong);color:var(--ink-3);background:var(--paper);white-space:nowrap}.badge:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--ink-4)}.badge-ok{color:var(--status-ok);border-color:var(--status-ok);background:var(--status-ok-soft)}.badge-ok:before{background:var(--status-ok)}.badge-warn{color:var(--status-warn);border-color:var(--status-warn);background:var(--status-warn-soft)}.badge-warn:before{background:var(--status-warn)}.badge-error{color:var(--status-error);border-color:var(--status-error);background:var(--status-error-soft)}.badge-error:before{background:var(--status-error)}.badge-info{color:var(--accent-deep);border-color:var(--accent-deep);background:var(--accent-soft)}.badge-info:before{background:var(--accent-deep)}.badge-quiet{color:var(--ink-4);background:var(--paper-2);border-color:var(--hairline)}.btn{display:inline-flex;align-items:center;gap:6px;padding:0 14px;height:34px;font-family:var(--sans);font-size:13px;font-weight:500;text-decoration:none;border-radius:var(--r-3);border:1px solid transparent;cursor:pointer;transition:background var(--t-fast) ease,border-color var(--t-fast) ease;white-space:nowrap}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--ink);color:var(--paper)}.btn-primary:hover:not(:disabled){background:var(--ink-2)}.btn-ghost{background:var(--paper);color:var(--ink);border-color:var(--hairline-strong)}.btn-ghost:hover:not(:disabled){background:var(--paper-2)}.btn-quiet{background:transparent;color:var(--ink-3);padding:0 10px}.btn-quiet:hover:not(:disabled){color:var(--ink)}.btn-sm{height:28px;padding:0 10px;font-size:12px}.input{height:34px;padding:0 12px;border:1px solid var(--hairline-strong);border-radius:var(--r-3);background:var(--paper);font-family:var(--sans);font-size:13px;color:var(--ink);outline:none;transition:border-color var(--t-fast) ease;width:100%;min-width:0}.input:focus{border-color:var(--ink)}.input-label{font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);margin-bottom:6px;display:block}@media(max-width:880px){.appshell{grid-template-columns:1fr}.appshell-side{display:none}}
