:root{--page: #f4f5f7;--surface: #ffffff;--surface-2: #fafbfc;--surface-3: #f2f4f7;--line: #e5e7eb;--line-soft: #eef0f3;--line-strong: #d3d8e0;--ink: #111827;--ink-2: #475467;--ink-3: #64748b;--ink-4: #98a2b3;--accent: #2e5bff;--accent-ink: #1d3fcb;--accent-hover: #1f4ae0;--accent-soft: #eef2ff;--success: #12b76a;--success-ink: #067647;--success-soft: #ecfdf3;--warning: #f79009;--warning-ink: #b54708;--warning-soft: #fffaeb;--danger: #d92d20;--danger-ink: #b42318;--danger-soft: #fef3f2;--info-ink: #175cd3;--info-soft: #eff6ff;--rail: #101418;--rail-2: #191e24;--rail-text: #a9b1bb;--rail-muted: #6d7681;--rail-line: #242b32;--rail-w: 224px;--r-xs: 4px;--r-control: 8px;--r-card: 10px;--r-panel: 14px;--shadow-pop: 0 12px 32px rgba(16, 24, 40, .12), 0 2px 6px rgba(16, 24, 40, .06);--sans: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--mono: ui-monospace, "SF Mono", "JetBrains Mono", Menlo, Consolas, monospace;--ease: cubic-bezier(.22, 1, .36, 1);--t-fast: .12s;--t-mid: .18s;--header-h: 56px;--content-max: 1560px}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;font-family:var(--sans);font-size:13px;line-height:1.5;color:var(--ink);background:var(--page);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3,h4,p,dl,dd,dt{margin:0}h1,h2,h3,h4{font-weight:600}ul,ol{margin:0;padding:0;list-style:none}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}code,pre{font-family:var(--mono)}::selection{background:#2e5bff24}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.mono{font-family:var(--mono);font-size:11.5px}.num{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1;white-space:nowrap}.nowrap{white-space:nowrap}.muted{color:var(--ink-3)}.ellipsis{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-danger{color:var(--danger-ink)}.text-warning{color:var(--warning-ink)}.text-success{color:var(--success-ink)}.spin{animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.app-shell{display:flex;min-height:100vh}.app-main{flex:1;min-width:0;display:flex;flex-direction:column}.content{flex:1;min-width:0;width:100%;max-width:var(--content-max);margin:0 auto;padding:24px 24px 40px}.sidebar{width:var(--rail-w);flex:0 0 var(--rail-w);background:var(--rail);color:var(--rail-text);position:sticky;top:0;height:100vh;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:10px;padding:18px 16px 16px;min-width:0}.brand__text{display:flex;flex-direction:column;line-height:1.3;min-width:0}.brand__text strong{color:#fff;font-size:13px;font-weight:600;letter-spacing:0}.brand__text span{color:var(--rail-muted);font-size:10.5px;letter-spacing:0}.nav{flex:1;overflow-y:auto;padding:6px 8px 16px}.nav-group{margin-bottom:16px}.nav-group:last-child{margin-bottom:0}.nav-group__label{font-size:11px;letter-spacing:0;text-transform:none;color:var(--rail-muted);padding:0 8px 6px;font-weight:500}.nav-item{position:relative;display:flex;align-items:center;gap:10px;min-width:0;height:32px;padding:0 8px;margin-bottom:2px;border-radius:6px;color:var(--rail-text);font-size:12.5px;font-weight:500;transition:background-color var(--t-fast) var(--ease),color var(--t-fast) var(--ease)}.nav-item__icon{color:var(--rail-muted);flex:0 0 16px;transition:color var(--t-fast) var(--ease)}.nav-item span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-item:hover{background:var(--rail-2);color:#eef1f4}.nav-item:hover .nav-item__icon{color:#b9c1cb}.nav-item.is-active{background:var(--rail-2);color:#fff}.nav-item.is-active:before{content:"";position:absolute;left:-8px;top:6px;bottom:6px;width:2px;border-radius:1px;background:var(--accent)}.nav-item.is-active .nav-item__icon{color:#fff}.sidebar__foot{padding:12px 16px 16px;border-top:1px solid var(--rail-line)}.sidebar__env{display:flex;align-items:center;gap:6px;color:var(--rail-muted);font-size:11px}.sidebar__env code{margin-left:auto;color:var(--rail-text);font-size:10.5px}.sidebar__note{margin-top:6px;color:var(--rail-muted);font-size:10.5px}.status-dot{width:6px;height:6px;border-radius:50%;background:var(--rail-muted);display:inline-block;flex:0 0 6px}.status-dot--ok{background:var(--success)}.header{height:var(--header-h);flex:0 0 var(--header-h);display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 24px;background:var(--surface);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}.header__title-wrap{display:flex;align-items:center;gap:8px;min-width:0}.header__crumb{font-size:12px;color:var(--ink-3);white-space:nowrap}.header__crumb:after{content:"/";margin-left:8px;color:var(--line-strong)}.header__title{font-size:12.5px;font-weight:500;letter-spacing:0;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header__meta{display:flex;align-items:center;gap:16px;min-width:0}.header__clock{display:inline-flex;align-items:center;gap:6px;color:var(--ink-3);font-size:12px;font-variant-numeric:tabular-nums;white-space:nowrap}.header__tz{color:var(--ink-4);font-size:10.5px}.mfa-badge{display:inline-flex;align-items:center;gap:6px;padding:0;border:0;border-radius:0;background:transparent;font-size:12px;color:var(--warning-ink);white-space:nowrap}.mfa-badge:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;flex:0 0 6px}.mfa-badge--ok{color:var(--ink-3)}.mfa-badge--ok:before{background:var(--success)}.user-menu{position:relative}.user-menu__trigger{display:flex;align-items:center;gap:8px;list-style:none;cursor:pointer;padding:4px 6px;border-radius:6px;border:1px solid transparent;transition:background-color var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease)}.user-menu__trigger::-webkit-details-marker{display:none}.user-menu__trigger:hover{background:var(--surface-2);border-color:var(--line)}.avatar{width:26px;height:26px;flex:0 0 26px;border-radius:50%;background:var(--surface-3);color:var(--ink-2);display:grid;place-items:center;font-weight:600;font-size:11.5px}.user-menu__name{display:flex;flex-direction:column;line-height:1.25;min-width:0}.user-menu__name strong{font-size:12px;font-weight:600;max-width:130px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-menu__name span{font-size:11px;color:var(--ink-3)}.user-menu__panel{position:absolute;right:0;top:calc(100% + 6px);width:240px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-control);box-shadow:var(--shadow-pop);padding:6px;z-index:40;animation:pop-in var(--t-mid) var(--ease) both}.user-menu__email{padding:8px 10px;font-size:11.5px;color:var(--ink-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-menu__item{display:flex;align-items:center;gap:8px;width:100%;height:32px;padding:0 10px;border:0;background:transparent;border-radius:6px;font-size:12.5px;text-align:left;color:var(--ink-2);transition:background-color var(--t-fast) var(--ease),color var(--t-fast) var(--ease)}.user-menu__item:hover{background:var(--surface-3);color:var(--ink)}.user-menu__item--static{color:var(--ink-3);font-size:11px;cursor:default;height:auto;padding:4px 10px}.user-menu__item--static:hover{background:transparent}.user-menu__item--danger{color:var(--danger-ink)}.user-menu__divider{height:1px;background:var(--line);margin:5px 0}@keyframes pop-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}.page{min-width:0;display:flex;flex-direction:column;gap:20px;counter-reset:section}.page>.page-head{margin-bottom:4px}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;min-width:0}.page-head__text{min-width:0}.page-title{font-size:20px;font-weight:600;letter-spacing:-.01em;line-height:1.25}.page-sub{margin-top:4px;color:var(--ink-3);font-size:12.5px;max-width:760px}.page-updated{margin-top:6px;color:var(--ink-4);font-size:11px;font-variant-numeric:tabular-nums}.page-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end;flex:0 0 auto;padding-top:2px}.page-loading{display:flex;align-items:center;justify-content:center;gap:10px;padding:80px 20px;color:var(--ink-3)}.card{counter-increment:section;min-width:0;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card)}.card__head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:16px 20px 0;min-width:0}.card__heading{min-width:0}.card__title{font-size:13px;font-weight:600;letter-spacing:0;color:var(--ink)}.card__title:before{content:counter(section,decimal-leading-zero);font-family:var(--mono);font-size:11px;font-weight:400;color:var(--ink-4);margin-right:10px;letter-spacing:.02em}.card__sub{margin-top:4px;font-size:12px;color:var(--ink-3)}.card__actions{display:flex;align-items:center;gap:8px;flex:0 0 auto}.card__body{padding:16px 20px 20px;min-width:0}.card__body--flush{padding:0}.card__head+.card__body{padding-top:14px}.card-sum{font-size:12px;color:var(--ink-3);display:inline-flex;align-items:center;gap:6px}.card-sum .money{color:var(--ink)}.grid{display:grid;grid-template-columns:minmax(0,1fr);gap:16px}.grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid--routing{grid-template-columns:minmax(0,2fr) minmax(320px,1fr)}.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:16px}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);overflow:hidden}.kpi-grid--three,.kpi-grid--four{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.kpi{min-width:0;padding:14px 16px 16px;background:transparent;border:0;border-radius:0;box-shadow:inset -1px 0 0 var(--line),inset 0 -1px 0 var(--line)}.kpi__top{display:flex;align-items:center;gap:6px;min-width:0}.kpi__label{font-size:11.5px;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kpi__tone{width:6px;height:6px;border-radius:50%;flex:0 0 6px;background:currentColor}.kpi__icon{display:none}.kpi__value{margin-top:8px;font-size:22px;font-weight:500;letter-spacing:-.01em;line-height:1.2;color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kpi__foot{margin-top:6px;font-size:11.5px;color:var(--ink-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kpi--success .kpi__tone{color:var(--success)}.kpi--warning .kpi__tone{color:var(--warning)}.kpi--danger .kpi__tone{color:var(--danger)}.kpi--default .kpi__tone{display:none}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid transparent;border-radius:var(--r-control);font-weight:500;white-space:nowrap;transition:background-color var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease),color var(--t-fast) var(--ease)}.btn:active:not(:disabled){transform:translateY(.5px)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn--md{height:34px;padding:0 14px;font-size:12.5px}.btn--sm{height:28px;padding:0 10px;font-size:12px}.btn--primary{background:var(--accent);color:#fff}.btn--primary:hover:not(:disabled){background:var(--accent-hover)}.btn--secondary{background:var(--surface);border-color:var(--line-strong);color:var(--ink-2)}.btn--secondary:hover:not(:disabled){background:var(--surface-2);color:var(--ink);border-color:#c2c9d4}.btn--ghost{background:transparent;color:var(--ink-2)}.btn--ghost:hover:not(:disabled){background:var(--surface-3);color:var(--ink)}.btn--danger{background:var(--danger);color:#fff}.btn--danger:hover:not(:disabled){background:#b42318}.btn--subtle{background:var(--accent-soft);color:var(--accent-ink)}.btn--subtle:hover:not(:disabled){background:#e3e9ff}.icon-btn{width:28px;height:28px;display:inline-grid;place-items:center;border:1px solid var(--line);background:var(--surface);border-radius:6px;color:var(--ink-3);transition:background-color var(--t-fast) var(--ease),color var(--t-fast) var(--ease)}.icon-btn:hover{color:var(--ink);background:var(--surface-2)}.link-btn{display:inline-flex;align-items:center;gap:4px;border:0;background:transparent;color:var(--ink-2);font-size:12px;padding:0;white-space:nowrap;transition:color var(--t-fast) var(--ease)}.link-btn:hover{color:var(--accent-ink);text-decoration:underline;text-underline-offset:2px}.row-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.field{display:flex;flex-direction:column;gap:6px;min-width:0}.field__label{font-size:12px;font-weight:500;color:var(--ink-2);display:inline-flex;align-items:center;gap:3px}.field__required{color:var(--danger-ink)}.field__hint{font-size:11.5px;color:var(--ink-3)}.field__error{font-size:11.5px;color:var(--danger-ink)}.input,.select,.textarea{width:100%;min-width:0;border:1px solid var(--line-strong);border-radius:var(--r-control);background:var(--surface);padding:0 10px;font-size:12.5px;color:var(--ink);outline:0;transition:border-color var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease)}.input,.select{height:34px}.select{padding-right:6px}.textarea{padding:8px 10px;resize:vertical;min-height:76px;line-height:1.55}.input:hover,.select:hover,.textarea:hover{border-color:#c2c9d4}.input:focus,.select:focus,.textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px #2e5bff1f}.input--invalid{border-color:var(--danger)}.input::placeholder,.textarea::placeholder{color:var(--ink-4)}.checkbox{display:inline-flex;align-items:flex-start;gap:8px;font-size:12px;color:var(--ink-2);line-height:1.5;cursor:pointer}.checkbox input{margin:3px 0 0;accent-color:var(--accent)}.checkbox--disabled{opacity:.6;cursor:not-allowed}.form-stack{display:flex;flex-direction:column;gap:14px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.money-input{position:relative;display:flex;align-items:center}.money-input__prefix{position:absolute;left:10px;color:var(--ink-3);font-size:12.5px;pointer-events:none}.money-input .input{padding-left:22px;font-variant-numeric:tabular-nums}.input-affix{position:relative;display:flex;align-items:center}.input-affix .input{padding-right:38px}.input-affix__btn{position:absolute;right:4px;width:28px;height:28px;display:grid;place-items:center;border:0;background:transparent;color:var(--ink-3);border-radius:6px}.input-affix__btn:hover{background:var(--surface-3);color:var(--ink)}.segmented{display:inline-flex;background:var(--surface-3);border-radius:var(--r-control);padding:2px;gap:2px}.segmented__item{border:0;background:transparent;color:var(--ink-3);font-size:12px;height:28px;padding:0 10px;border-radius:6px;white-space:nowrap;transition:background-color var(--t-fast) var(--ease),color var(--t-fast) var(--ease)}.segmented__item:hover{color:var(--ink)}.segmented__item.is-active{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px #10182814;font-weight:500}.filter-bar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:8px;padding:0 0 14px;min-width:0}.filter-bar .select,.filter-bar .input{width:auto;min-width:132px}.filter-bar__search{position:relative;display:flex;align-items:center;min-width:240px;flex:1 1 240px;max-width:320px}.filter-bar__search .input{width:100%;padding-left:30px}.filter-bar__icon{position:absolute;left:10px;color:var(--ink-3);pointer-events:none}.filter-bar__actions{display:flex;gap:8px}.date-range{display:inline-flex;align-items:flex-end;gap:8px;flex-wrap:wrap}.date-range__field{display:flex;flex-direction:column;gap:4px}.date-range__label{font-size:10.5px;color:var(--ink-3)}.date-range__field .input{width:140px}.date-range__sep{color:var(--ink-4);padding-bottom:9px}.inline-note{font-size:11.5px;color:var(--ink-3);line-height:1.6}.inline-note--danger{color:var(--danger-ink)}.inline-meta{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}.data-table{min-width:0;display:flex;flex-direction:column}.table-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:0;padding-bottom:12px}.table-toolbar__left{min-width:0;display:flex;align-items:center;gap:8px;flex-wrap:wrap;flex:1}.table-toolbar__right{display:flex;align-items:center;gap:8px;flex:0 0 auto}.table-refreshing{font-size:11.5px;color:var(--ink-3)}.table-scroll{position:relative;overflow:visible;max-width:100%}.table-scroll-wrap{position:relative;min-width:0}.table-scroll-fade{position:absolute;top:1px;right:1px;bottom:1px;width:44px;pointer-events:none;border-radius:0 var(--r-card) var(--r-card) 0;background:linear-gradient(to right,rgba(255,255,255,0),var(--surface) 82%)}.table{width:100%;table-layout:fixed;border-collapse:separate;border-spacing:0;font-size:12px}.table thead th{position:sticky;padding:8px 10px;top:var(--header-h);z-index:3;background:var(--surface-2);color:var(--ink-3);font-size:11px;font-weight:600;letter-spacing:.01em;text-align:left;border-top:1px solid var(--line);border-bottom:1px solid var(--line-strong);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.table tbody td{padding:8px 10px;border-bottom:1px solid var(--line-soft);vertical-align:middle;color:var(--ink-2);height:38px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.table tbody tr:last-child td{border-bottom:0}.table tbody tr{transition:background-color var(--t-fast) var(--ease)}.table tbody tr:hover{background:#f8fafc}.table tbody tr.is-clickable{cursor:pointer}.table tbody tr.is-clickable:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.table th.is-right,.table td.is-right{text-align:right}.table th.is-tool,.table td.is-tool{width:44px;padding:0 8px;text-align:right}.table th.is-tool{padding-top:0;padding-bottom:0}.table th.is-tool .col-menu{display:flex;justify-content:flex-end}.table th.is-center,.table td.is-center{text-align:center}.table .mono{font-size:11px}.table-sort{display:inline-flex;align-items:center;gap:4px;border:0;background:transparent;padding:0;color:inherit;font:inherit;font-weight:600}.table-sort:hover{color:var(--ink)}.table--compact{font-size:12px}.table--compact td{padding:6px 8px}.table-row-skeleton td{padding:12px}.table-state{padding:8px 0}.table-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:12px;flex-wrap:wrap}.table-foot__total{font-size:12px;color:var(--ink-3);font-variant-numeric:tabular-nums}.table-foot__controls{display:flex;align-items:center;gap:8px}.table-page-size{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--ink-3)}.table-page-size select{border:1px solid var(--line-strong);border-radius:6px;background:var(--surface);height:28px;font-size:12px;padding:0 4px;color:var(--ink-2)}.pager-btn{width:28px;height:28px;display:grid;place-items:center;border:1px solid var(--line-strong);border-radius:6px;background:var(--surface);color:var(--ink-2);transition:background-color var(--t-fast) var(--ease)}.pager-btn:hover:not(:disabled){background:var(--surface-3)}.pager-btn:disabled{opacity:.4;cursor:not-allowed}.pager-text{font-size:12px;color:var(--ink-3);font-variant-numeric:tabular-nums;min-width:48px;text-align:center}.cell-stack{display:flex;flex-direction:column;line-height:1.3;min-width:0;max-width:100%}.cell-stack__main{color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cell-stack__sub{color:var(--ink-3);font-family:var(--mono);font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.badge-row{display:flex;gap:4px;flex-wrap:wrap}.col-menu{position:relative}.col-menu__trigger{display:inline-grid;place-items:center;list-style:none;border:1px solid transparent;border-radius:var(--r-xs);background:transparent;height:22px;width:22px;padding:0;color:var(--ink-3);cursor:pointer;transition:background-color var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease),color var(--t-fast) var(--ease)}.col-menu__trigger::-webkit-details-marker{display:none}.col-menu__trigger:hover{color:var(--ink);background:var(--surface-2)}.col-menu__panel{position:absolute;right:0;top:calc(100% + 4px);z-index:30;width:220px;max-height:320px;overflow:auto;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-control);box-shadow:var(--shadow-pop);padding:5px;animation:pop-in var(--t-mid) var(--ease) both}.col-menu__item{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:5px;font-size:12px;color:var(--ink-2);cursor:pointer}.col-menu__item:hover{background:var(--surface-3)}.col-menu__item input{accent-color:var(--accent)}.col-menu__item.is-disabled{opacity:.55;cursor:default}.badge{display:inline-flex;align-items:center;gap:6px;height:auto;padding:0;border-radius:0;background:transparent;border:0;font-size:12px;font-weight:500;white-space:nowrap}.badge__dot{width:6px;height:6px;border-radius:50%;background:currentColor;flex:0 0 6px}.badge--success{color:var(--success-ink)}.badge--warning{color:var(--warning-ink)}.badge--danger{color:var(--danger-ink)}.badge--info{color:var(--info-ink)}.badge--neutral{color:var(--ink-3)}.badge--accent{color:var(--accent-ink)}.tag{display:inline-flex;align-items:center;gap:4px;height:20px;padding:0 6px;border-radius:var(--r-xs);border:1px solid var(--line);background:var(--surface-2);color:var(--ink-3);font-size:10.5px;font-family:var(--mono);white-space:nowrap}.money{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1;white-space:nowrap}.money--empty{color:var(--ink-3)}.money--missing{display:inline-flex;align-items:center;gap:3px;color:var(--warning-ink);background:var(--warning-soft);border:1px solid #f4d9a6;border-radius:var(--r-xs);padding:0 5px;font-size:10.5px;font-weight:600}.code-copy{display:inline-flex;align-items:center;gap:4px;min-width:0;max-width:100%;vertical-align:middle}.code-copy__text{font-family:var(--mono);font-size:11.5px;color:var(--ink-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.code-copy__btn{flex:0 0 auto;width:20px;height:20px;display:inline-grid;place-items:center;border:1px solid transparent;background:transparent;color:var(--ink-4);border-radius:var(--r-xs);opacity:.7;transition:opacity var(--t-fast) var(--ease),color var(--t-fast) var(--ease)}.code-copy:hover .code-copy__btn{opacity:1;border-color:var(--line)}.code-copy__btn:hover{color:var(--accent-ink)}.code-block{max-width:100%;overflow:auto;margin:0;background:var(--surface-2);border:1px solid var(--line);color:var(--ink-2);border-radius:var(--r-control);padding:12px;font-size:11.5px;line-height:1.65}.code-line{border:1px solid var(--line);background:var(--surface-2);border-radius:6px;padding:6px 8px;font-size:11.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.reason-box{border:1px solid var(--line);background:var(--surface-2);border-radius:var(--r-control);padding:10px 12px;font-size:12.5px;color:var(--ink-2);white-space:pre-wrap;word-break:break-word}.alert{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border-radius:var(--r-control);border:1px solid;font-size:12px;line-height:1.5}.alert__icon{flex:0 0 auto;margin-top:1px}.alert__content{min-width:0}.alert__title{font-weight:600}.alert__body{color:inherit;opacity:.92;word-break:break-word}.alert__action{margin-left:auto;flex:0 0 auto}.alert__request-id{margin-top:4px;font-family:var(--mono);font-size:11px;word-break:break-all}.alert--info{background:var(--info-soft);border-color:#c7ddfb;color:var(--info-ink)}.alert--success{background:var(--success-soft);border-color:#b7e6c9;color:var(--success-ink)}.alert--warning{background:var(--warning-soft);border-color:#f4d9a6;color:var(--warning-ink)}.alert--danger{background:var(--danger-soft);border-color:#f5c9c6;color:var(--danger-ink)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:40px 20px;gap:6px}.empty-state--compact{padding:24px 12px}.empty-state__icon{color:var(--ink-4);margin-bottom:2px}.empty-state__title{font-size:13px;font-weight:600;color:var(--ink-2)}.empty-state__desc{font-size:12px;color:var(--ink-3);max-width:460px}.empty-state__action{margin-top:10px}.error-state{display:flex;align-items:flex-start;gap:12px;padding:16px 18px;border:1px solid #f5c9c6;background:#fffbfa;border-radius:var(--r-card)}.error-state--compact{padding:12px 0;border:0;background:transparent}.error-state__icon{flex:0 0 auto;color:var(--danger-ink);margin-top:1px}.error-state__content{min-width:0;flex:1}.error-state__title{font-size:13px;font-weight:600;color:var(--ink)}.error-state__message{margin-top:2px;color:var(--ink-2);font-size:12px;word-break:break-word}.error-state__meta{margin-top:8px;display:flex;align-items:center;gap:12px;flex-wrap:wrap;font-size:11px;color:var(--ink-3)}.error-state__code{font-family:var(--mono)}.error-state__req{display:inline-flex;align-items:center;gap:5px}.error-state__actions{margin-top:10px}.loading-block{display:flex;flex-direction:column;gap:10px;padding:4px 0}.skeleton{display:block;background:#e9edf2;border-radius:var(--r-xs);animation:pulse 1.8s ease-in-out infinite}.spinner{display:inline-flex;align-items:center;color:var(--ink-3)}@keyframes overlay-in{0%{opacity:0}to{opacity:1}}@keyframes dialog-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes drawer-in{0%{opacity:.4;transform:translate(24px)}to{opacity:1;transform:none}}@keyframes toast-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.overlay{position:fixed;inset:0;background:#10182870;display:flex;align-items:center;justify-content:center;padding:28px;z-index:60;animation:overlay-in var(--t-mid) var(--ease) both}.overlay--drawer{justify-content:flex-end;padding:0}.dialog{max-width:calc(100vw - 56px);max-height:calc(100vh - 56px);background:var(--surface);border-radius:var(--r-panel);box-shadow:var(--shadow-pop);display:flex;flex-direction:column;overflow:hidden;animation:dialog-in var(--t-mid) var(--ease) both}.dialog__head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:18px 20px 14px;border-bottom:1px solid var(--line)}.dialog__heading{min-width:0}.dialog__title{font-size:15px;font-weight:600;line-height:1.35}.dialog__desc{margin-top:4px;color:var(--ink-3);font-size:12px;word-break:break-word}.dialog__body{padding:16px 20px 20px;overflow:auto;min-width:0}.dialog__foot{padding:12px 20px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:8px;background:var(--surface-2)}.drawer{width:560px;max-width:94vw;height:100vh;background:var(--surface);border-left:1px solid var(--line);box-shadow:var(--shadow-pop);display:flex;flex-direction:column;overflow:hidden;margin-left:auto;animation:drawer-in .2s var(--ease) both}.drawer__head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:18px 20px 14px;border-bottom:1px solid var(--line)}.drawer__heading{min-width:0}.drawer__title{font-size:15px;font-weight:600}.drawer__sub{margin-top:4px;color:var(--ink-3);font-size:11.5px;word-break:break-all}.drawer__body{padding:18px 20px;overflow:auto;flex:1;min-width:0}.drawer__foot{padding:12px 20px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:8px;background:var(--surface-2)}.confirm{display:flex;flex-direction:column;gap:14px}.confirm__row{display:flex;gap:12px;align-items:baseline;min-width:0}.confirm__row--stack{flex-direction:column;gap:4px}.confirm__label{flex:0 0 68px;font-size:11px;color:var(--ink-3)}.confirm__value{font-size:12.5px;color:var(--ink);word-break:break-all}.confirm__impact{font-size:12px;color:var(--ink-2);line-height:1.6}.confirm__error{border:1px solid #f5c9c6;background:var(--danger-soft);color:var(--danger-ink);border-radius:var(--r-control);padding:10px 12px;font-size:12px}.confirm__error-meta{margin-top:4px;font-size:11px}.toast-stack{position:fixed;left:calc(var(--rail-w) + 24px);bottom:20px;z-index:80;display:flex;flex-direction:column;gap:8px;max-width:360px}.toast{display:flex;align-items:flex-start;gap:8px;background:var(--surface);border:1px solid var(--line);border-left:2px solid var(--ink-3);border-radius:var(--r-control);box-shadow:var(--shadow-pop);padding:9px 12px;font-size:12px;color:var(--ink-2);word-break:break-word;animation:toast-in var(--t-mid) var(--ease) both}.toast--success{border-left-color:var(--success)}.toast--error{border-left-color:var(--danger)}.toast--info{border-left-color:var(--accent)}.toast svg{flex:0 0 auto;margin-top:1px}.toast--success svg{color:var(--success-ink)}.toast--error svg{color:var(--danger-ink)}.toast--info svg{color:var(--accent-ink)}.detail-stack{display:flex;flex-direction:column;gap:20px;min-width:0}.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 20px}.detail-grid>div{display:flex;flex-direction:column;gap:3px;min-width:0}.detail-label{font-size:11px;color:var(--ink-3)}.detail-grid>div>span:not(.detail-label):not(.badge):not(.code-copy):not(.tag){font-size:12.5px;color:var(--ink-2);overflow-wrap:anywhere}.section-title{font-size:12px;font-weight:600;color:var(--ink);margin-bottom:8px}.section-block{border-top:1px solid var(--line);padding-top:16px;display:flex;flex-direction:column;gap:10px}.section-block__head{display:flex;align-items:center;gap:8px}.inline-note+.inline-note{margin-top:4px}.timeline{display:flex;flex-direction:column;gap:0}.timeline__item{display:flex;gap:10px;position:relative;padding-bottom:12px}.timeline__item:last-child{padding-bottom:0}.timeline__dot{width:7px;height:7px;border-radius:50%;background:var(--ink-4);margin-top:6px;flex:0 0 7px}.timeline__dot--succeeded{background:var(--success)}.timeline__dot--failed{background:var(--danger)}.timeline__dot--processing{background:var(--warning)}.timeline__body{min-width:0}.timeline__head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.timeline__time{color:var(--ink-3);font-size:11px}.timeline__meta{margin-top:2px;font-size:11.5px;color:var(--ink-3);word-break:break-word}.stat-list{display:flex;flex-direction:column}.stat-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid var(--line-soft);font-size:12px;color:var(--ink-3);min-width:0}.stat-row:last-child{border-bottom:0}.stat-row strong{color:var(--ink);font-weight:500;font-variant-numeric:tabular-nums;text-align:right;overflow:hidden;text-overflow:ellipsis}.share-bar{height:4px;background:var(--surface-3);border-radius:2px;overflow:hidden;min-width:80px}.share-bar span{display:block;height:100%;background:var(--ink-4);border-radius:2px}.summary-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);padding:0;overflow:hidden}.summary-strip__item{display:flex;flex-direction:column;gap:4px;font-size:11.5px;color:var(--ink-3);min-width:0;padding:16px 20px;box-shadow:inset -1px 0 0 var(--line)}.summary-strip__item:last-child{box-shadow:none}.summary-strip__item strong{font-size:22px;line-height:1.15;color:var(--ink);font-weight:500;font-variant-numeric:tabular-nums}.rank-list{display:flex;flex-direction:column;gap:0}.rank-row{display:flex;gap:10px;min-width:0;padding:9px 0;border-bottom:1px solid var(--line-soft)}.rank-row:last-child{border-bottom:0}.rank-row__index{width:16px;flex:0 0 16px;color:var(--ink-4);font-size:11px;padding-top:1px;font-variant-numeric:tabular-nums;font-family:var(--mono)}.rank-row__main{flex:1;min-width:0}.rank-row__top{display:flex;justify-content:space-between;gap:12px;font-size:12px;color:var(--ink)}.rank-row__top .ellipsis{max-width:72%}.rank-row__bar{height:3px;background:var(--surface-3);border-radius:2px;margin:8px 0 6px;overflow:hidden}.rank-row__bar span{display:block;height:100%;background:#cbd3dd;border-radius:2px}.rank-row__sub{display:flex;justify-content:space-between;font-size:11px;color:var(--ink-3);font-variant-numeric:tabular-nums}.chart{min-width:0;display:flex;flex-direction:column;gap:8px}.chart__plot{display:flex;gap:12px;min-width:0}.chart__yaxis{display:flex;flex-direction:column;justify-content:space-between;align-items:flex-end;width:52px;flex:0 0 52px;height:176px}.chart__ytick{font-family:var(--mono);font-size:10.5px;color:var(--ink-4);font-variant-numeric:tabular-nums;line-height:1}.chart__area{position:relative;flex:1;min-width:0}.chart__grid{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:space-between;pointer-events:none}.chart__grid span{display:block;height:1px;background:var(--line-soft)}.chart__grid span:first-child{background:var(--line-strong)}.chart__bars{position:relative;display:flex;align-items:flex-end;gap:6px;height:176px}.chart__col{flex:1 1 0;min-width:0;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;position:relative}.chart__bar{width:100%;max-width:44px;display:flex;align-items:flex-end;background:#dfe3e8;border-radius:2px 2px 0 0;overflow:hidden}.chart__bar i{display:block;width:100%;background:var(--accent);border-radius:2px 2px 0 0}.chart__col:hover .chart__bar{background:#d3d9e0}.chart__xaxis{display:flex;gap:6px;padding-left:64px;margin-top:8px}.chart__xlabel{flex:1 1 0;min-width:0;font-family:var(--mono);font-size:10.5px;color:var(--ink-4);text-align:center;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden}.chart__legend{display:flex;gap:16px;padding-left:64px;margin-top:12px;font-size:11.5px;color:var(--ink-3)}.chart__legend span{display:inline-flex;align-items:center;gap:6px}.legend-swatch{width:8px;height:8px;border-radius:2px;display:inline-block}.legend-swatch--ok{background:var(--accent)}.legend-swatch--rest{background:#dfe3e8}.channel-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);padding:16px 18px;display:flex;flex-direction:column;gap:14px;min-width:0}.channel-card__head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.channel-card__identity{display:flex;gap:0;min-width:0}.channel-card__icon{display:none}.channel-card__name{font-size:14px;font-weight:600;line-height:1.3}.channel-card__meta{display:flex;align-items:center;gap:8px;margin-top:3px;min-width:0}.channel-card__meta code{font-size:11px;color:var(--ink-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.channel-card__stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px}.channel-card__stats div{display:flex;flex-direction:column;gap:2px;min-width:0}.channel-card__stats dt{font-size:11px;color:var(--ink-3)}.channel-card__stats dd{font-size:12.5px;color:var(--ink);margin:0;font-variant-numeric:tabular-nums;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.channel-card__gaps{border-top:1px solid var(--line);padding-top:12px}.channel-card__gaps-head{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--ink-3)}.channel-card__gaps-head .muted{margin-left:auto;font-size:11px;font-variant-numeric:tabular-nums}.gap-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;margin-top:8px;border:1px solid var(--line);border-radius:var(--r-control);overflow:hidden}.gap-grid div{display:flex;flex-direction:column;padding:8px 10px;box-shadow:inset -1px 0 0 var(--line),inset 0 -1px 0 var(--line)}.gap-grid span{font-size:10.5px;color:var(--ink-3)}.gap-grid strong{font-size:15px;font-weight:500;font-variant-numeric:tabular-nums;color:var(--ink)}.channel-card__webhook{display:flex;flex-direction:column;gap:4px;min-width:0}.channel-card__foot{display:flex;align-items:center;gap:14px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:12px;margin-top:auto}.card-grid+.inline-note{margin-top:10px}.channel-list{display:flex;flex-direction:column;padding:6px;gap:2px}.channel-list__item{display:flex;align-items:center;gap:8px;width:100%;padding:8px;border:1px solid transparent;border-radius:6px;background:transparent;text-align:left;min-width:0;transition:background-color var(--t-fast) var(--ease)}.channel-list__item:hover{background:var(--surface-2)}.channel-list__item.is-active{background:var(--accent-soft);border-color:#dbe3ff}.channel-list__icon{color:var(--ink-3);flex:0 0 auto}.channel-list__text{display:flex;flex-direction:column;line-height:1.3;flex:1;min-width:0}.channel-list__text strong{font-size:12px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.channel-list__text span{font-size:10.5px;color:var(--ink-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.settings-layout{display:grid;grid-template-columns:264px minmax(0,1fr);gap:16px;align-items:start}.settings-main{display:flex;flex-direction:column;gap:16px;min-width:0}.secret-list{display:flex;flex-direction:column;gap:10px}.secret-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,1fr);gap:12px;align-items:center}.secret-row__info{display:flex;flex-direction:column;gap:1px;min-width:0}.secret-row__label{font-size:12px;font-weight:500}.secret-row__state{font-size:11px;color:var(--ink-3)}.totp-setup{display:flex;flex-direction:column;gap:10px;border:1px dashed var(--line-strong);border-radius:var(--r-control);padding:12px}.simulate-result{border-top:1px solid var(--line);padding-top:12px;display:flex;flex-direction:column;gap:8px}.simulate-result__head{display:flex;align-items:center;justify-content:space-between;font-size:11.5px;color:var(--ink-3)}.public-shell{min-height:100vh}.login-page{min-height:100vh;display:grid;grid-template-columns:minmax(360px,34%) minmax(0,1fr);background:var(--surface)}.login-aside{background:var(--rail);color:var(--rail-text);display:flex;flex-direction:column;justify-content:space-between;padding:40px 40px 32px;min-width:0}.login-aside__brand{display:flex;align-items:center;gap:12px}.login-aside__name{font-size:15px;font-weight:600;color:#fff;letter-spacing:0}.login-aside__sub{font-size:11.5px;color:var(--rail-muted);margin-top:2px}.login-aside__note{margin-top:28px;font-size:13px;line-height:1.7;color:#cdd4dc;max-width:32ch}.login-aside__facts{display:flex;flex-direction:column;gap:10px;border-top:1px solid var(--rail-line);padding-top:20px}.login-aside__fact{display:flex;align-items:baseline;justify-content:space-between;gap:12px;font-size:11.5px;color:var(--rail-muted)}.login-aside__fact code{color:#d5dbe2;font-size:11px}.login-main{display:flex;align-items:center;justify-content:center;padding:40px 24px;min-width:0}.login-panel{width:100%;max-width:380px;display:flex;flex-direction:column;gap:20px}.login-brand{display:flex;align-items:center;gap:11px}.login-brand__name{font-size:15px;font-weight:600;letter-spacing:0}.login-brand__sub{font-size:11.5px;color:var(--ink-3)}.login-card{display:flex;flex-direction:column;gap:16px}.login-card__head{display:flex;gap:0;align-items:flex-start;flex-direction:column}.login-card__icon{display:none}.login-card__title{font-size:20px;font-weight:600;letter-spacing:-.01em}.login-card__sub{margin-top:6px;font-size:12.5px;color:var(--ink-3);line-height:1.6}.login-form{display:flex;flex-direction:column;gap:14px}.login-form .btn{height:38px;font-size:13px}.login-card__foot{border-top:1px solid var(--line);padding-top:12px;display:flex;flex-direction:column;gap:4px;font-size:11px;color:var(--ink-3);line-height:1.6}.login-foot{display:flex;justify-content:center;gap:8px;font-size:11px;color:var(--ink-4);flex-wrap:wrap}.boot-screen{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;background:var(--page)}.boot-screen__brand{display:flex;align-items:center;gap:10px}.boot-screen__name{font-size:14px;font-weight:600}.boot-screen__row{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--ink-3)}.boot-screen--error{padding:24px}.boot-screen--error .error-state{max-width:640px;width:100%;background:var(--surface)}.route-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:32px 20px;background:var(--page)}.route-card{width:100%;max-width:460px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);padding:28px;display:flex;flex-direction:column;align-items:flex-start;gap:8px}.route-card__icon{color:var(--ink-3);margin-bottom:4px}.route-card__code{font-family:var(--mono);font-size:11px;font-weight:500;letter-spacing:.08em;color:var(--ink-4);margin-top:4px}.route-card__title{font-size:20px;font-weight:600;letter-spacing:-.01em}.route-card__body{font-size:12.5px;color:var(--ink-3);line-height:1.65}.route-card__perm{font-family:var(--mono);font-size:11px;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-xs);padding:3px 6px;color:var(--ink-2)}.route-card__actions{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}.route-card__hint{font-size:11px;color:var(--ink-3)}.tabs{display:flex;align-items:center;gap:4px;border-bottom:1px solid var(--line);overflow-x:auto;margin-bottom:2px}.tabs__item{display:inline-flex;align-items:center;gap:6px;border:0;background:transparent;padding:8px 10px 10px;margin-bottom:-1px;font-size:12.5px;color:var(--ink-3);border-bottom:2px solid transparent;white-space:nowrap;transition:color var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease)}.tabs__item:hover{color:var(--ink)}.tabs__item.is-active{color:var(--ink);border-bottom-color:var(--accent);font-weight:600}.tabs__count{padding:0;background:transparent;color:var(--ink-4);font-size:11px;font-variant-numeric:tabular-nums}.tabs__item.is-active .tabs__count{color:var(--ink-3)}.form-stack>.btn,.form-stack>.row-actions{align-self:flex-start}@media (max-width: 1180px){:root{--rail-w: 200px}.grid--2{grid-template-columns:minmax(0,1fr)}.table-scroll{overflow-x:auto}.table{min-width:1040px}.table thead th{top:0}.content{padding:20px 20px 36px}.header{padding:0 20px}.header__clock{display:none}.grid--routing{grid-template-columns:minmax(0,1fr)}.settings-layout{grid-template-columns:232px minmax(0,1fr)}.toast-stack{left:calc(var(--rail-w) + 20px)}}@media (max-width: 1000px){.summary-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.settings-layout{grid-template-columns:minmax(0,1fr)}.channel-list{flex-direction:row;overflow-x:auto}.channel-list__item{min-width:210px}.user-menu__name{display:none}.login-page{grid-template-columns:minmax(0,1fr)}.login-aside{display:none}}@media (max-width: 760px){:root{--rail-w: 64px}.sidebar{width:64px;flex-basis:64px}.brand{justify-content:center;padding:16px 8px}.brand__text,.nav-group__label,.nav-item span,.sidebar__foot{display:none}.nav-item{justify-content:center;padding:0}.nav-item.is-active:before{left:-8px}.nav-group{margin-bottom:8px}.content{padding:16px 12px 32px}.page-head{flex-direction:column}.page-actions{justify-content:flex-start}.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.detail-grid,.form-grid{grid-template-columns:minmax(0,1fr)}.toast-stack{left:76px;right:12px}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}
