@font-face{font-family:Barlow;font-weight:400;font-display:swap;src:url(fonts/barlow-latin-400-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+2000-206F,U+20AC}
@font-face{font-family:Barlow;font-weight:400;font-display:swap;src:url(fonts/barlow-latin-ext-400-normal.woff2) format("woff2");unicode-range:U+0100-02AF,U+1E00-1EFF}
@font-face{font-family:Barlow;font-weight:500;font-display:swap;src:url(fonts/barlow-latin-500-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+2000-206F,U+20AC}
@font-face{font-family:Barlow;font-weight:500;font-display:swap;src:url(fonts/barlow-latin-ext-500-normal.woff2) format("woff2");unicode-range:U+0100-02AF,U+1E00-1EFF}
@font-face{font-family:"Barlow SC";font-weight:600;font-display:swap;src:url(fonts/barlow-semi-condensed-latin-600-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+2000-206F,U+20AC}
@font-face{font-family:"Barlow SC";font-weight:600;font-display:swap;src:url(fonts/barlow-semi-condensed-latin-ext-600-normal.woff2) format("woff2");unicode-range:U+0100-02AF,U+1E00-1EFF}

/* Richtmeister – Stylesheet. Fassung 2026-11-15 / 12: neues Aussehen mit hellem und dunklem Farbschema.
   Das Schema setzt thema.js als data-thema="hell|dunkel" am html-Element (Wahl in den Einstellungen: wie das Gerät, hell, dunkel). */
:root{
  --papier:#eef1f4; --flaeche:#fff; --ton:#e6ecf1; --ton-stark:#d7e0e7;
  --tinte:#12304a; --leise:#566573; --linie:#dfe5ea; --rand:#b7c3cc;
  --schnur:#1f5fa8; --schnur-hell:#e1ecf9; --auf-schnur:#fff;
  --stark:#12304a; --auf-stark:#fff;
  --holz:#e9d8b4; --rot:#c8102e; --rot-hell:#fdecef; --gelb:#f2b705; --gelb-hell:#fff5d1; --auf-gelb:#12304a; --gruen:#2e7d4f;
  --nav-flaeche:rgba(255,255,255,.92); --schleier:rgba(18,48,74,.45);
  --schatten:0 1px 2px rgba(18,48,74,.05),0 6px 18px rgba(18,48,74,.06);
  --r:14px; --r-klein:10px; --nav:66px;
  color-scheme:light;
}
:root[data-thema="dunkel"]{
  --papier:#0d1620; --flaeche:#15222f; --ton:#1f3142; --ton-stark:#2a3f54;
  --tinte:#e8eef3; --leise:#9aadbd; --linie:#263849; --rand:#3d5368;
  --schnur:#74b3f7; --schnur-hell:#1b3a5b; --auf-schnur:#07131f;
  --stark:#e8eef3; --auf-stark:#0d1620;
  --rot:#e5484d; --rot-hell:#3b1c22; --gelb:#f2b705; --gelb-hell:#3a3110; --gruen:#2f9461;
  --nav-flaeche:rgba(21,34,47,.92); --schleier:rgba(2,8,14,.62);
  --schatten:none;
  color-scheme:dark;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--papier);color:var(--tinte);font:400 17px/1.45 Barlow,system-ui,"Segoe UI",Roboto,sans-serif;overscroll-behavior-y:none}
h1,h2,h3,.zahl{font-family:"Barlow SC",Barlow,system-ui,sans-serif;font-weight:600;line-height:1.15;margin:0}
h1{font-size:2rem;letter-spacing:-.01em} h2{font-size:1.3rem} h3{font-size:1.1rem}
p{margin:0 0 .6em} a{color:var(--schnur)}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--schnur);outline-offset:2px}
.laden{padding:3rem 1rem;color:var(--leise)}

#app{max-width:980px;margin:0 auto;padding:18px 16px calc(var(--nav) + 30px)}
.kopf{margin:4px 0 20px}
.kopf .zurueck{display:inline-block;margin-bottom:6px;text-decoration:none;font-weight:500}
/* Maßkette: das wiederkehrende Zeichen der App */
.mass{display:flex;align-items:center;gap:8px;margin-top:8px;color:var(--leise);font-size:.9rem}
.mass::before,.mass::after{content:"";height:11px;border-inline-start:1.5px solid var(--rand)}
.mass i{flex:1;border-top:1.5px solid var(--rand);height:0}
.mass span{font-style:normal;white-space:nowrap}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 18px;border:1px solid transparent;border-radius:var(--r-klein);background:var(--ton);font-weight:500;cursor:pointer;text-decoration:none;color:var(--tinte)}
.btn:hover{background:var(--ton-stark)}
.btn.haupt{background:var(--schnur);color:var(--auf-schnur)}
.btn.haupt:hover{filter:brightness(1.07)}
.btn.gefahr{background:var(--rot-hell);color:var(--rot)}
.btn.klein{min-height:40px;padding:0 13px;font-size:.95rem}
.btn:disabled{opacity:.5;cursor:default}
.reihe{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.reihe.weit{justify-content:space-between}
.abstand{margin-top:16px}
.balken{height:14px;border-radius:999px;margin:10px 0 6px;background:var(--ton);overflow:hidden}
.balken span{display:block;height:100%;background:var(--gruen);border-radius:999px}
.lernkarte{min-height:230px;cursor:pointer}
.zahl.gross{font-size:1.8rem;margin:2px 0}
.blatt.warn{border-inline-start:5px solid var(--rot)}
table.plan td{padding:4px;min-width:118px} table.plan td:first-child{min-width:130px}
.planwahl{min-height:42px;padding:6px 8px;font-size:.9rem}
.reihe.eng{flex-wrap:nowrap;align-items:flex-start}
.reihe.eng .ampel{margin-top:5px}

.blatt{background:var(--flaeche);border:1px solid var(--linie);border-radius:var(--r);padding:16px 18px;margin-bottom:12px;box-shadow:var(--schatten)}
.blatt.holz{border-inline-start:5px solid var(--holz)}
a.blatt{display:block;text-decoration:none;color:inherit}
a.blatt:hover{border-color:var(--schnur)}
.liste{list-style:none;margin:0;padding:0}
.liste>li{display:flex;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--linie)}
.liste>li:last-child{border-bottom:0}
.liste .mitte{flex:1;min-width:0}
.leise{color:var(--leise);font-size:.92rem}
.leer{padding:22px 4px;color:var(--leise)}

label.feld{display:block;margin-bottom:12px;font-weight:500;font-size:.95rem}
label.feld>span{display:block;margin-bottom:4px}
input,select,textarea{width:100%;min-height:48px;padding:10px 12px;border:1px solid var(--rand);border-radius:var(--r-klein);background:var(--flaeche)}
:root[data-thema="dunkel"] input,:root[data-thema="dunkel"] select,:root[data-thema="dunkel"] textarea{background:var(--papier)}
input:focus,select:focus,textarea:focus{border-color:var(--schnur)}
input::placeholder,textarea::placeholder{color:var(--leise);opacity:.8}
textarea{min-height:110px;resize:vertical}
input[type=checkbox]{width:24px;min-height:24px;height:24px;accent-color:var(--schnur)}
input[type=file]{padding:9px 12px}
label.haken{display:flex;gap:10px;align-items:center;margin-bottom:12px;font-weight:500}
.raster{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:0 12px}
.raster.breit{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}
.mit-einheit{display:flex;align-items:center;gap:6px}
.mit-einheit em{font-style:normal;color:var(--leise);min-width:2.2em}

.reiter{display:flex;gap:6px;overflow-x:auto;margin:0 -16px 16px;padding:0 16px 6px;scrollbar-width:none}
.reiter a{flex:none;padding:9px 15px;border-radius:999px;background:var(--ton);text-decoration:none;color:var(--tinte);font-weight:500}
.reiter a.an{background:var(--stark);color:var(--auf-stark)}

.ampel{display:inline-block;width:14px;height:14px;border-radius:50%;flex:none;box-shadow:0 0 0 3px var(--ton)}
.ampel.gruen{background:var(--gruen)} .ampel.gelb{background:var(--gelb)} .ampel.rot{background:var(--rot)} .ampel.grau{background:var(--rand)}
.marke{display:inline-block;padding:2px 10px;border-radius:999px;font-size:.85rem;font-weight:500;background:var(--schnur-hell)}
.marke.rot{background:var(--rot);color:#fff} .marke.gelb{background:var(--gelb);color:var(--auf-gelb)} .marke.gruen{background:var(--gruen);color:#fff}
.hinweis{border-inline-start:4px solid var(--gelb);background:var(--gelb-hell);padding:11px 14px;border-radius:var(--r-klein);margin-bottom:12px;font-size:.95rem}
.hinweis.rot{border-color:var(--rot);background:var(--rot-hell)}
.hinweis ul{margin:0;padding-inline-start:18px}
.wert{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid var(--linie)}
.wert:last-child{border-bottom:0}
.wert b{font-family:"Barlow SC",Barlow,sans-serif;font-weight:600;font-size:1.1rem;text-align:end}
details{margin-top:8px} summary{cursor:pointer;font-weight:500;color:var(--schnur)}
details ol,details ul{padding-inline-start:20px;font-size:.93rem}
table{width:100%;border-collapse:collapse;font-size:.95rem}
th,td{text-align:start;padding:8px 6px;border-bottom:1px solid var(--linie);vertical-align:top}
th{font-weight:500;color:var(--leise)} td.r,th.r{text-align:end;white-space:nowrap}
.rollbar{overflow-x:auto}
pre.text{white-space:pre-wrap;font:inherit;margin:0}

.kacheln{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.kachel{position:relative;aspect-ratio:1;border-radius:var(--r);overflow:hidden;background:var(--ton);display:block;text-decoration:none;color:#fff}
.kachel img{width:100%;height:100%;object-fit:cover;display:block}
.kachel .fuss{position:absolute;inset:auto 0 0 0;padding:18px 10px 8px;background:linear-gradient(transparent,rgba(9,22,34,.86));font-size:.85rem}
.kachel .ecke{position:absolute;top:6px;inset-inline-end:6px;display:flex;gap:4px}
.kachel.dok{display:flex;align-items:center;justify-content:center;color:var(--tinte);font-weight:500;padding:10px;text-align:center}

.bild{position:relative;background:var(--ton);border-radius:var(--r);overflow:hidden;touch-action:pan-y;user-select:none}
.bild.zeichnen{touch-action:none;cursor:crosshair}
.bild img{display:block;width:100%;height:auto;pointer-events:none}
.box{position:absolute;border:3px solid var(--gelb);background:rgba(242,183,5,.18);cursor:pointer}
.box b{position:absolute;top:-3px;inset-inline-start:-3px;min-width:24px;height:24px;padding:0 5px;background:var(--gelb);color:var(--auf-gelb);font:600 15px/24px "Barlow SC",sans-serif;text-align:center}
.box.kritisch,.box.schaden{border-color:#c8102e;background:rgba(200,16,46,.18)} .box.kritisch b,.box.schaden b{background:#c8102e;color:#fff}
.box.schaden{border-style:dashed}
.box.saniert{border-color:#2e7d4f;background:rgba(46,125,79,.2)} .box.saniert b{background:#2e7d4f;color:#fff}
.box.bauteil,.box.arbeitsschritt{border-color:#1f5fa8;background:rgba(31,95,168,.14)} .box.bauteil b,.box.arbeitsschritt b{background:#1f5fa8;color:#fff;min-width:0;white-space:nowrap}
.box.gewaehlt{box-shadow:0 0 0 3px #fff,0 0 0 6px #12304a}
.box.neu{border-style:dotted;pointer-events:none}
.box.pixel{border-color:#12304a;background:repeating-conic-gradient(rgba(18,48,74,.55) 0 25%,rgba(18,48,74,.25) 0 50%) 0 0/14px 14px;pointer-events:none}
.nr{display:inline-block;min-width:26px;height:26px;padding:0 6px;border-radius:6px;font:600 15px/26px "Barlow SC",sans-serif;text-align:center;background:var(--gelb);color:var(--auf-gelb);flex:none}
.nr.kritisch,.nr.schaden{background:#c8102e;color:#fff} .nr.saniert{background:#2e7d4f;color:#fff} .nr.bauteil,.nr.arbeitsschritt{background:#1f5fa8;color:#fff}

.chat{display:flex;flex-direction:column;gap:10px;margin-bottom:14px}
.chat div{max-width:88%;padding:11px 15px;border-radius:var(--r);border-end-start-radius:4px;white-space:pre-wrap;border:1px solid var(--linie);background:var(--flaeche)}
.chat .user{align-self:flex-end;background:var(--schnur);border-color:var(--schnur);color:var(--auf-schnur);border-end-start-radius:var(--r);border-end-end-radius:4px}
.eingabe{display:flex;gap:8px;align-items:flex-end;position:sticky;bottom:var(--nav);background:var(--papier);padding:8px 0 12px}
.eingabe textarea{min-height:48px;height:48px;flex:1}
.mikro.an{background:var(--rot);color:#fff}

#nav{position:fixed;inset:auto 0 0 0;height:var(--nav);display:flex;background:var(--nav-flaeche);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-top:1px solid var(--linie);z-index:20;padding-bottom:env(safe-area-inset-bottom)}
#nav a{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--leise);text-decoration:none;font-size:.78rem;font-weight:500}
#nav a.an{color:var(--schnur)}
#nav svg{width:24px;height:24px;padding:4px 18px;box-sizing:content-box;border-radius:999px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
#nav a.an svg{background:var(--schnur-hell)}

#nav[hidden]{display:none}
.sprechreihe{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:6px 0 10px}
.sprech{min-height:110px;flex-direction:column;gap:2px;touch-action:none;user-select:none;-webkit-user-select:none}
.sprech b{font:600 1.3rem 'Barlow SC',Barlow,sans-serif}
.sprech.an{background:var(--rot);color:#fff}
#schicht{position:fixed;inset:0;background:var(--schleier);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:40;display:flex;align-items:flex-end;justify-content:center}
#schicht[hidden]{display:none}
#schicht .blatt{width:min(560px,100%);max-height:88vh;overflow:auto;margin:0;border-radius:22px 22px 0 0;padding:20px;box-shadow:0 -8px 40px rgba(2,8,14,.25)}
#toast{position:fixed;inset:auto 12px calc(var(--nav) + 14px) 12px;z-index:60;display:flex;flex-direction:column;align-items:center;gap:6px;pointer-events:none}
#toast div{background:var(--stark);color:var(--auf-stark);padding:10px 16px;border-radius:var(--r-klein);max-width:520px;box-shadow:0 6px 24px rgba(2,8,14,.25)}
#toast div.fehler{background:var(--rot);color:#fff}
.anmeldung{max-width:440px;margin:8vh auto 0}
.plan-svg{width:100%;height:auto;border:1px solid var(--linie);border-radius:var(--r-klein);background:#fff}
.stange{display:flex;height:30px;border:2px solid #12304a;margin:4px 0 10px;color:#12304a;background:repeating-linear-gradient(45deg,#fff,#fff 6px,#e6ebee 6px,#e6ebee 12px)}
.stange span{background:var(--holz);border-inline-end:2px solid #12304a;font-size:.8rem;display:flex;align-items:center;justify-content:center;overflow:hidden}
video.scan{width:100%;border-radius:var(--r);background:#000;max-height:60vh}
.qr{width:180px;height:180px;image-rendering:pixelated;background:#fff;padding:8px;box-sizing:content-box;border-radius:8px}
.etiketten{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px}
.etikett{border:1px dashed var(--rand);padding:8px;text-align:center;font-size:.85rem;break-inside:avoid;background:#fff;color:#12304a}
.etikett img{width:130px;height:130px;image-rendering:pixelated}
/* Darstellung wählen: wie das Gerät, hell, dunkel */
.themawahl{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;padding:5px;border-radius:var(--r);background:var(--ton)}
.themawahl button{min-height:44px;border:0;border-radius:var(--r-klein);background:none;font-weight:500;cursor:pointer}
.themawahl button[aria-pressed="true"]{background:var(--flaeche);box-shadow:0 1px 3px rgba(2,8,14,.18)}

/* Druck auf dem Briefbogen */
.druck{display:none}
body.vorschau>#app,body.vorschau>#nav{display:none}
body.vorschau .druck{display:block;padding:12px;background:#8a99a5;min-height:100vh;overflow-x:auto;page:briefbogen}
.druck-knoepfe{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-bottom:12px;position:sticky;left:0}
.seite{--tinte:#12304a;--leise:#51606b;--linie:#cfd8dd;--rand:#8a99a5;--flaeche:#fff;--schnur:#1f5fa8;color-scheme:light;position:relative;width:210mm;min-height:297mm;margin:0 auto;background:#fff;color:#111;font:400 10.5pt/1.42 Barlow,Arial,sans-serif;overflow:hidden}
.seite .bogen{position:absolute;top:0;left:0;width:210mm;height:297mm;z-index:0}
.satz{position:relative;z-index:1;width:100%;border-collapse:collapse;font-size:inherit}
.satz>thead>tr>td,.satz>tbody>tr>td,.satz>tfoot>tr>td{border:0;padding:0}
.eigenkopf{border-bottom:2px solid;font-size:9pt;margin-bottom:8mm}
.eigenkopf .firma{font:600 20pt/1.1 "Barlow SC",Barlow,sans-serif;margin-bottom:2mm}
.eigenfuss{font-size:8pt;color:#444;border-top:1px solid #999;margin-top:6mm}
.briefkopf{display:flex;justify-content:space-between;gap:10mm;margin-bottom:8mm}
.empf{width:85mm;min-height:36mm}
.empf .absender{font-size:7pt;border-bottom:1px solid #777;margin-bottom:2.5mm;padding-bottom:.5mm;color:#444}
.angaben{width:auto;font-size:9.5pt;align-self:flex-start}
.angaben td{border:0;padding:0 0 1mm 4mm;vertical-align:top} .angaben td:first-child{color:#555;padding-left:0}
.betreff{font:600 13pt/1.25 "Barlow SC",Barlow,sans-serif;margin:0 0 5mm}
.dtext{white-space:pre-wrap;margin-bottom:5mm}
table.pos{font-size:10pt;margin-bottom:4mm}
table.pos th{color:#111;font-weight:600;border-bottom:0} table.pos thead tr{border-bottom:2px solid}
table.pos td,table.pos th{padding:1.6mm 1.5mm;border-bottom:1px solid #ccc} table.pos tr{break-inside:avoid}
table.summen{width:80mm;margin:0 0 7mm auto;font-size:10pt;break-inside:avoid}
table.summen td{border:0;padding:1mm 1.5mm} table.summen td:last-child{text-align:end;white-space:nowrap}
table.summen .gesamt{border-top:2px solid;font-weight:600}
table.zeichnung{margin-top:10mm;break-inside:avoid} table.zeichnung td{border:0;width:50%;padding:0 6mm 0 0;vertical-align:bottom}
table.zeichnung img{height:22mm;max-width:100%;display:block} .linie{border-top:1px solid #111;padding-top:1mm;font-size:9pt}
canvas.unterschrift,img.unterschrift{width:100%;max-width:520px;aspect-ratio:900/320;border:1.5px dashed #8a99a5;border-radius:var(--r);background:#fff;touch-action:none;display:block;margin:8px 0}
@page briefbogen{size:A4;margin:0}
@media print{
  body.vorschau{background:#fff}
  body.vorschau .druck{padding:0;background:none;min-height:0;overflow:visible}
  .druck-knoepfe{display:none!important}
  .seite{width:auto;min-height:0;overflow:visible}
  .seite .bogen{position:fixed}
  #schicht{display:none!important}
}
@media (min-width:900px){
  #app{padding-bottom:40px;padding-inline-start:124px}
  #nav{inset:0 auto 0 0;width:98px;height:auto;flex-direction:column;justify-content:flex-start;gap:6px;padding-top:22px;border-top:0;border-inline-end:1px solid var(--linie)}
  #nav a{flex:none;height:70px}
  #schicht{align-items:center} #schicht .blatt{border-radius:22px}
  #toast{inset-block-end:20px} .eingabe{bottom:0}
}
@media print{
  #nav,#toast,.nichtdrucken,.reiter{display:none!important}
  body{background:#fff;color:#111;font-size:12pt} #app{max-width:none;padding:0}
  .blatt{border:0;padding:0;box-shadow:none;background:none}
}
@media (prefers-reduced-motion:no-preference){.btn,.reiter a,#nav svg{transition:background .14s,filter .14s}}
