@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap";:root{--bg:#faf8f5;--surface:#fff;--surface-2:#f5f0eb;--border:#e8e2da;--border-2:#d4cdc3;--text:#1e1b4b;--muted:#78716c;--muted-2:#a8a29e;--accent:#4f46e5;--accent-ink:#fff;--danger:#dc2626;--warn:#f59e0b;--info:#6366f1;font-feature-settings:"cv02", "cv03", "cv04", "cv11";font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0}button{font-family:inherit}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.app-shell{flex-direction:column;min-height:100vh;display:flex}.topbar{border-bottom:1px solid var(--border);background:var(--surface);z-index:10;justify-content:space-between;align-items:center;padding:14px 24px;display:flex;position:sticky;top:0;box-shadow:0 1px 3px #1e1b4b0a}.brand{letter-spacing:-.02em;color:var(--text);align-items:center;gap:10px;font-size:16px;font-weight:800;display:flex}.logo-dot{background:var(--accent);border-radius:4px;width:14px;height:14px}.pill{border:1px solid var(--border);background:var(--surface);color:var(--muted);cursor:pointer;border-radius:999px;padding:6px 14px;font-size:12px;font-weight:500;transition:all .15s;box-shadow:0 1px 2px #1e1b4b0a}.pill:hover{border-color:var(--border-2);background:var(--surface-2);color:var(--text)}.pill-active{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);font-weight:700;box-shadow:0 2px 8px #4f46e540}.pill-active:hover{background:#4338ca}.btn{cursor:pointer;background:var(--surface-2);color:var(--text);border:none;border:1px solid var(--border);border-radius:10px;padding:10px 16px;font-size:13px;font-weight:600;transition:all .15s}.btn:hover{background:var(--border)}.btn-primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);box-shadow:0 2px 8px #4f46e533}.btn-primary:hover{background:#4338ca;border-color:#4338ca;box-shadow:0 4px 12px #4f46e54d}.btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.book-grid{background:var(--border);border-top:1px solid var(--border);grid-template-columns:1.6fr 1fr;gap:0;min-height:70vh;display:grid}.book-col{background:var(--surface);padding:28px 24px}.book-col h2{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:24px 0 12px;font-size:13px;font-weight:700}.book-col h2:first-child{margin-top:0}.slot-grid{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.slot{background:var(--surface-2);border:1px solid var(--border);text-align:center;cursor:pointer;color:var(--text);font-variant-numeric:tabular-nums;border-radius:10px;padding:12px 10px;font-size:13px;font-weight:600;transition:all .15s}.slot:hover{border-color:var(--accent);background:#4f46e50f;box-shadow:0 1px 4px #4f46e51a}.slot-active{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);box-shadow:0 2px 10px #4f46e54d}.input{border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text);border-radius:10px;margin-bottom:12px;padding:11px 14px;font-family:inherit;font-size:14px;transition:border-color .15s,box-shadow .15s}.input:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #4f46e51f}.input::placeholder{color:var(--muted-2)}textarea.input{resize:vertical;line-height:1.5}.check-row{color:var(--muted);cursor:pointer;align-items:center;gap:10px;margin-bottom:12px;font-size:13px;display:flex}.check-row input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent)}.err{color:var(--danger);background:#fef2f2;border:1px solid #fecaca;border-radius:8px;margin-bottom:10px;padding:8px 12px;font-size:13px;font-weight:500}.ok{color:#15803d;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:8px;margin-bottom:10px;padding:8px 12px;font-size:13px;font-weight:500}.login-wrap{background:linear-gradient(160deg,#faf8f5 0%,#ede8e1 50%,#faf8f5 100%);flex:1;place-items:center;padding:40px;display:grid}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;width:340px;padding:36px 32px;box-shadow:0 1px 3px #1e1b4b0a,0 10px 40px #1e1b4b0f}.muted{color:var(--muted);font-size:12px}.tbl{border-collapse:collapse;width:100%;margin-top:12px;font-size:13px}.tbl th,.tbl td{text-align:left;border-bottom:1px solid var(--border);padding:10px 14px}.tbl th{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:12px;font-weight:700}.tbl tr:hover td{background:#4f46e508}.booking-nav{background:var(--surface-2);border-radius:10px;gap:4px;padding:3px;display:flex}.booking-nav-link{color:var(--muted);border-radius:8px;padding:7px 16px;font-size:13px;font-weight:600;transition:all .15s;text-decoration:none!important}.booking-nav-link:hover{background:var(--surface);color:var(--text)}.resource-detail-card{background:var(--surface-2);border:1px solid var(--border);border-radius:12px;margin-bottom:16px;padding:16px 18px}.resource-detail-name{color:var(--text);font-size:16px;font-weight:700}.resource-detail-type{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px;font-size:12px}.resource-detail-desc{color:var(--muted);margin-bottom:8px;font-size:13px;line-height:1.5}.resource-detail-price{color:var(--accent);letter-spacing:-.02em;font-size:22px;font-weight:800}.resource-detail-unit{color:var(--muted);margin-left:4px;font-size:13px;font-weight:500}.resource-detail-dp{color:var(--muted);margin-top:6px;font-size:13px}.resource-detail-dp strong{color:var(--text)}.dp-amount-inline{color:var(--accent);font-weight:600}.slot-period-group{margin-bottom:14px}.slot-period-label{text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px;font-size:12px;font-weight:700}.badge{text-transform:uppercase;letter-spacing:.03em;white-space:nowrap;border-radius:999px;padding:3px 10px;font-size:11px;font-weight:700;display:inline-block}.badge-pending{color:#92400e;background:#fef3c7;border:1px solid #fde68a}.badge-confirmed{color:#1e40af;background:#dbeafe;border:1px solid #bfdbfe}.badge-completed{color:#065f46;background:#d1fae5;border:1px solid #a7f3d0}.badge-cancelled{color:#991b1b;background:#fee2e2;border:1px solid #fecaca}.stats-row{grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:10px;margin-bottom:20px;display:grid}.stat-card{background:var(--surface);border:1px solid var(--border);text-align:center;border-radius:12px;padding:14px 16px}.stat-value{color:var(--text);font-size:26px;font-weight:800;line-height:1}.stat-label{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-top:4px;font-size:11px;font-weight:600}.stat-pending .stat-value{color:#92400e}.stat-confirmed .stat-value{color:#1e40af}.stat-completed .stat-value{color:#065f46}.stat-cancelled .stat-value{color:#991b1b}.stat-dp .stat-value{color:var(--accent)}.action-btns{flex-wrap:wrap;gap:6px;display:flex}.btn-sm{border-radius:8px;padding:5px 10px;font-size:11px}.btn-confirm{color:#1e40af;background:#dbeafe;border:1px solid #bfdbfe}.btn-confirm:hover{background:#bfdbfe}.btn-done{color:#065f46;background:#d1fae5;border:1px solid #a7f3d0}.btn-done:hover{background:#a7f3d0}.btn-cancel{color:#991b1b;background:#fee2e2;border:1px solid #fecaca}.btn-cancel:hover{background:#fecaca}
