/* Zeiterfassung – Oberfläche
   Mobil zuerst, ab 700px breiter für den Laptop. */

:root{
  --tief:#0A2233; --tief2:#12344A; --linie:#1D4761;
  --sand:#EFE8DA; --papier:#FBF8F2;
  --signal:#E4572E; --see:#2E7D6E; --nebel:#6B7C89; --gold:#C9A227;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;padding:0}
body{
  font-family:'Archivo','Segoe UI',system-ui,-apple-system,sans-serif;
  background:var(--tief);color:var(--tief);
  min-height:100vh;font-size:15px;line-height:1.5;
}
.versteckt{display:none !important}
.mono{font-variant-numeric:tabular-nums;font-family:ui-monospace,'SF Mono',Menlo,monospace}

/* ---------- Anmeldung ---------- */
.anmeldeseite{
  max-width:420px;margin:0 auto;min-height:100vh;
  display:flex;flex-direction:column;justify-content:center;
  padding:0 24px;color:var(--sand);
}
.marke{font-size:34px;font-weight:800;letter-spacing:-.03em;margin:6px 0}
.hell{color:#8FAFC4}
.fuss{margin-top:22px}

/* ---------- Grundgerüst ---------- */
#app{max-width:460px;margin:0 auto;background:var(--papier);min-height:100vh;
  display:flex;flex-direction:column;position:relative}
.hdr{background:var(--tief);color:var(--sand);padding:16px 20px 14px;
  display:flex;justify-content:space-between;align-items:flex-start}
.hdr h1{margin:2px 0 0;font-size:17px;font-weight:800;letter-spacing:-.01em}
.hdr .eyebrow{color:#7FA6BE}
.body{flex:1;padding:18px 20px 100px}

.eyebrow{font-size:10px;letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:var(--nebel)}
h2.sec{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--nebel);
  font-weight:700;margin:22px 0 10px}
h2.sec:first-child{margin-top:0}
.mini{font-size:12.5px;color:var(--nebel);line-height:1.55}

.karte{background:#fff;border:1px solid #E4DDCF;border-radius:14px;padding:16px;margin-bottom:14px}
.karte.dunkel{background:var(--tief2);border-color:var(--linie);color:var(--sand)}
.karte.dunkel .mini{color:#8FAFC4}

.gross{font-size:52px;font-weight:800;letter-spacing:-.03em;line-height:1;margin:14px 0 2px}
.pille{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:700;
  letter-spacing:.08em;text-transform:uppercase;padding:5px 10px;border-radius:999px;
  background:rgba(255,255,255,.09)}
.punkt{width:7px;height:7px;border-radius:50%;display:inline-block;flex:none}

/* ---------- Bedienelemente ---------- */
.btn{display:block;width:100%;border:none;border-radius:13px;padding:17px;
  font-size:16px;font-weight:700;font-family:inherit;cursor:pointer;
  transition:transform .12s ease,filter .12s ease;text-align:center}
.btn:active{transform:scale(.985)}
.btn:focus-visible{outline:3px solid var(--signal);outline-offset:3px}
.btn:disabled{opacity:.45;cursor:not-allowed}
.btn.primary{background:var(--signal);color:#fff}
.btn.los{background:var(--see);color:#fff}
.btn.geist{background:transparent;color:var(--sand);border:1.5px solid var(--linie)}
.btn.rand{background:transparent;color:var(--tief);border:1.5px solid #D8CFBD}
.btn.klein{padding:11px;font-size:14px;border-radius:10px}
.btn.schmal{width:auto;padding:7px 12px;font-size:12px}
.reihe{display:flex;gap:10px}
.reihe>*{flex:1}

input,select,textarea{width:100%;font-family:inherit;font-size:16px;padding:12px;
  border-radius:10px;border:1.5px solid #D8CFBD;background:#fff;color:var(--tief);margin-top:5px}
textarea{min-height:76px;resize:vertical}
label{display:block;font-size:12px;font-weight:700;letter-spacing:.05em;
  text-transform:uppercase;color:var(--nebel);margin-top:13px}
.anmeldeseite label{color:#7FA6BE}

/* ---------- Tagesband ---------- */
.band{position:relative;height:34px;border-radius:8px;background:#0A2233;
  overflow:hidden;border:1px solid var(--linie);margin-top:16px}
.band .seg{position:absolute;top:0;bottom:0}
.band .arbeit{background:var(--see)}
.band .pause{background:repeating-linear-gradient(45deg,var(--gold),var(--gold) 3px,#8f7419 3px,#8f7419 6px)}
.band .jetzt{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--signal)}
.bandachse{display:flex;justify-content:space-between;margin-top:5px}
.bandachse span{font-size:9.5px;color:var(--nebel)}

/* ---------- Listen ---------- */
.kv{display:flex;justify-content:space-between;align-items:baseline;gap:12px;
  padding:9px 0;border-bottom:1px solid #EDE6D8;font-size:14px}
.kv:last-child{border-bottom:none}
.eintrag{display:flex;justify-content:space-between;align-items:center;gap:10px;
  padding:11px 0;border-bottom:1px solid #EDE6D8}
.eintrag:last-child{border-bottom:none}

.note{display:flex;gap:9px;padding:11px 12px;border-radius:10px;font-size:13px;
  line-height:1.45;margin-bottom:9px;background:#FBF3DF;border:1px solid #E8D9A8;color:#5C4708}
.note.hart{background:#FBE7E0;border-color:#F0BFAC;color:#7A2A0F}
.note.gut{background:#E6F1EE;border-color:#B9DAD1;color:#1D5346}

/* ---------- Navigation ---------- */
.nav{position:fixed;bottom:0;left:0;right:0;max-width:460px;margin:0 auto;
  display:flex;background:#fff;border-top:1px solid #E4DDCF;
  padding:7px 4px calc(12px + env(safe-area-inset-bottom))}
.nav button{flex:1;background:none;border:none;font-family:inherit;font-size:10px;
  font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--nebel);
  padding:8px 2px;cursor:pointer;border-radius:9px}
.nav button.an{color:var(--signal);background:#FCEFE9}
.marke-zahl{background:var(--signal);color:#fff;border-radius:999px;font-size:9px;
  padding:1px 5px;margin-left:3px}

/* ---------- Monatsmatrix ---------- */
.tabelle{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid #E4DDCF;
  border-radius:14px;background:#fff;margin-bottom:12px}
table.kal{border-collapse:separate;border-spacing:0;font-size:11px}
table.kal th,table.kal td{padding:0;text-align:center}
.kal .nm{position:sticky;left:0;background:#fff;z-index:2;text-align:left;
  padding:7px 9px;min-width:88px;border-right:1px solid #E4DDCF;
  font-weight:700;font-size:11px;white-space:nowrap}
.kal thead .nm{background:var(--papier)}
.kal td.z,.kal th.t{width:27px;min-width:27px;height:31px;
  border-bottom:1px solid #F0EADD;border-right:1px solid #F5F0E6}
.kal th.t{font-size:9px;color:var(--nebel);padding:5px 0;line-height:1.2;
  font-weight:600;background:var(--papier)}
.kal .we{background:#F4EFE4}
.kal .ft{background:#EDE4F2;color:#5B3B6E;font-weight:800}
.kal th.ftk{background:#EDE4F2;color:#5B3B6E}
.z.arbeit{color:var(--tief);font-weight:600;font-size:10.5px}
.z.u{background:#D9E8F4;color:#1B4A72;font-weight:800}
.z.k{background:#FAE3DB;color:#7A2A0F;font-weight:800}
.z.a{background:#E9E2D2;color:#584F3E;font-weight:800}
.z.s{background:#DCEBE0;color:#215B33;font-weight:800}
.z.beantragt{opacity:.45}
/* Stundenweise Abwesenheit: Ecke oben rechts, Tag bleibt lesbar */
.z.teil{position:relative}
.z.teil::after{content:"";position:absolute;top:0;right:0;
  border-width:0 8px 8px 0;border-style:solid;border-color:transparent #E4572E transparent transparent}
.z.teil.offen::after{border-right-color:#C9A227}
.z.heute{box-shadow:inset 0 0 0 2px var(--signal)}
.z{cursor:pointer}
.legende{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:14px}
.legende span{font-size:10.5px;padding:4px 8px;border-radius:7px;font-weight:700}

/* ---------- Dialog ---------- */
#dialog{position:fixed;inset:0;background:rgba(10,34,51,.55);z-index:50;
  display:flex;align-items:flex-end;justify-content:center}
#dialog .innen{width:100%;max-width:460px;background:var(--papier);
  border-radius:18px 18px 0 0;padding:20px 20px 28px;max-height:90vh;overflow-y:auto}
.griff{width:38px;height:4px;background:#D8CFBD;border-radius:2px;margin:0 auto 14px}
#dialog h2{margin:0 0 4px;font-size:20px;font-weight:800}

/* ---------- Laptop ---------- */
@media (min-width:700px){
  body{background:#0A2233}
  #app{max-width:1000px;min-height:100vh;box-shadow:0 0 60px rgba(0,0,0,.3)}
  .body{padding:26px 32px 40px;display:grid;grid-template-columns:1fr;gap:0}
  .nav{position:static;max-width:none;margin:0;border-top:none;border-bottom:1px solid #E4DDCF;
    padding:0 32px;background:#fff;order:-1}
  .nav button{flex:none;padding:14px 18px;font-size:11px;border-radius:0;
    border-bottom:2px solid transparent}
  .nav button.an{background:none;border-bottom-color:var(--signal)}
  #app{display:flex;flex-direction:column}
  .gross{font-size:64px}
  #dialog{align-items:center}
  #dialog .innen{border-radius:16px;max-width:520px}
  .griff{display:none}
}

@media (prefers-reduced-motion:reduce){*{transition:none !important}}

/* ---------- Druck ---------- */
@media print{
  body{background:#fff}
  .hdr,.nav,.btn,#dialog{display:none !important}
  #app{max-width:none;box-shadow:none}
  .body{padding:0}
  .tabelle{border:none;overflow:visible}
  table.kal{font-size:8.5px;width:100%}
  @page{size:A4 landscape;margin:12mm}
}
