:root{
  --bg:#0b0b0d;--card:#17171b;--card2:#111115;--text:#f4f1e9;--muted:#aaa69e;
  --line:#ffffff1f;--red:#ec5845;--gold:#c7a261;--green:#63c28f;--max:1160px;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--text);font-family:Montserrat,sans-serif;line-height:1.55;min-height:100vh}
button,input{font:inherit}
button{color:inherit}
.ambient{position:fixed;inset:0;pointer-events:none;background:radial-gradient(circle at 90% 5%,#ec58452d,transparent 29rem),radial-gradient(circle at 10% 88%,#c7a26114,transparent 28rem);z-index:-2}
.wrap{width:min(calc(100% - 2rem),var(--max));margin:auto}
.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.eyebrow{color:var(--gold);font-size:.73rem;font-weight:800;letter-spacing:.17em;text-transform:uppercase;margin:0 0 .8rem}
.lead{font-size:clamp(1rem,2vw,1.18rem);color:#d4d0c7;max-width:62ch}
h1,h2,h3{font-family:Oswald,sans-serif;text-transform:uppercase;letter-spacing:-.025em;line-height:.98;margin:0}
h1{font-size:clamp(3.2rem,10vw,6.5rem)}
h1 span,h2 span{color:var(--red)}
h2{font-size:clamp(2.9rem,7vw,6rem);max-width:15ch}
h3{font-size:clamp(1.8rem,4vw,3rem)}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:.78rem 1.15rem;border-radius:999px;border:1px solid var(--line);background:transparent;text-decoration:none;font-weight:800;cursor:pointer;transition:.18s ease;white-space:nowrap}
.btn:hover{transform:translateY(-2px);border-color:#ffffff50}
.btn:focus-visible,input:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
.btn.primary{background:var(--red);border-color:var(--red);color:#fff}
.btn.ghost{background:#ffffff0b}
.btn.small{min-height:38px;padding:.55rem .85rem;font-size:.78rem}
.brandline{display:flex;align-items:center;gap:.75rem;font-family:Oswald,sans-serif;font-size:1.12rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em}
.brandline.compact{font-size:1rem}
.brand-logo{width:52px;height:52px;object-fit:cover;border-radius:10px;box-shadow:0 10px 30px #0008;flex:0 0 auto}
.brandline.compact .brand-logo{width:42px;height:42px;border-radius:8px}
.login-shell{min-height:100svh;display:grid;place-items:center;padding:2rem 1rem}
.login-card{width:min(100%,620px);padding:clamp(1.4rem,5vw,3rem);border:1px solid var(--line);border-radius:24px;background:linear-gradient(135deg,#ec58451a,transparent 42%),#111115e8;box-shadow:0 25px 80px #0008;backdrop-filter:blur(16px)}
.login-card .brandline{margin-bottom:3rem}
.login-card .lead{margin:1.3rem 0 2rem}
.login-form{display:grid;gap:1rem}
.login-form label{display:grid;gap:.45rem}
.login-form label>span{font-size:.75rem;text-transform:uppercase;letter-spacing:.11em;color:var(--muted);font-weight:800}
.login-form input,.searchbox input{width:100%;border:1px solid var(--line);border-radius:14px;background:#ffffff0a;color:var(--text);padding:.9rem 1rem;min-height:52px}
.login-form input::placeholder,.searchbox input::placeholder{color:#77736c}
.form-error{min-height:1.5em;margin:0;color:#ff8b7a;font-size:.87rem;font-weight:700}
.privacy-note{margin:1rem 0 0;color:#77736c;font-size:.74rem}
.site-head{position:sticky;top:0;z-index:20;background:#0b0b0ddd;backdrop-filter:blur(16px);border-bottom:1px solid var(--line)}
.nav{height:72px;display:flex;align-items:center;justify-content:space-between;gap:1rem}
.stats{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;margin-top:2.5rem}
.stat{padding:1.25rem;border:1px solid var(--line);border-radius:18px;background:#ffffff07}
.stat strong{display:block;font:700 clamp(2rem,5vw,3rem)/1 Oswald;color:var(--gold)}
.stat span{display:block;margin-top:.45rem;font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-weight:800}
.score-section{padding:clamp(4rem,8vw,7rem) 0}
.headrow{display:flex;align-items:end;justify-content:space-between;gap:2rem;margin-bottom:1.7rem}
.list-note{margin:.8rem 0 0;color:var(--muted);font-size:.9rem}
.searchbox{width:min(100%,320px)}
.table-wrap{border:1px solid var(--line);border-radius:20px;overflow:hidden;background:var(--card2);box-shadow:0 20px 50px #0004}
table{width:100%;border-collapse:collapse}
th,td{padding:1rem 1.1rem;border-bottom:1px solid var(--line);text-align:left}
th{font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);background:#ffffff08}
tbody tr:last-child td{border-bottom:0}
tbody tr{transition:.15s ease}
tbody tr:hover{background:#ffffff08}
td.name{font-weight:800}
.num{text-align:right;font-variant-numeric:tabular-nums}
td.beers{font:700 1.25rem Oswald;color:var(--gold)}
td.amount{font-weight:800}
.rank{width:70px;color:var(--muted);font:700 1.1rem Oswald}
.rank.top{color:var(--red);font-size:1.35rem}
.action{text-align:right}
.pay-btn{min-width:138px;background:var(--red);border-color:var(--red);color:#fff}
.pay-btn:hover{background:#f16350}
.paid-zero,.paid-label{display:inline-flex;justify-content:center;min-width:138px;font-size:.78rem;font-weight:800}
.paid-zero{color:var(--muted)}
.paid-label{color:var(--green)}
.paid-row .name,.paid-row .beers,.paid-row .amount{text-decoration:line-through;opacity:.55}
.guest-row{background:#c7a2610c}
.guest-label{color:var(--gold);font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;font-weight:800}
.empty-state{text-align:center;padding:2rem;color:var(--muted)}
.payment-card{margin-top:2rem;border:1px solid var(--line);border-radius:20px;padding:clamp(1.4rem,4vw,2.2rem);background:linear-gradient(115deg,#ec58451f,transparent 45%),var(--card);display:grid;grid-template-columns:1.2fr .8fr;gap:2rem;align-items:center}
.payment-card p{color:var(--muted);max-width:60ch}
.iban-box{border:1px solid var(--line);border-radius:16px;padding:1rem;background:#0b0b0d88;display:grid;gap:.55rem}
.iban-box>span{font-size:.68rem;text-transform:uppercase;letter-spacing:.12em;color:var(--gold);font-weight:800}
.iban-box strong{font-size:clamp(1rem,2.5vw,1.25rem);letter-spacing:.04em;word-break:break-word}
.cash-note{grid-column:1/-1;margin:0;padding-top:1.2rem;border-top:1px solid var(--line)}
.cash-note strong{color:var(--red)}
footer{padding:2rem 0 3rem;border-top:1px solid var(--line)}
.bottom{display:flex;justify-content:space-between;gap:1rem;color:#77736c;font-size:.76rem}
@media(max-width:760px){
  .nav{height:64px}
  .nav .btn.small{min-height:44px}
  .stats{grid-template-columns:1fr}
  .score-section{padding:2rem 0 3.5rem}
  .headrow{align-items:stretch;flex-direction:column;gap:1rem;margin-bottom:1rem}
  .searchbox{width:100%}
  .table-wrap{border-radius:16px;background:transparent;border:0;box-shadow:none;overflow:visible}
  table,thead,tbody,tr,th,td{display:block}
  thead{display:none}
  tbody{display:grid;gap:.8rem}
  tbody tr{border:1px solid var(--line);border-radius:16px;background:var(--card);padding:.95rem;display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:.45rem .7rem;align-items:center}
  tbody tr:hover{background:var(--card)}
  td{border:0;padding:0}
  td.rank{grid-row:1/3;grid-column:1;font-size:1.45rem}
  td.name{grid-column:2/4;font-size:1rem;overflow-wrap:anywhere}
  td.beers{grid-column:2;text-align:left;font-size:1.2rem}
  td.beers:after{content:" Bier";font:700 .72rem Montserrat;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}
  td.amount{grid-column:3;text-align:right}
  td.action{grid-column:1/4;margin-top:.5rem}
  td.action .btn,.paid-zero,.paid-label{width:100%;min-width:0}
  .payment-card{grid-template-columns:1fr}
  .cash-note{grid-column:auto}
  .bottom{flex-direction:column}
}
@media(max-width:420px){
  .login-card{border-radius:18px}
  .login-card .brandline{margin-bottom:2rem}
  .brandline.compact span:last-child{font-size:.9rem}
}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
