:root{color:var(--ink);background:var(--canvas);font-synthesis:none;text-rendering:optimizelegibility;--canvas:#f7f8fa;--surface:#fff;--surface-muted:#eef1f4;--ink:#17191d;--muted-ink:#5e6470;--hairline:#d8dde4;--primary:#2457d6;--success:#13795b;--warning:#9a5b00;--danger:#b42318;--focus:#1d67d8;--sidebar-width:268px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang TC,Noto Sans TC,sans-serif}*{box-sizing:border-box}html{background:var(--canvas);min-width:320px;overflow-x:clip}body{min-width:320px;min-height:100vh;margin:0;overflow-x:hidden}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}:focus-visible{outline:3px solid var(--focus);outline-offset:3px}input:not([type=checkbox]):not([type=radio]),select,textarea{border:1px solid var(--hairline);min-height:44px;color:var(--ink);background:var(--surface);border-radius:6px;padding:9px 11px}textarea{line-height:1.5}input[type=checkbox],input[type=radio]{flex:none;width:20px;height:20px}:is(label:has(input[type=checkbox]),label:has(input[type=radio])){min-height:44px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:100;min-height:44px;color:var(--surface);background:var(--ink);align-items:center;padding:10px 12px;display:flex;position:fixed;top:8px;left:8px;transform:translateY(-150%)}.skip-link:focus{transform:none}.app-frame,.sidebar-provider{min-height:100vh}.app-frame{width:100%;display:flex}.sidebar{flex:0 0 var(--sidebar-width);width:var(--sidebar-width);border-right:1px solid var(--hairline);background:var(--surface);flex-direction:column;height:100vh;transition:width .16s;display:flex;position:sticky;top:0}.sidebar--collapsed{flex-basis:76px;width:76px}.sidebar--collapsed .brand-mark__text,.sidebar--collapsed .sidebar__group-label,.sidebar--collapsed .sidebar__item-text,.sidebar--collapsed .sidebar__footer-status span:last-child{display:none}.sidebar--collapsed .brand-mark,.sidebar--collapsed .sidebar__menu-button{justify-content:center}.sidebar--mobile{z-index:50;width:min(86vw,320px);height:100vh;position:fixed;top:0;left:0;box-shadow:10px 0 30px #17191d29}.sidebar-mobile-layer{z-index:40;position:fixed;inset:0}.sidebar-mobile-layer__scrim{background:#17191d57;border:0;width:100%;min-height:100%;padding:0;position:absolute;inset:0}.sidebar-mobile-close{z-index:1;position:absolute;top:10px;right:10px}.sidebar__navigation{flex-direction:column;flex:1;height:100%;min-height:0;display:flex}.sidebar__header{border-bottom:1px solid var(--hairline);padding:22px 18px 18px}.sidebar__content{flex:1;min-height:0;padding:14px 10px;overflow-y:auto}.sidebar__footer{border-top:1px solid var(--hairline);padding:14px 16px 18px}.sidebar__group+.sidebar__group{margin-top:24px}.sidebar__group-label{color:var(--muted-ink);letter-spacing:.1em;text-transform:uppercase;margin:0 8px 8px;font-size:11px;font-weight:760}.sidebar__menu{gap:3px;margin:0;padding:0;list-style:none;display:grid}.sidebar__menu-item{min-width:0}.sidebar__menu-button{width:100%;min-height:52px;color:var(--muted-ink);text-align:left;background:0 0;border:1px solid #0000;border-radius:6px;justify-content:flex-start;align-items:center;padding:7px 10px;display:flex}.sidebar__menu-button:hover{border-color:var(--hairline);color:var(--ink);background:var(--surface-muted)}.sidebar__menu-button--active{color:var(--ink);background:#edf2ff;border-color:#b7c7ed}.sidebar__item-icon{color:var(--primary);flex:0 0 22px;margin-right:9px}.sidebar__item-text{gap:2px;min-width:0;display:grid}.sidebar__item-text strong{text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:720;overflow:hidden}.sidebar__item-text small{color:var(--muted-ink);text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:450;overflow:hidden}.brand-mark{align-items:center;gap:10px;min-height:44px;display:flex}.brand-mark__glyph{border:1px solid var(--primary);width:34px;height:34px;color:var(--primary);border-radius:6px;flex:0 0 34px;place-items:center;font-weight:800;display:inline-grid}.brand-mark__text{gap:2px;min-width:0;display:grid}.brand-mark__text strong{white-space:nowrap;font-size:14px;font-weight:800}.brand-mark__text small{color:var(--muted-ink);letter-spacing:.12em;font-size:9px;font-weight:750}.sidebar__footer-status{min-height:44px;color:var(--muted-ink);align-items:center;gap:9px;font-size:12px;display:flex}.status-dot,.role-chip__dot{background:var(--success);border-radius:50%;flex:0 0 8px;width:8px;height:8px;display:inline-block}.sidebar-inset{background:var(--canvas);flex-direction:column;flex:1;min-width:0;min-height:100vh;display:flex}.sidebar-inset:focus{outline:none}.context-bar{border-bottom:1px solid var(--hairline);background:var(--surface);justify-content:space-between;align-items:center;gap:18px;min-height:72px;padding:12px clamp(18px,3.5vw,48px);display:flex}.context-bar__leading,.context-bar__actions{align-items:center;gap:12px;min-width:0;display:flex}.context-bar__section{margin:0;font-size:14px;font-weight:760}.context-bar__path{max-width:55vw;color:var(--muted-ink);text-overflow:ellipsis;white-space:nowrap;margin:3px 0 0;font-size:12px;overflow:hidden}.context-bar__actions{flex-wrap:wrap;justify-content:flex-end}.role-chip{border:1px solid var(--hairline);min-height:36px;color:var(--muted-ink);white-space:nowrap;border-radius:999px;align-items:center;gap:8px;padding:0 10px;font-size:12px;display:inline-flex}.role-chip__dot{background:var(--primary)}.sidebar-trigger{display:none}.page-content{width:100%;max-width:1440px;margin:0 auto;padding:clamp(28px,5vw,58px) clamp(18px,3.5vw,48px) 72px}.page-heading{justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:24px;display:flex}.page-heading h1{color:var(--ink);letter-spacing:-.045em;margin:8px 0 10px;font-size:clamp(2rem,4vw,3.5rem);line-height:1.04}.page-heading p:not(.eyebrow){max-width:72ch;color:var(--muted-ink);margin:0;font-size:15px;line-height:1.6}.eyebrow{color:var(--primary);letter-spacing:.11em;text-transform:uppercase;margin:0;font-size:11px;font-weight:800}.notice{border:1px solid #b9c9ee;border-left:4px solid var(--primary);color:#20345f;background:#f0f4ff;align-items:flex-start;gap:12px;margin-bottom:24px;padding:14px 16px;display:flex}.notice svg{flex:none;margin-top:2px}.notice p{margin:0;font-size:13px;line-height:1.55}.dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.dashboard-grid>*{min-width:0}.panel{border:1px solid var(--hairline);background:var(--surface);border-radius:6px;min-width:0;padding:22px}.panel--wide{grid-column:span 2}.panel--route-placeholder{max-width:780px}.section-heading{justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:18px;display:flex}.section-heading>div{min-width:0}.section-heading h2{letter-spacing:-.02em;margin:6px 0 7px;font-size:20px}.section-heading p,.panel__description{color:var(--muted-ink);margin:0;font-size:13px;line-height:1.55}.section-heading__icon{color:var(--primary);flex:none}.status-badge{min-height:30px;color:var(--warning);text-align:center;background:#fff9ed;border:1px solid #e1c48f;border-radius:999px;justify-content:center;align-items:center;padding:4px 9px;font-size:11px;font-weight:760;line-height:1.25;display:inline-flex}.status-badge--locked{color:var(--danger);background:#fff5f4;border-color:#e8b5b0}.status-badge--neutral{color:#274d9e;background:#f2f5fb;border-color:#b8c6df}.surface-list{border-top:1px solid var(--hairline);display:grid}.surface-row{border-bottom:1px solid var(--hairline);grid-template-columns:36px minmax(0,1fr) auto;align-items:center;gap:14px;min-height:82px;padding:12px 0;display:grid}.surface-row__index{color:var(--muted-ink);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.surface-row__body{min-width:0}.surface-row__body h3{margin:0 0 4px;font-size:15px}.surface-row__body p{color:var(--muted-ink);margin:0;font-size:13px;line-height:1.45}.definition-list{gap:16px;margin:22px 0;display:grid}.definition-list div{border-bottom:1px solid var(--hairline);gap:4px;padding-bottom:14px;display:grid}.definition-list dt{font-size:13px;font-weight:750}.definition-list dd{color:var(--muted-ink);margin:0;font-size:12px;line-height:1.45}.policy-button{justify-content:center;gap:8px;width:100%}.policy-list{gap:8px;padding:12px 0;display:grid}.policy-list p{color:var(--muted-ink);margin:0;font-size:13px;line-height:1.5}.ui-button{border:1px solid var(--hairline);border-radius:6px;justify-content:center;align-items:center;gap:8px;min-width:44px;min-height:44px;padding:0 14px;font-size:13px;font-weight:720;line-height:1.2;transition:background-color .12s,border-color .12s,color .12s;display:inline-flex}.ui-button--primary{border-color:var(--primary);color:#fff;background:var(--primary)}.ui-button--primary:hover{background:#1d49b8}.ui-button--secondary{color:var(--ink);background:var(--surface)}.ui-button--secondary:hover{background:var(--surface-muted);border-color:#9ca7b5}.ui-button--quiet{color:var(--muted-ink);background:0 0;border-color:#0000}.ui-button--quiet:hover{border-color:var(--hairline);color:var(--ink);background:var(--surface-muted)}.ui-button--danger{border-color:var(--danger);color:#fff;background:var(--danger)}.ui-button--small{min-height:44px;padding:0 11px}.ui-button--icon{width:44px;padding:0}.table-scroll{contain:layout paint;border:1px solid var(--hairline);width:100%;overflow:auto}.data-table{border-collapse:collapse;text-align:left;width:100%;min-width:600px}.data-table__cell{border-bottom:1px solid var(--hairline);color:var(--muted-ink);vertical-align:top;padding:14px 16px;font-size:13px;line-height:1.45}.data-table__cell--head{color:var(--ink);background:var(--surface-muted);letter-spacing:.06em;text-transform:uppercase;font-size:11px;font-weight:800}.data-table__row:last-child .data-table__cell{border-bottom:0}.data-table__row:hover .data-table__cell{background:#fbfcfd}.data-table strong{color:var(--ink);font-weight:730}.state-panel{background:#fbfcfd;border:1px dashed #bfc6d0;align-items:flex-start;gap:12px;min-height:106px;padding:16px;display:flex}.state-panel__marker{border:1px solid var(--hairline);width:26px;height:26px;color:var(--muted-ink);border-radius:50%;flex:0 0 26px;place-items:center;font-weight:800;display:inline-grid}.state-panel h2,.state-panel h3{margin:1px 0 5px;font-size:14px}.state-panel p{color:var(--muted-ink);margin:0;font-size:12px;line-height:1.5}.state-panel--error{background:#fff8f7;border-color:#e8b5b0}.state-panel--error .state-panel__marker{color:var(--danger);border-color:#e8b5b0}.state-panel--restricted{background:#f4f5f7}.state-panel__spinner{border:2px solid #cdd4df;border-top-color:var(--primary);border-radius:50%;flex:0 0 22px;width:22px;height:22px;animation:.7s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.command-dialog__overlay,.alert-dialog__overlay{z-index:70;background:#17191d7a;position:fixed;inset:0}.command-dialog__content,.alert-dialog__content{z-index:71;border:1px solid var(--hairline);background:var(--surface);border-radius:6px;width:min(92vw,620px);max-height:min(80vh,680px);position:fixed;top:50%;left:50%;overflow:auto;transform:translate(-50%,-50%);box-shadow:0 18px 48px #17191d33}.command-dialog__content{padding:0}.command{color:var(--ink);background:var(--surface);overflow:hidden}.command__input-wrap{border-bottom:1px solid var(--hairline);padding:12px}.command__input{border:1px solid var(--hairline);width:100%;min-height:44px;color:var(--ink);background:var(--canvas);border-radius:4px;outline:none;padding:0 12px;display:block}.command__input:focus{border-color:var(--focus);box-shadow:0 0 0 3px #1d67d829}.command__list{max-height:58vh;padding:8px;overflow-y:auto}.command__empty{color:var(--muted-ink);text-align:center;padding:24px;font-size:13px}.command__heading{color:var(--muted-ink);letter-spacing:.08em;text-transform:uppercase;margin:0;padding:8px 10px 5px;font-size:11px;font-weight:800}.command__item{min-height:44px;color:var(--ink);border-radius:4px;outline:none;align-items:center;gap:10px;padding:7px 10px;font-size:13px;display:flex}.command__item[data-selected=true]{color:var(--ink);background:var(--surface-muted)}.command__item-description{color:var(--muted-ink);margin-left:auto;font-size:11px}.command__separator{background:var(--hairline);height:1px;margin:8px 0}.alert-dialog__content{padding:24px}.alert-dialog__header{gap:8px;display:grid}.alert-dialog__title{margin:0;font-size:19px}.alert-dialog__description{color:var(--muted-ink);margin:0;font-size:13px;line-height:1.55}.alert-dialog__footer{justify-content:flex-end;gap:10px;margin-top:20px;display:flex}@media (width<=780px){.sidebar-trigger{display:inline-flex}.sidebar-trigger__icon{font-size:20px;line-height:1}.dashboard-grid{grid-template-columns:1fr}.panel--wide{grid-column:auto}.page-heading{flex-direction:column;align-items:flex-start}.language-button__label{display:none}.context-bar{min-height:64px;padding-inline:14px}.context-bar__actions{gap:4px}.role-chip{display:none}.surface-row{grid-template-columns:28px minmax(0,1fr)}.surface-row .status-badge{grid-column:2;justify-self:start}}@media (width<=470px){.page-content{padding-inline:14px}.panel{padding:16px}.section-heading{flex-wrap:wrap}.context-bar__path{display:none}.context-bar__leading{gap:7px}.page-heading h1{font-size:2rem}.alert-dialog__footer{flex-direction:column-reverse}.alert-dialog__footer .ui-button{width:100%}}@media (prefers-color-scheme:dark){:root{--canvas:#111318;--surface:#191c22;--surface-muted:#232831;--ink:#f4f6f8;--muted-ink:#c2c8d1;--hairline:#4a5361;--primary:#9bbcff;--success:#6fdbb6;--warning:#f2c66d;--danger:#ffaaa2;--focus:#a9c7ff}.notice{color:#dbe6ff;background:#19243e;border-color:#3d5c9e}.sidebar__menu-button--active{background:#202d4d;border-color:#3d5c9e}.data-table__row:hover .data-table__cell{background:#20242b}.state-panel{background:#1c2026;border-color:#596473}.state-panel--error{background:#321f20;border-color:#8d5552}.state-panel--restricted{background:#242830}.status-badge{background:#302818;border-color:#8b713e}.status-badge--locked{background:#351f20;border-color:#8d5552}.status-badge--neutral{color:#bed0ff;background:#202d4d;border-color:#526b9f}.ui-button--primary{color:#111820}.ui-button--danger{color:#211112}}
