:root{color-scheme:light;--navy:#153f6d;--blue:#153f6d;--blue-soft:#dce7f1;--ink:#17212b;--muted:#667584;--line:#d3dce4;--paper:#fff;--ground:#edf2f6}
body.dark-mode{color-scheme:dark;--navy:#153f6d;--blue:#153f6d;--blue-soft:#1f3f5f;--ink:#eef4f8;--muted:#9cadbc;--line:#324a5e;--paper:#132435;--ground:#091522}
*{box-sizing:border-box;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif}
body{margin:0;min-height:100vh;background:var(--ground);color:var(--ink)}
.blue-header{background:#153f6d;color:#fff;box-shadow:0 7px 22px rgba(21,63,109,.18)}
.header-inner{width:min(1380px,calc(100% - 48px));min-height:94px;margin:auto;display:flex;align-items:center;overflow:hidden}
.identity{display:flex;align-items:center;flex:0 0 auto;padding-right:24px;color:#fff;text-decoration:none;font-size:34px;font-weight:900;letter-spacing:.08em}.identity span{display:flex;flex-direction:column;line-height:1}.identity b{margin-top:7px;font-size:10px;font-weight:500;letter-spacing:.24em;opacity:.7}
.seal{width:54px;height:54px;flex:0 0 auto}.seal-shield{fill:none;stroke:rgba(255,255,255,.9);stroke-width:3;stroke-linejoin:round}.seal-ring{fill:none;stroke:rgba(255,255,255,.58);stroke-width:2.2}.seal-star{fill:#fff;opacity:.94}
.header-meta{height:50px;display:flex;align-items:center;min-width:0}.case-code{height:50px;width:142px;padding:0 24px;display:flex;align-items:center;flex:0 0 auto;min-width:0;border-left:1px solid rgba(255,255,255,.2)}.case-code>div{min-width:0}.case-code>div>span,.investigator-rank{display:block;margin:0 0 5px;color:inherit;font-size:8px;line-height:10px;text-transform:uppercase;text-decoration:none;letter-spacing:.18em;opacity:.58;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.investigator-rank:hover{opacity:.9}.case-code strong{display:flex;align-items:center;font-size:14px;line-height:20px;letter-spacing:.1em;white-space:nowrap}
.investigators{height:50px;display:flex;align-items:center;min-width:0}.investigators>div{min-width:0;max-width:300px;padding:0 24px;flex:0 1 auto;border-left:1px solid rgba(255,255,255,.18)}.investigators>div>b{display:none}.investigator-name{min-width:0}.investigators p{margin:0;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:14px;line-height:20px;font-weight:750;letter-spacing:.1em}
.header-actions{display:flex;align-items:center;gap:10px;margin-left:auto}.header-actions button{height:44px;border-radius:5px;padding:0 14px;cursor:pointer;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;transition:.2s;white-space:nowrap}.header-actions button:hover{transform:translateY(-2px)}#generate{min-width:165px;border:0;background:#fff;color:var(--navy);display:flex;align-items:center;justify-content:center;box-shadow:0 10px 25px rgba(0,0,0,.16)}#generate:hover{box-shadow:0 14px 28px rgba(0,0,0,.23)}#print-case,#import-case,#export-case,#theme-toggle{border:1px solid rgba(255,255,255,.38);background:rgba(255,255,255,.08);color:#fff}.icon-action,.theme-toggle{width:44px;padding:0!important;display:grid!important;place-items:center}.icon-action svg,.theme-toggle svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.theme-sun{display:none}body.dark-mode .theme-sun{display:block}body.dark-mode .theme-moon{display:none}
.workspace{position:relative;width:min(1380px,calc(100% - 48px));margin:auto;padding:42px 0 65px}.workspace-head{margin-bottom:30px;display:flex;align-items:end;justify-content:space-between}.workspace-head h1{margin:5px 0 0;font-size:clamp(38px,4vw,59px);letter-spacing:-.045em}.workspace-meta{display:flex;align-items:center;gap:22px}.confidential-stamp{position:absolute;z-index:999;top:50%;right:95px;display:inline-block;max-width:calc(100% - 150px);border:4px solid #e00000;border-radius:7px;padding:9px 16px;color:#fff;background:#e00000;font-size:clamp(20px,2.4vw,34px);line-height:1;font-weight:900;text-transform:uppercase;letter-spacing:.16em;white-space:nowrap;transform:translateY(-50%) rotate(7deg);pointer-events:none;user-select:none}.empty-case .confidential-stamp{display:none}.online{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.14em}.online i{width:8px;height:8px;border-radius:50%;background:#42a86b;box-shadow:0 0 0 4px #dcefe3}
.dashboard{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:18px}.card{background:var(--paper);border:1px solid var(--line);border-radius:9px;box-shadow:0 5px 18px rgba(31,55,75,.05);overflow:hidden}.card-index{color:var(--muted);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.16em}.card-index b{margin-left:7px;color:inherit;font-size:inherit;letter-spacing:inherit}
.article-card{position:relative;grid-column:1/-1;padding:0 31px 30px;border-top:5px solid var(--blue)}.article-top{height:58px;display:flex;align-items:center;justify-content:space-between;margin:0 -31px;padding:0 31px;border-bottom:1px solid var(--line)}.article-row{display:flex;align-items:center;justify-content:space-between;gap:25px;margin-top:22px}.article-row h2{min-width:0;margin:0;font-size:clamp(30px,3.2vw,49px);line-height:1.07;overflow-wrap:anywhere}.article-row h2 a{color:var(--ink);text-decoration:none}.article-row h2 a:hover{color:var(--blue)}.article-card>span:last-child{color:var(--muted);font-size:10px}
.card-head{height:72px;display:flex;align-items:center;justify-content:space-between;padding:0 25px;border-bottom:1px solid var(--line)}.card-head h3,.people-column-head h3{margin:0;font-size:21px;text-transform:uppercase;letter-spacing:.02em}.people-column-head{height:72px;display:flex;align-items:center;justify-content:space-between;margin:-13px -25px 13px;padding:0 25px;border-bottom:1px solid var(--line)}.section-actions{display:flex;align-items:center;gap:3px}.lock-button,.refresh-button{appearance:none;width:34px;min-width:34px;max-width:34px;height:34px;min-height:34px;max-height:34px;aspect-ratio:1/1;display:grid;place-items:center;flex:0 0 34px;padding:0;border:1px solid transparent;border-radius:999px;background:transparent;color:#93a0ac;cursor:pointer;line-height:0;transition:.18s}.lock-button:hover,.refresh-button:hover{background:var(--blue-soft);color:var(--blue)}.refresh-button:disabled{opacity:.35;cursor:default}.refresh-button:disabled:hover{background:transparent;color:#93a0ac}.lock-button svg,.refresh-button svg{width:17px;height:17px;display:block;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.refresh-button.loading{color:var(--blue);animation:refresh-spin .7s linear infinite}.lock-button.locked{border-color:#bdd3e6;background:var(--blue-soft);color:var(--blue)}.lock-button.locked svg rect{fill:rgba(37,108,173,.12)}@keyframes refresh-spin{to{transform:rotate(360deg)}}
.objects-card{grid-column:span 4;min-height:350px;display:flex;flex-direction:column}.people-card{grid-column:span 8;min-height:350px}.compact-case{grid-column:1/-1;display:grid;grid-template-columns:minmax(320px,5fr) minmax(380px,7fr);gap:18px;align-items:stretch}.case-stack{display:grid;grid-template-rows:1fr 1fr;gap:18px}.location-card,.date-card{min-height:275px;display:flex;flex-direction:column}
.object-list{list-style:none;counter-reset:items;margin:14px 25px 28px;padding:0}.object-list li{counter-increment:items;display:grid;grid-template-columns:30px 1fr;gap:8px;padding:13px 0;font-size:16px;font-weight:600;overflow-wrap:anywhere}.object-list li:before{content:"0" counter(items);color:var(--blue);font-size:9px;letter-spacing:.08em;padding-top:4px}.object-list a{color:var(--ink);text-decoration:none}.object-list a:hover{color:var(--blue);text-decoration:underline}
.case-parties{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:auto 0 0;padding:16px 25px 18px;border-top:1px solid #153f6d;background:#153f6d;color:#fff}.case-parties h4{margin:0 0 10px;color:rgba(255,255,255,.68);font-size:10px;text-transform:uppercase;letter-spacing:.16em}.case-parties ul{list-style:none;margin:0;padding:0}.case-parties li{min-height:34px;padding:7px 0;font-size:16px;line-height:1.25;font-weight:700;overflow-wrap:anywhere}.case-parties li.empty{color:rgba(255,255,255,.48);font-weight:500}
.people-cols{min-height:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}.people-cols>div{padding:21px 25px 25px}.people-cols>div+div{border-left:1px solid var(--line)}.people-cols h4{margin:0 0 13px;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.16em}.people-cols ul{list-style:none;counter-reset:names;padding:0;margin:0}.people-cols li{counter-increment:names;min-height:43px;padding:8px 0;display:grid;grid-template-columns:30px 1fr;gap:8px;font-size:17px;font-weight:700;line-height:1.25;overflow-wrap:anywhere}.people-cols li:before{content:"0" counter(names);color:var(--blue);font-size:9px;font-weight:800;letter-spacing:.08em;padding-top:4px}
.location-main,.date-main{display:flex;align-items:center;gap:21px;margin:auto 28px;color:var(--ink);text-decoration:none}.location-main{position:relative}.location-main:hover p{color:var(--blue)}.location-main svg,.date-main svg{width:62px;flex:0 0 auto}.location-main svg circle,.date-main svg circle{fill:var(--blue-soft)}.location-main svg path,.date-main svg path{fill:var(--blue)}.location-main p,.date-main p{margin:0;font-size:clamp(25px,2.4vw,36px);font-weight:800}.date-main p a,.date-main p a strong,.date-main p a b{color:var(--ink);text-decoration:none}.date-main p a:hover,.date-main p a:hover strong,.date-main p a:hover b{color:var(--blue)}.location-main span,.date-main>div>span{display:block;margin-top:6px;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.16em}.coordinates{display:flex;justify-content:space-between;padding:15px 28px;background:#f5f8fa;color:var(--muted);font-size:11px;font-weight:700}.flip-card{min-height:568px;display:flex;flex-direction:column;background:#153f6d;border-color:#153f6d;color:#fff}.flip-stage{position:relative;flex:1;min-height:0;perspective:1200px}.flip-face{position:absolute;inset:0;display:flex;flex-direction:column;background:#153f6d;color:#fff;backface-visibility:hidden;transform:rotateY(180deg);opacity:0;pointer-events:none;transition:transform .32s ease,opacity .18s ease}.flip-face.active{transform:rotateY(0);opacity:1;pointer-events:auto}.flip-card .card-head{border-bottom-color:rgba(255,255,255,.18)}.flip-button{appearance:none;width:34px;height:34px;display:grid;place-items:center;flex:0 0 auto;padding:0;border:1px solid transparent;border-radius:999px;background:transparent;color:rgba(255,255,255,.68);cursor:pointer;line-height:0;transition:.18s}.flip-button:hover{background:rgba(255,255,255,.12);color:#fff}.flip-button svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.map-status{margin:auto 25px;color:rgba(255,255,255,.68);font-size:14px;text-align:center}.osm-map{display:block;flex:1;min-height:0;width:calc(100% - 50px);margin:24px 25px 28px;border:1px solid rgba(255,255,255,.35);border-radius:7px;background:var(--blue-soft);filter:saturate(.72) contrast(.96);box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}.osm-map[hidden]{display:none}
.date-main strong{color:inherit}.date-main p b{font-size:clamp(22px,2vw,31px)}.date-main>div>span b{font-size:inherit}.date-main>div>span span{font:inherit;color:inherit}
.is-empty-date .date-separator{display:none}
.site-footer{width:min(1380px,calc(100% - 48px));margin:-34px auto 34px;color:var(--muted);font-size:10px;font-weight:700;line-height:1.5;text-align:center;text-transform:uppercase;letter-spacing:.12em}.site-footer p{margin:0}
@media(max-width:1200px){.header-inner{grid-template-columns:1fr auto}.header-meta{display:none}.header-actions{justify-self:end}.objects-card,.people-card,.compact-case{grid-column:1/-1}.compact-case{grid-template-columns:1fr}.case-stack{grid-template-rows:auto}}
@media(max-width:720px){.header-inner{width:calc(100% - 28px);padding:18px 0;grid-template-columns:1fr;gap:16px}.header-actions{grid-column:1/-1;width:100%;display:grid;grid-template-columns:repeat(2,1fr)}.header-actions button{padding:0 8px}#generate{min-width:0}.workspace{width:calc(100% - 28px);padding:30px 0 45px}.site-footer{width:calc(100% - 28px);margin:-24px auto 28px}.people-cols{grid-template-columns:1fr}.people-cols>div+div{border-left:0;border-top:1px solid var(--line)}.online{display:none}.workspace-meta{gap:0}.confidential-stamp{top:32px;right:55px;max-width:calc(100% - 95px);border-width:3px;padding:8px 11px;font-size:19px}.article-card{padding:23px 20px}.card-head{padding:0 20px}.location-main,.date-main{margin:36px 20px}.identity{font-size:19px}.seal{width:47px;height:47px}.dashboard{gap:12px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

/* Editierbare Aktenfelder */
.object-list li{grid-template-columns:30px minmax(0,1fr) minmax(100px,.72fr);align-items:center;min-height:51px;padding:8px 0}
.people-cols>div{padding-top:13px}
.people-cols li{grid-template-columns:30px minmax(0,1fr) minmax(125px,.7fr);align-items:center;min-height:88px}
.people-cols .item-controls{align-self:center}
.item-content{min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:3px;overflow-wrap:anywhere}.item-label{min-width:0}.item-meta{color:var(--muted);font-size:10px;line-height:1.2;font-weight:600;text-transform:uppercase;letter-spacing:.08em}.object-list li[data-state]{cursor:help}
.item-controls{min-width:0;display:grid;gap:6px}.item-note,.item-role{min-width:0;width:100%;height:34px;border:1px solid var(--line);border-radius:5px;background:#f7f9fb;padding:0 10px;color:var(--ink);font-size:13px;font-weight:400;outline:none}.item-role{appearance:auto;cursor:pointer}
.item-note::placeholder{color:#98a4ae}
.item-note:focus,.item-role:focus{border-color:var(--blue);background:#fff;box-shadow:0 0 0 3px var(--blue-soft)}
#generate{justify-content:center}

/* Datum im gleichen Aufbau wie der Tatort */
.date-main p strong,.date-main p b{color:var(--ink);font:inherit}
.date-main>div>span{font-weight:400}
.date-footer{display:flex;justify-content:flex-end;padding:15px 28px;background:#f5f8fa;color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.08em}

.notes-card{display:flex;flex-direction:column}
.notes-card textarea{display:block;flex:1;width:calc(100% - 50px);min-height:0;margin:24px 25px 28px;padding:17px 18px;border:1px solid rgba(255,255,255,.35);border-radius:6px;background:#fff;color:var(--ink);font-size:16px;line-height:1.5;resize:none;outline:none}
.notes-card textarea:focus{border-color:var(--blue);background:#fff;box-shadow:0 0 0 3px var(--blue-soft)}

@media(max-width:720px){
  .compact-case{grid-template-columns:1fr}
  .case-stack{grid-template-columns:1fr}
  .flip-card{min-height:420px}
  .object-list li,.people-cols li{grid-template-columns:30px minmax(0,1fr)}
  .item-controls{grid-column:2/-1}
  .notes-card textarea{width:calc(100% - 40px);margin:20px}
  .osm-map{width:calc(100% - 40px);height:300px;margin:20px}
}

/* Version 4: blaue Titelzeilen, weiße Kartenflächen */
.article-card{border-top-color:#153f6d}
.article-top{height:48px}
.card-head,.people-column-head{height:48px;padding-left:14px;background:#153f6d;color:#fff;border-bottom-color:#153f6d}
.card-head h3,.people-column-head h3{display:flex;align-items:center;gap:9px;color:#fff;font-size:17px}
.card-head h3:before,.people-column-head h3:before{content:"";width:38px;height:10px;flex:0 0 auto;border-radius:999px;background:radial-gradient(circle at 5px 5px,#ff6b5d 0 4px,transparent 4.5px),radial-gradient(circle at 19px 5px,#ffd166 0 4px,transparent 4.5px),radial-gradient(circle at 33px 5px,#7bd88f 0 4px,transparent 4.5px)}
.card-head .refresh-button,.card-head .lock-button,.people-column-head .refresh-button,.people-column-head .lock-button,.flip-button{color:rgba(255,255,255,.72)}
.card-head .refresh-button:hover,.card-head .lock-button:hover,.people-column-head .refresh-button:hover,.people-column-head .lock-button:hover,.flip-button:hover{background:rgba(255,255,255,.12);color:#fff}
.card-head .refresh-button:disabled,.people-column-head .refresh-button:disabled{opacity:.35;color:rgba(255,255,255,.72);cursor:default}.card-head .refresh-button:disabled:hover,.people-column-head .refresh-button:disabled:hover{background:transparent;color:rgba(255,255,255,.72)}
.card-head .lock-button.locked,.people-column-head .lock-button.locked{border-color:rgba(255,255,255,.42);background:rgba(255,255,255,.14);color:#fff}
.flip-card{background:var(--paper);border-color:var(--line);color:var(--ink)}
.flip-face{background:var(--paper);color:var(--ink)}
.flip-card .card-head{border-bottom-color:#153f6d}
.map-status{color:var(--muted)}
.osm-map{border-color:#b9cddd;box-shadow:inset 0 0 0 1px rgba(37,108,173,.08)}
.notes-card textarea{border-color:var(--line);background:#f7f9fb;color:var(--ink)}
.notes-card textarea:focus{border-color:var(--blue);background:#fff;box-shadow:0 0 0 3px var(--blue-soft)}

body.dark-mode .blue-header{background:#153f6d}
body.dark-mode .card{box-shadow:0 8px 22px rgba(0,0,0,.24)}
body.dark-mode .coordinates,body.dark-mode .date-footer{background:#1a3348;color:#c5d4df;border-top:1px solid #3d5a70}
body.dark-mode .item-note,body.dark-mode .item-role,body.dark-mode .notes-card textarea{background:#0d1b2a;border-color:#36516a;color:var(--ink)}
body.dark-mode .item-note::placeholder,body.dark-mode .notes-card textarea::placeholder{color:#7f91a2}
body.dark-mode .item-note:focus,body.dark-mode .item-role:focus,body.dark-mode .notes-card textarea:focus{background:#12283c;border-color:var(--blue);box-shadow:0 0 0 3px rgba(107,166,220,.2)}
body.dark-mode .article-row h2 a,body.dark-mode .object-list a,body.dark-mode .date-main p a,body.dark-mode .date-main p a strong,body.dark-mode .date-main p a b{color:var(--ink)}
body.dark-mode .article-row h2 a:hover,body.dark-mode .object-list a:hover,body.dark-mode .date-main p a:hover,body.dark-mode .date-main p a:hover strong,body.dark-mode .date-main p a:hover b,body.dark-mode .location-main:hover p{color:var(--blue)}
body.dark-mode .location-main svg circle,body.dark-mode .date-main svg circle{fill:#1f3f5f}
body.dark-mode .location-main svg path,body.dark-mode .date-main svg path{fill:#d8e8f6}
body.dark-mode .object-list li:before,body.dark-mode .people-cols li:before{color:#d8e8f6}
body.dark-mode .osm-map{background:#0d1b2a;border-color:#36516a}
body.dark-mode #generate{background:#e8f1f8;color:#102f52}
body.dark-mode .flip-card,body.dark-mode .flip-face{background:var(--paper);color:var(--ink)}
body.dark-mode .map-status{color:var(--muted)}

@page{size:A4 landscape;margin:8mm}
@media print{
  :root{color-scheme:light}
  *{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  body{background:#fff}
  .header-inner,.workspace,.site-footer{width:100%;max-width:none}
  .blue-header{box-shadow:none}
  .header-inner{min-height:95px;gap:22px}
  .header-actions,.lock-button,.refresh-button,.online{display:none!important}
  .workspace{padding:22px 0 0}
  .site-footer{margin:12px auto 0;font-size:8px}
  .workspace-head{margin-bottom:18px}
  .workspace-head h1{font-size:34px}
  .confidential-stamp{color:rgba(178,45,45,.58);border-color:rgba(178,45,45,.45)}
  .dashboard{gap:10px}
  .card{box-shadow:none;break-inside:avoid}
  .article-card{padding:20px 24px 22px}
  .article-row h2{font-size:31px}
  .card-head{height:58px}
  .objects-card,.people-card{min-height:320px}
  .location-card,.date-card{min-height:220px}
  .osm-map{height:145px}
  .notes-card textarea{min-height:130px;background:#fff}
  a{color:inherit!important;text-decoration:none!important}
}
