/* Shared cabinet design for admin, support and partners. */
body.cabinet-ui {
    --bg-main: #f5f5f7; --bg-card: #fff; --bg-sidebar: #fafafa;
    --bg-input: #fff; --bg-hover: #f0f2f5; --bg-active: #e8f1ff;
    --bg-filter: #fff; --bg-stat: #f5f5f7; --bg-table-header: #f5f5f7;
    --text-primary: #1d1d1f; --text-secondary: #626269; --text-muted: #6e6e73;
    --border-color: #dedee3; --border-table: #e8e8ed; --partner-blue: #0066cc;
    --partner-selected: #eef5ff; --partner-input-border: #a5a5ad;
    -webkit-font-smoothing: antialiased;
}
body.cabinet-ui.dark-theme {
    --bg-main: #161618; --bg-card: #232326; --bg-sidebar: #1c1c1e;
    --bg-input: #29292c; --bg-hover: #303034; --bg-active: #263b55;
    --bg-filter: #232326; --bg-stat: #29292c; --bg-table-header: #29292c;
    --bg-modal: #232326; --text-primary: #f5f5f7; --text-secondary: #b6b6be;
    --text-muted: #aaaab2; --border-color: #424247; --border-table: #38383d;
    --partner-blue: #78b7ff; --partner-selected: #263b55; --partner-input-border: #767680;
}
.cabinet-ui .sidebar { padding: 12px; }
.cabinet-ui .sidebar-header { padding: 24px 14px; border: 0; }
.cabinet-ui .sidebar-header h2 { font-size: 20px; letter-spacing: -.6px; }
.cabinet-ui .nav-item { border-radius: 10px; margin: 4px 0; min-height: 48px; border: 0; font-weight: 500; }
.cabinet-ui .nav-item.active { color: var(--partner-blue); background: var(--bg-active); }
.cabinet-ui .nav-icon { filter: grayscale(1); font-size: 18px; }
.cabinet-ui .main-content { padding: 40px; scroll-behavior: smooth; }
.cabinet-ui .page { max-width: 1200px; margin: 0 auto; }
.cabinet-ui .page-header { gap: 16px; flex-wrap: wrap; margin-bottom: 28px; }
.cabinet-ui .page-header h1 { font-size: clamp(26px, 3vw, 36px); letter-spacing: -1px; font-weight: 650; }
.cabinet-ui .card { border: 1px solid var(--border-color); border-radius: 18px; padding: 28px; box-shadow: 0 2px 8px #00000003; color: var(--text-primary); }
.cabinet-ui .card :is(h2, h3) { color: var(--text-primary); }
.cabinet-ui .card h3 { font-size: 19px; letter-spacing: -.3px; }
.cabinet-ui :is(.form-group, .filter-group) > label { display: block; margin-bottom: 8px; color: var(--text-primary); font-size: 13px; font-weight: 600; text-transform: none; }
.cabinet-ui input:not([type=checkbox]):not([type=radio]),
.cabinet-ui select, .cabinet-ui textarea {
    border: 1px solid var(--partner-input-border) !important; background: var(--bg-input) !important;
    color: var(--text-primary) !important; border-radius: 10px !important;
    padding: 12px 14px !important; min-height: 46px; font-size: 15px;
}
.cabinet-ui input::placeholder { color: var(--text-muted); opacity: 1; }
.cabinet-ui :is(button, a, input, select, textarea, summary):focus-visible {
    outline: 3px solid var(--partner-blue); outline-offset: 3px;
}
.cabinet-ui .btn { border-radius: 10px; min-height: 42px; padding: 10px 16px; font-weight: 600; box-shadow: none; }
.cabinet-ui .btn-primary { background: #0066cc; color: white; }
.cabinet-ui button:disabled { opacity: .5; cursor: not-allowed; }
.cabinet-ui .table-container { border: 1px solid var(--border-color); border-radius: 12px; }
.cabinet-ui :is(th, td) { padding: 15px 14px; border-bottom: 1px solid var(--border-table); }
.cabinet-ui th { background: var(--bg-table-header); color: var(--text-secondary); font-size: 12px; }
.cabinet-ui #paymentPartnerView { max-width: 760px; }
.cabinet-ui #paymentClientEmail { width: 100%; }
.cabinet-ui #paymentPartnerView .card > p { color: var(--text-secondary) !important; font-size: 14px !important; }
body.cabinet-ui.dark-theme .btn-primary { background: #0066cc; color: white; }
.cabinet-ui #paymentTariffOptions > label {
    border: 1px solid var(--partner-input-border) !important; background: var(--bg-input) !important;
    min-height: 58px; border-radius: 12px !important; color: var(--text-primary) !important;
}
.cabinet-ui #paymentTariffOptions > label:has(input:checked) {
    border-color: var(--partner-blue) !important; background: var(--partner-selected) !important;
    box-shadow: inset 0 0 0 1px var(--partner-blue);
}
.cabinet-ui #paymentTariffOptions input { accent-color: var(--partner-blue) !important; }
.cabinet-ui .tariff-more { color: var(--partner-blue) !important; background: none; border: 0; padding: 10px; min-height: 44px; }
.partner-guide { --partner-blue: #0066cc; line-height: 1.65; }
.partner-guide .guide-eyebrow { color: var(--partner-blue); font-size: 12px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; }
.partner-guide .guide-intro { max-width: 670px; color: var(--text-secondary); margin: 12px 0 24px; font-size: 17px; }
.partner-guide .guide-jumps { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 28px; }
.partner-guide a { color: var(--partner-blue); text-underline-offset: 4px; }
.partner-guide .guide-jumps a { padding: 10px 16px; border: 1px solid var(--border-color); border-radius: 24px; text-decoration: none; background: var(--bg-card); }
.partner-guide .guide-step { margin-bottom: 20px; scroll-margin-top: 24px; }
.partner-guide .guide-step-heading { display: flex; align-items: center; gap: 14px; margin-bottom: 20px; }
.partner-guide .guide-number { display: grid; place-items: center; width: 40px; height: 40px; flex-shrink: 0; border-radius: 50%; background: var(--bg-active); color: var(--partner-blue); font-weight: 700; }
.partner-guide h2 { font-size: 23px; letter-spacing: -.5px; line-height: 1.3; }
.partner-guide .guide-columns { display: grid; grid-template-columns: 1.1fr 1fr; gap: 32px; align-items: start; }
.partner-guide p { margin-bottom: 14px; }
.partner-guide ol { padding-left: 23px; }
.partner-guide li { padding-left: 4px; margin-bottom: 12px; }
.partner-guide .guide-note { padding: 16px 20px; background: var(--bg-stat); border-radius: 12px; margin: 18px 0; }
.partner-guide iframe { display: block; width: 100%; aspect-ratio: 16 / 9; border: 0; border-radius: 12px; background: #1d1d1f; }
.partner-guide figcaption { margin-top: 10px; font-size: 13px; }
.partner-guide details { border-top: 1px solid var(--border-color); padding: 18px 0; }
.partner-guide summary { cursor: pointer; font-weight: 600; padding: 4px 0; }
.partner-guide details p { margin: 16px 0; max-width: 760px; }
.partner-guide details figure { max-width: 620px; }
body.dark-theme .partner-guide { --partner-blue: #78b7ff; }
@media (max-width: 900px) { .partner-guide .guide-columns { grid-template-columns: 1fr; } }
@media (max-width: 768px) {
    .cabinet-ui .main-content { padding: 80px 16px 32px; }
    .cabinet-ui .card { padding: 20px; border-radius: 14px; }
    .partner-guide h2 { font-size: 20px; }
    .partner-guide .guide-jumps { gap: 8px; }
    .partner-guide .guide-jumps a { font-size: 13px; padding: 8px 12px; }
}
@media (prefers-reduced-motion: reduce) { .cabinet-ui .main-content { scroll-behavior: auto; } }

/* Dashboard, editors and dialogs use the same quiet surfaces and explicit controls. */
.cabinet-ui { font-size: 14px; line-height: 1.5; }
.cabinet-ui .main-content { min-width: 0; }
.cabinet-ui .page-header > div { min-width: 0; flex-wrap: wrap; }
.cabinet-ui .sidebar { flex-shrink: 0; }
.cabinet-ui .nav-menu { display: flex; flex-direction: column; flex: 1; }
.cabinet-ui .nav-item { min-height: 44px; padding: 10px 12px; }
.cabinet-ui .nav-header { padding: 8px 14px; }
.cabinet-ui :is(.stats-card, .stats-chart-container, .stats-table-container, .key-metrics,
    .repeat-purchases, .prompt-card, .mailing-section, .analytics-panel, .analytics-kpi, .stat-card) {
    background: var(--bg-card); color: var(--text-primary); border: 1px solid var(--border-color);
    border-radius: 16px; box-shadow: 0 2px 8px #00000003; min-width: 0;
}
.cabinet-ui :is(.stats-card.highlight, .key-metric) { background: var(--bg-stat); color: var(--text-primary); }
.cabinet-ui .stats-card.highlight .stats-card-value { color: var(--text-primary); }
.cabinet-ui .stats-card.highlight :is(.stats-card-label, .stats-card-sub) { color: var(--text-secondary); }
.cabinet-ui :is(.stats-card-value, .stat-value, .key-metric-value, .repeat-stat-value) { color: var(--text-primary); font-weight: 650; letter-spacing: -.5px; }
.cabinet-ui :is(.stats-card-label, .stats-card-sub, .stat-label, .key-metric-label, .stats-subtitle, .repeat-stat-label) { color: var(--text-secondary); }
.cabinet-ui :is(.stats-card-icon, .empty-page-icon) { filter: grayscale(1); }
.cabinet-ui :is(.stats-cards, .stats-charts-row, .stats-bottom-row, .user-detail-grid) { gap: 20px; }
.cabinet-ui :is(.filters, .prompt-card-header) { background: var(--bg-stat); border-radius: 12px; }
.cabinet-ui .prompt-card-header { gap: 12px; flex-wrap: wrap; }
.cabinet-ui .prompt-card-title { color: var(--text-primary); }
.cabinet-ui :is(.filter-group, .form-group, .setting-item) { min-width: 0; }
.cabinet-ui :is(.setting-label, .form-group label, .filter-group label) { text-transform: none; color: var(--text-primary); font-size: 13px; }
.cabinet-ui :is(.setting-hint, .prompt-description) { color: var(--text-secondary); line-height: 1.6; }
.cabinet-ui .form-group > :is(input, select, textarea) { width: 100%; }
.cabinet-ui textarea { line-height: 1.6; resize: vertical; }
.cabinet-ui input[type=checkbox], .cabinet-ui input[type=radio] { accent-color: #0066cc; }
.cabinet-ui :is(.btn, .btn-open, .copy-btn, .login-btn) { background: #0066cc; color: #fff; border-radius: 10px; }
.cabinet-ui :is(.btn, .btn-open, .copy-btn, .login-btn):hover { filter: brightness(.93); }
.cabinet-ui .btn-open { border: 0; min-height: 40px; padding: 8px 14px; cursor: pointer; }
.cabinet-ui :is(.period-btn, .analytics-period, .format-btn) { min-height: 36px; border-radius: 8px; }
.cabinet-ui :is(.period-btn.active, .analytics-period.active) { background: var(--bg-active); color: var(--partner-blue); box-shadow: none; }
.cabinet-ui :is(.info-value a, .user-email) { color: var(--partner-blue); }
.cabinet-ui :is(.error, .payment-alert-error) { padding: 14px 18px; border-radius: 12px; }
.cabinet-ui .login-screen { background: var(--bg-main); }
.cabinet-ui .login-box { background: var(--bg-card); border: 1px solid var(--border-color); border-radius: 24px; box-shadow: 0 12px 48px #0000000a; }
.cabinet-ui .login-box h1 { color: var(--text-primary); font-size: 30px; letter-spacing: -1px; }
.cabinet-ui .login-box .subtitle { color: var(--text-secondary); }
.cabinet-ui .login-box .login-btn { background: #0066cc; box-shadow: none; transform: none; }
body.cabinet-ui .btn { background: #0066cc; }
body.cabinet-ui :is(input, textarea)::placeholder { color: var(--text-muted); opacity: 1; }
.cabinet-ui .toggle-switch:has(input:focus-visible) { outline: 3px solid var(--partner-blue); outline-offset: 3px; border-radius: 20px; }
.cabinet-ui .modal-content { background: var(--bg-card); border-radius: 18px; border: 1px solid var(--border-color); }
.cabinet-ui #userDetailView[aria-busy=true] { opacity: .5; }
.cabinet-ui #faqList > div { background: var(--bg-card) !important; color: var(--text-primary); border: 1px solid var(--border-color); }
.cabinet-ui #faqEditorOverlay > div { background: var(--bg-card) !important; color: var(--text-primary); }
.cabinet-ui :is(#faqList, #promptsList) h3 { color: var(--text-primary) !important; }
.cabinet-ui #quizBudgetRows > div { display: grid !important; grid-template-columns: 1fr 2fr 1fr auto; gap: 12px !important; align-items: end; }
.cabinet-ui #quizBudgetRows input { width: 100% !important; min-width: 0; }
.cabinet-ui #quizBudgetRows button { min-height: 44px; }

@media (max-width: 992px) {
    body.cabinet-ui { height: 100dvh; min-height: 0; overflow: hidden; }
    .cabinet-ui .app-container.visible { height: 100%; overflow: hidden; }
    .cabinet-ui .mobile-top-bar { flex-shrink: 0; background: var(--bg-sidebar); border-color: var(--border-color); }
    .cabinet-ui .main-content { height: auto; padding: 24px 16px 40px; }
    .cabinet-ui .nav-header { display: flex; }
    .cabinet-ui .sidebar { max-width: 85vw; }
    .cabinet-ui .page-header h1 { font-size: 28px; }
    .cabinet-ui #quizBudgetRows > div { grid-template-columns: 1fr 1fr; padding-bottom: 16px; border-bottom: 1px solid var(--border-color); }
}
@media (max-width: 576px) {
    .cabinet-ui :is(.stats-card, .stats-chart-container, .stats-table-container, .key-metrics, .repeat-purchases, .mailing-section) { padding: 18px; }
    .cabinet-ui .page-header h1 { font-size: 26px; }
    .cabinet-ui .stats-chart-header { align-items: flex-start; gap: 12px; flex-wrap: wrap; }
    .cabinet-ui .chart-period-buttons { flex-wrap: wrap; }
    .cabinet-ui #genImageExamplesGrid .card > div { flex-wrap: wrap; gap: 12px; }
    .cabinet-ui .info-row { gap: 12px; flex-wrap: wrap; }
    .cabinet-ui #faqEditorOverlay > div > div[style*="grid"] { grid-template-columns: minmax(0, 1fr) !important; }
}
