:root{--bg: #F4F2EE;--rail: #ECE9E3;--surface: #FFFFFF;--surface-2: #FAF8F5;--surface-3: #F1EEE8;--line: #E8E4DD;--line-2: #D8D3CA;--ink: #17161B;--ink-2: #45424D;--muted: #6E6975;--faint: #ADA8B3;--dark: #141317;--accent: #2E6BF0;--accent-ink: #1F4FC2;--accent-soft: #EBF1FE;--focus: var(--accent);--ok: #0E7A55;--ok-soft: #E1F5EC;--warn: #B54708;--warn-soft: #FEF0C7;--danger: #D92D20;--danger-ink: #B42318;--danger-soft: #FEF3F2;--r-xs: 6px;--r-sm: 10px;--r: 14px;--r-lg: 18px;--shadow-1: 0 1px 2px rgba(23, 22, 27, .05), 0 0 0 1px rgba(23, 22, 27, .02);--shadow-2: 0 14px 34px -18px rgba(23, 22, 27, .32), 0 2px 6px rgba(23, 22, 27, .05);--shadow-3: 0 24px 60px -20px rgba(10, 9, 12, .55), 0 6px 18px rgba(10, 9, 12, .18);--font-sans: "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;--font-mono: "SF Mono", ui-monospace, Menlo, Consolas, monospace;--mono: var(--font-mono);--text-xs: 12px;--text-sm: 13px;--text-md: 14px;--text-lg: 16px;--text-xl: 20px;--text-2xl: 24px;--ease: cubic-bezier(.2, .8, .2, 1);--sidebar-width: 208px;--sidebar-width-collapsed: 64px;color:var(--ink);background:var(--bg);font-family:var(--font-sans);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}::selection{background:#2e6bf02e;color:var(--ink)}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}*{scrollbar-color:var(--line-2) transparent}*{box-sizing:border-box}html{min-width:320px;min-height:100%;background:var(--bg)}html:has(.app-shell){scrollbar-gutter:stable}body{min-width:320px;min-height:100vh;margin:0;color:var(--ink);background:var(--bg);font-family:var(--font-sans)}button,a{font:inherit}button,a[href]{-webkit-tap-highlight-color:transparent}:where(select,input:not([type=checkbox],[type=radio],[type=file],[type=range]),textarea){min-height:34px;padding:0 10px;border:1px solid var(--line-2);border-radius:var(--r-sm);color:var(--ink);background-color:var(--surface);font:inherit;font-size:13px}:where(textarea){padding-block:8px}:where(select){padding-right:30px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' fill='none'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%236E6975' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 11px center;background-repeat:no-repeat;cursor:pointer}:where(select,input,textarea):hover:not(:disabled){border-color:var(--ink-2)}:where(input[type=checkbox],input[type=radio]){accent-color:var(--ink)}.page-loading{padding:64px 24px;color:var(--muted);font-size:13px;text-align:center}.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.fw-mono{font-family:var(--mono);font-variant-numeric:tabular-nums;letter-spacing:-.01em}.fw-ic{flex:none}.fw-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:38px;padding:0 16px;border-radius:var(--r-sm);border:1px solid transparent;font-size:14px;font-weight:600;white-space:nowrap;text-decoration:none;transition:background .15s,border-color .15s,color .15s,box-shadow .15s,transform .15s}.fw-btn:active:not(:disabled){transform:translateY(1px)}.fw-btn:disabled{opacity:.42}.fw-icon-btn{display:inline-grid;place-items:center;width:30px;height:30px;border:0;border-radius:10px;background:transparent;color:var(--muted)}.fw-icon-btn:hover:not(:disabled){background:#fdecec;color:var(--danger)}.fw-icon-btn:disabled{opacity:.4}.fw-icon-btn.fw-plain:hover:not(:disabled){background:var(--surface-3);color:var(--ink)}.fw-avatar{display:inline-grid;place-items:center;flex:none;width:24px;height:24px;border-radius:50%;background:var(--ink);color:#fff;font-size:12px;font-weight:700}.fw-avatar.fw-sm{width:18px;height:18px;font-size:12px}.fw-seg{display:inline-flex;gap:2px;padding:3px;border-radius:10px;background:var(--surface-3)}.fw-seg-btn{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 12px;border:0;border-radius:10px;background:transparent;color:var(--ink-2);font-size:13px;font-weight:600;white-space:nowrap}.fw-seg-btn:hover:not(:disabled){color:var(--ink)}.fw-seg-btn.fw-on{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px #17161b1f}.fw-seg-btn:disabled{opacity:.45}.fw-seg-btn span{color:var(--muted);font-family:var(--mono);font-size:12px;font-weight:500}.fw-seg-sm .fw-seg-btn{height:28px;padding:0 10px}.fw-block{padding:22px 24px 24px;border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-1)}.fw-block+.fw-block{margin-top:20px}.fw-block-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}.fw-block-title{display:flex;gap:12px;min-width:0}.fw-block-title h2{display:flex;align-items:center;gap:8px;font-size:18px;font-weight:720;letter-spacing:-.01em}.fw-block-title p{margin-top:3px;color:var(--muted);font-size:13px}.fw-block-actions{display:flex;gap:8px;flex:none}.fw-count-pill{padding:0 8px;border-radius:999px;background:var(--surface-3);color:var(--ink-2);font-family:var(--mono);font-size:12px;font-weight:600;line-height:20px}.fw-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.fw-chip{display:inline-flex;align-items:center;gap:7px;height:30px;padding:0 12px;border:1px solid var(--line-2);border-radius:999px;background:var(--surface);color:var(--ink-2);font-size:13px;font-weight:600}.fw-chip i{width:7px;height:7px;border-radius:50%;background:var(--tc)}.fw-chip span{color:var(--muted);font-family:var(--mono);font-size:12px;font-weight:500}.fw-chip:hover{border-color:var(--ink-2);color:var(--ink)}.fw-chip.fw-on{background:var(--ink);border-color:var(--ink);color:#fff}.fw-chip.fw-on span{color:#ffffffb3}.fw-tag{padding:0 6px;border-radius:6px;background:var(--surface-3);color:var(--ink-2);font-size:12px;font-weight:600;line-height:18px}.fw-tag.fw-warn{background:#fef0c7;color:#93370d}.fw-tag.fw-ok{background:#e1f5ec;color:var(--ok)}.fw-tag.fw-danger{background:var(--danger-soft);color:var(--danger-ink)}.fw-tag.fw-info{background:var(--accent-soft);color:var(--accent-ink)}.fw-empty-art{position:relative;flex:none;width:64px;height:48px}.fw-empty-art span{position:absolute;width:26px;height:44px;border-radius:10px;background:#fff;border:1.5px solid var(--line-2)}.fw-empty-art span:nth-child(1){left:0;top:6px;transform:rotate(-8deg)}.fw-empty-art span:nth-child(2){left:18px;top:0;z-index:1;border-color:#e8920c;box-shadow:inset 0 -10px #fdf1dc}.fw-empty-art span:nth-child(3){left:36px;top:6px;transform:rotate(8deg)}.fw-skeleton-row{display:flex;gap:16px}.fw-skeleton-row span{flex:1;height:120px;border-radius:12px;background:linear-gradient(90deg,var(--surface-3),#F8F6F2,var(--surface-3));background-size:200% 100%;animation:fw-shimmer 1.4s linear infinite}.fw-muted-line{margin-top:10px;color:var(--muted);font-size:13px}.fw-empty-inline{padding:28px;border-radius:var(--r);background:var(--surface-2);color:var(--muted);text-align:center;font-size:13px}.fw-load-card{padding:22px;border-radius:var(--r);background:var(--surface-2);border:1px solid var(--line)}.fw-load-card strong{font-size:16px}.fw-load-card>p{margin-top:4px;color:var(--muted);font-size:13px}.fw-load-card.fw-error{background:#fef3f2;border-color:#fecdca}.fw-load-card.fw-error strong{color:#b42318}.fw-load-actions{display:flex;gap:8px;margin-top:14px;justify-content:inherit}.fw-search{display:flex;align-items:center;gap:8px;width:340px;height:40px;padding:0 12px;border:1px solid var(--line-2);border-radius:12px;background:var(--surface);color:var(--muted)}.fw-search:focus-within{border-color:var(--ink)}.fw-search input{flex:1;min-width:0;border:0;outline:0;background:transparent;color:var(--ink);font-size:14px}.fw-lib-empty{display:grid;justify-items:center;gap:8px;padding:56px 20px;border-radius:var(--r-lg);background:var(--surface);border:1.5px dashed var(--line-2);text-align:center}.fw-lib-empty strong{margin-top:6px;font-size:16px}.fw-lib-empty p{max-width:460px;color:var(--muted);font-size:14px}.fw-lib-empty .fw-load-actions{justify-content:center}.fw-lib-empty .fw-empty-art{width:74px;height:60px}.fw-lib-empty .fw-empty-art span{width:32px;height:54px}.fw-lib-empty .fw-empty-art span:nth-child(2){left:21px}.fw-lib-empty .fw-empty-art span:nth-child(3){left:42px}@keyframes fw-shimmer{to{background-position:-200% 0}}.fw-link{padding:0;border:0;background:none;color:var(--ink);font-weight:650;text-decoration:underline;text-decoration-color:var(--line-2);text-underline-offset:3px}.fw-link:hover{text-decoration-color:var(--ink)}.fw-muted{color:var(--muted)}.fw-btn-sm{height:32px;padding:0 12px;font-size:13px;gap:6px}.fw-btn-xs{height:30px;padding:0 10px;font-size:12px;gap:5px;border-radius:10px}.fw-btn-primary{background:var(--ink);color:#fff}.fw-btn-primary:hover:not(:disabled){background:#2a2830}.fw-btn-ghost{background:var(--surface);border-color:var(--line-2);color:var(--ink)}.fw-btn-ghost:hover:not(:disabled){border-color:var(--ink-2)}.fw-btn-soft{background:var(--surface-3);color:var(--ink)}.fw-btn-soft:hover:not(:disabled){background:#e8e4dc}.fw-btn-lg{height:44px;padding:0 20px;font-size:14px;border-radius:12px}.fw-btn-icon{width:38px;padding:0}.fw-btn-icon.fw-danger:hover:not(:disabled){border-color:var(--danger);color:var(--danger)}.page-bar-slot:empty{display:none}.page-bar{position:sticky;top:0;z-index:30;display:flex;flex-wrap:wrap;align-items:center;gap:10px 20px;min-height:60px;padding:10px 28px;background:#f4f2eedb;backdrop-filter:saturate(160%) blur(14px);-webkit-backdrop-filter:saturate(160%) blur(14px);border-bottom:1px solid var(--line)}.page-bar__crumb{display:flex;align-items:center;gap:10px;min-width:0;font-size:14px;white-space:nowrap}.page-bar__mark{display:grid;place-items:center;flex:none;width:30px;height:30px;border-radius:10px;background:var(--ink);color:#fff}.page-bar__icon{width:16px;height:16px;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.page-bar__parent{color:var(--muted)}.page-bar__sep{color:var(--faint)}.page-bar__title{margin:0;overflow:hidden;text-overflow:ellipsis;font-size:14px;font-weight:700}.page-bar__nav{min-width:0}.page-bar__actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-left:auto}.page-bar .fw-seg{flex-wrap:wrap}@media(max-width:760px){.page-bar{position:static;padding:10px 16px}}.fw-seg-btn{text-decoration:none}.fw-seg-btn[aria-current=page]{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px #17161b1f}.fw-seg-btn:hover{text-decoration:none}.fw-block-title h2,.fw-block-title p,.fw-block-head h2,.fw-block-head p{margin:0}.fw-btn-danger-quiet{background:transparent;color:var(--muted)}.fw-btn-danger-quiet:hover:not(:disabled){background:var(--danger-soft);color:var(--danger-ink)}:where(.fw-block,.fw-lib-empty,.fw-load-card) :where(h2,h3,p){margin:0}.fw-block-actions{flex-wrap:wrap;justify-content:flex-end}.fw-btn-danger{background:var(--danger);border-color:var(--danger);color:#fff}.fw-btn-danger:hover:not(:disabled){background:var(--danger-ink);border-color:var(--danger-ink)}.app-shell{display:grid;min-height:100vh;grid-template-columns:var(--sidebar-width) minmax(0,1fr);transition:grid-template-columns .16s ease}.app-shell[data-sidebar-collapsed=true]{grid-template-columns:var(--sidebar-width-collapsed) minmax(0,1fr)}.sidebar{position:sticky;top:0;z-index:5;display:flex;min-width:0;height:100vh;height:100dvh;flex-direction:column;border-right:1px solid var(--line);background:var(--rail)}.brand-lockup{display:flex;min-height:68px;align-items:center;gap:10px;padding:16px 16px 12px}.brand-mark{display:grid;width:32px;min-width:32px;height:32px;place-items:center;border-radius:50%;color:var(--ink);background:var(--surface);box-shadow:var(--shadow-1),inset 0 0 0 1px var(--line)}.brand-mark__icon{width:18px;height:18px;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.brand-wordmark{min-width:0;font-size:16px;font-weight:650;line-height:1.2;white-space:nowrap}.sidebar-views{display:flex;margin:0 10px 8px}.sidebar-views .fw-seg-btn{flex:1;justify-content:center;padding:0 8px}.sidebar-nav{display:flex;min-height:0;flex-direction:column;gap:2px;padding:8px 10px;overflow-y:auto}.nav-item{display:flex;min-height:38px;align-items:center;gap:10px;padding:0 10px;border-radius:var(--r-sm);color:var(--ink-2);background:transparent;font-size:14px;font-weight:500;text-decoration:none;transition:background .15s var(--ease),color .15s var(--ease),box-shadow .15s var(--ease)}.nav-item:hover{color:var(--ink);background:#17161b0a;text-decoration:none}.nav-item--active{color:var(--ink);background:var(--surface);box-shadow:0 1px 3px #17161b1f;font-weight:650}.nav-icon{width:16px;min-width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.nav-item__label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-footer{display:flex;flex-direction:column;gap:8px;margin-top:auto;padding:10px 9px 14px}.collapse-button{display:flex;width:100%;min-height:34px;align-items:center;justify-content:flex-start;gap:10px;padding:0 10px;border:0;border-radius:var(--r-sm);color:var(--muted);background:transparent;font-size:13px;cursor:pointer}.collapse-button:hover{color:var(--ink);background:#17161b0a}.collapse-button b{font-weight:500}.collapse-button__icon[data-collapsed=true]{transform:scaleX(-1)}.sidebar-user{display:flex;min-width:0;align-items:center;gap:10px;padding:12px 2px 0;border-top:1px solid var(--line-2)}.user-avatar{display:grid;width:30px;min-width:30px;height:30px;place-items:center;border-radius:50%;color:var(--surface);background:var(--ink);font-size:12px;font-weight:650}.sidebar-user__copy{display:flex;min-width:0;flex:1;flex-direction:column}.sidebar-user__copy strong,.sidebar-user__copy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-user__copy strong{font-size:13px;font-weight:650}.sidebar-user__copy small{margin-top:2px;color:var(--muted);font-size:12px;-webkit-user-select:text;user-select:text}.sidebar[data-collapsed=true] .brand-lockup{justify-content:center;padding-inline:10px}.sidebar[data-collapsed=true] .brand-wordmark,.sidebar[data-collapsed=true] .nav-item__label,.sidebar[data-collapsed=true] .collapse-button b,.sidebar[data-collapsed=true] .sidebar-user__copy{display:none}.sidebar[data-collapsed=true] .nav-item,.sidebar[data-collapsed=true] .collapse-button,.sidebar[data-collapsed=true] .sidebar-user{justify-content:center}.sidebar[data-collapsed=true] .nav-item,.sidebar[data-collapsed=true] .collapse-button{padding-inline:0}.sidebar[data-collapsed=true] .sidebar-views{flex-direction:column;margin-inline:8px}.sidebar[data-collapsed=true] .sidebar-views .fw-seg-btn{padding:0}.app-main{min-width:0;background:var(--bg)}.page{max-width:1120px;padding:22px 28px 40px}.page--wide{max-width:1560px}.page--narrow{max-width:760px}a.page-bar__parent{text-decoration:none}a.page-bar__parent:hover{color:var(--ink)}@media(max-width:820px){:root{--sidebar-width: 168px}}@media(max-width:760px){.page{padding:16px 16px 36px}}@media(max-width:560px){:root{--sidebar-width: 148px}.page .fw-block{padding:18px 16px 20px}}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:grid;place-items:center;padding:24px;background:#1413176b;overflow-y:auto}.modal-card{width:100%;max-width:460px;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow-3)}.modal-card--wide{width:min(680px,calc(100vw - 32px));max-width:none}.modal-card__header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 20px 14px 24px;border-bottom:1px solid var(--line)}.modal-card__title{margin:0;font-size:18px;font-weight:650}.modal-card__close{display:inline-flex;width:32px;min-width:32px;height:32px;align-items:center;justify-content:center;padding:0;border:0;border-radius:var(--r-sm);color:var(--muted);background:transparent;cursor:pointer;transition:background .15s var(--ease),color .15s var(--ease)}.modal-card__close svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round}.modal-card__close:hover{color:var(--ink);background:var(--surface-3)}.modal-card__close:active{transform:translateY(1px)}.modal-card__body{padding:20px 24px 24px}.modal-overlay--drawer{justify-content:flex-end;padding:0}.modal-card--drawer{width:min(720px,100vw);max-width:100vw;height:100dvh;max-height:100dvh;border-radius:0;margin:0;display:flex;flex-direction:column}.modal-card--drawer .modal-card__body{overflow-y:auto;min-height:0}.confirm-dialog{display:grid;gap:10px}.confirm-dialog__message{margin:0;font-size:14px;font-weight:650;line-height:1.6}.confirm-dialog__detail{margin:0;color:var(--ink-2);font-size:13px;line-height:1.7}.confirm-dialog__actions{display:flex;justify-content:flex-end;gap:10px;margin-top:4px}.pagination{display:flex;gap:8px;align-items:center;justify-content:flex-end;margin-top:14px}.pagination__range{margin-right:auto;color:var(--muted);font-size:13px;font-variant-numeric:tabular-nums;white-space:nowrap}.pagination__page{font-family:var(--font-mono);font-size:13px;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}.status-pill{display:inline-flex;align-items:center;padding:0 6px;border-radius:var(--r-xs);color:var(--ink-2);background:var(--surface-3);font-size:12px;font-weight:600;line-height:20px;white-space:nowrap}.status-pill--history{color:var(--accent-ink);background:var(--accent-soft)}.status-pill--new{color:var(--ink);background:var(--surface);box-shadow:inset 0 0 0 1px var(--line-2)}.status-pill--success{color:var(--ok);background:var(--ok-soft)}.status-pill--danger{color:var(--danger-ink);background:var(--danger-soft)}.status-pill--warning{color:#93370d;background:var(--warn-soft)}.status-pill--primary,.status-pill--source{color:var(--accent-ink);background:var(--accent-soft)}.fw-block.table-panel{padding:0;overflow:hidden}.table-panel>.fw-block-head{margin:0;padding:18px 24px 16px}.table-scroll{overflow-x:auto;border-top:1px solid var(--line)}.data-table{width:100%;min-width:640px;border-collapse:collapse;font-size:13px}.data-table th{height:40px;padding:0 16px;border-bottom:1px solid var(--line);color:var(--muted);background:var(--surface-2);font-size:12px;font-weight:600;text-align:left;white-space:nowrap}.data-table td{padding:8px 16px;border-bottom:1px solid var(--line);vertical-align:middle}.data-table tbody tr{height:52px}.data-table tbody tr:last-child td{border-bottom:0}.data-table tbody tr:hover{background:var(--surface-2)}.data-table th:first-child,.data-table td:first-child{padding-left:24px}.data-table th:last-child,.data-table td:last-child{padding-right:24px}.data-table .numeric{text-align:right;white-space:nowrap}.cell-primary{min-width:0}.cell-primary strong,.cell-primary small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cell-primary strong{font-size:13px;font-weight:650}.cell-primary small{margin-top:1px;color:var(--muted);font-family:var(--font-mono);font-size:12px}.cell-note{margin-top:3px;color:var(--muted);font-size:12px;white-space:nowrap}.table-message{padding:40px 18px;border-top:1px solid var(--line);color:var(--muted);font-size:13px;text-align:center}.table-more{display:flex;justify-content:center;padding:14px;border-top:1px solid var(--line)}@media(max-width:560px){.table-panel>.fw-block-head{padding:16px}.data-table th:first-child,.data-table td:first-child{padding-left:16px}.data-table th:last-child,.data-table td:last-child{padding-right:16px}}.alert{margin-bottom:16px;padding:10px 14px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface-2);font-size:13px;font-weight:500}.alert--danger{color:var(--danger-ink);background:var(--danger-soft);border-color:#fecdca}.form-stack{display:grid;max-width:400px;gap:16px}.form-field{display:grid;gap:6px}.form-field>label{color:var(--ink-2);font-size:13px;font-weight:600}.form-input{width:100%;min-height:40px;font-size:14px}.form-hint{margin:0;color:var(--muted);font-size:12px}.form-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.form-error{margin:0;padding:9px 12px;border-radius:var(--r-sm);color:var(--danger-ink);background:var(--danger-soft);font-size:13px;line-height:1.6}.form-ok{margin:0;color:var(--ok);font-size:13px;font-weight:600}.kv-list{display:grid;margin:0}.kv-row{display:grid;min-height:52px;grid-template-columns:112px minmax(0,1fr);align-items:center;gap:16px;padding:8px 0;border-top:1px solid var(--line)}.kv-row:first-child{border-top:0}.kv-row dt{color:var(--muted);font-size:13px}.kv-row dt label{color:inherit}.kv-row dd{min-width:0;margin:0;font-size:14px;overflow-wrap:anywhere}.kv-row .form-input{max-width:360px}.kv-row .form-hint{margin-top:6px}@media(max-width:560px){.kv-row{grid-template-columns:minmax(0,1fr);gap:4px}}.search-box input{height:100%;min-height:0;padding:0}.search-box input::-webkit-search-cancel-button{display:none}.search-box__icon{width:16px;height:16px;stroke:currentColor;stroke-width:1.6;stroke-linecap:round}.fw-icon-btn.search-box__clear{width:24px;height:24px;margin-right:-6px;border-radius:var(--r-xs)}.search-box__clear svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round}.switch{position:relative;display:inline-flex;flex:none;width:36px;height:20px;padding:0;border:0;border-radius:999px;background:var(--line-2);cursor:pointer;transition:background .15s var(--ease)}.switch:hover:not(:disabled){background:var(--faint)}.switch__thumb{position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:var(--surface);box-shadow:0 1px 2px #17161b3d;transition:transform .15s var(--ease)}.switch--on,.switch--on:hover:not(:disabled){background:var(--ink)}.switch--on .switch__thumb{transform:translate(16px)}.switch:disabled{opacity:.42;cursor:not-allowed}.switch--on:disabled{opacity:.55}.switch[aria-disabled=true],.fw-btn[aria-disabled=true]{opacity:.6;cursor:progress}.fw-block-head.panel-toolbar{flex-wrap:wrap;align-items:center}.panel-toolbar__search{flex:0 1 340px}.panel-toolbar__count{margin-left:auto;color:var(--muted);font-size:13px;white-space:nowrap}.panel-toolbar__count b{color:var(--ink);font-weight:650}.cell-stack{min-width:0}.cell-stack strong,.cell-stack small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cell-stack strong{font-size:13px;font-weight:650}.cell-stack small{margin-top:1px;color:var(--muted);font-size:12px}.table-scroll[aria-busy=true]{opacity:.6;transition:opacity .15s var(--ease)}.table-empty{display:grid;justify-items:center;gap:6px;padding:40px 20px;border-top:1px solid var(--line);text-align:center}.table-empty strong{font-size:14px;font-weight:650}.table-empty p{margin:0;color:var(--muted);font-size:13px}.table-empty .fw-btn{margin-top:8px}@media(max-width:560px){.data-table.card-rows{display:block;min-width:0;table-layout:auto}.card-rows thead{display:none}.card-rows tbody{display:block}.data-table.card-rows tbody tr{display:grid;height:auto;align-items:center;padding:12px 16px;border-bottom:1px solid var(--line)}.data-table.card-rows tbody tr:last-child{border-bottom:0}.data-table.card-rows td,.data-table.card-rows td:first-child,.data-table.card-rows td:last-child{display:block;padding:0;border:0}.card-rows td[data-label]:before{content:attr(data-label) " "}}.kv-inline{display:inline-flex;flex-wrap:wrap;align-items:center;gap:6px 10px}@media(max-width:560px){.panel-toolbar__search{flex:1 1 100%;width:auto}.panel-toolbar__count{margin-left:0}}.profile-error{margin-top:12px}.profile-actions{margin-top:16px}.lh-loading span{height:168px;border-radius:var(--r-lg)}.lh-brand .fw-block-title h2{flex-wrap:wrap}.lh-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px 24px}.lh-stat{display:grid;min-width:0;align-content:start;gap:4px}.lh-stat__label{color:var(--muted);font-size:12px}.lh-stat__value{overflow:hidden;font-size:20px;font-weight:650;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.lh-stat__note{color:var(--muted);font-size:12px;word-break:keep-all}.lh-stat__note--danger{color:var(--danger-ink)}.lh-meter{height:6px;margin-top:18px;overflow:hidden;border-radius:999px;background:var(--surface-3)}.lh-meter>span{display:block;height:100%;border-radius:inherit;background:var(--accent);transition:width .25s var(--ease)}.lh-meter--full>span{background:var(--danger)}.lh-pool{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin:18px 0 0;padding:10px 14px;border-radius:var(--r-sm);background:var(--surface-2);color:var(--muted);font-size:13px}.lh-pool strong{color:var(--ink);font-size:15px;font-weight:650}.lh-mode{display:flex;align-items:center;gap:8px;margin:0 0 16px;color:var(--muted);font-size:13px}.fw-chips.lh-filters{margin:0;padding:0 24px 16px}.lh-holds-error{padding:0 24px 24px}.lh-holds td,.lh-adjustments td{font-size:13px}.lh-when{width:120px;color:var(--ink-2);white-space:nowrap}.lh-node{white-space:nowrap}.lh-amount--void{color:var(--muted);text-decoration:line-through}.lh-amount--trial{color:var(--muted)}.ledger-closed{padding:40px 28px}@media(max-width:760px){.lh-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.lh-stat__value{font-size:17px}.lh-brand .fw-block-head{flex-wrap:wrap}.lh-brand .fw-block-actions{justify-content:flex-start}}@media(max-width:400px){.lh-stat__value{font-size:16px;white-space:normal}}@media(max-width:560px){.fw-chips.lh-filters{padding:0 16px 14px}.lh-holds-error{padding:0 16px 16px}}.data-table.user-table{table-layout:fixed}.user-table th:nth-child(1){width:28%}.user-table th:nth-child(2){width:96px}.user-table th:nth-child(3){width:104px}.user-table th:nth-child(5){width:172px}.user-row{cursor:pointer}.user-row__link{display:block;min-width:0;color:inherit;text-decoration:none}.user-row:hover .user-row__link strong{text-decoration:underline;text-decoration-color:var(--line-2);text-underline-offset:3px}.user-row--disabled .user-row__who{opacity:.6}.user-row__login{white-space:nowrap}.user-row__status--ok{color:var(--ink-2)}.role-chips{display:flex;flex-wrap:wrap;gap:4px 6px}.role-chip{display:inline-flex;align-items:center;gap:4px;padding:0 7px;border-radius:var(--r-xs);color:var(--ink-2);background:var(--surface);box-shadow:inset 0 0 0 1px var(--line-2);font-size:12px;font-weight:600;line-height:20px;white-space:nowrap}.role-chip b{font-weight:600}.role-chip--admin{color:#fff;background:var(--ink);box-shadow:none}.role-chip--admin b{color:#ffffffb8}@media(max-width:560px){.data-table.user-table tbody tr{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"who status" "roles roles" "login member";gap:8px 12px;padding:14px 16px}.user-row__who{grid-area:who}.user-row__status{grid-area:status;justify-self:end}.user-row__roles{grid-area:roles}.user-row__login{grid-area:login;color:var(--muted);font-size:12px}.user-row__member{grid-area:member;justify-self:end}.data-table.user-table td.user-row__member--no,.data-table.user-table td.user-row__status--ok{display:none}}.user-loading span{height:360px;border-radius:var(--r-lg)}.kv-list.profile-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(4,auto);grid-auto-flow:column;column-gap:40px}.profile-grid .kv-row:nth-child(5){border-top:0}@media(max-width:900px){.kv-list.profile-grid{grid-template-columns:minmax(0,1fr);grid-template-rows:none;grid-auto-flow:row}.profile-grid .kv-row:nth-child(5){border-top:1px solid var(--line)}}@media(max-width:560px){.profile-grid .kv-row,.access-list .kv-row{grid-template-columns:76px minmax(0,1fr);gap:12px}}.user-status-error{margin-bottom:12px}.access-list .kv-row{align-items:start}.access-list .kv-row dt{padding-top:8px}.access-line{display:flex;min-height:36px;flex-wrap:wrap;align-items:center;gap:6px 14px}.access-line select{width:148px}.access-line select[aria-disabled=true]{opacity:.6;cursor:progress}.access-note{color:var(--muted);font-size:13px}.access-list .form-hint{margin-top:2px}.access-error{margin-top:8px}.invite-form{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px 14px}.invite-form select,.invite-form input{min-height:38px;font-size:14px}.invite-form select{min-width:132px}.invite-form__email{flex:0 1 300px}.invite-form__email input{width:100%}.invite-form__uses input{width:96px}.invite-link{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin-top:16px;padding:10px 14px;border-radius:var(--r-sm);background:var(--surface-2)}.invite-link code{min-width:0;flex:1;font-family:var(--font-mono);font-size:12px;word-break:break-all}.invite-link__expiry{color:var(--muted);font-size:12px;white-space:nowrap}@media(max-width:560px){.invite-form .form-field{flex:1 1 140px}.invite-form select,.invite-form input,.invite-form__uses input{width:100%}.invite-form__submit{flex:1 1 100%}.data-table.invite-table tbody tr{grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"system email state" "used expires action";gap:6px 10px}.data-table.invite-table td{text-align:left}.invite-row__system{grid-area:system;font-weight:650;white-space:nowrap}.invite-row__email{grid-area:email;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.invite-row__state{grid-area:state;justify-self:end}.invite-row__used{grid-area:used;color:var(--muted);font-size:12px}.invite-row__expires{grid-area:expires;color:var(--muted);font-size:12px;white-space:nowrap}.invite-row__action{grid-area:action;justify-self:end}.data-table.invite-table td.invite-row__created{display:none}}.fw-block-head.audit-filters{flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:10px 12px}.audit-filters__range{flex:none}.audit-filters__actor{flex:0 1 300px}.audit-filters select{height:40px;min-width:132px;max-width:240px;border-radius:12px}.audit-filters__target{max-width:260px}.audit-filters__target svg{width:12px;height:12px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}.data-table.audit-table{table-layout:fixed}.audit-table th:nth-child(1){width:164px}.audit-table th:nth-child(2){width:18%}.audit-table th:nth-child(4){width:18%}.audit-table th:nth-child(5){width:120px}.audit-table th:nth-child(6){width:13%}.audit-table--compact th:nth-child(2){width:28%}.audit-table--compact th:nth-child(4){width:120px}.audit-dropped{margin:0;padding:10px 24px;border-top:1px solid var(--line);color:var(--warn);background:var(--warn-soft);font-size:13px}.audit-row{cursor:pointer}.audit-row__open{display:block;max-width:100%;overflow:hidden;padding:0;border:0;color:var(--ink);background:none;font-size:13px;font-weight:650;text-align:left;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}.audit-row:hover .audit-row__open{text-decoration:underline;text-decoration-color:var(--line-2);text-underline-offset:3px}.audit-row__when{color:var(--ink-2);font-size:12px;white-space:nowrap}.audit-row__request{overflow:hidden;color:var(--muted);font-size:12px;text-overflow:ellipsis;white-space:nowrap}@media(max-width:560px){.audit-filters__actor{flex:1 1 100%}.audit-filters select{min-width:0;max-width:none;flex:1 1 calc(50% - 6px)}.data-table.audit-table tbody tr{grid-template-columns:fit-content(50%) minmax(0,1fr) auto;grid-template-areas:"action action result" "actor target target" "when when when";gap:4px 6px}.data-table.audit-table--compact tbody tr{grid-template-areas:"action action result" "actor actor actor" "when when when"}.audit-row__action{grid-area:action}.audit-row__result{grid-area:result;justify-self:end;text-align:right}.audit-row__actor{grid-area:actor}.audit-row__target{grid-area:target}.audit-row__when{grid-area:when;color:var(--muted)}.audit-row__actor small,.audit-row__target small,.data-table.audit-table td.audit-row__request,.data-table.audit-table td.audit-row__target--none{display:none}.audit-row__actor strong,.audit-row__target strong{color:var(--ink-2);font-weight:500}.audit-row__target:before{float:left;margin-right:6px;color:var(--faint);content:"→"}}.audit-detail{display:grid;gap:20px}.audit-detail .kv-row{min-height:44px;grid-template-columns:88px minmax(0,1fr)}.audit-detail .kv-row dd{font-size:13px}.audit-party{display:inline-flex;flex-wrap:wrap;align-items:baseline;gap:2px 8px}.audit-party small{color:var(--muted);font-size:12px}.audit-result{display:inline-flex;flex-wrap:wrap;align-items:center;gap:6px 10px}.audit-request h3{margin:0 0 8px;font-size:14px;font-weight:650}.audit-request pre{max-height:420px;margin:0;overflow:auto;padding:12px 14px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface-2);font-size:12px;line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere}.audit-request p{margin:0;font-size:13px}.nav-group{display:flex;flex-direction:column;gap:2px;margin-top:8px;padding-top:8px;border-top:1px solid var(--line-2)}.nav-group__label{padding:2px 10px 4px;overflow:hidden;color:var(--muted);font-size:12px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.sidebar[data-collapsed=true] .nav-group__label{display:none}.ledger-notice{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;margin:0 0 16px;padding:10px 14px;border-radius:var(--r-sm);background:var(--ok-soft);color:var(--ok);font-size:13px;font-weight:600}.ledger-notice .fw-link{color:inherit;font-size:12px}.ledger-page .search-box{width:280px}.table-message__title{display:block;margin-bottom:4px;color:var(--ink);font-size:14px}.table-link{color:var(--ink);font-weight:650;text-decoration:none}.table-link:hover{text-decoration:underline;text-decoration-color:var(--line-2);text-underline-offset:3px}.stat-value--danger{color:var(--danger-ink)}.amount--credit{color:var(--ok)}.amount--muted{color:var(--muted)}.amount--danger{color:var(--danger-ink);font-weight:650}.cell-actions-head{width:1%}.cell-actions{display:flex;justify-content:flex-end;gap:6px}.person-tag{margin-left:6px;vertical-align:1px}.island-badges{display:flex;flex-wrap:wrap;gap:4px}.members-table{min-width:880px}.members-table__row--disabled .cell-primary{opacity:.55}.entries-table{min-width:980px}.entries__person{max-width:200px}.entries__project{min-width:150px}.entries__remark{min-width:160px;max-width:320px}.entries__member-filter{max-width:240px}.sync-status{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:8px 12px;min-width:0;color:var(--muted);font-size:13px}.sync-status__last{display:inline-flex;align-items:center;gap:8px;min-width:0;max-width:620px}.sync-status__detail{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sync-status__error{max-width:460px;overflow:hidden;color:var(--danger-ink);text-overflow:ellipsis;white-space:nowrap}.admin-brands{min-width:1100px}.admin-brands__row--no-admin td{background:#fffaeb}.admin-brands__row--no-admin:hover td{background:#fef5da}.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:20px}.detail-grid>.fw-block{margin-top:0}.detail-grid+.fw-block{margin-top:20px}.kv-value{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}.mode-switch{flex-wrap:wrap}.brand-admins{display:grid;margin:0;padding:0;list-style:none}.brand-admins>li{padding:10px 0;border-top:1px solid var(--line)}.brand-admins>li:first-child{padding-top:0;border-top:0}.brand-admins__none{color:#93370d}.nodes-table{min-width:1080px}.charging-cell{display:flex;align-items:center;gap:8px}.rates-table{min-width:860px}.rates-table__row--inactive td{color:var(--muted)}.costs-range{align-items:center}.costs-range__field{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:13px}.costs-range__field input{min-height:32px;font-family:var(--font-mono)}.costs-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;padding:0 24px 16px}.costs-toolbar__hint{color:var(--muted);font-size:12px}.costs-table{min-width:1140px}.costs-table__label{max-width:260px}.costs-table__total{height:52px}.costs-table tfoot td{border-top:1px solid var(--line-2);background:var(--surface-2);font-weight:650}.costs-legend{margin:0;padding:12px 24px 16px;border-top:1px solid var(--line);color:var(--muted);font-size:12px}.holds-table{min-width:1100px}.holds-table__brand{max-width:160px}.holds-table__ref{max-width:240px}.holds-table__ref .table-link{font-weight:500}.dialog-form{display:grid;gap:16px}.dialog-form__actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px;margin-top:4px}.dialog-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px}.choice-list{display:grid;min-width:0;gap:6px;margin:0;padding:0;border:0}.choice{display:flex;min-height:40px;align-items:center;gap:10px;padding:8px 12px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface);font-size:14px;cursor:pointer;transition:border-color .15s var(--ease),background .15s var(--ease)}.choice:hover{border-color:var(--line-2)}.choice--on{border-color:var(--ink);background:var(--surface-2)}.choice input{margin:0}.choice__text{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 10px}.choice__text small{color:var(--muted);font-size:12px}.amount-row{display:flex;align-items:center;gap:10px}.amount-row .form-input{min-width:0;flex:1}.amount-row__equals{flex:none;color:var(--muted);font-size:13px;white-space:nowrap}.amount-row__equals strong{color:var(--ink);font-size:15px;font-weight:650}.field-error{margin:0;color:var(--danger-ink);font-size:12px}.dialog-note{margin:0;padding:8px 12px;border-radius:var(--r-sm);background:var(--warn-soft);color:#93370d;font-size:13px}.dialog-preview{margin:0;padding:10px 14px;border-radius:var(--r-sm);background:var(--surface-2);color:var(--ink-2);font-size:13px;line-height:1.6}.dialog-preview strong{color:var(--ink);font-size:15px;font-weight:650}.dialog-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0;padding:12px 14px;border-radius:var(--r-sm);background:var(--surface-2)}.dialog-facts--wide{grid-template-columns:repeat(2,minmax(0,1fr))}.dialog-facts dt{color:var(--muted);font-size:12px}.dialog-facts dd{margin:2px 0 0;font-size:14px;font-weight:600;overflow-wrap:anywhere}.dialog-facts dd small{margin-left:6px;color:var(--muted);font-family:var(--font-sans);font-size:12px;font-weight:500}@media(max-width:1100px){.detail-grid{grid-template-columns:minmax(0,1fr)}}@media(max-width:760px){.ledger-page .fw-block-head{flex-wrap:wrap}.ledger-page .fw-block-head>.fw-block-actions{min-width:0;flex:1 1 100%;justify-content:flex-start}.ledger-page .fw-block-actions select{min-width:0;max-width:none;flex:1 1 auto}.ledger-page .search-box{width:100%}.sync-status{justify-content:flex-start}.sync-status__last,.sync-status__error{max-width:100%}}@media(max-width:560px){.costs-toolbar{padding:0 16px 14px}.costs-legend{padding:12px 16px 14px}.dialog-grid{grid-template-columns:minmax(0,1fr)}.amount-row{flex-wrap:wrap}}.user-langhua{min-width:860px}.auth-page{display:flex;min-height:100vh;min-height:100dvh;align-items:center;justify-content:center;padding:32px 16px}.auth-card{width:100%;max-width:400px;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow-1)}.auth-card__head{display:flex;align-items:center;gap:10px;padding:14px 24px;border-bottom:1px solid var(--line)}.auth-card__brand{font-size:16px;font-weight:650;line-height:1.2}.auth-card__body{padding:22px 24px 24px}.auth-title{margin:0 0 18px;font-size:20px;font-weight:650;line-height:1.3}.fw-seg.auth-tabs{display:flex;margin-bottom:20px}.auth-tabs .fw-seg-btn{flex:1;justify-content:center}.auth-code{display:grid;gap:6px}.auth-code-row{display:flex;align-items:flex-end;gap:8px}.auth-code-row .form-field{min-width:0;flex:1}.auth-code-row .fw-btn{min-width:132px;height:40px;flex:none;font-variant-numeric:tabular-nums}.auth-submit{width:100%}.auth-skip{margin:0;text-align:center}@media(max-width:560px){.auth-card__head{padding:12px 20px}.auth-card__body{padding:20px 20px 22px}}@media(max-width:560px),(pointer:coarse){.auth-card .form-input{font-size:16px}}
