:root{color-scheme:light;--color-shell: #1f2933;--color-shell-soft: #31444d;--color-primary: #14a67d;--color-primary-hover: #0f766e;--color-page: #eef3f8;--color-surface: #ffffff;--color-text: #1f2933;--color-muted: #64748b;--color-border: #dde7f1;--color-soft-border: #edf2f7;--color-warning: #f59e0b;--color-danger: #dc2626;--color-info: #2563eb;--color-success-soft: #dffbef;--color-danger-soft: #fee2e2;--radius-sm: 8px;--radius-md: 10px;--radius-lg: 14px;--shadow-card: 0 8px 20px rgba(20, 32, 51, .07);--shadow-dialog: 0 24px 50px rgba(20, 32, 51, .16);--surface-raised: var(--color-surface);--surface-soft: #f8fafc;--border-subtle: var(--color-border);--text-main: var(--color-text);--text-muted: var(--color-muted);--accent-strong: var(--color-primary-hover);--danger-strong: var(--color-danger);--shadow-sm: var(--shadow-card);--shadow-lg: var(--shadow-dialog);font-family:Inter,Noto Sans SC,Microsoft YaHei,PingFang SC,Segoe UI,Arial,sans-serif}*{box-sizing:border-box}html,body,#app{min-height:100%;margin:0}body{background:var(--color-page);color:var(--color-text);font-family:Inter,Noto Sans SC,Microsoft YaHei,PingFang SC,Segoe UI,Arial,sans-serif;font-size:14px;letter-spacing:0}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}.page{width:min(100%,1120px);margin-inline:auto}.page-wide{width:min(100%,1188px);margin-inline:auto}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:24px}.page-title{margin:0;font-size:26px;font-weight:700;color:var(--color-text)}.page-subtitle{margin:8px 0 0;color:var(--color-muted);line-height:1.6}.surface-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card)}.btn-primary,.btn-secondary,.btn-danger,.btn-ghost{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:38px;padding:0 16px;border-radius:var(--radius-md);border:1px solid transparent;font-size:13px;font-weight:700;white-space:nowrap;transition:background .15s ease,border-color .15s ease,color .15s ease}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:not(:disabled):hover{background:var(--color-primary-hover)}.btn-secondary{background:#fff;color:var(--color-text);border-color:var(--color-border)}.btn-secondary:not(:disabled):hover{background:#f8fafc}.btn-ghost{background:transparent;color:var(--color-text);border-color:transparent}.btn-ghost:not(:disabled):hover{background:#ffffffb3;border-color:var(--color-soft-border)}.btn-danger{background:#fff1f2;color:var(--color-danger);border-color:#fecdd3}.btn-primary:focus-visible,.btn-secondary:focus-visible,.btn-danger:focus-visible,.btn-ghost:focus-visible{outline:3px solid rgba(20,166,125,.28);outline-offset:2px}.btn-primary:disabled,.btn-secondary:disabled,.btn-danger:disabled,.btn-ghost:disabled{cursor:not-allowed;opacity:.55}.form-field,.filter-select,.filter-input{width:100%;min-height:42px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:#f8fafc;color:var(--color-text);padding:0 14px;outline:none}.form-field:focus,.filter-select:focus,.filter-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #14a67d29}.filter-bar{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:18px;margin-bottom:18px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card)}.error,.error-message{color:var(--color-danger);font-size:13px}.loading{color:var(--color-muted);padding:40px;text-align:center}@media (max-width: 900px){.page,.page-wide{width:100%}.page-header{flex-direction:column}}
