/* 000-base.css */
/* Movie OS modules' styles: every apps/movie-os/web/ext/*.css, served in name order as /movie-os/assets/ext.css. */

/* 20-setup.css */
/* Movie OS Setup screens and the setup library (20-setup.js). */
.setup-tabs { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 14px; }
.setup-tabs button { border-radius: 18px; padding: 6px 14px; display: inline-flex; align-items: center; gap: 6px; }
.setup-tabs button.on { background: var(--accent); color: var(--accent-ink); border-color: var(--accent); }
.setup-count { font-size: 11px; background: rgba(0,0,0,.08); border-radius: 9px; padding: 0 7px; }
.setup-tabs button.on .setup-count { background: rgba(255,255,255,.22); }
.setup-form .row { margin-bottom: 6px; }
.setup-form textarea { width: 100%; max-width: 560px; }
.setup-checks { display: flex; flex-wrap: wrap; gap: 4px 16px; }
.setup-checks label { display: inline-flex; align-items: center; gap: 4px; margin: 4px 0; color: var(--ink); font-size: 14px; }
.setup-sub { margin: 4px 0 8px; }
.setup-sub input, .setup-sub select { padding: 4px 6px; }
.setup-swatch { display: inline-block; width: 18px; height: 18px; border-radius: 4px; border: 1px solid var(--line); vertical-align: middle; }
.setup-acts { gap: 2px; flex-wrap: nowrap; }
.setup-warn { border-color: #f0c98a; background: #fffaf0; }
.setup-budgets { align-items: center; margin: 6px 0; }
.small { font-size: 12px; }
td code { font-size: 13px; background: #f4f6f9; padding: 1px 5px; border-radius: 4px; }

/* 30-reports.css */
/* Movie OS reports (30-reports.js): Report Setup, previews, comparison, tax credit, client topsheets. */
.rep-actions { margin-top: 14px; align-items: center; }
.rep-downloads { gap: 12px; align-items: center; }
.rep-downloads a.rep-dl { font-weight: 600; text-decoration: none; border: 1px solid var(--line); border-radius: 8px; padding: 5px 10px; background: #fff; }
.rep-downloads a.rep-dl:hover { background: #f0f3f7; }
.rep-tags { font-family: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace; font-size: 12px; margin: 0 0 6px; }
.rep-narrow { width: 80px; }
.rep-project { margin-bottom: 10px; }
.rep-project b { display: block; margin-bottom: 2px; }
.rep-checks { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 2px 14px; max-height: 320px; overflow: auto; border: 1px solid var(--line); border-radius: 8px; padding: 8px 10px; }
.rep-checks label { display: flex; gap: 6px; align-items: center; margin: 2px 0; color: var(--ink); font-size: 14px; }
.rep-preview:empty { display: none; }
.rep-doc { margin-top: 16px; }
.rep-cover { border: 1px solid var(--line); border-radius: 8px; padding: 24px; text-align: center; margin-bottom: 16px; }
.rep-cover b { display: block; font-size: 20px; margin-bottom: 8px; }
.rep-section { margin-bottom: 22px; }
.rep-section h3 { font-size: 15px; margin: 0 0 8px; padding-bottom: 4px; border-bottom: 2px solid var(--accent); }
.rep-section h4 { font-size: 13px; margin: 12px 0 4px; color: var(--muted); text-transform: uppercase; letter-spacing: .04em; }
.rep-table { font-size: 13px; }
.rep-table td, .rep-table th { padding: 4px 8px; }
.rep-table tr.rs-cat td { background: #eef1f6; font-weight: 700; }
.rep-table tr.rs-acct td { font-weight: 600; }
.rep-table tr.rs-total td { font-weight: 700; border-top: 1px solid var(--ink); }
.rep-table tr.rs-grand td, table tr.rs-grand td { font-weight: 800; background: #e6eaf1; }
.rep-table tr.rs-sub td { color: var(--muted); }
.rep-table td.rep-ind1 { padding-left: 22px; }
.rep-table td.rep-ind2 { padding-left: 36px; }
.rep-table td.rep-ind3 { padding-left: 50px; }
.rep-table td.rep-ind4 { padding-left: 64px; }
.rep-table td.rep-ind5 { padding-left: 78px; }
.rep-table td.rep-ind6 { padding-left: 92px; }

/* 60-contracts.css */
/* Movie OS · Contracts (60-contracts.js). The app's look: panels, tables, pills. */
.ct-tabs { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 14px; }
.ct-tabs button { border-radius: 18px; }
.ct-tabs button.on { background: var(--accent, #051D39); color: #fff; border-color: var(--accent, #051D39); }
.ct-row { cursor: pointer; }
.ct-row:hover td { background: #f6f8fb; }
.ct-st-signed { background: #e3f4ea; color: #1d6b3d; }
.ct-st-sent { background: #e6eefb; color: #1f4f9a; }
.ct-st-in_review { background: #fff2dc; color: var(--warn, #9a5b00); }
.ct-st-expired, .ct-st-terminated { background: #eceef1; color: var(--muted); text-decoration: line-through; }
.ct-remind { border-left: 4px solid var(--warn, #9a5b00); }
.ct-dl { padding: 4px 0; border-bottom: 1px dashed var(--line); font-size: 14px; }
.ct-dl.overdue b { color: #b42318; }
.ct-dl.soon b { color: var(--warn, #9a5b00); }
.ct-text { width: 100%; box-sizing: border-box; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 13px; line-height: 1.45; }
.ct-notes { width: 100%; box-sizing: border-box; }
.ct-pre { white-space: pre-wrap; word-break: break-word; background: #f7f8fa; border: 1px solid var(--line); border-radius: 8px; padding: 12px; font-size: 13px; max-height: 520px; overflow: auto; }
.ct-redline { white-space: pre-wrap; word-break: break-word; background: #fff; border: 1px solid var(--line); border-radius: 8px; padding: 12px; font-size: 13px; line-height: 1.5; max-height: 620px; overflow: auto; }
.ct-redline ins { background: #dff3e4; color: #135c2e; text-decoration: underline; }
.ct-redline del { background: #fde4e1; color: #a1271b; }
.ct-findings td { font-size: 13px; }
.ct-excerpt { white-space: pre-wrap; background: #f7f8fa; border-radius: 6px; padding: 6px 8px; margin-bottom: 4px; font-size: 12.5px; }
.ct-f-missing td:first-child, .ct-f-warn td:first-child { font-weight: 600; }
.ct-switch { border-bottom: 1px solid var(--line); padding: 8px 0; }
.ct-switch p { margin: 4px 0 0 24px; font-size: 13px; }
.ct-steps { margin-top: 12px; }
.ct-amount { display: inline-block; padding: 8px 0; font-variant-numeric: tabular-nums; font-weight: 600; }
