/* ==========================================================================
   Tiernotruf Saarland e.V. – Intranet im Stil der neuen Website
   Wird NACH assets/app.css geladen und ändert nur das Aussehen:
   Navy / Signalgelb / Rettungsrot, Outfit + Manrope, kantige Flächen.
   Farben stehen oben unter :root.
   ========================================================================== */
@font-face{font-family:Outfit;font-weight:800;font-display:swap;src:url(fonts/outfit-800.woff2) format("woff2")}
@font-face{font-family:Outfit;font-weight:900;font-display:swap;src:url(fonts/outfit-900.woff2) format("woff2")}
@font-face{font-family:Manrope;font-weight:400;font-display:swap;src:url(fonts/manrope-400.woff2) format("woff2")}
@font-face{font-family:Manrope;font-weight:600;font-display:swap;src:url(fonts/manrope-600.woff2) format("woff2")}
@font-face{font-family:Manrope;font-weight:700;font-display:swap;src:url(fonts/manrope-700.woff2) format("woff2")}

:root{
  --tn-navy:#0a192f;--tn-navy2:#112240;--tn-hivis:#e4ff00;--tn-red:#dc2626;--tn-red-d:#b91c1c;
  --tn-paper:#f4f5f6;--tn-muted:#4d5b73;--tn-line:#d7dce3;
  --tn-disp:Outfit,system-ui,-apple-system,"Segoe UI",sans-serif;
  --tn-body:Manrope,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  /* bisherige Variablen auf die neuen Farben umlenken */
  --teal:#0a192f;--orange:#e4ff00;--navy:#0a192f;--bg:#f4f5f6;--red:#dc2626;--line:#d7dce3;
  --gelb:#e4ff00;--rot:#dc2626;--grau:#f4f5f6;--border:#d7dce3;
}
*{border-radius:0!important}
body{font-family:var(--tn-body);background:var(--tn-paper);color:var(--tn-navy);line-height:1.5;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{font-family:var(--tn-disp);font-weight:900;text-transform:uppercase;letter-spacing:-.015em;color:var(--tn-navy);line-height:1.02}
h1{font-size:clamp(1.75rem,3.2vw,2.75rem);letter-spacing:-.03em}
h2{font-size:1.375rem}
h3{font-size:1.0625rem;font-weight:800}
a{color:var(--tn-navy)}
.muted{color:var(--tn-muted)}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--tn-hivis);outline-offset:2px;box-shadow:0 0 0 5px var(--tn-navy)}

/* ---------- Kopfzeile ---------- */
.sitehead{background:#fff;color:var(--tn-navy);border-bottom:1px solid rgba(10,25,47,.12)}
.sitebrand{color:var(--tn-navy)}
.sitebrand-mark{position:relative;width:42px;height:42px;border:0;background:var(--tn-navy);color:var(--tn-hivis);font:900 .8125rem/1 var(--tn-disp);letter-spacing:0}
.sitebrand-mark::after{content:"";position:absolute;right:-4px;top:-4px;width:10px;height:10px;border-radius:50%!important;background:var(--tn-red)}
.sitebrand b{font:900 1rem/1 var(--tn-disp);text-transform:uppercase;letter-spacing:.01em}
.sitebrand small{color:var(--tn-muted);font-size:.6875rem;letter-spacing:.06em}
.publicnav a{color:var(--tn-navy);font:800 .6875rem/1.15 var(--tn-disp);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}
.publicnav a:hover{background:var(--tn-hivis);color:var(--tn-navy)}
.publicnav .nav-login{border:2px solid var(--tn-navy);color:var(--tn-navy)}
.publicnav .nav-login:hover{background:var(--tn-navy);color:var(--tn-hivis)}
.emergency-nav-link{background:var(--tn-red)!important;color:#fff!important;box-shadow:0 3px 0 0 var(--tn-red-d);padding:.7rem .9rem!important}
.emergency-nav-link:hover{background:var(--tn-red-d)!important;color:#fff!important}

/* ---------- Leiste "Einsatzzentrale" ---------- */
.internal-nav-bar{background:var(--tn-navy);border:0;box-shadow:none}
.internal-nav-bar::after{content:"";position:absolute;left:0;right:0;top:100%;height:.5rem;background:repeating-linear-gradient(-45deg,var(--tn-hivis) 0 1rem,var(--tn-navy) 1rem 2rem)}
.hamburger-btn{background:transparent;border:2px solid #fff}
.hamburger-btn:hover{background:var(--tn-hivis);border-color:var(--tn-hivis)}
.hamburger-btn:hover span{background:var(--tn-navy)}
.internal-home b{font:900 1rem/1 var(--tn-disp);letter-spacing:.05em}
.internal-home small{opacity:.8}
.quick-dispatch{background:var(--tn-red);color:#fff;font:800 .8125rem/1 var(--tn-disp);letter-spacing:.08em;box-shadow:0 3px 0 0 var(--tn-red-d);border:0}
.quick-dispatch:hover{background:var(--tn-red-d)}
.wrap{margin-top:2.25rem}
.public-wrap{margin-top:0}

/* ---------- Menü: Hauptmenüs mit Untermenüs, wie auf der Website ---------- */
.nav-drawer{background:var(--tn-navy);color:#fff;box-shadow:none;border-right:2px solid var(--tn-hivis)}
.nav-drawer-head{background:var(--tn-navy);color:#fff;border-bottom:1px solid rgba(255,255,255,.15)}
.nav-drawer-head b{font:900 1rem/1 var(--tn-disp);text-transform:uppercase}
.nav-drawer-head button{background:var(--tn-hivis);color:var(--tn-navy);font-size:1.5rem;font-family:var(--tn-body)}
.nav-drawer-body{padding:.5rem 1rem}
.nav-group{margin:0;border:0;border-bottom:1px solid rgba(255,255,255,.14);background:transparent}
.nav-group-title{background:transparent;color:#fff;font:900 1.125rem/1.1 var(--tn-disp);letter-spacing:-.005em;text-transform:uppercase;padding:1rem .5rem}
.nav-group-title:hover{background:rgba(228,255,0,.08)}
.nav-group:not(.collapsed) .nav-group-title{color:var(--tn-hivis)}
.nav-submenu{padding:0 0 .75rem}
.nav-submenu a{color:#fff;font-weight:600;padding:.6rem .75rem}
.nav-submenu a:hover{background:rgba(228,255,0,.1);color:#fff}
.nav-submenu a.active{background:var(--tn-hivis);color:var(--tn-navy);font-weight:800}
.nav-drawer-foot{background:var(--tn-navy);border-top:1px solid rgba(255,255,255,.15)}
.nav-drawer-foot a{background:transparent;border:2px solid #fff;color:#fff;font:800 .8125rem/1 var(--tn-disp);letter-spacing:.08em;text-transform:uppercase;text-decoration:none}
.nav-drawer-foot a:hover{background:var(--tn-hivis);border-color:var(--tn-hivis);color:var(--tn-navy)}
.nav-drawer-backdrop{background:rgba(10,25,47,.6)}

/* ---------- Karten, Kennzahlen, Tabellen ---------- */
.card,.contact-card,.board-post,.qr-card,.publish-row,.mission-card,.emergency-form-card,.detail-copy,.detail-facts div,.decision-box,.card-soft{border:2px solid var(--tn-navy);box-shadow:none;background:#fff}
.board-post{border-left-width:.5rem}
.board-post.priority-important{border-left-color:#d98b16}
.board-post.priority-urgent{border-left-color:var(--tn-red)}
.contact-card.favorite{border-color:var(--tn-navy);box-shadow:.375rem .375rem 0 0 var(--tn-hivis),.375rem .375rem 0 2px var(--tn-navy)}
.kpi{background:var(--tn-navy);border:0;color:rgba(255,255,255,.82);font-weight:600}
.kpi strong{color:#fff;font:900 2.25rem/1 var(--tn-disp);letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin-bottom:.35rem}
.kpi small,.finance-kpis .kpi small,.commerce-income-kpis .kpi small{color:rgba(255,255,255,.7)}
.kpis .kpi:first-child strong{color:var(--tn-hivis)}
.finance-negative-kpi{background:var(--tn-navy);border:0;border-left:.5rem solid var(--tn-red)}
.finance-negative-kpi strong{color:#ff9d9d}
.dispatch-kpi{box-shadow:none;border:2px solid var(--tn-navy);border-top-width:.5rem}
.dispatch-kpi strong{font:900 2rem/1 var(--tn-disp)}
.cost-kpis>div,.cost-live-total,.decision-result{background:#fff;border:2px solid var(--tn-line)}
.cost-kpis .cost-grand,.cost-total-box{background:var(--tn-navy);border-color:var(--tn-navy);color:#fff}
.cost-kpis .cost-grand span{color:rgba(255,255,255,.75)}
.cost-kpis .cost-grand strong{color:var(--tn-hivis)}
table{font-size:.9375rem}
th{font:800 .75rem/1.2 var(--tn-disp);letter-spacing:.07em;text-transform:uppercase;border-bottom:2px solid var(--tn-navy);color:var(--tn-navy)}
td{border-bottom:1px solid var(--tn-line)}
.qual-matrix td:first-child{background:#fff}
.section{border-left:.5rem solid var(--tn-navy)}
.section.fire{border-color:var(--tn-red)}
.eyebrow{color:var(--tn-muted);letter-spacing:.06em}
.income-card{border-top:.5rem solid var(--tn-navy)}
.expense-card{border-top:.5rem solid var(--tn-red)}
.commerce-income-form-card{border-top:.5rem solid var(--tn-navy)}

/* ---------- Schaltflächen ---------- */
button,.btn{font-family:var(--tn-disp);font-weight:800;font-size:.8125rem;letter-spacing:.07em;text-transform:uppercase;line-height:1.15}
.primary{background:var(--tn-navy);color:#fff}
.primary:hover{background:var(--tn-hivis);color:var(--tn-navy);box-shadow:inset 0 0 0 2px var(--tn-navy)}
.secondary{background:#fff;color:var(--tn-navy);box-shadow:inset 0 0 0 2px var(--tn-navy)}
.secondary:hover{background:var(--tn-navy);color:var(--tn-hivis)}
.orange{background:var(--tn-hivis);color:var(--tn-navy);box-shadow:inset 0 0 0 2px var(--tn-navy)}
.danger,.contact-actions .danger{background:var(--tn-red);color:#fff;border-color:var(--tn-red)}
.danger:hover{background:var(--tn-red-d)}
.link-button{font-family:var(--tn-body);font-size:inherit;font-weight:700;letter-spacing:0;text-transform:none;color:var(--tn-navy)}
.backlink,.mission-card a,.mission-place{color:var(--tn-navy)}
.backlink,.mission-card a{font-weight:800;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:.2em;text-decoration-color:var(--tn-hivis)}

/* ---------- Formulare ---------- */
label{font-weight:700}
input,select,textarea{border:2px solid var(--tn-navy);background:#fff;color:var(--tn-navy);font-family:var(--tn-body)}
input[type=checkbox],input[type=radio]{accent-color:var(--tn-navy)}
input[readonly],input:disabled,select:disabled,textarea:disabled{background:var(--tn-paper);border-color:var(--tn-line)}
input[type=file]{border-style:dashed;background:var(--tn-paper)}
.notice{border:2px solid #d9a441;border-left-width:.5rem;background:#fff8e6}
.notice.ok,.ok{background:#e9f7ee;border-color:#15803d}
.notice.error,.error{background:#fef2f2;border-color:var(--tn-red)}
.equipment-access-note,.finance-access-note,.commerce-income-note,.privacy-box,.dispatch-situation,.emergency-alert{background:#fff;border:2px solid var(--tn-line);border-left:.5rem solid var(--tn-navy);color:var(--tn-navy)}
.emergency-alert{border-left-color:var(--tn-red)}
.badge,.detail-badge,.board-category,.contact-category{background:var(--tn-navy);color:var(--tn-hivis);font-family:var(--tn-disp);letter-spacing:.05em;text-transform:uppercase}
.badge.warning{background:#fff0cf;color:#805000}
.badge.success{background:#dff3e4;color:#176532}
.board-private,.contact-count{background:var(--tn-navy);color:var(--tn-hivis);border:0;font-family:var(--tn-disp)}
.dispatch-live{background:var(--tn-red);font-family:var(--tn-disp)}
.dispatch-status,.priority,.qual-badge,.qual-kpi,.board-priority,.board-pin{font-family:var(--tn-disp);letter-spacing:.04em;text-transform:uppercase}
.flow-step.current{outline:3px solid var(--tn-navy);box-shadow:.25rem .25rem 0 0 var(--tn-hivis)}
.timeline-row:before{background:var(--tn-hivis);border-color:var(--tn-navy)}
.dispatch-timeline{border-left-color:var(--tn-navy)}
.atlas-choice{border:2px solid var(--tn-line);box-shadow:none}
.atlas-choice.active{border-color:var(--tn-navy);background:var(--tn-hivis);box-shadow:none}
.incident-photo-field{background:#fff;border:2px solid var(--tn-line)}
.incident-photo-preview{border:2px dashed var(--tn-line)}
.gps-panel{background:#fff;border:2px solid var(--tn-navy)}
.gps-icon{color:var(--tn-navy)}
.gps-button{background:var(--tn-navy);color:#fff}
.gps-button:hover{background:var(--tn-hivis);color:var(--tn-navy)}
.privacy-check,.legal-consent .checkline{background:var(--tn-paper);border:1px solid var(--tn-line)}
.membership-choice{border:2px solid var(--tn-line)}
.membership-choice:has(input:checked){border-color:var(--tn-navy);background:var(--tn-hivis);box-shadow:.25rem .25rem 0 0 var(--tn-navy)}
.membership-choice small{color:var(--tn-navy)}
.membership-fee{color:var(--tn-navy)}
.member-apply-form .form-progress span{height:.5rem;background:var(--tn-line)}
.member-apply-form .form-progress span.done{background:var(--tn-navy)}
.member-apply-form .field-ok{border-color:#15803d!important;background:#f3faf5}
.member-apply-form .field-hint.ok{color:#15803d}

/* ---------- Anmeldung ---------- */
.login{border:2px solid var(--tn-navy);box-shadow:.5rem .5rem 0 0 var(--tn-navy)}
.login:before{color:var(--tn-muted);font-family:var(--tn-disp);letter-spacing:.14em}
.login .primary{width:100%;padding:1rem;background:var(--tn-red);box-shadow:0 4px 0 0 var(--tn-red-d)}
.login .primary:hover{background:var(--tn-red-d);color:#fff}

/* ---------- Öffentlicher Bereich des Intranets ---------- */
.hero{background:var(--tn-navy);border-bottom:.875rem solid transparent;border-image:repeating-linear-gradient(-45deg,var(--tn-hivis) 0 1.125rem,var(--tn-navy) 1.125rem 2.25rem) 14}
.hero h1{color:#fff;font-size:clamp(2.25rem,5.4vw,4.75rem);line-height:.94}
.hero-kicker{color:var(--tn-hivis);font-family:var(--tn-disp);letter-spacing:.12em}
.hero p{color:rgba(255,255,255,.86)}
.hero-btn{font:800 .9375rem/1.1 var(--tn-disp);letter-spacing:.07em;text-transform:uppercase}
.hero-btn.primary{background:var(--tn-hivis);color:var(--tn-navy);box-shadow:none}
.hero-btn.primary:hover{background:#fff}
.hero-btn.ghost{border:2px solid rgba(255,255,255,.7);background:transparent}
.hero-btn.ghost:hover{background:#fff;color:var(--tn-navy)}
.public-kpis{border:2px solid var(--tn-navy);box-shadow:.5rem .5rem 0 0 var(--tn-navy);background:#fff}
.public-kpis div{border-right:2px solid var(--tn-navy)}
.public-kpis strong{color:var(--tn-navy);font:900 2.25rem/1 var(--tn-disp)}
.public-kpis span{color:var(--tn-muted)}
.section-title>span{color:var(--tn-muted);font-family:var(--tn-disp)}
.section-title h2{color:var(--tn-navy);font-size:clamp(1.75rem,3.4vw,3rem)}
.mission-card.found{border-top:.5rem solid var(--tn-hivis)}
.mission-card h3{color:var(--tn-navy);font-size:1.25rem}
.empty-public{border:2px dashed var(--tn-navy)}
.emergency-cta{background:var(--tn-navy)}
.emergency-cta span{color:var(--tn-hivis);font-family:var(--tn-disp)}
.emergency-cta h2{color:#fff}
.emergency-cta a{background:var(--tn-red);color:#fff;font:800 .9375rem/1 var(--tn-disp);letter-spacing:.07em;text-transform:uppercase;box-shadow:0 4px 0 0 var(--tn-red-d)}
.public-detail h1{color:var(--tn-navy)}
.member-apply-hero,.emergency-report-hero{background:var(--tn-navy);box-shadow:none}
.member-apply-hero h1,.emergency-report-hero h1{color:#fff}
.member-apply-hero span,.emergency-report-kicker{color:var(--tn-hivis);opacity:1;font-family:var(--tn-disp)}
.emergency-submit{background:var(--tn-red);box-shadow:0 4px 0 0 var(--tn-red-d);font-family:var(--tn-disp)}
.emergency-phone-fallback a,.emergency-call-btn{background:var(--tn-navy)}
.emergency-thanks{border:2px solid var(--tn-navy);box-shadow:.5rem .5rem 0 0 var(--tn-navy)}
.thanks-check{background:var(--tn-hivis);color:var(--tn-navy)}

/* ---------- Fußbereich ---------- */
.footer{background:var(--tn-navy);color:rgba(255,255,255,.76)}
.footer b{font:900 1rem/1 var(--tn-disp);text-transform:uppercase;color:#fff}
.footer a{color:#fff}
.footer a:hover{color:var(--tn-hivis)}

/* ---------- ältere Einzelseiten (assets/intranet.css) ---------- */
.topbar{background:var(--tn-navy);border-bottom:.25rem solid var(--tn-hivis)}
.topbar h1{color:#fff}
fieldset{border:2px solid var(--tn-navy)}
legend{font-family:var(--tn-disp);text-transform:uppercase}

@media(max-width:800px){.wrap{margin-top:1.75rem}.public-wrap{margin-top:0}}
@media print{.internal-nav-bar,.nav-drawer,.sitehead,.footer{display:none!important}body{background:#fff}}
