:root{
  --bg:#f5f2ea; --card:#fffdf8; --ink:#1f2a20; --muted:#5f6b5f; --line:#e3ddcf;
  --green:#2f6b3a; --green-soft:#e4efe3; --amber:#b9672a; --amber-soft:#f8e9d9;
  --red:#a8322a; --red-soft:#f7e1de; --blue:#2c5d86; --blue-soft:#e1ebf4;
  --r:12px;
}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.5 system-ui,-apple-system,'Segoe UI',Roboto,sans-serif}
h1,h2,h3{font-family:Georgia,'Times New Roman',serif;font-weight:650;margin:0;line-height:1.2}
h2{font-size:1.35rem;margin:4px 0 12px}
h3{font-size:1.05rem}
.wrap{max-width:1000px;margin:0 auto;padding:16px 16px 48px}
header.top{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:12px}
header.top h1{font-size:1.6rem;color:var(--green)}
header.top .sub{color:var(--muted);font-size:.9rem}
.roles{display:flex;gap:6px;overflow-x:auto;padding-bottom:4px;margin-bottom:10px;scrollbar-width:none}
.roles button{flex:0 0 auto}
button,.btn{font:inherit;font-weight:500;border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:999px;padding:7px 14px;cursor:pointer;white-space:nowrap}
button:hover{border-color:#cfc7b4}
button.on{background:var(--green);border-color:var(--green);color:#fff}
button.primary{background:var(--green);border-color:var(--green);color:#fff;border-radius:8px}
button.warn{background:var(--red);border-color:var(--red);color:#fff;border-radius:8px}
button.ghost{border-radius:8px}
button.small{padding:4px 10px;font-size:.85rem}
.bar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:14px}
.bar label{font-size:.85rem;color:var(--muted)}
select,input,textarea{font:inherit;color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:8px;padding:7px 9px;width:100%}
textarea{min-height:64px}
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:16px;overflow-x:auto}
.tabs button{border:none;border-radius:0;background:none;padding:9px 12px;color:var(--muted);border-bottom:2px solid transparent}
.tabs button.on{color:var(--green);border-bottom-color:var(--green);background:none}
.tabs .count{display:inline-block;min-width:18px;padding:0 5px;margin-left:4px;border-radius:9px;background:var(--amber);color:#fff;font-size:.75rem;line-height:18px;text-align:center}
.grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(270px,1fr))}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:14px}
.card + .card{margin-top:0}
.stack > * + *{margin-top:12px}
.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.between{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}
.muted{color:var(--muted)}
.small{font-size:.85rem}
.price{font-weight:600;font-size:1.05rem}
.badge{display:inline-block;font-size:.75rem;font-weight:600;padding:2px 8px;border-radius:999px;background:var(--green-soft);color:var(--green)}
.badge.none{background:#eeeae0;color:var(--muted)}
.badge.amber{background:var(--amber-soft);color:var(--amber)}
.badge.blue{background:var(--blue-soft);color:var(--blue)}
.badge.red{background:var(--red-soft);color:var(--red)}
.form{display:grid;gap:8px;grid-template-columns:1fr 1fr}
.form .full{grid-column:1/-1}
.form label{display:block;font-size:.8rem;color:var(--muted);margin-bottom:2px}
.chk{display:flex;align-items:center;gap:8px;font-size:.9rem}
.chk input{width:auto}
.chg-fields{display:none;grid-column:1/-1;grid-template-columns:1fr 1fr;gap:8px;padding:10px;border:1px dashed var(--line);border-radius:8px;background:#fbf9f3}
input.mc:checked ~ .chg-fields{display:grid}
details > summary{cursor:pointer;color:var(--green);font-weight:500;margin-top:8px;list-style:none}
details > summary::-webkit-details-marker{display:none}
details > summary::before{content:"+ "}
details[open] > summary::before{content:"– "}
details[open] > summary{margin-bottom:8px}
table{width:100%;border-collapse:collapse;font-size:.9rem}
th,td{text-align:left;padding:7px 6px;border-bottom:1px solid var(--line);vertical-align:top}
th{font-weight:600;color:var(--muted);font-size:.8rem}
.alert{border-radius:var(--r);padding:12px 14px;margin-bottom:14px;font-size:.92rem}
.alert.red{background:var(--red-soft);color:var(--red);border:1px solid #e9c3bd}
.alert.info{background:var(--blue-soft);color:var(--blue);border:1px solid #c9d9e8}
.alert.amber{background:var(--amber-soft);color:#8a4b1c;border:1px solid #ecd2b6}
.timeline{list-style:none;margin:8px 0 0;padding:0 0 0 14px;border-left:2px solid var(--line)}
.timeline li{position:relative;padding:0 0 10px 10px}
.timeline li::before{content:"";position:absolute;left:-20px;top:6px;width:10px;height:10px;border-radius:50%;background:var(--green)}
.timeline li.log::before{background:var(--blue)}
.timeline li.rec::before{background:var(--red)}
.qr{background:#fff;padding:8px;border-radius:8px;border:1px solid var(--line);display:inline-block;line-height:0}
.qr img,.qr canvas{width:112px;height:112px}
.flash{position:fixed;left:50%;bottom:18px;transform:translateX(-50%);background:var(--ink);color:#fff;padding:9px 16px;border-radius:999px;font-size:.9rem;z-index:10;box-shadow:0 4px 16px rgba(0,0,0,.2)}
footer{margin-top:32px;padding-top:14px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;color:var(--muted);font-size:.85rem}
/* Gästeansicht */
.guest{max-width:460px;margin:0 auto}
.guest .hero{background:var(--green);color:#fff;border-radius:16px;padding:20px 18px;margin-bottom:14px}
.guest .hero h2{color:#fff;font-size:1.5rem;margin:4px 0}
.guest .hero p{margin:0;opacity:.9}
.ingr h3{font-size:1.15rem}
.kv{display:grid;grid-template-columns:auto 1fr;gap:3px 12px;font-size:.9rem;margin-top:8px}
.kv dt{color:var(--muted)}
.kv dd{margin:0}
.count{display:inline-block;min-width:18px;padding:0 5px;margin-left:4px;border-radius:9px;background:var(--amber);color:#fff;font-size:.75rem;line-height:18px;text-align:center}
.userbar{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;background:var(--green-soft);border-radius:10px;padding:8px 12px;margin-bottom:10px;font-size:.9rem}
.authcard{max-width:480px;margin:10px auto}
.linkbtn{border:none;background:none;padding:0;color:var(--green);text-decoration:underline;font-weight:500}
.secret{display:inline-block;margin-top:4px;padding:6px 8px;background:#fff;border:1px solid var(--line);border-radius:6px;font-size:.85rem;word-break:break-all}
.matrix td,.matrix th{white-space:nowrap}
.matrix td:first-child{white-space:normal;min-width:180px}
.matrix .grp{font-weight:600;color:var(--green);background:#f6f3ea;padding-top:10px}
.empty{padding:28px;text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:var(--r)}
@media (max-width:560px){.form{grid-template-columns:1fr}.chg-fields{grid-template-columns:1fr}}

.qr img{width:112px;height:112px;display:block}
.label{max-width:420px;margin:0 auto;border:2px solid var(--ink);border-radius:12px;padding:16px;background:#fff}
.label h2{margin:0 0 4px}
.label .row{align-items:flex-start;gap:14px;flex-wrap:nowrap}
.label img{width:140px;height:140px;flex:0 0 auto}
.mono{font-family:ui-monospace,Menlo,Consolas,monospace}
a.btn{display:inline-block;text-decoration:none}
@media print{.noprint,footer,header.top,.userbar,nav.roles,#flash{display:none!important}body{background:#fff}.wrap{padding:0}.label{border-width:1px;page-break-inside:avoid}}
