*,:after,:before{box-sizing:border-box}body,html{height:100%}html{color-scheme:light;overflow-x:clip}body{margin:0;background:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);font-size:var(--text-body-size);font-weight:var(--text-body-weight);line-height:var(--text-body-leading);-webkit-font-smoothing:antialiased;transition:background-color var(--transition),color var(--transition)}a{color:var(--color-link);text-decoration:none;transition:color var(--transition)}a:hover{color:var(--color-primary-hover);text-decoration:underline}h1{font-size:var(--text-page-size);font-weight:var(--text-page-weight);line-height:var(--text-page-leading);color:var(--color-heading);margin:0}h2,h3{font-size:var(--text-section-size);font-weight:var(--text-section-weight);line-height:var(--text-section-leading);color:var(--color-heading)}h2,h3,p{margin:0}code,pre{font-family:inherit;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.main,.shell{min-height:100vh}.main{margin-left:var(--width-sidebar);display:flex;flex-direction:column;transition:margin-left var(--transition)}.shell.is-collapsed .main{margin-left:var(--width-sidebar-rail)}.sidebar{position:fixed;inset:0 auto 0 0;z-index:40;width:var(--width-sidebar);background:var(--color-surface);display:flex;flex-direction:column;overflow:hidden;transition:width var(--transition),transform var(--transition)}.shell.is-collapsed .sidebar{width:var(--width-sidebar-rail)}.sidebar-brand{display:flex;align-items:center;gap:10px;height:var(--height-header);flex:0 0 var(--height-header);padding:0 var(--pad-page) 0 20px;background:var(--color-topbar);color:var(--color-on-dark);font-size:var(--text-section-size);font-weight:var(--text-section-weight);white-space:nowrap}.sidebar-brand:hover{color:var(--color-on-dark);text-decoration:none}.sidebar-logo{display:block;flex:0 0 auto;height:28px;width:auto;max-width:100%;object-fit:contain}.sidebar-logo[hidden]{display:none}.shell.is-collapsed .sidebar-brand{justify-content:center;padding:0 8px}.shell.is-collapsed .sidebar-logo{height:22px}.shell.is-collapsed .sidebar-brand-text{display:none}.sidebar-body{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;padding:20px 0}.nav-caption{padding:0 25px;margin-bottom:10px;color:var(--color-text-muted);font-size:var(--text-label-size);font-weight:var(--text-label-weight);letter-spacing:var(--text-label-tracking);line-height:var(--text-label-leading);text-transform:uppercase}.shell.is-collapsed .nav-caption{text-align:center;padding:0 8px;overflow:hidden}.sidebar-nav{display:flex;flex-direction:column;gap:3px;margin:0 15px}.nav-item{display:flex;align-items:center;gap:10px;padding:10px 15px;border-radius:var(--radius-nav);color:var(--color-text);font-size:var(--text-nav-size);font-weight:var(--text-nav-weight);line-height:1.4;white-space:nowrap;transition:background-color var(--transition),color var(--transition)}.nav-item svg{flex:0 0 auto}.nav-item:hover{background:var(--color-hover-ghost);color:var(--color-heading);text-decoration:none}.nav-item.is-active{box-shadow:inset var(--border-emphasis) 0 0 0 var(--color-primary)}.nav-item[aria-disabled=true]{opacity:.45;pointer-events:none}.nav-group{width:100%;border:none;background:transparent;font-family:inherit;text-align:left;cursor:pointer}.nav-chevron{margin-left:auto;transition:transform var(--transition)}.nav-item[aria-expanded=true] .nav-chevron{transform:rotate(90deg)}.nav-sub{display:flex;flex-direction:column;gap:2px;margin:3px 0 3px 30px;padding-left:12px;border-left:var(--border)}.nav-sub .nav-item{padding:7px 12px;font-weight:500}.shell.is-collapsed .nav-item{justify-content:center;padding:10px 0}.shell.is-collapsed .nav-chevron,.shell.is-collapsed .nav-label,.shell.is-collapsed .nav-sub,.sidebar-scrim{display:none}.header{position:-webkit-sticky;position:sticky;top:0;z-index:30;height:var(--height-header);flex:0 0 var(--height-header);display:flex;align-items:center;gap:var(--space-2);padding:0 var(--pad-page);background:var(--color-topbar);color:var(--color-on-dark)}.header .icon-btn{color:color-mix(in srgb,var(--color-on-dark) 85%,transparent)}.header .icon-btn:hover{background:color-mix(in srgb,var(--color-on-dark) 12%,transparent);color:var(--color-on-dark)}.header-left{gap:10px;min-width:0}.header-left,.header-right{display:flex;align-items:center}.header-right{gap:4px;margin-left:auto}.icon-btn{display:inline-flex;align-items:center;justify-content:center;position:relative;flex:0 0 auto;width:var(--size-icon-btn);height:var(--size-icon-btn);padding:0;border:none;border-radius:var(--radius-md);background:transparent;color:var(--color-text-muted);cursor:pointer;transition:background-color var(--transition),color var(--transition)}.icon-btn:hover{background:var(--color-hover-ghost);color:var(--color-heading)}.icon-btn-badge{position:absolute;top:5px;right:4px;min-width:16px;height:16px;padding:0 4px;border-radius:var(--radius-full);background:var(--color-danger-solid);color:var(--color-on-dark);font-size:9px;font-weight:700;line-height:16px;text-align:center}.header-divider{width:1px;height:24px;margin:0 8px;background:color-mix(in srgb,var(--color-on-dark) 20%,transparent)}.header-search{display:flex;align-items:center;gap:8px;height:var(--height-control-sm);padding:0 12px;border-radius:var(--radius-control);background:color-mix(in srgb,var(--color-on-dark) 15%,transparent);color:var(--color-on-dark);transition:background-color var(--transition)}.header-search:focus-within{background:color-mix(in srgb,var(--color-on-dark) 25%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--color-on-dark) 50%,transparent)}.header-search input{width:180px;border:none;background:none;outline:none;font-family:inherit;font-size:var(--text-body-size);color:var(--color-on-dark)}.header-search input::placeholder{color:color-mix(in srgb,var(--color-on-dark) 70%,transparent)}.actor-menu{position:relative}.actor-trigger{display:inline-flex;align-items:center;gap:8px;height:var(--size-icon-btn);padding:0 8px 0 4px;border:none;border-radius:var(--radius-md);background:transparent;color:var(--color-on-dark);font-family:inherit;font-size:var(--text-body-size);font-weight:600;cursor:pointer;transition:background-color var(--transition)}.actor-trigger:hover{background:color-mix(in srgb,var(--color-on-dark) 12%,transparent)}.menu{position:absolute;top:calc(100% + 8px);right:0;z-index:50;min-width:260px;padding:8px;background:var(--color-surface);border:var(--border);border-radius:var(--radius-card);box-shadow:var(--shadow-float)}.menu-head{padding:8px 10px 10px;margin-bottom:4px;border-bottom:var(--border);color:var(--color-text-muted);font-size:var(--text-label-size);font-weight:var(--text-label-weight);letter-spacing:var(--text-label-tracking);text-transform:uppercase}.menu-head-value{margin-top:4px;color:var(--color-heading);font-weight:600;letter-spacing:normal;text-transform:none}.menu-head-value,.menu-item{display:block;font-size:var(--text-body-size)}.menu-item{padding:9px 10px;border-radius:var(--radius-sm);color:var(--color-text);transition:background-color var(--transition)}.menu-item:hover{background:var(--color-hover-ghost);color:var(--color-heading);text-decoration:none}button.menu-item{display:flex;align-items:center;gap:8px;width:100%;border:0;background:none;font:inherit;text-align:left;cursor:pointer}.menu-notifications{min-width:280px}.menu-item-sub{display:block;margin-top:2px}.menu-item-sub,.menu-note{color:var(--color-text-muted);font-size:var(--text-meta-size)}.menu-note{padding:8px 10px 4px;line-height:1.5}.is-mobile-only{display:none}@media (max-width:1023px){.is-desktop-only{display:none}.is-mobile-only{display:inline-flex}.header-search input{width:120px}}@media (max-width:600px){.header-search{display:none}}.page-header{height:var(--height-page-header);flex:0 0 var(--height-page-header);display:flex;align-items:center;gap:var(--space-2);padding:0 var(--pad-page);background:var(--color-surface);border-bottom:var(--border)}.page-header-title{display:flex;align-items:baseline;gap:10px;min-width:0}.breadcrumb,.page-header-title h1{white-space:nowrap}.breadcrumb{display:flex;align-items:center;gap:6px;padding-left:10px;border-left:var(--border);font-size:var(--text-meta-size);overflow:hidden;text-overflow:ellipsis}.breadcrumb,.breadcrumb a{color:var(--color-text-muted)}.breadcrumb a:hover{color:var(--color-primary)}.breadcrumb-item{display:inline-flex;align-items:center;gap:6px}.breadcrumb-sep{color:var(--color-text-muted)}.page-header-actions{display:flex;align-items:center;gap:8px;margin-left:auto}.main-area{flex:1 1 auto;min-width:0;display:flex;flex-direction:column}.gate{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--space-4) var(--pad-page);background:var(--color-bg)}.gate-panel{width:100%;max-width:420px}.gate-brand{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center}.gate-mark{display:block;height:56px;width:auto;max-width:100%;margin-bottom:var(--space-1);object-fit:contain}.gate-title{margin:0;font-size:var(--text-title-sm-size,1.375rem);line-height:var(--text-title-sm-leading,1.75rem);font-weight:600;color:var(--color-heading)}.gate-card{display:flex;justify-content:center}.gate-button{width:100%;justify-content:center}.shell-booting{min-height:100vh;background:var(--color-bg)}.share-view{width:100%;max-width:var(--width-content);margin:0 auto auto;padding:var(--grid-gutter) var(--pad-page) var(--space-4)}.share-brand{margin-bottom:var(--space-3)}.share-note{display:flex;gap:var(--space-1);align-items:flex-start;margin:0;padding:var(--space-2);background:var(--tint-info);border-left:var(--border-emphasis) solid var(--color-info);border-radius:var(--radius-md);font-size:var(--text-body-size);line-height:var(--text-body-leading);color:var(--color-text)}.share-note svg{flex:none;margin-top:3px}.share-state{gap:var(--space-1) var(--space-2);font-size:var(--text-meta-size)}.share-state,.share-url{display:flex;flex-wrap:wrap;align-items:center}.share-url{gap:var(--space-1);padding:var(--space-2);background:var(--color-surface-subtle);border:var(--border);border-radius:var(--radius-md)}.share-url-text{flex:1 1 320px;min-width:0;font-family:inherit;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-size:var(--text-meta-size);line-height:1.6;color:var(--color-heading);overflow-wrap:anywhere}.share-code-readout{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);background:var(--color-surface-subtle);border:var(--border);border-radius:var(--radius-md)}.share-code-digits{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-size:var(--text-section-size);font-weight:600;letter-spacing:.08em;color:var(--color-heading)}.share-lifetime{display:flex;align-items:center;gap:var(--space-1)}.share-gate{max-width:420px;margin:0 auto}.share-code-form{display:flex;flex-direction:column;gap:var(--space-2)}.share-code-field{display:flex;flex-direction:column;gap:6px}.share-code-input{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-size:var(--text-section-size);letter-spacing:.25em;text-align:center}.share-code-submit{justify-content:center}.share-code-error{display:flex;gap:6px;align-items:flex-start;margin:0;font-size:var(--text-theme-xs);line-height:var(--text-theme-xs-leading);color:var(--ink-danger)}.share-code-error svg{flex:none;margin-top:2px}.content{flex:1 1 auto;min-width:0;width:100%;max-width:var(--width-content);padding:var(--grid-gutter) var(--pad-page) var(--space-4)}.grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-gap:0 var(--grid-gutter);gap:0 var(--grid-gutter)}.grid>*{grid-column:span 12;margin-bottom:var(--card-gap);min-width:0;display:flex;flex-direction:column}.grid>*>.card{flex:1 1 auto;display:flex;flex-direction:column}.grid>*>.card>.card-body{flex:1 1 auto}.col-3{grid-column:span 3}.col-4{grid-column:span 4}.col-5{grid-column:span 5}.col-6{grid-column:span 6}.col-7{grid-column:span 7}.col-8{grid-column:span 8}.col-9{grid-column:span 9}.col-12{grid-column:span 12}@media (max-width:1280px){.col-3,.col-4{grid-column:span 6}.col-5,.col-7,.col-8,.col-9{grid-column:span 12}}@media (max-width:768px){.col-3,.col-4,.col-6{grid-column:span 12}}.split{display:flex;align-items:stretch;min-height:0}.pane,.split{flex:1 1 auto}.pane{min-width:0;max-width:100%;padding:var(--grid-gutter) var(--pad-page) var(--space-4)}.pane>.stack{max-width:var(--width-content)}.stack{gap:var(--card-gap)}.stack,.stack-tight{display:flex;flex-direction:column}.stack-tight{gap:var(--space-1)}.page-head{display:flex;flex-direction:column;gap:2px}.detail-head{display:flex;align-items:center;gap:var(--space-2);padding-bottom:var(--space-2);border-bottom:var(--border)}.detail-head-body{flex:1 1 auto;min-width:0}.meta-line{font-size:var(--text-meta-size);line-height:1.6;color:var(--color-text-muted)}.row-between{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);flex-wrap:wrap}.reading{max-width:var(--width-reading)}.app-footer{align-items:center;justify-content:space-between;flex-wrap:wrap;height:var(--height-footer);padding:0 var(--pad-page);border-top:var(--border);color:var(--color-text-muted);font-size:var(--text-label-size);font-weight:var(--text-label-weight);letter-spacing:var(--text-label-tracking);text-transform:uppercase}.app-footer,.app-footer nav{display:flex;gap:var(--space-2)}.app-footer a{color:var(--color-text-muted)}.app-footer a:hover{color:var(--color-primary)}.banner{display:flex;align-items:center;gap:var(--space-1);padding:8px var(--pad-page);background:var(--tint-warning);border-bottom:1px solid color-mix(in srgb,var(--color-warning) 35%,transparent);color:var(--ink-warning);font-size:var(--text-label-size);font-weight:var(--text-label-weight);line-height:var(--text-label-leading);letter-spacing:var(--text-label-tracking);text-transform:uppercase}.banner-detail{text-transform:none;letter-spacing:normal;font-weight:var(--text-body-weight)}.notice{border-left:var(--border-emphasis) solid var(--color-border)}.notice-danger{border-left-color:var(--color-danger)}.notice-warning{border-left-color:var(--color-warning)}.deflist{display:grid;grid-template-columns:auto 1fr;grid-gap:var(--space-1) var(--space-3);gap:var(--space-1) var(--space-3);margin:0}.deflist dt{font-size:var(--text-body-size);color:var(--color-text-muted)}.deflist dd{margin:0;text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-size:var(--text-body-size);color:var(--color-text)}.deflist dd.is-total{font-weight:700;color:var(--color-heading)}.trace{margin:0;padding:var(--space-2);background:var(--color-surface-subtle);border:var(--border);border-radius:var(--radius-md);font-family:inherit;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-size:var(--text-meta-size);line-height:1.6;color:var(--color-text);white-space:pre-wrap;overflow-x:auto}.formula{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.formula,details>summary{color:var(--color-text-muted)}details>summary{cursor:pointer;font-size:var(--text-body-size);transition:color var(--transition)}details>summary:hover{color:var(--color-heading)}.col-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));grid-gap:var(--grid-gutter);gap:var(--grid-gutter);align-items:start}@media (max-width:1023px){.sidebar{transform:translateX(-100%);box-shadow:var(--shadow-float)}.shell.is-drawer-open .sidebar{transform:translateX(0)}.shell .main,.shell.is-collapsed .main{margin-left:0}.shell.is-drawer-open .sidebar-scrim{display:block;position:fixed;inset:0;z-index:35;background:var(--color-scrim);border:none}.app-footer,.banner,.content,.header,.page-header,.pane{padding-left:var(--space-2);padding-right:var(--space-2)}}@media (max-width:767px){.page-header{height:auto;flex:0 0 auto;flex-wrap:wrap;padding-top:12px;padding-bottom:12px}.breadcrumb{padding-left:0;border-left:none}.page-header-actions{margin-left:0;width:100%}.split{flex-direction:column}.queue{position:static;flex:0 0 auto;width:100%;height:auto;max-height:40vh;border-right:none;border-bottom:var(--border)}.queue.is-collapsed{flex-direction:row;width:100%;padding:var(--space-1) var(--space-2)}}.settings-fab{position:fixed;right:0;top:50%;z-index:25;transform:translateY(-50%);display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border:var(--border);border-right:none;border-radius:var(--radius-md) 0 0 var(--radius-md);background:var(--color-surface);color:var(--color-text-muted);cursor:pointer;box-shadow:var(--shadow-card);transition:color var(--transition)}.settings-fab:hover{color:var(--color-primary)}.settings-fab svg{animation:spin 9s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.drawer{position:fixed;inset:0 0 0 auto;z-index:50;width:min(320px,92vw);display:flex;flex-direction:column;background:var(--color-surface);border-left:var(--border);box-shadow:var(--shadow-float);transform:translateX(100%);transition:transform var(--transition-slow)}.drawer.is-open{transform:translateX(0)}.drawer-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);height:var(--height-header);flex:0 0 var(--height-header);padding:0 var(--pad-card);border-bottom:var(--border)}.drawer-body{flex:1 1 auto;padding:var(--pad-card);overflow-y:auto}.drawer-scrim{position:fixed;inset:0;z-index:45;border:none;background:var(--color-scrim)}.drawer-note{margin-top:10px;color:var(--color-text-muted);font-size:var(--text-meta-size);line-height:1.6}.choice-group{margin-bottom:var(--space-3)}.choice-row{display:flex;gap:8px;margin-top:8px}.choice{flex:1 1;display:inline-flex;align-items:center;justify-content:center;gap:6px;height:var(--height-control);border:1px solid var(--color-border-strong);border-radius:var(--radius-control);background:var(--color-surface);color:var(--color-text);font-family:inherit;font-size:var(--text-label-size);font-weight:var(--text-label-weight);letter-spacing:var(--text-label-tracking);text-transform:uppercase;cursor:pointer;transition:background-color var(--transition),border-color var(--transition),color var(--transition)}.choice.is-active,.choice:hover{border-color:var(--color-primary)}.choice.is-active{background:var(--color-primary);color:var(--color-on-dark)}@media (prefers-reduced-motion:reduce){.settings-fab svg{animation:none}}.t-label{font-size:var(--text-label-size);font-weight:var(--text-label-weight);line-height:var(--text-label-leading);letter-spacing:var(--text-label-tracking);text-transform:uppercase}.t-label,.t-muted{color:var(--color-text-muted)}.t-body{font-size:var(--text-body-size);line-height:var(--text-body-leading);color:var(--color-text)}.t-section{line-height:var(--text-section-leading)}.drawer-title,.t-section{font-size:var(--text-section-size);font-weight:var(--text-section-weight);color:var(--color-heading)}.header{background:var(--color-surface);color:var(--color-text);border-bottom:var(--border)}.header .icon-btn{color:var(--color-text-muted)}.header .icon-btn:hover{background:var(--color-hover-ghost);color:var(--color-heading)}.header-divider{background:var(--color-border)}.header-search{background:var(--color-bg);color:var(--color-text);border-radius:var(--radius-pill);padding:0 16px}.header-search:focus-within{background:var(--color-surface);box-shadow:inset 0 0 0 1px var(--color-primary),var(--ring-focus)}.header-search input{color:var(--color-text)}.header-search input::placeholder{color:var(--color-text-muted)}.actor-trigger{color:var(--color-text)}.actor-trigger:hover{background:var(--color-hover-ghost)}.sidebar-brand{background:var(--color-surface);border-bottom:var(--border)}.sidebar-brand,.sidebar-brand:hover{color:var(--color-ink)}.sidebar-logo.logo-on-dark,:root[data-theme=dark] .sidebar-logo.logo-on-light{display:none}:root[data-theme=dark] .sidebar-logo.logo-on-dark{display:block}.sidebar{border-right:var(--border)}.nav-caption{letter-spacing:.08em}.sidebar-nav{gap:4px}.nav-item{border-radius:var(--radius-md);padding:11px 14px}.nav-item.is-active{background:var(--color-primary-soft);color:var(--color-primary);box-shadow:none;font-weight:600}.page-header{height:auto;min-height:var(--height-page-header);flex-basis:auto;padding:28px var(--pad-page) 4px;background:transparent;border-bottom:0;align-items:flex-end}.page-header-title{flex-direction:column;align-items:flex-start;gap:4px}.page-header-title h1{font-size:var(--text-page-size);font-weight:var(--text-page-weight);letter-spacing:-.01em;color:var(--color-heading)}.breadcrumb{padding-left:0;border-left:0}.card{border:var(--border)}.card-header h2,.card-title{text-transform:none;letter-spacing:0;font-size:var(--text-card-size);font-weight:var(--text-card-weight)}.card-header h2:before,.card-title:before{display:none}.card-subtitle{margin-top:4px}.dt thead th{background:transparent;color:var(--color-text-muted);font-size:var(--text-label-size);font-weight:600;letter-spacing:.06em;border-bottom:1px solid var(--color-border)}.dt-sticky thead th{background:var(--color-surface)}.dt tbody td{border-bottom:1px solid var(--color-border)}.dt tbody tr:last-child td{border-bottom:0}.dt tbody tr:hover td{background:var(--color-hover-row)}.btn{border-radius:var(--radius-control);font-weight:600}.btn-primary{box-shadow:0 1px 2px color-mix(in srgb,var(--color-primary) 40%,transparent)}.btn-secondary{background:var(--color-surface);border-color:color-mix(in srgb,var(--color-primary) 35%,var(--color-border));color:var(--color-primary-hover)}.btn-secondary:hover:not([disabled]):not([aria-disabled=true]){background:var(--color-primary-soft);border-color:var(--color-primary);color:var(--color-primary-hover)}.dt-search,.dt-select,.tpl-input{border-radius:var(--radius-control);border:1px solid var(--color-border);background:var(--color-surface);transition:border-color var(--transition),box-shadow var(--transition)}.dt-search:focus,.dt-select:focus,.tpl-input:focus{outline:none;border-color:var(--color-primary);box-shadow:var(--ring-focus)}.sidebar-nav+.nav-caption{margin-top:var(--space-3)}.actor-trigger-label{white-space:nowrap}@media (max-width:560px){.actor-trigger-label,.cycle-chip span{display:none}.header{gap:var(--space-1);padding:0 var(--space-2)}}.person-line{display:inline-flex;align-items:center;gap:10px;min-width:0}.person-line .person-text{display:flex;flex-direction:column;min-width:0}