/* ============================================================
   HAFA Bestellsystem — Oberfläche für Fachkunden (B2B)
   Shop-Look auf Basis des HAFA-2026-Systems. Tokens: ../styles.css
   Akzent: HAFA Rot. Grün = Status "auf Lager".
   ============================================================ */
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0;background:var(--surface-alt);color:var(--text-body);font-family:var(--font-body);-webkit-font-smoothing:antialiased;}
img{display:block;max-width:100%;}
a{color:inherit;text-decoration:none;}
h1,h2,h3,h4{font-family:var(--font-display);font-weight:700;color:var(--text-strong);letter-spacing:-0.015em;}

.wrap{max-width:1720px;margin:0 auto;padding-inline:40px;}

/* ---------- Eyebrow / Kicker ---------- */
.eyebrow{font-family:var(--font-body);font-weight:var(--fw-bold);font-size:var(--fs-xs);letter-spacing:.12em;text-transform:uppercase;color:var(--color-brand);display:inline-flex;align-items:center;gap:10px;}
.eyebrow::before{content:"";width:26px;height:2px;background:var(--color-brand);display:inline-block;}

/* ---------- Buttons (aus dem Website-Entwurf übernommen) ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;font-family:var(--font-body);font-weight:var(--fw-bold);letter-spacing:.01em;border:2px solid transparent;border-radius:8px;cursor:pointer;text-decoration:none;white-space:nowrap;font-size:15px;padding:13px 22px;transition:background var(--dur-fast) var(--ease-standard),color var(--dur-fast) var(--ease-standard),border-color var(--dur-fast) var(--ease-standard),transform var(--dur-fast) var(--ease-standard),box-shadow var(--dur-base) var(--ease-standard);}
.btn svg{width:18px;height:18px;flex:none;}
.btn:active{transform:translateY(1px);}
.btn--primary{background:var(--color-brand);color:#fff;border-color:var(--color-brand);box-shadow:0 8px 22px rgba(227,6,19,.26);}
.btn--primary:hover{background:var(--color-brand-hover);border-color:var(--color-brand-hover);box-shadow:0 12px 30px rgba(227,6,19,.34);transform:translateY(-1px);}
.btn--ghost{background:transparent;color:var(--text-strong);border-color:var(--border-strong);}
.btn--ghost:hover{border-color:var(--gray-900);background:var(--surface-alt);}
.btn--quiet{background:transparent;color:var(--color-brand);border-color:transparent;padding-inline:8px;}
.btn--quiet:hover{background:var(--color-brand-tint);}
.btn--white{background:#fff;color:var(--color-brand);border-color:#fff;}
.btn--white:hover{background:var(--gray-50);}
.btn--lg{font-size:16px;padding:16px 28px;}
.btn--sm{font-size:13px;padding:9px 14px;}
.btn--block{width:100%;}

/* ---------- App-Header (Shop-Shell) ---------- */
.app{position:sticky;top:0;z-index:60;background:rgba(255,255,255,.94);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);}
.app__bar{display:flex;align-items:center;gap:24px;height:72px;}
.app__logo{height:32px;flex:none;}
.app__search{flex:1;display:flex;max-width:680px;border:1.5px solid var(--border-strong);border-radius:9px;overflow:hidden;background:#fff;transition:border-color var(--dur-fast),box-shadow var(--dur-fast);}
.app__search:focus-within{border-color:var(--color-brand);box-shadow:0 0 0 3px var(--color-brand-tint);}
.app__search select{appearance:none;-webkit-appearance:none;border:none;border-right:1px solid var(--border);background:var(--surface-alt);font-family:var(--font-body);font-size:14px;color:var(--text-body);padding:0 30px 0 14px;cursor:pointer;outline:none;background-image:linear-gradient(45deg,transparent 50%,var(--text-muted) 50%),linear-gradient(135deg,var(--text-muted) 50%,transparent 50%);background-position:calc(100% - 16px) 50%,calc(100% - 11px) 50%;background-size:5px 5px,5px 5px;background-repeat:no-repeat;}
.app__search input{flex:1;border:none;outline:none;font-family:var(--font-body);font-size:15px;color:var(--text-body);padding:0 14px;min-width:0;}
.app__search button{border:none;background:var(--color-brand);color:#fff;padding:0 18px;cursor:pointer;display:flex;align-items:center;}
.app__search button svg{width:19px;height:19px;}
.app__search button:hover{background:var(--color-brand-hover);}
.app__right{display:flex;align-items:center;gap:8px;margin-left:auto;flex:none;}

/* Kunden-Badge */
.kbadge{display:flex;align-items:center;gap:10px;padding:7px 12px;border-radius:9px;background:var(--surface-alt);border:1px solid var(--border);}
.kbadge__av{width:34px;height:34px;border-radius:7px;background:var(--color-brand);color:#fff;font-family:var(--font-display);font-weight:700;font-size:14px;display:flex;align-items:center;justify-content:center;flex:none;}
.kbadge__meta{line-height:1.2;}
.kbadge__meta b{display:block;font-size:13px;color:var(--text-strong);}
.kbadge__meta span{font-size:11.5px;color:var(--text-subtle);}

/* Icon-Button (Warenkorb, Logout) */
.iconbtn{position:relative;width:44px;height:44px;border-radius:9px;border:1px solid var(--border);background:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text-strong);transition:border-color var(--dur-fast),background var(--dur-fast);}
.iconbtn:hover{border-color:var(--gray-600);background:var(--surface-alt);}
.iconbtn svg{width:21px;height:21px;}
.iconbtn--cart{border-color:var(--color-brand);color:var(--color-brand);}
.iconbtn__badge{position:absolute;top:-7px;right:-7px;min-width:20px;height:20px;padding:0 5px;box-sizing:border-box;border-radius:10px;background:var(--color-brand);color:#fff;font-family:var(--font-body);font-size:11.5px;font-weight:var(--fw-bold);line-height:20px;text-align:center;border:2px solid #fff;box-shadow:0 1px 3px rgba(0,0,0,.2);}
.iconbtn--cart:hover{background:var(--color-brand-tint);}
.cart-count{position:absolute;top:-7px;right:-7px;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:var(--color-brand);color:#fff;font-size:11px;font-weight:var(--fw-bold);display:none;align-items:center;justify-content:center;line-height:1;border:2px solid #fff;}

/* Kategorie-Navigation unter dem Header */
.subnav{background:var(--gray-900);position:relative;}
.subnav__bar{display:flex;align-items:center;gap:8px;height:46px;}
.subnav__quick{display:flex;align-items:center;gap:2px;min-width:0;overflow:hidden;}
.subnav__quick a{font-size:13.5px;font-weight:var(--fw-medium);color:rgba(255,255,255,.78);padding:8px 14px;border-radius:7px;white-space:nowrap;transition:background var(--dur-fast),color var(--dur-fast);}
.subnav__quick a:hover{color:#fff;background:rgba(255,255,255,.1);}
.subnav__quick a.is-active{color:#fff;background:var(--color-brand);}

/* Megamenü-Trigger */
.mega__trigger{display:inline-flex;align-items:center;gap:9px;font-family:var(--font-body);font-size:13.5px;font-weight:var(--fw-bold);color:#fff;background:rgba(255,255,255,.12);border:0;border-radius:7px;padding:8px 14px;cursor:pointer;white-space:nowrap;flex:none;transition:background var(--dur-fast);}
.mega__trigger:hover,.subnav.is-open .mega__trigger{background:var(--color-brand);}
.mega__trigger > svg{width:17px;height:17px;}
.mega__chev{width:15px!important;height:15px!important;transition:transform var(--dur-base) var(--ease-standard);}
.subnav.is-open .mega__chev{transform:rotate(180deg);}

/* Megamenü-Panel */
.mega__panel{position:absolute;left:0;right:0;top:100%;background:#fff;border-top:1px solid var(--border);box-shadow:var(--shadow-lg);z-index:40;opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity var(--dur-base) var(--ease-standard),transform var(--dur-base) var(--ease-standard),visibility var(--dur-base);}
.subnav.is-open .mega__panel{opacity:1;visibility:visible;transform:translateY(0);}
.mega__panel .wrap{padding-block:22px;}
.mega__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;}
.mega__item{display:flex;align-items:center;gap:13px;padding:11px 13px;border-radius:10px;text-decoration:none;border:1px solid transparent;transition:background var(--dur-fast),border-color var(--dur-fast);}
.mega__item:hover{background:var(--surface-alt);border-color:var(--border);}
.mega__item.is-active{background:var(--color-brand-tint);}
.mega__thumb{width:46px;height:46px;border-radius:8px;overflow:hidden;flex:none;background:var(--surface-alt);}
.mega__thumb img{width:100%;height:100%;object-fit:cover;}
.mega__txt{display:flex;flex-direction:column;min-width:0;}
.mega__txt b{font-size:14.5px;color:var(--text-strong);font-weight:var(--fw-bold);line-height:1.25;}
.mega__txt span{font-size:12.5px;color:var(--text-subtle);margin-top:2px;}
@media (max-width:1024px){ .subnav__quick{display:none;} .mega__grid{grid-template-columns:repeat(3,1fr);} }
@media (max-width:720px){ .mega__grid{grid-template-columns:1fr 1fr;} .mega__txt span{display:none;} }

/* ---------- Breadcrumb ---------- */
.crumb{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-subtle);padding:22px 0 0;}
.crumb a:hover{color:var(--color-brand);}
.crumb svg{width:13px;height:13px;opacity:.6;}
.crumb b{color:var(--text-body);font-weight:var(--fw-medium);}

/* ---------- Page-Head ---------- */
.phead{padding:26px 0 8px;}
.phead h1{font-size:38px;line-height:1.05;margin:8px 0 10px;}
.phead p{font-size:16px;color:var(--text-muted);line-height:1.55;margin:0;max-width:62ch;}
.phead__row{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;flex-wrap:wrap;}

/* ---------- Kategorie-Kacheln (Startseite B) ---------- */
.cat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;padding:30px 0 80px;}
.cat-tile{position:relative;border-radius:14px;overflow:hidden;background:#fff;border:1px solid var(--border);display:flex;flex-direction:column;transition:transform var(--dur-base) var(--ease-standard),box-shadow var(--dur-base) var(--ease-standard),border-color var(--dur-base);}
.cat-tile:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:transparent;}
.cat-tile__media{position:relative;aspect-ratio:16/10;overflow:hidden;background:var(--surface-alt);}
.cat-tile__media img{width:100%;height:100%;object-fit:cover;transition:transform var(--dur-slow) var(--ease-standard);}
.cat-tile:hover .cat-tile__media img{transform:scale(1.05);}
.cat-tile__count{position:absolute;top:13px;right:13px;background:rgba(28,28,28,.78);color:#fff;font-size:12px;font-weight:var(--fw-bold);padding:5px 11px;border-radius:999px;backdrop-filter:blur(3px);}
.cat-tile__body{padding:20px 22px 22px;display:flex;flex-direction:column;flex:1;gap:7px;}
.cat-tile__body h3{font-size:19px;margin:0;line-height:1.18;}
.cat-tile__body p{font-size:13.5px;color:var(--text-muted);line-height:1.5;margin:0;flex:1;}
.cat-tile__go{display:inline-flex;align-items:center;gap:7px;font-weight:var(--fw-bold);font-size:13.5px;color:var(--color-brand);margin-top:6px;}
.cat-tile__go svg{width:16px;height:16px;transition:transform var(--dur-fast);}
.cat-tile:hover .cat-tile__go svg{transform:translateX(4px);}

/* ---------- Layout Kategorie/Liste (C) ---------- */
.shop{display:grid;grid-template-columns:262px 1fr;gap:34px;padding:24px 0 80px;align-items:start;}

/* Filter-Sidebar */
.filters{position:sticky;top:96px;background:#fff;border:1px solid var(--border);border-radius:14px;padding:6px 22px 22px;}
.catlayout--nofilters .filters{background:none;border:none;padding:6px 8px 0 0;}
.filters__empty{color:var(--text-subtle);font-size:13px;line-height:1.55;margin:0;}
.fgroup{padding:20px 0;border-bottom:1px solid var(--border);}
.fgroup:last-child{border-bottom:none;}
.fgroup__title{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--text-strong);margin:0 0 14px;letter-spacing:-0.01em;}
.chips{display:flex;flex-wrap:wrap;gap:8px;}
.chip{font-size:13px;font-weight:var(--fw-medium);color:var(--text-body);background:var(--surface-alt);border:1.5px solid var(--border);border-radius:999px;padding:8px 14px;cursor:pointer;transition:all var(--dur-fast) var(--ease-standard);user-select:none;}
.chip:hover{border-color:var(--gray-600);}
.chip.is-on{background:var(--color-brand);border-color:var(--color-brand);color:#fff;}
/* Dekor-Swatch-Checkboxen */
.swatches{display:flex;flex-direction:column;gap:4px;}
.swatch{display:flex;align-items:center;gap:11px;padding:7px 8px;border-radius:8px;cursor:pointer;transition:background var(--dur-fast);}
.swatch:hover{background:var(--surface-alt);}
.swatch input{position:absolute;opacity:0;width:0;height:0;}
.swatch__box{width:34px;height:34px;border-radius:7px;border:1.5px solid var(--border);object-fit:cover;flex:none;transition:border-color var(--dur-fast),box-shadow var(--dur-fast);}
.swatch input:checked + .swatch__box{border-color:var(--color-brand);box-shadow:0 0 0 2px var(--color-brand);}
.swatch__name{font-size:13.5px;color:var(--text-body);}
.swatch input:checked ~ .swatch__name{font-weight:var(--fw-bold);color:var(--text-strong);}

/* Listen-Toolbar */
.ltoolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px;flex-wrap:wrap;}
.ltoolbar__count{font-size:14px;color:var(--text-muted);}
.ltoolbar__count b{color:var(--text-strong);}
.ltoolbar__right{display:flex;align-items:center;gap:12px;}
.sortsel{position:relative;}
.sortsel select{appearance:none;-webkit-appearance:none;font-family:var(--font-body);font-size:14px;color:var(--text-body);background:#fff;border:1.5px solid var(--border-strong);border-radius:8px;padding:10px 38px 10px 14px;cursor:pointer;}
.sortsel select:focus{outline:none;border-color:var(--color-brand);box-shadow:0 0 0 3px var(--color-brand-tint);}
.sortsel::after{content:"";position:absolute;right:14px;top:50%;width:8px;height:8px;border-right:2px solid var(--text-muted);border-bottom:2px solid var(--text-muted);transform:translateY(-65%) rotate(45deg);pointer-events:none;}

/* ---------- Artikelkarte (B2B-Variante der .pcard) — Kernkomponente ---------- */
.agrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:22px;}
.agrid--2{grid-template-columns:repeat(2,1fr);}
.acard{display:flex;flex-direction:column;background:#fff;border:1px solid var(--border);border-radius:14px;overflow:hidden;transition:transform var(--dur-base) var(--ease-standard),box-shadow var(--dur-base) var(--ease-standard),border-color var(--dur-base);}
.acard:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:transparent;}
.acard__media{position:relative;aspect-ratio:16/10;overflow:hidden;background:var(--surface-alt);display:block;}
.acard__media img{width:100%;height:100%;object-fit:cover;transition:transform var(--dur-slow) var(--ease-standard);}
.acard:hover .acard__media img{transform:scale(1.05);}
.acard__tag{position:absolute;top:13px;left:13px;background:var(--color-brand);color:#fff;font-size:11px;font-weight:var(--fw-bold);letter-spacing:.05em;text-transform:uppercase;padding:5px 11px;border-radius:6px;}
.acard__tag--aktion{background:var(--gray-900);}
.acard__stock{position:absolute;top:13px;right:13px;display:inline-flex;align-items:center;gap:6px;background:rgba(255,255,255,.94);border:1px solid var(--green-100);color:var(--green-700);font-size:11.5px;font-weight:var(--fw-bold);padding:5px 10px;border-radius:999px;}
.acard__stock::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--green-500);}
.acard__stock--out{color:var(--text-muted);border-color:var(--border);}
.acard__stock--out::before{background:var(--gray-400);}
.acard__body{padding:18px 20px 20px;display:flex;flex-direction:column;flex:1;}
.acard__art{font-size:12px;font-weight:var(--fw-bold);letter-spacing:.04em;color:var(--text-subtle);font-family:var(--font-body);}
.acard__title{font-size:18px;line-height:1.2;margin:5px 0 6px;color:var(--text-strong);}
.acard__title a:hover{color:var(--color-brand);}
.acard__meta{font-size:13px;color:var(--text-muted);line-height:1.45;margin:0 0 16px;}
.acard__meta b{color:var(--text-body);font-weight:var(--fw-medium);}
.acard__price{margin-top:auto;display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding-top:14px;border-top:1px solid var(--border);margin-bottom:14px;}
.acard__price .p{font-family:var(--font-display);font-weight:700;font-size:25px;color:var(--text-strong);letter-spacing:-0.02em;}
.acard__price .u{font-size:12px;color:var(--text-subtle);}
.acard__price .login{font-size:13px;font-weight:var(--fw-bold);color:var(--color-brand);}
.acard__actions{display:flex;gap:10px;align-items:stretch;}

/* Mengen-Stepper */
.stepper{display:inline-flex;align-items:center;border:1.5px solid var(--border-strong);border-radius:8px;overflow:hidden;flex:none;background:#fff;}
.stepper button{width:38px;height:44px;border:none;background:#fff;color:var(--text-strong);font-size:19px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background var(--dur-fast);}
.stepper button:hover{background:var(--surface-alt);color:var(--color-brand);}
.stepper input{width:46px;height:44px;border:none;border-left:1px solid var(--border);border-right:1px solid var(--border);text-align:center;font-family:var(--font-body);font-size:15px;font-weight:var(--fw-bold);color:var(--text-strong);outline:none;-moz-appearance:textfield;}
.stepper input::-webkit-outer-spin-button,.stepper input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}
.acard__actions .stepper{flex:1;}
.acard__actions .stepper [data-qty]{flex:1;width:100%;}

/* Icon-only Button "Auf die Liste" */
.btn--icon{flex:none;width:46px;min-width:46px;padding:0;gap:0;}
.btn--icon svg{width:22px;height:22px;}

/* ---- Katalog-Suche (prominent) ---- */
.catsearch{position:relative;margin:0 0 18px;}
.catsearch input{width:100%;box-sizing:border-box;font-family:var(--font-body);font-size:17px;padding:16px 18px 16px 52px;border:2px solid var(--border-strong);border-radius:12px;background:#fff;transition:border-color var(--dur-fast),box-shadow var(--dur-fast);}
.catsearch input:focus{outline:none;border-color:var(--color-brand);box-shadow:0 0 0 4px rgba(227,6,19,.12);}
.catsearch__icon{position:absolute;left:18px;top:50%;transform:translateY(-50%);width:22px;height:22px;color:var(--text-subtle);pointer-events:none;}

/* ---- Ansicht-Umschalter Karten/Liste ---- */
.viewtoggle{display:inline-flex;gap:2px;background:var(--surface-alt);border:1px solid var(--border);border-radius:9px;padding:3px;}
.viewtoggle button{display:inline-flex;align-items:center;justify-content:center;width:36px;height:30px;border:none;background:transparent;border-radius:6px;cursor:pointer;color:var(--text-subtle);}
.viewtoggle button svg{width:18px;height:18px;}
.viewtoggle button.is-active{background:#fff;color:var(--text-strong);box-shadow:0 1px 3px rgba(0,0,0,.12);}

/* ---- Listenansicht ---- */
#catresults.is-list .agrid{display:flex;flex-direction:column;gap:12px;}
#catresults.is-list .acard{flex-direction:row;align-items:stretch;}
#catresults.is-list .acard__media{width:150px;min-width:150px;aspect-ratio:auto;}
#catresults.is-list .acard__media img{height:100%;object-fit:cover;}
#catresults.is-list .acard__body{flex:1;display:grid;grid-template-columns:1fr auto;grid-template-areas:"art actions" "title actions" "meta actions" "price actions";align-content:center;align-items:center;gap:3px 24px;padding:14px 20px;}
#catresults.is-list .acard__art{grid-area:art;}
#catresults.is-list .acard__title{grid-area:title;margin:1px 0;}
#catresults.is-list .acard__title a{font-size:16px;}
#catresults.is-list .acard__meta{grid-area:meta;margin:0;}
#catresults.is-list .acard__price{grid-area:price;margin:2px 0 0;padding:0;border:none;justify-self:start;}
#catresults.is-list .acard__actions{grid-area:actions;width:200px;align-self:center;}
@media(max-width:720px){ #catresults.is-list .acard{flex-direction:column;} #catresults.is-list .acard__media{width:100%;} #catresults.is-list .acard__body{grid-template-columns:1fr;grid-template-areas:"art" "title" "meta" "price" "actions";} #catresults.is-list .acard__actions{width:auto;} }

/* Toast (Warenkorb-Feedback) */
.toast{position:fixed;left:50%;bottom:32px;transform:translateX(-50%) translateY(20px);background:var(--gray-900);color:#fff;font-size:14.5px;font-weight:var(--fw-medium);padding:14px 22px;border-radius:10px;box-shadow:var(--shadow-lg);display:flex;align-items:center;gap:11px;opacity:0;pointer-events:none;transition:opacity var(--dur-base),transform var(--dur-base) var(--ease-standard);z-index:200;}
.toast.is-show{opacity:1;transform:translateX(-50%) translateY(0);}
.toast svg{width:20px;height:20px;color:var(--green-500);flex:none;}
.toast a{color:#fff;text-decoration:underline;font-weight:var(--fw-bold);}

/* ---------- Login (A) ---------- */
.login{min-height:100vh;display:grid;grid-template-columns:1fr 1fr;}
.login__aside{position:relative;background:var(--gray-900);overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;padding:48px;color:#fff;}
.login__aside img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.55;}
.login__aside::after{content:"";position:absolute;inset:0;background:linear-gradient(160deg,rgba(28,28,28,.55) 0%,rgba(28,28,28,.85) 100%);}
.login__aside > *{position:relative;z-index:2;}
.login__logo{height:34px;}
.login__claim h2{color:#fff;font-size:40px;line-height:1.08;margin:0 0 16px;max-width:13ch;}
.login__claim p{font-size:16.5px;color:rgba(255,255,255,.82);line-height:1.6;margin:0;max-width:40ch;}
.login__seals{display:flex;gap:22px;flex-wrap:wrap;font-size:13px;color:rgba(255,255,255,.78);}
.login__seals span{display:inline-flex;align-items:center;gap:8px;}
.login__seals svg{width:18px;height:18px;color:var(--green-500);flex:none;}
.login__main{display:flex;align-items:center;justify-content:center;padding:48px;background:#fff;}
.login__card{width:100%;max-width:400px;}
.login__card .eyebrow{margin-bottom:18px;}
.login__card h1{font-size:32px;margin:0 0 8px;}
.login__card > p{font-size:15px;color:var(--text-muted);margin:0 0 30px;}

/* Formularfeld (Brand .field) */
.field{display:flex;flex-direction:column;gap:7px;margin-bottom:18px;}
.field label{font-size:13.5px;font-weight:var(--fw-bold);color:var(--text-strong);}
.field input,.field select,.field textarea{font-family:var(--font-body);font-size:15px;padding:13px 14px;border:1.5px solid var(--border-strong);border-radius:8px;background:#fff;color:var(--text-body);transition:border-color var(--dur-fast),box-shadow var(--dur-fast);width:100%;}
.field textarea{resize:vertical;min-height:88px;line-height:1.5;}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--color-brand);box-shadow:0 0 0 3px var(--color-brand-tint);}
.field--row{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.field__hint{font-size:12px;color:var(--text-subtle);}
.forgot{font-size:13.5px;font-weight:var(--fw-medium);color:var(--color-brand);}
.forgot:hover{text-decoration:underline;}
.login__row{display:flex;align-items:center;justify-content:space-between;margin:-4px 0 22px;}

/* ---------- Artikeldetail (D) ---------- */
.detail{display:grid;grid-template-columns:1.05fr 1fr;gap:48px;padding:20px 0 70px;align-items:start;}
.gallery__main{border-radius:16px;overflow:hidden;border:1px solid var(--border);background:#fff;aspect-ratio:4/3;}
.gallery__main img{width:100%;height:100%;object-fit:cover;cursor:zoom-in;}

/* Lightbox (Bild vergrößern + durchblättern) */
.lightbox{position:fixed;inset:0;z-index:1000;background:rgba(15,18,20,.92);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:40px 64px;}
.lightbox[hidden]{display:none;}
.lightbox__stage{margin:0;display:flex;flex-direction:column;align-items:center;gap:12px;max-width:100%;min-height:0;}
.lightbox__img{max-width:min(1100px,88vw);max-height:74vh;object-fit:contain;border-radius:8px;background:#fff;box-shadow:0 20px 60px rgba(0,0,0,.5);}
.lightbox__count{color:#fff;font-size:13px;opacity:.85;}
.lightbox__x{position:absolute;top:18px;right:22px;width:42px;height:42px;border-radius:50%;border:none;background:rgba(255,255,255,.12);color:#fff;font-size:19px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s;}
.lightbox__x:hover{background:rgba(255,255,255,.26);}
.lightbox__nav{position:absolute;top:50%;transform:translateY(-50%);width:50px;height:50px;border-radius:50%;border:none;background:rgba(255,255,255,.12);color:#fff;font-size:30px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s;}
.lightbox__nav:hover{background:rgba(255,255,255,.28);}
.lightbox__nav--prev{left:22px;}
.lightbox__nav--next{right:22px;}
.lightbox__thumbs{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;max-width:90vw;}
.lightbox__thumb{width:58px;height:58px;border-radius:7px;overflow:hidden;border:2px solid transparent;background:#fff;padding:0;cursor:pointer;opacity:.55;transition:opacity .15s,border-color .15s;}
.lightbox__thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.lightbox__thumb.is-on,.lightbox__thumb:hover{opacity:1;border-color:#fff;}
@media(max-width:640px){ .lightbox{padding:18px;} .lightbox__nav{width:40px;height:40px;font-size:24px;} .lightbox__nav--prev{left:8px;} .lightbox__nav--next{right:8px;} .lightbox__img{max-height:64vh;} }
.gallery__thumbs{display:flex;gap:12px;margin-top:14px;}
.gthumb{width:84px;height:64px;border-radius:9px;overflow:hidden;border:2px solid var(--border);cursor:pointer;background:#fff;padding:0;transition:border-color var(--dur-fast);}
.gthumb img{width:100%;height:100%;object-fit:cover;}
.gthumb.is-on{border-color:var(--color-brand);}
.dinfo__art{font-size:13px;font-weight:var(--fw-bold);letter-spacing:.05em;color:var(--text-subtle);}
.dinfo h1{font-size:34px;line-height:1.1;margin:8px 0 14px;}
.dinfo__lead{font-size:16px;color:var(--text-muted);line-height:1.6;margin:0 0 24px;}
.dspecs{display:grid;grid-template-columns:auto 1fr;gap:10px 24px;padding:22px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border);margin-bottom:24px;}
.dspecs dt{font-size:13.5px;color:var(--text-subtle);}
.dspecs dd{font-size:14.5px;color:var(--text-strong);font-weight:var(--fw-medium);margin:0;}
.dsection{margin-bottom:24px;}
.dsection h4{font-size:14px;font-family:var(--font-body);font-weight:var(--fw-bold);letter-spacing:.04em;text-transform:uppercase;color:var(--text-strong);margin:0 0 12px;}
.decor-pick{display:flex;gap:10px;flex-wrap:wrap;}
.decor-opt{cursor:pointer;text-align:center;}
.decor-opt input{position:absolute;opacity:0;}
.decor-opt__sw{width:62px;height:48px;border-radius:8px;border:2px solid var(--border);overflow:hidden;transition:border-color var(--dur-fast),box-shadow var(--dur-fast);}
.decor-opt__sw img{width:100%;height:100%;object-fit:cover;}
.decor-opt input:checked + .decor-opt__sw{border-color:var(--color-brand);box-shadow:0 0 0 2px var(--color-brand);}
.decor-opt__lbl{display:block;font-size:11.5px;color:var(--text-muted);margin-top:5px;}
.decor-opt input:checked ~ .decor-opt__lbl{color:var(--text-strong);font-weight:var(--fw-bold);}

/* Hinweis Zusatzartikel */
.addon{display:flex;gap:14px;align-items:center;background:var(--color-brand-tint);border:1px solid var(--red-100);border-radius:12px;padding:14px 16px;margin-top:18px;margin-bottom:24px;}
.addon img{width:54px;height:54px;border-radius:8px;object-fit:cover;flex:none;}
.addon__t{flex:1;}
.addon__t .lbl{font-size:11.5px;font-weight:var(--fw-bold);letter-spacing:.05em;text-transform:uppercase;color:var(--color-brand);}
.addon__t b{display:block;font-size:14.5px;color:var(--text-strong);margin:2px 0 1px;}
.addon__t span{font-size:12.5px;color:var(--text-muted);}

/* Preisblock */
.priceblock{background:var(--surface-alt);border:1px solid var(--border);border-radius:14px;padding:24px;margin-bottom:22px;}
.priceblock__row{display:flex;align-items:baseline;gap:10px;}
.priceblock__p{font-family:var(--font-display);font-weight:700;font-size:40px;color:var(--text-strong);letter-spacing:-0.02em;}
.priceblock__u{font-size:13px;color:var(--text-subtle);}
.priceblock__net{font-size:13px;color:var(--text-muted);margin-top:2px;}
.staffel{width:100%;border-collapse:collapse;margin-top:16px;font-size:13px;}
.staffel th,.staffel td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--border);}
.staffel th{color:var(--text-subtle);font-weight:var(--fw-bold);font-size:11.5px;letter-spacing:.04em;text-transform:uppercase;}
.staffel td{color:var(--text-strong);font-weight:var(--fw-medium);}
.staffel tr:last-child td{border-bottom:none;}
.staffel .save{color:var(--green-700);font-weight:var(--fw-bold);}
.buybar{display:flex;gap:14px;align-items:stretch;}
.buybar .stepper button,.buybar .stepper input{height:52px;}
.buybar .stepper button{width:46px;}
.buybar .btn{flex:1;}

/* ---------- Warenkorb (E) ---------- */
.cartlayout{display:grid;grid-template-columns:1fr 360px;gap:34px;padding:24px 0 80px;align-items:start;}
.cartlist{background:#fff;border:1px solid var(--border);border-radius:14px;overflow:hidden;}
.citem{display:grid;grid-template-columns:96px 1fr auto;gap:18px;padding:20px 22px;border-bottom:1px solid var(--border);align-items:center;}
.citem:last-child{border-bottom:none;}
.citem__img{width:96px;height:72px;border-radius:9px;overflow:hidden;border:1px solid var(--border);background:var(--surface-alt);}
.citem__img img{width:100%;height:100%;object-fit:cover;}
.citem__art{font-size:11.5px;font-weight:var(--fw-bold);letter-spacing:.04em;color:var(--text-subtle);}
.citem__title{font-family:var(--font-display);font-weight:700;font-size:16px;color:var(--text-strong);margin:3px 0 4px;letter-spacing:-0.01em;}
.citem__title a:hover{color:var(--color-brand);}
.citem__sub{font-size:12.5px;color:var(--text-muted);}
.citem__sub b{color:var(--text-body);}
.citem__right{display:flex;flex-direction:column;align-items:flex-end;gap:10px;}
.citem__row{display:flex;align-items:center;gap:16px;}
.citem__price{font-family:var(--font-display);font-weight:700;font-size:18px;color:var(--text-strong);min-width:96px;text-align:right;}
.citem__unit{font-size:12px;color:var(--text-subtle);}
.linkbtn{background:none;border:none;cursor:pointer;font-family:var(--font-body);font-size:12.5px;color:var(--text-subtle);display:inline-flex;align-items:center;gap:5px;padding:4px;transition:color var(--dur-fast);}
.linkbtn:hover{color:var(--color-brand);}
.linkbtn svg{width:14px;height:14px;}

/* Zusammenfassung */
.summary{position:sticky;top:96px;background:#fff;border:1px solid var(--border);border-radius:14px;padding:26px;}
.summary h3{font-size:20px;margin:0 0 18px;}
.sumrow{display:flex;justify-content:space-between;align-items:baseline;font-size:14.5px;padding:9px 0;color:var(--text-body);}
.sumrow span:last-child{font-weight:var(--fw-medium);color:var(--text-strong);}
.sumrow--total{border-top:2px solid var(--gray-900);margin-top:10px;padding-top:16px;font-family:var(--font-display);font-weight:700;}
.sumrow--total span{font-size:22px;color:var(--text-strong);letter-spacing:-0.01em;}
.sumrow--muted span{color:var(--text-subtle);font-size:13px;font-weight:var(--fw-regular);}
.summary .btn{margin-top:18px;}
.summary__back{display:block;text-align:center;margin-top:14px;font-size:13.5px;color:var(--color-brand);font-weight:var(--fw-medium);}
.summary__back:hover{text-decoration:underline;}
.summary__trust{margin-top:20px;padding-top:18px;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:9px;}
.summary__trust span{display:flex;align-items:center;gap:9px;font-size:12.5px;color:var(--text-muted);}
.summary__trust svg{width:16px;height:16px;color:var(--green-600);flex:none;}

/* Leerer Zustand */
.empty{background:#fff;border:1px solid var(--border);border-radius:14px;padding:64px 32px;text-align:center;}
.empty svg{width:54px;height:54px;color:var(--gray-300);margin:0 auto 18px;}
.empty h3{font-size:22px;margin:0 0 8px;}
.empty p{font-size:15px;color:var(--text-muted);margin:0 0 24px;}

/* ---------- Checkout (F) ---------- */
.checkout{display:grid;grid-template-columns:1fr 360px;gap:34px;padding:24px 0 80px;align-items:start;}
.cobox{background:#fff;border:1px solid var(--border);border-radius:14px;padding:28px;margin-bottom:22px;}
.cobox__head{display:flex;align-items:center;gap:12px;margin-bottom:20px;}
.cobox__num{width:32px;height:32px;border-radius:50%;background:var(--color-brand);color:#fff;font-family:var(--font-display);font-weight:700;font-size:15px;display:flex;align-items:center;justify-content:center;flex:none;}
.cobox__head h3{font-size:20px;margin:0;}
.miniline{display:flex;align-items:center;gap:14px;padding:12px 0;border-bottom:1px solid var(--border);font-size:14px;}
.miniline:last-child{border-bottom:none;}
.miniline img{width:48px;height:38px;border-radius:6px;object-fit:cover;border:1px solid var(--border);flex:none;}
.miniline__t{flex:1;line-height:1.3;}
.miniline__t b{display:block;color:var(--text-strong);font-weight:var(--fw-medium);font-size:13.5px;}
.miniline__t span{font-size:12px;color:var(--text-subtle);}
.miniline__q{font-size:13px;color:var(--text-muted);}
.miniline__p{font-weight:var(--fw-bold);color:var(--text-strong);min-width:80px;text-align:right;}

/* ---------- Bestätigung (G) ---------- */
.confirm{max-width:760px;margin:0 auto;padding:56px 0 80px;text-align:center;}
.confirm__icon{width:84px;height:84px;border-radius:50%;background:var(--green-50);display:flex;align-items:center;justify-content:center;margin:0 auto 26px;}
.confirm__icon svg{width:44px;height:44px;color:var(--green-600);}
.confirm h1{font-size:38px;margin:0 0 12px;}
.confirm > p{font-size:17px;color:var(--text-muted);line-height:1.6;margin:0 auto 8px;max-width:54ch;}
.confirm__num{display:inline-flex;align-items:center;gap:10px;background:var(--surface-alt);border:1px solid var(--border);border-radius:10px;padding:12px 20px;margin:24px 0 8px;font-size:15px;color:var(--text-body);}
.confirm__num b{font-family:var(--font-display);font-size:18px;color:var(--text-strong);}
.confirm__card{background:#fff;border:1px solid var(--border);border-radius:14px;padding:28px;margin-top:34px;text-align:left;}
.confirm__card h3{font-size:18px;margin:0 0 16px;}
.confirm__actions{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:34px;}

/* ---------- Konto (H) ---------- */
.account{display:grid;grid-template-columns:240px 1fr;gap:34px;padding:24px 0 80px;align-items:start;}
.acctnav{background:#fff;border:1px solid var(--border);border-radius:14px;padding:10px;position:sticky;top:96px;}
.acctnav a{display:flex;align-items:center;gap:11px;padding:12px 14px;border-radius:9px;font-size:14.5px;font-weight:var(--fw-medium);color:var(--text-body);transition:background var(--dur-fast),color var(--dur-fast);}
.acctnav a svg{width:18px;height:18px;}
.acctnav a:hover{background:var(--surface-alt);}
.acctnav a.is-active{background:var(--color-brand-tint);color:var(--color-brand);font-weight:var(--fw-bold);}
.orders{display:flex;flex-direction:column;gap:16px;}
.order{background:#fff;border:1px solid var(--border);border-radius:14px;padding:22px 24px;}
.order__top{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;padding-bottom:16px;border-bottom:1px solid var(--border);}
.order__id{display:flex;align-items:center;gap:16px;}
.order__id b{font-family:var(--font-display);font-size:18px;color:var(--text-strong);letter-spacing:-0.01em;}
.order__id span{font-size:13px;color:var(--text-subtle);}
.status{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:var(--fw-bold);padding:5px 11px;border-radius:999px;}
.status::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor;}
.status--done{background:var(--green-50);color:var(--green-700);}
.status--prog{background:var(--color-brand-tint);color:var(--color-brand);}
.order__sum{display:flex;align-items:center;gap:22px;}
.order__total{font-family:var(--font-display);font-weight:700;font-size:18px;color:var(--text-strong);}
.order__lines{display:flex;flex-wrap:wrap;gap:8px 18px;padding-top:14px;font-size:13px;color:var(--text-muted);}
.order__lines span b{color:var(--text-body);font-weight:var(--fw-medium);}
.datacard{background:#fff;border:1px solid var(--border);border-radius:14px;padding:28px;}
.datacard h3{font-size:20px;margin:0 0 4px;}
.datacard > p{font-size:14px;color:var(--text-muted);margin:0 0 22px;}
.datagrid{display:grid;grid-template-columns:1fr 1fr;gap:18px 28px;}
.datagrid .k{font-size:12px;color:var(--text-subtle);letter-spacing:.03em;text-transform:uppercase;font-weight:var(--fw-bold);margin-bottom:5px;}
.datagrid .v{font-size:15.5px;color:var(--text-strong);font-weight:var(--fw-medium);}
.readonly-note{display:inline-flex;align-items:center;gap:8px;font-size:12.5px;color:var(--text-subtle);margin-top:22px;padding-top:18px;border-top:1px solid var(--border);width:100%;}
.readonly-note svg{width:15px;height:15px;}

/* ---------- Sticky-Footer-Layout ---------- */
/* Body als Flex-Spalte: Footer rutscht bei wenig Inhalt an den Viewport-Boden,
   bei viel Inhalt sorgt das padding-bottom im Main fuer Abstand zum Footer. */
.portalbody{min-height:100vh;display:flex;flex-direction:column;}
.portalbody>.app{flex:0 0 auto;}
.portalbody__main{flex:1 0 auto;width:100%;padding-bottom:56px;}
.portalbody>.foot{flex-shrink:0;margin-top:auto;}

/* ---------- Footer ---------- */
.foot{background:var(--gray-900);color:var(--gray-500);padding:30px 0;margin-top:0;}
.foot .wrap{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;font-size:13px;}
.foot__slogan{color:var(--gray-400);font-weight:var(--fw-bold);}
.foot a{color:var(--gray-400);}
.foot a:hover{color:#fff;}

/* ---- Nach-oben-Button ---- */
.totop{position:fixed;right:26px;bottom:26px;width:48px;height:48px;border-radius:50%;border:none;background:var(--color-brand);color:#fff;box-shadow:0 8px 22px rgba(227,6,19,.34);cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transform:translateY(12px);transition:opacity .22s var(--ease-standard),transform .22s var(--ease-standard),visibility .22s,background var(--dur-fast);z-index:60;}
.totop.is-visible{opacity:1;visibility:visible;transform:none;}
.totop:hover{background:var(--color-brand-hover);transform:translateY(-2px);}
.totop svg{width:22px;height:22px;}
@media(max-width:560px){ .totop{right:16px;bottom:16px;width:44px;height:44px;} }

/* ---------- Responsive ---------- */
@media (max-width:1024px){
  .shop,.account{grid-template-columns:1fr;}
  .filters,.acctnav,.summary{position:static;}
  .filters{margin-bottom:8px;}
  .cartlayout,.checkout{grid-template-columns:1fr;}
  .detail{grid-template-columns:1fr;gap:30px;}
  .cat-grid,.agrid,.agrid--2{grid-template-columns:repeat(2,1fr);}
  .app__search{max-width:none;}
  .kbadge__meta{display:none;}
  .login{grid-template-columns:1fr;}
  .login__aside{min-height:240px;padding:32px;}
}
@media (max-width:720px){
  .wrap{padding-inline:18px;}
  .cat-grid,.agrid,.agrid--2{grid-template-columns:1fr;}
  .app__bar{flex-wrap:wrap;height:auto;padding:12px 0;gap:12px;}
  .app__search{order:3;flex-basis:100%;}
  .phead h1{font-size:30px;}
  .citem{grid-template-columns:72px 1fr;}
  .citem__img{width:72px;height:56px;}
  .citem__right{grid-column:1 / -1;flex-direction:row;align-items:center;justify-content:space-between;}
  .datagrid{grid-template-columns:1fr;}
  .field--row{grid-template-columns:1fr;}
}

/* ============================================================
   Anfrage/Liste-Erweiterungen (Liste statt Warenkorb,
   Anfrage vs. Bestellung, Preise bedingt) — Stefan-Anpassung
   ============================================================ */
.acard__onreq{font-family:var(--font-display);font-weight:700;font-size:17px;color:var(--color-brand);letter-spacing:-0.01em;}
.priceblock--onreq{background:var(--color-brand-tint);}
.priceblock--onreq .priceblock__p{font-size:24px;color:var(--color-brand);}
.citem__price--onreq{color:var(--color-brand);font-size:14px;}
.miniline__p--onreq{color:var(--text-muted)!important;font-weight:var(--fw-medium)!important;font-size:13px;}
.order__onreq{color:var(--color-brand);font-size:15px;}
.status--anfrage{background:var(--color-brand-tint);color:var(--color-brand);}
.status--order{background:var(--green-50);color:var(--green-700);}

/* Schnellerfassung per Artikelnummer */
.quickadd{display:grid;grid-template-columns:auto 1fr 110px auto;gap:14px;align-items:end;background:#fff;border:1px solid var(--border);border-radius:14px;padding:20px 22px;box-shadow:var(--shadow-sm);margin-bottom:24px;}
.quickadd__ico{width:44px;height:44px;border-radius:10px;background:var(--color-brand-tint);color:var(--color-brand);display:flex;align-items:center;justify-content:center;}
.quickadd__ico svg{width:22px;height:22px;}
.quickadd label{display:block;font-size:13px;font-weight:var(--fw-bold);color:var(--text-strong);margin-bottom:6px;}
.quickadd input{font-family:var(--font-body);font-size:15px;padding:12px 14px;border:1.5px solid var(--border-strong);border-radius:8px;width:100%;background:#fff;}
.quickadd input:focus{outline:none;border-color:var(--color-brand);box-shadow:0 0 0 3px var(--color-brand-tint);}
.quickadd .btn{height:46px;}
.quickadd__hint{grid-column:1 / -1;margin:2px 0 0;font-size:12.5px;color:var(--text-subtle);}
.quickadd__hint.is-err{color:var(--color-brand);font-weight:var(--fw-bold);}

/* Listenkopf, Summe, Aktionen */
.listhead{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:8px 0 16px;}
.listhead h2{font-size:22px;margin:0;}
.listsum{background:#fff;border:1px solid var(--border);border-radius:14px;padding:18px 24px;margin:18px 0 0 auto;max-width:420px;}
.listsum--onreq{display:flex;gap:12px;align-items:flex-start;max-width:none;margin-left:0;background:var(--color-brand-tint);border-color:transparent;color:var(--text-body);font-size:14.5px;line-height:1.5;}
.listsum--onreq svg{width:22px;height:22px;color:var(--color-brand);flex:none;}
.listactions{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;margin-top:26px;}
.listactions__btns{display:flex;gap:12px;flex-wrap:wrap;}
.listactions__note{font-size:12px;color:var(--text-subtle);line-height:1.55;margin:12px 0 0;}
@media(max-width:720px){
  .quickadd{grid-template-columns:1fr 1fr;}
  .quickadd__ico{display:none;}
  .quickadd .btn{grid-column:1 / -1;}
  .listactions{flex-direction:column-reverse;align-items:stretch;}
  .listactions__btns .btn{width:100%;justify-content:center;}
  .listsum{max-width:none;margin-left:0;}
}

/* ============================================================
   Partnerportal — Auth (Login/Code/Aktivierung) + Dashboard
   ============================================================ */
.authbody{min-height:100vh;display:flex;background:var(--gray-900);background-image:radial-gradient(1200px 500px at 50% -10%, rgba(227,6,19,.18), transparent 60%);}
.authwrap{margin:auto;width:100%;max-width:440px;padding:40px 20px;}
.authcard{background:#fff;border-radius:16px;padding:38px 34px;box-shadow:var(--shadow-lg);}
.authcard__head{display:flex;flex-direction:column;align-items:flex-start;gap:8px;margin-bottom:22px;}
.authcard__logo{height:30px;}
.authcard__title{font-size:28px;margin:0 0 4px;}
.authcard__sub{font-size:14.5px;color:var(--text-muted);margin:0 0 22px;line-height:1.5;}
.authfoot{text-align:center;color:rgba(255,255,255,.5);font-size:12.5px;margin-top:20px;}

.authtabs{display:flex;gap:6px;background:var(--surface-alt);border:1px solid var(--border);border-radius:10px;padding:5px;margin-bottom:22px;}
.authtab{flex:1;border:0;background:transparent;font-family:var(--font-body);font-weight:var(--fw-bold);font-size:14px;color:var(--text-muted);padding:9px 10px;border-radius:7px;cursor:pointer;transition:background var(--dur-fast),color var(--dur-fast);}
.authtab.is-active{background:#fff;color:var(--color-brand);box-shadow:var(--shadow-xs);}
.authpane{display:none;}
.authpane.is-active{display:block;animation:fadein var(--dur-base) var(--ease-standard);}
@keyframes fadein{from{opacity:0;transform:translateY(4px);}to{opacity:1;transform:none;}}

.authhint{font-size:12.5px;color:var(--text-subtle);margin:14px 0 0;text-align:center;line-height:1.5;}
.authalt{font-size:13.5px;color:var(--text-muted);margin:22px 0 0;text-align:center;display:flex;gap:14px;justify-content:center;align-items:center;flex-wrap:wrap;}
.authalt a{color:var(--color-brand);font-weight:var(--fw-bold);}
.authalt__inline{display:inline;}
.field__err{display:block;font-size:12.5px;color:var(--color-brand);font-weight:var(--fw-medium);margin-top:5px;}
.otp-input{letter-spacing:.5em;font-size:22px;font-family:var(--font-display);text-align:center;}

.alert{border-radius:9px;padding:12px 15px;font-size:13.5px;line-height:1.5;margin-bottom:18px;}
.alert--info{background:var(--green-50);color:var(--green-700);border:1px solid var(--green-100);}
.alert--dev{background:#fff7e6;color:#8a5a00;border:1px dashed #e0b050;}

/* Portal-Navigation (Header) */
.portalnav{display:flex;gap:6px;margin-left:8px;}
.portalnav a{font-size:14px;font-weight:var(--fw-medium);color:var(--text-body);padding:8px 14px;border-radius:8px;text-decoration:none;transition:background var(--dur-fast),color var(--dur-fast);}
.portalnav a:hover{background:var(--surface-alt);color:var(--color-brand);}

/* Dashboard */
.dashgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin:8px 0 40px;}
.dashcard{display:flex;flex-direction:column;gap:10px;background:#fff;border:1px solid var(--border);border-radius:14px;padding:28px;text-decoration:none;transition:transform var(--dur-base) var(--ease-standard),box-shadow var(--dur-base),border-color var(--dur-base);}
.dashcard:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:transparent;}
.dashcard__ico{width:50px;height:50px;border-radius:12px;background:var(--color-brand-tint);color:var(--color-brand);display:flex;align-items:center;justify-content:center;}
.dashcard__ico svg{width:26px;height:26px;}
.dashcard h3{font-size:20px;margin:6px 0 0;}
.dashcard p{font-size:14.5px;color:var(--text-muted);line-height:1.55;margin:0;flex:1;}
.dashcard__go{font-weight:var(--fw-bold);font-size:14px;color:var(--color-brand);}
@media(max-width:720px){ .dashgrid{grid-template-columns:1fr;} .portalnav{display:none;} }

/* Dashboard: Anfragen-Kachel über volle Breite */
.dashwide{background:#fff;border:1px solid var(--border);border-radius:14px;padding:20px 24px;margin:8px 0 8px;}
.dashwide__head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:4px;}
.dashwide__head h2{font-size:18px;margin:0;display:flex;align-items:center;gap:10px;}
.dashwide__badge{background:var(--color-brand);color:#fff;font-size:12px;font-weight:var(--fw-bold);padding:2px 9px;border-radius:20px;}
.dashwide__all{font-size:14px;font-weight:var(--fw-bold);color:var(--color-brand);text-decoration:none;white-space:nowrap;}
.dashwide__all:hover{text-decoration:underline;}
.dashwide__empty{color:var(--text-subtle);padding:14px 0 6px;margin:0;font-size:14px;}
.dashwide__list{display:flex;flex-direction:column;}
.dashanfrage{display:grid;grid-template-columns:120px 160px 1fr auto auto 18px;align-items:center;gap:16px;padding:12px 8px;border-top:1px solid var(--border);text-decoration:none;color:var(--text-body);border-radius:8px;transition:background var(--dur-fast);}
.dashanfrage:hover{background:var(--color-brand-tint);}
.dashanfrage__nr{font-weight:var(--fw-bold);color:var(--color-brand);display:flex;flex-direction:column;}
.dashanfrage__typ{font-size:11px;font-weight:var(--fw-medium);color:var(--text-subtle);}
.dashanfrage__firma{display:flex;flex-direction:column;min-width:0;}
.dashanfrage__firma b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.dashanfrage__sub{font-size:12.5px;color:var(--text-subtle);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.dashanfrage__pos,.dashanfrage__date{font-size:13px;color:var(--text-muted);white-space:nowrap;}
.dashanfrage__go{color:var(--text-subtle);text-align:right;font-size:16px;}
@media(max-width:720px){
  .dashanfrage{grid-template-columns:auto 1fr auto;gap:10px;}
  .dashanfrage__nr,.dashanfrage__pos{display:none;}
}

/* ============================================================
   Partnerportal — Kategorie-Layout (Filter + Grid)
   ============================================================ */
.catlayout{display:grid;grid-template-columns:260px 1fr;gap:30px;align-items:start;margin:8px 0 40px;}
.filtergroup{padding-top:18px;}
.filtergroup + .filtergroup{border-top:1px solid var(--border);margin-top:18px;}
.filtergroup h4{font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-subtle);margin:0 0 12px;}
.chip.is-active{background:var(--color-brand);border-color:var(--color-brand);color:#fff;}
.chip{text-decoration:none;}
/* Dekorfilter: kompaktes Kürzel-Raster, gruppiert nach Material */
.dekorall{display:inline-block;font-size:13px;padding:5px 10px;border-radius:8px;color:var(--text-body);text-decoration:none;margin-bottom:4px;transition:background var(--dur-fast);}
.dekorall:hover{background:var(--surface-alt);}
.dekorall.is-active{background:var(--color-brand-tint);color:var(--color-brand);font-weight:var(--fw-bold);}
.dekorgroup{font-size:11px;font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:.05em;color:var(--text-subtle);margin:11px 0 6px;}
.dekorgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(42px,1fr));gap:6px;}
.dekortile{display:flex;flex-direction:column;align-items:center;gap:3px;padding:4px 2px 5px;border:1px solid var(--border);border-radius:8px;text-decoration:none;color:var(--text-body);transition:border-color var(--dur-fast),background var(--dur-fast);}
.dekortile:hover{border-color:var(--gray-500);background:var(--surface-alt);}
.dekortile__sw{width:32px;height:32px;border-radius:6px;overflow:hidden;background:var(--surface-alt);}
.dekortile__sw img{width:100%;height:100%;object-fit:cover;display:block;}
.dekortile__c{font-size:10.5px;font-weight:var(--fw-bold);letter-spacing:.02em;color:var(--text-subtle);}
.dekortile.is-active{border-color:var(--color-brand);background:var(--color-brand-tint);}
.dekortile.is-active .dekortile__c{color:var(--color-brand);}
.catbar{display:flex;align-items:center;justify-content:space-between;margin:0 0 16px;font-size:14px;color:var(--text-muted);font-weight:var(--fw-bold);}
@media(max-width:980px){ .catlayout{grid-template-columns:1fr;} .filters{position:static;} }

/* ============================================================
   Admin-Verwaltung
   ============================================================ */
.adminbody{background:var(--surface-alt);}
.admin{display:grid;grid-template-columns:248px 1fr;min-height:100vh;}
.adminnav{background:var(--gray-900);color:var(--gray-400);display:flex;flex-direction:column;padding:22px 16px;position:sticky;top:0;height:100vh;}
.adminnav__logo img{height:26px;}
.adminnav__label{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--color-brand);font-weight:var(--fw-bold);margin:14px 6px 18px;}
.adminnav__list{display:flex;flex-direction:column;gap:2px;}
.adminnav__list a{color:rgba(255,255,255,.78);text-decoration:none;font-size:14.5px;font-weight:var(--fw-medium);padding:10px 12px;border-radius:8px;transition:background var(--dur-fast),color var(--dur-fast);}
.adminnav__list a:hover{background:rgba(255,255,255,.08);color:#fff;}
.adminnav__list a.is-active{background:var(--color-brand);color:#fff;}
.adminnav__foot{margin-top:auto;padding-top:18px;border-top:1px solid #313130;display:flex;flex-direction:column;gap:10px;}
.adminnav__foot a{color:var(--gray-400);text-decoration:none;font-size:13.5px;}
.adminnav__foot a:hover{color:#fff;}
.adminnav__logout{background:transparent;border:1px solid rgba(255,255,255,.25);color:#fff;border-radius:8px;padding:8px 12px;font-family:var(--font-body);font-weight:var(--fw-bold);font-size:13px;cursor:pointer;width:100%;}
.adminnav__logout:hover{background:var(--color-brand);border-color:var(--color-brand);}
.adminmain{padding:30px 40px;}
.admintop{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:24px;}
.admintop h1{font-size:30px;margin:0;}
.admintop__r{display:flex;align-items:center;gap:16px;}
.admintop__user{font-size:13.5px;color:var(--text-muted);}

.muted{color:var(--text-subtle);}
.adminsearch{display:flex;gap:10px;margin-bottom:18px;}
.adminsearch input{flex:1;max-width:480px;font-family:var(--font-body);font-size:14.5px;padding:11px 14px;border:1.5px solid var(--border-strong);border-radius:8px;}
.adminsearch input:focus{outline:none;border-color:var(--color-brand);box-shadow:0 0 0 3px var(--color-brand-tint);}

.tablewrap{background:#fff;border:1px solid var(--border);border-radius:14px;overflow:hidden;}
.admintable{width:100%;border-collapse:collapse;font-size:14px;}
.admintable th{text-align:left;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-subtle);padding:13px 16px;background:var(--surface-alt);border-bottom:1px solid var(--border);}
.admintable td{padding:14px 16px;border-bottom:1px solid var(--border);vertical-align:top;color:var(--text-body);}
.admintable tr:last-child td{border-bottom:0;}
.admintable tbody tr:nth-child(even) td{background:#fafbfc;}
.admintable tbody tr:hover td{background:var(--color-brand-tint);}
.admintable__actions{display:flex;gap:14px;align-items:center;white-space:nowrap;}
.admintable__actions a,.admintable__actions .linkbtn{font-size:13.5px;font-weight:var(--fw-bold);color:var(--color-brand);text-decoration:none;}
.linkbtn--danger{color:var(--gray-600)!important;}
.linkbtn--danger:hover{color:var(--color-brand)!important;}

/* ---------- Sidebar-Badge ---------- */
.adminnav__list a{display:flex;align-items:center;justify-content:space-between;gap:8px;}
.adminnav__badge{min-width:20px;height:20px;padding:0 6px;border-radius:10px;background:var(--color-brand);color:#fff;font-size:11.5px;font-weight:var(--fw-bold);display:inline-flex;align-items:center;justify-content:center;line-height:1;}
.adminnav__list a.is-active .adminnav__badge{background:#fff;color:var(--color-brand);}

/* ---------- Anfragen (Posteingang) ---------- */
.seg{display:inline-flex;flex-wrap:wrap;gap:4px;background:var(--surface-alt);border:1px solid var(--border);border-radius:10px;padding:4px;}
.seg__btn{padding:7px 13px;border-radius:7px;font-size:13.5px;font-weight:var(--fw-bold);color:var(--text-muted);text-decoration:none;transition:background var(--dur-fast),color var(--dur-fast);}
.seg__btn:hover{color:var(--text-strong);}
.seg__btn.is-on{background:#fff;color:var(--color-brand);box-shadow:0 1px 3px rgba(0,0,0,.08);}
.dl-search{display:flex;gap:8px;align-items:center;max-width:560px;}
.dl-search .dl-input{flex:1;}
.af-row{cursor:pointer;}
.af-num{font-weight:var(--fw-bold);color:var(--color-brand);text-decoration:none;}
.af-num:hover{text-decoration:underline;}
.af-sub{font-size:12.5px;color:var(--text-subtle);margin-top:2px;}
.af-typ{display:inline-block;margin-left:7px;font-size:11px;color:var(--text-subtle);font-weight:var(--fw-medium);}
.af-typ--order{color:var(--color-brand);font-weight:var(--fw-bold);}
.af-empty{text-align:center;color:var(--text-subtle);padding:40px 0!important;background:#fff!important;}
.statuschip{display:inline-block;padding:3px 10px;border-radius:20px;font-size:12px;font-weight:var(--fw-bold);white-space:nowrap;}
.statuschip--neu{background:#fde8ea;color:#b3122a;}
.statuschip--in_bearbeitung{background:#fff3da;color:#9a6800;}
.statuschip--erledigt{background:#e2f5e8;color:#1f7a3d;}
.statuschip--storniert{background:#eef0f2;color:#6b7280;}

/* Anfrage-Detail */
.afd{display:grid;grid-template-columns:1.4fr 1fr;gap:24px;align-items:start;}
.afd__card{background:#fff;border:1px solid var(--border);border-radius:14px;padding:20px 22px;}
.afd__card h3{font-family:var(--font-display);font-size:16px;margin:0 0 14px;}
.afd__meta{display:grid;grid-template-columns:auto 1fr;gap:8px 16px;font-size:14px;}
.afd__meta dt{color:var(--text-subtle);}
.afd__meta dd{margin:0;color:var(--text-strong);}
.afd__items{width:100%;border-collapse:collapse;font-size:14px;margin-top:4px;}
.afd__items th{text-align:left;font-size:11.5px;text-transform:uppercase;letter-spacing:.03em;color:var(--text-subtle);padding:9px 10px;border-bottom:1px solid var(--border);}
.afd__items td{padding:11px 10px;border-bottom:1px solid var(--border);vertical-align:top;}
.afd__items tr:last-child td{border-bottom:0;}
.afd__statusbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:6px;}
.afd__note{background:var(--surface-alt);border-radius:9px;padding:12px 14px;font-size:14px;line-height:1.55;white-space:pre-wrap;color:var(--text-body);}
@media(max-width:860px){ .afd{grid-template-columns:1fr;} }
.aktestats{display:flex;flex-wrap:wrap;gap:26px;}
.aktestats>div{display:flex;flex-direction:column;gap:2px;}
.aktestats b{font-size:24px;line-height:1;color:var(--text-strong);}
.aktestats span{font-size:12px;color:var(--text-subtle);}

.badge{display:inline-block;font-size:11.5px;font-weight:var(--fw-bold);padding:3px 9px;border-radius:999px;margin-right:5px;}
.badge--ok{background:var(--green-50);color:var(--green-700);}
.badge--off{background:var(--red-50);color:var(--color-brand);}
.badge--admin{background:var(--gray-900);color:#fff;}
.badge--pending{background:#fff7e6;color:#8a5a00;}

.adminform{background:#fff;border:1px solid var(--border);border-radius:14px;padding:28px;max-width:640px;}
.adminform .check{display:flex;align-items:center;gap:10px;font-size:14.5px;color:var(--text-body);margin:6px 0;cursor:pointer;}
.adminform .check input{width:18px;height:18px;accent-color:var(--color-brand);}
.adminform__actions{display:flex;gap:12px;justify-content:flex-end;margin-top:24px;border-top:1px solid var(--border);padding-top:20px;}

.pager{display:flex;align-items:center;justify-content:center;gap:24px;margin-top:22px;font-size:14px;}
.pager a{color:var(--color-brand);font-weight:var(--fw-bold);text-decoration:none;}
.pager__off{color:var(--text-subtle);}
.pager__info{color:var(--text-muted);}
.art-table tr.is-saved td{background:var(--green-50);}
.art-table .dl-input{width:100%;}
.art-thumb{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:6px;overflow:hidden;background:var(--surface-alt);border:1px solid var(--border);}
.art-thumb img{width:100%;height:100%;object-fit:cover;}
.art-link{color:var(--text-strong);text-decoration:none;}
.art-link:hover{color:var(--color-brand);text-decoration:underline;}
.pager__num{display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:30px;padding:0 7px;border-radius:7px;color:var(--text-body);text-decoration:none;font-weight:var(--fw-bold);}
.pager__num:hover{background:var(--surface-alt);}
.pager__cur{display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:30px;padding:0 7px;border-radius:7px;background:var(--color-brand);color:#fff;font-weight:var(--fw-bold);}
.pager{gap:5px;flex-wrap:wrap;}

/* ---- Artikel-Detail-Modal ---- */
.artmodal{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;}
.artmodal[hidden]{display:none;}
.artmodal__backdrop{position:absolute;inset:0;background:rgba(20,22,26,.55);}
.artmodal__box{position:relative;background:#fff;border-radius:16px;max-width:760px;width:calc(100% - 40px);max-height:calc(100vh - 56px);overflow:auto;box-shadow:0 30px 80px rgba(0,0,0,.4);}
.artmodal__x{position:absolute;top:12px;right:12px;width:34px;height:34px;border:none;background:var(--surface-alt);border-radius:8px;cursor:pointer;font-size:15px;color:var(--text-strong);z-index:2;}
.artmodal__x:hover{background:var(--border);}
.artmodal__grid{display:grid;grid-template-columns:300px 1fr;}
.artmodal__media{padding:22px;background:var(--surface-alt);border-radius:16px 0 0 16px;display:flex;flex-direction:column;gap:12px;}
.artmodal__imgwrap{aspect-ratio:1;background:#fff;border:1px solid var(--border);border-radius:10px;overflow:hidden;display:flex;align-items:center;justify-content:center;}
.artmodal__imgwrap img{width:100%;height:100%;object-fit:contain;}
.artmodal__imgactions{display:flex;flex-direction:column;gap:8px;align-items:flex-start;}
.artmodal__info{padding:26px;display:flex;flex-direction:column;gap:8px;min-width:0;}
.artmodal__art{font-size:12.5px;color:var(--text-subtle);font-weight:var(--fw-bold);letter-spacing:.02em;}
.artmodal__info h3{font-family:var(--font-display);font-size:19px;line-height:1.25;margin:0 0 6px;}
.artmodal__specs{display:grid;grid-template-columns:auto 1fr;gap:3px 14px;margin:4px 0 10px;font-size:13.5px;}
.artmodal__specs dt{color:var(--text-subtle);}
.artmodal__specs dd{margin:0;color:var(--text-strong);}
.artmodal__field{display:flex;flex-direction:column;gap:4px;font-size:12.5px;color:var(--text-subtle);font-weight:var(--fw-bold);}
.artmodal__saved{font-size:12.5px;color:var(--green-700);opacity:0;transition:opacity .2s;}
.artmodal__saved.is-on{opacity:1;}
.am-preview{align-self:flex-start;font-size:12.5px;font-weight:var(--fw-bold);color:var(--color-brand);text-decoration:none;border:1px solid var(--color-brand);border-radius:7px;padding:4px 11px;margin:0 0 8px;transition:background .15s;}
.am-preview:hover{background:var(--color-brand-tint);}
.am-gallery{margin-top:6px;padding-top:12px;border-top:1px solid var(--border);}
.am-gallery__head{font-size:11.5px;font-weight:var(--fw-bold);color:var(--text-subtle);letter-spacing:.02em;margin-bottom:8px;text-transform:uppercase;}
.am-gallery__grid{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px;}
.am-gallery__cell{position:relative;width:62px;height:62px;border-radius:8px;overflow:hidden;border:1px solid var(--border);background:#fff;}
.am-gallery__cell img{width:100%;height:100%;object-fit:cover;display:block;}
.am-gallery__x{position:absolute;top:2px;right:2px;width:18px;height:18px;border:none;border-radius:50%;background:rgba(0,0,0,.6);color:#fff;font-size:13px;line-height:1;cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center;}
.am-gallery__x:hover{background:var(--color-brand);}
@media(max-width:640px){ .artmodal__grid{grid-template-columns:1fr;} .artmodal__media{border-radius:16px 16px 0 0;} }

/* ---- Massenbearbeitung ---- */
.bulkbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:16px;flex-wrap:wrap;background:var(--gray-900);color:#fff;border-radius:10px;padding:10px 16px;margin-bottom:14px;box-shadow:0 8px 22px rgba(0,0,0,.2);}
.bulkbar[hidden]{display:none;}
.bulkbar__count{font-weight:var(--fw-bold);font-size:14px;white-space:nowrap;}
.bulkbar__actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.bulkbar__tag{display:inline-flex;align-items:center;gap:6px;}
.bulkbar__grp{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:var(--fw-bold);color:rgba(255,255,255,.85);}
.bulkbar .btn--ghost{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.28);color:#fff;}
.bulkbar .btn--ghost:hover{background:rgba(255,255,255,.22);}
.bulkbar .dl-input{font-size:13px;padding:7px 9px;}
.art-table .art-check,.art-table .art-check-all{width:16px;height:16px;cursor:pointer;}
.art-hidden{opacity:.55;}
.art-table tbody tr.art-hidden td{background:repeating-linear-gradient(45deg,transparent,transparent 9px,rgba(0,0,0,.04) 9px,rgba(0,0,0,.04) 18px);}
/* Tag-Pills in der Liste */
.art-tagcell{display:flex;flex-wrap:wrap;gap:6px;align-items:center;min-height:38px;}
.tagpill{display:inline-flex;align-items:center;gap:3px;background:var(--color-brand-tint);color:var(--color-brand);font-size:12px;font-weight:var(--fw-bold);padding:4px 6px 4px 11px;border-radius:20px;line-height:1.4;white-space:nowrap;}
.tagpill__x{border:none;background:none;color:var(--color-brand);cursor:pointer;font-size:15px;line-height:1;padding:0 2px;opacity:.55;border-radius:50%;}
.tagpill__x:hover{opacity:1;background:rgba(227,6,19,.14);}
.tagadd{border:1.5px dashed var(--border-strong);background:none;color:var(--text-subtle);width:26px;height:26px;border-radius:50%;cursor:pointer;font-size:17px;line-height:1;display:inline-flex;align-items:center;justify-content:center;flex:none;}
.tagadd:hover{border-color:var(--color-brand);color:var(--color-brand);background:var(--color-brand-tint);}
.taginput{font-size:12px;padding:5px 9px;border:1.5px solid var(--color-brand);border-radius:8px;min-width:120px;outline:none;font-family:var(--font-body);}
/* Dokument-Picker (Modal) */
.docpick__list{display:flex;flex-direction:column;gap:6px;margin-bottom:6px;}
.docpick__item{display:flex;align-items:center;justify-content:space-between;gap:8px;background:var(--surface-alt);border:1px solid var(--border);border-radius:8px;padding:6px 6px 6px 11px;font-size:13px;color:var(--text-strong);}
.docpick__title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.docpick__x{border:none;background:none;color:var(--text-subtle);cursor:pointer;font-size:16px;line-height:1;padding:0 4px;flex:none;}
.docpick__x:hover{color:var(--color-brand);}
.bulkbar__count.bulk-done::after{content:" ✓ zugewiesen";color:#9be29b;font-weight:var(--fw-bold);}
/* Partner-Artikeldetail: Datenblätter */
.docsection{margin-top:22px;border-top:1px solid var(--border);padding-top:18px;}
.docsection h4{font-size:13px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-subtle);margin:0 0 12px;}
.docgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;}
.doccard{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid var(--border);border-radius:12px;padding:12px;text-decoration:none;transition:transform var(--dur-base) var(--ease-standard),box-shadow var(--dur-base),border-color var(--dur-base);}
.doccard:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:transparent;}
.doccard__ic{width:48px;height:60px;border-radius:7px;overflow:hidden;flex:none;background:var(--surface-alt);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;}
.doccard__ic img{width:100%;height:100%;object-fit:cover;}
.doccard__ic svg{width:24px;height:24px;color:var(--color-brand);}
.doccard__t{display:flex;flex-direction:column;gap:4px;min-width:0;}
.doccard__t b{font-size:14px;color:var(--text-strong);line-height:1.3;}
.doccard__go{font-size:12.5px;font-weight:var(--fw-bold);color:var(--color-brand);}
.art-thumb{position:relative;}
.art-hidden__dot{position:absolute;top:-3px;right:-3px;width:11px;height:11px;border-radius:50%;background:var(--text-subtle);border:2px solid #fff;}
.btn--quiet{background:transparent;color:var(--text-muted);border-color:transparent;}
@media(max-width:860px){ .admin{grid-template-columns:1fr;} .adminnav{position:static;height:auto;flex-direction:row;flex-wrap:wrap;align-items:center;gap:8px;} .adminnav__list{flex-direction:row;flex-wrap:wrap;} .adminnav__foot{margin:0 0 0 auto;border:0;padding:0;flex-direction:row;} .adminmain{padding:20px;} }

/* ============================================================
   Downloads — Admin-Auswahl + Partner-Anzeige
   ============================================================ */
.dl-table td{vertical-align:middle;}
.dl-table tr.is-sel{background:var(--color-brand-tint);}
.dl-check{width:18px;height:18px;accent-color:var(--color-brand);}
.dl-thumb{display:flex;align-items:center;justify-content:center;width:54px;height:42px;border-radius:6px;overflow:hidden;background:var(--surface-alt);border:1px solid var(--border);}
.dl-thumb img{width:100%;height:100%;object-fit:cover;}
.dl-thumb svg{width:20px;height:20px;color:var(--gray-400);}
.dl-thumb--link{cursor:pointer;transition:border-color .12s,box-shadow .12s,transform .12s;}
.dl-thumb--link:hover{border-color:var(--color-brand);box-shadow:0 0 0 2px color-mix(in srgb,var(--color-brand) 25%,transparent);transform:scale(1.04);}
.dl-input{width:100%;font-family:var(--font-body);font-size:13.5px;padding:8px 10px;border:1.5px solid var(--border);border-radius:7px;}
.dl-input:focus{outline:none;border-color:var(--color-brand);box-shadow:0 0 0 3px var(--color-brand-tint);}
.dl-input--sort{text-align:center;}

.dlcat{font-size:18px;margin:30px 0 14px;padding-bottom:8px;border-bottom:1px solid var(--border);}
.dlgrid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;}
.dlcard{display:flex;align-items:center;gap:14px;background:#fff;border:1px solid var(--border);border-radius:12px;padding:14px;text-decoration:none;transition:transform var(--dur-base) var(--ease-standard),box-shadow var(--dur-base),border-color var(--dur-base);}
.dlcard:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:transparent;}
.dlcard__thumb{position:relative;width:64px;height:80px;border-radius:8px;overflow:hidden;flex:none;background:var(--surface-alt);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;}
.dlcard__thumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background:var(--surface-alt);}
.dlcard__thumb svg{width:30px;height:30px;color:var(--color-brand);}
.dlcard__t{display:flex;flex-direction:column;gap:6px;min-width:0;}
.dlcard__t b{font-size:15px;color:var(--text-strong);line-height:1.3;}
.dlcard__go{font-size:13px;font-weight:var(--fw-bold);color:var(--color-brand);display:inline-flex;align-items:center;gap:6px;}
.dlcard__go svg{width:15px;height:15px;}
.dlcard__slug{font-size:11.5px;color:var(--text-subtle);font-family:ui-monospace,monospace;word-break:break-all;}
.dlcard__flip{display:inline-flex;align-items:center;gap:5px;align-self:flex-start;background:var(--color-brand-tint);color:var(--color-brand);font-size:11px;font-weight:var(--fw-bold);padding:2px 8px;border-radius:20px;}
.dlcard__flip svg{width:14px;height:14px;}
@media(max-width:1400px){ .dlgrid{grid-template-columns:repeat(4,1fr);} }
@media(max-width:1080px){ .dlgrid{grid-template-columns:repeat(3,1fr);} }
@media(max-width:820px){ .dlgrid{grid-template-columns:repeat(2,1fr);} }
@media(max-width:560px){ .dlgrid{grid-template-columns:1fr;} }
/* Admin: Download-Thumb-Upload */
.dl-thumbcell{white-space:nowrap;vertical-align:top;}
.dl-upbtn{display:inline-block;margin-top:5px;font-size:11.5px;font-weight:var(--fw-bold);color:var(--color-brand);cursor:pointer;border:1px solid var(--border);border-radius:6px;padding:2px 7px;}
.dl-upbtn:hover{background:var(--color-brand-tint);}
.dl-rmthumb{margin-left:3px;border:none;background:transparent;color:var(--text-subtle);cursor:pointer;font-size:13px;line-height:1;}
.dl-rmthumb:hover{color:var(--color-brand);}
.dl-flip{display:inline-block;margin-left:6px;background:var(--color-brand-tint);color:var(--color-brand);font-size:10.5px;font-weight:var(--fw-bold);padding:1px 6px;border-radius:10px;vertical-align:middle;}

/* ---- Download-Kategorien-Verwaltung (Admin) ---- */
.catman{background:#fff;border:1px solid var(--border);border-radius:14px;padding:16px 22px;margin-bottom:22px;}
.catman > summary{font-family:var(--font-display);font-weight:700;font-size:17px;cursor:pointer;list-style:none;}
.catman > summary::-webkit-details-marker{display:none;}
.catman > summary::before{content:"\25B8";margin-right:8px;color:var(--color-brand);}
.catman[open] > summary::before{content:"\25BE";}
.catlist{list-style:none;margin:0 0 12px;padding:0;display:flex;flex-direction:column;gap:6px;max-width:460px;}
.catlist__item{display:flex;align-items:center;gap:10px;background:var(--surface-alt);border:1px solid var(--border);border-radius:9px;padding:6px 10px;}
.catlist__item.is-drag{opacity:.5;border-style:dashed;}
.catlist__grip{cursor:grab;color:var(--gray-400);display:flex;}
.catlist__grip svg{width:18px;height:18px;}
.catlist__name{flex:1;min-width:0;border:1px solid transparent;background:transparent;font-family:var(--font-body);font-size:14.5px;padding:6px 8px;border-radius:6px;color:var(--text-strong);}
.catlist__name:hover{background:#fff;border-color:var(--border);}
.catlist__name:focus{outline:none;background:#fff;border-color:var(--color-brand);box-shadow:0 0 0 3px var(--color-brand-tint);}
.catlist__del{border:0;background:transparent;color:var(--gray-500);cursor:pointer;font-size:14px;padding:4px 9px;border-radius:6px;line-height:1;}
.catlist__del:hover{background:var(--red-50);color:var(--color-brand);}
.catadd{display:flex;gap:8px;max-width:460px;}
.catadd input{flex:1;font-family:var(--font-body);font-size:14px;padding:9px 12px;border:1.5px solid var(--border-strong);border-radius:8px;}
.catadd input:focus{outline:none;border-color:var(--color-brand);box-shadow:0 0 0 3px var(--color-brand-tint);}

/* Auto-Save-Bestätigung (Download-Zeile) */
.dl-table tr td{transition:background .35s var(--ease-standard);}
.dl-table tr.is-saved td{background:var(--green-50);}

/* ---- Newsletter (Partner) ---- */
.nlgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:20px;margin-bottom:34px;}
.nlcard{display:flex;flex-direction:column;background:#fff;border:1px solid var(--border);border-radius:14px;overflow:hidden;text-decoration:none;color:inherit;transition:transform var(--dur-base) var(--ease-standard),box-shadow var(--dur-base),border-color var(--dur-base);}
a.nlcard:hover{transform:translateY(-2px);box-shadow:0 14px 32px rgba(0,0,0,.10);border-color:var(--gray-400);}
.nlcard__thumb{aspect-ratio:4/3;background:var(--surface-alt);border-bottom:1px solid var(--border);overflow:hidden;display:flex;align-items:center;justify-content:center;}
.nlcard__thumb img{width:100%;height:100%;object-fit:cover;}
.nlcard__thumb img.nlcard__ph{object-fit:contain;}
.nlcard__body{padding:14px 16px 16px;display:flex;flex-direction:column;gap:6px;flex:1;}
.nlcard__date{font-size:12.5px;color:var(--text-subtle);font-weight:var(--fw-bold);letter-spacing:.02em;}
.nlcard__title{font-family:var(--font-display);font-size:16px;line-height:1.3;color:var(--text-strong);}
.nlcard__go{margin-top:auto;display:inline-flex;align-items:center;gap:7px;color:var(--color-brand);font-weight:var(--fw-bold);font-size:14px;padding-top:6px;}
.nlcard__go svg{width:18px;height:18px;}
.nlcard__soon{margin-top:auto;color:var(--text-subtle);font-size:13px;padding-top:6px;}
.nlcard--nolink{cursor:default;}
/* Admin */
.nl-thumb{display:flex;align-items:center;justify-content:center;width:58px;height:44px;border-radius:6px;overflow:hidden;background:var(--surface-alt);border:1px solid var(--border);}
.nl-thumb img{width:100%;height:100%;object-fit:cover;}
.nl-thumb svg{width:20px;height:20px;color:var(--gray-400);}
.nl-table tr.is-saved td{background:var(--green-50);}
.nl-table .nl-url{width:100%;}
