/* Open Sale - look of mockup R5-01 Glass Wash, copied as is (do not redraw). */
:root{
  --ink:#0E0E14; --ink2:#4B5060; --ink3:#6B6F7C;
  --acc:#2F6FED; --acc-d:#2F6FED; --acc-l:#E6EEFF;
  --grad:linear-gradient(135deg,#2F6FED,#5B9BFF);
  --gshadow:0 8px 18px -8px rgba(47,111,237,.55);
  --sans:'Geist',system-ui,'Segoe UI',Arial,sans-serif;
  --mono:'JetBrains Mono',ui-monospace,Consolas,monospace;
  --disp:'Sora','Geist',system-ui,sans-serif;
  --ok:#15803D; --ok-bg:rgba(34,197,94,.14); --ok-bd:rgba(34,197,94,.32);
  --no:#BE123C; --no-bg:rgba(244,63,94,.11); --no-bd:rgba(244,63,94,.3);
  --wait:#7E22CE; --wait-bg:rgba(126,34,206,.1);
  --info:#2557C4; --info-bg:rgba(47,111,237,.12);
  --g-bg:rgba(255,255,255,.62); --g-bg2:rgba(255,255,255,.78); --g-bd:rgba(255,255,255,.92);
  --g-blur:blur(22px) saturate(150%);
  --g-sh:0 0 0 1px rgba(15,23,42,.06),0 20px 42px -26px rgba(40,60,120,.28),0 2px 10px rgba(40,60,120,.05),inset 0 1px 0 rgba(255,255,255,.9);
  --line:rgba(40,60,120,.14);
  --r:20px; --rs:14px; --rp:999px;
  --fld:rgba(255,255,255,.7);
}
body.mod{
  --g-bg:#fff; --g-bg2:#fff; --g-bd:#DCDEE8; --g-blur:none; --g-sh:none;
  --r:6px; --rs:4px; --rp:6px; --line:#E8E8EE; --fld:#fff;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font:15px/1.5 var(--sans);color:var(--ink);background:#F8F8FB;min-height:100vh;font-feature-settings:"tnum" 1}
body.mod{background:#F8F8FB;font-size:13px;line-height:1.4}
button,input,select,textarea{font:inherit;color:inherit}
a{color:inherit}
h1,h2,h3,p{margin:0}
.ic{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none}

/* background: ONE soft linear wash over the whole page (no shapes, no edges). Glass lies on top of it. */
.bg{position:fixed;inset:0;z-index:-1;
  background:linear-gradient(125deg,#DCE7FF 0%,#EAF0FF 24%,#F6F7FC 50%,#F4EFFF 76%,#E8DDFF 100%)}
body.mod .bg{background:#F8F8FB}

.glass{background:var(--g-bg);-webkit-backdrop-filter:var(--g-blur);backdrop-filter:var(--g-blur);border:1px solid var(--g-bd);box-shadow:var(--g-sh);border-radius:var(--r)}
.glass.strong{background:var(--g-bg2)}

/* shell */
.app{max-width:1720px;margin:0 auto;padding:12px 24px 44px}
/* the header pill is sticky glass: the page scrolls under it */
.top{display:flex;align-items:center;gap:18px;padding:0 12px 0 22px;border-radius:var(--rp);position:sticky;top:12px;z-index:30;margin-bottom:16px;height:64px}
body:not(.mod) .top{background:rgba(255,255,255,.46);-webkit-backdrop-filter:blur(20px) saturate(170%);backdrop-filter:blur(20px) saturate(170%)}
.logo{display:flex;align-items:center;gap:12px;text-decoration:none}
.logo-img{height:34px;width:auto;display:block;flex:none}
.logo-sep{width:1px;height:26px;background:rgba(15,23,42,.12);flex:none}
.logo b{display:block;font-family:var(--disp);font-size:16px;font-weight:700;letter-spacing:-.005em;line-height:1.15}
.logo i{display:block;font-style:normal;font-size:11.5px;color:var(--ink2);letter-spacing:.14em;text-transform:uppercase;font-weight:600}
.sp{flex:1}
.seg{display:inline-flex;padding:3px;border-radius:var(--rp);background:rgba(255,255,255,.55);border:1px solid var(--g-bd)}
body.mod .seg{background:#F8F8FB;border-color:#DCDEE8}
.seg button{border:0;background:transparent;padding:6px 14px;border-radius:var(--rp);cursor:pointer;font-weight:600;font-size:13px;color:var(--ink2)}
.seg button.on{background:#fff;color:var(--ink);box-shadow:0 1px 4px rgba(40,60,120,.14),0 0 0 1px rgba(47,111,237,.55)}
/* EN / RU: soft lavender track, active = white pill with blue bold text */
.seg.lang{padding:4px;gap:2px;border:0;border-radius:12px;background:#ECEEF8}
.seg.lang button{padding:7px 14px;border-radius:9px;font-size:13px;font-weight:600;color:#8A90A6}
.seg.lang button.on{background:#fff;color:#2F55D4;font-weight:700;box-shadow:0 1px 3px rgba(40,60,130,.12)}
.user{position:relative}
.uchip{display:flex;align-items:center;gap:10px;padding:5px 12px 5px 5px;border-radius:var(--rp);border:1px solid var(--g-bd);background:rgba(255,255,255,.55);cursor:pointer;text-align:left}
body.mod .uchip{background:#fff;border-color:#DCDEE8}
.av{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:13px;background:linear-gradient(160deg,#5B9BFF,#2F6FED);color:#FFFFFF;flex:none}
.uchip span{display:block;line-height:1.2}
.uchip .av{display:grid}
.uchip .un{font-weight:700;font-size:13.5px}
.uchip .uc{font-size:12px;color:var(--ink2)}
.menu{position:absolute;right:0;top:calc(100% + 8px);min-width:210px;padding:8px;display:none;z-index:50;background:rgba(255,255,255,.94)}
.menu.open{display:block}
.menu a,.menu button{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;border:0;background:none;text-decoration:none;border-radius:12px;cursor:pointer;font-weight:600;font-size:14px;text-align:left}
body.mod .menu a,body.mod .menu button{border-radius:4px}
.menu.glass.strong{background:rgba(255,255,255,.99)}
.menu a:hover,.menu button:hover{background:rgba(47,111,237,.16)}
.menu hr{border:0;border-top:1px solid var(--line);margin:6px 4px}

.ri{display:flex;flex-direction:column;align-items:center;gap:5px;padding:12px 4px 10px;border-radius:20px;text-decoration:none;font-size:11.5px;font-weight:600;color:var(--ink2);text-align:center;line-height:1.2;position:relative}
body.mod .ri{border-radius:4px}
.ri:hover{background:rgba(255,255,255,.6);color:var(--ink)}
.ri.on{background:rgba(255,255,255,.92);color:var(--ink);box-shadow:0 2px 14px rgba(40,60,120,.12)}
.ri.on .ic{color:var(--acc-d)}
.ri .ic{width:24px;height:24px}
/* top navigation: the glass pill is the only menu */
.tnav{min-width:0;display:flex;justify-content:flex-start;align-items:center;gap:4px}
.tn{display:inline-flex;align-items:center;gap:8px;padding:9px 16px;border-radius:var(--rp);font-size:14px;font-weight:600;color:var(--ink2);text-decoration:none;white-space:nowrap;transition:background .15s,color .15s}
.tn .ic{width:18px;height:18px}
.tn:hover{background:rgba(47,111,237,.1);color:var(--acc-d)}
.tn.on{background:var(--grad);color:#FFFFFF;box-shadow:var(--gshadow)}
.tn:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
body.mod .tn{border-radius:4px;font-size:13px;padding:8px 14px}
body.mod .tn.on{background:#2F6FED;box-shadow:none}
.tright{display:flex;align-items:center;gap:12px;margin-left:auto;justify-self:end}
.main{min-width:0}
.dock{display:none}

/* typography/page head */
.head{display:flex;align-items:flex-end;gap:20px;flex-wrap:wrap;margin:6px 4px 18px}
.head h1{font-family:var(--disp);font-size:42px;font-weight:700;letter-spacing:-.03em;line-height:1.1;position:relative;padding-left:20px}
.head h1::before,.si-l h1::before{content:"";position:absolute;left:0;top:.14em;bottom:.14em;width:5px;border-radius:3px;background:var(--grad)}
.head h1 b,.si-l h1 b{font-weight:800;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent}
.head p{color:var(--ink2);margin-top:6px;max-width:640px}
.head .grow{flex:1;min-width:240px}
.eyebrow{font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:var(--acc-d);display:flex;align-items:center;gap:10px;margin-bottom:8px}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;border:0;cursor:pointer;font-weight:700;font-size:14.5px;padding:12px 22px;border-radius:var(--rp);text-decoration:none;white-space:nowrap;transition:transform .12s,box-shadow .12s,background .12s}
.btn.pri{background:var(--grad);color:#FFFFFF;box-shadow:var(--gshadow),0 1px 0 rgba(255,255,255,.5) inset}
.btn.pri:hover{transform:translateY(-1px);box-shadow:0 12px 22px -8px rgba(47,111,237,.62),0 1px 0 rgba(255,255,255,.5) inset}
.btn.gh{background:rgba(255,255,255,.62);border:1px solid var(--g-bd);color:var(--ink);box-shadow:0 2px 10px rgba(40,60,120,.06)}
.btn.gh:hover{background:rgba(255,255,255,.95)}
.btn.dg{background:rgba(255,255,255,.62);border:1px solid var(--no-bd);color:var(--no)}
.btn.dg:hover{background:var(--no-bg)}
.btn.sm{padding:8px 14px;font-size:13px}
.btn[disabled]{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}
.btn:focus-visible,.pill:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,.seg button:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
body.mod .btn{border-radius:4px;padding:6px 12px;font-size:12.5px}
body.mod .btn.pri{background:#2F6FED;box-shadow:none}
body.mod .btn.pri:hover{transform:none;box-shadow:none;background:#1F55C8}
body.mod .btn.gh{box-shadow:none;background:#fff;border-color:#D3D6E2}
body.mod .btn.dg{background:#fff}

/* fields */
.fl{display:block}
.fl>span{display:block;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink2);margin:0 0 6px 4px}
.in,.sel,.ta{width:100%;border:1px solid rgba(255,255,255,.9);background:var(--fld);border-radius:14px;padding:11px 14px;box-shadow:0 1px 0 rgba(255,255,255,.8) inset,0 0 0 1px rgba(40,60,120,.1);font-size:15px;min-height:46px}
.in:focus,.sel:focus,.ta:focus{outline:none;box-shadow:0 0 0 2px var(--acc),0 6px 20px rgba(47,111,237,.18)}
.sel{appearance:none;-webkit-appearance:none;padding-right:38px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%234B5060' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;cursor:pointer}
.ta{resize:vertical;min-height:70px}
.ferr{color:var(--no);font-size:13px;font-weight:600;margin:6px 4px 0}

/* callouts / chips */
.callout{display:flex;gap:12px;align-items:flex-start;padding:13px 16px;border-radius:var(--rs);font-size:14px;border:1px solid var(--line);background:rgba(255,255,255,.55)}
.callout .ic{margin-top:1px}
.callout.bad{background:var(--no-bg);border-color:var(--no-bd);color:#9F1239}
.callout.ok{background:var(--ok-bg);border-color:var(--ok-bd);color:#15803D}
.callout.info{background:rgba(47,111,237,.16);border-color:rgba(47,111,237,.45);color:#1E40AF}
.chip{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:8px;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;line-height:1.5;border:1px solid transparent;white-space:nowrap}
.nc .chip{text-transform:none;letter-spacing:0;font-size:12.5px;border-radius:var(--rp)}
body.mod .chip{border-radius:3px;padding:1px 7px;font-size:11px}
.chip.wait{background:var(--wait-bg);color:var(--wait);border-color:rgba(126,34,206,.3)}
.chip.ok{background:var(--ok-bg);color:var(--ok);border-color:var(--ok-bd)}
.chip.info{background:var(--info-bg);color:var(--info);border-color:rgba(47,111,237,.28)}
.chip.done{background:rgba(107,111,124,.12);color:#4B5060;border-color:rgba(107,111,124,.26)}
.chip.bad{background:var(--no-bg);color:var(--no);border-color:var(--no-bd)}
.chip.mute{background:rgba(107,111,124,.1);color:var(--ink2);border-color:rgba(107,111,124,.22)}
.chip .ic{width:13px;height:13px;stroke-width:2.4}

/* hub tiles */
.tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:16px}
.tile{position:relative;overflow:hidden;display:flex;align-items:center;gap:16px;padding:16px 20px;text-decoration:none;border-radius:var(--r);transition:transform .15s,box-shadow .15s}
/* soft pastel glow INSIDE the card corner (like the demo KPI cards); clipped by the card, not on the page */
.tile::before{content:"";position:absolute;right:-46px;top:-56px;width:230px;height:200px;border-radius:50%;background:radial-gradient(closest-side,var(--tg,rgba(91,155,255,.5)),transparent);pointer-events:none}
.tile:nth-child(1){--tg:rgba(91,155,255,.46)}
.tile:nth-child(2){--tg:rgba(110,215,170,.5)}
.tile:nth-child(3){--tg:rgba(196,160,240,.5)}
.tile>*{position:relative}
.tile:hover{transform:translateY(-2px);box-shadow:0 0 0 1px rgba(15,23,42,.06),0 24px 44px -24px rgba(40,60,120,.36),inset 0 1px 0 rgba(255,255,255,.9)}
.tile .tic{width:46px;height:46px;border-radius:15px;display:grid;place-items:center;background:rgba(255,255,255,.85);box-shadow:0 0 0 1px rgba(15,23,42,.05),0 6px 14px -8px rgba(47,111,237,.5);color:var(--acc-d);flex:none}
.tile b{display:block;font-size:16px;font-weight:700}
.tile span{display:block;color:var(--ink2);font-size:13.5px}
.tile .go{margin-left:auto;color:var(--ink3)}

/* open sale */
.panel{padding:22px 24px;margin-bottom:16px}
.fl-row{display:flex;gap:18px;align-items:flex-start;margin-bottom:16px}
.fl-row:last-child{margin-bottom:0}
.fl-row>label{width:70px;flex:none;padding-top:10px;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink2)}
.pills{display:flex;flex-wrap:wrap;gap:8px;min-width:0}
.pill{border:1px solid rgba(255,255,255,.9);background:rgba(255,255,255,.5);padding:8px 16px;border-radius:var(--rp);cursor:pointer;font-weight:600;font-size:14px;color:var(--ink2);box-shadow:0 1px 6px rgba(40,60,120,.05)}
.pill:hover{background:rgba(255,255,255,.9);color:var(--ink)}
.pill.on{background:#fff;color:var(--ink);font-weight:700;border-color:var(--acc);box-shadow:0 0 0 3px rgba(47,111,237,.2),0 4px 14px rgba(47,111,237,.14)}
.pill.mo{padding:6px 14px;text-align:center;line-height:1.15;min-width:66px}
.pill.mo small{display:block;font-family:var(--mono);font-size:10.5px;font-weight:500;color:var(--ink3)}
.pill.mo b{font-size:15px;text-transform:capitalize}
.pill.mo.all b{text-transform:none}
.gridhead{display:flex;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:16px}
.gridhead h2{font-family:var(--disp);font-size:23px;font-weight:700;letter-spacing:-.02em}
.gridhead .sub{color:var(--ink2);font-size:14px}
.legend{display:flex;gap:16px;align-items:center;flex-wrap:wrap;font-size:13px;font-weight:600;color:var(--ink2)}
.legend span{display:inline-flex;align-items:center;gap:8px}
.cell{height:36px;border-radius:11px;display:grid;place-items:center;position:relative}
.cell .ic{width:15px;height:15px;stroke-width:2.6}
.cell .dn{display:none}
.cell.open{background:rgba(34,197,94,.17);border:1px solid rgba(34,197,94,.36);color:var(--ok);box-shadow:0 1px 0 rgba(255,255,255,.6) inset}
.cell.closed{background:rgba(255,255,255,.38);border:1px dashed rgba(107,111,124,.35);color:#9AA0B0}
.cell.closed .ic{stroke-width:1.8;width:12px;height:12px}
.cell.we{filter:saturate(.8)}
.sw{width:22px;height:18px;border-radius:7px;display:inline-grid;place-items:center}
.sw.open{background:rgba(34,197,94,.22);border:1px solid rgba(34,197,94,.4);color:var(--ok)}
.sw.closed{background:rgba(255,255,255,.4);border:1px dashed rgba(107,111,124,.4);color:#9AA0B0}
.sw .ic{width:11px;height:11px;stroke-width:2.8}
.sw.today{border:2px solid var(--acc);background:#fff;width:14px;height:14px;border-radius:50%}
.dh{text-align:center;line-height:1.1;font-size:10.5px;color:var(--ink3);font-weight:600;padding-bottom:4px}
.dh .d{display:block;font-family:var(--mono);font-size:12.5px;font-weight:600;color:var(--ink);margin-top:2px}
.dh.we .d{color:var(--acc-d)}
.dh.td .d{background:var(--acc);color:#FFFFFF;border-radius:20px;padding:0 3px;margin:2px auto 0;width:max-content;min-width:22px}
.crow{display:grid;grid-template-columns:240px minmax(0,1fr);gap:14px;align-items:center;padding:6px 0;border-top:1px solid var(--line)}
.crow.hd{border-top:0;padding-bottom:0}
.cname b{display:block;font-size:14.5px;font-weight:700;line-height:1.25}
.cname small{color:var(--ink3);font-size:12.5px}
.days{display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr));gap:4px}
.wk{display:none}
.pill{user-select:none;-webkit-user-select:none}
/* hotel / month switchers: the Reservation Snapshot tab strip (white bar, blue gradient pill for the selected) */
.tabs{display:flex;align-items:center;flex-wrap:wrap;gap:2px;padding:6px 8px;margin-bottom:10px;background:#fff;border:1px solid rgba(214,222,240,.7);border-radius:16px;box-shadow:0 6px 22px rgba(40,60,130,.08)}
.tabs .pill{display:inline-flex;align-items:center;height:36px;padding:0 14px;border:0;border-radius:11px;background:none;box-shadow:none;font-size:13px;font-weight:600;color:#596176;white-space:nowrap;transition:background .15s,color .15s}
.tabs .pill:hover:not(.on){background:#EEF2FD;color:#2A4FC4}
.tabs .pill.on{color:#fff;font-weight:700;background:linear-gradient(135deg,#2F66E8 0%,#4F8DF7 100%);box-shadow:0 6px 16px rgba(47,102,232,.32);border:0}
.tabs .tabs-cta{margin-left:auto;height:40px;flex:none}
@media (max-width:760px){.tabs .tabs-act{position:sticky;right:0;padding-left:14px;background:linear-gradient(90deg,rgba(255,255,255,0),#fff 14px)}.tabs .tabs-cta{padding:0 14px}.pickbar{bottom:84px!important;padding:12px}.pb-info{min-width:0;flex-basis:100%}.pb-act{width:100%;justify-content:flex-end}.tabs{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tabs .pill{flex:none}}
.pill.mo.all{display:flex;align-items:center;justify-content:center}
/* date picking on Open Sale: "Choose dates" button, selected cells, floating summary bar, tip */
.tabs-act{margin-left:auto;display:flex;align-items:center;gap:8px;flex:none}
.tabs .tabs-pick{height:40px;flex:none;padding:0 18px;font-size:14px;font-weight:700;color:#fff;border:0;background:var(--grad);box-shadow:var(--gshadow)}
.tabs .tabs-pick:hover{filter:brightness(1.05)}
@media (max-width:1500px){.tabs .tabs-pick{width:40px;padding:0;justify-content:center}.tabs .tabs-pick span{display:none}}
@media (max-width:1400px){.tabs{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tabs .pill{flex:none}.tabs .tabs-act{position:sticky;right:0;padding-left:16px;background:linear-gradient(90deg,rgba(255,255,255,0),#fff 16px)}}
.tabs .tabs-pick.on{background:rgba(47,111,237,.12);color:#1F4FD1;box-shadow:inset 0 0 0 1.5px var(--acc)}
.pickmode .cell.open{cursor:pointer}
.pickmode .cell.open:hover{border-color:rgba(47,111,237,.75);background-color:rgba(34,197,94,.27)}
.pickmode .cell.closed{cursor:not-allowed}
.cell.open.pk-in{border-color:#2F6FED;background-image:linear-gradient(rgba(47,111,237,.2),rgba(47,111,237,.2));box-shadow:inset 0 0 0 1px #2F6FED}
.cell.open.pk-st{border:2px dashed #2F6FED;background-image:linear-gradient(rgba(47,111,237,.1),rgba(47,111,237,.1))}
.pickbar{display:none;position:sticky;bottom:16px;z-index:40;margin-top:14px;padding:10px 12px 10px 18px;align-items:center;gap:16px;flex-wrap:wrap;border-radius:22px;box-shadow:0 0 0 1px rgba(15,23,42,.06),0 18px 40px -14px rgba(40,60,120,.38),inset 0 1px 0 rgba(255,255,255,.9)}
.pickbar.show{display:flex}
body:not(.bare):not(.thumb) .pickbar{bottom:72px}
.pb-info{flex:1;min-width:260px;display:flex;align-items:center;gap:14px}
.hlogo.sm{height:28px;width:68px}
.pb-t{font-size:14.5px;font-weight:600;color:var(--ink2);line-height:1.35}
.pb-t b{color:var(--ink);font-weight:700}
.pb-act{display:flex;align-items:center;gap:6px;flex:none}
.pb-act .btn{padding:10px 20px}
.pb-act .pb-clear{background:none;color:var(--ink2);padding:10px 14px}
.pb-act .pb-clear:hover{background:rgba(47,111,237,.1);color:var(--acc-d)}
.pktip{position:fixed;z-index:140;display:flex;align-items:center;gap:8px;width:max-content;max-width:min(340px,calc(100vw - 16px));padding:9px 14px;border-radius:12px;background:#fff;border:1px solid var(--no-bd);color:#9F1239;font-size:13px;font-weight:600;line-height:1.3;box-shadow:0 10px 30px -8px rgba(40,60,120,.35);pointer-events:none;animation:fade .15s}
.pktip .ic{width:16px;height:16px}
.hint{margin:12px 0 0 88px;font-size:11.5px;line-height:1.3;color:var(--ink3);opacity:.75;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* open sale grid: fixed day column (40px cell + 4px gap), months continue to the right, names stay on the left */
.mob{display:none}
.dsk{--nw:240px;--stk:#F8FAFF;overflow:auto;max-height:max(420px,calc(100vh - 290px));scrollbar-width:thin;scrollbar-color:var(--acc) rgba(47,111,237,.12)}
@supports selector(::-webkit-scrollbar){
  .dsk{scrollbar-width:auto;scrollbar-color:auto}
  .dsk::-webkit-scrollbar{width:8px;height:8px}
  .dsk::-webkit-scrollbar-track{background:rgba(47,111,237,.12);border-radius:8px}
  .dsk::-webkit-scrollbar-thumb{background:var(--acc);border-radius:8px}
  .dsk::-webkit-scrollbar-corner{background:transparent}
}
.gin{position:relative;width:max-content;min-width:100%}
.dsk .crow{grid-template-columns:calc(var(--nw) + 14px) max-content;column-gap:0}
.dsk .cname,.dsk .stk{position:sticky;left:0;z-index:3;align-self:stretch;display:flex;align-items:center;padding-right:14px}
.dsk.sc .cname,.dsk.sc .stk{background:var(--stk)}
.dsk .days{column-gap:4px}
.dsk .ms{justify-self:end;width:36px}
/* header (month row + day row) sticks to the top of the table's own scroll; opaque once the table is scrolled down */
.hdr{position:sticky;top:0;z-index:6;box-shadow:0 1px 0 var(--line)}
.dsk.st .hdr,.dsk.sc .hdr{background:var(--stk)}
.hdr+.crow{border-top:0}
.dsk .hdr .stk{z-index:4}
.crow.mr{border-top:0;padding:0 0 4px}
.mlab{position:relative;font-size:12.5px;font-weight:700;color:#1F4FD1;white-space:nowrap;line-height:22px}
.mlab::before{content:"";position:absolute;left:0;right:0;top:0;bottom:0;border-radius:8px;background:rgba(47,111,237,.07)}
.mlab.sep{padding-left:10px}
.mlab.sep::before{left:10px}
.mlab span{position:sticky;left:calc(var(--nw) + 14px);display:inline-block;padding:0 10px}
.hgrp{margin-top:14px;padding-top:14px;border-top:1px solid #E8E8EE}
.hgrp.first{margin-top:8px;padding-top:0;border-top:0}
.hrow{background:rgba(47,111,237,.06);border-radius:10px;padding:10px 14px;display:flex;align-items:center}
.hrow+.crow,.hgrp+.crow{border-top:0}
.hname{font-family:var(--disp);font-size:17px;font-weight:700;letter-spacing:-.01em;line-height:1.2;white-space:nowrap}
.hname{display:inline-flex;align-items:center;gap:14px}
.hlogo{height:40px;width:96px;object-fit:contain;object-position:left center;flex:none}
.hrow .hname,.hname.mh{display:inline-flex;align-items:center;gap:14px}
.hrow .hname{position:sticky;left:14px;display:inline-flex;align-items:center;gap:14px}
.mline{position:absolute;top:0;bottom:0;width:2px;background:#C9D8FA;z-index:1;pointer-events:none}
.note{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:16px;color:var(--ink2);font-size:13.5px}

/* sign in */
.si{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:36px;align-items:center;min-height:calc(100vh - 140px);padding:10px 16px}
.si-l h1{font-family:var(--disp);font-size:54px;font-weight:700;letter-spacing:-.035em;line-height:1.06;margin:6px 0 16px;position:relative;padding-left:24px}
.si-l>p{color:var(--ink2);font-size:17px;max-width:520px}
.bul{display:flex;gap:10px;flex-wrap:wrap;margin:26px 0 28px}
.bul span{display:inline-flex;align-items:center;gap:9px;padding:9px 16px;border-radius:var(--rp);background:rgba(255,255,255,.55);border:1px solid var(--g-bd);font-weight:600;font-size:14px;box-shadow:0 2px 10px rgba(40,60,120,.05)}
.bul .ic{color:var(--acc-d);width:17px;height:17px}
.peek{max-width:520px;padding:18px 20px}
.peek h3{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink2);margin-bottom:10px}
.peek .pr{display:grid;grid-template-columns:140px 1fr;gap:10px;align-items:center;padding:5px 0}
.peek .pr b{font-size:13px;font-weight:600}
.peek .dots{display:grid;grid-template-columns:repeat(14,1fr);gap:3px}
.peek .dots i{height:14px;border-radius:5px;display:block}
.peek .dots i.o{background:rgba(34,197,94,.35);border:1px solid rgba(34,197,94,.4)}
.peek .dots i.c{background:rgba(255,255,255,.4);border:1px dashed rgba(107,111,124,.35)}
.si-r{display:flex;justify-content:center}
.card{width:100%;max-width:470px;padding:30px 32px 28px}
.card h2{font-family:var(--disp);font-size:25px;font-weight:700;letter-spacing:-.02em;margin-bottom:4px}
.card .lead{color:var(--ink2);font-size:14px;margin-bottom:18px}
.card .seg{width:100%;margin-bottom:22px}
.card .seg button{flex:1;padding:9px 6px;font-size:13px}
.stack{display:grid;gap:16px}
.demo{margin-top:20px;font-size:12.5px;color:var(--ink2)}
.demo .row{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.demo button{border:1px solid var(--line);background:rgba(255,255,255,.6);border-radius:var(--rp);padding:5px 12px;cursor:pointer;font-size:12.5px;font-weight:600}
.demo button:hover{background:#fff;border-color:var(--acc)}
.steps{display:flex;gap:6px;margin-bottom:16px}
.steps i{height:4px;flex:1;border-radius:4px;background:rgba(40,60,120,.14)}
.steps i.on{background:var(--acc)}
.code{font-family:var(--mono);letter-spacing:.5em;font-size:22px;text-align:center;font-weight:700}
.fl>.code-row{display:flex;gap:8px;align-items:stretch;margin:0;font-size:inherit;font-weight:inherit;letter-spacing:normal;text-transform:none;color:inherit}.code-row .in{flex:1;min-width:0}.code-row .btn{flex:none}
.back{border:0;background:none;color:var(--ink2);cursor:pointer;font-weight:600;font-size:13.5px;display:inline-flex;gap:6px;align-items:center;padding:4px 0;margin-bottom:10px}

/* check */
.cols{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:18px;align-items:start}
.sec{font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--acc-d);margin:2px 4px 12px;display:flex;align-items:center;gap:10px}
.sec::after{content:"";height:1px;background:var(--line);flex:1}
.two{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.rrow{display:grid;grid-template-columns:minmax(0,1fr) 132px 40px;gap:10px;align-items:center;margin-bottom:10px}
.step{display:flex;align-items:center;background:var(--fld);border-radius:14px;box-shadow:0 0 0 1px rgba(40,60,120,.1);height:46px;overflow:hidden}
.step button{width:38px;height:100%;border:0;background:none;cursor:pointer;display:grid;place-items:center;color:var(--ink2)}
.step button:hover{background:rgba(47,111,237,.2)}
.step output{flex:1;text-align:center;font-family:var(--mono);font-weight:600}
input[type=date]{font-family:var(--mono);font-size:14px}
.x{width:40px;height:40px;border:0;background:rgba(255,255,255,.5);border-radius:50%;cursor:pointer;color:var(--ink3);display:grid;place-items:center}
.x:hover{color:var(--no);background:var(--no-bg)}
.verdict{display:flex;align-items:center;gap:16px;padding:6px 4px 14px}
.vi{width:54px;height:54px;border-radius:50%;display:grid;place-items:center;flex:none}
.vi .ic{width:26px;height:26px;stroke-width:2.4}
.verdict.yes .vi{background:var(--ok-bg);color:var(--ok);box-shadow:0 0 0 6px rgba(34,197,94,.08)}
.verdict.no .vi{background:var(--no-bg);color:var(--no);box-shadow:0 0 0 6px rgba(244,63,94,.07)}
.verdict h3{font-family:var(--disp);font-size:21px;font-weight:700;letter-spacing:-.02em;line-height:1.2}
.verdict p{color:var(--ink2);font-size:14px;margin-top:2px}
.nights{display:grid;gap:8px;max-height:520px;overflow:auto;padding:2px 4px 2px 0;margin:14px 0}
.night{display:grid;grid-template-columns:104px 1fr;gap:12px;align-items:center;padding:9px 14px;border-radius:16px;background:rgba(255,255,255,.55);border:1px solid rgba(255,255,255,.85)}
.night.no{background:var(--no-bg);border-color:var(--no-bd)}
.night time{font-family:var(--mono);font-weight:600;font-size:13px}
.night time small{font-family:var(--sans)}
.night time small{display:block;font-weight:500;color:var(--ink3);font-size:12px}
.nc{display:flex;flex-wrap:wrap;gap:6px}
.sendbar{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding-top:6px}
.sendbar p{color:var(--ink2);font-size:13.5px;flex:1;min-width:200px}
.empty{padding:34px 20px;text-align:center;color:var(--ink2)}
.empty .ic{width:36px;height:36px;color:var(--acc);margin-bottom:10px}

/* modal */
.mb{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:20px;background:rgba(232,238,252,.4);animation:fade .18s ease}
.modal{width:100%;max-width:520px;padding:28px 30px;animation:pop .22s cubic-bezier(.2,.9,.3,1.1);box-shadow:0 0 0 1px rgba(15,23,42,.07),0 36px 70px -28px rgba(40,60,120,.45),inset 0 1px 0 rgba(255,255,255,.95);max-height:92vh;overflow:auto;background:rgba(255,255,255,.74)}
.modal h2{font-family:var(--disp);font-size:23px;font-weight:700;letter-spacing:-.02em;margin-bottom:16px}
.dl{display:grid;grid-template-columns:110px 1fr;gap:10px 14px;margin:0 0 18px;font-size:14.5px}
.dl dt{color:var(--ink2);font-weight:600;font-size:13px;padding-top:1px}
.dl dd{margin:0;font-weight:600}
.dl dd small{display:block;font-weight:500;color:var(--ink2)}
.macts{display:flex;gap:12px;justify-content:flex-end;flex-wrap:wrap;margin-top:20px}
.done{text-align:center;padding:6px 0 2px}
.done .vi{margin:0 auto 14px;width:68px;height:68px;background:var(--ok-bg);color:var(--ok);box-shadow:0 0 0 8px rgba(34,197,94,.08)}
.done h2{margin-bottom:8px}
.done p{color:var(--ink2)}
.toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%);z-index:120;padding:12px 22px;border-radius:var(--rp);background:rgba(14,14,20,.92);color:#fff;font-weight:600;font-size:14px;box-shadow:0 12px 40px rgba(0,0,0,.2);animation:fade .2s}
body.mod .toast{border-radius:4px}
@keyframes fade{from{opacity:0}to{opacity:1}}
@keyframes pop{from{opacity:0;transform:translateY(10px) scale(.97)}to{opacity:1;transform:none}}

/* requests */
.rq{display:grid;grid-template-columns:minmax(300px,380px) minmax(0,1fr);gap:18px;align-items:start}
.rlist{padding:14px;display:grid;gap:8px;position:sticky;top:92px}
.rf{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:6px}
.rf .pill{padding:6px 13px;font-size:13px}
.ri2{display:block;text-decoration:none;padding:13px 16px;border-radius:18px;background:rgba(255,255,255,.5);border:1px solid rgba(255,255,255,.85);position:relative}
.ri2:hover{background:rgba(255,255,255,.88)}
.ri2.on{background:#fff;border-color:var(--acc);box-shadow:0 0 0 3px rgba(47,111,237,.16),0 6px 20px rgba(47,111,237,.12)}
.ri2 .t{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:5px}
.ri2 .t b{font-family:var(--mono);font-size:13.5px;font-weight:600;white-space:nowrap;flex:none}
.ri2 .t .chip{white-space:normal;text-align:right;line-height:1.25;font-size:10px;letter-spacing:.04em;padding:3px 8px}
.ri2 .h{font-weight:600;font-size:14px}
.ri2 .m{color:var(--ink2);font-size:13px}
.ri2 .t+.h+.m{font-family:var(--mono);font-size:12px}
.case{padding:26px 28px}
.ch{display:flex;align-items:flex-start;gap:14px;flex-wrap:wrap;margin-bottom:6px}
.ch h2{font-family:var(--mono);font-size:28px;font-weight:600;letter-spacing:-.03em}
.ch h2 b{font-weight:700}
.ch .grow{flex:1;min-width:200px}
.sumgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 28px;margin:18px 0 20px;padding:18px 20px;border-radius:18px;background:rgba(255,255,255,.5);border:1px solid rgba(255,255,255,.85)}
.sumgrid div small{display:block;font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink3);font-weight:700}
.sumgrid div b{font-size:15px}
.sumgrid div:nth-child(2) b,.sumgrid div:nth-child(6) b{font-family:var(--mono);font-size:13.5px;font-weight:500}
.acts{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:24px}
.tl{list-style:none;margin:0 0 26px;padding:0 0 0 6px}
.tl li{position:relative;padding:0 0 16px 28px}
.tl li::before{content:"";position:absolute;left:5px;top:6px;bottom:-6px;width:1.5px;background:linear-gradient(var(--acc-l),rgba(47,111,237,.2))}
.tl li:last-child::before{display:none}
.tl li::after{content:"";position:absolute;left:0;top:5px;width:12px;height:12px;border-radius:50%;background:#fff;border:2.5px solid var(--acc)}
.tl b{font-size:14.5px}
.tl .w{color:var(--ink2);font-size:13px}
.tl .n{font-size:13.5px;color:var(--ink);margin-top:2px;font-style:italic}
.mail{border-radius:18px;background:rgba(255,255,255,.55);border:1px solid rgba(255,255,255,.88);margin-bottom:10px;overflow:hidden}
.mail summary{list-style:none;cursor:pointer;display:flex;gap:12px;align-items:center;padding:12px 16px}
.mail summary::-webkit-details-marker{display:none}
.mail summary .ic{color:var(--acc-d)}
.mail summary .s{flex:1;min-width:0}
.mail summary .s b{display:block;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mail summary .s span{font-size:12.5px;color:var(--ink2)}
.mail[open] summary{border-bottom:1px solid var(--line)}
.mb2{padding:14px 18px 16px}
.mhead{display:grid;grid-template-columns:62px 1fr;gap:4px 10px;font-size:13px;margin-bottom:12px}
.mhead dt{color:var(--ink3);font-weight:600}
.mhead dd{margin:0}
.mtext{white-space:pre-wrap;font-size:14px;line-height:1.55}
.mhist{margin-top:12px;padding-top:10px;border-top:1px dashed var(--line);font-size:12.5px;color:var(--ink2);white-space:pre-wrap}
.att{display:inline-flex;gap:8px;align-items:center;margin-top:12px;padding:7px 13px;border-radius:12px;background:rgba(47,111,237,.18);border:1px solid rgba(47,111,237,.4);font-weight:600;font-size:13px}
.att .ic{width:16px;height:16px;color:var(--acc-d)}

/* rooming */
.pick{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px;margin-bottom:16px}
.pk{display:block;text-align:left;width:100%;padding:16px 20px;border-radius:20px;border:1px solid rgba(255,255,255,.9);background:rgba(255,255,255,.5);cursor:pointer}
.pk.on{background:#fff;border-color:var(--acc);box-shadow:0 0 0 3px rgba(47,111,237,.18),0 8px 26px rgba(47,111,237,.14)}
.pk b{font-size:16px}
.pk>span:not(.chip){display:block;color:var(--ink2);font-size:13.5px}
.pk .chip{margin-left:6px}
.rtab{display:grid;gap:8px}
.rt{display:grid;grid-template-columns:minmax(150px,1.3fr) 150px 150px minmax(150px,1.2fr) minmax(160px,1.2fr) 42px;gap:10px;align-items:center}
.rt.hd{font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;font-weight:700;color:var(--ink2);padding:0 4px}
.rt .in,.rt .sel{min-height:42px;padding:8px 12px;font-size:14px}
.rt .sel{padding-right:30px}
.ractions{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-top:18px}
.ractions .sp{min-width:10px}
.draft{display:flex;gap:8px;align-items:center;color:var(--ink2);font-size:13px}
.draft .ic{width:16px;height:16px;color:var(--acc-d)}

/* moderator: flat, dense */
.mod-bar{display:flex;gap:18px;align-items:center;flex-wrap:wrap;padding:10px 14px;margin-bottom:10px;border:1px solid var(--g-bd);background:#fff;border-radius:6px}
.mod-bar h1{font-family:var(--disp);font-size:18px;font-weight:700;letter-spacing:-.01em}
.kpi{display:flex;gap:6px;align-items:baseline;font-size:12.5px;color:var(--ink2)}
.kpi b{font-family:var(--mono);font-size:16px;color:var(--ink)}
.msec{margin-bottom:12px;border:1px solid #DCDEE8;border-radius:6px;background:#fff;overflow:hidden}
.msec>h2{display:flex;align-items:center;gap:10px;margin:0;padding:7px 12px;font-size:12px;letter-spacing:.07em;text-transform:uppercase;font-weight:800;background:#F4F5F9;border-bottom:1px solid #E8E8EE}
.msec>h2 small{font-weight:500;text-transform:none;letter-spacing:0;color:var(--ink2);font-size:12px}
.msec.urg>h2{background:#FFF1F3;color:#9F1239;border-bottom-color:#FBCFD8}
.msec.cmp>h2{background:#F5EEFF;color:#6B21A8;border-bottom-color:#E3D0F8}
.mt{width:100%;border-collapse:collapse;font-size:12.5px}
.mt th{text-align:left;font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink3);font-weight:700;padding:5px 10px;border-bottom:1px solid #E8E8EE;white-space:nowrap}
.mt td{padding:6px 10px;border-bottom:1px solid #EFEFF4;vertical-align:top}
.mt tr:last-child>td{border-bottom:0}
.mt tbody tr.mr:hover td{background:#F6F7FB}
.mt .id,.cmpc h3 .id{font-family:var(--mono);font-weight:700;white-space:nowrap}
.mt td[style*="nowrap"]{font-family:var(--mono);font-size:12px}
.mt .sub{color:var(--ink2);font-size:12px}
.fr{display:flex;justify-content:space-between;gap:10px;font-size:12.5px}
.fr b{font-family:var(--mono);font-size:12px;font-weight:600}
.fr.low b{color:#BE123C}
.fr.low{color:#BE123C}
.mt .ac{white-space:nowrap;text-align:right}
.mt .ac .btn+.btn{margin-left:4px}
.flag{display:inline-block;font-size:10.5px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;padding:1px 6px;border-radius:3px;margin-right:4px}
.flag.u{background:#BE123C;color:#fff}
.flag.c{background:#E9D5FF;color:#581C87}
.hist{color:var(--ink2);font-size:12px;margin-top:3px}
.hist div{white-space:nowrap}
.rejrow td{background:#FFF5F7;border-bottom:1px solid #FBCFD8}
.rejrow .in{min-height:32px;padding:5px 10px;font-size:13px;border-radius:4px;box-shadow:none;border:1px solid #E8B4C0;background:#fff}
.rejrow .in:focus{box-shadow:0 0 0 2px #2F6FED}
.cmpwrap{display:grid;grid-template-columns:1fr 1fr;gap:0}
.cmpc{padding:10px 12px;border-right:1px solid #EFEFF4}
.cmpc:last-child{border-right:0}
.cmpc h3{display:flex;gap:8px;align-items:center;margin-bottom:6px;font-size:13px}
.cmpc .kv{display:grid;grid-template-columns:96px 1fr;gap:3px 8px;font-size:12.5px;margin-bottom:8px}
.cmpc .kv dt{color:var(--ink3)}
.cmpc .kv dd{margin:0;font-weight:600}
.cmpnote{padding:7px 12px;background:#FAF6FF;border-bottom:1px solid #E3D0F8;font-size:12.5px;color:#1E40AF}
.warn{color:#BE123C;font-weight:700;font-size:12px}
.handled td{font-size:12.5px}
.hid{display:none}

/* responsive */
@media (max-width:1280px){
  .top{gap:12px}
  .tn,body.mod .tn{padding:8px 12px}
  .uchip .uc{display:none}
  .seg button{padding:6px 11px}
  .app{padding:12px 16px 36px}
  .head h1{font-size:38px}
  .crow{grid-template-columns:200px minmax(0,1fr)}
  .dsk{--nw:200px}
  .rt{grid-template-columns:minmax(130px,1.3fr) 130px 130px minmax(130px,1.2fr) minmax(130px,1.2fr) 40px}
}
@media (max-width:1100px){
  .tn span{display:none}
  .tn,body.mod .tn{padding:10px 14px}
  .tn .ic{width:20px;height:20px}
}
@media (max-width:1060px){
  .cols,.rq,.si{grid-template-columns:minmax(0,1fr)}
  .rlist{position:static}
  .si-l h1{font-size:48px}
  .tiles{grid-template-columns:1fr}
  .cmpwrap{grid-template-columns:1fr}
  .cmpc{border-right:0;border-bottom:1px solid #EFEFF4}
}
@media (max-width:760px){
  body{font-size:14.5px}
  .app{padding:10px 12px 100px}
  .top{top:10px;height:56px;padding:0 10px 0 14px;gap:8px;margin-bottom:12px;border-radius:28px}
  .top{display:flex}
  .tnav{display:none}
  body.mod .top{border-radius:6px}
  .logo b{font-size:14px}
  .logo i{display:none}
  .logo-img{height:28px}
  .logo-sep{display:none}
  .uchip{padding:3px}
  .uchip span{display:none}
  .seg button{padding:5px 10px}
  .dock{display:flex;position:fixed;left:10px;right:10px;bottom:10px;z-index:60;padding:6px;border-radius:26px;justify-content:space-around;background:rgba(255,255,255,.72);-webkit-backdrop-filter:blur(22px) saturate(150%);backdrop-filter:blur(22px) saturate(150%);border:1px solid rgba(255,255,255,.9);box-shadow:0 10px 36px rgba(40,60,120,.2)}
  body.mod .dock{border-radius:6px;background:#fff;backdrop-filter:none}
  body.thumb .dock,body.signin .dock{display:none}
  .dock .ri{flex:1;padding:8px 2px 6px;font-size:10.5px;border-radius:18px}
  .dock .ri .ic{width:22px;height:22px}
  .head{margin:2px 2px 14px;gap:12px}
  .head h1{font-size:32px}
  .head .btn{width:100%}
  .tiles{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:12px}
  .tile{padding:12px 6px;flex-direction:column;text-align:center;gap:6px;border-radius:18px}
  .tile b{font-size:13px;line-height:1.2}
  .tile span span,.tile .go{display:none}
  .tile .tic{width:38px;height:38px;border-radius:13px}
  .panel{padding:16px 14px;border-radius:20px}
  .fl-row{flex-direction:column;gap:6px}
  .fl-row>label{width:auto;padding-top:0}
  .pills{flex-wrap:nowrap;overflow-x:auto;margin:0 -14px;padding:2px 14px 8px;max-width:calc(100% + 28px);scrollbar-width:none}
  .pills::-webkit-scrollbar{display:none}
  .pill{white-space:nowrap;flex:none}
  .dsk{display:none}
  .mob{display:block}
  .hint{margin-left:0}
  .hname.mh{margin:8px 2px 10px}
  .mlabm{font-size:13px;font-weight:700;color:var(--ink2);margin:4px 2px 8px}
  .crow{display:block;border:1px solid rgba(255,255,255,.9);background:rgba(255,255,255,.45);border-radius:18px;padding:12px;margin-bottom:10px}
  .crow.hd{display:none}
  .cname{margin-bottom:8px}
  .wk{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:4px;text-align:center;font-size:10px;font-weight:700;color:var(--ink3);text-transform:uppercase}
  .days{grid-template-columns:repeat(7,minmax(0,1fr))}
  .days .cell:first-child{grid-column-start:var(--off)}
  .cell{height:44px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:1px;border-radius:12px}
  .cell .dn{display:block;font-family:var(--mono);font-size:12px;font-weight:600;line-height:1}
  .cell .ic{width:11px;height:11px;stroke-width:3}
  .cell.closed .ic{width:9px;height:9px}
  .cell.closed .dn{color:#9AA0B0;font-weight:600}
  .cell.td{box-shadow:0 0 0 2px var(--acc)}
  .gridhead h2{font-size:21px}
  .si{min-height:0;padding:0;gap:22px}
  .si-l h1{font-size:38px}
  .si-l>p{font-size:15px}
  .peek{display:none}
  .card{padding:22px 18px}
  .two{grid-template-columns:1fr}
  .rrow{grid-template-columns:minmax(0,1fr) 40px;gap:8px}
  .rrow .sel{grid-column:1/-1}
  .case{padding:18px 16px}
  .sumgrid{grid-template-columns:1fr}
  .night{grid-template-columns:1fr;gap:6px}
  .night time small{display:inline;margin-left:8px}
  .rt{grid-template-columns:1fr 1fr;padding:12px;border-radius:16px;background:rgba(255,255,255,.45)}
  .rt.hd{display:none}
  .rt>*:first-child{grid-column:1/3}
  .rt>*:nth-child(4),.rt>*:nth-child(5){grid-column:1/3}
  .modal{padding:22px 18px}
  .dl{grid-template-columns:92px 1fr}
  .mt{display:block;overflow-x:auto}
}
.pw-rules{list-style:none;margin:-4px 0 0;padding:0 4px;display:grid;gap:4px;font-size:13px;color:var(--ink2)}
.pw-rules li{display:flex;align-items:center;gap:6px}.pw-rules .ic{width:14px;height:14px;opacity:.35}
.pw-rules li.on{color:var(--ok)}.pw-rules li.on .ic{opacity:1}
.fl>.pw-row{position:relative;display:block;margin:0;font-size:inherit;font-weight:inherit;letter-spacing:normal;text-transform:none;color:inherit}
.pw-row .in{width:100%;padding-right:48px}
.pw-eye{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:38px;height:38px;border:0;border-radius:10px;background:transparent;color:var(--ink2);cursor:pointer;display:flex;align-items:center;justify-content:center}
.pw-eye:hover,.pw-eye.on{color:var(--ink);background:rgba(47,111,237,.08)}.pw-eye .ic{width:20px;height:20px}

/* ---------- step 2.04b: admin screen "Room categories & limits" (light, same glass cards; numbers here are for the admin only) ---------- */
.cm-head{margin:4px 4px 14px}
.cm-head h1{font-family:var(--disp);font-size:24px;font-weight:700;letter-spacing:-.01em;margin-bottom:6px}
.cm-head p{color:var(--ink2);font-size:14px;max-width:920px}
.cm-head .cm-admin{display:flex;align-items:center;gap:8px;margin-top:8px;font-size:13px;color:var(--info);font-weight:600}
.cm-head .cm-admin .ic{width:16px;height:16px}
.cm-badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:10px;background:var(--wait);color:#fff;font-size:11.5px;font-weight:700;margin-left:6px;line-height:1}
.tabs .pill.on .cm-badge{background:#fff;color:#2F55D4}
.cm-scroll{overflow-x:auto;margin:0 -4px;padding:0 4px}
.cm-t{width:100%;border-collapse:collapse;font-size:14px}
.cm-t th{text-align:left;font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink3);font-weight:700;padding:6px 10px;border-bottom:1px solid var(--line);white-space:nowrap}
.cm-t td{padding:8px 10px;border-bottom:1px solid rgba(40,60,120,.08);vertical-align:middle}
.cm-t tr:last-child>td{border-bottom:0}
.cm-t .num,.cm-t th.num{text-align:right;font-family:var(--mono);white-space:nowrap}
.cm-t .ctr{text-align:center}
.cm-t .ac{text-align:right;white-space:nowrap}
.cm-t .id{font-family:var(--mono);font-weight:700;white-space:nowrap}
.cm-t tr.off>td{background:rgba(107,111,124,.07)}
.cm-t .in,.cm-t .sel{min-height:38px;padding:7px 12px;font-size:14px;border-radius:11px}
.cm-t .cm-name{min-width:220px}
.cm-t .cm-ord{width:78px}
.cm-t .cm-lim{width:92px}
.cm-t .cm-sel{min-width:230px}
.cm-t .in:disabled{opacity:.55}
.cm-off{display:inline-flex;align-items:center;gap:8px;cursor:pointer;font-size:13px;font-weight:600;color:var(--ink2)}
.cm-off input{width:18px;height:18px;accent-color:var(--no);cursor:pointer}
.cm-none{color:var(--ink3);display:flex;align-items:center;gap:8px;font-size:14px}
.cm-none .ic{width:18px;height:18px;color:var(--ok)}
.cm-hint{color:var(--ink2);font-size:13.5px;margin:0 4px 10px}
.cm-prop{font-family:var(--mono);font-size:11.5px;font-weight:600;letter-spacing:.04em;color:var(--ink3);text-transform:none;margin-left:2px}
.cm-new{border-color:rgba(126,34,206,.3)}
.cm-addrow{display:flex;gap:10px;align-items:center;margin-top:14px;flex-wrap:wrap}
.cm-addrow .in{max-width:340px;min-height:40px;padding:8px 14px;font-size:14px}
.cm-hist{padding:14px 20px;margin-bottom:16px}
.cm-hist summary{cursor:pointer;display:flex;align-items:center;gap:10px;font-weight:700;font-size:14px;list-style:none}
.cm-hist summary::-webkit-details-marker{display:none}
.cm-hist summary .ic{width:18px;height:18px;color:var(--acc-d)}
.cm-hist[open] summary{margin-bottom:10px}
@media (max-width:760px){.cm-head h1{font-size:20px}.cm-t .cm-name{min-width:170px}.cm-t .cm-sel{min-width:190px}}
