:root{--color-primary:#1f6f54;--color-primary-hover:#195943;--color-primary-soft:#edf7f2;--color-secondary:#374151;--color-neutral-0:#fff;--color-neutral-50:#f8f9fa;--color-neutral-100:#f3f4f6;--color-neutral-200:#e5e7eb;--color-neutral-300:#d1d5db;--color-neutral-400:#9ca3af;--color-neutral-500:#6b7280;--color-neutral-700:#374151;--color-neutral-900:#111827;--color-success:#15803d;--color-success-soft:#f0fdf4;--color-warning:#b45309;--color-error:#b91c1c;--color-error-soft:#fef2f2;--color-info:#0f766e;--text-xs:12px;--text-sm:14px;--text-base:16px;--text-lg:20px;--text-xl:24px;--text-2xl:32px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-6:24px;--space-8:32px;--space-12:48px;--space-16:64px;--radius-sm:6px;--radius-md:8px;--border-width:1px;--focus-width:2px;--icon-inline:16px;--icon-standalone:20px;--sidebar-width:240px;--header-height:64px;--content-max:1440px;--control-height:40px;--control-height-sm:32px;--table-row-height:48px;--shadow-1:0 1px 3px #00000014;--shadow-2:0 4px 12px #0000001a}*{box-sizing:border-box}html,body,#app{min-height:100%;margin:0}body{color:var(--color-neutral-900);background:var(--color-neutral-50);font-family:Microsoft YaHei,PingFang SC,Arial,sans-serif;font-size:var(--text-base);font-weight:400;line-height:1.5}button,input,select,textarea{font:inherit}button,a,input,select,textarea{outline:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:var(--focus-width) solid var(--color-primary);outline-offset:var(--space-1)}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:600;line-height:1.25}h1{font-size:var(--text-xl)}h2{font-size:var(--text-lg)}h3{font-size:var(--text-base)}a{color:inherit;text-decoration:none}.page{gap:var(--space-6);display:grid}.page-header{justify-content:space-between;align-items:center;gap:var(--space-4);display:flex}.page-actions,.toolbar,.form-actions{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.panel{background:var(--color-neutral-0);border:var(--border-width) solid var(--color-neutral-200);border-radius:var(--radius-md);overflow:hidden}.panel-header{min-height:var(--table-row-height);padding:var(--space-3) var(--space-4);border-bottom:var(--border-width) solid var(--color-neutral-200);justify-content:space-between;align-items:center;display:flex}.panel-body{padding:var(--space-4)}.button{justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--control-height);padding:var(--space-2) var(--space-4);border:var(--border-width) solid transparent;border-radius:var(--radius-sm);cursor:pointer;font-size:var(--text-sm);white-space:nowrap;font-weight:600;display:inline-flex}.button:disabled{cursor:not-allowed;opacity:.5}.button-primary{color:var(--color-neutral-0);background:var(--color-primary)}.button-primary:hover:not(:disabled){background:var(--color-primary-hover)}.button-secondary{color:var(--color-neutral-700);background:var(--color-neutral-0);border-color:var(--color-neutral-300)}.button-secondary:hover:not(:disabled){background:var(--color-neutral-100)}.button-danger{color:var(--color-error);background:var(--color-neutral-0);border-color:var(--color-error)}.button-sm{min-height:var(--control-height-sm);padding:var(--space-1) var(--space-2)}.icon-inline{width:var(--icon-inline);height:var(--icon-inline)}.icon-standalone{width:var(--icon-standalone);height:var(--icon-standalone)}.field{gap:var(--space-2);display:grid}.field label{color:var(--color-neutral-700);font-size:var(--text-sm);font-weight:600}.input,.select,.textarea{width:100%;min-height:var(--control-height);padding:var(--space-2) var(--space-3);color:var(--color-neutral-900);background:var(--color-neutral-0);border:var(--border-width) solid var(--color-neutral-300);border-radius:var(--radius-sm);font-size:var(--text-sm)}.input:focus,.select:focus,.textarea:focus{border-color:var(--color-primary)}.textarea{min-height:calc(var(--space-16) + var(--space-8));resize:vertical}.form-grid{gap:var(--space-4);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.form-grid-3{gap:var(--space-4);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.table-scroll{overflow:auto}.data-table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.data-table th,.data-table td{height:var(--table-row-height);padding:var(--space-2) var(--space-4);text-align:left;vertical-align:middle;border-bottom:var(--border-width) solid var(--color-neutral-200);white-space:nowrap}.data-table th{z-index:1;color:var(--color-neutral-500);background:var(--color-neutral-50);font-weight:600;position:sticky;top:0}.data-table tbody tr:hover{background:var(--color-neutral-50)}.data-table tbody tr:last-child td{border-bottom:0}.badge{padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);background:var(--color-neutral-100);color:var(--color-neutral-700);font-size:var(--text-xs);align-items:center;font-weight:600;display:inline-flex}.badge-success{color:var(--color-success)}.badge-warning{color:var(--color-warning)}.badge-error{color:var(--color-error)}.metrics-grid{gap:var(--space-4);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.metric{gap:var(--space-2);padding:var(--space-4);background:var(--color-neutral-0);border:var(--border-width) solid var(--color-neutral-200);border-radius:var(--radius-md);display:grid}.metric-label{color:var(--color-neutral-500);font-size:var(--text-sm)}.metric-value{font-size:var(--text-2xl);font-weight:600;line-height:1.25}.empty,.loading,.error-state{min-height:calc(var(--space-16) * 3);padding:var(--space-8);color:var(--color-neutral-500);text-align:center;place-items:center;display:grid}.error-state{color:var(--color-error)}.alert{padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);font-size:var(--text-sm)}.alert-error{color:var(--color-error);background:var(--color-error-soft)}.alert-success{color:var(--color-success);background:var(--color-success-soft)}.chart{width:100%;min-height:calc(var(--space-16) * 5)}.text-secondary{color:var(--color-neutral-500)}.text-error{color:var(--color-error)}.number{font-variant-numeric:tabular-nums}@media (max-width:1024px){.metrics-grid,.form-grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:768px){.page-header{flex-direction:column;align-items:flex-start}.metrics-grid,.form-grid,.form-grid-3{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:0s!important;animation-duration:0s!important}}
