*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--brand: #0E7C61;--brand-dark: #0A5C48;--brand-light: #ECF4F1;--color-background-primary: #ffffff;--color-background-secondary: #f1f1f0;--color-background-tertiary: #f6f6f5;--color-text-primary: #1a1a1e;--color-text-secondary: #1a1a1e;--color-text-tertiary: #1a1a1e;--color-border-tertiary: #e2e2e6;--color-border-secondary: #d4d4d8;--ok: #1f7a4d;--ok-wash: #eef5f0;--warn: #9a6a16;--warn-wash: #f6f1e6;--info: #1f5d97;--info-wash: #eaf1f8;--bad: #a33a3a;--bad-wash: #f7edec;--border-radius-md: 5px;--border-radius-lg: 7px;--border-radius-xl: 10px;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, "SFMono-Regular", "Menlo", "Consolas", monospace;--fs-2xs: 12px;--fs-xs: 13px;--fs-sm: 14px;--fs-md: 14px;--fs-base: 15px;--fs-lg: 16px;--fs-xl: 18px;--fs-2xl: 20px;--fs-stat: 30px;--lh-tight: 1.4;--lh-base: 1.6;--lh-loose: 1.7;--sidebar-w: 232px}@media (prefers-color-scheme: dark){:root{--brand: #2bb086;--brand-dark: #46c79e;--brand-light: #11332a;--color-background-primary: #1a1a1c;--color-background-secondary: #242427;--color-background-tertiary: #131315;--color-text-primary: #f4f4f5;--color-text-secondary: #a1a1aa;--color-text-tertiary: #82828c;--color-border-tertiary: #323236;--color-border-secondary: #424248;--ok-wash: #15271d;--warn-wash: #2a2316;--info-wash: #16222e;--bad-wash: #2c1a1a}}html,body{height:100%;font-family:var(--font-sans);font-size:15px;line-height:1.6;background:var(--color-background-tertiary);color:var(--color-text-primary);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}#app{height:100%}.mono,.num{font-family:var(--font-mono);font-feature-settings:"tnum" 1;letter-spacing:-.01em}::selection{background:var(--brand-light);color:var(--brand-dark)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:7px 14px;border-radius:var(--border-radius-md);font-size:14px;font-weight:500;line-height:1;font-family:var(--font-sans);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;text-decoration:none;color:var(--color-text-primary);background:var(--color-background-primary);border:1px solid var(--color-border-secondary);transition:background .14s ease,border-color .14s ease,color .14s ease,filter .14s ease,transform .04s ease}.btn:hover{background:var(--color-background-secondary);border-color:var(--color-text-tertiary)}.btn:active{transform:translateY(1px)}.btn:focus-visible{outline:2px solid var(--brand);outline-offset:1px}.btn i{font-size:15px;line-height:1}.btn:disabled,.btn[disabled],.btn.is-disabled,.btn.is-loading{opacity:.55;cursor:not-allowed}.btn:disabled:hover,.btn[disabled]:hover,.btn.is-disabled:hover{background:var(--color-background-primary);border-color:var(--color-border-secondary)}.btn:disabled:active,.btn[disabled]:active,.btn.is-disabled:active{transform:none}.btn-primary{background:var(--brand);color:#fff;border-color:var(--brand)}.btn-primary:hover{background:var(--brand-dark);border-color:var(--brand-dark);color:#fff}.btn-primary:disabled,.btn-primary[disabled],.btn-primary.is-disabled,.btn-primary:disabled:hover{background:var(--brand);border-color:var(--brand);color:#fff}.btn-ghost{border-color:transparent;background:transparent}.btn-ghost:hover{background:var(--color-background-secondary);border-color:transparent}.btn-danger{background:var(--bad);color:#fff;border-color:var(--bad)}.btn-danger:hover{background:var(--bad);border-color:var(--bad);color:#fff;filter:brightness(.93)}.btn-danger:active{filter:brightness(.88)}.btn-danger:disabled,.btn-danger[disabled],.btn-danger.is-disabled,.btn-danger:disabled:hover{background:var(--bad);border-color:var(--bad);filter:none}.btn-danger-outline{background:transparent;border-color:var(--bad);color:var(--bad)}.btn-danger-outline:hover{background:var(--bad-wash);border-color:var(--bad);color:var(--bad)}.btn-mini{padding:4px 9px;font-size:13px;gap:5px}.btn-mini i{font-size:14px}.btn-sm{padding:5px 11px;font-size:13px}.btn-lg{padding:11px 22px;font-size:15px;gap:7px;border-radius:var(--border-radius-lg)}.btn-lg i{font-size:17px}.btn-icon{padding:7px}.btn-icon.btn-sm{padding:5px}.btn-icon.btn-mini{padding:4px}.badge{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:4px;font-size:12px;font-weight:500;font-family:var(--font-mono);letter-spacing:-.01em;border:1px solid transparent}.badge:before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor;flex-shrink:0}.badge i{font-size:12px}.badge-success{background:var(--ok-wash);color:var(--ok)}.badge-warning{background:var(--warn-wash);color:var(--warn)}.badge-info{background:var(--info-wash);color:var(--info)}.badge-danger{background:var(--bad-wash);color:var(--bad)}.action-link{color:var(--brand);font-size:13px;cursor:pointer;text-decoration:none;font-weight:500}.action-link:hover{color:var(--brand-dark);text-decoration:underline;text-underline-offset:2px}.card{background:var(--color-background-primary);border:1px solid var(--color-border-tertiary);border-radius:var(--border-radius-lg);padding:22px 24px}.card-title{font-size:16px;font-weight:600;margin-bottom:16px;letter-spacing:-.01em}.form-group{margin-bottom:16px}.form-label{font-size:12.5px;font-weight:500;color:var(--color-text-secondary);margin-bottom:6px;display:block;text-transform:uppercase;letter-spacing:.04em}.form-input{width:100%;padding:9px 12px;font-size:15px;border:1px solid var(--color-border-secondary);border-radius:var(--border-radius-md);background:var(--color-background-primary);color:var(--color-text-primary);font-family:var(--font-sans);outline:none;transition:border-color .14s ease,box-shadow .14s ease}.form-input::placeholder{color:var(--color-text-tertiary)}.form-input:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-light)}.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.section-title{font-size:17px;font-weight:600;letter-spacing:-.01em}.content{padding:28px 32px;width:100%;box-sizing:border-box;min-width:0;overflow-x:hidden}@media (max-width: 960px){.content{padding:20px}.topbar{padding:0 20px}}@media (max-width: 600px){.content{padding:16px}.topbar{padding:0 16px}.topbar-title{font-size:18px}}.topbar{height:60px;background:var(--color-background-primary);border-bottom:1px solid var(--color-border-tertiary);display:flex;align-items:center;padding:0 32px;gap:12px;position:sticky;top:0;z-index:5;width:100%;box-sizing:border-box}.topbar-title{font-size:var(--fs-2xl);font-weight:600;letter-spacing:-.02em;color:var(--color-text-primary);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar-title:first-child:not(:has(*)){display:flex;align-items:center;gap:11px;overflow:visible}.topbar-title:first-child:not(:has(*)):before{content:"";flex-shrink:0;width:3px;height:18px;border-radius:2px;background:var(--brand)}.topbar-actions{display:flex;gap:8px;flex-shrink:0}.toast{position:fixed;top:24px;left:50%;transform:translate(-50%) translateY(-20px);opacity:0;transition:transform .25s ease,opacity .25s ease;z-index:100;pointer-events:none;background:var(--color-background-primary);border:1px solid var(--color-border-secondary);border-radius:var(--border-radius-md);padding:11px 18px;display:flex;align-items:center;gap:10px;font-size:14px;white-space:nowrap;box-shadow:0 6px 24px #0000001a}.toast.show{transform:translate(-50%) translateY(0);opacity:1}.toast i{font-size:17px}.toast.success i{color:var(--ok)}.toast.info i{color:var(--info)}.toast.error i{color:var(--bad)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{transition:none!important;animation:none!important}}.num{font-family:DIN Alternate,DIN Pro,Roboto,Helvetica Neue,Arial,sans-serif;font-variant-numeric:tabular-nums;letter-spacing:.02em}
