:root {
    --primary-color: #000;
    --link-color: #003399;
    --border-color: #000;
    --font-serif: 'Lora', 'Georgia', 'Times New Roman', serif;
    --base-font-size: 10pt;
    --heading-font-size: 12pt;
    --name-font-size: 20pt;
    --sub-heading-size: 11pt;
    --line-height: 1.3;
    --section-margin: 10pt;
    --item-margin: 5pt;
    --a4-width: 210mm;
    --a4-height: 297mm;
    --page-padding: 12.7mm;
    /* Narrow Margin 0.5" */
}

* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

strong {
    font-weight: bold;
}

body {
    font-family: var(--font-serif);
    font-size: var(--base-font-size);
    line-height: var(--line-height);
    color: var(--primary-color);
    background-color: #f0f0f0;
    /* Display background */
    display: flex;
    justify-content: center;
    padding: 40px 0;
    print-color-adjust: exact;
    -webkit-print-color-adjust: exact;
}

/* Page Container */
.resume-page {
    width: var(--a4-width);
    min-height: var(--a4-height);
    background-color: white;
    padding: var(--page-padding);
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
    /* Strict one page removed - allows natural expansion */
    position: relative;
    print-color-adjust: exact;
    -webkit-print-color-adjust: exact;
    margin-left: auto;
    margin-right: auto;
}

/* Header */
.resume-header {
    text-align: center;
    margin-bottom: var(--section-margin);
}

.name {
    font-size: var(--name-font-size);
    font-weight: bold;
    text-transform: uppercase;
    margin-bottom: 2pt;
}

.oneliner-summary {
    font-size: 10pt;
    font-style: italic;
    margin-bottom: 6pt;
    color: #444;
}

.contact-info {
    font-size: 9pt;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: nowrap;
    gap: 10pt;
    padding-bottom: 2pt;
    /* Reduced to align with individual underlines */
}

.contact-item {
    text-decoration: none;
    color: var(--primary-color) !important;
    /* Keep text black */
    display: flex;
    align-items: center;
    gap: 4pt;
    white-space: nowrap;
    border-bottom: 0.5pt solid var(--primary-color);
    padding-bottom: 1pt;
}

.contact-item:hover {
    border-bottom: 0.5pt solid #000;
    opacity: 0.8;
}

.contact-icon {
    width: 12pt;
    height: 12pt;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

/* Dynamic Colors - Applied to icon SVGs only via currentColor or SVG targeting */
.icon-blue .contact-icon {
    color: #2563eb;
}

.icon-purple .contact-icon {
    color: #9333ea;
}

.icon-red .contact-icon {
    color: #dc2626;
}

.icon-green .contact-icon {
    color: #16a34a;
}

.icon-black .contact-icon {
    color: #000000;
}


/* Inline Links Section */
.inline-links-content {
    text-align: left;
    line-height: 1.6;
}

.inline-skill-link {
    color: var(--primary-color);
    text-decoration: none;
    /* Switch to border-bottom */
    border-bottom: 0.5pt solid var(--primary-color);
    display: inline;
    line-height: 1.6;
}

.inline-skill-link:hover {
    color: var(--primary-color);
    border-bottom: 0.5pt solid var(--primary-color);
}

/* Sections */
section {
    margin-bottom: var(--section-margin);
}

h2.section-title {
    font-size: var(--heading-font-size);
    font-weight: bold;
    text-transform: uppercase;
    border-bottom: 1pt solid var(--border-color);
    margin-bottom: 4pt;
    letter-spacing: 0.5pt;
}

.summary-content {
    text-align: justify;
}

/* Entry Lists (Experience/Education) */
.entry {
    margin-bottom: var(--item-margin);
}

.entry-header {
    display: table;
    width: 100%;
    font-weight: bold;
    font-size: var(--sub-heading-size);
}

.entry-header span:first-child {
    display: table-cell;
    text-align: left;
}

.entry-header span:last-child {
    display: table-cell;
    text-align: right;
}

.entry-subheader {
    display: table;
    width: 100%;
    font-style: italic;
    font-size: 10pt;
    margin-top: 1pt;
}

.entry-subheader span:first-child {
    display: table-cell;
    text-align: left;
}

.entry-subheader span:last-child {
    display: table-cell;
    text-align: right;
}

ul.details-list {
    margin-left: 14pt;
    margin-top: 2pt;
}

ul.details-list li {
    margin-bottom: 2pt;
}

/* Skills Grid */
.skills-container {
    display: flex;
    flex-direction: column;
    gap: 2pt;
}

.skill-row {
    display: flex;
}

.skill-label {
    font-weight: bold;
    min-width: 80pt;
    /* Reduced to remove extra gap */
}

/* Links */
a {
    color: var(--link-color);
    text-decoration: underline;
}

.entry-icon-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 12pt;
    height: 12pt;
    margin-left: 6pt;
    text-decoration: none;
    line-height: 0;
}

.entry-icon-link svg {
    width: 100% !important;
    height: 100% !important;
}

/* Print Styles historically located here have been consolidated to dashboard.css for global UI and Resume alignment */

/* UI Elements */
.controls {
    position: fixed;
    top: 20px;
    right: 20px;
    z-index: 1000;
    display: flex;
    justify-content: flex-end;
}

.btn-download {
    background-color: #dc2626;
    /* Red */
    color: #fff;
    border: none;
    padding: 12px 24px;
    font-family: Arial, sans-serif;
    font-size: 14px;
    font-weight: bold;
    cursor: pointer;
    border-radius: 6px;
    display: flex;
    align-items: center;
    gap: 10px;
    transition: background-color 0.2s, transform 0.1s;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}

.btn-download:hover {
    background-color: #b91c1c;
    transform: translateY(-1px);
}

.btn-download:active {
    transform: translateY(0);
}

/* Toggle hidden functionality */
.hidden {
    display: none !important;
}

/* Subtitle inline icon links (added next to Organization name in list entries) */
.entry-icon-link {
    display: inline-flex;
    align-items: center;
    margin-left: 4pt;
    vertical-align: middle;
    text-decoration: none;
    border-bottom: none !important;
    opacity: 0.85;
    transition: opacity 0.15s, transform 0.1s;
}

.entry-icon-link:hover {
    opacity: 1;
    transform: scale(1.15);
}

.entry-icon-link svg {
    display: block;
}