/* Live-application additions: sign-in, the intake form, uploads, the model pill. Tokens only. */

.boot { min-height: 100dvh; display: grid; place-items: center; }
.login-wrap { min-height: 100dvh; display: grid; place-items: center; padding: var(--sp-6) var(--sp-4); background: radial-gradient(1200px 500px at 50% -10%, var(--primary-soft), transparent 70%), var(--bg); position: relative; }
.login-tools { position: absolute; inset-block-start: 16px; inset-inline-end: 16px; display: flex; gap: 6px; }
.login-card { width: min(440px, 100%); background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-xl); box-shadow: var(--shadow-3); padding: 32px 30px 26px; display: flex; flex-direction: column; gap: 16px; animation: fade-up var(--d-slow) var(--ease-out) both; }
.login-brand { display: flex; gap: 14px; align-items: center; margin-bottom: 4px; }
.login-brand h1 { font-size: var(--fs-xl); font-weight: 700; line-height: 1.3; }
.logo-lg { width: 52px; height: 52px; border-radius: 16px; }
.login-foot { text-align: center; margin-top: 4px; }

.model-pill { background: var(--info-soft); color: var(--info-text); border-color: color-mix(in srgb, var(--info) 35%, transparent); }

/* intake form */
.intake { display: flex; flex-direction: column; gap: var(--sp-6); }
.isec { background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-lg); padding: 20px 22px 24px; display: flex; flex-direction: column; gap: 16px; box-shadow: var(--shadow-1); }
.isec > header h3 { font-size: var(--fs-lg); font-weight: 700; }
.isub { font-size: var(--fs-md); font-weight: 700; color: var(--text-2); margin-top: 6px; padding-top: 14px; border-top: 1px solid var(--divider); }
.rec-card { border: 1px solid var(--border); border-radius: var(--r-md); background: var(--surface-2); padding: 14px 16px; display: flex; flex-direction: column; gap: 12px; }
.rec-actions { display: flex; justify-content: flex-end; border-top: 1px solid var(--divider); padding-top: 8px; }
.intake-bar { position: sticky; bottom: 0; display: flex; justify-content: flex-end; gap: 10px; padding: 12px 0; background: linear-gradient(to top, var(--bg) 70%, transparent); z-index: 4; }
.field.full { grid-column: 1 / -1; }
@media (max-width: 759px) { .isec { padding: 16px 14px 20px; } .intake-bar { bottom: var(--bottom-nav-h); } }

.up-btn { align-self: flex-start; }
label.dropzone { cursor: pointer; }
.dropzone:focus-within, label.dropzone:focus-visible { outline: 3px solid var(--focus); outline-offset: 2px; }

/* ---- live artifact renderer: documents, key/value rows, nested objects --------------------------- */
.stack-5 > * + * { margin-block-start: var(--sp-5); }
.bullets.tight { gap: 3px; }
.doc-sec { display: flex; flex-direction: column; }
.val { overflow-wrap: anywhere; }
.obj-card { display: flex; flex-direction: column; gap: 8px; padding: 12px 14px; border: 1px solid var(--divider); border-radius: var(--r-md); background: var(--surface-2); min-width: 0; }
.obj-card.is-nested { background: var(--surface); }
.obj-head { display: flex; gap: 8px; align-items: baseline; flex-wrap: wrap; }
.kv-row { display: grid; grid-template-columns: minmax(110px, 190px) minmax(0, 1fr); gap: 4px 14px; align-items: baseline; }
.kv-k { font-size: var(--fs-sm); color: var(--text-3); font-weight: 600; }
.kv-v { min-width: 0; overflow-wrap: anywhere; }
.kv-block { display: flex; flex-direction: column; gap: 6px; }
@media (max-width: 640px) { .kv-row { grid-template-columns: minmax(0, 1fr); } }
.ctx { color: var(--text-3); }

/* ---- budget: the lines under a calculation, the places an assumption can be typed -------------- */
.calc-outs { display: flex; flex-direction: column; gap: 4px; margin-top: auto; }
.calc-out { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.calc-out b { font-size: var(--fs-lg); }
.calc-note { color: var(--attn-text); font-size: 11.5px; line-height: 1.5; }
.use-list { display: flex; flex-direction: column; gap: 6px; margin-top: auto; }
button.use-chip { border: 0; font: inherit; cursor: pointer; }
button.use-chip:hover { text-decoration: underline; text-underline-offset: 3px; }
.calc.is-missing .use-chip { white-space: normal; text-align: start; }
.field.is-needed .label { color: var(--attn-text); }
.field.is-needed .input { border-color: var(--attn-border); }
.isec-d { border: 1px solid var(--border); border-radius: var(--r-md); padding: 4px 16px; background: var(--surface); }
.isec-d > summary { cursor: pointer; padding: 12px 0; font-weight: 600; display: flex; gap: 10px; align-items: center; list-style: none; }
.isec-d > summary::-webkit-details-marker { display: none; }
.isec-d > summary::after { content: ""; margin-inline-start: auto; width: 8px; height: 8px; border-inline-end: 2px solid var(--text-3); border-block-end: 2px solid var(--text-3); transform: rotate(45deg); transition: transform .15s; }
.isec-d[open] > summary::after { transform: rotate(-135deg); }
.isec-d[open] { padding-bottom: 16px; }

/* ---- start checklist (workspace) ------------------------------------------------------------------ */
.checklist { list-style: none; display: flex; flex-direction: column; gap: 8px; }
.check-row { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-radius: var(--r-md); background: var(--attn-soft); border: 1px solid var(--attn-border); color: var(--attn-text); }
.check-row.is-ok { background: var(--success-soft); border-color: color-mix(in srgb, var(--success) 35%, var(--border)); color: var(--success-text); }
.check-row > span { color: var(--text); }
.indeterminate { height: 6px; border-radius: 3px; background: var(--primary-soft-2); overflow: hidden; position: relative; }
.indeterminate > span { position: absolute; inset-block: 0; width: 38%; background: var(--primary); border-radius: 3px; animation: indet 1.4s ease-in-out infinite; }
@keyframes indet { from { inset-inline-start: -40%; } to { inset-inline-start: 102%; } }
@media (prefers-reduced-motion: reduce) { .indeterminate > span { animation: none; inset-inline-start: 31%; } }

/* ---- report ------------------------------------------------------------------------------------- */
.report-sec-head { list-style: none; cursor: pointer; display: flex; align-items: center; gap: 10px; padding: 4px 0; font-size: var(--fs-lg); font-weight: 700; }
.report-sec-head::-webkit-details-marker { display: none; }
details.report-sec[open] > .report-sec-head { margin-bottom: 8px; }
.toc-dot { width: 8px; height: 8px; border-radius: 50%; margin-inline-start: auto; background: var(--attn); flex: none; }
.toc-gap, .toc-missing { background: var(--danger); }
.toc-not_applicable { background: var(--text-3); }
.gap-ico { flex: none; margin-top: 2px; }

/* ---- calendar: the three kinds of date ---------------------------------------------------------- */
.agenda-item.ds-proposed { border-style: dashed; }
.agenda-item.ds-confirmed { border-inline-start: 0; }

.intake-fs { border: 0; padding: 0; margin: 0; min-width: 0; display: flex; flex-direction: column; gap: var(--sp-5); }

.decision-note { border-style: dashed; }

