:root{
  --ink:#071225;
  --ink-2:#0b1b36;
  --navy:#07152f;
  --navy-2:#102a56;
  --blue:#2563eb;
  --cyan:#06b6d4;
  --violet:#8b5cf6;
  --green:#10b981;
  --amber:#f59e0b;
  --red:#ef4444;
  --bg:#f5f8ff;
  --surface:#ffffff;
  --surface-2:#f8fbff;
  --text:#101828;
  --muted:#667085;
  --line:rgba(16,24,40,.10);
  --line-soft:rgba(255,255,255,.16);
  --radius:24px;
  --radius-lg:34px;
  --shadow:0 24px 80px rgba(16,24,40,.13);
  --shadow-soft:0 14px 40px rgba(37,99,235,.12);
  --max:1180px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--bg)}
body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;color:var(--text);background:radial-gradient(circle at 12% -8%,rgba(37,99,235,.16),transparent 32rem),radial-gradient(circle at 88% 8%,rgba(6,182,212,.14),transparent 28rem),linear-gradient(180deg,#fbfdff 0%,#f5f8ff 55%,#fff 100%);line-height:1.6;min-height:100vh;font-size:16px}
body.app-body,body.auth-body{background:radial-gradient(circle at 8% 0%,rgba(6,182,212,.28),transparent 32rem),radial-gradient(circle at 92% 18%,rgba(139,92,246,.22),transparent 28rem),linear-gradient(135deg,#061126 0%,#0d2854 52%,#15172e 100%);background-attachment:fixed}
a{color:inherit;text-decoration:none}img{max-width:100%;display:block}button,input,textarea,select{font:inherit}button{cursor:pointer}::selection{background:rgba(37,99,235,.18)}
.container{width:min(var(--max),calc(100% - 2rem));margin-inline:auto}.section{padding:5rem 0}.section-tight{padding:3.5rem 0}.content-card,.card,.dash-card,.auth-panel{background:rgba(255,255,255,.94);border:1px solid rgba(255,255,255,.62);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft);backdrop-filter:blur(18px)}
.site-header{position:sticky;top:0;z-index:1000;background:rgba(5,12,28,.86);backdrop-filter:blur(18px);border-bottom:1px solid rgba(255,255,255,.10);box-shadow:0 10px 34px rgba(0,0,0,.18)}
.header-inner{width:min(1200px,calc(100% - 2rem));margin:0 auto;padding:.85rem 0;display:flex;align-items:center;justify-content:space-between;gap:1rem}.brand{display:inline-flex;align-items:center;gap:.75rem;color:#fff;font-weight:950;font-size:1.28rem;letter-spacing:-.045em}.brand img{width:44px;height:44px;border-radius:15px;object-fit:contain;filter:drop-shadow(0 12px 20px rgba(0,0,0,.24))}.brand small{display:block;margin-top:-.35rem;text-transform:uppercase;letter-spacing:.14em;font-size:.62rem;color:rgba(255,255,255,.55)}
.site-nav{display:flex;align-items:center;gap:.25rem}.site-nav a{display:inline-flex;align-items:center;min-height:42px;padding:.62rem .9rem;border-radius:999px;color:rgba(255,255,255,.74);font-weight:850;font-size:.93rem;transition:.18s}.site-nav a:hover,.site-nav a.active{background:rgba(255,255,255,.10);color:#fff}.site-nav .nav-cta{background:#fff!important;color:#071225!important;box-shadow:0 12px 30px rgba(0,0,0,.18)}.burger{display:none;width:44px;height:44px;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.09);border-radius:15px;align-items:center;justify-content:center;flex-direction:column;gap:5px}.burger span{width:22px;height:2px;border-radius:999px;background:#fff}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;min-height:48px;padding:.82rem 1.15rem;border-radius:999px;border:1px solid transparent;font-weight:950;letter-spacing:-.01em;line-height:1.1;transition:transform .18s,box-shadow .18s,background .18s;text-align:center}.btn:hover{transform:translateY(-2px)}.btn-primary{color:#fff;background:linear-gradient(135deg,var(--blue),var(--cyan));box-shadow:0 18px 38px rgba(37,99,235,.28)}.btn-white{background:#fff;color:#071225;box-shadow:0 14px 32px rgba(0,0,0,.18)}.btn-ghost{color:#fff;background:rgba(255,255,255,.10);border-color:rgba(255,255,255,.18)}.btn-soft{color:#1d4ed8;background:rgba(37,99,235,.09);border-color:rgba(37,99,235,.14);box-shadow:none}.btn-danger{color:#fff;background:linear-gradient(135deg,#ef4444,#fb7185)}.btn-block{width:100%}
.eyebrow{display:inline-flex;align-items:center;gap:.45rem;padding:.42rem .72rem;border-radius:999px;border:1px solid rgba(37,99,235,.18);background:rgba(255,255,255,.78);color:#1d4ed8;font-size:.76rem;line-height:1;text-transform:uppercase;letter-spacing:.085em;font-weight:950;box-shadow:0 10px 24px rgba(37,99,235,.08)}.lead{font-size:clamp(1.05rem,2vw,1.3rem);color:rgba(255,255,255,.78);max-width:760px}.gradient-text{background:linear-gradient(90deg,#67e8f9,#bfdbfe,#ddd6fe);-webkit-background-clip:text;background-clip:text;color:transparent}.actions{display:flex;flex-wrap:wrap;gap:.85rem;align-items:center}.trust-row{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:2rem;color:rgba(255,255,255,.74);font-weight:850}.trust-row span{padding:.48rem .75rem;border:1px solid rgba(255,255,255,.13);background:rgba(255,255,255,.09);border-radius:999px}
.hero{position:relative;overflow:hidden;min-height:720px;display:grid;align-items:center;padding:5.5rem 0 4.5rem;color:#fff}.hero:before{content:"";position:absolute;inset:0;background:linear-gradient(115deg,rgba(5,12,28,.88),rgba(15,42,86,.66),rgba(37,99,235,.22)),url('../assets/img/mockup_visitenkarte.png') center/cover no-repeat;filter:saturate(1.05)}.hero:after{content:"";position:absolute;inset:auto 0 0;height:32%;background:linear-gradient(180deg,transparent,var(--bg))}.hero-content{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.06fr) minmax(330px,.94fr);align-items:center;gap:3rem}.hero h1,.page-hero h1{font-size:clamp(3rem,7vw,6.4rem);line-height:.94;letter-spacing:-.075em;margin:1.1rem 0 1rem}.hero .lead{margin:0 0 2rem}.hero .eyebrow,.page-hero .eyebrow{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.20);color:#dbeafe}.product-card{justify-self:end;width:min(100%,430px);padding:1rem;border-radius:38px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.20);backdrop-filter:blur(18px);box-shadow:0 34px 100px rgba(0,0,0,.38)}.phone-card{padding:1.05rem;border-radius:31px;background:linear-gradient(180deg,#fff,#f8fbff);color:var(--text)}.store-top{display:flex;align-items:center;justify-content:space-between;gap:1rem}.store-avatar{width:58px;height:58px;border-radius:19px;object-fit:cover;background:#e0f2fe}.badge,.status{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:.36rem .64rem;background:#e0f2fe;color:#075985;font-size:.77rem;font-weight:950;white-space:nowrap}.points-ring{--progress:0%;margin:1.4rem auto;width:220px;height:220px;border-radius:50%;background:conic-gradient(var(--blue) 0 var(--progress),#e5edff var(--progress) 100%);display:grid;place-items:center;box-shadow:inset 0 0 0 1px rgba(15,23,42,.05)}.points-ring>div{width:162px;height:162px;border-radius:50%;background:#fff;display:grid;place-items:center;text-align:center;box-shadow:inset 0 0 0 1px rgba(15,23,42,.06)}.points-ring strong{display:block;font-size:2.3rem;letter-spacing:-.05em;line-height:1}.progress{height:14px;border-radius:999px;background:#e5edff;overflow:hidden}.progress span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--blue),var(--cyan))}.mini-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}.mini-tile{padding:.9rem;border-radius:18px;background:#f1f6ff;border:1px solid rgba(37,99,235,.09)}.mini-tile b{display:block;color:#0f172a}.mini-tile span{color:var(--muted);font-size:.9rem}
.page-hero{position:relative;overflow:hidden;padding:5.5rem 0 3.8rem;color:#fff;background:linear-gradient(135deg,#061126 0%,#102a56 56%,#17172f 100%)}.page-hero:before{content:"";position:absolute;right:-120px;top:-200px;width:560px;height:560px;background:radial-gradient(circle,rgba(6,182,212,.38),transparent 62%)}.page-hero:after{content:"";position:absolute;left:-180px;bottom:-240px;width:520px;height:520px;background:radial-gradient(circle,rgba(139,92,246,.28),transparent 63%)}.page-hero .container{position:relative;z-index:1}.page-hero .lead{margin:0;color:rgba(255,255,255,.78)}.page-hero.light{background:transparent;color:var(--text)}.page-hero.light .lead{color:var(--muted)}
.section h2,.content-card h1,.content-card h2,.auth-panel h1,.dash-head h1{letter-spacing:-.06em;line-height:1.02}.content-card{padding:clamp(1.25rem,3vw,2rem)}.content-card h2{font-size:clamp(2rem,4vw,3.8rem);margin:.6rem 0 1rem}.content-card h3{font-size:1.28rem;margin:.1rem 0 .55rem;letter-spacing:-.03em}.content-card p,.card p{color:var(--muted);margin:.35rem 0 0}.grid,.grid-2,.grid-3,.grid-4,.form-grid{display:grid;gap:1.2rem}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.kpi{padding:1.15rem;border-radius:24px;background:linear-gradient(180deg,#fff,#f8fbff);border:1px solid rgba(15,23,42,.07);box-shadow:0 12px 30px rgba(15,23,42,.07)}.kpi span,.kpi small{display:block;color:var(--muted);font-weight:850;font-size:.8rem;text-transform:uppercase;letter-spacing:.06em}.kpi strong{display:block;font-size:2.1rem;letter-spacing:-.06em;line-height:1;margin-top:.25rem}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.form-row{display:flex;flex-direction:column;gap:.45rem;margin-bottom:1rem}.form-row label,.field label{font-weight:950;color:#172554;font-size:.9rem}.field input,.field textarea,.field select,input,textarea,select{width:100%;border:1px solid rgba(15,23,42,.13);background:#fff;border-radius:17px;padding:.92rem 1rem;color:var(--text);outline:none;transition:.16s;box-shadow:0 1px 0 rgba(16,24,40,.02)}textarea{min-height:130px;resize:vertical}.field input:focus,.field textarea:focus,.field select:focus,input:focus,textarea:focus,select:focus{border-color:rgba(37,99,235,.55);box-shadow:0 0 0 4px rgba(37,99,235,.10)}.help{color:var(--muted);font-size:.9rem;margin:.3rem 0 0}.table-wrap{overflow:auto;border-radius:24px;border:1px solid var(--line);background:#fff;box-shadow:0 12px 30px rgba(15,23,42,.05)}table{width:100%;border-collapse:collapse;min-width:760px}th,td{text-align:left;padding:1rem;border-bottom:1px solid rgba(15,23,42,.08);vertical-align:middle}th{font-size:.77rem;text-transform:uppercase;letter-spacing:.065em;color:#475569;background:#f8fafc}tr:last-child td{border-bottom:0}.status.active,.status.approved{background:#dcfce7;color:#166534}.status.paused,.status.new{background:#fef3c7;color:#92400e}.status.archived,.status.hidden{background:#fee2e2;color:#991b1b}
.auth-wrap{width:min(1000px,calc(100% - 2rem));margin:3.6rem auto;display:grid;grid-template-columns:.88fr 1.12fr;gap:1.2rem;align-items:stretch}.auth-panel{padding:clamp(1.4rem,3vw,2.2rem)}.auth-panel.dark{color:#fff;background:linear-gradient(145deg,rgba(255,255,255,.14),rgba(255,255,255,.06));border-color:rgba(255,255,255,.18);box-shadow:0 26px 80px rgba(0,0,0,.28)}.auth-panel.dark p{color:rgba(255,255,255,.72)}.auth-panel h1{font-size:clamp(2rem,4vw,3.5rem);margin:.75rem 0 1rem}.auth-body .site-header{background:rgba(5,12,28,.76)}
.dashboard-shell{width:min(1480px,calc(100% - 2rem));margin:1.3rem auto 3rem;display:grid;grid-template-columns:292px minmax(0,1fr);gap:1.25rem}.dashboard-sidebar{position:sticky;top:92px;align-self:start;border-radius:30px;padding:1rem;background:rgba(255,255,255,.94);border:1px solid rgba(255,255,255,.56);box-shadow:0 26px 90px rgba(0,0,0,.18);backdrop-filter:blur(18px)}.side-store{display:flex;align-items:center;gap:.78rem;padding:.8rem;border-radius:23px;background:linear-gradient(180deg,#f8fbff,#eef4ff);border:1px solid rgba(37,99,235,.08);margin-bottom:.9rem}.side-store img{width:48px;height:48px;border-radius:16px;object-fit:cover;background:#e0f2fe}.side-store strong{display:block;line-height:1.12}.side-store span{display:block;max-width:180px;overflow:hidden;text-overflow:ellipsis;color:var(--muted);font-size:.8rem}.dashboard-sidebar nav{display:grid;gap:.38rem}.dashboard-sidebar a{display:flex;align-items:center;padding:.78rem .9rem;border-radius:17px;font-weight:900;color:#334155;line-height:1.15}.dashboard-sidebar a:hover,.dashboard-sidebar a.active{background:linear-gradient(135deg,rgba(37,99,235,.12),rgba(6,182,212,.12));color:#1d4ed8}.dashboard-content{min-width:0}.dash-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;color:#fff;margin:.45rem 0 1.2rem}.dash-head h1{margin:0;font-size:clamp(2.2rem,4.2vw,4rem);line-height:.96}.dash-head p{margin:.45rem 0 0;color:rgba(255,255,255,.72)}.dash-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:1.2rem}.dash-card{padding:1.25rem}.dash-card h2,.dash-card h3{margin:.1rem 0 1rem;letter-spacing:-.04em}.action-list{display:grid;gap:.75rem}.list-item{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem;border-radius:20px;background:#f8fafc;border:1px solid rgba(15,23,42,.08)}.card-preview{overflow:hidden;border-radius:28px;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow-soft)}.card-preview .cover{min-height:150px;background:linear-gradient(135deg,var(--blue),var(--cyan))}.card-preview .cover img{width:100%;height:190px;object-fit:cover}.card-preview .body{padding:1.2rem}.qr-box{display:grid;place-items:center;padding:1rem;border-radius:24px;background:#fff;border:1px dashed rgba(15,23,42,.18)}.qr-box img{width:220px;height:220px;object-fit:contain}.scanner-box{position:relative;overflow:hidden;display:grid;place-items:center;min-height:340px;border-radius:28px;background:#020617;color:#fff}.scanner-box video{width:100%;height:100%;object-fit:cover}.scanner-line{position:absolute;left:12%;right:12%;top:50%;height:2px;background:#67e8f9;box-shadow:0 0 22px #67e8f9}
.customer-card-page{background:radial-gradient(circle at 10% 0%,rgba(6,182,212,.28),transparent 30rem),linear-gradient(135deg,#061126,#102a56 60%,#17172f);min-height:100vh;color:var(--text);padding:2rem 0}.customer-phone{width:min(490px,calc(100% - 2rem));margin:0 auto;border-radius:40px;padding:1rem;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.20);box-shadow:0 34px 100px rgba(0,0,0,.38)}.customer-inner{overflow:hidden;border-radius:31px;background:#fff}.customer-banner{position:relative;min-height:180px;background:linear-gradient(135deg,var(--blue),var(--cyan));display:flex;align-items:flex-end;padding:1.25rem;color:#fff}.customer-banner img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.customer-banner:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent,rgba(0,0,0,.50))}.customer-banner-content{position:relative;z-index:1}.customer-main{padding:1.25rem}.review-stars{display:flex;gap:.35rem}.review-stars label{cursor:pointer;font-size:1.55rem}
.flash{position:fixed;top:86px;left:50%;transform:translateX(-50%);z-index:2000;width:min(760px,calc(100% - 2rem));padding:.95rem 1.1rem;border-radius:18px;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow);font-weight:850}.flash-success{background:#ecfdf5;border-color:rgba(16,185,129,.28);color:#065f46}.flash-error{background:#fef2f2;border-color:rgba(239,68,68,.28);color:#991b1b}.flash-info{background:#eff6ff;border-color:rgba(37,99,235,.28);color:#1e40af}.footer{margin-top:0;padding:3.4rem 0;background:#061126;color:rgba(255,255,255,.72)}.footer-grid{display:grid;grid-template-columns:1.4fr .6fr .6fr;gap:2rem}.footer a{display:block;margin:.42rem 0;color:rgba(255,255,255,.74)}.footer strong{color:#fff}.footer-brand{display:flex!important;align-items:center;gap:.7rem;color:#fff!important;margin-bottom:.8rem!important}.footer-brand img{width:42px;height:42px;border-radius:14px}.legal-text h2{margin-top:2rem}.legal-text p,.legal-text li{color:#475569}
@media (max-width:980px){.hero-content,.grid-2,.grid-3,.grid-4,.form-grid,.auth-wrap,.dash-grid,.footer-grid{grid-template-columns:1fr}.dashboard-shell{grid-template-columns:1fr}.dashboard-sidebar{position:relative;top:0}.dashboard-sidebar nav{grid-template-columns:repeat(2,minmax(0,1fr))}.product-card{justify-self:start}.hero{min-height:auto}}
@media (max-width:760px){.header-inner{width:min(100% - 1rem,1200px)}.burger{display:flex}.site-nav{display:none;position:absolute;left:1rem;right:1rem;top:72px;flex-direction:column;align-items:stretch;padding:1rem;border-radius:22px;background:rgba(5,12,28,.97);border:1px solid rgba(255,255,255,.10);box-shadow:var(--shadow)}.site-nav.open,.site-nav.active{display:flex}.site-nav a{width:100%}.section{padding:3.5rem 0}.hero{padding:4.3rem 0 3rem}.hero h1,.page-hero h1{font-size:clamp(2.55rem,13vw,4rem)}.dashboard-sidebar nav{grid-template-columns:1fr}.dash-head{flex-direction:column}.list-item{align-items:flex-start;flex-direction:column}.mini-grid{grid-template-columns:1fr}.auth-wrap{margin:1.5rem auto}.content-card,.dash-card,.auth-panel{border-radius:26px}.footer{padding:2.5rem 0}}

/* Kunden-Terminal / Kiosk */
body.terminal-body{min-height:100vh;background:radial-gradient(circle at 8% -8%,rgba(6,182,212,.34),transparent 34rem),radial-gradient(circle at 94% 8%,rgba(139,92,246,.24),transparent 30rem),linear-gradient(135deg,#061126 0%,#0d2854 52%,#15172e 100%);background-attachment:fixed;color:#0f172a;overflow-x:hidden}.terminal-shell{width:min(1680px,calc(100% - 2.4rem));min-height:calc(100vh - 2.4rem);margin:1.2rem auto;display:grid;grid-template-columns:minmax(340px,.42fr) minmax(0,1fr);gap:1.2rem}.terminal-brand-panel,.terminal-card{background:rgba(255,255,255,.94);border:1px solid rgba(255,255,255,.56);border-radius:34px;box-shadow:0 28px 90px rgba(0,0,0,.22);backdrop-filter:blur(20px)}.terminal-brand-panel{position:relative;overflow:hidden;color:#fff;padding:clamp(1.4rem,2.4vw,2.2rem);background:linear-gradient(145deg,rgba(255,255,255,.16),rgba(255,255,255,.06));display:flex;flex-direction:column;justify-content:space-between;gap:2rem}.terminal-brand-panel:before{content:"";position:absolute;inset:auto -18% -20% -18%;height:48%;background:radial-gradient(circle,rgba(6,182,212,.28),transparent 65%);pointer-events:none}.terminal-brand-top{position:relative;display:flex;align-items:center;gap:1rem;z-index:1}.terminal-brand-top img{width:76px;height:76px;border-radius:24px;object-fit:cover;background:rgba(255,255,255,.14);box-shadow:0 18px 40px rgba(0,0,0,.22)}.terminal-brand-top strong{display:block;font-size:1.35rem;letter-spacing:-.04em}.terminal-brand-top span{display:block;color:rgba(255,255,255,.68);font-weight:800}.terminal-title{position:relative;z-index:1}.terminal-title h1{font-size:clamp(2.8rem,5vw,5.8rem);line-height:.92;letter-spacing:-.075em;margin:1rem 0}.terminal-title p{font-size:1.15rem;color:rgba(255,255,255,.76);max-width:520px}.terminal-hints{position:relative;display:grid;gap:.8rem;z-index:1}.terminal-hints div,.terminal-steps div{display:flex;align-items:center;gap:.85rem;padding:1rem;border-radius:22px;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.14)}.terminal-hints b,.terminal-steps b{display:grid;place-items:center;flex:0 0 42px;width:42px;height:42px;border-radius:15px;background:#fff;color:#1d4ed8;font-weight:1000}.terminal-hints span{font-weight:900;color:rgba(255,255,255,.85)}.terminal-workspace{display:flex;flex-direction:column;gap:1.2rem;min-width:0}.terminal-card{padding:clamp(1.2rem,2.2vw,2rem)}.terminal-card h2{font-size:clamp(2rem,3.3vw,4rem);line-height:1;letter-spacing:-.065em;margin:.2rem 0 .6rem}.terminal-card h3{font-size:1.45rem;line-height:1.1;letter-spacing:-.04em;margin:.1rem 0 1rem}.terminal-focus-card{min-height:520px;display:flex;flex-direction:column}.terminal-scanner{min-height:390px;flex:1;margin:1rem 0}.terminal-grid-small{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem}.terminal-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.2rem}.terminal-points-row{display:grid;grid-template-columns:300px minmax(0,1fr);gap:2rem;align-items:center}.terminal-reward-card .points-ring{margin:0;width:270px;height:270px}.terminal-reward-card .points-ring>div{width:200px;height:200px}.terminal-reward-card .points-ring strong{font-size:2.9rem}.terminal-reward-info h3{font-size:2rem}.terminal-reward-info .progress{height:18px;margin:1rem 0}.redeem-success{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.05rem 1.2rem;margin-bottom:1.2rem;border-radius:22px;background:#dcfce7;color:#14532d;border:1px solid rgba(22,101,52,.18);font-weight:950}.redeem-success strong{font-size:1.2rem}.redeem-success span{color:#166534}.terminal-promos{box-shadow:0 18px 50px rgba(0,0,0,.14)}.terminal-preview-line{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;margin-top:1rem}.copy-box{display:flex;align-items:center;gap:.8rem;padding:.8rem;border-radius:20px;background:#f8fafc;border:1px solid rgba(15,23,42,.08);margin:1rem 0}.copy-box code{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#0f172a}.terminal-steps{display:grid;gap:.75rem}.terminal-steps div{background:#f8fafc;border-color:rgba(15,23,42,.08)}.terminal-steps span{font-weight:850;color:#334155}.terminal-error{width:min(680px,calc(100% - 2rem));margin:10vh auto;padding:2rem;text-align:center;background:#fff;border-radius:34px;box-shadow:var(--shadow)}.terminal-error img{width:86px;height:86px;object-fit:contain;margin:0 auto 1rem}.terminal-error h1{letter-spacing:-.06em;line-height:1;font-size:clamp(2rem,5vw,4rem)}
@media (max-width:1100px){.terminal-shell{grid-template-columns:1fr}.terminal-brand-panel{min-height:auto}.terminal-title h1{font-size:clamp(2.6rem,9vw,5rem)}.terminal-points-row{grid-template-columns:1fr}.terminal-reward-card .points-ring{margin:0 auto}.terminal-grid-small{grid-template-columns:1fr}}
@media (max-width:680px){.terminal-shell{width:min(100% - 1rem,1680px);margin:.5rem auto}.terminal-brand-panel,.terminal-card{border-radius:26px}.terminal-card-head{flex-direction:column}.copy-box{align-items:stretch;flex-direction:column}.terminal-focus-card{min-height:auto}.terminal-scanner{min-height:280px}.terminal-reward-card .points-ring{width:230px;height:230px}.terminal-reward-card .points-ring>div{width:170px;height:170px}}

/* === Punktly Card + Terminal Designfix 2026-06-08 === */
html { font-size:16px; }
body.customer-card-page.customer-wallet-page{
  min-height:100vh;
  padding:0;
  color:#0f172a;
  background:
    radial-gradient(circle at 12% -10%, rgba(6,182,212,.34), transparent 34rem),
    radial-gradient(circle at 95% 4%, rgba(139,92,246,.26), transparent 34rem),
    linear-gradient(135deg,#061126 0%,#0b1e43 50%,#11142c 100%) !important;
  background-attachment:fixed;
  overflow-x:hidden;
}
.wallet-shell{
  width:min(1220px, calc(100% - 2rem));
  margin:0 auto;
  padding:clamp(1rem,2vw,1.8rem) 0 3rem;
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(330px,.65fr);
  gap:1.1rem;
  align-items:start;
}
.wallet-hero-card,
.wallet-side-card,
.wallet-section-card{
  position:relative;
  overflow:hidden;
  border-radius:34px;
  background:rgba(255,255,255,.94);
  border:1px solid rgba(255,255,255,.58);
  box-shadow:0 30px 90px rgba(0,0,0,.24);
  backdrop-filter:blur(20px);
}
.wallet-hero-card{grid-column:1/2;}
.wallet-side-card{grid-column:2/3;position:sticky;top:1rem;padding:1.2rem;}
.wallet-section-card{grid-column:1/-1;padding:clamp(1.1rem,2vw,1.6rem);}
.wallet-cover{
  position:relative;
  min-height:250px;
  display:flex;
  align-items:flex-end;
  padding:clamp(1.2rem,2.5vw,2rem);
  color:#fff;
}
.wallet-cover img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.wallet-cover-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(5,12,28,.10),rgba(5,12,28,.72));}
.wallet-cover-content{position:relative;z-index:2;max-width:720px;}
.wallet-cover h1{margin:.75rem 0 .25rem;font-size:clamp(2.4rem,5vw,5rem);line-height:.92;letter-spacing:-.075em;}
.wallet-cover p{margin:0;color:rgba(255,255,255,.78);font-weight:850;font-size:1.08rem;}
.wallet-pill{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:max-content;
  max-width:100%;
  padding:.42rem .72rem;
  border-radius:999px;
  background:rgba(37,99,235,.10);
  color:#1d4ed8;
  border:1px solid rgba(37,99,235,.14);
  font-weight:950;
  font-size:.74rem;
  letter-spacing:.075em;
  text-transform:uppercase;
  line-height:1;
}
.wallet-cover .wallet-pill{background:rgba(255,255,255,.16);color:#fff;border-color:rgba(255,255,255,.24);}
.wallet-pill.ready{background:#dcfce7;color:#166534;border-color:rgba(22,101,52,.18);}
.wallet-main-card{padding:clamp(1.1rem,2.4vw,2rem);}
.wallet-identity{display:flex;align-items:center;gap:1rem;padding:1rem;border-radius:26px;background:#f8fbff;border:1px solid rgba(15,23,42,.07);}
.wallet-logo-wrap{width:70px;height:70px;border-radius:24px;background:#fff;display:grid;place-items:center;box-shadow:0 14px 32px rgba(15,23,42,.10);overflow:hidden;flex:0 0 70px;}
.wallet-logo-wrap img{width:100%;height:100%;object-fit:cover;}
.wallet-identity span{display:block;color:#64748b;font-weight:850;font-size:.85rem;}
.wallet-identity strong{display:block;font-size:1.45rem;line-height:1.05;letter-spacing:-.04em;}
.wallet-identity small{display:block;color:#94a3b8;margin-top:.22rem;font-weight:800;word-break:break-word;}
.wallet-progress-layout{display:grid;grid-template-columns:280px minmax(0,1fr);gap:1.8rem;align-items:center;margin-top:1.4rem;}
.wallet-ring{
  --progress:0%;
  width:260px;height:260px;border-radius:50%;
  display:grid;place-items:center;
  background:conic-gradient(var(--store-color,#2563eb) 0 var(--progress), #e5edff var(--progress) 100%);
  box-shadow:inset 0 0 0 1px rgba(15,23,42,.06),0 22px 50px rgba(37,99,235,.18);
}
.wallet-ring>div{width:190px;height:190px;border-radius:50%;background:#fff;display:grid;place-items:center;text-align:center;box-shadow:inset 0 0 0 1px rgba(15,23,42,.07);}
.wallet-ring strong{display:block;font-size:3rem;line-height:1;letter-spacing:-.07em;}
.wallet-ring strong span{font-size:1.55rem;color:#64748b;letter-spacing:-.04em;}
.wallet-ring small{display:block;margin-top:.25rem;color:#64748b;font-weight:900;text-transform:uppercase;letter-spacing:.07em;}
.wallet-reward-text h2{margin:.65rem 0 .65rem;font-size:clamp(1.8rem,3vw,3.1rem);line-height:1;letter-spacing:-.065em;}
.wallet-reward-text p{margin:.45rem 0;color:#475569;font-size:1.02rem;}
.wallet-progress{height:16px;border-radius:999px;background:#e5edff;overflow:hidden;margin-top:1rem;}
.wallet-progress span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--store-color,#2563eb),#06b6d4);}
.wallet-side-head h2,.wallet-section-title h2{margin:.6rem 0 .3rem;font-size:clamp(1.7rem,2.7vw,2.7rem);line-height:1;letter-spacing:-.06em;}
.wallet-side-head p,.wallet-section-title p{margin:0;color:#64748b;}
.wallet-qr-panel{margin:1.1rem 0;padding:1.1rem;border-radius:28px;background:linear-gradient(180deg,#fff,#f8fbff);border:1px dashed rgba(37,99,235,.28);display:grid;place-items:center;}
.wallet-qr-panel img{width:min(300px,100%);height:auto;object-fit:contain;}
.wallet-section-title{margin-bottom:1rem;}
.wallet-tile-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;}
.wallet-mini-tile,.wallet-review-tile{padding:1rem;border-radius:22px;background:#f8fbff;border:1px solid rgba(15,23,42,.07);}
.wallet-mini-tile strong,.wallet-review-tile strong{display:block;color:#0f172a;font-size:1.05rem;line-height:1.2;}
.wallet-mini-tile span,.wallet-review-tile span{display:block;margin-top:.42rem;color:#64748b;}
.wallet-review-form-card{margin-bottom:1rem;}
.wallet-review-form textarea{min-height:120px;}
body.customer-card-page .customer-phone{width:min(520px,calc(100% - 2rem)) !important;margin:2rem auto !important;}
body.customer-card-page .customer-inner{box-shadow:0 30px 90px rgba(0,0,0,.24) !important;}
body.customer-card-page .customer-main{padding:1.35rem !important;}
body.customer-card-page .qr-box{margin:1rem 0;border-radius:26px !important;background:#f8fbff !important;}

/* In-Store Terminal polish */
body.terminal-body{
  background:
    radial-gradient(circle at 12% -10%, rgba(6,182,212,.34), transparent 34rem),
    radial-gradient(circle at 94% 8%, rgba(139,92,246,.25), transparent 34rem),
    linear-gradient(135deg,#050c1c 0%,#0b1e43 52%,#14142c 100%) !important;
}
.terminal-shell{width:min(1640px,calc(100% - 2rem));min-height:calc(100vh - 2rem);margin:1rem auto;gap:1rem;}
.terminal-brand-panel,.terminal-card{border-radius:36px;border:1px solid rgba(255,255,255,.58);box-shadow:0 30px 90px rgba(0,0,0,.24);}
.terminal-card{background:rgba(255,255,255,.95);}
.terminal-title h1{letter-spacing:-.08em;}
.terminal-scanner{border:1px solid rgba(103,232,249,.25);box-shadow:inset 0 0 0 1px rgba(255,255,255,.04);}
.terminal-reward-card .points-ring{box-shadow:0 26px 60px rgba(37,99,235,.20);}
.terminal-card input,.terminal-card select,.terminal-card textarea{font-size:1.02rem;min-height:52px;}
.terminal-card .btn{min-height:54px;font-size:1rem;}
.terminal-promos .mini-grid{grid-template-columns:repeat(2,minmax(0,1fr));}

@media (max-width:1020px){
  .wallet-shell{grid-template-columns:1fr;}
  .wallet-side-card{position:relative;top:auto;grid-column:1/-1;}
  .wallet-hero-card{grid-column:1/-1;}
  .wallet-progress-layout{grid-template-columns:1fr;justify-items:center;text-align:center;}
  .wallet-reward-text{width:100%;}
  .wallet-tile-grid{grid-template-columns:1fr;}
}
@media (max-width:680px){
  .wallet-shell{width:min(100% - 1rem,1220px);padding:.5rem 0 1rem;gap:.7rem;}
  .wallet-hero-card,.wallet-side-card,.wallet-section-card{border-radius:28px;}
  .wallet-cover{min-height:220px;border-radius:0;}
  .wallet-cover h1{font-size:2.55rem;}
  .wallet-main-card,.wallet-side-card,.wallet-section-card{padding:1rem;}
  .wallet-identity{align-items:flex-start;}
  .wallet-logo-wrap{width:58px;height:58px;flex-basis:58px;border-radius:20px;}
  .wallet-identity strong{font-size:1.15rem;}
  .wallet-ring{width:220px;height:220px;}
  .wallet-ring>div{width:160px;height:160px;}
  .wallet-ring strong{font-size:2.35rem;}
  .wallet-review-form .form-grid{grid-template-columns:1fr;}
  .terminal-shell{width:min(100% - .7rem,1640px);margin:.35rem auto;}
  .terminal-brand-panel,.terminal-card{border-radius:26px;}
  .terminal-title h1{font-size:2.7rem;}
  .terminal-promos .mini-grid{grid-template-columns:1fr;}
}

/* === Terminal progress ring hotfix === */
.btn:disabled,.btn[disabled]{opacity:.48;cursor:not-allowed;transform:none!important;box-shadow:none!important;filter:saturate(.55);}
.terminal-progress-ring{background:conic-gradient(var(--blue) 0 var(--progress),#e5edff var(--progress) 100%)!important;}

/* === Punktly Online-Kundenportal 2026-06-08 === */
.switch-row{display:flex;align-items:flex-start;gap:.85rem;padding:1rem;border-radius:22px;background:#f8fbff;border:1px solid rgba(15,23,42,.08);margin:1rem 0;cursor:pointer}.switch-row input{width:22px;height:22px;margin:.15rem 0 0;accent-color:var(--blue)}.switch-row span{display:grid;gap:.12rem}.switch-row b{color:#0f172a}.switch-row small{color:var(--muted);font-weight:700}.dash-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1rem}.empty-state{padding:2rem;border-radius:24px;background:#f8fbff;border:1px dashed rgba(37,99,235,.22);text-align:center}.redeem-code-small{display:inline-flex;padding:.42rem .65rem;border-radius:12px;background:#eff6ff;color:#1d4ed8;letter-spacing:.06em}.status.pending{background:#fef3c7;color:#92400e}.status.used{background:#dcfce7;color:#166534}.status.cancelled{background:#fee2e2;color:#991b1b}
body.online-body{min-height:100vh;margin:0;color:#0f172a;background:radial-gradient(circle at 10% -10%,rgba(6,182,212,.33),transparent 32rem),radial-gradient(circle at 94% 4%,rgba(139,92,246,.28),transparent 31rem),linear-gradient(135deg,#061126 0%,#0d2854 52%,#15172e 100%);background-attachment:fixed;overflow-x:hidden}.online-shell{width:min(1220px,calc(100% - 2rem));margin:0 auto;padding:1.2rem 0 3rem;display:grid;gap:1.1rem}.online-hero-panel,.online-card{background:rgba(255,255,255,.94);border:1px solid rgba(255,255,255,.58);border-radius:34px;box-shadow:0 28px 90px rgba(0,0,0,.22);backdrop-filter:blur(20px)}.online-hero-panel{position:relative;overflow:hidden;color:#fff;padding:clamp(1.4rem,3vw,2.3rem);background:linear-gradient(135deg,rgba(255,255,255,.14),rgba(255,255,255,.06));min-height:320px;display:flex;flex-direction:column;justify-content:flex-end}.online-hero-panel:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 80% 0%,rgba(6,182,212,.28),transparent 28rem);pointer-events:none}.online-hero-panel>*{position:relative;z-index:1}.online-brand-row{display:flex;align-items:center;gap:1rem;margin-bottom:auto}.online-brand-row img{width:72px;height:72px;border-radius:24px;object-fit:cover;background:rgba(255,255,255,.14);box-shadow:0 18px 40px rgba(0,0,0,.22)}.online-brand-row strong{display:block;font-size:1.35rem;letter-spacing:-.04em}.online-brand-row span{display:block;color:rgba(255,255,255,.68);font-weight:800}.online-hero-panel h1{font-size:clamp(2.7rem,6vw,5.4rem);line-height:.92;letter-spacing:-.075em;margin:1rem 0}.online-hero-panel p{max-width:760px;margin:0;color:rgba(255,255,255,.78);font-size:1.15rem}.online-grid{display:grid;grid-template-columns:1.2fr .9fr .9fr;gap:1.1rem}.online-grid.small{grid-template-columns:repeat(3,minmax(0,1fr))}.online-card{padding:clamp(1.15rem,2.4vw,2rem)}.online-card h2{font-size:clamp(1.8rem,3.4vw,3.6rem);line-height:1;letter-spacing:-.065em;margin:.2rem 0 .7rem}.online-card h3{font-size:1.35rem;line-height:1.1;letter-spacing:-.04em;margin:.1rem 0 1rem}.online-focus-card{min-height:520px;display:flex;flex-direction:column}.online-focus-card .terminal-scanner{min-height:350px;flex:1;margin:1rem 0}.online-wallet-card{padding:clamp(1.2rem,2.6vw,2.2rem)}.online-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.2rem}.redeem-ticket{margin:0 0 1.2rem;padding:1.2rem;border-radius:28px;background:linear-gradient(135deg,#dcfce7,#e0f2fe);border:1px solid rgba(22,101,52,.18);box-shadow:0 18px 45px rgba(16,185,129,.12);text-align:center}.redeem-ticket span{display:block;color:#166534;font-weight:950;text-transform:uppercase;letter-spacing:.09em;font-size:.78rem}.redeem-ticket strong{display:block;font-size:clamp(2.4rem,6vw,5rem);line-height:1;letter-spacing:.06em;color:#064e3b;margin:.45rem 0}.redeem-ticket p{margin:0;color:#166534;font-weight:850}.redemption-mini{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.8rem;border-radius:18px;background:#f8fbff;border:1px solid rgba(15,23,42,.08);margin:.55rem 0}.redemption-mini strong{color:#1d4ed8;letter-spacing:.05em}.redemption-mini span{color:var(--muted);font-size:.9rem}.online-promos .mini-grid{margin-top:1rem}.wallet-online-redeem{margin-top:1rem}.wallet-side-card .btn + .btn{margin-top:.75rem}
@media (max-width:1100px){.online-grid,.online-grid.small{grid-template-columns:1fr}.online-focus-card{min-height:auto}.online-focus-card .terminal-scanner{min-height:300px}.online-card-head{flex-direction:column}.online-wallet-card .terminal-points-row{grid-template-columns:1fr}.online-wallet-card .points-ring{margin:0 auto}.dash-section-head{flex-direction:column}.switch-row{align-items:flex-start}}
@media (max-width:680px){.online-shell{width:min(100% - 1rem,1220px);padding:.5rem 0 2rem}.online-hero-panel,.online-card{border-radius:26px}.online-hero-panel{min-height:300px}.redeem-ticket strong{font-size:2.5rem}.copy-box{flex-direction:column;align-items:stretch}}

/* Punktly security + wallet extension */
.security-note{
  margin:1rem 0;
  padding:1rem 1.1rem;
  border:1px solid rgba(37,99,235,.18);
  border-radius:18px;
  background:linear-gradient(135deg, rgba(37,99,235,.08), rgba(6,182,212,.07));
  color:#334155;
  line-height:1.55;
}
.security-note strong{color:#0f172a}
.inline-actions{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}
.btn-danger-soft{
  border:1px solid rgba(220,38,38,.18);
  background:rgba(254,226,226,.72);
  color:#991b1b;
}
.btn-danger-soft:hover{background:rgba(254,202,202,.9)}
.btn-dark{
  background:#0f172a;
  color:#fff;
  border-color:#0f172a;
  box-shadow:0 14px 28px rgba(15,23,42,.18);
}
.btn-dark:hover{background:#111827;color:#fff;transform:translateY(-1px)}
.soft-separator{border:0;border-top:1px solid rgba(148,163,184,.24);margin:1.35rem 0}
.nice-list{display:grid;gap:.65rem;margin:1rem 0;padding-left:1.1rem;color:#475569;line-height:1.55}
.wallet-add-box{
  margin-top:1rem;
  padding:1rem;
  border-radius:20px;
  background:linear-gradient(145deg, rgba(15,23,42,.04), rgba(37,99,235,.06));
  border:1px solid rgba(148,163,184,.22);
}
.wallet-add-box h3{margin:0 0 .35rem;color:#0f172a}
.wallet-button-row{display:grid;gap:.6rem;margin-top:.8rem}
@media (min-width: 700px){.wallet-button-row{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}}
.status.pending{background:rgba(245,158,11,.12);color:#92400e}
.status.used{background:rgba(34,197,94,.12);color:#166534}
.status.cancelled{background:rgba(100,116,139,.12);color:#475569}

/* Punktly Global-Customer-Modell */
.customer-shell{max-width:1180px;margin:0 auto;padding:clamp(1.2rem,3vw,2.4rem)}
.customer-hero-card{display:grid;grid-template-columns:1.35fr .65fr;gap:1.4rem;align-items:center;background:linear-gradient(135deg,#10182f,#1c2b58 55%,#246bfe);color:#fff;border-radius:34px;padding:clamp(1.4rem,4vw,3rem);box-shadow:0 28px 90px rgba(20,40,100,.22);overflow:hidden;position:relative}
.customer-hero-card:after{content:"";position:absolute;right:-80px;top:-100px;width:340px;height:340px;background:rgba(255,255,255,.10);border-radius:50%}
.customer-hero-card h1{font-size:clamp(2rem,5vw,4.2rem);line-height:1;margin:.4rem 0 1rem;letter-spacing:-.05em}
.customer-hero-card p{color:rgba(255,255,255,.78);max-width:680px;font-size:1.08rem}
.customer-token-pill{display:inline-flex;align-items:center;gap:.5rem;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18);padding:.75rem 1rem;border-radius:999px;font-weight:800;letter-spacing:.08em;margin:1rem 0}.customer-token-pill.big{font-size:1.1rem;background:#f3f6ff;color:#13223f;border-color:#e2e8ff}
.customer-qr-large,.customer-pass .qr-box.hero{background:#fff;border-radius:28px;padding:1rem;text-align:center;box-shadow:0 20px 70px rgba(0,0,0,.22);position:relative;z-index:1}.customer-qr-large img{width:100%;max-width:280px;height:auto}.customer-qr-large .btn{margin-top:.8rem}.customer-program-grid .program-card{min-height:230px}.customer-auth .auth-panel.dark{background:radial-gradient(circle at 20% 20%,rgba(255,255,255,.18),transparent 30%),linear-gradient(135deg,#11172b,#2547b8)}
.public-customer-card{min-height:calc(100vh - 100px);display:flex;align-items:center;justify-content:center;padding:2rem;background:radial-gradient(circle at top,#e9f1ff,transparent 38%),linear-gradient(180deg,#f8fbff,#eef3ff)}
.customer-pass{width:min(520px,100%);background:#fff;border:1px solid rgba(38,75,150,.12);border-radius:38px;padding:2rem;text-align:center;box-shadow:0 30px 100px rgba(34,60,120,.18)}
.customer-pass-top{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.customer-pass-top img{height:44px}.customer-pass-top span{text-transform:uppercase;letter-spacing:.12em;color:#6b7280;font-size:.72rem;font-weight:800}.customer-pass h1{font-size:clamp(2rem,5vw,3rem);letter-spacing:-.05em;margin:.4rem 0}.customer-pass p{color:#657086}.customer-pass .qr-box.hero img{max-width:340px;width:100%;height:auto}.customer-pass .actions,.customer-hero-card .actions{display:flex;gap:.8rem;flex-wrap:wrap;margin-top:1rem}.customer-pass .actions{justify-content:center}
.terminal-program-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem}.program-card.selectable{border:1px solid rgba(40,80,160,.13);background:#fff;border-radius:24px;padding:1rem;box-shadow:0 12px 40px rgba(30,60,120,.08);display:flex;flex-direction:column;gap:.7rem}.program-card.selectable button{margin-top:auto}.program-select-list{display:grid;gap:.7rem}.program-line{margin:0}.dashboard-customer-row input[type=number]{width:90px;border:1px solid var(--line);border-radius:14px;padding:.8rem}.inline-actions.wide{display:flex;gap:.8rem;align-items:center;flex-wrap:wrap}.inline-actions.wide form{display:flex;gap:.6rem;align-items:center}.global-terminal .terminal-hero-panel,.global-online .online-hero-panel{background:radial-gradient(circle at 20% 10%,rgba(255,255,255,.20),transparent 30%),linear-gradient(135deg,#11182d,var(--store-color,#2563eb));border:1px solid rgba(255,255,255,.16)}
.security-note{border:1px solid rgba(37,99,235,.18);background:linear-gradient(135deg,rgba(37,99,235,.08),rgba(16,185,129,.08));border-radius:18px;padding:1rem;margin:1rem 0;color:#1f335e}.security-note strong{color:#102145}.redeem-ticket{background:linear-gradient(135deg,#101828,#2446b8);color:#fff;border-radius:26px;padding:1.2rem;margin:1rem 0;box-shadow:0 18px 50px rgba(20,40,100,.18)}.redeem-ticket span{text-transform:uppercase;letter-spacing:.14em;font-size:.72rem;opacity:.75}.redeem-ticket strong{display:block;font-size:clamp(1.8rem,5vw,3.2rem);letter-spacing:.05em;margin:.4rem 0}.redeem-ticket p{color:rgba(255,255,255,.78);margin:0}.online-card-head{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}.badge{display:inline-flex;border-radius:999px;background:#eef4ff;color:#2450b6;font-weight:800;font-size:.78rem;padding:.35rem .65rem}.terminal-points-row{display:grid;grid-template-columns:260px 1fr;gap:1.5rem;align-items:center}.terminal-progress-ring{--progress:0%;width:220px;height:220px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--store-color,#2563eb) var(--progress),#e7ecf8 0)}.terminal-progress-ring>div{width:165px;height:165px;border-radius:50%;background:#fff;display:grid;place-items:center;text-align:center;box-shadow:inset 0 0 0 1px rgba(20,40,80,.06)}.terminal-progress-ring strong{display:block;font-size:1.6rem;color:#111827}.terminal-reward-info{min-width:0}.terminal-reward-info h3{font-size:clamp(1.4rem,3vw,2.2rem);margin:.3rem 0}.redemption-mini{border:1px solid var(--line);border-radius:16px;padding:.8rem;margin:.5rem 0}.redemption-mini strong{display:block}.redemption-mini span{color:#6b7280;font-size:.9rem}
@media (max-width:820px){.customer-hero-card,.terminal-points-row{grid-template-columns:1fr}.customer-qr-large{max-width:360px}.online-card-head{flex-direction:column}.inline-actions.wide,.inline-actions.wide form{width:100%}.inline-actions.wide .btn{flex:1}.terminal-progress-ring{margin:auto}}

/* =====================================================================
   Punktly Globales Kundenmodell - Designfix v2
   Fixes: Kundenkonto, Store-Terminal, Online-Portal Lesbarkeit/Layout
   ===================================================================== */

body.customer-app{
  color:#0f172a;
  background:
    radial-gradient(circle at 9% -8%,rgba(6,182,212,.30),transparent 34rem),
    radial-gradient(circle at 92% 0%,rgba(99,102,241,.28),transparent 30rem),
    linear-gradient(135deg,#061126 0%,#0d2854 48%,#15172e 100%) !important;
  background-attachment:fixed !important;
}
body.customer-app .site-header{position:sticky;top:0;}
body.customer-app .customer-shell{
  width:min(1180px,calc(100% - 2rem));
  max-width:1180px;
  margin:0 auto;
  padding:clamp(1.4rem,3vw,2.5rem) 0 4rem !important;
}
body.customer-app .flash{
  width:min(680px,calc(100% - 2rem));
  margin:1rem auto 0;
}
body.customer-app .customer-hero-card{
  color:#fff;
  border:1px solid rgba(255,255,255,.16);
  background:
    radial-gradient(circle at 86% 8%,rgba(255,255,255,.16),transparent 22rem),
    linear-gradient(135deg,#12182e 0%,#1b2d5f 54%,#2563eb 100%) !important;
  box-shadow:0 34px 110px rgba(0,0,0,.30) !important;
}
body.customer-app .customer-hero-card h1,
body.customer-app .customer-hero-card p{color:#fff;}
body.customer-app .customer-hero-card p{color:rgba(255,255,255,.78);}
body.customer-app .customer-hero-card .eyebrow{
  background:rgba(255,255,255,.16);
  color:#fff;
  border-color:rgba(255,255,255,.22);
}
body.customer-app .customer-token-pill{
  color:#fff;
  background:rgba(255,255,255,.13);
  border-color:rgba(255,255,255,.22);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.10);
}
body.customer-app .customer-qr-large{
  background:#fff !important;
  border:1px solid rgba(255,255,255,.45);
  box-shadow:0 28px 80px rgba(0,0,0,.30) !important;
}
body.customer-app .dashboard-card{
  margin-top:1.1rem;
  padding:clamp(1.2rem,2.4vw,2rem);
  border-radius:34px;
  background:rgba(255,255,255,.96);
  border:1px solid rgba(255,255,255,.62);
  box-shadow:0 28px 85px rgba(0,0,0,.24);
  backdrop-filter:blur(18px);
  color:#0f172a;
}
body.customer-app .section-head,
body.customer-app .dash-section-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:1rem;
  margin-bottom:1.15rem;
}
body.customer-app .dashboard-card h2{
  color:#0f172a;
  font-size:clamp(2rem,3.8vw,3.3rem);
  line-height:1;
  letter-spacing:-.06em;
  margin:.55rem 0 .2rem;
}
body.customer-app .dashboard-card .eyebrow{
  background:#eef4ff;
  color:#1d4ed8;
  border-color:rgba(37,99,235,.16);
}
body.customer-app .customer-program-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:1rem;
}
body.customer-app .customer-program-grid .program-card{
  min-height:250px;
  padding:1.25rem;
  border-radius:26px;
  background:linear-gradient(180deg,#fff 0%,#f8fbff 100%);
  border:1px solid rgba(15,23,42,.08);
  box-shadow:0 16px 42px rgba(15,23,42,.08);
  color:#0f172a;
  display:flex;
  flex-direction:column;
  gap:.75rem;
}
body.customer-app .customer-program-grid .program-card h3{
  color:#0f172a;
  font-size:1.35rem;
  letter-spacing:-.04em;
  line-height:1.08;
  margin:.3rem 0 .15rem;
}
body.customer-app .customer-program-grid .program-card p,
body.customer-app .customer-program-grid .program-card small{
  color:#64748b;
}
body.customer-app .customer-program-grid .program-card .progress{
  margin-top:auto;
  background:#eaf1ff;
  height:14px;
}
body.customer-app .customer-program-grid .program-card .btn{margin-top:.35rem;}
body.customer-app .btn-dark{
  color:#fff;
  background:rgba(3,7,18,.70);
  border-color:rgba(255,255,255,.12);
}

/* Terminal: echte Kiosk-Optik statt roher zweispaltiger Seite */
body.terminal-body.global-terminal{
  color:#0f172a;
  background:
    radial-gradient(circle at 9% -8%,rgba(6,182,212,.34),transparent 35rem),
    radial-gradient(circle at 95% 0%,rgba(139,92,246,.30),transparent 32rem),
    linear-gradient(135deg,#061126 0%,#0d2854 50%,#15172e 100%) !important;
  background-attachment:fixed !important;
}
body.terminal-body.global-terminal .terminal-shell{
  width:min(1680px,calc(100% - 2rem)) !important;
  min-height:calc(100vh - 2rem) !important;
  margin:1rem auto !important;
  display:grid !important;
  grid-template-columns:minmax(350px,.38fr) minmax(0,1fr) !important;
  gap:1rem !important;
  align-items:stretch !important;
}
body.terminal-body.global-terminal .terminal-hero-panel{
  position:relative;
  overflow:hidden;
  min-height:calc(100vh - 2rem);
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  gap:2rem;
  padding:clamp(1.35rem,2.4vw,2.3rem);
  color:#fff !important;
  border-radius:34px;
  border:1px solid rgba(255,255,255,.18) !important;
  background:
    radial-gradient(circle at 20% 6%,rgba(255,255,255,.18),transparent 18rem),
    radial-gradient(circle at 90% 88%,rgba(6,182,212,.22),transparent 22rem),
    linear-gradient(145deg,#102039 0%,#1b3569 54%,var(--store-color,#2563eb) 100%) !important;
  box-shadow:0 34px 110px rgba(0,0,0,.34);
  backdrop-filter:blur(18px);
}
body.terminal-body.global-terminal .terminal-hero-panel:after{
  content:"";
  position:absolute;
  right:-10rem;
  bottom:-14rem;
  width:30rem;
  height:30rem;
  border-radius:50%;
  background:rgba(255,255,255,.08);
  pointer-events:none;
}
body.terminal-body.global-terminal .terminal-hero-panel > *{position:relative;z-index:1;}
body.terminal-body.global-terminal .terminal-hero-panel .online-brand-row{
  margin:0 0 clamp(2rem,7vh,6rem) 0;
  color:#fff;
}
body.terminal-body.global-terminal .terminal-hero-panel .online-brand-row img{
  width:74px;height:74px;border-radius:24px;
  background:rgba(255,255,255,.16);
  box-shadow:0 18px 44px rgba(0,0,0,.25);
}
body.terminal-body.global-terminal .terminal-hero-panel .online-brand-row strong{
  color:#fff;
  font-size:1.35rem;
  letter-spacing:-.04em;
}
body.terminal-body.global-terminal .terminal-hero-panel .online-brand-row span{
  color:rgba(255,255,255,.70);
  font-weight:850;
}
body.terminal-body.global-terminal .terminal-hero-panel .eyebrow{
  background:rgba(255,255,255,.90);
  color:#1d4ed8;
  border-color:rgba(255,255,255,.18);
  box-shadow:0 14px 35px rgba(0,0,0,.16);
}
body.terminal-body.global-terminal .terminal-hero-panel h1{
  color:#fff !important;
  font-size:clamp(3rem,5.5vw,6rem);
  line-height:.90;
  letter-spacing:-.075em;
  margin:1rem 0 1rem;
  max-width:720px;
}
body.terminal-body.global-terminal .terminal-hero-panel p{
  color:rgba(255,255,255,.78) !important;
  font-size:1.12rem;
  line-height:1.65;
  max-width:560px;
  margin:0;
}
body.terminal-body.global-terminal .terminal-card{
  color:#0f172a;
  background:rgba(255,255,255,.97) !important;
  border:1px solid rgba(255,255,255,.64) !important;
  border-radius:34px !important;
  box-shadow:0 34px 110px rgba(0,0,0,.24) !important;
  backdrop-filter:blur(20px);
  padding:clamp(1.35rem,2.5vw,2.2rem) !important;
}
body.terminal-body.global-terminal .terminal-card h2{
  color:#0f172a;
  font-size:clamp(2.4rem,4.3vw,4.8rem);
  line-height:.95;
  letter-spacing:-.075em;
  margin:.25rem 0 .65rem;
}
body.terminal-body.global-terminal .terminal-card p,
body.terminal-body.global-terminal .terminal-card .help{
  color:#64748b;
}
body.terminal-body.global-terminal .online-card-head{
  align-items:flex-start;
  margin-bottom:1.35rem;
}
body.terminal-body.global-terminal .terminal-program-grid{
  display:grid !important;
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr)) !important;
  gap:1rem !important;
}
body.terminal-body.global-terminal .program-card.selectable{
  min-height:280px;
  padding:1.25rem;
  border-radius:26px;
  background:linear-gradient(180deg,#ffffff 0%,#f8fbff 100%);
  border:1px solid rgba(15,23,42,.08);
  box-shadow:0 18px 48px rgba(15,23,42,.10);
}
body.terminal-body.global-terminal .program-card.selectable h3{
  color:#0f172a;
  font-size:1.55rem;
  letter-spacing:-.045em;
  line-height:1.08;
}
body.terminal-body.global-terminal .program-card.selectable p,
body.terminal-body.global-terminal .program-card.selectable small{
  color:#64748b;
}
body.terminal-body.global-terminal .program-card.selectable .progress{
  height:14px;
  background:#eaf1ff;
  margin-top:auto;
}
body.terminal-body.global-terminal .btn-soft{
  color:#1d4ed8;
  background:#eaf1ff;
  border-color:rgba(37,99,235,.16);
}
body.terminal-body.global-terminal .btn-primary{
  background:linear-gradient(135deg,var(--store-color,#2563eb),#06b6d4);
  color:#fff;
}
body.terminal-body.global-terminal .flash{
  position:fixed;
  top:1rem;
  left:50%;
  transform:translateX(-50%);
  width:min(720px,calc(100% - 2rem));
  z-index:9999;
  margin:0;
  border-radius:20px;
  box-shadow:0 22px 70px rgba(0,0,0,.24);
}
body.terminal-body.global-terminal .terminal-points-row{
  grid-template-columns:minmax(220px,280px) minmax(0,1fr) !important;
  gap:2rem !important;
}
body.terminal-body.global-terminal .terminal-progress-ring{
  width:240px;
  height:240px;
  margin:0 auto;
  box-shadow:0 24px 70px rgba(37,99,235,.18);
}
body.terminal-body.global-terminal .terminal-progress-ring>div{
  width:176px;
  height:176px;
}

/* Online-Storeseite optisch an Terminal/Kundenkonto angleichen */
body.online-body.global-online .online-shell{
  width:min(1220px,calc(100% - 2rem));
  padding:1rem 0 3rem;
}
body.online-body.global-online .online-hero-panel,
body.online-body.global-online .online-card{
  border-radius:34px;
  border:1px solid rgba(255,255,255,.62);
  box-shadow:0 30px 95px rgba(0,0,0,.24);
}
body.online-body.global-online .online-hero-panel{
  color:#fff;
  background:
    radial-gradient(circle at 18% 4%,rgba(255,255,255,.18),transparent 18rem),
    linear-gradient(135deg,#10182f,var(--store-color,#2563eb)) !important;
}
body.online-body.global-online .online-hero-panel h1,
body.online-body.global-online .online-hero-panel p,
body.online-body.global-online .online-brand-row strong{color:#fff;}
body.online-body.global-online .online-brand-row span{color:rgba(255,255,255,.72);}
body.online-body.global-online .online-card{
  background:rgba(255,255,255,.97);
  color:#0f172a;
}
body.online-body.global-online .online-card h2,
body.online-body.global-online .online-card h3{color:#0f172a;}
body.online-body.global-online .online-card p,
body.online-body.global-online .online-card .help{color:#64748b;}

@media (max-width:1100px){
  body.terminal-body.global-terminal .terminal-shell{grid-template-columns:1fr !important;}
  body.terminal-body.global-terminal .terminal-hero-panel{min-height:auto;}
  body.terminal-body.global-terminal .terminal-hero-panel .online-brand-row{margin-bottom:2rem;}
  body.terminal-body.global-terminal .terminal-points-row{grid-template-columns:1fr !important;}
  body.customer-app .customer-hero-card{grid-template-columns:1fr;}
  body.customer-app .customer-qr-large{max-width:360px;}
}
@media (max-width:680px){
  body.customer-app .customer-shell{width:min(100% - 1rem,1180px);padding-top:.75rem !important;}
  body.customer-app .customer-hero-card,
  body.customer-app .dashboard-card,
  body.terminal-body.global-terminal .terminal-hero-panel,
  body.terminal-body.global-terminal .terminal-card,
  body.online-body.global-online .online-hero-panel,
  body.online-body.global-online .online-card{border-radius:26px !important;}
  body.terminal-body.global-terminal .terminal-shell{width:min(100% - .7rem,1680px) !important;margin:.35rem auto !important;}
  body.terminal-body.global-terminal .terminal-hero-panel h1{font-size:2.75rem;}
  body.terminal-body.global-terminal .terminal-card h2{font-size:2.45rem;}
  body.terminal-body.global-terminal .terminal-program-grid{grid-template-columns:1fr !important;}
}
