@font-face {
    font-family: "Shot Liner Slab";
    src: url("/assets/fonts/shot-liner-slab-thin.woff2") format("woff2");
    font-style: normal;
    font-weight: 250;
    font-display: swap;
}
@font-face {
    font-family: "Shot Liner Slab";
    src: url("/assets/fonts/shot-liner-slab-light.woff2") format("woff2");
    font-style: normal;
    font-weight: 300;
    font-display: swap;
}
@font-face {
    font-family: "Shot Liner Slab";
    src: url("/assets/fonts/shot-liner-slab-regular.woff2") format("woff2");
    font-style: normal;
    font-weight: 400;
    font-display: swap;
}
@font-face {
    font-family: "Clarity City";
    src: url("/assets/fonts/clarity-city-extralight.woff2") format("woff2");
    font-style: normal;
    font-weight: 250;
    font-display: swap;
}
@font-face {
    font-family: "Clarity City";
    src: url("/assets/fonts/clarity-city-extralightitalic.woff2") format("woff2");
    font-style: italic;
    font-weight: 250;
    font-display: swap;
}
@font-face {
    font-family: "Clarity City";
    src: url("/assets/fonts/clarity-city-regular.woff2") format("woff2");
    font-style: normal;
    font-weight: 400;
    font-display: swap;
}
@font-face {
    font-family: "Clarity City";
    src: url("/assets/fonts/clarity-city-italic.woff2") format("woff2");
    font-style: italic;
    font-weight: 400;
    font-display: swap;
}
@font-face {
    font-family: "Clarity City";
    src: url("/assets/fonts/clarity-city-semibold.woff2") format("woff2");
    font-style: normal;
    font-weight: 600;
    font-display: swap;
}
@font-face {
    font-family: "Clarity City";
    src: url("/assets/fonts/clarity-city-semibolditalic.woff2") format("woff2");
    font-style: italic;
    font-weight: 600;
    font-display: swap;
}
:root {
    --font-heading: "Shot Liner Slab", Georgia, serif;
    --font-ui: "Clarity City", ui-sans-serif, system-ui, sans-serif;
    color-scheme: dark;
    font-family: var(--font-ui);
    background: #121416;
    color: #f4f1e8;
}
/* Only the supplied thin faces are hosted for this heading trial. */
h1, h2, h3, h4, h5, h6 {
    font-family: var(--font-heading);
    font-synthesis: small-caps;
    font-variant-caps: small-caps !important;
    letter-spacing: 0.025em;
    text-transform: none;
}
h1 { font-weight: 250 !important; }
h2 { font-weight: 300 !important; letter-spacing: 0.04em; }
h3, h4, h5, h6 { font-weight: 400 !important; letter-spacing: 0.05em; }
/* Preserve the browser heading hierarchy at 90% of its previous size. */
h2 { font-size: 1.35em; }
h3 { font-size: 1.053em; }
h4 { font-size: 0.9em; }
h5 { font-size: 0.747em; }
h6 { font-size: 0.603em; }
* { box-sizing: border-box; }
button, input, select, textarea { font-family: var(--font-ui); }
body {
    min-height: 100vh;
    margin: 0;
    background: radial-gradient(circle at top left, rgba(202, 128, 43, 0.18), transparent 38rem), #121416;
}
.screen-width-warning { display: none; }
.site-nav { display: flex; align-items: center; justify-content: space-between; min-height: 4.25rem; border-bottom: 1px solid #2d3134; padding: 0 2rem; background: rgba(18, 20, 22, 0.9); backdrop-filter: blur(1rem); }
.site-identity { display: flex; align-items: baseline; gap: 0.8rem; min-width: 0; }
.site-brand-heading { flex: none; margin: 0; font-size: 1.25rem; line-height: 1.1; }
.site-nav .brand { color: #f4f1e8; text-decoration: none; }
.site-nav nav { display: flex; align-items: center; gap: 1.25rem; }
.site-nav nav a { text-decoration: none; }
.site-nav .nav-action { display: inline-flex; align-items: center; border: 1px solid #4a4f52; border-radius: 0.45rem; padding: 0.5rem 0.7rem; white-space: nowrap; }
.site-nav .nav-action:hover { border-color: #db984d; }
.account-menu { display: flex; align-items: center; gap: 0.9rem; min-height: 2.25rem; border-left: 1px solid #34383b; padding-left: 1.25rem; }
.user-chip { display: flex; align-items: center; gap: 0.55rem; min-width: 0; line-height: 1; }
.user-chip strong { max-width: 12rem; overflow: hidden; color: #f4f1e8; font-size: 0.82rem; line-height: 1.15; text-overflow: ellipsis; white-space: nowrap; }
.user-chip small { display: inline-block; border-radius: 99px; padding: 0.25rem 0.45rem; background: #292d2f; color: #aeb4b6; font-size: 0.68rem; font-weight: 700; line-height: 1; letter-spacing: 0.03em; }
.logout-form { margin: 0; }
.logout-form button { border: 1px solid #3b4043; border-radius: 0.45rem; padding: 0.45rem 0.65rem; background: transparent; color: #e6a65d; font: inherit; font-size: 0.78rem; cursor: pointer; }
.logout-form button:hover { border-color: #596064; color: #ffc47f; }
.logout-form button:focus-visible { outline: 2px solid rgba(219, 152, 77, 0.35); outline-offset: 2px; }
.shell { display: grid; grid-template-columns: minmax(0, 1fr); min-height: calc(100vh - 4.25rem); place-items: center; padding: 2rem; }
.card {
    width: min(46rem, 100%);
    padding: clamp(2rem, 6vw, 4rem);
    border: 1px solid #34383b;
    border-radius: 1.25rem;
    background: rgba(30, 33, 35, 0.92);
    box-shadow: 0 2rem 6rem rgba(0, 0, 0, 0.35);
}
.card-wide { width: min(56rem, 100%); }
.auth-shell { min-height: 100vh; }
.auth-card { width: min(28rem, 100%); border: 1px solid #34383b; border-radius: 1.25rem; padding: 2.5rem; background: rgba(30, 33, 35, 0.96); box-shadow: 0 2rem 6rem rgba(0, 0, 0, 0.42); }
.auth-card h1 { font-size: clamp(2.25rem, 7.2vw, 3.825rem); }
.auth-mark { display: grid; width: 3rem; height: 3rem; margin-bottom: 2rem; place-items: center; border-radius: 0.7rem; background: #c9802b; color: #171819; font-family: Georgia, "Times New Roman", serif; font-weight: 800; }
.auth-intro { margin: 0.8rem 0 2rem; color: #aeb4b6; }
.auth-actions { justify-content: stretch; }
.auth-actions button { width: 100%; }
.eyebrow { margin: 0 0 0.75rem; color: #db984d; font-size: 0.78rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; }
h1 { margin: 0; font-family: var(--font-heading); font-size: clamp(2.25rem, 7.2vw, 4.5rem); font-weight: 250; letter-spacing: 0.025em; }
.lead { max-width: 35rem; margin: 1.25rem 0 2.5rem; color: #b9bdbe; font-size: 1.1rem; line-height: 1.65; }
.status-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr)); gap: 1rem; margin: 0; }
.status-grid div { padding: 1rem; border: 1px solid #363a3d; border-radius: 0.75rem; background: #181b1d; }
dt { color: #8f9698; font-size: 0.75rem; letter-spacing: 0.08em; text-transform: uppercase; }
dd { margin: 0.45rem 0 0; font-weight: 650; }
a { color: #e6a65d; }
.button { display: inline-block; padding: 0.75rem 1rem; border-radius: 0.5rem; background: #c9802b; color: #161718; font-weight: 700; text-decoration: none; }
.home-status { margin-top: 2rem; }
.hero-actions { display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; }
.hero-actions button { border: 0; border-radius: 0.5rem; padding: 0.75rem 1rem; background: #c9802b; color: #161718; font: inherit; font-weight: 700; cursor: pointer; }
.imported-version-form { margin-top: 0; }
.editable-title-field { display: grid; gap: 0.45rem; }
.editable-title-input { width: 100%; border: 1px solid transparent; border-radius: 0.35rem; margin: -0.08em 0 0 -0.12em; padding: 0.08em 0.12em; background: transparent; color: #f4f1e8; font-family: var(--font-heading); font-size: clamp(2.25rem, 7.2vw, 4.5rem); font-weight: 250; line-height: 1.05; letter-spacing: 0.025em; text-transform: capitalize; cursor: text; touch-action: manipulation; user-select: text; -webkit-user-select: text; -webkit-touch-callout: default; }
.editable-title-input::selection { background: #2767a7; color: #fff; }
.editable-title-input:hover { border-color: #454b4f; }
.editable-title-input:focus { border-color: #db984d; outline: 3px solid rgba(219, 152, 77, 0.18); background: #181b1d; }
.imported-version-lead { margin-bottom: 1rem; }
.imported-version-summary { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.form-stack { display: grid; gap: 1.5rem; }
.field { display: grid; gap: 0.5rem; }
.field label { font-weight: 700; }
.field label span, .field small { color: #8f9698; font-size: 0.82rem; font-weight: 400; }
.field input, .field textarea, .field select {
    width: 100%;
    border: 1px solid #454b4f;
    border-radius: 0.55rem;
    padding: 0.85rem 0.95rem;
    background: #141719;
    color: #f4f1e8;
    font: inherit;
}
.field input:focus, .field textarea:focus, .field select:focus {
    border-color: #db984d;
    outline: 3px solid rgba(219, 152, 77, 0.18);
}
.field-error { margin: 0; color: #ff9f91; font-size: 0.88rem; }
.alert { margin-bottom: 1.5rem; border: 1px solid #82483f; border-radius: 0.55rem; padding: 0.9rem; background: #39231f; color: #ffd1ca; }
.form-actions { display: flex; align-items: center; justify-content: flex-end; gap: 1rem; padding-top: 0.5rem; }
.workflow-actions { width: 100%; }
.form-actions button {
    border: 0;
    border-radius: 0.55rem;
    padding: 0.8rem 1.15rem;
    background: #c9802b;
    color: #161718;
    font: inherit;
    font-weight: 750;
    cursor: pointer;
}
.form-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.admin-form-card { width: min(48rem, 100%); }
.workspace-picker { display: grid; gap: 0.7rem; margin: 0; border: 1px solid #454b4f; border-radius: 0.75rem; padding: 1rem; }
.workspace-picker legend { padding: 0 0.4rem; font-weight: 750; }
.workspace-picker > p { margin: 0 0 0.35rem; color: #8f9698; font-size: 0.85rem; }
.workspace-picker label { display: flex; align-items: center; gap: 0.55rem; border-radius: 0.4rem; padding: 0.55rem; background: #171a1c; cursor: pointer; }
.workspace-picker input { width: 1rem; height: 1rem; accent-color: #c9802b; }
.admin-users-card { width: min(76rem, 100%); }
.user-table-wrap { overflow-x: auto; }
.user-table { width: 100%; border-collapse: collapse; }
.user-table th, .user-table td { border-bottom: 1px solid #34383b; padding: 0.9rem 0.7rem; text-align: left; white-space: nowrap; }
.user-table th { color: #8f9698; font-size: 0.72rem; letter-spacing: 0.07em; text-transform: uppercase; }
.user-table td:first-child { display: grid; gap: 0.2rem; min-width: 13rem; }
.user-table td:first-child span { color: #8f9698; font-size: 0.8rem; }
.role-badge { display: inline-block; border-radius: 99px; padding: 0.3rem 0.55rem; background: #292d2f; font-size: 0.75rem; font-weight: 750; }
.role-admin { background: rgba(219, 152, 77, 0.16); color: #e6a65d; }
.role-user { background: rgba(89, 153, 213, 0.16); color: #8ec5f5; }
.role-reader { color: #bdc3c5; }
.secondary-button { border: 1px solid #596064; border-radius: 0.55rem; padding: 0.72rem 0.95rem; color: #e5e8e9; font-weight: 700; text-decoration: none; }
.secondary-button:hover { border-color: #db984d; color: #fff; }
.secondary-button:focus-visible { outline: 3px solid rgba(219, 152, 77, 0.25); outline-offset: 2px; }
.next-step { display: grid; gap: 0.35rem; margin: 2rem 0; border-left: 3px solid #c9802b; padding-left: 1rem; color: #b9bdbe; }
.next-step strong { color: #f4f1e8; }
.upload-field { display: grid; gap: 0.65rem; border: 1px dashed #535a5e; border-radius: 0.8rem; padding: 1.5rem; background: #171a1c; }
.upload-field label { font-weight: 750; }
.upload-field input { color: #b9bdbe; }
.upload-field small { color: #8f9698; }
.import-notes { color: #b9bdbe; }
.import-notes strong { color: #f4f1e8; }
.import-notes ul { margin-bottom: 0; padding-left: 1.25rem; line-height: 1.7; }
.section-heading { display: flex; align-items: end; justify-content: space-between; gap: 1rem; margin-top: 3rem; border-top: 1px solid #34383b; padding-top: 2rem; }
.section-heading-top { align-items: center; margin: 0 0 2rem; border: 0; padding: 0; }
.section-heading-top h1 { font-size: clamp(2.025rem, 5.4vw, 3.6rem); }
.section-heading h2 { margin: 0; font-family: var(--font-heading); font-size: 1.62rem; font-weight: 300; }
.empty-state { margin-top: 1.25rem; border: 1px dashed #454b4f; border-radius: 0.75rem; padding: 1.25rem; color: #9ea4a6; }
.version-list { display: grid; gap: 0.75rem; margin-top: 1.25rem; }
.version-row { display: grid; grid-template-columns: 2fr 1fr auto auto; align-items: center; gap: 1rem; border: 1px solid #363a3d; border-radius: 0.7rem; padding: 1rem; background: #181b1d; }
.version-row div { display: grid; gap: 0.2rem; }
.version-row span { color: #92999b; font-size: 0.85rem; }
.older-versions { margin-top: 0.15rem; }
.older-versions summary { width: fit-content; border-radius: 0.45rem; padding: 0.55rem 0.7rem; color: #e6a65d; font-weight: 700; cursor: pointer; }
.older-versions summary:hover { background: rgba(219, 152, 77, 0.1); }
.older-versions .version-list { margin-top: 0.75rem; }
.older-versions .when-open { display: none; }
.older-versions[open] .when-closed { display: none; }
.older-versions[open] .when-open { display: inline; }
.status-pill { border-radius: 99px; padding: 0.35rem 0.65rem; background: rgba(219, 152, 77, 0.15); color: #e6a65d !important; text-transform: capitalize; }
.version-open { font-weight: 700; text-decoration: none; }
.back-link { margin: 2rem 0 0; }
.visually-hidden { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; }
.change-summary { margin: 0 0 2rem; }
.review-form { margin-top: 2rem; }
.change-section { display: grid; gap: 0.75rem; border-top: 1px solid #34383b; padding-top: 1.5rem; }
.change-section > p { margin: -0.25rem 0 0.5rem; color: #9ea4a6; line-height: 1.5; }
.change-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.change-heading h2 { margin: 0; font-family: var(--font-heading); font-size: 1.395rem; font-weight: 300; }
.change-heading > span { min-width: 2rem; border-radius: 99px; padding: 0.25rem 0.55rem; background: #292d2f; color: #c6cbcc; text-align: center; }
.resolution-block { display: grid; gap: 1rem; min-width: 0; margin: 0.5rem 0 1rem; border: 1px solid #454b4f; border-radius: 0.8rem; padding: 1.15rem; background: #15181a; }
.resolution-block legend { padding: 0 0.45rem; color: #e8ac69; font-weight: 750; }
.scene-context { display: grid; gap: 0.75rem; border: 1px solid #3c4f5d; border-radius: 0.65rem; padding: 1rem; background: #192128; }
.scene-context-heading { display: grid; gap: 0.3rem; }
.context-label { color: #7db4dc; font-size: 0.7rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; }
.scene-facts { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.scene-facts > span { border-radius: 99px; padding: 0.25rem 0.5rem; background: rgba(255, 255, 255, 0.06); color: #aeb6b9; font-size: 0.73rem; }
.scene-context blockquote { margin: 0; border-left: 2px solid #506b7e; padding-left: 0.75rem; color: #ccd2d4; font-size: 0.88rem; font-style: italic; line-height: 1.5; }
.scene-neighbors { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.5rem; }
.scene-neighbors > span { display: grid; gap: 0.15rem; min-width: 0; color: #aeb6b9; font-size: 0.75rem; }
.scene-neighbors small { color: #6f7c82; font-size: 0.65rem; font-weight: 750; letter-spacing: 0.06em; text-transform: uppercase; }
.decision-options { display: grid; gap: 0.6rem; }
.decision-prompt { margin: 0.15rem 0 0; color: #f4f1e8; font-weight: 750; }
.decision-card { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: start; gap: 0.75rem; border: 1px solid #3d4346; border-radius: 0.65rem; padding: 0.85rem; background: #1b1e20; cursor: pointer; }
.decision-card:hover { border-color: #687075; }
.decision-card:has(input:checked) { border-color: #db984d; outline: 2px solid rgba(219, 152, 77, 0.16); background: #252018; }
.decision-card input { margin-top: 0.25rem; accent-color: #d9913f; }
.decision-card > span { display: grid; gap: 0.35rem; }
.decision-card > span > small { color: #949b9d; line-height: 1.45; }
.decision-new { padding-block: 1rem; }
.decision-reject:has(input:checked) { border-color: #a85549; outline-color: rgba(207, 92, 77, 0.18); background: #2a1c1a; }
.candidate-content b { font-size: 0.86rem; }
.candidate-title { display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; }
.candidate-title em { color: #76c391; font-size: 0.7rem; font-style: normal; font-weight: 750; }
.candidate-excerpt { color: #bfc5c7; font-size: 0.8rem; font-style: italic; line-height: 1.4; }
.candidate-neighbors { color: #777f82; font-size: 0.7rem; }
.change-row { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 0.85rem; border: 1px solid #34393c; border-radius: 0.6rem; padding: 0.85rem; background: #181b1d; }
.change-row > div { display: grid; gap: 0.25rem; }
.change-row small { color: #8f9698; }
.change-kind { border-radius: 99px; padding: 0.3rem 0.55rem; font-size: 0.72rem; font-weight: 750; text-transform: uppercase; }
.change-kind.modified { background: rgba(219, 152, 77, 0.15); color: #e6a65d; }
.change-kind.moved { background: rgba(89, 153, 213, 0.16); color: #8ec5f5; }
.change-kind.deleted { background: rgba(207, 92, 77, 0.15); color: #ff9f91; }
.change-kind.carried { background: rgba(75, 157, 116, 0.16); color: #8ed9af; }
.scene-diff { display: grid; gap: 0.75rem; margin: 0.15rem 0 0.75rem; }
.scene-diff-section { display: grid; gap: 0.55rem; border: 1px solid #3b4144; border-radius: 0.65rem; padding: 0.8rem; background: #141719; }
.scene-diff-section h3 { margin: 0; color: #c9cecf; font-size: 0.675rem; letter-spacing: 0.05em; }
.scene-diff-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.65rem; }
.scene-diff-version { display: grid; align-content: start; gap: 0.5rem; min-width: 0; border-radius: 0.5rem; padding: 0.7rem; }
.scene-diff-previous { background: #b7878e; }
.scene-diff-current { background: #8ea49d; }
.scene-diff-version > strong { color: #202426; font-size: 0.7rem; letter-spacing: 0.05em; text-transform: uppercase; }
.scene-diff-version article { display: grid; }
.scene-diff-version article p { margin: 0; color: #0b0d0e; font-family: "Courier New", Courier, monospace; font-size: 0.84rem; font-weight: 700; line-height: 1.28; }
.scene-paragraph + .scene-paragraph { margin-top: 0.18rem; }
.scene-paragraph-character { width: 56%; margin-left: 34%; }
.scene-paragraph-dialogue { width: 62%; margin-left: 20%; }
.scene-paragraph-parenthetical { width: 54%; margin-left: 27%; }
.scene-paragraph-transition { width: 42%; margin-left: auto; text-align: right; }
.scene-paragraph-scene-heading { margin-top: 0.45rem; text-transform: uppercase; }
.scene-diff-none { margin: 0; color: #34393b; font-family: inherit; font-size: 0.8rem; font-style: italic; font-weight: 400; line-height: 1.5; }
.scene-diff-empty { margin: 0; color: #858d8f; font-size: 0.8rem; font-style: italic; line-height: 1.45; }
.section-review-decision { display: flex; align-items: center; gap: 0.55rem; margin: 0.1rem 0 0; border: 0; border-top: 1px solid #34393c; padding: 0.7rem 0 0; }
.section-review-decision legend { float: left; margin-right: auto; color: #d9ddde; font-size: 0.8rem; font-weight: 750; }
.section-review-decision label { display: flex; align-items: center; gap: 0.35rem; border: 1px solid #3d4346; border-radius: 99px; padding: 0.42rem 0.7rem; background: #181b1d; cursor: pointer; }
.section-review-decision label:has(input:checked) { border-color: #db984d; background: #252018; }
.section-review-decision label:last-child:has(input:checked) { border-color: #a85549; background: #2a1c1a; }
.section-review-decision input { margin: 0; accent-color: #d9913f; }
.section-review-decision span { font-size: 0.8rem; font-weight: 750; }
.form-actions .link-button { border: 0; padding: 0; background: transparent; color: #e6a65d; font-weight: 500; text-decoration: underline; }
.form-actions .link-button:hover { background: transparent; color: #f1bd81; }
.cancel-review span { color: #9ea4a6; }
.production-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(19rem, 100%), 1fr)); gap: 1rem; }
.pending-review-banner { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin: 1.25rem 0; border: 1px solid #6e512f; border-radius: 0.75rem; padding: 1rem; background: rgba(201, 128, 43, 0.1); }
.pending-review-banner > div { display: grid; gap: 0.25rem; }
.pending-review-banner span { color: #b9bdbe; font-size: 0.85rem; }
.pending-review-banner .button { flex: 0 0 auto; }
.production-card { display: grid; gap: 1rem; border: 1px solid #363a3d; border-radius: 0.85rem; padding: 1.25rem; background: #181b1d; }
.production-card-heading { display: flex; justify-content: space-between; gap: 1rem; color: #8f9698; font-size: 0.75rem; }
.production-card-heading div { display: flex; align-items: center; gap: 0.4rem; }
.production-card-heading .production-type-label { margin-left: .25rem; border-left: 1px solid #596064; padding-left: .65rem; color: #db984d; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.status-dot { width: 0.45rem; height: 0.45rem; border-radius: 50%; background: #68b984; }
.production-card h2 { margin: 0; font-family: var(--font-heading); font-size: 1.485rem; font-weight: 300; }
.production-card p { min-height: 2.6rem; margin: 0; color: #b9bdbe; line-height: 1.5; }
.production-card .muted { color: #737a7d; }
.production-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.5rem; margin: 0; }
.production-stats div { border-radius: 0.5rem; padding: 0.65rem; background: #121516; }
.open-production { display: flex; align-items: center; justify-content: space-between; border-radius: 0.55rem; padding: 0.8rem 0.95rem; background: #c9802b; color: #161718; font-weight: 800; text-decoration: none; transition: background 120ms ease, transform 120ms ease; }
.open-production:hover { background: #db984d; transform: translateY(-1px); }
.open-production:focus-visible { outline: 3px solid rgba(219, 152, 77, 0.35); outline-offset: 2px; }
.production-empty { display: grid; gap: 0.4rem; }
.production-empty span { color: #8f9698; }
.reader-workspace {
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
    width: min(110rem, 100%);
    height: calc(100vh - 8.25rem);
    min-height: 30rem;
    align-self: center;
}
.reader-toolbar { position: relative; z-index: 10; display: grid; border: 1px solid #34383b; border-radius: 0.8rem 0.8rem 0 0; background: #1b1e20; }
.reader-toolbar-primary { display: flex; align-items: center; gap: 0.75rem; padding: 0.65rem 1rem; }
.reader-document-actions { display: flex; align-items: center; justify-content: flex-end; gap: 0.65rem; margin-left: auto; }
.reader-view-workspace .reader-pdf-center { margin-right: auto; margin-left: auto; }
.reader-view-workspace .reader-document-actions { margin-left: 0; }
.reader-tag-menu { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 0.5rem; border-top: 1px solid #34383b; padding: 0.55rem 1rem; background: #171a1c; }
.reader-paste-scenes { margin-right: auto; }
.reader-readonly-notice { margin: 0; border-top: 1px solid #34383b; padding: 0.55rem 1rem; color: #aeb4b6; font-size: 0.78rem; }
.reader-toolbar a { font-size: 0.85rem; text-decoration: none; }
.reader-toolbar > span { color: #8f9698; font-size: 0.85rem; }
.reader-tag-count, .shot-list-count { margin: 0; color: #9da3a5; font-size: 0.78rem; white-space: nowrap; }
.reader-tag-count b, .shot-list-count b { color: #f4f1e8; }
.reader-context-link, .shot-list-context { margin-left: auto; overflow: hidden; color: #9da3a5; text-overflow: ellipsis; white-space: nowrap; }
.scene-jump { position: relative; display: grid; grid-template-columns: auto auto; align-items: center; gap: 0.35rem 0.65rem; }
.scene-jump label { color: #b9bdbe; font-size: 0.78rem; font-weight: 700; }
.scene-jump > span { display: flex; grid-column: 2; grid-row: 1; }
.scene-jump label { grid-column: 1; grid-row: 1; margin: 0; align-self: center; white-space: nowrap; }
.scene-jump small { grid-column: 1 / -1; grid-row: 2; }
.scene-jump-controls { position: relative; min-width: 18rem; }
.scene-jump input { flex: 1; min-width: 0; width: auto; border: 1px solid #4a5053; border-radius: 0.45rem 0 0 0.45rem; padding: 0.5rem 0.65rem; background: #111416; color: #f4f1e8; font: inherit; }
.scene-jump input:focus { border-color: #db984d; outline: 2px solid rgba(219, 152, 77, 0.2); }
.scene-jump button { border: 0; border-radius: 0 0.45rem 0.45rem 0; padding: 0.5rem 0.7rem; background: #c9802b; color: #171819; font: inherit; font-weight: 750; cursor: pointer; }
.scene-jump small { min-height: 1em; color: #ffb0a4; font-size: 0.7rem; }
.reader-toolbar .reader-report-link { color: #e6a65d; font-weight: 700; white-space: nowrap; }
.reader-toolbar .reader-report-link:hover { color: #ffc47f; }
.reader-toolbar .reader-pdf-link { border: 1px solid #596064; border-radius: 0.45rem; padding: 0.5rem 0.75rem; color: #e5e8e9; font-weight: 700; white-space: nowrap; }
.reader-toolbar .reader-pdf-link:hover { border-color: #db984d; color: #fff; }
.reader-lining-toggle { border: 1px solid #596064; border-radius: 0.45rem; padding: 0.5rem 0.75rem; background: #141719; color: #e5e8e9; font: inherit; font-size: 0.78rem; font-weight: 750; white-space: nowrap; cursor: pointer; }
.reader-lining-toggle:hover { border-color: #db984d; color: #fff; }
.reader-lining-toggle[aria-pressed="false"] { color: #aeb4b6; }
.reader-lining-toggle:focus-visible { border-color: #db984d; outline: 2px solid rgba(219, 152, 77, 0.3); outline-offset: 2px; }
.reader-lining-toggle:disabled { border-color: #3d4245; color: #666d70; cursor: not-allowed; }
.reader-tool-button { border: 1px solid #596064; border-radius: 0.45rem; padding: 0.5rem 0.72rem; background: #141719; color: #e5e8e9; font: inherit; font-size: 0.78rem; font-weight: 750; white-space: nowrap; cursor: pointer; }
.reader-tool-button:hover { border-color: #db984d; color: #fff; }
.reader-tool-button:disabled { border-color: #3d4245; color: #666d70; cursor: not-allowed; }
.reader-tag-tools { display: flex; align-items: center; gap: 0.45rem; white-space: nowrap; }
.reader-tag-kind { position: relative; display: flex; align-items: center; gap: 0.35rem; border: 1px solid #596064; border-radius: 0.45rem; padding-left: 0.55rem; background: #141719; }
.reader-tag-kind select[hidden] { display: none; }
.reader-tag-tools .reader-tag-picker-toggle { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-width: 10rem; border: 0; border-left: 1px solid #444a4d; border-radius: 0 0.45rem 0.45rem 0; padding: 0.48rem 0.65rem; background: #1b1f21; color: #fff; }
.reader-tag-tools .reader-tag-picker-toggle span { color: inherit; }
.reader-tag-tools .reader-tag-picker-toggle:disabled { opacity: 0.65; cursor: not-allowed; }
.reader-tag-picker-panel { position: absolute; top: calc(100% + 0.3rem); left: 0; z-index: 30; width: max(15rem, 100%); max-height: min(65vh, 29rem); overflow-y: auto; border: 1px solid #596064; border-radius: 0.45rem; padding: 0.35rem; background: #1b1f21; box-shadow: 0 0.6rem 1.5rem rgba(0, 0, 0, 0.45); }
.reader-tag-picker-panel[hidden], .reader-tag-picker-group[hidden] { display: none; }
.reader-tag-tools .reader-tag-picker-panel button { display: block; width: 100%; border: 0; border-radius: 0.25rem; padding: 0.45rem 0.65rem; background: transparent; color: #e5e8e9; text-align: left; font-weight: 600; }
.reader-tag-tools .reader-tag-picker-panel button[hidden] { display: none; }
.reader-tag-tools .reader-tag-picker-panel button:hover, .reader-tag-tools .reader-tag-picker-panel button[aria-pressed="true"] { background: #5e3914; color: #fff; }
.reader-tag-tools .reader-tag-picker-panel button:disabled { background: transparent; color: #747b7e; cursor: not-allowed; }
.reader-tag-picker-group > summary { cursor: pointer; border-radius: 0.25rem; padding: 0.45rem 0.65rem; color: #e5e8e9; font-size: 0.78rem; font-weight: 750; }
.reader-tag-picker-group > summary:hover { background: #30363a; }
.reader-tag-picker-children { padding-left: 0.8rem; }
.reader-tag-picker-children .reader-tag-picker-children { padding-left: 0.8rem; }
.reader-tag-actions { display: flex; align-items: center; gap: 0.25rem; }
.reader-tag-tools button { border: 1px solid #596064; border-radius: 0.45rem; padding: 0.5rem 0.72rem; background: #141719; color: #e5e8e9; font: inherit; font-size: 0.78rem; font-weight: 750; cursor: pointer; }
.reader-tag-tools button:hover, .reader-tag-tools button[aria-pressed="true"] { border-color: #db984d; color: #fff; }
.reader-tag-tools button[aria-pressed="true"] { background: #5e3914; }
.reader-tag-tools .reader-tag-actions button[data-mode-state="off"] { border-color: #81898d; background: #34383b; color: #d4d8da; }
.reader-tag-tools .reader-tag-actions button[data-mode-state="armed"] { border-color: #dba34a; background: #34383b; color: #d4d8da; }
.reader-tag-tools .reader-tag-actions button[data-mode-state="apply"] { border-color: #dba34a; background: #8a5a20; color: #e5e8e9; }
.reader-tag-tools .reader-tag-actions button:disabled { opacity: 0.55; cursor: not-allowed; }
.reader-tag-tools .reader-lock-button[aria-pressed="true"] { border-color: #db984d; background: #c9802b; color: #171819; font-weight: 900; }
.reader-tag-kind select:disabled { color: #f4f1e8; opacity: 0.72; cursor: not-allowed; }
.reader-tag-tools span { color: #aeb4b6; font-size: 0.75rem; }
.scene-jump-options { position: absolute; z-index: 20; top: calc(100% + 0.3rem); left: 0; display: grid !important; width: 100%; max-height: 18rem; overflow-y: auto; border: 1px solid #4a5053; border-radius: 0.5rem; background: #f7f7f5; box-shadow: 0 0.5rem 1.25rem rgba(0, 0, 0, 0.3); }
.scene-jump-options[hidden] { display: none !important; }
.scene-jump-options button { display: grid; grid-template-columns: 3.5rem minmax(0, 1fr); gap: 0.6rem; width: 100%; border-radius: 0; padding: 0.65rem 0.8rem; background: #f7f7f5; color: #202325; text-align: left; }
.scene-jump-options button[hidden] { display: none; }
.scene-jump-options button + button { border-top: 1px solid #d8d8d4; }
.scene-jump-options button:hover, .scene-jump-options button:focus-visible { outline: 0; background: #e3ecfa; }
.scene-jump-options button strong { color: #1769d2; }
.scene-jump-options button span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 500; }
.reader-body { position: relative; --scene-index-width: 13rem; display: grid; grid-template-columns: var(--scene-index-width) minmax(0, 1fr); min-height: 0; border: 1px solid #34383b; border-top: 0; border-radius: 0 0 0.8rem 0.8rem; overflow: hidden; background: #25292b; }
.scene-index { display: grid; align-content: start; min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: 1rem; }
.scene-index { border-right: 1px solid #34383b; text-transform: uppercase; }
.scene-index-heading { display: flex; align-items: center; justify-content: flex-start; gap: 0.75rem; margin-bottom: 0.75rem; }
.scene-index-sizes { display: flex; gap: 0.35rem; }
.scene-index-sizes button { border: 0; padding: 0.15rem 0.4rem; background: transparent; color: #e6a65d; font: inherit; font-size: 0.9rem; cursor: pointer; }
.scene-index-sizes button:hover:not(:disabled) { color: #ffc47f; text-decoration: underline; }
.scene-index-sizes button:disabled { color: #5f6668; cursor: default; }
.scene-index-sizes button:focus-visible { outline: 2px solid #db984d; outline-offset: 2px; }
.shot-delete-dialog { max-width: min(28rem, calc(100% - 2rem)); border: 1px solid #596064; border-radius: 0.75rem; padding: 1.5rem; background: #1b1e20; color: #f4f1e8; }
.shot-delete-dialog::backdrop { background: rgba(0, 0, 0, 0.65); }
.shot-delete-dialog button { margin-right: 0.5rem; padding: 0.6rem 0.85rem; cursor: pointer; }
.scene-index-heading > p { margin: 0; color: #8f9698; font-size: 0.72rem; font-weight: 750; letter-spacing: 0.1em; text-transform: uppercase; }
.scene-index > a { display: grid; grid-template-columns: 2.4rem 1fr; gap: 0.5rem; border-radius: 0.45rem; padding: 0.65rem; color: #c7cbcc; font-size: 0.78rem; line-height: 1.3; text-decoration: none; }
.scene-index > a:hover { background: #303537; color: #fff; }
.scene-index > a strong { color: #e6a65d; }
.scene-index > a span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.reader-workspace .scene-index { text-transform: uppercase; }
.scene-step-controls { position: absolute; z-index: 5; top: 0.75rem; right: 1.25rem; display: grid; gap: 0.25rem; }
.scene-step-controls button { display: grid; place-items: center; width: 2.25rem; height: 2.25rem; padding: 0.25rem; border: 0; border-radius: 0.4rem; background: #25292bee; color: #e6a65d; cursor: pointer; }
.scene-step-controls button svg { width: 1.75rem; height: 1.75rem; fill: currentColor; stroke: currentColor; stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round; }
.scene-step-controls button:hover:not(:disabled) { background: #34383b; color: #ffc47f; }
.scene-step-controls button:disabled { opacity: 0.3; cursor: default; }
.scene-step-controls button:focus-visible { outline: 2px solid #e6a65d; outline-offset: 2px; }
.screenplay-scroll {
    min-width: 0;
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
    scroll-behavior: smooth;
}
.screenplay-scroll:focus-visible { outline: 2px solid #db984d; outline-offset: -2px; }
.screenplay-paper {
    --script-left-margin: 1.5in;
    width: min(8.5in, calc(100% - 2rem));
    min-height: 70vh;
    margin: 1rem auto 3rem;
    padding: 0.75in 1in 1in var(--script-left-margin);
    background: #dededb;
    box-shadow: 0 0.75rem 2rem rgba(0, 0, 0, 0.28);
    color: #111;
    font-family: Courier, "Courier New", monospace;
    font-size: 12pt;
    line-height: 1.2;
}
.screenplay-paragraph { min-height: 1.2em; margin: 0 0 1.2em; white-space: pre-wrap; scroll-margin-top: 1rem; }
.screenplay-paragraph.type-scene-heading {
    position: relative;
    margin-top: 3.6em;
    margin-bottom: 1.2em;
    border-top: 4px solid #1769d2;
    padding-top: 1.65em;
    font-weight: 700;
    text-transform: uppercase;
}
.screenplay-paragraph.type-scene-heading::before {
    position: absolute;
    top: -0.72em;
    left: calc(0in - var(--script-left-margin) + 0.1in);
    width: calc(var(--script-left-margin) - 0.25in);
    padding-right: 0.15in;
    background: #dededb;
    color: #1769d2;
    content: attr(data-scene-number);
    font-size: 28pt;
    font-weight: 700;
    line-height: 1;
    text-align: right;
}
.scene-page-eighths { position: absolute; top: 0.35em; right: 0; padding-left: 0.15in; background: #dededb; color: #73777a; font-family: var(--font-ui); font-size: 12pt; font-weight: 700; line-height: 1; text-transform: none; }
.screenplay-paragraph.type-scene-heading.scene-jump-target { animation: scene-jump-pulse 1.5s ease-out; }
@keyframes scene-jump-pulse {
    0%, 35% { background: rgba(23, 105, 210, 0.18); }
    100% { background: transparent; }
}
.screenplay-paragraph.type-action { position: relative; }
.screenplay-paragraph.type-character { width: 2.2in; margin: 1.2em 0 0 2.2in; text-transform: uppercase; }
.screenplay-paragraph.type-more,
.screenplay-paragraph.continuation-marker { width: 2.2in; margin-right: 0; margin-left: 2.2in; text-align: center; text-transform: uppercase; }
.scene-line-number { font-family: var(--font-ui); font-size: 8pt; font-weight: 800; line-height: 1; }
.action-line-number { position: absolute; top: 0.15em; right: calc(100% + 0.12in); width: 0.3in; color: #198754; text-align: right; pointer-events: none; user-select: none; -webkit-user-select: none; }
.action-line-number::before { content: attr(data-number); }
.character-line-number { margin-right: 0.12in; color: #c52b34; vertical-align: super; }
.action-line-number, .character-line-number { opacity: 0.75; }
.screenplay-paragraph.type-parenthetical { width: 2in; margin: 0 0 0 1.7in; }
.screenplay-paragraph.type-dialogue { width: 3.5in; margin: 0 0 1.2em 1in; }
.screenplay-paragraph.type-transition { margin-left: auto; text-align: right; text-transform: uppercase; }
.screenplay-paragraph.type-shot { font-weight: 700; text-transform: uppercase; }
.screenplay-paragraph.type-title-page { margin: 3em 0; text-align: center; }
.screenplay-empty { color: #333; text-align: center; }
.run-bold { font-weight: 700; }
.run-italic { font-style: italic; }
.run-underline { text-decoration: underline; }
.reader-screenplay-paper { position: relative; isolation: isolate; }
.episode-add-panel { margin-top: 1.25rem; }
.episode-add-panel summary { width: fit-content; color: #db984d; cursor: pointer; text-decoration: underline; }
.episode-add-form { display: flex; align-items: end; flex-wrap: wrap; gap: 0.8rem; margin-top: 1rem; }
.episode-add-form .field { min-width: 12rem; flex: 1; }
.scene-remove-lines { position: absolute; right: 1rem; z-index: 6; color: #50585b; font: 0.72rem var(--font-ui); text-decoration: underline; pointer-events: auto; }
.scene-remove-lines[hidden] { display: none; }
.scene-select-tags { position: absolute; top: 0.45em; left: 0.12in; z-index: 5; width: max-content; border: 0; padding: 0; background: #dededb; color: #50585b; font: 0.68rem var(--font-ui); font-weight: 400; line-height: 1.1; text-align: left; text-decoration: underline; text-transform: none; white-space: nowrap; cursor: pointer; }
.scene-select-tags[hidden], .scene-remove-tags[hidden] { display: none; }
.scene-select-tags[aria-pressed="true"] { color: #202628; font-weight: 700; }
.scene-select-tags:hover, .scene-remove-tags:hover, .scene-remove-lines:hover { color: #202628; }
.scene-remove-tags { position: absolute; right: 1rem; z-index: 6; color: #50585b; font: 0.72rem var(--font-ui); text-decoration: underline; }
.paste-scenes-dialog { width: min(34rem, calc(100vw - 2rem)); border: 1px solid #555d60; border-radius: 0.8rem; padding: 0; background: #202426; color: #eef0f0; box-shadow: 0 1.3rem 4rem #0009; }
.paste-scenes-dialog::backdrop { background: #080a0bcc; }
.paste-scenes-dialog form { display: grid; gap: 0.9rem; padding: 1.1rem; }
.paste-scenes-dialog h2, .paste-scenes-dialog p { margin: 0; }
.paste-scenes-dialog h2 { font-size: 1.008rem; }
.paste-scenes-dialog p { color: #cdd1d2; font-size: 0.85rem; line-height: 1.4; }
.paste-scenes-dialog fieldset { min-width: 0; max-height: min(45vh, 22rem); overflow-y: auto; border: 1px solid #474d50; border-radius: 0.5rem; padding: 0.7rem; }
.paste-scenes-dialog legend { padding: 0 0.35rem; font-size: 0.78rem; font-weight: 750; }
.paste-scenes-list { display: grid; gap: 0.5rem; }
.paste-scenes-list label { display: flex; align-items: baseline; gap: 0.55rem; font-size: 0.8rem; cursor: pointer; }
.paste-scenes-list label span { color: #bbc1c2; }
.paste-scenes-dialog footer { display: flex; justify-content: flex-end; gap: 0.6rem; }
.lining-script-footer { display: flex; justify-content: flex-end; width: min(8.5in, calc(100% - 2rem)); margin: -1.5rem auto 3rem; }
.lining-script-footer a { color: #d78d88; font-size: 0.8rem; text-decoration: underline; }
.shot-b-roll { align-self: end; }
.shot-b-roll input { width: auto; margin: 0.35rem 0; }
.reader-screenplay-paper .screenplay-paragraph { position: relative; z-index: 2; }
.reader-screenplay-paper.is-dropping-note { cursor: crosshair; }
.reader-script-admin-actions { position: relative; z-index: 6; display: flex; align-items: flex-end; flex-direction: column; gap: 0.4rem; margin-top: 3rem; padding-top: 0.75rem; border-top: 1px solid #b6b5b1; font-family: var(--font-ui); }
.reader-script-admin-actions p { margin: 0; color: #25583d; font-size: 0.75rem; font-weight: 700; }
.reader-script-admin-actions button { border: 0; padding: 0.2rem 0; background: transparent; color: #8b2323; font: inherit; font-size: 0.75rem; text-decoration: underline; cursor: pointer; }
.reader-script-admin-actions button:hover, .reader-script-admin-actions button:focus-visible { color: #b52222; }
.clear-script-tags-dialog { width: min(31rem, calc(100vw - 2rem)); border: 2px solid #a94a40; border-radius: 0.7rem; padding: 0; background: #202426; color: #eef0f0; box-shadow: 0 1.3rem 4rem rgba(0, 0, 0, 0.55); }
.clear-script-tags-dialog::backdrop { background: rgba(8, 10, 11, 0.8); }
.clear-script-tags-dialog form { display: grid; gap: 0.9rem; padding: 1.2rem; }
.clear-script-tags-dialog h2 { margin: 0; color: #ffb3aa; font-size: 1.035rem; }
.clear-script-tags-dialog p { margin: 0; line-height: 1.5; }
.clear-script-tags-dialog footer { display: flex; justify-content: flex-end; gap: 0.6rem; margin-top: 0.3rem; }
.clear-script-tags-dialog .danger-button { border: 1px solid #a94a40; border-radius: 0.5rem; padding: 0.7rem 0.9rem; background: #922d28; color: #fff; font: inherit; font-weight: 750; cursor: pointer; }
.clear-script-tags-dialog .danger-button:disabled { opacity: 0.45; cursor: not-allowed; }
.reader-annotation-layer { position: absolute; z-index: 1; inset: 0; pointer-events: none; }
.reader-annotation-marker-layer { position: absolute; z-index: 4; inset: 0; pointer-events: none; }
.annotation-highlight { position: absolute; border-radius: 0.15rem; background: #767b7e; opacity: 0.18 !important; }
.annotation-marker { position: absolute; z-index: 2; width: 1.45rem; height: 1.45rem; transform: translateY(-0.1rem); border: 2px solid #555b5e; border-radius: 50%; padding: 0; background: #a7abad; color: #252728; font-size: 0.68rem; line-height: 1; opacity: 0.3 !important; box-shadow: 0 0.12rem 0.35rem rgba(0, 0, 0, 0.28); cursor: pointer; pointer-events: auto; }
.tagging-workspace .annotation-highlight { opacity: 0.36 !important; }
.tagging-workspace .annotation-marker { opacity: 0.5 !important; }
.annotation-marker[data-tag-kind="tod"] .annotation-marker-hint { background: rgba(90, 56, 37, 0.92); }
.annotation-marker.annotation-highlight { transform: translate(-50%, -72%); }
.tagging-workspace .annotation-marker.is-generated-tag { transform: translate(-50%, -28%); }
.annotation-marker.annotation-note, .annotation-marker.annotation-presence { transform: translate(-50%, -0.2rem); cursor: move; touch-action: none; }
.annotation-marker.annotation-note.is-repositioning, .annotation-marker.annotation-presence.is-repositioning { opacity: 0.8 !important; box-shadow: 0 0 0 4px rgba(219, 152, 77, 0.28), 0 0.3rem 0.8rem rgba(0, 0, 0, 0.42); }
.annotation-marker-hint { position: absolute; top: 50%; left: calc(100% + 0.35rem); min-width: max-content; transform: translateY(-50%); border-radius: 0.25rem; padding: 0.16rem 0.32rem; background: rgba(45, 49, 51, 0.9); color: #f2f3f3; font-family: var(--font-ui); font-size: 0.62rem; font-weight: 700; line-height: 1.15; letter-spacing: 0; pointer-events: none; white-space: nowrap; }
.annotation-marker.hint-left .annotation-marker-hint { right: calc(100% + 0.35rem); left: auto; }
.annotation-marker.is-pasted .annotation-marker-hint { min-width: 0; max-width: 10rem; overflow: hidden; text-overflow: ellipsis; }
.annotation-marker:hover, .annotation-marker:focus-visible { outline: 3px solid rgba(39, 42, 44, 0.3); outline-offset: 2px; }
.reader-lining-layer { position: absolute; z-index: 5; inset: 0; pointer-events: none; }
.reader-lining-layer[hidden] { display: none; }
.reader-shot-line { margin: 0; border: 0; padding: 0; opacity: 0.5; cursor: help; pointer-events: auto; }
.reader-view-workspace .reader-shot-line { cursor: default; }
.reader-view-workspace [data-reader-tags][hidden] { display: none; }
.reader-shot-line:focus-visible { outline: 3px solid rgba(219, 152, 77, 0.55); outline-offset: 4px; }
.reader-lining-notice { position: fixed; z-index: 40; top: 5.25rem; right: 1.25rem; max-width: 24rem; border: 1px solid #596064; border-radius: 0.55rem; padding: 0.75rem 0.9rem; background: #171a1c; color: #c9cecf; box-shadow: 0 0.8rem 2rem rgba(0, 0, 0, 0.4); font-size: 0.78rem; }
.annotation-modal { width: min(36rem, calc(100vw - 2rem)); border: 1px solid #555d60; border-radius: 0.8rem; padding: 0; background: #202426; color: #eef0f0; box-shadow: 0 1.3rem 4rem rgba(0, 0, 0, 0.55); }
.annotation-modal::backdrop { background: rgba(8, 10, 11, 0.72); }
.annotation-modal form { display: grid; gap: 0.9rem; padding: 1.1rem; }
.annotation-modal header, .annotation-modal footer { display: flex; align-items: center; gap: 0.7rem; }
.annotation-modal header { justify-content: space-between; }
.annotation-modal header h2 { margin: 0; font-size: 1.008rem; }
.annotation-modal header button { border: 0; padding: 0.15rem 0.35rem; background: transparent; color: #c9cecf; font-size: 1.4rem; cursor: pointer; }
.annotation-modal .annotation-selection { max-height: 5.5rem; margin: 0; overflow: auto; border-left: 3px solid #db984d; padding: 0.45rem 0.65rem; background: #171a1c; color: #cdd1d2; font-size: 0.84rem; }
.setting-selector { display: grid; gap: 0.4rem; border: 1px solid #4a5053; border-radius: 0.5rem; padding: 0.7rem; background: #171a1c; }
.setting-selector[hidden] { display: none; }
.setting-selector > span { color: #aeb4b6; font-size: 0.75rem; }
.setting-selector > p { margin: 0; border-radius: 0.35rem; padding: 0.65rem; background: #f3f1ea; color: #202325; font-family: Courier, "Courier New", monospace; font-size: 0.9rem; font-weight: 700; line-height: 1.45; text-transform: uppercase; cursor: text; user-select: text; }
.setting-selector > p::selection { background: rgba(118, 123, 126, 0.5); }
.annotation-modal .field { display: grid; gap: 0.3rem; color: #cdd1d2; font-size: 0.78rem; font-weight: 700; }
.annotation-modal textarea, .annotation-modal select { width: 100%; border: 1px solid #555d60; border-radius: 0.4rem; padding: 0.55rem; background: #151819; color: #fff; font: inherit; }
.annotation-modal fieldset { display: grid; gap: 0.4rem; max-height: 12rem; overflow: auto; border: 1px solid #474d50; border-radius: 0.5rem; padding: 0.7rem; }
.annotation-modal legend { padding: 0 0.35rem; color: #cdd1d2; font-size: 0.78rem; font-weight: 750; }
.annotation-modal fieldset label { display: flex; align-items: flex-start; gap: 0.5rem; color: #e0e3e4; font-size: 0.8rem; }
.annotation-modal fieldset p { margin: 0; color: #9da4a6; font-size: 0.78rem; }
.annotation-modal footer { justify-content: flex-end; }
.annotation-modal footer span { flex: 1; }
.annotation-modal .danger-button { border-color: #8d4a4a; background: #4e2424; color: #ffd7d7; }
.category-help { margin: 0; color: #9da4a6; font-size: 0.8rem; line-height: 1.45; }
.category-list { display: grid; gap: 0.45rem; max-height: 20rem; overflow-y: auto; }
.category-row { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 0.45rem; }
.category-row input, .category-add input { min-width: 0; border: 1px solid #555d60; border-radius: 0.4rem; padding: 0.55rem; background: #151819; color: #fff; font: inherit; }
.category-row button, .category-add button { border: 1px solid #555d60; border-radius: 0.4rem; padding: 0.55rem 0.7rem; background: #303537; color: #fff; font: inherit; font-size: 0.78rem; cursor: pointer; }
.category-row span { min-width: 5rem; color: #858d8f; font-size: 0.72rem; text-align: right; }
.category-add { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 0.45rem; border-top: 1px solid #3f4548; padding-top: 0.85rem; }
.reader-lining-notice[hidden] { display: none; }
.production-planning-actions { display: flex; justify-content: flex-end; margin-top: 1rem; }
.planning-nav { display: inline-flex; align-items: center; flex: 0 0 auto; gap: 0.2rem; border: 1px solid #41474a; border-radius: 0.5rem; padding: 0.2rem; background: #141719; }
.planning-nav a, .planning-nav span { border-radius: 0.35rem; padding: 0.42rem 0.65rem; color: #aeb4b6; font-size: 0.74rem; font-weight: 750; line-height: 1; text-decoration: none; white-space: nowrap; }
.planning-nav a:hover { background: #272c2e; color: #fff; }
.planning-nav a[aria-current="page"] { background: #c9802b; color: #171819; }
.planning-nav span[aria-disabled="true"] { color: #5f6668; cursor: not-allowed; }
.reader-toolbar .planning-nav a, .reader-toolbar .planning-nav span { text-transform: uppercase; }
.shot-list-page > .planning-nav { margin: -0.75rem 0 1.5rem; }

/* Script lining */
.lining-workspace { display: grid; grid-template-rows: auto minmax(0, 1fr); width: min(110rem, 100%); height: calc(100vh - 8.25rem); min-height: 34rem; }
.lining-toolbar { display: flex; flex-wrap: wrap; min-width: 0; align-items: center; gap: 0.75rem; border: 1px solid #34383b; border-radius: 0.8rem 0.8rem 0 0; padding: 0.65rem 1rem; background: #1b1e20; }
.lining-scene-jump select { width: min(18rem, 24vw); border: 1px solid #454b4f; border-radius: 0.45rem; padding: 0.55rem 0.7rem; background: #141719; color: #cfd3d4; font: inherit; font-size: 0.8rem; }
.lining-tools { display: flex; align-items: center; gap: 0.75rem; border: 1px solid #3b4043; border-radius: 0.5rem; padding: 0.35rem 0.45rem; background: #151819; }
.draw-style-picker { display: flex; align-items: center; gap: 0.5rem; color: #d6dadb; font-size: 0.72rem; font-weight: 800; white-space: nowrap; }
.draw-style-picker select { min-width: 8.5rem; border: 1px solid #697175; border-radius: 0.4rem; padding: 0.48rem 1.9rem 0.48rem 0.65rem; background: #0f1213; color: #fff; font: inherit; font-size: 0.78rem; font-weight: 750; cursor: pointer; }
.draw-style-picker select:focus-visible { border-color: #db984d; outline: 3px solid rgba(219, 152, 77, 0.22); outline-offset: 1px; }
.lining-hint { margin-left: auto; border-left: 1px solid #3b4043; padding: 0.3rem 0 0.3rem 0.75rem; color: #858d8f; font-size: 0.7rem; line-height: 1.35; white-space: nowrap; }
.lining-shot-count { margin: 0; color: #9da3a5; font-size: 0.78rem; white-space: nowrap; }
.lining-shot-count b { color: #f4f1e8; }
.lining-body { min-width: 0; min-height: 0; border: 1px solid #34383b; border-top: 0; border-radius: 0 0 0.8rem 0.8rem; overflow: hidden; background: #25292b; }
.lining-scroll { width: 100%; height: 100%; background: #212527; }
.lining-paper { position: relative; isolation: isolate; }
.lining-paper .screenplay-paragraph { position: relative; z-index: 2; color: #080808; }
.lining-paper .reader-annotation-layer { z-index: 1; }
.lining-paragraph { position: relative; }
.lining-drawing-layer { position: absolute; z-index: 5; inset: 0; cursor: crosshair; touch-action: none; }
.lining-drawing-layer.insert-mode { pointer-events: none; touch-action: auto; }
.lining-drawing-layer.insert-mode [data-shot-line], .lining-drawing-layer.insert-mode .scene-remove-lines { pointer-events: none; }
.lining-paper.insert-mode .screenplay-paragraph { user-select: text; cursor: text; }
.drawn-shot-line.line-style-insert { transform: none; width: 100%; height: 100%; background: none; border-radius: 0; min-height: 0; pointer-events: none; }
.drawn-shot-line.line-style-insert::before, .drawn-shot-line.line-style-insert::after { display: none; }
.drawn-shot-line.line-style-insert.is-selected { box-shadow: none; }
.drawn-shot-line.line-style-insert .line-handle { display: none; }
.line-preview.line-style-insert [data-preview-stroke] { display: none; }
.drawn-shot-line.line-style-insert .insert-stroke { position: absolute; display: block; height: 3px; border-radius: 2px; background: var(--line-color); pointer-events: auto; }
.drawn-shot-line.line-style-insert .insert-resize-handle { position: absolute; top: 50%; z-index: 3; width: 15px; height: 15px; transform: translateY(-50%); border-radius: 50%; background: var(--line-color); cursor: ew-resize; pointer-events: auto; }
.drawn-shot-line.line-style-insert .insert-resize-start { left: -7px; }
.drawn-shot-line.line-style-insert .insert-resize-end { right: -7px; }
.drawn-shot-line.line-style-insert b { transform: none; pointer-events: auto; }
.lining-drawing-layer [data-shot-line] b { cursor: context-menu; }
.reader-lining-layer .insert-resize-handle { pointer-events: none; cursor: default; }
.lining-drawing-layer.is-section-mode { cursor: ns-resize; }
.drawn-shot-line { --line-color: #1769d2; position: absolute; width: 3.2px; min-height: 4px; transform: translateX(-50%); border-radius: 2px; background: var(--line-color); cursor: col-resize; pointer-events: auto; }
.line-section { position: absolute; left: 50%; min-height: 1px; transform: translateX(-50%); pointer-events: none; }
.line-section { width: 3.2px; border-radius: 2px; background: var(--line-color); }
.drawn-shot-line.is-selected { z-index: 2; box-shadow: 0 0 0 4px rgba(23, 105, 210, 0.2); }
.drawn-shot-line::before, .drawn-shot-line::after { position: absolute; left: 50%; width: 12px; height: 2.4px; transform: translateX(-50%); border-radius: 1px; background: var(--line-color); content: ""; }
.drawn-shot-line::before { top: 0; }
.drawn-shot-line::after { bottom: 0; width: 14px; }
.drawn-shot-line b { position: absolute; z-index: 4; top: -1.35em; left: 50%; transform: translateX(-50%); border-radius: 0.2rem; padding: 0.08rem 0.22rem; background: var(--line-color); color: #fff; font-family: var(--font-ui); font-size: 7pt; line-height: 1.2; white-space: nowrap; }
.coverage-changed-marker { position: absolute; z-index: 4; top: 50%; left: calc(100% + 0.22rem); display: grid; width: 0.22in; height: 0.22in; place-items: center; transform: translateY(-50%); border: 1px solid #8bc0ff; border-radius: 999px; background: #1769d2; color: #fff; box-shadow: 0 1px 4px rgba(0, 45, 99, 0.32); font: 600 8pt/1 var(--font-ui); pointer-events: auto; }
.coverage-changed-marker:hover { background: #0e55ae; }
.drawn-shot-line.line-preview { box-shadow: 0 0 0 2px color-mix(in srgb, var(--line-color) 22%, transparent); }
.line-section.line-style-dotted { background: repeating-linear-gradient(to bottom, var(--line-color) 0 5px, transparent 5px 10px); }
/* Both squiggle styles share an even wave and the Standard line's stroke weight. */
.line-section.line-style-squiggly, .line-section.line-style-dirty { --line-wave: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='10' viewBox='0 0 12 10'%3E%3Cpath d='M2.667,-10 L9.333,-5 L2.667,0 L9.333,5 L2.667,10 L9.333,15 L2.667,20' fill='none' stroke='black' stroke-width='3.2' stroke-linejoin='round'/%3E%3C/svg%3E"); width: 12px; border-radius: 0; background: var(--line-color); -webkit-mask: var(--line-wave) center top / 12px 10px repeat-y; mask: var(--line-wave) center top / 12px 10px repeat-y; }
.line-section.line-style-dirty { -webkit-mask: var(--line-wave) center top / 12px 10px repeat-y, linear-gradient(black, black) center / 3.2px 100% no-repeat; mask: var(--line-wave) center top / 12px 10px repeat-y, linear-gradient(black, black) center / 3.2px 100% no-repeat; }
.drawn-shot-line.has-line-sections { background-color: transparent; background-image: none; }
.drawn-shot-line.has-line-sections::before, .drawn-shot-line.has-line-sections::after { background: var(--line-color); }
.line-preview { background: transparent; }
.line-preview::before, .line-preview::after { background: var(--line-color); }
.line-preview [data-preview-stroke] { top: 0; height: 100%; }
.drawn-shot-line[hidden] { display: none; }
.line-handle { position: absolute; z-index: 3; left: 50%; width: 18px; height: 14px; transform: translateX(-50%); cursor: ns-resize; pointer-events: auto; }
.line-handle-start { top: -5px; }
.line-handle-end { bottom: -5px; }
.line-editor { position: absolute; z-index: 8; display: grid; gap: 0.45rem; border: 1px solid #464c4f; border-radius: 0.45rem; padding: 0.5rem 0.55rem; background: #16191a; color: #d9ddde; box-shadow: 0 0.6rem 1.4rem rgba(0, 0, 0, 0.42); font-family: var(--font-ui); font-size: 0.68rem; white-space: nowrap; pointer-events: auto; }
.line-editor[hidden] { display: none; }
.line-editor strong { color: #7fb5fa; }
.line-editor-top { display: flex; align-items: center; gap: 0.7rem; }
.line-editor-summary { display: grid; min-width: 12rem; gap: 0.1rem; margin-left: auto; padding-left: 0.7rem; text-align: right; }
.line-editor-summary span { color: #858d8f; }
.line-editor-field { display: grid; gap: 0.15rem; color: #92999c; font-size: 0.58rem; font-weight: 750; letter-spacing: 0.045em; text-transform: uppercase; }
.line-editor-section-tools, .line-editor-actions { display: flex; align-items: end; gap: 0.45rem; }
.line-editor-section-tools { border-left: 1px solid #353a3c; padding-left: 0.7rem; }
.line-editor-section-tools[hidden], .line-editor-actions [hidden] { display: none; }
.line-editor-actions { order: -1; align-items: center; border-bottom: 1px solid #353a3c; padding-bottom: 0.45rem; }
.line-editor-actions [data-reset-line-sections] { margin-left: auto; }
.line-editor-actions .line-editor-done { margin-left: 0.3rem; }
.line-editor.is-insert .line-editor-actions [data-delete-line] { margin-left: auto; }
.line-editor.is-insert .line-editor-actions .line-editor-done { margin-left: 0; }
.line-editor-b-roll { display: inline-flex; align-items: center; gap: .25rem; color: #d9ddde; cursor: pointer; }
.line-editor-b-roll input { margin: 0; accent-color: #e6a65d; cursor: pointer; }
.line-editor a, .line-editor button { border: 0; background: transparent; color: #e6a65d; font: inherit; font-weight: 750; text-decoration: none; cursor: pointer; }
.line-editor select { border: 1px solid #464c4f; border-radius: 0.3rem; padding: 0.2rem 0.3rem; background: #101314; color: #d9ddde; font: inherit; }
.line-editor button { color: #ff9f91; }
.line-editor .line-editor-details, .line-editor .line-editor-done { border: 1px solid #697175; border-radius: 0.3rem; padding: 0.3rem 0.65rem; background: #303537; color: #f4f1e8; }
.line-editor .line-editor-details:hover, .line-editor .line-editor-done:hover { background: #525a5e; color: #fff; }
.line-editor .line-editor-details:focus-visible, .line-editor .line-editor-done:focus-visible { outline: 2px solid #e6a65d; outline-offset: 2px; }
.line-editor button[data-apply-line-section], .line-editor button[data-reset-line-sections] { color: #e6a65d; }
.line-editor button.is-active { border-radius: 0.25rem; background: #c9802b; color: #171819; }
.line-save-status { position: absolute; z-index: 7; top: 0.2in; right: 0.25in; margin: 0; border-radius: 99px; padding: 0.3rem 0.55rem; background: rgba(20, 23, 25, 0.85); color: #61696c; font-family: var(--font-ui); font-size: 0.65rem; pointer-events: none; }
.line-save-status:empty { display: none; }
.shot-fields-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.75rem; }
.shot-details-page { max-width: 76rem; margin: 1.5rem auto 4rem; padding: 0 1.5rem; }
.shot-details-header { display: flex; align-items: start; justify-content: space-between; gap: 1rem; }
.shot-details-header h1 { margin: 0.15rem 0; }
.shot-details-header p { margin: 0.25rem 0; }
.shot-details-breadcrumb { display: flex; align-items: center; gap: .55rem; margin: 1.2rem 0; color: #b9c0c2; font-size: .83rem; }
.shot-details-breadcrumb [aria-current="page"] { color: #f4f1e8; }
.shot-details-form { display: grid; gap: 1rem; }
.shot-details-form section { padding: 1rem; border: 1px solid #414648; border-radius: 0.5rem; background: #191b1c; }
.shot-details-form h2 { margin: 0 0 0.9rem; font-size: 1.2rem; }
.shot-details-fields { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0.75rem; }
.shot-details-fields--four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.shot-details-fields .shot-details-half { grid-column: span 2; }
.shot-details-fields .shot-details-wide { grid-column: 1 / -1; }
.shot-details-fields .field { display: grid; gap: 0.3rem; min-width: 0; }
.shot-details-framing-row { display: flex; align-items: end; gap: .4rem; min-width: 0; }
.shot-details-framing-row .field { flex: 1; }
.shot-details-framing-row .framing-compare-button { flex: none; min-height: 2.4rem; }
.shot-camera-framing .shot-details-framing-row select { flex: 1; width: auto; min-width: 0; }
.shot-details-fields .shot-details-setup-field { align-self: end; }
.shot-details-setup-row { display: flex; align-items: center; gap: .65rem; min-width: 0; min-height: 2.55rem; white-space: nowrap; }
.shot-details-fields--four .shot-details-setup-row { flex-wrap: wrap; white-space: normal; }
.shot-details-setup-row > span { color: #c0c6c8; font-size: .85rem; }
.shot-details-setup-row > strong { font-size: 1rem; }
.shot-details-setup-button { flex: none; border: 1px solid #596064; border-radius: .3rem; padding: .22rem .42rem; background: #25292b; color: #e6a65d; font: inherit; font-size: .68rem; line-height: 1.15; cursor: pointer; }
.shot-details-setup-button:hover { border-color: #c18a40; color: #ffc47f; }
.shot-details-form .shot-details-setup-row [data-setup-selection] { display: inline; min-width: 0; margin: 0; overflow: hidden; text-overflow: ellipsis; }
.shot-details-fields input, .shot-details-fields select, .shot-details-fields textarea { box-sizing: border-box; width: 100%; min-width: 0; border: 1px solid #565d60; border-radius: 0.4rem; padding: 0.55rem; background: #151819; color: #f4f1e8; font: inherit; }
.shot-details-fields textarea { min-height: 2.55rem; height: 2.55rem; resize: vertical; }
.shot-details-fields input[readonly] { color: #adb4b5; background: #222628; }
.shot-details-fields .shot-details-reshoot > span:nth-child(2) { display: flex; align-items: center; gap: .5rem; color: #f4f1e8; font-size: .85rem; }
.shot-details-fields .shot-details-reshoot input[type="checkbox"] { width: 1rem; height: 1rem; padding: 0; accent-color: #c9802b; }
.shot-details-confirmation { color: #acd5a9; }
.shot-details-tag-heading { min-height: 1.3rem; }
.shot-details-tag-entry { display: flex; align-items: flex-start; gap: 0.55rem; min-width: 0; }
.shot-details-fields .shot-details-tag-entry input[type="checkbox"] { flex: none; width: 1rem; height: 1rem; margin: 0.8rem 0 0; padding: 0; accent-color: #c9802b; }
.shot-details-tag-entry textarea { flex: 1; }
.shot-details-mic-block { display: grid; gap: 0.55rem; margin-top: 1rem; }
.shot-details-mic-block h3 { margin: 0; }
.shot-details-mics { display: grid; gap: 0.55rem; }
.shot-details-mics .field, .shot-details-mic-header { display: grid; grid-template-columns: minmax(8rem, 1fr) minmax(0, 2fr); align-items: center; gap: 0.75rem; }
.shot-details-mic-header { color: #adb4b5; font-size: 0.8rem; }
.shot-details-mics input { box-sizing: border-box; width: 100%; border: 1px solid #565d60; border-radius: 0.4rem; padding: 0.55rem; background: #151819; color: #f4f1e8; font: inherit; }
.shot-details-actions { display: flex; justify-content: flex-end; }
.shot-details-media-field img, .shot-details-media-field video { display: block; max-width: 100%; max-height: 240px; }
.shot-details-media-field .secondary-button, .shot-details-media-field .shot-details-media-remove { justify-self: start; }
.shot-details-media-remove { justify-self: start; border: 0; padding: 0; background: none; color: #e69a91; text-decoration: underline; font: inherit; cursor: pointer; }
.calculated-field-review { margin: 0.6rem 0 1rem 2.5rem; padding: 0.7rem 0.9rem; border-left: 3px solid #c18a40; background: rgba(193, 138, 64, 0.08); }
.calculated-field-review p { margin: 0.3rem 0 0.6rem; }
.calculated-field-review dl { margin: 0; display: grid; gap: 0.3rem; }
.calculated-field-review dl > div { display: grid; grid-template-columns: 8rem 1fr; gap: 0.6rem; }
.calculated-field-review dt { font-weight: 700; }
.calculated-field-review dd { margin: 0; }
.calculated-field-options { display: flex; flex-wrap: wrap; gap: 0.5rem 1rem; margin-top: 0.35rem; }
.calculated-field-options label { display: inline-flex; align-items: center; gap: 0.3rem; cursor: pointer; }
.setup-browser { width: min(58rem, calc(100vw - 2rem)); max-height: calc(100vh - 2rem); padding: 1.25rem; border: 1px solid #535a5d; border-radius: 0.65rem; background: #191d1e; color: #f4f1e8; }
.setup-browser::backdrop { background: rgba(5, 7, 8, 0.75); }
.setup-browser > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.setup-browser h2, .setup-browser h3 { margin: 0 0 0.4rem; }
.setup-browser-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 0.8rem; min-height: 18rem; margin-top: 1rem; }
.setup-browser-columns section { min-width: 0; max-height: 55vh; overflow-y: auto; padding: 0.75rem; border: 1px solid #3f484a; border-radius: 0.45rem; }
.setup-browser-choice { display: grid; width: 100%; gap: 0.2rem; margin: 0.25rem 0; padding: 0.65rem; border: 1px solid #4c5658; border-radius: 0.4rem; background: #252b2c; color: inherit; text-align: left; cursor: pointer; }
.setup-browser-choice:hover, .setup-browser-choice:focus-visible { border-color: #c18a40; background: #303536; }
.setup-browser-choice small { color: #b7bec0; }
.shot-setup-field [data-setup-selection], .shot-details-form [data-setup-selection] { display: block; margin-top: 0.25rem; }
@media (max-width: 640px) { .setup-browser-columns { grid-template-columns: 1fr; } }
@media (max-width: 1100px) and (min-width: 761px) { .shot-details-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 760px) { .shot-details-header { display: block; } .shot-details-fields, .shot-details-fields--four { grid-template-columns: 1fr; } .shot-details-fields .shot-details-half, .shot-details-fields .shot-details-wide, .shot-details-fields .shot-details-setup-field { grid-column: auto; } .shot-details-setup-row { flex-wrap: wrap; white-space: normal; } }
.shot-fields-pair.four-up { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.shot-modal { width: min(82rem, calc(100% - 2rem)); max-width: none; max-height: calc(100vh - 2rem); margin: auto; border: 1px solid #454a4d; border-radius: 0.55rem; padding: 0; overflow-y: auto; background: #191b1c; color: #f4f1e8; box-shadow: 0 1.5rem 5rem rgba(0, 0, 0, 0.65); }
.shot-modal::backdrop { background: rgba(5, 7, 8, 0.72); }
.shot-modal form { display: grid; gap: 0.9rem; padding: 1rem; }
.shot-modal header { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; border-bottom: 1px solid #3a3e40; padding-bottom: 0.65rem; }
.shot-modal > form > header { position: sticky; z-index: 3; top: -1rem; padding-top: 1rem; background: #191b1c; }
.shot-modal h2 { margin: 0; font-size: 1.35rem; }
.shot-modal header p { max-width: 60%; margin: 0; overflow: hidden; color: #858c8e; font-size: 0.7rem; text-overflow: ellipsis; white-space: nowrap; }
.shot-modal-hints { min-height: 1rem; margin-left: auto; text-align: right; }
.shot-modal-hints p { max-width: none !important; color: #8f9698 !important; font-weight: 650; }
.shot-modal-hints p[hidden] { display: none; }
.shot-modal-grid { display: grid; gap: 0.85rem; }
.shot-details-main-heading { margin: 0; color: #f4f1e8; font-size: 0.85rem; }
.shot-detail-group { display: grid; gap: 0.6rem; border-top: 1px solid #3a3e40; padding-top: 0.7rem; }
.shot-detail-fields { display: grid; grid-template-columns: repeat(auto-fit, minmax(9.5rem, 1fr)); gap: 0.55rem; }
.shot-view-fields { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.shot-framing-controls { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 0.4rem; }
.shot-framing-controls select { width: 100%; }
.framing-compare-button { border: 1px solid #596064; border-radius: 0.4rem; padding: 0.45rem 0.55rem; background: #303537; color: #f4f1e8; font: inherit; font-size: 0.72rem; font-weight: 700; cursor: pointer; }
.framing-compare-button:hover, .framing-compare-button:focus-visible { border-color: #d7974d; }
.framing-gallery-dialog { width: min(82rem, calc(100% - 1rem), calc(180vh - 12.6rem)); max-width: none; max-height: calc(100vh - 1rem); margin: auto; border: 1px solid #4a5052; border-radius: 0.7rem; padding: 0; overflow-y: auto; background: #191b1c; color: #f4f1e8; box-shadow: 0 1.5rem 5rem rgba(0, 0, 0, 0.7); }
.framing-gallery-dialog::backdrop { background: rgba(5, 7, 8, 0.78); }
.framing-gallery-header { position: sticky; z-index: 2; top: 0; display: flex; align-items: center; justify-content: space-between; gap: 1rem; border-bottom: 1px solid #3a3e40; padding: 0.6rem 0.8rem; background: #191b1c; }
.framing-gallery-header h2 { margin: 0; font-size: 1.035rem; }
.framing-gallery-header button { border: 1px solid #596064; border-radius: 0.4rem; padding: 0.45rem 0.7rem; background: #303537; color: #f4f1e8; font: inherit; cursor: pointer; }
.framing-gallery-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0.55rem; padding: 0.7rem 0.8rem 0.8rem; }
.framing-gallery-option { display: grid; align-content: start; gap: 0; min-width: 0; overflow: hidden; border: 2px solid #444b4e; border-radius: 0.45rem; padding: 0; background: #24292b; color: #f4f1e8; text-align: left; font: inherit; cursor: pointer; }
.framing-gallery-option:hover, .framing-gallery-option:focus-visible, .framing-gallery-option[aria-pressed="true"] { border-color: #d7974d; }
.framing-gallery-frame { display: block; width: 100%; aspect-ratio: 16 / 9; overflow: hidden; background: #101314; }
.framing-gallery-frame img { display: block; width: 100%; height: 100%; object-fit: cover; }
.framing-gallery-caption { display: grid; padding: 0.38rem 0.6rem 0.42rem; }
.framing-gallery-caption strong { font-size: 0.82rem; }
.shot-view-notes-field { grid-column: span 2; }
.shot-detail-notes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.55rem; }
.shot-detail-group textarea { width: 100%; box-sizing: border-box; border: 1px solid #565d60; border-radius: 0.4rem; padding: 0.55rem; background: #151819; color: #f4f1e8; font: inherit; }
.shot-tag-choices { display: grid; grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); gap: 0.3rem 0.7rem; max-height: 14rem; overflow: auto; }
.shot-tag-choices h4 { grid-column: 1 / -1; margin: 0.4rem 0 0; color: #adb4b6; font-size: 0.675rem; }
.shot-tag-choice { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: 0.35rem; border: 1px solid #454b4e; border-radius: 0.35rem; padding: 0.4rem; }
.shot-tag-choice label { display: flex; align-items: start; gap: 0.45rem; font-size: 0.75rem; }
.shot-tag-choice button { border: 1px solid #596064; border-radius: 0.3rem; padding: 0.2rem 0.4rem; background: #303537; color: #f4f1e8; font-size: 0.7rem; cursor: pointer; }
.shot-tag-editor { grid-column: 1 / -1; display: grid; gap: 0.35rem; }
.shot-tag-editor[hidden] { display: none; }
.shot-tag-editor select, .shot-tag-editor textarea { width: 100%; box-sizing: border-box; }
.shot-tag-editor small { color: #e3a357; }
.shot-tag-choices input { margin-top: 0.1rem; }
.shot-modal-row { display: grid; gap: 0.55rem; }
.shot-modal-primary { grid-template-columns: repeat(24, minmax(0, 1fr)); align-items: start; }
.shot-modal-primary > .field { min-width: 0; }
.shot-modal-primary .shot-number-field { grid-column: 1 / span 2; grid-row: 1; }
.shot-modal-primary .shot-setup-field { grid-column: 3 / span 7; grid-row: 1; grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr); }
.shot-modal-primary .shot-setup-field > label, .shot-modal-primary .shot-setup-field > small { grid-column: 1 / -1; }
.shot-modal-primary .shot-setup-field > select { grid-column: 1; }
.shot-modal-primary .shot-setup-field > button { grid-column: 2; align-self: stretch; white-space: nowrap; }
.shot-modal-primary .shot-description-field { grid-column: 10 / span 8; grid-row: 1; }
.shot-modal-primary .shot-subject-field { grid-column: 18 / span 7; grid-row: 1; }
.shot-modal-primary .shot-b-roll { display: flex; align-self: stretch; align-items: center; flex-direction: column; grid-column: 1 / span 2; grid-row: 2; text-align: center; }
.shot-modal-primary .shot-top-notes-field { grid-column: 3 / span 12; grid-row: 2; }
.shot-modal-primary .shot-story-location-field { grid-column: 15 / span 7; grid-row: 2; }
.shot-modal-primary .shot-time-of-day-field { grid-column: 22 / span 3; grid-row: 2; }
.shot-camera-fields { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.shot-continuity-tod { width: min(17rem, 100%); }
.shot-location-field { align-content: start; }
.shot-location-row { grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: start; }
.shot-location-row > .field { align-content: start; }
.shot-location-row textarea { height: 2.4rem; min-height: 2.4rem; padding: 0.55rem 0.6rem; font-size: 0.8rem; line-height: 1.3; resize: vertical; }
.shoot-location-controls { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.45rem; }
.shoot-location-controls select, .shoot-location-controls input { width: 100%; box-sizing: border-box; }
.shoot-location-controls > [hidden] { display: none; }
.shot-option-group { scroll-margin-top: 1rem; }
.shot-modal .field { gap: 0.35rem; }
.shot-modal .field label { color: #a4aaac; font-size: 0.65rem; font-weight: 650; letter-spacing: 0.06em; text-transform: uppercase; }
.shot-modal .field input, .shot-modal .field select { min-width: 0; border-radius: 0.4rem; padding: 0.55rem 0.6rem; font-size: 0.8rem; }
.angle-qualifier-hint { color: #8f9698; font-size: 0.66rem; font-weight: 600; line-height: 1.35; }
.angle-qualifier-hint[hidden] { display: none; }
.modal-error { color: #e3a357; font-size: 0.72rem; }
.shot-modal footer { display: flex; justify-content: flex-end; gap: 0.65rem; padding-top: 0.5rem; }
.shot-modal > form > footer { position: sticky; z-index: 3; bottom: -1rem; padding-bottom: 1rem; background: #191b1c; }
.shot-modal footer button { font-family: inherit; font-size: inherit; line-height: inherit; cursor: pointer; }
.shot-modal footer .button { border: 1px solid #694c2b; }
.shot-modal footer .secondary-button { background: transparent; }

/* Shot list */
.shot-list-page { width: min(110rem, 100%); align-self: start; }
.shot-list-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem; margin-bottom: 1rem; border: 1px solid #34383b; border-radius: 0.8rem; padding: 0.65rem 1rem; background: #1b1e20; }
.shot-list-summary { display: flex; align-items: center; gap: 0.7rem; margin: 0; }
.shot-list-summary div { display: flex; align-items: baseline; gap: 0.3rem; }
.shot-list-summary dt { color: #777f82; font-size: 0.68rem; text-transform: uppercase; }
.shot-list-summary dd { margin: 0; color: #d9ddde; font-size: 0.8rem; font-weight: 800; }
.shot-list-context { text-decoration: none; }
.shot-list-empty { display: grid; gap: 0.35rem; }
.shot-list-scenes { display: grid; gap: 1.75rem; }
.shot-scene-group { border: 1px solid #363a3d; border-radius: 0.8rem; overflow: hidden; background: #181b1d; }
.shot-scene-group > header { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 0.8rem; padding: 1rem 1.15rem; background: #222628; }
.shot-scene-group > header span { color: #e6a65d; font-size: 0.75rem; font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase; }
.shot-scene-group > header h2 { margin: 0; overflow: hidden; font-family: var(--font-heading); font-size: 1.125rem; font-weight: 300; text-overflow: ellipsis; white-space: nowrap; }
.shot-scene-group > header b { color: #8f9698; font-size: 0.75rem; }
.shot-list-columns, .shot-list-item > summary { display: grid; grid-template-columns: 5rem minmax(15rem, 2fr) minmax(10rem, 1fr) 6rem 1.5rem; align-items: center; gap: 0.8rem; }
.shot-list-columns { padding: 0.55rem 1rem; border-top: 1px solid #303537; border-bottom: 1px solid #303537; color: #727a7d; font-size: 0.68rem; font-weight: 750; letter-spacing: 0.06em; text-transform: uppercase; }
.shot-list-item { scroll-margin-top: 1rem; }
.shot-list-item + .shot-list-item { border-top: 1px solid #303537; }
.shot-list-item > summary { padding: 0.9rem 1rem; cursor: pointer; list-style: none; }
.shot-list-item > summary::-webkit-details-marker { display: none; }
.shot-list-item > summary:hover { background: #202426; }
.shot-list-item > summary b { color: #ff8d94; }
.shot-list-item > summary span { overflow: hidden; color: #d2d6d7; font-size: 0.85rem; text-overflow: ellipsis; white-space: nowrap; }
.shot-list-item > summary span + span { color: #8f9698; font-size: 0.76rem; }
.shot-list-item > summary em { border-radius: 99px; padding: 0.3rem 0.5rem; background: #2c3133; color: #afb5b7; font-size: 0.68rem; font-style: normal; text-align: center; text-transform: capitalize; }
.shot-list-item.status-ready > summary em { background: rgba(219, 152, 77, 0.14); color: #e6a65d; }
.shot-list-item.status-shot > summary em { background: rgba(104, 185, 132, 0.14); color: #86d6a1; }
.shot-list-item > summary i { color: #767e80; font-style: normal; transition: transform 120ms ease; }
.shot-list-item[open] > summary i { transform: rotate(180deg); }
.shot-edit-form { display: grid; gap: 1rem; border-top: 1px solid #343a3c; padding: 1.15rem; background: #141719; }
.shot-edit-form .shot-fields-pair:first-of-type { grid-template-columns: repeat(4, 1fr); }
.shot-anchor-copy { margin: 0; color: #777f82; font-size: 0.75rem; line-height: 1.5; }
.shot-edit-actions { display: flex; justify-content: space-between; gap: 1rem; }
.shot-edit-actions button { border: 0; border-radius: 0.5rem; padding: 0.7rem 0.95rem; background: #c9802b; color: #161718; font: inherit; font-weight: 750; cursor: pointer; }
.shot-edit-actions .danger-button { border: 1px solid #70443f; background: transparent; color: #ff9f91; }
@media (max-width: 1100px) {
    .shot-modal-primary { grid-template-columns: repeat(6, minmax(0, 1fr)); }
    .shot-modal-primary .shot-number-field { grid-column: 1; grid-row: 1; }
    .shot-modal-primary .shot-setup-field { grid-column: 2 / span 2; grid-row: 1; }
    .shot-modal-primary .shot-description-field { grid-column: 4 / span 3; grid-row: 1; }
    .shot-modal-primary .shot-subject-field { grid-column: 1 / span 3; grid-row: 2; }
    .shot-modal-primary .shot-story-location-field { grid-column: 4 / span 2; grid-row: 2; }
    .shot-modal-primary .shot-time-of-day-field { grid-column: 6; grid-row: 2; }
    .shot-modal-primary .shot-b-roll { grid-column: 1; grid-row: 3; }
    .shot-modal-primary .shot-top-notes-field { grid-column: 2 / -1; grid-row: 3; }
    .shot-camera-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
    .site-nav { padding: 0 1rem; }
    .site-nav nav a:first-child { display: none; }
    .section-heading { align-items: stretch; flex-direction: column; }
    .version-row { grid-template-columns: 1fr; }
    .status-pill { justify-self: start; }
    .scene-neighbors { grid-template-columns: 1fr; }
    .candidate-title { align-items: flex-start; flex-direction: column; }
    .shot-list-toolbar { align-items: stretch; flex-direction: column; }
    .shot-list-context { margin-left: 0; }
    .shot-list-summary { grid-template-columns: repeat(3, 1fr); }
    .shot-list-columns { display: none; }
    .shot-list-item > summary { grid-template-columns: 3.5rem minmax(0, 1fr) auto; }
    .shot-list-item > summary span + span { display: none; }
    .shot-list-item > summary i { display: none; }
    .shot-fields-pair, .shot-fields-pair.four-up, .shot-edit-form .shot-fields-pair:first-of-type { grid-template-columns: 1fr; }
    .form-row { grid-template-columns: 1fr; }
    .auth-card { padding: 1.5rem; }
}
@media (max-width: 900px) {
    .reader-toolbar-primary { align-items: flex-start; flex-wrap: wrap; gap: 0.5rem; }
    .reader-context-link { order: 3; margin-left: 0; }
    .reader-document-actions { order: 4; width: 100%; justify-content: flex-start; }
    .reader-tag-menu { align-items: flex-start; }
    .scene-jump { align-self: stretch; grid-template-columns: auto 1fr; }
    .scene-jump > span { justify-self: end; }
    .reader-workspace { height: calc(100vh - 7.25rem); }
    .reader-body { grid-template-rows: auto minmax(0, 1fr); grid-template-columns: 1fr; }
    .scene-index-sizes { display: none; }
    .scene-index { display: flex; gap: 0.4rem; overflow-x: auto; overflow-y: hidden; }
    .scene-index-heading { display: none; }
    .scene-index > a { min-width: 12rem; }
    .screenplay-paper { --script-left-margin: 0.7in; width: calc(100% - 1rem); margin-top: 0.5rem; padding: 0.6in 0.55in 0.6in var(--script-left-margin); overflow-x: hidden; }
    .screenplay-paragraph.type-scene-heading::before { font-size: 20pt; }
    .lining-workspace { height: auto; min-height: calc(100vh - 7rem); }
    .lining-toolbar { align-items: stretch; flex-wrap: wrap; }
    .lining-shot-count { order: 1; }
    .lining-toolbar > .planning-nav { order: 2; }
    .lining-scene-jump { order: 3; flex: 1 1 100%; }
    .lining-scene-jump select { width: 100%; }
    .lining-tools { order: 4; margin-right: 0; }
    .lining-hint { order: 5; margin-left: 0; }
    .lining-scroll { min-height: 65vh; max-height: 70vh; }
}
@media (max-width: 640px) {
    .shot-modal-primary, .shot-camera-fields, .shot-location-row, .shoot-location-controls { grid-template-columns: 1fr; }
    .shot-modal-primary > .field, .shot-modal-primary .shot-b-roll,
    .shot-camera-framing, .shot-location-field { grid-column: 1; grid-row: auto; }
}
@media (max-width: 1310.98px) {
    .site-nav, .shell { display: none; }
    .screen-width-warning {
        display: grid;
        min-height: 100vh;
        place-items: center;
        padding: 2rem;
        text-align: center;
    }
    .screen-width-warning p {
        width: min(38rem, 100%);
        margin: 0;
        border: 1px solid #4a5053;
        border-radius: 0.8rem;
        padding: 1.5rem;
        background: #1b1e20;
        color: #f4f1e8;
        box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.35);
        font-size: 1.05rem;
        font-weight: 700;
        line-height: 1.5;
    }
    .auth-page .screen-width-warning { display: none; }
    .auth-page .shell { display: grid; }
}

.reader-view-workspace .annotation-marker { cursor: default; }
.reader-view-workspace [data-annotation-layer][hidden],
.reader-view-workspace [data-annotation-marker-layer][hidden] { display: none; }
.screenplay-paper.hide-numbering .scene-line-number,
.screenplay-paper.hide-numbering .scene-page-eighths,
.screenplay-paper.hide-numbering .type-scene-heading::before { visibility: hidden; }
.screenplay-paper.hide-numbering .type-scene-heading { border-top-color: transparent; }
.reader-view-workspace .reader-toolbar-primary { flex-wrap: wrap; }

.shot-modal-lining { grid-template-columns: repeat(2, minmax(0, 12rem)); }
.shot-modal-lining[hidden] { display: none; }
.shot-character-lines { display: grid; gap: 0.65rem; border: 1px solid #3a3e40; border-radius: 0.55rem; padding: 0.75rem; background: #151718; }
.shot-character-lines > header { align-items: center; padding: 0; border: 0; }
.shot-character-lines header p { max-width: none; margin: 0.15rem 0 0; color: #8f9698; font-size: 0.68rem; white-space: normal; }
.shot-character-lines header > span { border-radius: 99px; padding: 0.22rem 0.5rem; background: #292d2f; color: #aeb4b6; font-size: 0.65rem; font-weight: 750; }
.character-line-columns { display: grid; grid-template-columns: 12rem repeat(5, 5.5rem); align-items: center; gap: 0.25rem; justify-content: start; }
.character-line-choice { display: grid; grid-template-columns: 12rem auto; align-items: center; gap: 0.25rem; }
.character-line-columns { padding: 0 0.5rem; color: #777f82; font-size: 0.62rem; font-weight: 750; letter-spacing: 0.04em; text-align: center; text-transform: uppercase; }
.character-line-columns span:first-child { text-align: left; }
.shot-character-lines-list { display: grid; grid-template-columns: 1fr; gap: 0.3rem; }
.character-line-choice { min-width: 0; margin: 0; border: 0; border-radius: 0.35rem; padding: 0.42rem 0.5rem; background: #202325; }
.character-line-choice:nth-child(even) { background: #191c1d; }
.character-line-name { width: 100%; overflow: hidden; color: #e7e4dc; font-size: 0.75rem; font-weight: 800; text-overflow: ellipsis; white-space: nowrap; }
.character-line-options { display: grid; grid-template-columns: repeat(5, 5.5rem); gap: 0.25rem; }
.character-line-options label { position: relative; display: grid; min-height: 1.8rem; place-items: center; border-radius: 0.3rem; cursor: pointer; }
.character-line-options label:hover { background: #303537; }
.character-line-options input { width: 1rem; height: 1rem; margin: 0; accent-color: #d18a39; cursor: pointer; }
.character-line-options input:focus-visible { outline: 2px solid #7fb5fa; outline-offset: 3px; }
.character-line-options span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.shot-character-lines-empty { margin: 0; color: #777f82; font-size: 0.72rem; }
.shot-character-lines-empty[hidden] { display: none; }

.reader-pdf-link[aria-disabled="true"] { opacity: 0.65; cursor: progress; }
.reader-pdf-status { font-size: 0.8rem; color: #c7cbcc; }
.settings-link { display: inline-flex; align-items: center; justify-content: center; padding: 0.4rem; border-radius: 0.4rem; }
.settings-link:hover, .settings-link:focus-visible { background: #303537; color: #e6a65d; }
.settings-workspace { max-width: 52rem; margin: 1.5rem auto; }
.settings-card { border: 1px solid #3b4043; border-radius: 0.75rem; background: #191c1d; padding: 1.5rem; margin: 1.25rem 0; }
.settings-card h2 { margin-top: 0; }
.settings-card p { color: #a6adaf; line-height: 1.5; }
.settings-card label { display: block; font-weight: 700; margin-bottom: 0.6rem; }
.settings-card input[type="range"] { width: 100%; padding: 0; accent-color: #d08a2c; cursor: pointer; }
.settings-range-labels { display: flex; justify-content: space-between; font-size: 0.85rem; color: #a6adaf; margin: 0.6rem 0 1rem; }
.settings-card output { display: block; color: #e6a65d; font-weight: 700; }
.settings-save-status { font-size: 0.8rem; margin-bottom: 0; }
.settings-workspace > h1 { font: 250 1.8rem var(--font-heading); }
.settings-card select { min-width: 16rem; padding: 0.65rem; border: 1px solid #454d50; border-radius: 0.4rem; background: #131718; color: #f4f1e8; font: inherit; }
.category-row { grid-template-columns: minmax(0, 1fr) 10rem 10rem auto auto auto auto; }
.category-row label, .category-add label { display: inline-flex; align-items: center; gap: 0.3rem; white-space: nowrap; }
.settings-card .category-row select, .settings-card .category-add select { min-width: 0; width: 10rem; padding: 0.5rem; }
.category-add { grid-template-columns: minmax(0, 1fr) 10rem 10rem auto auto auto; }
.category-color-choice { display: flex; align-items: center; gap: .45rem; min-width: 0; }
.category-row .category-color-swatch, .category-add .category-color-swatch { flex: none; width: 1rem; height: 1rem; min-width: 1rem; border: 1px solid #899397; border-radius: 50%; }
.settings-card .category-color-choice select { flex: 1; width: 100%; }
.shot-option-group { border-top: 1px solid #3f4548; padding: 0.9rem 0; }
.shot-option-group h3 { margin: 0 0 0.55rem; font-size: 0.855rem; }
.shot-option-list { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.shot-option-list > div { display: flex; align-items: center; gap: 0.4rem; border: 1px solid #474e51; border-radius: 0.4rem; padding: 0.2rem 0.4rem; font-size: 0.8rem; }
.shot-option-list button { border: 0; background: transparent; color: #e6a65d; cursor: pointer; }
.shot-option-add { display: flex; gap: 0.4rem; margin-top: 0.6rem; }
.shot-option-add input { min-width: 0; flex: 1; }
/* Shared workspace heading and control metrics. */
.reader-toolbar-primary, .shot-list-toolbar { min-height: 3.75rem; box-sizing: border-box; gap: 0.65rem; padding: 0.65rem 1rem; }
.planning-nav a, .planning-nav span, .reader-toolbar .planning-nav a, .reader-toolbar .planning-nav span { font-size: 0.88rem; line-height: 1; padding: 0.6rem 0.75rem; text-transform: none; }
.reader-tag-count, .lining-shot-count, .shot-list-count { flex: 0 0 5rem; font-size: 0.78rem; white-space: nowrap; }
.reader-toolbar-primary .reader-context-link, .shot-list-context { font-size: 0.78rem; }
.reader-toolbar-primary button, .reader-toolbar-primary input, .reader-toolbar-primary .reader-pdf-link { font-size: 0.78rem; line-height: 1.2; }
.scene-jump-controls { width: 7.5rem; min-width: 7.5rem; max-width: 7.5rem; }
.scene-jump-controls .scene-jump-options { min-width: 18rem; }
.scene-jump small:empty { display: none; }
.reader-toolbar-primary .reader-lining-toggle, .reader-toolbar-primary .reader-pdf-link { box-sizing: border-box; min-height: 2.2rem; padding: 0.5rem 0.7rem; }
.lining-workspace [data-annotation-marker-layer] { pointer-events: none; }
.lining-workspace [data-annotation-marker-layer] button { pointer-events: none; }
.lining-workspace [data-annotation-layer][hidden], .lining-workspace [data-annotation-marker-layer][hidden] { display: none; }

/* Phase 4 planning workspace */
.shell:has(.planning-collection) { padding-right: .75rem; }
.planning-page { width: 100%; min-width: 0; align-self: start; }
.planning-toolbar { margin-bottom: 1.5rem; }
.planning-workspace-title { flex: 0 0 5rem; margin: 0; color: #f4f1e8; font: 250 0.702rem/1.2 var(--font-heading); white-space: nowrap; }
.planning-toolbar-back { margin-left: auto; color: #e6a65d; font-size: 0.78rem; font-weight: 700; text-decoration: none; white-space: nowrap; }
.planning-toolbar-back:hover { color: #ffc47f; }
.planning-subnav { display: flex; gap: .4rem; margin: 0; border-top: 1px solid #34383b; padding: .55rem 1rem; background: #171a1c; }
.planning-subnav a { padding: .6rem .75rem; color: #aeb4b6; text-decoration: none; font-size: .88rem; font-weight: 700; }
.planning-subnav a[aria-current="page"] { border-bottom: 2px solid #db984d; color: #f4f1e8; }
.reader-toolbar > .reader-tag-menu, .reader-toolbar > .reader-readonly-notice, .reader-toolbar > .planning-subnav {
    box-sizing: border-box;
    height: 4rem;
    min-height: 4rem;
}
.reader-toolbar > .reader-tag-menu { flex-wrap: nowrap; }
.reader-toolbar > .reader-readonly-notice { display: flex; align-items: center; }
.reader-toolbar > .planning-subnav { align-items: center; }
.script-collaboration { position: fixed; z-index: 50; right: 1rem; bottom: 1rem; display: flex; align-items: center; gap: .65rem; max-width: min(28rem, calc(100vw - 2rem)); border: 1px solid #444b4e; border-radius: .55rem; padding: .45rem .7rem; background: #1b1e20; color: #bbc2c4; box-shadow: 0 .35rem 1.2rem #0007; font-size: .75rem; }
.script-collaboration [data-collaboration-update] { color: #e6a65d; }
.script-collaboration button { border: 0; padding: 0; background: transparent; color: #e6a65d; text-decoration: underline; cursor: pointer; }
.script-collaboration [hidden] { display: none; }
small, .field label span, .field small, .reader-readonly-notice, .lining-hint, .shot-anchor-copy,
.shot-list-item > summary span + span { font-weight: 250; }
.planning-grid { display: grid; grid-template-columns: minmax(18rem, 1fr) minmax(22rem, 1.15fr); gap: 1rem; align-items: start; }
.planning-panel { border: 1px solid #34383b; border-radius: .8rem; padding: 1.25rem; background: #1b1e20; }
.planning-panel h2 { margin: 0 0 .75rem; font: 300 1.35rem var(--font-heading); }
.planning-panel-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.planning-panel-heading form { margin: 0; }
.planning-muted { color: #aeb4b6; line-height: 1.5; }
.planning-day-link { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: .65rem; border: 1px solid #34383b; border-radius: .55rem; padding: .85rem 1rem; background: #171a1c; text-decoration: none; }
.planning-day-link span { color: #aeb4b6; }
.planning-call-list { max-width: 72rem; }
.planning-call-day { display: flex; align-items: center; justify-content: space-between; gap: 1rem; border-top: 1px solid #34383b; padding: .9rem .2rem; }
.planning-call-day-summary { display: flex; align-items: baseline; flex-wrap: wrap; gap: .35rem 1rem; }
.planning-call-day-summary strong { min-width: 4.5rem; }
.planning-call-day-summary span { color: #c7ccce; }
.planning-call-day-times { font-size: .86rem; }
.planning-call-day-button { flex: none; border: 1px solid #9e692f; border-radius: .38rem; padding: .35rem .65rem; background: #c9802b; color: #161819; font-size: .79rem; font-weight: 800; text-decoration: none; }
.planning-call-day-button:hover { background: #e6a65d; }
.planning-call-actions { display: flex; justify-content: space-between; max-width: 72rem; margin: -.3rem auto .8rem; color: #c6cbcd; font-size: .82rem; }
.planning-call-actions a { color: #e6a65d; }
.planning-call-paper { box-sizing: border-box; max-width: 72rem; margin: 0 auto 3rem; padding: clamp(1.4rem, 4vw, 3.4rem); background: #fafaf9; color: #30343a; box-shadow: 0 1rem 3rem #0005; }
.planning-call-masthead { display: grid; grid-template-columns: 1fr 1.3fr 1fr; gap: 1.5rem; min-height: 10rem; align-items: start; }
.planning-call-production, .planning-call-title, .planning-call-summary { display: grid; align-content: start; gap: .5rem; min-height: 9rem; }
.planning-call-production, .planning-call-title { border-right: 1px solid #e4e7eb; padding-right: 1.5rem; }
.planning-call-eyebrow, .planning-call-summary span { color: #6b7481; font-size: .7rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.planning-call-production strong { overflow-wrap: anywhere; font-size: 1.4rem; }
.planning-call-title { justify-items: center; text-align: center; }
.planning-call-title h1 { margin: 0; color: #252a34; font-size: clamp(1.8rem, 2.7vw, 2.7rem); line-height: 1; }
.planning-call-title p { margin: 0; font-weight: 700; }
.planning-call-summary div { display: grid; gap: .25rem; border-bottom: 1px solid #e4e7eb; padding-bottom: .55rem; }
.planning-call-summary strong { font-size: 1.35rem; }
.planning-call-alert { border-left: .25rem solid #b4533e; padding: .65rem .8rem; background: #fff0e9; color: #753824; font-size: .88rem; }
.planning-call-section { margin-top: 2rem; }
.planning-call-section h2 { border-bottom: 2px solid #3d4348; margin: 0 0 .65rem; padding: 0 0 .35rem; color: #3d4348; font: 300 0.945rem/1.3 var(--font-heading); }
.planning-call-table-wrap { overflow-x: auto; }
.planning-call-table { width: 100%; border-collapse: collapse; text-align: left; font-size: .81rem; }
.planning-call-table th, .planning-call-table td { border-bottom: 1px solid #e3e7ed; padding: .65rem .5rem; vertical-align: top; }
.planning-call-table th { color: #657080; font-size: .65rem; letter-spacing: .06em; text-transform: uppercase; }
.planning-call-table td strong, .planning-call-table td small { display: block; }
.planning-call-table td small { margin-top: .2rem; color: #657080; font-size: .74rem; line-height: 1.35; }
.planning-call-table .planning-call-item-note { color: #4a5664; font-style: italic; }
.planning-call-schedule th:first-child, .planning-call-schedule td:first-child { white-space: nowrap; }
.planning-call-schedule { table-layout: fixed; }
.planning-call-schedule th:nth-child(1) { width: 9%; }
.planning-call-schedule th:nth-child(2) { width: 13%; }
.planning-call-schedule th:nth-child(3) { width: 34%; }
.planning-call-schedule th:nth-child(4) { width: 13%; }
.planning-call-schedule th:nth-child(5) { width: 18%; }
.planning-call-schedule th:nth-child(6) { width: 13%; }
.planning-call-schedule td { overflow-wrap: anywhere; }
.planning-call-schedule th:last-child, .planning-call-schedule td:last-child { text-align: right; }
.planning-call-schedule .planning-call-group { background: #eef1f6; }
.planning-call-schedule .planning-call-time-row { background: #f6f7f9; }
.planning-call-schedule tfoot td { border-top: 2px solid #3d4348; font-weight: 800; }
.planning-call-schedule tfoot td:first-child { text-align: right; }
.planning-call-empty { margin: .8rem .2rem; color: #7c8591; font-size: .82rem; }
.planning-call-lower { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; }
.planning-call-talent { display: flex; flex-wrap: wrap; gap: .4rem; }
.planning-call-talent span { border: 1px solid #dce1e8; border-radius: .3rem; padding: .35rem .55rem; font-size: .78rem; font-weight: 700; }
@media (max-width: 720px) { .planning-call-masthead { grid-template-columns: 1fr; } .planning-call-production, .planning-call-title, .planning-call-summary { min-height: 0; border-right: 0; border-bottom: 1px solid #e4e7eb; padding: 0 0 1rem; } .planning-call-title { justify-items: start; text-align: left; } .planning-call-lower { grid-template-columns: 1fr; gap: 0; } }
.planning-form { display: grid; gap: .85rem; }
.planning-form label { display: grid; gap: .35rem; }
.planning-form fieldset { border: 1px solid #454b4f; border-radius: .55rem; }
.planning-shot-choices { display: grid; gap: .4rem; max-height: 17rem; overflow: auto; }
.planning-shot-choices label { display: flex; align-items: start; gap: .5rem; padding: .3rem; }
.planning-group-summary { display: flex; justify-content: space-between; gap: 1rem; border-top: 1px solid #34383b; margin-top: .75rem; padding-top: .75rem; }
.planning-group-summary small { color: #aeb4b6; }
.planning-group-editor { border-top: 1px solid #34383b; margin-top: .75rem; padding-top: .75rem; }
.planning-group-editor summary { display: flex; justify-content: space-between; gap: 1rem; cursor: pointer; color: #e6a65d; }
.planning-group-editor small { color: #aeb4b6; }
.planning-group-editor form { display: flex; align-items: end; gap: .5rem; margin-top: .7rem; }
.planning-group-editor form label { display: grid; gap: .2rem; flex: 1; }
.planning-group-editor ul { padding-left: 1.2rem; }
.planning-group-editor li { margin: .3rem 0; }
.planning-group-editor li form { display: inline; margin-left: .5rem; }
.planning-page button { border: 1px solid #596064; border-radius: .45rem; padding: .55rem .75rem; background: #c9802b; color: #171819; font: inherit; font-weight: 700; cursor: pointer; }
.planning-page button:disabled { opacity: .4; cursor: not-allowed; }
.planning-page input, .planning-page select, .planning-page textarea { border: 1px solid #454b4f; border-radius: .4rem; padding: .5rem .6rem; background: #141719; color: #f4f1e8; font: inherit; }
.planning-page input[type="checkbox"] { accent-color: #c9802b; }
.planning-day-settings, .planning-add-controls { display: flex; align-items: end; flex-wrap: wrap; gap: .8rem; border: 1px solid #34383b; border-radius: .7rem; padding: 1rem; margin-bottom: .85rem; background: #1b1e20; }
.planning-day-settings label, .planning-add-controls label { display: grid; gap: .3rem; font-size: .8rem; font-weight: 700; }
.planning-add-controls form { display: flex; align-items: end; gap: .45rem; }
.planning-add-controls select { max-width: 20rem; }
.planning-totals { color: #d4e4d6; font-weight: 750; }
.planning-stripboard { border: 1px solid #34383b; border-radius: .7rem; overflow: hidden; background: #15181a; }
.planning-strip-head, .planning-strip { display: grid; grid-template-columns: minmax(7rem,.65fr) repeat(3,minmax(6rem,1fr)) minmax(10.5rem,.8fr) minmax(15rem,1.25fr) minmax(13rem,1fr); column-gap: .65rem; align-items: center; }
.planning-strip-head { padding: .7rem 1rem; color: #b2b9bb; font-size: .85rem; font-weight: 750; }
.planning-strip-head strong { grid-column: 1 / 6; color: #fff; font-size: .95rem; }
.planning-strip-day-picker { grid-column: 6 / 8; justify-self: end; display: flex; align-items: center; gap: .5rem; color: #fff; white-space: nowrap; }
.planning-strip-day-picker select { min-width: 9rem; border: 1px solid #555d61; border-radius: .35rem; padding: .3rem .5rem; background: #24282a; color: #fff; font: inherit; }
.planning-strip { grid-template-rows: repeat(3,minmax(3rem,auto)); row-gap: .25rem; border-top: 1px solid rgba(255,255,255,.12); padding: .65rem 1rem; background: #141719; color: #fff; font-size: .9rem; }
.planning-strip-shot { border-top: 4px solid #343a3d; background: #141719; }
.planning-strip-wrap:nth-child(even) > .planning-strip-shot { background: #1b1f21; }
.planning-strip-group { grid-template-rows: repeat(2,minmax(3rem,auto)); background: #8b672e; }
.planning-strip-group .planning-strip-id { grid-row: 1 / 3; }
.planning-strip-group .planning-strip-bottom-controls { grid-row: 2; }
.planning-strip-section { background: #655341; }
.planning-strip-open { background: #5b5235; color: #fff0bc; }
.planning-strip-id { grid-column: 1; grid-row: 1 / 4; display: grid; align-content: center; justify-items: start; gap: .3rem; }
.planning-strip-id strong { overflow-wrap: anywhere; font-size: 1.35rem; line-height: 1.2; }
.planning-strip-main { grid-column: 2 / 5; grid-row: 1; display: grid; align-content: center; gap: .2rem; min-width: 0; padding-right: 1.25rem; }
.planning-strip-main strong { overflow-wrap: anywhere; }
.planning-strip-main small, .planning-strip-id small { color: rgba(255,255,255,.85); font-size: .78rem; }
.planning-strip-leading { display: flex; align-items: center; gap: .35rem; }
.planning-strip-leading form { display: flex; gap: .3rem; }
.planning-strip-leading button { border: 1px solid #ffffff55; border-radius: .3rem; padding: .22rem .42rem; background: #0003; color: #fff; font-size: 1.15rem; line-height: 1; }
.planning-group-rename { display: flex; align-items: center; gap: .35rem; min-width: 0; }
.planning-group-rename input { width: min(100%, 20rem); min-width: 0; border: 1px solid #b59764; border-bottom: 2px solid #e0b46f; border-radius: .35rem; padding: .42rem .55rem; background: #4f3c24; color: #fff; font-size: 1.2rem; font-weight: 800; line-height: 1.2; }
.planning-group-rename button { flex: none; padding: .28rem .38rem; background: #0003; color: #fff; font-size: .68rem; }
.planning-strip-estimate { grid-column: 5; grid-row: 1; display: grid; align-content: center; gap: .2rem; min-width: 0; }
.planning-strip-estimate small { font-size: .78rem; color: rgba(255,255,255,.85); }
.planning-inline-estimate { display: flex; align-items: end; gap: .25rem; min-width: 0; }
.planning-inline-estimate label, .planning-time-total { display: grid; gap: .18rem; min-width: 0; font-size: .8rem; font-weight: 700; }
.planning-estimate-label { display: flex; align-items: baseline; flex-wrap: wrap; gap: .2rem .4rem; }
.planning-estimate-label small { font-weight: 400; }
.planning-inline-estimate input { box-sizing: border-box; width: 5.5rem; padding: .3rem .4rem; font-size: .9rem; }
.planning-inline-estimate button { padding: .28rem .38rem; background: #0003; color: #fff; font-size: .68rem; }
.planning-time-total strong { color: #fff; font-size: .9rem; }
.planning-add-time-link { grid-column: 5; grid-row: 2; justify-self: start; align-self: center; border: 0 !important; padding: .1rem 0 !important; background: transparent !important; color: #fff0bc !important; font-size: .85rem; text-decoration: underline; white-space: nowrap; }
.planning-fixed-start { grid-column: 5; grid-row: 3; display: flex; align-items: end; gap: .25rem; }
.planning-fixed-start label, .planning-strip-notes label { display: grid; gap: .16rem; font-size: .8rem; font-weight: 700; }
.planning-fixed-start input { width: 7rem; padding: .27rem .35rem; font-size: .9rem; }
.planning-fixed-start button, .planning-strip-notes button { padding: .28rem .38rem; background: #0003; color: #fff; font-size: .68rem; }
.planning-strip-notes { grid-column: 2 / 5; grid-row: 2; display: flex; align-items: end; gap: .25rem; min-width: 0; padding-right: 1.25rem; }
.planning-strip-notes label { flex: 1; min-width: 0; }
.planning-strip-notes textarea { box-sizing: border-box; width: 100%; min-height: 2rem; padding: .3rem .4rem; resize: vertical; font-size: .9rem; }
.planning-strip-slug { grid-column: 2 / 5; grid-row: 3; display: grid; align-content: center; gap: .15rem; min-width: 0; padding-right: 1.25rem; }
.planning-strip-slug strong { font-size: .9rem; font-weight: 600; overflow-wrap: anywhere; }
.planning-strip-slug small { color: rgba(255,255,255,.78); font-size: .78rem; overflow-wrap: anywhere; }
.planning-strip-flags { grid-column: 6; grid-row: 3; display: flex; align-content: end; align-items: end; flex-wrap: wrap; gap: .25rem; min-width: 0; }
.planning-strip-flag { border: 1px solid #767b7e; border-radius: 999px; padding: .12rem .4rem; background: #767b7e; color: #fff; font-size: .7rem; font-weight: 700; line-height: 1.2; white-space: nowrap; }
.planning-shot-edit-link { color: inherit; text-decoration: underline; text-underline-offset: .18em; }
.planning-strip-day { grid-column: 6; grid-row: 1; }
.planning-strip-day label, .planning-strip-join label, .planning-group-add label { display: grid; gap: .2rem; font-size: .8rem; font-weight: 700; }
.planning-strip-day label, .planning-strip-join label, .planning-group-add label { white-space: nowrap; }
.planning-strip-day select, .planning-strip-join select, .planning-group-add select { box-sizing: border-box; width: 100%; min-width: 0; padding: .35rem .4rem; background: #0003; color: #fff; font-size: .9rem; }
.planning-strip-join { grid-column: 6; grid-row: 2; display: flex; align-items: end; gap: .25rem; min-width: 0; }
.planning-strip-join label { flex: 1; min-width: 0; }
.planning-strip-join button { padding: .28rem .38rem; background: #0003; color: #fff; font-size: .68rem; }
.planning-strip-bottom-controls { grid-column: 7; grid-row: 3; display: flex; align-items: end; justify-content: flex-end; gap: .3rem; }
.planning-strip-bottom-controls button { padding: .3rem .5rem; background: rgba(0,0,0,.22); color: #fff; font-size: .9rem; }
.planning-drag-handle { border-radius: .3rem; padding: .15rem .25rem; cursor: grab; color: #fff; user-select: none; font-size: 1.3rem; line-height: 1; }
.planning-drag-handle:focus-visible { outline: 2px solid #fff; }
.planning-strip-wrap[draggable="true"] .planning-strip { cursor: grab; }
.planning-strip-wrap.is-dragging, .planning-board-group.is-dragging { opacity: .5; }
.planning-strip-wrap[data-drop-side], .planning-board-group[data-drop-side] { position: relative; }
.planning-strip-wrap[data-drop-side]::before, .planning-board-group[data-drop-side]::before { position: absolute; z-index: 5; right: 0; left: 0; height: 3px; border-radius: 2px; background: #f8d36c; content: ""; pointer-events: none; }
.planning-strip-wrap[data-drop-side="before"]::before, .planning-board-group[data-drop-side="before"]::before { top: -2px; }
.planning-strip-wrap[data-drop-side="after"]::before, .planning-board-group[data-drop-side="after"]::before { bottom: -2px; }
.planning-strip-child { margin-left: 0; padding-left: .25rem; border-left: .45rem solid #8b672e; }
.planning-reshoot { display: inline-block; width: fit-content; border-radius: .2rem; padding: .2rem .35rem; background: #f8d36c; color: #262113; font-size: .65rem; font-weight: 850; letter-spacing: .04em; }
.planning-flag { display: inline-block; width: fit-content; border-radius: .3rem; padding: .25rem .4rem; background: #9d402f; color: #fff2ed; font-size: .72rem; font-weight: 750; }
.planning-add-time-dialog { width: min(25rem, calc(100vw - 2rem)); border: 1px solid #596064; border-radius: .6rem; padding: 1.15rem; background: #1b1e20; color: #f4f1e8; }
.planning-add-time-dialog::backdrop { background: #000a; }
.planning-add-time-dialog form { display: grid; gap: .85rem; }
.planning-add-time-dialog h2 { margin: 0; font-size: 0.99rem; }
.planning-add-time-dialog label { display: grid; gap: .25rem; }
.planning-add-time-dialog input[type="text"] { width: 6rem; }
.planning-add-time-dialog input[type="text"] { border: 1px solid #454b4f; border-radius: .4rem; padding: .5rem .6rem; background: #141719; color: #f4f1e8; font: inherit; }
.planning-add-time-dialog button { border: 1px solid #596064; border-radius: .45rem; padding: .45rem .65rem; background: #c9802b; color: #171819; font: inherit; font-weight: 700; cursor: pointer; }
.planning-add-time-dialog fieldset { display: grid; gap: .35rem; border: 1px solid #4a5053; border-radius: .4rem; }
.planning-add-time-dialog fieldset label { display: flex; align-items: center; gap: .4rem; }
.planning-add-time-actions { display: flex; justify-content: flex-end; gap: .4rem; }
.planning-group-add { grid-column: 7; grid-row: 1; display: flex; align-items: end; justify-self: end; gap: .3rem; min-width: 0; }
.planning-group-add label { flex: none; min-width: 0; }
.planning-group-add select { width: 8.8rem; }
.planning-group-add button { flex: none; padding: .28rem .38rem; background: #0003; color: #fff; font-size: .68rem; }
.planning-strip-open { grid-template-rows: auto; }
.planning-strip-open > :nth-child(1) { grid-column: 1; }
.planning-strip-open > :nth-child(2) { grid-column: 2 / 5; }
.planning-strip-open > :nth-child(3) { grid-column: 5; }
.planning-strip-open > :nth-child(4) { grid-column: 6 / 8; justify-self: end; }
.planning-day-end { display: flex; justify-content: space-between; gap: 1rem; padding: 1rem; background: #24282a; font-weight: 700; }
.planning-collection-bar, .planning-collection-actions { display: flex; align-items: end; flex-wrap: wrap; gap: 1rem; border: 1px solid #34383b; border-radius: .7rem; margin-bottom: .75rem; padding: .8rem 1rem; background: #1b1e20; }
.planning-collection-bar > div { margin-right: auto; }
.planning-collection-bar label, .planning-collection-actions label { display: grid; gap: .25rem; color: #c0c6c8; font-size: .8rem; font-weight: 700; }
.planning-collection-actions { border: 0; border-top: 1px solid #34383b; border-radius: 0; margin: 0; }
.planning-collection-actions form { display: flex; align-items: end; gap: .4rem; }
.planning-collection-tools-wrap { position: relative; margin-bottom: .75rem; }
.planning-collection-tools { border: 1px solid #34383b; border-radius: .7rem; margin-bottom: 0; background: #1b1e20; }
.planning-collection-tools > summary { padding: .8rem 1rem; color: #e6a65d; font-weight: 750; cursor: pointer; }
.planning-collection-tools:not([open]) > summary { min-height: 4.2rem; padding: 1.45rem 18rem 1.45rem 1rem; }
.planning-collapsed-saved-view { position: absolute; z-index: 1; top: .3rem; right: 1rem; display: grid; gap: .2rem; width: min(16rem, 45%); color: #c0c6c8; font-size: .8rem; font-weight: 700; }
.planning-collection-tools[open] + .planning-collapsed-saved-view { display: none; }
.planning-collection-tool-grid { display: grid; grid-template-columns: minmax(15rem, 22rem) minmax(19rem, 27rem) minmax(17rem, 24rem); gap: 1.5rem; border-top: 1px solid #34383b; padding: 1rem; }
.planning-collection-tool-grid h2 { margin: 0 0 .5rem; font-size: 0.9rem; }
.planning-collection-tool-grid .planning-muted { margin: 0 0 .5rem; font-size: .75rem; }
.planning-column-options { display: grid; gap: .3rem; max-height: 18rem; overflow: auto; }
.planning-filter-options { max-height: 18rem; overflow: auto; }
.planning-column-group { border: 1px solid #34383b; border-radius: .4rem; background: #171a1c; }
.planning-column-group summary { padding: .45rem .55rem; color: #d3d8d9; font-size: .8rem; font-weight: 700; cursor: pointer; }
.planning-column-group-choices { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: .3rem; padding: .4rem .55rem .65rem; }
.planning-column-group-choices label { display: flex; align-items: center; gap: .4rem; font-size: .78rem; }
.planning-tag-column-choices { grid-template-columns: minmax(0, 1fr); }
.planning-column-subgroup > summary { cursor: pointer; padding: .25rem .2rem; color: #d3d8d9; font-size: .78rem; font-weight: 700; }
.planning-column-subgroup-choices { display: grid; gap: .3rem; padding: .25rem 0 .4rem 1rem; }
.planning-column-subgroup-choices .planning-column-subgroup-choices { padding-left: 1rem; }
.planning-filter-row { display: grid; grid-template-columns: minmax(7rem, 1fr) 6rem minmax(8rem, 1.2fr); align-items: center; gap: .3rem; margin-bottom: .35rem; font-size: .78rem; }
.planning-filter-row input, .planning-filter-row select, .planning-sort-row select { min-width: 0; width: 100%; padding: .35rem; font-size: .75rem; }
.planning-sort-row { display: grid; grid-template-columns: 3.5rem 1fr 5rem; align-items: center; gap: .3rem; margin-bottom: .4rem; font-size: .78rem; }
.planning-table-wrap { width: 100%; min-width: 0; max-width: 100%; max-height: 65vh; overflow: auto; border: 1px solid #34383b; border-radius: .7rem; }
.planning-shot-table { width: 100%; min-width: 100%; table-layout: fixed; border-collapse: separate; border-spacing: 0; white-space: nowrap; }
.planning-shot-table th, .planning-shot-table td { border-bottom: 1px solid #34383b; padding: .6rem .75rem; text-align: left; font-size: .8rem; }
.planning-shot-table .planning-middle-spacer { padding: 0; }
.planning-shot-table th { position: sticky; top: 0; z-index: 1; background: #22272a; color: #d0d4d5; }
.planning-shot-table thead th:first-child { left: 0; z-index: 4; }
.planning-shot-table thead .planning-edit-shot-header { right: 0; z-index: 4; }
.planning-shot-table tbody tr { --planning-row-background: #121416; }
.planning-shot-table tbody tr:nth-child(even) { --planning-row-background: #1b1f21; }
.planning-shot-table tbody tr:hover { --planning-row-background: #263038; }
.planning-shot-table tbody tr.is-b-roll > .planning-shot-select-cell { border-left: 6px solid #db984d; padding-left: calc(.75rem - 6px); }
.planning-shot-table tbody tr.is-insert > .planning-shot-select-cell { border-left: 6px solid #0f766e; padding-left: calc(.75rem - 6px); }
.planning-shot-table tbody tr.is-b-roll.is-insert > .planning-shot-select-cell { border-image: linear-gradient(to bottom, #db984d 50%, #0f766e 50%) 1; }
.planning-shot-table tbody .planning-group-cell { position: sticky; left: 0; z-index: 2; background: var(--planning-row-background); }
.planning-shot-table tbody .planning-edit-shot-cell { position: sticky; right: 0; z-index: 2; background: var(--planning-row-background); }
.planning-shot-table .planning-edit-shot-header, .planning-shot-table .planning-edit-shot-cell { width: 112px; min-width: 112px; max-width: 112px; padding-right: .45rem; }
.planning-shot-table th[data-col-key] { cursor: grab; user-select: none; padding-right: 1.1rem; }
.planning-shot-table th[data-col-key]:active { cursor: grabbing; }
.planning-column-grip { display: inline-block; margin-right: .35rem; color: #899397; font-size: .85rem; letter-spacing: -.2em; }
.planning-column-resize { position: absolute; top: 0; right: 0; bottom: 0; width: 12px; cursor: col-resize; touch-action: none; }
.planning-column-resize::after { content: ''; position: absolute; top: 22%; bottom: 22%; left: 5px; border-left: 2px solid #687175; }
.planning-column-resize:hover::after, .planning-column-resize:focus-visible::after { border-color: #e6a65d; }
.planning-column-resize:focus-visible { outline: 2px solid #e6a65d; outline-offset: -2px; }
.planning-shot-table th.is-dragging { opacity: .55; }
.planning-shot-table th.drop-before { box-shadow: inset 3px 0 #e6a65d; }
.planning-shot-table th.drop-after { box-shadow: inset -3px 0 #e6a65d; }
.planning-collection.is-resizing-columns, .planning-collection.is-resizing-columns * { cursor: col-resize !important; user-select: none !important; }
.planning-location-label-short { display: none; }
@media (max-width: 1100px) {
    .planning-location-label-full { display: none; }
    .planning-location-label-short { display: inline; }
}
.planning-shot-table td { overflow: hidden; text-overflow: ellipsis; }
.planning-shot-table .planning-group-cell { vertical-align: top; white-space: normal; text-overflow: clip; }
.planning-group-cell-content { min-width: 0; }
.planning-group-cell-head { display: flex; align-items: flex-start; gap: .25rem; }
.planning-group-cell-head form { display: flex; min-width: 0; flex: 1; gap: .2rem; }
.planning-group-cell-head input[name="name"] { min-width: 0; width: 100%; padding: .2rem .3rem; font-size: .73rem; font-weight: 700; }
.planning-group-cell-head form button, .planning-group-cell-actions button, .planning-group-toggle { padding: .2rem .3rem; border: 0; background: transparent; color: #e6a65d; font-size: .7rem; text-decoration: underline; cursor: pointer; }
.planning-group-cell-head .planning-group-toggle { flex: none; align-self: center; width: auto; height: auto; min-width: 0; min-height: 0; border: 0; border-radius: 0; padding: 0 .15rem; background: transparent; color: #e6a65d; font: inherit; font-size: .95rem; font-weight: 900; line-height: 1; text-decoration: none; box-shadow: none; }
.planning-group-cell-actions { display: grid; justify-items: start; gap: .15rem; margin: .3rem 0 0 0; }
.planning-group-cell-actions button { padding-left: 0; }
.planning-group-cell-actions button:disabled { color: #6b7376; cursor: default; text-decoration: none; }
.planning-empty-group > td:last-child { color: #8f989b; font-size: .72rem; }
.planning-group-cell small { display: block; margin: .2rem 0 0 1.15rem; color: #abb3b6; }
.planning-group-cell.is-collapsed .planning-group-cell-content { display: flex; align-items: center; flex-wrap: nowrap; gap: .35rem 1rem; overflow-x: auto; scrollbar-width: none; white-space: nowrap; }
.planning-group-cell.is-collapsed .planning-group-cell-content::-webkit-scrollbar { display: none; }
.planning-group-cell.is-collapsed .planning-group-cell-head { flex: none; min-width: 14rem; align-items: center; }
.planning-group-cell.is-collapsed .planning-group-cell-head form { flex: none; width: 13rem; }
.planning-group-cell.is-collapsed small, .planning-group-cell.is-collapsed .planning-group-cell-actions { flex: none; margin: 0; }
.planning-group-cell.is-collapsed .planning-group-cell-actions { display: flex; flex-wrap: nowrap; align-items: center; gap: .35rem 1rem; }
.planning-group-cell.is-collapsed .planning-group-cell-actions button { white-space: nowrap; }
.planning-shot-table tr.planning-group-first > td { border-top: 3px solid #b67a2a; }
.planning-schedule-group-dialog { width: min(28rem, calc(100vw - 2rem)); padding: 1.25rem; border: 1px solid #555; border-radius: .7rem; background: #1b1e20; color: #f3f2ee; }
.planning-schedule-group-dialog::backdrop { background: #000a; }
.planning-schedule-group-dialog form, .planning-schedule-group-dialog label { display: grid; gap: .6rem; }
.planning-schedule-group-dialog label:has(input[type="radio"]) { display: flex; align-items: center; }
.planning-schedule-group-actions { display: flex; justify-content: flex-end; gap: .5rem; margin-top: 1rem; }
.planning-shot-table td[data-col-key="tag:character"] { padding-top: .25rem; padding-bottom: .25rem; text-overflow: clip; }
.planning-character-names { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; max-height: 2.2em; overflow: hidden; white-space: normal; overflow-wrap: anywhere; font-size: .7rem; line-height: 1.1; }
.planning-shot-table tbody tr:nth-child(even) { background: #1b1f21; }
.planning-shot-table tbody tr:hover { background: #263038; }
.planning-shot-table tbody tr.is-collapsed-group.is-green-light > .planning-group-cell { background: #354139; }
.planning-shot-table tbody tr.is-collapsed-group.is-green-dark > .planning-group-cell { background: #2d3931; }
.planning-shot-table tbody tr.is-collapsed-group.has-selected-shots > .planning-group-cell { background: #503630; }
.planning-shot-table [hidden] { display: none; }
@media (max-width: 1150px) { .planning-grid { grid-template-columns: 1fr; } .planning-stripboard { overflow-x: auto; } .planning-strip-head, .planning-strip { min-width: 72rem; } }
@media (max-width: 1100px) { .planning-collection-tool-grid { grid-template-columns: 1fr; } }
.camera-settings-dialog { width: min(42rem, calc(100vw - 2rem)); max-height: min(90vh, 54rem); overflow: auto; padding: 1.5rem; border: 1px solid #4a5053; border-radius: .75rem; background: #1b2023; color: #f4f5f3; box-shadow: 0 1.5rem 4rem #0009; }
.camera-settings-dialog::backdrop { background: #000b; }
.camera-settings-dialog h2 { margin: 0 0 .4rem; }
.camera-settings-dialog header p { color: #b9c1c4; font-size: .86rem; }
.camera-settings-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; margin: 1rem 0; }
.camera-settings-fields .field { display: grid; gap: .25rem; }
.camera-settings-fields input, .camera-settings-fields select { width: 100%; }
.camera-settings-fields small { color: #aeb8bc; font-size: .73rem; }
.camera-settings-dialog footer { display: flex; justify-content: flex-end; gap: .5rem; margin-top: 1rem; }
.camera-settings-dialog [hidden] { display: none; }
.production-settings { display: grid; gap: 1.25rem; }
.production-settings .form-stack { max-width: 35rem; }
.episode-settings-row { display: flex; align-items: end; flex-wrap: wrap; gap: .5rem; border-top: 1px solid #34383b; padding: .75rem 0; }
.episode-settings-row .field { min-width: 10rem; }
@media (max-width: 620px) { .camera-settings-fields { grid-template-columns: 1fr; } }

/* Production detail */
.production-scripts { margin-top: 2.5rem; }
.production-scripts-heading { margin: 0 0 .75rem; font-size: 1rem; }
.production-script-list { border-block: 1px solid #444a4d; padding: .35rem 0; }
.production-script-section { padding: .45rem 0; }
.production-script-section .version-list { margin-top: 0; }
.production-script-section .older-versions { width: 100%; min-width: 0; margin-top: 0; }
.production-script-section .older-versions summary { display: flex; align-items: center; gap: .4rem; list-style: none; padding: .25rem 0; font-size: .85rem; font-weight: 400; }
.production-script-section .older-versions summary::-webkit-details-marker { display: none; }
.production-script-section .older-versions summary::before { content: "▸"; color: #e6a65d; font-size: 1.35rem; line-height: .8; }
.production-script-section .older-versions[open] summary::before { content: "▾"; }
.production-script-section .older-versions summary span { color: #e6a65d; text-decoration: underline; text-underline-offset: .2em; }
.production-script-section .older-versions > .version-list { width: 100%; gap: .75rem; margin-top: .75rem; }
.production-script-section .version-row { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) auto auto; }
.production-script-section .version-row-current { position: relative; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) auto; align-items: stretch; row-gap: .45rem; }
.production-script-section .version-identity { min-width: 0; gap: .35rem; }
.production-script-section .version-status-dot { position: absolute; top: .35rem; left: -.25rem; display: block; width: .5rem; height: .5rem; border-radius: 50%; background: #db984d; }
.production-script-section .version-metrics { align-self: end; }
.production-script-section .version-title { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.production-script-section .version-primary-actions { display: flex; align-items: flex-end; flex-direction: column; justify-content: space-between; gap: .8rem; }
.production-script-section .version-primary-actions .button { white-space: nowrap; }
.production-script-section .version-row-bottom { grid-column: 1 / -1; min-width: 0; margin-top: .15rem; }
.production-script-section .version-primary-actions .delete-warning-link { white-space: nowrap; }
.production-script-section .version-import { color: #e6a65d; font-size: 0.85rem; font-weight: 400; text-decoration: underline; text-underline-offset: 0.2em; }
.production-script-section .version-import:hover { color: #f4f1e8; }
.delete-warning-link { color: #ff9f91; font-size: 0.85rem; font-weight: 400; text-decoration: underline; text-underline-offset: 0.2em; }
.delete-warning-link:hover { color: #ffcbc4; }
@media (max-width: 760px) {
    .production-script-section .version-row,
    .production-script-section .version-row-current { grid-template-columns: 1fr; }
    .production-script-section .version-primary-actions { align-items: flex-start; }
    .production-script-section .version-row-bottom { flex-wrap: wrap; }
}
.production-script-section .empty-state { margin-bottom: .25rem; }
.production-page-footer { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: 2rem; }
.production-page-footer > a:last-child { margin-left: auto; }
.production-page-footer [data-open-production-delete] { font-size: 1rem; }
.production-delete-dialog { width: min(31rem, calc(100vw - 2rem)); border: 2px solid #a94a40; border-radius: .7rem; padding: 0; background: #202426; color: #eef0f0; box-shadow: 0 1.3rem 4rem #0009; }
.production-delete-dialog::backdrop { background: rgba(8, 10, 11, .8); }
.production-delete-dialog form { display: grid; gap: .9rem; margin: 0; padding: 1.2rem; }
.production-delete-dialog h2 { margin: 0; color: #ffb3aa; font-size: 1.035rem; }
.production-delete-dialog p { margin: 0; line-height: 1.5; }
.production-delete-actions { display: flex; justify-content: flex-end; align-items: center; gap: .6rem; margin-top: .3rem; }
.production-delete-actions button { font: inherit; cursor: pointer; }
.production-delete-actions .secondary-button { background: transparent; }
.production-delete-actions .danger-button { border: 1px solid #a94a40; border-radius: .5rem; padding: .7rem .9rem; background: transparent; color: #ff9f91; font-weight: 400; }
.production-delete-actions .danger-button:disabled { opacity: .45; cursor: not-allowed; }
dialog, .line-editor { border-top: 12px solid #697276 !important; cursor: grab; }
dialog > *, .line-editor > * { cursor: auto; }
dialog[data-modal-dragging], .line-editor[data-modal-dragging] { border-top-color: #a0a8ab !important; cursor: grabbing; user-select: none; }

/* Primary gold actions use the heaviest available UI lettering. */
.button, .hero-actions button, .form-actions button:not(.link-button):not(.secondary-button):not(.danger-button),
.open-production, .scene-jump button, .reader-tag-tools .reader-lock-button[aria-pressed="true"],
.planning-nav a[aria-current="page"], .line-editor button.is-active,
.shot-edit-actions button:not(.danger-button), .planning-call-day-button,
.planning-add-time-dialog button {
    font-weight: 900;
    font-synthesis: weight;
    -webkit-text-stroke: 0.025em currentColor;
}
.planning-page button { font-weight: 900; font-synthesis: weight; }
.shot-modal footer .button { font-weight: 900; font-synthesis: weight; -webkit-text-stroke: 0.04em currentColor; }

/* Reports share the camera/shot modal surfaces. */
.reports-subnav { flex-wrap: wrap; }
.report-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.report-heading h2 { margin-bottom: .35rem; }
.report-heading input { max-width: 22rem; }
.report-table-scroll { overflow: auto; }
.report-shot-table { width: 100%; border-collapse: collapse; text-align: left; }
.report-shot-table th, .report-shot-table td { padding: .7rem 1rem; border-bottom: 1px solid var(--border, #d8dbe2); }
.report-shot-table th { font-size: .8rem; }
.report-worksheet-dialog { width: min(900px, 94vw); }
.report-worksheet-dialog form { margin: 0; }
.report-worksheet-dialog form > header, .report-create-dialog form > header { padding-bottom: 1rem; }
.report-worksheet-dialog form > footer, .report-create-dialog form > footer { display: flex; justify-content: flex-end; gap: .75rem; padding-top: 1rem; }
.report-worksheet-fields { max-height: 60vh; overflow: auto; }
.report-field-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 1.25rem; padding: .8rem 0; border-bottom: 1px solid var(--border, #d8dbe2); }
.report-field-row textarea { min-height: 2.5rem; resize: vertical; }
.report-worksheet-dialog[data-report="locations"] .report-field-row { padding-right: 1.5rem; column-gap: 1.5rem; }
.report-worksheet-dialog[data-report="locations"] .report-field-row textarea { width: 100%; }
.report-field-row small { font-size: .75rem; opacity: .75; }
.report-field-scope { border: 0; padding: 0; margin: 0; display: flex; gap: .8rem; }
.report-field-scope legend { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.report-field-scope label { display: flex; align-items: center; gap: .2rem; white-space: nowrap; font-size: .85rem; }
.report-field-scope input[type="radio"] { margin: 0; flex: none; }
.report-field-scope-caption { display: flex; flex-direction: column; align-items: center; text-align: center; line-height: 1.2; }
.report-field-scope input { width: auto; }
.report-category-picker { max-height: 45vh; overflow: auto; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .6rem; padding: 1rem 0; }
.report-category-picker label { display: flex; align-items: center; gap: .4rem; font-size: .85rem; }
.report-category-picker input { width: auto; }
.shot-report-buttons { display: flex; flex-wrap: wrap; gap: .5rem; }

/* Cast coverage shares the lining controls and preserves all six coverage states. */
.shot-cast-dialog { width: min(64rem, calc(100vw - 2rem)); max-height: 85vh; overflow: auto; }
.character-line-columns { grid-template-columns: 12rem repeat(6, 5.5rem); }
.character-line-options { grid-template-columns: repeat(6, 5.5rem); }
.shot-cast-dialog [data-cast-content] { overflow-x: auto; }
.shot-cast-dialog footer { display: flex; justify-content: flex-end; margin-top: 1rem; }
[data-lining-reports] .shot-detail-fields { display: grid; grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr)); gap: .75rem; margin-top: .75rem; }
[data-lining-reports] h3 { margin-top: 1rem; }

.shot-character-lines[hidden], .shot-detail-group[hidden] { display: none; }

.report-list-controls { display: flex; align-items: flex-end; flex-wrap: wrap; gap: 1rem; margin-bottom: 1.25rem; }
.report-list-controls .field { min-width: 12rem; }
.report-shot-table [data-report-group-heading] th { background: #24292c; color: #e7e4dc; padding-top: 1rem; }
.report-shot-table tr[hidden], .report-shot-table tbody[hidden] { display: none; }
.report-shot-table td { vertical-align: top; }
.cast-member-sheet > header { margin-top: 1.25rem; }

.report-inline-link { display: inline-block; margin-right: .75rem; margin-bottom: .25rem; }
.report-shot-links { min-width: 9rem; }
.report-shot-links a { display: inline-block; margin-right: .75rem; white-space: nowrap; }
.cast-profile-fields { display: grid; grid-template-columns: repeat(3, minmax(12rem, 1fr)); gap: 1rem; margin: 1.25rem 0; }
.cast-role-field { grid-column: 1 / -1; }
.cast-profile-summary { padding: 1.25rem; border: 1px solid #3a3e40; border-radius: .5rem; }
.cast-profile-summary dt { color: #aeb4b6; font-size: .8rem; margin-bottom: .4rem; }
.cast-profile-summary dd { margin: 0; overflow-wrap: anywhere; }
.cast-member-form footer { display: flex; justify-content: flex-end; gap: .75rem; margin: 1rem 0 1.5rem; }
.cast-member-form textarea { min-height: 5rem; }
.cast-member-form input, .cast-member-form textarea { width: 100%; }
.character-cast { margin: 1rem 0 1.5rem; }
.report-roster-search { max-width: 28rem; margin-bottom: 1rem; }

.report-shot-table .report-notes { white-space: pre-line; min-width: 12rem; overflow-wrap: anywhere; }

.character-list-table td { white-space: nowrap; vertical-align: middle; }
.character-list-table .report-inline-link { margin-bottom: 0; }
.character-note-inline { display: flex; align-items: center; gap: .5rem; }
.character-note-preview { display: block; width: clamp(6rem, 12vw, 14rem); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.character-note-edit { flex: none; padding: .2rem .4rem; font-size: .75rem; }
.character-notes-dialog { white-space: normal; }
.character-notes-dialog textarea { width: 100%; resize: vertical; }
.character-notes-form { display: grid; gap: .4rem; margin: 0; }

.character-notes-form [role="alert"] { color: #ef9c92; white-space: normal; }

/* Temporary setup identifiers for checking Location grouping. */
.location-shot-setup { display: flex; align-items: center; gap: .6rem; white-space: nowrap; }
.location-shot-setup small { color: #b9c1c4; }

[data-report-shot-picker] { max-width: 15rem; margin-top: .75rem; }

.reports-subnav .report-disabled { display: inline-flex; align-items: center; padding: .4rem .55rem; opacity: .4; cursor: not-allowed; }

.shot-details-group { padding: 1rem; border: 1px solid #414648; border-radius: .5rem; background: #191b1c; }
.shot-details-group > summary { cursor: pointer; font-size: 1.2rem; }
.shot-details-group > summary h2 { display: inline; margin: 0; font-size: inherit; }
.shot-details-group[open] > summary { margin-bottom: .9rem; }
.shot-details-header { align-items: center; }
.shot-details-heading { margin-left: auto; text-align: right; }
.shot-details-heading h1 { font-size: 1.15rem; font-weight: 400; }
.shot-details-heading p { font-size: .8rem; color: #b9c0c2; }
.shot-details-page { max-width: none; }

.shot-details-shot-layout { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 1fr); gap: 1.5rem; align-items: start; }
.shot-details-fields--shot { grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: start; }
.shot-details-fields--shot .shot-details-setup-row { flex-wrap: wrap; white-space: normal; }
.shot-details-day-fields { grid-template-columns: minmax(0, 1fr); }
.shot-details-fields .shot-details-b-roll input[type="checkbox"] { width: 1rem; height: 1rem; margin: .75rem 0; padding: 0; accent-color: #c9802b; }
.shot-details-fields .shot-details-b-roll { align-self: start; justify-self: start; justify-items: center; text-align: center; }
.shot-details-camera-media { margin-top: .75rem; align-items: start; }
.shot-details-slow-mo .shot-details-tag-heading { font: inherit; font-weight: 400; color: inherit; min-height: 0; }
.shot-media-picker { position: relative; display: flex; align-items: center; min-height: 2.55rem; box-sizing: border-box; padding: .55rem; border: 1px solid #565d60; border-radius: .4rem; background: #151819; cursor: pointer; }
.shot-media-picker:focus-within { outline: 2px solid #c9802b; outline-offset: 2px; }
.shot-details-fields .shot-media-picker input[type="file"] { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; }
@media (max-width: 1100px) { .shot-details-shot-layout { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); } .shot-details-fields--shot { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 760px) { .shot-details-shot-layout, .shot-details-fields--shot { grid-template-columns: minmax(0, 1fr); } }

.shot-details-fields .shot-media-picker, .shot-details-fields .shot-media-picker > span { font: inherit; font-weight: 400; color: inherit; }

.shot-art-buttons { display: flex; gap: .75rem; flex-wrap: wrap; }
.shot-art-dialog { width: min(780px, calc(100vw - 3rem)); }
.shot-art-dialog > header { margin-bottom: 1rem; }
.shot-art-entry { display: grid; gap: .75rem; padding: 1rem 0; border-bottom: 1px solid #414648; }
.shot-art-entry h3 { margin: 0; }
.shot-art-entry-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
.shot-art-description { grid-column: 1 / -1; }
.shot-art-entry footer, .shot-art-dialog > footer { display: flex; justify-content: flex-end; gap: .75rem; align-items: center; margin-top: .75rem; }
.shot-art-entry footer small { margin-right: auto; }
@media (max-width: 600px) { .shot-art-entry-fields { grid-template-columns: minmax(0, 1fr); } }
.shot-art-entry[hidden] { display: none; }
#shot-art-props { width: min(1100px, calc(100vw - 3rem)); }
#shot-art-props .shot-art-entry { grid-template-columns: minmax(0, 1fr) auto; align-items: end; }
#shot-art-props .shot-art-entry-fields { grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr) minmax(0, 1fr); }
#shot-art-props .shot-art-description { grid-column: 2; grid-row: 1; }
#shot-art-props .shot-art-entry-fields > label:nth-child(2) { grid-column: 3; grid-row: 1; }
#shot-art-props .shot-art-entry footer { flex-direction: column; align-items: end; margin: 0; }
#shot-art-props .shot-art-entry footer small { max-width: 12rem; }
@media (max-width: 760px) { #shot-art-props .shot-art-entry, #shot-art-props .shot-art-entry-fields { grid-template-columns: minmax(0, 1fr); } #shot-art-props .shot-art-description, #shot-art-props .shot-art-entry-fields > label:nth-child(2) { grid-column: auto; grid-row: auto; } }
.shot-art-dialog { width: min(1100px, calc(100vw - 3rem)); }
.shot-art-dialog .shot-art-entry { grid-template-columns: minmax(0, 1fr) auto; align-items: end; }
#shot-art-wardrobe .shot-art-entry-fields { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1.5fr); }
.shot-art-dialog .shot-art-entry footer { flex-direction: column; align-items: end; margin: 0; }
.shot-art-dialog .shot-art-entry footer small { max-width: 12rem; }
@media (max-width: 760px) { .shot-art-dialog .shot-art-entry, #shot-art-wardrobe .shot-art-entry-fields { grid-template-columns: minmax(0, 1fr); } }
.report-item-lines td { white-space: nowrap; vertical-align: middle; }
.report-item-lines .report-inline-link { display: inline; margin: 0 .5rem 0 0; }
.report-item-description { display: block; width: clamp(12rem, 25vw, 30rem); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.character-note-scope { border: 1px solid #414648; border-radius: .4rem; padding: .65rem; min-width: 0; margin: .5rem 0 0; }
.character-note-scope legend { font-size: .8rem; padding: 0 .25rem; }
.character-note-scope-options { display: flex; gap: 1.2rem; flex-wrap: wrap; align-items: center; }
.character-note-scope-options > label { display: flex; align-items: center; gap: .3rem; cursor: pointer; }
.character-note-scope-options input[type="radio"] { width: auto; margin: 0; accent-color: #c9802b; }
.character-note-scope-options > label > span { display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; font-size: .8rem; line-height: 1.15; }
.character-note-scene-range { display: none; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .75rem; margin-top: .75rem; }
.character-note-scope:has(input[value="range"]:checked) .character-note-scene-range { display: grid; }
.shot-art-dialog .shot-art-entry:has(.shot-art-note-scopes) { grid-template-columns: minmax(0,1fr); }
.shot-art-note-scopes { display: flex; gap: .75rem; flex-wrap: wrap; }
.shot-art-note-scopes > div { flex: 1; min-width: 17rem; }
.shot-art-note-scopes strong { font-size: .8rem; font-weight: 400; }
.planning-subnav { flex-wrap: wrap; align-items: center; }
.planning-subnav .report-disabled { padding: .6rem .75rem; font-size: .88rem; }
.planning-worksheet-actions { display: flex; justify-content: flex-end; margin-bottom: .75rem; }
.script-reading-controls { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; gap: .75rem; padding: .55rem 1rem; border-top: 1px solid #34383b; background: #171a1c; }
.script-reading-controls .reports-subnav { border: 0; padding: 0; background: none; }
.script-reading-export { display: flex; align-items: center; justify-content: center; gap: .5rem; }
.reader-view-workspace .script-reading-controls .reader-pdf-center { margin: 0; }
.script-reading-controls .reader-document-actions { justify-self: end; }
.script-reading-controls button, .script-reading-controls .reader-pdf-link { box-sizing: border-box; min-height: 2.2rem; padding: .5rem .7rem; font-size: .78rem; line-height: 1.2; }
@media (max-width: 900px) { .script-reading-controls { grid-template-columns: auto minmax(0,1fr); } .script-reading-controls .reports-subnav { grid-column: 1 / -1; } .script-reading-controls .reader-document-actions { width: auto; order: initial; } }
.technical-list td { padding: 1rem; }
.technical-shot-summary, .technical-shot-fields { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: .75rem 1.25rem; align-items: start; }
.technical-shot-summary { margin-bottom: .9rem; }
.technical-shot-summary > div, .technical-shot-fields > div { display: grid; gap: .25rem; min-width: 0; }
.technical-shot-summary span, .technical-shot-fields span { color: #adb4b5; font-size: .8rem; }
.technical-shot-fields > button { justify-self: end; align-self: center; }
.technical-lighting-note { grid-column: span 2; white-space: pre-line; }
.shot-section-dialog { width: min(1200px,calc(100vw - 3rem)); height: min(850px,calc(100vh - 3rem)); padding: 0; border: 1px solid #565d60; border-radius: .6rem; background: #191b1c; color: #f4f1e8; overflow: hidden; }
.shot-section-dialog::backdrop { background: #000a; }
.shot-section-dialog[open] { display: flex; flex-direction: column; }
.shot-section-dialog > header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .75rem 1rem; border-bottom: 1px solid #414648; }
.shot-section-dialog h2 { margin: 0; font-size: 1.1rem; }
.shot-section-dialog iframe { flex: 1; width: 100%; min-height: 0; border: 0; }
.embedded-page .screen-width-warning { display: none !important; }
.embedded-page { background: #191b1c; }
.embedded-page .shell { max-width: none; width: auto; padding: .75rem; margin: 0; }
.shot-section-page .shot-details-group { border: 0; padding: 0; }
@media (max-width: 760px) { .technical-shot-summary, .technical-shot-fields { grid-template-columns: repeat(2,minmax(0,1fr)); } .technical-lighting-note { grid-column: auto; } }
.embedded-page .shell { display: block; }

.planning-tags-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding: 1rem 0; }
.planning-tags-toolbar > p { max-width: 48rem; color: #aeb4b6; line-height: 1.5; }
.planning-tags-toolbar .field { min-width: 17rem; }
.planning-tags-chooser { border: 1px solid #454b4f; border-radius: .6rem; padding: 1rem; background: #1b1e20; }
.planning-tags-chooser summary { color: #e6a65d; cursor: pointer; font-weight: 700; }
.planning-tags-options { display: grid; grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr)); gap: 1rem; margin: 1rem 0; max-height: 24rem; overflow: auto; }
.planning-tags-options fieldset { display: grid; align-content: start; gap: .5rem; border: 1px solid #454b4f; border-radius: .4rem; }
.planning-tags-options legend { color: #e6a65d; padding: 0 .35rem; }
.planning-tags-options label { display: flex; gap: .5rem; align-items: center; }
.planning-tags-status { min-height: 1.25rem; margin: .7rem 0; color: #e6a65d; }
.planning-tags-table-wrap { overflow: auto; border: 1px solid #454b4f; border-radius: .6rem; }
.planning-tags-table { width: 100%; border-collapse: separate; border-spacing: 0; }
.planning-tags-table th, .planning-tags-table td { min-width: 15rem; padding: .8rem; border-right: 1px solid #454b4f; border-bottom: 1px solid #454b4f; vertical-align: top; text-align: left; }
.planning-tags-table thead th { background: #1b1e20; color: #e6a65d; }
.planning-tags-table tr > :first-child { position: sticky; left: 0; z-index: 1; width: 18rem; min-width: 18rem; background: #202426; }
.planning-tags-table th > strong, .planning-tags-table th > span, .planning-tags-table th > small, .planning-tags-table th > a { display: block; margin-bottom: .4rem; }
.planning-tags-table th > span { color: #bec4c6; font-weight: 500; line-height: 1.4; }
.planning-tags-table th > a { font-size: .8rem; font-weight: 500; }
.planning-tags-scene > th, .planning-tags-scene > td { background: #292f32; border-top: 2px solid #8f6738; }
.planning-tags-table .planning-tags-scene > th { background: #292f32; }
.planning-tags-table .planning-tags-shot > th { padding-left: 1.5rem; }
.planning-tag-field { display: grid; gap: .5rem; padding-bottom: .6rem; }
.planning-tag-field + .planning-tag-field { padding-top: .75rem; border-top: 1px solid #454b4f; }
.planning-tag-field .field { gap: .3rem; }
.planning-tag-field .field > span, .planning-tag-field small { color: #aeb4b6; font-size: .74rem; line-height: 1.4; }
.planning-tag-field textarea { width: 100%; min-height: 4rem; resize: vertical; }
.planning-tag-value { white-space: pre-wrap; line-height: 1.5; margin: 0; }
.planning-tag-actions { display: flex; align-items: center; flex-wrap: wrap; gap: .5rem; }
.planning-tag-actions select { max-width: 100%; font-size: .75rem; }
.planning-tag-actions button { padding: .35rem .65rem; font-size: .8rem; }
.planning-tag-flag { display: flex; gap: .5rem; align-items: center; }
.planning-tag-field .planning-tags-error, .planning-tags-error { color: #f4aa98; }
.planning-tags-table caption { text-align: left; padding: .7rem .8rem; color: #aeb4b6; background: #1b1e20; font-size: .8rem; }
.planning-tags-table-wrap { max-height: calc(100vh - 22rem); min-height: 20rem; }
.planning-tags-table thead th { position: sticky; top: 0; z-index: 2; }
.planning-tags-table thead th:first-child { z-index: 3; }
