/* =========================================================
   PORTAL: RESERVATIONS  (host stand iPad)
   Big tap targets, one obvious next step, the day's book
   always in view on the right.
   ========================================================= */
.rv{ --ok:#1f8a3d; --ok2:#176b30; --no:#c23b3b; --amber:#d98a00; --sky:#2a7fd4; --violet:#6a44b3; }
.rv.is-practice .rv-grid{ outline:3px dashed #e3b341; outline-offset:6px; border-radius:18px; }
.rv-practice{ display:flex; align-items:center; gap:.8rem; flex-wrap:wrap; padding:.75rem 1rem; margin-bottom:1rem; border-radius:14px; background:linear-gradient(100deg, #fff4d6, #ffe9b8); border:1px solid #efcf7b; }
.rv-practice span{ flex:1; font-size:.9rem; color:#6b4b00; }

/* header */
.rv-top{ display:flex; justify-content:space-between; align-items:flex-end; gap:1rem; flex-wrap:wrap; margin-bottom:1rem; }
.rv-title h1{ font-family:'Shrikhand', serif; font-weight:400;  font-size:2.2rem; line-height:1; }
.rv-title p{ color:var(--mute); margin-top:.4rem; font-size:.92rem; display:flex; align-items:center; gap:.4rem; flex-wrap:wrap; }
.rv-title .warn{ color:var(--red); }
.rv-need{ color:var(--red); }
.rv-live{ display:inline-flex; align-items:center; gap:.35rem; padding:.18rem .55rem; border-radius:999px; background:#e3f5e8; color:#1f6b35; font-size:.72rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.rv-live i{ width:7px; height:7px; border-radius:50%; background:#1f8a3d; animation:rvPulse 1.6s ease-out infinite; }
@keyframes rvPulse{ 0%{ box-shadow:0 0 0 0 rgba(31,138,61,.55); } 100%{ box-shadow:0 0 0 9px rgba(31,138,61,0); } }
.rv-tools{ display:flex; gap:.5rem; align-items:center; flex-wrap:wrap; }
.rv-search input{ width:190px; }
.rv-ico{ width:44px; padding:.7rem 0; font-size:1.05rem; }
.rv-snd{ color:#8a5a00; background:#fff7e6; border-color:#f1d89a; }
.rv-snd.on{ color:#1f6b35; background:#eef9f1; border-color:#bfe5c9; }

/* pause banner */
.rv-paused{ display:flex; align-items:center; gap:.9rem; padding:.85rem 1rem; margin-bottom:1rem; border-radius:14px; background:linear-gradient(100deg, #fff1d9, #ffe6bf); border:1px solid #f0c77a; animation:rvIn .35s ease; }
.rv-paused > div{ flex:1; display:flex; flex-direction:column; gap:.15rem; }
.rv-paused span{ font-size:.85rem; color:#6b4b00; }
.rv-pz-ic{ width:40px; height:40px; border-radius:12px; display:flex; align-items:center; justify-content:center; font-size:1.1rem; background:#f3a712; color:#1b1712; flex:0 0 40px; animation:rvBreath 2.4s ease-in-out infinite; }
@keyframes rvBreath{ 50%{ transform:scale(1.08); } }
.rv-cd{ font-variant-numeric:tabular-nums; }
.rv-pz-copy{ font-size:1rem; line-height:1.55; color:var(--ink2); }
.rv-pz-opts{ display:grid; grid-template-columns:repeat(3, 1fr); gap:.7rem; margin:1.2rem 0; }
.rv-pz{ display:flex; flex-direction:column; align-items:center; padding:1.2rem .5rem; border-radius:16px; border:1.5px solid var(--line); background:#fff; transition:transform .2s cubic-bezier(.2,.9,.3,1.5), border-color .2s, box-shadow .2s; }
.rv-pz b{ font-family:'DM Sans', sans-serif; font-weight:800; font-size:2.4rem; line-height:1; }
.rv-pz span{ font-size:.8rem; color:var(--mute); font-weight:700; }
.rv-pz:hover, .rv-pz:active{ transform:translateY(-3px); border-color:#f3a712; box-shadow:0 10px 24px -10px rgba(243,167,18,.6); }

/* two columns: work on the left, the day on the right */
.rv-grid{ display:grid; grid-template-columns:minmax(0, 1.25fr) minmax(300px, 1fr); gap:1.2rem; align-items:start; }
.rv-left, .rv-right{ background:#fff; border:1px solid var(--line); border-radius:18px; box-shadow:var(--shadow); min-width:0; }
.rv-left{ padding:1.2rem; }
.rv-right{ padding:1.1rem; position:sticky; top:76px; max-height:calc(100vh - 92px); overflow-y:auto; }
@media (max-width:1000px){ .rv-grid{ grid-template-columns:1fr; } .rv-right{ position:static; max-height:none; } }

/* queue */
.rv-sec + .rv-sec{ margin-top:1.4rem; }
.rv-sec h2{ display:flex; align-items:center; gap:.5rem; font-size:.78rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:var(--ink2); }
.rv-sec h2 span{ min-width:22px; height:22px; padding:0 6px; border-radius:999px; display:inline-flex; align-items:center; justify-content:center; background:#ece7e0; font-size:.72rem; letter-spacing:0; }
.rv-sec-new h2 span{ background:var(--red); color:#fff; }
.rv-sec-final h2 span{ background:var(--sky); color:#fff; }
.rv-sec-todo h2 span{ background:var(--violet); color:#fff; }
.rv-sub{ font-size:.86rem; color:var(--mute); margin:.3rem 0 .7rem; line-height:1.45; }
.rv-cards{ list-style:none; display:flex; flex-direction:column; gap:.55rem; margin-top:.6rem; }
.rv-card{ width:100%; display:grid; grid-template-columns:86px minmax(0, 1fr) auto 18px; gap:.9rem; align-items:center; text-align:left; padding:.85rem 1rem; border-radius:16px; border:1.5px solid var(--line); background:#fff;
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease; animation:rvIn .35s ease both; }
.rv-card:hover, .rv-card:active{ transform:translateY(-2px); box-shadow:0 12px 26px -16px rgba(27,23,18,.45); border-color:#cfc6bb; }
.rv-card.c-new{ border-color:#f0c4c4; background:linear-gradient(90deg, #fff5f4, #fff 40%); box-shadow:0 0 0 0 rgba(194,59,59,.3); animation:rvIn .35s ease both, rvGlow 2.4s ease-in-out infinite; }
@keyframes rvGlow{ 50%{ box-shadow:0 0 0 5px rgba(194,59,59,.08); } }
.rv-card.c-final{ border-color:#c6dbf3; background:linear-gradient(90deg, #f2f7fd, #fff 40%); }
.rv-card.c-todo{ border-color:#dacff0; background:linear-gradient(90deg, #f6f2fd, #fff 40%); }
.rv-card.c-small{ padding:.6rem .9rem; opacity:.85; }
@keyframes rvIn{ from{ opacity:0; transform:translateY(6px); } to{ opacity:1; transform:none; } }
.rv-when{ display:flex; flex-direction:column; align-items:flex-start; }
.rv-when b{ font-family:'DM Sans', sans-serif; font-weight:800; font-size:1.45rem; line-height:1; white-space:nowrap; }
.rv-when span{ font-size:.74rem; font-weight:700; color:var(--mute); text-transform:uppercase; letter-spacing:.04em; margin-top:.2rem; }
.rv-who{ display:flex; flex-direction:column; gap:.15rem; min-width:0; }
.rv-who > b{ display:flex; align-items:center; gap:.5rem; font-size:1.02rem; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.rv-who > span{ font-size:.8rem; color:var(--mute); }
.rv-party{ flex:0 0 auto; min-width:30px; height:30px; padding:0 6px; border-radius:9px; display:inline-flex; align-items:center; justify-content:center; background:#5C3913; color:#fff; font-family:'DM Sans', sans-serif; font-weight:800; font-size:1.05rem; }
.rv-flags{ display:flex; flex-wrap:wrap; gap:.3rem; }
.fl{ font-style:normal; font-size:.7rem; font-weight:700; padding:.12rem .45rem; border-radius:999px; background:#f1ede7; color:var(--ink2); }
.fl-mail{ background:#fff1d6; color:#8a5a00; }
.fl-move{ background:#e9f1fb; color:#1f5fa5; } .fl-dup{ background:#fff1d6; color:#8a5a00; } .fl-practice{ background:#fff1d6; color:#8a5a00; }
.rv-wait{ font-size:.74rem; font-weight:800; padding:.32rem .6rem; border-radius:999px; background:#eef6ff; color:#1f4f82; white-space:nowrap; font-variant-numeric:tabular-nums; }
.rv-wait.w-warn{ background:#fff1d6; color:#8a5a00; }
.rv-wait.w-late{ background:#c23b3b; color:#fff; animation:rvBreath 1.6s ease-in-out infinite; }
.rv-wait.w-later{ background:#f1ede7; color:var(--ink2); }
.rv-wait.w-final{ background:#e6f0fb; color:#1f5fa5; }
.rv-wait.w-add{ background:#f1ebfb; color:#6a44b3; } .rv-wait.w-rm{ background:#fdeeee; color:var(--red); }
.rv-go{ color:#bdb3a7; font-weight:800; }
.st-tag{ font-size:.7rem; font-weight:800; padding:.25rem .55rem; border-radius:999px; white-space:nowrap; }
.s-pending{ --st:#c23b3b; } .s-tentative{ --st:#2a7fd4; } .s-confirmed{ --st:#1f8a3d; } .s-rebook{ --st:#d98a00; } .s-canceled, .s-expired{ --st:#8b8177; }
.st-tag.s-pending{ background:#fdeeee; color:#a3302a; } .st-tag.s-tentative{ background:#e6f0fb; color:#1f5fa5; } .st-tag.s-confirmed{ background:#e3f5e8; color:#1f6b35; }
.st-tag.s-rebook{ background:#fff1d6; color:#8a5a00; } .st-tag.s-canceled, .st-tag.s-expired{ background:#eee; color:#666; }

.rv-empty{ display:flex; align-items:center; gap:1.2rem; text-align:left; padding:1rem .6rem; }
.rv-empty-t{ min-width:0; }
.rv-empty-art{ flex:0 0 96px; width:96px; height:96px; margin:0; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:2.6rem;
  background:conic-gradient(from 0deg, #FDA92A, #F7853A, #F5595E, #E05781, #F5595E, #FDA92A); animation:rvSpin 14s linear infinite; }
.rv-empty-art span{ width:80px; height:80px; border-radius:50%; background:#fff; display:flex; align-items:center; justify-content:center; animation:rvSpin 14s linear infinite reverse; }
@keyframes rvSpin{ to{ transform:rotate(360deg); } }
.rv-empty h2{ font-family:'Shrikhand', serif; font-weight:400;  font-size:1.7rem; }
.rv-empty p{ color:var(--mute); max-width:46ch; margin:.25rem 0 0; line-height:1.5; }
.rv-tip{ margin-top:1.4rem; padding:.9rem 1rem; border-radius:14px; background:#f7f5f2; border:1px dashed #d9d1c6; display:flex; flex-direction:column; gap:.25rem; font-size:.86rem; color:var(--ink2); line-height:1.5; }
.rv-tip .linkish{ padding:0; font-size:inherit; }
.rv-blocks{ list-style:none; margin-top:.4rem; display:flex; flex-direction:column; gap:.25rem; }
.rv-blocks small{ color:var(--mute); }

/* review */
.rv-rhead{ display:flex; align-items:center; gap:.7rem; margin-bottom:1rem; }
.rv-rk{ flex:1; font-size:.78rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:var(--ink2); }
.rv-rh{ font-size:1.2rem; margin-bottom:.6rem; }
.rv-guest{ animation:rvIn .3s ease; }
.rv-big{ display:grid; grid-template-columns:auto 1fr; gap:.7rem; margin-bottom:1rem; }
.rv-big > div{ display:flex; flex-direction:column; justify-content:center; padding:.9rem 1.2rem; border-radius:18px; background:#1b1712; color:#fff; position:relative; overflow:hidden; }
.rv-big > div:last-child{ background:linear-gradient(135deg, #c23b3b, #e0561f 60%, #f3a712); }
.rv-big > div::after{ content:''; position:absolute; inset:auto -20% -60% auto; width:140px; height:140px; border-radius:50%; background:rgba(255,255,255,.08); }
.rv-big small{ font-size:.72rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; opacity:.75; }
.rv-big b{ font-family:'DM Sans', sans-serif; font-weight:800; font-size:2.6rem; line-height:1.05; }
.rv-gi h3{ font-size:1.45rem; font-family:'Fraunces', serif; }
.rv-gi{ display:flex; flex-direction:column; gap:.3rem; }
.rv-phone{ align-self:flex-start; font-size:1.25rem; font-weight:800; color:var(--ink); text-decoration:none; padding:.3rem .7rem; margin-left:-.7rem; border-radius:10px; }
.rv-phone:hover, .rv-phone:active{ background:#f3efe9; }
.rv-email{ font-size:.92rem; color:var(--ink2); word-break:break-all; }
.rv-meta{ font-size:.8rem; color:var(--mute); }
.rv-notes{ margin-top:.9rem; padding:.8rem 1rem; border-radius:14px; background:#fffbea; border:1px solid #f3e3a3; display:flex; flex-direction:column; gap:.2rem; font-size:.95rem; }
.rv-notes b{ font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; color:#8a6a00; }
.rv-flag-box{ margin-top:.8rem; padding:.75rem .9rem; border-radius:12px; font-size:.88rem; line-height:1.45; }
.rv-flag-box.warn{ background:#fff4dc; border:1px solid #f0d08b; color:#6b4b00; }
.rv-flag-box.mail{ background:#fff4dc; border:1px solid #f0d08b; color:#6b4b00; }
.rv-flag-box.move{ background:#eef5fd; border:1px solid #c6dbf3; color:#1f4f82; }
.rv-steps{ list-style:none; counter-reset:s; margin:1.2rem 0 .8rem; display:flex; flex-direction:column; gap:.55rem; }
.rv-steps li{ counter-increment:s; position:relative; padding-left:2.4rem; font-size:.95rem; line-height:1.45; color:var(--ink2); }
.rv-steps li::before{ content:counter(s); position:absolute; left:0; top:-1px; width:26px; height:26px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-weight:800; font-size:.8rem; background:#f1ede7; color:var(--ink); }
.rv-tent{ padding:.7rem .9rem; border-radius:12px; background:#eef5fd; color:#1f4f82; font-size:.88rem; line-height:1.45; margin-bottom:.8rem; }
.rv-toast{ display:flex; align-items:center; gap:.9rem; padding:1rem 1.1rem; border-radius:16px; border:2px dashed #d0c6b9; background:#faf8f5; cursor:pointer; transition:all .2s ease; user-select:none; }
.rv-toast input{ position:absolute; opacity:0; pointer-events:none; }
.rv-tbox{ flex:0 0 34px; height:34px; border-radius:10px; border:2px solid #c9beb0; background:#fff; display:flex; align-items:center; justify-content:center; color:transparent; font-weight:900; font-size:1.1rem; transition:all .2s cubic-bezier(.2,.9,.3,1.6); }
.rv-toast > span:last-child{ display:flex; flex-direction:column; }
.rv-toast small{ font-size:.78rem; color:var(--mute); }
.rv-toast.on{ border-style:solid; border-color:var(--ok); background:#eef9f1; }
.rv-toast.on .rv-tbox{ background:var(--ok); border-color:var(--ok); color:#fff; transform:scale(1.08); }
.rv-toast.pop .rv-tbox{ animation:rvPop .35s ease; }
@keyframes rvPop{ 50%{ transform:scale(1.25); } }
.rv-toast:has(input:focus-visible){ box-shadow:0 0 0 3px rgba(42,127,212,.3); }
.rv-acts{ display:grid; grid-template-columns:1.3fr 1fr; gap:.7rem; margin-top:1rem; }
.rv-acts-sm{ grid-template-columns:1fr 1fr; }
.rv-acts .p-btn{ padding:1.05rem 1rem; font-size:1.02rem; border-radius:14px; white-space:normal; }
.rv-yes{ background:var(--ok); color:#fff; box-shadow:0 8px 20px -8px rgba(31,138,61,.7); }
.rv-yes:hover{ background:var(--ok2); }
.rv-yes:disabled{ background:#d9d3cb; color:#8b8177; box-shadow:none; cursor:not-allowed; }
.rv-no{ background:#fff; color:var(--red); border:2px solid #efc3c3; }
.rv-no:hover, .rv-no.on{ background:var(--red); color:#fff; border-color:var(--red); }
.rv-no:disabled{ opacity:.5; cursor:not-allowed; }
.rv-danger{ color:var(--red); }
.rv-fine{ font-size:.78rem; color:var(--mute); margin-top:.6rem; }
.rv-todo{ margin-top:1rem; padding:1rem 1.1rem; border-radius:14px; background:#f6f2fd; border:1px solid #dacff0; display:flex; flex-direction:column; gap:.3rem; font-size:.92rem; line-height:1.45; }
.rv-todo.remove{ background:#fdf2f2; border-color:#f0c4c4; }
.rv-outcome{ display:flex; align-items:center; gap:.6rem; margin-top:1rem; flex-wrap:wrap; }
.rv-outcome span{ font-weight:700; margin-right:auto; }
.rv-more{ margin-top:1.4rem; border-top:1px solid var(--line); padding-top:.9rem; }
.rv-more summary{ cursor:pointer; font-weight:700; font-size:.88rem; color:var(--ink2); }
.rv-more .f-input{ margin:.7rem 0 .5rem; }
.rv-hist{ list-style:none; margin-top:.9rem; display:flex; flex-direction:column; gap:.5rem; }
.rv-hist li{ display:flex; flex-direction:column; font-size:.84rem; padding-left:.9rem; border-left:2px solid #ece7e0; }
.rv-hist span{ font-size:.75rem; color:var(--mute); }

/* the call screen */
.rv-callnow{ text-align:center; padding:1.4rem 1rem; border-radius:18px; background:radial-gradient(120% 120% at 50% 0%, #fff4e0, #fff 70%); border:1px solid #f1dfb8; animation:rvIn .3s ease; }
.rv-ck{ font-size:.78rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:#8a5a00; }
.rv-dial{ display:inline-block; margin:.5rem 0; font-family:'DM Sans', sans-serif; font-weight:800; font-size:clamp(2rem, 4.4vw, 2.8rem); color:var(--ink); text-decoration:none; padding:.2rem 1rem; border-radius:16px; animation:rvRingPhone 2.4s ease-in-out infinite; }
@keyframes rvRingPhone{ 0%, 70%, 100%{ transform:none; } 74%{ transform:rotate(-2deg); } 78%{ transform:rotate(2deg); } 82%{ transform:rotate(-1deg); } }
.rv-dial:active{ background:#fff0d2; }
.rv-callnow p{ color:var(--ink2); }
.rv-script{ max-width:46ch; margin:.8rem auto 0; font-family:'Fraunces', serif; font-style:italic; font-size:.98rem; line-height:1.5; color:var(--ink2); }
.rv-q{ font-weight:800; margin:1.3rem 0 .6rem; }
.rv-q small{ font-weight:500; color:var(--mute); }
.rv-outs{ display:grid; grid-template-columns:1fr 1fr; gap:.6rem; margin-bottom:1rem; }
.rv-out{ display:flex; flex-direction:column; gap:.3rem; text-align:left; padding:1rem 1.05rem; border-radius:16px; border:1.5px solid var(--line); background:#fff; transition:transform .18s ease, border-color .18s ease, box-shadow .18s ease; }
.rv-out b{ font-size:1rem; }
.rv-out span{ font-size:.82rem; color:var(--mute); line-height:1.4; }
.rv-out:hover, .rv-out:active{ transform:translateY(-2px); border-color:var(--ink); box-shadow:0 12px 24px -16px rgba(27,23,18,.5); }
@media (max-width:560px){ .rv-outs, .rv-acts, .rv-acts-sm{ grid-template-columns:1fr; } }
.rv-alt-day{ display:flex; gap:.4rem; align-items:center; margin-bottom:.7rem; }
.rv-alt-day .f-input{ max-width:200px; }
.rv-alt-slots{ display:grid; grid-template-columns:repeat(auto-fill, minmax(86px, 1fr)); gap:.4rem; max-height:220px; overflow-y:auto; }
.rv-slot{ padding:.65rem .3rem; border-radius:11px; border:1.5px solid var(--line); background:#fff; font-weight:700; font-size:.88rem; }
.rv-slot.dim{ color:var(--mute); border-style:dashed; }
.rv-slot.on{ background:#1b1712; color:#fff; border-color:#1b1712; }
.rv-alt-pick{ display:flex; flex-wrap:wrap; gap:.4rem; margin-top:.8rem; }
.rv-alt-pick .chip{ display:inline-flex; align-items:center; gap:.4rem; padding:.35rem .4rem .35rem .75rem; border-radius:999px; background:#1b1712; color:#fff; font-size:.84rem; font-weight:700; }
.rv-alt-pick .chip button{ border:none; background:rgba(255,255,255,.15); color:#fff; width:22px; height:22px; border-radius:50%; font-size:.7rem; }
.rv-chg{ display:grid; grid-template-columns:1.2fr 1fr .6fr; gap:.7rem; margin-bottom:1rem; }
@media (max-width:560px){ .rv-chg{ grid-template-columns:1fr 1fr; } }

/* the day */
.rv-day-h{ display:flex; align-items:center; gap:.6rem; }
.rv-day-h > div{ flex:1; text-align:center; }
.rv-day-h h2{ font-family:'Shrikhand', serif; font-weight:400;  font-size:1.5rem; line-height:1; }
.rv-day-h small{ font-size:.78rem; color:var(--mute); }
.rv-ctx{ margin-top:.7rem; padding:.5rem .7rem; border-radius:10px; background:#fff4dc; color:#6b4b00; font-size:.8rem; text-align:center; }
.rv-sum{ display:grid; grid-template-columns:repeat(3, 1fr); gap:.5rem; margin:.9rem 0 .8rem; }
.rv-sum div{ display:flex; flex-direction:column; align-items:center; padding:.55rem; border-radius:12px; background:#f7f5f2; }
.rv-sum b{ font-family:'DM Sans', sans-serif; font-weight:800; font-size:1.5rem; line-height:1; }
.rv-sum span{ font-size:.7rem; font-weight:700; color:var(--mute); text-transform:uppercase; letter-spacing:.06em; }
.rv-bars{ display:flex; align-items:flex-end; gap:3px; height:84px; padding:0 .1rem; border-bottom:1px solid var(--line); }
.rv-bar{ flex:1; height:100%; position:relative; display:flex; flex-direction:column; justify-content:flex-end; align-items:stretch; border-radius:6px 6px 0 0; }
.rv-bar .b{ display:block; background:linear-gradient(180deg, #f3a712, #e0561f); border-radius:5px 5px 0 0; min-height:0; transition:height .5s cubic-bezier(.2,.9,.3,1); }
.rv-bar .p{ display:block; background:repeating-linear-gradient(45deg, #c23b3b 0 4px, #e88b8b 4px 8px); border-radius:5px 5px 0 0; order:-1; opacity:.8; }
.rv-bar small{ position:absolute; bottom:-18px; left:50%; transform:translateX(-50%); font-size:.6rem; color:var(--mute); font-weight:700; }
.rv-bar.mine{ background:rgba(42,127,212,.12); box-shadow:inset 0 0 0 2px #2a7fd4; }
.rv-legend{ display:flex; gap:.9rem; flex-wrap:wrap; font-size:.7rem; color:var(--mute); margin:1.5rem 0 .6rem; }
.rv-legend i{ display:inline-block; width:10px; height:10px; border-radius:3px; margin-right:.3rem; vertical-align:-1px; }
.rv-legend .b{ background:#f3a712; } .rv-legend .p{ background:repeating-linear-gradient(45deg, #c23b3b 0 3px, #e88b8b 3px 6px); } .rv-legend .m{ box-shadow:inset 0 0 0 2px #2a7fd4; }
.rv-rows{ list-style:none; display:flex; flex-direction:column; gap:.35rem; }
.rv-row{ display:flex; align-items:center; gap:.4rem; border-radius:12px; border:1px solid var(--line); border-left:4px solid var(--st, #ddd); background:#fff; transition:background .2s; }
.rv-row.s-pending{ border-style:dashed; border-left-style:solid; background:#fffafa; }
.rv-row.mine{ background:#eef5fd; border-color:#2a7fd4; box-shadow:0 0 0 3px rgba(42,127,212,.15); animation:rvIn .4s ease; }
.rv-row.o-noshow{ opacity:.55; }
.rv-row-main{ flex:1; min-width:0; display:grid; grid-template-columns:70px 34px minmax(0, 1fr); gap:.6rem; align-items:center; padding:.6rem .7rem; border:none; background:none; text-align:left; }
.rv-row .t{ font-weight:800; font-size:.92rem; font-variant-numeric:tabular-nums; white-space:nowrap; }
.rv-row .pt{ height:26px; border-radius:8px; display:flex; align-items:center; justify-content:center; background:#f1ede7; font-weight:800; font-size:.86rem; }
.rv-row .nm{ display:flex; flex-direction:column; min-width:0; }
.rv-row .nm b{ font-size:.92rem; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.rv-row .nm small{ font-size:.72rem; color:var(--mute); }
.rv-o{ display:flex; gap:.3rem; padding-right:.5rem; }
.rv-o button{ width:38px; height:38px; border-radius:11px; border:1.5px solid var(--line); background:#fff; font-weight:900; color:#8b8177; transition:all .15s ease; }
.rv-o button.on{ background:var(--ok); border-color:var(--ok); color:#fff; }
.rv-o button.ns.on{ background:#8b8177; border-color:#8b8177; color:#fff; }
.rv-this{ font-size:.7rem; font-weight:800; color:#1f5fa5; padding-right:.7rem; white-space:nowrap; }
.rv-none{ text-align:center; padding:1rem 0; }
.rv-wrap{ width:100%; margin-top:1rem; padding:.95rem; border-radius:14px; background:linear-gradient(100deg, #1b1712, #3a2a1c); color:#fff; border:none; }
.rv-wrap:hover{ filter:brightness(1.15); background:linear-gradient(100deg, #1b1712, #3a2a1c); }
.rv-wrap-list{ list-style:none; display:flex; flex-direction:column; gap:.4rem; margin:1rem 0; }
.rv-wrap-list label{ display:flex; gap:.8rem; align-items:center; padding:.7rem .85rem; border-radius:12px; border:1.5px solid var(--line); cursor:pointer; }
.rv-wrap-list label:has(input:checked){ border-color:var(--ok); background:#f2faf4; }
.rv-wrap-list input{ width:20px; height:20px; accent-color:var(--ok); }
.rv-wrap-list span{ display:flex; flex-direction:column; }
.rv-wrap-list small{ color:var(--mute); font-size:.78rem; }

/* settings */
.rv-stats{ display:grid; grid-template-columns:repeat(4, 1fr); gap:.5rem; }
.rv-stats div{ display:flex; flex-direction:column; align-items:center; padding:.8rem .4rem; border-radius:14px; background:linear-gradient(160deg, #fff7e8, #fdeee4); }
.rv-stats b{ font-family:'DM Sans', sans-serif; font-weight:800; font-size:1.7rem; line-height:1; }
.rv-stats span{ font-size:.7rem; font-weight:700; text-transform:uppercase; letter-spacing:.05em; color:var(--mute); }
.rv-h3{ font-size:1rem; margin:1.6rem 0 .2rem; }
.rv-hrs{ display:flex; flex-direction:column; gap:.4rem; margin-top:.7rem; }
.rv-hr{ display:grid; grid-template-columns:44px 80px 1fr auto 1fr; gap:.5rem; align-items:center; font-size:.88rem; }
.rv-hr .f-input{ padding:.5rem .6rem; }
.rv-hr:has([data-open]:not(:checked)) .f-input, .rv-hr:has([data-open]:not(:checked)) > span{ opacity:.35; pointer-events:none; }

/* full-screen alert */
.rv-alert{ position:fixed; inset:0; z-index:300; display:flex; align-items:center; justify-content:center; padding:1.2rem; background:rgba(27,23,18,0); -webkit-backdrop-filter:blur(0); backdrop-filter:blur(0); transition:background .25s ease, backdrop-filter .25s ease; }
.rv-alert.on{ background:rgba(27,23,18,.62); -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px); }
.rva-card{ width:min(460px, 100%); text-align:center; padding:2rem 1.6rem 1.5rem; border-radius:26px; background:#fff; box-shadow:0 40px 80px -20px rgba(0,0,0,.55); transform:translateY(20px) scale(.94); opacity:0; transition:all .35s cubic-bezier(.2,.9,.3,1.3); position:relative; overflow:hidden; }
.rva-card::before{ content:''; position:absolute; left:0; right:0; top:0; height:8px; background:repeating-linear-gradient(90deg, #E05781 0 60px, #F5595E 60px 120px, #F7853A 120px 180px, #FDA92A 180px 240px); animation:rsvStripP 8s linear infinite; }
@keyframes rsvStripP{ to{ background-position:240px 0; } }
.rv-alert.on .rva-card{ transform:none; opacity:1; }
.rva-ring{ position:relative; width:92px; height:92px; margin:0 auto .9rem; display:flex; align-items:center; justify-content:center; }
.rva-ring b{ font-size:2.6rem; animation:rvBell 1.2s ease-in-out infinite; transform-origin:50% 10%; }
@keyframes rvBell{ 0%, 60%, 100%{ transform:rotate(0); } 10%{ transform:rotate(14deg); } 20%{ transform:rotate(-12deg); } 30%{ transform:rotate(8deg); } 40%{ transform:rotate(-5deg); } }
.rva-ring span{ position:absolute; inset:0; border-radius:50%; border:3px solid #c23b3b; opacity:0; animation:rvWave 2.1s ease-out infinite; }
.rva-ring span:nth-child(2){ animation-delay:.7s; } .rva-ring span:nth-child(3){ animation-delay:1.4s; }
@keyframes rvWave{ from{ transform:scale(.6); opacity:.9; } to{ transform:scale(1.6); opacity:0; } }
.rva-k{ font-size:.78rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:var(--red); }
.rva-card h2{ font-family:'Shrikhand', serif; font-weight:400;  font-size:2rem; line-height:1.05; margin:.4rem 0 .3rem; }
.rva-n{ font-size:1.1rem; color:var(--ink2); }
.rva-n span{ display:inline-block; margin-left:.4rem; font-size:.78rem; font-weight:800; padding:.15rem .5rem; border-radius:999px; background:#fdeeee; color:var(--red); }
.rva-acts{ display:grid; grid-template-columns:1.4fr 1fr; gap:.6rem; margin-top:1.3rem; }
.rva-acts .p-btn{ padding:1rem; font-size:1rem; border-radius:14px; }
.rva-snd{ margin-top:.9rem; font-size:.78rem; color:var(--mute); }

/* accept burst */
.rv-burst{ position:fixed; left:50%; top:62%; z-index:320; pointer-events:none; }
.rv-burst i{ position:absolute; width:10px; height:14px; border-radius:3px; background:var(--c); opacity:0; animation:rvUp 1.35s linear var(--d) forwards; }
/* up like a fountain, then a gentle fall */
@keyframes rvUp{
  0%{ opacity:1; transform:translate(0, 0) rotate(0); animation-timing-function:cubic-bezier(.2,.7,.4,1); }
  45%{ opacity:1; transform:translate(calc(var(--x) * .7), calc(var(--h) * -1)) rotate(calc(var(--r) * .5)); animation-timing-function:cubic-bezier(.5,0,.8,.6); }
  100%{ opacity:0; transform:translate(var(--x), calc(var(--h) * -.35)) rotate(var(--r)); } }

/* tutorial */
.rv-tour{ position:fixed; inset:0; z-index:400; opacity:0; transition:opacity .25s ease; }
.rv-tour.on{ opacity:1; }
.rvt-dim{ position:absolute; inset:0; background:rgba(27,23,18,.62); }
.rvt-hole{ position:absolute; border-radius:20px; box-shadow:0 0 0 9999px rgba(27,23,18,.62), 0 0 0 3px #f3a712, 0 0 30px 6px rgba(243,167,18,.5); transition:all .35s cubic-bezier(.2,.9,.3,1); pointer-events:none; }
.rvt-card{ position:absolute; width:min(420px, calc(100vw - 32px)); padding:1.3rem 1.3rem 1.1rem; border-radius:20px; background:#fff; box-shadow:0 30px 60px -15px rgba(0,0,0,.5); animation:rvIn .3s ease; }
.rvt-center{ left:50%; top:50%; transform:translate(-50%, -50%); animation:none; }
.rvt-dots{ display:flex; gap:5px; margin-bottom:.8rem; }
.rvt-dots i{ flex:1; height:4px; border-radius:4px; background:#ece7e0; }
.rvt-dots i.on{ background:#f3a712; } .rvt-dots i.done{ background:#1f8a3d; }
.rvt-card h3{ font-family:'Shrikhand', serif; font-weight:400;  font-size:1.45rem; line-height:1.1; }
.rvt-card p{ margin-top:.5rem; font-size:.95rem; line-height:1.55; color:var(--ink2); }
.rvt-acts{ display:flex; justify-content:flex-end; gap:.5rem; margin-top:1.1rem; }
.rvt-acts .p-btn:first-child{ margin-right:auto; }

/* team tab additions */
.tab-presets{ display:flex; gap:.4rem; flex-wrap:wrap; margin-top:.5rem; }
.alert-list{ list-style:none; display:flex; flex-direction:column; gap:.35rem; margin:.6rem 0; }
.alert-list li{ display:flex; justify-content:space-between; align-items:center; gap:.5rem; padding:.5rem .7rem; border-radius:10px; background:#f7f5f2; font-size:.9rem; }
.alert-add{ display:flex; gap:.5rem; }
.r-host{ background:#fff1d6; color:#8a5a00; }
/* events: reservations toggle */
.ev-resv{ margin-top:1.2rem; padding:1rem; border-radius:14px; border:1.5px solid var(--line); background:#faf9f7; }
.ev-resv .tog{ padding:0; }
.ev-resv .seg{ margin:.8rem 0 0; }
.ev-resv .time-row{ margin-top:.6rem; }
.kind.k-resv{ background:#fdeeee; color:var(--red); }

@media (max-width:760px){
  .sidenav{ justify-content:flex-start; overflow-x:auto; scrollbar-width:none; }
  .sidenav::-webkit-scrollbar{ display:none; }
  .sidenav .sn-item{ flex:0 0 auto; min-width:76px; position:relative; }
  .rv-top{ align-items:stretch; }
  .rv-tools{ width:100%; } .rv-search{ flex:1; } .rv-search input{ width:100%; }
  .rv-card{ grid-template-columns:70px minmax(0, 1fr) 16px; } .rv-card .rv-wait, .rv-card .st-tag{ grid-column:2; justify-self:start; }
  .rv-big b{ font-size:2.1rem; }
  .rv-left{ padding:1rem; }
}
@media (prefers-reduced-motion: reduce){
  .rv-card.c-new, .rv-wait.w-late, .rva-ring b, .rva-ring span, .rv-dial, .rv-empty-art, .rv-empty-art span, .rv-live i, .rv-pz-ic{ animation:none !important; }
}

/* toolbar: Wrap up tonight (grayed out until 30 minutes before close) */
.rv-wrapbtn{ display:inline-flex; flex-direction:column; align-items:center; justify-content:center; line-height:1.1; gap:.1rem; }
.rv-wrapbtn small{ font-size:.66rem; font-weight:600; opacity:.8; }
.rv-wrapbtn:disabled{ opacity:.55; cursor:not-allowed; filter:grayscale(1); }
.rv-wrapbtn.is-on{ background:linear-gradient(100deg, #1b1712, #3a2a1c); color:#fff; box-shadow:0 8px 20px -10px rgba(27,23,18,.7); animation:wrapGlow 2.4s ease-in-out infinite; }
@keyframes wrapGlow{ 50%{ box-shadow:0 8px 24px -6px rgba(243,167,18,.6); } }
@media (prefers-reduced-motion: reduce){ .rv-wrapbtn.is-on{ animation:none; } }
