/* Shared visual refresh. Functional and print styles remain in their existing files. */
@media screen {
  :root {
    --forest: #234b3c;
    --deep: #173b2d;
    --accent: #efb27e;
    --accent-hover: #eaa269;
    --accent-soft: #fff0e4;
    --accent-ink: #8b4b25;
    --accent-line: #bd865c;
    --action: #b75032;
    --action-hover: #9e4028;
    /* Existing progress and action components use this shared highlight token. */
    --lime: var(--accent);
    --ink: #233d32;
    --muted: #637068;
    --line: #e1e6de;
    --paper: #fbfaf7;
    --radius: 22px;
    color-scheme: light;
  }
  html { scroll-behavior: smooth; scroll-padding-top: 28px; }
  body { background: var(--paper); -webkit-font-smoothing: antialiased; }
  h1, h2, h3 { font-weight: 600; letter-spacing: -.045em; }
  a { text-underline-offset: 4px; }
  button, a, input, select, summary { -webkit-tap-highlight-color: transparent; }
  :focus-visible { outline: 3px solid var(--accent-ink); outline-offset: 5px; }
  .site-header {
    max-width: 1280px; width: calc(100% - 96px); height: 84px;
    margin: 24px auto 0; padding: 0 26px; border: 1px solid var(--line);
    border-radius: 60px; background: #fff; gap: 24px;
  }
  .brand { font-size: 1.4rem; letter-spacing: -.065em; font-weight: 750; gap: 11px; }
  .brand-mark { width: 40px; height: 40px; border-radius: 50%; font-size: 1.55rem; }
  .brand-com { color: #75836e; }
  .brand small { font-size: .75rem; letter-spacing: .015em; }
  .brand small b { font-weight: 550; }
  .header-note { font-size: .875rem; }
  .external-link { border-radius: 30px; padding: 13px 20px; font-size: .875rem; font-weight: 550; }
  .header-link { background: var(--forest); border-color: var(--forest); color: white; }
  .header-link:hover { background: var(--deep); text-decoration: none; }
  .shell { max-width: 1224px; width: calc(100% - 128px); margin: 0 auto; padding: 0; }
  .page-heading { display: grid; grid-template-columns: 1.05fr 1fr; gap: 0; align-items: center; min-height: 360px; margin: 0; padding: 28px 0 26px; }
  .page-heading > div:first-child { min-width: 0; max-width: none; }
  .eyebrow { font-size: .75rem; font-weight: 600; letter-spacing: .12em; }
  .page-heading .eyebrow { color: var(--accent-ink); }
  .page-heading h1 { font-size: clamp(2.5rem, 4.35vw, 3.8rem); font-weight: 550; line-height: 1.09; letter-spacing: -.065em; white-space: pre-line; margin: 16px 0 17px; }
  .page-heading p { max-width: 435px; font-size: 1.0625rem; line-height: 1.65; }
  .hero-actions { display: flex; align-items: center; gap: 23px; margin-top: 22px; }
  .hero-actions > span { color: var(--muted); font-size: .8125rem; line-height: 1.5; }
  .hero-art { position: relative; align-self: center; min-width: 0; }
  .hero-art img { display: block; width: 108%; max-width: none; height: 310px; object-fit: cover; object-position: center 57%; margin: -10px -4% 0; }
  .hero-caption { display: flex; justify-content: space-between; gap: 15px; border-top: 1px solid #cdd8c6; margin: 0 3%; padding-top: 12px; color: #687861; font-size: .75rem; }
  body:not([data-view="assistent"]) .page-heading { display: block; min-height: 0; padding: 53px 0 40px; }
  body:not([data-view="assistent"]) .page-heading h1 { max-width: 900px; font-size: clamp(2rem, 3.8vw, 3rem); }
  body:not([data-view="assistent"]) .page-heading p { max-width: 750px; }
  body:not([data-view="assistent"]) .hero-art,
  body:not([data-view="assistent"]) .hero-actions { display: none; }
  .tabs { gap: 8px; margin: 0 0 30px; border: 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: 10px 0; overflow: visible; }
  .tabs a.tab { padding: 13px 19px; font-size: .9375rem; border-radius: 30px; font-weight: 500; gap: 9px; white-space: nowrap; }
  .tab span { display: none; }
  .tab.active { background: #eef1eb; color: var(--forest); box-shadow: inset 0 0 0 1px #dce3d6; }
  .tabs a.tab.active:hover { color: var(--forest); background: #e5eadf; }
  .tab.active:after { display: none; }
  .tabs a.tab:not(.active):hover { background: #f0f2ec; }
  .workbench { grid-template-columns: minmax(0, 1.28fr) minmax(0, 1fr); gap: 28px; }
  .input-column, .result-column { min-width: 0; }
  .input-card { padding: 32px; }
  .section-top { gap: 14px; margin-bottom: 27px; align-items: center; }
  .step-number { border: 0; background: var(--accent-soft); color: var(--accent-ink); width: 39px; height: 39px; padding: 0; display: grid; place-items: center; border-radius: 50%; font-size: .8125rem; font-weight: 500; margin: 0; flex: none; }
  .section-top h2 { font-size: 1.5rem; font-weight: 550; letter-spacing: -.045em; }
  .section-top p { font-size: .875rem; margin-top: 5px; }
  legend, .form-row > label, .field-label { font-size: .875rem; font-weight: 550; }
  .license-option { border-radius: 13px; padding: 17px 15px; min-height: 82px; transition: background .15s, border-color .15s; }
  .license-option:hover { border-color: var(--accent-line); }
  .license-option:has(input:checked) { background: var(--accent-soft); border-color: var(--accent-line); }
  .license-option:has(input:checked) .radio-dot { border-color: var(--accent-ink); }
  .license-option:focus-within { outline-color: var(--accent-ink); }
  .license-option strong { font-size: .9375rem; font-weight: 550; }
  .license-option small { font-size: .8125rem; }
  .radio-dot { width: 18px; height: 18px; }
  .combo-option { font-size: .875rem; align-items: flex-start; line-height: 1.5; margin-top: 17px; }
  .combo-option input { flex: none; margin-top: 3px; }
  select, input[type="date"], input[type="text"] { min-height: 49px; border-radius: 10px; font-size: 1rem; padding: 12px; }
  .subsection { margin-top: 28px; padding-top: 28px; }
  .point-row { padding: 17px 0; gap: 15px; }
  .point-title { font-size: .9375rem; font-weight: 550; }
  .point-description { font-size: .8125rem; line-height: 1.6; }
  .stepper { border-radius: 30px; }
  .stepper button { width: 40px; height: 44px; background: #f7f6f2; }
  .stepper button:not(:disabled):hover { background: var(--accent-soft); color: var(--accent-ink); }
  .stepper output { width: 28px; font-size: .9375rem; font-weight: 550; }
  .help-link { font-size: .875rem; line-height: 1.6; }
  .count-note, #date-help { font-size: .8125rem; line-height: 1.65; }
  .plan-card { padding: 30px; box-shadow: none; }
  .plan-top .eyebrow { font-size: .75rem; font-weight: 500; letter-spacing: .12em; }
  .pill { border-radius: 30px; padding: 5px 11px; font-weight: 500; font-size: .8125rem; }
  .progress-area { gap: 24px; margin: 29px 0; flex-direction: row; align-items: center; }
  .progress-ring { width: 122px; height: 122px; padding: 5px; }
  .progress-ring strong { font-size: 2.5rem; font-weight: 550; }
  .progress-ring small { font-size: .75rem; }
  .progress-description h2 { font-size: 1.625rem; line-height: 1.2; font-weight: 550; letter-spacing: -.04em; }
  .progress-description p { font-size: .875rem; line-height: 1.6; }
  .plan-action { gap: 14px; padding: 21px 0; }
  .action-icon { width: 30px; height: 30px; border-radius: 50%; }
  .plan-action h3 { font-size: 1rem; font-weight: 550; letter-spacing: -.015em; }
  .plan-action p { font-size: .875rem; line-height: 1.7; }
  .plan-action a, .plan-action button { font-size: .875rem; font-weight: 500; text-align: left; line-height: 1.6; }
  .plan-footer { font-size: .8125rem; line-height: 1.65; }
  .button { border-radius: 30px; padding: 14px 22px; min-height: 48px; font-size: .875rem; font-weight: 550; }
  .button-primary { background: var(--action); color: #fff; }
  .button-primary:hover { background: var(--action-hover); }
  .button-lime:hover { background: var(--accent-hover); }
  .button-light:hover { background: var(--accent-soft); }
  .save-row { gap: 10px; margin-top: 16px; }
  .icon-button { border-radius: 50%; width: 50px; }
  .local-note { font-size: .8125rem; }
  .help-card { padding: 26px 4px; }
  .help-card strong { font-size: .9375rem; font-weight: 550; }
  .help-card p, .help-card a { font-size: .875rem; }
  .source-line { font-size: .75rem; line-height: 1.8; padding: 28px 0; gap: 5px; }
  .site-footer { max-width: 1224px; width: calc(100% - 128px); margin: 40px auto 0; padding: 28px 0; font-size: .8125rem; line-height: 1.7; }
  .text-button { font-size: .8125rem; }
  .plan-explanation { padding: 40px 0; margin-top: 10px; }
  .plan-explanation h2 { font-size: 2rem; font-weight: 550; max-width: 750px; letter-spacing: -.045em; line-height: 1.25; margin-bottom: 19px; }
  .plan-explanation > p { max-width: 870px; margin-bottom: 25px; }
  .plan-explanation details { padding: 15px 0; }
  .plan-explanation summary { font-weight: 500; }
  .agenda-banner { padding: 36px; box-shadow: none; }
  .agenda-banner h2 { font-size: 2.125rem; font-weight: 550; line-height: 1.2; letter-spacing: -.045em; max-width: 470px; margin: 17px 0; }
  .agenda-banner p { font-size: 1rem; line-height: 1.7; }
  .embed-note { font-size: .8125rem; }
  .planning-card { padding: 30px; }
  .section-heading h2, .calendar-heading h2, .event-form-card h2 { font-size: 1.5rem; font-weight: 550; letter-spacing: -.04em; }
  .section-heading .button { font-size: .875rem; padding-inline: 18px; }
  .calendar-card, .event-form-card { padding: 26px; }
  .calendar-nav { border-radius: 50%; width: 38px; height: 38px; background: var(--accent-soft); color: var(--accent-ink); }
  .calendar-day { min-height: 44px; border-radius: 50%; }
  .calendar-day.has-event { background: var(--accent-soft); }
  .calendar-day.today { border-color: var(--accent-ink); }
  .calendar-day.deadline { background: var(--forest); }
  .legend-event { background: var(--accent); }
  .calendar-weekdays span, .calendar-legend, .calendar-info { font-size: .8125rem; }
  .event-date { border-radius: 13px; background: var(--accent-soft); border-color: #ebd4c1; width: 54px; min-height: 64px; }
  .event-date strong { font-weight: 550; }
  .event-info h3 { font-size: 1rem; font-weight: 550; line-height: 1.45; }
  .event-info p { font-size: .875rem; }
  .tiny-label { font-size: .75rem; letter-spacing: .08em; font-weight: 550; }
  .remove-event { width: 44px; height: 44px; }
  .deadline-card h3 { font-size: 1.5rem; font-weight: 550; }
  .deadline-card p { font-size: 1rem; }
  .deadline-card .small { font-size: .8125rem; }
  .empty-icon { border-radius: 50%; background: var(--accent-soft); color: var(--accent-ink); }
  .empty-state h3 { font-size: 1.5rem; font-weight: 550; }
  .empty-state p { font-size: 1rem; }
  .documents-heading h2, .news-heading h2 { font-size: 1.75rem; font-weight: 550; letter-spacing: -.045em; }
  .documents-heading p { font-size: 1rem; }
  .document-card { border-radius: 17px; padding: 23px; }
  .document-card.selected { background: var(--accent-soft); border-color: var(--accent-line); box-shadow: none; }
  .document-card:hover { border-color: var(--accent-line); }
  .document-card h3 { font-size: 1.0625rem; font-weight: 550; line-height: 1.5; }
  .document-card p { font-size: .875rem; }
  .doc-meta, .doc-type { font-size: .75rem; }
  .doc-type { border-radius: 20px; padding: 5px 10px; font-weight: 550; }
  .local-upload { border-radius: 17px; padding: 23px; }
  .local-upload h3, .viewer-toolbar h3 { font-size: 1.125rem; font-weight: 550; }
  .local-upload p { font-size: .875rem; }
  .local-upload .small, .viewer-notice, .viewer-fallback { font-size: .8125rem; }
  .viewer-chapters { gap: 7px; font-size: .8125rem; }
  .viewer-chapters button { min-height: 40px; border-radius: 25px; padding: 10px 14px; font-size: .8125rem; }
  .pdf-navigation button { width: 44px; height: 44px; border-radius: 50%; }
  .news-list { gap: 18px; }
  .news-item { padding: 28px; border-radius: 20px; }
  .news-item h3 { font-weight: 550; font-size: 1.375rem; line-height: 1.4; letter-spacing: -.035em; }
  .news-meta > span { font-weight: 500; }
  .news-latest { padding: 34px; }
  .news-latest h3 { font-size: 2rem; line-height: 1.25; }
  .news-source { border-radius: 20px; background: var(--accent-soft); border-color: #ebd4c1; padding: 27px; }
  .news-kicker { color: var(--accent-ink); }
  .news-update { border-color: #e5c9b1; }
  .news-item:hover { border-color: var(--accent-line); }
  .news-item:focus-within, .upload-label:focus-within { outline-color: var(--accent-ink); }
  .news-source h3, .news-more h3 { font-size: 1.375rem; font-weight: 550; }
  .news-source a, .news-more a { font-weight: 550; }
  @media (min-width: 1101px) { .result-column { position: sticky; top: 28px; } }
  @media (max-width: 1100px) {
    .site-header { width: calc(100% - 48px); }
    .shell, .site-footer { width: calc(100% - 72px); }
    .page-heading { min-height: 345px; gap: 24px; }
    .hero-art img { width: 100%; height: 240px; object-fit: contain; margin: 0; }
    .page-heading h1 { font-size: clamp(2.5rem, 4.6vw, 3.5rem); }
    .input-card, .plan-card { padding: 24px; }
    .workbench { gap: 20px; grid-template-columns: minmax(0, 1.18fr) minmax(0, 1fr); }
    .progress-area { flex-direction: column; align-items: flex-start; gap: 20px; }
  }
  @media (min-width: 761px) and (max-width: 900px) {
    .workbench { grid-template-columns: minmax(0, 1fr); }
    .progress-area { flex-direction: row; align-items: center; }
    .header-note { display: none; }
  }
  @media (max-width: 760px) {
    .site-header { margin-top: 14px; width: calc(100% - 32px); height: 73px; padding: 0 18px; }
    .brand { font-size: 1.2rem; }
    .brand-mark { width: 35px; height: 35px; font-size: 1.35rem; }
    .brand small { font-size: .75rem; }
    .header-note { display: none; }
    .header-link { display: none; }
    .shell, .site-footer { width: calc(100% - 40px); margin-inline: auto; }
    .page-heading { grid-template-columns: 1fr; gap: 0; padding: 24px 0 18px; min-height: 0; }
    .page-heading h1 { font-size: clamp(2.4rem, 8.5vw, 3.5rem); margin: 14px 0; line-height: 1.1; }
    .page-heading p { font-size: 1rem; max-width: 490px; }
    .hero-actions { gap: 17px; margin-top: 18px; }
    .hero-actions .button { padding: 13px 19px; }
    .hero-actions > span { font-size: .75rem; }
    .hero-art { height: 136px; overflow: hidden; margin: 10px -8px 0; }
    .hero-art img { width: 100%; height: 220px; object-fit: contain; object-position: center; margin: -49px 0 0; }
    .hero-caption { display: none; }
    .tabs { display: grid; grid-template-columns: 1fr 1fr; gap: 5px; padding: 9px 0; margin-bottom: 23px; }
    .tabs a.tab { display: flex; justify-content: center; padding: 12px 8px; font-size: .875rem; }
    .workbench { grid-template-columns: minmax(0, 1fr); gap: 21px; }
    .input-card, .plan-card { padding: 24px; }
    .section-top h2 { font-size: 1.375rem; }
    .section-top p { font-size: .875rem; }
    .license-grid { gap: 9px; }
    .license-option { padding: 13px 10px; gap: 6px; min-height: 79px; }
    .license-option strong { font-size: .875rem; }
    .license-option small { font-size: .75rem; }
    .form-row { grid-template-columns: 1fr; gap: 18px; }
    .progress-area { flex-direction: row; align-items: center; gap: 20px; }
    .source-line span { width: 100%; margin: 0; }
    .plan-explanation { padding-top: 29px; }
    .plan-explanation h2 { font-size: 1.75rem; }
    .site-footer { margin-top: 15px; flex-direction: column; align-items: flex-start; gap: 12px; }
    body:not([data-view="assistent"]) .page-heading { padding: 38px 0 29px; }
    body:not([data-view="assistent"]) .page-heading h1 { font-size: 2.25rem; }
    .agenda-layout, .news-layout, .document-layout { grid-template-columns: minmax(0, 1fr); gap: 22px; }
    .agenda-main, .agenda-side { display: contents; }
    .agenda-banner { order: 0; padding: 26px; margin: 0; }
    .agenda-banner h2 { font-size: 1.875rem; }
    .calendar-card { order: 1; }
    .event-form-card { order: 2; margin: 0; }
    .planning-card { order: 3; padding: 24px; }
    .deadline-card { order: 4; }
    .event-form-card .form-row { grid-template-columns: 1fr; }
    .section-heading, .documents-heading, .news-heading { align-items: flex-start; flex-direction: column; }
    .documents-heading h2, .news-heading h2 { font-size: 1.5rem; }
    .document-sidebar { grid-template-columns: minmax(0, 1fr); gap: 12px; }
    .document-card, .local-upload { padding: 22px; margin: 0; }
    .doc-meta { display: block; }
    .viewer-toolbar { flex-wrap: wrap; padding: 20px; }
    .viewer-toolbar .external-link { font-size: .875rem; padding: 10px 17px; }
    .news-sidebar { padding-top: 0; }
    .news-item, .news-latest { padding: 25px; }
    .news-item h3 { font-size: 1.25rem; }
    .news-latest h3 { font-size: 1.75rem; }
  }
  @media (max-width: 380px) {
    .shell, .site-footer { width: calc(100% - 32px); }
    .brand { font-size: 1.1rem; }
    .input-card, .plan-card { padding: 19px; }
    .license-grid { grid-template-columns: 1fr; }
    .license-option { min-height: 74px; padding-inline: 16px; }
    .progress-area { gap: 15px; }
    .progress-ring { width: 108px; height: 108px; }
    .progress-description h2 { font-size: 1.375rem; }
    .hero-actions { gap: 12px; }
    .hero-actions .button { padding-inline: 16px; font-size: .8125rem; }
  }
  @media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { transition: none !important; animation: none !important; }
  }
}
@media print { .hero-art, .hero-actions { display: none !important; } }
