/* Minimal, theme-friendly styles: inherits font and colours from the Hugo theme. */


.gb-booking { --gb-free:#16a34a; --gb-busy:#dc2626; --gb-mine:#2563eb; max-width:34rem;
            --gb-bg: #3B2A3F;
            --gb-fg: #F2E6C9; }
.gb-list { position:relative; max-height:70vh; overflow-y:auto; border:1px solid rgba(128,128,128,.35);
           border-radius:10px; padding:0 10px 10px; -webkit-overflow-scrolling:touch; 
           background:#3b2a3f;
        color: var(--gb-text);}
.gb-day { position:sticky; top:0; margin:0 -10px 8px; padding:10px; z-index:1; font-size:.95rem;
          background:#f2e6c9; color:#2B1F1A;
          border-bottom:1px solid rgba(128,128,128,.35); }
.gb-slot { display:flex; width:100%; justify-content:space-between; align-items:center; gap:10px;
           min-height:48px; margin:0 0 6px; padding:8px 12px; border-radius:8px; font:inherit; text-align:left;
           color:#F2E6C9; background:transparent; border:1px solid rgba(128,128,128,.35); box-sizing:border-box; }
.gb-time { font-variant-numeric:tabular-nums; white-space:nowrap; }
button.gb-slot { cursor:pointer; }
.gb-free { border-left:4px solid var(--gb-free); }
.gb-free .gb-state { color:var(--gb-free); }
.gb-booked { border-left:4px solid var(--gb-busy); background:rgba(220,38,38,.08); }
.gb-booked .gb-state { color:var(--gb-busy); }
.gb-mine { border:2px solid var(--gb-mine); background:rgba(37,99,235,.12); font-weight:600; }
.gb-past { opacity:.4; }
.gb-msg, .gb-note { opacity:.75; font-size:.9rem; }
.gb-err { color:var(--gb-busy); min-height:1.2em; font-size:.9rem; }
.gb-dialog { width:min(92vw,400px); border-radius:14px; padding:16px; border:1px solid rgba(128,128,128,.5);
             background:#3B2A3F; color:#F2E6C9; }
.gb-dialog::backdrop { background:rgba(0,0,0,.5); }
.gb-dialog label { display:block; margin:10px 0 4px; font-size:.9rem; }
.gb-dialog input { width:100%; box-sizing:border-box; font:inherit; padding:12px; border-radius:8px;
                   border:1px solid rgba(128,128,128,.6); background:transparent; color:inherit; }
.gb-dlg-title { margin:0 0 4px; }
.gb-code { font:700 2rem/1.2 ui-monospace,monospace; letter-spacing:.2em; text-align:center; margin:12px 0; }
.gb-actions { display:flex; gap:8px; margin-top:12px; }
.gb-btn { font:inherit; min-height:44px; padding:0 16px; border-radius:8px; cursor:pointer; color:inherit;
          background:transparent; border:1px solid rgba(128,128,128,.6); }
.gb-primary { flex:1; background:var(--gb-mine); border-color:var(--gb-mine); color:#fff; }
.gb-danger { color:var(--gb-busy); border-color:var(--gb-busy); }
.gb-btn:disabled { opacity:.6; }
