/* cockpit: dark instrument panel. Amber is the single accent; green only ever
   means "measured good"; red = overdue/kill. */
:root{
  --bg:#0c0e11; --panel:#14171c; --panel2:#1d2128; --line:#232830; --line2:#2a2f38;
  --ink:#e8e6e0; --mut:#8b919c; --dim:#5d646e;
  --amber:#e0a458; --green:#8fbb8a; --red:#c96a5b; --blue:#7ea7d8;
}
*{ box-sizing:border-box; }
html,body{ margin:0; padding:0; }
body{ background:var(--bg); color:var(--ink);
  font:14px/1.5 system-ui,-apple-system,"Segoe UI",sans-serif; }
a{ color:var(--blue); text-decoration:none; }
.mono{ font-family:ui-monospace,"SF Mono",Menlo,monospace; font-variant-numeric:tabular-nums; }

.wrap{ max-width:1240px; margin:0 auto; padding:0 18px 80px; }

/* top nav */
nav{ display:flex; align-items:center; gap:18px; padding:10px 18px; max-width:1240px; margin:0 auto; }
nav .brand{ font-weight:700; letter-spacing:.02em; color:var(--amber); }
nav a{ color:var(--dim); text-transform:uppercase; font-size:11px; letter-spacing:.1em; }
nav a.on{ color:var(--amber); }
nav .right{ margin-left:auto; font-size:11px; color:var(--dim); }
nav .right a{ text-transform:none; letter-spacing:0; }

.panel{ background:var(--panel); border:1px solid var(--line2); border-radius:12px;
  margin-bottom:14px; overflow:hidden; }
.ph{ padding:9px 16px; border-bottom:1px solid var(--line); display:flex;
  align-items:center; gap:12px; }
.ph .t{ font-weight:650; font-size:13.5px; }
.ph .hint{ font-size:10.5px; color:var(--dim); text-transform:uppercase; letter-spacing:.1em; }
.ph .sp{ margin-left:auto; }
.pb{ padding:12px 16px 16px; }

.btn{ display:inline-block; background:var(--amber); color:#191510; border:none;
  border-radius:6px; font-weight:650; font-size:12.5px; padding:6px 14px; cursor:pointer;
  font-family:inherit; }
.btn.ghost{ background:none; border:1px solid #3a4048; color:#aab0b9; font-weight:500; }
.btn.red{ background:none; border:1px solid #4a3230; color:var(--red); font-weight:500; }
.btn:disabled{ opacity:.4; cursor:default; }

.chip{ display:inline-block; font-size:9.5px; text-transform:uppercase; letter-spacing:.07em;
  padding:1px 7px 2px; border-radius:3px; font-weight:600; }
.c-work{ background:#3a2f1d; color:var(--amber); }
.c-study{ background:#1f2c3c; color:var(--blue); }
.c-personal{ background:#20301f; color:var(--green); }
.c-chore{ background:#2a2d33; color:#9aa1ab; }

input,select,textarea{ background:#0e1013; border:1px solid var(--line); color:var(--ink);
  border-radius:7px; padding:7px 10px; font:inherit; }
input:focus,textarea:focus{ outline:1px solid #45381f; }

/* ---------------- deck ---------------- */
#deck{ padding-top:8px; }
/* slim replacement for the old sticky deck: timer + day summary only,
   shows once the real deck scrolls out of view */
#minibar{ display:none; position:fixed; top:0; left:0; right:0; height:30px; z-index:70;
  background:var(--panel); border-bottom:1px solid var(--line2); cursor:pointer;
  align-items:center; gap:10px; padding:0 14px; font-size:12px; color:var(--ink); }
#minibar.show{ display:flex; }
#minibar .mb-task{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
#minibar.alarm{ border-bottom-color:var(--red); color:var(--red); }
#minibar .mb-sum{ margin-left:auto; color:var(--mut); white-space:nowrap; }
.deck{ display:grid; grid-template-columns:330px 1fr; }
@media (max-width:840px){ .deck{ grid-template-columns:1fr; } }
.now{ padding:14px 18px; border-right:1px solid var(--line); }
.now .lbl{ font-size:10px; color:var(--amber); text-transform:uppercase; letter-spacing:.12em; }
.now .lbl.paused{ color:var(--blue); }
.now .goal{ font-size:15.5px; font-weight:600; margin:5px 0 1px; }
.now .src{ font-size:11px; color:var(--mut); }
.now .clock{ font-size:46px; font-weight:600; letter-spacing:-.02em; line-height:1.1; margin:6px 0 9px; }
.now .ctl{ display:flex; gap:8px; flex-wrap:wrap; }
.startform{ display:flex; flex-direction:column; gap:8px; }
.startform input[type=text]{ width:100%; }
.startrow{ display:flex; gap:8px; align-items:center; }
.pills{ padding:12px 16px; }
.tp-head{ display:flex; justify-content:space-between; font-size:10.5px; color:var(--mut); margin-bottom:8px; }
.tp-row{ display:flex; gap:7px; flex-wrap:wrap; }
.pill{ background:var(--panel2); border:1px solid #262b34; border-radius:7px; padding:5px 9px;
  min-width:104px; cursor:default; }
.pill .pt{ font-size:11px; color:#c9c7c0; max-width:150px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pill .ps{ font-size:10px; color:var(--mut); margin-top:1px; display:flex; gap:6px; }
.pill.done{ border-color:#2c3a2c; } .pill.done .ok{ color:var(--green); }
.pill.killed{ border-color:#4a2f2b; } .pill.killed .ko{ color:var(--red); }
.pill.live{ border-color:var(--amber); background:#211d15; }
.pill.plan{ border-style:dashed; opacity:.75; cursor:pointer; }
.pill.plan:hover{ opacity:1; border-color:var(--amber); }
.pill .px{ color:var(--dim); cursor:pointer; padding:0 2px; visibility:hidden; }
.pill:hover .px{ visibility:visible; }
.pill .px:hover{ color:var(--red); }

/* alarm + downtime bands in the deck */
.alarmband{ display:flex; align-items:center; gap:8px; margin:6px 0 10px; padding:7px 10px;
  border:1px solid var(--red); border-radius:8px; background:#241614; font-size:11.5px;
  color:var(--red); font-weight:650; letter-spacing:.04em;
  animation:alarmpulse 1.2s ease-in-out infinite; }
@keyframes alarmpulse{ 0%,100%{ box-shadow:0 0 0 0 #c96a5b33; } 50%{ box-shadow:0 0 0 5px #c96a5b22; } }
.breakband{ margin:6px 0 10px; padding:7px 10px; border:1px solid #2c3a2c; border-radius:8px;
  background:#101710; font-size:11.5px; color:var(--green); letter-spacing:.06em; }
.refl{ margin-top:8px; }
.refl input{ width:100%; background:var(--panel2); border:1px solid var(--line2); border-radius:7px;
  color:var(--ink); padding:6px 9px; font-size:12px; }
.sil{ font-size:11px; }
.btn.noise.on{ border-color:#8fbb8a; color:#8fbb8a; }

/* nav status strip */
.stx{ font-size:10px; letter-spacing:.04em; padding:1px 5px; border-radius:4px; border:1px solid var(--line2); cursor:pointer; }
.stx.ok, .stx.green{ color:#8fbb8a; border-color:#2f4a33; }
.stx.amber{ color:var(--amber); border-color:#4a3f2b; }
.stx.bad, .stx.red{ color:var(--red); border-color:#4a2f2b; }
.stx:hover{ filter:brightness(1.3); }

/* source status + setup modal */
#srcmodal{ display:none; position:fixed; inset:0; background:#000a; z-index:80; align-items:center; justify-content:center; padding:20px; }
#srcmodal.open{ display:flex; }
#srcmodal .mbox{ width:760px; max-width:100%; max-height:86vh; display:flex; flex-direction:column; }
.srcbody{ padding:12px 16px 16px; overflow:auto; display:flex; flex-direction:column; gap:8px; font-size:12.5px; }
.srclevel{ font-size:12px; padding:5px 9px; border-radius:6px; border:1px solid var(--line2); }
.srclevel.green{ color:#8fbb8a; border-color:#2f4a33; }
.srclevel.amber{ color:var(--amber); border-color:#4a3f2b; }
.srclevel.red{ color:var(--red); border-color:#4a2f2b; }
.srow{ display:flex; gap:12px; font-size:12px; }
.srow .sk{ width:150px; color:var(--dim); flex:none; }
.srow .sv .bad{ color:var(--red); }
.setup h2{ font-size:14px; margin:6px 0 4px; }
.setup h3{ font-size:12px; color:var(--amber); text-transform:uppercase; letter-spacing:.08em; margin:14px 0 4px; }
.setup p, .setup li{ line-height:1.5; color:var(--ink); }
.setup pre{ background:var(--panel2); border:1px solid var(--line2); border-radius:6px; padding:8px 10px; overflow:auto; font-size:11.5px; }
.setup code{ font-size:11.5px; }

/* plan intelligence */
.behind{ color:var(--red); }
.blk.missed{ border-color:#4a2f2b; background:#1d1614; }

.mtflag{ color:var(--red); font-weight:700; cursor:help; }
.silsw{ color:var(--dim); font-size:11px; display:flex; gap:5px; align-items:center; cursor:pointer; }
.footlink{ background:none; border:none; color:var(--dim); font-size:11px; cursor:pointer; text-decoration:none; }
.footlink:hover{ color:var(--amber); }
.awlock{ font-size:12px; color:var(--mut); padding:6px 0; display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
.awspan.locked, .psbar.locked{ opacity:.45; font-style:italic; }
.silsw input{ accent-color:var(--amber); }

/* per-repo activity bands on the actual track + day chips */
.rspan{ position:absolute; left:0; right:0; border-left:2px solid; border-radius:3px;
  pointer-events:none; overflow:hidden; }
.rspan span{ font-size:9px; padding-left:5px; letter-spacing:.03em; white-space:nowrap; }
/* day target bar */
.ctbar{ display:flex; gap:9px; align-items:center; font-size:11.5px; color:var(--mut);
  margin-bottom:10px; flex-wrap:wrap; }
.ctbar input{ background:var(--panel2); border:1px solid var(--line2); border-radius:6px;
  color:var(--ink); padding:3px 7px; font-size:11px; }
.ctbar .ctlab{ font-size:10px; letter-spacing:.1em; color:var(--dim); }
.ctbar b{ color:var(--ink); }
.ctbar .cthint{ font-size:10px; color:var(--dim); }
.cttrack{ width:120px; height:5px; background:var(--panel2); border-radius:3px;
  overflow:hidden; display:inline-block; }
.cttrack i{ display:block; height:100%; background:var(--amber); }
.ctbar .ctout{ border:1px solid var(--line2); border-radius:10px; padding:1px 8px; font-size:10px; }
.ctbar .ctedit{ color:var(--dim); cursor:pointer; font-size:10px; text-decoration:underline; }
.ctbar .okc{ color:var(--green); }

.rchips{ display:flex; gap:6px; flex-wrap:wrap; margin-bottom:10px; }
.rchips:empty{ display:none; }
.rchip{ font-size:10px; padding:2px 8px; border:1px solid; border-radius:10px; background:var(--panel2); }

/* block editing */
.blk{ cursor:grab; touch-action:none; user-select:none; }
.blk .bh{ position:absolute; left:0; right:0; height:7px; cursor:ns-resize; }
.blk .bh.top{ top:0; } .blk .bh.bot{ bottom:0; }
.blk .bx{ position:absolute; top:2px; right:6px; color:var(--dim); cursor:pointer;
  font-size:11px; visibility:hidden; }
.blk .bx.bk{ right:24px; }
.blk:hover .bx{ visibility:visible; }
.blk .bx:hover{ color:var(--red); }
.blk .bx.bk:hover{ color:var(--amber); }
.blk.off{ border-style:dotted; opacity:.7; background:#14171c; }
.blk.ghost{ border:1px dashed var(--amber); color:var(--amber); font-size:10px;
  padding:2px 8px; pointer-events:none; background:#211d1533; }

/* sidebar lane chips + estimate */
.lanechips{ display:flex; gap:6px; }
.lanechips .lc{ background:var(--panel2); border:1px solid var(--line2); border-radius:6px;
  color:var(--mut); font-size:11px; padding:4px 10px; cursor:pointer; }
.lanechips .lc.on{ border-color:var(--amber); color:var(--amber); }
#sb-est{ width:44px; background:var(--panel2); border:1px solid var(--line2); border-radius:5px;
  color:var(--ink); padding:2px 4px; font-size:11px; }

/* ---------------- roadmap ---------------- */
.score{ display:flex; gap:6px; margin-bottom:12px; flex-wrap:wrap; }
.stat{ flex:1; min-width:70px; background:var(--panel2); border:1px solid #262b34; border-radius:7px;
  padding:6px 4px 5px; text-align:center; }
.stat b{ display:block; font-size:15px; }
.stat span{ font-size:8.5px; color:var(--mut); text-transform:uppercase; letter-spacing:.06em; }
.stat .ok{ color:var(--green); } .stat .bad{ color:var(--red); }
.spark{ display:flex; gap:2px; align-items:flex-end; height:34px; flex:2; min-width:120px;
  background:var(--panel2); border:1px solid #262b34; border-radius:7px; padding:5px 8px 4px; }
.spark i{ flex:1; background:#45381f; border-radius:1px; min-height:2px; }
.spark i.hi{ background:var(--amber); }

.cal{ position:relative; margin:26px 0 0 0; overflow:hidden; }
.cal .hour{ position:absolute; left:0; right:0; border-top:1px solid #1c2027; font-size:9.5px; color:var(--dim); }
.cal .hour span{ position:absolute; left:0; top:2px; background:var(--panel); padding-right:6px; }
.tracks{ position:absolute; left:48px; right:0; top:0; bottom:0; display:grid;
  grid-template-columns:1fr 1fr; gap:12px; }
.tracks.three{ grid-template-columns:1.1fr 1fr 1.3fr; }
.awspan{ position:absolute; left:0; right:0; overflow:hidden; border-radius:2px; }
.awspan span{ font-size:9px; padding-left:5px; white-space:nowrap; display:block;
  line-height:1.25; }
.tlabel{ position:absolute; top:-20px; font-size:9.5px; color:var(--dim); text-transform:uppercase; letter-spacing:.1em; }
.blk{ position:absolute; left:0; right:0; border-radius:6px; padding:4px 8px; font-size:11px;
  border:1px solid var(--line2); background:#191d23; color:#aab0b9; overflow:hidden; }
.blk.current{ border-color:var(--amber); background:#211d15; color:var(--ink); box-shadow:0 0 0 1px #e0a45833; }
.blk .bs{ font-size:9.5px; color:var(--dim); }
.act{ position:absolute; left:0; right:0; border-radius:5px; font-size:10px; padding:1px 7px;
  background:#26221a; border:1px solid #45381f; color:#d9d6cf; display:flex;
  justify-content:space-between; overflow:hidden; white-space:nowrap; }
.act .pct{ color:var(--green); } .act .pct.low{ color:#c9a15b; }
.act.killed{ border-color:#5a3531; } .act.killed .pct{ color:var(--red); }
.act.pausegap{ background:none; border:1px dashed #3a4048; color:var(--dim); justify-content:center; }
.act.live{ border-color:var(--amber); background:#2a2415; }
.nowline{ position:absolute; left:0; right:0; border-top:2px solid var(--red); z-index:5; }
.nowline .nb{ position:absolute; left:-2px; top:-9px; background:var(--red); color:#fff;
  font-size:9.5px; font-weight:700; border-radius:3px; padding:1px 5px; }
.emptyday{ text-align:center; padding:30px 0 22px; color:var(--mut); }
.env{ margin-top:12px; }
.env .er{ display:flex; align-items:center; gap:8px; font-size:11px; color:var(--mut); margin-bottom:5px; }
.env .lbl{ flex:0 0 72px; }
.track{ flex:1; height:5px; background:#232830; border-radius:3px; overflow:hidden; }
.fill{ height:100%; background:var(--amber); }
.env .num{ flex:0 0 78px; text-align:right; }

/* ---------------- radar ---------------- */
.radgrid{ display:grid; grid-template-columns:1fr 1fr; gap:0 14px; }
@media (max-width:840px){ .radgrid{ grid-template-columns:1fr; } }
.dl{ display:flex; justify-content:space-between; gap:10px; align-items:center;
  border:1px solid #262b34; background:var(--panel2); border-radius:8px; padding:7px 11px; margin-bottom:6px; }
.dl .ti{ font-weight:550; font-size:13px; }
.dl .sub2{ font-size:10.5px; color:var(--mut); margin-top:1px; }
.due{ font-size:11px; color:var(--mut); white-space:nowrap; }
.due.red{ color:var(--red); font-weight:600; }
.dl.over{ border-color:#4a2f2b; }
.dl .x{ color:var(--dim); cursor:pointer; font-size:12px; padding:2px 4px; }
.dl .x:hover{ color:var(--red); }
.addrow{ display:flex; gap:8px; margin-top:8px; flex-wrap:wrap; }
.addrow input[type=text]{ flex:1; min-width:140px; }

/* ---------------- board ---------------- */
/* minmax(0,…) not 1fr: a card holding one long unbreakable URL sets a min
   content width otherwise and steals the other lanes' share */
.boardwrap{ display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:12px; }
@media (max-width:840px){ .boardwrap{ grid-template-columns:1fr; } }
.lane h3{ font-size:10px; color:var(--dim); text-transform:uppercase; letter-spacing:.1em;
  margin:0 0 8px; display:flex; justify-content:space-between; }
.lane .lock{ color:var(--amber); }
.lane.dragover{ outline:1px dashed var(--amber); outline-offset:4px; border-radius:8px; }
.card{ background:var(--panel2); border:1px solid #262b34; border-radius:8px;
  padding:7px 10px; margin-bottom:7px; cursor:pointer; }
.card:hover{ border-color:#3a4048; }
.card .ti{ font-weight:550; margin-bottom:3px; font-size:13px; overflow-wrap:anywhere; }

/* forge references: a url in a title renders as repo#number, the way github
   and forgejo render one. Plain inline text, no box: a padded inline-block sits
   on the baseline and shoves every line it lands in off the one beside it,
   which is very visible in the timeline blocks and the pomodoro pills. */
a.ref{ color:var(--blue); text-decoration:none; white-space:nowrap; }
a.ref:hover{ text-decoration:underline; }
/* inside a block that is itself the click target, the reference is text only */
.act a.ref, .pill a.ref{ pointer-events:none; color:#9dc0e8; }
.card .meta{ display:flex; gap:8px; align-items:center; font-size:10.5px; color:var(--mut); }
.card.sel{ border-color:var(--amber); background:#211d15; }
.card.rotting{ opacity:.45; }
.pcount{ color:#c9a15b; }
.qdot{ color:var(--green); }
.capture{ display:flex; gap:8px; margin-bottom:12px; }
.bdfilter{ display:flex; gap:10px; align-items:center; margin-bottom:8px; }
.bdfilter input{ flex:1; }
.bdfilter input::-webkit-search-cancel-button{ filter:invert(.6); cursor:pointer; }
.bdhits{ font-size:11px; color:var(--dim); white-space:nowrap; }
.bdhits a{ color:var(--amber); cursor:pointer; text-decoration:none; }
.bdhits a:hover{ text-decoration:underline; }
.capture input[type=text]{ flex:1; }

/* label chips: filter + capture-tagging in one row */
.labelbar{ display:flex; gap:6px; flex-wrap:wrap; margin-bottom:12px; }
.lbchip{ background:var(--panel2); border:1px solid var(--line2); color:var(--mut);
  border-radius:999px; padding:3px 11px; font-size:11px; cursor:pointer; white-space:nowrap; }
.lbchip:hover{ border-color:var(--amber); color:var(--amber); }
.lbchip.on{ border-color:var(--amber); color:var(--amber); background:#211d15; }
.lbchip .lbx{ display:none; margin-left:6px; color:var(--dim); font-size:9px; }
.lbchip:hover .lbx{ display:inline; }
.lbchip .lbx:hover{ color:var(--red); }
.lbchip.lbadd{ padding:3px 9px; }
#lb-new{ font-size:11px; padding:2px 10px; border-radius:999px; width:130px; }
#sb-labels{ margin-bottom:0; }
.card .clab{ color:var(--dim); font-size:10px; border:1px solid var(--line2);
  border-radius:999px; padding:0 7px; white-space:nowrap; }

/* sidebar */
#sidebar{ position:fixed; top:0; right:-420px; width:400px; max-width:95vw; height:100vh;
  background:#171a20; border-left:1px solid #2f3540; z-index:75; transition:right .18s ease;
  display:flex; flex-direction:column; padding:16px 18px; gap:10px; }
#sidebar.open{ right:0; }
#sidebar .st{ font-size:15px; font-weight:650; border-radius:6px; padding:2px 4px; margin:0 -4px; }
#sidebar .st:hover{ background:var(--panel2); cursor:text; }
#sidebar .st:focus{ outline:1px solid #45381f; background:var(--panel2); }
#sidebar .sm{ display:flex; gap:10px; align-items:center; font-size:11px; color:var(--mut); flex-wrap:wrap; }
#sidebar .sm .cid{ font-family:ui-monospace,SFMono-Regular,Menlo,monospace; cursor:pointer;
  padding:1px 6px; border:1px solid var(--line); border-radius:4px; color:var(--dim);
  user-select:all; white-space:nowrap; }
#sidebar .sm .cid:hover{ color:var(--ink); border-color:var(--mut); }
#sidebar .sm .cid.ok{ color:var(--green); border-color:currentColor; user-select:none; }
#sidebar textarea{ flex:1; resize:none; font-family:ui-monospace,"SF Mono",Menlo,monospace;
  font-size:12.5px; line-height:1.65; background:#0e1013; }
#sidebar .foot{ display:flex; justify-content:space-between; align-items:center;
  font-size:10.5px; color:var(--dim); }
#sidebar .close{ position:absolute; top:10px; right:14px; color:var(--dim); cursor:pointer; font-size:16px; }
#sidebar .answer{ background:#101710; border:1px solid #2c3a2c; border-radius:8px; padding:10px 12px;
  font-size:12.5px; max-height:30vh; overflow:auto; }

/* ---------------- feed / history ---------------- */
.fi{ display:flex; gap:10px; padding:5px 0; border-top:1px solid #1c2027; font-size:12.5px; align-items:baseline; }
.fi .ft{ flex:0 0 42px; color:var(--dim); font-size:10.5px; }
.fi .src{ flex:0 0 60px; font-size:9px; text-transform:uppercase; letter-spacing:.07em; }
.s-git{ color:var(--amber); } .s-pomo{ color:var(--green); } .s-github{ color:var(--blue); }
.s-forge{ color:#c9a15b; } .s-aw{ color:#9aa1ab; }
.fi .fx{ color:#c9c7c0; overflow:hidden; text-overflow:ellipsis; }
.fi .fx .m{ color:var(--dim); font-size:11px; }
.dayhead{ font-size:10.5px; color:var(--amber); text-transform:uppercase; letter-spacing:.1em; margin:16px 0 1px; }
.daysum{ font-size:10.5px; color:var(--dim); margin-bottom:4px; }
.filters{ display:flex; gap:6px; margin-bottom:10px; flex-wrap:wrap; }
.filters .f{ border:1px solid #3a4048; border-radius:20px; padding:2px 11px; font-size:11px;
  color:#aab0b9; cursor:pointer; background:none; font-family:inherit; }
.filters .f.on{ border-color:var(--amber); color:var(--amber); }

/* ---------------- briefing ---------------- */
.bf h2{ font-size:12px; text-transform:uppercase; letter-spacing:.1em; color:var(--amber); margin:14px 0 5px; }
.bf h1{ font-size:15px; margin:4px 0 2px; }
.bf p,.bf li{ font-size:12.5px; color:#c9c7c0; margin:0 0 4px; }
.bf ul{ margin:0; padding-left:18px; }

/* ---------------- modal (horarium) ---------------- */
#modal{ display:none; position:fixed; inset:0; background:#000a; z-index:80;
  align-items:center; justify-content:center; padding:20px; }
#modal.open{ display:flex; }
.mbox{ background:var(--panel); border:1px solid var(--line2); border-radius:12px;
  width:1000px; max-width:96vw; max-height:92vh; display:flex; flex-direction:column; }
.mbody{ display:grid; grid-template-columns:1fr 1fr; gap:14px; padding:14px 16px; overflow:auto; }
@media (max-width:840px){ .mbody{ grid-template-columns:1fr; } }
.mbody textarea{ min-height:380px; font-family:ui-monospace,"SF Mono",Menlo,monospace;
  font-size:12.5px; line-height:1.6; width:100%; resize:vertical; }
.wk{ display:grid; grid-template-columns:repeat(7,1fr); gap:5px; }
.wd{ background:#0e1013; border:1px solid var(--line); border-radius:6px; padding:5px;
  font-size:8.5px; color:var(--dim); min-height:110px; }
.wd .dn{ text-transform:uppercase; letter-spacing:.08em; margin-bottom:2px; }
.seg{ background:#26221a; border:1px solid #45381f; border-radius:3px; margin:3px 0 0;
  padding:1px 4px; color:#a89a7e; white-space:nowrap; overflow:hidden; }
.seg.alt{ background:#191d23; border-color:var(--line2); color:var(--dim); }
.perr{ color:var(--red); font-size:11px; margin-top:8px; }
.perr div{ margin-bottom:2px; }
.mfoot{ display:flex; gap:10px; align-items:center; padding:10px 16px; border-top:1px solid var(--line); }
.mfoot .note{ font-size:11px; color:var(--dim); }

.toast{ position:fixed; bottom:18px; left:50%; transform:translateX(-50%); background:#211d15;
  border:1px solid var(--amber); color:var(--ink); border-radius:8px; padding:8px 16px;
  font-size:12.5px; z-index:99; display:none; }
.err{ border-color:var(--red); background:#241715; }

/* login */
.loginbox{ max-width:340px; margin:18vh auto 0; background:var(--panel);
  border:1px solid var(--line2); border-radius:12px; padding:26px; display:flex;
  flex-direction:column; gap:12px; }
.loginbox h1{ font-size:16px; margin:0; color:var(--amber); }

/* day target picker */
.ctbar{ flex-wrap:wrap; }
.ctchips{ display:inline-flex; gap:5px; }
.ctchip{ background:var(--panel2); border:1px solid var(--line2); color:var(--mut);
  border-radius:12px; padding:2px 10px; font-size:11px; cursor:pointer;
  font-family:inherit; }
.ctchip:hover{ border-color:var(--amber); color:var(--amber); }
.ctf{ display:inline-flex; flex-direction:column; gap:1px; font-size:8.5px;
  color:var(--dim); text-transform:uppercase; letter-spacing:.08em; }

/* not-work repos */
.rchip.nw{ opacity:.45; border-style:dashed !important; }
.nwrow{ display:flex; align-items:center; gap:8px; flex-wrap:wrap;
  margin:2px 0 12px; font-size:11.5px; }
.nwlab{ font-size:9.5px; letter-spacing:.1em; color:var(--dim); }
.nwchip{ border:1px dashed var(--line2); border-radius:10px; padding:1px 8px;
  color:var(--mut); font-size:11px; }
.nwchip b{ cursor:pointer; color:var(--dim); font-weight:400; margin-left:2px; }
.nwchip b:hover{ color:var(--red); }
.nwrow input{ background:var(--panel2); border:1px solid var(--line2);
  border-radius:6px; color:var(--ink); padding:2px 8px; font-size:11px;
  font-family:inherit; }
.nwhint{ font-size:10px; color:var(--dim); }
.fi.nw{ opacity:.4; }
.nwtag{ border:1px dashed var(--line2); border-radius:8px; padding:0 6px;
  font-size:9px; color:var(--dim); text-transform:uppercase; letter-spacing:.06em; }
.xn{ color:var(--amber); font-size:10.5px; font-variant-numeric:tabular-nums; }
.fx .rep{ cursor:pointer; text-decoration:underline dotted; }
.fx .rep:hover{ color:var(--amber); }

/* floating day-nav arrows + read-only pill */
.dn{ position:fixed; top:50%; transform:translateY(-50%); z-index:60; width:30px; height:64px;
  display:flex; align-items:center; justify-content:center; background:var(--panel);
  border:1px solid var(--line2); color:var(--mut); font-size:22px; cursor:pointer;
  opacity:.5; user-select:none; }
.dn:hover{ opacity:1; color:var(--amber); border-color:var(--amber); }
.dn-l{ left:0; border-radius:0 10px 10px 0; border-left:none; }
.dn-r{ right:0; border-radius:10px 0 0 10px; border-right:none; }
.dn-pill{ position:fixed; bottom:16px; left:50%; transform:translateX(-50%); z-index:60;
  background:var(--panel); border:1px solid var(--amber); color:var(--mut);
  border-radius:16px; padding:5px 16px; font-size:12px; cursor:pointer; white-space:nowrap; }
.dn-pill b{ color:var(--amber); }

.toast .tundo{ margin-left:10px; background:none; border:1px solid var(--amber);
  color:var(--amber); border-radius:5px; font-size:11px; padding:1px 9px;
  cursor:pointer; font-family:inherit; }
.toast .tundo:hover{ background:var(--amber); color:#191510; }

/* subtask trees on the board */
.card .subs{ margin-top:8px; border-left:2px solid var(--line2); padding-left:8px;
  display:flex; flex-direction:column; gap:6px; }
.card .card{ padding:6px 9px; margin:0; }
.card .card .ti{ font-size:12px; }
.card.subdone{ opacity:.5; }
.card.subdone > .ti{ text-decoration:line-through; }
.card.nestover{ outline:2px dashed var(--amber); outline-offset:2px; }
.meta .subn{ color:var(--blue); }
.lane .lock{ cursor:pointer; }
.lane .lock:hover{ color:var(--amber); }

/* sidebar subtask list */
#sb-subs{ display:flex; flex-direction:column; gap:4px; margin:2px 0 6px; }
#sb-subs:empty{ display:none; }
.sbsub{ display:flex; align-items:center; gap:7px; font-size:12.5px; padding:3px 6px;
  border:1px solid var(--line); border-radius:6px; background:var(--panel2); }
.sbsub .tick{ cursor:pointer; color:var(--mut); }
.sbsub .tick:hover{ color:var(--green); }
.sbsub .nm{ cursor:pointer; flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.sbsub .nm:hover{ color:var(--amber); }
.sbsub .sp{ color:var(--dim); font-size:10.5px; }
.sbsub .rm{ cursor:pointer; color:var(--dim); }
.sbsub .rm:hover{ color:var(--red); }
.sbsub.dn .nm{ text-decoration:line-through; color:var(--dim); }
.sbsub.up{ cursor:pointer; color:var(--mut); border-style:dashed; }
.sbsub.up:hover{ color:var(--amber); }
#sb-newsub{ width:100%; font-size:12px; padding:5px 8px; }

/* backlog modal */
#blmodal{ display:none; position:fixed; inset:0; background:#000a; z-index:80;
  align-items:flex-start; justify-content:center; padding:8vh 16px; }
#blmodal.open{ display:flex; }
#blmodal .mbox{ width:660px; max-width:100%; max-height:80vh; display:flex;
  flex-direction:column; background:var(--panel); border:1px solid var(--line2);
  border-radius:12px; overflow:hidden; }
.blbody{ padding:12px 16px 16px; overflow:auto; display:flex; flex-direction:column; gap:8px; }
#bl-search{ width:100%; }
.bl-row{ display:flex; align-items:center; gap:10px; padding:7px 10px;
  border:1px solid var(--line); border-radius:8px; background:var(--panel2); font-size:12.5px; }
.bl-row .nm{ flex:1; cursor:pointer; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.bl-row .nm:hover{ color:var(--amber); }
.bl-row .m{ color:var(--dim); font-size:11px; white-space:nowrap; }
.bl-row .btn{ padding:2px 10px; font-size:11px; }

/* pomodoro inspector sidebar */
#psidebar{ position:fixed; top:0; right:-420px; width:400px; max-width:95vw; height:100vh;
  background:#171a20; border-left:1px solid #2f3540; z-index:76; transition:right .18s ease;
  display:flex; flex-direction:column; padding:16px 18px; gap:10px; }
#psidebar.open{ right:0; }
#psidebar .close{ align-self:flex-end; cursor:pointer; color:var(--dim); }
#psidebar .close:hover{ color:var(--red); }
#psidebar .st{ font-size:15px; font-weight:650; border-radius:6px; padding:2px 4px; margin:0 -4px; }
#psidebar .st:hover{ background:var(--panel2); cursor:text; }
#psidebar .st:focus{ outline:1px solid #45381f; background:var(--panel2); }
#psidebar .sm{ display:flex; gap:10px; align-items:center; font-size:11px; color:var(--mut); flex-wrap:wrap; }
#psidebar .sm .bad{ color:var(--red); }
#psidebar .pstat{ cursor:pointer; border:1px solid #3a4048; border-radius:5px; padding:1px 7px; }
#psidebar .pstat:hover{ border-color:var(--amber); color:var(--amber); }
#psidebar .psrowline{ flex-wrap:nowrap; }
#psidebar .psrowline select{ flex:1; font-size:12px; padding:4px 8px; min-width:0; }
#ps-open-card{ padding:3px 9px; font-size:11px; white-space:nowrap; }
.pshead{ font-size:10px; color:var(--dim); text-transform:uppercase; letter-spacing:.1em; margin-top:4px; }
#ps-spans{ flex:1; overflow:auto; display:flex; flex-direction:column; gap:3px; min-height:80px; }
.psrow{ display:flex; align-items:center; gap:8px; font-size:11.5px; }
.psrow .mono{ color:var(--dim); font-size:10.5px; }
.psrow .psbar{ flex:1; border-left:3px solid; padding:2px 8px; background:var(--panel2);
  border-radius:0 5px 5px 0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.psrow .psm{ color:var(--dim); font-size:10.5px; }
#psidebar textarea{ height:70px; resize:none; font-size:12px; }
#psidebar .foot{ display:flex; justify-content:space-between; font-size:10px; color:var(--dim); }

/* pomodoro outputs */
.outrow{ display:flex; align-items:center; gap:8px; font-size:12px; padding:4px 8px;
  border:1px solid var(--line); border-radius:6px; background:var(--panel2); }
.outrow a{ flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.outrow .rm{ cursor:pointer; color:var(--dim); margin-left:auto; }
.outrow .rm:hover{ color:var(--red); }
.outrow .om{ color:var(--dim); font-size:10px; margin-left:auto; white-space:nowrap; }
#ps-outs, #sb-outputs{ display:flex; flex-direction:column; gap:4px; }
#ps-outs:empty{ display:none; }
#ps-newout{ font-size:12px; padding:5px 8px; }

#sb-inputs{ display:flex; flex-direction:column; gap:4px; }
#sb-newin{ font-size:12px; padding:5px 8px; }

.breakband .bbx{ float:right; cursor:pointer; color:var(--dim); font-size:10.5px; }
.breakband .bbx:hover{ color:var(--red); }

/* downtime bands on the pomodoro track */
.dt{ position:absolute; left:0; right:6px; border:1px dashed #2c3a2c; border-radius:5px;
  background:#10171022; overflow:hidden; pointer-events:none; }
.dt span{ font-size:9.5px; color:var(--green); padding-left:6px; letter-spacing:.04em; }
.dt.live{ border-color:var(--green); background:#10171066; }

/* activity inspector modal */
#awmodal{ display:none; position:fixed; inset:0; background:#000a; z-index:80;
  align-items:flex-start; justify-content:center; padding:6vh 16px; }
#awmodal.open{ display:flex; }
#awmodal .mbox{ width:780px; max-width:100%; max-height:86vh; display:flex;
  flex-direction:column; background:var(--panel); border:1px solid var(--line2);
  border-radius:12px; overflow:hidden; }
#awmodal .ph input{ width:210px; font-size:12px; padding:4px 9px; }
.awbody{ padding:12px 16px 16px; overflow:auto; display:flex; flex-direction:column; gap:8px; }
#aw-chips{ display:flex; gap:5px; flex-wrap:wrap; }
.awchip{ background:var(--panel2); border:1px solid var(--line2); color:var(--mut);
  border-radius:12px; padding:2px 10px; font-size:11px; cursor:pointer; font-family:inherit; }
.awchip:hover{ border-color:var(--amber); color:var(--amber); }
.awchip.on{ border-color:var(--amber); color:var(--amber); background:#211d15; }
#aw-summary{ display:flex; flex-direction:column; gap:3px; }
.awsrow{ display:flex; align-items:center; gap:10px; font-size:12px; }
.awsrow .awsbar{ width:170px; height:8px; background:var(--panel2); border-radius:4px;
  overflow:hidden; flex:none; }
.awsrow .awsbar i{ display:block; height:100%; }
.awsrow .nm{ flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.awsrow .m{ color:var(--dim); font-size:11px; }
#aw-list{ display:flex; flex-direction:column; gap:3px; }

#psidebar .strow{ display:flex; align-items:center; gap:6px; }
#psidebar .strow .st{ flex:1; }
.pedit{ cursor:pointer; color:var(--dim); font-size:13px; }
.pedit:hover{ color:var(--amber); }

/* references modal + archive action on done cards */
#rfmodal{ display:none; position:fixed; inset:0; background:#000a; z-index:80;
  align-items:flex-start; justify-content:center; padding:8vh 16px; }
#rfmodal.open{ display:flex; }
#rfmodal .mbox{ width:660px; max-width:100%; max-height:80vh; display:flex;
  flex-direction:column; background:var(--panel); border:1px solid var(--line2);
  border-radius:12px; overflow:hidden; }
.card .arc{ margin-left:auto; color:var(--dim); font-size:10px; cursor:pointer;
  visibility:hidden; white-space:nowrap; }
.card:hover > .meta .arc{ visibility:visible; }
.card .arc:hover{ color:var(--amber); }
