/* schwarzhochweiss® Kundenportal – Design im Look der Website */

@font-face{
  font-family:'Inter';font-style:normal;font-weight:400 800;font-display:swap;
  src:url('fonts/inter-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:'Inter';font-style:normal;font-weight:400 800;font-display:swap;
  src:url('fonts/inter-latin-ext.woff2') format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

:root{
  --bg:#000;
  --card:#161617;
  --card-hover:#1d1d1f;
  --white:#f5f5f7;
  --grey:#86868b;
  --line:rgba(255,255,255,.08);
  --radius:24px;
  --radius-sm:14px;
  --pad:clamp(1rem,3vw,2rem);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  background:var(--bg);color:var(--white);
  font-family:'Inter',-apple-system,'SF Pro Display','Helvetica Neue',sans-serif;
  font-weight:400;line-height:1.5;
  -webkit-font-smoothing:antialiased;
  min-height:100vh;display:flex;flex-direction:column;
}
::selection{background:var(--white);color:#000}
a{color:inherit}

/* ---------- Nav ---------- */
nav{
  position:sticky;top:0;z-index:100;
  background:rgba(0,0,0,.72);
  backdrop-filter:saturate(180%) blur(20px);
  -webkit-backdrop-filter:saturate(180%) blur(20px);
  border-bottom:1px solid var(--line);
}
.nav-inner{
  max-width:1100px;margin:0 auto;
  display:flex;justify-content:space-between;align-items:center;gap:1rem;
  padding:.8rem var(--pad);flex-wrap:wrap;
}
.wordmark{font-weight:800;font-size:.95rem;letter-spacing:-.02em;text-decoration:none;white-space:nowrap}
.wordmark sup{font-size:.5em;font-weight:600}
.portal-tag{
  font-weight:600;font-size:.62rem;letter-spacing:.08em;text-transform:uppercase;
  color:#000;background:var(--white);border-radius:99px;padding:.15em .6em;
  vertical-align:middle;margin-left:.35em;
}
.nav-right{display:flex;align-items:center;gap:1.1rem;flex-wrap:wrap}
.nav-user{font-size:.75rem;color:var(--grey);font-weight:500}
.nav-link{font-size:.78rem;color:var(--grey);text-decoration:none;transition:color .3s;font-weight:500}
.nav-link:hover{color:var(--white)}

/* ---------- Burger & mobiles Menü (wie auf der Website) ---------- */
.burger{
  display:none;position:relative;z-index:210;
  width:42px;height:42px;border:0;background:none;cursor:pointer;flex:none;
}
.burger span{
  position:absolute;left:10px;width:22px;height:2px;border-radius:2px;
  background:var(--white);
  transition:transform .45s cubic-bezier(.77,0,.18,1),top .45s cubic-bezier(.77,0,.18,1);
}
.burger span:nth-child(1){top:16px}
.burger span:nth-child(2){top:24px}
body.menu-open .burger span:nth-child(1){top:20px;transform:rotate(45deg)}
body.menu-open .burger span:nth-child(2){top:20px;transform:rotate(-45deg)}
.mobile-menu{
  position:fixed;inset:0;z-index:150;
  background:rgba(0,0,0,.86);
  backdrop-filter:saturate(180%) blur(24px);
  -webkit-backdrop-filter:saturate(180%) blur(24px);
  display:flex;flex-direction:column;justify-content:center;
  padding:0 clamp(1.5rem,7vw,3rem);
  clip-path:circle(0px at calc(100% - 44px) 36px);
  visibility:hidden;
  transition:clip-path .6s cubic-bezier(.77,0,.18,1),visibility 0s .6s;
}
body.menu-open .mobile-menu{
  clip-path:circle(150% at calc(100% - 44px) 36px);
  visibility:visible;
  transition:clip-path .6s cubic-bezier(.77,0,.18,1);
}
.mobile-menu ul{list-style:none;margin:0;padding:0}
.mobile-menu li{overflow:hidden;padding:.25rem 0}
.mobile-menu li a{
  display:inline-block;text-decoration:none;
  font-size:clamp(2rem,9vw,3rem);font-weight:800;letter-spacing:-.04em;
  line-height:1.15;padding-bottom:.1em;
  background:linear-gradient(180deg,#fff 60%,#c9c9ce);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
  transform:translateY(120%);
  transition:transform .55s cubic-bezier(.22,1,.36,1);
}
body.menu-open .mobile-menu li:nth-child(1) a{transition-delay:.15s}
body.menu-open .mobile-menu li:nth-child(2) a{transition-delay:.22s}
body.menu-open .mobile-menu li:nth-child(3) a{transition-delay:.29s}
body.menu-open .mobile-menu li:nth-child(4) a{transition-delay:.36s}
body.menu-open .mobile-menu li:nth-child(5) a{transition-delay:.43s}
body.menu-open .mobile-menu a{transform:translateY(0)}
.mobile-menu .menu-foot{
  margin-top:2.5rem;display:flex;align-items:center;gap:.9rem;
  color:var(--grey);font-size:.85rem;font-weight:500;
  opacity:0;transform:translateY(16px);
  transition:opacity .5s ease,transform .5s cubic-bezier(.22,1,.36,1);
}
body.menu-open .mobile-menu .menu-foot{opacity:1;transform:none;transition-delay:.45s}
.mobile-menu .menu-foot a{color:var(--white)}
body.menu-open{overflow:hidden}
body.menu-open nav{z-index:220;background:transparent;border-bottom-color:transparent;backdrop-filter:none;-webkit-backdrop-filter:none}
@media(max-width:820px){
  .nav-right{display:none}
  .burger{display:block}
  .nav-inner{flex-wrap:nowrap;padding:.55rem var(--pad)}
}
@media(min-width:821px){.mobile-menu{display:none}}

/* ---------- Layout ---------- */
main{flex:1;width:100%;max-width:1100px;margin:0 auto;padding:2rem var(--pad) 3rem}
footer{
  border-top:1px solid var(--line);
  text-align:center;padding:1.2rem;font-size:.72rem;color:var(--grey);
}
h1{font-size:clamp(1.7rem,4vw,2.6rem);font-weight:800;letter-spacing:-.03em;line-height:1.1;margin-bottom:.4rem}
.sub{color:var(--grey);font-size:1rem;font-weight:500;margin-bottom:1.8rem}
.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;flex-wrap:wrap;margin-bottom:1.6rem}

/* ---------- Karten ---------- */
.card{
  background:var(--card);border-radius:var(--radius);
  padding:clamp(1.4rem,3vw,2.2rem);margin-bottom:14px;
}
.card h2{font-size:1.25rem;font-weight:700;letter-spacing:-.02em;margin-bottom:1rem}

/* ---------- Buttons ---------- */
.btn{
  display:inline-block;text-decoration:none;text-align:center;
  font-family:inherit;font-size:.9rem;font-weight:600;
  padding:.7rem 1.5rem;border-radius:980px;border:0;cursor:pointer;
  background:var(--white);color:#000;
  transition:transform .3s cubic-bezier(.22,1,.36,1),opacity .3s;
}
.btn:hover{transform:scale(1.04);opacity:.92}
.btn-ghost{
  background:transparent;color:var(--white);
  border:1px solid rgba(255,255,255,.25);
}
.btn-sm{font-size:.78rem;padding:.45rem 1rem}

/* ---------- Formulare ---------- */
label{display:block;font-size:.78rem;font-weight:600;color:var(--grey);margin:0 0 .35rem .2rem}
input[type=text],input[type=email],input[type=password],input[type=date],select,textarea{
  width:100%;background:#000;color:var(--white);
  border:1px solid rgba(255,255,255,.12);border-radius:var(--radius-sm);
  font-family:inherit;font-size:.95rem;font-weight:500;
  padding:.85rem 1rem;outline:0;resize:vertical;
  transition:border-color .3s;
}
input::placeholder,textarea::placeholder{color:var(--grey)}
input:focus,select:focus,textarea:focus{border-color:rgba(255,255,255,.45)}
select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%2386868b' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1rem center}
input[type=file]{
  width:100%;color:var(--grey);font-family:inherit;font-size:.85rem;
  border:1px dashed rgba(255,255,255,.2);border-radius:var(--radius-sm);
  padding:1rem;background:#000;
}
input[type=file]::file-selector-button{
  font-family:inherit;font-size:.8rem;font-weight:600;
  background:var(--white);color:#000;border:0;border-radius:99px;
  padding:.45rem 1rem;margin-right:.9rem;cursor:pointer;
}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.form-grid .full{grid-column:1/-1}
.feld{margin-bottom:14px}
.hinweis{font-size:.75rem;color:var(--grey);margin-top:.4rem}
@media(max-width:640px){.form-grid{grid-template-columns:1fr}}

/* ---------- Flash ---------- */
.flash{
  border-radius:var(--radius-sm);padding:.9rem 1.2rem;margin-bottom:1.2rem;
  font-size:.9rem;font-weight:500;
}
.flash-ok{background:rgba(48,209,88,.12);color:#30d158;border:1px solid rgba(48,209,88,.3)}
.flash-err{background:rgba(255,69,58,.12);color:#ff453a;border:1px solid rgba(255,69,58,.3)}

/* ---------- Badges ---------- */
.badge{
  display:inline-block;font-size:.68rem;font-weight:700;letter-spacing:.04em;
  padding:.25em .8em;border-radius:99px;white-space:nowrap;
  color:var(--bc);background:color-mix(in srgb, var(--bc) 16%, transparent);
  border:1px solid color-mix(in srgb, var(--bc) 40%, transparent);
}

/* ---------- Auftragsliste ---------- */
.filter-bar{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1.4rem;align-items:center}
.chip{
  font-size:.75rem;font-weight:600;text-decoration:none;
  color:var(--grey);background:var(--card);border-radius:99px;
  padding:.45em 1em;transition:background .3s,color .3s;border:1px solid transparent;
}
.chip:hover{color:var(--white);background:var(--card-hover)}
.chip.aktiv{color:#000;background:var(--white)}
.auftrag-liste{display:flex;flex-direction:column;gap:10px}
.auftrag-row{
  display:grid;grid-template-columns:1fr auto;gap:.3rem 1rem;align-items:center;
  background:var(--card);border-radius:var(--radius);
  padding:1.1rem 1.5rem;text-decoration:none;
  transition:background .3s,transform .4s cubic-bezier(.22,1,.36,1);
}
.auftrag-row:hover{background:var(--card-hover);transform:scale(1.008)}
.auftrag-intern{
  border-left:4px solid var(--white);
  background:#1b1b1d;
}
.auftrag-intern:hover{background:#212124}
.auftrag-titel{font-size:1.02rem;font-weight:700;letter-spacing:-.01em}
.auftrag-meta{font-size:.78rem;color:var(--grey);font-weight:500}
.auftrag-meta b{color:var(--white);font-weight:600}
.auftrag-side{display:flex;flex-direction:column;align-items:flex-end;gap:.35rem}
.auftrag-side .datum{font-size:.72rem;color:var(--grey)}
@media(max-width:560px){
  .auftrag-row{grid-template-columns:1fr}
  .auftrag-side{flex-direction:row;align-items:center;justify-content:space-between}
}
.leer{
  text-align:center;color:var(--grey);padding:3rem 1rem;font-weight:500;
  background:var(--card);border-radius:var(--radius);
}

/* ---------- Auftrag Detail ---------- */
.detail-grid{display:grid;grid-template-columns:2fr 1fr;gap:14px;align-items:start}
@media(max-width:820px){.detail-grid{grid-template-columns:1fr}}
.meta-tab{width:100%;border-collapse:collapse;font-size:.85rem}
.meta-tab td{padding:.35rem 0;vertical-align:top}
.meta-tab td:first-child{color:var(--grey);font-weight:600;width:42%;padding-right:.8rem}
.beschreibung{white-space:pre-wrap;font-size:.95rem;color:var(--white)}

.datei-liste{display:flex;flex-direction:column;gap:8px}
.datei-row{
  display:flex;justify-content:space-between;align-items:center;gap:1rem;
  background:#000;border:1px solid var(--line);border-radius:var(--radius-sm);
  padding:.6rem 1rem;text-decoration:none;font-size:.85rem;font-weight:500;
  transition:border-color .3s;
}
.datei-row:hover{border-color:rgba(255,255,255,.3)}
.datei-row .groesse{color:var(--grey);font-size:.72rem;white-space:nowrap}
.datei-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.kommentar{
  background:#000;border:1px solid var(--line);border-radius:var(--radius-sm);
  padding:.9rem 1.1rem;margin-bottom:10px;
}
.kommentar.von-agentur{border-color:rgba(255,255,255,.22)}
.kommentar-kopf{display:flex;justify-content:space-between;gap:1rem;font-size:.72rem;color:var(--grey);font-weight:600;margin-bottom:.35rem}
.kommentar-text{font-size:.9rem;white-space:pre-wrap}
.agentur-tag{color:#000;background:var(--white);border-radius:99px;padding:.05em .55em;font-size:.62rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase}
.kommentar-neueste{
  border:1px solid rgba(10,132,255,.55);
  border-left:4px solid #0a84ff;
  background:rgba(10,132,255,.08);
  box-shadow:0 0 20px rgba(10,132,255,.15);
}
.kommentar-neueste .kommentar-text{font-size:.98rem}
.neueste-tag{
  color:#fff;background:#0a84ff;border-radius:99px;
  padding:.15em .7em;font-size:.62rem;font-weight:800;
  letter-spacing:.06em;text-transform:uppercase;margin-right:.5em;
}

/* ---------- Status-Board (Admin-Übersicht) ---------- */
.status-uebersicht{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:1.4rem}
.status-zelle{
  flex:1;min-width:110px;background:var(--card);border-radius:var(--radius-sm);
  padding:.8rem 1rem;text-decoration:none;transition:background .3s;
}
.status-zelle:hover{background:var(--card-hover)}
.status-zelle .zahl{font-size:1.5rem;font-weight:800;letter-spacing:-.03em;display:block}
.status-zelle .name{font-size:.68rem;font-weight:600;color:var(--grey)}

/* ---------- Tabellen (Verwaltung) ---------- */
.tabelle{width:100%;border-collapse:collapse;font-size:.85rem}
.tabelle th{
  text-align:left;font-size:.68rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  color:var(--grey);padding:.5rem .6rem;border-bottom:1px solid var(--line);
}
.tabelle td{padding:.65rem .6rem;border-bottom:1px solid var(--line);vertical-align:middle}
.tabelle tr:last-child td{border-bottom:0}
.inaktiv{opacity:.45}

/* ---------- Versionen & Freigaben ---------- */
.version{
  background:#000;border:1px solid var(--line);border-radius:var(--radius-sm);
  padding:1rem 1.2rem;margin-top:12px;
}
.version-offen{border-color:rgba(255,55,95,.45)}
.version-kopf{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap}
.version-nr{
  font-weight:800;font-size:1.05rem;letter-spacing:-.02em;
  background:var(--white);color:#000;border-radius:9px;padding:.05em .5em;
}
.version-meta{font-size:.72rem;color:var(--grey);font-weight:600;margin-left:auto}
.version-hinweis{font-size:.88rem;color:var(--grey);margin-top:.5rem;font-weight:500}
.version-upload{
  border:1px dashed rgba(255,255,255,.2);border-radius:var(--radius-sm);
  padding:1rem;margin-bottom:.6rem;
}
.freigabe-box{
  margin-top:.9rem;padding:.9rem 1rem;
  background:rgba(255,55,95,.07);border:1px solid rgba(255,55,95,.25);
  border-radius:var(--radius-sm);
}
.protokoll{
  margin-top:.8rem;font-size:.8rem;font-weight:500;color:var(--grey);
  border-top:1px solid var(--line);padding-top:.7rem;
}
.protokoll b{color:var(--white)}
.protokoll-ok{color:#30d158}
.ansehen-tag{
  font-size:.62rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;
  color:#0a84ff;border:1px solid rgba(10,132,255,.4);border-radius:99px;
  padding:.1em .55em;margin-left:.4em;white-space:nowrap;
}
.neu-punkt{
  display:inline-block;width:9px;height:9px;border-radius:50%;
  background:#0a84ff;margin-right:.45em;vertical-align:middle;
  box-shadow:0 0 8px rgba(10,132,255,.8);
}

/* ---------- Datei-Viewer (Pins & Video) ---------- */
.viewer-grid{display:grid;grid-template-columns:3fr 2fr;gap:14px;align-items:start}
@media(max-width:900px){.viewer-grid{grid-template-columns:1fr}}
.pin-wrap{position:relative;display:inline-block;max-width:100%;line-height:0}
.pin-wrap img,.pin-wrap canvas{max-width:100%;height:auto;border-radius:12px;cursor:crosshair}
.pin{
  position:absolute;transform:translate(-50%,-50%);
  width:26px;height:26px;border-radius:50%;
  background:#ff375f;color:#fff;font-size:.72rem;font-weight:800;
  display:flex;align-items:center;justify-content:center;
  pointer-events:none;line-height:1;
  border:2px solid #fff;
  box-shadow:0 2px 10px rgba(0,0,0,.6);
}
.pin-neu{background:#0a84ff}
.pin-nr{
  display:inline-flex;align-items:center;justify-content:center;
  width:18px;height:18px;border-radius:50%;background:#ff375f;color:#fff;
  font-size:.62rem;font-weight:800;margin-right:.3em;vertical-align:middle;
}
.zeit-link{
  font-family:inherit;font-size:.72rem;font-weight:700;cursor:pointer;
  color:#0a84ff;background:rgba(10,132,255,.12);border:1px solid rgba(10,132,255,.35);
  border-radius:99px;padding:.15em .6em;margin-right:.3em;
}
.pdf-nav{display:flex;align-items:center;gap:.8rem;margin-bottom:.6rem}
.vergleich-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:start}
@media(max-width:820px){.vergleich-grid{grid-template-columns:1fr}}

/* ---------- Fortschritts-Leiste (Auftrag) ---------- */
.stepper-card{
  background:linear-gradient(135deg,#161617 0%,#101012 55%,#14141a 100%);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:1.6rem clamp(1rem,3vw,2.2rem) 1.3rem;
  margin-bottom:14px;
  overflow-x:auto;
}
.stepper{
  display:flex;align-items:flex-start;
  min-width:560px;
}
.step{
  display:flex;flex-direction:column;align-items:center;gap:.55rem;
  flex:0 0 auto;width:92px;text-align:center;
}
.step-punkt{
  width:26px;height:26px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:.7rem;font-weight:800;line-height:1;
  background:#1d1d1f;border:2px solid #3a3a3c;color:#000;
  transition:all .4s cubic-bezier(.22,1,.36,1);
}
.step-label{
  font-size:.62rem;font-weight:600;color:var(--grey);
  letter-spacing:.02em;line-height:1.25;
}
.step.fertig .step-punkt{
  background:var(--sc);border-color:var(--sc);color:#000;
}
.step.fertig .step-label{color:var(--white)}
.step.aktuell .step-punkt{
  background:var(--sc);border-color:var(--sc);
  box-shadow:0 0 0 5px color-mix(in srgb, var(--sc) 22%, transparent),
             0 0 24px color-mix(in srgb, var(--sc) 65%, transparent);
  animation:puls 2.2s ease-in-out infinite;
}
.step.aktuell .step-label{
  color:var(--sc);font-weight:800;font-size:.66rem;
  text-shadow:0 0 14px color-mix(in srgb, var(--sc) 60%, transparent);
}
@keyframes puls{
  0%,100%{box-shadow:0 0 0 5px color-mix(in srgb, var(--sc) 22%, transparent), 0 0 24px color-mix(in srgb, var(--sc) 65%, transparent)}
  50%{box-shadow:0 0 0 9px color-mix(in srgb, var(--sc) 12%, transparent), 0 0 34px color-mix(in srgb, var(--sc) 80%, transparent)}
}
.step-linie{
  flex:1 1 auto;height:2px;margin-top:12px;min-width:18px;
  background:#2c2c2e;border-radius:2px;
  position:relative;overflow:hidden;
}
.step-linie.gefuellt{background:linear-gradient(90deg,rgba(255,255,255,.75),rgba(255,255,255,.35))}
@media(prefers-reduced-motion:reduce){.step.aktuell .step-punkt{animation:none}}
/* Mobil: kompakte Punkte, Label nur am aktuellen Schritt – passt ohne Scrollen */
@media(max-width:640px){
  .stepper{min-width:0;justify-content:center}
  .step{width:34px}
  .step-punkt{width:22px;height:22px;font-size:.6rem}
  .step .step-label{display:none}
  .step.aktuell{width:auto;min-width:86px;max-width:110px}
  .step.aktuell .step-label{display:block;font-size:.62rem}
  .step-linie{min-width:8px;margin-top:10px}
  .stepper-card{padding:1.2rem .8rem 1rem}
}

/* ---------- Termine (Cockpit) ---------- */
.termin-ueberfaellig{color:#ff453a!important}
.termin-bald{color:#ffd60a!important}

/* ---------- Drag & Drop / Einfügen ---------- */
input[type=file].drop-aktiv{border-color:#0a84ff;background:rgba(10,132,255,.08)}
input[type=file].upload-ok{border-color:#30d158;background:rgba(48,209,88,.08)}

/* ---------- Kanban-Board ---------- */
.board{
  display:grid;gap:12px;
  grid-template-columns:repeat(auto-fit,minmax(210px,1fr));
  align-items:start;
}
.board-spalte{background:var(--card);border-radius:var(--radius-sm);padding:.7rem}
.board-kopf{
  display:flex;justify-content:space-between;align-items:center;
  padding:.2rem .4rem .6rem;border-bottom:2px solid var(--bc);margin-bottom:.6rem;
}
.board-titel{font-size:.78rem;font-weight:700;color:var(--bc)}
.board-anzahl{font-size:.7rem;font-weight:700;color:var(--grey)}
.board-liste{display:flex;flex-direction:column;gap:8px;min-height:60px;border-radius:10px;transition:background .2s}
.board-liste.drop-ziel{background:rgba(10,132,255,.1);outline:1px dashed rgba(10,132,255,.5)}
.board-karte{
  background:#000;border:1px solid var(--line);border-radius:10px;
  padding:.7rem .8rem;cursor:grab;
}
.board-karte.zieht{opacity:.4}
.board-karte.auftrag-intern{border-left:3px solid var(--white)}
.bk-titel{font-size:.82rem;font-weight:700;line-height:1.25}
.bk-meta{font-size:.68rem;color:var(--grey);font-weight:500;margin-top:.2rem}
.bk-termin{font-size:.68rem;font-weight:600;margin-top:.3rem}
.bk-link{font-size:.68rem;color:var(--grey);text-decoration:none;display:inline-block;margin-top:.35rem}
.bk-link:hover{color:var(--white)}

/* ---------- Flatpickr (Kalender) im SHW-Look ---------- */
.flatpickr-calendar{
  background:var(--card)!important;border:1px solid rgba(255,255,255,.15)!important;
  border-radius:14px!important;box-shadow:0 10px 40px rgba(0,0,0,.6)!important;
  color:var(--white)!important;
}
.flatpickr-months,.flatpickr-month,.flatpickr-weekdays,.flatpickr-weekday{
  background:transparent!important;color:var(--white)!important;fill:var(--white)!important;
}
.flatpickr-current-month .flatpickr-monthDropdown-months{background:var(--card)!important;color:var(--white)!important}
.flatpickr-day{color:var(--white)!important;border-radius:8px!important}
.flatpickr-day.prevMonthDay,.flatpickr-day.nextMonthDay{color:var(--grey)!important;opacity:.5}
.flatpickr-day:hover{background:var(--card-hover)!important;border-color:transparent!important}
.flatpickr-day.today{border-color:var(--grey)!important}
.flatpickr-day.selected{background:var(--white)!important;border-color:var(--white)!important;color:#000!important}
.flatpickr-day.flatpickr-disabled{color:#3a3a3c!important}
.flatpickr-months .flatpickr-prev-month svg,.flatpickr-months .flatpickr-next-month svg{fill:var(--grey)!important}
.flatpickr-months .flatpickr-prev-month:hover svg,.flatpickr-months .flatpickr-next-month:hover svg{fill:var(--white)!important}

/* ---------- Avatare & Profil ---------- */
.avatar{
  display:inline-flex;align-items:center;justify-content:center;
  border-radius:50%;font-weight:800;letter-spacing:.02em;
  background:linear-gradient(145deg,#2c2c2e,#1a1a1c);
  color:var(--white);border:1px solid rgba(255,255,255,.18);
  vertical-align:middle;flex:none;
}
.nav-user .avatar{margin-right:.25rem}
.profil-kopf{
  display:flex;align-items:center;gap:1.2rem;flex-wrap:wrap;
  background:linear-gradient(135deg,#1a1a1e,#121214);
  border:1px solid rgba(255,255,255,.08);border-radius:var(--radius);
  padding:1.6rem clamp(1.2rem,3vw,2rem);margin-bottom:14px;
}
.profil-kopf .avatar{box-shadow:0 8px 30px rgba(0,0,0,.5)}
.profil-name{font-size:1.4rem;font-weight:800;letter-spacing:-.02em}
.profil-meta{font-size:.85rem;color:var(--grey);font-weight:500;margin-top:.15rem}
.profil-stats{margin-left:auto;display:flex;gap:1.6rem;text-align:center}
.profil-stats .zahl{font-size:1.5rem;font-weight:800;letter-spacing:-.02em;display:block}
.profil-stats .name{font-size:.65rem;font-weight:600;color:var(--grey)}
.schalter-zeile{display:flex;align-items:center;justify-content:space-between;gap:1rem}

/* ---------- Checkbox-Listen ---------- */
.check-liste{
  display:flex;flex-direction:column;gap:.35rem;
  background:#000;border:1px solid rgba(255,255,255,.12);border-radius:var(--radius-sm);
  padding:.8rem 1rem;
}
.check-zeile{
  display:flex;align-items:center;gap:.6rem;cursor:pointer;
  font-size:.9rem;font-weight:500;color:var(--white);margin:0;
}
.check-zeile input{
  appearance:none;-webkit-appearance:none;flex:none;
  width:18px;height:18px;
  border:1px solid rgba(255,255,255,.3);border-radius:6px;
  background:#000;cursor:pointer;position:relative;
  transition:background .25s,border-color .25s;
}
.check-zeile input:checked{background:var(--white);border-color:var(--white)}
.check-zeile input:checked::after{
  content:"";position:absolute;left:5px;top:1.5px;
  width:5px;height:9px;border:solid #000;border-width:0 2px 2px 0;
  transform:rotate(45deg);
}

/* ---------- Modal (z.B. App-Installations-Anleitung) ---------- */
.modal{
  position:fixed;inset:0;z-index:200;display:none;
  align-items:center;justify-content:center;padding:1.2rem;
}
.modal.open{display:flex}
.modal-backdrop{
  position:absolute;inset:0;background:rgba(0,0,0,.6);
  backdrop-filter:saturate(180%) blur(20px);
  -webkit-backdrop-filter:saturate(180%) blur(20px);
}
.modal-card{
  position:relative;background:var(--card);border-radius:var(--radius);
  border:1px solid rgba(255,255,255,.1);
  max-width:640px;width:100%;max-height:82vh;overflow-y:auto;
  padding:clamp(1.8rem,4vw,3rem);
  animation:pop .45s cubic-bezier(.22,1,.36,1);
}
@keyframes pop{from{opacity:0;transform:translateY(24px) scale(.97)}to{opacity:1;transform:none}}
.modal-close{
  position:sticky;top:0;float:right;margin-left:1rem;
  width:34px;height:34px;border-radius:50%;border:0;cursor:pointer;
  background:rgba(255,255,255,.1);color:var(--white);
  font-size:1rem;line-height:1;font-family:inherit;
  transition:background .3s;
}
.modal-close:hover{background:rgba(255,255,255,.22)}

/* ---------- Login ---------- */
.login-wrap{max-width:400px;margin:8vh auto 0}
.login-wrap .wordmark{display:block;text-align:center;font-size:1.15rem;margin-bottom:1.6rem}

/* ============================================================
   APPLE-POLISH – der letzte Schliff
   ============================================================ */

/* Ambient-Glow im Hintergrund (sehr dezent, fixiert) */
body::before{
  content:'';position:fixed;inset:0;z-index:-1;pointer-events:none;
  background:
    radial-gradient(900px 500px at 15% -10%, rgba(90,120,255,.07), transparent 60%),
    radial-gradient(800px 500px at 90% 0%, rgba(255,255,255,.05), transparent 55%),
    radial-gradient(1000px 700px at 50% 115%, rgba(120,90,255,.05), transparent 60%);
}

/* Headlines mit Verlaufs-Text wie auf der Website */
h1{
  background:linear-gradient(180deg,#fff 55%,#b8b8bf);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;
  padding-bottom:.06em;
}
.login-wrap .wordmark{
  background:linear-gradient(180deg,#fff 55%,#b8b8bf);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;
}
.login-wrap .portal-tag{-webkit-text-fill-color:#000}

/* Karten: feiner Verlauf, Haar-Linie, sanfter Hover */
.card,.stepper-card,.contact-card{
  background:linear-gradient(180deg,#19191b 0%,#131315 100%);
  border:1px solid rgba(255,255,255,.07);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05), 0 10px 30px rgba(0,0,0,.35);
  transition:border-color .4s;
}
.card:hover{border-color:rgba(255,255,255,.13)}

/* Sanftes Einblenden beim Seitenaufbau */
@keyframes aufblenden{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
main > *,.detail-grid > div > .card{animation:aufblenden .55s cubic-bezier(.22,1,.36,1) both}
main > *:nth-child(2){animation-delay:.05s}
main > *:nth-child(3){animation-delay:.1s}
main > *:nth-child(4){animation-delay:.15s}
main > *:nth-child(5){animation-delay:.2s}
main > *:nth-child(6){animation-delay:.25s}
.auftrag-liste .auftrag-row{animation:aufblenden .5s cubic-bezier(.22,1,.36,1) both}
.auftrag-liste .auftrag-row:nth-child(1){animation-delay:.05s}
.auftrag-liste .auftrag-row:nth-child(2){animation-delay:.1s}
.auftrag-liste .auftrag-row:nth-child(3){animation-delay:.15s}
.auftrag-liste .auftrag-row:nth-child(4){animation-delay:.2s}
.auftrag-liste .auftrag-row:nth-child(5){animation-delay:.25s}
.auftrag-liste .auftrag-row:nth-child(n+6){animation-delay:.3s}
@media(prefers-reduced-motion:reduce){
  main > *,.auftrag-liste .auftrag-row,.detail-grid > div > .card{animation:none}
}

/* Status-Zähler: leuchtende Zahlen, Hover-Lift */
.status-zelle{
  background:linear-gradient(180deg,#1a1a1c,#141416);
  border:1px solid rgba(255,255,255,.06);
  transition:transform .4s cubic-bezier(.22,1,.36,1),border-color .4s,background .4s;
}
.status-zelle .zahl{text-shadow:0 0 18px currentColor;opacity:.95}
.status-zelle:hover{transform:translateY(-3px);border-color:rgba(255,255,255,.16)}

/* Auftragszeilen: mehr Tiefe, Pfeil bei Hover */
.auftrag-row{
  background:linear-gradient(180deg,#19191b,#141416);
  border:1px solid rgba(255,255,255,.06);
  position:relative;
  transition:transform .45s cubic-bezier(.22,1,.36,1),border-color .4s,box-shadow .4s;
}
.auftrag-row:hover{
  transform:translateY(-2px) scale(1.004);
  border-color:rgba(255,255,255,.16);
  box-shadow:0 14px 34px rgba(0,0,0,.45);
  background:linear-gradient(180deg,#1d1d1f,#161618);
}

/* Buttons: Glanz & Tiefe */
.btn{box-shadow:0 6px 18px rgba(0,0,0,.35)}
.btn:hover{box-shadow:0 10px 26px rgba(255,255,255,.14)}
.btn-ghost{box-shadow:none}
.btn-ghost:hover{background:rgba(255,255,255,.08);box-shadow:none}

/* Chips */
.chip{transition:background .3s,color .3s,transform .3s}
.chip:hover{transform:translateY(-1px)}
.chip.aktiv{box-shadow:0 4px 16px rgba(255,255,255,.18)}

/* Eingabefelder: sanfter Fokus-Ring */
input[type=text]:focus,input[type=email]:focus,input[type=password]:focus,
input[type=date]:focus,select:focus,textarea:focus{
  border-color:rgba(255,255,255,.5);
  box-shadow:0 0 0 4px rgba(255,255,255,.07);
}

/* Nav: aktive Seite hervorheben + feinere Optik */
nav{border-bottom:1px solid rgba(255,255,255,.06)}
.nav-link{position:relative;padding-bottom:2px}
.nav-link:hover{transform:none}

/* Board-Karten angleichen */
.board-spalte{background:linear-gradient(180deg,#19191b,#141416);border:1px solid rgba(255,255,255,.06)}
.board-karte{transition:transform .35s cubic-bezier(.22,1,.36,1),border-color .3s}
.board-karte:hover{transform:translateY(-2px);border-color:rgba(255,255,255,.2)}

/* Kommentare & Dateien: Haar-Linien statt harter Ränder */
.kommentar,.datei-row,.version{border-color:rgba(255,255,255,.08)}
.datei-row{transition:border-color .3s,transform .3s,background .3s}
.datei-row:hover{transform:translateX(3px);background:#0d0d0e}

/* Flash-Meldungen mit Glas-Effekt */
.flash{
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  box-shadow:0 8px 24px rgba(0,0,0,.35);
}

/* Dezente dunkle Scrollbars */
*{scrollbar-width:thin;scrollbar-color:#3a3a3c transparent}
::-webkit-scrollbar{width:9px;height:9px}
::-webkit-scrollbar-thumb{background:#3a3a3c;border-radius:99px;border:2px solid #000}
::-webkit-scrollbar-track{background:transparent}

/* Footer feiner */
footer{border-top:1px solid rgba(255,255,255,.05);letter-spacing:.02em}
