@charset "UTF-8";:root{--ink-900: #121212;--ink-700: #34383f;--ink-500: #5c626e;--ink-400: #8a909c;--ink-300: #aeb4bf;--paper: #ffffff;--surface: #f4f4f4;--surface-2: #eeeff2;--line: #e5e7eb;--line-strong: #cfd3da;--accent: #7baa2d;--accent-hover: #6b9527;--accent-soft: #eff6e4;--accent-amber: #fabf00;--accent-amber-soft: #fff6db;--success: #0e8345;--success-soft: #e6f4ec;--warning: #b25e09;--warning-soft: #fcf1e3;--danger: #c4382b;--danger-soft: #fbebe9;--font-sans: "Inter", -apple-system, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;--font-mono: "JetBrains Mono", "SF Mono", Consolas, monospace;--fs-12: 12px;--fs-13: 13px;--fs-14: 14px;--fs-16: 16px;--fs-20: 20px;--fs-24: 24px;--fs-32: 32px;--fs-40: 40px;--sp-4: 4px;--sp-8: 8px;--sp-12: 12px;--sp-16: 16px;--sp-24: 24px;--sp-32: 32px;--sp-48: 48px;--sp-64: 64px;--r-sm: 6px;--r-md: 12px;--r-lg: 14px;--shadow-sm: 0 1px 2px rgba(18, 18, 18, .05);--shadow-md: 0 6px 24px rgba(18, 18, 18, .06);--t-fast: .15s;--t-base: .22s;--ease: cubic-bezier(.2, .6, .2, 1);--motion-fast: .12s;--motion-base: .18s;--motion-slow: .24s;--ease-standard: cubic-bezier(.2, .8, .2, 1);--ease-inout: cubic-bezier(.4, 0, .2, 1);--hover-line: #d7dbe2;--shadow-hover: 0 4px 16px rgba(18, 18, 18, .07);--shadow-lift: 0 10px 30px rgba(18, 18, 18, .08);--focus-ring-width: 3px;--focus-ring-color: #7baa2d;--focus-ring-offset: 2px;--focus-ring-soft: 0 0 0 3px color-mix(in srgb, #7baa2d 12%, transparent);--z-sticky: 20;--z-topbar: 50}*,*:before,*:after{box-sizing:border-box}html,body{height:100%}body{margin:0;font-family:var(--font-sans);font-size:var(--fs-14);line-height:1.6;color:var(--ink-900);background:var(--surface);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3,h4,h5,h6{margin:0;font-family:var(--font-sans);color:var(--ink-900)}h1{font-size:var(--fs-24);font-weight:650;line-height:1.25}h2{font-size:var(--fs-20);font-weight:600;line-height:1.3}h3{font-size:var(--fs-16);font-weight:600;line-height:1.4}h4{font-size:var(--fs-14);font-weight:600}p{margin:0}a{color:var(--accent)}button,input,select,textarea{font-family:inherit;font-size:inherit}img{max-width:100%;display:block}ul,ol{margin:0;padding:0;list-style:none}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media(prefers-reduced-motion:reduce){:root{--motion-fast: .01ms;--motion-base: .01ms;--motion-slow: .01ms}*,*:before,*:after{animation-duration:.01ms!important;animation-delay:0ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;transition-delay:0ms!important;scroll-behavior:auto!important}}*{scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent}*::-webkit-scrollbar{width:8px;height:8px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:4px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.page{width:100%;max-width:1440px;margin:0 auto;padding:var(--sp-32) var(--sp-32) var(--sp-64)}.page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--sp-16);flex-wrap:wrap;margin-bottom:var(--sp-24)}.page-title{font-size:var(--fs-24);font-weight:650;line-height:1.25}.page-desc{margin-top:var(--sp-4);color:var(--ink-500)}.page-actions{display:flex;align-items:center;gap:var(--sp-12)}.section{margin-bottom:var(--sp-32)}.section-title{font-size:var(--fs-16);font-weight:600;margin-bottom:var(--sp-12)}.grid{display:grid;grid-template-columns:repeat(12,1fr);gap:var(--sp-24)}.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--sp-24)}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-24)}.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-24)}@media(max-width:1199.98px){.grid-4{grid-template-columns:repeat(2,1fr)}}@media(max-width:1023.98px){.grid{grid-template-columns:repeat(6,1fr)}.grid-3,.grid-4{grid-template-columns:repeat(2,1fr)}}@media(max-width:639.98px){.grid,.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}}.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-sm);padding:var(--sp-24)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-8);height:40px;padding:0 var(--sp-16);border:1px solid transparent;border-radius:var(--r-sm);background:transparent;font-family:var(--font-sans);font-size:var(--fs-14);font-weight:600;line-height:1;color:var(--ink-700);text-decoration:none;white-space:nowrap;cursor:pointer;transition-property:background-color,border-color,color,opacity,transform,box-shadow;transition-duration:var(--motion-base, .18s);transition-timing-function:var(--ease-standard, cubic-bezier(.2, .8, .2, 1))}.btn:hover{color:var(--ink-900)}.btn:disabled,.btn[aria-disabled=true]{opacity:.5;cursor:not-allowed;pointer-events:none}.btn-primary{background:var(--accent);color:#fff;transition-property:transform,box-shadow,border-color,background-color;transition-duration:var(--motion-base, .18s);transition-timing-function:var(--ease-standard, cubic-bezier(.2, .8, .2, 1))}.btn-primary:hover,.btn-primary:focus-visible{border-color:transparent;box-shadow:var(--shadow-hover, 0 4px 16px rgba(18, 18, 18, .07))}@media(prefers-reduced-motion:no-preference){.btn-primary:hover,.btn-primary:focus-visible{transform:translateY(-1px)}.btn-primary:active{transform:translateY(0)}}.btn-primary:hover{background:var(--accent-hover);color:#fff}.btn-ghost{border-color:var(--line);color:var(--ink-700);transition-property:transform,box-shadow,border-color,background-color;transition-duration:var(--motion-base, .18s);transition-timing-function:var(--ease-standard, cubic-bezier(.2, .8, .2, 1))}.btn-ghost:hover,.btn-ghost:focus-visible{border-color:var(--hover-line, #d7dbe2);box-shadow:var(--shadow-hover, 0 4px 16px rgba(18, 18, 18, .07))}@media(prefers-reduced-motion:no-preference){.btn-ghost:hover,.btn-ghost:focus-visible{transform:translateY(-1px)}.btn-ghost:active{transform:translateY(0)}}.btn-ghost:hover{background:var(--surface-2);color:var(--ink-900)}.btn-danger{background:var(--danger);color:var(--paper);transition-property:transform,box-shadow,border-color,background-color;transition-duration:var(--motion-base, .18s);transition-timing-function:var(--ease-standard, cubic-bezier(.2, .8, .2, 1))}.btn-danger:hover,.btn-danger:focus-visible{border-color:transparent;box-shadow:var(--shadow-hover, 0 4px 16px rgba(18, 18, 18, .07))}@media(prefers-reduced-motion:no-preference){.btn-danger:hover,.btn-danger:focus-visible{transform:translateY(-1px)}.btn-danger:active{transform:translateY(0)}}.btn-danger:hover{background:color-mix(in srgb,var(--danger) 85%,var(--ink-900));color:var(--paper)}.btn-subtle{color:var(--ink-500)}.btn-subtle:hover{background:var(--surface-2);color:var(--ink-700)}.btn-sm{height:32px;padding:0 var(--sp-12);font-size:var(--fs-13)}.spinner{display:inline-block;width:14px;height:14px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin .8s linear infinite;flex-shrink:0}@keyframes spin{to{transform:rotate(360deg)}}.table-wrap{overflow-x:auto}.table{width:100%;border-collapse:separate;border-spacing:0;font-variant-numeric:tabular-nums}.table th{position:sticky;top:0;z-index:1;background:var(--paper);padding:var(--sp-8) var(--sp-16);border-bottom:1px solid var(--line-strong);font-size:var(--fs-12);font-weight:600;color:var(--ink-500);text-align:left;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}.table td{height:44px;padding:var(--sp-8) var(--sp-16);border-bottom:1px solid var(--line);color:var(--ink-700);vertical-align:middle}.table tbody tr:nth-child(2n) td{background:var(--surface)}.table tbody tr:hover td{background:var(--surface-2)}.table td.num,.table th.num{text-align:right;font-variant-numeric:tabular-nums}.table td.center,.table th.center{text-align:center}.badge{display:inline-flex;align-items:center;gap:var(--sp-4);padding:2px var(--sp-8);border-radius:999px;font-size:var(--fs-12);font-weight:600;line-height:1.5;white-space:nowrap}.badge-neutral{background:var(--surface-2);color:var(--ink-500)}.badge-accent{background:var(--accent-soft);color:#5f831f}.badge-amber{background:var(--accent-amber-soft);color:#8a6d00}.badge-success{background:var(--success-soft);color:var(--success)}.badge-warning{background:var(--warning-soft);color:var(--warning)}.badge-danger{background:var(--danger-soft);color:var(--danger)}.form-label{display:block;margin-bottom:var(--sp-8);font-size:var(--fs-13);font-weight:600;color:var(--ink-700)}.form-control{display:block;width:100%;height:40px;padding:0 var(--sp-12);border:1px solid var(--line);border-radius:var(--r-sm);background:var(--paper);font-family:var(--font-sans);font-size:var(--fs-14);color:var(--ink-900);transition:border-color var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease)}.form-control::placeholder{color:var(--ink-400)}.form-control:hover{border-color:var(--line-strong)}.form-control:focus{outline:none;border-color:var(--focus-ring-color, #7baa2d);box-shadow:var(--focus-ring-soft, 0 0 0 3px rgba(123, 170, 45, .12))}.form-control[disabled]{background:var(--surface-2);color:var(--ink-400);cursor:not-allowed}textarea.form-control{height:auto;min-height:80px;padding:var(--sp-8) var(--sp-12);resize:vertical}.form-error{display:flex;align-items:center;gap:var(--sp-4);margin-top:var(--sp-4);font-size:var(--fs-12);color:var(--danger);animation:field-shake .2s var(--ease-inout, cubic-bezier(.4, 0, .2, 1)) 1 both}@media(prefers-reduced-motion:reduce){.form-error{animation:none}}@keyframes field-shake{0%,to{transform:translate(0)}25%{transform:translate(-3px)}50%{transform:translate(3px)}75%{transform:translate(-3px)}}.form-hint{margin-top:var(--sp-4);font-size:var(--fs-12);color:var(--ink-400)}.hint{font-size:var(--fs-12);color:var(--ink-400)}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.divider{height:1px;margin:var(--sp-16) 0;border:none;background:var(--line)}.skeleton{position:relative;overflow:hidden;border-radius:var(--r-sm);background:var(--surface-2)}.skeleton:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 0%,color-mix(in srgb,var(--paper) 85%,transparent) 50%,transparent 100%);animation:shimmer 1.4s ease-in-out infinite}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}@media print{.no-print{display:none!important}body{background:var(--paper)}}.print-only,.report-only{display:none}@media print{.shell{height:auto!important;overflow:visible!important}.content{overflow:visible!important}.topbar,.no-print{display:none!important}.print-only.show-print,.report-only.show-print{display:block!important}.page{max-width:none;padding:0}@page{margin:16mm}}@media print{*,*:before,*:after{animation:none!important;transition:none!important;box-shadow:none!important}[data-sticky],.topbar,.step-actions,.totals-col,.table th{position:static!important}}.enter-play>*{animation:motion-enter var(--motion-slow, .24s) var(--ease-inout, cubic-bezier(.4, 0, .2, 1)) var(--enter-delay, 0ms) 1 both}@media(prefers-reduced-motion:reduce){.enter-play>*{animation:none}}@keyframes motion-enter{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.enter-play>*:nth-child(1){--enter-delay: 0ms}.enter-play>*:nth-child(2){--enter-delay: 40ms}.enter-play>*:nth-child(3){--enter-delay: 80ms}.enter-play>*:nth-child(n+4){--enter-delay: .12s}
