:root{--bg: #f4f6fb;--surface: #ffffff;--ink: #1a1f36;--muted: #6b7280;--line: #e6e8ef;--brand: #4f46e5;--brand-ink: #ffffff;--green: #16a34a;--green-bg: #ecfdf3;--amber: #b45309;--amber-bg: #fef3c7;--red: #dc2626;--red-bg: #fef2f2;--radius: 14px;--shadow: 0 1px 2px rgba(16, 24, 40, .04), 0 4px 16px rgba(16, 24, 40, .06)}*{box-sizing:border-box}html,body{margin:0;max-width:100%;overflow-x:hidden}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Inter,system-ui,sans-serif;background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased}.container{max-width:880px;margin:0 auto;padding:24px 20px 64px}.appbar{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;background:var(--surface);border-bottom:1px solid var(--line)}.appbar h1{font-size:16px;margin:0;font-weight:650}.appbar .sub{color:var(--muted);font-size:13px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow);margin-bottom:18px}.card h2{font-size:15px;margin:0 0 14px;font-weight:650}.section-hint{color:var(--muted);font-size:13px;margin:-6px 0 14px}.hero{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.hero .greet{font-size:22px;font-weight:680}.balance{text-align:right}.balance .num{font-size:30px;font-weight:720;color:var(--brand);line-height:1}.balance .lbl{color:var(--muted);font-size:12px}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--line);background:var(--surface);color:var(--ink);padding:9px 14px;border-radius:10px;font-size:14px;font-weight:550;cursor:pointer;transition:.15s;font-family:inherit}.btn:hover{border-color:#cfd3e0}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--brand);color:var(--brand-ink);border-color:var(--brand)}.btn-primary:hover{filter:brightness(1.05)}.btn-ghost{background:transparent;border-color:transparent;color:var(--muted)}.btn-danger{color:var(--red);border-color:#f3c9c9}.btn-sm{padding:6px 10px;font-size:13px}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:8px 14px;cursor:pointer;font-size:14px;transition:.15s}.chip:hover{border-color:#cfd3e0}.chip.active{background:var(--brand);color:#fff;border-color:var(--brand)}.chip.on{background:#eef2ff;border-color:var(--brand);color:var(--brand)}.slot-chip{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:5px 8px 5px 14px;font-size:14px}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;padding:0;border-radius:50%;border:1px solid var(--line);background:var(--surface);color:var(--red);cursor:pointer;font-size:13px;line-height:1;flex-shrink:0;font-family:inherit}.icon-btn:hover{border-color:#f3c9c9;background:var(--red-bg)}.slot-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(82px,1fr));gap:8px}.day-block{margin-bottom:16px}.day-head{font-size:13px;color:var(--muted);margin-bottom:8px;text-transform:capitalize}.tbl{width:100%;border-collapse:collapse;font-size:14px}.tbl th{text-align:left;color:var(--muted);font-weight:550;font-size:12px;padding:8px 10px;border-bottom:1px solid var(--line)}.tbl td{padding:10px;border-bottom:1px solid var(--line)}.tbl tr:last-child td{border-bottom:none}.badge{display:inline-block;padding:3px 9px;border-radius:999px;font-size:12px;font-weight:550}.badge.active{background:#eef2ff;color:var(--brand)}.badge.completed{background:var(--green-bg);color:var(--green)}.badge.cancelled{background:var(--red-bg);color:var(--red)}.badge.free{background:var(--green-bg);color:var(--green)}.badge.booked{background:#eef2ff;color:var(--brand)}.badge.closed{background:#f1f5f9;color:var(--muted)}.notice{padding:11px 14px;border-radius:10px;font-size:14px;margin-bottom:14px}.notice.ok{background:var(--green-bg);color:var(--green)}.notice.err{background:var(--red-bg);color:var(--red)}.field{margin-bottom:14px}.field label{display:block;font-size:13px;color:var(--muted);margin-bottom:6px}.input{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:10px;font-size:15px;font-family:inherit;background:var(--surface)}.input:focus{outline:none;border-color:var(--brand)}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:20px}.login-card{width:100%;max-width:380px}.tabs{display:flex;gap:4px;margin-bottom:18px;border-bottom:1px solid var(--line)}.tab{padding:10px 16px;cursor:pointer;border:none;background:none;font-size:14px;font-weight:550;color:var(--muted);border-bottom:2px solid transparent;font-family:inherit}.tab.active{color:var(--brand);border-bottom-color:var(--brand)}.toolbar{display:flex;gap:8px;margin-bottom:14px;flex-wrap:wrap;align-items:center}.toolbar .input,.toolbar select{width:auto}select.input{cursor:pointer}.inline-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;align-items:end}.muted{color:var(--muted)}.empty{color:var(--muted);font-size:14px;padding:12px 0}.row-actions{display:flex;gap:8px;flex-wrap:wrap}.spinner{color:var(--muted);padding:40px;text-align:center}@media(max-width:640px){.container{padding:16px 12px 48px}.appbar{padding:12px 14px}.appbar h1{font-size:15px}.card{padding:16px}.hero{flex-direction:column;align-items:flex-start;gap:10px}.balance{text-align:left}.hero .greet{font-size:20px}.toolbar{flex-direction:column;align-items:stretch}.toolbar .input,.toolbar select,.toolbar .btn{width:100%}.tbl thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.tbl,.tbl tbody,.tbl tr,.tbl td{display:block;width:100%}.tbl tr{border:1px solid var(--line);border-radius:12px;padding:6px 14px 10px;margin-bottom:10px;background:var(--surface)}.tbl td{border:none;padding:5px 0;text-align:left;overflow-wrap:anywhere}.tbl td:before{content:attr(data-label);display:block;color:var(--muted);font-size:12px;margin-bottom:1px}.tbl td[data-label=""]{padding-top:10px}.tbl td[data-label=""]:before{display:none}.tbl td[data-label=""]:empty{display:none}.tbl td[data-label=""] .btn{width:100%}.tbl td[colspan]:before{display:none}.inline-form{grid-template-columns:1fr}.icon-btn{width:36px;height:36px;font-size:16px}.slot-chip{gap:10px;padding:5px 6px 5px 14px}}
