:root { font-family: Inter, ui-sans-serif, system-ui, -apple-system, sans-serif; color:#111827; background:#f7f8fb; }
* { box-sizing:border-box; }
body { margin:0; }
.topbar { min-height:64px; padding:0 24px; display:flex; align-items:center; gap:20px; justify-content:space-between; background:#fff; border-bottom:1px solid #e5e7eb; }
.brand { font-weight:800; letter-spacing:.08em; color:inherit; text-decoration:none; }
nav { display:flex; gap:18px; flex:1; justify-content:center; }
nav a { color:#4b5563; text-decoration:none; }
.account-controls { display:flex; align-items:center; gap:10px; }
.account-email { max-width:220px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:#4b5563; font-size:.9rem; }
main { max-width:1120px; margin:0 auto; padding:48px 24px 80px; }
.hero { padding:36px 0 42px; }
.hero h1 { font-size:clamp(2rem,5vw,4rem); line-height:1.05; max-width:850px; margin:.3em 0; }
.eyebrow { text-transform:uppercase; letter-spacing:.12em; font-weight:700; font-size:.8rem; }
.grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:16px; }
.card { background:#fff; border:1px solid #e5e7eb; border-radius:16px; padding:22px; box-shadow:0 6px 20px rgba(17,24,39,.04); }
.page-head { margin-bottom:24px; }
label { display:block; margin:12px 0; }
input, select, textarea { width:100%; max-width:420px; padding:10px 12px; border:1px solid #cbd5e1; border-radius:8px; display:block; margin-top:6px; background:#fff; font:inherit; }
textarea { resize:vertical; }
button { border:0; border-radius:9px; padding:10px 18px; font-weight:700; cursor:pointer; }
button:disabled { cursor:not-allowed; opacity:.55; }
output { display:block; margin-top:16px; font-size:1.4rem; font-weight:800; }
.integration-form { margin-top:18px; padding-top:14px; border-top:1px solid #e5e7eb; }
#google-sheet-result { min-height:1.5em; overflow-wrap:anywhere; }
.auth-shell { min-height:100vh; display:grid; place-items:center; padding:24px; }
.auth-card { width:min(100%,460px); background:#fff; border:1px solid #e5e7eb; border-radius:18px; padding:32px; box-shadow:0 18px 60px rgba(17,24,39,.08); }
.auth-card h1 { margin:.25em 0 .5em; }
.auth-card button { margin-top:8px; }
#mfa-status { min-height:1.5em; color:#4b5563; }
.dashboard-shell { display:grid; gap:18px; }
.dashboard-controls { display:grid; grid-template-columns:repeat(3,minmax(160px,1fr)) auto; gap:14px; align-items:end; }
.dashboard-controls label { margin:0; }
.dashboard-controls input { max-width:none; }
.dashboard-controls button { margin-bottom:1px; }
.dashboard-kpis h2 { margin:.25em 0; font-size:1.75rem; }
.dashboard-section { margin-top:4px; }
.section-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:18px; margin-bottom:14px; }
.section-heading h2, .dashboard-section h2 { margin:.25em 0 .5em; }
.muted { color:#64748b; }
.table-wrap { overflow-x:auto; }
table { width:100%; border-collapse:collapse; font-variant-numeric:tabular-nums; }
th, td { padding:11px 12px; border-bottom:1px solid #e5e7eb; text-align:right; white-space:nowrap; }
th:first-child, td:first-child { text-align:left; }
th { color:#475569; font-size:.86rem; }
.management-form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 18px; align-items:end; }
.management-form input, .management-form select { max-width:none; }
.management-form button { justify-self:start; margin-top:12px; }
.management-form #management-form-status { grid-column:1 / -1; min-height:1.5em; }
.alerts-shell { display:grid; gap:18px; }
.alerts-section { overflow:hidden; }
.alert-rule-form { display:grid; grid-template-columns:2fr 1fr 1fr auto; gap:0 14px; align-items:end; padding:16px; margin-bottom:18px; border:1px solid #e5e7eb; border-radius:12px; background:#f8fafc; }
.alert-rule-form label { margin:0; }
.alert-rule-form input, .alert-rule-form select { max-width:none; }
.alert-rule-form .checkbox-label { min-height:42px; align-items:center; }
.checkbox-label { display:flex; gap:8px; align-items:center; margin:0; }
.checkbox-label input { width:auto; max-width:none; margin:0; }
.form-actions { display:flex; gap:8px; align-items:center; }
.alert-rule-form .form-actions { grid-column:1 / -1; margin-top:14px; }
#alert-rule-form-status { grid-column:1 / -1; min-height:1.5em; margin:8px 0 0; }
.row-actions { display:flex; justify-content:flex-end; gap:6px; }
.row-actions button { padding:7px 10px; font-size:.82rem; }
.danger-button { background:#fee2e2; color:#991b1b; }
.state-badge { display:inline-flex; padding:4px 8px; border-radius:999px; font-size:.78rem; font-weight:700; text-transform:capitalize; }
.state-enabled, .state-approved { background:#dcfce7; color:#166534; }
.state-disabled { background:#e2e8f0; color:#475569; }
.state-pending { background:#fef3c7; color:#92400e; }
.state-rejected { background:#fee2e2; color:#991b1b; }
.empty-cell { text-align:center !important; color:#64748b; padding:22px; }
.notification-controls { display:flex; align-items:center; gap:12px; }
.notification-list { display:grid; gap:10px; }
.notification-item { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:14px 16px; border:1px solid #e5e7eb; border-radius:12px; background:#fff; }
.notification-unread { border-left:4px solid #111827; }
.notification-message { margin:0; font-weight:650; overflow-wrap:anywhere; }
.notification-meta { margin:5px 0 0; font-size:.82rem; }
.reforecast-shell { display:grid; gap:18px; }
.reforecast-section { overflow:hidden; }
.reforecast-request-form { display:grid; grid-template-columns:minmax(220px,1fr) minmax(300px,2fr); gap:0 18px; align-items:end; padding:16px; border:1px solid #e5e7eb; border-radius:12px; background:#f8fafc; }
.reforecast-request-form label { margin:0; }
.reforecast-request-form select, .reforecast-request-form textarea { max-width:none; }
.reforecast-request-form .form-actions, #reforecast-request-status { grid-column:1 / -1; }
.reforecast-request-form .form-actions { margin-top:14px; }
#reforecast-request-status { min-height:1.5em; margin:8px 0 0; }
.reforecast-controls { display:flex; align-items:flex-end; gap:12px; }
.reforecast-controls label { margin:0; }
.reforecast-controls select { min-width:150px; margin-top:4px; }
.reforecast-comment { max-width:320px; white-space:normal; text-align:left; overflow-wrap:anywhere; }
@media (max-width:800px) { .dashboard-controls { grid-template-columns:1fr 1fr; } .dashboard-controls button { align-self:end; } .management-form { grid-template-columns:1fr; } .management-form #management-form-status { grid-column:auto; } .section-heading { align-items:flex-start; flex-direction:column; } .alert-rule-form { grid-template-columns:1fr 1fr; } .alert-rule-form .form-actions, #alert-rule-form-status { grid-column:1 / -1; } .reforecast-request-form { grid-template-columns:1fr; } .reforecast-request-form .form-actions, #reforecast-request-status { grid-column:auto; } }
@media (max-width:680px) { .topbar { align-items:flex-start; height:auto; padding:16px; gap:12px; flex-direction:column; } nav { justify-content:flex-start; flex-wrap:wrap; } .account-controls { width:100%; justify-content:space-between; } main { padding-top:28px; } .dashboard-controls { grid-template-columns:1fr; } .alert-rule-form { grid-template-columns:1fr; } .alert-rule-form .form-actions, #alert-rule-form-status { grid-column:auto; } .notification-controls { width:100%; justify-content:space-between; } .notification-item { align-items:flex-start; flex-direction:column; } .row-actions { justify-content:flex-start; flex-wrap:wrap; } .reforecast-controls { width:100%; align-items:stretch; flex-direction:column; } .reforecast-controls select { max-width:none; } }


/* Public marketing / editorial surface. Authenticated application styles above remain unchanged. */
.public-body { background:#f7f8fb; color:#111827; }
.public-topbar { min-height:68px; padding:0 24px; display:flex; align-items:center; gap:20px; background:#fff; border-bottom:1px solid #e5e7eb; }
.public-topbar nav { justify-content:flex-end; }
.public-login-link, .primary-link, .secondary-link { display:inline-flex; align-items:center; justify-content:center; border-radius:10px; padding:10px 16px; font-weight:750; text-decoration:none; }
.public-login-link, .primary-link { background:#111827; color:#fff; }
.secondary-link { border:1px solid #cbd5e1; color:#111827; background:#fff; }
.public-main { max-width:1120px; margin:0 auto; padding:56px 24px 88px; }
.public-hero { padding:48px 0 64px; }
.public-hero h1 { max-width:900px; margin:.22em 0; font-size:clamp(2.4rem,6vw,5rem); line-height:1.02; letter-spacing:-.035em; }
.public-lead { max-width:760px; font-size:1.12rem; line-height:1.85; color:#475569; }
.public-actions { display:flex; gap:12px; flex-wrap:wrap; margin-top:28px; }
.public-section { padding:42px 0; border-top:1px solid #e5e7eb; }
.public-section-heading { max-width:780px; margin-bottom:22px; }
.public-section-heading h2 { margin:.25em 0; font-size:clamp(1.7rem,3vw,2.5rem); }
.public-grid .card { min-height:180px; }
.public-grid h3 { margin-top:0; }
.public-grid p, .public-section p, .public-article p { line-height:1.85; color:#475569; }
.public-split { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(260px,.8fr); gap:28px; align-items:start; }
.public-card-link { display:flex; flex-direction:column; gap:10px; color:inherit; text-decoration:none; }
.public-card-link strong { font-size:1.12rem; }
.public-card-link span { color:#64748b; line-height:1.7; }
.public-article { max-width:820px; }
.public-article-head { margin-bottom:34px; }
.public-article-head h1 { margin:.25em 0; font-size:clamp(2rem,4vw,3.4rem); line-height:1.1; }
.public-article section { padding:24px 0; border-top:1px solid #e5e7eb; }
.public-article h2 { margin-top:0; }
.public-back-link { margin-top:28px; }
.public-footer { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(260px,.7fr); gap:28px; padding:36px 24px; border-top:1px solid #e5e7eb; background:#fff; }
.public-footer > div { max-width:680px; }
.public-footer p { color:#64748b; line-height:1.7; }
.public-footer nav { align-items:flex-start; justify-content:flex-end; flex-wrap:wrap; }

@media (max-width:800px) {
  .public-topbar { align-items:flex-start; flex-wrap:wrap; padding:16px; }
  .public-topbar nav { order:3; width:100%; justify-content:flex-start; flex-wrap:wrap; }
  .public-login-link { margin-left:auto; }
  .public-split, .public-footer { grid-template-columns:1fr; }
  .public-footer nav { justify-content:flex-start; }
}
