:root,[data-theme=dark]{--bg-base:#0b0f14;--bg-surface:#131920;--bg-surface-raised:#1a2129;--border:#232b35;--border-subtle:#1a2129;--text-primary:#e8edf2;--text-secondary:#a7b2bd;--text-muted:#6b7684;--signal-success:#34d399;--signal-success-dim:#1a3d31;--signal-warn:#f5a524;--signal-warn-dim:#3d2f14;--signal-danger:#f0506e;--signal-danger-dim:#3d1a24;--signal-idle:#4c8dff;--signal-idle-dim:#16233d;--on-accent-text:#0b0f14;--shadow-panel:0 1px 0 #ffffff08 inset, 0 8px 24px #00000059;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-theme=light]{--bg-base:#f4f6f9;--bg-surface:#fff;--bg-surface-raised:#fff;--border:#d7dee6;--border-subtle:#e6eaef;--text-primary:#1a2129;--text-secondary:#4d5b6a;--text-muted:#8792a0;--signal-success:#16a34a;--signal-success-dim:#dcfce7;--signal-warn:#d97706;--signal-warn-dim:#fef3c7;--signal-danger:#dc2626;--signal-danger-dim:#fee2e2;--signal-idle:#2563eb;--signal-idle-dim:#dbeafe;--on-accent-text:#fff;--shadow-panel:0 1px 0 #fff9 inset, 0 8px 24px #141e2d14;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}[data-theme=beta]{--bg-base:#fff8f0;--bg-surface:#fff;--bg-surface-raised:#fff3e6;--border:#ffd9ad;--border-subtle:#ffe8cc;--text-primary:#3d2817;--text-secondary:#8a5a35;--text-muted:#c19b78;--signal-success:#16a34a;--signal-success-dim:#dcfce7;--signal-warn:#ea580c;--signal-warn-dim:#ffedd5;--signal-danger:#dc2626;--signal-danger-dim:#fee2e2;--signal-idle:#f97316;--signal-idle-dim:#ffe4c7;--on-accent-text:#fff;--shadow-panel:0 1px 0 #fff9 inset, 0 8px 24px #b4641e1f;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root{--font-display:"Space Grotesk", "Segoe UI", sans-serif;--font-body:"IBM Plex Sans", "Segoe UI", sans-serif;--font-mono:"IBM Plex Mono", "Consolas", monospace;--radius-sm:6px;--radius-md:10px}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg-base);color:var(--text-primary);font-family:var(--font-body);-webkit-font-smoothing:antialiased;margin:0;font-size:14px;line-height:1.5}h1,h2,h3,h4{font-family:var(--font-display);letter-spacing:-.01em;margin:0;font-weight:600}select,input:not([type=checkbox]):not([type=radio]){background:var(--bg-base);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-size:13.5px;font-family:var(--font-body);padding:8px 10px}select:focus,input:focus{border-color:var(--signal-idle);outline:none}input[type=file]{color:var(--text-secondary);padding:6px}input[type=file]::file-selector-button{background:var(--bg-surface-raised);border:1px solid var(--border);color:var(--text-primary);border-radius:var(--radius-sm);font-family:var(--font-body);cursor:pointer;margin-right:10px;padding:8px 14px;font-size:13px}input[type=file]::file-selector-button:hover{background:var(--bg-surface)}code,.mono{font-family:var(--font-mono)}a{color:inherit}button{font-family:var(--font-body)}::selection{background:var(--signal-idle-dim)}:focus-visible{outline:2px solid var(--signal-idle);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}.table-scroll{-webkit-overflow-scrolling:touch;overflow-x:auto}.field-row-responsive{flex-wrap:wrap;align-items:flex-end;gap:12px;display:flex}@media (width<=640px){.field-row-responsive{flex-direction:column;align-items:stretch}.field-row-responsive>*{width:100%}}.gate-group__section{margin-bottom:20px}.gate-group__section:last-child{margin-bottom:0}.gate-group__label{color:var(--text-secondary);margin:0 0 8px;font-size:12px}.gate-group__chips{flex-wrap:wrap;gap:8px;display:flex}.chip{background:var(--bg-surface-raised);border:1px solid var(--border);color:var(--text-primary);border-radius:999px;align-items:center;gap:6px;padding:4px 10px 4px 12px;font-size:12.5px;display:inline-flex}:root{--gate-tone:var(--signal-idle);--dept-tone:#b389f5}.chip__icon{flex:none}.chip--gate{color:var(--text-primary);border-color:color-mix(in srgb, var(--gate-tone) 45%, var(--border));background:color-mix(in srgb, var(--gate-tone) 12%, var(--bg-surface-raised));border-radius:8px;padding-left:9px}.chip--gate .chip__icon{color:var(--gate-tone)}.chip--dept{border-color:color-mix(in srgb, var(--dept-tone) 45%, var(--border));background:color-mix(in srgb, var(--dept-tone) 12%, var(--bg-surface-raised));border-radius:999px;padding-left:11px}.chip--dept .chip__icon{color:var(--dept-tone)}.chip__no{font-family:var(--font-mono,monospace);background:color-mix(in srgb, var(--gate-tone) 22%, transparent);color:var(--text-secondary);border-radius:4px;padding:3px 5px;font-size:11px;line-height:1}.gate-group__section--gate{border-left:3px solid var(--gate-tone);padding-left:12px}.gate-group__section--dept{border-left:3px solid var(--dept-tone);padding-left:12px}.gate-group__label{align-items:center;gap:6px;display:flex}.gate-group__label--gate{color:var(--gate-tone);font-weight:600}.gate-group__label--dept{color:var(--dept-tone);font-weight:600}.gate-group__count{background:var(--bg-surface-raised);color:var(--text-secondary);border-radius:999px;margin-left:2px;padding:1px 7px;font-size:11px;font-weight:600}.gate-group__picker-heading{align-items:center;gap:6px;display:flex}.gate-group__picker-heading--gate{color:var(--gate-tone)}.gate-group__picker-heading--dept{color:var(--dept-tone)}.chip__remove{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:0 2px;font-size:15px;line-height:1}.chip__remove:hover{color:var(--signal-danger)}.branch-picker{flex-direction:column;gap:10px;margin-bottom:8px;display:flex}.branch-picker__row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.branch-picker__checkbox{align-items:center;gap:8px;min-width:160px;font-size:13.5px;display:flex}.gate-group__picker{flex-wrap:wrap;gap:32px;margin-top:8px;display:flex}.gate-group__picker-column{min-width:220px}.gate-group__picker-heading{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin:0 0 8px;font-size:11px}.gate-group__checkbox-row{cursor:pointer;align-items:center;gap:8px;padding:4px 0;font-size:13.5px;display:flex}.status-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px;display:grid}.status-grid__item{flex-direction:column;gap:4px;display:flex}.status-grid__label{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-size:11px}.stat-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:16px;display:grid}.stat-card{background:var(--bg-surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);flex-direction:column;gap:2px;padding:16px;display:flex}.stat-card__link{color:inherit;text-decoration:none;transition:border-color .12s;display:block}.stat-card__link:hover .stat-card{border-color:var(--signal-idle)}.stat-card__value{font-family:var(--font-display);color:var(--text-primary);font-size:26px;font-weight:700}.stat-card__label{color:var(--text-secondary);font-size:12.5px}.stat-card__sub{color:var(--text-muted);font-size:11px}.settings-dropdown{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-panel);z-index:40;flex-direction:column;min-width:200px;margin-top:4px;padding:4px;display:flex;position:absolute;top:100%;right:0}.settings-dropdown__item{text-align:left;font-family:var(--font-body);color:var(--text-primary);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:none;padding:8px 10px;font-size:13px}.settings-dropdown__item:hover{background:var(--bg-surface-raised)}.settings-dropdown__item--danger{color:var(--signal-danger)}.dump-progress__bar-track{background:var(--bg-surface-raised);border-radius:999px;height:8px;margin-bottom:8px;overflow:hidden}.dump-progress__bar-fill{background:var(--signal-idle);border-radius:999px;height:100%;transition:width .2s}.dump-progress__status{color:var(--text-secondary);margin:0 0 14px;font-size:12.5px}.dump-progress__log{background:var(--bg-base);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);max-height:200px;font-family:var(--font-mono);padding:10px 12px;font-size:12px;overflow-y:auto}.dump-progress__log-line{color:var(--text-primary);padding:2px 0}.dump-progress__log-time{color:var(--text-muted);margin-right:8px}.tab-strip{border-bottom:1px solid var(--border);-webkit-overflow-scrolling:touch;scrollbar-width:none;gap:4px;margin-bottom:16px;display:flex;overflow-x:auto}.tab-strip::-webkit-scrollbar{display:none}.tab-strip>button{white-space:nowrap;flex:none}@media (width<=800px){.panel{max-width:100%}.panel__body{padding:14px}.panel__header{padding:12px 14px}.page-header{flex-wrap:wrap;gap:8px}.btn,input,select,textarea{max-width:100%}.wrap-row{flex-wrap:wrap!important}.wrap-row>.grow{flex:100%!important;min-width:0!important}}.role-cards{display:none}.check-grid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:8px 14px;display:grid}.check-grid label{overflow-wrap:anywhere;min-width:0}@media (width<=800px){.roles-table{display:none}.role-cards{flex-direction:column;gap:10px;display:flex}.role-card{border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--bg-base);padding:12px}.role-card__name{font-size:14.5px}.role-card__meta{color:var(--text-secondary);flex-wrap:wrap;align-items:center;gap:6px 8px;margin:8px 0 10px;font-size:12.5px;display:flex}.role-card__actions{gap:8px;display:flex}.role-card__actions .btn{flex:1}.perm-table th,.perm-table td{padding:8px;font-size:12.5px}.perm-table th:first-child,.perm-table td:first-child{z-index:1;background:var(--bg-surface);min-width:120px;max-width:150px;box-shadow:1px 0 0 var(--border-subtle);position:sticky;left:0}.perm-table td:last-child{white-space:nowrap}}.role-summary{border:1px solid var(--border-subtle);border-left:3px solid var(--signal-idle);border-radius:var(--radius-sm);background:var(--bg-base);margin-top:14px;padding:10px 12px;font-size:13px;line-height:1.5}.role-summary__warn{color:var(--signal-warn);margin-top:6px}.role-presets{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:8px;display:grid}.role-preset{text-align:left;background:var(--bg-base);border:1px solid var(--border);border-radius:var(--radius-sm);color:inherit;cursor:pointer;font:inherit;flex-direction:column;gap:3px;padding:10px 12px;display:flex}.role-preset:hover{border-color:var(--signal-idle)}.role-preset span{color:var(--text-muted);font-size:12px;line-height:1.35}.role-preset-copy{align-self:stretch}.perm-search{width:100%;max-width:420px;margin-bottom:10px}.perm-toolbar{color:var(--text-secondary);flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:10px;font-size:12.5px;display:flex}.perm-colbtn{border:1px solid var(--border);color:var(--text-primary);font:inherit;cursor:pointer;background:0 0;border-radius:999px;padding:5px 12px;font-size:12.5px}.perm-colbtn.is-on{background:var(--signal-idle-dim);border-color:var(--signal-idle);color:var(--signal-idle)}.perm-colbtn--danger{border-color:color-mix(in srgb, var(--signal-danger) 50%, var(--border));color:var(--signal-danger)}.perm-colbtn--danger.is-on{background:color-mix(in srgb, var(--signal-danger) 14%, transparent);border-color:var(--signal-danger);color:var(--signal-danger)}.perm-group{border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--bg-surface);margin-bottom:8px}.perm-group>summary{cursor:pointer;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;font-size:13.5px;display:flex}.perm-group>summary span{color:var(--text-muted);font-size:12px}.perm-grid-head,.perm-row{grid-template-columns:minmax(0,1fr) repeat(4,62px) 54px;align-items:center;gap:4px;padding:6px 12px;display:grid}.perm-grid-head{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);text-align:center;padding-bottom:2px;font-size:11px;font-weight:600}.perm-grid-head>span:first-child{text-align:left}.perm-grid-head .is-danger{color:var(--signal-danger)}.perm-row{border-top:1px solid var(--border-subtle);font-size:13px}.perm-row--risk{background:color-mix(in srgb, var(--signal-danger) 6%, transparent)}.perm-row__name{overflow-wrap:anywhere;min-width:0}.perm-tag{background:var(--bg-elevated);color:var(--text-muted);border:1px solid var(--border-subtle);white-space:nowrap;border-radius:999px;margin-left:6px;padding:1px 6px;font-size:10.5px}.perm-act{cursor:pointer;justify-content:center;align-items:center;gap:4px;display:flex}.perm-act span{font-size:12px;display:none}.perm-act--danger input{accent-color:var(--signal-danger)}.perm-rowbtn{border:1px solid var(--border-subtle);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:6px;padding:3px 6px;font-size:11.5px}.role-preview{border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--bg-base);columns:2 200px;column-gap:24px;margin-top:10px;padding:10px 14px}.role-preview__sect{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);break-after:avoid;margin:8px 0 3px;font-size:11px;font-weight:600}.role-preview__item{break-inside:avoid;padding:2px 0;font-size:13px}.search-picker{border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--bg-base);padding:10px}.search-picker__count{color:var(--text-secondary);margin-bottom:8px;font-size:12.5px}.search-picker__chips,.search-picker__tools{flex-wrap:wrap;gap:6px;margin-bottom:8px;display:flex}.search-picker__tools input{flex:160px;min-width:0}.search-picker__list{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:4px 14px;max-height:200px;display:grid;overflow-y:auto}.search-picker__list label{overflow-wrap:anywhere;align-items:center;gap:6px;min-width:0;font-size:13px;display:flex}.role-extra{border:1px solid var(--border-subtle);border-radius:var(--radius-sm);margin-top:16px;padding:0 12px 10px}.role-extra>summary{cursor:pointer;justify-content:space-between;gap:8px;padding:10px 0;font-size:13.5px;display:flex}.role-extra>summary span{color:var(--text-muted);font-size:12px}.role-extra__empty{color:var(--text-muted);margin:0;font-size:13px}.role-extra__row{border-top:1px solid var(--border-subtle);justify-content:space-between;align-items:center;gap:8px;padding:6px 0;font-size:13px;display:flex}.role-extra__add{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.role-extra__add select{flex:200px;min-width:0}.role-extra__hist{border-top:1px solid var(--border-subtle);overflow-wrap:anywhere;padding:8px 0;font-size:13px;line-height:1.45}.role-extra__when{color:var(--text-muted);margin-bottom:2px;font-size:12px}.sticky-actions{z-index:5;background:var(--bg-surface);border-top:1px solid var(--border);justify-content:flex-end;align-items:center;gap:8px;margin:18px -16px -16px;padding:12px 16px;display:flex;position:sticky;bottom:0}.sticky-actions__state{color:var(--text-muted);margin-right:auto;font-size:12.5px}.sticky-actions__state.is-dirty{color:var(--signal-warn);font-weight:600}@media (width<=800px){.perm-grid-head{display:none}.perm-row{flex-wrap:wrap;gap:6px 14px;padding:10px 12px;display:flex}.perm-row__name{flex:100%;font-weight:600}.perm-act{justify-content:flex-start}.perm-act span{display:inline}.perm-rowbtn{margin-left:auto}.perm-colbtn{padding:8px 14px}.sticky-actions{margin:18px -14px -14px;padding:12px 14px}}.gate-group-search{flex-wrap:wrap;align-items:center;gap:8px 12px;margin:0 0 14px;display:flex}.gate-group-search input{flex:260px;min-width:0;max-width:460px}.gate-group-search__count{color:var(--text-muted);font-size:12.5px}.key-cards{display:none}@media (width<=800px){.key-table{display:none}.key-cards{flex-direction:column;gap:10px;display:flex}.key-card{border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--bg-base);padding:12px}.key-card__head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.key-card__row{border-top:1px solid var(--border-subtle);justify-content:space-between;gap:12px;padding:5px 0;font-size:13px;display:flex}.key-card__row>span:first-child{color:var(--text-muted);flex:none}.key-card__row>span:last-child{text-align:right;overflow-wrap:anywhere;min-width:0}.key-card__actions{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.key-card__actions .btn{flex:auto}}.tab-btn{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-right:20px;padding:10px 4px;font-family:inherit;font-size:13.5px}.tab-btn:hover{color:var(--text-primary)}.tab-btn--active{border-bottom-color:var(--signal-idle);color:var(--text-primary)}.feed-mismatch{flex-wrap:wrap;align-items:center;gap:6px;margin-top:6px;display:flex}.feed-mismatch__tag{color:var(--signal-warn);font-size:11px;font-weight:600;text-decoration:none}.feed-mismatch__tag:hover{text-decoration:underline}.mismatch__settings{border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--bg-base);flex-wrap:wrap;align-items:center;gap:10px 14px;margin-bottom:12px;padding:10px 12px;font-size:13px;display:flex}.mismatch__hint{color:var(--text-muted);font-size:12px}.mismatch__filters{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:12px;display:flex}.mismatch__list{flex-direction:column;gap:10px;display:flex}.mismatch__item{border:1px solid var(--border-subtle);border-left:3px solid var(--signal-warn);border-radius:var(--radius-sm);background:var(--bg-base);padding:10px 12px}.mismatch__item--critical{border-left-color:var(--signal-danger)}.mismatch__head{flex-wrap:wrap;align-items:center;gap:8px;font-size:13.5px;display:flex}.mismatch__detail{color:var(--text-secondary);margin:6px 0;font-size:12.5px;line-height:1.45}.mismatch__meta{color:var(--text-muted);flex-wrap:wrap;gap:4px 16px;font-size:12.5px;display:flex}.mismatch__actions{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.emp-count{color:var(--text-muted);margin:0 0 8px;font-size:12.5px}.select-all-banner{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);margin:0 0 10px;padding:8px 12px;font-size:13px}.th-sort{font:inherit;color:inherit;cursor:pointer;text-transform:inherit;letter-spacing:inherit;font-weight:inherit;background:0 0;border:none;padding:0}.th-sort:hover{color:var(--text-primary)}.pager{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 16px;margin-top:14px;font-size:13px;display:flex}.pager__count{color:var(--text-muted)}.pager__nav{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.pager__btn{font:inherit;border:1px solid var(--border);color:var(--text-primary);cursor:pointer;background:0 0;border-radius:6px;min-width:34px;padding:5px 11px;font-size:13px}.pager__btn:hover:not(:disabled){border-color:var(--signal-idle)}.pager__btn:disabled{opacity:.45;cursor:default}.pager__num.is-current{background:var(--signal-idle-dim);border-color:var(--signal-idle);color:var(--signal-idle);font-weight:600}.pager__gap{color:var(--text-muted);padding:0 2px}.pager__of{color:var(--text-secondary);display:none}@media (width<=800px){.pager__num,.pager__gap{display:none}.pager__of{display:inline}.pager__nav{justify-content:space-between;width:100%}}.bs-ov{z-index:900;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);cursor:pointer;background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.bs-ov.show{animation:.25s ease-out both bsFade}.bs-ov.hide{animation:.35s ease-in both bsOut}@keyframes bsFade{0%{opacity:0}to{opacity:1}}@keyframes bsOut{0%{opacity:1}to{opacity:0}}.bs-card{background:var(--bg-surface);border:1px solid var(--border);width:min(340px,86vw);box-shadow:var(--shadow-panel);text-align:center;opacity:0;border-radius:18px;padding:22px 16px 16px;transform:scale(.86)}.bs-ov.show .bs-card{animation:.5s cubic-bezier(.2,.9,.3,1.25) 50ms both bsPop}.bs-ov.hide .bs-card{animation:.35s ease-in both bsCardOut}@keyframes bsPop{0%{opacity:0;transform:scale(.86)translateY(12px)}to{opacity:1;transform:none}}@keyframes bsCardOut{0%{opacity:1;transform:none}to{opacity:0;transform:scale(.96)translateY(-6px)}}.bs-sm{letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);opacity:0;margin:0 0 6px;font-size:11px}.bs-ov.show .bs-sm{animation:.4s ease-out .2s both bsUp}.bs-name{color:var(--text-primary);margin:0;font-size:22px;font-weight:600;line-height:1.25}.bs-w{vertical-align:bottom;display:inline-block;overflow:hidden}.bs-w i{font-style:normal;display:inline-block;transform:translateY(110%)}.bs-ov.show .bs-w i{animation:.5s cubic-bezier(.2,.8,.2,1) both bsWord}@keyframes bsWord{0%{transform:translateY(110%)}to{transform:none}}.bs-code{border:1px solid var(--border);font-family:var(--font-mono,monospace);color:var(--text-secondary);opacity:0;border-radius:999px;margin-top:6px;padding:2px 8px;font-size:11px;display:inline-block}.bs-ov.show .bs-code{animation:.4s ease-out .55s both bsUp}.bs-line{background:var(--auth-badge,#f97316);border-radius:2px;width:0;height:2px;margin:12px auto}.bs-ov.show .bs-line{animation:.6s ease-out .45s both bsLine}@keyframes bsLine{0%{width:0}to{width:56%}}.bs-logos{flex-wrap:wrap;justify-content:center;gap:8px;min-height:44px;display:flex}.bs-logo{border:1px solid var(--border);opacity:0;background:#fff;border-radius:50%;justify-content:center;align-items:center;width:42px;height:42px;display:flex;overflow:hidden;transform:scale(.2)}.bs-logo--code{color:#fff;border-color:#0000;font-size:12px;font-weight:600}.bs-more{width:42px;height:42px;color:var(--text-secondary);border:1px dashed var(--border);opacity:0;border-radius:50%;justify-content:center;align-items:center;font-size:12px;display:flex;transform:scale(.2)}.bs-ov.show .bs-logo,.bs-ov.show .bs-more{animation:.5s cubic-bezier(.2,.9,.3,1.5) both bsLogo}@keyframes bsLogo{0%{opacity:0;transform:scale(.2)translateY(10px)}to{opacity:1;transform:none}}.bs-cap{color:var(--text-secondary);opacity:0;margin:10px 0 0;font-size:12px}.bs-ov.show .bs-cap{animation:.4s ease-out .5s both bsUp}@keyframes bsUp{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.bs-bar{background:var(--border);border-radius:3px;height:3px;margin-top:12px;overflow:hidden}.bs-bar span{background:var(--auth-badge,#f97316);border-radius:3px;width:0;height:100%;display:block}.bs-ov.show .bs-bar span{animation:1.6s ease-in-out .4s both bsFill}@keyframes bsFill{0%{width:0}to{width:100%}}@media (prefers-reduced-motion:reduce){.bs-ov.show .bs-card,.bs-ov.show .bs-sm,.bs-ov.show .bs-w i,.bs-ov.show .bs-code,.bs-ov.show .bs-logo,.bs-ov.show .bs-more,.bs-ov.show .bs-cap{animation:.2s ease-out both bsFade}.bs-ov.show .bs-line{width:56%;animation:none}.bs-ov.show .bs-bar span{width:100%;animation:none}}.brand-panel{flex-direction:column;gap:16px;display:flex}.brand-hint{color:var(--text-secondary);margin:0 0 12px;font-size:13px;line-height:1.5}.brand-warn{color:var(--signal-warn);margin:10px 0 0;font-size:12.5px}.brand-row{flex-wrap:wrap;align-items:center;gap:10px 14px;display:flex}.brand-row select{flex:240px;min-width:0}.brand-chip{border:1px solid var(--border);background:var(--bg-base);border-radius:999px;align-items:center;gap:8px;padding:4px 12px 4px 6px;font-size:13px;display:inline-flex}.brand-wall{border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:var(--bg-base) center / cover no-repeat;color:var(--text-muted);justify-content:center;align-items:center;margin-top:12px;font-size:12px;display:flex}.brand-sites{flex-direction:column;gap:12px;display:flex}.brand-site{border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--bg-base);padding:10px 12px}.brand-site__head{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;font-size:13.5px;display:flex}.brand-code{color:var(--text-muted);font-size:11px}.brand-walls{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;display:grid}.brand-wallcard{border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--bg-base);padding:10px 12px}.brand-actions{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.brand-file{cursor:pointer}.auth__brandco{color:var(--auth-ink);background:#ffffff29;border-radius:999px;align-items:center;gap:8px;margin-top:10px;padding:3px 12px 3px 4px;font-size:13px;display:inline-flex}.auth__brandco-logo{background:#fff;border-radius:50%;display:inline-flex;overflow:hidden}.dash-brand__logo{border-radius:8px;flex-shrink:0;display:inline-flex;overflow:hidden}.page-header--wall{border-radius:var(--radius-md);background-position:50%;background-size:cover;padding:22px 20px;position:relative;overflow:hidden}.page-header--wall:before{content:"";background:#00000080;position:absolute;inset:0}.page-header--wall>*{position:relative}.page-header--wall h1,.page-header--wall .page-header__sub{color:#fff}.bs-card--brand{padding-top:0;overflow:hidden}.bs-brand{background:var(--bg-elevated) center / cover no-repeat;height:92px;margin:0 -16px 28px;position:relative}.bs-brand:after{content:"";background:#00000047;position:absolute;inset:0}.bs-brand__logo{z-index:1;border:3px solid var(--bg-surface);background:#fff;border-radius:50%;justify-content:center;align-items:center;width:52px;height:52px;display:flex;position:absolute;bottom:-26px;left:50%;overflow:hidden;transform:translate(-50%)}.adv-access__hint{color:var(--text-secondary);margin:0 0 10px;font-size:12.5px;line-height:1.5}.adv-rule{border:1px solid var(--border-subtle);border-left:3px solid var(--signal-warn);border-radius:var(--radius-sm);background:var(--bg-base);margin-bottom:10px;padding:12px}.adv-rule__head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;font-size:13px;display:flex}.adv-rule__label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin:8px 0 4px;font-size:11px;font-weight:600}.adv-rule__areas{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:4px 12px;display:grid}.adv-rule__areas label{align-items:center;gap:6px;font-size:13px;display:flex}.adv-rule__areas label.is-taken{opacity:.45}.adv-rule__noview{color:var(--signal-warn);font-size:11px}.adv-rule__cols{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px 18px;display:grid}.adv-rule__radio{align-items:center;gap:6px;padding:2px 0;font-size:13px;display:flex}.adv-rule__says{border-top:1px solid var(--border-subtle);color:var(--text-secondary);margin-top:10px;padding-top:8px;font-size:12.5px}.adv-access__add{flex-wrap:wrap;gap:8px;display:flex}.adv-badge{margin-left:6px}.role-summary__adv{color:var(--signal-warn);margin-top:6px}.adv-rule__add{border:1px dashed var(--border);border-radius:var(--radius-sm);cursor:pointer;align-items:flex-start;gap:8px;margin:12px 0 4px;padding:8px 10px;font-size:13px;line-height:1.4;display:flex}.adv-rule__add.is-off{opacity:.6;cursor:default}.adv-rule__add input{margin-top:3px}.adv-rule__addhint{color:var(--text-muted);margin-top:2px;font-size:12px;display:block}.branch-chip{position:relative}.branch-chip__btn{border:1px solid var(--border);background:var(--bg-elevated,var(--bg-surface));max-width:240px;color:var(--text-primary);font:inherit;cursor:pointer;border-radius:999px;align-items:center;gap:8px;padding:6px 10px;font-size:12.5px;display:inline-flex}.branch-chip__btn:hover,.branch-chip__btn.is-open{border-color:var(--auth-badge,#f97316)}.branch-chip__code{font-family:var(--font-mono,monospace);background:var(--auth-badge,#f97316);color:#fff;border-radius:999px;flex:none;padding:1px 7px;font-size:11px}.branch-chip__code--sm{font-size:10.5px}.branch-chip__code--all{background:var(--text-muted)}.branch-chip__name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.branch-chip__chev{color:var(--text-muted);flex:none;font-size:10px}.branch-chip__menu{z-index:60;border:1px solid var(--border);background:var(--bg-surface);width:min(320px,100vw - 24px);box-shadow:var(--shadow-panel);border-radius:12px;max-height:70vh;padding:6px;position:absolute;top:calc(100% + 8px);right:0;overflow-y:auto}.branch-chip__title{letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);margin:6px 8px 4px;font-size:11px;font-weight:600}.branch-chip__opt{width:100%;color:var(--text-primary);font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:8px;align-items:center;gap:10px;padding:9px 8px;font-size:13px;display:flex}.branch-chip__opt:hover,.branch-chip__opt.is-current{background:var(--bg-elevated,var(--bg-base))}.branch-chip__optname{overflow-wrap:anywhere;flex:1;min-width:0}.branch-chip__tag{border:1px solid var(--border);color:var(--text-muted);border-radius:999px;padding:1px 6px;font-size:10.5px}.branch-chip__tick{color:var(--auth-badge,#f97316);font-size:13px}.branch-chip__hint{color:var(--text-muted);margin:6px 8px 4px;font-size:11.5px;line-height:1.4}.desktop-topbar,.mobile-topbar__actions{align-items:center}@media (width<=800px){.branch-chip__name,.branch-chip__chev{display:none}.branch-chip__btn{padding:5px 6px}.branch-chip__btn.is-open .branch-chip__chev{display:none}}.list-filters{flex-wrap:wrap;align-items:flex-end;gap:10px 14px;margin-bottom:8px;display:flex}.list-filters__field{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;flex-direction:column;gap:4px;font-size:11px;font-weight:600;display:inline-flex}.list-filters__field input{text-transform:none;letter-spacing:normal;min-width:180px;font-size:13px;font-weight:400}.list-filters__field--grow{flex:220px;min-width:0}.list-filters__field--grow input{width:100%}.list-count{color:var(--text-muted);margin:0 0 10px;font-size:12.5px}.gate-group__dept-search{flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 8px;display:flex}.gate-group__dept-search input{flex:160px;min-width:0;font-size:13px}.gate-group__dept-count{color:var(--text-muted);font-size:12px}.gate-group__dept-none{color:var(--text-muted);margin:4px 0;font-size:12.5px}.gg-modes{flex-wrap:wrap;gap:6px;margin:0 0 12px;display:flex}.gg-lookup__input{width:100%;max-width:520px}.gg-lookup__hint{color:var(--text-muted);margin:10px 0 0;font-size:12.5px;line-height:1.5}.gg-lookup__count{color:var(--text-muted);margin:12px 0 6px;font-size:12.5px}.gg-lookup__rows{flex-direction:column;gap:8px;display:flex}.gg-lookup__row,.gg-lookup__result{border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--bg-base);padding:10px 12px}.gg-lookup__result{margin-top:12px}.gg-lookup__head{flex-wrap:wrap;align-items:center;gap:6px 8px;font-size:13.5px;display:flex}.gg-lookup__meta{color:var(--text-muted);font-size:12px}.gg-lookup__label{letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted);margin:10px 0 4px;font-size:11px;font-weight:600}.gg-lookup__chips,.gg-lookup__ctrl{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:4px;display:flex}.gg-lookup__chip{cursor:pointer;font:inherit}.gg-lookup__chip:hover{border-color:var(--signal-idle)}.gg-lookup__none{color:var(--signal-warn);margin:8px 0 0;font-size:13px;line-height:1.5}.gg-lookup__note{color:var(--text-muted);margin:10px 0 0;font-size:12px;line-height:1.5}.gg-lookup__pickers{flex-wrap:wrap;gap:12px 16px;display:flex}.gg-lookup__field{letter-spacing:.04em;text-transform:uppercase;min-width:0;color:var(--text-muted);flex-direction:column;flex:240px;gap:6px;font-size:11px;font-weight:600;display:flex}.gg-lookup__field input,.gg-lookup__field select{text-transform:none;letter-spacing:normal;font-size:13px;font-weight:400}@media (width<=800px){.branch-chip__menu{width:auto;max-height:calc(100vh - 84px);position:fixed;top:60px;left:12px;right:12px}}.mismatch__bulk{flex-wrap:wrap;align-items:center;gap:8px 12px;margin:0 0 12px;display:flex}.branch-picker__item{border-bottom:1px solid var(--border-subtle);margin-bottom:8px;padding-bottom:8px}.branch-gates{border:1px solid var(--border-subtle);border-left:3px solid var(--auth-badge,#f97316);border-radius:var(--radius-sm);background:var(--bg-base);margin:8px 0 4px 26px;padding:10px 12px;font-size:13px}.branch-gates__row{grid-template-columns:150px 1fr;align-items:start;gap:6px 12px;margin-bottom:8px;display:grid}@media (width<=640px){.branch-gates{margin-left:0}.branch-gates__row{grid-template-columns:1fr}}.branch-gates__label{letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted);padding-top:4px;font-size:11px;font-weight:600}.branch-gates__ctrl{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:4px;display:flex}.branch-gates__cid{font-family:var(--font-mono,monospace);color:var(--text-muted);font-size:11px}.branch-gates__chip{border:1px solid var(--border);background:var(--bg-surface);border-radius:999px;align-items:center;gap:6px;padding:2px 9px;display:inline-flex}.branch-gates__chip--extra{border-color:var(--auth-badge,#f97316)}.branch-gates__chip button{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:0;font-size:15px;line-height:1}.branch-gates__note{color:var(--text-muted);font-size:12px}.branch-gates__note--warn{color:var(--signal-warn)}.branch-gates__picker{border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--bg-surface);flex-direction:column;gap:8px;max-height:280px;margin-top:8px;padding:8px;display:flex;overflow-y:auto}.branch-gates__group{flex-direction:column;gap:3px;display:flex}.branch-gates__gate{align-items:center;gap:8px;padding:2px 0;display:flex}.branch-gates__gate.is-given{opacity:.65}.branch-gates__sum{border-top:1px solid var(--border-subtle);color:var(--text-secondary);margin-top:2px;padding-top:8px;font-size:12.5px}.gg-head{max-width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;flex-wrap:wrap;align-items:center;gap:8px;padding:2px 0;display:inline-flex}.gg-head:hover .gg-head__name{text-decoration:underline}.gg-head__name{font-weight:600}.gg-chev{width:14px;color:var(--text-muted);flex:none;font-size:12px;transition:transform .12s;display:inline-block}.gg-chev.is-open{transform:rotate(90deg)}.gg-summary{color:var(--text-muted);font-size:12px;font-weight:400}.gg-found{background:color-mix(in srgb, var(--auth-badge,#f97316) 16%, transparent);color:var(--auth-badge,#f97316);border-radius:999px;padding:1px 8px;font-size:11.5px;font-weight:600}.gg-fold{text-align:left;cursor:pointer;width:100%;font:inherit;background:0 0;border:none;align-items:center;gap:8px;display:flex}.gg-fold__title{align-items:center;gap:6px;display:inline-flex}.gg-fold-section:not(.is-open) .gate-group__label{margin-bottom:0}.gg-note{color:var(--text-muted);margin:2px 0 8px 22px;font-size:12px}.gg-fold__body{margin-top:8px}.chip.is-match{box-shadow:0 0 0 2px color-mix(in srgb, var(--auth-badge,#f97316) 55%, transparent)}.gate-group__section--add{border-top:1px solid var(--border-subtle);padding-top:12px}.flow-upd__head{letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted);margin-bottom:4px;font-size:11px;font-weight:600}.flow-upd__head--warn{color:var(--signal-warn)}.flow-upd__list{flex-direction:column;gap:3px;margin:0;padding:0;list-style:none;display:flex}.flow-upd__gate{font-size:13px}.flow-upd__gate--add .flow-upd__sign{color:var(--signal-success)}.flow-upd__gate--remove .flow-upd__sign{color:var(--signal-danger)}.flow-upd__sign{width:14px;font-weight:700;display:inline-block}.flow-upd__more{color:var(--text-muted);font-size:12px}.flow-upd__all{border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--bg-base);flex-direction:column;gap:10px;max-height:320px;padding:8px 10px;display:flex;overflow-y:auto}.flow-upd__group{font-size:13px}.gg-stale{background:color-mix(in srgb, var(--signal-warn) 18%, transparent);color:var(--signal-warn);border-radius:999px;padding:1px 8px;font-size:11.5px;font-weight:600}.gg-banner{border:1px solid var(--signal-warn);border-radius:var(--radius-sm);background:color-mix(in srgb, var(--signal-warn) 7%, transparent);border-left-width:4px;flex-wrap:wrap;align-items:center;gap:8px 14px;margin:0 0 12px;padding:10px 14px;font-size:13.5px;display:flex}.xs-panel{border:1px solid var(--border);border-left:4px solid var(--auth-badge,#f97316);border-radius:var(--radius-sm);background:var(--bg-surface);margin:0 0 14px;padding:12px 14px}.xs-head{flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin-bottom:8px;font-size:14px;display:flex}.xs-counts{color:var(--text-muted);font-size:12.5px}.xs-group{border-top:1px solid var(--border-subtle);padding-top:8px}.xs-group:first-of-type{border-top:none;padding-top:0}.xs-group__title{letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted);margin-bottom:4px;font-size:11px;font-weight:600}.xs-group__page{text-transform:none;letter-spacing:0;font-weight:400}.xs-row{flex-wrap:wrap;align-items:center;gap:8px 12px;padding:6px 0;display:flex}.xs-row__main{flex:220px;min-width:0;font-size:13.5px}.xs-row__sub{color:var(--text-muted);font-size:12px}.xs-card{color:var(--text-secondary)}.xs-more{color:var(--text-muted);padding:2px 0 4px;font-size:12.5px}.xs-link{color:var(--auth-badge,#f97316);cursor:pointer;font:inherit;background:0 0;border:none;padding:0;text-decoration:underline}.perm-act--na{visibility:hidden}.panel{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-panel);margin-bottom:20px}.panel__header{border-bottom:1px solid var(--border-subtle);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 16px;padding:16px 20px;display:flex}.panel__title{flex:auto;font-size:15px}.panel__body{padding:20px}.btn{border-radius:var(--radius-sm);cursor:pointer;border:1px solid #0000;padding:8px 14px;font-size:13px;font-weight:500;transition:opacity .12s,border-color .12s}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--primary{background:var(--signal-idle);color:var(--on-accent-text)}.btn--primary:hover:not(:disabled){opacity:.9}.btn--ghost{border-color:var(--border);color:var(--text-secondary);background:0 0}.btn--ghost:hover:not(:disabled){border-color:var(--text-secondary);color:var(--text-primary)}.btn--danger{border-color:var(--signal-danger);color:var(--signal-danger);background:0 0}.btn--danger:hover:not(:disabled){background:var(--signal-danger-dim)}.btn--success{background:var(--signal-success);color:var(--on-accent-text)}.btn--success:hover:not(:disabled){opacity:.9}.badge{text-transform:uppercase;letter-spacing:.03em;white-space:nowrap;border-radius:999px;align-items:center;padding:2px 8px;font-size:11px;font-weight:600;display:inline-flex}.badge--wrap{white-space:normal;text-align:left;max-width:340px;line-height:1.4}.badge--success{background:var(--signal-success-dim);color:var(--signal-success)}.badge--warn{background:var(--signal-warn-dim);color:var(--signal-warn)}.badge--danger{background:var(--signal-danger-dim);color:var(--signal-danger)}.badge--idle{background:var(--signal-idle-dim);color:var(--signal-idle)}.field{flex-direction:column;gap:6px;margin-bottom:14px;display:flex}.field__label{color:var(--text-secondary);font-size:12px}.empty-state{text-align:center;padding:40px 20px}.empty-state__title{color:var(--text-secondary);margin:0 0 4px;font-size:14px}.empty-state__hint{color:var(--text-muted);margin:0;font-size:12.5px}table{border-collapse:collapse;width:100%}th{text-align:left;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);border-bottom:1px solid var(--border);padding:0 12px 10px;font-size:11px;font-weight:600}td{border-bottom:1px solid var(--border-subtle);padding:11px 12px;font-size:13px}tr:last-child td{border-bottom:none}.modal-overlay{z-index:100;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-box{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-panel);flex-direction:column;min-width:320px;max-width:90vw;max-height:92vh;display:flex}.modal-box__header{border-bottom:1px solid var(--border-subtle);flex-shrink:0;justify-content:space-between;align-items:center;padding:14px 20px;display:flex}.modal-box__header h3{margin:0;font-size:15px}.modal-box__close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:20px;line-height:1}.modal-box__close:hover{color:var(--text-primary)}.modal-box__body{flex:1;padding:16px 20px;overflow-y:auto}.filter-pill{border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:999px;padding:6px 14px;font-size:13px}.filter-pill:hover{border-color:var(--text-secondary);color:var(--text-primary)}.filter-pill--active{background:var(--signal-idle);border-color:var(--signal-idle);color:var(--on-accent-text)}.autocomplete-list{background:var(--bg-surface-raised);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-panel);z-index:10;max-height:220px;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto}.autocomplete-list__item{text-align:left;width:100%;font:inherit;color:var(--text-primary);cursor:pointer;background:0 0;border:none;padding:8px 12px;display:block}.autocomplete-list__item:hover{background:var(--bg-base)}.pulse{align-items:center;gap:8px;display:inline-flex}.pulse__wave{flex-shrink:0;width:36px;height:14px}.pulse--sm .pulse__wave{width:24px;height:10px}.pulse__wave polyline{stroke:var(--text-muted)}.pulse--live .pulse__wave polyline{stroke:var(--signal-success);animation:1.8s ease-in-out infinite pulse-travel}.pulse--idle .pulse__wave polyline{stroke:var(--signal-idle)}.pulse--offline .pulse__wave polyline{stroke:var(--signal-danger)}.pulse__label{color:var(--text-secondary);font-size:12px;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.04em}@keyframes pulse-travel{0%,to{opacity:.55;stroke-width:2px}50%{opacity:1;stroke-width:2.75px}}.layout{grid-template-columns:240px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{background:var(--bg-surface);border-right:1px solid var(--border);flex-direction:column;padding:20px 16px;display:flex;overflow-y:auto}.sidebar__brand{align-items:center;gap:10px;padding:4px 8px 24px;display:flex}.sidebar__brand-name{font-family:var(--font-display);letter-spacing:-.01em;font-size:16px;font-weight:700}.sidebar__nav{flex-direction:column;flex:1;gap:2px;display:flex}.sidebar__section{flex-direction:column;gap:3px;padding-left:22px;display:flex;position:relative}.sidebar__section:before{content:"";background:var(--border);width:1.5px;position:absolute;top:25px;bottom:11px;left:8px}.sidebar__section--active:before{background:var(--signal-idle)}.sidebar__section:first-child{padding-top:4px}.sidebar__section-label{color:var(--text-secondary);align-items:center;margin:16px 0 6px;font-size:12px;font-weight:600;display:flex;position:relative}.sidebar__section:first-child .sidebar__section-label{margin-top:0}.sidebar__section-node{background:var(--bg-surface);border:1.5px solid var(--border);width:17px;height:17px;color:var(--text-muted);z-index:1;border-radius:50%;justify-content:center;align-items:center;transition:border-color .15s,color .15s,box-shadow .15s;display:flex;position:absolute;top:50%;left:-14px;transform:translate(-50%,-50%)}.sidebar__section-node svg{width:9px;height:9px}.sidebar__section--active .sidebar__section-node{border-color:var(--signal-idle);color:var(--signal-idle);box-shadow:0 0 0 3px var(--signal-idle-dim)}.sidebar__link{border-radius:var(--radius-sm);color:var(--text-secondary);padding:7px 12px;font-size:13.5px;text-decoration:none;transition:background .12s,color .12s;position:relative}.sidebar__link:before{content:"";background:var(--border);width:12px;height:1.5px;transition:background .15s;position:absolute;top:50%;left:-14px;transform:translateY(-50%)}.sidebar__link:hover{background:var(--bg-surface-raised);color:var(--text-primary)}.sidebar__link--active{background:var(--signal-idle-dim);color:var(--text-primary);font-weight:500}.sidebar__link--active:before{background:var(--signal-idle)}.sidebar__footer{border-top:1px solid var(--border-subtle);flex-direction:column;gap:8px;padding-top:14px;display:flex}.sidebar__user{justify-content:space-between;align-items:center;padding:0 8px;display:flex}.sidebar__user .mono{color:var(--text-muted);font-size:12px}.sidebar__role{text-transform:uppercase;letter-spacing:.04em;border-radius:999px;padding:2px 6px;font-size:10px;font-weight:600}.sidebar__role--admin{background:var(--signal-idle-dim);color:var(--signal-idle)}.sidebar__role--user{background:var(--bg-surface-raised);color:var(--text-muted)}.sidebar__credit{border-top:1px solid var(--border-subtle);justify-content:center;align-items:center;gap:6px;margin-top:14px;padding-top:12px;display:flex}.sidebar__credit span{color:var(--text-muted);text-align:center;font-size:10.5px;line-height:1.3}.sidebar__credit-mark{border:1px solid var(--border);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;font-size:11px;line-height:1;transition:border-color .12s,color .12s;display:flex}.sidebar__credit-mark:hover{border-color:var(--signal-idle);color:var(--signal-idle)}.credit-modal-overlay{z-index:100;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.credit-modal{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-panel);text-align:center;min-width:240px;padding:28px 32px}.credit-modal:has(.credit-modal__policy){flex-direction:column;width:min(680px,100vw - 32px);max-height:calc(100vh - 32px);display:flex}.credit-modal__policy{-webkit-overflow-scrolling:touch;text-align:left;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--bg-base);min-height:0;max-height:52vh;color:var(--text-secondary);flex:auto;margin:12px 0 16px;padding:14px 16px;font-size:12.5px;line-height:1.55;overflow-y:auto}.credit-modal__policy:focus-visible{outline:2px solid var(--signal-idle);outline-offset:2px}.privacy h4{color:var(--text-primary);margin:0 0 8px;font-size:14px}.privacy p{margin:0 0 8px}.privacy ul{margin:0 0 10px;padding-left:18px}.privacy li{margin-bottom:4px}.privacy strong{color:var(--text-primary)}@media (width<=800px){.credit-modal:has(.credit-modal__policy){padding:20px 16px}.credit-modal__policy{max-height:58vh}}.credit-modal__label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin:0 0 8px;font-size:11px}.credit-modal__name{margin:0 0 4px;font-size:20px}.credit-modal__team{color:var(--text-secondary);margin:0 0 8px;font-size:13px}.credit-modal__contact{color:var(--text-muted);margin:0 0 20px;font-size:11.5px}.credit-modal__close{border:1px solid var(--border);color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;background:0 0;padding:7px 18px;font-size:13px}.credit-modal__close:hover{border-color:var(--text-secondary);color:var(--text-primary)}.theme-switcher{position:relative}.theme-switcher__toggle{border:1px solid var(--border);color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;text-align:left;background:0 0;padding:7px 12px;font-size:12.5px;transition:border-color .12s,color .12s}.theme-switcher__toggle:hover{border-color:var(--text-secondary);color:var(--text-primary)}.theme-switcher__menu{background:var(--bg-surface-raised);border:1px solid var(--border);border-radius:var(--radius-sm);width:max-content;min-width:260px;box-shadow:var(--shadow-panel);z-index:20;padding:6px;position:absolute;top:calc(100% + 6px);left:auto;right:0}.theme-switcher__row{align-items:center;gap:6px;display:flex}.theme-switcher__option{color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;text-align:left;background:0 0;border:none;flex:1;align-items:center;gap:6px;padding:7px 8px;font-size:12.5px;display:flex}.theme-switcher__option:hover{background:var(--bg-base);color:var(--text-primary)}.theme-switcher__option--active{color:var(--text-primary);font-weight:600}.theme-switcher__beta{letter-spacing:.04em;background:var(--signal-warn-dim);color:var(--signal-warn);border-radius:999px;padding:1px 5px;font-size:9.5px;font-weight:700}.theme-switcher__default{color:var(--text-muted);font-size:9.5px}.theme-switcher__set-default{color:var(--text-muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;padding:4px 6px;font-size:10.5px}.theme-switcher__set-default:hover{color:var(--text-secondary)}.sidebar__logout{border:1px solid var(--border);color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;text-align:left;background:0 0;padding:7px 12px;font-size:13px;transition:border-color .12s,color .12s}.sidebar__logout:hover{border-color:var(--signal-danger);color:var(--signal-danger)}.content{width:100%;min-width:0;padding:32px 40px;overflow-y:auto}.desktop-topbar{justify-content:flex-end;align-items:center;gap:12px;margin:-12px 0 20px;display:flex}.profile-badge{position:relative}.profile-badge__toggle{border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:8px;padding:4px 12px 4px 4px;transition:border-color .12s;display:flex}.profile-badge__toggle:hover{border-color:var(--text-secondary)}.profile-badge__avatar{background:var(--signal-idle);width:26px;height:26px;color:var(--on-accent-text);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:12.5px;font-weight:700;display:flex}.profile-badge__name{flex-direction:column;align-items:flex-start;line-height:1.3;display:flex}.profile-badge__name .mono{color:var(--text-primary);font-size:12.5px}.profile-badge__menu{background:var(--bg-surface-raised);border:1px solid var(--border);border-radius:var(--radius-sm);min-width:170px;box-shadow:var(--shadow-panel);z-index:20;flex-direction:column;gap:2px;padding:6px;display:flex;position:absolute;top:calc(100% + 6px);right:0}.profile-badge__item{color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;text-align:left;background:0 0;border:none;padding:8px 10px;font-size:13px}.profile-badge__item:hover{background:var(--bg-base);color:var(--text-primary)}.profile-badge__item--danger:hover{background:var(--signal-danger-dim);color:var(--signal-danger)}.notif-bell{position:relative}.notif-bell__toggle{border:1px solid var(--border);width:32px;height:32px;color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:999px;justify-content:center;align-items:center;transition:border-color .12s,color .12s;display:flex;position:relative}.notif-bell__toggle:hover{border-color:var(--text-secondary);color:var(--text-primary)}.notif-bell__badge{background:var(--signal-idle);min-width:16px;height:16px;color:var(--on-accent-text);text-align:center;border-radius:999px;padding:0 4px;font-size:10px;font-weight:700;line-height:16px;position:absolute;top:-4px;right:-4px}.notif-bell__menu{background:var(--bg-surface-raised);border:1px solid var(--border);border-radius:var(--radius-sm);width:320px;max-width:calc(100vw - 32px);box-shadow:var(--shadow-panel);z-index:30;padding:10px;position:absolute;top:calc(100% + 6px);right:0}.notif-bell__menu-title{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;margin:2px 4px 8px;font-size:12px;font-weight:600}.notif-bell__empty{color:var(--text-muted);margin:0;padding:10px 4px;font-size:13px}.notif-bell__list{flex-direction:column;gap:4px;max-height:340px;display:flex;overflow-y:auto}.notif-bell__row{text-align:left;width:100%;font:inherit;color:inherit;cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;padding:8px;display:block}.notif-bell__row:hover{background:var(--bg-base)}.notif-bell__row-top{align-items:center;gap:7px;display:flex}.notif-bell__dot{border-radius:50%;flex-shrink:0;width:7px;height:7px}.notif-bell__dot--active{background:var(--signal-idle);animation:1.4s ease-in-out infinite notif-bell-pulse}.notif-bell__dot--done{background:var(--signal-ok,var(--signal-idle))}.notif-bell__dot--error{background:var(--signal-danger)}.notif-bell__row-title{color:var(--text-primary);font-size:13px;font-weight:600}.notif-bell__row-detail{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;margin:4px 0 0;font-size:12px;overflow:hidden}.notif-bell__bar-track{background:var(--bg-base);border-radius:999px;height:5px;margin-top:6px;overflow:hidden}.notif-bell__bar-fill{background:var(--signal-idle);height:100%;transition:width .2s}@keyframes notif-bell-pulse{0%,to{opacity:1}50%{opacity:.35}}.mobile-topbar,.sidebar-backdrop{display:none}@media (width<=800px){.layout{grid-template-rows:auto 1fr;grid-template-columns:minmax(0,1fr)}.mobile-topbar{background:var(--bg-surface);border-bottom:1px solid var(--border);z-index:20;align-items:center;gap:14px;padding:12px 16px;display:flex;position:sticky;top:0}.notif-bell__menu{width:auto;max-width:none;position:fixed;top:60px;left:12px;right:12px}.mobile-topbar__actions{flex:none;align-items:center;gap:8px;margin-left:auto;display:flex}.desktop-topbar,.profile-badge__name{display:none}.theme-switcher__toggle{padding:7px 8px;font-size:12px}.mobile-topbar__brand{flex:0 auto;align-items:center;gap:10px;min-width:0;display:flex}.mobile-topbar__brand .sidebar__brand-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.mobile-topbar__menu-btn{cursor:pointer;background:0 0;border:none;flex-direction:column;flex:none;justify-content:center;gap:4px;width:28px;height:28px;padding:0;display:flex}.mobile-topbar__menu-btn span{background:var(--text-primary);border-radius:1px;height:2px;display:block}.sidebar{z-index:30;width:260px;max-width:80vw;transition:transform .2s;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%);box-shadow:2px 0 16px #0006}.sidebar--open{transform:translate(0)}.sidebar-backdrop{z-index:25;background:#00000080;display:block;position:fixed;inset:0}.content{padding:20px}}@media (width<=480px){.mobile-topbar{gap:8px;padding:12px}.mobile-topbar .brand__pulse,.mobile-topbar .theme-switcher__word{display:none}}@media (width<=380px){.mobile-topbar__brand .sidebar__brand-name{display:none}}:root,[data-theme=dark]{--auth-from:#0f4a46;--auth-to:#16233f;--auth-ink:#fff;--auth-ink-soft:#b8d8d2;--auth-pulse:#9ff5dc;--auth-accent:#5ff0bf;--auth-door:#0b2a3a;--auth-reader:#0b1424;--auth-card:#3b82f6;--auth-card-stripe:#1d4ed8;--auth-badge:#10b981;--auth-badge-bg:#0f2a26}[data-theme=light]{--auth-from:#cfe3fb;--auth-to:#d6f1e8;--auth-ink:#0f2a4a;--auth-ink-soft:#46607f;--auth-pulse:#fff;--auth-accent:#0f9f6e;--auth-door:#fff;--auth-reader:#0f2a4a;--auth-card:#2563eb;--auth-card-stripe:#1e40af;--auth-badge:#10b981;--auth-badge-bg:#e8f8f2}[data-theme=beta]{--auth-from:#f97316;--auth-to:#b45309;--auth-ink:#fff;--auth-ink-soft:#ffe4c7;--auth-pulse:#ffe9d1;--auth-accent:#fff1de;--auth-door:#7c2d12;--auth-reader:#431407;--auth-card:#ffedd5;--auth-card-stripe:#f97316;--auth-badge:#f97316;--auth-badge-bg:#ffedd5}.auth{background:var(--bg-base);flex-direction:column;align-items:center;min-height:100vh;display:flex}.auth__banner{background:linear-gradient(135deg, var(--auth-from), var(--auth-to));width:100%;height:240px;position:relative;overflow:hidden}.auth__pulse{width:100%;height:100%;position:absolute;inset:0}.auth__pulse-line{fill:none;stroke:var(--auth-pulse);stroke-width:2.5px;stroke-linecap:round;stroke-linejoin:round;opacity:.3}.auth__pulse-line--faint{stroke-width:1.5px;opacity:.14}.auth__brand{color:var(--auth-ink);position:absolute;top:32px;left:28px}.auth__brand-name{font-family:var(--font-display);font-size:22px;font-weight:600;line-height:1.2}.auth__brand-tag{color:var(--auth-ink-soft);margin-top:2px;font-size:13px}.auth__door{width:190px;height:120px;position:absolute;top:48px;right:28px}.auth__door-frame{fill:var(--auth-door);stroke:var(--auth-accent);stroke-width:1px}.auth__reader{fill:var(--auth-reader);stroke:var(--auth-card);stroke-width:1px}.auth__led{fill:var(--auth-accent)}.auth__card-face{fill:var(--auth-card)}.auth__card-stripe{fill:var(--auth-card-stripe)}.auth__arc{fill:none;stroke:var(--auth-accent);stroke-width:1.5px;stroke-linecap:round}.auth__arc--soft{opacity:.6}.auth__themes{background:#0000002e;border-radius:999px;gap:8px;padding:5px 8px;display:flex;position:absolute;top:10px;right:12px}.auth__theme-dot{cursor:pointer;border:1.5px solid #ffffffd9;border-radius:50%;width:16px;height:16px;padding:0}.auth__theme-dot.is-active{outline-offset:2px;outline:2px solid #fff}.auth__box{z-index:1;background:var(--bg-surface);border:1px solid var(--border);width:440px;max-width:calc(100% - 32px);box-shadow:var(--shadow-panel);border-radius:16px;margin-top:-58px;padding:46px 36px 28px;position:relative}.auth__box--wide{width:520px}.auth__badge{background:var(--bg-surface);border:1px solid var(--border);border-radius:20px;justify-content:center;align-items:center;width:68px;height:68px;display:flex;position:absolute;top:0;left:50%;transform:translate(-50%,-50%)}.auth__badge-bg{fill:var(--auth-badge-bg)}.auth__badge-line{fill:none;stroke:var(--auth-badge);stroke-width:3px;stroke-linecap:round;stroke-linejoin:round}.auth__title{text-align:center;margin:0 0 6px;font-size:20px}.auth__subtitle{text-align:center;color:var(--text-secondary);margin:0 0 22px;font-size:13px;line-height:1.5}.auth-field{margin-bottom:12px;display:block;position:relative}.auth-field input:not([type=checkbox]):not([type=radio]){box-sizing:border-box;border-radius:999px;width:100%;height:44px;padding:0 44px 0 46px;font-size:14px}.auth-field input:not([type=checkbox]):not([type=radio]):focus{border-color:var(--signal-idle)}.auth-field__icon{color:var(--text-muted);pointer-events:none;display:flex;position:absolute;top:50%;left:16px;transform:translateY(-50%)}.auth-field__eye{width:32px;height:32px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.auth-field__eye:hover{color:var(--text-primary)}.auth-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin:4px 2px 16px;font-size:13px;display:flex}.auth-switch{color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;display:inline-flex}.auth-switch input{opacity:0;width:0;height:0;position:absolute}.auth-switch__track{background:var(--border);border-radius:9px;flex:none;width:32px;height:18px;transition:background .15s;position:relative}.auth-switch__track:after{content:"";background:#fff;border-radius:50%;width:14px;height:14px;transition:transform .15s;position:absolute;top:2px;left:2px}.auth-switch input:checked+.auth-switch__track{background:var(--signal-idle)}.auth-switch input:checked+.auth-switch__track:after{transform:translate(14px)}.auth-switch input:focus-visible+.auth-switch__track{outline:2px solid var(--signal-idle);outline-offset:2px}.auth-link{cursor:pointer;color:var(--signal-idle);background:0 0;border:none;padding:0;font-family:inherit;font-size:13px}.auth-link:hover{text-decoration:underline}.auth-submit{border-radius:999px;justify-content:center;align-items:center;gap:8px;width:100%;height:46px;font-size:15px;display:flex}.auth__box .btn{border-radius:999px;width:100%;height:44px}.auth__note{color:var(--text-secondary);justify-content:center;align-items:center;gap:8px;margin-top:18px;font-size:12.5px;display:flex}.auth__note svg{color:var(--signal-success);flex:none}.auth__error{color:var(--signal-danger);text-align:center;margin:0 4px 12px;font-size:13px}.auth__footer{color:var(--text-muted);text-align:center;margin:22px 16px 28px;font-size:12.5px}.auth__footer-link{cursor:pointer;color:var(--text-secondary);font:inherit;background:0 0;border:none;padding:0;text-decoration:underline}.auth__footer-link:hover{color:var(--text-primary)}@media (width>=900px){.auth__banner{height:280px}.auth__brand{top:44px;left:8vw}.auth__brand-name{font-size:28px}.auth__door{width:230px;height:145px;top:56px;right:8vw}.auth__box{margin-top:-70px}}@media (width<=480px){.auth__banner{height:220px}.auth__brand{top:26px;left:20px}.auth__brand-name{font-size:18px}.auth__brand-tag{font-size:12px}.auth__door{width:150px;height:95px;top:56px;right:14px}.auth__box{margin-top:-52px;padding:46px 20px 24px}}@media (prefers-reduced-motion:reduce){.auth-switch__track,.auth-switch__track:after{transition:none}}.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}.twostep__method{border:1px solid var(--border);border-radius:var(--radius-md);margin-bottom:12px;padding:14px 16px}.twostep__method h4{margin:0 0 4px;font-size:14px}.twostep__method p{color:var(--text-secondary);margin:0 0 12px;font-size:13px;line-height:1.5}.twostep__steps{color:var(--text-secondary);margin:0 0 12px;padding-left:18px;font-size:13px;line-height:1.6}.twostep__qr{justify-content:center;margin:8px 0 12px;display:flex}.twostep__qr img{background:#fff;border-radius:6px;width:220px;height:220px;padding:6px}.twostep__secret{text-align:center;color:var(--text-secondary);margin-bottom:14px;font-size:12.5px}.twostep__secret code{letter-spacing:1.5px;color:var(--text-primary);word-break:break-all;-webkit-user-select:all;user-select:all;margin-top:4px;font-size:14px;display:block}.twostep__row{align-items:flex-end;gap:8px;display:flex}.twostep__row>*{flex:1}.twostep__row .btn{flex:none;width:auto}.code-input{letter-spacing:6px;text-align:center;font-family:var(--font-mono,monospace);font-size:20px!important}.code-input--text{letter-spacing:2px;font-size:16px!important}.twostep__error{color:var(--signal-danger);margin:8px 0 0;font-size:13px}.twostep__note{color:var(--text-secondary);margin:8px 0 0;font-size:12.5px}.recovery-codes{background:var(--bg-base);border:1px dashed var(--border);border-radius:var(--radius-md);grid-template-columns:1fr 1fr;gap:8px;margin:12px 0;padding:14px;display:grid}.recovery-codes code{letter-spacing:1.5px;text-align:center;-webkit-user-select:all;user-select:all;font-size:15px}.twostep__actions{flex-wrap:wrap;gap:8px;margin-bottom:14px;display:flex}.twostep__check{align-items:flex-start;gap:8px;margin:0 0 14px;font-size:13px;line-height:1.4;display:flex}.login{background:radial-gradient(circle at 50% 0%, #16202b 0%, var(--bg-base) 60%);justify-content:center;align-items:center;min-height:100vh;display:flex}.login__card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md);width:340px;box-shadow:var(--shadow-panel);padding:28px}.login__brand{align-items:center;gap:12px;margin-bottom:8px;display:flex}.login__brand h1{font-size:20px}.login__subtitle{color:var(--text-secondary);margin:0 0 24px;font-size:13px;line-height:1.5}.login__error{color:var(--signal-danger);margin:-6px 0 16px;font-size:13px}.login__card .btn{width:100%}.login__card--wide{width:420px;max-width:calc(100vw - 32px)}.login__notice{color:var(--text-secondary);margin:0 0 16px;font-size:13px;line-height:1.5}.login__success{color:var(--signal-success);margin:0 0 16px;font-size:13.5px;line-height:1.5}.login__links{flex-direction:column;align-items:center;gap:8px;margin-top:18px;display:flex}.login__link{cursor:pointer;color:var(--text-secondary);background:0 0;border:none;padding:0;font-size:13px;text-decoration:underline}.login__link:hover{color:var(--text-primary)}.login__forgot{justify-content:flex-end;margin:-6px 0 12px;display:flex}.pulse-hero{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md);align-items:center;gap:32px;margin-bottom:16px;padding:28px 32px;display:flex;position:relative;overflow:hidden}.pulse-hero__trace{opacity:.5;width:100%;height:100%;position:absolute;inset:0}.pulse-hero__trace-path{fill:none;stroke:var(--signal-success);stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:340;stroke-dashoffset:340px;animation:3.2s ease-in-out infinite pulse-hero-draw}@media (prefers-reduced-motion:reduce){.pulse-hero__trace-path{stroke-dashoffset:0;animation:none}}@keyframes pulse-hero-draw{0%{stroke-dashoffset:340px}55%{stroke-dashoffset:0}to{stroke-dashoffset:-340px}}.pulse-hero__main{z-index:1;flex-shrink:0;position:relative}.pulse-hero__value{font-family:var(--font-display);color:var(--text-primary);font-size:52px;font-weight:700;line-height:1}.pulse-hero__label{color:var(--text-secondary);margin-top:6px;font-size:13.5px}.pulse-hero__readouts{z-index:1;align-items:stretch;gap:28px;margin-left:auto;display:flex;position:relative}.pulse-hero__readout{border-left:1px solid var(--border);flex-direction:column;justify-content:center;padding-left:28px;display:flex}.pulse-hero__readout-value{font-family:var(--font-mono);color:var(--text-primary);font-size:22px;font-weight:600}.pulse-hero__readout-label{color:var(--text-muted);margin-top:2px;font-size:12px}@media (width<=720px){.pulse-hero{flex-direction:column;align-items:flex-start;gap:20px}.pulse-hero__readouts{flex-wrap:wrap;margin-left:0}}.control-panel{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md);margin-bottom:16px;overflow:hidden}.control-panel__group{padding:20px 28px}.control-panel__group+.control-panel__group{border-top:1px solid var(--border-subtle)}.control-panel__group{flex-wrap:wrap;gap:0;display:flex}.control-panel__section{flex:0 auto}.control-panel__section+.control-panel__section{border-left:1px solid var(--border-subtle);margin-left:40px;padding-left:40px}@media (width<=720px){.control-panel__section+.control-panel__section{border-left:0;border-top:1px solid var(--border-subtle);flex-basis:100%;margin:20px 0 0;padding:20px 0 0}}.control-panel__group-label{color:var(--text-muted);margin:0 0 14px;font-size:12.5px}.control-panel__row{flex-wrap:wrap;gap:32px;display:flex}.control-panel__stat{min-width:96px;text-decoration:none;display:block}.control-panel__stat-value{font-family:var(--font-display);color:var(--text-primary);font-size:26px;font-weight:700;line-height:1.1}.control-panel__stat-label{color:var(--text-secondary);margin-top:3px;font-size:12.5px}.control-panel__stat-sub{color:var(--text-muted);margin-top:1px;font-size:11px}.control-panel__stat:hover .control-panel__stat-value{color:var(--signal-idle)}.link-button{color:var(--signal-idle);cursor:pointer;font:inherit;background:0 0;border:none;padding:0;font-size:13px;text-decoration:underline}.link-button:hover{color:var(--text-primary)}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:24px;display:flex}.page-header__sub{color:var(--text-secondary);margin:4px 0 0;font-size:13px}.page-header__warning{color:var(--signal-warn,#e0a030);max-width:640px;margin:8px 0 0;font-size:12.5px}@media (width<=640px){.page-header{flex-direction:column;align-items:stretch}}.text-muted{color:var(--text-muted)}.capitalize{text-transform:capitalize}.site-form{max-width:360px}.site-token__box{background:var(--bg-base);border:1px solid var(--border);border-radius:var(--radius-sm);margin-bottom:16px;padding:14px}.site-token__warning{color:var(--text-secondary);margin:0 0 12px;font-size:13px;line-height:1.6}.site-token__value{background:var(--bg-surface);border:1px solid var(--signal-warn);color:var(--signal-warn);border-radius:var(--radius-sm);word-break:break-all;padding:10px 12px;font-size:12.5px;display:block}.setup-instructions__steps{color:var(--text-secondary);flex-direction:column;gap:12px;padding-left:20px;font-size:13px;display:flex}.setup-instructions__steps li{padding-left:4px}.setup-instructions__code{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-sm);font-family:var(--font-mono);color:var(--text-primary);white-space:pre-wrap;word-break:break-all;margin:8px 0;padding:10px 12px;font-size:12px}.setup-instructions__env-box{flex-direction:column;align-items:flex-start;gap:6px;display:flex}.react-flow{--xy-edge-stroke-default:#b1b1b7;--xy-edge-stroke-width-default:1;--xy-edge-stroke-selected-default:#555;--xy-connectionline-stroke-default:#b1b1b7;--xy-connectionline-stroke-width-default:1;--xy-attribution-background-color-default:#ffffff80;--xy-minimap-background-color-default:#fff;--xy-minimap-mask-background-color-default:#f0f0f099;--xy-minimap-mask-stroke-color-default:transparent;--xy-minimap-mask-stroke-width-default:1;--xy-minimap-node-background-color-default:#e2e2e2;--xy-minimap-node-stroke-color-default:transparent;--xy-minimap-node-stroke-width-default:2;--xy-background-color-default:transparent;--xy-background-pattern-dots-color-default:#91919a;--xy-background-pattern-lines-color-default:#eee;--xy-background-pattern-cross-color-default:#e2e2e2;background-color:var(--xy-background-color,var(--xy-background-color-default));--xy-node-color-default:inherit;--xy-node-border-default:1px solid #1a192b;--xy-node-background-color-default:#fff;--xy-node-group-background-color-default:#f0f0f040;--xy-node-boxshadow-hover-default:0 1px 4px 1px #00000014;--xy-node-boxshadow-selected-default:0 0 0 .5px #1a192b;--xy-node-border-radius-default:3px;--xy-handle-background-color-default:#1a192b;--xy-handle-border-color-default:#fff;--xy-selection-background-color-default:#0059dc14;--xy-selection-border-default:1px dotted #0059dccc;--xy-controls-button-background-color-default:#fefefe;--xy-controls-button-background-color-hover-default:#f4f4f4;--xy-controls-button-color-default:inherit;--xy-controls-button-color-hover-default:inherit;--xy-controls-button-border-color-default:#eee;--xy-controls-box-shadow-default:0 0 2px 1px #00000014;--xy-edge-label-background-color-default:#fff;--xy-edge-label-color-default:inherit;--xy-resize-background-color-default:#3367d9;direction:ltr}.react-flow.dark{--xy-edge-stroke-default:#3e3e3e;--xy-edge-stroke-width-default:1;--xy-edge-stroke-selected-default:#727272;--xy-connectionline-stroke-default:#b1b1b7;--xy-connectionline-stroke-width-default:1;--xy-attribution-background-color-default:#96969640;--xy-minimap-background-color-default:#141414;--xy-minimap-mask-background-color-default:#3c3c3c99;--xy-minimap-mask-stroke-color-default:transparent;--xy-minimap-mask-stroke-width-default:1;--xy-minimap-node-background-color-default:#2b2b2b;--xy-minimap-node-stroke-color-default:transparent;--xy-minimap-node-stroke-width-default:2;--xy-background-color-default:#141414;--xy-background-pattern-dots-color-default:#555;--xy-background-pattern-lines-color-default:#333;--xy-background-pattern-cross-color-default:#333;--xy-node-color-default:#f8f8f8;--xy-node-border-default:1px solid #3c3c3c;--xy-node-background-color-default:#1e1e1e;--xy-node-group-background-color-default:#f0f0f040;--xy-node-boxshadow-hover-default:0 1px 4px 1px #ffffff14;--xy-node-boxshadow-selected-default:0 0 0 .5px #999;--xy-handle-background-color-default:#bebebe;--xy-handle-border-color-default:#1e1e1e;--xy-selection-background-color-default:#c8c8dc14;--xy-selection-border-default:1px dotted #c8c8dccc;--xy-controls-button-background-color-default:#2b2b2b;--xy-controls-button-background-color-hover-default:#3e3e3e;--xy-controls-button-color-default:#f8f8f8;--xy-controls-button-color-hover-default:#fff;--xy-controls-button-border-color-default:#5b5b5b;--xy-controls-box-shadow-default:0 0 2px 1px #00000014;--xy-edge-label-background-color-default:#141414;--xy-edge-label-color-default:#f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props,var(--xy-background-color,var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__pane{z-index:1;touch-action:none}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke,var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width,var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke,var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width,var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{pointer-events:none;position:absolute;overflow:visible}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:.5s linear infinite dashdraw}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected,var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke,var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke,var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:.5s linear infinite dashdraw}svg.react-flow__connectionline{z-index:1001;position:absolute;overflow:visible}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{-webkit-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default;position:absolute}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:0 0;pointer-events:none}.react-flow__nodesselection-rect{pointer-events:all;cursor:grab;position:absolute}.react-flow__handle{pointer-events:none;background-color:var(--xy-handle-background-color,var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color,var(--xy-handle-border-color-default));border-radius:100%;width:6px;min-width:5px;height:6px;min-height:5px;position:absolute}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;bottom:0;left:50%;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{z-index:5;margin:15px;position:absolute}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px)translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px)translateY(-50%)}.react-flow__attribution{background:var(--xy-attribution-background-color,var(--xy-attribution-background-color-default));margin:0;padding:2px 3px;font-size:10px}.react-flow__attribution a{color:#999;text-decoration:none}@keyframes dashdraw{0%{stroke-dashoffset:10px}}.react-flow__edgelabel-renderer{pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__viewport-portal{-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__minimap{background:var(--xy-minimap-background-color-props,var(--xy-minimap-background-color,var(--xy-minimap-background-color-default)))}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var(--xy-minimap-mask-background-color-props,var(--xy-minimap-mask-background-color,var(--xy-minimap-mask-background-color-default)));stroke:var(--xy-minimap-mask-stroke-color-props,var(--xy-minimap-mask-stroke-color,var(--xy-minimap-mask-stroke-color-default)));stroke-width:var(--xy-minimap-mask-stroke-width-props,var(--xy-minimap-mask-stroke-width,var(--xy-minimap-mask-stroke-width-default)))}.react-flow__minimap-node{fill:var(--xy-minimap-node-background-color-props,var(--xy-minimap-node-background-color,var(--xy-minimap-node-background-color-default)));stroke:var(--xy-minimap-node-stroke-color-props,var(--xy-minimap-node-stroke-color,var(--xy-minimap-node-stroke-color-default)));stroke-width:var(--xy-minimap-node-stroke-width-props,var(--xy-minimap-node-stroke-width,var(--xy-minimap-node-stroke-width-default)))}.react-flow__background-pattern.dots{fill:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-dots-color-default)))}.react-flow__background-pattern.lines{stroke:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-lines-color-default)))}.react-flow__background-pattern.cross{stroke:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-cross-color-default)))}.react-flow__controls{box-shadow:var(--xy-controls-box-shadow,var(--xy-controls-box-shadow-default));flex-direction:column;display:flex}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{background:var(--xy-controls-button-background-color,var(--xy-controls-button-background-color-default));border:none;border-bottom:1px solid var(--xy-controls-button-border-color-props,var(--xy-controls-button-border-color,var(--xy-controls-button-border-color-default)));width:26px;height:26px;color:var(--xy-controls-button-color-props,var(--xy-controls-button-color,var(--xy-controls-button-color-default)));cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;padding:4px;display:flex}.react-flow__controls-button svg{fill:currentColor;width:100%;max-width:12px;max-height:12px}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{border-radius:var(--xy-node-border-radius,var(--xy-node-border-radius-default));width:150px;color:var(--xy-node-color,var(--xy-node-color-default));text-align:center;border:var(--xy-node-border,var(--xy-node-border-default));background-color:var(--xy-node-background-color,var(--xy-node-background-color-default));padding:10px;font-size:12px}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover,var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected,var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color,var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color,var(--xy-selection-background-color-default));border:var(--xy-selection-border,var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var(--xy-controls-button-background-color-hover-props,var(--xy-controls-button-background-color-hover,var(--xy-controls-button-background-color-hover-default)));color:var(--xy-controls-button-color-hover-props,var(--xy-controls-button-color-hover,var(--xy-controls-button-color-hover-default)))}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var(--xy-controls-button-border-color-props,var(--xy-controls-button-border-color,var(--xy-controls-button-border-color-default)))}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{background-color:var(--xy-resize-background-color,var(--xy-resize-background-color-default));border:1px solid #fff;border-radius:1px;width:5px;height:5px;translate:-50% -50%}.react-flow__resize-control.handle.left{top:50%;left:0}.react-flow__resize-control.handle.right{top:50%;left:100%}.react-flow__resize-control.handle.top{top:0;left:50%}.react-flow__resize-control.handle.bottom{top:100%;left:50%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color,var(--xy-resize-background-color-default));border-style:solid;border-width:0}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;height:100%;top:0;transform:translate(-50%)}.react-flow__resize-control.line.left{border-left-width:1px;left:0}.react-flow__resize-control.line.right{border-right-width:1px;left:100%}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{width:100%;height:1px;left:0;transform:translateY(-50%)}.react-flow__resize-control.line.top{border-top-width:1px;top:0}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color,var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color,var(--xy-edge-label-color-default))}.gate-flow-outer{resize:vertical;height:78vh;min-height:480px;max-height:92vh;overflow:hidden}.gate-flow-toolbar{justify-content:flex-end;align-items:center;gap:8px;margin-bottom:8px;display:flex}.gate-flow-find{max-width:260px}.gate-flow-tray{background:var(--bg-base);border:1px dashed var(--border);border-radius:var(--radius-sm);margin-bottom:10px;padding:12px 14px}.gate-flow-tray__label{color:var(--text-secondary);margin:0 0 8px;font-size:12.5px}.gate-flow-tray__empty{color:var(--text-muted);margin:0;font-size:12.5px}.gate-flow-tray__chips{flex-wrap:wrap;gap:8px;display:flex}.gate-flow-chip{background:var(--bg-surface);border:1px solid var(--border);color:var(--text-primary);cursor:grab;-webkit-user-select:none;user-select:none;cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:6px 12px;font-size:12.5px;transition:opacity .12s;display:flex}.gate-flow-chip--dragging{opacity:.35}.gate-flow-chip:active{cursor:grabbing}.gate-flow-chip--selected{border-color:var(--signal-idle);background:var(--signal-idle-dim);color:var(--signal-idle);font-weight:600}.gate-flow-canvas-wrapper{border:2px solid #0000;flex:1;min-height:0;transition:border-color .12s,background .12s;position:relative}.gate-flow-canvas-wrapper--drag-over{border-color:var(--signal-idle);background:var(--signal-idle-dim)}.gate-flow-canvas-empty{height:100%;color:var(--text-muted);border:1px dashed var(--border);border-radius:var(--radius-sm);justify-content:center;align-items:center;font-size:13px;display:flex}.gate-flow-door{background:var(--bg-surface);border:1px solid var(--border);border-top:4px solid var(--signal-idle);border-radius:var(--radius-md);text-align:center;width:168px;box-shadow:var(--shadow-panel);cursor:grab;flex-direction:column;align-items:center;gap:2px;padding:12px 10px;display:flex;position:relative}.gate-flow-door--clickable{cursor:pointer;transition:transform .1s,box-shadow .1s}.gate-flow-door--clickable:hover{transform:translateY(-2px);box-shadow:0 4px 16px #0000002e}.gate-flow-door__icon{margin-bottom:4px;font-size:22px;line-height:1}.gate-flow-door__cid{font-family:var(--font-mono);color:var(--text-muted);font-size:10.5px}.gate-flow-door__label{color:var(--text-primary);font-size:13px;font-weight:600;line-height:1.25}.gate-flow-door__remove{background:var(--signal-danger);color:#fff;border:2px solid var(--bg-base);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;padding:0;font-size:13px;line-height:1;display:flex;position:absolute;top:-8px;right:-8px}.gate-flow-door__remove:hover{opacity:.85}.gate-flow-add--tray{display:none}.gate-flow-hint{color:var(--text-muted);margin:8px 2px 0;font-size:12.5px}.gate-flow-panel{border:1px solid var(--border);border-top:3px solid var(--signal-idle);border-radius:var(--radius-sm);background:var(--bg-surface);flex-direction:column;gap:10px;margin-top:10px;padding:12px;display:flex}.gate-flow-panel__head{justify-content:space-between;align-items:center;gap:8px;display:flex}.gate-flow-panel__row{flex-direction:column;gap:8px;display:flex}.gate-flow-panel__row select,.gate-flow-panel__row .btn{width:100%}.gate-flow-seg{border:1px solid var(--border);border-radius:var(--radius-sm);display:flex;overflow:hidden}.gate-flow-seg button{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;flex:1;padding:9px 6px;font-size:13px}.gate-flow-seg button.is-on{background:var(--signal-idle-dim);color:var(--signal-idle);font-weight:600}.gate-flow-panel__list{flex-direction:column;gap:6px;display:flex}.gate-flow-panel__edge{border:1px solid var(--border-subtle);border-radius:var(--radius-sm);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;font-size:13px;display:flex}@media (width<=768px){.gate-flow-outer{resize:none;height:auto;min-height:0;max-height:none;overflow:visible;border:none!important}.gate-flow-canvas-wrapper{border:1px solid var(--border);border-radius:var(--radius-sm);touch-action:none;flex:none;height:62vh;min-height:340px;overflow:hidden}.gate-flow-toolbar{flex-wrap:wrap;justify-content:stretch}.gate-flow-find{flex:100%;max-width:none}.gate-flow-toolbar .btn{flex:auto}.gate-flow-add--toolbar{display:none}.gate-flow-add--tray{width:100%;margin-bottom:8px;display:block}.gate-flow-tray{padding:10px}.gate-flow-tray__chips{-webkit-overflow-scrolling:touch;max-height:150px;overflow-y:auto}.gate-flow-chip{padding:8px 12px;font-size:13px}.gate-flow-door .react-flow__handle{width:18px;height:18px}.react-flow__node.selected .gate-flow-door{outline:2px solid var(--signal-idle);outline-offset:2px}}.gate-flow-junction{background:var(--signal-idle,#f97316);color:#fff;width:28px;height:28px;box-shadow:0 0 0 3px var(--bg-surface,#fff);border-radius:50%;justify-content:center;align-items:center;font-size:12px;font-weight:700;display:flex}.ga{max-width:1040px;margin:0 auto}.ga__head h1{font-family:var(--font-display);margin:0 0 4px}.ga__head p{color:var(--text-secondary);margin:0 0 24px}.ga__branch{letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);margin:28px 0 12px;font-size:13px;font-weight:700}.ga__grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;display:grid}.ga-card{background:var(--bg-surface);border:1px solid var(--border);box-shadow:var(--shadow-panel);border-radius:18px;flex-direction:column;gap:14px;padding:20px;display:flex}.ga-card--open{border-color:var(--signal-success)}.ga-card--offline{opacity:.6}.ga-card__top{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.ga-card__name{color:var(--text-primary);font-size:18px;font-weight:700;line-height:1.25}.ga-card__sub{color:var(--text-muted);margin-top:2px;font-size:12px}.ga-card__timer{color:var(--signal-success);min-height:18px;font-size:13px;font-weight:600}.ga-card__actions{flex-wrap:wrap;gap:10px;display:flex}.ga-btn{border:1px solid var(--border);background:var(--bg-surface);min-height:52px;color:var(--text-primary);cursor:pointer;border-radius:14px;flex:90px;font-size:16px;font-weight:700}.ga-btn:disabled{opacity:.45;cursor:not-allowed}.ga-btn--open{background:var(--signal-success);border-color:var(--signal-success);color:var(--on-accent-text)}.ga-btn--close{border-color:var(--signal-danger);color:var(--signal-danger)}.ga-empty{text-align:center;color:var(--text-secondary);padding:60px 20px}.ga-search{flex-wrap:wrap;align-items:center;gap:8px 10px;margin:0 0 14px;display:flex}.ga-search input{flex:220px;min-width:0;max-width:420px}.ga-search span{opacity:.65;font-size:12.5px}.status-board-row{flex-wrap:wrap;gap:16px;margin-bottom:16px;display:flex}.status-led{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md);flex:1;align-items:center;gap:14px;min-width:220px;padding:18px 22px;display:flex}.status-led__light{background:var(--text-muted);border-radius:50%;flex-shrink:0;width:14px;height:14px}.status-led--ok .status-led__light{background:var(--signal-success);box-shadow:0 0 0 4px var(--signal-success-dim), 0 0 10px var(--signal-success)}.status-led--down .status-led__light{background:var(--signal-danger);box-shadow:0 0 0 4px var(--signal-danger-dim)}.status-led__body{flex-direction:column;gap:2px;display:flex}.status-led__title{color:var(--text-primary);font-size:14px;font-weight:600}.status-led__detail{color:var(--text-muted);font-size:12px;font-family:var(--font-mono)}.status-site-header{align-items:center;gap:10px;display:flex}.status-site-header__light{background:var(--signal-danger);border-radius:50%;flex-shrink:0;width:9px;height:9px}.status-site-header--ok .status-site-header__light{background:var(--signal-success)}.status-row-list{flex-direction:column;gap:1px;display:flex}.status-row{border-bottom:1px solid var(--border-subtle);align-items:center;gap:12px;padding:8px 4px;font-size:13px;display:flex}.status-row:last-child{border-bottom:none}.status-row__light{background:var(--signal-danger);border-radius:50%;flex-shrink:0;width:8px;height:8px}.status-row--ok .status-row__light{background:var(--signal-success)}.status-row__name{color:var(--text-primary);min-width:140px;font-weight:500}.status-row__ip{color:var(--text-muted);font-size:12px}.status-row__cid{color:var(--text-muted)}.status-row__detail{color:var(--text-muted);margin-left:auto;font-size:12px}.health__fleet{border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--bg-surface);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 16px;margin:0 0 14px;padding:10px 14px;font-size:13px;display:flex}.health__agent{border-top:1px solid var(--border-subtle);padding:10px 0}.health__agent:first-child{border-top:none;padding-top:0}.health__agent--off{opacity:.85}.health__meta{color:var(--text-secondary);flex-wrap:wrap;align-items:center;gap:4px 18px;margin-top:6px;padding-left:22px;font-size:12.5px;display:flex}.health__meta .badge{margin-left:6px}.health__disk{align-items:center;gap:8px;min-width:0;display:flex}.health__bar{background:var(--border);border-radius:4px;flex:none;width:90px;height:8px;overflow:hidden}.health__bar span{height:100%;display:block}.health__na{color:var(--text-muted)}.health__reasons{color:var(--signal-warn);margin:6px 0 0;padding-left:40px;font-size:12.5px}.health__hint{color:var(--text-muted);margin-left:10px;font-size:12px}.health__fw .badge{margin-left:6px}@media (width<=800px){.health__meta{padding-left:0}.health__reasons{padding-left:18px}.health__hint{margin:6px 0 0;display:block}}.health__checks{flex-direction:column;gap:8px;margin:14px 0 0;padding:0;list-style:none;display:flex}.health__checks li{align-items:flex-start;gap:10px;font-size:13px;line-height:1.45;display:flex}.health__mark{border:1.5px solid;border-radius:50%;flex:none;justify-content:center;align-items:center;width:20px;height:20px;margin-top:1px;font-size:12px;font-weight:700;display:inline-flex}.health__central-disk{flex-direction:column;gap:3px;min-width:0;display:flex}
