.ic[data-v-91008532]{display:block;flex:0 0 auto}.ic-spin[data-v-91008532]{animation:ic-spin-91008532 .9s linear infinite;transform-origin:50% 50%}@keyframes ic-spin-91008532{to{transform:rotate(360deg)}}body:has(.login-wrap){padding-bottom:0}.eb-fallback[data-v-2bf04343]{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px 16px}.eb-card[data-v-2bf04343]{width:100%;max-width:360px}.eb-ico[data-v-2bf04343]{color:var(--warn);opacity:1}.eb-msg[data-v-2bf04343]{background:var(--card-2);border:1px solid var(--line-2);border-radius:var(--r-sm);padding:8px 10px;font-size:11px;line-height:1.6;color:var(--text-2);word-break:break-word}.eb-acts[data-v-2bf04343]{display:flex;gap:8px;margin-top:12px}.eb-acts .btn[data-v-2bf04343]{flex:1}.eb-hint[data-v-2bf04343]{margin-top:10px;font-size:11px;color:var(--text-3);text-align:center}:root{color-scheme:light;--ds-blue-50: #e8f2ff;--ds-blue-100: #cfe5ff;--ds-blue-200: #9fcbff;--ds-blue-300: #66abff;--ds-blue-400: #2e8dff;--ds-blue-500: #007aff;--ds-blue-600: #0064d6;--ds-blue-700: #004fad;--ds-blue-800: #003b82;--ds-gray-50: #ffffff;--ds-gray-100: #f7f7fa;--ds-gray-200: #f2f2f7;--ds-gray-300: #e5e5ea;--ds-gray-400: #d1d1d6;--ds-gray-500: #aeaeb2;--ds-gray-600: #8e8e93;--ds-gray-700: #6e6e73;--ds-gray-800: #3a3a3c;--ds-gray-900: #1c1c1e;--ds-black: #000000;--ds-background: #f5f5f7;--ds-background-2: #ffffff;--ds-card: #ffffff;--ds-card-2: #f7f7fa;--ds-card-foreground: #1d1d1f;--ds-popover: #ffffff;--ds-text: #1d1d1f;--ds-text-2: #6e6e73;--ds-text-3: #8e8e93;--ds-text-inverse: #ffffff;--ds-muted: #f2f2f7;--ds-primary: #007aff;--ds-primary-strong: #0064d6;--ds-primary-soft: #e8f2ff;--ds-primary-line: #cfe5ff;--ds-primary-contrast: #ffffff;--ds-border: #e5e5ea;--ds-border-strong: #d1d1d6;--ds-input: #d1d1d6;--ds-ring: #007aff;--ds-success: #34c759;--ds-success-text: #248a3d;--ds-success-surface: #e9f9ee;--ds-warning: #ff9500;--ds-warning-text: #a05a00;--ds-warning-surface: #fff4e5;--ds-danger: #ff3b30;--ds-danger-text: #d70015;--ds-danger-surface: #ffecea;--ds-info: #007aff;--ds-info-surface: #e8f2ff;--ds-up: #d70015;--ds-down: #248a3d;--ds-chart-1: #30d158;--ds-chart-2: #007aff;--ds-chart-3: #ff9500;--ds-chart-4: #5e5ce6;--ds-chart-5: #bf5af2;--ds-font-sans: "DM Sans", -apple-system, BlinkMacSystemFont, "SF Pro Text", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--ds-font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--ds-fs-11: 11px;--ds-fs-12: 12px;--ds-fs-13: 13px;--ds-fs-15: 15px;--ds-fs-17: 17px;--ds-fs-20: 20px;--ds-fs-24: 24px;--ds-fs-30: 30px;--ds-lh-tight: 1.25;--ds-lh-body: 1.55;--ds-lh-loose: 1.7;--ds-fw-regular: 400;--ds-fw-medium: 500;--ds-fw-semibold: 600;--ds-fw-bold: 700;--ds-space-1: 4px;--ds-space-2: 8px;--ds-space-3: 12px;--ds-space-4: 16px;--ds-space-5: 24px;--ds-space-6: 32px;--ds-space-7: 48px;--ds-radius: 1.2rem;--ds-radius-pill: 999px;--ds-radius-sm: 12px;--ds-radius-md: 16px;--ds-container: 1080px;--ds-tap: 44px;--ds-shadow-card: 0 1px 2px rgba(0, 0, 0, .04), 0 1px 3px -1px rgba(0, 0, 0, .05);--ds-shadow-float: 0 8px 24px -8px rgba(0, 0, 0, .1), 0 4px 8px -4px rgba(0, 0, 0, .05);--ds-shadow-overlay: 0 24px 64px -12px rgba(0, 0, 0, .18);--ds-overlay: rgba(0, 0, 0, .32);--ds-on-color: #ffffff;--ds-ease: cubic-bezier(.32, .72, 0, 1);--ds-dur-fast: .15s;--ds-dur: .25s;--ds-dur-slow: .35s}:root[data-theme=dark]{color-scheme:dark;--ds-background: #000000;--ds-background-2: #1c1c1e;--ds-card: #1c1c1e;--ds-card-2: #2c2c2e;--ds-card-foreground: #f5f5f7;--ds-popover: #2c2c2e;--ds-text: #f5f5f7;--ds-text-2: #aeaeb2;--ds-text-3: #8e8e93;--ds-text-inverse: #000000;--ds-muted: #2c2c2e;--ds-primary: #2e8dff;--ds-primary-strong: #66abff;--ds-primary-soft: rgba(46, 141, 255, .16);--ds-primary-line: rgba(46, 141, 255, .35);--ds-primary-contrast: #000000;--ds-border: #3a3a3c;--ds-border-strong: #48484a;--ds-input: #48484a;--ds-ring: #2e8dff;--ds-success: #30d158;--ds-success-text: #30d158;--ds-success-surface: rgba(48, 209, 88, .14);--ds-warning: #ff9f0a;--ds-warning-text: #ff9f0a;--ds-warning-surface: rgba(255, 159, 10, .14);--ds-danger: #ff453a;--ds-danger-text: #ff453a;--ds-danger-surface: rgba(255, 69, 58, .14);--ds-info: #2e8dff;--ds-info-surface: rgba(46, 141, 255, .16);--ds-up: #ff453a;--ds-down: #30d158;--ds-chart-1: #30d158;--ds-chart-2: #2e8dff;--ds-chart-3: #ff9f0a;--ds-chart-4: #5e5ce6;--ds-chart-5: #bf5af2;--ds-shadow-card: 0 1px 2px rgba(0, 0, 0, .36), 0 1px 3px -1px rgba(0, 0, 0, .36);--ds-shadow-float: 0 8px 24px -8px rgba(0, 0, 0, .5), 0 4px 8px -4px rgba(0, 0, 0, .4);--ds-shadow-overlay: 0 24px 64px -12px rgba(0, 0, 0, .6);--ds-overlay: rgba(0, 0, 0, .55)}:root{--brand: #17a262;--brand-dark: #0f7a49;--brand-soft: #e9f6ef;--brand-line: #c3e6d3;--bg: #f4f6f5;--card: #ffffff;--card-2: #fafbfa;--text: #17251e;--text-2: #5a6b63;--text-3: #64726b;--line: #e6ebe8;--line-2: #f0f3f1;--warn: #b45309;--warn-bg: #fef6e7;--warn-line: #f6dfae;--danger: #c0392b;--danger-bg: #fdeeec;--danger-line: #f3c9c3;--info: #1b6bc9;--info-bg: #eef4fd;--info-line: #c9ddf7;--up: #d33a2c;--down: #17a262;--r-sm: 8px;--r: 12px;--r-lg: 16px;--shadow: 0 1px 2px rgba(23, 37, 30, .05), 0 1px 8px rgba(23, 37, 30, .04);--shadow-lg: 0 -4px 24px rgba(23, 37, 30, .1);--tab-h: 54px;--safe-b: env(safe-area-inset-bottom, 0px);--safe-t: env(safe-area-inset-top, 0px);--z-toast: 90;--z-sheet: 60;--z-undo: 55;--z-offline: 50;--z-tab: 40;--z-header: 30;--z-dock: 20;--z-float: 2}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-size:15px;line-height:1.55;font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Helvetica Neue,Arial,sans-serif;-webkit-font-smoothing:antialiased;overscroll-behavior-y:none}#app{min-height:100vh}body{padding-bottom:calc(var(--tab-h) + var(--safe-b))}body.no-tab{padding-bottom:0}input,textarea,button,select{font-family:inherit;font-size:inherit;color:inherit}a{color:var(--brand-dark);text-decoration:none}button{cursor:pointer;border:none;background:none}.num,.tnum{font-variant-numeric:tabular-nums}.page{padding:12px 12px 22px;max-width:680px;margin:0 auto}.stack>*+*{margin-top:10px}.row{display:flex;align-items:center;gap:8px}.row-between{display:flex;align-items:center;justify-content:space-between;gap:8px}.wrap{flex-wrap:wrap}.grow{flex:1 1 auto;min-width:0}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.mt6{margin-top:6px}.mt10{margin-top:10px}.mt16{margin-top:16px}.tc{text-align:center}.tr{text-align:right}.appbar{position:sticky;top:0;z-index:var(--z-header);padding:calc(var(--safe-t) + 10px) 12px 10px;background:#f4f6f5ed;-webkit-backdrop-filter:saturate(180%) blur(12px);backdrop-filter:saturate(180%) blur(12px);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:10px}.appbar h1{font-size:17px;font-weight:650;margin:0;letter-spacing:.2px}.appbar .sub{font-size:11px;color:var(--text-3);font-weight:400;margin-top:1px}.appbar .acts{margin-left:auto;display:flex;gap:2px}.icon-btn{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;color:var(--text-2);font-size:17px}.icon-btn:active{background:var(--line-2)}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:12px;box-shadow:var(--shadow)}.card.tight{padding:10px}.card.flat{box-shadow:none}.card-title{font-size:13px;font-weight:620;color:var(--text);display:flex;align-items:center;gap:6px;margin-bottom:8px}.card-title .tag{margin-left:auto;font-weight:400}.metric .label{font-size:11px;color:var(--text-3)}.metric .value{font-size:21px;font-weight:680;letter-spacing:-.4px;line-height:1.2}.metric .value.sm{font-size:17px}.metric .unit{font-size:12px;font-weight:500;color:var(--text-2);margin-left:2px}.metric .delta{font-size:11px;font-weight:600}.delta.up{color:var(--up)}.delta.down{color:var(--brand-dark)}.delta.flat{color:var(--text-3)}.badge{display:inline-flex;align-items:center;gap:3px;font-size:10px;font-weight:600;line-height:1;padding:3px 6px;border-radius:5px;background:var(--line-2);color:var(--text-2);vertical-align:middle;white-space:nowrap}.badge.brand{background:var(--brand-soft);color:var(--brand-dark)}.badge.warn{background:var(--warn-bg);color:var(--warn)}.badge.danger{background:var(--danger-bg);color:var(--danger)}.badge.info{background:var(--info-bg);color:var(--info)}.badge.ghost{background:transparent;border:1px solid var(--line);color:var(--text-3)}.warnbar{display:flex;gap:8px;align-items:flex-start;font-size:12px;line-height:1.45;padding:8px 10px;border-radius:var(--r-sm);background:var(--warn-bg);color:var(--warn);border:1px solid var(--warn-line)}.warnbar.danger{background:var(--danger-bg);color:var(--danger);border-color:var(--danger-line)}.warnbar.info{background:var(--info-bg);color:var(--info);border-color:var(--info-line)}.warnbar .ico{flex:0 0 auto;font-size:13px;line-height:1.35}.offline-bar{border-radius:0;position:sticky;top:0;z-index:var(--z-offline)}.meta-foot{margin-top:8px}.meta-foot summary{list-style:none;cursor:pointer;font-size:11px;color:var(--text-3);display:flex;align-items:center;gap:4px}.meta-foot summary::-webkit-details-marker{display:none}.meta-foot summary:before{content:"ⓘ";font-size:11px}.meta-foot[open] summary{color:var(--brand-dark)}.meta-foot .body{margin-top:6px;padding:8px 10px;background:var(--card-2);border:1px solid var(--line-2);border-radius:var(--r-sm);font-size:11px;color:var(--text-2);line-height:1.65}.meta-foot .body b{color:var(--text);font-weight:600}.meta-foot .body .k{color:var(--text-3)}.card{position:relative}.meta-ico{margin-left:auto;width:20px;height:20px;border-radius:50%;color:var(--text-3);font-size:12px;line-height:1;display:grid;place-items:center;flex:0 0 auto}.meta-ico-float{position:absolute;top:9px;right:9px;margin-left:0;z-index:var(--z-float);background:var(--card);border:1px solid var(--line)}.meta-ico:active{background:var(--line-2)}.meta-sheet-body{font-size:12.5px;color:var(--text-2);line-height:1.8}.meta-sheet-body>div+div{margin-top:6px}.meta-sheet-body b{color:var(--text);font-weight:600}.meta-sheet-body .k{color:var(--text-3)}.list{display:flex;flex-direction:column}.list-item{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--line-2)}.list-item:last-child{border-bottom:none}.list-item.on{background:var(--brand-soft);border-radius:var(--r-sm);padding-left:8px;padding-right:8px}.list-item .t{font-size:14px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.list-item .s{font-size:11px;color:var(--text-3);margin-top:1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.list-item .r{margin-left:auto;text-align:right;flex:0 0 auto;font-size:13px}.bar-row{display:grid;gap:3px;padding:7px 0}.bar-row+.bar-row{border-top:1px solid var(--line-2)}.bar-row .top{display:flex;align-items:baseline;gap:8px;font-size:13px}.bar-row .top .n{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bar-row .top .v{margin-left:auto;font-weight:620;font-variant-numeric:tabular-nums}.bar-row .track{height:5px;background:var(--line-2);border-radius:3px;overflow:hidden}.bar-row .fill{height:100%;background:var(--brand-dark);border-radius:3px;transition:width .4s ease}.bar-row .fill.warn{background:var(--warn)}.bar-row .fill.danger{background:var(--danger)}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:var(--z-tab);height:calc(var(--tab-h) + var(--safe-b));padding-bottom:var(--safe-b);display:grid;grid-template-columns:repeat(3,1fr);background:#fffffff7;-webkit-backdrop-filter:saturate(180%) blur(12px);backdrop-filter:saturate(180%) blur(12px);border-top:1px solid var(--line)}.tabbar a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:var(--text-3);font-size:11px;font-weight:500}.tabbar a.on{color:var(--brand-dark);font-weight:650}.tabbar .ti{height:20px;line-height:1}.tabbar .ti-img{width:20px;height:20px;border-radius:50%;object-fit:cover;background:var(--card-2)}.tabbar a.on .ti-img{box-shadow:none}.aisrc{display:inline-flex;align-items:center;gap:2px;font-size:10px;color:var(--brand-dark);background:var(--brand-soft);border-radius:4px;padding:1px 4px;font-weight:500}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:38px;padding:0 14px;border-radius:10px;background:var(--line-2);color:var(--text);font-size:14px;font-weight:550}.btn:active{opacity:.7}.btn.primary{background:var(--brand-dark);color:#fff}.btn.ghost{background:transparent;border:1px solid var(--line)}.btn.danger{background:var(--danger-bg);color:var(--danger)}.btn.block{width:100%}.btn.sm{height:30px;padding:0 10px;font-size:12px;border-radius:8px}.btn[disabled]{opacity:.45;pointer-events:none}.field{display:block}.field .lb{font-size:12px;color:var(--text-2);margin-bottom:5px;font-weight:550}.field .hint{font-size:11px;color:var(--text-3);margin-top:4px;line-height:1.5}.input,.select,.textarea{width:100%;height:40px;padding:0 11px;background:var(--card-2);border:1px solid var(--line);border-radius:10px;outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.input:focus,.select:focus,.textarea:focus{border-color:var(--brand-line);background:#fff}.textarea{height:auto;min-height:76px;padding:10px 11px;resize:vertical;line-height:1.5}.select{padding-right:30px}.switch{position:relative;width:44px;height:26px;flex:0 0 auto;display:inline-block}.switch input{position:absolute;opacity:0;width:100%;height:100%;margin:0;z-index:var(--z-float)}.switch .track{position:absolute;top:0;right:0;bottom:0;left:0;background:#cfd8d3;border-radius:13px;transition:.2s}.switch .thumb{position:absolute;top:3px;left:3px;width:20px;height:20px;background:#fff;border-radius:50%;transition:.2s;box-shadow:0 1px 3px #0003}.switch input:checked~.track{background:var(--brand)}.switch input:checked~.thumb{transform:translate(18px)}.sheet-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-sheet);background:#101a1557;display:flex;align-items:flex-end;animation:fade .16s ease}.sheet{width:100%;max-height:88vh;overflow-y:auto;-webkit-overflow-scrolling:touch;background:var(--card);border-radius:var(--r-lg) var(--r-lg) 0 0;box-shadow:var(--shadow-lg);padding:6px 14px calc(20px + var(--safe-b));animation:slide .2s cubic-bezier(.2,.8,.3,1)}.sheet .grab{width:34px;height:4px;background:var(--line);border-radius:2px;margin:6px auto 10px}.sheet h3{font-size:15px;margin:0 0 12px;font-weight:650}@keyframes fade{0%{opacity:0}}@keyframes slide{0%{transform:translateY(16px);opacity:.6}}.seg{display:flex;gap:4px;background:var(--line-2);padding:3px;border-radius:10px}.seg button{flex:1;height:30px;border-radius:8px;font-size:12px;font-weight:550;color:var(--text-2);white-space:nowrap}.seg button.on{background:#fff;color:var(--text);font-weight:650;box-shadow:0 1px 3px #00000012}.chips{display:flex;gap:6px;overflow-x:auto;padding-bottom:2px;padding-right:4px;scroll-padding-right:4px;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch}.chips::-webkit-scrollbar{display:none}.chip{flex:0 0 auto;height:28px;padding:0 11px;border-radius:14px;scroll-snap-align:start;font-size:12px;font-weight:550;color:var(--text-2);background:var(--card);border:1px solid var(--line)}.chip.on{background:var(--brand-dark);border-color:var(--brand-dark);color:#fff}.empty{text-align:center;padding:34px 16px;color:var(--text-3)}.empty .ico{font-size:30px;opacity:.5}.empty .m{font-size:13px;margin-top:8px;color:var(--text-2)}.empty .h{font-size:11.5px;margin-top:4px;opacity:.85;line-height:1.6}.skel{background:linear-gradient(90deg,var(--line-2) 25%,#e9eeeb 37%,var(--line-2) 63%);background-size:400% 100%;animation:shimmer 1.3s ease infinite;border-radius:6px;height:14px}@keyframes shimmer{0%{background-position:100% 50%}to{background-position:0 50%}}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:24px}.login-card{width:100%;max-width:340px}.login-logo{width:56px;height:56px;border-radius:16px;margin:0 auto 14px;background:var(--brand);color:#fff;display:grid;place-items:center;font-size:25px;font-weight:700;box-shadow:0 6px 18px #17a2624d}.toast-host{position:fixed;left:0;right:0;bottom:calc(var(--tab-h) + var(--safe-b) + 14px);z-index:var(--z-toast);display:flex;flex-direction:column;align-items:center;gap:6px;pointer-events:none;padding:0 16px}.toast{max-width:100%;padding:8px 14px;border-radius:10px;background:#17251eeb;color:#fff;font-size:13px;line-height:1.45;box-shadow:0 4px 16px #0003;animation:fade .16s ease}.toast.ok{background:#0f7a49f2}.toast.bad{background:#c0392bf2}.spin{display:inline-block;width:12px;height:12px;border:2px solid var(--brand-line);border-top-color:var(--brand);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media (min-width: 700px){body{padding-bottom:0;padding-top:var(--tab-h)}body.no-tab{padding-top:0}body.no-tab .appbar,body.no-tab .offline-bar{top:0}#app{min-height:calc(100vh - var(--tab-h))}body.no-tab #app{min-height:100vh}.tabbar{position:fixed;top:0;bottom:auto;height:var(--tab-h)}.appbar,.offline-bar{top:var(--tab-h)}}@media (min-width: 900px){.tabbar{max-width:1080px;margin:0 auto}.appbar{padding-left:max(12px,calc((100% - 1080px)/2 + 12px));padding-right:max(12px,calc((100% - 1080px)/2 + 12px))}.page{max-width:1080px}.cols{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:start}}.cols>.stack+.stack{margin-top:10px}@media (min-width: 900px){.cols>.stack+.stack{margin-top:0}}html,body,button,a,.btn,.icon-btn,.chip,.seg button,.switch,.card,.list-item,.tap,.badge,.row-between,input,select,textarea,[role=button]{touch-action:manipulation}:root{--ctrl-visual-scale: .875}.input,.select,.textarea,input[type=text],input[type=search],input[type=password],input[type=number],input[type=email],input[type=tel],input[type=url],select,textarea{font-size:16px;transform:scale(var(--ctrl-visual-scale));transform-origin:left center;width:calc(100% / var(--ctrl-visual-scale));margin-right:calc(100% - 100% / var(--ctrl-visual-scale))}.input,.select{height:calc(40px / var(--ctrl-visual-scale))}.textarea{min-height:calc(76px / var(--ctrl-visual-scale))}.switch input{font-size:inherit;transform:none;width:100%;height:100%;margin-right:0}.tap:active,.tabbar a:active,.chip:active,.seg button:active,.list-item:active,.act-btn:active{transform:scale(.98);opacity:.9;transition:transform .1s ease,opacity .1s ease}html.gesture-moving .tap:active,html.gesture-moving .tabbar a:active,html.gesture-moving .list-item:active,html.gesture-moving .act-btn:active,html.gesture-moving .card:active{transform:none;opacity:1}.tap{cursor:pointer}.warnbar .ico{display:inline-flex;align-items:center;justify-content:center}.warnbar .ico svg{flex:0 0 auto}.empty .ico{display:flex;align-items:center;justify-content:center}.icon-btn,.meta-ico{display:grid;place-items:center}.act-btn.on svg{fill:currentColor}.inline-empty{display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:var(--r);background:var(--card);border:1px solid var(--line);font-size:12.5px;color:var(--text-2);line-height:1.4}.inline-empty>svg{color:var(--text-3);flex:0 0 auto}.inline-empty.ok{background:var(--brand-soft);border-color:var(--brand-line);color:var(--brand-dark)}.inline-empty.ok>svg{color:var(--brand)}.inline-empty .ie-act{margin-left:auto;font-size:12px;font-weight:600;white-space:nowrap}.inline-empty .ie-meta{margin-left:6px}.act-btn,.fb-btn,.meta-ico,.icon-btn,.seg button{position:relative}.act-btn:before,.fb-btn:before,.meta-ico:before,.icon-btn:before,.seg button:before,.pw-toggle:before{content:"";position:absolute;top:50%;left:50%;width:44px;height:44px;min-width:100%;min-height:100%;transform:translate(-50%,-50%);border-radius:50%}.meta-ico-float:before{width:34px;height:34px}.btn,.row-between.tap,.switch{position:relative}.btn:after,.row-between.tap:after,.switch:after{content:"";position:absolute;top:50%;left:50%;width:max(100%,44px);height:44px;transform:translate(-50%,-50%)}.page-meta summary{position:relative}.page-meta summary:after{content:"";position:absolute;top:50%;left:50%;width:max(100%,44px);height:44px;transform:translate(-50%,-50%)}.meta-ico.meta-ico-float{position:absolute;top:9px;right:9px;margin-left:0}.card:has(.meta-ico-float){padding-right:34px}:focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:6px}@media (hover: hover) and (pointer: fine){a:focus-visible,button:focus-visible,.tap:focus-visible,.chip:focus-visible,.seg button:focus-visible,.input:focus-visible,.select:focus-visible,.textarea:focus-visible{outline:2px solid var(--brand);outline-offset:2px}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.spin,.ic-spin{animation:spin 1.6s linear infinite!important}}.pw-toggle{position:absolute;right:4px;top:50%;transform:translateY(-50%);height:32px;min-width:46px;padding:0 6px;border-radius:8px;color:var(--text-3);font-size:12.5px;white-space:nowrap;line-height:1}.pw-toggle:active{background:var(--line-2)}.page-meta{margin-top:4px}.page-meta summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:5px;font-size:11px;color:var(--text-3);padding:6px 9px;border-radius:var(--r-sm);background:var(--card-2);border:1px dashed var(--line)}.page-meta summary::-webkit-details-marker{display:none}.page-meta summary svg{flex:0 0 auto}.page-meta summary:active{background:var(--line-2)}.page-meta .pm-count{margin-left:auto;flex:0 0 auto;font-weight:600;color:var(--brand-dark);background:var(--brand-soft);border-radius:5px;padding:2px 6px}.page-meta[open] summary{color:var(--brand-dark);background:var(--brand-soft);border-style:solid;border-color:var(--brand-line)}.page-meta .body{margin-top:6px;padding:2px 10px;background:var(--card-2);border:1px solid var(--line-2);border-radius:var(--r-sm);font-size:11px;color:var(--text-2);line-height:1.65}.page-meta .pm-row{padding:7px 0}.page-meta .pm-row+.pm-row{border-top:1px solid var(--line-2)}.page-meta .pm-head b{color:var(--text);font-weight:600}.page-meta .pm-warn{color:var(--warn);margin-left:6px}.page-meta .pm-meta{color:var(--text-3);margin-top:1px}.page-meta .pm-meta .k{color:var(--text-3);margin-right:2px}.page-meta .pm-meta>span+span{margin-left:10px}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;font-size:16px}:root{--brand: var(--ds-primary);--brand-dark: var(--ds-primary);--brand-soft: var(--ds-primary-soft);--brand-line: var(--ds-primary-line)}body.ds-theme{margin:0;background:var(--ds-background);color:var(--ds-text);font-family:var(--ds-font-sans);-webkit-font-smoothing:antialiased}body.ds-theme .tabbar{background:color-mix(in srgb,var(--ds-card) 92%,transparent);border-top:1px solid var(--ds-border);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}body.ds-theme .tabbar a{color:var(--ds-text-3);font-family:var(--ds-font-sans);font-size:var(--ds-fs-11)}body.ds-theme .tabbar a.on{color:var(--ds-primary)}body.ds-theme .tabbar a.on .ti-img{box-shadow:none}body.ds-theme .toast{background:var(--ds-text);color:var(--ds-text-inverse);border-radius:var(--ds-radius-pill);font-family:var(--ds-font-sans)}body.ds-theme .toast.ok{background:var(--ds-success-text);color:var(--ds-on-color)}body.ds-theme .toast.bad{background:var(--ds-danger-text);color:var(--ds-on-color)}.ds{--brand: var(--ds-primary);--brand-dark: var(--ds-primary-strong);--brand-soft: var(--ds-primary-soft);--brand-line: var(--ds-primary-line);--bg: var(--ds-background);--card: var(--ds-card);--card-2: var(--ds-card-2);--text: var(--ds-text);--text-2: var(--ds-text-2);--text-3: var(--ds-text-3);--line: var(--ds-border);--line-2: var(--ds-border);--warn: var(--ds-warning-text);--warn-bg: var(--ds-warning-surface);--warn-line: color-mix(in srgb, var(--ds-warning) 35%, transparent);--danger: var(--ds-danger-text);--danger-bg: var(--ds-danger-surface);--danger-line: color-mix(in srgb, var(--ds-danger) 35%, transparent);--info: var(--ds-primary);--info-bg: var(--ds-primary-soft);--info-line: var(--ds-primary-line);--up: var(--ds-up);--down: var(--ds-down);--r-sm: var(--ds-radius-sm);--r: var(--ds-radius);--r-lg: var(--ds-radius-md);--shadow: var(--ds-shadow-card);--shadow-lg: var(--ds-shadow-float);min-height:100vh;background:var(--ds-background);color:var(--ds-text);font-family:var(--ds-font-sans);font-size:var(--ds-fs-15);line-height:var(--ds-lh-body)}.ds a{color:var(--ds-primary);text-decoration:none}.ds button,.ds input,.ds select,.ds textarea{font:inherit;color:inherit}.ds :focus-visible{outline:2px solid var(--ds-ring);outline-offset:2px}.ds ::selection{background:var(--ds-primary-soft)}.ds .page{max-width:none;margin:0;padding:0}.ds .appbar{display:none}.ds .badge,.ds .aisrc,.ds .tmeta,.ds .act-meta{font-size:var(--ds-fs-11)}.ds-page{width:100%;max-width:var(--ds-container);margin:0 auto;padding:var(--ds-space-4) var(--ds-space-4) var(--ds-space-6)}@media (min-width: 900px){.ds-page{padding:var(--ds-space-5) var(--ds-space-6) var(--ds-space-7)}}.ds-stack>*+*{margin-top:var(--ds-space-3)}.ds-row{display:flex;align-items:center;gap:var(--ds-space-2)}.ds-between{display:flex;align-items:center;justify-content:space-between;gap:var(--ds-space-2)}.ds-grow{flex:1 1 auto;min-width:0}.ds-grid2{display:grid;grid-template-columns:1fr 1fr;gap:var(--ds-space-3)}.ds-grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--ds-space-2)}.ds-cols{display:grid;gap:var(--ds-space-3)}@media (min-width: 900px){.ds-cols{grid-template-columns:1fr 1fr;gap:var(--ds-space-4);align-items:start}}.ds-mt-2{margin-top:var(--ds-space-2)}.ds-mt-3{margin-top:var(--ds-space-3)}.ds-mt-4{margin-top:var(--ds-space-4)}.ds-title{margin:0;font-size:var(--ds-fs-17);line-height:var(--ds-lh-tight);font-weight:var(--ds-fw-semibold);letter-spacing:0}.ds-heading{margin:0;font-size:var(--ds-fs-20);line-height:var(--ds-lh-tight);font-weight:var(--ds-fw-semibold);letter-spacing:0}.ds-text{font-size:var(--ds-fs-15);line-height:var(--ds-lh-body)}.ds-sub{font-size:var(--ds-fs-13);line-height:var(--ds-lh-body);color:var(--ds-text-2)}.ds-muted{color:var(--ds-text-2)}.ds-caption{font-size:var(--ds-fs-11);line-height:var(--ds-lh-body);color:var(--ds-text-3)}.ds-label{font-size:var(--ds-fs-11);line-height:1.2;font-weight:var(--ds-fw-medium);color:var(--ds-text-2)}.ds-num{font-variant-numeric:tabular-nums;letter-spacing:0}.ds-value{font-size:var(--ds-fs-24);line-height:1.15;font-weight:var(--ds-fw-semibold);font-variant-numeric:tabular-nums}.ds-value-sm{font-size:var(--ds-fs-17);line-height:1.2;font-weight:var(--ds-fw-semibold);font-variant-numeric:tabular-nums}.ds-delta.up{color:var(--ds-up)}.ds-delta.down{color:var(--ds-down)}.ds-delta.flat{color:var(--ds-text-3)}.ds-dot{width:8px;height:8px;border-radius:50%;flex:0 0 auto;background:var(--ds-border-strong)}.ds-dot.ok{background:var(--ds-success)}.ds-dot.bad{background:var(--ds-danger)}.ds-metric .ds-value{margin-top:2px}.ds-badge{display:inline-flex;align-items:center;gap:4px;min-height:20px;padding:2px 8px;border-radius:var(--ds-radius-pill);background:var(--ds-muted);color:var(--ds-text-2);font-size:var(--ds-fs-11);line-height:1.15;font-weight:var(--ds-fw-semibold);white-space:nowrap}.ds-badge-primary{background:var(--ds-primary-soft);color:var(--ds-primary-strong)}.ds-badge-success{background:var(--ds-success-surface);color:var(--ds-success-text)}.ds-badge-warning{background:var(--ds-warning-surface);color:var(--ds-warning-text)}.ds-badge-danger{background:var(--ds-danger-surface);color:var(--ds-danger-text)}.ds-badge-ghost{background:transparent;border:1px solid var(--ds-border);color:var(--ds-text-3)}.ds-note{padding:var(--ds-space-3) var(--ds-space-4);border:1px solid var(--ds-border);border-radius:var(--ds-radius);background:var(--ds-card);color:var(--ds-text-2);font-size:var(--ds-fs-13);line-height:var(--ds-lh-body)}.ds-note strong{color:var(--ds-text);font-weight:var(--ds-fw-semibold)}.ds-note-warning{background:var(--ds-warning-surface);border-color:color-mix(in srgb,var(--ds-warning) 30%,transparent);color:var(--ds-warning-text)}.ds-note-danger{background:var(--ds-danger-surface);border-color:color-mix(in srgb,var(--ds-danger) 30%,transparent);color:var(--ds-danger-text)}.ds-note-success{background:var(--ds-success-surface);border-color:color-mix(in srgb,var(--ds-success) 30%,transparent);color:var(--ds-success-text)}.ds-inline-empty{display:flex;align-items:center;gap:var(--ds-space-2);min-height:var(--ds-tap);padding:0 var(--ds-space-4);border:1px solid var(--ds-border);border-radius:var(--ds-radius);background:var(--ds-card);color:var(--ds-text-2);font-size:var(--ds-fs-13)}.ds-inline-empty.is-ok{background:var(--ds-success-surface);border-color:color-mix(in srgb,var(--ds-success) 30%,transparent);color:var(--ds-success-text)}.ds-check{width:var(--ds-tap);height:var(--ds-tap);flex:0 0 auto;display:grid;place-items:center;padding:0;border:0;background:transparent;cursor:pointer}.ds-check:before{content:"";width:24px;height:24px;border:2px solid var(--ds-border-strong);border-radius:50%;background:transparent;transition:background var(--ds-dur-fast) var(--ds-ease),border-color var(--ds-dur-fast) var(--ds-ease)}.ds-check.on:before{background:var(--ds-primary);border-color:var(--ds-primary)}.ds-progress{height:6px;border-radius:var(--ds-radius-pill);background:var(--ds-muted);overflow:hidden}.ds-progress>i{display:block;height:100%;border-radius:inherit;background:var(--ds-primary);transition:width var(--ds-dur) var(--ds-ease)}.ds-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--ds-space-2);min-height:var(--ds-tap);padding:0 20px;border:1px solid transparent;border-radius:var(--ds-radius-pill);background:transparent;color:var(--ds-text);font-family:var(--ds-font-sans);font-size:var(--ds-fs-15);font-weight:var(--ds-fw-semibold);line-height:1;white-space:nowrap;cursor:pointer;text-decoration:none;transition:background-color var(--ds-dur-fast) var(--ds-ease),border-color var(--ds-dur-fast) var(--ds-ease),color var(--ds-dur-fast) var(--ds-ease),opacity var(--ds-dur-fast) var(--ds-ease)}.ds-btn-primary{background:var(--ds-primary);color:var(--ds-primary-contrast)}.ds-btn-primary:hover{background:var(--ds-primary-strong)}.ds-btn-secondary{background:var(--ds-muted);color:var(--ds-text)}.ds-btn-secondary:hover{background:var(--ds-border)}.ds-btn-ghost{background:transparent;border-color:var(--ds-border);color:var(--ds-text)}.ds-btn-ghost:hover{background:var(--ds-muted)}.ds-btn-text{min-height:36px;padding:0 8px;color:var(--ds-primary)}.ds-btn-text:hover{background:var(--ds-primary-soft)}.ds-btn-danger{background:var(--ds-danger-surface);color:var(--ds-danger-text)}.ds-btn-sm{min-height:36px;padding:0 14px;font-size:var(--ds-fs-13)}.ds-btn-lg{min-height:52px;padding:0 28px;font-size:var(--ds-fs-17)}.ds-btn-icon{width:var(--ds-tap);min-width:var(--ds-tap);padding:0}.ds-btn.ds-btn-icon{height:var(--ds-tap);min-height:var(--ds-tap)}.ds-btn-block{width:100%}.ds-btn[disabled],.ds-btn:disabled{opacity:.42;pointer-events:none}.ds a.ds-btn{color:var(--ds-text)}.ds a.ds-btn-primary{color:var(--ds-primary-contrast)}.ds a.ds-btn-secondary,.ds a.ds-btn-ghost{color:var(--ds-text)}.ds a.ds-btn-text{color:var(--ds-primary)}.ds a.ds-btn-danger{color:var(--ds-danger-text)}.ds-btn-sm{position:relative}.ds-btn-sm:after{content:"";position:absolute;top:50%;left:50%;width:max(100%,44px);height:44px;transform:translate(-50%,-50%)}.ds .card{background:var(--ds-card);color:var(--ds-text);border:1px solid var(--ds-border);border-radius:var(--ds-radius);box-shadow:var(--ds-shadow-card);padding:var(--ds-space-4)}.ds .card.tight{padding:var(--ds-space-3)}.ds .card:has(.meta-ico-float){padding-right:34px}.ds .card.flat{box-shadow:none}.ds .card-title{font-size:var(--ds-fs-15);font-weight:var(--ds-fw-semibold);color:var(--ds-text);margin-bottom:var(--ds-space-3)}.ds .card-title .tag{font-size:var(--ds-fs-11);font-weight:var(--ds-fw-regular);color:var(--ds-text-3)}.ds .metric .label{font-size:var(--ds-fs-11);color:var(--ds-text-3)}.ds .metric .value{font-size:var(--ds-fs-24);font-weight:var(--ds-fw-semibold);letter-spacing:0;color:var(--ds-text)}.ds .metric .value.sm{font-size:var(--ds-fs-17)}.ds .metric .unit{font-size:var(--ds-fs-12);color:var(--ds-text-2)}.ds .delta{font-size:var(--ds-fs-11)}.ds .badge{min-height:20px;padding:2px 8px;border-radius:var(--ds-radius-pill);background:var(--ds-muted);color:var(--ds-text-2);font-size:var(--ds-fs-11);line-height:1.15;font-weight:var(--ds-fw-semibold)}.ds .badge.brand{background:var(--ds-primary-soft);color:var(--ds-primary-strong)}.ds .badge.warn{background:var(--ds-warning-surface);color:var(--ds-warning-text)}.ds .badge.danger{background:var(--ds-danger-surface);color:var(--ds-danger-text)}.ds .badge.info{background:var(--ds-info-surface);color:var(--ds-primary-strong)}.ds .badge.ghost{background:transparent;border:1px solid var(--ds-border);color:var(--ds-text-3)}.ds .list-item{min-height:48px;padding:var(--ds-space-3) 0;gap:var(--ds-space-3);border-color:var(--ds-border)}.ds .list-item .t{font-size:var(--ds-fs-15);line-height:var(--ds-lh-body);white-space:normal}.ds .list-item .s{font-size:var(--ds-fs-11);color:var(--ds-text-3);white-space:normal}.ds .list-item .r{font-size:var(--ds-fs-13);color:var(--ds-text-2)}.ds .btn{min-height:var(--ds-tap);padding:0 20px;border-radius:var(--ds-radius-pill);font-size:var(--ds-fs-15);font-weight:var(--ds-fw-semibold);box-shadow:none}.ds .btn.primary{background:var(--ds-primary);color:var(--ds-primary-contrast)}.ds .btn.ghost{background:transparent;border:1px solid var(--ds-border);color:var(--ds-text)}.ds .btn.danger{background:var(--ds-danger-surface);color:var(--ds-danger-text)}.ds .btn.sm{min-height:36px;padding:0 14px;font-size:var(--ds-fs-13)}.ds .btn.sm{position:relative}.ds .btn.sm:after{content:"";position:absolute;top:50%;left:50%;width:max(100%,44px);height:44px;transform:translate(-50%,-50%)}.ds .icon-btn{width:var(--ds-tap);height:var(--ds-tap);border-radius:var(--ds-radius-pill);color:var(--ds-text-2)}.ds .icon-btn:active{background:var(--ds-muted)}.ds .chips{gap:var(--ds-space-2);padding-right:var(--ds-space-3)}.ds .chip{min-height:var(--ds-tap);padding:0 18px;border-radius:var(--ds-radius-pill);background:var(--ds-card);border:1px solid var(--ds-border);color:var(--ds-text-2);font-size:var(--ds-fs-13);font-weight:var(--ds-fw-semibold)}.ds .chip.on{background:var(--ds-primary);border-color:var(--ds-primary);color:var(--ds-primary-contrast)}.ds .seg{background:var(--ds-muted);border-radius:var(--ds-radius-pill);padding:2px}.ds .seg button{min-height:var(--ds-tap);border-radius:var(--ds-radius-pill);font-size:var(--ds-fs-13);font-weight:var(--ds-fw-semibold);color:var(--ds-text-2)}.ds .seg button.on{background:var(--ds-card);color:var(--ds-text);box-shadow:var(--ds-shadow-card)}.ds .input,.ds .select,.ds .textarea{min-height:var(--ds-tap);border-radius:var(--ds-radius-sm);border-color:var(--ds-input);background:var(--ds-card);color:var(--ds-text)}.ds .input:focus,.ds .select:focus,.ds .textarea:focus{border-color:var(--ds-ring);background:var(--ds-card)}.ds .field .lb{font-size:var(--ds-fs-11);color:var(--ds-text-2)}.ds .field .hint{font-size:var(--ds-fs-11);color:var(--ds-text-3)}.ds .bar-row .track{height:6px;border-radius:var(--ds-radius-pill);background:var(--ds-muted)}.ds .bar-row .fill{background:var(--ds-primary);border-radius:inherit}.ds .warnbar{border-radius:var(--ds-radius-sm);font-size:var(--ds-fs-13)}.ds .inline-empty{min-height:var(--ds-tap);border-radius:var(--ds-radius);font-size:var(--ds-fs-13)}.ds .sheet-mask{background:var(--ds-overlay)}.ds .sheet{background:var(--ds-card);color:var(--ds-text);border-radius:var(--ds-radius) var(--ds-radius) 0 0;box-shadow:var(--ds-shadow-overlay)}.ds .sheet h3{font-size:var(--ds-fs-17)}.ds .meta-foot,.ds .page-meta{font-size:var(--ds-fs-11)}@media (prefers-reduced-motion: reduce){.ds *,.ds *:before,.ds *:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
