.lg-page{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.12fr) minmax(420px,.88fr);background:#f4f1e8;color:#1f2937;font-family:Microsoft YaHei,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;overflow:hidden}.lg-visual{position:relative;min-height:100vh;padding:34px 48px 28px;box-sizing:border-box;background:radial-gradient(ellipse 80% 75% at 88% 12%,rgba(212,176,106,.17),transparent 55%),radial-gradient(ellipse 70% 80% at 6% 86%,rgba(47,138,95,.28),transparent 58%),linear-gradient(145deg,#071c14,#0d2c20 52%,#123a29);color:#fff;display:flex;flex-direction:column;overflow:hidden}.lg-visual:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:56px 56px;-webkit-mask-image:linear-gradient(to bottom,#000000a6,#0000002e);mask-image:linear-gradient(to bottom,#000000a6,#0000002e);pointer-events:none}.lg-orb{position:absolute;border-radius:50%;filter:blur(10px);pointer-events:none;opacity:.6}.lg-orb.a{width:300px;height:300px;right:-110px;top:18%;background:radial-gradient(circle,rgba(212,176,106,.23),transparent 68%)}.lg-orb.b{width:420px;height:420px;left:-180px;bottom:-160px;background:radial-gradient(circle,rgba(47,138,95,.35),transparent 70%)}.lg-ring{position:absolute;right:-130px;top:10%;width:520px;height:520px;border:1px solid rgba(212,176,106,.15);border-radius:50%;pointer-events:none}.lg-ring:before,.lg-ring:after{content:"";position:absolute;border-radius:50%;border:1px solid rgba(212,176,106,.1);inset:48px}.lg-ring:after{inset:112px}.lg-brand{position:relative;z-index:2;display:flex;align-items:center;gap:12px}.lg-mark{width:38px;height:38px;border-radius:11px;background:linear-gradient(140deg,#3b9c6b,#d4b06a);display:grid;place-items:center;box-shadow:0 8px 22px #00000038;color:#fff;font-weight:800;font-size:15px}.lg-brand-name{font-size:15px;font-weight:700;letter-spacing:.8px;line-height:1.25}.lg-brand-name small{display:block;font-size:9px;letter-spacing:2.4px;color:#a9c7b6;font-weight:500;margin-top:2px}.lg-hero{position:relative;z-index:2;margin-top:clamp(70px,10vh,122px);max-width:560px}.lg-eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:10px;letter-spacing:2.8px;color:#d4b06a;font-weight:700;text-transform:uppercase}.lg-eyebrow:before{content:"";width:26px;height:1px;background:#d4b06a;opacity:.7}.lg-hero h1{margin:18px 0 0;font-size:clamp(38px,4.2vw,58px);line-height:1.13;letter-spacing:-1px;font-weight:800}.lg-hero h1 em{color:#d4b06a;font-style:normal}.lg-hero p{margin:20px 0 0;color:#b8cec2;font-size:13px;line-height:1.9;max-width:460px}.lg-features{display:flex;gap:8px;flex-wrap:wrap;margin-top:24px}.lg-feature{display:inline-flex;align-items:center;gap:6px;border:1px solid rgba(212,176,106,.24);background:#ffffff0b;border-radius:30px;padding:5px 11px;font-size:10.5px;color:#d6e5db;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.lg-feature i{width:5px;height:5px;border-radius:50%;background:#7fd39b;display:inline-block}.lg-flow{position:relative;z-index:2;margin-top:clamp(30px,4.5vh,52px);width:min(520px,100%);border-top:1px solid rgba(255,255,255,.13);padding-top:17px}.lg-flow-title{font-size:10.5px;color:#b8cec2;letter-spacing:.5px;display:flex;justify-content:space-between}.lg-flow-title span{color:#7f9c8a;font-size:8px;letter-spacing:2px}.lg-flow-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:11px}.lg-flow-steps>div{position:relative;padding-left:30px}.lg-flow-steps b{position:absolute;left:0;top:0;color:#d4b06a;font-size:10px;letter-spacing:.5px;opacity:.9}.lg-flow-steps strong{display:block;color:#e7f0ea;font-size:12px;font-weight:600}.lg-flow-steps small{display:block;color:#8fa99b;font-size:9.5px;line-height:1.55;margin-top:4px}.lg-preview{position:relative;z-index:2;margin-top:clamp(34px,5vh,58px);width:min(480px,100%);border:1px solid rgba(255,255,255,.11);background:linear-gradient(160deg,#ffffff17,#ffffff09);border-radius:16px;padding:15px 17px;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 22px 60px #00000038}.lg-preview-top{display:flex;justify-content:space-between;align-items:center;font-size:10.5px;color:#acc6b8}.lg-preview-top b{color:#fff;font-size:11.5px;font-weight:600}.lg-preview-body{display:flex;align-items:center;gap:20px;margin-top:12px}.lg-ring-score{width:74px;height:74px;border-radius:50%;background:conic-gradient(#d4b06a 0 83%,#ffffff1f 83% 100%);display:grid;place-items:center;flex:none;position:relative}.lg-ring-score:before{content:"";position:absolute;inset:6px;border-radius:50%;background:#102b20}.lg-ring-score span{position:relative;z-index:1;font-size:21px;font-weight:800;color:#fff}.lg-ring-score small{font-size:9px;color:#a8c1b2;margin-left:1px}.lg-metrics{flex:1;display:grid;gap:7px}.lg-metric{display:grid;grid-template-columns:54px 1fr 34px;align-items:center;gap:8px;font-size:9.5px;color:#aac3b5}.lg-metric-bar{height:4px;background:#ffffff1f;border-radius:3px;overflow:hidden}.lg-metric-bar>i{display:block;height:4px;border-radius:3px;background:linear-gradient(90deg,#4da878,#d4b06a)}.lg-metric b{text-align:right;color:#e6f0e9;font-weight:600}.lg-preview-foot{display:flex;gap:16px;margin-top:12px;padding-top:10px;border-top:1px solid rgba(255,255,255,.09);font-size:9.5px;color:#93ad9e}.lg-preview-foot b{color:#d4b06a;margin-left:3px}.lg-visual-foot{position:relative;z-index:2;margin-top:auto;padding-top:28px;display:flex;justify-content:space-between;gap:12px;font-size:9.5px;color:#7f9c8a;letter-spacing:.4px}.lg-panel{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:32px;box-sizing:border-box;background:radial-gradient(ellipse 55% 45% at 100% 0%,rgba(212,176,106,.15),transparent 60%),radial-gradient(ellipse 65% 50% at 0% 100%,rgba(47,138,95,.1),transparent 60%),#f7f4ea;position:relative}.lg-card{width:min(382px,100%);background:#ffffffc7;border:1px solid rgba(16,45,32,.08);border-radius:22px;padding:35px 34px 28px;box-shadow:0 30px 80px #102d201a,0 2px #ffffffb3 inset;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);position:relative;z-index:1}.lg-mobile-brand{display:none}.lg-kicker{font-size:9px;letter-spacing:2.6px;color:#9a6b1f;font-weight:700}.lg-card h2{margin:9px 0 0;font-size:27px;color:#102d20;letter-spacing:-.4px}.lg-card .lg-desc{margin:7px 0 0;font-size:11.5px;color:#7b847e;line-height:1.6}.lg-form{margin-top:25px;display:grid;gap:15px}.lg-field label{display:block;font-size:11px;color:#4b5563;font-weight:600;margin-bottom:6px}.lg-input-wrap{position:relative}.lg-input-wrap svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:#8a968e;pointer-events:none}.lg-input{width:100%;height:44px;box-sizing:border-box;border:1px solid #dce1da;border-radius:10px;background:#ffffffdb;padding:0 40px 0 37px;font-size:13px;color:#102d20;outline:none;transition:border-color .18s,box-shadow .18s,background .18s;font-family:inherit}.lg-input::placeholder{color:#b6bdb7}.lg-input:focus{border-color:#1f6b4a;box-shadow:0 0 0 3px #1f6b4a1a;background:#fff}.lg-input:disabled{background:#f4f5f2}.lg-eye{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:30px;height:30px;border:0;background:transparent;color:#8a968e;cursor:pointer;border-radius:6px;display:grid;place-items:center}.lg-eye:hover{background:#f0f3ef;color:#1f6b4a}.lg-submit{width:100%;height:46px;border:0;border-radius:10px;background:linear-gradient(135deg,#1f6b4a,#2f8a5f 58%,#3b9c6b);color:#fff;font-size:13px;font-weight:700;letter-spacing:3px;cursor:pointer;margin-top:3px;box-shadow:0 10px 22px #1f6b4a38;transition:transform .15s,box-shadow .15s,opacity .15s;font-family:inherit}.lg-submit:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 14px 28px #1f6b4a45}.lg-submit:active:not(:disabled){transform:translateY(0)}.lg-submit:disabled{opacity:.6;cursor:not-allowed}.lg-error{margin-top:14px;padding:9px 11px;border-radius:8px;background:#fdf1ed;border:1px solid #f0cfc5;color:#a63d2e;font-size:11.5px;line-height:1.5}.lg-demo{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:18px;padding-top:15px;border-top:1px solid #e8e8df;font-size:10.5px;color:#8b938c}.lg-demo a{color:#1f6b4a;font-weight:700;text-decoration:none}.lg-demo a:hover{text-decoration:underline}.lg-security{margin-top:18px;display:flex;gap:8px;align-items:flex-start;font-size:9.5px;color:#9aa29b;line-height:1.6}.lg-security svg{flex:none;margin-top:1px;color:#9a6b1f}.lg-version{margin-top:18px;text-align:center;font-size:9px;color:#b0b6b0;letter-spacing:.8px}@media(max-width:1020px){.lg-page{grid-template-columns:minmax(0,1fr) minmax(380px,.9fr)}.lg-visual{padding:28px 32px 24px}.lg-hero h1{font-size:38px}.lg-preview{width:100%}}@media(max-width:820px){.lg-page{display:block;background:#f7f4ea;overflow:auto}.lg-visual{display:none}.lg-panel{min-height:100vh;padding:22px 16px}.lg-card{padding:28px 24px 24px;border-radius:18px}.lg-mobile-brand{display:flex;align-items:center;gap:10px;margin-bottom:24px}.lg-mobile-brand .lg-mark{width:34px;height:34px;border-radius:9px;font-size:13px}.lg-mobile-brand b{display:block;font-size:13px;color:#102d20}.lg-mobile-brand small{display:block;font-size:9px;letter-spacing:1.6px;color:#9a6b1f;margin-top:2px}.lg-card h2{font-size:24px}}@media(prefers-reduced-motion:reduce){.lg-submit,.lg-input{transition:none}}.ui-page{padding:20px 24px 32px;max-width:1680px;margin:0 auto}.ui-page__head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}.ui-page__title{margin:0;font-size:20px;line-height:28px;font-weight:600;color:var(--color-text, #1c1c1e);letter-spacing:.2px}.ui-page__sub{margin-top:4px;font-size:13px;line-height:20px;color:var(--color-text-muted, #8e8e93)}.ui-page__body>*+*{margin-top:12px}.ui-filterbar .ant-card-body{padding:12px 14px}.ui-filterbar__hint{font-size:13px;color:var(--color-text-muted, #8e8e93)}.ui-datatable .ant-card-body{padding:0}.ui-datatable__toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:12px 14px;border-bottom:1px solid var(--color-border, rgba(31, 55, 42, .14))}.ui-datatable .ant-table-thead>tr>th{font-weight:600;font-size:13px;white-space:nowrap}.ui-datatable .ant-table-tbody>tr>td{font-size:13px}.ui-datatable .ant-pagination{padding:12px 14px;margin:0!important}.ui-empty{padding:40px 16px;text-align:center}.ui-empty__title{font-size:14px;font-weight:500;color:var(--color-text-secondary, #3c3c43)}.ui-empty__desc{margin-top:4px;font-size:13px;color:var(--color-text-muted, #8e8e93)}.ui-empty__action{margin-top:12px}.ui-field__label{display:block;margin-bottom:6px;font-size:13px;line-height:20px;color:var(--color-text-secondary, #3c3c43)}.ui-batchbar{border:1px solid var(--color-info-border, #ead9b8);background:var(--color-info-bg, #fbf3e2);border-radius:var(--radius-control, 10px);padding:10px 14px;display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:13px}:root{--color-ok: #34c759;--color-ok-bg: #d1fadf;--color-ok-bg-soft: #f0fdf4;--color-ok-border: #b9f0c9;--color-ok-fg: #1a7f37;--color-warn: #ff9500;--color-warn-strong: #ff9500;--color-warn-bg: #fff0d6;--color-warn-bg-soft: #fffaf0;--color-warn-border: #ffd68f;--color-warn-border-soft: #ffe6b8;--color-warn-fg: #b45700;--color-danger: #ff3b30;--color-danger-bg: #ffebeb;--color-danger-bg-soft: #fff5f5;--color-danger-border: #ffc9c5;--color-danger-fg: #c81d12;--color-info: #9a6b1f;--color-info-bg: #fbf3e2;--color-info-bg-soft: #fdf9ee;--color-info-border: #ead9b8;--color-info-fg: #8a641f;--color-info-bg-subtle: #fdf9ee;--color-info-border-subtle: #eadfbf;--color-info-fg-strong: #7b5d2a;--color-running-bg: #fbf3e2;--color-running-fg: #9a6b1f;--color-primary: #1f6b4a;--color-primary-hover: #18583d;--color-brand-gradient-from: #1f6b4a;--color-brand-gradient-to: #b8944e;--brand-gradient: linear-gradient( 135deg, var(--color-brand-gradient-from) 0%, var(--color-brand-gradient-to) 100% );--color-text: #1c1c1e;--color-text-secondary: #3c3c43;--color-text-tertiary: #48484a;--color-text-muted: #8e8e93;--color-text-placeholder: #8e8e93;--color-surface: #ffffff;--color-surface-muted: #f3efe5;--color-bg: #f6f2e8;--color-bg-subtle: #efe9dc;--color-border: rgba(31, 55, 42, .14);--color-border-strong: rgba(31, 55, 42, .24);--color-avatar-bg: #eaf5ee;--color-sidebar-bg: #faf6ec;--color-sidebar-line: rgba(31, 55, 42, .09);--color-sidebar-text: rgba(20, 48, 34, .78);--color-sidebar-text-muted: rgba(20, 48, 34, .48);--color-overlay: rgba(0, 0, 0, .4);--focus-ring: 0 0 0 4px rgba(31, 107, 74, .18);--shadow-dropdown: 0 8px 24px rgba(0, 0, 0, .16);--shadow-login-card: 0 20px 60px rgba(0, 0, 0, .18);--shadow-card: 0 1px 4px rgba(0, 0, 0, .04), 0 4px 16px rgba(0, 0, 0, .06);--font-size-1: 11px;--font-size-2: 12px;--font-size-3: 13px;--font-size-4: 14px;--font-size-5: 16px;--font-size-6: 18px;--font-size-7: 24px;--font-size-8: 28px;--icon-size-sm: 18px;--icon-size-md: 20px;--icon-size-lg: 22px;--icon-size-xl: 48px;--primary: var(--color-primary);--primary-hover: var(--color-primary-hover);--success: var(--color-ok);--warning: var(--color-warn);--danger: var(--color-danger);--info: var(--color-info);--gray-50: var(--color-bg);--gray-100: var(--color-bg-subtle);--gray-200: var(--color-border);--gray-300: var(--color-border-strong);--gray-400: var(--color-text-placeholder);--gray-500: var(--color-text-muted);--gray-600: var(--color-text-tertiary);--gray-700: var(--color-text-secondary);--gray-900: var(--color-text);--sidebar-width: 240px;--header-height: 56px;--radius-card: 16px;--radius-control: 10px}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;font-size:var(--font-size-4);color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;letter-spacing:-.01em}a{color:var(--color-primary);text-decoration:none}button{cursor:pointer;font-family:inherit}input,select,textarea{font-family:inherit;font-size:var(--font-size-4)}.app-layout{display:flex;min-height:100vh}.sidebar{width:var(--sidebar-width);background:var(--color-sidebar-bg);color:var(--color-text);position:fixed;top:0;left:0;bottom:0;display:flex;flex-direction:column;z-index:100;border-right:.5px solid var(--color-border)}.sidebar-logo{padding:18px 20px;font-size:var(--font-size-5);font-weight:700;color:var(--color-text);border-bottom:.5px solid var(--color-sidebar-line);letter-spacing:-.02em}.sidebar-nav{flex:1;padding:10px;overflow-y:auto}.sidebar-group-title{display:flex;align-items:center;justify-content:space-between;width:100%;padding:18px 14px 8px;font-size:var(--font-size-4);font-weight:700;letter-spacing:.02em;color:var(--color-sidebar-text);background:none;border:none;cursor:pointer;text-align:left}.sidebar-group-title:hover{color:var(--color-text)}.sidebar-group-arrow{font-size:12px;opacity:.6;transition:transform .15s ease}.sidebar-group+.sidebar-group{margin-top:6px}.sidebar-nav a.sidebar-top-link{padding:12px 14px;margin:2px 0 8px;font-size:15px;font-weight:700;letter-spacing:.5px;color:var(--color-text);background:var(--color-bg-subtle);border:1px solid var(--color-border)}.sidebar-nav a.sidebar-top-link.active{background:var(--color-primary);color:var(--color-surface);border-color:var(--color-primary)}.sidebar-nav a{display:flex;align-items:center;padding:9px 14px 9px 22px;margin-bottom:2px;border-radius:9px;color:var(--color-sidebar-text);font-size:var(--font-size-3);font-weight:500;transition:background .15s ease,color .15s ease}.sidebar-nav a:hover{background:#7878801a;color:var(--color-text)}.sidebar-nav a.active{background:var(--color-primary);color:var(--color-surface);font-weight:600;box-shadow:0 2px 8px #1f6b4a40}.sidebar-nav .nav-icon{margin-right:10px;width:20px;text-align:center}.sidebar-footer{padding:12px 20px;border-top:.5px solid var(--color-sidebar-line);font-size:var(--font-size-2);color:var(--color-sidebar-text-muted)}.main-content{min-width:0;margin-left:var(--sidebar-width);flex:1;display:flex;flex-direction:column}.header{height:var(--header-height);background:#f9f9f9d1;-webkit-backdrop-filter:blur(20px) saturate(180%);backdrop-filter:blur(20px) saturate(180%);border-bottom:.5px solid var(--color-border);display:flex;align-items:center;justify-content:space-between;padding:0 24px;position:sticky;top:0;z-index:50;min-width:0}.header-title{font-size:18px;font-weight:700;letter-spacing:-.02em}.header-user{display:flex;align-items:center;gap:12px}.header-user .role-badge{background:var(--color-bg-subtle);padding:4px 12px;border-radius:999px;font-size:var(--font-size-2);font-weight:600;color:var(--color-text-tertiary)}.page-content{padding:24px;flex:1}.modal-backdrop{position:fixed;inset:0;background:var(--color-overlay);z-index:1000;display:flex;align-items:center;justify-content:center;padding:20px}.modal{background:var(--color-surface);border-radius:var(--radius-card);box-shadow:var(--shadow-dropdown);width:480px;max-width:100%;max-height:90vh;overflow:auto;padding:20px}.modal h3{margin:0 0 14px;font-size:17px;font-weight:600}.card{background:var(--color-surface);border-radius:var(--radius-card);border:.5px solid rgba(0,0,0,.02);padding:20px;margin-bottom:20px;box-shadow:var(--shadow-card)}.card-title{font-size:var(--font-size-5);font-weight:600;margin-bottom:16px;display:flex;justify-content:space-between;align-items:center}.table-container{overflow-x:auto}table{width:100%;border-collapse:collapse}th,td{padding:12px 16px;text-align:left;border-bottom:.5px solid var(--color-border)}th{background:var(--color-bg);font-weight:600;color:var(--color-text-secondary);font-size:var(--font-size-3)}tr:hover{background:var(--color-info-bg-soft)}.btn{display:inline-flex;align-items:center;justify-content:center;padding:9px 16px;border-radius:var(--radius-control);border:1px solid transparent;font-size:var(--font-size-4);font-weight:600;transition:all .15s ease}.btn:active{transform:scale(.98)}.btn-primary{background:var(--color-primary);color:var(--color-surface)}.btn-primary:hover{background:var(--color-primary-hover)}.btn-secondary{background:var(--color-surface);color:var(--color-text);border-color:var(--color-border-strong)}.btn-secondary:hover{background:var(--color-bg)}.btn-danger{background:var(--color-danger);color:var(--color-surface)}.btn-success{background:var(--color-ok);color:var(--color-surface)}.btn:disabled{opacity:.4;cursor:not-allowed;transform:none}.btn-sm{padding:5px 12px;font-size:var(--font-size-3)}.form-group{margin-bottom:16px}.form-label{display:block;margin-bottom:6px;font-weight:500;color:var(--color-text-secondary)}.form-input,.form-select,.form-textarea{width:100%;padding:9px 12px;border:none;border-radius:10px;outline:none;background:var(--color-bg);color:var(--color-text);transition:box-shadow .15s ease,background .15s ease;-webkit-appearance:none;appearance:none}.form-input::placeholder,.form-textarea::placeholder{color:var(--color-text-placeholder)}.form-input:focus,.form-select:focus,.form-textarea:focus{background:var(--color-surface);box-shadow:0 0 0 3px #1f6b4a29;border:1px solid rgba(31,107,74,.36)}.form-textarea{min-height:80px;resize:vertical;line-height:1.5}.status-badge{display:inline-block;padding:4px 12px;border-radius:999px;font-size:var(--font-size-2);font-weight:600;letter-spacing:.01em}.status-pending{background:var(--color-warn-bg);color:var(--color-warn-fg)}.status-approved{background:var(--color-info-bg);color:var(--color-info-fg)}.status-executing{background:var(--color-running-bg);color:var(--color-running-fg)}.status-confirmed{background:var(--color-ok-bg);color:var(--color-ok-fg)}.status-rejected,.status-failed{background:var(--color-danger-bg);color:var(--color-danger-fg)}.alert{padding:12px 16px;border-radius:12px;margin-bottom:16px;line-height:1.5}.alert-error{background:var(--color-danger-bg);color:var(--color-danger-fg);border:.5px solid var(--color-danger-border)}.alert-warning{background:var(--color-warn-bg);color:var(--color-warn-fg);border:.5px solid var(--color-warn-border-soft)}.alert-info{background:var(--color-info-bg);color:var(--color-info-fg);border:.5px solid var(--color-info-border)}.alert-success{background:var(--color-ok-bg);color:var(--color-ok-fg);border:.5px solid var(--color-ok-border)}.pagination{display:flex;justify-content:center;align-items:center;gap:8px;margin-top:20px}.pagination button{padding:6px 12px;border:.5px solid var(--color-border-strong);background:var(--color-surface);border-radius:8px;font-weight:500}.pagination button:disabled{opacity:.5}.pagination .page-info{color:var(--color-text-muted);font-size:var(--font-size-3)}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--color-bg)}.login-card{background:var(--color-surface);padding:40px;border-radius:20px;box-shadow:var(--shadow-login-card);width:400px;border:.5px solid rgba(0,0,0,.04)}.login-title{font-size:var(--font-size-7);font-weight:700;text-align:center;margin-bottom:8px;letter-spacing:-.02em}.login-subtitle{text-align:center;color:var(--color-text-muted);margin-bottom:32px}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:20px}.stat-card{background:var(--color-surface);border-radius:var(--radius-card);border:.5px solid rgba(0,0,0,.02);padding:20px;box-shadow:var(--shadow-card)}.stat-card-clickable{display:block;width:100%;text-align:left;cursor:pointer;font:inherit;color:inherit;transition:box-shadow .15s ease,transform .15s ease}.stat-card-clickable:hover{box-shadow:var(--shadow-card-hover, 0 6px 18px rgba(0, 0, 0, .08));transform:translateY(-1px)}.stat-card-clickable:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.stat-label{font-size:var(--font-size-3);color:var(--color-text-muted);margin-bottom:8px;font-weight:500}.stat-value{font-size:var(--font-size-8);font-weight:700;color:var(--color-text);letter-spacing:-.03em;font-variant-numeric:tabular-nums}.loading{text-align:center;padding:40px;color:var(--color-text-muted)}.spinner{display:inline-block;width:24px;height:24px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.idempotency-notice{background:var(--color-info-bg-subtle);border:.5px solid var(--color-info-border-subtle);color:var(--color-info-fg-strong);padding:10px 14px;border-radius:10px;font-size:var(--font-size-3);margin-bottom:16px;display:flex;align-items:center;gap:8px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-delay:0s!important;animation-iteration-count:1!important;transition-duration:0s!important;transition-delay:0s!important;scroll-behavior:auto!important}.spinner{animation:none!important}}.header-left{display:flex;align-items:center;gap:12px;min-width:0}.sidebar-toggle{display:none;width:34px;height:34px;border:1px solid var(--color-border);border-radius:8px;background:none;color:var(--color-text);font-size:18px;line-height:1;cursor:pointer;align-items:center;justify-content:center}.sidebar-backdrop{display:none}@media(max-width:768px){.sidebar{transform:translate(-100%);transition:transform .2s ease;z-index:1000;box-shadow:0 0 24px #0000002e}.sidebar.open{transform:translate(0)}.sidebar-backdrop{display:block;position:fixed;inset:0;background:#00000059;z-index:999}.main-content{margin-left:0}.sidebar-toggle{display:inline-flex}.header{padding:0 12px}.header-title{font-size:var(--font-size-4);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}@media(max-width:640px){.page-content{padding:16px}.page-content input,.page-content textarea,.page-content select{font-size:16px!important}.header-user{gap:6px!important}.role-badge,.header-change-pwd{display:none!important}.sidebar-toggle{width:44px;height:44px}.header-title{font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header-left{min-width:0;flex:1;overflow:hidden}}@media(max-width:640px){.btn,.btn-sm{min-height:44px!important}.header-user button{min-width:44px;min-height:44px!important}.fu-link-btn{display:inline-flex;align-items:center;min-height:44px;padding:8px 4px}.table-container{overflow-x:auto;-webkit-overflow-scrolling:touch}}.page{padding:0 0 28px}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px;flex-wrap:wrap}.page-title{margin:0;font-size:20px;line-height:1.3;font-weight:600}.page-sub{margin-top:4px;font-size:12px;color:var(--color-text-muted)}.toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.toolbar .form-input,.toolbar select{height:32px}.btn{height:32px;padding:0 14px;border-radius:6px;font-size:13px;line-height:1}.btn-sm{height:26px;padding:0 10px;font-size:12px;border-radius:5px}.table-scroll{overflow-x:auto;border-radius:8px}.table--wide{min-width:1080px}.table--wide th,.table--wide td{white-space:nowrap}.table td.wrap{white-space:normal;min-width:160px}.tabs{display:flex;gap:4px;flex-wrap:wrap;border-bottom:1px solid #e8ebef;margin:0 0 16px;padding:0}.tabs button{border:0;background:transparent;padding:10px 14px;font-size:13px;color:var(--color-text-muted);cursor:pointer;border-bottom:2px solid transparent}.tabs button.active{color:var(--color-primary, #166534);border-bottom-color:var(--color-primary, #166534);font-weight:600}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:16px}.stat-card{background:#fff;border:1px solid #e8ebef;border-radius:10px;padding:14px 16px}.stat-label{font-size:12px;color:var(--color-text-muted)}.stat-value{font-size:22px;font-weight:600;margin-top:6px;font-variant-numeric:tabular-nums}.stat-hint{font-size:11px;color:var(--color-text-muted);margin-top:4px}.quick-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.quick-card{display:block;background:#fff;border:1px solid #e8ebef;border-radius:10px;padding:14px 16px;text-decoration:none;color:inherit;transition:box-shadow .15s,border-color .15s}.quick-card:hover{border-color:var(--color-primary, #16a34a);box-shadow:0 2px 10px #1018280f}.quick-card-title{font-weight:600;font-size:14px}.quick-card-desc{font-size:12px;color:var(--color-text-muted);margin-top:4px}.section-title{font-size:14px;font-weight:600;margin:20px 0 10px}@media(max-width:640px){.page{padding:0 0 20px}.tabs{padding:0}}:root{--ui-radius-card: 16px;--ui-radius-control: 10px;--ui-shadow-card: 0 1px 2px rgba(20, 48, 34, .04), 0 6px 20px rgba(20, 48, 34, .06);--ui-shadow-pop: 0 12px 32px rgba(20, 48, 34, .16);--ui-border: rgba(31, 55, 42, .12);--ui-border-strong: rgba(31, 55, 42, .2);--ui-focus: 0 0 0 3px rgba(31, 107, 74, .18)}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background:var(--color-bg, #f6f2e8);color:var(--color-text, #1c1c1e)}*{scrollbar-width:thin;scrollbar-color:rgba(31,55,42,.28) transparent}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-thumb{background:#1f372a38;border-radius:999px;border:3px solid transparent;background-clip:content-box}*:focus-visible{outline:none;box-shadow:var(--ui-focus);border-radius:8px}.app-layout{background:var(--color-bg, #f6f2e8)}.sidebar{background:var(--color-sidebar-bg, #faf6ec);border-right:1px solid var(--color-sidebar-line, rgba(31, 55, 42, .09));padding:16px 12px 12px}.sidebar-logo{padding:6px 10px 16px;font-size:17px;font-weight:650;letter-spacing:.2px;color:var(--color-text, #1c1c1e)}.sidebar-nav{gap:2px}.sidebar-nav a,.sidebar-top-link{display:flex;align-items:center;gap:8px;padding:8px 12px;margin:1px 0;border-radius:10px;color:var(--color-sidebar-text, rgba(20, 48, 34, .78));font-size:13.5px;font-weight:500;text-decoration:none;transition:background .16s ease,color .16s ease}.sidebar-nav a:hover,.sidebar-top-link:hover{background:#1f6b4a12;color:var(--color-primary, #1f6b4a)}.sidebar-nav a.active,.sidebar-top-link.active{background:var(--color-primary, #1f6b4a);color:#fff;box-shadow:0 2px 8px #1f6b4a3d}.sidebar-group{margin-top:10px}.sidebar-group-title{width:100%;padding:14px 12px 6px;font-size:14px;font-weight:700;letter-spacing:.02em;color:#143022a8;background:none;border:0;cursor:pointer;text-align:left}.sidebar-group-arrow{font-size:12px;opacity:.6}.sidebar-footer{padding:12px 10px 4px;font-size:11px;color:var(--color-sidebar-text-muted, rgba(20, 48, 34, .48))}.header{height:56px;padding:0 20px;background:#ffffffd1;-webkit-backdrop-filter:saturate(1.2) blur(10px);backdrop-filter:saturate(1.2) blur(10px);border-bottom:1px solid var(--ui-border);position:sticky;top:0;z-index:30}.header-title{font-size:15px;font-weight:600;letter-spacing:.2px}.role-badge{display:inline-flex;align-items:center;height:26px;padding:0 10px;border-radius:999px;background:#eaf5ee;color:#1f6b4a;font-size:12px;font-weight:600}.sidebar-toggle{border-radius:10px;border:1px solid var(--ui-border);background:#fff;width:34px;height:34px;cursor:pointer}.page-content{padding:20px 24px 32px}.page{padding:0 0 24px}.page-head{gap:16px;margin-bottom:16px}.page-title{font-size:20px;line-height:28px;font-weight:650;letter-spacing:.2px;color:var(--color-text, #1c1c1e)}.page-sub{margin-top:4px;font-size:13px;line-height:20px;color:var(--color-text-muted, #8e8e93)}.section-title{font-size:15px;font-weight:600;margin:4px 0 12px}.toolbar{gap:8px}.toolbar .form-input,.toolbar select{height:36px}.card{background:var(--color-surface, #fff);border:1px solid var(--ui-border);border-radius:var(--ui-radius-card);box-shadow:var(--ui-shadow-card);padding:20px}.card-title{font-size:15px;font-weight:600;margin-bottom:12px}.card+.card{margin-top:12px}.stat-card,.quick-card{background:var(--color-surface, #fff);border:1px solid var(--ui-border);border-radius:var(--ui-radius-card);box-shadow:var(--ui-shadow-card);padding:16px 18px}.stat-card-clickable,.quick-card:hover{transition:transform .16s ease,box-shadow .16s ease}.stat-card-clickable:hover,.quick-card:hover{transform:translateY(-1px);box-shadow:var(--ui-shadow-pop)}.stat-label{font-size:12px;color:var(--color-text-muted, #8e8e93)}.stat-value{font-size:24px;font-weight:650;color:var(--color-text, #1c1c1e);font-variant-numeric:tabular-nums}.stat-hint{font-size:12px;color:var(--color-text-muted, #8e8e93)}.btn{height:36px;padding:0 16px;border-radius:var(--ui-radius-control);border:1px solid var(--ui-border-strong);background:#fff;color:var(--color-text-secondary, #3c3c43);font-size:13.5px;font-weight:550;box-shadow:0 1px 1px #1430220a;transition:background .16s ease,border-color .16s ease,box-shadow .16s ease,color .16s ease}.btn:hover{border-color:var(--color-primary, #1f6b4a);color:var(--color-primary, #1f6b4a);background:#f5faf7}.btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.btn-primary{background:var(--color-primary, #1f6b4a);border-color:var(--color-primary, #1f6b4a);color:#fff;box-shadow:0 2px 8px #1f6b4a33}.btn-primary:hover{background:var(--color-primary-hover, #18583d);border-color:var(--color-primary-hover, #18583d);color:#fff}.btn-secondary{background:#fff;border-color:var(--ui-border-strong);color:var(--color-text-secondary, #3c3c43)}.btn-danger{background:#fff;border-color:#ffc9c5;color:#c81d12}.btn-danger:hover{background:#fff5f5;border-color:#ff3b30;color:#c81d12}.btn-success{background:var(--color-ok-fg, #1a7f37);border-color:var(--color-ok-fg, #1a7f37);color:#fff}.btn-sm{height:30px;padding:0 12px;font-size:12.5px;border-radius:8px}.form-label{font-size:12.5px;font-weight:550;color:var(--color-text-secondary, #3c3c43);margin-bottom:6px}.form-input,.form-select,.form-textarea,select.form-input{height:36px;padding:0 12px;border-radius:var(--ui-radius-control);border:1px solid var(--ui-border-strong);background:#fff;color:var(--color-text, #1c1c1e);font-size:13.5px;transition:border-color .16s ease,box-shadow .16s ease}.form-textarea{height:auto;padding:10px 12px;line-height:20px}.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:var(--color-primary, #1f6b4a);box-shadow:var(--ui-focus)}.form-input::placeholder,.form-textarea::placeholder{color:var(--color-text-placeholder, #8e8e93)}.form-group{margin-bottom:14px}.table-container{background:var(--color-surface, #fff);border:1px solid var(--ui-border);border-radius:var(--ui-radius-card);box-shadow:var(--ui-shadow-card);padding:4px 16px 16px}.table-scroll{border-radius:12px}.table{width:100%;border-collapse:separate;border-spacing:0}.table th{background:var(--color-surface-muted, #f3efe5);color:var(--color-text-secondary, #3c3c43);font-size:12.5px;font-weight:600;padding:11px 12px;border-bottom:1px solid var(--ui-border);white-space:nowrap}.table th:first-child{border-top-left-radius:10px;border-bottom-left-radius:10px}.table th:last-child{border-top-right-radius:10px;border-bottom-right-radius:10px}.table td{padding:12px;border-bottom:1px solid var(--color-border, rgba(31, 55, 42, .09));font-size:13px;color:var(--color-text-secondary, #3c3c43)}.table tbody tr:last-child td{border-bottom:0}.table tbody tr:hover td{background:var(--color-info-bg-soft, #fdf9ee)}.pagination{display:flex;gap:8px;align-items:center;justify-content:flex-end;padding-top:12px;font-size:12.5px;color:var(--color-text-muted, #8e8e93)}.pagination button{height:30px;padding:0 12px;border-radius:8px;border:1px solid var(--ui-border-strong);background:#fff;font-size:12.5px;cursor:pointer}.pagination button:disabled{opacity:.45;cursor:not-allowed}.status-badge,.status-approved,.status-confirmed,.status-executing,.status-failed,.status-pending,.status-rejected{display:inline-flex;align-items:center;height:24px;padding:0 10px;border-radius:999px;font-size:12px;font-weight:600;border:1px solid transparent}.status-approved,.status-confirmed{background:#d1fadf;border-color:#b9f0c9;color:#1a7f37}.status-pending,.status-executing{background:#fff0d6;border-color:#ffd68f;color:#b45700}.status-failed,.status-rejected{background:#ffebeb;border-color:#ffc9c5;color:#c81d12}.alert{border-radius:12px;border:1px solid var(--ui-border);padding:12px 14px;font-size:13px;line-height:20px;background:#fbf3e2;color:#8a641f}.alert-info{background:#f5f7f6;border-color:var(--ui-border);color:var(--color-text-secondary, #3c3c43)}.alert-success{background:#f0fdf4;border-color:#b9f0c9;color:#1a7f37}.alert-warning{background:#fffaf0;border-color:#ffd68f;color:#b45700}.alert-error{background:#fff5f5;border-color:#ffc9c5;color:#c81d12}.modal-backdrop{background:#141e195c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal{border-radius:var(--ui-radius-card);box-shadow:var(--ui-shadow-pop);border:1px solid var(--ui-border);background:#fff}.spinner{border-color:#1f6b4a2e;border-top-color:var(--color-primary, #1f6b4a)}.loading{color:var(--color-text-muted, #8e8e93);font-size:13px}.tabs{display:flex;gap:6px;padding:4px;background:var(--color-surface-muted, #f3efe5);border-radius:12px;width:fit-content}.tabs button{height:32px;padding:0 14px;border-radius:9px;border:0;background:transparent;color:var(--color-text-secondary, #3c3c43);font-size:13px;font-weight:550;cursor:pointer}.tabs button.active{background:#fff;color:var(--color-primary, #1f6b4a);box-shadow:0 1px 3px #1430221f}@media(max-width:900px){.page-content{padding:14px 14px 24px}.card{padding:16px}}
