/* Market Research additions on top of the Desk design system (desk.css = webui/static/app.css, copied at build). */

[hidden] { display: none !important; }

/* Boot splash */
.boot { position: fixed; inset: 0; display: grid; place-items: center; background: var(--paper); }
.boot .w1 { font: italic 600 28px/1 var(--serif); color: var(--ink-3); animation: breathe 1.6s ease-in-out infinite; }
@keyframes breathe { 50% { opacity: .35; } }

/* Gate (sign in, verification, invite-only) */
.gate { min-height: 100vh; display: grid; place-items: center; padding: 32px 16px; }
.gate-card { width: min(440px, 100%); }
.gate-title { font: 400 clamp(40px, 9vw, 56px)/1 var(--serif); letter-spacing: -.02em; margin: 0 0 6px; font-variation-settings: "opsz" 144, "SOFT" 30; }
.gate-title em { font-style: italic; color: var(--accent); }
.gate-h { font: 500 26px/1.2 var(--serif); margin: 26px 0 0; }
.gate .dek { font-size: 17px; margin-bottom: 26px; }
.gate-form { display: grid; gap: 14px; }
.gate-form .btn, .gate .google { width: 100%; justify-content: center; }
.gate .google { background: var(--card); }
.gate .or { display: grid; grid-template-columns: 1fr auto 1fr; gap: 12px; align-items: center; margin: 18px 0; color: var(--ink-3); font-size: 12px; letter-spacing: .2em; text-transform: uppercase; }
.gate .or::before, .gate .or::after { content: ""; border-top: 1px solid var(--rule); }
.gate-links { display: flex; gap: 16px; flex-wrap: wrap; font-size: 13.5px; margin-top: 18px; }
.gate-links a { color: var(--ink-2); }
.gate-actions { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 8px; }
.fine { font-size: 12px; color: var(--ink-3); margin-top: 22px; }

/* Composer extras */
.segmented button:disabled { cursor: not-allowed; opacity: .55; }
.segmented .lock { font: 600 10px/1 var(--sans); letter-spacing: .16em; text-transform: uppercase; color: var(--accent); }
.field.narrow { max-width: 280px; }
.composer .blank.date { width: 15.5ch; }

/* Status tags */
.tag.status-done { border-color: var(--ok); color: var(--ok); }
.tag.status-failed { border-color: var(--bad); color: var(--bad); }
.tag.status-queued, .tag.status-running { border-color: var(--accent); color: var(--accent); }

.report-actions { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 18px; }
.s-foot.buy { flex-wrap: wrap; justify-content: flex-start; }
.s-foot.buy .status { flex-basis: 100%; }
.disclaimer { margin-top: 60px; font-size: 12px; color: var(--ink-3); border-top: 1px solid var(--rule); padding-top: 14px; }

/* Toast */
.toast {
  position: fixed; left: 50%; bottom: calc(18px + env(safe-area-inset-bottom)); transform: translate(-50%, 20px); opacity: 0;
  background: var(--ink); color: var(--paper); padding: 10px 16px; border-radius: var(--radius); font-size: 14px;
  transition: opacity .2s, transform .2s; pointer-events: none; max-width: calc(100vw - 32px); z-index: 200;
}
.toast.show { opacity: 1; transform: translate(-50%, 0); }
.toast.bad { background: var(--bad); }

@media (max-width: 860px) {
  .main { padding-bottom: calc(80px + env(safe-area-inset-bottom)); }
  .composer { font-size: clamp(28px, 8vw, 40px); }
  .composer .blank.ticker { width: 5.6ch; }
  .actionbar { padding-bottom: calc(14px + env(safe-area-inset-bottom)); }
  .stats { gap: 18px; }
  .report-actions .btn { flex: 1; justify-content: center; }
}
