:root{--brand-dark: #1a365d;--brand-blue: #2563eb;--bg-page: #f0f2f5;--bg-card: #ffffff;--border: #e5e7eb;--border-light: #f3f4f6;--text-primary: #1a1a1a;--text-secondary: #6b7280;--text-muted: #9ca3af;--radius: 12px;--shadow-card: 0 1px 3px rgba(0, 0, 0, .06), 0 1px 2px rgba(0, 0, 0, .04)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:14px;background:var(--bg-page);color:var(--text-primary)}.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg-page)}.login-card{background:var(--bg-card);padding:40px;border-radius:var(--radius);box-shadow:0 4px 20px #00000014;width:100%;max-width:360px}.login-card h1{font-size:24px;color:var(--brand-dark);margin-bottom:24px;text-align:center}.login-card input{width:100%;padding:12px 16px;border:1px solid var(--border);border-radius:8px;font-size:14px;margin-bottom:16px}.login-card input:focus{outline:none;border-color:var(--brand-blue);box-shadow:0 0 0 3px #2563eb1a}.login-card button{width:100%;padding:12px;background:var(--brand-dark);color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:background .2s}.login-card button:hover:not(:disabled){background:#2d4a7c}.login-card button:disabled{background:var(--text-muted);cursor:not-allowed}.login-card .error{color:#dc2626;font-size:13px;margin-bottom:12px;text-align:center}.dashboard{min-height:100vh;max-width:1600px;margin:0 auto}.dashboard-topbar{position:sticky;top:0;z-index:10;background:var(--bg-card);border-bottom:1px solid var(--border);padding:12px 24px;display:flex;align-items:center;gap:24px}.dashboard-topbar h1{font-size:18px;color:var(--brand-dark);white-space:nowrap}.topbar-actions{display:flex;align-items:center;gap:12px;margin-left:auto;flex-shrink:0}.last-refresh{font-size:12px;color:var(--text-muted);white-space:nowrap}.refresh-btn,.logout-btn{padding:6px 14px;border:none;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;transition:all .15s ease}.refresh-btn{background:var(--brand-dark);color:#fff}.refresh-btn:hover:not(:disabled){background:#2d4a7c}.refresh-btn:disabled{opacity:.5;cursor:not-allowed}.logout-btn{background:transparent;color:var(--text-secondary);border:1px solid var(--border)}.logout-btn:hover{background:var(--border-light)}.error-banner{background:#fef2f2;color:#dc2626;padding:12px 16px;border-radius:8px;margin:16px 24px 0}.tab-nav{display:flex;gap:4px;background:var(--bg-page);border-radius:8px;padding:3px}.tab-btn{padding:6px 16px;border-radius:6px;border:none;font-size:13px;font-weight:500;cursor:pointer;background:transparent;color:var(--text-secondary);transition:all .15s ease;white-space:nowrap}.tab-btn:hover{color:var(--text-primary)}.tab-active{background:var(--bg-card);color:var(--brand-dark);box-shadow:0 1px 3px #00000014}.tab-content{padding:20px 24px}.kpi-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:16px;margin-bottom:20px}.kpi-card{background:var(--bg-card);border-radius:var(--radius);padding:16px 20px;box-shadow:var(--shadow-card);border-left:3px solid var(--brand-blue)}.kpi-value{font-size:26px;font-weight:700;color:var(--brand-dark);line-height:1.2}.kpi-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin-top:4px}.kpi-subtitle{font-size:11px;color:var(--text-muted);margin-top:2px}.charts-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin-bottom:24px}.chart-card{background:var(--bg-card);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow-card)}.chart-card h3{font-size:14px;font-weight:600;color:#374151;margin-bottom:4px}.chart-subtitle{font-size:12px;color:var(--text-muted);margin-bottom:12px}.chart-empty{font-size:13px;color:var(--text-muted);padding:40px 0;text-align:center}.chart-full-width{grid-column:1 / -1}.chart-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.chart-header h3{margin-bottom:0}.chart-range-toggle{display:flex;gap:2px;background:var(--bg-page);border-radius:6px;padding:2px}.chart-range-toggle button{padding:4px 10px;border:none;border-radius:4px;font-size:11px;font-weight:500;cursor:pointer;background:transparent;color:var(--text-secondary);transition:all .15s ease}.chart-range-toggle button.active{background:var(--bg-card);color:var(--brand-dark);box-shadow:0 1px 2px #00000014}.user-table-container{background:var(--bg-card);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow-card)}.table-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:16px;flex-wrap:wrap;gap:12px}.table-header h2{font-size:16px;color:var(--brand-dark)}.table-filters{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.filter-input{padding:7px 12px;border:1px solid var(--border);border-radius:6px;font-size:13px;width:220px;max-width:100%}.filter-input:focus{outline:none;border-color:var(--brand-blue);box-shadow:0 0 0 3px #2563eb14}.filter-select{padding:7px 12px;border:1px solid var(--border);border-radius:6px;font-size:13px;background:var(--bg-card);color:var(--text-primary);cursor:pointer}.filter-select:focus{outline:none;border-color:var(--brand-blue)}.table-scroll{overflow-x:auto}.user-table{width:100%;border-collapse:collapse;font-size:13px;min-width:1100px}.user-table th{text-align:left;padding:10px 12px;background:var(--border-light);border-bottom:2px solid var(--border);font-weight:600;color:var(--text-secondary);cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;font-size:12px;text-transform:uppercase;letter-spacing:.3px}.user-table th:hover{background:var(--border)}.user-table th.sorted{color:var(--brand-dark);background:var(--border)}.sort-arrow{font-size:11px}.user-table td{padding:10px 12px;border-bottom:1px solid var(--border)}.user-table tr:hover{background:#f8f9fb}.user-table td.plan-trial{color:var(--text-muted)}.user-table td.plan-essential,.user-table td.plan-starter{color:var(--brand-blue);font-weight:500}.user-table td.plan-professional,.user-table td.plan-scholar{color:#7c3aed;font-weight:500}.user-table tr.clickable-row{cursor:pointer}.affiliate-badge{color:#f59e0b;font-size:12px;margin-right:4px}.churned-badge{display:inline-block;margin-left:6px;padding:1px 6px;font-size:10px;font-weight:500;color:#ef4444;background:#fef2f2;border-radius:4px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:100}.modal-card{background:var(--bg-card);border-radius:var(--radius);padding:24px;width:100%;max-width:440px;box-shadow:0 8px 30px #0003}.modal-card h3{font-size:18px;color:var(--brand-dark);margin-bottom:4px}.modal-email{font-size:13px;color:var(--text-secondary);margin-bottom:16px}.modal-error{background:#fef2f2;color:#dc2626;padding:8px 12px;border-radius:6px;font-size:13px;margin-bottom:12px}.modal-field{margin-bottom:12px}.modal-field label{display:block;font-size:12px;font-weight:600;color:#374151;margin-bottom:4px}.modal-field input[type=text],.modal-field input[type=number],.modal-field select{width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:6px;font-size:13px}.modal-field input:focus,.modal-field select:focus{outline:none;border-color:var(--brand-blue)}.modal-field input[type=checkbox]{margin-right:4px}.modal-status{display:flex;gap:8px;margin-bottom:12px}.modal-status span{font-size:12px;font-weight:500;padding:3px 10px;border-radius:12px}.status-active{background:#dcfce7;color:#16a34a}.status-trial{background:var(--border-light);color:var(--text-secondary)}.status-student{background:#dbeafe;color:var(--brand-blue)}.status-affiliate{background:#fef3c7;color:#b45309}.modal-row{display:flex;gap:12px}.modal-row .modal-field{flex:1}.modal-info{display:flex;flex-direction:column;gap:2px;font-size:11px;color:var(--text-muted);margin:12px 0 16px;padding-top:12px;border-top:1px solid var(--border)}.modal-actions{display:flex;align-items:center;gap:8px}.modal-cancel,.modal-save{padding:8px 20px;border:none;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer}.modal-cancel{background:var(--border-light);color:#374151}.modal-cancel:hover{background:var(--border)}.modal-save{background:var(--brand-dark);color:#fff}.modal-save:hover:not(:disabled){background:#2d4a7c}.modal-save:disabled{background:var(--text-muted);cursor:not-allowed}.modal-actions-right{display:flex;gap:8px;margin-left:auto}.modal-delete-trigger{padding:8px 16px;border:1px solid #ef4444;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;background:transparent;color:#ef4444}.modal-delete-trigger:hover{background:#fef2f2}.modal-delete{padding:8px 20px;border:none;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;background:#ef4444;color:#fff}.modal-delete:hover:not(:disabled){background:#dc2626}.modal-delete:disabled{background:#f87171;cursor:not-allowed}.delete-confirm-text{font-size:13px;color:#ef4444;font-weight:500;margin-right:auto;align-self:center}@media(max-width:1024px){.dashboard-topbar{flex-wrap:wrap;gap:12px}.tab-nav{order:3;width:100%;overflow-x:auto}}@media(max-width:768px){.tab-content{padding:16px}.dashboard-topbar{padding:12px 16px;flex-direction:column;align-items:flex-start}.topbar-actions{width:100%;justify-content:flex-end}.charts-grid{grid-template-columns:1fr}.chart-full-width{grid-column:1}.kpi-row{grid-template-columns:repeat(2,1fr)}.filter-input,.table-filters{width:100%}.filter-select{flex:1;min-width:0}}
