@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/ba9851c3c22cd980-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/21350d82a1f187e9-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/c5fe6dc8356a8c31-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/19cfc7226ec3afaa-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/df0a9ae256c0569c-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/8e9860b6e62d6359-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/e4af272ccee01ff0-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Inter Fallback;src:local("Arial");ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.00%;size-adjust:107.12%}.__className_d8ebd1{font-family:Inter,Inter Fallback;font-style:normal}.__variable_d8ebd1{--font-inter:"Inter","Inter Fallback"}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/886030b0b59bc5a7-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/0aa834ed78bf6d07-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/67957d42bae0796d-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/f911b923c6adde36-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/939c4f875ee75fbb-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/bb3ef058b751a6ad-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:JetBrains Mono Fallback;src:local("Arial");ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.00%;size-adjust:134.59%}.__className_4dc837{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.__variable_4dc837{--font-jetbrains:"JetBrains Mono","JetBrains Mono Fallback"}*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246/0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246/0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*
! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com
*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.fixed{position:fixed}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.hidden{display:none}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.resize{resize:both}.border{border-width:1px}.uppercase{text-transform:uppercase}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.outline{outline-style:solid}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}:root{color-scheme:light}body,html{padding:0;margin:0}body{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity,1));--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-opacity,1));-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,Segoe UI,Roboto,Helvetica,Arial,sans-serif}:root{--primary:#3B82F6;--primary-hover:#2563EB;--primary-soft:#EFF6FF;--primary-ring:rgba(59,130,246,.18);--secondary:#8B5CF6;--secondary-soft:#F5F3FF;--success:#16A34A;--success-soft:#F0FDF4;--warning:#D97706;--warning-soft:#FFFBEB;--danger:#DC2626;--danger-soft:#FEF2F2;--surface:#FFFFFF;--surface-2:#F7F9FC;--bg:#EDF0F6;--bg-elev:#F5F7FB;--canvas-a:#E6ECF6;--canvas-b:#EFF2F7;--canvas-c:#F2F4F9;--nav-a:#233258;--nav-b:#1D2744;--nav-c:#18203A;--nav-text:rgba(255,255,255,.74);--nav-dim:rgba(255,255,255,.44);--nav-hover:rgba(255,255,255,.09);--g-blue:linear-gradient(135deg,#5B8DEF,#2563EB);--g-violet:linear-gradient(135deg,#9D6BFF,#6D28D9);--g-teal:linear-gradient(135deg,#2DD4BF,#0E9488);--g-amber:linear-gradient(135deg,#FBBF24,#EA8C0C);--g-rose:linear-gradient(135deg,#FB7185,#E11D48);--g-green:linear-gradient(135deg,#34D399,#059669);--g-slate:linear-gradient(135deg,#7C8AA5,#3B4A67);--text:#111827;--text-2:#475569;--text-3:#5B6472;--border:#E1E7F0;--border-2:#ECF0F6;--r-sm:4px;--r-md:8px;--r-lg:12px;--r-xl:16px;--r-2xl:20px;--sh-xs:0 1px 2px rgba(16,24,40,.05);--sh-sm:0 1px 2px rgba(16,24,40,.04),0 6px 16px -10px rgba(16,24,40,.14);--sh-md:0 2px 4px rgba(16,24,40,.05),0 12px 28px -12px rgba(16,24,40,.18);--sh-lg:0 4px 8px rgba(16,24,40,.06),0 18px 44px -14px rgba(16,24,40,.22);--sh-xl:0 8px 16px rgba(16,24,40,.08),0 28px 60px -16px rgba(16,24,40,.28);--ease:cubic-bezier(.4,0,.2,1);--ease-spring:cubic-bezier(.16,1,.3,1);--sidebar-w:232px;--header-h:56px}*{box-sizing:border-box;margin:0;padding:0}body,html{height:100%}body{font-family:var(--font-inter),-apple-system,BlinkMacSystemFont,"SF Pro Display","PingFang SC","Microsoft YaHei",sans-serif;font-size:14px;line-height:1.5;color:var(--text);background:var(--bg);background-image:linear-gradient(180deg,var(--canvas-a) 0,var(--canvas-b) 320px,var(--canvas-c) 100%);background-attachment:fixed;-webkit-font-smoothing:antialiased;font-feature-settings:"cv11","ss01"}.mono{font-family:var(--font-jetbrains),"JetBrains Mono","SF Mono",Menlo,monospace}button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}button{cursor:pointer;border:none;background:none}:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:var(--r-sm)}::-moz-selection{background:var(--primary-ring)}::selection{background:var(--primary-ring)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:rgba(17,24,39,.14);border-radius:8px;border:2px solid transparent;background-clip:padding-box}::-webkit-scrollbar-thumb:hover{background:rgba(17,24,39,.24);background-clip:padding-box}.app{min-height:100vh;display:flex;flex-direction:column}.header{height:var(--header-h);position:sticky;top:0;z-index:50;gap:16px;padding:0 20px;background:rgba(255,255,255,.84);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border-bottom:1px solid #e1e7f0;box-shadow:0 8px 24px -22px rgba(16,24,40,.9)}.brand,.header{display:flex;align-items:center}.brand{gap:10px;font-weight:700}.brand-logo{width:28px;height:28px;border-radius:7px;display:grid;place-items:center;color:#fff;font-size:13px;font-weight:800;background:linear-gradient(135deg,#3B82F6,#8B5CF6);box-shadow:0 2px 6px rgba(59,130,246,.32)}.brand-name{font-size:15px}.brand-sub{font-size:12px;color:var(--text-3);font-weight:500;padding-left:10px;margin-left:2px;border-left:1px solid var(--border)}.header-spacer{flex:1}.header-tools{display:flex;align-items:center;gap:10px}.avatar{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:600;color:#fff;background:linear-gradient(135deg,#60A5FA,#3B82F6)}.user-chip{display:flex;align-items:center;gap:8px;padding:4px 10px 4px 4px;border-radius:999px;background:var(--bg-elev);border:1px solid var(--border-2);transition:.2s}.user-chip:hover{background:#fff;border-color:var(--border);box-shadow:var(--sh-xs)}.user-chip .meta{display:flex;flex-direction:column;line-height:1.15}.user-chip .name{font-size:12.5px;font-weight:600}.user-chip .role{font-size:10.5px;color:var(--text-3)}.user-menu{position:relative}.user-menu .user-chip{cursor:pointer}.avatar.lg{width:40px;height:40px;font-size:15px}.user-dropdown{position:absolute;right:0;top:calc(100% + 10px);width:232px;background:#fff;border:1px solid var(--border);border-radius:var(--r-xl);box-shadow:var(--sh-lg);padding:8px;z-index:90;animation:slideUp .16s var(--ease-spring)}.user-dropdown:before{content:"";position:absolute;left:0;right:0;top:-12px;height:12px}.ud-head{display:flex;align-items:center;gap:10px;padding:8px 8px 10px}.ud-name{font-size:13.5px;font-weight:600}.ud-role{font-size:11.5px;color:var(--text-3)}.ud-sep{height:1px;background:var(--border-2);margin:4px 6px}.ud-item{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:var(--r-md);color:var(--text-2);font-size:13px;cursor:pointer;text-decoration:none;width:100%;border:0;background:transparent;text-align:left;font-family:inherit}.ud-item:hover{background:var(--bg-elev);color:var(--text)}.ud-ico{width:16px;height:16px;flex-shrink:0;color:var(--text-3)}.ud-item:hover .ud-ico{color:var(--primary)}.ud-danger,.ud-danger .ud-ico,.ud-danger:hover{color:var(--danger)}.ud-danger:hover{background:var(--danger-soft)}.body{display:flex;flex:1;min-height:0}.sidebar{width:var(--sidebar-w);flex-shrink:0;padding:16px 12px;background:linear-gradient(178deg,var(--nav-a) 0,var(--nav-b) 58%,var(--nav-c) 100%);border-right:1px solid rgba(9,14,28,.55);position:sticky;top:var(--header-h);height:calc(100vh - var(--header-h));overflow-y:auto}.sidebar::-webkit-scrollbar{width:6px}.sidebar::-webkit-scrollbar-thumb{background:rgba(255,255,255,.16);border:0;border-radius:99px}.sidebar::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,.28)}.nav-section{margin-bottom:20px}.nav-title{font-size:10.5px;font-weight:700;color:var(--nav-dim);text-transform:uppercase;letter-spacing:.1em;padding:0 10px;margin-bottom:6px}.nav-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--r-md);color:var(--nav-text);font-size:13.5px;font-weight:500;cursor:pointer;transition:.16s;margin-bottom:2px;position:relative}.nav-item:hover{background:var(--nav-hover);color:#fff}.nav-item.active{background:linear-gradient(135deg,rgba(91,141,239,.34),rgba(157,107,255,.26));color:#fff;font-weight:600;box-shadow:inset 0 0 0 1px rgba(255,255,255,.1),0 6px 16px -8px rgba(37,99,235,.7)}.nav-item.active:before{content:"";position:absolute;left:-12px;top:7px;bottom:7px;width:3px;border-radius:0 3px 3px 0;background:linear-gradient(180deg,#7FA9F6,#A78BFA)}.nav-icon{width:16px;height:16px;flex-shrink:0;opacity:.9}.nav-badge{margin-left:auto;font-size:10.5px;font-weight:700;padding:1px 6px;border-radius:999px;background:var(--danger);color:#fff;box-shadow:0 0 0 2px rgba(255,255,255,.12)}.nav-badge.soft{background:#FBBF24;color:#3B2606;box-shadow:none}.main{flex:1;min-width:0;padding:24px 32px 48px;overflow-x:hidden}.page-head{margin-bottom:20px;display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap}.page-title{font-size:24px;font-weight:700;letter-spacing:-.02em;line-height:1.2}.page-desc{font-size:13px;color:var(--text-2);margin-top:4px}.page-actions{display:flex;gap:8px;align-items:center}.segmented{display:inline-flex;padding:3px;background:#E4EAF4;border-radius:10px;gap:2px;box-shadow:inset 0 0 0 1px #DDE4EF}.segmented button{padding:5px 14px;border-radius:7px;font-size:12.5px;font-weight:500;color:var(--text-2);transition:.18s;white-space:nowrap}.segmented button:hover{color:var(--text)}.segmented button.active{background:#fff;color:var(--primary-hover);font-weight:600;box-shadow:0 1px 2px rgba(16,24,40,.1)}.card{background:var(--surface);border-radius:var(--r-xl);border:1px solid #e4eaf3;box-shadow:var(--sh-sm);overflow:hidden;transition:box-shadow .2s var(--ease),border-color .2s var(--ease)}.card:hover{box-shadow:var(--sh-md)}.card-head{padding:15px 20px;border-bottom:1px solid var(--border-2);background:linear-gradient(180deg,#FAFCFF,#F5F8FC);justify-content:space-between;gap:12px}.card-head,.card-title{display:flex;align-items:center}.card-title{font-size:14.5px;font-weight:650;letter-spacing:-.01em;gap:8px}.card-title:before{content:"";width:3px;height:14px;border-radius:2px;background:linear-gradient(180deg,#5B8DEF,#8B5CF6);flex-shrink:0}.card-sub{font-size:12px;color:var(--text-3);margin-top:2px}.card-body{padding:20px}.card-body.tight{padding:12px 16px}.grid{display:grid;gap:16px}.grid-4{grid-template-columns:repeat(4,1fr)}.grid-5{grid-template-columns:repeat(5,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-2-1{grid-template-columns:2fr 1fr}@media(max-width:1200px){.grid-3,.grid-4{grid-template-columns:repeat(2,1fr)}.grid-5{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-2-1{grid-template-columns:1fr}}.stat-strip{display:grid;grid-template-columns:repeat(4,1fr);background:var(--surface);border:1px solid #e4eaf3;border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--sh-xs)}.stat-strip.plain{border:0;background:transparent;border-radius:0;box-shadow:none}.stat-cell{padding:16px 20px;border-left:1px solid var(--border-2)}.stat-cell:first-child{border-left:0}.stat-label{font-size:12px;color:var(--text-3);font-weight:500}.stat-value{font-size:26px;font-weight:600;letter-spacing:-.02em;margin-top:4px;line-height:1.1;font-variant-numeric:tabular-nums;color:var(--text)}.stat-value .unit{font-size:13px;font-weight:500;color:var(--text-3);margin-left:3px}.stat-note{font-size:12px;margin-top:5px;color:var(--text-3)}.stat-note.bad{color:var(--danger)}.stat-note.good{color:#15803D}.stat-cell .lbl{font-size:12px;color:var(--text-3);font-weight:500}.stat-cell .val{font-size:26px;font-weight:600;letter-spacing:-.02em;margin-top:4px;line-height:1.1;font-variant-numeric:tabular-nums;color:var(--text)}.stat-cell .val small{font-size:12.5px;font-weight:500;color:var(--text-3);margin-left:3px}.kpi-grid{display:grid;gap:14px;grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:20px}.kpi-grid.c3{grid-template-columns:repeat(3,minmax(0,1fr))}.kpi-grid.c5{grid-template-columns:repeat(5,minmax(0,1fr))}.kpi-grid.c6{grid-template-columns:repeat(6,minmax(0,1fr))}.kpi{position:relative;overflow:hidden;border-radius:var(--r-lg);padding:16px 18px 15px;color:#fff;isolation:isolate;box-shadow:0 10px 22px -14px rgba(16,24,40,.55)}.kpi:after{right:-26px;top:-52px;width:150px;height:150px;border-radius:50%;background:radial-gradient(circle at 50% 50%,rgba(255,255,255,.26) 0,rgba(255,255,255,.1) 46%,rgba(255,255,255,0) 74%);z-index:-1}.kpi:after,.kpi:before{content:"";position:absolute}.kpi:before{left:0;right:0;top:0;height:1px;background:rgba(255,255,255,.35);z-index:1}.kpi-blue{background:var(--g-blue)}.kpi-violet{background:var(--g-violet)}.kpi-teal{background:var(--g-teal)}.kpi-amber{background:var(--g-amber)}.kpi-rose{background:var(--g-rose)}.kpi-green{background:var(--g-green)}.kpi-slate{background:var(--g-slate)}.kpi-label{font-size:12px;font-weight:500;color:rgba(255,255,255,.86);letter-spacing:.01em}.kpi-value{font-size:30px;font-weight:700;letter-spacing:-.025em;line-height:1.12;margin-top:6px;font-variant-numeric:tabular-nums;text-shadow:0 1px 2px rgba(16,24,40,.14)}.kpi-value .unit{font-size:13px;font-weight:500;margin-left:4px;letter-spacing:0}.kpi-note,.kpi-value .unit{color:rgba(255,255,255,.82)}.kpi-note{font-size:11.5px;margin-top:6px;display:flex;align-items:center;gap:5px}.kpi-note .pill{background:rgba(255,255,255,.22);border-radius:999px;padding:1px 7px;font-weight:600;color:#fff;font-variant-numeric:tabular-nums}.kpi-ico{position:absolute;right:14px;top:14px;width:32px;height:32px;border-radius:10px;display:grid;place-items:center;background:rgba(255,255,255,.2);box-shadow:inset 0 0 0 1px rgba(255,255,255,.22);color:#fff}.kpi-ico svg{width:17px;height:17px}a.kpi-link{display:block;text-decoration:none;color:inherit;border-radius:var(--r-lg);transition:transform .16s var(--ease-spring),box-shadow .2s}a.kpi-link:hover{transform:translateY(-2px);box-shadow:0 14px 26px -14px rgba(16,24,40,.55)}@media(max-width:1200px){.kpi-grid,.kpi-grid.c5,.kpi-grid.c6{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:900px){.kpi-grid,.kpi-grid.c3,.kpi-grid.c5,.kpi-grid.c6{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.kpi-value{font-size:25px}}@media(max-width:420px){.kpi-grid{grid-template-columns:1fr}}.hm{overflow-x:auto}.hm-grid{display:grid;gap:3px;min-width:560px}.hm-corner{align-self:center}.hm-corner,.hm-day{font-size:11px;color:var(--text-3)}.hm-day{text-align:center;font-variant-numeric:tabular-nums}.hm-name{font-size:12px;color:var(--text-2);align-self:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-right:6px}.hm-link{cursor:pointer}.hm-link:hover{color:var(--primary-hover)}.hm-link:hover span:first-child{text-decoration:underline}.hm-sub{flex-shrink:0;font-size:10.5px;font-weight:700;color:var(--text-3);background:var(--border-2);border-radius:999px;padding:0 6px;line-height:16px;font-variant-numeric:tabular-nums}.hm-cell{height:22px;border-radius:4px;transition:transform .1s}.hm-cell:hover{transform:scale(1.12)}.hm-legend{display:flex;flex-wrap:wrap;gap:14px;margin-top:12px;font-size:11.5px;color:var(--text-2)}.hm-key,.hm-li{display:inline-flex;align-items:center;gap:5px}.hm-key i,.hm-li i{width:12px;height:12px;border-radius:3px;display:inline-block}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 16px;border-radius:var(--r-md);font-size:13.5px;font-weight:500;transition:.15s;white-space:nowrap;border:1px solid transparent}.btn:active{transform:scale(.98)}.btn-primary{background:var(--primary);color:#fff;box-shadow:0 1px 2px rgba(59,130,246,.24)}.btn-primary:hover{background:var(--primary-hover);box-shadow:0 4px 12px rgba(59,130,246,.28)}.btn-primary:disabled{background:#C7D7F5;cursor:not-allowed;box-shadow:none}.btn-secondary{background:#fff;color:var(--text);border-color:var(--border);box-shadow:var(--sh-xs)}.btn-secondary:hover{background:var(--bg-elev);border-color:#D1D5DB}.btn-ghost{color:var(--text-2)}.btn-ghost:hover{background:rgba(17,24,39,.05);color:var(--text)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover{background:#B91C1C}.btn-danger-ghost{background:transparent;color:var(--danger);border-color:rgba(220,38,38,.28)}.btn-danger-ghost:hover{background:var(--danger-soft);border-color:rgba(220,38,38,.45)}.btn-success{background:var(--success);color:#fff}.btn-success:hover{background:#15803D}.btn-sm{padding:5px 11px;font-size:12.5px;border-radius:6px}.btn-lg{padding:11px 22px;font-size:14.5px;border-radius:10px}.field{margin-bottom:18px}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.label{display:block;font-size:12.5px;font-weight:500;margin-bottom:6px}.label .req{color:var(--danger);margin-left:2px}.label .hint{color:var(--text-3);font-weight:400;margin-left:6px;font-size:11.5px}.input,.select,.textarea{width:100%;padding:9px 12px;border:1px solid var(--border);border-radius:var(--r-md);background:#fff;transition:.15s;font-size:13.5px}.input:hover,.select:hover,.textarea:hover{border-color:#D1D5DB}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-ring)}.input.error,.textarea.error{border-color:var(--danger);background:var(--danger-soft)}.textarea{resize:vertical;min-height:96px;line-height:1.6}.select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236B7280' stroke-width='2.5' stroke-linecap='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:34px;cursor:pointer}.field-help{font-size:11.5px;color:var(--text-3);margin-top:5px;display:flex;justify-content:space-between;gap:8px}.field-help .count{font-variant-numeric:tabular-nums}.field-help .count.warn{color:var(--warning)}.field-help .count.err{color:var(--danger);font-weight:600}.chip{display:inline-flex;align-items:center;gap:4px;padding:2.5px 9px;border-radius:999px;font-size:11.5px;font-weight:550;line-height:1.45;white-space:nowrap;border:1px solid transparent}.chip-primary{background:linear-gradient(180deg,#F2F7FF,#E7F0FE);color:var(--primary-hover);border-color:rgba(59,130,246,.22)}.chip-success{background:linear-gradient(180deg,#F3FEF6,#E7F9EE);color:#15803D;border-color:rgba(22,163,74,.22)}.chip-warning{background:linear-gradient(180deg,#FFFCF1,#FEF4DC);color:#B45309;border-color:rgba(217,119,6,.24)}.chip-danger{background:linear-gradient(180deg,#FEF4F4,#FDE6E6);color:var(--danger);border-color:rgba(220,38,38,.2)}.chip-neutral{background:linear-gradient(180deg,#F6F8FB,#EEF2F7);color:var(--text-2);border-color:#E1E7F0}.chip-purple{background:linear-gradient(180deg,#F8F5FF,#EFE8FE);color:#6D28D9;border-color:rgba(139,92,246,.22)}.chip-outline{background:transparent;border:1px solid var(--border);color:var(--text-2)}.dot{width:6px;height:6px;border-radius:50%;display:inline-block}.dot-success{background:var(--success)}.dot-warning{background:var(--warning)}.dot-danger{background:var(--danger)}.dot-primary{background:var(--primary)}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:13px}thead th{text-align:left;padding:11px 16px;font-size:11.5px;font-weight:650;color:#5A6478;background:linear-gradient(180deg,#F7FAFE,#EFF4FA);border-bottom:1px solid #e1e7f0;white-space:nowrap;text-transform:uppercase;letter-spacing:.05em}tbody td{padding:12px 16px;border-bottom:1px solid var(--border-2);vertical-align:middle}tbody tr{transition:.12s}tbody tr:hover{background:linear-gradient(90deg,#F1F7FF,#F8FBFF)}tbody tr:last-child td{border-bottom:none}.table-zebra tbody tr:nth-child(2n){background:#FAFCFE}.table-zebra tbody tr:nth-child(2n):hover{background:linear-gradient(90deg,#F1F7FF,#F8FBFF)}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}.row-link{cursor:pointer}.progress{height:7px;background:#E6EBF3;border-radius:999px;overflow:hidden;box-shadow:inset 0 1px 2px rgba(16,24,40,.06)}.progress-fill{height:100%;border-radius:999px;transition:width .6s var(--ease-spring)}.progress-fill.ok{background:linear-gradient(90deg,#7FA9F6,#2563EB)}.progress-fill.warn{background:linear-gradient(90deg,#FCD34D,#D97706)}.progress-fill.danger{background:linear-gradient(90deg,#FB8FA0,#DC2626)}.progress-fill.info{background:linear-gradient(90deg,#B79BFF,#7C3AED)}.bal-card{position:relative;overflow:hidden;background:var(--surface);border:1px solid #e4eaf3;border-radius:var(--r-lg);padding:16px 16px 16px 19px;transition:.2s var(--ease);box-shadow:var(--sh-xs)}.bal-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:linear-gradient(180deg,#7FA9F6,#2563EB)}.bal-card:hover{box-shadow:var(--sh-md);border-color:#D8E1EF;transform:translateY(-1px)}.bal-card.alert{border-color:rgba(220,38,38,.28);background:linear-gradient(180deg,#fff,#FEF4F4)}.bal-card.alert:before{background:linear-gradient(180deg,#FB8FA0,#DC2626)}.bal-card.warn{border-color:rgba(217,119,6,.24);background:linear-gradient(180deg,#fff,#FFF9EE)}.bal-card.warn:before{background:linear-gradient(180deg,#FCD34D,#D97706)}.bal-head{display:flex;justify-content:space-between;margin-bottom:10px}.bal-name{font-size:13px;font-weight:600}.bal-type{font-size:10.5px;color:var(--text-3);margin-top:1px}.bal-num{font-size:26px;font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums;line-height:1.1}.bal-num .of{font-size:13px;font-weight:500;color:var(--text-3);margin-left:2px}.bal-meta{font-size:11.5px;color:var(--text-2);margin-top:6px;display:flex;justify-content:space-between}.modal-backdrop{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:24px;background:rgba(17,24,39,.36);backdrop-filter:blur(10px) saturate(140%);animation:fadeIn .22s var(--ease)}.modal-backdrop.out{animation:fadeOut .18s forwards}.modal{width:100%;max-width:460px;background:#fff;border-radius:var(--r-2xl);box-shadow:var(--sh-xl);overflow:hidden;animation:modalIn .34s var(--ease-spring);max-height:calc(100vh - 48px);display:flex;flex-direction:column}.modal.wide{max-width:640px}.modal.out{animation:modalOut .18s forwards}.modal-icon{width:56px;height:56px;border-radius:16px;display:grid;place-items:center;margin:0 auto 14px}.modal-icon.danger{background:var(--danger-soft);color:var(--danger)}.modal-icon.warning{background:var(--warning-soft);color:var(--warning)}.modal-icon.success{background:var(--success-soft);color:var(--success)}.modal-icon.primary{background:var(--primary-soft);color:var(--primary)}.modal-body{padding:28px 28px 20px;text-align:center;overflow-y:auto}.modal-title{font-size:18px;font-weight:700;letter-spacing:-.015em;margin-bottom:8px}.modal-text{font-size:13.5px;color:var(--text-2);line-height:1.65}.modal-text strong{color:var(--text);font-weight:600}.modal-detail{margin-top:16px;padding:14px 16px;background:var(--bg-elev);border-radius:var(--r-lg);text-align:left;font-size:12.5px;border:1px solid var(--border-2)}.modal-detail .row{display:flex;justify-content:space-between;padding:4px 0;gap:12px}.modal-detail .row .k{color:var(--text-2)}.modal-detail .row .v{font-weight:600;font-variant-numeric:tabular-nums}.modal-detail .row .v.danger{color:var(--danger)}.modal-detail .row .v.warning{color:var(--warning)}.modal-detail .row .v.success{color:var(--success)}.modal-tips{margin-top:14px;text-align:left;font-size:12.5px;color:var(--text-2);line-height:1.7}.modal-tips .tip-title{font-weight:600;color:var(--text);margin-bottom:4px;font-size:12px}.modal-tips ul{padding-left:18px}.modal-footer{padding:14px 20px 20px;display:flex;gap:10px;justify-content:center;flex-wrap:wrap}.modal-footer .btn{flex:1;min-width:130px}.modal-link{font-size:11.5px;color:var(--text-3);margin-top:12px;cursor:pointer}.modal-link:hover{color:var(--primary)}.toast-stack{position:fixed;top:calc(var(--header-h) + 16px);right:20px;z-index:200;display:flex;flex-direction:column;gap:8px;pointer-events:none}.toast{pointer-events:auto;min-width:260px;max-width:380px;padding:12px 14px;border-radius:var(--r-lg);background:rgba(255,255,255,.92);backdrop-filter:blur(16px);border:1px solid var(--border-2);box-shadow:var(--sh-lg);display:flex;gap:10px;align-items:flex-start;animation:toastIn .32s var(--ease-spring)}.toast.out{animation:toastOut .22s forwards}.toast-icon{width:18px;height:18px;flex-shrink:0;margin-top:1px}.toast-content{flex:1;font-size:12.5px;line-height:1.5}.toast-title{font-weight:600;margin-bottom:1px}.toast-text{color:var(--text-2)}.toast.success .toast-icon{color:var(--success)}.toast.danger .toast-icon{color:var(--danger)}.toast.warning .toast-icon{color:var(--warning)}.toast.primary .toast-icon{color:var(--primary)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes modalIn{0%{opacity:0;transform:scale(.94) translateY(12px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes modalOut{0%{opacity:1}to{opacity:0;transform:scale(.96) translateY(6px)}}@keyframes toastIn{0%{opacity:0;transform:translateX(24px) scale(.96)}to{opacity:1;transform:translateX(0) scale(1)}}@keyframes toastOut{to{opacity:0;transform:translateX(24px) scale(.96)}}@keyframes slideUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.55}}.fade-in{animation:slideUp .32s var(--ease-spring) both}.pulse{animation:pulse 2s infinite}@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}}.scenario-picker{position:relative}.scenario-btn{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:999px;background:linear-gradient(135deg,rgba(59,130,246,.08),rgba(139,92,246,.08));border:1px solid rgba(59,130,246,.18);font-size:12px;font-weight:600;color:var(--primary-hover);transition:.18s}.scenario-btn:hover{background:linear-gradient(135deg,rgba(59,130,246,.14),rgba(139,92,246,.14));box-shadow:0 2px 8px rgba(59,130,246,.16)}.scenario-menu{position:absolute;top:calc(100% + 8px);right:0;width:330px;background:#fff;border-radius:var(--r-lg);box-shadow:var(--sh-xl);border:1px solid var(--border-2);padding:6px;z-index:60;animation:slideUp .2s var(--ease-spring);max-height:70vh;overflow-y:auto}.scenario-menu.hidden{display:none}.scenario-menu-title{font-size:10.5px;font-weight:600;color:var(--text-3);text-transform:uppercase;letter-spacing:.08em;padding:8px 10px 6px}.scenario-item{display:flex;gap:10px;align-items:flex-start;padding:9px 10px;border-radius:var(--r-md);cursor:pointer;transition:.14s;text-align:left;width:100%}.scenario-item:hover{background:var(--bg-elev)}.scenario-item.active{background:var(--primary-soft)}.scenario-item .ico{font-size:15px;line-height:1.3;flex-shrink:0;width:20px;text-align:center}.scenario-item .t1{font-size:12.5px;font-weight:600;line-height:1.35;display:block}.scenario-item .t2{font-size:11px;color:var(--text-3);margin-top:2px;line-height:1.4;display:block}.empty{padding:48px 24px;text-align:center;color:var(--text-3)}.empty-icon{width:44px;height:44px;margin:0 auto 12px;border-radius:50%;background:linear-gradient(140deg,#E8EEF8,#DFE6F2);box-shadow:inset 0 0 0 1px #DCE4F0}.empty-title{font-size:14px;font-weight:600;color:var(--text-2);margin-bottom:4px}.divider{height:1px;background:var(--border-2);margin:16px 0}.kv{display:flex;justify-content:space-between;gap:12px;padding:7px 0;font-size:13px;border-bottom:1px solid var(--border-2)}.kv:last-child{border-bottom:none}.kv .k{color:var(--text-2)}.kv .v{font-weight:600;text-align:right}.callout{padding:12px 14px;border-radius:var(--r-lg);font-size:12.5px;line-height:1.6;display:flex;gap:10px;align-items:flex-start}.callout.primary{background:var(--primary-soft);color:#1E40AF;border:1px solid rgba(59,130,246,.16)}.callout.warning{background:var(--warning-soft);color:#92400E;border:1px solid rgba(217,119,6,.18)}.callout.danger{background:var(--danger-soft);color:#991B1B;border:1px solid rgba(220,38,38,.16)}.callout.success{background:var(--success-soft);color:#166534;border:1px solid rgba(22,163,74,.16)}.callout .ico{font-size:14px;line-height:1.4;flex-shrink:0}.bar-row{display:grid;grid-template-columns:110px 1fr 56px;gap:12px;align-items:center;margin-bottom:10px;font-size:12.5px}.bar-row .lbl{color:var(--text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bar-row .track{height:8px;background:var(--border-2);overflow:hidden}.bar-row .fill,.bar-row .track{border-radius:999px;display:block}.bar-row .fill{height:100%;background:linear-gradient(90deg,#60A5FA,#3B82F6);transition:width .8s var(--ease-spring)}.bar-row .fill.warn{background:linear-gradient(90deg,#FBBF24,#D97706)}.bar-row .fill.danger{background:linear-gradient(90deg,#F87171,#DC2626)}.bar-row .val{text-align:right;font-weight:600;font-variant-numeric:tabular-nums;font-size:12px}.dot-legend{display:inline-block;width:10px;height:10px;border-radius:3px;margin:0 4px 0 8px;vertical-align:-1px}.ring{position:relative;display:grid;place-items:center;flex-shrink:0;margin:0 auto}.ring svg{display:block}.ring-arc{transition:stroke-dashoffset .8s var(--ease-spring)}.ring-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;text-align:center;padding:0 14%}.ring-value{font-size:26px;font-weight:700;letter-spacing:-.02em;line-height:1.05;color:var(--text);font-variant-numeric:tabular-nums}.ring-unit{font-size:12px;font-weight:500;color:var(--text-3);margin-left:3px}.ring-label{font-size:11px;color:var(--text-3);line-height:1.3}.ring-bang{width:24px;height:24px;border-radius:50%;background:var(--danger);color:#fff;font-size:16px;font-weight:800;line-height:24px;text-align:center;margin-bottom:2px;box-shadow:0 0 0 4px rgba(220,38,38,.14)}.ring-center.over .ring-unit,.ring-center.over .ring-value{color:var(--danger)}.ring-center.over .ring-label{color:var(--danger);font-weight:600}.rank-item{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--border-2)}.rank-item:last-child{border-bottom:none}.rank-no{width:22px;height:22px;border-radius:6px;display:grid;place-items:center;font-size:11px;font-weight:700;background:var(--border-2);color:var(--text-2);flex-shrink:0}.rank-no.top1{background:linear-gradient(135deg,#FCD34D,#D97706);color:#fff}.rank-no.top2{background:linear-gradient(135deg,#D1D5DB,#9CA3AF);color:#fff}.rank-no.top3{background:linear-gradient(135deg,#FDBA74,#C2410C);color:#fff}.rank-name{flex:1;min-width:0}.rank-name .n{font-size:13px;font-weight:600}.rank-name .d{font-size:11px;color:var(--text-3);margin-top:1px}.rank-val{font-size:13px;font-weight:700;font-variant-numeric:tabular-nums}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--border);margin-bottom:18px;overflow-x:auto}.tab{padding:9px 15px;font-size:13px;font-weight:500;color:var(--text-2);border-bottom:2px solid transparent;margin-bottom:-1px;transition:.15s;white-space:nowrap;cursor:pointer;position:relative}.tab:hover{color:var(--text)}.tab.active{color:var(--primary-hover);font-weight:650}.tab.active:after{content:"";position:absolute;left:10px;right:10px;bottom:-1px;height:2px;border-radius:2px 2px 0 0;background:linear-gradient(90deg,#5B8DEF,#8B5CF6)}.tab-count{display:inline-block;min-width:17px;height:17px;padding:0 5px;margin-left:6px;border-radius:999px;background:#E7ECF5;color:var(--text-2);font-size:11px;font-weight:700;line-height:17px;text-align:center;vertical-align:middle;font-variant-numeric:tabular-nums}.tab.active .tab-count{background:linear-gradient(180deg,#E7F0FE,#DBE9FD);color:var(--primary-hover)}.appr-card{position:relative;background:#fff;border:1px solid #e4eaf3;border-radius:var(--r-xl);padding:18px 20px;box-shadow:var(--sh-sm);transition:.2s var(--ease);margin-bottom:12px;overflow:hidden}.appr-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:linear-gradient(180deg,#7FA9F6,#A78BFA);opacity:.85}.appr-card:hover{box-shadow:var(--sh-md);border-color:#D8E1EF}.appr-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px}.appr-user{display:flex;gap:10px;align-items:center}.appr-avatar{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;color:#fff;font-size:13px;font-weight:600}.appr-info .n{font-size:14px;font-weight:600}.appr-info .d{font-size:11.5px;color:var(--text-3);margin-top:1px}.appr-body{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;padding:12px 0;border-top:1px solid var(--border-2);border-bottom:1px solid var(--border-2);margin-bottom:12px}.appr-field .k{font-size:10.5px;color:var(--text-3);text-transform:uppercase;letter-spacing:.04em;font-weight:600}.appr-field .v{font-size:13px;font-weight:600;margin-top:3px}.appr-reason{font-size:13px;line-height:1.65;padding:10px 12px 10px 15px;background:linear-gradient(90deg,#F1F7FF,#F8FBFF);border-radius:var(--r-md);box-shadow:inset 3px 0 0 #5B8DEF}.appr-summary{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:12px;color:var(--text-2);background:linear-gradient(90deg,#F5F8FD,#FAFCFE);border:1px solid #e9eef6;border-radius:var(--r-md);padding:8px 12px;margin:2px 0 12px}.appr-summary strong{color:var(--text);font-variant-numeric:tabular-nums}.appr-summary .sep{color:var(--text-3)}.appr-sum-bar{flex:1;min-width:80px;height:6px;border-radius:999px;background:var(--border-2);overflow:hidden}.appr-sum-bar i{display:block;height:100%;background:var(--warning);border-radius:999px}.pp-stat{display:flex;align-items:baseline;justify-content:space-between;padding:6px 0;font-size:12.5px;color:var(--text-2);border-bottom:1px solid var(--border-2)}.pp-stat:last-of-type{border-bottom:0}.pp-stat strong{font-size:16px;color:var(--text);font-weight:700;font-variant-numeric:tabular-nums}.pp-bar-wrap{margin-top:10px}.pp-bar{height:8px;background:var(--border-2);overflow:hidden}.pp-bar,.pp-bar i{border-radius:999px}.pp-bar i{display:block;height:100%;background:var(--warning);transition:width .5s var(--ease)}.pp-cap{font-size:11.5px;color:var(--text-2);margin-top:6px}.pp-cap strong{color:var(--warning)}.seg{display:inline-flex;gap:4px;background:#E9EEF6;border:1px solid #dfe6f0;border-radius:var(--r-md);padding:3px}.seg button{border:0;background:transparent;padding:6px 14px;border-radius:6px;font-size:13px;color:var(--text-2);cursor:pointer;transition:.15s;font-family:inherit}.seg button.on{background:#fff;color:var(--primary-hover);font-weight:650;box-shadow:0 1px 2px rgba(16,24,40,.1)}.appr-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:12px}.gates{display:flex;gap:8px;margin-bottom:16px}.gate{flex:1;padding:10px 12px;border-radius:var(--r-md);border:1px solid var(--border-2);background:var(--bg-elev);font-size:11.5px;transition:.25s;position:relative}.gate .gn{font-size:9.5px;font-weight:700;color:var(--text-3);letter-spacing:.06em;text-transform:uppercase}.gate .gt{font-size:12.5px;font-weight:600;margin-top:2px;color:var(--text-2)}.gate.checking{border-color:var(--primary);background:var(--primary-soft);box-shadow:0 0 0 3px var(--primary-ring)}.gate.checking .gt{color:var(--primary-hover)}.gate.pass{border-color:rgba(22,163,74,.3);background:var(--success-soft)}.gate.pass .gt{color:var(--success)}.gate.fail{border-color:rgba(220,38,38,.3);background:var(--danger-soft)}.gate.fail .gt{color:var(--danger)}.gate .gicon{position:absolute;right:10px;top:10px;font-size:13px;opacity:0;transition:.2s}.gate.fail .gicon,.gate.pass .gicon{opacity:1}.detail-grid{display:grid;grid-template-columns:1fr 320px;gap:20px}@media(max-width:1100px){.detail-grid{grid-template-columns:1fr}}.side-panel{position:sticky;top:calc(var(--header-h) + 24px);align-self:start}.gauge{display:flex;flex-direction:column;align-items:center;padding:8px 0}.gauge-svg{width:160px;height:90px}.gauge-label{font-size:11.5px;color:var(--text-2);margin-top:4px}.log-item{display:grid;grid-template-columns:150px 130px 1fr;gap:12px;padding:10px 0;border-bottom:1px solid var(--border-2);font-size:12.5px;align-items:center}.log-item:last-child{border-bottom:none}.log-time{color:var(--text-3);font-size:11.5px}.log-actor{font-weight:600}.log-action{color:var(--text-2)}.rule-row{display:grid;grid-template-columns:1.4fr 90px 90px 90px 36px;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--border-2);font-size:12.5px}.rule-row:last-child{border-bottom:none}.keyword-chip{display:inline-flex;align-items:center;gap:5px;padding:4px 6px 4px 10px;background:var(--danger-soft);color:var(--danger);border-radius:999px;font-size:12px;font-weight:500;margin:3px}.icon-btn{width:30px;height:30px;border-radius:var(--r-md);display:grid;place-items:center;color:var(--text-3);transition:.15s}.icon-btn:hover{background:var(--danger-soft);color:var(--danger)}.switch{position:relative;width:36px;height:20px;flex-shrink:0;display:inline-block}.switch input{opacity:0;width:0;height:0}.switch .slider{position:absolute;inset:0;background:#D1D5DB;border-radius:999px;transition:.2s;cursor:pointer}.switch .slider:before{content:"";position:absolute;width:16px;height:16px;left:2px;top:2px;background:#fff;border-radius:50%;transition:.2s;box-shadow:var(--sh-xs)}.switch input:checked+.slider{background:var(--primary)}.switch input:checked+.slider:before{transform:translateX(16px)}.filter-bar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:16px}.search-input{position:relative;flex:1;min-width:200px;max-width:320px}.search-input .input{padding-left:32px}.search-input .ico{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--text-3);pointer-events:none}.demo-note{margin-top:24px;padding:14px 16px;background:linear-gradient(135deg,rgba(59,130,246,.04),rgba(139,92,246,.04));border:1px solid var(--border-2);border-radius:var(--r-lg);font-size:11.5px;color:var(--text-3);line-height:1.7}.demo-note strong{color:var(--text-2)}.sidebar .demo-note{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.12);color:rgba(255,255,255,.5)}.sidebar .demo-note strong{color:rgba(255,255,255,.78)}.svg-chart{width:100%;height:auto;display:block;overflow:visible}.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:11.5px;color:var(--text-2);margin-top:8px}.legend-item{display:flex;align-items:center;gap:5px}.legend-swatch{width:10px;height:10px;border-radius:3px}.tabbar{display:none}@keyframes sheetIn{0%{opacity:.6;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}@media(max-width:900px){body{overflow-x:hidden}.header{height:auto;flex-wrap:wrap;row-gap:8px;padding:10px 12px}.brand-sub,.header-spacer{display:none}.header-tools{width:100%;order:3;justify-content:space-between;gap:8px}.user-chip .meta{display:none}.user-chip{padding:3px;border-radius:50%}.segmented button{padding:5px 10px;font-size:12px}.scenario-btn{font-size:11px;padding:5px 9px}.sidebar{display:none}.main{padding:16px 14px 96px}.tabbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:70;background:rgba(255,255,255,.92);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border-top:1px solid rgba(17,24,39,.08);padding:6px 8px calc(6px + env(safe-area-inset-bottom));justify-content:space-around;align-items:stretch}.tabbar-item{flex:1;max-width:88px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:6px 2px;border-radius:10px;color:var(--text-3);font-size:11px;font-weight:500;position:relative;transition:.15s}.tabbar-item .nav-icon{width:20px;height:20px}.tabbar-item.active{color:var(--primary)}.tabbar-item.active .tb-label{font-weight:700}.tabbar-item .tb-badge{position:absolute;top:1px;right:calc(50% - 18px);min-width:15px;height:15px;padding:0 3px;border-radius:999px;background:var(--danger);color:#fff;font-size:10px;font-weight:700;display:grid;place-items:center;line-height:1}.more-item{position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 4px;border-radius:12px;background:var(--bg-elev);color:var(--text-2);font-size:11px;font-weight:500;transition:.15s}.more-item .nav-icon{width:20px;height:20px}.more-item.active{background:var(--primary-soft);color:var(--primary-hover);font-weight:600}.more-item .mi-badge{position:absolute;top:6px;right:8px;min-width:14px;height:14px;padding:0 3px;border-radius:999px;background:var(--danger);color:#fff;font-size:9px;font-weight:700;display:grid;place-items:center;font-style:normal;line-height:1}.page-head{flex-direction:column;align-items:stretch;gap:10px}.page-title{font-size:20px}.grid-3,.grid-4,.grid-5{grid-template-columns:repeat(2,1fr);gap:12px}.detail-grid,.grid-2,.grid-2-1{grid-template-columns:1fr}.side-panel{position:static}.stat-strip{grid-template-columns:repeat(2,1fr)}.stat-cell{padding:14px 16px}.stat-cell:nth-child(odd){border-left:0}.stat-cell:nth-child(n+3){border-top:1px solid var(--border-2)}.stat-value{font-size:24px}.card-body{padding:16px}.card-head{padding:14px 16px}.field-row,.field-row-3{grid-template-columns:1fr;gap:0}.gates{gap:6px}.gate{padding:8px}.gate .gt{font-size:11px}.gate .gn{font-size:8.5px}.appr-body{grid-template-columns:repeat(2,1fr)}.bar-row{grid-template-columns:84px 1fr 44px;gap:8px}.log-item{grid-template-columns:1fr;gap:2px;padding:10px 0}.rule-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:12px 0}.rule-row>span:first-child{flex-basis:100%}.rule-row .input{width:auto;flex:1;min-width:64px}.rule-head{display:none}.search-input{max-width:none}.scenario-menu{position:fixed;left:12px;right:12px;top:100px;width:auto;max-height:60vh}.toast{max-width:calc(100vw - 32px);min-width:0}.toast-stack{top:104px;right:12px;left:12px;align-items:flex-end}.bal-num{font-size:22px}table{font-size:12px}tbody td,thead th{padding:9px 10px}.table-wrap{-webkit-overflow-scrolling:touch}.table-wrap table{min-width:560px}table.m-compact{min-width:430px}.m-compact td:first-child,.m-compact th:first-child{display:none}}@media(max-width:640px){.modal-backdrop{padding:0;align-items:flex-end}.modal{max-width:none;width:100%;border-radius:20px 20px 0 0;max-height:88vh;animation:sheetIn .32s var(--ease-spring)}.modal.out{animation:modalOut .18s forwards}.modal-body{padding:22px 20px 12px}.modal-footer{padding:10px 16px calc(16px + env(safe-area-inset-bottom))}.modal-footer .btn{min-width:0}}.segmented a{padding:5px 14px;border-radius:7px;font-size:12.5px;font-weight:500;color:var(--text-2);transition:var(--ease) .18s;white-space:nowrap;text-decoration:none}.segmented a:hover{color:var(--text)}.segmented a.active{background:#fff;color:var(--primary-hover);font-weight:600;box-shadow:0 1px 2px rgba(16,24,40,.1)}a.more-item,a.tabbar-item{text-decoration:none;color:inherit}a.nav-item{text-decoration:none}@media(max-width:900px){.segmented a{padding:5px 10px;font-size:12px}}.brand-logo-img{width:28px;height:28px;border-radius:7px;-o-object-fit:cover;object-fit:cover;box-shadow:0 2px 6px rgba(15,23,42,.22);flex-shrink:0}.dtp-trigger{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 12px;border:1px solid var(--border);border-radius:var(--r-md);background:#fff;font-size:13.5px;text-align:left;cursor:pointer;transition:.15s;font-variant-numeric:tabular-nums}.dtp-trigger:hover{border-color:#D1D5DB}.dtp-trigger.error{border-color:var(--danger);background:var(--danger-soft)}.dtp-ico,.dtp-ph{color:var(--text-3)}.dtp-ico{flex-shrink:0}.dtp-backdrop{position:fixed;inset:0;z-index:110;display:grid;place-items:center;padding:24px;background:rgba(17,24,39,.36);backdrop-filter:blur(10px) saturate(140%);animation:fadeIn .2s var(--ease)}.dtp{width:100%;max-width:320px;background:#fff;border-radius:var(--r-2xl);box-shadow:var(--sh-xl);overflow:hidden;animation:modalIn .3s var(--ease-spring);display:flex;flex-direction:column}.dtp-nav{display:flex;align-items:center;justify-content:space-between;padding:6px 4px 10px}.dtp-ym{font-size:14px;font-weight:600;letter-spacing:-.01em}.dtp-arrow{width:26px;height:26px;border-radius:var(--r-sm);display:grid;place-items:center;color:var(--text-2);font-size:15px;line-height:1;transition:.14s}.dtp-arrow:hover{background:var(--bg-elev);color:var(--primary)}.dtp-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.dtp-wd{margin-bottom:2px}.dtp-wd-c{text-align:center;font-size:11px;color:var(--text-3);font-weight:500;padding:2px 0}.dtp-cell{aspect-ratio:1/1;display:grid;place-items:center;border-radius:var(--r-md);font-size:12.5px;color:var(--text);cursor:pointer;transition:.12s;font-variant-numeric:tabular-nums;position:relative}.dtp-cell.blank{cursor:default}.dtp-cell:not(.blank):not(.sel):hover{background:var(--bg-elev)}.dtp-cell.today{color:var(--primary);font-weight:600}.dtp-cell.today:after{content:"";position:absolute;bottom:4px;width:3px;height:3px;border-radius:50%;background:var(--primary)}.dtp-cell.sel{background:var(--primary);color:#fff;font-weight:600;box-shadow:0 2px 6px rgba(59,130,246,.32)}.dtp-cell.sel:after{display:none}.dtp-time{display:flex;align-items:center;gap:6px;padding:10px 14px;border-top:1px solid var(--border-2)}.dtp-col{flex:1;height:132px;overflow-y:auto;scroll-snap-type:y mandatory;display:flex;flex-direction:column;gap:2px;scrollbar-width:thin}.dtp-col::-webkit-scrollbar{width:4px}.dtp-col::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.dtp-opt{padding:5px 0;text-align:center;font-size:13px;color:var(--text-2);border-radius:var(--r-sm);cursor:pointer;scroll-snap-align:center;transition:.12s;font-variant-numeric:tabular-nums}.dtp-opt:hover{background:var(--bg-elev)}.dtp-opt.sel{background:var(--primary-soft);color:var(--primary-hover);font-weight:600}.dtp-sep{color:var(--text-3);font-weight:600;padding-bottom:2px}.dtp-foot{display:flex;align-items:center;justify-content:space-between;padding:10px 14px calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--border-2)}.dtp-foot-r{display:flex;gap:8px}@media(max-width:640px){.dtp-backdrop{padding:0;align-items:flex-end}.dtp{max-width:none;width:100%;border-radius:20px 20px 0 0;animation:sheetIn .32s var(--ease-spring)}}.fb-mine{display:flex;flex-direction:column;gap:10px}.fb-mine-item{border:1px solid var(--border-2);border-radius:var(--r-md);padding:10px 12px;background:var(--surface)}.fb-mine-top{display:flex;align-items:center;gap:6px}.fb-mine-content{margin-top:6px;font-size:12.5px;line-height:1.55;color:var(--text);white-space:pre-wrap;word-break:break-word;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;cursor:pointer}.fb-mine-content.exp{display:block;-webkit-line-clamp:unset;overflow:visible}.fb-mine-more{font-size:11px;color:var(--primary-hover);margin-top:3px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.fb-mine-reply{margin-top:8px;padding:8px 10px;font-size:12.5px;line-height:1.5;color:var(--text-2);background:var(--primary-soft);border-left:3px solid var(--primary);border-radius:var(--r-sm);white-space:pre-wrap;word-break:break-word}.fb-mine-reply-tag{display:inline-block;font-size:10.5px;font-weight:600;color:var(--primary-hover);margin-right:6px;letter-spacing:.02em}.fb-cell{max-width:360px;font-size:12.5px;line-height:1.55;color:var(--text);white-space:pre-wrap;word-break:break-word;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;cursor:pointer}.fb-cell.exp{display:block;-webkit-line-clamp:unset;overflow:visible}.view-toggle{flex-shrink:0}.seg-sm{padding:2px;gap:2px}.seg-sm button{padding:5px 12px;font-size:12.5px}@media(max-width:720px){.view-toggle button{padding:5px 9px;font-size:12px}}.pp-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;align-items:start}.pp-col{display:flex;flex-direction:column;gap:16px;min-width:0}.pp-id{display:flex;align-items:center;gap:14px;padding-bottom:12px;border-bottom:1px solid var(--border-2)}.pp-id-meta{min-width:0}.pp-id-name{font-size:18px;font-weight:700;color:var(--text);letter-spacing:-.01em}.pp-id-tags{display:flex;align-items:center;gap:8px;margin-top:6px;flex-wrap:wrap}.pp-rows{margin-top:12px}.pp-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0;font-size:12.5px;color:var(--text-2);border-bottom:1px solid var(--border-2)}.pp-row:last-child{border-bottom:0}.pp-row span:last-child{color:var(--text);font-weight:500;text-align:right;word-break:break-all}.pp-pct-label{display:flex;align-items:baseline;justify-content:space-between;font-size:12px;color:var(--text-2);margin-bottom:6px}.pp-pct-label strong{font-size:15px;color:var(--warning)}.pp-quick{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;padding:2px}.pp-quick-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:16px 8px;border:1px solid var(--border-2);border-radius:var(--r-md);background:var(--surface);color:var(--text-2);text-decoration:none;font-size:12.5px;transition:.16s}.pp-quick-item:hover{border-color:var(--primary);color:var(--primary-hover);background:var(--primary-soft)}.pp-quick-item svg{width:22px;height:22px;color:var(--text-3)}.pp-quick-item:hover svg{color:var(--primary)}@media(max-width:860px){.pp-grid{grid-template-columns:minmax(0,1fr)}}.tf-stack{display:flex;flex-direction:column;gap:14px;margin:6px 0 14px}.tf-row{display:flex;align-items:center;gap:0;width:100%;max-width:460px;min-height:40px;padding:0 12px;background:#fff;border:1px solid var(--border);border-radius:var(--r-md);cursor:pointer;transition:.15s}.tf-row:hover{border-color:#C6D2E4;background:var(--surface-2)}.tf-row:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-ring)}.tf-row .input{border:0;background:transparent;padding:9px 0;box-shadow:none;border-radius:0;font-variant-numeric:tabular-nums}.tf-row .input:focus,.tf-row .input:hover{border-color:transparent}.tf-row .input:focus{outline:none;box-shadow:none}.tf-date{flex:0 0 auto;width:150px}.tf-time{flex:0 0 auto;width:104px}.tf-div{width:1px;height:20px;background:var(--border);margin:0 12px;flex-shrink:0}.tf-hint-in{margin-left:auto;font-size:11px;color:var(--text-3);flex-shrink:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.tf-half{flex:0 0 auto}.tf-half button{min-width:58px;text-align:center;flex:1}.tf-hint{font-size:11px;color:var(--text-3);margin-top:5px}@media(max-width:520px){.tf-row{max-width:none;padding:0 10px}.tf-date{width:132px}.tf-time{width:92px}.tf-div{margin:0 8px}.tf-hint-in{display:none}.tf-half button{min-width:52px}}.dash-tabs{display:inline-flex;gap:4px;background:#E4EAF4;border:1px solid #dde4ef;border-radius:var(--r-md);padding:4px;margin:2px 0 18px;flex-wrap:wrap}.dash-tabs a{padding:7px 16px;border-radius:8px;font-size:13px;color:var(--text-2);text-decoration:none;transition:.15s}.dash-tabs a:hover{color:var(--text);background:rgba(255,255,255,.6)}.dash-tabs a.on{background:var(--surface);color:var(--primary-hover);font-weight:650;box-shadow:0 1px 2px rgba(16,24,40,.1)}.today-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;align-items:start}@media(max-width:900px){.today-cols{grid-template-columns:1fr}}.emp-dd{position:absolute;top:100%;left:0;right:0;margin-top:4px;background:var(--surface);border:1px solid var(--border-2);border-radius:var(--r-md);box-shadow:var(--sh-md);z-index:30;max-height:240px;overflow:auto}.emp-layout{display:grid;grid-template-columns:300px 1fr;gap:16px;align-items:start}@media(max-width:900px){.emp-layout{grid-template-columns:1fr}}.emp-dd-item{padding:9px 12px;font-size:13px;cursor:pointer;display:flex;justify-content:space-between;gap:8px}.emp-dd-item:hover{background:var(--bg-elev)}.emp-cal{display:grid;grid-template-columns:repeat(15,1fr);gap:4px;margin-top:6px}.emp-cal-cell{aspect-ratio:1;border-radius:5px;display:flex;align-items:center;justify-content:center;font-size:10px;color:rgba(255,255,255,.7)}.emp-cal-cell .d{font-variant-numeric:tabular-nums}@media(max-width:640px){.emp-cal{grid-template-columns:repeat(10,1fr)}}.nav-parent{width:100%;border:0;background:transparent;font-family:inherit;text-align:left;cursor:pointer}.nav-caret{margin-left:auto;transition:transform .18s ease;flex-shrink:0}.nav-sub{display:flex;flex-direction:column;margin:2px 0 4px}.nav-subitem{padding-left:34px;font-size:12.5px;position:relative}.nav-subitem:before{content:"";position:absolute;left:20px;top:50%;width:5px;height:5px;margin-top:-2px;border-radius:50%;background:rgba(255,255,255,.32);opacity:.9}.nav-subitem.active:before{background:#8FB2F8}.pick-wrap{position:relative}.pick-add{cursor:pointer;font-family:inherit;border-style:dashed}.pick-add:hover{border-color:var(--primary);color:var(--primary-hover);background:var(--primary-soft)}.pick-mask{position:fixed;inset:0;z-index:39}.pick-pop{position:absolute;top:calc(100% + 6px);left:0;z-index:40;width:280px;max-width:86vw;background:#fff;border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--sh-lg);padding:8px;animation:slideUp .16s var(--ease-spring)}.pick-list{max-height:240px;overflow-y:auto;margin:0 -2px}.pick-row{display:flex;align-items:center;gap:8px;width:100%;padding:7px 8px;border:0;background:transparent;border-radius:var(--r-md);font-size:12.5px;color:var(--text-2);cursor:pointer;text-align:left;font-family:inherit}.pick-row:hover{background:var(--bg-elev)}.pick-row.on{color:var(--primary-hover);font-weight:600;background:var(--primary-soft)}.pick-box{width:16px;height:16px;flex-shrink:0;border:1px solid var(--border);border-radius:4px;display:grid;place-items:center;font-size:11px;line-height:1;color:#fff;background:#fff}.pick-row.on .pick-box{background:var(--primary);border-color:var(--primary)}.pick-on{margin-left:auto;font-size:10.5px;color:var(--primary-hover);font-weight:600}.pick-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:8px;padding-top:8px;border-top:1px solid var(--border-2)}.dt-chart{display:flex;align-items:flex-end;gap:8px;min-height:168px;padding:6px 2px 0;overflow-x:auto}.dt-col{display:flex;flex-direction:column;align-items:center;gap:5px;flex:1 0 34px;min-width:34px}.dt-rate{font-size:10.5px;color:var(--text-3);font-variant-numeric:tabular-nums}.dt-bar{max-width:34px;background:#E2E8F0;display:flex;align-items:flex-end;overflow:hidden;box-shadow:inset 0 0 0 1px #E8EDF5}.dt-bar,.dt-fill{width:100%;border-radius:5px}.dt-fill{background:linear-gradient(180deg,#7FA9F6,#2563EB);transition:height .6s var(--ease-spring)}.dt-fill-teal{background:linear-gradient(180deg,#7DD3C8,#0E9488)}.dt-x{font-size:10.5px;font-variant-numeric:tabular-nums}.dt-sub,.dt-x{color:var(--text-3);white-space:nowrap}.dt-sub{font-size:10px;font-variant-numeric:tabular-nums;margin-top:-2px}.dt-rate.zero{color:var(--text-3)}.dt-bar.dt-empty{background:repeating-linear-gradient(45deg,#EEF2F8 0 4px,#E4EAF4 4px 8px)}.dt-bar.dt-empty:after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:#B4C2D8;border-radius:0 0 5px 5px}.dt-bar{position:relative}tbody tr.dt-sel{background:var(--primary-soft)}.rf-row{display:flex;align-items:flex-start;gap:10px;padding:12px 10px;border:1px solid var(--border-2);border-radius:var(--r-md);background:var(--surface);margin-bottom:10px;transition:border-color .15s,background .15s}.rf-row:hover{border-color:#DCE3EE}.rf-row.dragging{border-color:var(--primary);background:var(--primary-soft);opacity:.85}.rf-grip{cursor:grab;-webkit-user-select:none;-moz-user-select:none;user-select:none;color:var(--text-3);font-size:15px;line-height:1.6;flex-shrink:0;padding-top:2px}.rf-grip:active{cursor:grabbing}.rf-no{width:20px;flex-shrink:0;font-size:11px;font-weight:700;color:var(--text-3);text-align:center;padding-top:4px;font-variant-numeric:tabular-nums}.rf-main{flex:1;min-width:0}.rf-label{flex:2 1 180px;min-width:0}.rf-type{flex:1 1 120px;min-width:110px}.rf-help{flex:1 1 200px;min-width:0}.rf-chk{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:var(--text-2);white-space:nowrap;cursor:pointer}.rf-chk input{width:15px;height:15px;accent-color:var(--primary)}.rf-ops{display:flex;flex-direction:column;gap:2px;flex-shrink:0}@media(max-width:900px){.rf-row{flex-wrap:wrap}.rf-ops{flex-direction:row;width:100%;justify-content:flex-end}.rf-main{flex:1 1 100%}}.chain-step{border:1px solid var(--border-2);border-radius:var(--r-md);background:var(--surface);padding:8px 10px}.chain-step:hover{border-color:#DCE3EE}.cs-head{display:flex;align-items:center;gap:8px}.cs-no{font-size:11px;color:var(--text-3);white-space:nowrap;font-weight:600}.cs-kind{width:120px;padding:5px 8px;font-size:12.5px}.cs-body{margin-top:8px}.cs-mode{gap:8px;margin-top:8px;padding-top:8px;border-top:1px dashed var(--border-2)}.alert-strip,.cs-mode{display:flex;align-items:center}.alert-strip{gap:16px;flex-wrap:wrap;margin-top:18px;padding:12px 16px;border:1px solid var(--border-2);border-left:3px solid var(--warning);border-radius:var(--r-lg);background:var(--surface);text-decoration:none;color:inherit;box-shadow:var(--sh-xs);transition:.16s}.alert-strip:hover{border-color:#DCE3EE;box-shadow:0 8px 20px -12px rgba(16,24,40,.28)}.alert-strip .as-t{font-size:13px;font-weight:650}.alert-strip .as-i{font-size:12.5px;color:var(--text-2)}.alert-strip .as-i b{font-variant-numeric:tabular-nums;color:var(--text);font-weight:650}.alert-strip .as-x{margin-left:auto;font-size:12px;color:var(--primary-hover);font-weight:600}.dash-filter{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap;background:#E9EEF6;border:1px solid #dfe6f0;border-radius:var(--r-md);padding:5px}.dash-filter button{border:0;background:transparent;padding:5px 12px;border-radius:7px;font-size:12.5px;color:var(--text-2);cursor:pointer;transition:.15s;font-family:inherit}.dash-filter button:hover{color:var(--text);background:rgba(255,255,255,.65)}.dash-filter button.on{background:var(--surface);color:var(--primary-hover);font-weight:650;box-shadow:0 1px 2px rgba(16,24,40,.1)}.dash-filter .df-custom{display:inline-flex;align-items:center;gap:4px;padding-left:6px;border-left:1px solid #dce3ee;margin-left:2px}.dash-filter .df-custom input{border:1px solid #dce3ee;background:var(--surface);border-radius:7px;padding:4px 6px;font-size:12px;color:var(--text-2);font-family:inherit}.dash-filter .df-custom span{color:var(--text-3);font-size:12px}.sf-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 18px}.sf-field{display:flex;flex-direction:column;gap:5px}.sf-field .sf-lbl{font-size:11.5px;color:var(--text-3)}.sf-field input[type=checkbox]{width:18px;height:18px;accent-color:var(--primary)}.sf-foot{display:flex;justify-content:flex-end;margin-top:14px;padding-top:10px;border-top:1px solid var(--border-2)}@media(max-width:820px){.sf-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.pd-toolbar{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;margin:-4px 0 16px;padding-bottom:12px;border-bottom:1px solid var(--border-2)}.print-doc{max-width:760px;margin:0 auto;background:var(--surface);border:1px solid var(--border-2);border-radius:var(--r-lg);box-shadow:var(--sh-sm);padding:32px 36px;color:var(--text);font-size:13px;line-height:1.6}.pd-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;border-bottom:2px solid var(--text);padding-bottom:14px}.pd-title{font-size:20px;font-weight:800;letter-spacing:.02em}.pd-sub{font-size:12px;color:var(--text-2);margin-top:6px}.pd-qr{width:128px;height:128px;flex-shrink:0;border:1px solid var(--border-2);border-radius:8px;display:flex;align-items:center;justify-content:center;overflow:hidden;font-size:11px;color:var(--text-3)}.pd-qr canvas,.pd-qr img{display:block}.pd-sec{margin-top:20px}.pd-sec-t{font-size:12px;font-weight:700;letter-spacing:.06em;color:var(--primary-hover);border-left:3px solid var(--primary);padding-left:8px;margin-bottom:10px}.pd-kv{display:grid;grid-template-columns:1fr 1fr;gap:8px 24px}.pd-kv>div{display:flex;gap:8px;align-items:baseline;border-bottom:1px dotted var(--border-2);padding-bottom:6px}.pd-kv span{color:var(--text-3);font-size:12px;min-width:64px;flex-shrink:0}.pd-kv b{font-weight:600}.pd-reason{margin-top:10px;display:flex;gap:8px}.pd-reason span{color:var(--text-3);font-size:12px;min-width:64px;flex-shrink:0}.pd-note{margin-top:10px;font-size:12px;color:#92400E;background:var(--warning-soft);border-radius:var(--r-sm);padding:8px 10px}.pd-sign{width:100%;border-collapse:collapse;margin-top:4px}.pd-sign td,.pd-sign th{border:1px solid var(--border);padding:10px 12px;text-align:left;font-size:12.5px}.pd-sign th{background:var(--bg-elev);font-weight:600}.pd-sign td:nth-child(2),.pd-sign td:nth-child(3){height:40px;width:38%}.pd-flows{margin-top:10px;font-size:11.5px;color:var(--text-3);line-height:1.8}.pd-flow{margin-right:10px}.pd-foot{margin-top:22px;padding-top:12px;border-top:1px solid var(--border-2);font-size:11px}.pd-empty,.pd-foot{color:var(--text-3)}.pd-empty{max-width:520px;margin:40px auto;text-align:center}@media print{.demo-note,.header,.no-print,.pd-toolbar,.sidebar,.tabbar{display:none!important}body{background:#fff}.main{padding:0!important;max-width:none!important}.print-doc{border:0;box-shadow:none;max-width:none;width:100%;padding:0;border-radius:0}.pd-kv>div,.pd-note{-webkit-print-color-adjust:exact;print-color-adjust:exact}}.fbw-bubble{width:46px;height:46px;border-radius:50%;background:linear-gradient(135deg,#60A5FA,#3B82F6);color:#fff;display:grid;place-items:center;box-shadow:var(--sh-md);cursor:grab;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:transform .15s var(--ease-spring),box-shadow .2s;flex-shrink:0}.fbw-bubble:hover{transform:scale(1.06);box-shadow:var(--sh-lg)}.fbw-bubble:active{cursor:grabbing;transform:scale(.98)}.fbw-panel{width:360px;max-width:calc(100vw - 28px);background:#fff;border:1px solid var(--border);border-radius:var(--r-xl);box-shadow:var(--sh-lg);padding:14px;animation:slideUp .16s var(--ease-spring);max-height:calc(100vh - 90px);overflow-y:auto}.fbw-head{display:flex;align-items:center;justify-content:space-between;font-size:14px;font-weight:600;margin-bottom:10px}.fbw-x{border:0;background:transparent;font-size:19px;line-height:1;color:var(--text-3);cursor:pointer;padding:0 2px}.fbw-x:hover{color:var(--text)}.fbw-drop{margin-top:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:16px 12px;border:1.5px dashed var(--border);border-radius:var(--r-lg);background:var(--bg-elev);color:var(--text-3);cursor:pointer;text-align:center;transition:.15s;outline:none}.fbw-drop.on,.fbw-drop:focus-visible,.fbw-drop:hover{border-color:var(--primary);color:var(--primary-hover);background:var(--primary-soft)}.fbw-drop-txt{font-size:12px;line-height:1.5}.fbw-drop-txt b{color:var(--primary-hover)}.fbw-thumbs{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.fbw-thumb{position:relative;width:64px;height:64px;border-radius:var(--r-md);overflow:hidden;border:1px solid var(--border-2);background:var(--surface-2)}.fbw-thumb img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;display:block}.fbw-thumb button{position:absolute;top:2px;right:2px;width:18px;height:18px;border-radius:50%;border:0;background:rgba(17,24,39,.62);color:#fff;font-size:13px;line-height:18px;cursor:pointer;padding:0}.fbw-thumb button:hover{background:var(--danger)}