:root{
  --paper:#F6F5F0; --surface:#FFFFFF; --surface2:#EFEDE6;
  --ink:#232E38; --ink-soft:#5C6B77; --ink-faint:#8A96A0;
  --line:#E2DFD6; --line-strong:#CFCBBE;
  --accent:#7E2B2B; --accent-ink:#FFFFFF;
  --court:#8A3033; --court-bg:#F5E7E7;
  --interview:#9A5B1E; --interview-bg:#F4EADC;
  --appt:#3E5C76; --appt-bg:#E5EBF1;
  --meeting:#4C6B54; --meeting-bg:#E6EEE8;
  --task:#655A86; --task-bg:#EAE7F1;
  --easy:#5C6B77; --easy-bg:#EBEDEE;
  --open-slot:#8A96A0;
  --clio:#2E5E9E; --gmail:#B34A33; --chat:#2E7D46; --ghl:#A5771E; --clickup:#6C5CC7; --gcal:#3D6FA8;
  --shadow:0 10px 30px rgba(35,46,56,.14);
  --today-ring:#7E2B2B;
}
@media (prefers-color-scheme: dark){
  :root{
    --paper:#161B20; --surface:#1E252C; --surface2:#242C34;
    --ink:#E9E5DB; --ink-soft:#A7B0B8; --ink-faint:#77828B;
    --line:#2D353D; --line-strong:#3A434C;
    --accent:#C96A5F; --accent-ink:#1A1414;
    --court:#D08A85; --court-bg:#3A2626;
    --interview:#D3A05E; --interview-bg:#382D1E;
    --appt:#8FB0CC; --appt-bg:#22303C;
    --meeting:#93BB9E; --meeting-bg:#223126;
    --task:#A79ACB; --task-bg:#2C2839;
    --easy:#A7B0B8; --easy-bg:#262D33;
    --clio:#7FA7DC; --gmail:#DC8A73; --chat:#7CBB90; --ghl:#D0A855; --clickup:#A99BE0; --gcal:#82A8D4;
    --shadow:0 10px 30px rgba(0,0,0,.45);
    --today-ring:#C96A5F;
  }
}
:root[data-theme="dark"]{
    --paper:#161B20; --surface:#1E252C; --surface2:#242C34;
    --ink:#E9E5DB; --ink-soft:#A7B0B8; --ink-faint:#77828B;
    --line:#2D353D; --line-strong:#3A434C;
    --accent:#C96A5F; --accent-ink:#1A1414;
    --court:#D08A85; --court-bg:#3A2626;
    --interview:#D3A05E; --interview-bg:#382D1E;
    --appt:#8FB0CC; --appt-bg:#22303C;
    --meeting:#93BB9E; --meeting-bg:#223126;
    --task:#A79ACB; --task-bg:#2C2839;
    --easy:#A7B0B8; --easy-bg:#262D33;
    --clio:#7FA7DC; --gmail:#DC8A73; --chat:#7CBB90; --ghl:#D0A855; --clickup:#A99BE0; --gcal:#82A8D4;
    --shadow:0 10px 30px rgba(0,0,0,.45);
    --today-ring:#C96A5F;
}
:root[data-theme="light"]{
  --paper:#F6F5F0; --surface:#FFFFFF; --surface2:#EFEDE6;
  --ink:#232E38; --ink-soft:#5C6B77; --ink-faint:#8A96A0;
  --line:#E2DFD6; --line-strong:#CFCBBE;
  --accent:#7E2B2B; --accent-ink:#FFFFFF;
  --court:#8A3033; --court-bg:#F5E7E7;
  --interview:#9A5B1E; --interview-bg:#F4EADC;
  --appt:#3E5C76; --appt-bg:#E5EBF1;
  --meeting:#4C6B54; --meeting-bg:#E6EEE8;
  --task:#655A86; --task-bg:#EAE7F1;
  --easy:#5C6B77; --easy-bg:#EBEDEE;
  --clio:#2E5E9E; --gmail:#B34A33; --chat:#2E7D46; --ghl:#A5771E; --clickup:#6C5CC7; --gcal:#3D6FA8;
  --shadow:0 10px 30px rgba(35,46,56,.14);
  --today-ring:#7E2B2B;
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  background:var(--paper); color:var(--ink);
  font:14px/1.5 "Segoe UI", system-ui, -apple-system, sans-serif;
  -webkit-font-smoothing:antialiased;
}
.serif{font-family:Charter,"Bitstream Charter",Georgia,"Times New Roman",serif}
button{font:inherit; color:inherit; cursor:pointer; border:none; background:none}
button:focus-visible, [tabindex]:focus-visible, input:focus-visible{outline:2px solid var(--accent); outline-offset:2px; border-radius:4px}
.num{font-variant-numeric:tabular-nums}

/* ---------- App bar ---------- */
.appbar{
  display:flex; align-items:center; gap:16px; flex-wrap:wrap;
  padding:12px 20px; border-bottom:1px solid var(--line);
  background:var(--surface); position:sticky; top:0; z-index:40;
}
.wordmark{display:flex; align-items:baseline; gap:10px}
.wordmark .mark{font-family:Charter,Georgia,serif; font-size:20px; font-weight:700; letter-spacing:.2px}
.wordmark .firm{font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--accent); font-weight:600}
.viewswitch{display:flex; background:var(--surface2); border:1px solid var(--line); border-radius:8px; padding:2px}
.viewswitch button{padding:5px 14px; border-radius:6px; font-weight:600; color:var(--ink-soft)}
.viewswitch button[aria-pressed="true"]{background:var(--surface); color:var(--ink); box-shadow:0 1px 3px rgba(0,0,0,.12)}
.datenav{display:flex; align-items:center; gap:8px; margin-left:2px}
.datenav .label{font-family:Charter,Georgia,serif; font-size:17px; font-weight:700; min-width:150px; text-align:center}
.navbtn{width:28px;height:28px;border-radius:6px;border:1px solid var(--line);background:var(--surface);display:grid;place-items:center;color:var(--ink-soft)}
.appbar .right{margin-left:auto; display:flex; align-items:center; gap:8px}
.ghostbtn{padding:6px 12px; border:1px solid var(--line); border-radius:8px; background:var(--surface); font-weight:600; color:var(--ink-soft); font-size:13px}
.avatar{width:30px;height:30px;border-radius:50%;background:var(--accent);color:var(--accent-ink);display:grid;place-items:center;font-weight:700;font-size:12px}

/* ---------- Digest banner ---------- */
.digest{
  display:flex; gap:12px; align-items:flex-start; flex-wrap:wrap;
  margin:14px 20px 0; padding:12px 16px;
  background:var(--surface); border:1px solid var(--line); border-left:3px solid var(--accent);
  border-radius:10px;
}
.digest .spark{font-size:18px; line-height:1.2}
.digest b{font-weight:650}
.digest .meta{color:var(--ink-soft); font-size:13px}
.digest .stats{display:flex; gap:14px; flex-wrap:wrap; margin-top:4px; font-size:13px}
.digest .stat{display:flex; gap:6px; align-items:center; color:var(--ink-soft)}
.digest .stat b{color:var(--ink)}
.digest .dismiss{margin-left:auto; color:var(--ink-faint); font-size:18px; line-height:1}

/* ---------- Layout ---------- */
.main{display:flex; gap:16px; padding:14px 20px 90px; align-items:flex-start}
.sidebar{
  width:272px; flex:0 0 272px; background:var(--surface); border:1px solid var(--line);
  border-radius:12px; padding:14px; position:sticky; top:70px;
}
.canvas{flex:1; min-width:0}
@media (max-width: 900px){
  .main{flex-direction:column}
  .sidebar{width:100%; flex:auto; position:static}
}

/* ---------- Sidebar ---------- */
.side-h{font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-faint); font-weight:700; margin:2px 0 8px}
.easyform{display:flex; gap:6px; margin-bottom:14px}
.easyform input{
  flex:1; min-width:0; padding:8px 10px; border:1px solid var(--line-strong); border-radius:8px;
  background:var(--paper); color:var(--ink); font:inherit; font-size:13px;
}
.easyform button{background:var(--accent); color:var(--accent-ink); border-radius:8px; padding:0 12px; font-weight:700; font-size:16px}
.side-hint{font-size:12px; color:var(--ink-faint); margin:-8px 0 14px}
.ucard{
  border:1px solid var(--line); border-radius:10px; padding:9px 10px 8px; margin-bottom:8px;
  background:var(--paper); cursor:grab; position:relative;
}
.ucard:active{cursor:grabbing}
.ucard .t{font-weight:600; font-size:13px; line-height:1.35}
.ucard .m{display:flex; align-items:center; gap:8px; margin-top:5px; font-size:11.5px; color:var(--ink-soft)}
.ucard .grip{position:absolute; right:8px; top:9px; color:var(--ink-faint); font-size:12px; letter-spacing:1px}
.ucard.dragging{opacity:.45}
.srcdot{width:8px;height:8px;border-radius:3px;display:inline-block;flex:0 0 8px}
.src-clio{background:var(--clio)} .src-gmail{background:var(--gmail)} .src-chat{background:var(--chat)}
.src-ghl{background:var(--ghl)} .src-clickup{background:var(--clickup)} .src-gcal{background:var(--gcal)} .src-easy{background:var(--easy)}
.legend{margin-top:14px; padding-top:12px; border-top:1px solid var(--line); display:grid; grid-template-columns:1fr 1fr; gap:5px 10px; font-size:11.5px; color:var(--ink-soft)}
.legend span{display:flex; gap:6px; align-items:center}

/* ---------- Month view ---------- */
.monthwrap{background:var(--surface); border:1px solid var(--line); border-radius:12px; overflow:hidden}
.dow{display:grid; grid-template-columns:repeat(7,1fr); border-bottom:1px solid var(--line); background:var(--surface2)}
.dow div{padding:7px 10px; font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-faint); font-weight:700}
.mgrid{display:grid; grid-template-columns:repeat(7,1fr)}
.mcell{
  min-height:108px; border-right:1px solid var(--line); border-bottom:1px solid var(--line);
  padding:6px 6px 8px; position:relative; background:var(--surface);
}
.mcell:nth-child(7n){border-right:none}
.mcell.dim{background:var(--paper); color:var(--ink-faint)}
.mcell[data-date]{cursor:pointer}
.mcell .dnum{font-size:12px; font-weight:600; color:var(--ink-soft); width:24px;height:24px;display:grid;place-items:center;border-radius:50%}
.mcell.today .dnum{background:var(--today-ring); color:var(--accent-ink); font-weight:700}
.mcell.droptarget{background:var(--task-bg); outline:2px dashed var(--task); outline-offset:-3px}
.mchip{
  display:flex; gap:5px; align-items:center; font-size:11px; line-height:1.25; font-weight:600;
  padding:2.5px 6px; border-radius:5px; margin-top:3px; cursor:pointer; border:none; width:100%; text-align:left;
  color:var(--ink);
}
.mchip .tm{color:var(--ink-soft); font-weight:600}
.mchip:hover{filter:brightness(.97)}
.mchip.c-court{background:var(--court-bg)} .mchip.c-interview{background:var(--interview-bg)}
.mchip.c-appt{background:var(--appt-bg)} .mchip.c-meeting{background:var(--meeting-bg)}
.mchip.c-task{background:var(--task-bg)} .mchip.c-easy{background:var(--easy-bg)}
.mcell .dayhead{display:flex; align-items:center; justify-content:space-between}
.mcell .load{font-size:10px; color:var(--ink-faint)}

/* ---------- Week + Day time grids ---------- */
.gridwrap{background:var(--surface); border:1px solid var(--line); border-radius:12px; overflow:hidden}
.gridhead{display:grid; border-bottom:1px solid var(--line); background:var(--surface2)}
.gridhead .gh{padding:8px 10px; font-size:12px; font-weight:700; border-right:1px solid var(--line)}
.gridhead .gh:last-child{border-right:none}
.gridhead .gh small{display:block; font-weight:500; color:var(--ink-faint); font-size:11px}
.gridhead .gh.today-col{color:var(--accent)}
.gridbody{display:grid; position:relative}
.timecol{border-right:1px solid var(--line); position:relative; background:var(--paper)}
.timecol .tlabel{position:absolute; right:8px; transform:translateY(-7px); font-size:10.5px; color:var(--ink-faint)}
.daycol{position:relative; border-right:1px solid var(--line)}
.daycol:last-child{border-right:none}
.daycol.droptarget{background:var(--task-bg)}
.hline{position:absolute; left:0; right:0; border-top:1px solid var(--line); pointer-events:none}
.qline{position:absolute; left:0; right:0; border-top:1px dashed color-mix(in srgb, var(--line) 55%, transparent); pointer-events:none}
.band{
  position:absolute; left:0; right:0; background:color-mix(in srgb, var(--appt-bg) 55%, transparent);
  border-top:1px dashed var(--appt); border-bottom:1px dashed var(--appt); pointer-events:none;
}
.band label{position:absolute; right:6px; top:3px; font-size:9.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--appt); font-weight:700}
.evblock{
  position:absolute; left:4px; right:6px; border-radius:8px; padding:5px 9px 5px 10px; overflow:hidden;
  font-size:12px; text-align:left; box-shadow:0 1px 3px rgba(0,0,0,.10); border:none; cursor:pointer;
  display:block; color:var(--ink);
}
.evblock::before{content:""; position:absolute; left:0; top:0; bottom:0; width:3.5px; border-radius:8px 0 0 8px}
.evblock .et{font-weight:700; line-height:1.3}
.evblock .es{font-size:11px; color:var(--ink-soft)}
.evblock .badges{display:flex; gap:4px; margin-top:3px; flex-wrap:wrap}
.evblock:hover{filter:brightness(.98)}
.b-court{background:var(--court-bg)} .b-court::before{background:var(--court)}
.b-interview{background:var(--interview-bg)} .b-interview::before{background:var(--interview)}
.b-appt{background:var(--appt-bg)} .b-appt::before{background:var(--appt)}
.b-meeting{background:var(--meeting-bg)} .b-meeting::before{background:var(--meeting)}
.b-task{background:var(--task-bg)} .b-task::before{background:var(--task)}
.b-easy{background:var(--easy-bg)} .b-easy::before{background:var(--easy)}
.evblock.done{opacity:.5}
.evblock.done .et{text-decoration:line-through}
.openslot{
  position:absolute; left:4px; right:6px; border:1.5px dashed var(--open-slot); border-radius:8px;
  display:flex; align-items:center; justify-content:center; gap:6px;
  font-size:11px; color:var(--ink-soft); background:transparent; pointer-events:none;
}
.srcpill{
  font-size:9.5px; font-weight:700; letter-spacing:.05em; padding:1px 5px; border-radius:4px;
  color:var(--surface); text-transform:uppercase;
}
.p-clio{background:var(--clio)} .p-gmail{background:var(--gmail)} .p-chat{background:var(--chat)}
.p-ghl{background:var(--ghl)} .p-clickup{background:var(--clickup)} .p-gcal{background:var(--gcal)} .p-easy{background:var(--easy)}
.mergeflag{font-size:10px; font-weight:700; color:var(--task); background:transparent}

/* ---------- Empty states ---------- */
.emptynote{
  padding:16px 14px; text-align:center; color:var(--ink-faint); font-size:13px;
}
.sidenote{font-size:12px; color:var(--ink-faint); padding:4px 2px 8px}

/* ---------- Drawer ---------- */
.scrim{position:fixed; inset:0; background:rgba(20,24,28,.35); z-index:60; opacity:0; pointer-events:none; transition:opacity .18s}
.scrim.show{opacity:1; pointer-events:auto}
.drawer{
  position:fixed; top:0; right:-420px; width:400px; max-width:94vw; height:100%; z-index:70;
  background:var(--surface); border-left:1px solid var(--line); box-shadow:var(--shadow);
  transition:right .22s ease; display:flex; flex-direction:column;
}
.drawer.show{right:0}
@media (prefers-reduced-motion: reduce){ .drawer{transition:none} .scrim{transition:none} }
.drawer .dh{padding:16px 18px 12px; border-bottom:1px solid var(--line)}
.drawer .dh .close{float:right; font-size:20px; color:var(--ink-faint); margin:-4px -4px 0 0}
.drawer .cat{font-size:10.5px; letter-spacing:.12em; text-transform:uppercase; font-weight:700; margin-bottom:6px; display:flex; gap:8px; align-items:center}
.drawer h2{font-family:Charter,Georgia,serif; font-size:19px; margin:0 0 6px; line-height:1.3}
.drawer .when{font-size:13px; color:var(--ink-soft)}
.drawer .dbody{flex:1; overflow-y:auto; padding:14px 18px 18px}
.sec{margin-bottom:18px}
.sec h3{font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-faint); margin:0 0 8px; font-weight:700}
.matter{
  border:1px solid var(--line); border-radius:10px; padding:11px 13px; background:var(--paper);
}
.matter .mn{font-weight:700; font-size:13.5px}
.matter .row{display:flex; gap:8px; font-size:12.5px; margin-top:4px; color:var(--ink-soft)}
.matter .row b{color:var(--ink); font-weight:600; flex:0 0 84px}
.matter .ai{
  margin-top:9px; padding-top:9px; border-top:1px dashed var(--line-strong);
  font-size:12.5px; line-height:1.55;
}
.matter .ai .tag{font-size:9.5px; font-weight:700; letter-spacing:.08em; color:var(--accent); text-transform:uppercase; display:block; margin-bottom:3px}
.matter a{color:var(--clio); font-weight:600; text-decoration:none; font-size:12.5px}
.contact{display:flex; gap:8px; flex-wrap:wrap}
.contact .cc{
  display:flex; gap:7px; align-items:center; border:1px solid var(--line); background:var(--paper);
  border-radius:8px; padding:6px 11px; font-size:12.5px;
}
.hist{border-left:2px solid var(--line-strong); margin-left:5px; padding-left:14px}
.hist .h{position:relative; margin-bottom:12px; font-size:12.5px}
.hist .h::before{content:""; position:absolute; left:-19.5px; top:5px; width:9px; height:9px; border-radius:50%; background:var(--line-strong)}
.hist .h.merge::before{background:var(--accent)}
.hist .h .hw{color:var(--ink-faint); font-size:11px; display:flex; gap:6px; align-items:center; margin-bottom:1px}
.hist .h .hx{line-height:1.45}
.hist .h.merge .hx{color:var(--ink)}
.notes{font-size:13px; line-height:1.55; color:var(--ink); background:var(--paper); border:1px solid var(--line); border-radius:10px; padding:10px 13px}
.actions{
  padding:12px 18px; border-top:1px solid var(--line); display:flex; gap:8px; background:var(--surface);
  position:relative;
}
.actions .pri{flex:1; background:var(--accent); color:var(--accent-ink); border-radius:9px; padding:9px 0; font-weight:700}
.actions .sec-b{flex:1; border:1px solid var(--line-strong); border-radius:9px; padding:9px 0; font-weight:600; color:var(--ink-soft); background:var(--surface); position:relative}
.menu{
  position:absolute; bottom:56px; background:var(--surface); border:1px solid var(--line); border-radius:10px;
  box-shadow:var(--shadow); padding:5px; z-index:80; min-width:160px; display:none;
}
.menu.show{display:block}
.menu button{display:block; width:100%; text-align:left; padding:7px 11px; border-radius:6px; font-size:13px}
.menu button:hover{background:var(--surface2)}

/* ---------- Toast ---------- */
.toast{
  position:fixed; bottom:24px; left:50%; transform:translateX(-50%) translateY(20px);
  background:var(--ink); color:var(--paper); padding:10px 18px; border-radius:10px; font-size:13px;
  z-index:90; opacity:0; transition:all .22s; pointer-events:none; max-width:88vw; text-align:center;
  box-shadow:var(--shadow);
}
.toast.show{opacity:1; transform:translateX(-50%) translateY(0)}

/* ---------- Phone preview ---------- */
.phonewrap{position:fixed; inset:0; z-index:75; display:none; align-items:center; justify-content:center; background:rgba(20,24,28,.45)}
.phonewrap.show{display:flex}
.phone{
  width:360px; max-width:92vw; height:min(700px, 88vh); background:var(--paper); border-radius:34px;
  border:8px solid #1a1d21; box-shadow:var(--shadow); overflow:hidden; display:flex; flex-direction:column;
}
.phone .ph{padding:38px 18px 10px; background:var(--surface); border-bottom:1px solid var(--line)}
.phone .ph .d{font-family:Charter,Georgia,serif; font-size:19px; font-weight:700}
.phone .ph .s{font-size:12px; color:var(--ink-soft)}
.phone .pb{flex:1; overflow-y:auto; padding:12px 14px}
.prow{display:flex; gap:10px; margin-bottom:10px}
.prow .pt{flex:0 0 52px; text-align:right; font-size:11px; color:var(--ink-faint); padding-top:7px}
.prow .pc{flex:1; border-radius:10px; padding:8px 11px; font-size:12.5px}
.prow .pc b{display:block; font-size:13px}
.prow .pc small{color:var(--ink-soft)}
.phoneclose{position:absolute; top:18px; right:22px; color:#fff; font-size:26px; z-index:76}
.phone .pfoot{padding:9px; border-top:1px solid var(--line); background:var(--surface); display:flex; gap:6px; justify-content:center}
.phone .pfoot span{font-size:11px; color:var(--ink-faint)}

/* ---------- Day-view unallocated tray ---------- */
.day-tray{background:var(--surface);border:1px solid var(--line);border-radius:12px;margin-bottom:10px;padding:10px 12px}
.tray-h{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);font-weight:700;margin-bottom:8px}
.tray-h small{text-transform:none;letter-spacing:0;font-weight:500;margin-left:8px}
.tray-cards{display:flex;flex-wrap:wrap;gap:8px}
.trayc{display:flex;align-items:center;gap:8px;border:1px solid var(--line-strong);background:var(--paper);border-radius:9px;padding:6px 8px 6px 10px;cursor:grab;max-width:100%;position:relative}
.trayc:active{cursor:grabbing}
.trayc.dragging{opacity:.45}
.trayc:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.trayc .tt{font-size:12.5px;font-weight:600;max-width:340px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.trayc .due{font-size:10.5px;color:var(--ink-soft);border:1px solid var(--line);border-radius:5px;padding:1px 5px;white-space:nowrap}
.trayc .due.nod{color:var(--accent);border-color:var(--accent)}
.trayc .qa{display:flex;gap:4px}
.trayc .qa button{font-size:10.5px;border:1px solid var(--line-strong);background:var(--surface);border-radius:6px;padding:2px 7px;color:var(--ink-soft);cursor:pointer}
.trayc .qa button:hover{color:var(--ink);border-color:var(--ink-faint)}
.trayc .qa-datepick{position:absolute;opacity:0;width:0;height:0;border:0;padding:0}

/* ---------- User menu ---------- */
#usermenu{position:fixed;top:52px;right:18px;z-index:95;min-width:240px;background:var(--surface);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow);padding:5px}
#usermenu .um-head{padding:7px 11px;font-size:12px;color:var(--ink-faint);border-bottom:1px solid var(--line);margin-bottom:4px}
#usermenu .um-va{color:var(--accent);font-weight:600}
#usermenu button{display:block;width:100%;text-align:left;padding:7px 11px;border:none;background:none;border-radius:6px;font-size:13px;color:var(--ink);cursor:pointer}
#usermenu button:hover{background:var(--surface2)}

/* Inline date field inside the snooze menu */
.menu .pickrow{display:flex;align-items:center;gap:8px;padding:7px 11px;font-size:13px;color:var(--ink);white-space:nowrap}
.menu .pickrow input[type=date]{border:1px solid var(--line-strong);border-radius:6px;background:var(--paper);color:var(--ink);font:inherit;font-size:12px;padding:3px 6px}

/* .sec-b is a span now (menus can't legally live inside <button> - the parser
   hoists them out and the dropdown items spill into the action bar). */
.actions .sec-b{display:flex;align-items:center;justify-content:center;text-align:center;cursor:pointer;user-select:none;font-size:14px}
.actions .sec-b:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

/* ---------- QC phase: master view, assignment, shielding, settings ---------- */
#vw-master[aria-pressed="true"]{background:var(--accent);color:var(--accent-ink)}
.assignpill{font-size:9.5px;font-weight:700;padding:1px 5px;border-radius:4px;background:var(--accent);color:var(--accent-ink);white-space:nowrap}
.evblock.shielded{opacity:.7;background:repeating-linear-gradient(45deg,var(--surface2),var(--surface2) 6px,var(--paper) 6px,var(--paper) 12px)}
.evblock.shielded::before{background:var(--ink-faint)}
#settingswrap{position:fixed;inset:0;background:rgba(20,24,28,.45);z-index:96;display:flex;align-items:center;justify-content:center;padding:16px}
.settingscard{background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);padding:22px 24px;width:420px;max-width:100%;max-height:88vh;overflow-y:auto}
.settingscard h2{font-size:19px;margin:0 0 6px}
.settingscard h3{font-size:11px;letter-spacing:.11em;text-transform:uppercase;color:var(--ink-faint);margin:18px 0 6px}
.settingscard h3 small{text-transform:none;letter-spacing:0;font-weight:500}
.settingscard .srow{display:flex;align-items:center;gap:8px;padding:5px 0;font-size:13.5px;cursor:pointer}
.settingscard .codes{display:flex;gap:12px;flex-wrap:wrap;padding:4px 0 4px 26px;font-size:13px}
.settingscard .codes label{display:flex;gap:5px;align-items:center;cursor:pointer}
.settingscard .shint{font-size:11.5px;color:var(--ink-faint);margin-top:10px;line-height:1.5}
.settingscard .sbtns{display:flex;gap:8px;justify-content:flex-end;margin-top:20px}
.settingscard .savebtn{background:var(--accent);color:var(--accent-ink);border:none;border-radius:8px;padding:8px 18px;font-weight:700;cursor:pointer}

.backlogbtn{display:block;width:100%;margin:0 0 8px;padding:6px 10px;border:1px dashed var(--line-strong);border-radius:8px;background:none;color:var(--ink-faint);font-size:11.5px;cursor:pointer;text-align:center}
.backlogbtn:hover{color:var(--ink);border-color:var(--ink-faint)}

.tray-h.hot{color:var(--accent)}
.trayc .due.today{color:var(--accent);border-color:var(--accent);font-weight:700}

/* ---------- Day view: hour-bucket layout ---------- */
.daylist{padding-bottom:4px}
.hourrow{display:flex;border-bottom:1px solid var(--line);min-height:30px}
.hourrow:last-child{border-bottom:none}
.hourrow.empty .hstack{min-height:22px}
.hourrow.phonewin{background:color-mix(in srgb, var(--appt-bg) 40%, transparent)}
.hourrow.droptarget{background:var(--task-bg);outline:2px dashed var(--task);outline-offset:-2px}
.hlab{flex:0 0 64px;padding:6px 10px 0 12px;font-size:11px;color:var(--ink-faint);text-align:right;border-right:1px solid var(--line)}
.hlab small{display:block;font-size:8.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--appt);line-height:1.3;margin-top:2px}
.hstack{flex:1;display:flex;flex-direction:column;gap:4px;padding:4px 10px 4px 8px;min-width:0}
.lineitem{display:flex;align-items:center;gap:10px;border:none;border-left:3.5px solid var(--ink-faint);border-radius:6px;padding:5px 10px;font:inherit;font-size:12.5px;text-align:left;cursor:pointer;color:var(--ink);min-width:0}
.lineitem.b-court{background:var(--court-bg);border-left-color:var(--court)}
.lineitem.b-interview{background:var(--interview-bg);border-left-color:var(--interview)}
.lineitem.b-appt{background:var(--appt-bg);border-left-color:var(--appt)}
.lineitem.b-meeting{background:var(--meeting-bg);border-left-color:var(--meeting)}
.lineitem.b-task{background:var(--task-bg);border-left-color:var(--task)}
.lineitem.b-easy{background:var(--easy-bg);border-left-color:var(--easy)}
.lineitem:hover{filter:brightness(.97)}
.lineitem.dragging{opacity:.45}
.lineitem.done{opacity:.5}
.lineitem.done .li-title{text-decoration:line-through}
.lineitem.shielded{opacity:.7;background:repeating-linear-gradient(45deg,var(--surface2),var(--surface2) 6px,var(--paper) 6px,var(--paper) 12px)}
.lineitem .li-time{flex:0 0 auto;font-size:11px;color:var(--ink-soft);font-weight:600;white-space:nowrap}
.lineitem .li-title{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.lineitem .li-badges{margin-left:auto;display:flex;gap:4px;flex:0 0 auto}
.lineitem.openline{background:none;border:1.5px dashed var(--open-slot);border-radius:8px;color:var(--ink-soft);font-size:11.5px;justify-content:center;cursor:default}
@media (max-width:700px){ .lineitem .li-badges{display:none} }

.laybtn{border:1px solid var(--line-strong);background:var(--surface);border-radius:7px;padding:4px 10px;font-size:11.5px;font-weight:600;color:var(--ink-soft);cursor:pointer;margin:6px 10px 6px 0;white-space:nowrap}
.laybtn:hover{color:var(--ink);border-color:var(--ink-faint)}

/* Tray: side-by-side triage columns */
.tray-cols{display:grid;grid-template-columns:1fr 1fr;gap:4px 20px;align-items:start}
@media (max-width:820px){ .tray-cols{grid-template-columns:1fr} }
.tcol-stack{display:flex;flex-direction:column;gap:6px;margin-top:6px}
.tcol-stack .trayc{width:100%}
.tray-empty{font-size:12px;color:var(--ink-faint);padding:8px 4px;font-style:italic}

/* Phone-message source tag */
.p-phone{background:#1E8A8A} .src-phone{background:#1E8A8A}
@media (prefers-color-scheme: dark){ .p-phone{background:#5FB6B6} .src-phone{background:#5FB6B6} }
:root[data-theme="dark"] .p-phone, :root[data-theme="dark"] .src-phone{background:#5FB6B6}
:root[data-theme="light"] .p-phone, :root[data-theme="light"] .src-phone{background:#1E8A8A}

/* Phone escalation + urgency */
.p-phone-escalation{background:#B3261E} .src-phone-escalation{background:#B3261E}
.trayc.urgent{border:1.5px solid #B3261E;background:color-mix(in srgb,#B3261E 8%,var(--paper))}
.urgentbadge{font-size:9px;font-weight:800;letter-spacing:.05em;background:#B3261E;color:#fff;border-radius:4px;padding:1.5px 6px}
.agebadge{font-size:10px;font-weight:700;color:#B3261E;border:1px solid #B3261E;border-radius:4px;padding:0 5px}

/* Tap-to-call chip on day items */
.telchip{display:inline-flex;align-items:center;gap:3px;font-size:11px;font-weight:600;color:var(--clio);text-decoration:none;white-space:nowrap;border:1px solid var(--line);border-radius:5px;padding:1px 6px;background:var(--surface)}
.telchip:hover{border-color:var(--clio);filter:brightness(1.05)}
.lineitem .telchip{margin-left:auto}
.lineitem .li-badges{margin-left:8px}
.evblock .telchip{margin-top:2px}
