:root{--bg: #f5f6f8;--surface: #ffffff;--border: #e4e7ec;--fg: #1a1d21;--muted: #6b7280;--primary: #e11d48;--primary-dark: #be123c;--danger: #dc2626;--radius: 10px}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--fg);font-size:14px}a{color:inherit}.app{min-height:100vh}.topbar{display:flex;align-items:center;justify-content:space-between;height:56px;padding:0 24px;background:var(--surface);border-bottom:1px solid var(--border)}.subnav{display:flex;flex-wrap:wrap;gap:8px;padding:10px 24px;background:var(--surface);border-bottom:1px solid var(--border)}.subnav-item{border:1px solid var(--border);background:#fff;color:var(--muted);border-radius:8px;padding:7px 12px;font:inherit;cursor:pointer}.subnav-item.active{color:var(--fg);border-color:#d7dbe0;background:#f7f8fa;font-weight:600}.topbar-right{display:flex;align-items:center;gap:14px}.user{color:var(--muted)}.content{max-width:980px;margin:0 auto;padding:28px 24px 60px}.brand{font-weight:700;font-size:18px}.brand span{color:var(--primary)}.brand-lg{font-size:24px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.page-head{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:20px}.page-head h1{margin:0 0 2px;font-size:22px}.muted{color:var(--muted);margin:0}.stats-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:14px}.stat-card{padding:14px}.stat-value{font-size:22px;font-weight:700;line-height:1.1;margin-bottom:6px}.conversion-head{margin-top:24px;margin-bottom:10px}.conversion-head h2{margin:0 0 2px;font-size:18px}.conversion-grid{grid-template-columns:repeat(5,minmax(0,1fr));margin-bottom:24px}.filter-bar{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:10px;padding:14px;margin-bottom:14px}.payment-filters{grid-template-columns:2fr 1fr 1fr 1fr}.payment-table-scroll{overflow-x:auto}.payment-table-scroll .table{min-width:1100px}.table-scroll{overflow-x:auto}.exception-table{min-width:820px}.truncate{max-width:340px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.exception-count{margin:10px 2px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10;display:grid;place-items:center;padding:24px;background:#1118278c}.modal{width:min(980px,100%);max-height:calc(100vh - 48px);overflow:auto;padding:22px;border-radius:var(--radius);background:var(--surface)}.exception-modal h2{margin:0 0 2px}.exception-meta{margin-bottom:12px;color:var(--muted);font-size:12px;overflow-wrap:anywhere}.exception-stack{margin:0;padding:14px;overflow:auto;border-radius:8px;background:#111827;color:#e5e7eb;font:12px/1.5 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;white-space:pre-wrap}.auth-wrap{min-height:100vh;display:grid;place-items:center;padding:20px}.auth-card{width:100%;max-width:360px;padding:28px}.auth-card .muted{margin-bottom:18px}.temporary-password-title{margin:22px 0 6px;font-size:22px}.temporary-password-copy{line-height:1.5}.temporary-password-signout{margin-top:10px}.field{display:block;margin-bottom:14px}.field>span{display:block;font-size:12px;font-weight:600;color:var(--muted);margin-bottom:5px}.field input,.field select,.field textarea{width:100%;padding:9px 11px;border:1px solid var(--border);border-radius:8px;font:inherit;background:#fff}.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--primary)}.row{display:flex;gap:12px}.row .field{flex:1}.field-sm{max-width:110px}.checkbox{display:flex;align-items:center;gap:8px;margin:6px 0 4px}.btn{border:1px solid transparent;border-radius:8px;padding:9px 14px;font:inherit;font-weight:600;cursor:pointer;background:#eef0f3;color:var(--fg)}.btn:disabled{opacity:.6;cursor:not-allowed}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid rgba(225,29,72,.22);outline-offset:2px}.btn-sm{padding:6px 10px;font-size:13px}.btn-block{width:100%}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--primary-dark)}.btn-ghost{background:transparent;border-color:var(--border)}.btn-soft{background:#fbe9ee;color:var(--primary-dark);display:inline-block}.btn-danger{background:#fef2f2;color:var(--danger);border-color:#fecaca}.table-card{overflow:hidden}.table{width:100%;border-collapse:collapse}.table th,.table td{text-align:left;padding:12px 16px;border-bottom:1px solid var(--border);vertical-align:top}.table th{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);background:#fafbfc}.table tr:last-child td{border-bottom:none}.cell-title{font-weight:600}.cell-sub{font-size:12px;color:var(--muted);display:inline-block;max-width:360px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.link{text-decoration:none}.link:hover{text-decoration:underline}.actions{display:flex;gap:6px;white-space:nowrap}.tag{background:#eef0f3;border-radius:6px;padding:2px 8px;font-size:12px}.status{font-size:12px;font-weight:600}.status.on{color:#15803d}.status.off{color:var(--muted)}.status.payment-completed{color:#15803d}.status.payment-pending{color:#b45309}.status.payment-failed,.status.payment-cancelled,.status.payment-expired{color:var(--danger)}.empty{padding:40px;text-align:center;color:var(--muted)}.alert{padding:10px 12px;border-radius:8px;margin-bottom:14px;font-size:13px}.alert-error{background:#fef2f2;color:var(--danger);border:1px solid #fecaca}.alert-success{background:#f0fdf4;color:#15803d;border:1px solid #bbf7d0}.alert-warning{background:#fffbeb;color:#92400e;border:1px solid #fde68a}.text-warning{color:#92400e!important}.text-danger{color:var(--danger)!important}.message-layout{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(280px,.8fr);gap:16px;align-items:start}.campaign-compose,.campaign-preview{padding:20px}.campaign-compose .btn,.campaign-preview .btn,.confirm-campaign-modal .btn{min-height:44px}.campaign-preview{position:sticky;top:18px}.campaign-compose h2,.campaign-preview h2,.campaign-history-head h2,.confirm-campaign-modal h2{margin:0 0 3px;font-size:18px}.channel-pill{display:inline-flex;align-items:center;min-height:28px;padding:4px 9px;border-radius:999px;background:#fbe9ee;color:var(--primary-dark);font-size:12px;font-weight:700;white-space:nowrap}.field small,.choice-card small,.tenant-option small{display:block;margin-top:5px;color:var(--muted);font-size:12px;line-height:1.45}.audience-fieldset{display:grid;gap:8px;margin:2px 0 16px;padding:0;border:0}.audience-fieldset legend{margin-bottom:6px;color:var(--muted);font-size:12px;font-weight:600}.choice-card,.tenant-option{display:flex;align-items:flex-start;gap:10px;padding:11px 12px;border:1px solid var(--border);border-radius:8px;cursor:pointer;transition:border-color .16s ease,background .16s ease}.choice-card:hover,.tenant-option:hover{border-color:#c8cdd5;background:#fafbfc}.choice-card input,.tenant-option input{width:16px;height:16px;margin:2px 0 0;accent-color:var(--primary)}.choice-card span,.tenant-option span{min-width:0}.tenant-picker{margin:-4px 0 16px;padding:14px;border:1px solid var(--border);border-radius:8px;background:#fafbfc}.tenant-picker-list{display:grid;gap:6px;max-height:260px;overflow:auto;padding-right:2px}.tenant-option{background:#fff}.tenant-picker-empty{padding:16px 4px;text-align:center}.selection-count{margin-top:9px;font-size:12px}.preview-counts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:18px 0}.preview-counts>div{padding:12px;border:1px solid var(--border);border-radius:8px;background:#fafbfc}.preview-counts strong,.preview-counts span{display:block}.preview-counts strong{font-size:20px}.preview-counts span{margin-top:3px;color:var(--muted);font-size:12px}.preview-counts.is-inactive{opacity:.48}.preview-placeholder{line-height:1.55}.campaign-history-head{margin-top:30px;margin-bottom:12px}.campaign-table{min-width:780px}.campaign-status{display:inline-flex;padding:3px 8px;border-radius:999px;background:#eef0f3;color:var(--muted);font-size:12px;font-weight:700;text-transform:capitalize;white-space:nowrap}.campaign-status-processing,.campaign-status-queued{background:#eff6ff;color:#1d4ed8}.campaign-status-completed{background:#f0fdf4;color:#15803d}.campaign-status-completed_with_errors{background:#fffbeb;color:#92400e}.campaign-status-cancelled{background:#f3f4f6;color:#4b5563}.confirm-campaign-modal{width:min(560px,100%)}.confirm-message-copy{margin-top:18px;padding:14px;border:1px solid var(--border);border-radius:8px;background:#fafbfc}.confirm-message-copy p{margin:8px 0 0;line-height:1.55;white-space:pre-wrap}.form-actions-split{display:flex;justify-content:space-between;gap:12px}@media (max-width: 760px){.message-layout{grid-template-columns:1fr}.campaign-preview{position:static}.preview-counts{grid-template-columns:repeat(2,minmax(0,1fr))}}.update-policy{padding:20px}.update-policy-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(260px,.8fr);gap:24px}.policy-preview{background:#fafbfc;border:1px solid var(--border);border-radius:8px;padding:16px;align-self:start}.policy-preview h3{margin:0 0 14px;font-size:16px}.preview-result{border-radius:8px;padding:14px;text-align:center;font-weight:700;background:#eef0f3}.preview-optional-update{background:#fffbeb;color:#92400e}.preview-upgrade-required{background:#fef2f2;color:var(--danger)}.preview-copy{margin-top:12px;font-size:12px;line-height:1.5}@media (max-width: 720px){.update-policy-grid{grid-template-columns:1fr}.subnav{overflow-x:auto}}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:grid;place-items:center;padding:20px;z-index:50}.modal{width:100%;max-width:520px;padding:24px;max-height:90vh;overflow-y:auto}.modal-wide{max-width:1080px}.modal h2{margin:0 0 18px;font-size:18px}.modal-actions,.form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.form-actions.form-actions-split{justify-content:space-between}.super-admin-security-note{line-height:1.5}.super-admin-table{min-width:760px}.super-admin-table .actions{justify-content:flex-end}.super-admin-modal{max-width:520px}.super-admin-modal-copy{margin:-8px 0 20px;line-height:1.5}.super-admin-modal .btn{min-height:44px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.panel{padding:14px}.panel h3{margin:0 0 10px;font-size:16px}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.panel-head h2,.panel-head h3{margin:0}.manage-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.audit-list{border:1px solid var(--border);border-radius:8px;background:#fff;overflow:hidden}.audit-item{padding:10px 12px;border-bottom:1px solid var(--border)}.audit-item:last-child{border-bottom:none}.audit-meta{display:flex;flex-wrap:wrap;gap:6px;align-items:center;color:var(--muted);font-size:12px;margin-bottom:5px}.audit-summary{font-size:13px}.pager{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-top:10px}.upload-row{display:flex;align-items:center;gap:12px;margin:-6px 0 14px}.progress{flex:1;height:6px;background:var(--border);border-radius:3px;overflow:hidden}.progress-bar{height:100%;background:var(--primary);transition:width .15s ease}
