/* FPP Planspiel: responsive desktop/tablet, no external assets */
:root { --ex-navy:#13243a; --ex-ink:#1e3043; --ex-red:#c62836; --ex-border:#dce3eb; --ex-muted:#687687; --ex-bg:#f4f6f9; }
.ex-wrap { max-width:1320px; margin:0 auto; padding:36px 22px 90px; color:var(--ex-ink); }
.ex-narrow { max-width:780px; }
.ex-back { display:inline-flex; align-items:center; min-height:44px; margin-bottom:22px; color:#53697d; text-decoration:none; font-weight:600; }
.ex-kicker { display:block; color:var(--ex-red); letter-spacing:1.3px; font-size:11px; font-weight:800; text-transform:uppercase; }
.ex-pagehead { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:16px; margin-bottom:28px; }
.ex-pagehead h1,.ex-panel h1 { font-size:clamp(26px,4.5vw,42px); line-height:1.14; margin:8px 0 10px; color:var(--ex-navy); }
.ex-pagehead p { color:var(--ex-muted); margin:0; }
.ex-panel { padding:25px; border-radius:16px; border:1px solid var(--ex-border); background:#fff; box-shadow:0 2px 14px rgba(20,40,62,.035); min-width:0; }
.ex-panel h2 { color:var(--ex-navy); font-size:23px; margin:8px 0 14px; line-height:1.25; }
.ex-panel h3 { color:var(--ex-ink); font-size:17px; margin:10px 0; }
.ex-panel p { overflow-wrap:anywhere; }
.ex-panel summary { font-weight:700; font-size:18px; cursor:pointer; min-height:44px; padding:8px 0; }
.ex-panel details[open] summary { margin-bottom:15px; }
.ex-cols,.ex-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.ex-context { margin-bottom:18px; }
.ex-layout { display:grid; grid-template-columns:minmax(0,1.85fr) minmax(285px, .85fr); align-items:start; gap:18px; }
.ex-main,.ex-side { display:grid; gap:18px; min-width:0; }
.ex-card { display:flex; flex-direction:column; padding:23px; border:1px solid var(--ex-border); border-radius:15px; color:var(--ex-ink); background:#fff; text-decoration:none; min-height:180px; gap:10px; }
.ex-card h2,.ex-card h3 { font-size:20px; margin:0; }
.ex-card p { color:var(--ex-muted); margin:0; }
.ex-card:hover,.ex-card:focus-visible { border-color:var(--ex-red); }
.ex-cardlink { margin-top:auto; font-weight:750; color:var(--ex-red); }
.ex-pill { display:inline-flex; align-items:center; background:#edf2f7; color:#425369; border-radius:100px; padding:6px 12px; font-size:12px; font-weight:700; }
.ex-warning { background:#fff0e3; color:#8c480b; padding:14px; border-radius:9px; }
.ex-notice { background:#e9f5ef; border-left:3px solid #2b8b59; padding:12px 16px; border-radius:6px; }
.ex-muted { color:var(--ex-muted); font-size:13px; }
.ex-form { display:grid; gap:15px; margin:20px 0 6px; }
.ex-form label,.ex-form p { display:grid; gap:7px; margin:0; font-size:14px; font-weight:650; }
.ex-form input,.ex-form select,.ex-form textarea,.ex-editor,.ex-inlineform select {
  box-sizing:border-box; width:100%; min-height:47px; padding:12px 13px; border:1px solid #bac8d7; border-radius:9px;
  font-size:16px; color:#182a3c; background:white; font-family:inherit; }
.ex-form input[type=checkbox] { width:24px; height:24px; min-height:24px; accent-color:var(--ex-red); }
.ex-form textarea,.ex-editor { resize:vertical; line-height:1.6; }
.ex-form .errorlist { color:#b5212e; }
.ex-error { color:#a3222a; }
.ex-btn { display:inline-flex; justify-content:center; align-items:center; min-height:46px; padding:11px 16px; border:1px solid var(--ex-red); border-radius:9px;
  font-size:14px; font-weight:750; text-decoration:none; background:var(--ex-red); color:white; cursor:pointer; text-align:center; touch-action:manipulation; }
.ex-btn-light { background:#edf1f6; color:#243950; border-color:#edf1f6; }
.ex-btn-outline { background:transparent; color:var(--ex-red); }
.ex-btn-small { min-height:42px; padding:8px 12px; font-size:12px; }
.ex-btn:disabled { opacity:.6; cursor:wait; }
.ex-btn:focus-visible,.ex-card:focus-visible,.ex-phase-nav:focus-visible,.ex-editor:focus-visible,
.ex-form input:focus-visible,.ex-form select:focus-visible,.ex-form textarea:focus-visible { outline:3px solid #ff8b91; outline-offset:2px; }
.ex-sectionhead,.ex-toolbar { display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px; align-items:center; }
.ex-cycle { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:9px; margin:19px 0 14px; }
.ex-phase-nav { min-height:70px; border:1px solid #d4dfe8; border-radius:12px; background:#f3f6fa; color:#283a4c; font-weight:750; font-size:12px; cursor:pointer; touch-action:manipulation; }
.ex-phase-nav.active { background:var(--ex-navy); color:white; border-color:var(--ex-navy); }
.ex-runden { display:flex; flex-wrap:wrap; gap:9px; margin:15px 0; }
.ex-runde { text-decoration:none; color:#485c70; font-weight:700; font-size:13px; padding:10px 13px; border:1px solid #dae2e9; border-radius:10px; }
.ex-runde.selected { background:#fbecee; color:var(--ex-red); border-color:#e8b5bc; }
.ex-editor-section { border-top:1px solid #e7edf2; padding:18px 0 4px; }
.ex-editor-section[hidden] { display:none; }
.ex-editor-title h3 { margin:6px 0 12px; }
.ex-editor { min-height:215px; }
.ex-editor.ex-conflict { border:3px solid #b52934; }
.ex-save-state { display:block; font-size:12px; margin:7px 0 17px; color:#5d7084; }
.ex-toolbar { margin:12px 0 19px; }
.ex-rows { display:grid; gap:10px; }
.ex-row { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; border:1px solid #e1e7ed; border-radius:10px; padding:13px; background:#f8fafc; min-width:0; }
.ex-row strong { display:block; font-size:14px; overflow-wrap:anywhere; }
.ex-row small { display:block; color:#728195; margin-top:5px; font-size:11px; }
.ex-row p { color:#405166; white-space:pre-wrap; margin:9px 0 0; font-size:13px; }
.ex-resource { border-bottom:1px solid var(--ex-border); padding:13px 0; overflow-wrap:anywhere; }
.ex-resource strong,.ex-resource small,.ex-resource a { display:block; }
.ex-resource strong { font-size:14px; }
.ex-resource small { margin:5px 0; color:#78869a; }
.ex-resource a { min-height:44px; padding:12px 0; color:var(--ex-red); font-weight:750; text-decoration:none; }
.ex-table-wrap { overflow-x:auto; }
.ex-table { border-collapse:collapse; width:100%; font-size:13px; }
.ex-table th,.ex-table td { text-align:left; padding:13px; border-bottom:1px solid var(--ex-border); vertical-align:middle; }
.ex-table thead { background:#f0f4f8; }
.ex-inlineform { display:flex; min-width:220px; align-items:center; gap:8px; }
.ex-fieldreview { margin:12px 0; padding:12px 0; border-bottom:1px solid var(--ex-border); }
.ex-fieldreview small { color:var(--ex-muted); }
@media(max-width:1050px) { .ex-layout { grid-template-columns:1fr; } .ex-side { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:750px) { .ex-wrap { padding:20px 14px 75px; } .ex-panel { padding:18px; } .ex-cols,.ex-grid,.ex-side { grid-template-columns:1fr; }
 .ex-cycle { grid-template-columns:repeat(2,minmax(0,1fr)); } .ex-row { flex-wrap:wrap; } .ex-btn { width:auto; }
 .ex-pagehead > .ex-btn { width:100%; } .ex-form .ex-btn { width:100%; } .ex-inlineform { min-width:230px; } }
@media(prefers-reduced-motion:reduce) { * { scroll-behavior:auto!important; transition:none!important; } }
/* Tablet-friendly tactical sketchboard */
.ex-map-controls { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin:16px 0; }
.ex-map-controls label { display:grid; gap:5px; font-size:12px; font-weight:700; }
.ex-map-controls input,.ex-map-controls select { width:100%; box-sizing:border-box; min-height:46px; padding:10px 12px; border:1px solid #bbcbd9; border-radius:8px; background:#fff; font-size:16px; }
.ex-map-frame { aspect-ratio:10/7; width:100%; border:2px solid #dbe3ec; border-radius:11px; background:linear-gradient(90deg, transparent 97%,#e6ebef 98%), linear-gradient(0deg,transparent 97%,#e6ebef 98%); background-size:50px 50px; overflow:hidden; }
.ex-map-frame svg { width:100%; height:100%; display:block; touch-action:none; user-select:none; -webkit-user-select:none; cursor:crosshair; }
.ex-map-frame svg text { font-family:Arial,sans-serif; paint-order:stroke; stroke:#fff; stroke-width:4px; stroke-linejoin:round; font-weight:700; }
.ex-map-actions { justify-content:flex-start; }
@media(max-width:750px) { .ex-map-controls { grid-template-columns:1fr; } .ex-map-actions .ex-btn { flex:1 1 110px; } }

/* FPP Live-Sync v2 */
.ex-live-indicator { color:#197651; font-size:12px; font-weight:700; margin:8px 0 0; }
.ex-live-indicator.ex-live-error { color:#a3252d; }
.ex-remote-apply { margin:0 0 12px; }

/* FPP guided cockpit v3: always-visible context + instructor resources */
.ex-choice-actions {display:flex;flex-wrap:wrap;gap:10px;margin-top:auto;padding-top:15px;}
.ex-choice-actions .ex-btn {flex:1 1 175px;}
.ex-scenario-grid .ex-card {min-height:230px;}
.ex-guided-layout {grid-template-columns:minmax(0,1.75fr) minmax(310px,.85fr);align-items:stretch;}
.ex-sticky-aside {position:sticky;top:12px;align-self:start;display:flex;flex-direction:column;gap:14px;max-height:calc(100vh - 25px);}
.ex-sticky-aside>.ex-panel {min-height:0;}
.ex-topic-box {flex:0 0 auto;max-height:48vh;overflow-y:auto;}
.ex-doc-box {flex:1 1 auto;overflow:hidden;display:flex;flex-direction:column;}
.ex-doc-scroll {overflow:auto;min-height:0;}
.ex-topic-box h2 {font-size:19px;}
.ex-topic-box .ex-update-details {padding-top:8px;border-top:1px solid var(--ex-border);}
.ex-update-details summary {font-size:13px;min-height:42px;}
.ex-update-details .ex-rows {padding-top:9px;}
.ex-update-details .ex-row {display:block;}
.ex-update-details .ex-row p {max-height:140px;overflow:auto;}
.ex-update-urgent {border-left:4px solid #b42332;background:#fff4f4;}
.ex-location-details {border-top:1px solid var(--ex-border);margin-top:20px;padding-top:16px;}
.ex-location-details p {margin:8px 0;}
.ex-address-map {width:100%;height:260px;margin:15px 0 2px;border:0;border-radius:12px;background:#edf1f6;}
.ex-address-fallback {margin:18px 0 0;padding:12px;border:1px solid var(--ex-border);border-radius:10px;}
.ex-map-source-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:15px 0;}
.ex-map-upload {border:1px solid var(--ex-border);border-radius:12px;background:#f8fafc;padding:16px;margin:0;align-content:start;}
.ex-map-upload strong {font-size:15px;}
.ex-map-upload small {color:var(--ex-muted);}
.ex-map-bayern-tools {display:grid;gap:12px;align-content:start;}
.ex-map-bayern-tools>a {color:var(--ex-red);font-weight:700;min-height:44px;}
.ex-bayern-zooms {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;}
.ex-bayern-zooms .ex-btn {padding:10px 4px;font-size:12px;}
.ex-map-frame {position:relative;}
.ex-map-frame svg {position:relative;z-index:1;}
.ex-revision-help {padding:12px 16px;background:#f6f8fb;border-left:4px solid #50677f;margin:12px 0 18px;}
.ex-btn-danger {background:#a51d32;border-color:#a51d32;color:white;}
.ex-btn-danger:hover {background:#84172a;}
.ex-edit-location {display:inline-flex;min-height:44px;align-items:center;}
@media(max-width:1050px) {
  .ex-guided-layout {display:flex;flex-direction:column;}
  .ex-sticky-aside {order:-1;position:sticky;top:0;z-index:10;max-height:35vh;width:100%;background:rgba(244,246,249,.97);box-shadow:0 7px 18px rgba(21,41,64,.06);}
  .ex-topic-box {max-height:19vh;overflow:auto;}
  .ex-doc-box {max-height:13vh;}
  .ex-sticky-aside .ex-panel {padding:12px 16px;}
  .ex-sticky-aside .ex-panel h2 {margin:2px 0 5px;font-size:17px;}
  .ex-sticky-aside .ex-topic-box p {margin:4px 0;}
  .ex-sticky-aside .ex-update-details:not([open]) {max-height:35px;}
  .ex-sticky-aside .ex-update-details[open] {max-height:90px;overflow:auto;}
  .ex-sticky-aside .ex-doc-scroll {max-height:95px;}
}
@media(max-width:750px) {
  .ex-map-source-grid {grid-template-columns:1fr;}
  .ex-choice-actions {flex-direction:column;}
  .ex-sticky-aside {max-height:31vh;}
  .ex-topic-box {max-height:17vh;}
  .ex-doc-box {max-height:11vh;}
  .ex-bayern-zooms .ex-btn {min-height:44px;}
}

/* Personal classical FwDV-100 document */
.ex-classic-field {padding:16px 0;}
.ex-classic-field .ex-editor {min-height:135px;}
@media print {
  .ex-sticky-aside,.ex-back,.ex-toolbar,.site-header,.site-footer {display:none!important;}
  .ex-guided-layout {display:block;}
  .ex-panel {box-shadow:none;border:0;}
  .ex-editor {width:100%;min-height:120px;border:1px solid #ccc;}
  .ex-classic-field {page-break-inside:avoid;}
}

/* FPP v4 – BayernAtlas, captioned incident gallery, scenario mode choices */
.ex-aerial-preview {margin:20px 0; padding:14px;border:1px solid var(--ex-border);border-radius:12px;background:#f6f8fb;}
.ex-aerial-preview img,.ex-address-map-img {display:block;width:100%;aspect-ratio:10/7;object-fit:cover;border-radius:10px;}
.ex-aerial-preview>a {display:block;}
.ex-credit {font-size:11px;color:#596e84;margin:9px 0 0;}
.ex-briefing-details {padding:15px;margin:13px 0;background:#eaf0f5;border-left:4px solid var(--ex-red);border-radius:9px;white-space:normal;}
.ex-briefing-details p{margin:8px 0;}
.ex-scene-gallery {margin-top:23px;padding:15px;border:1px solid var(--ex-border);border-radius:12px;}
.ex-photo-grid {display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:13px;}
.ex-photo-card {min-width:0;color:var(--ex-ink);border:1px solid var(--ex-border);border-radius:12px;padding:10px;background:#fff;text-decoration:none;display:flex;flex-direction:column;gap:7px;}
.ex-photo-card img {display:block;width:100%;height:125px;object-fit:cover;border-radius:7px;}
.ex-photo-card strong{font-size:13px;line-height:1.25;overflow-wrap:anywhere;}
.ex-photo-card small{font-size:11px;color:var(--ex-muted);}
.ex-runde-wrap {display:inline-flex;align-items:stretch;border:1px solid #d8e1e9;border-radius:10px;overflow:hidden;}
.ex-runde-wrap .ex-runde {border:0;border-radius:0;}
.ex-runde-wrap form {display:flex;margin:0;}
.ex-runde-delete {border:0;border-left:1px solid #d9dfe7;background:#fff0f1;color:#a52130;min-width:41px;min-height:43px;font-size:22px;cursor:pointer;}
.ex-runde-delete:hover {background:#ffdadd;}
.ex-scenario-grid .ex-card {min-height:245px;}
@media(max-width:700px){.ex-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));}.ex-photo-card img{height:105px;}}
/* FPP v4 event cover hero */
.fpp-event-hero{position:relative;isolation:isolate;min-height:290px;display:flex;align-items:center;overflow:hidden;background:#1d3147;color:white;}
.fpp-event-hero-image{position:absolute;z-index:-2;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 45%;opacity:.62;}
.fpp-event-hero-overlay{position:absolute;z-index:-1;inset:0;background:linear-gradient(90deg,rgba(15,31,49,.92),rgba(18,35,53,.55) 70%,rgba(18,35,53,.28));}
.fpp-event-hero-content{padding-top:30px;padding-bottom:35px;}
.fpp-event-hero h1{font-size:clamp(30px,4.7vw,52px);color:white;letter-spacing:-.03em;line-height:1.1;margin:12px 0;overflow-wrap:anywhere;text-shadow:0 1px 8px rgba(0,0,0,.22);}
.fpp-event-hero p{color:#f2f5f8;font-size:16px;}
.fpp-event-back{display:inline-flex;align-items:center;color:#e7ebf0;text-decoration:none;min-height:44px;font-size:13px;}
.fpp-event-eyebrow{display:block;color:#ffb2b8;font-size:11px;font-weight:800;letter-spacing:.13em;}
.fpp-event-access{max-width:650px;margin:0 auto;}
.fpp-event-access input{font-size:16px;}
.fpp-mode-card{min-height:230px;}
@media(max-width:750px){.fpp-event-hero{min-height:250px;}.fpp-event-hero-content{padding-left:18px;padding-right:18px;}}


/* FPP v5.2 – kontextgebundene Arbeitsbegleitung */
.ex-live-workspace .ex-sticky-aside {gap:12px;}
.ex-live-workspace .ex-topic-box {flex:0 0 auto;max-height:32vh;min-height:150px;overflow-y:auto;}
.ex-live-workspace .ex-help-head {display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;}
.ex-live-workspace .ex-help-pin {background:#f2f5fa;border:1px solid #aabbcc;color:#243b52;border-radius:8px;padding:8px 11px;min-height:39px;font:inherit;font-weight:700;font-size:12px;cursor:pointer;}
.ex-live-workspace .ex-help-pin[aria-pressed="true"] {background:#13243a;color:#fff;border-color:#13243a;}
.ex-live-workspace .ex-help-pin:focus-visible {outline:3px solid #c62836;outline-offset:2px;}
.ex-live-workspace .ex-help-state {font-size:12px;color:#53687c;margin:8px 0 0;}
.ex-live-workspace .ex-updates-box {flex:0 1 auto;max-height:25vh;overflow-y:auto;}
.ex-live-workspace .ex-updates-box .ex-update-details {padding:0;}
.ex-live-workspace .ex-updates-box .ex-update-details summary {font-size:14px;}
.ex-live-workspace .ex-updates-box .ex-row {display:block;}
.ex-live-workspace .ex-updates-box .ex-row p {max-height:160px;overflow:auto;}
.ex-live-workspace .ex-doc-box {min-height:155px;}
@media (max-width:1050px) {
  /* No sticky overlay over forms or map on iPad portrait / phones. */
  .ex-live-workspace .ex-sticky-aside {order:-1;position:static;top:auto;max-height:none;background:transparent;box-shadow:none;display:grid;grid-template-columns:1fr;}
  .ex-live-workspace .ex-topic-box {max-height:none;min-height:0;overflow:visible;}
  .ex-live-workspace .ex-updates-box {max-height:270px;overflow:auto;}
  .ex-live-workspace .ex-doc-box {max-height:none;min-height:0;overflow:visible;}
  .ex-live-workspace .ex-doc-scroll {max-height:240px;overflow:auto;}
}
@media print { .ex-help-pin {display:none!important;} }
