@font-face {
    font-family: "JetBrains Mono";
    src: url("/fonts/jetbrains-mono/JetBrainsMono-Regular.woff2") format("woff2");
    font-style: normal;
    font-weight: 100 699;
    font-display: swap;
}

@font-face {
    font-family: "JetBrains Mono";
    src: url("/fonts/jetbrains-mono/JetBrainsMono-Bold.woff2") format("woff2");
    font-style: normal;
    font-weight: 700 900;
    font-display: swap;
}

html[data-theme="neovim"] {
    color-scheme: dark;
    --bg: #16161e;
    --surface: #1a1b26;
    --surface-strong: #24283b;
    --surface-muted: #1f2335;
    --text: #c0caf5;
    --muted: #7f849c;
    --border: #3b4261;
    --border-strong: #565f89;
    --accent: #7aa2f7;
    --accent-strong: #bb9af7;
    --accent-soft: rgba(122, 162, 247, 0.13);
    --accent-ring: rgba(122, 162, 247, 0.42);
    --danger: #f7768e;
    --danger-bg: rgba(247, 118, 142, 0.12);
    --success: #9ece6a;
    --success-bg: rgba(158, 206, 106, 0.12);
    --warning: #e0af68;
    --warning-bg: rgba(224, 175, 104, 0.12);
    --syntax-cyan: #7dcfff;
    --syntax-blue: #7aa2f7;
    --syntax-purple: #bb9af7;
    --syntax-green: #9ece6a;
    --syntax-orange: #ff9e64;
    --syntax-red: #f7768e;
    --syntax-comment: #737aa2;
    --shadow: none;
    --shadow-soft: none;
    --radius: 3px;
    --radius-sm: 2px;
}

html[data-theme="neovim"] {
    background: var(--bg);
    scrollbar-color: var(--border-strong) var(--surface);
}

html[data-theme="neovim"] body {
    background: var(--bg);
    color: var(--text);
    font-family: "JetBrains Mono", "SFMono-Regular", Consolas, "Liberation Mono", monospace;
    font-size: 0.94rem;
    line-height: 1.6;
    text-rendering: geometricPrecision;
}

html[data-theme="neovim"] ::selection {
    background: #364a82;
    color: #ffffff;
}

html[data-theme="neovim"] :focus-visible {
    outline: 2px solid var(--syntax-cyan);
    outline-offset: 2px;
}

html[data-theme="neovim"] code {
    border-color: var(--border);
    border-radius: 2px;
    background: var(--surface-strong);
    color: var(--syntax-green);
}

html[data-theme="neovim"] .site-header {
    background: #181923;
    border-bottom: 1px solid var(--border);
    box-shadow: none;
    backdrop-filter: none;
}

html[data-theme="neovim"] .brand {
    color: var(--syntax-green);
    font-weight: 800;
    letter-spacing: -0.035em;
}

html[data-theme="neovim"] .brand::before {
    content: ": ";
    color: var(--syntax-cyan);
}

html[data-theme="neovim"] .site-nav {
    gap: 0;
    border: 1px solid var(--border);
    background: var(--surface);
}

html[data-theme="neovim"] .site-nav a {
    min-height: 2.35rem;
    padding: 0.52rem 0.72rem;
    border-right: 1px solid var(--border);
    border-radius: 0;
    color: var(--syntax-comment);
    font-size: 0.82rem;
    font-weight: 500;
    transition: none;
}

html[data-theme="neovim"] .site-nav a:last-child {
    border-right: 0;
}

html[data-theme="neovim"] .site-nav a::before {
    content: "·";
    margin-right: 0.4rem;
    color: var(--border-strong);
}

html[data-theme="neovim"] .site-nav a[aria-current="page"],
html[data-theme="neovim"] .site-nav a:hover,
html[data-theme="neovim"] .site-nav a:focus-visible {
    background: var(--surface-strong);
    color: var(--text);
    box-shadow: inset 0 -2px var(--syntax-blue);
}

html[data-theme="neovim"] .site-nav a[aria-current="page"]::before {
    content: "●";
    color: var(--syntax-green);
}

html[data-theme="neovim"] .site-nav a:active {
    transform: none;
}

html[data-theme="neovim"] .auth-strip {
    color: var(--syntax-comment);
}

html[data-theme="neovim"] .auth-email::before {
    content: "user=";
    color: var(--syntax-purple);
}

html[data-theme="neovim"] .page-shell {
    width: min(1180px, 100%);
}

html[data-theme="neovim"] .page-heading,
html[data-theme="neovim"] .page-header,
html[data-theme="neovim"] .hero {
    padding-left: 0.9rem;
    border-left: 3px solid var(--syntax-purple);
}

html[data-theme="neovim"] .hero.card {
    padding-left: 1.25rem;
}

html[data-theme="neovim"] .page-heading h1,
html[data-theme="neovim"] .page-header h1,
html[data-theme="neovim"] .hero h1 {
    color: var(--syntax-blue);
    font-size: clamp(1.75rem, 6vw, 3rem);
    line-height: 1.15;
    letter-spacing: -0.045em;
}

html[data-theme="neovim"] .page-heading h1::before,
html[data-theme="neovim"] .page-header h1::before,
html[data-theme="neovim"] .hero h1::before {
    content: "# ";
    color: var(--syntax-purple);
}

html[data-theme="neovim"] .page-heading p,
html[data-theme="neovim"] .page-header p,
html[data-theme="neovim"] .hero p {
    color: var(--syntax-comment);
}

html[data-theme="neovim"] .card {
    border-color: var(--border);
    border-radius: var(--radius);
    background: var(--surface);
    box-shadow: none;
}

html[data-theme="neovim"] .link-card {
    transition: none;
}

html[data-theme="neovim"] .link-card:hover,
html[data-theme="neovim"] .link-card:focus-visible {
    transform: none;
    border-color: var(--syntax-blue);
    background: var(--surface-muted);
    box-shadow: inset 3px 0 var(--syntax-blue);
}

html[data-theme="neovim"] .link-card h2,
html[data-theme="neovim"] .progress-card h2,
html[data-theme="neovim"] .log-group h2,
html[data-theme="neovim"] .empty-state h2,
html[data-theme="neovim"] .summary-box h2,
html[data-theme="neovim"] .section-heading-row h2,
html[data-theme="neovim"] .dashboard-goal-copy h2,
html[data-theme="neovim"] .dashboard-row-main h3,
html[data-theme="neovim"] .category-section-heading h2,
html[data-theme="neovim"] .progress-row-title h2,
html[data-theme="neovim"] .workout-plan-copy-card h2,
html[data-theme="neovim"] .workout-plan-editor h2,
html[data-theme="neovim"] .workout-plan-impact h2,
html[data-theme="neovim"] .workout-plan-enact-list h2,
html[data-theme="neovim"] .workout-plan-enact-item h3 {
    color: var(--syntax-purple);
    letter-spacing: -0.025em;
}

html[data-theme="neovim"] .card-icon {
    width: auto;
    height: auto;
    margin-bottom: 0.75rem;
    padding: 0.2rem 0.45rem;
    border-color: var(--border);
    border-radius: 2px;
    background: var(--surface-strong);
    color: var(--syntax-cyan);
}

html[data-theme="neovim"] .progress-card.is-inactive {
    background: rgba(26, 27, 38, 0.68);
}

html[data-theme="neovim"] .summary-box,
html[data-theme="neovim"] .estimate-picker {
    border-color: var(--border);
    border-radius: 2px;
    background: var(--surface-strong);
}

html[data-theme="neovim"] .progress-bar {
    height: 0.65rem;
    border-color: var(--border);
    border-radius: 0;
    background: #101117;
}

html[data-theme="neovim"] .progress-bar span {
    border-radius: 0;
    background: var(--syntax-blue);
}

html[data-theme="neovim"] .button,
html[data-theme="neovim"] button.button,
html[data-theme="neovim"] .form-card > button[type="submit"] {
    border-color: var(--syntax-blue);
    border-radius: 2px;
    background: var(--syntax-blue);
    color: #101117;
    font-weight: 800;
    box-shadow: none;
    transition: none;
}

html[data-theme="neovim"] .button:hover,
html[data-theme="neovim"] button.button:hover,
html[data-theme="neovim"] .form-card > button[type="submit"]:hover,
html[data-theme="neovim"] .button:focus-visible,
html[data-theme="neovim"] button.button:focus-visible,
html[data-theme="neovim"] .form-card > button[type="submit"]:focus-visible {
    border-color: var(--syntax-cyan);
    background: var(--syntax-cyan);
    color: #101117;
    box-shadow: none;
}

html[data-theme="neovim"] .button:active,
html[data-theme="neovim"] button.button:active,
html[data-theme="neovim"] .form-card > button[type="submit"]:active {
    transform: none;
}

html[data-theme="neovim"] .button.secondary {
    border-color: var(--border-strong);
    background: var(--surface-strong);
    color: var(--text);
}

html[data-theme="neovim"] .button.secondary:hover,
html[data-theme="neovim"] .button.secondary:focus-visible {
    border-color: var(--syntax-purple);
    background: #2d3048;
    color: var(--syntax-purple);
}

html[data-theme="neovim"] .button.ghost,
html[data-theme="neovim"] .button.danger {
    background: transparent;
}

html[data-theme="neovim"] .button.ghost:hover,
html[data-theme="neovim"] .button.ghost:focus-visible {
    border-color: var(--border-strong);
    background: var(--surface-strong);
    color: var(--text);
}

html[data-theme="neovim"] .button.danger {
    color: var(--syntax-red);
}

html[data-theme="neovim"] .button.danger:hover,
html[data-theme="neovim"] .button.danger:focus-visible {
    border-color: var(--syntax-red);
    background: var(--danger-bg);
    color: var(--syntax-red);
}

html[data-theme="neovim"] .text-link,
html[data-theme="neovim"] .text-button,
html[data-theme="neovim"] .link-button,
html[data-theme="neovim"] .form-help a {
    color: var(--syntax-blue);
}

html[data-theme="neovim"] .text-button,
html[data-theme="neovim"] .link-button {
    border-radius: 2px;
}

html[data-theme="neovim"] .text-button:hover,
html[data-theme="neovim"] .text-button:focus-visible,
html[data-theme="neovim"] .link-button:hover,
html[data-theme="neovim"] .link-button:focus-visible {
    background: var(--accent-soft);
    color: var(--syntax-cyan);
}

html[data-theme="neovim"] .text-button.danger {
    color: var(--syntax-red);
}

html[data-theme="neovim"] .icon-action,
html[data-theme="neovim"] .log-reorder-handle,
html[data-theme="neovim"] .log-mobile-reorder button {
    border-color: var(--border);
    border-radius: 2px;
    background: var(--surface-strong);
    color: var(--syntax-comment);
    transition: none;
}

html[data-theme="neovim"] .icon-action:hover,
html[data-theme="neovim"] .icon-action:focus-visible,
html[data-theme="neovim"] .log-reorder-handle:hover,
html[data-theme="neovim"] .log-reorder-handle:focus-visible,
html[data-theme="neovim"] .log-mobile-reorder button:hover,
html[data-theme="neovim"] .log-mobile-reorder button:focus-visible {
    border-color: var(--syntax-blue);
    background: var(--accent-soft);
    color: var(--syntax-cyan);
}

html[data-theme="neovim"] label span,
html[data-theme="neovim"] legend,
html[data-theme="neovim"] .field > label {
    color: var(--syntax-cyan);
    font-weight: 700;
}

html[data-theme="neovim"] input,
html[data-theme="neovim"] select,
html[data-theme="neovim"] textarea {
    border-color: var(--border);
    border-radius: 2px;
    background: #171820;
    color: var(--text);
    box-shadow: none;
    caret-color: var(--syntax-green);
    transition: none;
}

html[data-theme="neovim"] input::placeholder,
html[data-theme="neovim"] textarea::placeholder {
    color: var(--syntax-comment);
}

html[data-theme="neovim"] input:focus,
html[data-theme="neovim"] select:focus,
html[data-theme="neovim"] textarea:focus {
    border-color: var(--syntax-blue);
    background: #1c1d29;
    box-shadow: inset 3px 0 var(--syntax-blue);
}

html[data-theme="neovim"] input[type="checkbox"] {
    accent-color: var(--syntax-blue);
}

html[data-theme="neovim"] .checkbox-card,
html[data-theme="neovim"] .muscle-credit-row {
    border-color: var(--border);
    border-radius: 2px;
    background: var(--surface-strong);
}

html[data-theme="neovim"] .muscle-credit-row.is-selected {
    border-color: var(--syntax-green);
    background: rgba(158, 206, 106, 0.07);
    box-shadow: inset 3px 0 var(--syntax-green);
}

html[data-theme="neovim"] .search-select-toggle {
    border-color: var(--border);
    border-radius: 2px;
    background: #171820;
    color: var(--syntax-comment);
    box-shadow: none;
    transition: none;
}

html[data-theme="neovim"] .search-select-toggle:hover,
html[data-theme="neovim"] .search-select-toggle:focus-visible {
    border-color: var(--syntax-blue);
    background: var(--surface-strong);
    color: var(--syntax-cyan);
}

html[data-theme="neovim"] .search-select-menu {
    border-color: var(--border);
    border-radius: 2px;
    background: var(--surface);
    box-shadow: 8px 8px 0 rgba(8, 9, 13, 0.45);
}

html[data-theme="neovim"] .search-select-option,
html[data-theme="neovim"] .search-select-empty {
    border-radius: 2px;
}

html[data-theme="neovim"] .search-select-option:hover,
html[data-theme="neovim"] .search-select-option:focus-visible,
html[data-theme="neovim"] .search-select-option.is-active {
    background: var(--surface-strong);
}

html[data-theme="neovim"] .search-select-option.is-selected {
    background: var(--accent-soft);
    color: var(--syntax-cyan);
}

html[data-theme="neovim"] .filter-bar select {
    background-color: #171820;
}

html[data-theme="neovim"] .flash,
html[data-theme="neovim"] .error-list,
html[data-theme="neovim"] .notice {
    border-radius: 2px;
    box-shadow: none;
}

html[data-theme="neovim"] .flash-success {
    border-color: var(--syntax-green);
    background: var(--success-bg);
    color: var(--syntax-green);
}

html[data-theme="neovim"] .flash-success::before {
    content: "ok: ";
    font-weight: 800;
}

html[data-theme="neovim"] .flash-error,
html[data-theme="neovim"] .error-list,
html[data-theme="neovim"] .notice-error {
    border-color: var(--syntax-red);
    background: var(--danger-bg);
    color: var(--syntax-red);
}

html[data-theme="neovim"] .flash-error::before,
html[data-theme="neovim"] .notice-error::before {
    content: "error: ";
    font-weight: 800;
}

html[data-theme="neovim"] th {
    color: var(--syntax-purple);
}

html[data-theme="neovim"] th,
html[data-theme="neovim"] td,
html[data-theme="neovim"] .responsive-table tr {
    border-color: var(--border);
}

html[data-theme="neovim"] tbody tr {
    transition: none;
}

html[data-theme="neovim"] tbody tr:hover {
    background: rgba(122, 162, 247, 0.06);
}

html[data-theme="neovim"] .responsive-table td::before {
    color: var(--syntax-purple);
}

html[data-theme="neovim"] .eyebrow,
html[data-theme="neovim"] .dashboard-row-kicker {
    color: var(--syntax-purple);
}

html[data-theme="neovim"] .muted {
    color: var(--syntax-comment);
}

html[data-theme="neovim"] .big-number,
html[data-theme="neovim"] .compact-number,
html[data-theme="neovim"] .dashboard-goal-value,
html[data-theme="neovim"] .dashboard-row-main strong,
html[data-theme="neovim"] .estimate-option-result {
    color: var(--syntax-orange);
    letter-spacing: -0.035em;
}

html[data-theme="neovim"] .big-number span,
html[data-theme="neovim"] .compact-number span,
html[data-theme="neovim"] .dashboard-goal-value span,
html[data-theme="neovim"] .dashboard-row-main strong span {
    color: var(--syntax-comment);
}

html[data-theme="neovim"] .status.success {
    color: var(--syntax-green);
}

html[data-theme="neovim"] .tag,
html[data-theme="neovim"] .status-badge {
    border-color: var(--border);
    border-radius: 2px;
    background: var(--surface-strong);
    color: var(--syntax-cyan);
}

html[data-theme="neovim"] .tag.subtle {
    color: var(--syntax-comment);
}

html[data-theme="neovim"] .status-badge.success {
    border-color: var(--syntax-green);
    background: var(--success-bg);
    color: var(--syntax-green);
}

html[data-theme="neovim"] .circular-progress {
    position: relative;
    justify-self: stretch;
    width: 100%;
    height: 0.75rem;
    margin-top: 1.65rem;
    aspect-ratio: auto;
    border: 1px solid var(--border);
    border-radius: 0;
    background: linear-gradient(
        90deg,
        var(--syntax-blue) 0 calc(var(--progress) * 1%),
        #101117 calc(var(--progress) * 1%) 100%
    );
    box-shadow: none;
}

html[data-theme="neovim"] .circular-progress span {
    position: absolute;
    right: 0;
    bottom: calc(100% + 0.3rem);
    height: auto;
    display: block;
    line-height: 1.2;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--syntax-orange);
    font-size: 0.9rem;
    letter-spacing: 0;
}

html[data-theme="neovim"] .dashboard-goal-link:hover,
html[data-theme="neovim"] .dashboard-goal-link:focus-visible,
html[data-theme="neovim"] .dashboard-progress-link:hover,
html[data-theme="neovim"] .dashboard-progress-link:focus-visible {
    background: rgba(122, 162, 247, 0.06);
}

html[data-theme="neovim"] [data-exercise-log-row].is-dragging {
    background: var(--accent-soft);
    box-shadow: inset 3px 0 var(--syntax-cyan);
}

html[data-theme="neovim"] .segmented-control {
    gap: 1px;
    background: var(--border);
    border: 1px solid var(--border);
}

html[data-theme="neovim"] .segment-button {
    border: 0;
    border-radius: 0;
    background: var(--surface);
    color: var(--text);
    transition: none;
}

html[data-theme="neovim"] .segment-button.is-active,
html[data-theme="neovim"] .segment-button:hover,
html[data-theme="neovim"] .segment-button:focus-visible {
    background: var(--syntax-blue);
    color: #101117;
}

html[data-theme="neovim"] .estimate-option {
    border-color: var(--border);
    border-radius: 2px;
    background: var(--surface);
    transition: none;
}

html[data-theme="neovim"] .estimate-option.is-active,
html[data-theme="neovim"] .estimate-option:hover,
html[data-theme="neovim"] .estimate-option:focus-visible {
    border-color: var(--syntax-blue);
    background: var(--accent-soft);
    box-shadow: inset 3px 0 var(--syntax-blue);
}

html[data-theme="neovim"] .estimate-option-main strong {
    color: var(--syntax-purple);
}

html[data-theme="neovim"] .estimate-option-main span,
html[data-theme="neovim"] .recent-log-option .estimate-option-result {
    color: var(--syntax-comment);
}

html[data-theme="neovim"] .workout-plan-projection-bar .workout-plan-current-progress {
    background: var(--syntax-blue);
}

html[data-theme="neovim"] .workout-plan-projection-bar .workout-plan-added-progress {
    background: var(--syntax-green);
}

html[data-theme="neovim"] .theme-menu summary {
    border-color: var(--border);
    border-radius: 2px;
    background: var(--surface);
    color: var(--syntax-cyan);
}

html[data-theme="neovim"] .theme-menu summary:hover,
html[data-theme="neovim"] .theme-menu summary:focus-visible,
html[data-theme="neovim"] .theme-menu[open] summary {
    border-color: var(--syntax-blue);
    background: var(--surface-strong);
    color: var(--syntax-cyan);
}

html[data-theme="neovim"] .theme-menu-current {
    color: var(--syntax-purple);
}

html[data-theme="neovim"] .theme-menu-popover {
    border-color: var(--border-strong);
    border-radius: 2px;
    background: var(--surface);
    box-shadow: 8px 8px 0 rgba(8, 9, 13, 0.55);
}

html[data-theme="neovim"] .theme-menu-heading {
    color: var(--syntax-purple);
}

html[data-theme="neovim"] .theme-menu [data-theme-choice] {
    border-radius: 2px;
}

html[data-theme="neovim"] .theme-menu [data-theme-choice]:hover,
html[data-theme="neovim"] .theme-menu [data-theme-choice]:focus-visible {
    border-color: var(--border-strong);
    background: var(--surface-strong);
}

html[data-theme="neovim"] .theme-menu [data-theme-choice][aria-pressed="true"] {
    border-color: var(--syntax-blue);
    background: var(--accent-soft);
    box-shadow: inset 3px 0 var(--syntax-blue);
}

html[data-theme="neovim"] .theme-menu [data-theme-choice] strong {
    color: var(--text);
}

html[data-theme="neovim"] .theme-menu [data-theme-choice] small {
    color: var(--syntax-comment);
}

html[data-theme="neovim"] .theme-choice-check {
    color: var(--syntax-green);
}

@media (max-width: 700px) {
    html[data-theme="neovim"] .site-header {
        gap: 0.65rem;
    }

    html[data-theme="neovim"] .site-nav {
        margin-inline: calc(-1 * max(1rem, env(safe-area-inset-left)));
        padding-inline: max(1rem, env(safe-area-inset-left));
        border-right: 0;
        border-left: 0;
        background: var(--surface);
    }

    html[data-theme="neovim"] .site-nav a:first-child {
        border-left: 1px solid var(--border);
    }

    html[data-theme="neovim"] .site-nav a:last-child {
        border-right: 1px solid var(--border);
    }

    html[data-theme="neovim"] .page-heading,
    html[data-theme="neovim"] .page-header,
    html[data-theme="neovim"] .hero {
        padding-left: 0.7rem;
    }

    html[data-theme="neovim"] .hero.card {
        padding-left: 1rem;
    }

    html[data-theme="neovim"] .theme-menu-popover {
        box-shadow: 5px 5px 0 rgba(8, 9, 13, 0.55);
    }
}

@media (prefers-reduced-motion: reduce) {
    html[data-theme="neovim"] *,
    html[data-theme="neovim"] *::before,
    html[data-theme="neovim"] *::after {
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
    }
}
