.rv-root,.rv-settings{--rv-ink:#503b32;--rv-muted:#917e70;--rv-line:#eadfd2;--rv-paper:#fffefa;--rv-cream:#fbf8f2;--rv-green:#547960;--rv-green-bg:#e9f1e8;--rv-coral:#b65f4c;--rv-coral-bg:#faebe5;color:var(--rv-ink);font-family:'IBM Plex Sans Thai',sans-serif;min-width:0}
.rv-root{display:grid;grid-template-columns:minmax(260px,330px) minmax(0,1fr);gap:18px;align-items:start}
.rv-root *,.rv-settings *{box-sizing:border-box}
.rv-root h2,.rv-settings h2{font-size:18px;line-height:1.35;margin:5px 0 3px;color:var(--rv-ink)}
.rv-root h3,.rv-settings h3{color:var(--rv-ink)}
.rv-root p,.rv-settings p{margin:0;line-height:1.6}
.rv-kicker{color:var(--rv-coral);font:800 10px Nunito,sans-serif;letter-spacing:2px}
.rv-subtitle{color:var(--rv-muted);font-size:11px}
.rv-panel,.rv-calendar,.rv-settings-intro,.rv-settings-form{background:var(--rv-paper);border:1px solid var(--rv-line);border-radius:14px;box-shadow:0 5px 25px #4b2b2205}
.rv-form-panel{padding:21px;position:sticky;top:16px}
.rv-form{margin-top:21px}
.rv-form-block{display:grid;gap:13px}
.rv-form-grid{display:grid;gap:11px}
.rv-field{display:grid;gap:5px;min-width:0;font-size:11px;color:#78695e;font-weight:600}
.rv-field[hidden]{display:none}
.rv-field input,.rv-field select,.rv-field textarea,.rv-date-controls input,.rv-settings select{border:1px solid #e5d9ca;border-radius:8px;background:#fffdf8;color:var(--rv-ink);padding:9px 10px;min-width:0;min-height:40px;width:100%;font:500 12px 'IBM Plex Sans Thai',sans-serif;outline:none}
.rv-field textarea{resize:vertical}
.rv-field input:focus,.rv-field select:focus,.rv-field textarea:focus,.rv-date-controls input:focus,.rv-settings select:focus{border-color:var(--rv-green);box-shadow:0 0 0 3px #dcebdc}
.rv-field small{font-size:10px;color:var(--rv-muted);font-weight:400}
.rv-form-details{background:#f8f1e7;border:1px solid #f0e2d0;padding:10px 12px;border-radius:9px;font-size:11px;color:#795f51}
.rv-form-details p+p{margin-top:4px}
.rv-hint{color:var(--rv-green);font-size:10px}
.rv-caution{color:#a55341;font-size:10px}
.rv-button,.rv-icon-button,.rv-text-button{border:1px solid #e1d4c4;background:#fffdf8;color:var(--rv-ink);border-radius:8px;padding:9px 12px;font:700 11px 'IBM Plex Sans Thai',sans-serif;cursor:pointer;white-space:nowrap}
.rv-button:hover,.rv-icon-button:hover,.rv-text-button:hover{border-color:#c5ad96;background:#fcf4ea}
.rv-button:focus-visible,.rv-icon-button:focus-visible,.rv-text-button:focus-visible{outline:3px solid #94b69a;outline-offset:2px}
.rv-primary{background:var(--rv-green);border-color:var(--rv-green);color:#fff;min-height:42px}
.rv-primary:hover{background:#446a50;border-color:#446a50}
.rv-button:disabled,.rv-icon-button:disabled,.rv-text-button:disabled{opacity:.5;cursor:not-allowed}
.rv-soft{background:#faf5ec}
.rv-error{color:#a5483e;font-size:11px;line-height:1.6;background:#fff1ed;border:1px solid #efcdc4;border-radius:8px;padding:9px 11px}
.rv-root>.rv-error{grid-column:1/-1}
.rv-error[hidden]{display:none}
.rv-calendar{padding:21px;min-width:0}
.rv-calendar-head{display:flex;align-items:center;justify-content:space-between;gap:15px;flex-wrap:wrap}
.rv-calendar-head h2{margin-bottom:0}
.rv-date-controls{display:flex;align-items:center;gap:5px;flex-wrap:wrap}
.rv-date-controls input{width:145px;min-height:36px;padding:6px 8px}
.rv-date-controls .rv-button,.rv-date-controls .rv-icon-button{min-height:36px}
.rv-icon-button{font:800 15px Nunito,sans-serif;width:35px;height:36px;padding:4px}
.rv-summary{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--rv-line);border-radius:10px;background:#fbf7ef;margin:20px 0;overflow:hidden}
.rv-summary-item{padding:11px 13px;display:flex;align-items:baseline;gap:6px;border-right:1px solid var(--rv-line)}
.rv-summary-item:last-child{border-right:0}
.rv-summary-item strong{font:900 21px Nunito,sans-serif;color:var(--rv-ink)}
.rv-summary-item span{font-size:10px;color:var(--rv-muted)}
.rv-machine-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.rv-machine-card{min-width:0;border:1px solid var(--rv-line);border-radius:11px;background:#fffdfa;padding:12px;display:grid;gap:9px;align-content:start}
.rv-machine-head{display:flex;align-items:center;justify-content:space-between;gap:7px;border-bottom:1px solid var(--rv-line);padding-bottom:10px}
.rv-machine-head>div{display:flex;align-items:center;gap:8px;min-width:0}
.rv-machine-head h3{font:900 17px Nunito,sans-serif;margin:0;line-height:1.2}
.rv-machine-head .rv-subtitle{font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:150px}
.rv-machine-signals{display:grid;gap:3px;border:1px solid #eadcca;background:#fbf6eb;border-radius:7px;padding:7px 9px}
.rv-machine-signals small{color:var(--rv-muted);font-size:9px}
.rv-machine-alert{font-size:10px;color:#a45240;overflow-wrap:anywhere}
.rv-machine-cooldown{font-size:10px;color:#8c672d}
.rv-machine-symbol{display:grid;place-items:center;flex:none;width:30px;height:30px;background:#f6eee2;border-radius:7px;color:#a87659;font-size:17px}
.rv-mini-badge{flex:none;background:#f1ebe3;color:#8c786b;border-radius:6px;padding:4px 6px;font-size:10px;font-weight:700}
.rv-mini-badge.is-busy{background:var(--rv-coral-bg);color:#a75141}
.rv-machine-empty{min-height:72px;display:flex;align-items:center;justify-content:center;gap:7px;color:#b5a797;font-size:11px}
.rv-machine-empty span{font-size:24px}
.rv-booking{border-left:3px solid #bfae9c;border-radius:7px;background:#f8f5ef;padding:10px 11px;min-width:0;display:grid;gap:4px}
.rv-booking-confirmed{border-left-color:var(--rv-coral);background:#fcf3ec}
.rv-booking-in_use{border-left-color:var(--rv-green);background:#edf3eb}
.rv-booking-completed{border-left-color:#acb5a4;background:#f2f5ef}
.rv-booking-cancelled,.rv-booking-no_show{opacity:.68}
.rv-booking-top{display:flex;justify-content:space-between;align-items:start;gap:5px}
.rv-booking-top>div{display:grid;min-width:0}
.rv-booking-time{font:900 16px Nunito,sans-serif;white-space:nowrap}
.rv-booking-service{font-size:10px;color:var(--rv-muted)}
.rv-booking-person{font-size:11px;overflow-wrap:anywhere}
.rv-booking-note,.rv-release,.rv-actual{font-size:10px;color:var(--rv-muted);overflow-wrap:anywhere}
.rv-overrun{font-size:10px;color:#a5483e;font-weight:700}
.rv-status{display:inline-flex;width:max-content;align-items:center;border-radius:5px;background:#ede9e2;color:#806c60;padding:3px 6px;font-size:9px;font-weight:700;white-space:nowrap}
.rv-status.rv-confirmed{background:var(--rv-coral-bg);color:#ab5948}
.rv-status.rv-in_use{background:var(--rv-green-bg);color:var(--rv-green)}
.rv-status.rv-completed{background:#e9efeb;color:#627b68}
.rv-card-actions{display:flex;flex-wrap:wrap;gap:5px;margin-top:3px}
.rv-text-button{padding:4px 7px;background:transparent;font-size:10px;border-color:#e7d8c7}
.rv-text-button.rv-danger{color:#aa574a}
.rv-updated{margin-top:17px;display:flex;gap:8px;color:var(--rv-muted);font-size:10px}
.rv-loading,.rv-empty{padding:35px;text-align:center;color:var(--rv-muted);font-size:12px}
.rv-settings{display:grid;gap:15px}
.rv-settings-intro{padding:22px}
.rv-readiness{border:1px solid var(--rv-line);background:#fbf5eb;border-radius:11px;padding:12px 15px;display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:11px}
.rv-readiness small{width:100%;color:var(--rv-muted);padding-left:2px}
.rv-settings-form{padding:20px;display:grid;gap:21px}
.rv-toggle{display:flex;gap:11px;align-items:center;border:1px solid #d7e5d6;background:#f0f5ef;border-radius:10px;padding:13px 15px;cursor:pointer}
.rv-toggle input{width:18px;height:18px;accent-color:var(--rv-green)}
.rv-toggle span{display:grid;gap:2px}
.rv-toggle strong{font-size:12px}
.rv-toggle small{font-size:10px;color:var(--rv-muted)}
.rv-settings-fieldset{border:1px solid var(--rv-line);border-radius:10px;padding:13px;display:flex;flex-wrap:wrap;gap:9px}
.rv-settings-fieldset legend{font-size:12px;font-weight:700;padding:0 5px}
.rv-machine-check{display:flex;align-items:center;gap:7px;border:1px solid var(--rv-line);border-radius:7px;padding:8px 10px;background:#fffdf8;font-size:11px;cursor:pointer}
.rv-machine-check input{accent-color:var(--rv-green)}
.rv-settings-section{border-top:1px solid var(--rv-line);padding-top:17px}
.rv-settings-section h3{font-size:13px;margin:0 0 12px}
.rv-settings-section>.rv-hint{margin:8px 0}
.rv-settings-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}
.rv-settings-form>.rv-button{justify-self:start;min-width:150px}
.rv-saved{font-size:11px;color:var(--rv-green)}
@media(max-width:1050px){.rv-root{grid-template-columns:1fr}.rv-form-panel{position:static}.rv-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.rv-form-grid:first-child{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){.rv-form-grid:first-child{grid-template-columns:1fr 1fr}.rv-form-grid:first-child .rv-field:first-child{grid-column:1/-1}}
@media(max-width:480px){.rv-root,.rv-settings{width:100%}.rv-form-panel,.rv-calendar,.rv-settings-form,.rv-settings-intro{padding:16px}.rv-form-grid,.rv-form-grid:first-child,.rv-settings-grid{grid-template-columns:1fr}.rv-form-grid:first-child .rv-field:first-child{grid-column:auto}.rv-calendar-head{align-items:stretch}.rv-date-controls{display:grid;grid-template-columns:35px minmax(0,1fr) 35px}.rv-date-controls input{width:100%}.rv-date-controls .rv-soft{grid-column:1/-1}.rv-machine-grid{grid-template-columns:1fr}.rv-summary-item{padding:8px;display:grid;gap:0}.rv-summary-item strong{font-size:19px}.rv-summary-item span{font-size:9px}}
@media(prefers-reduced-motion:no-preference){.rv-machine-card{animation:rv-rise .28s ease both}.rv-machine-card:nth-child(2){animation-delay:.035s}.rv-machine-card:nth-child(3){animation-delay:.07s}.rv-machine-card:nth-child(4){animation-delay:.105s}@keyframes rv-rise{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}}
