:root{--color-primary-50: #e6f4f5;--color-primary-100: #c2e4e6;--color-primary-200: #8fcdd1;--color-primary-300: #5bb4ba;--color-primary-400: #2e9aa3;--color-primary-500: #138992;--color-primary-600: #0e7c86;--color-primary-700: #0b656d;--color-primary-800: #084d53;--color-primary-900: #06393d;--color-bg: #f5f7f8;--color-surface: #ffffff;--color-subtle: #f0f3f4;--color-border: #e2e8ea;--color-border-strong: #cbd5d8;--text-primary: #1a2226;--text-secondary: #4a565c;--text-tertiary: #7a868c;--text-disabled: #aab4b9;--color-success: #1e8e5a;--color-success-soft: #e4f3ec;--color-success-text: #13633e;--color-warning: #c77b16;--color-warning-soft: #fbf0dd;--color-warning-text: #8a5410;--color-danger: #c2362f;--color-danger-soft: #fbe7e5;--color-danger-text: #8e241f;--color-info: var(--color-primary-600);--color-info-soft: var(--color-primary-50);--color-info-text: var(--color-primary-700);--num-positive: #8e241f;--num-negative: #13633e;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-pill: 999px;--elevation-1: 0 1px 2px rgba(16, 24, 40, .06), 0 1px 3px rgba(16, 24, 40, .08);--elevation-2: 0 4px 8px rgba(16, 24, 40, .08), 0 2px 4px rgba(16, 24, 40, .06);--elevation-3: 0 12px 24px rgba(16, 24, 40, .12);--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--fs-caption: 12px;--fs-body: 14px;--fs-body-lg: 15px;--fs-h3: 16px;--fs-h2: 18px;--fs-h1: 22px;--fs-display: 28px}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font-sans);font-size:var(--fs-body);color:var(--text-primary);background:var(--color-bg);-webkit-font-smoothing:antialiased}a{color:var(--color-primary-700);text-decoration:none}.tnum{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}.num-pos{color:var(--num-positive)}.num-neg{color:var(--num-negative)}.danger-text{color:var(--color-danger-text)}.muted{color:var(--text-tertiary)}.app{display:flex;min-height:100vh}.sidebar{width:220px;flex-shrink:0;background:var(--color-surface);border-right:1px solid var(--color-border);display:flex;flex-direction:column}.sidebar .brand{padding:var(--space-5) var(--space-4);font-size:var(--fs-h2);font-weight:700;color:var(--color-primary-700);border-bottom:1px solid var(--color-border)}.sidebar .brand small{display:block;font-size:var(--fs-caption);font-weight:400;color:var(--text-tertiary);margin-top:2px}.nav{padding:var(--space-2);overflow-y:auto;flex:1}.nav-group-title{font-size:var(--fs-caption);color:var(--text-tertiary);padding:var(--space-3) var(--space-3) var(--space-1)}.nav a{display:block;padding:10px var(--space-3);border-radius:var(--radius-md);color:var(--text-secondary);font-size:var(--fs-body);margin-bottom:2px}.nav a:hover{background:var(--color-subtle)}.nav a.active{background:var(--color-primary-50);color:var(--color-primary-700);font-weight:600}.main{flex:1;display:flex;flex-direction:column;min-width:0}.topbar{height:56px;background:var(--color-surface);border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-6)}.topbar .title{font-size:var(--fs-h2);font-weight:600}.topbar .right{display:flex;align-items:center;gap:var(--space-4)}.content{padding:var(--space-6);flex:1;overflow:auto}.account-switcher{position:relative}.account-menu{position:absolute;right:0;top:38px;z-index:60;min-width:200px;overflow:hidden;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--elevation-3)}.account-menu-head{padding:8px 12px;font-size:var(--fs-caption);color:var(--text-tertiary);border-bottom:1px solid var(--color-border)}.account-menu-item{padding:10px 12px;cursor:pointer;color:var(--text-primary);white-space:nowrap}.account-menu-item:hover{background:var(--color-subtle)}.account-menu-item.active{background:var(--color-primary-50);color:var(--color-primary-700)}.account-admin{margin-top:var(--space-5);padding-top:var(--space-4);border-top:1px solid var(--color-border)}.account-admin-head{font-weight:700;margin-bottom:var(--space-3)}.account-create{display:grid;grid-template-columns:minmax(150px,1fr) minmax(140px,1fr) minmax(140px,.8fr) auto;gap:var(--space-3);align-items:center;margin-bottom:var(--space-4)}.account-admin-table .select{min-width:130px}.row-actions{display:flex;gap:var(--space-2);flex-wrap:wrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:36px;padding:0 var(--space-4);border-radius:var(--radius-md);font-size:var(--fs-body);font-weight:500;cursor:pointer;border:1px solid transparent;white-space:nowrap;transition:background .12s,border-color .12s}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--color-primary-600);color:#fff}.btn-primary:hover:not(:disabled){background:var(--color-primary-700)}.btn-secondary{background:var(--color-surface);color:var(--text-primary);border-color:var(--color-border-strong)}.btn-secondary:hover:not(:disabled){background:var(--color-subtle)}.btn-text{background:transparent;color:var(--color-primary-700);height:auto;padding:4px 8px}.btn-text:hover:not(:disabled){background:var(--color-primary-50)}.btn-danger{background:var(--color-danger);color:#fff}.btn-sm{height:30px;padding:0 12px;font-size:var(--fs-caption)}.field{margin-bottom:var(--space-4)}.field>label{display:block;font-size:var(--fs-body);color:var(--text-secondary);margin-bottom:6px}.field .req{color:var(--color-danger);margin-left:2px}.input,.select,.textarea{width:100%;height:36px;padding:0 var(--space-3);font-size:var(--fs-body);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface);color:var(--text-primary);font-family:inherit}.textarea{height:auto;min-height:72px;padding:8px var(--space-3);resize:vertical}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--color-primary-500);box-shadow:0 0 0 3px var(--color-primary-50)}.input.readonly{background:var(--color-subtle);border-style:dashed;color:var(--text-secondary)}.field .hint{font-size:var(--fs-caption);color:var(--text-tertiary);margin-top:4px}.field .err{font-size:var(--fs-caption);color:var(--color-danger-text);margin-top:4px}.field .input.invalid{border-color:var(--color-danger)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--elevation-1)}.toolbar{display:flex;gap:var(--space-3);align-items:center;flex-wrap:wrap;margin-bottom:var(--space-4)}.toolbar .spacer{flex:1}.table-wrap{overflow-x:auto}table.tbl{width:100%;border-collapse:collapse;font-size:var(--fs-body)}table.tbl th,table.tbl td{padding:10px var(--space-3);text-align:left;border-bottom:1px solid var(--color-border)}table.tbl th{background:var(--color-subtle);color:var(--text-secondary);font-weight:600;font-size:var(--fs-caption);white-space:nowrap}table.tbl td.num,table.tbl th.num{text-align:right}table.tbl tbody tr:hover{background:var(--color-subtle)}table.tbl tfoot td{font-weight:700;background:var(--color-subtle);border-top:2px solid var(--color-border-strong)}.badge{display:inline-block;padding:2px 10px;border-radius:var(--radius-pill);font-size:var(--fs-caption);font-weight:600}.badge-warning{background:var(--color-warning-soft);color:var(--color-warning-text)}.badge-success{background:var(--color-success-soft);color:var(--color-success-text)}.badge-danger{background:var(--color-danger-soft);color:var(--color-danger-text)}.badge-info{background:var(--color-info-soft);color:var(--color-info-text)}.pager{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-3);margin-top:var(--space-4);font-size:var(--fs-body);color:var(--text-secondary)}.empty{text-align:center;padding:var(--space-10) var(--space-4);color:var(--text-tertiary)}.empty .big{font-size:var(--fs-h2);margin-bottom:var(--space-2)}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#10182873;display:flex;align-items:flex-start;justify-content:center;padding:6vh 16px;z-index:50}.modal{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--elevation-3);width:100%;max-width:560px;max-height:86vh;display:flex;flex-direction:column}.modal.lg{max-width:800px}.modal-head{padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border);font-size:var(--fs-h2);font-weight:600}.modal-body{padding:var(--space-5);overflow-y:auto}.modal-foot{padding:var(--space-4) var(--space-5);border-top:1px solid var(--color-border);display:flex;justify-content:flex-end;gap:var(--space-3)}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 var(--space-4)}.toasts{position:fixed;top:16px;left:50%;transform:translate(-50%);z-index:100;display:flex;flex-direction:column;gap:8px}.toast{padding:10px var(--space-4);border-radius:var(--radius-md);box-shadow:var(--elevation-2);color:#fff;font-size:var(--fs-body)}.toast.success{background:var(--color-success)}.toast.error{background:var(--color-danger)}.toast.info{background:var(--color-primary-700)}.stat-row{display:flex;gap:var(--space-4);flex-wrap:wrap;margin-bottom:var(--space-4)}.stat{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-4) var(--space-5);min-width:180px}.stat .label{font-size:var(--fs-caption);color:var(--text-tertiary)}.stat .value{font-size:var(--fs-h1);font-weight:700;margin-top:4px}.overview-page{display:flex;flex-direction:column;gap:var(--space-4)}.overview-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-1)}.overview-head h2{margin:2px 0 4px;font-size:var(--fs-h1);line-height:1.25}.overview-head p{margin:0;color:var(--text-tertiary)}.overview-kicker{color:var(--color-primary-700);font-size:var(--fs-caption);font-weight:700}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-4)}.metric-card{min-width:0;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-4);box-shadow:var(--elevation-1)}.metric-card-accent{border-color:var(--color-primary-500);box-shadow:inset 3px 0 0 var(--color-primary-600),var(--elevation-1)}.metric-label{color:var(--text-tertiary);font-size:var(--fs-caption)}.metric-value{margin-top:6px;font-size:var(--fs-h1);font-weight:700;line-height:1.2;overflow-wrap:anywhere}.metric-note{margin-top:6px;color:var(--text-tertiary);font-size:var(--fs-caption);line-height:1.45}.overview-panels{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(260px,.8fr);gap:var(--space-4)}.overview-panel{padding:var(--space-4)}.panel-title{font-weight:700;margin-bottom:var(--space-3)}.overview-split{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-3)}.overview-split div{min-width:0;padding:var(--space-3);border-radius:var(--radius-md);background:var(--color-subtle)}.overview-split span{display:block;color:var(--text-tertiary);font-size:var(--fs-caption);margin-bottom:4px}.overview-split b{display:block;overflow-wrap:anywhere}.overview-note,.overview-warning{margin:0;color:var(--text-secondary);line-height:1.6}.overview-warning{margin-top:var(--space-2);color:var(--color-warning-text)}.overview-table{overflow:hidden}.table-section-title{padding:var(--space-4) var(--space-4) 0;font-weight:700;color:var(--text-primary)}.team-page{display:flex;flex-direction:column;gap:var(--space-4)}.team-summary{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap;color:var(--text-secondary)}.team-summary span{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:var(--radius-pill);background:var(--color-subtle)}.team-create{display:grid;grid-template-columns:minmax(130px,1fr) minmax(140px,1fr) minmax(140px,1fr) minmax(130px,1fr) minmax(140px,.9fr) auto;gap:var(--space-3);align-items:end;padding:var(--space-4)}.team-create .field{margin-bottom:0}.team-table{overflow:hidden}.team-table .input,.team-table .select{min-width:130px}.team-table th:last-child,.team-table td:last-child{min-width:180px}.team-row-disabled{background:var(--color-subtle)}.team-row-disabled .input,.team-row-disabled .select{color:var(--text-tertiary);background:#f7f9fa}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--color-primary-700),var(--color-primary-500))}.login-card{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--elevation-3);width:360px;padding:var(--space-8)}.login-card h1{font-size:var(--fs-h1);margin:0 0 var(--space-2);color:var(--color-primary-700)}.login-card .sub{color:var(--text-tertiary);font-size:var(--fs-caption);margin-bottom:var(--space-6)}.login-hint{margin-top:var(--space-4);font-size:var(--fs-caption);color:var(--text-tertiary);line-height:1.7}@media (max-width: 768px){.app{flex-direction:column}.sidebar{width:100%;flex-direction:row;overflow-x:auto;border-right:none;border-bottom:1px solid var(--color-border)}.sidebar .brand{display:none}.nav{display:flex;gap:4px;padding:8px}.nav-group-title{display:none}.nav a{white-space:nowrap}.topbar{height:auto;min-height:56px;align-items:flex-start;flex-direction:column;gap:10px;padding:12px var(--space-4)}.topbar .right{width:100%;gap:var(--space-2);flex-wrap:wrap;position:relative}.account-switcher{position:static}.account-menu{position:absolute;left:0;right:0;top:38px;min-width:0;width:auto;max-width:none}.account-menu-item{white-space:normal}.content{padding:var(--space-4)}.grid2,.account-create,.team-create{grid-template-columns:1fr}.team-summary{width:100%}.overview-head{flex-direction:column;gap:var(--space-2)}.metric-grid,.overview-panels,.overview-split{grid-template-columns:1fr}.metric-value{font-size:24px}}
