/* ========================================================================== */
/* 
 * Print CSS for Markdown Reports
 * This stylesheet is designed to provide a sleek, unparty-brand aesthetic.
 * unparty-brand starts with unparty-yellow #F9C22E  
 * It includes styles for typography, tables, code blocks, and other common elements found in markdown documents.
 */
 /* ========================================================================== */

 /* Import Google Fonts */ 
@import url('https://fonts.googleapis.com/css2?family=Flow+Rounded&family=Geist+Mono:wght@100..900&family=Major+Mono+Display&family=Nunito:ital,wght@0,200..1000;1,200..1000&display=swap');

/* Welcome Colors - Extracted from WelcomeColors.swift */
:root {

    /* page background */
     --pageforeground: #ededed;
     --pagebackground: #0a0a0a;
    /* Core Brand Colors */
    --unparty: #F9C22E;
    --unparty-black: #000605;
    --unparty-white: #FFF1D6;
    --champion: #E7B12E;
    --next-yellow: #E4C014;
    
    /* Dark Theme Colors */
    --push-black: #371B70;
    --deep-space: #0C0032;
    --midnight-blue: #190061;
    --rich-black: #0D0C1D;
    --cousin-black: #14122B;
    --another-love: #000108;
    --unparty-purple: #29284E;
    --pup-black: #361D6E;
    --astro-black: #3D2D59;
    --star-black: #753062;
    
    /* Accent Colors */
    --electric-purple: #3500D3;
    --electric-blue: #00FFFF;
    --electric-green: #00FF66;
    --neon-yellow: #FFF700;
    --neon-pink: #FF00FF;
    --pinky-black: #6C6BB4;
    --purple-black: #845FC7;
    --heal-purple: #884455;
    --silver-black: #332F08;
    --soft-white: #F0F0F0;
    --data-header: #C26D7B;
}



/* Production-grade print CSS for markdown reports */
@page {
    size: A4;
    margin: 1in 0.75in;
}

/* Base styles */
* {
    box-sizing: border-box;
}


/* Decorative elements using Flow Rounded - but not inside code blocks */
.heading-dash,
.task-update,
.status-dash,
.section-break,
.visual-separator {
    font-family: "Flow Rounded", system-ui;
    font-weight: 100;
    font-style: normal;
    color: var(--unparty);
    font-size: 1.2em;
    margin: 0 8pt;
}

/* Override Flow Rounded inside code blocks to use Geist Mono */
.sourceCode .heading-dash,
.sourceCode .task-update,
.sourceCode .status-dash,
.sourceCode .section-break,
.sourceCode .visual-separator,
pre .heading-dash,
pre .task-update,
pre .status-dash,
pre .section-break,
pre .visual-separator {
    font-family: "Geist Mono", 'Monaco', 'Menlo', 'Ubuntu Mono', monospace !important;
    color: inherit !important;
    font-size: inherit !important;
    margin: inherit !important;
}

/* Flow Rounded section dividers */
.flow-divider {
    font-family: "Flow Rounded", system-ui;
    color: var(--unparty);
    font-size: 1.5em;
    text-align: left;
    margin: 16pt 0;
    letter-spacing: 4pt;
}

/* Flow Rounded bullet points */
.flow-bullet {
    font-family: "Flow Rounded", system-ui;
    color: var(--unparty);
    font-size: 1.1em;
    margin-right: 6pt;
}

/* Flow Rounded corners for emphasis */
.flow-corner {
    font-family: "Flow Rounded", system-ui;
    color: var(--unparty);
    font-size: 0.9em;
}

/* Flow Rounded emphasis wrapper */
.flow-emphasis {
    border: 2pt solid var(--unparty);
    border-radius: 6pt;
    padding: 8pt 12pt;
    margin: 12pt 0;
    position: relative;
}

.flow-emphasis::before {
    content: "●●●";
    font-family: "Flow Rounded", system-ui;
    color: var(--unparty);
    position: absolute;
    top: -10pt;
    left: 12pt;
    background: var(--unparty-white);
    padding: 0 6pt;
    font-size: 1em;
}

/* Monospace display font for special headers */
.mono-display,
.code-title {
    font-family: "Nunito", monospace;
    font-weight: 400;
    font-style: normal;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}


body {
    font-family: "Nunito", -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
    font-size: 11pt;
    line-height: 1.4;
    color: var(--pageforeground);
    max-width: 800px;
    margin: 0 auto;
    padding: 40px 60px;
    background: var(--pagebackground);
    text-transform: uppercase;
}




@media screen {
    body {
        max-width: 900px;
        padding: 40px 80px;
    }
}

/* Typography hierarchy */
h1 {
    font-size: 20pt;
    font-weight: 700;
    margin: 0 0 16pt 0;
    color: var(--unparty-black);
    border-bottom: 2pt solid var(--soft-white);
    padding-bottom: 8pt;
    page-break-after: avoid;
    text-transform: uppercase;
}

h2 {
    font-size: 16pt;
    font-weight: 600;
    margin: 20pt 0 12pt 0;
    color: var(--unparty-purple);
    page-break-after: avoid;
}

h3 {
    font-size: 14pt;
    font-weight: 600;
    margin: 16pt 0 8pt 0;
    color: var(--astro-black);
    page-break-after: avoid;
}

h4 {
    font-size: 12pt;
    font-weight: 600;
    margin: 12pt 0 6pt 0;
    color: var(--pinky-black);
    page-break-after: avoid;
}

/* Paragraph and text */
p {
    margin: 0 0 10pt 0;
    text-align: justify;
    orphans: 2;
    widows: 2;
}

/* Lists with better spacing */
ul, ol {
    margin: 8pt 0 12pt 20pt;
    padding: 0;
}

li {
    margin: 4pt 0;
    page-break-inside: avoid;
}

/* Code styling */
/* Inline code styling */
code {
    font-family: "Geist Mono", 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;
    font-size: 9pt;
    background: var(--unparty-white);
    color: var(--unparty-black);
    padding: 2pt 6pt;
    border-radius: 4pt;
    border: 1pt solid var(--champion);
    font-weight: 500;
}

/* Code blocks - light mode to match page */
pre {
    font-family: "Geist Mono", 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;
    font-size: 9pt;
    background: var(--soft-white);
    color: var(--rich-black);
    border: 2pt solid var(--unparty);
    border-radius: 6pt;
    padding: 16pt;
    margin: 16pt 0;
    overflow: hidden;
    page-break-inside: avoid;
    white-space: pre-wrap;
    word-wrap: break-word;
    position: relative;
    box-shadow: 0 2pt 4pt rgba(0,0,0,0.1);
}

/* Remove border from syntax-highlighted pre elements to avoid double borders */
pre.sourceCode {
    border: none !important;
}

/* Clean code blocks without decorations */

pre code {
    background: none !important;
    padding: 0;
    border: none !important;
    font-size: inherit;
    color: inherit !important;
    /* Fix Safari positioning issues */
    display: block;
    width: 100%;
    margin: 0;
    position: relative;
    overflow: visible;
}

/* Tables with professional styling */
table {
    width: 100%;
    border-collapse: collapse;
    margin: 12pt 0;
    font-size: 10pt;
    page-break-inside: avoid;
}

th, td {
    border: 1pt solid var(--soft-white);
    padding: 8pt 10pt;
    text-align: left;
    vertical-align: top;
}

th {
    background: var(--soft-white);
    font-weight: 600;
    color: var(--astro-black);
}

tr:nth-child(even) td {
    background: var(--soft-white);
}

/* Blockquotes */
blockquote {
    margin: 12pt 0 12pt 20pt;
    padding: 8pt 12pt;
    border-left: 3pt solid var(--electric-blue);
    background: var(--soft-white);
    font-style: italic;
    page-break-inside: avoid;
}

/* Horizontal rules */
hr {
    border: none;
    border-top: 1pt solid var(--soft-white);
    margin: 20pt 0;
    page-break-after: avoid;
}

/* Links */
a {
    color: var(--midnight-blue);
    text-decoration: none;
}

a:after {
    content: " (" attr(href) ")";
    font-size: 9pt;
    color: var(--astro-black);
}

/* Emphasis */
strong, b {
    font-weight: 600;
    color: var(--unparty-purple);
}

em, i {
    font-style: italic;
    color: var(--astro-black);
}

/* Special report elements */
.executive-summary,
.key-findings {
    background: var(--soft-white);
    border: 1pt solid var(--soft-white);
    padding: 12pt;
    margin: 12pt 0;
    border-radius: 4pt;
    page-break-inside: avoid;
}

/* Data tables for analytics reports */
.data-table {
    font-size: 8pt;
    border-collapse: collapse;
    width: 100%;
    margin: 8pt 0;
}

/* Priority ranking table */
.priority-table {
    margin: 12pt 0;
}

.priority-table table {
    font-size: 9pt;
    border-collapse: collapse;
    width: 100%;
    border: 1pt solid var(--unparty);
}

.priority-table th {
    background: var(--unparty) !important;
    color: var(--unparty-black) !important;
    font-weight: 700;
    padding: 6pt 8pt;
    text-transform: uppercase;
    font-size: 8pt;
    letter-spacing: 0.5pt;
    border: 1pt solid var(--unparty) !important;
}

.priority-table td {
    padding: 6pt 8pt;
    border-bottom: 1pt solid var(--soft-white);
    font-size: 9pt;
    border: 1pt solid var(--soft-white) !important;
}

/* Priority badges */
.priority-badge {
    padding: 2pt 6pt;
    border-radius: 3pt;
    font-weight: 600;
    font-size: 7pt;
    text-transform: uppercase;
    letter-spacing: 0.3pt;
}

.priority-high {
    background: var(--electric-green);
    color: var(--unparty-black);
}

.priority-medium {
    background: var(--champion);
    color: var(--unparty-black);
}

.priority-low {
    background: var(--pinky-black);
    color: var(--soft-white);
}

.priority-risk {
    background: var(--electric-purple);
    color: var(--soft-white);
}

/* Ranking controls */
.rank-control {
    display: inline-block;
    width: 20pt;
    height: 20pt;
    background: var(--soft-white);
    border: 1pt solid var(--unparty);
    border-radius: 50%;
    text-align: center;
    line-height: 18pt;
    font-size: 8pt;
    font-weight: 700;
    color: var(--unparty);
    margin-right: 4pt;
}

.rank-control.selected {
    background: var(--unparty);
    color: var(--unparty-black);
}

.data-table th {
    background: var(--data-header);
    color: var(--soft-white);
    font-weight: 600;
    padding: 4pt 6pt;
    font-size: 7pt;
    text-transform: uppercase;
}

.data-table td {
    padding: 3pt 6pt;
    font-size: 8pt;
    line-height: 1.2;
}

.data-table tr:nth-child(even) td {
    background: var(--soft-white);
}

/* Compact spacing for feature request tables */
.data-table.compact {
    font-size: 7pt;
    margin: 6pt 0;
}

.data-table.compact th {
    padding: 3pt 4pt;
    font-size: 6pt;
}

.data-table.compact td {
    padding: 2pt 4pt;
    font-size: 7pt;
}

/* Metrics and statistics */
.metric-value {
    font-weight: 700;
    color: var(--unparty-purple);
}

/* Page breaks */
.page-break {
    page-break-before: always;
}

.no-break {
    page-break-inside: avoid;
}

/* YAML Metadata styling - pandoc auto-generated elements */
.title {
    font-size: 24pt;
    font-weight: 700;
    margin: 0 0 12pt 0;
    color: var(--unparty);
    text-transform: uppercase;
    text-align: left;
    border-bottom: 3pt solid var(--unparty);
    padding-bottom: 12pt;
}



.author {
    font-size: 12pt;
    color: var(--unparty-purple);
    text-align: center;
    margin: 8pt 0;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 1pt;
}

.author::before {
    content: "BY ";
    font-size: 10pt;
    color: var(--astro-black);
    font-weight: 400;
}

.date {
    font-size: 11pt;
    color: var(--astro-black);
    text-align: center;
    margin: 8pt 0 20pt 0;
    font-style: italic;
    text-transform: uppercase;
}

/* Custom metadata fields */
.feature,
.core,
.sprint,
.version,
.generated {
    font-size: 10pt;
    color: var(--electric-green);
    text-align: center;
    margin: 4pt 0;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5pt;
}

.feature::before { content: "FEATURE: "; color: var(--astro-black); font-weight: 400; }
.core::before { content: "CORE: "; color: var(--astro-black); font-weight: 400; }
.sprint::before { content: "SPRINT: "; color: var(--astro-black); font-weight: 400; }
.version::before { content: "VERSION: "; color: var(--astro-black); font-weight: 400; }
.generated::before { content: "GENERATED: "; color: var(--astro-black); font-weight: 400; font-size: 8pt; }

/* Sprint detail metadata */
.sprint-start,
.sprint-end,
.sprint-year,
.sprint-quarter {
    font-size: 9pt;
    color: var(--heal-purple);
    text-align: center;
    margin: 2pt 0;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.3pt;
}

.sprint-start::before { content: "START: "; color: var(--astro-black); font-weight: 400; font-size: 8pt; }
.sprint-end::before { content: "END: "; color: var(--astro-black); font-weight: 400; font-size: 8pt; }
.sprint-year::before { content: "YEAR: "; color: var(--astro-black); font-weight: 400; font-size: 8pt; }
.sprint-quarter::before { content: "QUARTER: "; color: var(--astro-black); font-weight: 400; font-size: 8pt; }

/* Sprint metadata container */
.sprint-details {
    display: flex;
    justify-content: space-around;
    flex-wrap: wrap;
    margin: 8pt 0;
    padding: 6pt;
    background: var(--soft-white);
    border-radius: 4pt;
    border: 1pt solid var(--unparty);
}

/* Generated timestamp styling */
.generated {
    font-size: 8pt;
    color: var(--astro-black);
    font-style: italic;
    margin-top: 12pt;
    border-top: 1pt solid var(--soft-white);
    padding-top: 8pt;
}

/* Metadata container */
.metadata-block {
    text-align: center;
    margin-bottom: 32pt;
    padding-bottom: 16pt;
    border-bottom: 1pt solid var(--soft-white);
    page-break-after: avoid;
}

/* Header information */
.report-header {
    text-align: center;
    margin-bottom: 24pt;
    padding-bottom: 12pt;
    border-bottom: 2pt solid var(--soft-white);
}

.report-date {
    font-size: 10pt;
    color: var(--astro-black);
    font-style: italic;
}

/* Footer for pagination */
@page {
    @bottom-right {
        content: "Page " counter(page) " of " counter(pages);
        font-size: 9pt;
        color: var(--astro-black);
    }
}

/* Specific optimizations for report types */

/* Topic analysis sections */
.topic-section {
    page-break-inside: avoid;
    margin: 16pt 0;
}

/* Comparison tables */
.comparison-table {
    font-size: 9pt;
}

.comparison-table .platform-name {
    font-weight: 600;
    color: var(--midnight-blue);
}

/* Executive summary styling */
.executive-summary h2 {
    margin-top: 0;
    color: var(--unparty-purple);
}

/* Key findings boxes */
.finding-box {
    background: var(--soft-white);
    border-left: 4pt solid var(--electric-blue);
    padding: 10pt;
    margin: 10pt 0;
    page-break-inside: avoid;
}

/* Statistics highlighting */
.stat-highlight {
    background: var(--unparty-white);
    padding: 2pt 4pt;
    border-radius: 2pt;
    font-weight: 600;
    color: var(--unparty-black);
}

/* Recommendations section */
.recommendations {
    background: var(--soft-white);
    border: 1pt solid var(--electric-green);
    border-radius: 4pt;
    padding: 12pt;
    margin: 16pt 0;
    page-break-inside: avoid;
}

.recommendations h3 {
    margin-top: 0;
    color: var(--electric-green);
}

/* Analysis metadata */
.analysis-meta {
    font-size: 9pt;
    color: var(--astro-black);
    font-style: italic;
    text-align: center;
    margin-top: 20pt;
    padding-top: 12pt;
    border-top: 1pt solid var(--soft-white);
}

/* Hide elements that shouldn't print */
.no-print {
    display: none;
}

/* Ensure consistent spacing */
h1 + h2,
h2 + h3,
h3 + h4 {
    margin-top: 8pt;
}

/* Final cleanup */
img {
    max-width: 100%;
    height: auto;
    page-break-inside: avoid;
}

/* Emoji handling for reports that use them */
.emoji {
    font-family: 'Apple Color Emoji', 'Segoe UI Emoji', sans-serif;
}

/* Enhanced syntax highlighting for code blocks */
.sourceCode {
    font-family: "Geist Mono", 'Monaco', 'Menlo', 'Ubuntu Mono', monospace !important;
    line-height: 1.3;
    font-size: 9pt;
    background: var(--soft-white) !important;
    color: var(--rich-black) !important;
    border: none !important;
    border-radius: 6pt;
    padding: 16pt !important;
    margin: 16pt 0;
    position: relative;
   /* box-shadow: 0 2pt 4pt rgba(0,0,0,0.1);*/
}

/* Completely remove pandoc's line anchor links from layout */
.sourceCode a[aria-hidden="true"] {
    display: none !important;
    position: absolute !important;
    left: -9999px !important;
    width: 0 !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    font-size: 0 !important;
    line-height: 0 !important;
}

/* Style code block container */

.sourceCode {
    overflow-x: auto;
}

/* Clean syntax highlighted code blocks without decorations */

/* Keep line structure but remove yellow indicators */
.sourceCode span[id^="cb"] {
    display: block;
    width: 100%;
    position: relative;
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin: 0 !important;
    /* Safari fix for code blocks */ 
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    min-height: 1.3em; /* Ensure line height is maintained */
    overflow: visible; /* Prevent clipping */
}

/* Force proper text alignment in Safari */
.sourceCode {
    -webkit-text-size-adjust: 100%;
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
}

/*
.sourceCode span[id^="cb"] {
    display: block;
    border: none !important;
    background: none !important;
    margin: 0 !important;
    padding: 0 !important;
    position: relative;
}
*/

/* Ensure no pseudo-elements create line indicators */
/*
.sourceCode span[id^="cb"]:before,
.sourceCode span[id^="cb"]:after {
    display: none !important;
    content: none !important;
}
*/
/* Ensure hidden anchor links don't create spacing */

.sourceCode span[id^="cb"] a[aria-hidden="true"] {
    display: none !important;
    width: 0 !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* Comprehensive syntax highlighting with WelcomeColors - optimized for light background */
.sourceCode .co { color: var(--astro-black) !important; font-style: italic; } /* Comments */
.sourceCode .kw { color: var(--midnight-blue) !important; font-weight: 600; } /* Keywords */
.sourceCode .fu { color: var(--deep-space) !important; font-weight: 500; } /* Functions */
.sourceCode .op { color: var(--rich-black) !important; } /* Operators */
.sourceCode .dv { color: var(--push-black) !important; font-weight: 500; } /* Decimal values */
.sourceCode .fl { color: var(--push-black) !important; font-weight: 500; } /* Float values */
.sourceCode .st { color: var(--cousin-black) !important; } /* Strings */
.sourceCode .dt { color: var(--unparty-purple) !important; font-weight: 600; } /* Data types */
.sourceCode .va { color: var(--rich-black) !important; } /* Variables */
.sourceCode .cf { color: var(--midnight-blue) !important; font-weight: 600; } /* Control flow */
.sourceCode .at { color: var(--heal-purple) !important; } /* Attributes */
.sourceCode .bn { color: var(--pup-black) !important; } /* Base N numbers */
.sourceCode .bu { color: var(--deep-space) !important; } /* Built-ins */
.sourceCode .ch { color: var(--cousin-black) !important; } /* Characters */
.sourceCode .cn { color: var(--push-black) !important; } /* Constants */
.sourceCode .cv { color: var(--astro-black) !important; font-weight: 600; } /* Comments var */
.sourceCode .do { color: var(--astro-black) !important; font-style: italic; } /* Documentation */
.sourceCode .er { color: var(--electric-purple) !important; font-weight: 700; } /* Errors */
.sourceCode .ex { color: var(--rich-black) !important; background: none !important; } /* Extensions/Executables */
.sourceCode .im { color: var(--midnight-blue) !important; font-weight: 600; } /* Imports */
.sourceCode .in { color: var(--astro-black) !important; font-weight: 600; } /* Information */
.sourceCode .ot { color: var(--heal-purple) !important; } /* Others */
.sourceCode .pp { color: var(--midnight-blue) !important; font-weight: 600; } /* Preprocessor */
.sourceCode .sc { color: var(--cousin-black) !important; } /* Special characters */
.sourceCode .ss { color: var(--cousin-black) !important; } /* Special strings */
.sourceCode .wa { color: var(--electric-purple) !important; font-weight: 600; } /* Warnings */

/* Disable all language-specific decorations that create yellow indicators */
.sourceCode.json,
.sourceCode.javascript,
.sourceCode.python,
.sourceCode.bash,
.sourceCode.css,
.sourceCode.html {
    position: relative;
}

/*
.sourceCode.json:before,
.sourceCode.javascript:before,
.sourceCode.python:before,
.sourceCode.bash:before,
.sourceCode.css:before,
.sourceCode.html:before,
.sourceCode.json:after,
.sourceCode.javascript:after,
.sourceCode.python:after,
.sourceCode.bash:after,
.sourceCode.css:after,
.sourceCode.html:after {
    display: none !important;
    content: none !important;
}
*/

.sourceCode.json .dt {
    font-weight: 600;
    color: var(--unparty-purple) !important;
}

.sourceCode.json .dv,
.sourceCode.json .fl {
    color: var(--push-black) !important;
    font-weight: 500;
}

.sourceCode.json .st {
    color: var(--cousin-black) !important;
}


/* Clean up empty spans by giving them minimal height */
.sourceCode span:empty {
    line-height: 0;
    height: 0;
}