@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap');

:root {
    --c-bg: #f8fafc;
    --c-surface: #ffffff;
    --c-surface-2: #f1f5f9;
    --c-text: #0f172a;
    --c-text-muted: #475569;
    --c-text-subtle: #94a3b8;
    --c-border: #e2e8f0;
    --c-accent: #0a66c2;
    --c-accent-hover: #004182;
    --c-accent-soft: #eef3f8;
    --c-accent-text: #ffffff;
    --c-success: #16a34a;
    --c-success-bg: #f0fdf4;
    --c-warning: #d97706;
    --c-warning-bg: #fffbeb;
    --c-danger: #dc2626;
    --c-danger-bg: #fef2f2;
    --c-neutral: #64748b;
    --c-neutral-bg: #f8fafc;
    --c-code-bg: #0f172a;
    --c-code-text: #e2e8f0;
    --c-shadow: 0 2px 8px rgba(15,23,42,.06);
    --c-shadow-lg: 0 8px 24px rgba(15,23,42,.1);
    --c-radius: 8px;
    --c-radius-sm: 6px;
    --c-page-max: 960px;
    --c-font: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --c-font-mono: 'JetBrains Mono', 'SF Mono', Consolas, monospace;
}

@media (prefers-color-scheme: dark) {
    :root:not([data-theme="light"]) {
        --c-bg: #0f172a;
        --c-surface: #1e293b;
        --c-surface-2: #334155;
        --c-text: #e2e8f0;
        --c-text-muted: #94a3b8;
        --c-text-subtle: #64748b;
        --c-border: #334155;
        --c-accent: #3b82f6;
        --c-accent-hover: #60a5fa;
        --c-accent-soft: #1e3a5f;
        --c-shadow: 0 2px 8px rgba(0,0,0,.3);
        --c-shadow-lg: 0 8px 24px rgba(0,0,0,.4);
        --c-neutral-bg: #1e293b;
        --c-success-bg: #14532d;
        --c-warning-bg: #451a03;
        --c-danger-bg: #450a0a;
    }
}

:root[data-theme="dark"] {
    --c-bg: #0f172a;
    --c-surface: #1e293b;
    --c-surface-2: #334155;
    --c-text: #e2e8f0;
    --c-text-muted: #94a3b8;
    --c-text-subtle: #64748b;
    --c-border: #334155;
    --c-accent: #3b82f6;
    --c-accent-hover: #60a5fa;
    --c-accent-soft: #1e3a5f;
    --c-shadow: 0 2px 8px rgba(0,0,0,.3);
    --c-shadow-lg: 0 8px 24px rgba(0,0,0,.4);
    --c-neutral-bg: #1e293b;
    --c-success-bg: #14532d;
    --c-warning-bg: #451a03;
    --c-danger-bg: #450a0a;
}

* { box-sizing: border-box; margin: 0; }

body {
    background: var(--c-bg);
    color: var(--c-text);
    font-family: var(--c-font);
    font-size: 15px;
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
}

a { color: var(--c-accent); text-decoration: none; }
a:hover { color: var(--c-accent-hover); text-decoration: underline; }

/* === Shell layout === */
.career-shell { min-height: 100vh; display: flex; flex-direction: column; }

.career-shell__header {
    position: sticky; top: 0; z-index: 100;
    background: var(--c-surface);
    border-bottom: 1px solid var(--c-border);
}
.career-shell__header-inner {
    max-width: var(--c-page-max); margin: 0 auto;
    padding: 0 24px; height: 56px;
    display: flex; align-items: center; gap: 24px;
}
.career-shell__brand {
    font-weight: 700; font-size: 1.1rem; color: var(--c-text);
    display: flex; align-items: center; gap: 8px;
}
.career-shell__brand:hover { text-decoration: none; color: var(--c-text); }
.career-shell__brand-dot {
    width: 10px; height: 10px; border-radius: 3px; background: var(--c-accent);
}
.career-shell__nav { display: flex; gap: 4px; flex: 1; }
.career-shell__nav a {
    padding: 6px 14px; border-radius: var(--c-radius-sm);
    color: var(--c-text-muted); font-weight: 500; font-size: .9rem;
    text-decoration: none; transition: all .15s;
}
.career-shell__nav a:hover { background: var(--c-surface-2); color: var(--c-text); text-decoration: none; }
.career-shell__nav a.is-active { background: var(--c-accent-soft); color: var(--c-accent); }
.career-shell__actions { display: flex; align-items: center; gap: 12px; }
.career-shell__logout {
    font-size: .85rem; color: var(--c-text-subtle); text-decoration: none;
}
.career-shell__logout:hover { color: var(--c-danger); text-decoration: none; }

/* === Shared header === */
.career-header {
    align-items: center;
    background: linear-gradient(120deg, #172554, #312e81);
    box-shadow: 0 2px 10px rgb(15 23 42 / 24%);
    color: #eef2ff;
    display: flex;
    gap: 20px;
    height: 60px;
    padding: 0 24px;
    position: sticky;
    top: 0;
    z-index: 100;
}
.career-header__brand {
    align-items: center;
    color: #fb7185;
    display: inline-flex;
    font-size: 1.1rem;
    font-weight: 700;
    text-decoration: none;
}
.career-header__mark { display: block; height: 32px; width: 32px; }
.career-header__brand:hover { color: #fda4af; text-decoration: none; }
.career-header__nav { display: flex; flex: 1; gap: 4px; }
.career-header__link {
    border-radius: var(--c-radius-sm);
    color: #c7d2fe;
    font-size: .9rem;
    font-weight: 600;
    padding: 7px 12px;
    text-decoration: none;
}
.career-header__link:hover { background: rgb(255 255 255 / 12%); color: #ffffff; text-decoration: none; }
.career-header__link--current { background: rgb(251 113 133 / 22%); color: #fecdd3; }
.career-header__account { align-items: center; display: flex; gap: 12px; }
.career-header__username { font-size: .85rem; font-weight: 600; }
.career-header__logout { margin: 0; }
.career-header__logout button {
    background: transparent;
    border: 1px solid rgb(255 255 255 / 36%);
    border-radius: var(--c-radius-sm);
    color: #eef2ff;
    cursor: pointer;
    font: inherit;
    font-size: .8rem;
    padding: 5px 9px;
}
.career-header__logout button:hover { border-color: #ffffff; color: #ffffff; }
.career-header__link:focus-visible, .career-header__brand:focus-visible,
.career-header__logout button:focus-visible { outline: 3px solid #bfdbfe; outline-offset: 3px; }

.career-shell__main {
    flex: 1; max-width: var(--c-page-max); margin: 0 auto;
    padding: 32px 24px 64px; width: 100%;
}

.career-shell__title {
    font-size: 1.5rem; font-weight: 700; margin-bottom: 24px;
    color: var(--c-text);
}

.career-shell__card {
    background: var(--c-surface); border: 1px solid var(--c-border);
    border-radius: var(--c-radius); padding: 24px;
    box-shadow: var(--c-shadow); margin-bottom: 16px;
    transition: transform .15s, box-shadow .15s;
}
.career-shell__card--hover:hover { transform: translateY(-2px); box-shadow: var(--c-shadow-lg); }

.career-shell__card-title { font-size: 1.1rem; font-weight: 600; margin-bottom: 12px; }
.career-shell__card-meta { font-size: .85rem; color: var(--c-text-subtle); }

.career-shell__empty {
    text-align: center; padding: 48px 24px; color: var(--c-text-subtle);
}
.career-shell__empty p { margin-bottom: 16px; }

.career-shell__row {
    display: flex; align-items: center; justify-content: space-between;
    gap: 16px; flex-wrap: wrap;
}

/* === Forms === */
.field { margin-bottom: 16px; }
.field label {
    display: block; font-size: .8rem; font-weight: 600;
    color: var(--c-text-muted); margin-bottom: 6px;
    text-transform: uppercase; letter-spacing: .04em;
}
.field input, .field textarea, .field select {
    width: 100%; padding: 10px 14px;
    border: 1px solid var(--c-border); border-radius: var(--c-radius-sm);
    font-family: var(--c-font); font-size: .95rem; color: var(--c-text);
    background: var(--c-surface); outline: none; transition: border-color .15s;
}
.field input:focus, .field textarea:focus, .field select:focus {
    border-color: var(--c-accent); box-shadow: 0 0 0 3px rgba(37,99,235,.1);
}
.field textarea { min-height: 120px; resize: vertical; line-height: 1.6; }
.field-hint { font-size: .8rem; color: var(--c-text-subtle); margin-top: 4px; }

.btn {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 10px 20px; border: none; border-radius: var(--c-radius-sm);
    font-family: var(--c-font); font-size: .95rem; font-weight: 600;
    cursor: pointer; transition: all .15s; text-decoration: none;
}
.btn--primary { background: var(--c-accent); color: var(--c-accent-text); }
.btn--primary:hover { background: var(--c-accent-hover); text-decoration: none; color: var(--c-accent-text); }
.btn--ghost { background: transparent; color: var(--c-text-muted); border: 1px solid var(--c-border); }
.btn--ghost:hover { background: var(--c-surface-2); color: var(--c-text); text-decoration: none; }
.btn--danger { background: var(--c-danger); color: #fff; }
.btn--danger:hover { background: #b91c1c; text-decoration: none; color: #fff; }
.btn--sm { padding: 6px 14px; font-size: .85rem; }

.alert { padding: 12px 16px; border-radius: var(--c-radius-sm); font-size: .9rem; margin-bottom: 16px; }
.alert--error { background: var(--c-danger-bg); color: var(--c-danger); border-left: 3px solid var(--c-danger); }
.alert--success { background: var(--c-success-bg); color: var(--c-success); border-left: 3px solid var(--c-success); }

/* === Badges === */
.badge {
    display: inline-flex; align-items: center; gap: 4px;
    padding: 3px 10px; border-radius: 20px;
    font-size: .75rem; font-weight: 600; letter-spacing: .02em;
}
.badge--saved { background: var(--c-neutral-bg); color: var(--c-neutral); }
.badge--applied { background: var(--c-accent-soft); color: var(--c-accent); }
.badge--screening { background: var(--c-accent-soft); color: var(--c-accent); }
.badge--interviewing { background: var(--c-warning-bg); color: var(--c-warning); }
.badge--offer { background: var(--c-success-bg); color: var(--c-success); }
.badge--rejected { background: var(--c-danger-bg); color: var(--c-danger); }
.badge--withdrawn { background: var(--c-neutral-bg); color: var(--c-neutral); }

/* === Markdown rendered content === */
.markdown { line-height: 1.7; color: var(--c-text); }
.markdown h2 { font-size: 1.3rem; font-weight: 600; margin: 1.5em 0 .5em; }
.markdown h3 { font-size: 1.1rem; font-weight: 600; margin: 1.2em 0 .4em; }
.markdown p { margin: .6em 0; }
.markdown ul, .markdown ol { margin: .6em 0; padding-left: 1.5em; }
.markdown li { margin: .3em 0; }
.markdown blockquote {
    margin: 1em 0; padding: 12px 16px;
    border-left: 3px solid var(--c-accent);
    background: var(--c-accent-soft); border-radius: 0 var(--c-radius-sm) var(--c-radius-sm) 0;
    color: var(--c-text-muted);
}
.markdown pre {
    background: var(--c-code-bg); color: var(--c-code-text);
    padding: 16px 20px; border-radius: var(--c-radius-sm);
    overflow-x: auto; line-height: 1.6; margin: 1em 0;
    font-family: var(--c-font-mono); font-size: .85rem;
}
.markdown code {
    font-family: var(--c-font-mono); font-size: .85em;
    background: var(--c-surface-2); color: var(--c-accent);
    padding: 2px 6px; border-radius: 4px;
}
.markdown pre code { background: none; color: inherit; padding: 0; }
.markdown table { border-collapse: collapse; display: block; overflow-x: auto; max-width: 100%; margin: 1em 0; }
.markdown th, .markdown td { border: 1px solid var(--c-border); padding: 8px 14px; text-align: left; }
.markdown th { background: var(--c-surface-2); font-weight: 600; font-size: .85rem; }
.markdown tr:nth-child(even) { background: var(--c-surface-2); }
.markdown img { max-width: 100%; border-radius: var(--c-radius-sm); }
.markdown a { color: var(--c-accent); }

/* === Tabs / filters === */
.tabs { display: flex; gap: 4px; margin-bottom: 20px; flex-wrap: wrap; }
.tabs a {
    padding: 6px 14px; border-radius: var(--c-radius-sm);
    font-size: .85rem; font-weight: 500; color: var(--c-text-muted);
    background: var(--c-surface); border: 1px solid var(--c-border);
    text-decoration: none; transition: all .15s;
}
.tabs a:hover { background: var(--c-surface-2); text-decoration: none; }
.tabs a.is-active { background: var(--c-accent); color: var(--c-accent-text); border-color: var(--c-accent); }

/* === Grid === */
.grid { display: grid; gap: 16px; }
.grid--2 { grid-template-columns: repeat(2, 1fr); }
.grid--3 { grid-template-columns: repeat(3, 1fr); }

/* === Section === */
.section { margin-bottom: 32px; }
.section__title { font-size: 1.1rem; font-weight: 600; margin-bottom: 12px; padding-bottom: 8px; border-bottom: 1px solid var(--c-border); }

/* === Responsive === */
@media (max-width: 768px) {
    .career-header { align-items: flex-start; flex-wrap: wrap; gap: 8px 12px; height: auto; min-height: 60px; padding: 10px 16px; }
    .career-header__nav { flex-basis: 100%; order: 3; overflow-x: auto; }
    .career-header__link { white-space: nowrap; }
    .career-header__account { display: none; }
    .career-shell__header-inner { padding: 0 16px; gap: 12px; }
    .career-shell__nav { overflow-x: auto; -webkit-overflow-scrolling: touch; }
    .career-shell__nav a { white-space: nowrap; }
    .career-shell__main { padding: 24px 16px 48px; }
    .grid--2, .grid--3 { grid-template-columns: 1fr; }
    .career-shell__title { font-size: 1.25rem; }
}
@media (max-width: 480px) {
    .career-shell__brand span { display: none; }
    .career-shell__card { padding: 16px; }
}
