:root{--bg: #0f172a;--panel: #1e293b;--panel-2: #273449;--text: #e2e8f0;--muted: #94a3b8;--accent: #38bdf8;--accent-2: #0ea5e9;--danger: #f87171;--ok: #4ade80;--border: #334155;--radius: 12px}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--text);line-height:1.45}h1,h2,h3{margin:0}.muted{color:var(--muted);font-size:.9rem}.center{display:grid;place-items:center;min-height:60vh}.app{max-width:1100px;margin:0 auto;padding:1rem}.topbar{display:flex;justify-content:space-between;align-items:center;padding:1rem 0 1.25rem;border-bottom:1px solid var(--border);margin-bottom:1.5rem}.brand{display:flex;gap:.75rem;align-items:center}.brand h1{font-size:1.25rem}.logo{font-size:1.75rem}.user{display:flex;gap:.75rem;align-items:center}.card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem}form{display:flex;flex-direction:column;gap:.85rem}label{display:flex;flex-direction:column;gap:.3rem;font-size:.85rem;color:var(--muted)}.row{display:flex;gap:.75rem}.row label{flex:1}input,select{background:var(--panel-2);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:.6rem .7rem;font-size:.95rem}input:focus,select:focus{outline:2px solid var(--accent);border-color:transparent}button{cursor:pointer;border:none;border-radius:8px;padding:.65rem 1rem;font-size:.95rem;font-weight:600;background:var(--accent-2);color:#04121c;transition:filter .15s}button:hover:not(:disabled){filter:brightness(1.1)}button:disabled{opacity:.55;cursor:not-allowed}button.ghost{background:transparent;color:var(--text);border:1px solid var(--border)}button.link{background:none;color:var(--accent);padding:0;font-weight:500;width:auto;font-size:.85rem}button.cancel{color:var(--danger)}.error{color:var(--danger);font-size:.85rem;margin:0}.info{color:var(--ok);font-size:.85rem;margin:0}.auth{max-width:380px;margin:3rem auto}.auth h2{margin-bottom:1rem}.switch{margin-top:1rem;text-align:center}.hint-small{font-size:.72rem;margin-top:.1rem}.booking{display:flex;flex-direction:column;gap:1rem}.toolbar{display:flex;align-items:center;gap:1.25rem;flex-wrap:wrap}.date-field{flex-direction:row;align-items:center;gap:.5rem;color:var(--text)}.date-field input{padding:.45rem .6rem}.hint{max-width:520px;margin:0}.toolbar-error{margin:0}.grid-scroll{max-height:72vh;overflow:auto;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel)}.grid{border-collapse:collapse;width:100%;font-size:.8rem}.grid th,.grid td{border:1px solid var(--border)}.grid thead th{position:sticky;top:0;z-index:3;background:var(--panel-2);padding:.5rem .6rem;text-align:left;vertical-align:bottom}.grid thead th.call .rname{color:var(--accent)}.rname{display:block;font-size:.9rem}.rseats{display:block;font-size:.68rem}.time-col{position:sticky;left:0;z-index:2;background:var(--panel-2);width:58px;min-width:58px;text-align:right;padding:0 .5rem;font-variant-numeric:tabular-nums;color:var(--muted);white-space:nowrap}.corner{z-index:4}.grid tr.hour td,.grid tr.hour th{border-top-color:#46566e}.cell{height:22px;padding:0;position:relative}.cell.free{cursor:pointer}.cell.free:hover{background:#38bdf82e}.cell.selected,.cell.selected:hover{background:var(--accent)}.cell.occupied{background:#3b2f4d;color:var(--text)}.cell.occupied.mine{background:#14425a;cursor:pointer;outline:1px solid var(--accent);outline-offset:-2px}.cell.occupied.mine:hover{filter:brightness(1.2)}.cell-label{position:absolute;top:0;right:0;bottom:0;left:0;padding:0 .35rem;display:flex;flex-direction:column;justify-content:center;line-height:1.1;overflow:hidden;white-space:nowrap}.cell-title{font-weight:600;font-size:.75rem;text-overflow:ellipsis;overflow:hidden}.cell-who{font-size:.62rem;color:var(--muted);text-overflow:ellipsis;overflow:hidden}.book-bar{position:sticky;bottom:0;flex-direction:row;align-items:center;gap:.75rem;flex-wrap:wrap;background:var(--panel-2);border:1px solid var(--accent);border-radius:var(--radius);padding:.75rem 1rem}.book-summary{display:flex;flex-direction:column;gap:.1rem;min-width:150px}.book-summary strong{font-size:.95rem}.book-title{flex:1;min-width:180px}.book-bar button{width:auto}@media (max-width: 640px){.rseats{display:none}}
