*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4}body{margin:0;line-height:inherit}#root{min-height:100vh}*{box-sizing:border-box}:root{--bg: #f8fafc;--bg-secondary: #f1f5f9;--sidebar-bg: #0f172a;--sidebar-hover: #1e293b;--card-bg: #ffffff;--text: #1e293b;--text-secondary: #64748b;--text-muted: #94a3b8;--border: #e2e8f0;--border-light: #f1f5f9;--primary: #6366f1;--primary-hover: #4f46e5;--primary-light: #eef2ff;--success: #10b981;--success-bg: #ecfdf5;--warning: #f59e0b;--warning-bg: #fffbeb;--danger: #ef4444;--danger-bg: #fef2f2;--info: #3b82f6;--info-bg: #eff6ff;--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--space-2xl: 48px;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-full: 9999px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .04);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .05), 0 2px 4px -2px rgba(0, 0, 0, .05);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .05), 0 4px 6px -4px rgba(0, 0, 0, .05);--transition-fast: .15s ease;--transition-base: .2s ease;--sidebar-width: 260px;--sidebar-collapsed: 72px}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Inter,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);font-size:14px;line-height:1.6;-webkit-font-smoothing:antialiased}.app{display:flex;min-height:100vh}.sidebar{width:var(--sidebar-width);background:var(--sidebar-bg);color:#fff;padding:var(--space-lg) 0;flex-shrink:0;display:flex;flex-direction:column;position:fixed;top:0;left:0;height:100vh;z-index:50;transition:width var(--transition-base)}.sidebar .logo{padding:0 var(--space-lg) var(--space-lg);border-bottom:1px solid rgba(255,255,255,.08)}.sidebar .logo h1{margin:0;font-size:20px;font-weight:700;letter-spacing:-.02em}.sidebar .logo span{font-size:12px;color:var(--text-muted);display:block;margin-top:2px}.nav-links{list-style:none;padding:var(--space-md) var(--space-sm);margin:0;flex:1}.nav-links li{margin-bottom:2px}.nav-links li a{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md) var(--space-md);color:var(--text-muted);text-decoration:none;border-radius:var(--radius-md);font-weight:500;font-size:14px;transition:all var(--transition-fast)}.nav-links li a:hover{background:var(--sidebar-hover);color:#fff}.nav-links li a.active{background:var(--primary);color:#fff}.nav-links li a svg{flex-shrink:0}.main-content{flex:1;padding:var(--space-xl);margin-left:var(--sidebar-width);min-height:100vh;transition:margin-left var(--transition-base)}.page,.dashboard{max-width:1400px;margin:0 auto}.page h1,.dashboard h1{margin:0 0 var(--space-lg);font-size:24px;font-weight:600;letter-spacing:-.02em;color:var(--text)}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-lg);flex-wrap:wrap;gap:var(--space-md)}.page-header h1{margin:0}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-md);margin-bottom:var(--space-xl)}.stat-card{background:var(--card-bg);padding:var(--space-lg);border-radius:var(--radius-lg);border:1px solid var(--border);transition:box-shadow var(--transition-base)}.stat-card:hover{box-shadow:var(--shadow-md)}.stat-card h3{margin:0 0 var(--space-sm);font-size:13px;color:var(--text-secondary);font-weight:500;text-transform:uppercase;letter-spacing:.02em}.stat-value{margin:0;font-size:28px;font-weight:700;letter-spacing:-.02em;color:var(--text)}.stat-detail{font-size:13px;color:var(--text-muted);margin-top:var(--space-xs)}.charts-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-md)}.chart-card{background:var(--card-bg);padding:var(--space-lg);border-radius:var(--radius-lg);border:1px solid var(--border)}.chart-card h3{margin:0 0 var(--space-md);font-size:15px;font-weight:600;color:var(--text)}.chart-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-md)}.chart-header h3{margin:0}.toggle-buttons{display:flex;gap:2px;background:var(--bg-secondary);padding:3px;border-radius:var(--radius-md)}.toggle-btn{padding:6px 12px;border:none;background:transparent;cursor:pointer;font-size:13px;font-weight:500;color:var(--text-secondary);border-radius:var(--radius-sm);transition:all var(--transition-fast)}.toggle-btn:hover{color:var(--text)}.toggle-btn.active{background:var(--card-bg);color:var(--text);box-shadow:var(--shadow-sm)}.period-info{font-size:12px;color:var(--text-muted);margin:0 0 var(--space-md)}.growth-badge{display:inline-flex;align-items:center;padding:4px 10px;border-radius:var(--radius-full);font-size:12px;font-weight:600}.growth-badge.positive{background:var(--success-bg);color:var(--success)}.growth-badge.negative{background:var(--danger-bg);color:var(--danger)}.data-table{width:100%;border-collapse:collapse;background:var(--card-bg);border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--border)}.data-table th,.data-table td{padding:var(--space-md);text-align:left}.data-table th{background:var(--bg-secondary);font-weight:600;font-size:12px;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--border)}.data-table td{font-size:14px;border-bottom:1px solid var(--border-light);color:var(--text)}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr{transition:background var(--transition-fast)}.data-table tbody tr:hover{background:var(--bg)}.data-table a{color:var(--primary);text-decoration:none;font-weight:500}.data-table a:hover{text-decoration:underline}.data-table .domain{font-family:SF Mono,Monaco,Consolas,monospace;font-size:13px;color:var(--text-secondary)}.data-table .empty{text-align:center;color:var(--text-muted);padding:var(--space-2xl)}.status-badge{display:inline-flex;align-items:center;padding:4px 10px;border-radius:var(--radius-full);font-size:12px;font-weight:500}.status-active{background:var(--success-bg);color:var(--success)}.status-uninstalled{background:var(--danger-bg);color:var(--danger)}.status-deactivated{background:var(--warning-bg);color:var(--warning)}.status-idle{background:var(--info-bg);color:var(--info)}.status-running{background:var(--warning-bg);color:var(--warning)}.status-error{background:var(--danger-bg);color:var(--danger)}.type-badge{display:inline-flex;align-items:center;padding:4px 10px;border-radius:var(--radius-full);font-size:12px;font-weight:500}.type-subscription{background:var(--success-bg);color:var(--success)}.type-usage{background:var(--info-bg);color:var(--info)}.type-one_time{background:#fdf4ff;color:#a855f7}.filters{display:flex;gap:var(--space-sm);margin-bottom:var(--space-lg);flex-wrap:wrap}.filters select,.filters input{padding:10px 14px;border:1px solid var(--border);border-radius:var(--radius-md);font-size:14px;background:var(--card-bg);color:var(--text);transition:all var(--transition-fast)}.filters select:hover,.filters input:hover{border-color:var(--text-muted)}.filters select:focus,.filters input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}.search-box{display:flex;align-items:center;gap:var(--space-sm);padding:0 14px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--card-bg);transition:all var(--transition-fast)}.search-box:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}.search-box svg{color:var(--text-muted);flex-shrink:0}.search-box input{border:none;padding:10px 0;font-size:14px;outline:none;width:200px;background:transparent;color:var(--text)}.search-box input::placeholder{color:var(--text-muted)}.pagination{display:flex;align-items:center;justify-content:center;gap:var(--space-md);margin-top:var(--space-lg)}.pagination button{display:flex;align-items:center;justify-content:center;padding:var(--space-sm) var(--space-md);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--card-bg);cursor:pointer;transition:all var(--transition-fast);color:var(--text)}.pagination button:hover:not(:disabled){border-color:var(--primary);color:var(--primary)}.pagination button:disabled{opacity:.4;cursor:not-allowed}.pagination span{font-size:14px;color:var(--text-secondary)}.btn-primary{display:inline-flex;align-items:center;gap:var(--space-sm);padding:10px 18px;background:var(--primary);color:#fff;border:none;border-radius:var(--radius-md);font-size:14px;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.btn-primary:hover{background:var(--primary-hover);transform:translateY(-1px)}.btn-primary:active{transform:translateY(0)}.btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-secondary{display:inline-flex;align-items:center;gap:var(--space-sm);padding:10px 18px;background:var(--card-bg);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-md);font-size:14px;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.btn-secondary:hover{background:var(--bg-secondary);border-color:var(--text-muted)}.btn-group{display:flex;gap:var(--space-sm)}.actions{display:flex;gap:var(--space-xs)}.actions button{padding:var(--space-sm);border:none;background:transparent;cursor:pointer;color:var(--text-muted);border-radius:var(--radius-sm);transition:all var(--transition-fast)}.actions button:hover{background:var(--bg-secondary);color:var(--text)}.actions button.danger:hover{background:var(--danger-bg);color:var(--danger)}.modal-overlay{position:fixed;inset:0;background:#0f172a99;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:100;padding:var(--space-md)}.modal{background:var(--card-bg);padding:var(--space-lg);border-radius:var(--radius-lg);width:100%;max-width:480px;box-shadow:var(--shadow-lg);animation:modalIn .2s ease}@keyframes modalIn{0%{opacity:0;transform:scale(.96) translateY(-8px)}to{opacity:1;transform:scale(1) translateY(0)}}.modal h2{margin:0 0 var(--space-lg);font-size:18px;font-weight:600}.form-group{margin-bottom:var(--space-md)}.form-group label{display:block;margin-bottom:var(--space-sm);font-size:14px;font-weight:500;color:var(--text)}.form-group input,.form-group select{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-md);font-size:14px;transition:all var(--transition-fast);color:var(--text);background:var(--card-bg)}.form-group input:focus,.form-group select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}.form-actions{display:flex;justify-content:flex-end;gap:var(--space-sm);margin-top:var(--space-lg)}.form-actions button{padding:10px 18px;border-radius:var(--radius-md);font-size:14px;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.form-actions button[type=button]{background:transparent;border:1px solid var(--border);color:var(--text)}.form-actions button[type=button]:hover{background:var(--bg-secondary)}.inline-form{display:flex;gap:var(--space-sm);margin-bottom:var(--space-lg)}.inline-form input{flex:1;max-width:300px;padding:10px 14px;border:1px solid var(--border);border-radius:var(--radius-md);font-size:14px;color:var(--text);background:var(--card-bg)}.inline-form input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}.back-link{display:inline-flex;align-items:center;gap:var(--space-sm);color:var(--text-secondary);text-decoration:none;margin-bottom:var(--space-md);font-size:14px;font-weight:500;transition:color var(--transition-fast)}.back-link:hover{color:var(--primary)}.shop-header{display:flex;align-items:center;gap:var(--space-md);margin-bottom:var(--space-lg);flex-wrap:wrap}.shop-header h1{margin:0}.detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-md)}.detail-card{background:var(--card-bg);padding:var(--space-lg);border-radius:var(--radius-lg);border:1px solid var(--border)}.detail-card.full-width{grid-column:span 2}.detail-card h3{margin:0 0 var(--space-md);font-size:15px;font-weight:600;color:var(--text)}.detail-card dl{margin:0}.detail-card dt{font-size:12px;color:var(--text-muted);margin-bottom:4px;text-transform:uppercase;letter-spacing:.02em}.detail-card dd{margin:0 0 var(--space-md);font-size:15px;color:var(--text)}.detail-card dd.revenue{font-size:20px;font-weight:700;color:var(--success)}.detail-card select{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-md);font-size:14px;color:var(--text);background:var(--card-bg)}.partner-earnings{margin-top:var(--space-sm);font-size:14px;color:var(--text-secondary)}.category-tags{display:flex;flex-wrap:wrap;gap:var(--space-sm);margin-bottom:var(--space-sm)}.tag{display:inline-flex;align-items:center;gap:var(--space-sm);padding:6px 12px;background:var(--bg-secondary);border-radius:var(--radius-full);font-size:13px;color:var(--text)}.tag button{border:none;background:none;cursor:pointer;font-size:14px;line-height:1;color:var(--text-muted);padding:0;transition:color var(--transition-fast)}.tag button:hover{color:var(--danger)}.category-cell-btn{background:none;border:none;padding:0;color:var(--text);cursor:pointer;text-align:left;font-size:inherit;font-family:inherit;transition:color var(--transition-fast)}.category-cell-btn:hover{color:var(--primary);text-decoration:underline}.category-add-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:1px dashed var(--border);border-radius:var(--radius-md);background:transparent;color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast)}.category-add-btn:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-light)}.modal-subtitle{margin:-12px 0 var(--space-lg);font-size:14px;color:var(--text-secondary)}.empty-categories{color:var(--text-muted);font-size:14px;font-style:italic;margin:0}.sync-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-md)}.sync-card{background:var(--card-bg);padding:var(--space-lg);border-radius:var(--radius-lg);border:1px solid var(--border)}.sync-card.full-width{grid-column:span 2}.sync-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-md)}.sync-header h3{margin:0;font-size:15px;font-weight:600}.sync-card dl{margin:0}.sync-card dt{font-size:12px;color:var(--text-muted);margin-bottom:4px;text-transform:uppercase;letter-spacing:.02em}.sync-card dd{margin:0 0 var(--space-md);font-size:15px;color:var(--text)}.sync-card dd.error{color:var(--danger);font-size:13px}.counts-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-lg)}.count-item{text-align:center}.count-value{display:block;font-size:28px;font-weight:700;color:var(--text);letter-spacing:-.02em}.count-label{font-size:13px;color:var(--text-secondary)}.data-range-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:30px}.range-section h4{margin:0 0 12px;font-size:14px;color:var(--text-muted)}.range-section dl{display:grid;grid-template-columns:auto 1fr;gap:8px 16px;margin:0}.range-section dt{font-size:13px;color:var(--text-muted)}.range-section dd{margin:0;font-size:14px}.stats-row{display:flex;gap:var(--space-lg);margin-bottom:var(--space-lg);padding:var(--space-md) var(--space-lg);background:var(--card-bg);border-radius:var(--radius-lg);border:1px solid var(--border);flex-wrap:wrap}.stat-mini .label{font-size:13px;color:var(--text-secondary);margin-right:var(--space-sm)}.stat-mini .value{font-weight:600;color:var(--text)}.table-info{margin-bottom:var(--space-sm);font-size:13px;color:var(--text-muted)}.loading{padding:var(--space-2xl);text-align:center;color:var(--text-muted)}.skeleton{background:linear-gradient(90deg,var(--bg-secondary) 25%,var(--border-light) 50%,var(--bg-secondary) 75%);background-size:200% 100%;animation:skeleton-shimmer 1.5s ease-in-out infinite;border-radius:var(--radius-sm)}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton-value{height:28px;width:80%;margin-bottom:var(--space-sm)}.skeleton-detail{height:16px;width:60%}.skeleton-chart{height:300px;width:100%;border-radius:var(--radius-md)}.skeleton-text{height:16px;width:120px}.skeleton-text-short{height:16px;width:80px}.skeleton-badge{height:24px;width:60px;border-radius:var(--radius-full)}.spin{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.success{color:var(--success)}.error{color:var(--danger)}@media(max-width:1200px){.charts-grid{grid-template-columns:1fr}.stats-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:768px){:root{--sidebar-width: 0}.sidebar{position:fixed;inset:auto 0 0;width:100%;height:auto;padding:0;flex-direction:row;border-top:1px solid rgba(255,255,255,.1)}.sidebar .logo{display:none}.nav-links{display:flex;justify-content:space-around;padding:var(--space-sm);margin:0;width:100%}.nav-links li{margin:0}.nav-links li a{flex-direction:column;gap:2px;padding:var(--space-sm);font-size:10px;text-align:center}.nav-links li a svg{width:20px;height:20px}.main-content{margin-left:0;padding:var(--space-md);padding-bottom:80px}.page h1,.dashboard h1{font-size:20px}.stats-grid{grid-template-columns:1fr 1fr;gap:var(--space-sm)}.stat-card{padding:var(--space-md)}.stat-value{font-size:22px}.filters{flex-direction:column}.search-box,.search-box input,.filters select{width:100%}.detail-grid,.sync-grid{grid-template-columns:1fr}.detail-card.full-width,.sync-card.full-width{grid-column:span 1}.counts-grid{grid-template-columns:repeat(2,1fr);gap:var(--space-md)}.count-value{font-size:22px}.chart-card{padding:var(--space-md)}.data-table{font-size:13px}.data-table th,.data-table td{padding:var(--space-sm) var(--space-md)}.page-header{flex-direction:column;align-items:flex-start}.btn-group{width:100%}.btn-group button{flex:1;justify-content:center}.modal{margin:var(--space-md);max-height:calc(100vh - 32px);overflow-y:auto}.stats-row{flex-direction:column;gap:var(--space-sm)}}@media(max-width:480px){.stats-grid{grid-template-columns:1fr}.nav-links li a span{display:none}.nav-links{justify-content:space-between;padding:var(--space-sm) var(--space-md)}}.view-toggle{display:flex;gap:2px;background:var(--bg-secondary);padding:3px;border-radius:var(--radius-md)}.view-toggle button{padding:8px 16px;border:none;background:transparent;cursor:pointer;font-size:14px;font-weight:500;color:var(--text-secondary);border-radius:var(--radius-sm);transition:all var(--transition-fast)}.view-toggle button:hover{color:var(--text)}.view-toggle button.active{background:var(--card-bg);color:var(--text);box-shadow:var(--shadow-sm)}.filters-bar{display:flex;align-items:center;gap:var(--space-md);margin-bottom:var(--space-lg);padding:var(--space-md) var(--space-lg);background:var(--card-bg);border-radius:var(--radius-lg);border:1px solid var(--border);flex-wrap:wrap}.date-range-filter{display:flex;align-items:center;gap:var(--space-sm)}.date-range-filter svg{color:var(--text-muted)}.date-range-filter label{font-size:14px;color:var(--text-secondary);font-weight:500}.date-range-filter input{padding:8px 12px;border:1px solid var(--border);border-radius:var(--radius-md);font-size:14px;color:var(--text);background:var(--card-bg)}.date-range-filter input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}.stat-label{font-size:13px;color:var(--text-secondary);margin-top:var(--space-xs)}.stat-card.highlight{background:var(--primary-light);border-color:var(--primary)}.stat-card.highlight .stat-value{color:var(--primary)}.highlight-value{color:var(--primary);font-weight:600}.actions button.primary{color:var(--primary)}.actions button.primary:hover{background:var(--primary-light);color:var(--primary)}.empty-state{text-align:center;color:var(--text-muted);padding:var(--space-xl)!important}.status-badge.status-pending{background:var(--warning-bg);color:var(--warning);gap:4px}.status-badge.status-paid{background:var(--success-bg);color:var(--success);gap:4px}.notes-cell{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-muted)}.modal h2{display:flex;align-items:center;gap:var(--space-sm)}.modal-context{background:var(--bg-secondary);padding:var(--space-md);border-radius:var(--radius-md);margin-bottom:var(--space-lg);font-size:14px}.rate-badge{display:inline-block;margin-left:var(--space-sm);padding:2px 8px;background:var(--primary-light);color:var(--primary);border-radius:var(--radius-full);font-size:12px;font-weight:600}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md)}.form-group textarea{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-md);font-size:14px;font-family:inherit;resize:vertical;color:var(--text);background:var(--card-bg)}.form-group textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}@media(max-width:768px){.view-toggle{width:100%}.view-toggle button{flex:1;text-align:center}.filters-bar{flex-direction:column;align-items:stretch}.date-range-filter{flex-wrap:wrap}.date-range-filter input{flex:1;min-width:120px}.form-row{grid-template-columns:1fr}}.login-container{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--bg);padding:var(--space-md)}.login-box{width:100%;max-width:400px;background:var(--card-bg);border-radius:var(--radius-lg);border:1px solid var(--border);box-shadow:var(--shadow-lg);padding:var(--space-xl)}.login-header{text-align:center;margin-bottom:var(--space-xl);padding-bottom:var(--space-lg);border-bottom:1px solid var(--border)}.login-header h1{margin:0;font-size:24px;font-weight:700;color:var(--text);letter-spacing:-.02em}.login-header span{display:block;font-size:14px;color:var(--text-secondary);margin-top:var(--space-xs)}.login-form h2{margin:0 0 var(--space-sm);font-size:20px;font-weight:600;color:var(--text)}.login-description{margin:0 0 var(--space-lg);font-size:14px;color:var(--text-secondary)}.login-description strong{color:var(--text)}.input-with-icon{display:flex;align-items:center;gap:var(--space-sm);padding:0 var(--space-md);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--card-bg);transition:all var(--transition-fast)}.input-with-icon:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}.input-with-icon svg{color:var(--text-muted);flex-shrink:0}.input-with-icon input{flex:1;border:none;padding:12px 0;font-size:14px;outline:none;background:transparent;color:var(--text)}.input-with-icon input::placeholder{color:var(--text-muted)}.error-message{background:var(--danger-bg);color:var(--danger);padding:var(--space-md);border-radius:var(--radius-md);font-size:14px;margin-bottom:var(--space-md)}.submit-button{width:100%;display:flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:14px var(--space-lg);background:var(--primary);color:#fff;border:none;border-radius:var(--radius-md);font-size:14px;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.submit-button:hover:not(:disabled){background:var(--primary-hover)}.submit-button:disabled{opacity:.6;cursor:not-allowed}.back-button{width:100%;padding:var(--space-md);margin-top:var(--space-md);background:transparent;color:var(--text-secondary);border:none;font-size:14px;cursor:pointer;transition:color var(--transition-fast)}.back-button:hover{color:var(--text)}.spinner{animation:spin 1s linear infinite}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:var(--space-md);color:var(--text-secondary)}.sidebar-footer{padding:var(--space-md) var(--space-md);border-top:1px solid rgba(255,255,255,.08);margin-top:auto}.user-info{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);margin-bottom:var(--space-sm)}.user-email{font-size:13px;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.admin-badge{padding:2px 8px;background:var(--primary);color:#fff;border-radius:var(--radius-full);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.02em}.logout-button{display:flex;align-items:center;gap:var(--space-sm);width:100%;padding:var(--space-md);background:transparent;color:var(--text-muted);border:none;border-radius:var(--radius-md);font-size:14px;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.logout-button:hover{background:var(--sidebar-hover);color:#fff}.main-content-full{width:100%;min-height:100vh}.settings-page{max-width:900px;margin:0 auto}.settings-page .page-header h1{margin:0}.settings-page .page-header p{margin:var(--space-xs) 0 0;color:var(--text-secondary);font-size:14px}.settings-option{padding:var(--space-lg)}.toggle-label{display:flex;align-items:flex-start;gap:var(--space-md);cursor:pointer}.toggle-label input[type=checkbox]{display:none}.toggle-switch{width:44px;height:24px;background:var(--border);border-radius:var(--radius-full);position:relative;flex-shrink:0;transition:background var(--transition-fast)}.toggle-switch:after{content:"";position:absolute;top:2px;left:2px;width:20px;height:20px;background:#fff;border-radius:50%;transition:transform var(--transition-fast);box-shadow:var(--shadow-sm)}.toggle-label input[type=checkbox]:checked+.toggle-switch{background:var(--primary)}.toggle-label input[type=checkbox]:checked+.toggle-switch:after{transform:translate(20px)}.toggle-text{display:flex;flex-direction:column;gap:2px}.toggle-text strong{font-weight:500;color:var(--text)}.toggle-text small{font-size:13px;color:var(--text-secondary)}.error-banner{background:var(--danger-bg);color:var(--danger);padding:var(--space-md);border-radius:var(--radius-md);margin-bottom:var(--space-lg);font-size:14px}.card{background:var(--card-bg);border-radius:var(--radius-lg);border:1px solid var(--border);margin-bottom:var(--space-lg);overflow:hidden}.card-header{padding:var(--space-lg);border-bottom:1px solid var(--border)}.card-header h2{margin:0;font-size:16px;font-weight:600;color:var(--text)}.add-user-form{display:flex;gap:var(--space-md);padding:var(--space-lg);padding-bottom:0}.add-user-form input{flex:1;padding:10px 14px;border:1px solid var(--border);border-radius:var(--radius-md);font-size:14px;color:var(--text);background:var(--card-bg)}.add-user-form input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}.add-user-form .btn{display:flex;align-items:center;gap:var(--space-sm);padding:10px 18px;border-radius:var(--radius-md);font-size:14px;font-weight:500;cursor:pointer;transition:all var(--transition-fast);border:none}.add-user-form .btn-primary{background:var(--primary);color:#fff}.add-user-form .btn-primary:hover{background:var(--primary-hover)}.add-user-form .btn-primary:disabled{opacity:.6;cursor:not-allowed}.hint{padding:var(--space-md) var(--space-lg);font-size:13px;color:var(--text-muted);margin:0}.badge{display:inline-flex;align-items:center;gap:var(--space-xs);padding:4px 10px;border-radius:var(--radius-full);font-size:12px;font-weight:500}.badge-admin{background:var(--primary-light);color:var(--primary)}.badge-user{background:var(--bg-secondary);color:var(--text-secondary)}.btn-icon{display:flex;align-items:center;justify-content:center;padding:var(--space-sm);border:none;background:transparent;cursor:pointer;color:var(--text-muted);border-radius:var(--radius-sm);transition:all var(--transition-fast)}.btn-icon:hover{background:var(--bg-secondary);color:var(--text)}.btn-icon.btn-danger:hover{background:var(--danger-bg);color:var(--danger)}.btn-icon:disabled{opacity:.5;cursor:not-allowed}@media(max-width:768px){.login-box{padding:var(--space-lg)}.sidebar-footer{display:none}}@media(max-width:480px){.login-box{border:none;box-shadow:none;background:transparent}}.portal-sidebar .logo span{color:#6b7280}.portal-stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;margin-bottom:2rem}.portal-stat-card{background:#fff;border:1px solid #e5e7eb;border-radius:.75rem;padding:1.5rem;display:flex;flex-direction:column;gap:.5rem;color:inherit;text-decoration:none;transition:box-shadow .15s,transform .15s}a.portal-stat-card:hover{box-shadow:0 4px 12px #0000000f;transform:translateY(-2px)}.portal-stat-card svg{color:#6b7280}.portal-stat-value{font-size:1.875rem;font-weight:600;color:#111827}.portal-stat-label{color:#6b7280;font-size:.875rem}.portal-form{max-width:720px}.portal-form-section{background:#fff;border:1px solid #e5e7eb;border-radius:.75rem;padding:1.5rem;margin-bottom:1.5rem}.portal-form-section h2{margin:0 0 .5rem;font-size:1.125rem}.portal-form-help{color:#6b7280;font-size:.875rem;margin:0 0 1rem}.portal-readonly-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem}.portal-readonly-label{font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:#6b7280;margin-bottom:.25rem}.portal-readonly-value{font-size:1rem;color:#111827;font-weight:500}.status-pill{display:inline-block;padding:.25rem .625rem;border-radius:9999px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;background:#f3f4f6;color:#4b5563}.status-pill.status-submitted{background:#e0e7ff;color:#3730a3}.status-pill.status-approved{background:#dbeafe;color:#1e40af}.status-pill.status-onboarding{background:#fef3c7;color:#92400e}.status-pill.status-active{background:#d1fae5;color:#065f46}.status-pill.status-churned{background:#fee2e2;color:#991b1b}.status-pill.status-paid{background:#d1fae5;color:#065f46}.status-pill.status-pending{background:#fef3c7;color:#92400e}.status-pill.status-blocked{background:#fee2e2;color:#991b1b}.cell-subtle{font-size:.75rem;color:#6b7280;margin-top:.125rem}.success-message{background:#d1fae5;color:#065f46;padding:.625rem .875rem;border-radius:.5rem;font-size:.875rem;margin-bottom:.75rem}.data-table-group-header th{background:#f9fafb;color:#4b5563;font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;padding:.5rem .75rem;border-top:1px solid #e5e7eb}.form-help{font-size:.8125rem;color:#6b7280;margin-top:.4rem;line-height:1.4}.form-help code{background:#f3f4f6;padding:1px 4px;border-radius:3px;font-size:.95em}
