:root{color-scheme:light;--ink:#213c35;--muted:#66736d;--green:#285c4b;--paper:#fff;--background:#f6f6f1;--border:#dde3db;--soft:#e7efe7;--warning:#765024;--warning-bg:#fbefd9}*{box-sizing:border-box}body{margin:0;background:var(--background);color:var(--ink);font:15px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}a{color:var(--green);text-underline-offset:4px}button,input,textarea{font:inherit}button,a,input,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{opacity:.6;cursor:wait}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #ad6c2d;outline-offset:4px}h1,h2,p{margin:0}h1{font-size:clamp(28px,4vw,42px);line-height:1.16;letter-spacing:-1.3px;font-weight:600;overflow-wrap:anywhere}h2{font-size:19px;font-weight:600;line-height:1.35}p{overflow-wrap:anywhere}.muted{color:var(--muted)}.small{font-size:13px}.eyebrow{text-transform:uppercase;letter-spacing:1.8px;font-size:11px;font-weight:700;color:var(--green);margin-bottom:10px}.site-header{background:var(--paper);border-bottom:1px solid var(--border)}.header-inner{max-width:1200px;padding:20px 28px;margin:auto;display:flex;align-items:center;gap:30px;flex-wrap:wrap}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-weight:650;white-space:nowrap;color:var(--ink)}.brand-mark{background:var(--green);color:white;border-radius:9px;padding:0 10px 4px;font:600 30px Georgia,serif}.header-inner nav{display:flex;align-items:center;gap:22px;margin-left:auto;flex-wrap:wrap}.header-inner nav a{font-size:13px;color:var(--muted);text-decoration:none}.header-inner nav a[aria-current]{color:var(--green);font-weight:650}.language-form{display:flex;gap:3px;background:#f1f3ee;padding:3px;border:1px solid var(--border);border-radius:7px}.language-form button{border:0;background:transparent;color:var(--muted);padding:5px 9px;font-size:12px;border-radius:4px}.language-form button[aria-pressed=true]{background:var(--green);color:white}.shell{max-width:1120px;padding:38px 28px 64px;margin:auto;min-height:calc(100vh - 165px)}.site-footer{max-width:1120px;margin:auto;padding:20px 28px;border-top:1px solid var(--border);display:flex;justify-content:space-between;gap:20px;color:var(--muted);font-size:12px}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;margin:12px 0 28px}.page-heading p.muted{margin-top:10px}.button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:43px;padding:10px 16px;background:white;color:var(--green);border:1px solid var(--border);border-radius:7px;text-decoration:none;font-size:14px;font-weight:550;text-align:center}.button:hover{border-color:var(--green);background:#f0f5ee}.button.primary{background:var(--green);color:white;border-color:var(--green)}.button.primary:hover{background:#1d493a}.full{width:100%}.panel{background:var(--paper);border:1px solid var(--border);border-radius:12px}.empty{text-align:center;padding:64px 24px;margin-top:20px}.empty p{max-width:430px;margin:12px auto 24px;color:var(--muted)}.empty-mark{display:inline-grid;place-items:center;background:var(--soft);border-radius:14px;width:52px;height:52px;font-size:29px;color:var(--green);margin-bottom:20px}.back-link{font-size:13px;text-decoration:none;display:inline-block;margin-bottom:16px}.inline-form{display:inline-flex;gap:16px;flex-wrap:wrap;margin:0}.text-button{background:none;border:0;color:var(--muted);font-size:13px;padding:0}.text-button:hover{text-decoration:underline}.text-button.danger{color:#934434}.badge{display:inline-block;font-size:12px;padding:5px 9px;border-radius:5px;background:var(--soft);color:var(--green);white-space:nowrap}.badge.draft{background:#f0efe8;color:#686448}.badge.cancelled{background:#f9eae4;color:#934434}.list-heading{display:flex;justify-content:space-between;padding:16px 24px;border-bottom:1px solid var(--border);font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:1px}.manage-row{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:22px 24px;text-decoration:none;color:var(--ink)}.manage-row+.manage-row{border-top:1px solid var(--border)}.manage-row:hover{background:#f8faf6}.row-main{display:flex;align-items:center;gap:18px;min-width:0}.row-main h2{overflow-wrap:anywhere}.row-main p{font-size:13px;margin-top:5px}.row-end{display:flex;gap:20px;align-items:center}.date-tile{display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--soft);border-radius:8px;min-width:54px;min-height:62px;flex-shrink:0}.date-tile strong{font-size:23px;line-height:1.2;font-weight:500}.date-tile span{font-size:12px}.date-tile.large{background:transparent;min-width:90px}.date-tile.large strong{font-size:38px}.date-tile.large small{font-size:11px;color:var(--muted)}.login-layout{display:grid;grid-template-columns:1fr 400px;gap:70px;align-items:center;margin:60px 0}.intro h1{max-width:460px;font-family:Georgia,serif;font-size:clamp(32px,4.2vw,51px);font-weight:400;letter-spacing:-1.5px}.intro>p:last-child{margin-top:22px;max-width:390px;color:var(--muted)}.login-panel{padding:32px}.login-panel>p{margin:8px 0 26px}.field{margin-bottom:19px;min-width:0}.field label{display:block;font-size:13px;font-weight:550;margin-bottom:7px}.field label .muted{font-weight:400}.field input,.field textarea{border:1px solid #ccd6cd;background:#fff;color:var(--ink);border-radius:6px;width:100%;padding:10px 11px;font-size:16px;min-width:0}.field textarea{resize:vertical}.field input[aria-invalid=true]{border-color:#a44832}.field-help{font-size:12px;color:var(--muted);margin-top:6px}.errorlist{list-style:none;margin:7px 0 0;padding:0;color:#963e27;font-size:13px}.error-summary{color:#87381f;border:1px solid #e8c7ba;background:#fdf0e9;padding:12px;border-radius:6px;margin-bottom:22px;font-size:14px}.error-summary .errorlist{margin:0}.upload-panel{max-width:780px;padding:28px}.upload-zone{text-align:center;border:1px dashed #b2c3b5;background:#f8faf6;border-radius:8px;padding:35px 18px}.upload-zone label{display:block;font-size:20px;font-weight:600;margin:14px 0 8px}.document-label{display:inline-block;background:var(--soft);padding:8px 11px;border-radius:5px;font-size:14px;font-weight:700;letter-spacing:1px}.upload-zone input{margin-top:24px;width:100%;max-width:390px;font-size:14px}.upload-zone input::file-selector-button{background:var(--paper);border:1px solid var(--border);border-radius:5px;color:var(--ink);padding:9px 12px;margin-right:12px}.action-row{display:flex;align-items:center;justify-content:space-between;gap:22px;margin-top:24px}.action-row p{font-size:13px}.editor-layout{display:grid;grid-template-columns:minmax(240px,.82fr) minmax(0,1.18fr);gap:30px;align-items:start}.poster-panel{min-width:0}.poster-heading{display:flex;gap:12px;justify-content:space-between;align-items:center;margin-bottom:15px}.poster-heading h2{font-size:14px}.poster-heading a{font-size:12px}.poster-image-link{display:block;border:1px solid var(--border);background:#e9ece3;padding:12px;border-radius:8px}.poster-image-link img{display:block;max-width:100%;width:100%;height:auto}.poster-panel>p{margin-top:12px}.editor-panel{padding:27px}.section-heading{margin-bottom:25px}.section-heading p{margin-top:8px;font-size:13px}#event-form{display:grid;grid-template-columns:1fr 1fr;column-gap:16px}#event-form>.field:first-of-type,#event-form>.programme-field,#event-form>.field:has(#id_place),#event-form>.field:has(#id_public_contact),#event-form>.error-summary,#event-form>.editor-notice,#event-form>.form-actions{grid-column:1/-1}.editor-notice{background:#f1f4ed;border-radius:6px;padding:12px;color:var(--muted);font-size:12px;margin:2px 0 22px}.form-actions{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap}.published-actions{display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;border-top:1px solid var(--border);padding-top:20px;margin-top:22px;font-size:13px}.public-heading{margin:18px 0 42px;max-width:760px}.public-heading h1{font-family:Georgia,serif;font-weight:400;font-size:clamp(32px,4.8vw,52px)}.public-heading>p:last-child{color:var(--muted);margin-top:18px}.public-list{border-top:1px solid var(--border)}.public-event{display:flex;align-items:center;gap:28px;padding:25px 0;border-bottom:1px solid var(--border);text-decoration:none;color:var(--ink)}.public-event:hover h2{text-decoration:underline;text-underline-offset:5px}.public-event-info{flex:1;min-width:0}.public-event-info h2{font-size:23px;margin:3px 0 9px;overflow-wrap:anywhere}.public-event-info p{font-size:14px;margin-top:4px}.event-thumb{width:82px;height:105px;object-fit:contain;background:#e9ece3;border:1px solid var(--border)}.event-arrow{font-size:23px;color:var(--green)}.detail-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(250px,.85fr);gap:65px;margin-top:20px;align-items:start}.event-story h1{font-family:Georgia,serif;font-size:clamp(32px,4.2vw,49px);font-weight:400}.event-facts{margin:30px 0}.event-facts>div{display:grid;grid-template-columns:85px 1fr;gap:14px;padding:16px 0;border-top:1px solid var(--border)}.event-facts dt{font-size:12px;color:var(--muted)}.event-facts dd{margin:0;overflow-wrap:anywhere}.programme{margin:28px 0}.programme p{margin-top:12px;white-space:normal}.detail-poster img{width:100%;height:auto;border:1px solid var(--border);border-radius:6px}.detail-poster p{margin-top:12px}.edit-link{display:block;margin-top:20px;font-size:13px}.cancellation{padding:18px 20px;background:#f9eae4;border:1px solid #e2bfae;border-radius:8px;margin:10px 0 24px;color:#873e2c}.cancellation p{font-size:14px;margin-top:5px}.messages p{padding:13px 18px;border:1px solid #bfd2bd;background:var(--soft);border-radius:7px;margin-bottom:20px;font-size:14px}.pagination{display:flex;align-items:center;justify-content:center;gap:20px;margin-top:28px;font-size:13px}.skip-link{position:absolute;left:16px;top:-80px;z-index:10;background:white;padding:10px}.skip-link:focus{top:10px}#language-error:not(:empty){background:#f9eae4;padding:10px;margin-bottom:15px}
@media(max-width:900px){.header-inner{gap:18px}.header-inner nav{order:3;width:100%;margin:0}.language-form{margin-left:auto}.login-layout{gap:30px;grid-template-columns:1fr 360px;margin-top:30px}.editor-layout{gap:20px;grid-template-columns:minmax(200px,.7fr) minmax(0,1fr)}.detail-layout{gap:30px}.editor-panel{padding:20px}}
@media(max-width:650px){.header-inner{padding:15px 18px}.shell{padding:24px 18px 40px}.brand{font-size:14px}.header-inner nav{gap:18px}.site-footer{padding:20px 18px;flex-direction:column;gap:5px}.login-layout,.editor-layout,.detail-layout{grid-template-columns:1fr}.login-layout{margin:12px 0;gap:26px}.login-panel{padding:24px}.intro h1{font-size:34px}.intro>p:last-child{margin-top:12px}.poster-image-link img{max-height:360px;object-fit:contain}.editor-panel{padding:20px}.public-heading{margin:12px 0 28px}.public-event{gap:14px;padding:22px 0}.date-tile.large{min-width:62px}.date-tile.large strong{font-size:30px}.date-tile.large span{font-size:11px}.public-event-info h2{font-size:19px}.event-thumb{display:none}.manage-row{padding:18px 15px;align-items:flex-start;gap:10px}.row-main{gap:12px}.row-main h2{font-size:16px}.row-end{gap:5px}.row-end>span:last-child{display:none}.badge{font-size:11px}.list-heading{padding:14px 16px}.action-row{align-items:stretch;flex-direction:column;gap:15px}.upload-panel{padding:20px}.upload-zone{padding:25px 12px}.form-actions .button{flex:1}.event-facts>div{grid-template-columns:65px 1fr}.empty{padding:40px 20px}}
@media(max-width:380px){.language-form{margin-left:0}.row-main .date-tile{display:none}#event-form{grid-template-columns:1fr}.form-actions{flex-direction:column}.header-inner nav{font-size:12px}}
@media(pointer:coarse){button,.text-button,.language-form button{min-height:44px}.header-inner nav a{padding:8px 0}}

/* Assisted editing and period selection */
.extraction-panel { padding: 1rem; margin-bottom: 1.5rem; border: 1px solid #cdd9d1; border-radius: 12px; background: #f3f7f3; }
.extraction-panel [role=status]:empty { display: none; }
#extraction-fields dt { font-weight: 700; margin-top: .8rem; }
#extraction-fields dd { margin-left: 0; white-space: pre-wrap; overflow-wrap: anywhere; }
[hidden] { display: none !important; }
.period-controls { margin: 2rem 0; }
.period-form { display: flex; flex-wrap: wrap; align-items: end; gap: .7rem; }
.period-form label { display: block; margin-bottom: .3rem; font-weight: 600; }
.period-form select, .period-form input { width: auto; max-width: 100%; min-height: 44px; padding: .65rem; border: 1px solid #bec8c1; border-radius: 8px; background: white; font: inherit; }
.period-navigation { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; margin-top: 1.5rem; }
.period-navigation nav { display: flex; gap: 1.5rem; }
.period-navigation h2 { margin: 0; }
.print-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-bottom: 2rem; }
.print-programme { max-width: 800px; margin: auto; }
.programme-header h1 { font-size: clamp(1.7rem, 5vw, 2.5rem); }
.programme-online { display: flex; align-items: center; gap: 1rem; margin: 1.5rem 0 2rem; padding: 1rem 0; border-block: 1px solid #b5bfb6; }
.programme-online > div { min-width: 0; }
.programme-qr { width: 144px; height: 144px; flex-shrink: 0; image-rendering: pixelated; }
.calendar-url, .programme-event { overflow-wrap: anywhere; }
.programme-event { margin: 0 0 1.6rem; padding-bottom: 1.4rem; border-bottom: 1px solid #cbd0cb; }
.programme-event h2 { font-size: 1.35rem; margin-bottom: .3rem; }
.programme-event-heading p { margin-top: .3rem; }
.programme-text { white-space: normal; }
.cancellation { color: #962d25; }
@media (max-width: 480px) { .programme-online { flex-direction: column; align-items: flex-start; } }
@page { size: A4; margin: 16mm; }
@media print {
  body { background: white !important; color: black !important; font-size: 10.5pt; }
  .site-header, .site-footer, .skip-link, .print-actions, #language-error, .messages { display: none !important; }
  main.shell { width: auto; max-width: none; margin: 0; padding: 0; }
  .print-programme { max-width: none; }
  .programme-header h1 { font-size: 23pt; }
  .programme-online { break-inside: avoid; display: flex; flex-direction: row; margin: 6mm 0; padding: 3mm 0; }
  .programme-qr { width: 32mm; height: 32mm; }
  .programme-event { break-inside: auto; margin-bottom: 5mm; padding-bottom: 4mm; }
  .programme-event-heading { break-inside: avoid; break-after: avoid; }
  .programme-event h2 { font-size: 14pt; }
  p, .programme-text { orphans: 3; widows: 3; }
  a { color: black; }
  .eyebrow, .small, .cancellation { color: black; }
}

.delete-panel { max-width: 700px; padding: 24px; }
.delete-panel h2 { overflow-wrap: anywhere; }
.delete-panel > p { margin: 1rem 0; }
.button.delete-button { color: white; background: #962d25; border-color: #962d25; }
.button.delete-button:hover { background: #74231d; }
