/* Webhafen Kundenbereich – hell, mit Glas-Effekten. Farben und Logo wie web-hafen.de, Wellenlinien aus dem Briefkopf. */
@font-face { font-family: "Mona Sans"; src: url(schrift/MonaSans-Var.woff2) format("woff2"); font-weight: 200 900; font-stretch: 75% 125%; font-display: swap; }
@property --kante { syntax: "<angle>"; inherits: false; initial-value: 300deg; }
:root {
  --ink: #0E0E10; --ink-2: #474C60; --ink-3: #6B7086;
  --blau: #2F3DFF; --blau-2: #5B6BFF; --lila: #D5D9FF;
  --gruen: #0F8F4E; --rot: #D4291F; --orange: #B45309;
  --karte: linear-gradient(160deg, rgba(255, 255, 255, .88), rgba(255, 255, 255, .62));
  --schatten: 0 14px 34px -18px rgba(24, 34, 110, .35), 0 2px 6px -2px rgba(24, 34, 110, .08);
  --schrift: "Mona Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
  color-scheme: light;
}
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; background: #F1F3FB; }
body { margin: 0; min-height: 100dvh; color: var(--ink); font: 400 16.5px/1.5 var(--schrift); -webkit-font-smoothing: antialiased; background: transparent; }
a { color: var(--blau); text-decoration: none; }
a:hover { text-decoration: underline; text-underline-offset: 3px; }
h1, h2, p { margin: 0; }
:focus-visible { outline: 3px solid rgba(47, 61, 255, .45); outline-offset: 2px; border-radius: 8px; }
.p-vh { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }

/* Tapete: helles Blau mit weichem Licht und den Webhafen-Wellen */
.p-tapete { position: fixed; inset: 0; z-index: -1; pointer-events: none;
  background:
    radial-gradient(70% 45% at 92% -8%, rgba(91, 107, 255, .32) 0%, transparent 70%),
    radial-gradient(55% 40% at -8% 108%, rgba(213, 217, 255, .95) 0%, transparent 70%),
    linear-gradient(180deg, #F4F6FD 0%, #EEF1FB 100%); }
.p-tapete svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.p-tapete path { stroke: rgba(47, 61, 255, .11); stroke-width: 1.1; }

/* Glas-Karten mit Lichtkante: oben links weiß, unten rechts Webhafen-Blau */
.p-karte { position: relative; isolation: isolate; background: var(--karte); border-radius: 22px; box-shadow: var(--schatten), inset 0 1px 0 #fff;
  -webkit-backdrop-filter: blur(18px) saturate(160%); backdrop-filter: blur(18px) saturate(160%); }
.p-karte::after { content: ""; position: absolute; inset: 0; border-radius: inherit; padding: 1px; pointer-events: none; z-index: 2;
  background: conic-gradient(from var(--kante), #fff 0%, rgba(255, 255, 255, .25) 18%, rgba(47, 61, 255, .06) 36%, rgba(47, 61, 255, .32) 52%, rgba(47, 61, 255, .06) 68%, rgba(255, 255, 255, .35) 86%, #fff 100%);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor;
  mask: linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0); }
@media (hover: hover) {
  a.p-karte { transition: transform .18s cubic-bezier(.3, .7, .4, 1), box-shadow .18s; }
  a.p-karte:hover { transform: translateY(-2px); text-decoration: none; box-shadow: 0 20px 40px -18px rgba(24, 34, 110, .45), inset 0 1px 0 #fff; }
  a.p-karte:hover::after { animation: kante 1.1s cubic-bezier(.4, 0, .2, 1); }
}
@keyframes kante { from { --kante: 300deg; } to { --kante: 660deg; } }

/* Kopf mit Logo und Tabs (am Handy unten) */
.p-kopf { position: sticky; top: 0; z-index: 20; display: flex; align-items: center; gap: 18px;
  padding: max(12px, env(safe-area-inset-top)) max(20px, calc((100% - 960px) / 2)) 12px;
  background: rgba(244, 246, 253, .72); -webkit-backdrop-filter: blur(20px) saturate(180%); backdrop-filter: blur(20px) saturate(180%);
  border-bottom: 1px solid rgba(47, 61, 255, .08); }
.p-marke { display: flex; align-items: center; gap: 10px; color: var(--ink); }
.p-marke:hover { text-decoration: none; }
.p-marke img { height: 20px; width: auto; display: block; }
.p-marke span { font-size: 13px; font-weight: 600; color: var(--ink-3); padding-left: 10px; border-left: 1px solid rgba(14, 14, 16, .15); }
.p-tabs { display: flex; gap: 4px; margin-left: auto; }
.p-tabs a { display: flex; align-items: center; gap: 7px; padding: 8px 13px; border-radius: 999px; color: var(--ink-2); font-size: 15px; font-weight: 550; }
.p-tabs a:hover { background: rgba(47, 61, 255, .06); text-decoration: none; }
.p-tabs a[aria-current="page"] { color: var(--blau); background: rgba(255, 255, 255, .85); box-shadow: 0 4px 14px -6px rgba(24, 34, 110, .35), inset 0 0 0 1px rgba(47, 61, 255, .12); }
.p-ico { width: 20px; height: 20px; flex: none; }
.p-ico.klein { width: 16px; height: 16px; vertical-align: -3px; }
.p-ico.gross { width: 40px; height: 40px; color: var(--blau); }
.p-zugang { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; color: var(--ink-2); background: rgba(255, 255, 255, .7); box-shadow: inset 0 0 0 1px rgba(47, 61, 255, .12); }
.p-zugang.aktiv { color: var(--blau); }
@media (max-width: 760px) {
  /* Kein backdrop-filter am Kopf: sonst hängt die feste Tab-Leiste am Kopf statt unten am Bildschirm */
  .p-kopf { justify-content: space-between; -webkit-backdrop-filter: none; backdrop-filter: none; background: rgba(244, 246, 253, .95); }
  .p-marke span { display: none; }
  .p-tabs { position: fixed; left: 0; right: 0; bottom: 0; margin: 0; justify-content: space-around; gap: 0; padding: 6px 6px max(8px, env(safe-area-inset-bottom));
    background: rgba(248, 249, 254, .82); -webkit-backdrop-filter: blur(20px) saturate(180%); backdrop-filter: blur(20px) saturate(180%); border-top: 1px solid rgba(47, 61, 255, .08); }
  .p-tabs a { flex-direction: column; gap: 3px; padding: 4px 6px; min-width: 62px; font-size: 10.5px; font-weight: 600; border-radius: 12px; }
  .p-tabs a .p-ico { width: 25px; height: 25px; }
  .p-tabs a[aria-current="page"] { background: none; box-shadow: none; }
  .p-seite { padding-bottom: calc(110px + env(safe-area-inset-bottom)) !important; }
}

/* Seiten */
.p-seite { max-width: 960px; margin: 0 auto; padding: 28px 20px 64px; display: flex; flex-direction: column; gap: 18px; }
.p-seite.schmal { max-width: 560px; }
.p-gross { font-size: clamp(28px, 6vw, 38px); line-height: 1.12; font-weight: 700; letter-spacing: -.015em; }
.p-unter { color: var(--ink-2); margin-top: -10px; max-width: 62ch; }
.p-zwischen { font-size: 18px; font-weight: 650; margin-top: 8px; }
.p-leise { color: var(--ink-2); }
.klein { font-size: 14px; }
.mitte { text-align: center; }
.p-hinweis { border-radius: 14px; padding: 12px 16px; font-size: 15px; }
.p-hinweis.rot { background: rgba(212, 41, 31, .08); color: #A11D15; box-shadow: inset 0 0 0 1px rgba(212, 41, 31, .2); }
.p-hinweis.gruen { background: rgba(15, 143, 78, .08); color: #0B6B3A; box-shadow: inset 0 0 0 1px rgba(15, 143, 78, .22); }
.rot { color: var(--rot) !important; }

/* Knöpfe */
.p-knopf { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 46px; padding: 0 20px; border: 0; border-radius: 14px; cursor: pointer;
  font: 600 16px var(--schrift); color: #fff; background: linear-gradient(180deg, var(--blau-2), var(--blau));
  box-shadow: 0 10px 22px -10px rgba(47, 61, 255, .8), inset 0 1px 0 rgba(255, 255, 255, .3); }
.p-knopf:hover { text-decoration: none; filter: brightness(1.05); }
.p-knopf:active { transform: scale(.98); }
.p-knopf.zweit { color: var(--blau); background: rgba(255, 255, 255, .8); box-shadow: inset 0 0 0 1px rgba(47, 61, 255, .2), 0 6px 16px -10px rgba(24, 34, 110, .4); }
.p-knopf.voll { width: 100%; }
.p-knopf.gross { min-height: 54px; font-size: 17px; }
.p-knopf.klein { min-height: 40px; padding: 0 14px; font-size: 15px; border-radius: 12px; }
.p-knopf .p-ico { width: 18px; height: 18px; }
.p-knopf:disabled { opacity: .5; cursor: progress; }

/* Formulare */
.p-form { display: flex; flex-direction: column; gap: 14px; padding: 22px; }
.p-form h2, .p-projekt h2, .p-kontakt h2, .p-site h2 { font-size: 18px; font-weight: 650; }
.p-felder { display: flex; flex-direction: column; gap: 14px; }
.p-feld { display: flex; flex-direction: column; gap: 6px; font-size: 14px; font-weight: 600; color: var(--ink-2); }
.p-feld input:not([type="file"]), .p-feld textarea { font: 400 16.5px var(--schrift); color: var(--ink); padding: 12px 14px; border-radius: 12px; border: 0; background: rgba(255, 255, 255, .9);
  box-shadow: inset 0 0 0 1px rgba(14, 14, 16, .12), inset 0 1px 2px rgba(14, 14, 16, .05); width: 100%; }
.p-feld textarea { resize: vertical; line-height: 1.45; }
.p-feld input:focus, .p-feld textarea:focus { outline: none; box-shadow: inset 0 0 0 2px var(--blau), 0 0 0 4px rgba(47, 61, 255, .12); }
.p-feld input[type="file"] { font: 400 15px var(--schrift); color: var(--ink-2); }
.p-feld input[type="file"]::file-selector-button { margin-right: 10px; border: 0; border-radius: 999px; padding: 8px 14px; font: 600 14px var(--schrift); color: var(--blau); background: rgba(47, 61, 255, .08); cursor: pointer; }
.p-fortschritt { font-size: 14px; color: var(--ink-2); }

/* Anmelden */
body.p-mitte { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 32px 20px; }
.p-anmelden { width: 100%; max-width: 420px; display: flex; flex-direction: column; gap: 16px; text-align: center; }
.p-anmelden form { text-align: left; }
.p-logo-gross { width: 170px; height: auto; margin: 0 auto 10px; display: block; }
.p-anmelden h1 { font-size: 30px; font-weight: 700; letter-spacing: -.01em; }
.p-segmente { display: flex; padding: 3px; border-radius: 13px; background: rgba(14, 14, 16, .06); }
.p-segmente a { flex: 1; padding: 9px 10px; border-radius: 10px; font-size: 15px; font-weight: 600; color: var(--ink-2); }
.p-segmente a:hover { text-decoration: none; }
.p-segmente a[aria-selected="true"] { background: #fff; color: var(--ink); box-shadow: 0 4px 12px -6px rgba(24, 34, 110, .4); }
.p-gesendet { padding: 28px 24px; display: flex; flex-direction: column; align-items: center; gap: 10px; }
.p-gesendet h2 { font-size: 20px; }
.p-fuss { margin-top: 28px; display: flex; gap: 18px; font-size: 13px; }
.p-fuss a { color: var(--ink-3); }

/* Übersicht */
.p-projekt { padding: 22px; display: flex; flex-direction: column; gap: 16px; }
.p-schritte { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 6px; }
.p-schritte li { position: relative; display: flex; flex-direction: column; align-items: center; gap: 8px; font-size: 13px; font-weight: 550; text-align: center; color: var(--ink-3); line-height: 1.25; }
.p-schritte li::before { content: ""; position: absolute; top: 8px; left: calc(-50% + 12px); right: calc(50% + 12px); height: 2px; border-radius: 1px; background: rgba(14, 14, 16, .1); }
.p-schritte li:first-child::before { display: none; }
.p-schritte li.fertig::before, .p-schritte li.jetzt::before { background: var(--blau); }
.p-punkt { width: 18px; height: 18px; border-radius: 50%; background: #fff; box-shadow: inset 0 0 0 2px rgba(14, 14, 16, .15); }
.p-schritte .fertig .p-punkt { background: var(--blau); box-shadow: none; }
.p-schritte .fertig { color: var(--ink-2); }
.p-schritte .jetzt { color: var(--ink); font-weight: 700; }
.p-schritte .jetzt .p-punkt { background: #fff; box-shadow: inset 0 0 0 5px var(--blau), 0 0 0 6px rgba(47, 61, 255, .14); }
.p-phase-text { font-size: 15px; color: var(--ink-2); }
@media (max-width: 520px) { .p-schritte li span:last-child { font-size: 11.5px; } }
.p-kacheln { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
@media (max-width: 860px) { .p-kacheln { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.p-kachel { padding: 16px; display: flex; flex-direction: column; gap: 4px; color: var(--ink); min-width: 0; }
.p-kachel-ico { width: 38px; height: 38px; border-radius: 11px; display: grid; place-items: center; color: #fff; margin-bottom: 8px; box-shadow: inset 0 1px 0 rgba(255, 255, 255, .35); }
.t-gruen { background: linear-gradient(180deg, #3ED6B5, #0B9C83); } .t-blau { background: linear-gradient(180deg, #4FD1E8, #0E8FB5); }
.t-lila { background: linear-gradient(180deg, #8B96FF, #2F3DFF); } .t-orange { background: linear-gradient(180deg, #FFB340, #FF7A00); }
.p-k-titel { font-size: 13.5px; font-weight: 600; color: var(--ink-3); }
.p-kachel strong { font-size: 21px; line-height: 1.2; font-weight: 700; letter-spacing: -.01em; }
.p-kachel small { font-size: 13px; color: var(--ink-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.p-aktionen { display: flex; flex-wrap: wrap; gap: 10px; }
.p-kontakt { padding: 18px 20px; display: flex; flex-wrap: wrap; align-items: center; gap: 14px; }
.p-kontakt > div:nth-child(2) { flex: 1; min-width: 160px; }
.p-kontakt p { color: var(--ink-2); font-size: 15px; }
.p-foto { width: 56px; height: 56px; border-radius: 50%; object-fit: cover; box-shadow: 0 0 0 3px #fff, 0 6px 16px -6px rgba(24, 34, 110, .5); }
.p-kontakt-knoepfe { display: flex; gap: 8px; }

/* Listen */
.p-liste { list-style: none; margin: 0; padding: 4px 0; }
.p-liste > li + li { border-top: 1px solid rgba(14, 14, 16, .07); }
.p-zeile { display: flex; align-items: center; gap: 14px; padding: 14px 20px; color: var(--ink); cursor: pointer; }
.p-zeile:hover { text-decoration: none; background: rgba(47, 61, 255, .03); }
.p-text { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.p-text span { font-weight: 600; }
.p-text small { color: var(--ink-2); font-size: 14px; }
.p-umbruch { overflow-wrap: anywhere; }
.p-wert { display: flex; flex-direction: column; align-items: flex-end; gap: 4px; }
.p-wert strong { font-variant-numeric: tabular-nums; }
[class^="p-marke-"] { font-size: 12.5px; font-weight: 650; padding: 3px 9px; border-radius: 999px; white-space: nowrap; }
.p-marke-gruen { color: #0B6B3A; background: rgba(15, 143, 78, .1); } .p-marke-rot { color: #A11D15; background: rgba(212, 41, 31, .1); }
.p-marke-blau { color: #2230C9; background: rgba(47, 61, 255, .09); } .p-marke-grau { color: var(--ink-2); background: rgba(14, 14, 16, .06); }
.p-leer { padding: 36px 24px; display: flex; flex-direction: column; align-items: center; gap: 12px; text-align: center; color: var(--ink-2); }
.p-wunsch summary { list-style: none; }
.p-wunsch summary::-webkit-details-marker { display: none; }
.p-wunsch-inhalt { padding: 0 20px 16px; display: flex; flex-direction: column; gap: 10px; }
.p-vor { white-space: pre-wrap; overflow-wrap: anywhere; }
.p-antwort { padding: 12px 14px; border-radius: 14px; background: rgba(47, 61, 255, .06); box-shadow: inset 0 0 0 1px rgba(47, 61, 255, .12); }
.p-antwort strong { font-size: 13.5px; color: var(--blau); }
.p-datei-ico { width: 38px; height: 38px; border-radius: 11px; display: grid; place-items: center; color: #fff; background: linear-gradient(180deg, #FFB340, #FF7A00); flex: none; }
.p-datei-ico.von-maik { background: linear-gradient(180deg, #8B96FF, #2F3DFF); }
.p-ablage { padding: 30px 20px; display: flex; flex-direction: column; align-items: center; gap: 12px; text-align: center; transition: box-shadow .15s; }
.p-ablage.drueber { box-shadow: inset 0 0 0 2px var(--blau), var(--schatten); }

/* Website */
.p-site { padding: 20px 22px; display: flex; flex-direction: column; gap: 16px; }
.p-site-kopf { display: flex; gap: 14px; align-items: center; }
.p-status { width: 14px; height: 14px; border-radius: 50%; flex: none; }
.p-status.gruen { background: #18B566; box-shadow: 0 0 0 5px rgba(24, 181, 102, .15); }
.p-status.rot { background: var(--rot); box-shadow: 0 0 0 5px rgba(212, 41, 31, .15); }
.p-status.grau { background: #A0A4B4; }
.p-werte { margin: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
@media (max-width: 760px) { .p-werte { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.p-werte div { padding: 12px 14px; border-radius: 14px; background: rgba(255, 255, 255, .7); box-shadow: inset 0 0 0 1px rgba(14, 14, 16, .06); }
.p-werte dt { font-size: 13px; color: var(--ink-3); font-weight: 600; }
.p-werte dd { margin: 2px 0 0; font-weight: 650; }
.p-mitte-form { display: flex; justify-content: center; }
@media (prefers-reduced-motion: reduce) { a.p-karte, .p-knopf { transition: none; } a.p-karte:hover { transform: none; } a.p-karte:hover::after { animation: none; } }
