:root{--bg: #f6f5f1;--surface: #ffffff;--surface-2: #f1efe8;--text: #1f1e1c;--text-2: #5f5e5a;--text-3: #888780;--border: #e2e0d8;--border-strong: #c9c7be;--yellow: #ef9f27;--yellow-bg: #faeeda;--yellow-fg: #633806;--blue: #378add;--blue-bg: #e6f1fb;--blue-fg: #0c447c;--ok-bg: #eaf3de;--ok-fg: #27500a;--bad-bg: #fcebeb;--bad-fg: #a32d2d;--wait-bg: #faeeda;--wait-fg: #854f0b;--primary: #1f1e1c;--on-primary: #ffffff;--radius: 8px;color-scheme:light}@media (prefers-color-scheme: dark){:root{--bg: #1a1a19;--surface: #242422;--surface-2: #2c2c2a;--text: #f1efe8;--text-2: #b4b2a9;--text-3: #888780;--border: #3a3a37;--border-strong: #55554f;--yellow-bg: #4a3410;--yellow-fg: #fac775;--blue-bg: #10304f;--blue-fg: #b5d4f4;--ok-bg: #213812;--ok-fg: #c0dd97;--bad-bg: #4a1b1b;--bad-fg: #f7c1c1;--wait-bg: #4a3410;--wait-fg: #fac775;--primary: #f1efe8;--on-primary: #1f1e1c;color-scheme:dark}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}h1,h2{font-weight:600;margin:0}h1{font-size:20px;display:flex;align-items:center;gap:10px}h2{font-size:16px}a{color:var(--blue)}.page{max-width:960px;margin:0 auto;padding:16px}.page.narrow{max-width:480px}.muted{color:var(--text-2)}.small{font-size:13px}.error{color:var(--bad-fg);background:var(--bad-bg);padding:8px 12px;border-radius:var(--radius);font-size:14px}.warn{color:var(--wait-fg);font-size:14px;margin:8px 0 0}button,.button,select,input{font:inherit;color:inherit;border-radius:var(--radius);border:1px solid var(--border-strong);background:var(--surface);min-height:36px}button,.button{padding:6px 14px;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}button:hover,.button:hover{background:var(--surface-2)}button:disabled{opacity:.6;cursor:wait}button.primary,.button.primary{background:var(--primary);color:var(--on-primary);border-color:transparent}button.danger{color:var(--bad-fg)}button.ghost{border:none;background:transparent;min-height:28px;padding:4px 8px}button.link{border:none;background:none;color:var(--blue);padding:0;min-height:0;text-decoration:underline}select,input{padding:6px 10px;width:100%}.top{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:16px}.logo{width:22px;height:22px;border-radius:50%;background:linear-gradient(90deg,var(--yellow) 50%,var(--blue) 50%)}.datenav{display:flex;align-items:center;gap:6px}.datepick{position:relative;font-weight:600;padding:0 6px;cursor:pointer}.datepick input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.status{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:12px}.status-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:12px 14px}.status-room{display:flex;align-items:center;gap:8px;font-weight:600;margin-bottom:6px}.status-line{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:14px;color:var(--text-2)}.dot{width:10px;height:10px;border-radius:50%;display:inline-block;flex-shrink:0}.pill{font-size:12px;font-weight:600;padding:2px 10px;border-radius:999px}.pill.free{background:var(--ok-bg);color:var(--ok-fg)}.pill.busy{background:var(--bad-bg);color:var(--bad-fg)}.pill.wait{background:var(--wait-bg);color:var(--wait-fg)}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin:8px 0 12px;font-size:14px}.switch{display:flex;align-items:center;gap:8px;cursor:pointer;color:var(--text-2)}.switch input{width:18px;min-height:18px;height:18px}.grid{display:grid;grid-template-columns:52px minmax(0,1fr) minmax(0,1fr);background:var(--surface);border:1px solid var(--border);border-radius:12px;overflow:hidden}.corner{border-bottom:1px solid var(--border)}.room-head{display:flex;align-items:center;justify-content:center;gap:8px;padding:10px 6px;font-weight:600;border-left:1px solid var(--border);border-bottom:1px solid var(--border);border-top:4px solid}.time{height:var(--row);font-size:11px;color:var(--text-3);text-align:right;padding-right:6px;transform:translateY(-7px)}.col{position:relative;border-left:1px solid var(--border)}.slot{height:var(--row);border-bottom:1px dashed var(--border);cursor:pointer}.slot.off{background:var(--surface-2)}.slot:hover{background:color-mix(in srgb,var(--blue) 12%,transparent)}.past{position:absolute;left:0;right:0;top:0;background:color-mix(in srgb,var(--text) 5%,transparent);pointer-events:none;z-index:1}.now{position:absolute;left:0;right:0;border-top:2px solid var(--bad-fg);z-index:3;pointer-events:none}.now:before{content:"";position:absolute;left:-4px;top:-5px;width:8px;height:8px;border-radius:50%;background:var(--bad-fg)}.booking{position:absolute;left:4px;right:4px;z-index:2;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;min-height:0;padding:3px 8px;border-radius:6px;text-align:left;font-size:12px;line-height:1.35;overflow:hidden}.booking strong{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.booking span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.booking.compact{flex-direction:row;gap:6px;align-items:center;padding:0 8px}.booking.compact span{display:none}.booking.yellow{background:var(--yellow-bg);color:var(--yellow-fg);border:1px solid var(--yellow)}.booking.blue{background:var(--blue-bg);color:var(--blue-fg);border:1px solid var(--blue)}.booking.yellow:hover,.booking.blue:hover{filter:brightness(.97)}.booking.selected{outline:2px solid var(--text);outline-offset:1px}.panel{margin-top:16px;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:16px}.panel p{margin:0}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:12px}.fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;margin-bottom:10px}.fields label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--text-2)}.fields label.wide{grid-column:1 / -1}.actions{display:flex;gap:8px;margin-top:12px}.meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap;color:var(--text-2);margin:4px 0!important}.cancel{display:flex;gap:8px;margin-top:12px;max-width:280px}.cancel input{width:90px}.done{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.foot{margin-top:24px;font-size:13px;text-align:center}.checkin-head{display:flex;justify-content:space-between;align-items:center;padding:20px;border-radius:12px;color:#fff}.checkin-head h1{font-size:24px}.checkin-head span{font-size:20px;font-weight:600}.checkin-body{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:20px;margin-top:12px;display:flex;flex-direction:column;gap:10px}.checkin-body h2{font-size:20px}.checkin-body p{margin:0}.big{min-height:52px;font-size:17px;font-weight:600;width:100%}.big-ok,.big-free{font-size:20px;font-weight:600;color:var(--ok-fg)}.qr-sheet{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px}.qr-card{border:6px solid;border-radius:16px;overflow:hidden;text-align:center;background:#fff;color:#1f1e1c;padding-bottom:16px}.qr-title{color:#fff;font-size:32px;font-weight:700;padding:16px}.qr-card img{width:80%;max-width:320px;margin:16px auto 8px;display:block}.qr-card p{margin:0 16px 4px;font-size:15px}.qr-card small{color:#5f5e5a}@media (max-width: 560px){.page{padding:12px}.status{grid-template-columns:1fr}.grid{grid-template-columns:40px minmax(0,1fr) minmax(0,1fr)}.booking span{display:none}}@media print{.no-print{display:none}body{background:#fff}.qr-card{break-inside:avoid}}
