/* Shared visual contract. Loaded after the legacy page skins so every route
   uses the same tokens; page-specific layouts and application states stay local. */
:root {
    --ui-canvas: #f5f7fa;
    --ui-surface: #ffffff;
    --ui-ink: #202d3d;
    --ui-muted: #617084;
    --ui-line: #dce3ec;
    --ui-accent: #2865ad;
    --ui-accent-dark: #1d4e87;
    --ui-tint: #eaf1fa;
    --ui-radius: 12px;
    --ui-control-radius: 8px;
    --ui-width: 1120px;
    --ui-gutter: clamp(20px, 3vw, 40px);
    --ui-font: "Avenir Next", "PingFang SC", "Noto Sans SC", "Microsoft YaHei", sans-serif;
    --ui-shadow: 0 8px 28px rgb(32 57 88 / 5%);
    --palette-canvas: var(--ui-canvas);
    --palette-surface: var(--ui-surface) !important;
    --palette-surface-strong: var(--ui-surface) !important;
    --palette-ink: var(--ui-ink);
    --palette-muted: var(--ui-muted);
    --palette-faint: var(--ui-muted);
    --palette-line: var(--ui-line);
    --palette-line-strong: #bbc9db;
    --palette-walnut: var(--ui-accent-dark);
    --palette-earth: var(--ui-accent);
    --palette-sand-soft: var(--ui-tint) !important;
    --palette-earth-soft: var(--ui-tint);
    --palette-font-sans: var(--ui-font);
    --paper: var(--ui-canvas);
    --ink: var(--ui-ink);
    --muted: var(--ui-muted);
    --accent: var(--ui-accent);
    --line: var(--ui-line);
    --blog-paper: var(--ui-canvas);
    --blog-ink: var(--ui-ink);
    --blog-muted: var(--ui-muted);
    --blog-line: var(--ui-line);
    --blog-gutter: var(--ui-gutter);
    --blog-max-width: var(--ui-width);
    --bg-color: var(--ui-canvas) !important;
    --text-color: var(--ui-ink) !important;
    --site-dark-line: var(--ui-line);
    --site-focus-ring: rgb(40 101 173 / 16%);
    --public-nav-height: 64px;
    --nav-height: 64px;
    --public-nav-paper: var(--ui-surface);
    --public-nav-panel: var(--ui-surface);
    --public-nav-ink: var(--ui-ink);
    --public-nav-line: var(--ui-line);
    --public-nav-gutter: max(var(--ui-gutter), calc((100vw - var(--ui-width)) / 2));
}

html { background: var(--ui-canvas) !important; scroll-padding-top: 104px; }
body, body.dark-mode, body.site-chrome-dark, body[data-navbar="full"],
body.admin-page.admin-page, body.editor-page {
    color: var(--ui-ink) !important;
    background: var(--ui-canvas) !important;
    font-family: var(--ui-font) !important;
    font-weight: 400 !important;
    text-rendering: optimizeLegibility;
}
button, input, select, textarea { font-family: inherit; }
button, a, input, select, textarea { -webkit-tap-highlight-color: transparent; }
button, a { touch-action: manipulation; }
::selection { color: var(--ui-accent-dark); background: #d8e7fa; }
:is(a, button, input, textarea, select, summary, [tabindex]):focus-visible {
    outline: 2px solid var(--ui-accent) !important;
    outline-offset: 4px !important;
}
.skip-link {
    position: fixed; top: 12px; left: 20px; z-index: 1600;
    padding: 12px 20px; border-radius: var(--ui-control-radius);
    background: var(--ui-ink); color: white; transform: translateY(-180%);
}
.skip-link:focus { transform: translateY(0); }

/* A single navigation bar, aligned with the content instead of the viewport. */
.landing-nav, .landing-nav.is-scrolled {
    background: var(--ui-surface) !important;
    border-bottom: 1px solid #e7eaee !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    font-family: var(--ui-font) !important;
}
.landing-brand, .landing-brand:hover { font-size: 18px !important; font-weight: 600 !important; }
.landing-nav-links a, .landing-nav-links a:hover, .landing-nav-links a:visited {
    font-size: 14px !important; font-weight: 450 !important;
}
.landing-nav-links a::after { height: 1px !important; bottom: 3px !important; }
@media (min-width: 901px) {
    .landing-nav-links { gap: clamp(20px, 2.2vw, 32px) !important; }
}

/* Page heading: eyebrow, title and description share one vertical rhythm. */
.ui-directory-page > .content-section {
    min-height: 0 !important; flex: 1;
    padding: calc(var(--public-nav-height) + 52px) var(--ui-gutter) 80px !important;
}
.ui-directory-page > .content-section > .container {
    width: 100% !important; max-width: var(--ui-width) !important; margin-inline: auto;
}
.ui-directory-page .page-header {
    display: flex !important; align-items: flex-end !important;
    justify-content: space-between !important; flex-wrap: wrap; gap: 20px;
    max-width: none !important; min-height: 0 !important;
    margin: 0 0 36px !important; padding: 0 !important; border: 0 !important;
}
.ui-page-heading { min-width: 0; }
.ui-eyebrow, .blog-hero-copy > .ui-eyebrow {
    margin: 0 0 12px; color: var(--ui-accent);
    font-size: 11px; line-height: 1.5; font-weight: 650; letter-spacing: .14em;
}
.ui-directory-page .page-title, .blog-title,
.ui-booking-page .page-title {
    margin: 0 0 12px !important; color: var(--ui-ink) !important;
    font-size: clamp(32px, 3.5vw, 44px) !important;
    font-weight: 700 !important; line-height: 1.25 !important;
    letter-spacing: -.045em !important; text-wrap: balance;
}
.ui-directory-page .page-intro, .ui-directory-page .page-subtitle,
.blog-intro, .ui-booking-page .page-subtitle {
    max-width: 62ch !important; margin: 0 !important;
    color: var(--ui-muted) !important; font-size: 15px !important;
    font-weight: 400 !important; line-height: 1.85 !important;
    text-wrap: pretty;
}
.ui-directory-page .directory-count, .ui-directory-page .archive-meta {
    align-self: flex-end; padding: 8px 12px !important;
    border: 1px solid var(--ui-line); border-radius: 6px;
    background: var(--ui-surface); font-size: 12px !important;
    font-weight: 500 !important; letter-spacing: 0 !important;
}
.ui-directory-page .directory-count strong { font-size: 17px; font-variant-numeric: tabular-nums; }

/* Reading and directory surfaces. Rows stay flat inside one quiet container. */
.ui-tools-page .tool-directory, .ui-files-page #filesContainer,
.ui-links-page .links-grid {
    overflow: hidden; border: 1px solid var(--ui-line) !important;
    border-radius: var(--ui-radius) !important; background: var(--ui-surface) !important;
    box-shadow: var(--ui-shadow);
}
.ui-tools-page .directory-heading {
    min-height: 52px; padding: 14px 24px; background: #f0f4f9;
    font-size: 12px; letter-spacing: 0;
}
.ui-tools-page .tool-item { background: transparent !important; }
.ui-tools-page .tool-item:last-child { border-bottom: 0; }
.ui-tools-page .tool-entry, .ui-tools-page .tool-item:nth-child(even) .tool-entry {
    min-height: 108px !important; padding: 22px 24px !important; gap: 18px;
}
.ui-tools-page .tool-entry:hover { background: var(--ui-tint) !important; }
.ui-tools-page .tool-title { font-size: 17px; font-weight: 650; }
.ui-tools-page .tool-description { font-size: 14px; }
.ui-tools-page .tool-thumbnail { border-radius: 10px !important; }
.ui-files-page .section-shell { padding: 0; }
.ui-files-page .index-toolbar { margin-bottom: 20px; padding: 16px 0; }
.ui-files-page .file-tree { margin-top: 0; }
.ui-files-page .tree-table-header { padding-block: 16px; background: #f0f4f9 !important; }
.ui-files-page .tree-row { min-height: 72px; }
.ui-files-page .tree-row:last-child { border-bottom: 0; }
.ui-files-page .index-state { padding: 56px 24px; }
.ui-links-page .directory-section { padding: 0 0 48px; }
.ui-links-page .section-heading { margin-bottom: 22px; }
.ui-links-page .section-heading h2, .ui-links-page .exchange-copy h2 {
    font-size: 24px; font-weight: 650; letter-spacing: -.03em;
}
.ui-links-page .section-kicker { display: none; }
.ui-links-page .section-index { display: none; }
.ui-links-page .links-grid { column-gap: 0; }
.ui-links-page .link-card { min-height: 112px; padding: 24px !important; }
.ui-links-page .link-card:nth-child(odd) { border-right: 1px solid var(--ui-line); }
.ui-links-page .link-card::before { inset: 0; }
.ui-links-page .link-avatar, .ui-links-page .link-avatar img { border-radius: 12px !important; }
.ui-links-page .exchange-section { padding-top: 36px; gap: 56px; }
.ui-links-page .site-details { padding: 0 20px; background: var(--ui-surface) !important; border-radius: var(--ui-radius) !important; }

.blog-hero-stage { padding: 52px 0 32px; }
.blog-archive { margin-top: 0; padding: 6px 0 44px; background: transparent; border: 0; border-radius: 0; box-shadow: none; }
.blog-index-page .post-item { padding: 24px 0; }
.blog-index-page .post-copy { gap: 10px 16px; }
.blog-index-page .post-title { font-size: 20px; font-weight: 600; }
.blog-index-page .post-tag { color: var(--ui-accent); }
.category-nav-item { font-size: 14px; font-weight: 550; }
.blog-reference-footer { margin-top: 48px; }

/* Shared controls, limited to application forms and named action components. */
.button, .btn, .state-action, .exchange-actions button,
.about-prototype-resume-submit, .date-nav-btn {
    border-radius: var(--ui-control-radius) !important;
    transition: background-color 180ms ease, border-color 180ms ease, transform 180ms ease;
}
.button, .btn, .state-action, .exchange-actions button { min-height: 44px; padding: 10px 20px; font-size: 14px; font-weight: 550; }
.button:active, .btn:active, .state-action:active, .exchange-actions button:active { transform: translateY(1px); }
.button-primary, .btn-primary, .ui-booking-page #submitBtn,
.ui-links-page .exchange-actions .apply-btn {
    background: var(--ui-accent) !important; border-color: var(--ui-accent) !important; color: #fff !important;
}
.button-primary:hover, .btn-primary:hover, .ui-booking-page #submitBtn:hover { background: var(--ui-accent-dark) !important; }
body:not(.editor-page) :is(.form-group, .form-row, .resume-form, .about-prototype-resume-fields) :is(input, textarea, select) {
    border: 1px solid #cbd6e4 !important; border-radius: var(--ui-control-radius) !important;
    background: var(--ui-surface) !important; color: var(--ui-ink) !important;
    font-size: 15px; min-height: 44px; padding: 10px 12px;
    transition: border-color 180ms ease, box-shadow 180ms ease;
}
body:not(.editor-page) :is(.form-group, .form-row, .resume-form) :is(input, textarea, select):focus {
    border-color: var(--ui-accent) !important; box-shadow: 0 0 0 3px rgb(40 101 173 / 10%) !important;
}
:is(input, textarea)::placeholder { color: #7b889a; opacity: 1; }
.modal, .modal-content, .external-link-modal-content { border-radius: 16px !important; box-shadow: 0 24px 80px rgb(32 57 88 / 18%) !important; }

/* Booking calendars retain their state colors and independent scrolling. */
.ui-reserve-page .legend { justify-content: flex-start; gap: 24px; padding: 16px 20px; margin-bottom: 24px; background: var(--ui-surface) !important; border-radius: var(--ui-control-radius) !important; }
.ui-reserve-page .legend-color { width: 12px; height: 12px; border-radius: 4px; }
.ui-reserve-page .calendar-empty, .ui-reserve-page .calendar-week {
    overflow: hidden; border-radius: var(--ui-radius) !important; background: var(--ui-surface) !important;
}
.ui-reserve-page .empty-calendar-heading { padding: 20px 24px; background: #eef3fa !important; }
.ui-reserve-page .empty-calendar-day { padding: 16px 10px; }
.ui-reserve-page .empty-calendar-slot { padding: 12px 4px; background: var(--ui-canvas) !important; font-size: 11px; }
.ui-reserve-page .empty-calendar-note { padding: 18px 24px; }
.ui-booking-page > .page { width: min(var(--ui-width), calc(100% - 2 * var(--ui-gutter))) !important; max-width: none !important; margin: 0 auto; padding: calc(var(--public-nav-height) + 52px) 0 64px !important; }
.ui-booking-page .page-header { margin-bottom: 36px; max-width: none; }
.ui-booking-page .calendar-wrap { gap: 24px; grid-template-columns: minmax(0, 1fr) 320px; }
.ui-booking-page .calendar, .ui-booking-page .aside { padding: 20px; border: 1px solid var(--ui-line) !important; border-radius: var(--ui-radius) !important; background: var(--ui-surface) !important; }
.ui-booking-page .aside h3 { padding: 0 0 16px; background: transparent !important; font-size: 17px; }
.ui-booking-page .aside label { color: var(--ui-muted); font-size: 13px; }
.ui-booking-page .slot { border-radius: 6px !important; }

/* Existing standalone biography and readers use the same quiet surfaces. */
body.about-body .about-page { width: min(var(--ui-width), calc(100% - 2 * var(--ui-gutter))) !important; padding: 0 !important; }
.about-prototype-identity { grid-template-columns: 220px minmax(0, 1fr) 300px; gap: 32px; }
.about-prototype-photo { width: 220px; height: 260px; border-radius: var(--ui-radius); }
.about-prototype-resume { background: var(--ui-surface) !important; border-radius: var(--ui-radius); padding: 24px; }
.about-prototype .about-prototype-summary { font-size: 14px !important; }
.about-prototype-grid { gap: 32px; }
.about-prototype-updates li { font-size: 13px; }
.markdown-viewer-page .markdown-content { background: var(--ui-surface) !important; }
.markdown-body { color: var(--ui-ink) !important; line-height: 1.85; }
.markdown-body pre { border-radius: var(--ui-control-radius) !important; }

/* Articles use a continuous page and a measured reading column. */
html.article-document { --ui-canvas: #fff; --ui-ink: #2b3038; --ui-muted: #737d89; --ui-line: #e5e8ec; }
.blog-viewer-page .container {
    width: min(720px, calc(100% - 2 * var(--ui-gutter)));
    margin: calc(var(--public-nav-height) + 48px) auto 64px; padding: 0;
    display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; align-items: start;
}
.blog-viewer-page .main-content { grid-column: 1; width: 100%; min-width: 0; margin: 0; }
.blog-viewer-page :is(.main-content, .article-header, .article-content, .comments-section) {
    border-radius: 0 !important; background: transparent !important; box-shadow: none;
}
.blog-viewer-page .article-header { padding: 0 0 24px; margin-bottom: 30px; border-bottom: 1px solid var(--ui-line); }
.blog-viewer-page .article-title {
    margin: 0 0 18px; font-size: 32px; line-height: 1.45;
    font-weight: 600 !important; letter-spacing: -.015em; text-wrap: balance;
}
.blog-viewer-page .article-meta { margin: 0; gap: 6px 16px; font-size: 12px; line-height: 1.8; font-weight: 400; }
.blog-viewer-page .markdown-body { font-size: 17px; line-height: 1.9; font-weight: 400; }
.blog-viewer-page .markdown-body :where(p, li, td, blockquote) { font-weight: 400; }
.blog-viewer-page .markdown-body p { margin-bottom: 22px; }
.blog-viewer-page .markdown-body :where(h1, h2, h3, h4, h5, h6) { font-weight: 600 !important; line-height: 1.5; }
.blog-viewer-page .markdown-body strong { font-weight: 600; }
.blog-viewer-page .comments-section { margin-top: 56px; border-top-color: var(--ui-line); }
.blog-viewer-page .comments-title { font-size: 14px; letter-spacing: 0; }
.blog-viewer-page .toc-title { font-size: 13px; font-weight: 600; padding-bottom: 12px; margin-bottom: 12px; border-bottom-style: solid; }
.blog-viewer-page .toc-sidebar { font-size: 12px; line-height: 1.75; color: var(--ui-muted); }
.blog-viewer-page .toc-item a { color: var(--ui-muted); padding-block: 5px; font-weight: 400 !important; }
.blog-viewer-page .toc-item a:is(:hover, .active) { color: var(--ui-accent); }
.blog-viewer-page .toc-item a.active { font-weight: 500 !important; }
@media (min-width: 1201px) {
    .blog-viewer-page.has-article-toc .container { width: min(1000px, calc(100% - 2 * var(--ui-gutter))); grid-template-columns: minmax(0, 720px) minmax(0, 232px); gap: 48px; }
    .blog-viewer-page .toc-sidebar { grid-column: 2; grid-row: 1; position: sticky; top: 96px; right: auto; width: 100%; max-height: calc(100dvh - 128px); margin: 0; }
}
@media (max-width: 1200px) {
    .blog-viewer-page .main-content { display: contents; }
    .blog-viewer-page .article-header { grid-column: 1; grid-row: 1; }
    .blog-viewer-page.has-article-toc .article-header { margin-bottom: 0; }
    .blog-viewer-page .article-content { grid-column: 1; grid-row: 4; }
    .blog-viewer-page .comments-section { grid-column: 1; grid-row: 5; }
    .blog-viewer-page .toc-toggle-btn {
        grid-column: 1; grid-row: 2; display: grid; grid-template-columns: 18px minmax(0, 1fr) 18px; align-items: center; gap: 10px;
        width: 100%; min-height: 48px; padding: 12px 0; margin: 0 0 28px;
        border: 0; border-bottom: 1px solid var(--ui-line); border-radius: 0 !important;
        background: transparent; color: var(--ui-muted); font-size: 13px; font-weight: 400 !important; text-align: left;
    }
    .blog-viewer-page .toc-toggle-btn svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
    .blog-viewer-page .toc-chevron { transition: transform 180ms ease; }
    .blog-viewer-page .toc-toggle-btn[aria-expanded="true"] { margin-bottom: 8px; border-bottom-color: transparent; color: var(--ui-ink); }
    .blog-viewer-page .toc-toggle-btn[aria-expanded="true"] .toc-chevron { transform: rotate(180deg); }
    .blog-viewer-page .toc-sidebar { grid-column: 1; grid-row: 3; margin: 0; transition: none; font-size: 13px; }
    .blog-viewer-page .toc-title { display: none; }
    .blog-viewer-page .toc-item a { padding-block: 7px; }
    .blog-viewer-page .toc-sidebar.expanded { max-height: 40dvh; padding: 0 0 16px; margin: 0 0 28px; overflow-y: auto; overscroll-behavior: contain; background: transparent; border: 0; border-bottom: 1px solid var(--ui-line); border-radius: 0; }
}
body.pdf-viewer-page .pdf-toolbar { border-bottom: 1px solid var(--ui-line); background: var(--ui-surface) !important; }
.footer, .landing-footer, .blog-reference-footer { color: var(--ui-muted); font-size: 12px; font-weight: 400; }
body[data-navbar="full"] > .footer {
    background: var(--ui-surface) !important; border-top: 1px solid var(--ui-line) !important;
    color: var(--ui-muted) !important;
}
body[data-navbar="full"] > .footer :is(a, span) { color: var(--ui-muted) !important; font-weight: 400 !important; }
body[data-navbar="full"] > .footer img:not(.police-link img) { filter: grayscale(1); opacity: .75; }
body[data-navbar="full"] > .footer { margin-top: auto; padding-block: 24px; flex-wrap: wrap; }
.site-footer-inner { width: 100%; max-width: var(--ui-width); margin: 0 auto; }
.site-footer-main { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; font-size: 12px; }
.site-footer-main nav { display: flex; flex-wrap: wrap; gap: 20px; }
.site-footer-main a, .site-footer-legal a { overflow-wrap: anywhere; }
.site-footer-main a, .site-footer-legal a { text-decoration: none; color: inherit; }
.site-footer-main a:hover, .site-footer-legal a:hover { color: var(--ui-accent) !important; }
.site-footer-legal { display: flex; flex-wrap: wrap; gap: 6px 20px; margin-top: 12px; font-size: 10px; line-height: 1.7; color: #8a96a6; }
body[data-navbar="full"] > .footer .site-footer-legal a { color: #8a96a6 !important; }
.footer-divider { color: #a9b6c8; }
.admin-nav [data-admin-nav="homepage"]::before { -webkit-mask-image: url('/static/images/ui-icons/user.svg') !important; mask-image: url('/static/images/ui-icons/user.svg') !important; }

/* Admin uses the same controls and surfaces with its existing navigation rail. */
body.admin-page.admin-page:not(.admin-login-page) { background: var(--ui-canvas) !important; color: var(--ui-ink) !important; }
body.admin-page.admin-page:not(.admin-login-page) .admin-topbar { background: #24364d !important; background-image: none !important; }
body.admin-page.admin-page:not(.admin-login-page) .admin-brand-mark { border-color: #7188a8 !important; }
body.admin-page.admin-page:not(.admin-login-page) .admin-nav a { min-height: 48px !important; font-size: 14px !important; font-weight: 500 !important; border-radius: var(--ui-control-radius) !important; }
body.admin-page.admin-page:not(.admin-login-page) .admin-nav a.is-current { background: #e4eefb !important; color: var(--ui-accent-dark) !important; }
body.admin-page.admin-page .admin-workspace-bar { background: var(--ui-surface) !important; border-bottom-color: var(--ui-line) !important; }
body.admin-page.admin-page :is(.page-title, .dashboard-prototype-topline h1) { font-size: 30px !important; line-height: 1.3 !important; font-weight: 650 !important; letter-spacing: -.035em !important; }
body.admin-page.admin-page :is(.workspace-header, .page-header) .page-intro { font-size: 14px !important; font-weight: 400 !important; color: var(--ui-muted) !important; }
body.admin-page.admin-page :is(.workspace-panel, .form-card, .table-shell, .dashboard-prototype-panel, .account-info-card, .account-password-card) { border-color: var(--ui-line) !important; border-radius: var(--ui-radius) !important; background: var(--ui-surface) !important; box-shadow: var(--ui-shadow) !important; }
body.admin-page.admin-page :is(.workspace-panel-head, .dashboard-prototype-panel > header, thead) { background: #f0f4f9 !important; }
body.admin-page.admin-page :is(th, td) { border-color: var(--ui-line) !important; font-size: 13px !important; }
body.admin-page.admin-page .btn { border-radius: var(--ui-control-radius) !important; }
body.admin-page.admin-page .login-container { background: var(--ui-surface) !important; border: 1px solid var(--ui-line) !important; border-radius: 20px !important; box-shadow: var(--ui-shadow) !important; }
body.admin-page.admin-page .login-container input { background: var(--ui-canvas) !important; border-radius: var(--ui-control-radius) !important; }
body.admin-page.admin-page .login-btn { border-radius: var(--ui-control-radius) !important; }

@media (max-width: 1100px) {
    .about-prototype-identity { grid-template-columns: 180px minmax(0, 1fr); }
    .about-prototype-photo { width: 180px; height: 220px; }
    .about-prototype-resume { grid-column: 1 / -1; }
}
@media (max-width: 900px) {
    .ui-booking-page .calendar-wrap { grid-template-columns: 1fr; }
    .ui-booking-page .aside { position: static; }
}
@media (max-width: 820px) {
    :root { --public-nav-height: 60px; --nav-height: 60px; }
    .landing-nav .landing-nav-links { background: var(--ui-surface) !important; }
    .landing-nav .landing-nav-links a { font-size: 15px !important; font-weight: 450 !important; }
}
@media (max-width: 700px) {
    html { scroll-padding-top: 92px; }
    .ui-directory-page > .content-section { padding: calc(var(--public-nav-height) + 32px) var(--ui-gutter) 48px !important; }
    .ui-directory-page .page-header { align-items: flex-start !important; gap: 18px; margin-bottom: 28px !important; }
    .ui-directory-page .page-title, .blog-title, .ui-booking-page .page-title { font-size: 32px !important; }
    .site-footer-main { flex-direction: column; gap: 10px; }
    .ui-directory-page .page-intro, .ui-directory-page .page-subtitle, .blog-intro { font-size: 14px !important; }
    .ui-directory-page .directory-count, .ui-directory-page .archive-meta { align-self: flex-start; }
    .ui-eyebrow { font-size: 10px; margin-bottom: 10px; }
    .ui-tools-page .directory-heading { padding-inline: 16px; }
    .ui-tools-page .tool-entry, .ui-tools-page .tool-item:nth-child(even) .tool-entry { padding: 20px 16px !important; gap: 12px; }
    .ui-tools-page .tool-entry { grid-template-columns: 22px 46px minmax(0, 1fr) 16px; }
    .ui-links-page .link-card { padding: 20px 16px !important; }
    .ui-links-page .link-card:nth-child(odd) { border-right: 0; }
    .ui-links-page .exchange-section { gap: 28px; }
    .ui-links-page .site-details { padding-inline: 16px; }
    .ui-files-page .index-toolbar { gap: 12px; }
    .blog-hero-stage { padding: 32px 0 24px; }
    .blog-archive { padding-inline: 0; margin-top: 0; }
    .blog-index-page .post-item { padding-block: 20px; }
    .blog-index-page .post-title { font-size: 18px; }
    .blog-viewer-page .container { margin-top: calc(var(--public-nav-height) + 32px); margin-bottom: 48px; }
    .blog-viewer-page .article-title { font-size: 26px; line-height: 1.5; margin-bottom: 14px; }
    .blog-viewer-page .article-header { padding-bottom: 20px; margin-bottom: 24px; }
    .blog-viewer-page .markdown-body { font-size: 16px; line-height: 1.9; }
    .ui-reserve-page .legend { gap: 14px 20px; padding: 16px; }
    .ui-reserve-page .empty-calendar-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ui-reserve-page .empty-calendar-day { border-bottom: 1px solid var(--ui-line); }
    .ui-reserve-page .empty-calendar-day:nth-child(even) { border-right: 0; }
    .ui-reserve-page .empty-calendar-day:last-child { grid-column: 1 / -1; border-bottom: 0; }
    .ui-booking-page > .page { padding-top: calc(var(--public-nav-height) + 32px) !important; }
    .ui-booking-page .calendar, .ui-booking-page .aside { padding: 16px; }
    .about-prototype-identity { grid-template-columns: 1fr; }
    .about-prototype-photo { width: 160px; height: 190px; }
    .about-prototype-grid { grid-template-columns: 1fr; }
    .about-prototype-resume { grid-column: auto; }
    body.admin-page.admin-page :is(.page-title, .dashboard-prototype-topline h1) { font-size: 26px !important; }
    body.admin-page.admin-page .login-container { border-radius: 16px !important; }
}
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto !important; }
    *, *::before, *::after { animation: none !important; transition: none !important; }
}
