/* Ravangram 12.9 — client workspace and booking journey. */
:root{--rg-v129-safe-bottom:16px;--rg-v129-card-min:132px}
.rg-client-workspace-v129{min-height:var(--rg-v129-card-min);margin:0 0 18px}
.rg-v129-skeleton{display:grid;grid-template-columns:1.5fr repeat(3,minmax(110px,.6fr));gap:12px;min-height:var(--rg-v129-card-min)}
.rg-v129-skeleton span{border-radius:22px;background:linear-gradient(100deg,rgba(30,55,100,.06) 20%,rgba(30,55,100,.11) 40%,rgba(30,55,100,.06) 60%);background-size:220% 100%;animation:rgV129Pulse 1.35s ease-in-out infinite}
@keyframes rgV129Pulse{to{background-position:-220% 0}}
.rg-v129-workspace{display:grid;grid-template-columns:minmax(260px,1.6fr) repeat(3,minmax(118px,.55fr));gap:12px;align-items:stretch}
.rg-v129-hero,.rg-v129-metric,.rg-v129-request-list,.rg-v129-booking-context{border:1px solid rgba(41,72,130,.11);background:#fff;border-radius:22px;box-shadow:0 12px 30px rgba(32,55,100,.06)}
.rg-v129-hero{padding:20px;display:flex;flex-direction:column;justify-content:center;min-height:132px;background:linear-gradient(145deg,#fff,#f4f7ff)}
.rg-v129-hero h2{font-size:clamp(1.15rem,2.2vw,1.55rem);margin:5px 0 7px;line-height:1.55}
.rg-v129-hero p{margin:0;color:var(--rg-muted,#667085);line-height:1.9}
.rg-v129-next{display:flex;gap:9px;align-items:center;margin-top:13px;flex-wrap:wrap}
.rg-v129-next b{font-size:.92rem}.rg-v129-next small{color:var(--rg-muted,#667085)}
.rg-v129-metric{padding:17px;display:flex;flex-direction:column;justify-content:center;min-height:132px}
.rg-v129-metric b{font-size:1.65rem;line-height:1.2}.rg-v129-metric span{font-weight:700;margin-top:7px}.rg-v129-metric small{margin-top:5px;color:var(--rg-muted,#667085);line-height:1.6}
.rg-v129-metric.is-action{background:#fff9ef}.rg-v129-metric.is-today{background:#f3fbf8}.rg-v129-metric.is-wallet{background:#f5f7ff}
.rg-v129-action-requests{margin-top:18px}
.rg-v129-request-list{padding:18px}
.rg-v129-request-list header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}
.rg-v129-request-list h3{margin:2px 0}.rg-v129-request-list p{margin:4px 0;color:var(--rg-muted,#667085)}
.rg-v129-request-items{display:grid;gap:9px}
.rg-v129-request-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:13px 14px;border:1px solid rgba(41,72,130,.1);border-radius:16px;background:#fbfcff}
.rg-v129-request-item b,.rg-v129-request-item small{display:block}.rg-v129-request-item small{color:var(--rg-muted,#667085);margin-top:5px;line-height:1.7}
.rg-v129-request-status{align-self:start;border-radius:999px;padding:6px 10px;font-size:.78rem;font-weight:800;background:#eef2ff;white-space:nowrap}
.rg-v129-request-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.rg-v129-booking-context{max-width:1200px;margin:0 auto 14px;padding:12px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px;background:#f7f9ff}
.rg-v129-booking-context:empty{display:none}.rg-v129-booking-context b{font-size:.9rem}.rg-v129-booking-context small{color:var(--rg-muted,#667085);line-height:1.7}
.rg-v129-save-state{display:inline-flex;align-items:center;gap:6px;font-size:.78rem;font-weight:700;white-space:nowrap}.rg-v129-save-state:before{content:"";width:8px;height:8px;border-radius:50%;background:#2e9b75}
.rg-v129-filter-empty{padding:30px 18px;text-align:center;border:1px dashed rgba(41,72,130,.2);border-radius:18px;background:#fbfcff}
.rg-v129-filter-empty h3{margin:0 0 7px}.rg-v129-filter-empty p{margin:0;color:var(--rg-muted,#667085)}
.rg-v129-request-button{font-size:.82rem}
.rg-v129-modal-backdrop{position:fixed;inset:0;z-index:100030;background:rgba(16,24,40,.52);display:grid;place-items:center;padding:18px;overscroll-behavior:contain}
.rg-v129-modal{width:min(560px,100%);max-height:min(760px,calc(100dvh - 36px));overflow:auto;background:#fff;border-radius:24px;box-shadow:0 24px 70px rgba(16,24,40,.25);padding:20px;outline:none}
.rg-v129-modal header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.rg-v129-modal h2{margin:3px 0 5px}.rg-v129-modal header p{margin:0;color:var(--rg-muted,#667085);line-height:1.7}
.rg-v129-modal-close{border:0;background:#f1f4f9;border-radius:12px;width:40px;height:40px;font-size:1.3rem;cursor:pointer}
.rg-v129-modal form{display:grid;gap:14px;margin-top:18px}.rg-v129-modal label{display:grid;gap:7px;font-weight:700}.rg-v129-modal textarea,.rg-v129-modal input{width:100%;border:1px solid rgba(41,72,130,.2);border-radius:13px;padding:11px 12px;font:inherit;background:#fff}
.rg-v129-modal textarea:focus,.rg-v129-modal input:focus{outline:3px solid rgba(64,103,200,.14);border-color:#5577c7}
.rg-v129-financial-preview{padding:13px;border-radius:15px;background:#f7f9fc;line-height:1.8}.rg-v129-financial-preview b,.rg-v129-financial-preview small{display:block}.rg-v129-financial-preview small{color:var(--rg-muted,#667085)}
.rg-v129-modal-actions{display:flex;gap:9px;justify-content:flex-start;flex-wrap:wrap}.rg-v129-live{min-height:24px;color:#9b2c2c;font-size:.87rem}
body.rg-v129-modal-open{overflow:hidden;touch-action:none}
@media(max-width:900px){.rg-v129-workspace{grid-template-columns:repeat(2,minmax(0,1fr))}.rg-v129-hero{grid-column:1/-1}.rg-v129-skeleton{grid-template-columns:1fr 1fr}.rg-v129-skeleton span:first-child{grid-column:1/-1}.rg-v129-booking-context{margin-inline:12px}}
@media(max-width:600px){:root{--rg-v129-card-min:118px}.rg-v129-workspace{grid-template-columns:1fr 1fr;gap:9px}.rg-v129-hero{padding:16px;min-height:118px}.rg-v129-metric{padding:14px;min-height:108px}.rg-v129-metric b{font-size:1.4rem}.rg-v129-metric small{font-size:.76rem}.rg-v129-booking-context{align-items:flex-start;flex-direction:column}.rg-v129-request-item{grid-template-columns:1fr}.rg-v129-request-status{justify-self:start}.rg-v129-modal-backdrop{align-items:end;padding:0}.rg-v129-modal{border-radius:24px 24px 0 0;max-height:calc(100dvh - max(12px,env(safe-area-inset-top)));padding-bottom:calc(20px + env(safe-area-inset-bottom) + var(--rg-v129-safe-bottom))}.rg-account-dashboard,.rg-booking-shell{padding-bottom:calc(env(safe-area-inset-bottom) + var(--rg-v129-safe-bottom))}}
@media(prefers-reduced-motion:reduce){.rg-v129-skeleton span{animation:none}}
