/* ==== styles/base.css ==== */
/* Base: colours, page, masthead, space filter row and the list. The look follows the main app: near-black ink #1f1a24, crimson #c81e45,
   a pale grey wash, white cards, the gradient day bar. Tap targets are 44 px or more. */
:root{
  --bg0:#eeeeef; --bgmid:#e7e6e8; --bg1:#dddddf;
  --card:#ffffff; --line:#e0e0e2; --sunk:#f2f2f3;
  --ink:#28282a; --ink2:#57565a; --plane:#f8f8f9;
  --accent:#c81e45; --accent-deep:#1f1a24; --live:#2e7d46; --gold:#f2b632; --bad:#b3122e; --chg:#1f5fbf;
  --r:.85rem; --shadow:0 1px 2px rgba(44,43,47,.08), 0 6px 18px rgba(44,43,47,.06);
  --mh:9.5rem; --tap:44px;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{font-size:16px}
body{margin:0;min-height:100vh;font-family:system-ui,-apple-system,"Segoe UI",Roboto,"Noto Sans",sans-serif;color:var(--ink);background:var(--bgmid);line-height:1.35;overflow-x:hidden}
body::before{content:"";position:fixed;inset:0;z-index:-1;background:linear-gradient(165deg,var(--bg0) 0%,var(--bgmid) 45%,var(--bg1) 100%)}
button,input,select,textarea{font:inherit;color:inherit}
.wrap{max-width:560px;margin:0 auto;padding:0 .4rem 4rem;overflow-x:clip}
.dim{color:var(--ink2)}

/* ---- masthead ---- */
.mast{position:sticky;top:0;z-index:40;margin:0 -.4rem;padding:.4rem .5rem .4rem;border-radius:0 0 1rem 1rem;background:linear-gradient(135deg,#1f1a24,#2b2433);color:#fff;box-shadow:var(--shadow)}
.mrow{display:flex;align-items:center;gap:.25rem}
.logo{flex:none;width:2.4rem;height:2.4rem;border-radius:50%;display:grid;place-items:center;font-weight:900;font-size:1.15rem;color:#ffd25e;background:radial-gradient(circle at 50% 40%,#3a0d1c,#120b10);box-shadow:0 0 0 2px var(--accent),0 0 10px rgba(200,30,69,.6)}
.mtabs{flex:1;display:flex;gap:.15rem;background:rgba(255,255,255,.08);border-radius:999px;padding:.15rem;min-width:0}
.mtabs button{flex:1 1 auto;border:0;border-radius:999px;background:transparent;color:#fff;font-weight:800;font-size:.86rem;min-height:var(--tap);padding:0 .35rem;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.mtabs button.on{background:#120b10;box-shadow:0 0 0 2px var(--accent)}
.mtabs .n{display:inline-block;min-width:1.2rem;padding:0 .3rem;border-radius:999px;background:var(--accent);font-size:.72rem}
.mtabs .n.chg{background:var(--chg)}
.mbtn{flex:none;display:flex;align-items:center;justify-content:center;white-space:nowrap;min-width:var(--tap);height:var(--tap);border-radius:999px;border:1.5px solid rgba(255,255,255,.75);background:transparent;color:#fff;cursor:pointer;padding:0 .5rem;font-weight:800;font-size:1.05rem}
.mbtn.ask{border-color:var(--gold)}
.mbtn svg{width:1.2rem;height:1.2rem}
.msearch{display:flex;align-items:center;gap:.5rem;margin:.4rem 0 0;padding:.1rem .3rem .1rem .8rem;background:#fff;border-radius:1.4rem;color:var(--ink);min-height:var(--tap)}
.msearch svg{width:1.1rem;height:1.1rem;flex:none;color:var(--accent-deep)}
.msearch .mi{flex:1;min-width:0;display:flex;flex-direction:column}
.msearch input{border:0;outline:0;font-weight:800;font-size:1rem;padding:.1rem 0;background:transparent;min-width:0;min-height:1.5rem}
.msearch .msub{font-size:.75rem;font-weight:700;color:var(--ink2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.msearch .x{border:0;background:none;font-size:1.3rem;color:var(--ink2);cursor:pointer;min-width:var(--tap);min-height:var(--tap)}

/* the space switcher */
.spaces{display:flex;gap:.3rem;margin:.4rem -.5rem 0;padding:0 .5rem;overflow-x:auto;scrollbar-width:none}
.spaces::-webkit-scrollbar{display:none}
.spc{flex:none;display:flex;align-items:center;gap:.3rem;min-height:var(--tap);padding:0 .7rem;border-radius:999px;border:1.5px solid rgba(255,255,255,.35);background:rgba(255,255,255,.06);color:#fff;font-weight:800;font-size:.86rem;cursor:pointer;white-space:nowrap}
.spc i{width:.7rem;height:.7rem;border-radius:50%;background:var(--c);box-shadow:0 0 0 2px rgba(255,255,255,.8)}
.spc[aria-pressed=true]{background:#fff;color:var(--accent-deep);border-color:#fff}
.spc[aria-pressed=true] i{box-shadow:none}
.spc small{font-weight:700;opacity:.75}
#pills{display:flex;flex-wrap:wrap;gap:.3rem;margin:.35rem 0 0}
#pills:empty{display:none}
.pill{display:inline-flex;align-items:center;gap:.25rem;background:#fff;border:0;border-radius:999px;padding:0 .8rem;min-height:var(--tap);font-size:.8rem;font-weight:700;cursor:pointer;color:var(--ink)}
.pill.clr{background:transparent;color:#fff;text-decoration:underline}

.sample{display:flex;align-items:center;gap:.4rem;margin:.3rem 0;padding:0 0 0 .7rem;border-radius:.7rem;background:#fff3c4;color:#5c4400;border:1px solid #e3c55a;font-size:.78rem;font-weight:700}
.sample span{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sample button{flex:none;border:0;background:none;min-width:var(--tap);min-height:var(--tap);font-size:1.2rem;cursor:pointer;color:#5c4400}

/* ---- the list ---- */
ol.events{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:minmax(0,1fr);gap:.4rem}
li.scope button{width:100%;display:flex;align-items:center;gap:.45rem;min-height:var(--tap);padding:0 .7rem;border-radius:var(--r);border:1px dashed #b9b7bd;background:var(--plane);font-size:.82rem;font-weight:700;color:var(--ink2);cursor:pointer;text-align:start}
li.scope button span{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
li.scope button b{color:var(--ink)}
li.dayhead{position:sticky;top:var(--mh);z-index:20;display:flex;align-items:center;gap:.3rem;margin:.3rem -.4rem 0;padding:0 .2rem 0 .7rem;min-height:var(--tap);
  border-radius:.8rem .8rem .3rem .3rem;color:#fff;background:linear-gradient(100deg,#7a1230 0%,#3a1424 55%,#1f1a24 100%);box-shadow:0 3px 0 -1px var(--accent),0 5px 0 -2px #f08a2c,var(--shadow)}
li.dayhead .dt{flex:1;min-width:0;font-weight:800;font-size:1.05rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
li.dayhead .dt small{font-weight:700;font-size:.82rem;opacity:.85;margin-left:.4rem}
li.dayhead .cnt{flex:none;min-width:2rem;text-align:center;padding:.05rem .45rem;border-radius:999px;background:rgba(255,255,255,.22);font-weight:800}
li.dayhead button{flex:none;width:var(--tap);height:var(--tap);border:0;border-radius:50%;background:transparent;color:#fff;font-size:.9rem;cursor:pointer}
li.holi{font-size:.8rem;font-weight:700;color:#5c4400;background:#fff3c4;border:1px solid #e3c55a;border-radius:.6rem;padding:.3rem .6rem}
li.endnote{font-size:.85rem;color:var(--ink2);padding:.6rem .4rem;text-align:center}
li.empty{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:.8rem;font-size:.9rem;text-align:center}

/* ==== styles/cards.css ==== */
/* The compact card and plans. */
/* ---- the compact card ---- */
li.ev{display:grid;grid-template-columns:minmax(0,1fr) auto;background:var(--card);border:1px solid var(--line);border-left:5px solid var(--sc,#8a8790);border-radius:var(--r);box-shadow:var(--shadow);cursor:pointer}
li.ev.plan{grid-template-columns:minmax(0,1fr)}
li.ev.drop{opacity:.6}
li.ev.drop .cname{text-decoration:line-through}
li.ev:focus-visible{outline:3px solid var(--accent)}
.cbody{min-width:0;padding:.4rem .5rem .4rem .6rem}
.c1{display:flex;align-items:center;gap:.35rem;flex-wrap:nowrap;line-height:1.2;min-width:0;overflow:hidden}
.c1>*{flex:none}
.c1 .ctype{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.smk{display:inline-flex;align-items:center;gap:.25rem;font-size:.72rem;font-weight:900;color:var(--c);text-transform:uppercase;letter-spacing:.03em}
.smk i{width:.6rem;height:.6rem;border-radius:50%;background:var(--c)}
.ctype{color:var(--ink2);font-weight:800;font-size:.8rem}
.cname{font-weight:900;font-size:1rem;line-height:1.2;margin-top:.1rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.cmain{font-size:.86rem;margin-top:.1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.csub{font-size:.78rem;color:var(--ink2);margin-top:.05rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.csub.warn{color:var(--bad);font-weight:800}
.csub.chg{color:var(--chg);font-weight:800}
.cicons{display:flex;flex-direction:column;align-items:center}
.ib{width:var(--tap);height:var(--tap);border:0;background:none;cursor:pointer;font-size:1.25rem;color:var(--ink2);border-radius:50%;font-weight:800}
.ib.add{color:var(--accent);font-size:1.6rem;font-weight:700}
.ib.inplan{color:#fff;background:radial-gradient(circle,var(--live) 0 17px,transparent 18px);font-size:1rem}
.badge{display:inline-block;font-size:.7rem;font-weight:900;padding:.02rem .4rem;border-radius:.35rem;border:1.5px solid}
.b-no{color:#57565a;border-color:#a9a7ad}
.b-cho{color:#a3173a;border-color:#c81e45}
.b-act{color:#fff;background:#c81e45;border-color:#c81e45}
.b-law{color:#fff;background:#1f1a24;border-color:#1f1a24}
.b-st{color:#1f1a24;border-color:#1f1a24;background:#fff}
.b-st.Booked{color:#fff;background:var(--live);border-color:var(--live)}
.b-st.Done{color:#fff;background:#57565a;border-color:#57565a}
.b-st.Maybe{color:#5c4400;border-color:#e3c55a;background:#fff3c4}
.tag{display:inline-block;font-size:.68rem;font-weight:800;padding:.02rem .4rem;border-radius:999px;border:1px solid var(--line);color:var(--ink2);background:var(--plane)}
.tag.unc{border-color:#e3c55a;color:#5c4400;background:#fff3c4}
.tag.chg{border-color:var(--chg);color:#fff;background:var(--chg)}
.tag.clash{border-color:var(--bad);color:#fff;background:var(--bad)}
.tag.sh{border-color:#c9c8cc}

details.alsoon{background:var(--card);border:1px solid var(--line);border-radius:var(--r)}
details.alsoon summary{display:flex;align-items:center;gap:.5rem;padding:0 .7rem;min-height:var(--tap);cursor:pointer;list-style:none}
details.alsoon summary::-webkit-details-marker{display:none}
details.alsoon summary::after{content:"›";margin-left:auto;font-size:1.2rem;color:var(--ink2);transition:transform .15s}
details.alsoon[open] summary::after{transform:rotate(90deg)}
details.alsoon .ao-t{font-weight:900;white-space:nowrap;font-size:.9rem}
details.alsoon .ao-n{font-size:.8rem;color:var(--ink2);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
details.alsoon.live .ao-t::before{content:"● ";color:var(--live)}
details.alsoon.warn .ao-t::before{content:"● ";color:var(--chg)}
details.alsoon ul{list-style:none;margin:0;padding:0 .7rem .4rem}
.rows{list-style:none;margin:0;padding:0}
.rows li,details.alsoon li{display:flex;gap:.5rem;align-items:center;padding:.3rem 0;border-top:1px solid var(--line);cursor:pointer;min-height:var(--tap)}
.rows li .k,details.alsoon li .k{flex:none;width:5.6rem;font-size:.75rem;font-weight:900;color:var(--accent-deep)}
.rows li .m,details.alsoon li .m{min-width:0;flex:1}
.rows li b,details.alsoon li b{display:block;font-size:.86rem;line-height:1.25}
.rows li .m span,details.alsoon li .m span{display:block;font-size:.76rem;color:var(--ink2)}
.rows li .v{flex:none;font-weight:900;font-size:.86rem}
.rows li .v.in{color:var(--live)}
.rows li .v.out{color:var(--bad)}

/* plans */
.seg{display:flex;gap:.2rem;flex:1;background:var(--card);border-radius:.8rem;padding:.1rem;border:1px solid var(--line)}
.seg button{flex:1 1 0;min-width:0;overflow:hidden;text-overflow:ellipsis;min-height:44px;padding:0 .4rem;font-size:.85rem;font-weight:800;border-radius:.6rem;border:0;background:transparent;color:var(--ink2);cursor:pointer;white-space:nowrap}
.seg button[aria-pressed=true]{background:var(--ink);color:var(--plane)}
li.prow{display:flex;gap:.4rem;align-items:center}
li.prow .btn{flex:none}
.alert{display:flex;align-items:center;gap:.5rem;width:100%;min-height:var(--tap);padding:.3rem .7rem;border-radius:var(--r);border:2px solid var(--chg);background:#eaf1fc;color:#123c7a;font-weight:800;font-size:.85rem;cursor:pointer;text-align:start}
.alert.bad{border-color:var(--bad);background:#fff1f3;color:var(--bad)}
.fgrid{display:grid;grid-template-columns:4.2rem repeat(3,1fr);gap:.25rem;align-items:center;font-size:.8rem;font-weight:800}
.fgrid button{min-height:var(--tap);border-radius:.5rem;border:1.5px solid #c9c8cc;background:#fff;font-weight:800;font-size:.75rem;cursor:pointer}
.fgrid button[aria-pressed=true]{background:#e8f4ec;border-color:var(--live);color:#1f5c33}
.frow{display:grid;grid-template-columns:5.6rem 1fr;gap:.4rem;align-items:start;background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:.3rem .5rem}
.frow .d{font-weight:900;font-size:.84rem;padding-top:.7rem}
.frow .d small{display:block;font-weight:700;color:var(--ink2)}
.slots{display:flex;flex-direction:column;gap:.25rem}
.slot{display:flex;align-items:center;gap:.4rem;min-height:var(--tap);padding:0 .6rem;border-radius:.6rem;border:1.5px solid;font-size:.82rem;font-weight:800;cursor:pointer;text-align:start;width:100%}
.slot.free{border-color:var(--live);background:#e8f4ec;color:#1f5c33}
.slot.busy{border-color:#c9c8cc;background:var(--sunk);color:var(--ink2)}
.slot span{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* ==== styles/sheets.css ==== */
/* Sheets: details, menus and forms. */
/* ---- sheets ---- */
.scrim{position:fixed;inset:0;background:rgba(20,16,22,.45);z-index:60}
.sheet{position:fixed;z-index:70;top:0;bottom:0;right:0;width:min(560px,100vw);background:var(--plane);overflow-y:auto;overflow-x:hidden;box-shadow:-10px 0 30px rgba(0,0,0,.25);border-left:3px solid var(--accent)}
.shead{position:sticky;top:0;z-index:2;display:flex;align-items:center;gap:.4rem;padding:.4rem .7rem;background:var(--plane);border-bottom:1px solid var(--line)}
.shead h2{flex:1;margin:0;font-size:1.05rem;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.btn{min-height:var(--tap);padding:0 .9rem;border-radius:999px;border:1.5px solid var(--line);background:var(--card);color:var(--ink);font-weight:800;cursor:pointer;font-size:.88rem}
.btn.pri{background:var(--accent);border-color:var(--accent-deep);color:#fff}
.btn.dark{background:var(--accent-deep);border-color:var(--accent-deep);color:#fff}
.btn.ok{background:var(--live);border-color:var(--live);color:#fff}
.btn.wide{width:100%;margin:.3rem 0}
.sbody{padding:.3rem .9rem 5rem}
.hint{font-size:.82rem;color:var(--ink2);margin:.4rem 0}
.fsec{border-top:1px solid var(--line);padding:.6rem 0}
.fsec:first-child{border-top:0}
.fsec h3{margin:.2rem 0 .5rem;font-size:.95rem}
.fsec h4{margin:.6rem 0 .3rem;font-size:.82rem;color:var(--ink2);display:flex;align-items:center;gap:.3rem}
.chips{display:flex;flex-wrap:wrap;gap:.4rem;margin:.4rem 0}
.chip{min-height:var(--tap);padding:0 .9rem;border-radius:999px;border:1.5px solid #c9c8cc;background:#fff;font-weight:800;font-size:.86rem;cursor:pointer}
.chip[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:#fff}
.chip[aria-pressed=true]::before{content:"✓ "}
.chip small{font-weight:600;opacity:.8}
.sfoot{position:sticky;bottom:0;padding:.5rem .9rem;background:var(--plane);border-top:1px solid var(--line);display:flex;justify-content:center;gap:.5rem}
.sfoot .btn{min-width:45%}
.dhero{padding:.7rem .9rem;background:linear-gradient(135deg,#1f1a24,#3a1424);color:#fff}
.dhero .t{display:flex;gap:.4rem;align-items:center;flex-wrap:wrap}
.dhero .smk{color:#fff}
.dhero .smk i{box-shadow:0 0 0 2px #fff}
.dhero .ctype{color:#ffb3c4}
.dhero .b-no{color:#fff;border-color:#fff}
.dhero h2{margin:.15rem 0 .2rem;font-size:1.25rem}
.dhero .s{font-size:.88rem;opacity:.92}
.act{margin:.7rem 0;padding:.6rem .75rem;border-radius:.8rem;font-size:.9rem}
.act p{margin:.25rem 0 0}
.act.yes{background:#fde7ec;border:2px solid var(--accent)}
.act.none{background:var(--sunk);border:1px solid var(--line)}
.act.chg{background:#eaf1fc;border:2px solid var(--chg)}
.act.bad{background:#fff1f3;border:2px solid var(--bad)}
.act.priv{background:#fff;border:1px dashed #b9b7bd;font-size:.84rem}
.facts{display:grid;grid-template-columns:1fr 1fr;gap:.4rem;margin:.6rem 0}
.fact{background:var(--card);border:1px solid var(--line);border-radius:.7rem;padding:.4rem .55rem;min-width:0}
.fact small{display:block;font-size:.72rem;font-weight:800;color:var(--ink2)}
.fact b{display:block;font-size:.92rem;overflow-wrap:anywhere}
.fact span{display:block;font-size:.76rem;color:var(--ink2)}
table.diff{width:100%;border-collapse:collapse;font-size:.84rem;margin-top:.4rem;background:#fff;border-radius:.5rem;overflow:hidden}
table.diff th,table.diff td{padding:.3rem .4rem;border-top:1px solid var(--line);text-align:start;vertical-align:top}
table.diff th{font-size:.72rem;color:var(--ink2)}
table.diff td.old{text-decoration:line-through;color:var(--ink2)}
table.diff td.new{font-weight:900;color:var(--chg)}
.tline{list-style:none;margin:0;padding:0;background:var(--card);border:1px solid var(--line);border-radius:.8rem}
.tline li{display:grid;grid-template-columns:minmax(7rem,40%) 1fr;gap:.5rem;padding:.4rem .65rem;border-top:1px solid var(--line);font-size:.86rem;align-items:center}
.tline li:first-child{border-top:0}
.tline li .k{font-weight:800}
.tline li.key{background:#fde7ec}
.blockh{margin:.9rem 0 .4rem;font-weight:900}
label.fl{display:block;font-size:.8rem;font-weight:800;color:var(--ink2);margin:.6rem 0 .2rem}
input.inp,select.inp,textarea.inp{width:100%;min-height:var(--tap);border-radius:.7rem;border:1.5px solid #c9c8cc;padding:.4rem .6rem;background:#fff;font-weight:700;font-size:.95rem}
textarea.inp{min-height:4.5rem;resize:vertical}
.two{display:grid;grid-template-columns:1fr 1fr;gap:.4rem}
.who{display:flex;gap:.6rem;align-items:flex-start;padding:.6rem 0;border-top:1px solid var(--line)}
.who .ic{flex:none;width:2.4rem;height:2.4rem;border-radius:50%;display:grid;place-items:center;background:var(--c);color:#fff;font-size:1.1rem}
.who b{display:block}
.who span{display:block;font-size:.82rem;color:var(--ink2)}
.ans h3{font-size:.95rem;margin:.8rem 0 .2rem;display:flex;align-items:center;gap:.4rem}
.ans p{margin:.3rem 0;font-size:.88rem}
.qs{display:grid;gap:.35rem}
.qs button{min-height:var(--tap);border-radius:.8rem;border:1.5px solid #d7d6da;background:#fff;font-weight:800;font-size:.9rem;text-align:start;padding:0 .8rem;cursor:pointer}
.qs button[aria-pressed=true]{border-color:var(--accent);box-shadow:inset 0 0 0 2px var(--accent)}
.askrow{display:flex;gap:.4rem;margin:.5rem 0}
.askrow input{flex:1}

#toast{position:fixed;left:50%;bottom:1rem;transform:translateX(-50%);z-index:90;display:flex;align-items:center;gap:.6rem;max-width:calc(100vw - 1.2rem);padding:.2rem .3rem .2rem .9rem;border-radius:999px;background:#1f1a24;color:#fff;font-weight:700;font-size:.86rem;box-shadow:var(--shadow)}
#toast span{min-width:0}
#toast button{flex:none;min-height:var(--tap);padding:0 .9rem;border:0;border-radius:999px;background:var(--gold);color:#1f1a24;font-weight:900;cursor:pointer}
footer{font-size:.75rem;color:var(--ink2);text-align:center;padding:1.5rem .5rem}

/* ==== styles/card-types.css ==== */
/* The shared card shell and the bodies of the 7 card types. One fixed card height. Section bands. */
/* ================= version 2 ================= */
:root{--ch:6.9rem;--red:#b3122e;--amber:#b86e00;--grey:#8a8790}
.logo{width:2.1rem;height:2.1rem;font-size:1rem}
.mtabs button{font-size:.84rem;padding:0 .3rem}
.mtabs .n.red{background:var(--bad);margin-left:.2rem}
.mbtn.plans{position:relative;padding:0;font-size:1.1rem}
.mbtn.plans .n{position:absolute;top:-.2rem;right:-.3rem;min-width:1.15rem;padding:0 .25rem;border-radius:999px;background:var(--accent);font-size:.68rem;line-height:1.15rem}
.mbtn.plans .n.chg{background:var(--chg)}
.mbtn.plans[aria-pressed=true]{background:#fff;color:var(--accent-deep)}
/* the shared card shell: date column, space mark, title, + or tick, overflow. One fixed height */
li.ev{grid-template-columns:3.05rem minmax(0,1fr) auto;height:var(--ch);overflow:hidden;border-left-width:5px}
li.ev.plan{grid-template-columns:3.05rem minmax(0,1fr) auto}
li.ev.ob{border-left-color:var(--stc)}
li.ev.st-red{--stc:var(--red);--dc:#fde2e6;--dk:var(--red)}
li.ev.st-amber{--stc:var(--amber);--dc:#fff0d4;--dk:#7a4900}
li.ev.st-grey{--stc:#a9a7ad;--dc:#f2f2f3;--dk:#4a494d}
li.ev.ch{--dc:#f6f4f7;--dk:var(--sc)}
.dcol{display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--dc);color:var(--dk);border-radius:calc(var(--r) - 5px) 0 0 calc(var(--r) - 5px);line-height:1.05;min-width:0}
.dcol b{font-size:1.35rem;font-weight:900}
.dcol small{font-size:.66rem;font-weight:900;text-transform:uppercase;letter-spacing:.02em;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.cbody{padding:.32rem .3rem .3rem .5rem;display:flex;flex-direction:column;min-width:0}
.cname{-webkit-line-clamp:1;font-size:.98rem}
.b3,.b4,.b5{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}
.b3{font-size:.84rem;margin-top:.08rem}
.b4{font-size:.78rem;color:var(--ink)}
.b5{font-size:.76rem;color:var(--ink2)}
.b5.warn{color:var(--bad);font-weight:800}
.b5.chg{color:var(--chg);font-weight:800}
.b3 .tag{vertical-align:1px}
.amt{font-size:1.08rem;font-weight:900}
.amt.in{color:#1f7a3d}
.amt.out{color:var(--bad)}
.b3 .dir{font-size:.74rem;color:var(--ink2);font-weight:700;margin-left:.35rem}
.bw{display:flex;gap:.4rem;min-width:0;align-items:center}
.bl{flex:1;min-width:0}
.pic{flex:none;width:2.9rem;height:2.9rem;border-radius:.6rem;display:grid;place-items:center;font-size:1.45rem;background:linear-gradient(140deg,color-mix(in srgb,var(--c) 22%,#fff),color-mix(in srgb,var(--c) 55%,#1f1a24))}
.sc{flex:none;font-size:.66rem;font-weight:900;padding:.02rem .4rem;border-radius:.35rem;color:#fff;text-transform:uppercase;letter-spacing:.02em}
.sc.red{background:var(--red)}
.sc.amber{background:var(--amber)}
.sc.grey{background:#ececee;color:#3b3a3e}
.sc.ok{background:#fff;color:#1f5c33;border:1.5px solid var(--live)}
.bt-test{font-size:.78rem}
.ib.tick .box{display:inline-block;width:1.45rem;height:1.45rem;border:2.5px solid var(--stc);border-radius:.35rem;background:#fff;vertical-align:middle}
.ib.tick:hover .box{background:#e8f4ec;border-color:var(--live)}
.cicons{justify-content:space-around}
/* section bands */
li.sechead{display:flex;align-items:center;gap:.4rem;min-height:var(--tap);margin:.35rem -.4rem 0;padding:0 .7rem;border-radius:.8rem .8rem .3rem .3rem;color:#fff;font-weight:800;font-size:1rem;box-shadow:var(--shadow)}
li.sechead span:first-child{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
li.sechead .cnt{flex:none;min-width:2rem;text-align:center;padding:.05rem .45rem;border-radius:999px;background:rgba(255,255,255,.25)}
li.sechead.red{background:linear-gradient(100deg,#b3122e,#6d0c1f)}
li.sechead.amber{background:linear-gradient(100deg,#b86e00,#5c3a06)}
li.sechead.grey{background:linear-gradient(100deg,#57565a,#2c2b2f)}
li.sechead.plan{background:linear-gradient(100deg,#7a1230 0%,#3a1424 55%,#1f1a24 100%)}
li.weekhead{font-weight:900;font-size:1.05rem;padding:.2rem .3rem 0}
li.more button,.morebtn{width:100%;display:flex;align-items:center;gap:.4rem;min-height:var(--tap);padding:0 .8rem;border-radius:var(--r);border:1.5px dashed var(--accent);background:#fff;color:var(--accent);font-weight:800;font-size:.86rem;cursor:pointer;text-align:start}
li.more button span{margin-left:auto;font-size:1.1rem}
.morebtn{margin:.3rem 0}
li.could{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:.4rem .7rem;margin-top:.35rem}
.ch3{font-weight:900;font-size:1rem}
.ch3 small{font-weight:700;color:var(--ink2);font-size:.8rem}
.cday{font-weight:900;font-size:.82rem;color:var(--accent-deep);margin-top:.45rem}
.rows li .ib.add{flex:none}
details.alsoon li .btn{flex:none}
/* details sheet: the type sections */
.hero-pic{height:6rem;border-radius:.8rem;margin:.7rem 0 .2rem;display:grid;place-items:center;font-size:3rem;background:linear-gradient(140deg,color-mix(in srgb,var(--c) 22%,#fff),color-mix(in srgb,var(--c) 60%,#1f1a24))}
p.about{font-size:.92rem;margin:.5rem 0}
.bigamt{margin:.7rem 0;font-size:2rem;font-weight:900}
.bigamt small{display:block;font-size:.85rem;font-weight:700;color:var(--ink2)}
.bigamt.in{color:#1f7a3d}
.bigamt.out{color:var(--bad)}
.twodate{display:flex;align-items:center;gap:.5rem;margin:.7rem 0;background:var(--card);border:1px solid var(--line);border-radius:.8rem;padding:.5rem .7rem}
.twodate div{flex:1;min-width:0}
.twodate small{display:block;font-size:.74rem;font-weight:800;color:var(--ink2)}
.twodate b{font-size:1rem}
.twodate span{font-size:1.3rem;font-weight:900;color:var(--accent)}
.btn:disabled{opacity:.45;cursor:not-allowed}
.seg button{padding:0 .25rem;font-size:.8rem}
@media (max-width:440px){.logo{display:none}}
li.ev,li.ev.plan{grid-template-columns:2.75rem minmax(0,1fr) auto}
.b3{font-size:.82rem}
li.could .rows li .k{width:2.9rem}
li.could .rows li .smk{max-width:5.5rem;overflow:hidden}

/* ==== styles/info.css ==== */
/* For information, Waiting on others, snooze tags, the near chip and the record table. */
/* ================= version 3 ================= */
li.ev.info{--dc:#eef4f1;--dk:#1f5c33;border-left-color:#7fb08f}
.sc.info{background:#e8f4ec;color:#1f5c33;border:1px solid #9cc9aa}
li.sechead.info{background:linear-gradient(100deg,#2e7d46,#1d4a2b)}
li.sechead.wait{background:linear-gradient(100deg,#1f5fbf,#16305c)}
.tag.snz{border-color:var(--chg);color:var(--chg);background:#eaf1fc}
.infolink{width:100%;display:flex;align-items:center;gap:.45rem;min-height:var(--tap);padding:0 .7rem;border-radius:var(--r);border:1.5px solid #9cc9aa;background:#f3faf5;font-size:.82rem;color:var(--ink2);cursor:pointer;text-align:start}
.infolink span:nth-child(1){flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.infolink b{color:var(--ink)}
.infolink .cnt{flex:none;min-width:1.8rem;text-align:center;border-radius:999px;background:#2e7d46;color:#fff;font-weight:800;padding:0 .4rem}
.spc.near{border-style:dashed}
.audit table.diff td{font-size:.8rem}
li.weekhead{display:flex;align-items:center;gap:.4rem}
li.weekhead>span{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.infolink.mini{width:auto;flex:none;font-weight:700}

/* ==== styles/rules.css ==== */
/* The rule and its sources in the details sheet. Long addresses wrap, so the sheet never scrolls sideways. */
.act.rule{background:#fff;border:1px solid var(--line)}
.act.rule p{margin:.2rem 0}
.srcs{list-style:none;margin:.3rem 0 0;padding:0}
.srcs li{margin:0}
.srcs a{display:flex;align-items:center;min-height:var(--tap);color:var(--chg);overflow-wrap:anywhere;word-break:break-word;font-size:.82rem}
