/* ===== SCREENPLAY FORMATTING ===== */
/* Based on industry standard screenplay formatting */

.screenplay {
    font-family: var(--font-mono);
    font-size: 12pt;
    line-height: 1.5;
    color: var(--text-primary);
    background: var(--bg-primary);
    padding: var(--spacing-xl);
    max-width: 6.5in; /* Standard screenplay width */
    margin: 0 auto;
}

/* Title Page */
.screenplay-title-page {
    text-align: center;
    margin-bottom: 3in;
    page-break-after: always;
}

.screenplay-title {
    font-size: 18pt;
    font-weight: bold;
    text-transform: uppercase;
    margin-bottom: 1in;
}

.screenplay-credit {
    font-size: 12pt;
    margin-bottom: 0.5in;
}

.screenplay-author {
    font-size: 12pt;
    margin-bottom: 0.5in;
}

.screenplay-contact {
    font-size: 10pt;
    margin-top: 1in;
}

/* Scene Heading (Slugline) */
.scene-heading {
    font-weight: bold;
    text-transform: uppercase;
    margin-top: 1.5em;
    margin-bottom: 1em;
    color: var(--text-primary);
}

/* Action / Description */
.action {
    margin-bottom: 1em;
    white-space: pre-wrap;
    word-wrap: break-word;
}

/* Character Name */
.character {
    text-align: center;
    text-transform: uppercase;
    margin-top: 1em;
    margin-bottom: 0;
    font-weight: normal;
    cursor: pointer;
    transition: color var(--transition-fast);
}

.character:hover {
    color: var(--accent);
}

.character.highlighted {
    color: var(--accent);
    font-weight: bold;
    background: rgba(0, 102, 204, 0.1);
    padding: 2px 8px;
    border-radius: 4px;
}

/* Parenthetical (wrylies) */
.parenthetical {
    text-align: center;
    margin-bottom: 0;
    margin-top: 0;
    padding-left: 1.5in;
    padding-right: 2in;
    color: var(--text-secondary);
}

/* Dialogue */
.dialogue {
    text-align: left;
    padding-left: 1in;
    padding-right: 1.5in;
    margin-bottom: 1em;
    margin-top: 0;
    white-space: pre-wrap;
}

/* Dual Dialogue */
.dual-dialogue {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--spacing-md);
    margin-bottom: 1em;
}

.dual-dialogue .character,
.dual-dialogue .dialogue {
    padding-left: 0;
    padding-right: 0;
}

/* Transition */
.transition {
    text-align: right;
    text-transform: uppercase;
    margin-top: 1.5em;
    margin-bottom: 1.5em;
    font-weight: normal;
}

/* Centered Text */
.centered {
    text-align: center;
    margin-bottom: 1em;
}

/* Page Break */
.page-break {
    page-break-after: always;
    margin: 2em 0;
    border-top: 1px dashed var(--border);
    padding-top: 1em;
    text-align: center;
    color: var(--text-tertiary);
    font-size: 0.9rem;
}

/* Section / Synopsis (notes, not in final script) */
.section,
.synopsis {
    color: var(--accent);
    font-style: italic;
    margin-bottom: 1em;
    padding: var(--spacing-sm);
    background: rgba(0, 102, 204, 0.05);
    border-left: 3px solid var(--accent);
}

/* Note / Boneyard (omitted content) */
.note,
.boneyard {
    color: var(--text-tertiary);
    font-style: italic;
    opacity: 0.7;
    margin-bottom: 1em;
}

/* Emphasis */
.emphasis {
    font-style: italic;
}

.strong {
    font-weight: bold;
}

.underline {
    text-decoration: underline;
}

/* Line Numbers (optional, for editing) */
.screenplay.show-line-numbers .screenplay-line {
    position: relative;
    padding-left: 40px;
}

.screenplay.show-line-numbers .screenplay-line::before {
    content: attr(data-line);
    position: absolute;
    left: 0;
    color: var(--text-tertiary);
    font-size: 0.85em;
    opacity: 0.5;
}

/* Highlight Search Results */
.search-highlight {
    background: rgba(255, 255, 0, 0.3);
    padding: 2px;
    border-radius: 2px;
}

/* Montage */
.montage {
    margin: 1.5em 0;
}

.montage-header {
    font-weight: bold;
    text-transform: uppercase;
    margin-bottom: 0.5em;
}

.montage-item {
    margin-left: 2em;
    margin-bottom: 0.5em;
}

.montage-item::before {
    content: "- ";
    margin-left: -1em;
}

/* Special Formatting */
.lyrics {
    font-style: italic;
    margin-left: 2em;
}

.lyrics::before {
    content: "♪ ";
}

/* Character Continuation */
.character-continuation::after {
    content: " (CONT'D)";
    font-size: 0.9em;
}

/* More/Continued Indicators */
.more-indicator {
    text-align: right;
    padding-right: 2in;
    color: var(--text-tertiary);
    font-size: 0.9em;
}

.more-indicator::after {
    content: "(MORE)";
}

.continued-indicator {
    text-align: right;
    padding-right: 2in;
    color: var(--text-tertiary);
    font-size: 0.9em;
}

.continued-indicator::after {
    content: "(CONT'D)";
}

/* Act Breaks (for TV) */
.act-break {
    text-align: center;
    font-weight: bold;
    text-transform: uppercase;
    margin: 2em 0;
    padding: 1em;
    border-top: 2px solid var(--border);
    border-bottom: 2px solid var(--border);
    color: var(--accent);
}

/* Scene Numbers (optional) */
.scene-heading.numbered::before {
    content: attr(data-scene-number);
    margin-right: 1em;
    color: var(--text-tertiary);
    font-weight: normal;
}

.scene-heading.numbered::after {
    content: attr(data-scene-number);
    margin-left: 1em;
    float: right;
    color: var(--text-tertiary);
    font-weight: normal;
}

/* ===== PRINT STYLES ===== */
@media print {
    .screenplay {
        font-size: 12pt;
        max-width: 100%;
        padding: 0;
        margin: 0;
    }

    /* Standard screenplay margins */
    @page {
        size: A4;
        margin: 1in 1in 1in 1.5in;

        @top-right {
            content: counter(page) ".";
            font-family: var(--font-mono);
            font-size: 12pt;
        }
    }

    /* Avoid breaking dialogue blocks */
    .character,
    .dialogue,
    .parenthetical {
        page-break-inside: avoid;
    }

    /* Keep character name with dialogue */
    .character {
        page-break-after: avoid;
    }

    /* Scene headings stay with content */
    .scene-heading {
        page-break-after: avoid;
    }

    /* Transitions can break */
    .transition {
        page-break-before: avoid;
    }

    /* Hide UI elements */
    .search-highlight {
        background: transparent;
        border-bottom: 1px solid #000;
    }

    .note,
    .boneyard,
    .synopsis {
        display: none;
    }
}

/* ===== DARK MODE ADJUSTMENTS ===== */
[data-theme="dark"] .screenplay {
    color: var(--text-primary);
    background: var(--bg-primary);
}

[data-theme="dark"] .character.highlighted {
    background: rgba(77, 166, 255, 0.2);
}

[data-theme="dark"] .section,
[data-theme="dark"] .synopsis {
    background: rgba(77, 166, 255, 0.1);
}

[data-theme="dark"] .search-highlight {
    background: rgba(255, 255, 0, 0.2);
}
