/* LuckyBite – Panel (Restaurant + Admin) v1.0.0 */
:root{--brand:#E8590C;--ink:#1d1915;--ink-2:#5f5750;--ink-3:#8b827a;--bg:#f5f2ed;--card:#fff;--line:#e7e1d8;--ok:#1f8a4c;--bad:#b4372a;--font:ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif}
*{box-sizing:border-box}
[hidden]{display:none!important}
body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.5 var(--font);-webkit-font-smoothing:antialiased}
a{color:inherit}
h1,h2{margin:0;line-height:1.25}
h2{font-size:17px;margin-bottom:12px}
img{max-width:100%}
.muted{color:var(--ink-3)}
.small{font-size:12.5px}
code{font-family:ui-monospace,Menlo,Consolas,monospace;font-weight:600}

/* Topbar */
.impersonate{background:#fff3bf;color:#5c4400;text-align:center;font-size:13px;padding:6px}
.topbar{background:var(--ink);color:#fff;position:sticky;top:0;z-index:10}
.topbar-in{max-width:1180px;margin:0 auto;display:flex;align-items:center;gap:18px;padding:0 16px;min-height:56px;flex-wrap:wrap}
.tb-brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-weight:700}
.tb-brand img{width:30px;height:30px;border-radius:8px;background:#fff;object-fit:contain}
.tb-nav{display:flex;gap:2px;flex:1;overflow-x:auto;scrollbar-width:none}
.tb-nav a{text-decoration:none;padding:8px 12px;border-radius:8px;color:#cfc7bf;white-space:nowrap;font-weight:500}
.tb-nav a:hover{color:#fff}
.tb-nav a.on{background:#3b342e;color:#fff}
.tb-right{display:flex;gap:4px;align-items:center}
.tb-small{font-size:13px;color:#cfc7bf;text-decoration:none;padding:6px 8px;border-radius:6px}
.tb-small:hover{color:#fff;background:#3b342e}
.admin .topbar{background:#14213d}
.admin .tb-nav a.on,.admin .tb-small:hover{background:#26375c}

.wrap{max-width:1180px;margin:0 auto;padding:24px 16px 40px}
.page-title{font-size:24px;margin-bottom:18px}
.page-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:18px}
.page-head .page-title{margin:0}
.pfoot{text-align:center;color:var(--ink-3);font-size:12px;padding:10px 0 30px}

.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:20px;margin-bottom:18px}
.card.empty{text-align:center;padding:36px 20px}
.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 18px}
.grid2.tight{gap:0 10px}
@media (max-width:760px){.grid2{grid-template-columns:1fr}.grid2.tight{grid-template-columns:1fr 2fr}}
.grid2>.card{margin-bottom:0}
.wrap>.grid2{margin-bottom:18px}

/* Alerts */
.alert{padding:11px 14px;border-radius:10px;margin-bottom:14px;font-weight:500}
.alert.ok{background:#e6f4ea;color:#1e6b3a}
.alert.error{background:#fde8e6;color:#8a2a1f}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:10px;padding:9px 16px;font:600 14px var(--font);text-decoration:none;cursor:pointer;min-height:40px}
.btn:hover{border-color:#cfc6ba}
.btn.primary{background:var(--brand);border-color:var(--brand);color:#fff}
.btn.primary:hover{filter:brightness(.95)}
.btn.danger{color:var(--bad);border-color:#f2c4be}
.btn.sm{padding:5px 10px;min-height:32px;font-size:13px}
.btn.big{min-height:52px;font-size:16px;padding:0 24px}
.btn.block{width:100%}

/* Forms */
.form label{display:flex;flex-direction:column;gap:5px;font-weight:600;font-size:13px;color:var(--ink-2);margin-bottom:12px}
.form .grid2 label{margin-bottom:0}
input,select,textarea{font:15px var(--font);padding:10px 12px;border-radius:10px;border:1px solid var(--line);background:#fff;color:var(--ink);width:100%}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 18%,transparent)}
input[type=color]{height:44px;padding:4px}
input[type=checkbox],input[type=radio]{width:auto;accent-color:var(--brand)}
input[type=file]{padding:8px;background:#faf8f5}
fieldset{border:1px solid var(--line);border-radius:12px;padding:14px;margin:4px 0 14px}
legend{font-weight:700;font-size:13px;padding:0 6px;color:var(--ink-2)}
.form .check,.check{flex-direction:row;align-items:center;gap:8px;font-weight:500;color:var(--ink);font-size:14px}
.checks{display:flex;flex-wrap:wrap;gap:6px 18px}
.checks .check{margin:0}
.form-actions{display:flex;gap:10px;align-items:center;margin-top:8px;flex-wrap:wrap}
.form.narrow{max-width:460px}
.inline-form{display:flex;gap:8px;align-items:center}
.inline-form input{flex:1}
.inline-form .sort{width:80px;flex:0 0 auto}
.grow{flex:1}
.danger-zone{margin:-4px 0 18px;text-align:right}
.radio-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
@media (max-width:760px){.radio-cards{grid-template-columns:1fr 1fr}}
.form .rc{flex-direction:row;margin:0;cursor:pointer}
.rc input{position:absolute;opacity:0}
.rc span{flex:1;text-align:center;border:1px solid var(--line);border-radius:10px;padding:12px 8px;font-weight:600;color:var(--ink-2)}
.rc input:checked+span{border-color:var(--brand);background:color-mix(in srgb,var(--brand) 9%,#fff);color:var(--ink)}
.rc input:focus-visible+span{box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 25%,transparent)}
.img-field{display:flex;flex-direction:column;gap:6px}
.img-field img{max-height:120px;width:auto;border-radius:10px;border:1px solid var(--line);align-self:flex-start;background:#faf8f5}
.hours-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 18px}
@media (max-width:760px){.hours-grid{grid-template-columns:1fr}}
.hours-grid label{flex-direction:row;align-items:center;margin:0}
.hours-grid span{width:100px;flex:0 0 auto}
.linkbox{display:flex;flex-direction:column;gap:2px}
.linkbox a{font-weight:600;word-break:break-all}

/* Tabellen */
.tbl{width:100%;border-collapse:collapse;font-size:14px}
.tbl th{text-align:left;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-3);font-weight:600;padding:8px 10px;border-bottom:1px solid var(--line)}
.tbl td{padding:10px;border-bottom:1px solid #f1ece5;vertical-align:middle}
.tbl tr:last-child td{border-bottom:0}
.tbl .num{text-align:right}
.tbl tr.hl td{background:#fff9db}
.nowrap{white-space:nowrap}
.card:has(.tbl){overflow-x:auto}
.badge{display:inline-block;font-size:12px;font-weight:600;padding:3px 9px;border-radius:999px;background:#f1ece5;color:var(--ink-2)}
.badge.ok{background:#e6f4ea;color:#1e6b3a}
.badge.bad{background:#fde8e6;color:#8a2a1f}

/* KPIs */
.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px}
@media (max-width:860px){.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
.kpi{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px}
.kpi span{display:block;font-size:13px;color:var(--ink-3);font-weight:500}
.kpi b{display:block;font-size:28px;letter-spacing:-.02em;margin-top:2px}
.kpi em{display:block;font-style:normal;font-size:12.5px;color:var(--ink-2);margin-top:2px}
.bars{display:flex;align-items:flex-end;gap:3px;height:140px;padding-top:6px}
.bar{flex:1;height:100%;display:flex;align-items:flex-end;background:#f6f3ee;border-radius:4px 4px 0 0}
.bar i{display:block;width:100%;background:var(--brand);border-radius:4px 4px 0 0;min-height:2px}
.bars-axis{display:flex;justify-content:space-between;font-size:12px;color:var(--ink-3);margin-top:6px}
.steps ol{margin:0;padding-left:20px}
.steps li{padding:4px 0}
.steps li.done{color:var(--ink-3);text-decoration:line-through}
.steps li a{font-weight:600}

/* Einlösen */
.redeem-form label{font-weight:700;font-size:13px;color:var(--ink-2)}
.row{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}
.redeem-form .row input{flex:1;min-width:180px;font:700 22px ui-monospace,Menlo,Consolas,monospace;letter-spacing:.08em;text-transform:uppercase;padding:12px 14px}
.redeem-form .row .btn{min-height:52px}
.coupon-result{border:2px solid var(--line);border-radius:14px;padding:18px;margin-top:6px}
.coupon-result.st-valid{border-color:var(--ok);background:#f4fbf6}
.coupon-result.st-expired{border-color:#f2c4be}
.cr-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.cr-head code{font-size:22px}
.cr-title{font-size:20px;font-weight:700;margin:8px 0 4px}
.coupon-result form{margin-top:12px}
.coupon-result label{display:flex;flex-direction:column;gap:4px;font-size:13px;font-weight:600;color:var(--ink-2)}

/* Speisekarte */
.cat-head{display:flex;gap:8px;align-items:center;margin-bottom:10px}
.cat-name{font-weight:700;font-size:16px}
.items{list-style:none;margin:0 0 12px;padding:0}
.items li{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid #f1ece5}
.items li.off{opacity:.45}
.items img,.items .noimg{width:52px;height:52px;border-radius:10px;object-fit:cover;flex:0 0 auto;background:#f6f3ee}
.it-main{flex:1;min-width:0;display:flex;flex-direction:column}
.it-main a{text-decoration:none}
.it-price{font-weight:700;white-space:nowrap}

/* Login */
.auth-body{min-height:100vh;display:grid;place-items:center;padding:20px}
.auth-card{width:100%;max-width:400px;background:#fff;border:1px solid var(--line);border-radius:18px;padding:30px 26px}
.auth-card h1{font-size:22px;margin:4px 0 18px}
.auth-card h1 small{font-size:13px;color:var(--ink-3);font-weight:500}
.brand-mark{font-weight:800;font-size:20px;letter-spacing:-.02em}
.brand-mark span{color:var(--brand)}
.lang-switch{text-align:center;font-size:13px;color:var(--ink-3);margin:14px 0 0}
.lang-switch a{text-decoration:none}
.lang-switch a.on{font-weight:700;color:var(--ink)}

/* v1.1.0 */
.radio-cards.three{grid-template-columns:repeat(3,1fr)}
@media (max-width:760px){.radio-cards.three{grid-template-columns:1fr}}
.rc span small{display:block;font-weight:400;font-size:12px;color:var(--ink-3);margin-top:2px}
.prize-box{margin-top:14px}
.prizes input,.prizes select{padding:7px 9px;font-size:14px}
.prizes .pw,.prizes input[name="prize_max[]"]{width:80px;text-align:right}
.prizes td{padding:6px}
.ref-col{display:flex;flex-direction:column;gap:6px}
.form .narrowl{max-width:260px;margin-top:12px}
.badge.gold{background:#fff3bf;color:#7a5410}
.keybox{background:#fff9db;border:1px solid #ffe066;border-radius:10px;padding:12px 14px;margin-bottom:12px}
.keybox code{display:block;font-size:15px;word-break:break-all;margin-top:4px;user-select:all}
.form-actions form{display:inline}

/* v1.2.0 */
.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 16px}
@media (max-width:760px){.grid3{grid-template-columns:1fr}}
.form .grid3 label{margin-bottom:0}
.sync-box .row label{display:flex;flex-direction:column;gap:5px;font-weight:600;font-size:13px;color:var(--ink-2);margin:0}
.it-badges{display:inline-flex;gap:4px;flex-wrap:wrap;margin-left:6px;vertical-align:middle}
.it-badges .badge{font-size:11px;padding:2px 7px}
.menu-cat.off{opacity:.55}
.shop-note{background:#f6f9ff;border-color:#d6e4ff}
.shop-note p{margin:0}
.vid-prev{max-width:260px;max-height:360px;border-radius:12px;background:#000;display:block;margin-bottom:8px}
.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}
.photo-grid .ph{border:1px solid var(--line);border-radius:12px;padding:8px;display:flex;flex-direction:column;gap:6px}
.photo-grid img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:8px}
.photo-grid .inline-form input{font-size:13px;padding:6px 8px}
.photo-grid .sort{width:60px}
.review-row{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid #f1ece5}
.stars{color:#e8a200;letter-spacing:1px}
.stars .muted{color:#ddd}
.pack{display:flex;flex-direction:column;gap:10px}
.pack-row{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 0;border-bottom:1px solid #f1ece5}
.pack-row:last-child{border-bottom:0}
.pack-row .btns{display:flex;gap:6px;flex-wrap:wrap}
.printer-mail{background:#faf8f5;border:1px solid var(--line);border-radius:10px;padding:12px;white-space:pre-wrap;font-size:13px}

/* v1.3.0 – KI-Import */
.ai-tips{margin:0 0 14px;padding-left:18px}
.drop{position:relative;display:block;border:2px dashed var(--line);border-radius:14px;padding:28px 16px;text-align:center;cursor:pointer;background:#fcfbf9;margin-bottom:12px}
.drop:hover{border-color:var(--brand)}
.drop input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%}
.drop-in{display:flex;flex-direction:column;align-items:center;gap:6px;color:var(--ink-2);pointer-events:none}
.drop-in svg{color:var(--brand)}
.ai-wait{display:flex;gap:12px;align-items:center;margin-top:14px;padding:14px;border-radius:12px;background:#fff9db}
.spin{width:26px;height:26px;border-radius:50%;border:3px solid #f1e3b0;border-top-color:var(--brand);animation:sp 1s linear infinite;flex:0 0 auto}
@keyframes sp{to{transform:rotate(360deg)}}
.tbl-scroll{overflow-x:auto;margin:0 -20px 14px;padding:0 20px}
.ai-tbl input{padding:6px 8px;font-size:14px}
.ai-tbl .w-cat{width:140px}.ai-tbl .w-name{width:200px}.ai-tbl .w-desc{min-width:240px}.ai-tbl .w-sizes{width:210px}.ai-tbl .w-price{width:90px;text-align:right}
.ai-tbl tr.ai-cat td{background:#faf8f5;font-weight:700;padding-top:14px}
.ai-tbl tr.warn td{background:#fff9db}
.ai-empty{padding:30px 20px}
.ai-empty h2{margin-bottom:6px}

/* v1.4.0 – Bestellung & Rechnungen */
.radio-cards.two{grid-template-columns:repeat(2,1fr)}
@media (max-width:760px){.radio-cards.two{grid-template-columns:1fr}}
.price-box{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap;background:#faf8f5;border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin:6px 0 14px}
.price-box b{display:block;font-size:26px;letter-spacing:-.02em}
.price-box span{display:block}
.lock-box{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;background:#fff9db;border-color:#ffe066}
.pack.is-locked .btns .btn[aria-disabled]{opacity:.5;cursor:not-allowed}
.pay-opt{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:14px 0;border-bottom:1px solid #f1ece5}
.pay-opt:last-of-type{border-bottom:0}
.big-badge{font-size:14px;padding:6px 14px}
.plan-box{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}
.plan-box h2{margin:2px 0 4px;font-size:22px}
.plan-price b{font-size:26px}
.nav-count{display:inline-block;min-width:18px;padding:0 5px;border-radius:9px;background:var(--brand);color:#fff;font-size:11px;line-height:18px;text-align:center}
a.badge{text-decoration:none}
.tier-tbl input{width:110px;text-align:right;padding:7px 9px}
.plan-rows input,.plan-rows textarea{padding:7px 9px;font-size:14px}
/* Menü mit vielen Punkten: umbrechen statt abschneiden */
.tb-nav{flex-wrap:wrap;overflow:visible;padding:6px 0}
.tb-nav a{padding:7px 10px}
@media (max-width:1400px){.tb-right .tb-small:first-child{display:none}}
/* v1.5.0 LuckyBite */
.brand-mark .brand-logo{display:block;height:40px;width:auto;margin:0 auto 6px}
.tb-brand img.tb-mark{width:28px;height:28px;background:transparent;border-radius:0}
.pfoot img{height:18px;width:auto}
/* v1.6.0 Registrierung */
.badge.info{background:#e7f0fd;color:#1c4f9c}
.badge.new{background:var(--brand);color:#fff}
.filters a{text-decoration:none;color:var(--ink-2);font-weight:600}
.filters a.on{color:var(--brand)}
.auth-card.wide{max-width:520px}
.auth-alt{text-align:center;margin:16px 0 0;font-size:14px}
.auth-alt a{font-weight:700;color:var(--brand)}
.check{display:flex!important;gap:10px;align-items:flex-start;font-weight:400!important;font-size:14px}
.check input{width:20px!important;height:20px;margin-top:2px;flex:0 0 auto}
.hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.paused-bar{background:#fde8e6;color:#8a2a1f;text-align:center;padding:10px 16px;font-size:14px;font-weight:600}
.reg-points{list-style:none;padding:0;margin:0 0 14px;font-size:14px;color:var(--ink-2)}
.reg-points li{padding:3px 0 3px 24px;position:relative}
.reg-points li:before{content:"✓";position:absolute;left:0;color:#1e6b3a;font-weight:800}
.reg-pair{gap:0 10px}.auth-card .grid2.tight label,.auth-card .grid2 label{margin-bottom:14px}@media (max-width:760px){.reg-pair{grid-template-columns:1fr}}.nowrap{white-space:nowrap}
/* v1.7.0 Online-Shop */
.shop-teaser{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;border:2px dashed color-mix(in srgb,var(--brand) 45%,#fff);background:color-mix(in srgb,var(--brand) 5%,#fff)}
.shop-teaser p{margin:4px 0 0;max-width:640px}
.shop-offer{display:grid;grid-template-columns:1fr 220px;gap:24px;align-items:start}
.shop-offer .lead{font-size:16px;margin:0 0 14px}
.shop-price{text-align:center;background:color-mix(in srgb,var(--brand) 7%,#fff);border-radius:14px;padding:22px 14px;display:flex;flex-direction:column;gap:4px}
.shop-price b{font-size:30px;color:var(--brand)}
@media (max-width:760px){.shop-offer{grid-template-columns:1fr}}
.offer-toggle{font-weight:700;min-width:46px}.offer-toggle.on{background:#fff3bf;border-color:#e9c46a;color:#7a5410}
/* v1.7.4 Mehrfachauswahl */
.menu-tools{display:flex;flex-wrap:wrap;align-items:center;gap:8px 20px;margin:0 0 12px;padding:10px 14px;background:#fff;border:1px solid var(--line);border-radius:12px}
.menu-tools .check{margin:0}
.items li .pick,.cat-head .pick-cat{width:20px;height:20px;flex:0 0 auto;accent-color:var(--brand);cursor:pointer}
.cat-head .pick-cat{margin-right:8px}
body.only-offers .items li:not(.is-offer){display:none}
body.only-offers .menu-cat:not(:has(li.is-offer)){display:none}
.bulk-bar{position:fixed;left:50%;bottom:16px;transform:translateX(-50%);z-index:50;display:flex;flex-wrap:wrap;align-items:center;gap:8px;max-width:calc(100% - 24px);background:var(--ink);color:#fff;padding:10px 14px;border-radius:14px;box-shadow:0 12px 30px rgba(0,0,0,.25)}
.bulk-bar[hidden]{display:none}
.bulk-bar .btn{background:#fff;color:var(--ink);border-color:#fff}
.bulk-bar .btn.ghost{background:transparent;color:#fff;border-color:#ffffff55}
.link-ok{display:block;color:#1e6b3a;font-weight:600;margin-top:3px}.link-no{display:block;color:#8a5a00;margin-top:3px}
/* v1.9.0 KI-Bilder */
.img-styles{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 14px}
.img-styles .rc span{padding:10px 14px}
.img-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(420px,1fr));gap:16px}
.img-grid.small{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}
.img-grid.small img{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:10px}
.img-card{margin:0}
.img-head{display:flex;flex-direction:column;gap:2px;margin-bottom:10px}
.img-pair{display:grid;grid-template-columns:1fr 2fr;gap:10px;align-items:start}
.img-pair figure{margin:0}
.img-pair img,.img-empty{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:10px;background:#f6f3ee;display:grid;place-items:center;font-size:30px;color:#bbb}
.img-pair figcaption{font-size:12px;color:var(--ink-3);margin-top:4px}
.img-card.busy .img-new .img-empty{animation:imgPulse 1.2s ease-in-out infinite}
.img-card.accepted{outline:2px solid #1e6b3a}
.js-status.err{color:#8a2a1f;font-weight:600}
@keyframes imgPulse{50%{opacity:.45}}
@media (max-width:600px){.img-grid{grid-template-columns:1fr}.img-pair{grid-template-columns:1fr 1.6fr}}
.img-styles .rc{position:relative;display:flex;cursor:pointer}.img-styles .rc input:checked+span{border-color:var(--brand);color:var(--brand);background:color-mix(in srgb,var(--brand) 6%,#fff)}
