.nav-tab{align-items:center;gap:var(--ui-nav-tab-gap);width:100%;min-height:var(--ui-nav-tab-min-height);padding:var(--ui-nav-tab-padding-y) var(--ui-nav-tab-padding-x);border-radius:var(--radius-control);color:var(--color-text-subtle);font-size:var(--ui-nav-tab-font-size);-webkit-tap-highlight-color:transparent;font-weight:800;line-height:1.2;text-decoration:none;transition:color .16s;display:flex}.nav-tab svg{width:1.3rem;height:1.3rem;transition:transform .26s var(--motion-spring);flex:none}.nav-tab:hover{color:var(--color-text)}.nav-tab.is-active{color:var(--color-primary)}.nav-tab--compact{flex-direction:column;justify-content:center;gap:4px;padding:6px 2px}.nav-tab--compact svg{box-sizing:content-box;width:1.3rem;height:1.3rem;transition:background-color .16s ease, transform .26s var(--motion-spring);border-radius:12px;padding:5px 13px}.nav-tab--compact span{letter-spacing:.01em;text-align:center;font-size:.7rem}.nav-tab--compact{position:relative}@media (hover:hover){.nav-tab--compact:hover:not(.is-active) svg{background:var(--color-surface-muted)}}.nav-tab:active svg{transform:scale(.92)}.nav-tab:focus-visible{outline:3px solid var(--color-primary-border);outline-offset:2px}@media (prefers-reduced-motion:reduce){.nav-tab,.nav-tab svg{transition:none}}.meta-badge{border:2px solid var(--color-border);background:var(--color-surface);color:var(--color-text-muted);padding:var(--ui-meta-badge-padding-y) var(--ui-meta-badge-padding-x);font-size:var(--ui-meta-badge-font-size);white-space:nowrap;border-radius:999px;font-weight:800;line-height:1}.meta-badge--accent{border-color:color-mix(in srgb, var(--color-accent) 55%, transparent);background:var(--color-accent-soft);color:var(--color-accent-strong)}.route-skeleton{background:var(--color-bg);grid-template-columns:272px minmax(0,1fr);min-height:100dvh;display:grid}.route-skeleton__sidebar{border-right:1px solid var(--color-border);align-content:start;gap:16px;padding:16px 12px 16px 16px;display:grid}.route-skeleton__logo{background:var(--color-surface-muted);border-radius:10px;width:118px;height:34px}.route-skeleton__nav{gap:10px;display:grid}.route-skeleton__nav-item{background:var(--color-surface-muted);border-radius:10px;height:40px}.route-skeleton__main{grid-template-rows:auto minmax(0,1fr);min-width:0;display:grid}.route-skeleton__header{gap:10px;padding:20px 24px 8px;display:grid}.route-skeleton__title{background:var(--color-surface-muted);border-radius:10px;width:min(260px,65%);height:30px}.route-skeleton__subtitle{background:var(--color-surface-muted);border-radius:8px;width:min(440px,92%);height:14px}.route-skeleton__content{gap:12px;padding:8px 24px 24px;display:grid}.route-skeleton__card{border:2px solid var(--color-border);background:var(--color-surface);border-radius:16px;height:118px}.route-skeleton__pulse{animation:1.05s ease-in-out infinite route-skeleton-pulse}@keyframes route-skeleton-pulse{0%{opacity:.58}50%{opacity:1}to{opacity:.58}}@media (width<=960px){.route-skeleton{grid-template-columns:1fr}.route-skeleton__sidebar{display:none}.route-skeleton__header{padding:16px 16px 8px}.route-skeleton__content{padding:8px 16px 96px}}.route-error-boundary{background:var(--color-bg);place-items:center;min-height:100dvh;padding:20px;display:grid}.route-error-boundary__card{border:2px solid var(--color-border);background:var(--color-surface);width:min(720px,100%);box-shadow:var(--shadow-sm);border-radius:16px;gap:12px;padding:20px;display:grid}.route-error-boundary__kicker{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em;margin:0;font-size:.78rem}.route-error-boundary__title{color:var(--color-text);margin:0;font-size:clamp(1.2rem,2vw,1.55rem);line-height:1.2}.route-error-boundary__message{color:var(--color-text-muted);margin:0;font-size:.95rem}.route-error-boundary__actions{flex-wrap:wrap;gap:8px;display:flex}.route-error-boundary__actions button{border:2px solid var(--color-border);background:var(--color-primary);color:var(--color-on-primary);cursor:pointer;border-radius:10px;padding:9px 14px;font-family:inherit;font-size:.86rem;font-weight:600}.route-error-boundary__actions button:hover{background:var(--color-primary-strong)}.route-error-boundary__actions .route-error-boundary__button-secondary{background:var(--color-surface);color:var(--color-text)}.route-error-boundary__actions .route-error-boundary__button-secondary:hover{background:var(--color-surface-muted)}.route-error-boundary__details{border-top:1px solid var(--color-border);width:100%;min-width:0;margin-top:4px;padding-top:10px;overflow:hidden}.route-error-boundary__details summary{cursor:pointer;color:var(--color-text-muted);font-size:.82rem}.route-error-boundary__details pre{border:2px solid var(--color-border);background:var(--color-surface-muted);width:100%;max-width:100%;max-height:220px;color:var(--color-text);white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;border-radius:10px;margin:8px 0 0;padding:10px;font-size:.75rem;line-height:1.4;overflow:auto}.action-modal{z-index:1200;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.action-modal__overlay{background:var(--color-overlay);border:0;position:absolute;inset:0}.action-modal__content{border:1px solid color-mix(in srgb, var(--color-border) 86%, transparent);background:color-mix(in srgb, var(--color-surface) 94%, var(--color-surface-muted));width:min(520px,100%);box-shadow:var(--shadow-md);border-radius:12px;gap:12px;padding:14px;display:grid;position:relative}.action-modal__header{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.action-modal__header h3{color:var(--color-text);margin:0;font-size:1rem}.action-modal__close{background:var(--color-transparent);color:var(--color-text-muted);cursor:pointer;border:0;border-radius:8px;place-items:center;width:28px;height:28px;font-size:1.15rem;line-height:1;display:inline-grid}.action-modal__description{color:var(--color-text-muted);margin:0;font-size:.88rem}.action-modal__actions{justify-content:flex-end;gap:8px;display:flex}.action-modal__actions button{border:2px solid var(--color-border);background:var(--color-surface);color:var(--color-text);cursor:pointer;border-radius:8px;padding:7px 12px;font-family:inherit;font-size:.82rem}.action-modal__actions button:hover:not(:disabled){background:var(--color-surface-muted)}.action-modal__confirm{border-color:color-mix(in srgb, var(--color-primary) 30%, var(--color-border))!important;background:color-mix(in srgb, var(--color-primary) 12%, var(--color-surface))!important;color:var(--color-primary-strong)!important}.action-modal__actions button:disabled{cursor:not-allowed;opacity:.6}.action-modal__content{border:2px solid var(--color-border);border-radius:var(--radius-panel);background:var(--color-surface);animation:action-modal-in .22s var(--motion-spring);gap:14px;padding:20px}.action-modal__overlay{animation:.16s action-modal-fade}.action-modal__header h3{font-size:1.15rem;font-weight:900}.action-modal__close{border-radius:var(--radius-control);width:32px;height:32px;font-size:1.3rem;transition:background-color .14s,color .14s}.action-modal__close:hover{background:var(--color-surface-muted);color:var(--color-text)}.action-modal__close:focus-visible,.action-modal__actions button:focus-visible{outline:3px solid var(--color-primary-border);outline-offset:2px}.action-modal__actions button{border-color:var(--color-border-strong);border-bottom:var(--edge-width) solid var(--color-border-strong);border-radius:var(--radius-control);min-height:40px;transition:transform .16s var(--motion-spring), border-bottom-width .16s var(--motion-spring), background-color .14s ease, filter .14s ease;padding:8px 16px;font-size:.9rem;font-weight:800}.action-modal__actions .action-modal__confirm{border-color:var(--color-primary-strong)!important;background:var(--color-primary)!important;color:var(--color-on-primary)!important}@media (hover:hover){.action-modal__actions button:hover:not(:disabled){border-bottom-width:calc(var(--edge-width) + 1px);transform:translateY(-1px)}.action-modal__actions .action-modal__confirm:hover:not(:disabled){filter:brightness(1.06)}}.action-modal__actions button:active:not(:disabled){border-bottom-width:2px;transition-duration:60ms;transform:translateY(2px)}@keyframes action-modal-in{0%{opacity:0;transform:translateY(12px)scale(.97)}}@keyframes action-modal-fade{0%{opacity:0}}@media (prefers-reduced-motion:reduce){.action-modal__content,.action-modal__overlay{animation:none}.action-modal__actions button{transition:none}}.toast-viewport{--toast-enter-offset-y:14px;--toast-exit-offset-x:18px;--toast-exit-offset-y:0px;z-index:1400;pointer-events:none;flex-direction:column;gap:8px;width:min(380px,100vw - 32px);display:flex;position:fixed;bottom:20px;right:20px}.toast-item{border:2px solid var(--color-border);background:var(--color-surface-muted);color:var(--color-text);box-shadow:var(--shadow-sm);pointer-events:auto;will-change:transform, opacity;transform-origin:100% 100%;border-radius:10px;justify-content:space-between;align-items:flex-start;gap:10px;padding:8px 10px;font-size:.82rem;animation:.18s cubic-bezier(.2,.8,.2,1) both toast-enter;display:flex}.toast-item--error,.toast-item--danger{border-color:color-mix(in srgb, var(--color-danger) 55%, var(--color-surface));background:color-mix(in srgb, var(--color-danger) 16%, var(--color-surface));color:var(--color-danger)}.toast-item--success{border-color:color-mix(in srgb, var(--color-success) 55%, var(--color-surface));background:color-mix(in srgb, var(--color-success) 18%, var(--color-surface));color:var(--color-success)}.toast-item--warning{border-color:color-mix(in srgb, var(--color-accent) 58%, var(--color-surface));background:color-mix(in srgb, var(--color-accent) 22%, var(--color-surface));color:var(--color-accent-strong)}.toast-item__text{min-width:0}.toast-item__action{border:1px solid color-mix(in srgb, var(--color-border) 80%, var(--color-transparent));background:var(--color-surface);color:currentColor;cursor:pointer;border-radius:8px;padding:5px 9px;font-size:.74rem;font-weight:600}.toast-item__action:hover{background:var(--color-surface-muted)}.toast-item__close{background:var(--color-transparent);color:currentColor;cursor:pointer;opacity:.75;border:0;padding:0;font-size:1rem;line-height:1}.toast-item__close:hover{opacity:1}@media (width<=760px){.toast-viewport{--toast-enter-offset-y:-12px;--toast-exit-offset-x:0px;--toast-exit-offset-y:-8px;left:12px;right:12px;top:calc(env(safe-area-inset-top,0px) + 10px);width:auto;bottom:auto}}.toast-item--exiting{pointer-events:none;animation:.18s cubic-bezier(.4,0,.2,1) both toast-exit}@keyframes toast-enter{0%{opacity:0;transform:translate3d(0, var(--toast-enter-offset-y), 0) scale(.98)}to{opacity:1;transform:translate(0,0)scale(1)}}@keyframes toast-exit{0%{opacity:1;transform:translate(0,0)scale(1)}to{opacity:0;transform:translate3d(var(--toast-exit-offset-x), var(--toast-exit-offset-y), 0) scale(.98)}}@media (prefers-reduced-motion:reduce){.toast-item{will-change:auto;animation:none}.toast-item--exiting{animation:none}}.toast-item{border-radius:var(--radius-control);border-bottom-width:var(--edge-width);background:var(--color-surface);box-shadow:var(--shadow-tooltip);padding:10px 12px;font-size:.86rem;font-weight:700}.toast-item--error,.toast-item--danger{border-bottom-color:var(--color-grade-again-edge)}.toast-item--success{border-bottom-color:var(--color-grade-easy-edge)}.toast-item--warning{border-bottom-color:var(--color-grade-hard-edge)}.toast-item__action{border:2px solid var(--color-border-strong);border-bottom-width:3px;border-radius:10px;font-weight:800}.ui-button{--button-bg:var(--color-surface);--button-border:var(--color-border-strong);--button-edge:var(--color-border-strong);--button-text:var(--color-text);appearance:none;border:2px solid var(--button-border);border-bottom:var(--edge-width) solid var(--button-edge);border-radius:var(--radius-control);background:var(--button-bg);min-height:40px;color:var(--button-text);cursor:pointer;transition:transform .16s var(--motion-spring), border-bottom-width .16s var(--motion-spring), background-color .14s ease, border-color .14s ease, color .14s ease, filter .14s ease, opacity .14s ease;justify-content:center;align-items:center;gap:8px;padding:8px 16px;font-family:inherit;font-size:.9rem;font-weight:800;line-height:1.1;display:inline-flex}@media (hover:hover){.ui-button:hover:not(:disabled){border-bottom-width:calc(var(--edge-width) + 1px);filter:brightness(1.04);transform:translateY(-1px)}}.ui-button:active:not(:disabled){border-bottom-width:2px;transition-duration:60ms;transform:translateY(2px)}.ui-button:disabled{cursor:not-allowed;opacity:.5}.ui-button--primary{--button-bg:var(--color-primary);--button-border:var(--color-primary-strong);--button-edge:var(--color-primary-strong);--button-text:var(--color-on-primary)}.ui-button--secondary{--button-bg:var(--color-surface);--button-text:var(--color-primary)}.ui-button--ghost{--button-bg:var(--color-transparent);--button-border:var(--color-transparent);--button-edge:var(--color-transparent);--button-text:var(--color-text-muted)}@media (hover:hover){.ui-button--ghost:hover:not(:disabled){--button-bg:var(--color-surface-muted);--button-text:var(--color-text);border-bottom-width:var(--edge-width);transform:none}}.ui-button--danger{--button-bg:var(--color-grade-again);--button-border:var(--color-grade-again-edge);--button-edge:var(--color-grade-again-edge);--button-text:var(--color-on-primary)}.ui-button--sm{min-height:34px;padding:6px 12px;font-size:.82rem}.ui-button--md{font-size:.9rem}.ui-button--full{width:100%}.ui-button:focus-visible{outline:3px solid var(--color-primary-border);outline-offset:2px}@media (prefers-reduced-motion:reduce){.ui-button{transition:none}}.ui-input{border:2px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface);width:100%;color:var(--color-text);min-width:0;padding:10px 12px;font-family:inherit;font-size:.9rem;font-weight:600;transition:border-color .14s,background .14s,box-shadow .14s}.ui-input::placeholder{color:var(--color-text-subtle);font-weight:500}.ui-input:focus{border-color:var(--color-primary);background:var(--color-surface);box-shadow:0 0 0 4px var(--color-primary-soft);outline:none}.ui-input:disabled{opacity:.6;cursor:not-allowed}.ui-input--sm{padding:8px 10px;font-size:.84rem}.ui-input--md{padding:10px 12px;font-size:.9rem}.ui-search-field{min-width:0;display:block;position:relative}.ui-search-field__icon{color:var(--color-text-muted);pointer-events:none;z-index:1;justify-content:center;align-items:center;display:inline-flex;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.ui-search-field__icon svg{width:.95rem;height:.95rem}.ui-search-field .ui-search-field__input.ui-input{border-radius:var(--radius-control);background:var(--color-surface);width:100%;min-width:0;padding:9px 40px 9px 36px;font-size:.9rem}.ui-search-field__clear{width:28px;min-width:28px;height:28px;color:var(--color-text-muted);cursor:pointer;background:0 0;border:0;border-radius:8px;justify-content:center;align-items:center;padding:0;display:inline-flex;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.ui-search-field__clear:hover:not(:disabled){color:var(--color-text);background:color-mix(in srgb, var(--color-surface-muted) 78%, var(--color-surface))}.ui-search-field__clear:disabled{cursor:not-allowed;opacity:.6}.ui-search-field__clear svg{width:14px;height:14px}@media (width<=640px){.ui-search-field .ui-search-field__input.ui-input{padding:8px 38px 8px 34px;font-size:.78rem}}.ui-tabs{background:var(--color-surface-muted);border-radius:16px;flex-wrap:wrap;gap:4px;width:fit-content;max-width:100%;padding:4px;display:flex}.ui-tabs__tab{appearance:none;border-radius:var(--radius-control);background:var(--color-transparent);color:var(--color-text-muted);cursor:pointer;white-space:nowrap;border:2px solid #0000;border-bottom-width:3px;padding:8px 11px;font-family:inherit;font-size:.84rem;font-weight:800;line-height:1.1;transition:background-color .14s,border-color .14s,color .14s}.ui-tabs__tab:hover{color:var(--color-text)}.ui-tabs__tab--active{border-color:var(--color-border);border-bottom-color:var(--color-border-strong);color:var(--color-primary);background:var(--color-surface)}.ui-tabs__tab--highlighted{border-color:var(--color-primary-border);color:var(--color-primary);background:var(--color-primary-soft)}.ui-tabs__tab:focus-visible{outline:3px solid var(--color-primary-border);outline-offset:1px}@media (width<=760px){.ui-tabs__tab{padding:6px 9px;font-size:.78rem}}.ui-panel{width:100%;min-width:0}.ui-section-header{gap:3px;display:grid}.ui-section-header__title{color:var(--color-text);margin:0;font-size:1.05rem;font-weight:900}.ui-section-header__description{color:var(--color-text-muted);margin:0;font-size:.86rem}.setting-group{gap:10px;display:grid;container:setting-group/inline-size}.setting-group__head h3{color:var(--color-text);margin:0;font-size:1rem;font-weight:900}.setting-group__head p{color:var(--color-text-muted);margin:3px 0 0;font-size:.86rem;font-weight:600}.setting-group__rows{border:2px solid var(--color-border);border-bottom-width:var(--edge-width);border-radius:var(--radius-panel);background:var(--color-surface);display:grid;overflow:hidden}.setting-group:not(:has(.setting-row,.setting-content)){display:none}.setting-row{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px 20px;min-height:64px;padding:12px 18px;display:grid}.setting-group__rows>*+*{border-top:2px solid var(--color-border)}.setting-row--wide{grid-template-columns:minmax(0,1fr)}.setting-row__text{gap:2px;min-width:0;display:grid}.setting-row__label{color:var(--color-text);font-size:.95rem;font-weight:800;line-height:1.3}.setting-row__hint{color:var(--color-text-muted);font-size:.82rem;font-weight:600;line-height:1.4}.setting-row__control{justify-content:flex-end;min-width:0;display:flex}.setting-row--wide .setting-row__control{justify-content:stretch}.setting-row--wide .setting-row__control>*{width:100%}.setting-row--danger .setting-row__label{color:var(--color-danger)}@container setting-group (width<=480px){.setting-row{grid-template-columns:minmax(0,1fr);padding:12px 14px}.setting-row__control{justify-content:stretch}.setting-row__control>.setting-select,.setting-row__control>.setting-segmented,.setting-row__control>.ui-button{width:100%}:is(.setting-row:has(>.setting-row__control>.setting-switch),.setting-row:has(>.setting-row__control>.setting-stepper)){grid-template-columns:minmax(0,1fr) auto}}.setting-switch{appearance:none;border:2px solid var(--color-border-strong);background:var(--color-surface-muted);cursor:pointer;border-radius:999px;flex:none;width:52px;height:32px;margin:0;transition:background-color .18s,border-color .18s;position:relative}.setting-switch:before{content:"";background:var(--color-surface);width:24px;height:24px;box-shadow:0 1px 0 var(--color-border-strong), 0 2px 5px #1018282e;transition:transform .24s var(--motion-spring);border-radius:50%;position:absolute;top:2px;left:2px}.setting-switch:checked{border-color:var(--color-primary-strong);background:var(--color-primary)}.setting-switch:checked:before{transform:translate(20px)}.setting-switch:disabled{cursor:default;opacity:.5}.setting-switch:focus-visible{outline:3px solid var(--color-primary-border);outline-offset:2px}.setting-segmented{scrollbar-width:none;background:var(--color-surface-muted);border-radius:14px;gap:4px;max-width:100%;padding:4px;display:inline-flex;overflow-x:auto}.setting-segmented__option{flex:1 0 auto;position:relative}.setting-segmented__option input{opacity:0;pointer-events:none;margin:0;position:absolute;inset:0}.setting-segmented__option label{min-height:38px;color:var(--color-text-muted);white-space:nowrap;cursor:pointer;border:2px solid #0000;border-radius:10px;place-items:center;padding:0 14px;font-size:.86rem;font-weight:800;transition:color .14s,background-color .14s;display:grid}.setting-segmented__option label:hover{color:var(--color-text)}.setting-segmented__option input:checked+label{border-color:var(--color-border-strong);background:var(--color-surface);color:var(--color-primary);border-bottom-width:3px}.setting-segmented__option input:focus-visible+label{outline:3px solid var(--color-primary-border);outline-offset:1px}.setting-segmented__option input:disabled+label{cursor:default;opacity:.5}.setting-stepper{align-items:center;gap:6px;display:inline-flex}.setting-stepper__key{border:2px solid var(--color-border-strong);background:var(--color-surface);width:40px;height:40px;color:var(--color-text);cursor:pointer;transition:transform .15s var(--motion-spring), border-bottom-width .15s var(--motion-spring);border-bottom-width:4px;border-radius:12px;place-items:center;padding:0;display:grid}.setting-stepper__key svg{width:16px;height:16px}.setting-stepper__key:active:not(:disabled){border-bottom-width:2px;transition-duration:60ms;transform:translateY(2px)}.setting-stepper__key:disabled{cursor:default;opacity:.4}.setting-stepper__key:focus-visible{outline:3px solid var(--color-primary-border);outline-offset:2px}.setting-stepper__field{color:var(--color-text-muted);align-items:baseline;gap:2px;font-weight:800;display:inline-flex}.setting-stepper__field input{width:4.2ch;color:var(--color-text);font-variant-numeric:tabular-nums;text-align:center;-moz-appearance:textfield;background:0 0;border:0;border-bottom:2px solid #0000;padding:6px 0;font-size:1.05rem;font-weight:900}.setting-stepper__field input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.setting-stepper__field input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.setting-stepper__field input:focus{border-bottom-color:var(--color-primary);outline:none}.setting-select{min-width:min(220px,100%);display:inline-flex;position:relative}.setting-select:after{content:"";border-right:2.5px solid var(--color-text-subtle);border-bottom:2.5px solid var(--color-text-subtle);pointer-events:none;width:8px;height:8px;position:absolute;top:50%;right:14px;transform:translateY(-70%)rotate(45deg)}.setting-select select{appearance:none;border:2px solid var(--color-border-strong);background:var(--color-surface);width:100%;min-height:44px;color:var(--color-text);cursor:pointer;border-bottom-width:4px;border-radius:12px;padding:8px 38px 8px 14px;font-size:.9rem;font-weight:800}.setting-select select:focus-visible{outline:3px solid var(--color-primary-border);outline-offset:1px}@media (prefers-reduced-motion:reduce){.setting-switch,.setting-switch:before,.setting-stepper__key,.setting-segmented__option label{transition:none}}
