:root{--ink-900: #181510;--ink-800: #272219;--ink-400: #8a8274;--ink-300: #aca595;--ink-200: #d9d2c2;--ink-100: #eee9de;--white: #ffffff;--black: #000000;--grey-backdrop: #e9e4d8;--surface-page: #faf8f3;--surface-card: #ffffff;--surface-sunken: #f2eee4;--surface-chip: #f0ece1;--surface-inverse: #181510;--surface-scrim: rgba(24, 21, 16, .55);--text-primary: #181510;--text-secondary: #6f6858;--text-tertiary: #9c9484;--text-inverse: #ffffff;--text-link: #b24a26;--text-link-hover: #8f3a1d;--border-hairline: #e7e1d3;--border-strong: #181510;--status-success: #2e7d4f;--status-success-soft: #e3f3e9;--status-warning: #b4790e;--status-warning-soft: #fbf0da;--status-danger: #c1432d;--status-danger-soft: #fbe7e1;--brand: #c1522e;--brand-dark: #93391e;--brand-soft: #f6e2d8;--radius-pill: 999px;--radius-md: 14px;--radius-lg: 22px;--radius-sm: 10px;--space-xs: 4px;--space-sm: 8px;--space-md: 12px;--space-lg: 16px;--space-xl: 24px;--space-gutter: 20px;--shadow-card: 0 3px 10px rgba(0, 0, 0, .06);--shadow-lifted: 0 10px 24px rgba(0, 0, 0, .16);color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--surface-page);color:var(--text-primary);font-family:-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:15px;line-height:20px;-webkit-font-smoothing:antialiased}img{max-width:100%}a{color:var(--text-link);text-decoration:none}a:hover{color:var(--text-link-hover)}h1,h2,h3,p{margin:0}button{font-family:inherit}.t-display{font-size:34px;line-height:38px;font-weight:700;letter-spacing:-.4px}.t-h1{font-size:25px;line-height:30px;font-weight:700;letter-spacing:-.2px}.t-h2{font-size:19px;line-height:24px;font-weight:700}.t-title{font-size:16px;line-height:21px;font-weight:600}.t-body-strong{font-size:15px;line-height:20px;font-weight:600}.t-body{font-size:15px;line-height:20px;font-weight:400}.t-label{font-size:13px;line-height:16px;font-weight:600}.t-small{font-size:13px;line-height:18px;font-weight:400}.t-caption{font-size:12px;line-height:16px;font-weight:400}.t-micro{font-size:11px;line-height:14px;font-weight:400}.text-secondary{color:var(--text-secondary)}.text-tertiary{color:var(--text-tertiary)}.text-danger{color:var(--status-danger)}.shell{display:flex;min-height:100%}.sidebar{width:240px;flex-shrink:0;background:var(--surface-inverse);color:var(--text-inverse);display:flex;flex-direction:column;padding:var(--space-lg) var(--space-md);gap:var(--space-xs);position:sticky;top:0;height:100vh;overflow-y:auto}.sidebar-brand{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-sm) var(--space-lg)}.sidebar-brand img{width:32px;height:32px;border-radius:50%;background:var(--white)}.sidebar-brand span{font-weight:700;font-size:17px}.nav-link{display:flex;align-items:center;gap:var(--space-sm);padding:10px var(--space-md);border-radius:var(--radius-md);color:#ffffffb8;font-size:14px;font-weight:600;cursor:pointer;border:none;background:transparent;width:100%;text-align:left}.nav-link:hover{background:#ffffff0f;color:var(--white)}.nav-link.active{background:var(--brand);color:var(--white)}.nav-link .nav-badge{margin-left:auto;background:var(--status-danger);color:var(--white);font-size:11px;font-weight:700;border-radius:var(--radius-pill);min-width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;padding:0 5px}.sidebar-footer{margin-top:auto;padding-top:var(--space-md);border-top:1px solid rgba(255,255,255,.1)}.main{flex:1;min-width:0;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md) var(--space-xl);border-bottom:1px solid var(--border-hairline);background:var(--surface-card);position:sticky;top:0;z-index:5}.page{padding:var(--space-xl);max-width:1180px;width:100%;display:flex;flex-direction:column;gap:var(--space-lg)}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-md);flex-wrap:wrap}.card{background:var(--surface-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:var(--space-lg)}.card.pad-lg{padding:var(--space-xl)}.card.pad-none{padding:0}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-md)}.stat-card{background:var(--surface-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:var(--space-lg);display:flex;flex-direction:column;gap:var(--space-xs)}.stat-card .stat-value{font-size:28px;font-weight:700;letter-spacing:-.2px}.stat-card .stat-label{color:var(--text-secondary);font-size:13px;font-weight:600}.stat-card .stat-delta{font-size:12px;font-weight:600}.stat-delta.up{color:var(--status-success)}.stat-delta.down{color:var(--status-danger)}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;border-radius:var(--radius-pill);height:40px;padding:0 20px;font-size:14px;font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-xs);cursor:pointer;white-space:nowrap;transition:opacity .1s ease}.btn:hover{opacity:.9}.btn:disabled{cursor:not-allowed;opacity:1;background:var(--ink-100)!important;color:var(--text-tertiary)!important;border:none!important}.btn.sm{height:32px;padding:0 14px;font-size:13px}.btn.lg{height:48px;padding:0 24px;font-size:15px}.btn.primary{background:var(--surface-inverse);color:var(--white)}.btn.brand{background:var(--brand);color:var(--white)}.btn.secondary{background:var(--surface-card);color:var(--text-primary);border:1px solid var(--border-hairline)}.btn.ghost{background:transparent;color:var(--text-primary)}.btn.danger{background:transparent;color:var(--status-danger)}.btn.full{width:100%}.input,.select,textarea.input{width:100%;border:1px solid var(--border-hairline);border-radius:var(--radius-md);padding:10px 14px;font-size:14px;font-family:inherit;color:var(--text-primary);background:var(--surface-card)}.input:focus,.select:focus,textarea.input:focus{outline:2px solid var(--brand-soft);border-color:var(--brand)}textarea.input{resize:vertical;min-height:88px}label.field-label{font-size:13px;font-weight:600;color:var(--text-secondary);margin-bottom:6px;display:block}.field{display:flex;flex-direction:column}.pill{border-radius:var(--radius-pill);padding:3px 10px;font-size:12px;font-weight:600;display:inline-flex;align-items:center;gap:4px;white-space:nowrap}.pill.neutral{background:var(--surface-chip);color:var(--text-secondary)}.pill.success{background:var(--status-success-soft);color:var(--status-success)}.pill.warning{background:var(--status-warning-soft);color:var(--status-warning)}.pill.danger{background:var(--status-danger-soft);color:var(--status-danger)}.pill.dark{background:var(--surface-inverse);color:var(--white)}.pill.brand{background:var(--brand-soft);color:var(--brand-dark)}.table-wrap{overflow-x:auto;border-radius:var(--radius-lg);background:var(--surface-card);box-shadow:var(--shadow-card)}table.data-table{width:100%;border-collapse:collapse;font-size:14px}table.data-table th{text-align:left;font-size:12px;font-weight:700;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.03em;padding:12px 16px;border-bottom:1px solid var(--border-hairline);white-space:nowrap}table.data-table td{padding:12px 16px;border-bottom:1px solid var(--border-hairline);vertical-align:middle}table.data-table tbody tr:last-child td{border-bottom:none}table.data-table tbody tr:hover{background:var(--surface-sunken)}table.data-table tbody tr.clickable{cursor:pointer}.tabs{display:flex;gap:var(--space-xs);border-bottom:1px solid var(--border-hairline)}.tab{padding:10px 4px;margin-right:var(--space-lg);font-size:14px;font-weight:600;color:var(--text-tertiary);border-bottom:2px solid transparent;cursor:pointer;background:none;border-left:none;border-right:none;border-top:none}.tab.active{color:var(--text-primary);border-bottom-color:var(--brand)}.segmented{display:inline-flex;background:var(--surface-chip);border-radius:var(--radius-pill);padding:3px;gap:2px}.segmented button{border:none;background:transparent;padding:6px 14px;border-radius:var(--radius-pill);font-size:13px;font-weight:600;color:var(--text-secondary);cursor:pointer}.segmented button.active{background:var(--surface-card);color:var(--text-primary);box-shadow:var(--shadow-card)}.empty-state{padding:48px var(--space-lg);text-align:center;color:var(--text-tertiary)}.spinner{width:22px;height:22px;border-radius:50%;border:2.5px solid var(--ink-200);border-top-color:var(--brand);animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.spinner-row{display:flex;align-items:center;justify-content:center;padding:40px 0}.modal-scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--surface-scrim);display:flex;align-items:flex-start;justify-content:center;padding:5vh var(--space-lg);overflow-y:auto;z-index:50}.modal-card{background:var(--surface-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-lifted);width:100%;max-width:520px;padding:var(--space-xl);display:flex;flex-direction:column;gap:var(--space-md)}.modal-card.wide{max-width:720px}.toast-stack{position:fixed;bottom:var(--space-lg);right:var(--space-lg);display:flex;flex-direction:column;gap:var(--space-sm);z-index:60}.toast{background:var(--surface-inverse);color:var(--white);border-radius:var(--radius-md);padding:12px 16px;font-size:14px;font-weight:600;box-shadow:var(--shadow-lifted);max-width:320px}.toast.error{background:var(--status-danger)}.avatar{width:36px;height:36px;border-radius:50%;background:var(--brand-soft);color:var(--brand-dark);display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;flex-shrink:0}.divider{height:1px;background:var(--border-hairline);border:none;margin:0}.row{display:flex;align-items:center;gap:var(--space-sm)}.row.between{justify-content:space-between}.row.wrap{flex-wrap:wrap}.col{display:flex;flex-direction:column;gap:var(--space-sm)}.grow{flex:1;min-width:0}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--grey-backdrop);padding:var(--space-lg)}.login-card{width:100%;max-width:380px;background:var(--surface-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-lifted);padding:var(--space-xl);display:flex;flex-direction:column;gap:var(--space-md);align-items:center}.login-card img{width:72px;height:72px;border-radius:50%;box-shadow:var(--shadow-lifted)}
