
:root{
  --bg:#f5f3ee; --surface:#fff; --ink:#1c2433; --muted:#5b6475; --line:#e3dfd5; --line2:#ece9e2;
  --brand:#1f3a5f; --brand2:#2b6a8c; --brand-soft:#e8eef5; --gold:#a9781f; --gold-soft:#fbf1da;
  --occ:#2f6aa8; --occ-soft:#dfeaf6; --pen:#d9971f; --pen-soft:#fdf0d6; --blk:#8b909a; --blk-soft:#eceef1; --free:#2e7d4f; --free-soft:#e5f3ea;
  --dirty:#b8611a; --dirty-soft:#fbeadb; --bad:#b2362e; --bad-soft:#fbe6e4;
  --shab:#eceff9; --shab-ink:#3f4a8a; --yt:#fbefd2; --rc:#e2f2ee; --rc-ink:#1f6b5c; --fast:#f6e3e3;
  --r:14px; --r-sm:9px; --shadow:0 1px 2px rgba(20,30,50,.06),0 4px 14px rgba(20,30,50,.05);
  --top:60px; --tab:66px;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans Hebrew", "Arial Hebrew", sans-serif;
  color:var(--ink); background:var(--bg); -webkit-text-size-adjust:100%;
}
*{box-sizing:border-box}
html,body{margin:0}
body{min-height:100vh; line-height:1.45; font-size:15px}
body.noscroll{overflow:hidden}
a{color:var(--brand2)}
.heb{font-family:"Times New Roman","David","Noto Serif Hebrew","Arial Hebrew",serif; font-size:1.06em; unicode-bidi:isolate}
html[lang=he] .heb, html[lang=yi] .heb{font-family:inherit}
.ic{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;flex:none;vertical-align:-4px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;inset-inline-start:-999px;top:8px;background:#fff;padding:8px 12px;border-radius:8px;z-index:99}
.skip:focus{inset-inline-start:8px}
:focus-visible{outline:3px solid #6aa3d6;outline-offset:2px;border-radius:6px}
.muted{color:var(--muted);font-weight:400}
.boot{font-size:18px;padding:24px;color:var(--muted)}

/* top bar */
.topbar{position:sticky;top:0;z-index:30;height:var(--top);display:flex;align-items:center;gap:12px;padding:0 16px;padding-top:env(safe-area-inset-top);background:var(--brand);color:#fff;box-shadow:0 2px 10px rgba(10,20,40,.18)}
.brand{display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none;min-width:0;flex:1}
.mark{width:34px;height:34px;border-radius:9px;background:rgba(255,255,255,.12);display:grid;place-items:center;color:#f2d9a2;flex:none}
.mark svg{width:24px;height:24px}
.brand-t{display:flex;flex-direction:column;min-width:0}
.brand-t strong{font-size:16px;letter-spacing:.1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.brand-t small{font-size:12px;opacity:.8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.demo-badge{flex:none;font-size:11.5px;font-weight:700;letter-spacing:.4px;background:#f2c14e;color:#3a2a00;padding:5px 9px;border-radius:999px;white-space:nowrap}
.lang{display:flex;background:rgba(255,255,255,.12);border-radius:10px;padding:3px;flex:none}
.lang button{background:none;border:0;color:#fff;font:inherit;font-size:13px;font-weight:600;padding:6px 10px;border-radius:7px;cursor:pointer;min-width:36px;min-height:32px}
.lang button[aria-pressed=true]{background:#fff;color:var(--brand)}

/* layout */
.layout{display:flex;min-height:calc(100vh - var(--top))}
.sidenav{display:none}
main{flex:1;min-width:0;padding:18px 16px 28px;outline:none}
.page{max-width:1240px;margin:0 auto}
.foot{max-width:1240px;margin:28px auto 0;color:var(--muted);font-size:12.5px;border-top:1px solid var(--line);padding-top:14px}
.tabbar{position:sticky;bottom:0;z-index:30;display:flex;background:#fff;border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom);height:calc(var(--tab) + env(safe-area-inset-bottom))}
.tab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--muted);text-decoration:none;font-size:11.5px;font-weight:600;position:relative;min-width:0}
.tab span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;padding:0 2px}
.tab .ic{width:23px;height:23px}
.tab.active{color:var(--brand)}
.tab.active::before{content:"";position:absolute;top:0;width:36px;height:3px;border-radius:0 0 3px 3px;background:var(--brand)}
.count{position:absolute;top:7px;inset-inline-start:calc(50% + 6px);background:var(--pen);color:#fff;font-size:10.5px;border-radius:999px;padding:1px 6px;font-weight:700}
@media (min-width:1000px){
  .tabbar{display:none}
  main{padding:26px 30px 40px}
  .sidenav{display:flex;flex-direction:column;gap:2px;width:236px;flex:none;padding:18px 12px;background:#fff;border-inline-end:1px solid var(--line);position:sticky;top:var(--top);height:calc(100vh - var(--top));overflow:auto}
  .side-link{display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:10px;color:var(--ink);text-decoration:none;font-weight:550;position:relative}
  .side-link:hover{background:var(--bg)}
  .side-link.active{background:var(--brand-soft);color:var(--brand)}
  .side-link .count{position:static;margin-inline-start:auto}
  .side-foot{margin-top:auto;padding:12px;border-top:1px solid var(--line);font-size:12.5px;color:var(--muted);display:flex;flex-direction:column;gap:2px}
  .side-foot strong{color:var(--ink)}
}
@media (max-width:560px){
  .brand-t small{display:none}
  .brand-t strong{font-size:14px}
  .mark{width:30px;height:30px}
  .topbar{gap:8px;padding:0 10px}
  .demo-badge{font-size:10px;padding:4px 7px;letter-spacing:.2px}
  .lang button{padding:5px 6px;min-width:30px;font-size:12px}
}
@media (max-width:480px){ .brand-t{display:none} .lang button{padding:5px 7px} }

/* page head */
.phead{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:16px}
.phead h1{margin:0;font-size:25px;letter-spacing:-.2px;color:var(--brand);font-weight:700}
.phead .sub{margin:4px 0 0;color:var(--muted);max-width:70ch}
.pactions{display:flex;gap:8px;flex-wrap:wrap}
.today{font-size:15px;color:var(--ink)}
h2{font-size:16.5px;margin:0 0 10px;display:flex;align-items:center;gap:8px;color:var(--ink)}
h2.mt{margin-top:18px}
h3{margin:0;font-size:16px}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;background:var(--brand);color:#fff;border:1px solid var(--brand);border-radius:10px;padding:9px 14px;font:inherit;font-weight:600;font-size:14.5px;cursor:pointer;text-decoration:none;min-height:42px;white-space:nowrap}
.btn:hover{background:#18304f}
.btn.ghost{background:#fff;color:var(--brand);border-color:#cdd5e0}
.btn.ghost:hover{background:var(--brand-soft)}
.btn.danger{color:var(--bad);border-color:#e7c3bf}
.btn.danger:not(.ghost){background:var(--bad);color:#fff;border-color:var(--bad)}
.btn.sm{min-height:34px;padding:5px 10px;font-size:13.5px;border-radius:8px}
.btn.lg{min-height:50px;padding:12px 22px;font-size:16px}
.btn:disabled{opacity:.45;cursor:not-allowed}
.icon-btn{display:inline-grid;place-items:center;width:40px;height:40px;border-radius:10px;border:1px solid #cdd5e0;background:#fff;color:var(--brand);cursor:pointer}

/* cards */
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow)}
.panel{padding:16px 18px;margin-bottom:16px}
.grid2{display:grid;grid-template-columns:1fr;gap:16px}
.grid2>.panel{margin-bottom:0}
.grid2{margin-bottom:16px}
@media (min-width:760px){.grid2{grid-template-columns:1fr 1fr}}
.note{color:var(--muted);font-size:13px;margin:10px 0 0}
.empty{color:var(--muted);margin:4px 0}
.more-link{display:inline-block;margin-top:10px;font-weight:600}

/* jewish strip */
.jstrip{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px;margin-bottom:16px}
.js-item{display:flex;flex-direction:column;gap:2px;padding:11px 14px;border-radius:12px;background:#fff;border:1px solid var(--line);text-decoration:none;color:var(--ink)}
.js-item>span{font-size:12.5px;color:var(--muted);display:flex;align-items:center;gap:5px}
.js-item strong{font-size:14.5px}
.js-item.ev-shabbos{background:var(--shab);border-color:#d7dcf1}
.js-item.ev-yomtov{background:var(--yt);border-color:#efdcab}
.js-item.ev-rc{background:var(--rc);border-color:#c3e3db}
.js-item.ev-fast{background:var(--fast)}

/* stats */
.stats{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:16px}
@media (min-width:700px){.stats{grid-template-columns:repeat(3,1fr)}}
@media (min-width:1150px){.stats{grid-template-columns:repeat(4,1fr)}}
.stats>.stat:last-child{grid-column:span 2}
.stat{display:flex;flex-direction:column;gap:3px;padding:13px 14px;text-decoration:none;color:var(--ink);transition:transform .12s, box-shadow .12s;min-width:0}
.stat:hover{transform:translateY(-1px);box-shadow:0 6px 18px rgba(20,30,50,.09)}
.stat-top{display:flex;align-items:center;gap:7px;min-width:0}
.stat-ic{color:var(--brand2);display:flex}
.stat-l{font-size:13px;color:var(--muted);font-weight:600;line-height:1.25}
.stat-v{font-size:27px;font-weight:700;color:var(--brand);line-height:1.15;letter-spacing:-.3px}
.stat-v small{font-size:13px;font-weight:600;color:var(--muted);letter-spacing:0}
.stat-s{font-size:12.5px;color:var(--muted);line-height:1.3}
.stat.tone-warn{border-top:3px solid var(--pen)}
.stat.tone-ok{border-top:3px solid var(--free)}
.stat.tone-urgent{border-top:3px solid var(--bad)}

/* lists */
.mini{list-style:none;margin:0;padding:0}
.mini li{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--line2)}
.mini li:last-child{border-bottom:0}
.mini a,.mini li>span:first-child{display:flex;flex-direction:column;text-decoration:none;color:var(--ink);min-width:0}
.mini a span,.mini li>span:first-child span{font-size:12.5px;color:var(--muted)}
.mini-d{font-size:12.5px;color:var(--muted);text-align:end;flex:none}
.alerts{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.alerts li{border-radius:10px;padding:9px 12px;border-inline-start:4px solid var(--pen);background:var(--pen-soft)}
.alerts li.al-urgent{border-color:var(--bad);background:var(--bad-soft)}
.alerts a{color:var(--ink);text-decoration:none;font-size:14px}

/* pills, tags */
.pill{display:inline-flex;align-items:center;font-size:12px;font-weight:700;padding:3px 9px;border-radius:999px;white-space:nowrap;background:#eee;color:#333}
.pill.st-occupied{background:var(--occ-soft);color:#1d4f86}
.pill.st-pending{background:var(--pen-soft);color:#8a5a00}
.pill.st-blocked{background:var(--blk-soft);color:#4a4f58}
.pill.st-available,.pill.st-ready,.pill.st-approved{background:var(--free-soft);color:#1f6440}
.pill.st-dirty{background:var(--dirty-soft);color:#8f4610}
.pill.st-maint,.pill.st-declined{background:var(--bad-soft);color:#8f251f}
.pill.st-cancelled,.pill.st-done{background:#efeeea;color:#555}
.cat{display:inline-block;font-size:11.5px;font-weight:700;padding:2px 8px;border-radius:6px;white-space:nowrap}
.cat-family{background:#e6eef8;color:#244f80}
.cat-man{background:#efe8f7;color:#5a3a86}
.cat-medical{background:#e3f3ef;color:#1d6656}
.tags{display:flex;flex-wrap:wrap;gap:5px}
.tag{font-size:11.5px;padding:2px 8px;border-radius:999px;background:#f1efe9;color:#4d5360;border:1px solid #e6e2d8;white-space:nowrap}
.tag.new{background:#e9f0fb;color:#264f86;border-color:#cfdcf1}
.tag.warn{background:var(--bad-soft);color:#8f251f;border-color:#efc9c5}

/* calendar toolbar */
.toolbar{display:flex;flex-direction:column;gap:10px;margin-bottom:10px}
.tb-row{display:flex;flex-wrap:wrap;gap:8px}
.seg{display:inline-flex;background:#e9e6df;border-radius:10px;padding:3px;gap:2px;flex-wrap:wrap}
.seg button{border:0;background:none;font:inherit;font-size:13.5px;font-weight:600;color:var(--muted);padding:7px 12px;border-radius:8px;cursor:pointer;min-height:36px}
.seg button[aria-pressed=true]{background:#fff;color:var(--brand);box-shadow:0 1px 3px rgba(0,0,0,.1)}
.seg.sm button{font-size:12.5px;padding:5px 10px;min-height:32px}
.filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px}
.filters label{display:flex;flex-direction:column;gap:3px;font-size:12px;font-weight:600;color:var(--muted)}
select,input[type=text],input[type=email],input[type=tel],input[type=number],input[type=date],input[type=search],textarea{font:inherit;font-size:16px;color:var(--ink);background:#fff;border:1px solid #cfd3da;border-radius:9px;padding:9px 10px;min-height:42px;width:100%;max-width:100%}
textarea{min-height:64px;resize:vertical}
[aria-invalid=true]{border-color:var(--bad)!important;background:#fff8f7}
.legend{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:12.5px;color:var(--muted);margin:4px 0 12px}
.legend span{display:inline-flex;align-items:center;gap:5px}
.sw{width:14px;height:14px;border-radius:4px;display:inline-block;border:1px solid rgba(0,0,0,.08)}
.st-occupied{background:var(--occ)}
.st-pending{background:repeating-linear-gradient(135deg,var(--pen) 0 5px,#f1c46b 5px 10px)}
.st-blocked{background:repeating-linear-gradient(45deg,#9aa0a9 0 4px,#c9ccd2 4px 8px)}
.st-available{background:#fff}
.sw.st-available{border-color:#9cc8ad;background:var(--free-soft)}
.sw-shabbos{background:var(--shab);border-color:#c8cfee}
.sw-yomtov{background:var(--yt);border-color:#e9cf8c}
.sw-rc{background:var(--rc);border-color:#a9d8cc}
.sw-fast{background:var(--fast);border-color:#e6bcbc}

.calhead{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:6px 0 10px;flex-wrap:wrap}
.caltitle{margin:0;font-size:19px;display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline;color:var(--brand)}
.caltitle .heb{color:var(--gold);font-weight:700}
.calnav{display:flex;align-items:center;gap:6px}
.calnav .btn{min-height:40px}

/* month grid */
.month{background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow)}
.mrow{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.mhead div{padding:8px 4px;text-align:center;font-size:12.5px;font-weight:700;color:var(--muted);background:#faf9f6;border-bottom:1px solid var(--line)}
.mhead .is-shabbos{color:var(--shab-ink);background:var(--shab)}
.mcell{position:relative;min-height:112px;padding:6px 6px 7px;border-inline-end:1px solid var(--line2);border-bottom:1px solid var(--line2);display:flex;flex-direction:column;gap:3px;text-decoration:none;color:var(--ink);min-width:0;overflow:hidden}
.mrow .mcell:last-child{border-inline-end:0}
.mcell:hover{background:#fbfaf7}
.mcell.out{background:#fbfaf8}
.mcell.out .dnums,.mcell.out .evs{opacity:.45}
.mcell.is-shabbos{background:var(--shab)}
.mcell.is-rc{background:var(--rc)}
.mcell.is-fast{background:var(--fast)}
.mcell.is-chm{background:#fdf7e8}
.mcell.is-yomtov{background:var(--yt)}
.mcell.is-today{box-shadow:inset 0 0 0 2px var(--brand2)}
.dnums{display:flex;justify-content:space-between;align-items:baseline;gap:4px}
.gnum{font-weight:700;font-size:15px}
.is-today .gnum{background:var(--brand2);color:#fff;border-radius:999px;min-width:24px;height:24px;display:inline-grid;place-items:center;font-size:13.5px}
.hnum{font-family:"Times New Roman","David","Noto Serif Hebrew",serif;font-size:14px;color:var(--gold);font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.evs{display:flex;flex-direction:column;gap:2px;min-width:0}
.ev{display:block;font-size:11px;line-height:1.25;font-weight:650;padding:1px 5px;border-radius:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.ev-yomtov{background:#f3d98f;color:#5b3f00}
.ev-rc{background:#bfe4da;color:#14574a}
.ev-fast{background:#efc6c6;color:#7c2020}
.ev-holiday,.ev-chm,.ev-special{background:#ece7f6;color:#4b3a7a}
.ev-parsha{background:transparent;color:var(--shab-ink);padding-inline:0;font-weight:600}
.ev-shabbos{background:#d9def4;color:#2f3a7a}
.cl{display:flex;align-items:center;gap:2px;font-size:11px;color:#7a5a12;font-weight:600}
.cl .ic{width:13px;height:13px;vertical-align:0}
.bar{display:flex;height:7px;border-radius:4px;overflow:hidden;margin-top:auto;border:1px solid #d6dbe2;background:#fff}
.bar i{display:block;height:100%}
.bar i.st-available{background:var(--free-soft)}
.cnt{font-size:11.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cnt b{color:var(--free)}
.cnt em{font-style:normal;color:#8a5a00}
.solo{margin-top:auto;font-size:11.5px;font-weight:600;padding:3px 5px;border-radius:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#fff}
.solo.st-available{color:var(--free);background:var(--free-soft)}
.solo.st-pending{color:#5b3b00}
.solo.st-blocked{color:#2d3138}
@media (max-width:700px){
  .mcell{min-height:84px;padding:4px 3px 5px;gap:2px}
  .gnum{font-size:13.5px}
  .hnum{font-size:12px}
  .ev{font-size:9.5px;padding:0 3px}
  .mcell .ev-parsha,.cnt em{display:none}
  .cl{font-size:9.5px}
  .cl .ic{display:none}
  .cnt{font-size:10px}
  .dnums{flex-direction:column;gap:0}
  .mhead div{font-size:11px;padding:6px 2px}
  .solo{font-size:9.5px;padding:2px}
}

/* week table */
.weekwrap{overflow-x:auto;background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);-webkit-overflow-scrolling:touch}
.week{border-collapse:separate;border-spacing:0;width:100%;min-width:760px;table-layout:fixed}
.week th,.week td{border-bottom:1px solid var(--line2);border-inline-end:1px solid var(--line2);padding:0;vertical-align:middle}
.week thead th{position:sticky;top:0;background:#faf9f6;z-index:2;font-weight:600;padding:6px 4px;text-align:center}
.week thead th a{display:flex;flex-direction:column;align-items:center;gap:1px;text-decoration:none;color:var(--ink)}
.week thead th .ev{max-width:100%}
.week thead th.is-shabbos{background:var(--shab)}
.week thead th.is-yomtov{background:var(--yt)}
.week thead th.is-rc{background:var(--rc)}
.week thead th.is-today .gnum{background:var(--brand2);color:#fff;border-radius:999px;padding:0 7px}
.wd{font-size:11.5px;color:var(--muted);font-weight:700}
.week .corner,.week tbody th{position:sticky;inset-inline-start:0;background:#fff;z-index:1;width:118px;text-align:start}
.week .corner{z-index:3;font-size:12px;color:var(--muted);padding:6px 10px}
.week tbody th a{display:flex;flex-direction:column;padding:6px 10px;text-decoration:none;color:var(--ink);font-size:13.5px;font-weight:650}
.week tbody th small{font-weight:500;color:var(--muted);font-size:11.5px}
.week tr.grp th{background:#f6f4ef;color:var(--brand);font-size:12.5px;padding:6px 10px;text-align:start;position:static}
.week td.is-shabbos{background:var(--shab)}
.week td.is-yomtov{background:var(--yt)}
.week td a,.week td .slot{display:block;padding:4px 0;text-decoration:none;width:100%;border:0;background:none;cursor:pointer;font:inherit}
.week td>.blk{margin:4px 0}
.blk{display:block;height:28px;margin:0;color:#fff;font-size:11.5px;font-weight:650;overflow:visible;white-space:nowrap;position:relative}
.blk>span{position:absolute;inset-inline-start:7px;top:50%;transform:translateY(-50%);z-index:1;overflow:hidden;text-overflow:ellipsis;text-shadow:0 1px 1px rgba(0,0,0,.25)}
.blk.end{margin-inline-end:4px;border-start-end-radius:7px;border-end-end-radius:7px}
.blk.start{margin-inline-start:4px;border-start-start-radius:7px;border-end-start-radius:7px}
.blk.st-available{background:transparent;border:1px dashed transparent;margin:0 4px;border-radius:7px}
.slot:hover .blk.st-available,.slot:focus-visible .blk.st-available{border-color:#9cc8ad;background:var(--free-soft)}
.blk.st-pending span{color:#4b3200;text-shadow:none}
.blk.st-blocked span{color:#2a2e35;text-shadow:none}

/* day view */
.dayinfo{border-radius:12px;padding:12px 14px;background:#fff;border:1px solid var(--line);margin-bottom:12px}
.dayinfo.is-shabbos{background:var(--shab)}.dayinfo.is-yomtov{background:var(--yt)}.dayinfo.is-rc{background:var(--rc)}.dayinfo.is-fast{background:var(--fast)}
.evline{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 6px}
.evline .ev{font-size:13px;padding:3px 9px}
.zman{margin:0;font-weight:600}
.daycounts{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 12px}
.dc{display:inline-flex;align-items:center;gap:6px;background:#fff;border:1px solid var(--line);padding:5px 10px;border-radius:10px}
.unitlist{list-style:none;margin:0;padding:0}
.unitlist li{display:grid;grid-template-columns:minmax(90px,auto) auto 1fr auto;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--line2)}
.unitlist li:last-child{border-bottom:0}
.unitlist .un{font-weight:650;text-decoration:none;color:var(--ink)}
.unitlist .who{display:flex;flex-direction:column;min-width:0;font-size:14px}
.unitlist .who a{text-decoration:none;font-weight:600}
.unitlist .who small{color:var(--muted);font-size:12px}
.unitlist.beds li{grid-template-columns:auto auto auto 1fr auto}
@media (max-width:560px){ .unitlist li{grid-template-columns:auto auto;row-gap:2px} .unitlist .who{grid-column:1/-1} .unitlist.beds li{grid-template-columns:auto 1fr auto} }

/* apartments */
.chips{display:flex;flex-wrap:wrap;gap:6px;overflow-x:auto;padding-bottom:4px;margin-bottom:14px;scrollbar-width:none}
.chip{flex:none;display:inline-flex;align-items:center;gap:5px;padding:7px 13px;border-radius:999px;background:#fff;border:1px solid var(--line);color:var(--ink);text-decoration:none;font-size:13.5px;font-weight:600;min-height:36px}
.chip b{background:#efece5;border-radius:999px;padding:0 7px;font-size:12px}
.chip.on{background:var(--brand);color:#fff;border-color:var(--brand)}
.chip.on b{background:rgba(255,255,255,.2)}
.bldg{margin-bottom:22px}
.bldg h2{color:var(--brand)}
.aptgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.apt{padding:14px;display:flex;flex-direction:column;gap:8px}
.apt header{display:flex;justify-content:space-between;align-items:center;gap:8px}
.apt header a{text-decoration:none;color:var(--ink)}
.meta{margin:0;font-size:13px;color:var(--muted);display:flex;flex-wrap:wrap;gap:4px;align-items:center}
.maint,.cleanflag{margin:0;font-size:13px;display:flex;align-items:center;gap:6px;font-weight:600}
.maint{color:#8f4610}.maint.urgent{color:var(--bad)}
.cleanflag{color:var(--dirty)}
.apt footer{display:flex;gap:6px;margin-top:auto;padding-top:4px}
.kv{display:grid;grid-template-columns:minmax(110px,max-content) 1fr;gap:8px 14px;margin:0}
.kv dt{color:var(--muted);font-size:13px;font-weight:600}
.kv dd{margin:0;min-width:0;overflow-wrap:anywhere}
.kv.compact{gap:4px 12px;font-size:14px}
@media (max-width:420px){.kv{grid-template-columns:1fr;gap:2px}.kv dd{margin-bottom:8px}}
.tablewrap{overflow-x:auto}
.tbl{width:100%;border-collapse:collapse;font-size:14px}
.tbl th{text-align:start;font-size:12px;color:var(--muted);font-weight:700;padding:6px 8px;border-bottom:1px solid var(--line)}
.tbl td{padding:9px 8px;border-bottom:1px solid var(--line2);vertical-align:top}
.tbl a{text-decoration:none;font-weight:600}

/* requests */
.reqlist{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:12px}
@media (max-width:400px){.reqlist{grid-template-columns:1fr}}
.req{padding:15px;display:flex;flex-direction:column;gap:9px}
.req header{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}
.req header>div{display:flex;flex-wrap:wrap;gap:5px;align-items:center}
.req header h3{margin-inline-end:4px}
.req header a{text-decoration:none;color:var(--ink)}
.dates{margin:0;display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-weight:600}
.warnline{margin:0;font-size:13px;color:#7a5a12;background:var(--gold-soft);border-radius:8px;padding:6px 9px;display:flex;gap:6px}
.req footer{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:auto;padding-top:6px;border-top:1px solid var(--line2)}
.src{font-size:12px;color:var(--muted);margin-inline-start:auto}
.arrow{color:var(--muted)}

/* guests */
.searchrow{margin-bottom:10px}
.search{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid #cfd3da;border-radius:10px;padding:0 10px;max-width:520px}
.search input{border:0;min-height:44px;padding:0}
.search input:focus{outline:none}
.search:focus-within{outline:3px solid #6aa3d6}
.glist{list-style:none;margin:0;padding:0}
.glist li a{display:flex;align-items:center;gap:12px;padding:11px 14px;border-bottom:1px solid var(--line2);text-decoration:none;color:var(--ink);flex-wrap:wrap}
.glist li:last-child a{border-bottom:0}
.avatar{width:36px;height:36px;border-radius:50%;background:var(--brand-soft);color:var(--brand);display:grid;place-items:center;font-weight:700;flex:none}
.gmain{flex:1;min-width:160px;display:flex;flex-direction:column}
.gmain small{color:var(--muted)}
.notes{list-style:none;margin:0 0 12px;padding:0;display:flex;flex-direction:column;gap:8px}
.notes li{background:#faf9f5;border:1px solid var(--line2);border-radius:10px;padding:9px 12px}
.notes li.incident{background:#fff6f5;border-color:#f0d0cc}
.notes p{margin:0 0 4px}
.notes small{color:var(--muted)}
.noteform{display:flex;flex-direction:column;gap:6px;border-top:1px solid var(--line2);padding-top:12px}
.noteform label{font-weight:600;font-size:13.5px}
.row{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}
.check{display:inline-flex;align-items:center;gap:8px;font-size:14px;cursor:pointer;min-height:36px}
.check input{width:20px;height:20px;accent-color:var(--brand)}

/* forms */
.regform{max-width:860px}
.regform fieldset{border:0;padding:0;margin:0 0 20px;min-width:0}
.regform fieldset[disabled]{display:none}
.regform legend{font-size:17px;font-weight:700;color:var(--brand);margin-bottom:10px;padding:0}
.portal-note{display:flex;gap:8px;align-items:flex-start;background:var(--brand-soft);color:#21426a;padding:10px 12px;border-radius:10px;font-size:13.5px;margin:0 0 18px}
.catcards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px}
.catcard input{position:absolute;opacity:0}
.cc{display:flex;flex-direction:column;gap:4px;padding:14px;border:2px solid var(--line);border-radius:12px;cursor:pointer;height:100%;background:#fff}
.cc .ic{color:var(--brand2);width:24px;height:24px}
.cc small{color:var(--muted);font-size:13px}
.catcard input:checked+.cc{border-color:var(--brand);background:var(--brand-soft)}
.catcard input:focus-visible+.cc{outline:3px solid #6aa3d6}
.fgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-bottom:12px;align-items:start}
.f{display:flex;flex-direction:column;gap:4px;font-size:13.5px;font-weight:600;color:#3a4252;min-width:0}
.f>span{display:flex;align-items:center;gap:5px}
.radios{display:flex;flex-wrap:wrap;gap:4px 18px;margin-bottom:10px}
.idbox{background:#faf9f5;border:1px dashed #cfc8b6;border-radius:12px;padding:12px}
.idbox input[type=file]{font-size:14px;max-width:100%}
.filename{color:var(--free);font-weight:600}
.reg-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;border-top:1px solid var(--line2);padding-top:14px}
.reg-actions .note{margin:0;max-width:52ch}
.formerr{color:var(--bad);font-weight:600}
.dfield{display:flex;flex-direction:column;gap:6px;background:#faf9f6;border:1px solid var(--line2);border-radius:12px;padding:10px;min-width:0}
.dlabel{font-weight:700;font-size:13.5px;color:#3a4252}
.df-h{display:grid;grid-template-columns:.8fr 1.4fr 1fr;gap:6px}
.df-h select{padding:8px 6px;font-size:15px}
.df-out{margin:0;font-size:13px;color:var(--muted);display:flex;flex-wrap:wrap;gap:4px;align-items:center}
.df-out .ev{font-size:11.5px}
.done{text-align:center;max-width:640px;margin-inline:auto}
.done .kv{text-align:start;margin:16px 0}
.done-ic{width:56px;height:56px;border-radius:50%;background:var(--free-soft);color:var(--free);display:grid;place-items:center;margin:4px auto 8px}
.done-ic .ic{width:30px;height:30px}
.done h2{justify-content:center;font-size:21px}
.sim{display:grid;gap:10px;text-align:start;margin-bottom:16px}
.msg{background:#f2f5f9;border-radius:12px;padding:10px 12px}
.msg small{color:var(--muted);font-weight:600}
.msg p{margin:4px 0 0}
.done .reg-actions{justify-content:center}

/* audit, more */
.audit{list-style:none;margin:0;padding:0}
.audit li{padding:13px 16px;border-bottom:1px solid var(--line2)}
.audit li:last-child{border-bottom:0}
.a-top{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 10px}
.a-top .muted{font-size:12.5px}
.audit p{margin:4px 0 0;font-size:14px}
.a-change{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.old{text-decoration:line-through;color:var(--muted)}
.new{color:#1f6440;font-weight:600}
.a-reason span{color:var(--muted);font-weight:600}
.a-mail{color:var(--muted);font-size:12.5px!important;display:flex;gap:5px;align-items:center}
.a-mail .ic{width:15px;height:15px}
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;margin-bottom:16px}
.tile{display:flex;gap:12px;align-items:center;padding:16px;text-decoration:none;color:var(--ink)}
.tile .ic{width:28px;height:28px;color:var(--brand2)}
.tile span{display:flex;flex-direction:column}
.tile small{color:var(--muted)}
.about ul{padding-inline-start:20px;margin:8px 0 0}
.about li{margin-bottom:6px}

/* modal + toast */
#modal{position:fixed;inset:0;z-index:50;display:flex;align-items:flex-end;justify-content:center}
#modal[hidden]{display:none}
.modal-back{position:absolute;inset:0;background:rgba(15,22,35,.45)}
.modal{position:relative;background:#fff;width:100%;max-height:92vh;overflow:auto;border-radius:18px 18px 0 0;box-shadow:0 -10px 40px rgba(0,0,0,.2);padding-bottom:env(safe-area-inset-bottom)}
@media (min-width:700px){#modal{align-items:center}.modal{max-width:560px;border-radius:18px}.modal.wide{max-width:720px}}
.modal header{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;border-bottom:1px solid var(--line2);position:sticky;top:0;background:#fff;z-index:1}
.modal header h2{margin:0;font-size:18px}
.mbody{padding:16px 18px 20px;display:flex;flex-direction:column;gap:12px}
.mbody form{display:flex;flex-direction:column;gap:12px}
.mbody .fgrid{margin:0}
.who-line{margin:0;display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.mactions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap;padding-top:4px}
.checkbox-area{display:flex;flex-direction:column;gap:6px}
.cf{margin:0;border-radius:10px;padding:9px 12px;font-size:14px;display:flex;gap:7px;align-items:flex-start}
.cf.info{background:#f2f4f7;color:#3d4554}
.cf.good{background:var(--free-soft);color:#1f6440;font-weight:600}
.cf.warn{background:var(--gold-soft);color:#6d4d0c}
.cf.bad{background:var(--bad-soft);color:#7d1f19}
.conflict{display:block;border:2px solid #e2a29b}
.conflict strong{display:flex;gap:6px;align-items:center;font-size:15px}
.conflict ul{margin:6px 0;padding-inline-start:20px}
.conflict p{margin:0;font-weight:600}
.demo-tip{background:#eef3fb;color:#21426a}
#toast{position:fixed;z-index:60;inset-inline:12px;bottom:calc(var(--tab) + 14px + env(safe-area-inset-bottom));display:flex;justify-content:center;pointer-events:none}
#toast[hidden]{display:none}
.toast-in{background:#1d2a3d;color:#fff;border-radius:12px;padding:11px 14px;display:flex;gap:8px;align-items:flex-start;max-width:520px;box-shadow:0 8px 30px rgba(0,0,0,.25);font-size:14px}
.toast-in .ic{color:#8fd6a8}
@media (min-width:1000px){#toast{bottom:22px}}
.noscript{padding:20px}

[hidden]{display:none!important}

@media (max-width:560px){
  .phead h1{font-size:22px}
  .pactions{width:100%}
  .pactions .btn{flex:1;min-width:0;padding:8px 10px;font-size:13.5px;white-space:normal;text-align:center;line-height:1.2}
  .tb-row{flex-wrap:nowrap;gap:6px}
  .tb-row .seg{flex:1;flex-wrap:nowrap}
  .tb-row .seg button{flex:1;padding:6px 4px;font-size:12.5px}
  .filters{grid-template-columns:1fr 1fr}
  .filters label:nth-child(3){grid-column:1/-1}
  .filters select{font-size:14px;padding:7px 8px;min-height:38px}
  .calbody .caltitle{font-size:17px}
}

/* waiting list */
.pill.st-waitlist,.st-waitlist{background:#ece7f6;color:#4b3a7a}
.stat.tone-wait{border-top:3px solid #6f5aa8}
.btn.ghost.wait{color:#4b3a7a;border-color:#cfc5e6}
.btn.ghost.wait:hover{background:#f3effa}
.f .hint{display:block;color:var(--muted);font-size:12.5px;margin-top:4px;font-weight:400}
.office-line{display:flex;gap:8px;align-items:center;flex-basis:100%;justify-content:center;margin:0;font-weight:600;color:var(--brand);font-size:15px;text-align:center}
.office-line .ic{flex:none}
#reasonform .sim{margin-top:12px}

/* ---------- apartment / bed picker ---------- */
@media (min-width:700px){.modal.picker{max-width:780px}}
.modal.picker .mbody{padding-bottom:0}
.upick{display:flex;flex-direction:column;gap:10px;border-top:1px solid var(--line2);padding-top:12px}
.upick-head h3{margin:0;font-size:17px}
.upick-kind{margin:2px 0 0;color:var(--muted);font-size:13.5px}
.upick-sum{margin:6px 0 0;font-size:16px;font-weight:700;color:var(--brand)}
.upick-ctrl{display:flex;flex-direction:column;gap:8px}
.pk-chips{flex-wrap:nowrap;margin:0;-webkit-overflow-scrolling:touch}
.pk-chips .chip{min-height:40px;cursor:pointer;font:inherit;font-size:14px;font-weight:600}
.pk-only{display:inline-flex;align-items:center;gap:10px;font-weight:600;font-size:15px;min-height:44px;cursor:pointer;align-self:flex-start}
.pk-only input{position:absolute;opacity:0;width:1px;height:1px}
.pk-only .sw{width:46px;height:28px;border-radius:999px;background:#cfd3da;position:relative;transition:background .15s;flex:none}
.pk-only .sw::after{content:"";position:absolute;top:3px;inset-inline-start:3px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:transform .15s}
.pk-only input:checked + .sw{background:var(--free)}
.pk-only input:checked + .sw::after{transform:translateX(18px)}
[dir=rtl] .pk-only input:checked + .sw::after{transform:translateX(-18px)}
.pk-only input:focus-visible + .sw{outline:3px solid var(--brand2);outline-offset:2px}
.upick-sec{margin:8px 0 6px;font-size:14px;text-transform:uppercase;letter-spacing:.03em;color:var(--muted)}
.upick-sec b{background:#efece5;border-radius:999px;padding:1px 8px;font-size:12px;color:var(--ink);margin-inline-start:4px}
.upick-sec.sec-free{color:var(--free)}
.upick-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:10px}
.upick-grid.shared{grid-template-columns:1fr}
.upick-empty{padding:18px 4px}
.ucard,.btile{position:relative;display:flex;flex-direction:column;gap:6px;background:#fff;border:2px solid var(--line);border-inline-start-width:7px;border-radius:14px;padding:12px 14px;cursor:pointer;transition:border-color .12s, box-shadow .12s;-webkit-tap-highlight-color:transparent}
.ucard input,.btile input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.ucard.st-free,.btile.st-free{border-inline-start-color:var(--free)}
.ucard.st-partial,.btile.st-partial{border-inline-start-color:var(--pen)}
.ucard.st-booked,.btile.st-booked{border-inline-start-color:var(--bad)}
.ucard.st-blocked,.btile.st-blocked{border-inline-start-color:var(--blk)}
.ucard.off,.btile.off{background:#f7f6f3;cursor:not-allowed}
.ucard.off .uc-name,.ucard.off .uc-meta,.ucard.off .tags{opacity:.72}
.ucard.good{background:#f6fbf7}
.ucard:not(.off):hover,.btile:not(.off):hover{border-color:#b9c7d6;border-inline-start-color:var(--free)}
.ucard.sel,.btile.sel{border-color:var(--brand);border-inline-start-color:var(--brand);box-shadow:0 0 0 3px rgba(31,58,95,.18);background:#f2f6fb}
.ucard:focus-within,.btile:focus-within{outline:3px solid var(--brand2);outline-offset:2px}
.uc-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ubadge{display:inline-flex;align-items:center;gap:5px;font-size:14px;font-weight:800;padding:5px 12px 5px 9px;border-radius:999px;color:#fff;line-height:1.1}
.ubadge .ic{width:16px;height:16px;stroke-width:2.6;vertical-align:0}
.ubadge.b-free{background:var(--free)}
.ubadge.b-partial{background:#fdf0d6;color:#7a4f00;box-shadow:inset 0 0 0 1.5px #e7b65a}
.ubadge.b-booked{background:var(--bad)}
.ubadge.b-blocked{background:#7b808a}
.ugood{display:inline-flex;align-items:center;gap:4px;font-size:13px;font-weight:700;color:#7a5512;background:var(--gold-soft);border:1px solid #ecd39b;border-radius:999px;padding:3px 10px}
.ugood .ic{width:15px;height:15px;fill:#d9a632;stroke:#b0841f;stroke-width:1.4}
.uc-tick{display:none;margin-inline-start:auto;width:28px;height:28px;border-radius:50%;background:var(--brand);color:#fff;align-items:center;justify-content:center}
.uc-tick .ic{width:17px;height:17px;stroke-width:3}
.sel .uc-tick{display:inline-flex}
.uc-name{font-size:16.5px;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px}
.uc-name strong{font-size:18px}
.uc-addr{color:var(--muted);font-size:14px;font-weight:600}
.uc-meta{color:var(--muted);font-size:13.5px}
.uc-why{font-size:14px;font-weight:600;color:#8f251f;line-height:1.45}
.st-blocked .uc-why{color:#4a4f58}
.uc-free{font-size:14px;font-weight:700;color:#7a4f00}
.uc-warn,.uc-hold{display:flex;align-items:flex-start;gap:6px;font-size:13.5px;font-weight:600;border-radius:8px;padding:5px 8px;line-height:1.35}
.uc-warn{background:var(--dirty-soft);color:#8f4610}
.uc-hold{background:var(--pen-soft);color:#7a4f00}
.uc-warn .ic,.uc-hold .ic{width:16px;height:16px;flex:none;margin-top:1px}
.scard{background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px 14px;display:flex;flex-direction:column;gap:6px}
.scard.full{background:#faf9f6}
.sc-head{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}
.sc-count{font-weight:800;font-size:14.5px;padding:5px 12px;border-radius:999px}
.sc-count.has{background:var(--free);color:#fff}
.sc-count.none{background:var(--bad);color:#fff}
.tag.shared{background:#ece7f6;color:#4b3a7a;border-color:#dcd3ef}
.bgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin-top:4px}
.btile{padding:10px 12px;border-radius:12px;min-height:84px;gap:5px}
.btile .ubadge{align-self:flex-start;font-size:13px;padding:3px 10px 3px 7px}
.bt-n{display:flex;align-items:center;justify-content:space-between;font-weight:800;font-size:16px}
.bt-n .uc-tick{width:24px;height:24px}
.bt-who{font-size:13px;font-weight:600;color:#8f251f;line-height:1.35}
.btile.st-free .bt-who{color:#7a4f00}
.btile.st-blocked .bt-who{color:#4a4f58}
.pk-foot{position:sticky;bottom:0;z-index:2;background:#fff;border-top:1px solid var(--line2);margin:4px -18px 0;padding:12px 18px calc(12px + env(safe-area-inset-bottom));display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;box-shadow:0 -6px 16px rgba(0,0,0,.05)}
.selline{margin:0;display:flex;align-items:center;gap:6px;font-size:14.5px;flex:1 1 260px;min-width:0}
.selline .ic{color:var(--free);stroke-width:2.6}
.pk-btns{display:flex;gap:8px;margin-inline-start:auto}
.pk-btns .btn{min-height:46px;padding-inline:20px;font-size:16px}
@media (max-width:520px){.upick-grid{grid-template-columns:1fr}.bgrid{grid-template-columns:repeat(2,minmax(0,1fr))}.pk-btns{width:100%}.pk-btns .btn{flex:1}}
/* apartments page: family vs shared */
.kindsec{margin-bottom:26px}
.kindhead{border-bottom:2px solid var(--line);margin-bottom:12px;padding-bottom:6px}
.kindhead h2{display:flex;align-items:center;gap:8px;margin:0;font-size:21px;color:var(--brand)}
.kindhead p{margin:4px 0 0}
.kind-men .kindhead{border-color:#dcd3ef}
.kind-men .kindhead h2{color:#4b3a7a}
.bldg-h{font-size:16px;color:var(--brand);margin:10px 0 8px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.aptgrid.shared{grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}
.bm-h{margin:6px 0 2px;font-size:12.5px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.03em}
.bedmap{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}
.bedmap li{display:flex;flex-direction:column;font-size:12.5px;padding:5px 8px;border-radius:8px;background:var(--free-soft);color:#1f6440;border-inline-start:4px solid var(--free);min-width:0}
.bedmap li b{font-size:12.5px}
.bedmap li span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bedmap li small{display:block;color:inherit;opacity:.8}
.bedmap li.bm-occupied{background:var(--occ-soft);color:#1d4f86;border-color:var(--occ)}
.bedmap li.bm-pending{background:var(--pen-soft);color:#8a5a00;border-color:var(--pen)}
.bedmap li.bm-blocked{background:var(--blk-soft);color:#4a4f58;border-color:var(--blk)}

/* returning guest sign-in (simulated) */
.retbox{border:1px dashed #c9d3df;border-radius:12px;padding:12px 14px;background:#f7f9fc;margin-bottom:14px}
.ret-start{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.ret-start .btn{min-height:44px}
.ret-form{display:flex;flex-direction:column;gap:8px}
.ret-h{margin:0}
.ret-row{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap}
.ret-row .f{flex:1 1 220px;margin:0}
.ret-row .btn{min-height:44px}
.ret-demo{margin:0;font-size:14px}
.democode{display:inline-block;font-weight:800;background:var(--gold-soft);border:1px solid #ecd39b;color:#6b4a0e;border-radius:8px;padding:2px 8px;letter-spacing:.04em}
.linkbtn{background:none;border:0;color:var(--brand2);text-decoration:underline;font:inherit;font-size:14px;cursor:pointer;align-self:flex-start;padding:4px 0;min-height:32px}
.ret-ok{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.ret-ok > .ic{color:var(--free);width:26px;height:26px;stroke-width:2.6}
.ret-ok div{display:flex;flex-direction:column;gap:3px;flex:1 1 220px}
.tag.ret{background:var(--free-soft);color:#1f6440;border-color:#c6e3d0;display:inline-flex;align-items:center;gap:3px}
.tag.ret .ic{width:13px;height:13px;stroke-width:2.6}
.tag.ret{white-space:normal;max-width:100%;line-height:1.3}
.req header > div{min-width:0}

/* ---------- inline decisions on Pending / Waiting-list requests ---------- */
.decrow{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.decrow .btn.sm{min-height:40px;padding:7px 12px}
.tbl tr.openreq{cursor:pointer;background:#fffaf0}
.tbl tr.openreq:hover{background:#fff4dc}
.tbl tr.openreq:focus-visible{outline:3px solid #6aa3d6;outline-offset:-3px}
.tbl tr.openreq td{border-bottom:0}
.tbl tr.actrow td{background:#fffaf0;padding-top:0;padding-bottom:11px}
.tbl tr.openreq a[data-req]{margin-inline-start:6px;white-space:nowrap}
.decpanel{margin-bottom:16px}
.decpanel .note{margin:0 0 6px}
.oreqs{list-style:none;margin:0;padding:0}
.oreq{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 14px;padding:10px 0;border-bottom:1px solid var(--line2)}
.oreq:last-child{border-bottom:0}
.oreq-main{flex:1 1 260px;min-width:0;display:flex;flex-direction:column;gap:3px;cursor:pointer;border-radius:8px}
.oreq-main:hover .oreq-n strong{text-decoration:underline}
.oreq-main:focus-visible{outline:3px solid #6aa3d6;outline-offset:3px}
.oreq-n{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.oreq-d{font-size:13px;color:var(--muted)}
.glist .oreqs.ing{padding:0 14px 4px 62px;border-bottom:1px solid var(--line2);background:#fffaf0}
.glist .oreqs.ing .oreq{border-bottom:0;padding:8px 0}
.glist .oreqs.ing .oreq-n .cat{display:none}
.unitlist .who .decrow{margin-top:6px}
.decbar{position:sticky;top:57px;z-index:1;background:#fff;border-bottom:1px solid var(--line2);margin:-16px -18px 2px;padding:12px 18px}
.decq{margin:0 0 8px;font-weight:700;font-size:13px;color:var(--muted);text-transform:uppercase;letter-spacing:.03em}
.decbtns{display:flex;flex-wrap:wrap;gap:8px}
.decbtns .btn{min-height:46px;flex:1 1 150px}
.req.insheet{box-shadow:none;border:1px solid var(--line2)}
.req.insheet footer{border-top:0;padding-top:0}
.reqlinks{display:flex;flex-wrap:wrap;gap:16px;margin:12px 0 0}
.reqlinks a{display:inline-flex;align-items:center;gap:6px;text-decoration:none;font-weight:600}
@media (max-width:560px){ .glist .oreqs.ing{padding-inline-start:14px} .decrow .btn.sm{flex:1 1 auto} }
