@page {
    size: A4;
    margin: 0;
}

@media print {
    /* Always print the light-mode dashboard look (dark sidebar + white main) */
    :root,
    :root[data-theme="dark"],
    :root[data-theme="light"] {
        --color-bg: #ffffff;
        --color-surface: #ffffff;
        --color-surface-soft: #f8fafc;
        --color-ink: #1e293b;
        --color-ink-soft: #475569;
        --color-muted: #94a3b8;
        --color-line: #e2e8f0;
        --color-heading: #0f2744;
        --color-sidebar: #0f2744;
        --color-sidebar-soft: #1a3a64;
        --color-accent: #06b6d4;
        --color-accent-strong: #0ea5e9;
        --color-on-dark: #e2e8f0;
        --color-on-dark-soft: #cbd5e1;
    }

    html,
    body {
        margin: 0;
        padding: 0;
        background: #ffffff !important;
        color: var(--color-ink);
        font-size: 9.5pt;
        line-height: 1.4;
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
        color-adjust: exact !important;
    }

    .action-cluster,
    .print-action,
    .theme-toggle,
    .print-skills,
    .print-languages {
        display: none !important;
    }

    /* Full-bleed page shell — same composition as screen */
    .cv-page {
        display: block;
        position: relative;
        margin: 0;
        max-width: none;
        width: 100%;
        min-height: 100vh;
        box-shadow: none;
        border-radius: 0;
        overflow: visible;
        background: #ffffff;
    }

    /* Sidebar fixed so it repeats on every printed page (matches app layout) */
    .sidebar {
        position: fixed;
        left: 0;
        top: 0;
        bottom: 0;
        width: 68mm;
        height: 100%;
        display: flex;
        flex-direction: column;
        gap: 12px;
        padding: 10mm 6mm 8mm;
        margin: 0;
        background: var(--color-sidebar) !important;
        color: var(--color-on-dark) !important;
        overflow: hidden;
        z-index: 1;
    }

    .sidebar::before {
        content: "";
        position: absolute;
        inset: 0 0 auto 0;
        height: 3px;
        background: linear-gradient(90deg, var(--color-accent), var(--color-accent-strong));
        display: block;
    }

    .profile {
        text-align: center;
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 8px;
    }

    .photo-wrap {
        width: 92px;
        height: 92px;
        border-radius: 50%;
        border: 2.5px solid var(--color-accent);
        box-shadow: none;
        background: var(--color-sidebar-soft);
        overflow: hidden;
    }

    .photo-wrap img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    .profile h1 {
        display: block;
        font-size: 11pt;
        line-height: 1.15;
        color: #ffffff !important;
        text-transform: uppercase;
        letter-spacing: 0.04em;
    }

    .profile h1 .surname {
        color: var(--color-accent) !important;
    }

    .profile .headline {
        display: block;
        font-size: 7pt;
        color: var(--color-on-dark-soft) !important;
        letter-spacing: 0.06em;
        text-transform: uppercase;
    }

    .sidebar h2 {
        font-size: 7.5pt;
        letter-spacing: 0.14em;
        text-transform: uppercase;
        color: var(--color-accent) !important;
        margin: 0 0 5px;
        padding-bottom: 4px;
        border-bottom: 1px solid rgba(255, 255, 255, 0.12);
    }

    .sidebar section + section h2,
    .skills h2:not(:first-of-type) {
        margin-top: 8px;
    }

    .contact h2,
    .roles h2 {
        display: block;
    }

    .contact::before,
    .contact::after {
        content: none !important;
        display: none !important;
    }

    .contact-list {
        display: flex;
        flex-direction: column;
        flex-wrap: nowrap;
        gap: 5px;
        font-size: 7.5pt;
        color: var(--color-on-dark-soft) !important;
    }

    .contact-list li {
        display: flex;
        align-items: center;
        gap: 6px;
        word-break: break-word;
    }

    .contact-list svg {
        width: 10px;
        height: 10px;
        fill: var(--color-accent);
        flex-shrink: 0;
    }

    .contact-list a,
    .contact-list span {
        color: var(--color-on-dark) !important;
    }

    .badges {
        display: flex;
        flex-wrap: wrap;
        gap: 4px;
    }

    .badges li {
        font-size: 7pt;
        padding: 2px 7px;
        border-radius: 999px;
        background: rgba(6, 182, 212, 0.12) !important;
        border: 1px solid rgba(6, 182, 212, 0.35);
        color: #e0f7ff !important;
        font-weight: 500;
    }

    .sidebar .skills,
    .sidebar .languages {
        display: block !important;
    }

    .lang-list {
        display: flex;
        flex-direction: column;
        gap: 8px;
    }

    .lang-name {
        font-size: 8pt;
        font-weight: 600;
        color: #ffffff !important;
    }

    .lang-level {
        font-size: 6.5pt;
        color: var(--color-accent) !important;
        letter-spacing: 0.04em;
        text-transform: uppercase;
    }

    .lang-bar {
        grid-column: 1 / -1;
        display: block;
        width: 100%;
        height: 4px;
        border-radius: 999px;
        background: rgba(255, 255, 255, 0.1) !important;
        overflow: hidden;
        margin-top: 2px;
    }

    .lang-bar > span {
        display: block;
        height: 100%;
        background: linear-gradient(90deg, var(--color-accent), var(--color-accent-strong)) !important;
    }

    .chips {
        display: flex;
        flex-wrap: wrap;
        gap: 3px;
    }

    .chips li {
        font-size: 6.5pt;
        padding: 2px 5px;
        border-radius: 4px;
        background: rgba(255, 255, 255, 0.06) !important;
        color: var(--color-on-dark) !important;
        border: 1px solid rgba(255, 255, 255, 0.1);
    }

    .chips--accent li {
        background: rgba(14, 165, 233, 0.15) !important;
        border-color: rgba(14, 165, 233, 0.4);
        color: #e0f7ff !important;
    }

    .chips--muted li {
        background: transparent !important;
        border-color: rgba(255, 255, 255, 0.18);
        color: var(--color-on-dark-soft) !important;
    }

    /* Main column offset by sidebar width — same visual hierarchy as screen */
    .main {
        display: block;
        margin: 0 0 0 68mm;
        padding: 10mm 9mm 8mm;
        background: #ffffff !important;
        color: var(--color-ink);
    }

    .section {
        display: block;
        margin-bottom: 5mm;
        page-break-inside: auto;
    }

    .section--experience {
        display: block;
    }

    .section--education {
        break-before: auto;
        page-break-before: auto;
    }

    .section h2 {
        display: flex;
        align-items: center;
        gap: 8px;
        font-size: 12pt;
        color: var(--color-heading) !important;
        margin-bottom: 6px;
        padding-bottom: 4px;
        border-bottom: 1px solid var(--color-line);
        page-break-after: avoid;
        break-after: avoid;
    }

    .section-num {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 18px;
        height: 18px;
        border-radius: 5px;
        background: var(--color-sidebar) !important;
        color: var(--color-accent) !important;
        font-size: 7.5pt;
        font-weight: 700;
    }

    .section--profile p {
        font-size: 9pt;
        line-height: 1.4;
        color: var(--color-ink-soft) !important;
    }

    .section--profile p + p {
        margin-top: 4px;
    }

    .job {
        position: relative;
        padding: 5px 0 5px 14px;
        border-left: 2px solid var(--color-line);
        page-break-inside: avoid;
        break-inside: avoid;
    }

    .job + .job {
        margin-top: 0;
    }

    .job::before {
        content: "";
        position: absolute;
        left: -5.5px;
        top: 12px;
        width: 9px;
        height: 9px;
        border-radius: 50%;
        background: var(--color-accent) !important;
        border: 2px solid #ffffff;
        box-shadow: 0 0 0 1px var(--color-accent);
    }

    .job-header {
        display: flex;
        justify-content: space-between;
        align-items: flex-start;
        gap: 8px;
        margin-bottom: 3px;
        flex-wrap: wrap;
    }

    .job-company {
        font-size: 10pt;
        color: var(--color-heading) !important;
        font-weight: 700;
    }

    .job-role {
        font-size: 9pt;
        color: var(--color-accent-strong) !important;
        font-weight: 600;
        margin-top: 1px;
    }

    .job-meta {
        display: flex;
        flex-direction: column;
        align-items: flex-end;
        gap: 1px;
        font-size: 7.5pt;
        color: var(--color-ink-soft);
        text-align: right;
    }

    .job-dates {
        font-weight: 600;
        color: var(--color-ink) !important;
    }

    .job-location {
        color: var(--color-muted) !important;
    }

    .job-tag {
        display: inline-block;
        margin-top: 1px;
        padding: 1px 6px;
        font-size: 6.5pt;
        font-weight: 700;
        letter-spacing: 0.06em;
        text-transform: uppercase;
        color: #052f3a !important;
        background: var(--color-accent) !important;
        border-radius: 999px;
    }

    .job-bullets {
        display: flex;
        flex-direction: column;
        gap: 2px;
        font-size: 8.5pt;
        color: var(--color-ink-soft) !important;
        line-height: 1.35;
    }

    .job-bullets li {
        position: relative;
        padding-left: 12px;
    }

    .job-bullets li::before {
        content: "";
        position: absolute;
        left: 0;
        top: 6px;
        width: 4px;
        height: 4px;
        border-radius: 50%;
        background: var(--color-accent) !important;
    }

    .education-list {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 8px;
    }

    .education-list li {
        padding: 7px 9px;
        border: 1px solid var(--color-line);
        border-radius: 8px;
        background: var(--color-surface-soft) !important;
    }

    .education-list h3 {
        font-size: 9pt;
        color: var(--color-heading) !important;
        margin-bottom: 2px;
    }

    .edu-meta {
        font-size: 8pt;
        color: var(--color-ink-soft) !important;
    }

    h2,
    h3 {
        page-break-after: avoid;
        break-after: avoid;
    }

    a {
        color: inherit;
        border-bottom: none;
        text-decoration: none;
    }
}
