
:root{--ink:#15202b;--muted:#6b7686;--line:#e6e9ef;--paper:#f7f5f1;--surface:#fff;--navy:#1b2a4a;--pj:#2458b3;--kg:#1f7a4d;--both:#6a3fb5;--bad:#c0392b;--warn:#b7791f;--ok:#1f7a4d;--r:14px}
*{box-sizing:border-box}html{height:100%}body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}input,textarea{font:inherit}
.app{display:grid;grid-template-columns:232px 1fr;min-height:100vh}.app>div{min-width:0}body{overflow-x:hidden}
.side{background:var(--surface);border-right:1px solid var(--line);padding:16px 12px;font-size:13.5px;position:sticky;top:0;height:100vh;overflow:auto;display:flex;flex-direction:column}
.side .ws{display:flex;align-items:center;gap:10px;padding:4px 8px 16px;font-weight:600;line-height:1.2}.side .ws i{width:28px;height:28px;border-radius:8px;background:var(--navy);color:#fff;font-style:normal;font-size:12px;display:inline-flex;align-items:center;justify-content:center;flex:none}.side .ws small{display:block;font-weight:400;color:var(--muted);font-size:11px;margin-top:2px}
.side a{display:flex;align-items:center;gap:9px;padding:7px 10px;border-radius:7px;color:#3a4553}.side a svg{width:16px;height:16px;color:#8a94a3;flex:none}.side a:hover{background:#f3f4f7}.side a.on{background:#eef0f4;color:var(--ink);font-weight:600}.side a .n{margin-left:auto;font-size:11.5px;color:var(--muted);font-variant-numeric:tabular-nums}
.side h5{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:16px 10px 6px;font-weight:600}.dotc{width:8px;height:8px;border-radius:50%;display:inline-block;flex:none}
.side .foot{margin-top:auto;padding-top:14px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:2px;font-size:12.5px}.side .foot a{padding:5px 10px;color:var(--muted)}.side .foot button{border:0;background:transparent;color:var(--muted);text-align:left;padding:5px 10px;border-radius:7px;width:100%}.side .foot button:hover{background:#f3f4f7}
.main{min-width:0;padding:34px 44px 140px;max-width:1120px}
.ph h1{font-family:Fraunces,Georgia,"Times New Roman",serif;font-size:32px;font-weight:500;letter-spacing:-.015em;margin:0 0 4px;line-height:1.15}.ph .date{color:var(--muted);margin:0 0 20px;font-size:14px}
.lede{font-size:17px;line-height:1.6;color:#2b3645;max-width:760px;margin:0 0 22px}.lede b{font-weight:600;color:var(--navy)}
.ask{background:var(--surface);border:1px solid #e3ddd3;border-radius:16px;padding:8px 8px 8px 18px;display:flex;align-items:center;gap:10px;box-shadow:0 10px 30px rgba(27,42,74,.07);margin-bottom:28px}.ask input{flex:1;border:0;outline:none;font-size:15px;padding:11px 0;background:transparent;min-width:0}.ask .k{font-size:11.5px;color:var(--muted);white-space:nowrap}.ask button{border:0;background:var(--navy);color:#fff;border-radius:11px;width:40px;height:40px;display:flex;align-items:center;justify-content:center;flex:none}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:26px}.stat{background:var(--surface);border:1px solid #e9e4db;border-radius:var(--r);padding:18px 20px}.stat b{display:block;font-size:30px;font-weight:600;letter-spacing:-.03em;line-height:1.1;font-variant-numeric:tabular-nums}.stat span{color:var(--muted);font-size:13px}.stat.bad b{color:var(--bad)}.stat.ring{display:flex;align-items:center;gap:14px}.ring svg{width:56px;height:56px;flex:none}
.cols{display:grid;grid-template-columns:1.25fr 1fr;gap:26px}
.sec{margin-bottom:24px}.sec h2{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:600;margin:0 0 10px;display:flex;justify-content:space-between;align-items:center;gap:10px}.sec h2 span{font-weight:500;text-transform:none;letter-spacing:0;font-size:13px;color:var(--muted)}.sec h2 a{color:var(--pj)}.sec h2 b{color:var(--ink)}
.card{background:var(--surface);border:1px solid #e9e4db;border-radius:var(--r);padding:16px 18px}
.rows{background:var(--surface);border:1px solid #e9e4db;border-radius:var(--r)}.rows>.row:first-child{border-radius:var(--r) var(--r) 0 0}.rows>.row:last-child{border-radius:0 0 var(--r) var(--r)}
.row{display:grid;grid-template-columns:28px 1fr auto 28px;gap:12px;align-items:center;padding:12px 16px;border-top:1px solid #f0ece5;font-size:14.5px;transition:background .15s}.row:first-child{border-top:0}.row:hover{background:#fbfaf7}
.row .title{min-width:0}.row .tt{font-weight:500}.row .title small{display:block;color:var(--muted);font-size:12.5px;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row .cat{display:inline-block;font-style:normal;font-size:10.5px;font-weight:600;padding:1px 7px;border-radius:999px;background:#e0f2f2;color:#0e8a8a;vertical-align:middle;margin-left:8px;letter-spacing:.02em}
.row.done .tt{color:var(--muted);text-decoration:line-through}.rows.quiet .row.done .tt{text-decoration:none;color:#4c5868}.rows.quiet .row{padding:9px 16px;font-size:13.5px}
.row .props{display:flex;align-items:center;gap:12px;white-space:nowrap}
.check{width:22px;height:22px;border-radius:50%;border:1.5px solid #c3cad6;background:#fff;display:inline-flex;align-items:center;justify-content:center;padding:0;transition:all .18s}.check svg{width:13px;height:13px;opacity:0;transform:scale(.6);transition:all .18s}.row.done .check{background:var(--ok);border-color:var(--ok)}.row.done .check svg{opacity:1;transform:scale(1)}.check:hover{border-color:var(--ok)}
.focus{color:#b7791f}
.pr{display:inline-flex;gap:3px;align-items:flex-end}.pr i{width:3px;height:10px;background:#dfe3ea;border-radius:1px;display:inline-block}.pr i.on{background:#e67e22}.pr.Critical i.on{background:var(--bad)}.pr.Normal i.on{background:#8fa3c4}.pr.Low i{background:#e6e9ef}
.av{display:inline-flex;width:24px;height:24px;border-radius:50%;align-items:center;justify-content:center;font-size:10.5px;font-weight:700;color:#fff;flex:none}.av.PJ{background:var(--pj)}.av.Keagan{background:var(--kg)}.av.Both{background:var(--both)}.av.Claude{background:#555}.av{background:#7a5c2e}.av.PJ{background:var(--pj)}.av.Keagan{background:var(--kg)}.av.Both{background:var(--both)}.av.Claude{background:#555}.side .av{width:18px;height:18px;font-size:9px;border-radius:5px}
.due{font-size:12.5px;color:var(--muted);font-variant-numeric:tabular-nums;min-width:58px;text-align:right}.due.over{color:var(--bad);font-weight:600}.due.today{color:var(--ink);font-weight:600}
.st{width:14px;height:14px;border-radius:50%;border:1.5px solid transparent;display:inline-block}.st.prog{border-color:var(--pj);background:conic-gradient(var(--pj) 0 50%,transparent 50% 100%)}.st.wait{border-color:var(--warn);border-style:dashed}.st.dec{border-color:var(--both);background:var(--both)}
.menu{position:relative}.menu summary{list-style:none;cursor:pointer;width:28px;height:28px;border-radius:7px;display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:16px}.menu summary::-webkit-details-marker{display:none}.menu summary:hover{background:#f0ece5}.menu .dd{position:absolute;right:0;top:32px;}.menu.up .dd{top:auto;bottom:32px}.menu .dd{background:var(--surface);border:1px solid var(--line);border-radius:10px;box-shadow:0 10px 30px rgba(21,32,43,.14);z-index:10;min-width:170px;display:flex;flex-direction:column;padding:4px}.menu .dd button{border:0;background:transparent;text-align:left;padding:8px 10px;font-size:13.5px;border-radius:7px;color:var(--ink)}.menu .dd button:hover{background:#f3f4f7}
.rows.dec .row{grid-template-columns:1fr auto}.rows.dec{border-color:#e3d9f6;background:#fcfaff}.acts{display:flex;gap:6px}
.btn{border:1px solid #d9d2c6;background:#fff;border-radius:9px;padding:7px 12px;font-size:12.5px;font-weight:500;color:var(--ink)}.btn.pri{background:var(--navy);color:#fff;border-color:var(--navy)}
.empty{color:var(--muted);font-size:13.5px;padding:14px 16px;background:var(--surface);border:1px dashed #e3ddd3;border-radius:var(--r)}
.week{display:flex;gap:8px;align-items:flex-end;height:64px;margin-bottom:18px;padding:0 2px}.week div{flex:1;background:#e3f3ea;border-radius:5px 5px 2px 2px;position:relative;min-height:4px}.week div.on{background:var(--kg)}.week div i{position:absolute;bottom:-18px;left:0;right:0;text-align:center;font-style:normal;font-size:11px;color:var(--muted)}
.chips{display:flex;gap:8px;flex-wrap:wrap}.chips span{font-size:12.5px;padding:6px 10px;border-radius:9px;background:var(--surface);border:1px solid #e9e4db;color:#3a4553;display:inline-flex;gap:7px;align-items:center}.chips span i{width:8px;height:8px;border-radius:50%;background:var(--ok)}.chips span.late i{background:var(--bad)}
.seg{display:inline-flex;background:#ece8e1;border-radius:10px;padding:3px;margin-bottom:18px;flex-wrap:wrap}.seg a{padding:7px 14px;border-radius:8px;font-size:13.5px;color:var(--muted)}.seg a.on{background:#fff;color:var(--ink);box-shadow:0 1px 2px rgba(0,0,0,.08);font-weight:500}
.legend{display:flex;gap:12px;flex-wrap:wrap;font-size:12px;color:var(--muted);margin-bottom:14px;align-items:center}.legend .ic{margin-right:-6px}.legend span{display:inline-flex;align-items:center;gap:6px}.sw{width:10px;height:10px;border-radius:2px;display:inline-block}.sw.up{background:#fdf3df;border:1px solid var(--warn)}.sw.ok{background:#e3f3ea;border:1px solid var(--kg)}.sw.late{background:#fbe9e7;border:1px solid var(--bad)}
.feed .dayh{font-size:11.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:18px 0 6px;font-weight:600}.feed .dayh:first-child{margin-top:0}
.ev{display:grid;grid-template-columns:62px 22px 1fr;gap:10px;padding:8px 0;font-size:14px;align-items:start}.ev .t{font-size:11.5px;color:var(--muted);font-variant-numeric:tabular-nums;padding-top:3px}.ev .what b{font-weight:600}.ev .q{margin-top:5px;background:var(--surface);border:1px solid #e9e4db;border-radius:10px;padding:8px 12px;font-size:13.5px;color:#3a4553}
.ic{width:22px;height:22px;border-radius:7px;display:inline-flex;align-items:center;justify-content:center;font-size:12px;line-height:1;flex:none}.ic.done{background:var(--ok);color:#fff}.ic.fail{background:#fde8e6;color:var(--bad)}.ev.fail .what .bad{color:var(--bad);font-weight:600;font-size:12.5px;margin-left:4px}.ev.fail .q{border-color:#f3cfcb}.ev .what .via{color:var(--muted);font-size:12.5px}.ic.add{background:#e6eefb;color:var(--pj)}.ic.note{background:#fff4cc;color:#8a6200}.ic.chat{background:#efe8fa;color:var(--both)}.ic.change,.ic.skip,.ic.report{background:#eef0f3;color:#4c5868}.ic.rhythm{background:#fdf3df;color:var(--warn)}.ic.sync{background:#efe8fa}.ic.mail{background:#e6eefb}
.more{font-size:13px}.more a{color:var(--pj)}
.grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}.grid .h{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);text-align:center;padding:4px 0}.grid .c{min-height:62px;border:1px solid #f0ece5;border-radius:6px;padding:3px;font-size:11px;min-width:0}.grid .c.out{border-color:transparent}.grid .c.today{border-color:var(--pj);box-shadow:inset 0 0 0 1px var(--pj)}.grid .c .n{color:var(--muted);font-size:10px}.pip{display:block;font-size:9.5px;line-height:1.2;padding:1px 3px;border-radius:3px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pip.up{background:#fdf3df;color:var(--warn)}.pip.ok{background:#e3f3ea;color:var(--kg)}.pip.late{background:#fbe9e7;color:var(--bad)}
table{width:100%;border-collapse:collapse;font-size:13px}th,td{text-align:left;padding:8px 10px;border-top:1px solid #f0ece5}th{border-top:0;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}td.mu{color:var(--muted)}td.bad{color:var(--bad);font-weight:600}.tw{overflow-x:auto}.mu{color:var(--muted)}
.rform{display:grid;grid-template-columns:1fr 1fr;gap:8px}.rform button{grid-column:1/-1;justify-self:start}input[type=text],input:not([type]),textarea{border:1px solid var(--line);border-radius:9px;padding:9px 11px;background:#fff;width:100%;min-width:0}
.steps{display:flex;flex-direction:column;gap:12px;counter-reset:s}.step{padding-left:52px;position:relative}.step::before{counter-increment:s;content:counter(s);position:absolute;left:16px;top:16px;width:24px;height:24px;border-radius:50%;background:var(--navy);color:#fff;font-size:12px;font-weight:600;display:flex;align-items:center;justify-content:center}.step h3{margin:0;font-size:15px;display:flex;justify-content:space-between;gap:8px;align-items:center}.step h3 label{font-weight:400;font-size:12.5px;color:var(--muted)}.step .brings{font-size:12.5px;color:var(--muted);margin:2px 0 10px}.step ul{margin:0;padding-left:18px;font-size:14px}.step li{margin:4px 0}.step ul.plain{list-style:none;padding:0}.tag{font-size:11.5px;padding:2px 8px;border-radius:999px;background:#eef0f3;color:#4c5868;font-weight:500}.tag.bad{background:#fbe9e7;color:var(--bad)}
.box{background:var(--surface);border:1px solid #e9e4db;border-radius:16px;padding:22px 24px;max-width:460px;margin:60px auto}.box .t{font-weight:600;font-size:17px;margin:0 0 8px}.box .note{color:var(--muted);font-size:13px}.box .rowb{display:flex;gap:8px;justify-content:flex-end;margin-top:16px}
.dock{position:fixed;right:24px;bottom:24px;width:400px;max-height:min(560px,calc(100vh - 48px));background:var(--surface);border:1px solid var(--line);border-radius:18px;box-shadow:0 18px 50px rgba(21,32,43,.18);display:flex;flex-direction:column;overflow:hidden;z-index:40}.dock[hidden]{display:none}
.dock .hd{padding:12px 16px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:10px;font-weight:600;font-size:13.5px}.dock .hd .dot{width:8px;height:8px;border-radius:50%;background:var(--ok)}.dock .hd .x{margin-left:auto;border:0;background:transparent;color:var(--muted);font-size:12px}
.dock .msgs{padding:14px 16px;overflow:auto;display:flex;flex-direction:column;gap:10px;flex:1;min-height:220px}
.m{max-width:88%;padding:9px 12px;border-radius:14px;font-size:13.5px;line-height:1.45;white-space:pre-wrap;word-wrap:break-word}.m.me{align-self:flex-end;background:var(--navy);color:#fff;border-bottom-right-radius:4px}.m.bot{align-self:flex-start;background:#f3f4f7;border-bottom-left-radius:4px}.m .chg{margin-top:6px;font-size:12.5px;color:var(--ok);display:flex;flex-direction:column;gap:3px}.m.typing span{display:inline-block;width:6px;height:6px;border-radius:50%;background:#9aa3b2;margin-right:3px;animation:b 1s infinite}.m.typing span:nth-child(2){animation-delay:.15s}.m.typing span:nth-child(3){animation-delay:.3s}@keyframes b{0%,80%,100%{transform:translateY(0)}40%{transform:translateY(-4px)}}
.dock .compose{border-top:1px solid var(--line);padding:10px 12px;display:flex;gap:8px;align-items:flex-end}.dock textarea{flex:1;border:0;resize:none;outline:none;max-height:120px;line-height:1.4;padding:6px 4px;font-size:14px;background:transparent}.dock .compose button{border:0;background:var(--navy);color:#fff;width:34px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex:none}.dock .k{font-size:11px;color:var(--muted);padding:0 16px 10px}
.fab{position:fixed;right:24px;bottom:24px;background:var(--navy);color:#fff;border:0;border-radius:999px;padding:12px 18px;font-weight:600;box-shadow:0 12px 30px rgba(21,32,43,.25);display:flex;gap:8px;align-items:center;z-index:39}
.toast{position:fixed;left:50%;bottom:26px;transform:translateX(-50%) translateY(20px);background:var(--ink);color:#fff;padding:10px 16px;border-radius:999px;font-size:13px;opacity:0;transition:all .25s;pointer-events:none;z-index:50;display:flex;gap:12px;align-items:center;max-width:90vw}.toast.on{opacity:1;transform:translateX(-50%) translateY(0)}.toast button{border:0;background:transparent;color:#9ec1ff;font-weight:600;pointer-events:auto;padding:0}
.busy{opacity:.6;pointer-events:none}
.mnav{display:none}
@media(max-width:900px){.app{grid-template-columns:1fr}.side{display:none}.mnav{display:flex;gap:6px;overflow-x:auto;padding:10px 12px;background:var(--surface);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:30}.mnav a{flex:none;font-size:13px;padding:6px 11px;border-radius:999px;border:1px solid var(--line);color:#3a4553}.mnav a.on{background:var(--navy);color:#fff;border-color:var(--navy)}.main{padding:20px 16px 150px}.stats{grid-template-columns:1fr 1fr}.cols{grid-template-columns:1fr}.ph h1{font-size:26px}.row{grid-template-columns:28px 1fr 28px;grid-template-areas:"c t m" ". p p"}.row .check{grid-area:c}.row .title{grid-area:t}.row .menu{grid-area:m}.row .props{grid-area:p;justify-content:flex-start;flex-wrap:wrap}.rows.dec .row{grid-template-columns:1fr;grid-template-areas:"t" "a"}.rows.dec .row .title{grid-area:t}.rows.dec .row .acts{grid-area:a}.dock{right:10px;left:10px;bottom:10px;width:auto}.fab{right:12px;bottom:12px}.rform{grid-template-columns:1fr}}

/* ---- app-only additions ---- */
.login{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:16px}.login .box{margin:0;box-shadow:0 14px 40px rgba(27,42,74,.08);max-width:440px}.login h1{font-family:Fraunces,Georgia,serif;font-weight:500;font-size:26px;margin:0 0 6px;letter-spacing:-.01em}.login p{margin:0 0 16px;color:var(--muted);font-size:14px;line-height:1.5}.login .err{color:var(--bad)}.login .g{display:inline-flex;align-items:center;gap:10px;background:var(--navy);color:#fff;border-radius:11px;padding:11px 16px;font-weight:600;font-size:14px}.login .g svg{width:18px;height:18px}
.modal-bg{position:fixed;inset:0;background:rgba(21,32,43,.35);display:flex;align-items:center;justify-content:center;z-index:60;padding:16px}.modal{background:var(--surface);border-radius:16px;padding:22px 24px;max-width:460px;width:100%;box-shadow:0 20px 60px rgba(21,32,43,.25)}.modal .t{font-weight:600;font-size:17px;margin:0 0 8px}.modal .note{color:var(--muted);font-size:13px}.modal .rowb{display:flex;gap:8px;justify-content:flex-end;margin-top:16px}
.loading{color:var(--muted);padding:40px;text-align:center;font-size:14px}
.sk{background:linear-gradient(90deg,#efece6 25%,#f7f5f1 50%,#efece6 75%);background-size:200% 100%;animation:sk 1.2s infinite;border-radius:10px;height:18px;margin:10px 0}@keyframes sk{0%{background-position:200% 0}100%{background-position:-200% 0}}
.refreshing{position:fixed;top:10px;right:14px;font-size:11.5px;color:var(--muted);background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:4px 10px;z-index:45;opacity:0;transition:opacity .2s}.refreshing.on{opacity:1}
.sidebtn{border:0;background:transparent;text-align:left;padding:0;width:100%}
.dock .m.err{border:1px solid #efc9c3;background:#fff6f4;color:#8a2a1e}

.dock .compose .clip{background:transparent;color:var(--muted);width:30px;height:34px}.dock .compose .clip:hover{color:var(--navy);background:#f0ece5}.dock .compose .clip svg{width:18px;height:18px}
.dock .att{padding:8px 12px 0;display:flex;flex-direction:column;gap:4px}.dock .att .chip{display:inline-flex;align-items:center;gap:6px;background:#f3f1ec;border:1px solid var(--line);border-radius:10px;padding:5px 8px;font-size:12.5px;align-self:flex-start;max-width:100%}.dock .att .chip b{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:220px}.dock .att .xa{border:0;background:transparent;color:var(--muted);font-size:16px;line-height:1;padding:0 2px}.dock .att .hint{font-size:11.5px;color:var(--muted)}
.dock.drop{outline:2px dashed var(--pj);outline-offset:-6px}.m .attl{font-size:12px;opacity:.85;margin-top:4px}
.nb{display:inline-flex;align-items:center;gap:3px;margin-left:8px;font-size:11.5px;color:var(--muted);vertical-align:1px}.nb svg{width:12px;height:12px}.row .title[data-open]{cursor:pointer}.row .title[data-open]:hover .tt{color:var(--navy)}.menu .dd .cnt{font-size:11px;color:var(--muted);margin-left:4px}
.drawer-bg{position:fixed;inset:0;background:rgba(21,32,43,.28);z-index:70;display:flex;justify-content:flex-end}
.drawer{width:min(520px,100%);height:100%;background:var(--surface);box-shadow:-18px 0 50px rgba(21,32,43,.18);display:flex;flex-direction:column;padding:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;animation:slidein .18s ease-out}
.drawer::-webkit-scrollbar{width:11px}.drawer::-webkit-scrollbar-track{background:#f3f1ec}.drawer::-webkit-scrollbar-thumb{background:#c9c3b8;border-radius:8px;border:2px solid #f3f1ec}.drawer::-webkit-scrollbar-thumb:hover{background:#a9a397} /* always drawn (Keagan, Oct 14: "the scroll bar on the task is not showing"); the whole panel scrolls, so a long task never hides its notes box */
@keyframes slidein{from{transform:translateX(24px);opacity:0}to{transform:none;opacity:1}}
.drawer .dh{display:flex;align-items:flex-start;gap:12px;padding:20px 22px 6px}.drawer .dt{font-family:Fraunces,Georgia,serif;font-size:22px;line-height:1.25;flex:1;letter-spacing:-.01em}.drawer .x{border:0;background:transparent;font-size:26px;line-height:1;color:var(--muted);cursor:pointer;padding:0 2px}.drawer .x:hover{color:var(--ink)}
.drawer .dm{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:4px 22px;font-size:13px;color:#2b3645}.drawer .dm .sep{color:#c3cad6}.drawer .dm .bad{color:var(--bad);font-weight:600}.drawer .dm .warn{color:var(--warn);font-weight:600}
.drawer .dd2{padding:6px 22px 0;font-size:14px;color:#2b3645}.drawer .dl{padding:8px 22px 0;font-size:12.5px;color:var(--muted)}.drawer .dl a{color:var(--pj);font-weight:500}.drawer .dl .sep{margin:0 6px;color:#c3cad6}
.drawer .da{display:flex;gap:6px;padding:14px 22px 6px;flex-wrap:wrap;align-items:center}.drawer .da .btn{padding:5px 9px;font-size:11.5px;border-radius:8px}.drawer .da .btn.pri{padding:7px 12px;font-size:12.5px;border-radius:9px}
.drawer h3{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:600;margin:16px 22px 8px}.drawer h3 span{font-weight:400;color:#9aa3b0;margin-left:4px}
.drawer .thread{flex:1 0 auto;padding:0 22px;display:flex;flex-direction:column;gap:10px;min-height:120px}.drawer .thread .mu{color:var(--muted);font-size:13.5px;padding:8px 0}
.note{background:#faf9f6;border:1px solid var(--line);border-radius:12px;padding:10px 12px}.note.file{background:#f4f7fc;border-color:#dbe4f5}.note.pend{opacity:.6}.note .who{display:flex;align-items:center;gap:8px;font-size:12.5px;margin-bottom:4px}.note .who .av{width:20px;height:20px;font-size:9px}.note .who span{color:var(--muted)}.note .txt{font-size:14px;line-height:1.5;white-space:pre-wrap;word-wrap:break-word}.note .txt a{color:var(--pj);font-weight:500;text-decoration:underline;text-decoration-color:#c9d6f2}
.drawer .hist{margin:10px 22px 0;font-size:12.5px}.drawer .hist summary{cursor:pointer;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.06em;font-size:11.5px;list-style:none}.drawer .hist summary span{font-weight:400;margin-left:4px}.drawer .hist .h{display:grid;grid-template-columns:118px 1fr;gap:8px;padding:5px 0;border-top:1px solid #f0ece5;color:#2b3645}.drawer .hist .h span{color:var(--muted);font-variant-numeric:tabular-nums}.drawer .hist .h b{font-weight:600;margin-right:4px}
.drawer .nc{border-top:1px solid var(--line);padding:10px 14px 14px;background:var(--surface);position:sticky;bottom:0;z-index:2;margin-top:auto}.drawer .nc .row2{display:flex;gap:8px;align-items:flex-end}.drawer .nc textarea{flex:1;border:1px solid var(--line);border-radius:12px;resize:none;outline:none;max-height:140px;line-height:1.4;padding:9px 12px;font-size:14px;background:#faf9f6}.drawer .nc textarea:focus{border-color:#b9c3d6;background:#fff}.drawer .nc .clip,.drawer .nc .go{border:0;width:36px;height:38px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex:none;cursor:pointer}.drawer .nc .clip{background:transparent;color:var(--muted)}.drawer .nc .clip:hover{background:#f0ece5;color:var(--navy)}.drawer .nc .clip svg{width:18px;height:18px}.drawer .nc .go{background:var(--navy);color:#fff}.drawer .nc .go svg{width:16px;height:16px}
.drawer .att{padding:0 0 8px;display:flex;flex-direction:column;gap:4px}.drawer .att .chip{display:inline-flex;align-items:center;gap:6px;background:#f3f1ec;border:1px solid var(--line);border-radius:10px;padding:5px 8px;font-size:12.5px;align-self:flex-start;max-width:100%}.drawer .att .chip b{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:260px}.drawer .att .xa{border:0;background:transparent;color:var(--muted);font-size:16px;line-height:1;padding:0 2px}.drawer .att .hint{font-size:11.5px;color:var(--muted)}
.drawer.drop{outline:2px dashed var(--pj);outline-offset:-8px}
@media(max-width:900px){.drawer{width:100%}.drawer .hist .h{grid-template-columns:1fr}}
.drawer .ed{border:0;background:transparent;color:var(--muted);width:32px;height:32px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;flex:none;margin-top:2px}.drawer .ed:hover{background:#f0ece5;color:var(--navy)}.drawer .ed svg{width:17px;height:17px}
.drawer .ef{padding:6px 22px 22px;display:flex;flex-direction:column;gap:12px;overflow:auto}.drawer .ef label{display:flex;flex-direction:column;gap:5px;font-size:12px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.drawer .ef input,.drawer .ef select{font:inherit;font-size:14px;color:var(--ink);text-transform:none;letter-spacing:0;font-weight:400;border:1px solid var(--line);border-radius:10px;padding:9px 11px;background:#faf9f6;outline:none}.drawer .ef input:focus,.drawer .ef select:focus{border-color:#b9c3d6;background:#fff}.drawer .ef .g2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.drawer .ef .rowb{display:flex;justify-content:flex-end;gap:8px;margin-top:4px}.drawer .ef .note{font-size:12px;color:var(--muted);margin:0}.drawer .ef.busy{opacity:.6;pointer-events:none}
@media(max-width:600px){.drawer .ef .g2{grid-template-columns:1fr}}
.drawer .ef p.note{background:none;border:0;padding:0;border-radius:0}.drawer .ef .hint{font-size:11.5px;font-weight:400;color:var(--muted)}.drawer .ef [data-crit-hint].crit{color:var(--bad,#b3261e)}

/* ---------- search ---------- */
.side a kbd{margin-left:auto;font:11px ui-monospace,Menlo,Consolas,monospace;color:var(--muted);background:#f3f1ec;border:1px solid #e3ddd3;border-radius:5px;padding:1px 5px}
.side a.on kbd{background:#fff}
.pulse{width:9px;height:9px;border-radius:50%;background:#19b26b;display:inline-block;flex:none;margin-left:6px;box-shadow:0 0 0 0 rgba(25,178,107,.6);animation:pulse 1.4s ease-out infinite}
.side a.fresh{color:#176c45;font-weight:600}.side a.fresh .n{background:#e3f3ea;color:#176c45}
.mnav a .pulse{margin-left:5px;vertical-align:middle}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(25,178,107,.65);opacity:1}70%{box-shadow:0 0 0 9px rgba(25,178,107,0);opacity:.55}100%{box-shadow:0 0 0 0 rgba(25,178,107,0);opacity:1}}
.sbox{background:var(--surface);border:1px solid #e3ddd3;border-radius:16px;padding:8px 8px 8px 16px;display:flex;align-items:center;gap:10px;box-shadow:0 10px 30px rgba(27,42,74,.07);margin-bottom:14px}
.sbox svg{width:20px;height:20px;color:var(--muted);flex:none}
.sbox input{flex:1;border:0;outline:none;font-size:16px;padding:10px 0;background:transparent;min-width:0;-webkit-appearance:none}
.sbox input::-webkit-search-cancel-button{-webkit-appearance:none}
.sbox .ai{border:0;background:var(--navy);color:#fff;border-radius:11px;padding:0 14px;height:40px;font-size:13.5px;font-weight:600;flex:none;cursor:pointer}
.sbox .ai:hover{background:#243a66}
.filters{display:flex;flex-direction:column;gap:6px;margin-bottom:18px}
.fr{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.fr>span{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);width:68px;flex:none}
.chip{border:1px solid #e3ddd3;background:var(--surface);color:#3a4553;border-radius:999px;padding:5px 11px;font-size:12.5px;cursor:pointer;line-height:1.2}
.chip:hover{border-color:#c9c2b6}
.chip.on{background:var(--navy);border-color:var(--navy);color:#fff}
.chip.clear{color:var(--bad);border-color:#efc9c3}
.scount{font-size:13px;color:var(--muted);margin:0 0 14px}
.shint{font-size:13.5px;color:#4a5566;line-height:1.55;background:var(--surface);border:1px solid #e9e4db;border-radius:var(--r);padding:14px 16px;margin-bottom:22px}
.shint code{font:12.5px ui-monospace,Menlo,Consolas,monospace;background:#f3f1ec;padding:1px 5px;border-radius:5px}
mark{background:#fff1a8;color:inherit;border-radius:3px;padding:0 1px}
.row.sr{grid-template-columns:24px 1fr auto;cursor:pointer}
.row.sr:hover{background:#fbfaf7}
.row.sr .tt.nt{font-weight:400;font-size:14px}
.row.sr .title small{white-space:normal;overflow:visible;text-overflow:clip;line-height:1.4}
.row.sr .st.ok{border-color:var(--ok);background:var(--ok)}
.row.sr .why{display:block;color:#176c45;font-weight:500;margin-bottom:2px}
.aig{background:#f1f7f4;border:1px solid #cfe6da;border-radius:var(--r);padding:14px 16px;margin-bottom:18px;font-size:14px;line-height:1.5}
.aig .hd{font-weight:600;color:#176c45;margin-bottom:4px;font-size:13px}.aig .hd span{font-weight:400;color:var(--muted);margin-left:8px;font-size:12px}
.aig p{margin:0 0 8px}
.aig .rows{margin-top:8px}
.aig.busy{color:var(--muted)}
.aig.err{background:#fff6f4;border-color:#efc9c3;color:#8a2a1e}
/* ---------- what's new & wish list ---------- */
.wish{display:flex;align-items:center;gap:16px;background:linear-gradient(135deg,#eef6f1,#f4f1fb);border:1px solid #dbe8df;border-radius:var(--r);padding:16px 18px;margin-bottom:24px;flex-wrap:wrap}
.wish>div{flex:1;min-width:220px;display:flex;flex-direction:column;gap:3px}.wish span{font-size:13px;color:#4a5566}
.primary{border:0;background:var(--navy);color:#fff;border-radius:11px;padding:11px 16px;font-size:14px;font-weight:600;cursor:pointer}.primary:hover{background:#243a66}
.wlog{display:flex;flex-direction:column;gap:0}
.wn{display:grid;grid-template-columns:86px 1fr;gap:16px;padding:16px 0;border-top:1px solid #e9e4db}
.wn:first-child{border-top:0}
.wn .wd{font-size:12.5px;color:var(--muted);padding-top:4px;font-variant-numeric:tabular-nums}
.wn .wt{font-weight:600;font-size:15px;display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:4px}
.wn p{margin:0 0 6px;font-size:14px;line-height:1.5;color:#2b3645}
.wn .why{color:#4a5566;font-size:13.5px}.wn .why b{color:#176c45;font-weight:600;margin-right:4px}
.kind{font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:2px 7px;border-radius:999px}
.kind.knew{background:#e3f3ea;color:#176c45}.kind.kimp{background:#e6eefb;color:var(--pj)}.kind.kfix{background:#fdf3df;color:var(--warn)}
.newtag{font-size:10.5px;font-weight:700;color:#fff;background:#19b26b;border-radius:999px;padding:2px 7px;letter-spacing:.04em}
.wn.fresh{background:linear-gradient(90deg,#f1faf5,transparent 60%);margin:0 -16px;padding-left:16px;padding-right:16px}
.reqs{display:flex;flex-direction:column;gap:10px}
.req{background:var(--surface);border:1px solid #e9e4db;border-radius:var(--r);padding:14px 16px}
.req .rh{display:flex;align-items:center;gap:10px;font-size:15px}.req .rs{margin-left:auto;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:2px 8px;border-radius:999px;background:#eef0f3;color:#4c5868}
.req.rnew .rs{background:#e3f3ea;color:#176c45}.req.rplan .rs{background:#e6eefb;color:var(--pj)}.req.rbuilt .rs{background:var(--ok);color:#fff}.req.rdec .rs{background:#f3f1ec;color:var(--muted)}
.req .rm{font-size:12.5px;color:var(--muted);margin:2px 0 6px}
.req p{margin:0 0 8px;font-size:14px;line-height:1.45}
.req .ra{display:flex;gap:6px;flex-wrap:wrap}
.req .spec{white-space:pre-wrap;font:12.5px/1.5 ui-monospace,Menlo,Consolas,monospace;background:#faf9f6;border:1px solid var(--line);border-radius:10px;padding:12px;margin:10px 0 0;max-height:420px;overflow:auto}
.drawer.wishd .dh h2{font-family:Fraunces,Georgia,serif;font-size:22px;font-weight:500;margin:0;flex:1}
.drawer.wishd .wi{padding:0 22px 10px;font-size:13.5px;color:#4a5566;line-height:1.5;margin:0}
.drawer.wishd .msgs{padding:14px 22px;overflow:auto;display:flex;flex-direction:column;gap:10px;flex:1}
.drawer.wishd .compose{border-top:1px solid var(--line);padding:10px 14px;display:flex;gap:8px;align-items:flex-end}
.drawer.wishd textarea{flex:1;border:0;resize:none;outline:none;max-height:140px;line-height:1.4;padding:6px 4px;font-size:14px;background:transparent}
.drawer.wishd .compose button{border:0;background:var(--navy);color:#fff;width:34px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex:none}
.drawer.wishd .k{padding:0 22px 14px;font-size:12px;color:var(--muted)}
.drawer.wishd button.link{border:0;background:transparent;color:var(--pj);font-weight:600;font-size:12.5px;padding:0;cursor:pointer}
.drawer.wishd .m.saved{background:#e3f3ea;color:#15202b}.drawer.wishd .m.saved .chip{margin-top:8px}
.drawer.wishd .m.err{border:1px solid #efc9c3;background:#fff6f4;color:#8a2a1e}
@media(max-width:900px){.wn{grid-template-columns:1fr;gap:4px}.fr>span{width:100%}.sbox .ai{padding:0 10px;font-size:12.5px}}

.side .ss{display:flex;align-items:center;gap:8px;margin:0 2px 10px;padding:7px 10px;border:1px solid #e3ddd3;border-radius:11px;background:#faf9f6;color:var(--muted)}
.side .ss svg{width:15px;height:15px;flex:none}
.side .ss input{flex:1;min-width:0;border:0;outline:none;background:transparent;font-size:13px;color:var(--ink);-webkit-appearance:none}
.side .ss input::placeholder{color:#9aa3b2}
.side .ss input::-webkit-search-cancel-button{-webkit-appearance:none}
.side .ss kbd{font:10.5px ui-monospace,Menlo,Consolas,monospace;color:var(--muted);background:#fff;border:1px solid #e3ddd3;border-radius:5px;padding:1px 4px}
.side .ss.on,.side .ss:focus-within{border-color:var(--navy);background:#fff;box-shadow:0 0 0 3px rgba(27,42,74,.08)}

/* ---------- attachment previews in a task's notes ---------- */
.note .fatt{display:flex;flex-direction:column;gap:6px}
.note .fatt .att-img{display:block;max-width:100%}
.note .fatt .att-img img{display:block;max-width:100%;max-height:360px;border-radius:10px;border:1px solid var(--line);background:#f3f1ec;object-fit:contain}
.note .fatt .att-img.pdf img,.note .fatt .att-img.doc img{max-height:240px;object-fit:cover;object-position:top}
.note .fatt .att-img span{display:block;font-size:12px;color:var(--muted);margin-top:4px}
.note .fatt .att-file{display:none}
.note .fatt.noimg .att-img{display:none}.note .fatt.noimg .att-file{display:inline-flex}
.att-file{display:inline-flex;align-items:center;gap:10px;background:#fff;border:1px solid #e3ddd3;border-radius:12px;padding:8px 12px 8px 8px;color:var(--ink);text-decoration:none;max-width:100%}
.att-file i{font:700 10px/1 Inter,system-ui,sans-serif;letter-spacing:.04em;color:#fff;background:#4c5868;border-radius:7px;padding:9px 6px;flex:none;font-style:normal}
.att-file i.pdf{background:#c0392b}.att-file i.doc{background:#2458b3}.att-file i.img{background:#1f7a4d}.att-file i.txt{background:#8a6200}.att-file i.xls{background:#1d6f42}
.att-file b{font-weight:500;font-size:13.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.att-file span{font-size:12px;color:var(--pj);flex:none;margin-left:auto}
.drawer .att .npv{display:block;max-width:220px;max-height:140px;border-radius:8px;border:1px solid var(--line);margin-bottom:6px;object-fit:cover}

.note .txt .unk{color:var(--muted,#8a94a6);font-style:italic}
.note .txt b.lbl{font-weight:600;color:#1b2a4a}
/* ---- Resource hub ---- */
.hub-link{margin:-8px 0 20px;display:flex;gap:8px;flex-wrap:wrap}.hub-link .btn{background:var(--surface)}.hub-link .btn.pri{background:var(--navy);color:#fff}
.reshead{display:flex;gap:12px;align-items:center;margin-bottom:18px;flex-wrap:wrap}.reshead .ss{flex:1;min-width:220px;margin:0}.reshead .ss.big input{font-size:15px}
.res-formcard{margin-bottom:22px;border-color:#dcd4c6;background:linear-gradient(180deg,#fffdf8,#fff)}.res-form{grid-template-columns:1fr 1fr}.res-form input[name=title],.res-form input[name=url]{grid-column:span 1}.res-form .chk{display:flex;align-items:center;gap:8px;font-size:13.5px;color:#3a4553;grid-column:1/-1}.res-form .chk input{width:auto}.res-form button{grid-column:auto;justify-self:start}.res-form button[type=submit]{grid-column:1}.res-form #resCancel{grid-column:2;justify-self:start}.res-form.busy{opacity:.55;pointer-events:none}
.resgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}.resgrid.big{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}
.res{position:relative;background:var(--surface);border:1px solid #e9e4db;border-radius:var(--r);transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease}.res:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(27,42,74,.09);border-color:#d8d0c2}.res.confirm{border-color:var(--bad)}
.res .go{display:flex;gap:12px;align-items:flex-start;padding:14px 14px 14px 14px;color:var(--ink);min-width:0;padding-right:92px}.res.big .go{padding:18px 18px 18px 18px;padding-right:92px}
.res .fav{width:34px;height:34px;border-radius:9px;flex:none;object-fit:contain;background:#f3f1ec;padding:5px;box-sizing:border-box}.res.big .fav{width:42px;height:42px;border-radius:11px}.res .fav.txt{display:inline-flex;align-items:center;justify-content:center;font-weight:700;color:var(--navy);font-size:15px;background:#e9e4db}
.res .rt{min-width:0;display:flex;flex-direction:column;gap:3px}.res .rt b{font-weight:600;font-size:14.5px;line-height:1.25;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.res.big .rt b{font-size:16px}.res .rt small{color:#4c5868;font-size:12.5px;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.res .rt .host{color:var(--muted);font-size:11.5px;letter-spacing:.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.res .ract{position:absolute;top:10px;right:10px;display:flex;gap:2px;opacity:0;transition:opacity .12s}.res:hover .ract,.res:focus-within .ract,.res.confirm .ract,.res .ract button.pin.on{opacity:1}.res .ract button{border:0;background:transparent;width:26px;height:26px;border-radius:7px;color:#9aa3b2;font-size:14px;line-height:1;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.res .ract button:hover{background:#f0ece5;color:var(--ink)}.res .ract button.pin.on{color:var(--warn)}.res .ract button[data-rarch]{font-size:17px}.res.confirm .ract button[data-rarch]{width:auto;padding:0 8px;font-size:12px;font-weight:600;background:var(--bad);color:#fff}
.res-empty{padding:28px 28px;font-size:14.5px;line-height:1.5;color:#3a4553}.res-empty b{display:block;font-size:17px;margin-bottom:6px;color:var(--ink)}
@media(max-width:640px){.res-form{grid-template-columns:1fr}.res-form #resCancel,.res-form button[type=submit]{grid-column:1}.res .ract{opacity:1}}
/* ---- System health / errors ---- */
.health .hstat{font-size:14.5px;margin-bottom:10px}.health .hstat.ok{color:var(--ok)}.health .hstat.bad{color:var(--bad)}.health .hstat b{font-weight:700}
.health .pulses{display:flex;flex-wrap:wrap;gap:6px 18px;font-size:12.5px;color:var(--muted);padding-bottom:10px;border-bottom:1px solid #f0ece5}.health .pulses span{display:inline-flex;align-items:center;gap:6px}.health .pulses i{width:7px;height:7px;border-radius:50%;background:var(--ok);display:inline-block}
.health .erows{display:flex;flex-direction:column;gap:7px;margin-top:10px}.health .erow{display:grid;grid-template-columns:96px 1fr;gap:10px;font-size:13px;line-height:1.4}.health .erow .t{color:var(--muted);font-size:11.5px;font-variant-numeric:tabular-nums;padding-top:2px}.health .erow b{font-weight:600;color:var(--bad)}.health .erow a{color:var(--pj);white-space:nowrap}
.health .more{margin-top:12px;font-size:12.5px}.health .more a{color:var(--pj)}
.reshead .ss{display:flex;align-items:center;gap:10px;padding:9px 14px;border:1px solid #e3ddd3;border-radius:12px;background:var(--surface);color:var(--muted);box-shadow:0 6px 20px rgba(27,42,74,.05)}.reshead .ss svg{width:16px;height:16px;flex:none}.reshead .ss input{flex:1;min-width:0;border:0;outline:none;background:transparent;font-size:15px;color:var(--ink);-webkit-appearance:none;padding:2px 0}
.res .pinb{position:absolute;top:10px;right:12px;color:var(--warn);font-size:13px;line-height:1;pointer-events:none}.res:hover .pinb,.res:focus-within .pinb,.res.confirm .pinb{opacity:0}
.resgrid.big .res{background:linear-gradient(160deg,#fffdf7,#fff 60%);border-color:#e6dcc8}
.health .pulses i.off{background:#cfd4dc}
/* ---- AI review queue ---- */
.sec.review .rows{border-color:#e6dcc8}.row.rv{background:linear-gradient(90deg,#fffcf4,#fff 40%)}.row.rv .title small{white-space:normal}.row.rv .title small .av{width:16px;height:16px;font-size:9px;vertical-align:-3px;margin-right:2px}
.rvact{display:flex;gap:6px;flex:none;align-items:center}.rvact .btn,.rvbar .btn{padding:6px 10px;font-size:12.5px;white-space:nowrap}.btn.ok{background:#e3f3ea;border-color:#bfe3cd;color:var(--kg)}.btn.ok:hover{background:#d2ecdc}.btn.bad{color:var(--bad)}.btn.bad:hover{background:#fbe9e7;border-color:#f3cfcb}.btn.bad.arm{background:var(--bad);color:#fff;border-color:var(--bad)}
.row.busy{opacity:.5;pointer-events:none}.sec.review .hint{font-size:12.5px;color:var(--muted);margin:8px 2px 0}.sec.review .more{font-size:13px;margin:8px 2px 0}.sec.review .more a{color:var(--pj)}
.cat.rvb{background:#fdf3df;color:#8a6200}.cat.quiet{background:#eceef2;color:#5f6675}.row .props .touch{font-size:11.5px;color:var(--muted);letter-spacing:.01em}
.rvbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;background:#fffbf0;border:1px solid #f0e4c4;border-radius:10px;padding:8px 12px;margin:10px 0;font-size:13px;color:#5c4a12}.rvbar span{flex:1;min-width:160px}
.health .acc{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--muted);padding:10px 0 0;flex-wrap:wrap}.health .acc i{width:7px;height:7px;border-radius:50%;background:var(--ok);display:inline-block;flex:none}.health .acc i.off{background:#cfd4dc}.health .acc b{color:var(--ink)}.health .acc.bad b,.health .acc.bad i{color:var(--bad);background:var(--bad)}.health .acc a{color:var(--pj)}
@media(max-width:640px){.row.rv{flex-wrap:wrap}.rvact{width:100%;justify-content:flex-start;padding:6px 0 2px 40px}}
.row.rv{grid-template-columns:1fr auto;padding:12px 16px}@media(max-width:640px){.row.rv{grid-template-columns:1fr}.rvact{padding:6px 0 2px 0}}
/* ---- scorecard + coach ---- */
.scorecard{display:grid;grid-template-columns:1fr 220px;gap:18px;align-items:start}.scorecard.compact{grid-template-columns:1fr}
.sctiles{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.sct{background:#faf9f6;border:1px solid #efeae1;border-radius:11px;padding:12px 14px}.sct b{display:block;font-size:24px;font-weight:600;letter-spacing:-.02em;line-height:1.1;font-variant-numeric:tabular-nums}.sct span{display:block;color:var(--muted);font-size:12px;margin-top:3px;line-height:1.3}.sct.bad b{color:var(--bad)}.sct.warn b{color:var(--warn)}
.scweek .week{height:70px;margin-bottom:22px}.scweek .week div i{bottom:-18px}.scweek .mu{font-size:11.5px}
.scl{grid-column:1/-1;border-top:1px solid #f0ece5;padding-top:12px}.scl h4{margin:0 0 6px;font-size:11.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:600}.scl a{display:flex;justify-content:space-between;gap:10px;padding:5px 0;color:var(--ink);font-size:13.5px;border-top:1px solid #f6f3ee}.scl a:first-of-type{border-top:0}.scl a span{color:var(--warn);font-variant-numeric:tabular-nums;flex:none}
.coach{margin-top:12px;background:linear-gradient(160deg,#fbf8ff,#fff 55%);border-color:#e5dcf3}.coach .ch{display:flex;align-items:center;gap:8px;margin-bottom:8px}.coach .ci{width:22px;height:22px;border-radius:7px;background:#efe8fa;color:var(--both);display:inline-flex;align-items:center;justify-content:center;font-size:12px;flex:none}.coach .ch b{font-size:13.5px}.coach .ch .when{color:var(--muted);font-size:12px;flex:1}.btn.sm{padding:4px 9px;font-size:12px}
.coach .read{margin:0 0 10px;font-size:14.5px;line-height:1.5}.coach .nx{display:grid;grid-template-columns:120px 1fr;gap:10px;font-size:13.5px;padding:7px 0;border-top:1px solid #efe9f7;line-height:1.4}.coach .nx b{font-size:11.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:600;padding-top:2px}.coach .nx.earned b{color:var(--kg)}.coach .nx small{display:block;color:var(--muted);font-size:12px;margin-top:3px}
.coach .hint{margin:10px 0 0;font-size:12px;color:var(--muted)}
@media(max-width:760px){.scorecard{grid-template-columns:1fr}.sctiles{grid-template-columns:repeat(2,1fr)}.coach .nx{grid-template-columns:1fr;gap:2px}}
.gmap{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin:4px 0 12px}.gc{background:#fff;border:1px solid #ece6f5;border-radius:10px;padding:10px 11px;min-width:0}.gc.focus{border-color:var(--both);box-shadow:0 0 0 2px #efe8fa}.gc .gh{display:flex;flex-direction:column;gap:2px;margin-bottom:6px}.gc .gh b{font-size:13px}.gc .fz{font-size:10.5px;color:var(--both);font-weight:600;text-transform:uppercase;letter-spacing:.05em}
.gc .lad{display:flex;align-items:center;gap:3px;margin-bottom:6px}.gc .lad i{width:14px;height:6px;border-radius:3px;background:#ece8f3;display:inline-block}.gc .lad i.on{background:var(--both)}.gc.l0 .lad i.on{background:#cfd4dc}.gc .lad span{font-size:11.5px;color:var(--muted);margin-left:4px}.gc small{display:block;font-size:12px;color:#4c5868;line-height:1.35}
@media(max-width:900px){.gmap{grid-template-columns:repeat(2,1fr)}}@media(max-width:480px){.gmap{grid-template-columns:1fr}}
/* ---- Mr Alfred ---- */
.coach .ci{font-weight:700;font-size:12px;font-style:normal}
.coach .nx.watch b{color:var(--warn)}.coach .wi{padding:3px 0}.coach .wi a,.coach .wi span{font-weight:500;color:var(--ink)}.coach .wi small{display:block;color:#4c5868;font-size:12.5px;margin-top:1px}
.talk{margin-top:12px;border-top:1px solid #efe9f7;padding-top:10px}.tmsgs{display:flex;flex-direction:column;gap:8px;max-height:280px;overflow:auto;margin-bottom:8px}.tm{display:flex;gap:8px;align-items:flex-start;font-size:13.5px;line-height:1.45}.tm div{background:#f5f1fb;border-radius:12px;padding:8px 12px;max-width:85%;white-space:pre-wrap}.tm.me{justify-content:flex-end}.tm.me div{background:var(--navy);color:#fff}.tm i{width:22px;height:22px;border-radius:7px;background:#efe8fa;color:var(--both);display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;font-style:normal;flex:none;margin-top:4px}
.tform{display:flex;gap:8px}.tform input{flex:1;min-width:0;border:1px solid var(--line);border-radius:10px;padding:9px 12px;background:#fff;font-size:13.5px}.tform.busy{opacity:.6;pointer-events:none}.talk .hint{margin-top:6px}
/* ---- Mr Alfred page ---- */
.alf{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,1fr);gap:18px;align-items:start}.talkbig .tmsgs{max-height:none;min-height:260px;max-height:60vh}.chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.chip{border:1px solid #e3ddd3;background:#faf9f6;border-radius:999px;padding:5px 11px;font-size:12.5px;color:var(--ink);cursor:pointer}.chip:hover{background:#f0ece5}.talkbig .rowb{margin-top:8px;display:flex;justify-content:flex-end}
.alfside{display:flex;flex-direction:column;gap:12px}.pcard .ph2,.mini .ph2{display:flex;align-items:center;gap:8px;margin-bottom:8px;font-size:13.5px}.mini .ph2 a{margin-left:auto;font-size:12.5px;color:var(--pj)}.psec{border-top:1px solid #f0ece5;padding:6px 0}.psec summary{cursor:pointer;font-size:13.5px;font-weight:500;list-style:none}.psec summary::-webkit-details-marker{display:none}.psec summary::before{content:'▸ ';color:var(--muted)}.psec[open] summary::before{content:'▾ '}.ptxt{font-size:13px;color:#3a4553;line-height:1.5;padding:6px 0 4px 14px;white-space:pre-wrap}
.mini .ml{display:grid;grid-template-columns:150px 1fr;gap:8px;align-items:center;padding:5px 0;border-top:1px solid #f0ece5;font-size:13px}.mini .ml.focus span{color:var(--both);font-weight:600}.mini .lad{display:flex;align-items:center;gap:3px}.mini .lad i{width:14px;height:6px;border-radius:3px;background:#ece8f3;display:inline-block}.mini .lad i.on{background:var(--both)}.mini .lad small{margin-left:6px;color:var(--muted)}.mu.small{font-size:12.5px;margin:8px 0 0}
@media(max-width:900px){.alf{grid-template-columns:1fr}}
/* Mr Alfred: one strip a day, the rest behind More */
.alfstrip{display:flex;align-items:flex-start;gap:10px;padding:10px 14px;background:linear-gradient(160deg,#fbf8ff,#fff 55%);border-color:#e5dcf3;margin:0 0 14px}
.alfstrip .ci{width:24px;height:24px;border-radius:7px;background:#efe8fa;color:var(--both);display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;font-style:normal;flex:none;margin-top:1px}
.alfstrip .al{flex:1;min-width:0}
.alfstrip .l1{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12.5px;color:var(--muted);line-height:1.3}.alfstrip .l1 b{color:var(--ink);font-size:14px}
.alfstrip .lv{font-size:12px}
.dots{display:inline-flex;gap:3px;vertical-align:middle}.dots i{width:12px;height:5px;border-radius:3px;background:#ece8f3;display:inline-block}.dots i.on{background:var(--both)}
.alfstrip .newb{font-style:normal;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#fff;background:var(--both);border-radius:999px;padding:2px 7px}
.alfstrip .l2{font-size:14px;line-height:1.45;margin-top:3px;color:var(--ink)}
.alfstrip .l3{font-size:12.5px;color:var(--warn);margin-top:4px;line-height:1.4}.alfstrip .l3 a{color:var(--ink);font-weight:500;border-bottom:1px dotted #c9c2b6}
.alfstrip .btn{flex:none}
.sec.score h2 span{font-weight:400}
.cat.alf{background:#fff1e0;color:#9a5a00}
.alfbar{display:flex;gap:8px;align-items:flex-start;margin:10px 22px 0;padding:9px 12px;border-radius:10px;background:#fbf8ff;border:1px solid #e5dcf3;font-size:13px;line-height:1.45;color:#2b3645}.alfbar .ci{width:20px;height:20px;border-radius:6px;background:#efe8fa;color:var(--both);display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;flex:none}.alfbar b{margin-right:4px}
.coachpanel{margin:-4px 0 14px;background:#fff}
.coachpanel .sctiles.four{grid-template-columns:repeat(4,1fr);margin-bottom:12px}.coachpanel .sct{padding:9px 12px}.coachpanel .sct b{font-size:20px}
.coachpanel .read{margin:0 0 10px;font-size:14px;line-height:1.5}
.coachpanel .nx{display:grid;grid-template-columns:110px 1fr;gap:10px;font-size:13.5px;padding:7px 0;border-top:1px solid #efe9f7;line-height:1.4}.coachpanel .nx b{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:600;padding-top:2px}.coachpanel .nx.earned b{color:var(--kg)}.coachpanel .nx.watch b{color:var(--warn)}
.coachpanel .wi{padding:2px 0}.coachpanel .wi a,.coachpanel .wi span{font-weight:500;color:var(--ink)}.coachpanel .wi small{display:block;color:#4c5868;font-size:12.5px;margin-top:1px}
.gmap.compact{margin:4px 0 10px;align-items:start}.gmap.compact .gc{padding:8px 10px}.gmap.compact .gc .gh{margin-bottom:4px}.gmap.compact .gc small{margin-top:4px}
.pfoot{display:flex;align-items:center;gap:12px;margin-top:10px;padding-top:10px;border-top:1px solid #efe9f7;font-size:12.5px;flex-wrap:wrap}.pfoot .mu{flex:1;min-width:0;font-size:12px}.pfoot a{color:var(--both);font-weight:500}
@media(max-width:760px){.coachpanel .sctiles.four{grid-template-columns:repeat(2,1fr)}.coachpanel .nx{grid-template-columns:1fr;gap:2px}.alfstrip{flex-wrap:wrap}.alfstrip .btn{margin-left:34px}}
/* Sync mode: live rows inside the step cards */
.step .rows.sync{margin-top:4px;border-color:#efeae1}.step .rows.sync .row{padding:9px 12px;font-size:14px}.step .rows.sync .row .title small{font-size:12px}
/* Clarity: a handoff missing done-when or a date */
.cat.clr{background:#efe8fa;color:#5a3a9a}.cat.clr.asked{background:#e9eef7;color:#1b2a4a}.cat.clr.need{background:#fbe9e7;color:#a12f22;font-weight:600}
.needbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;background:#fbe9e7;border:1px solid #f1c7c1;border-left:4px solid #c0392b;border-radius:12px;padding:10px 14px;margin:0 0 16px;font-size:14px;color:#5a1f17}.needbar b{color:#a12f22}.needbar .btn{white-space:nowrap}
@keyframes bellring{0%,100%{transform:rotate(0)}10%{transform:rotate(14deg)}20%{transform:rotate(-12deg)}30%{transform:rotate(10deg)}40%{transform:rotate(-8deg)}50%{transform:rotate(4deg)}60%{transform:rotate(0)}}
@keyframes bellglow{0%,100%{box-shadow:0 0 0 0 rgba(217,162,27,.55)}50%{box-shadow:0 0 0 7px rgba(217,162,27,0)}}
.bellsvg{display:inline-block;vertical-align:-2px;color:#b8860b;transform-origin:50% 10%;animation:bellring 2.2s ease-in-out infinite}
.row .bell{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background:#fff3c4;color:#b8860b;animation:bellglow 2.2s ease-out infinite;margin-right:2px}
.needbar.ring{background:#fff7dc;border-color:#f3e2b3;border-left-color:#d9a21b;color:#5a4200}.needbar.ring b{color:#7a5400}.needbar.ring .bl{display:flex;flex-direction:column;gap:4px}.needbar.ring .bi{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.needbar.ring .bi a{color:#1b2a4a;font-weight:600}.needbar.ring .bi small{color:#8a7a4a}.needbar.ring .bellsvg{width:18px;height:18px;flex:none}
.side .bellbtn{display:flex;align-items:center;gap:8px;margin:0 0 12px;padding:8px 12px;border-radius:10px;background:#fff7dc;border:1px solid #f3e2b3;color:#7a5400;font-weight:600;font-size:13px;text-decoration:none;animation:bellglow 2.2s ease-out infinite}.side .bellbtn.on{background:#ffefb8}
.mnav .pulse.ring{background:#d9a21b}
/* rhythm chains */
.row.rh .check.locked{border-style:dashed;color:var(--muted);font-size:11px;font-weight:600}.row.rh .check .chainlock{font-size:11px}.chainp{font-weight:600;color:var(--ink)}
.drawer .chain{padding:4px 22px 28px}.drawer .cprog{margin:4px 0 18px}.drawer .cprog .bar{height:6px;border-radius:3px;background:#ebe8e0;overflow:hidden}.drawer .cprog .bar i{display:block;height:100%;background:#1f7a4d;border-radius:3px;transition:width .4s}.drawer .cprog .lead,.drawer .chain>.lead{font-size:13px;color:var(--muted);margin-top:8px;line-height:1.5}.drawer .cprog .lead b{color:var(--ink)}
.drawer .tl{position:relative;padding-left:4px}.drawer .tl::before{content:"";position:absolute;left:17px;top:14px;bottom:18px;width:2px;background:#e3e0d8;border-radius:2px}
.drawer .tnode,.drawer .tend{display:flex;gap:14px;position:relative;padding:8px 0 16px}.drawer .tnode:last-child{padding-bottom:8px}
.drawer .tdot{flex:none;width:28px;height:28px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:12.5px;font-weight:700;background:#fff;border:2px solid #d7dbe3;color:var(--muted);position:relative;z-index:1;margin-top:-1px}
.drawer .tnode.done .tdot{background:#1f7a4d;border-color:#1f7a4d;color:#fff}.drawer .tnode.live .tdot{background:#fff3c4;border-color:#d9a21b;color:#7a5a00;animation:bellglow 2.2s ease-out infinite}.drawer .tnode.locked .tdot{background:#f3f2ee;border-color:#e3e0d8;color:#b4b1a8}.drawer .tend .tdot{background:#fff;border-style:dashed}.drawer .tend.done .tdot{background:#1f7a4d;border-color:#1f7a4d;border-style:solid;color:#fff}
.drawer .tbody{flex:1;min-width:0;padding-top:3px}.drawer .tnode.live .tbody{background:#fffbea;border:1px solid #f3e4a8;border-radius:12px;padding:12px 14px;margin-top:-6px}.drawer .tnode.live.closing .tbody{background:#eef7f1;border-color:#bfe3cc}
.drawer .tt1{font-size:14.5px;font-weight:600;line-height:1.35;color:var(--ink)}.drawer .tnode.locked .tt1,.drawer .tnode.locked .tmeta,.drawer .tend .tt1{color:#9c998f;font-weight:500}.drawer .tnode.locked .tt1{font-size:13.5px}.drawer .tnode.done .tt1{font-weight:500}
.drawer .tt1 .kind{display:inline-block;font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);background:#f1efe9;border-radius:6px;padding:1px 6px;margin-right:6px;vertical-align:1px}.drawer .tnode.locked .tt1 .kind{background:#f5f4f0;color:#b4b1a8}.drawer .tt1 .sop{font-size:12px;margin-left:6px;color:var(--pj);font-weight:500}
.drawer .tmeta{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:12.5px;color:var(--muted);margin-top:4px}.drawer .tmeta .av{width:18px;height:18px;font-size:9px}.drawer .tmeta .ok{color:#1f7a4d}.drawer .tmeta .lnk{border:0;background:none;color:var(--pj);font-size:12px;cursor:pointer;padding:0 4px}
.drawer .sd{font-size:13px;color:var(--ink);margin-top:8px;line-height:1.5}.drawer .snotes{margin-top:8px;display:flex;flex-direction:column;gap:6px}.drawer .snote{display:flex;gap:8px;font-size:12.5px;color:var(--ink);background:#fff;border:1px solid #efece4;border-radius:8px;padding:6px 8px}.drawer .tnode.done .snote{background:#faf8f3;border-color:transparent}.drawer .snote .av{width:20px;height:20px;font-size:9px;flex:none;margin-top:1px}.drawer .snote span{color:var(--muted);margin-left:4px}.drawer .snote em{color:#a12f22;font-style:normal;margin-left:4px}.drawer .snote .snt{margin-top:2px;line-height:1.45}
.drawer .sact{margin-top:10px;display:flex;flex-direction:column;gap:8px}.drawer .srow{display:flex;gap:6px;align-items:flex-start}.drawer .sact textarea{flex:1;min-width:0;border:1px solid var(--line);border-radius:8px;padding:8px 10px;font:inherit;font-size:13px;line-height:1.4;resize:none;background:#fff;min-height:36px}.drawer .clip{flex:none;width:36px;height:36px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--muted);display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.drawer .clip svg{width:17px;height:17px}.drawer .clip:hover{color:var(--ink)}
.drawer .satt .chip{display:inline-flex;align-items:center;gap:6px;font-size:12px;background:#fff;border:1px solid var(--line);border-radius:999px;padding:3px 6px 3px 10px}.drawer .satt .chip b{font-weight:600;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.drawer .satt .xa{border:0;background:#f1efe9;border-radius:50%;width:18px;height:18px;cursor:pointer;font-size:12px;line-height:1;color:var(--muted)}
.drawer .tappr{display:flex;gap:10px;margin-top:10px;padding:8px 0 0;border-top:1px dashed #e8e5dc;position:relative}.drawer .tnode.live .tappr{border-top-color:#eadfae}.drawer .adot{flex:none;width:20px;height:20px;border-radius:50%;border:2px solid #d7dbe3;background:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:var(--muted);margin-top:1px}.drawer .tappr.approved .adot{background:#1f7a4d;border-color:#1f7a4d;color:#fff}.drawer .tappr.pending .adot{background:#fff3c4;border-color:#d9a21b;animation:bellglow 2.2s ease-out infinite}.drawer .tappr.sent_back .adot{background:#fbe9e7;border-color:#e3a79f;color:#a12f22}.drawer .tappr.locked .adot{border-color:#e3e0d8;background:#f3f2ee}
.drawer .abody{flex:1;min-width:0}.drawer .tt2{font-size:12px;letter-spacing:.05em;text-transform:uppercase;font-weight:600;color:var(--muted)}.drawer .tappr.pending .tt2{color:#7a5a00}.drawer .tappr.locked .tt2,.drawer .tappr.locked .tmeta{color:#b4b1a8}.drawer .tappr.pending.mine{background:#fffbea;border:1px solid #f3e4a8;border-top-style:solid;border-radius:10px;padding:10px 12px;margin-top:12px}.drawer .tnode.live .tappr.pending.mine{background:#fff;}
.drawer .rowb{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px;align-items:center}.drawer .tnode .rowb .lnk{border:0;background:none;color:var(--pj);font-size:12px;cursor:pointer;padding:0 4px}
.drawer .tend .tmeta{font-size:12px}
@media (max-width:640px){.drawer .chain{padding:4px 14px 24px}.drawer .tnode.live .tbody{padding:10px 12px}}
.sec.steps .row.rh .tt .bar{color:var(--muted);margin:0 4px}
.clrbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:10px 22px 0;padding:9px 12px;border-radius:10px;background:#f7f3ff;border:1px solid #e5dcf3;font-size:13px;color:#2b3645}.clrbar span{flex:1;min-width:160px}
.drawer .dd2.dw{font-size:13px;color:#4a5566}.drawer .dd2.dw b{color:var(--muted);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.06em;margin-right:6px}
/* Ask Keagan / answers */
.askblk,.ansblk{margin:10px 22px 0;padding:12px 14px;border-radius:12px;background:#f7f3ff;border:1px solid #e5dcf3}
.sec.clarity .card{padding:0 0 4px}.sec.clarity .ansblk{margin:0;border:0;background:transparent;padding:14px 16px}.syncq{margin-top:8px;padding:0}.syncq .ansblk{margin:0;border:0;background:transparent;padding:12px 14px}
.askblk .ah,.ansblk .ah{display:flex;align-items:center;gap:8px;margin-bottom:8px;font-size:13px;color:var(--muted);flex-wrap:wrap}.askblk .ah b,.ansblk .ah b{color:var(--ink)}.ansblk .ah .av{width:20px;height:20px;font-size:10px}
.askblk .ci{width:22px;height:22px;border-radius:7px;background:#efe8fa;color:var(--both);display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;flex:none}
.askblk .aq{display:grid;gap:6px;margin-bottom:8px}.askblk input,.ansblk input{width:100%;border:1px solid var(--line);border-radius:9px;padding:8px 11px;background:#fff;font-size:13.5px;box-sizing:border-box}
.ansblk .aq{margin-bottom:8px}.ansblk .q{font-size:14px;color:var(--ink);margin-bottom:4px;line-height:1.4}.ansblk .ar{display:flex;gap:6px;align-items:center}.ansblk .ar input{flex:1;min-width:0}
.askblk .rowb,.ansblk .rowb{display:flex;align-items:center;gap:8px;margin-top:6px;flex-wrap:wrap}.ansblk .rowb .hint{font-size:12px;color:var(--muted);margin:0}
.askblk.busy,.ansblk.busy{opacity:.6;pointer-events:none}
.clrbar.waiting{background:#f3f5f9;border-color:#dde3ee}
.askwrap .ansblk{margin-top:10px}
/* chase-by on waiting items */
.chase{color:var(--muted)}.chase.today{color:var(--warn);font-weight:600}.chase.over{color:var(--bad);font-weight:600}
.row .title small.prop{white-space:normal;color:#2b3645}.row .title small.prop b{color:var(--both);font-weight:600}
/* resolved errors */
.ev.fail.res{opacity:.72}.ev.fail.res .what b{color:var(--ink)}.ev .q.ok{color:var(--ok);background:#eef7f1;border-color:#cfe6d6}
/* Person | Action titles */
.tt .who,.dt .who{color:var(--navy);font-weight:600}.tt .bar,.dt .bar{color:#c3cad6;margin:0 6px;font-weight:400}
/* the rhythm builder in the chat dock */
.dock .bmode{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 12px;background:#fff8e1;border-top:1px solid #f3e4a8;font-size:12px;color:#7a5a00}.dock .bmode .lnk{border:0;background:none;color:var(--pj);cursor:pointer;font-size:12px;padding:0 4px}
.dock.building .compose{background:#fffdf5}
.dock .m.bcard{max-width:96%;white-space:normal;background:#fff;border:1px solid #efe7d2;padding:10px 12px}.dock .bcard .bsay{font-size:13.5px;line-height:1.45}.dock .bcard .bhead{margin-top:8px;padding:8px 10px;background:#faf8f3;border-radius:10px}.dock .bcard .bhead b{display:block;font-size:14px}.dock .bcard .bhead small{color:var(--muted);font-size:12px}
.dock .bcard .bsteps{margin-top:8px;position:relative;padding-left:2px}.dock .bcard .bsteps::before{content:"";position:absolute;left:12px;top:10px;bottom:10px;width:2px;background:#e8e4da}.dock .bcard .bs{display:flex;gap:10px;padding:4px 0;position:relative}.dock .bcard .bs i{flex:none;width:22px;height:22px;border-radius:50%;background:#fff;border:2px solid #d7dbe3;font-style:normal;font-size:11px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;color:var(--muted);z-index:1}.dock .bcard .bs.cl i{border-style:dashed}.dock .bcard .bs b{font-size:13px;font-weight:600;display:block;line-height:1.3}.dock .bcard .bs small{color:var(--muted);font-size:11.5px}.dock .bcard .ba{font-size:11.5px;color:#7a5a00;margin-top:2px}
.dock .bcard .bassumed{margin-top:8px;font-size:11.5px;color:var(--muted);line-height:1.45}.dock .bcard .bask{margin-top:8px;font-size:13.5px;font-weight:600;color:var(--ink)}.dock .bcard .rowb{margin-top:10px;display:flex;gap:8px;flex-wrap:wrap;align-items:center}.dock .bcard .lnk{border:0;background:none;color:var(--pj);cursor:pointer;font-size:12.5px;padding:0 4px}
/* a rhythm someone just set up or changed: the other person checks it */
.drawer .rnew{margin:0 22px 14px;padding:10px 12px;background:#fff8e1;border:1px solid #f3e4a8;border-radius:12px;font-size:13px;line-height:1.45;display:flex;flex-direction:column;gap:8px}.drawer .rnew .bellsvg{width:16px;height:16px;vertical-align:-3px;margin-right:6px;color:#d9a21b}.drawer .rnew .rowb{display:flex;gap:8px}
.drawer .chain .cedit{margin-top:4px}.drawer .chain .cedit .lnk{border:0;background:none;color:var(--pj);cursor:pointer;font-size:12.5px;padding:0}
@media (max-width:640px){.drawer .rnew{margin:0 14px 12px}}
.drawer .rnew.ring .bellsvg{animation:bellring 1.6s ease-in-out infinite;transform-origin:50% 0}.drawer .rnew .sbbox:not([hidden]){display:flex;flex-direction:column;gap:6px}.drawer .rnew .sbbox textarea{width:100%;border:1px solid var(--line);border-radius:8px;padding:7px 9px;font:inherit;font-size:13px;background:#fff;resize:none}
.row.rh.proposed .check.locked{border-style:dotted}.row.rh.proposed .title .tt{color:var(--ink)}

.drawer .nudgebox{margin:8px 22px 0;padding:10px 12px;background:#fff8e1;border:1px solid #f3e4a8;border-radius:12px;display:flex;flex-direction:column;gap:8px}.drawer .nudgebox textarea{width:100%;border:1px solid var(--line);border-radius:8px;padding:7px 9px;font:inherit;font-size:13px;background:#fff;resize:none}.drawer .nudgebox .rowb{display:flex;gap:8px;align-items:center}.drawer .nudgebox .lnk{border:0;background:none;color:var(--pj);cursor:pointer;font-size:12.5px}
@media (max-width:640px){.drawer .nudgebox{margin:8px 14px 0}}
/* the Brief's business-today tile and the source mark on rows */
a.stat.link{text-decoration:none;color:inherit;display:block}a.stat.link:hover{border-color:#c9c2b4}.stat b small{font-size:16px;font-weight:500;color:var(--muted);letter-spacing:0}.stat.ok b{color:#1f7a4d}.stat.half b{color:#b7791f}
.row .props .src{font-size:12px;opacity:.55;margin-right:2px;cursor:default}
/* Ask: the intent step and the pick list */
.askblk .chips.sel{margin:2px 0 10px}.askblk .chip.on{background:var(--both);color:#fff;border-color:var(--both)}.askblk.intent input[name=context]{width:100%;border:1px solid #e5dcf3;border-radius:8px;padding:8px 10px;font:inherit;font-size:13px;background:#fff;margin-bottom:8px}
.askblk .aq.pick{display:flex;gap:8px;align-items:flex-start}.askblk .aq.pick>div{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.askblk .tick{flex:none;padding-top:9px}.askblk .tick input{width:16px;height:16px;accent-color:var(--both);cursor:pointer}.askblk .aq.pick:has(input[type=checkbox]:not(:checked))>div{opacity:.45}
/* a freshly closed cycle, and the past cycles of a rhythm */
.drawer .rprev{margin:0 22px 14px;padding:10px 12px;background:#f3f7fb;border:1px solid #d9e4f2;border-radius:12px;font-size:13px;line-height:1.45;display:flex;flex-direction:column;gap:8px}.drawer .rprev .rowb{display:flex;gap:8px}
.drawer .past{margin-top:14px;border-top:1px dashed var(--line);padding-top:10px}.drawer .past>summary{cursor:pointer;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:600;list-style:none;display:flex;align-items:center;gap:8px}.drawer .past>summary::-webkit-details-marker{display:none}.drawer .past>summary span{background:#f1efe9;border-radius:999px;padding:1px 7px;font-size:11px;letter-spacing:0}.drawer .past>summary::after{content:"›";transform:rotate(90deg);display:inline-block;color:var(--muted);margin-left:auto;transition:transform .15s}.drawer .past[open]>summary::after{transform:rotate(-90deg)}
.drawer .pc{margin-top:8px;border:1px solid #efece4;border-radius:10px;padding:8px 10px;background:#faf8f3}.drawer .pc summary{cursor:pointer;display:flex;gap:8px;align-items:baseline;font-size:13px;list-style:none}.drawer .pc summary::-webkit-details-marker{display:none}.drawer .pc summary span{color:var(--muted);font-size:12px}.drawer .pc.flat{font-size:13px}.drawer .pcl{margin-top:8px;display:flex;flex-direction:column;gap:4px;font-size:12.5px}.drawer .pcl i{display:inline-block;width:16px;color:var(--muted);font-style:normal}.drawer .pcl i.ok{color:#1f7a4d}.drawer .pcl i.bad{color:#a12f22}.drawer .pcl span{color:var(--muted)}
@media (max-width:640px){.drawer .rprev{margin:0 14px 12px}}
/* chain steps on the calendar */
.pip.step{background:#eef2fb;color:#2c4a8a}.pip.step.dim{background:#f3f2ee;color:#9c998f}.grid .c .pip.late{font-weight:600}
.sec h2 .cat.clr.need{margin-left:8px;vertical-align:1px}
/* New note from the other side, not yet looked at (Keagan, Oct 13): the row breathes a light amber pulse instead of ringing a bell. Opening it puts the light out. */
.row.fresh{position:relative;isolation:isolate}
.row.fresh>*{position:relative;z-index:1}
.row.fresh::after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:radial-gradient(ellipse 70% 160% at 10% 50%,rgba(242,185,74,.55),rgba(255,228,160,.28) 40%,rgba(255,255,255,0) 78%);opacity:.18;animation:freshpulse 5.5s ease-in-out infinite}
.row.fresh::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;z-index:1;background:linear-gradient(180deg,#f2b94a,#e8a317);border-radius:0 3px 3px 0;animation:freshbar 5.5s ease-in-out infinite}
.row.fresh .tt::after{content:"new note";display:inline-block;font-size:10.5px;font-weight:600;letter-spacing:.02em;color:#8a5a00;background:#fff1c9;border-radius:999px;padding:1px 7px;margin-left:8px;vertical-align:middle}
.row.fresh:hover::after{opacity:.6;animation:none}
@keyframes freshpulse{0%,100%{opacity:.14}50%{opacity:.85}}
@keyframes freshbar{0%,100%{opacity:.45}50%{opacity:1}}
.dotc.glow{background:#e8a317;animation:freshdot 5.5s ease-in-out infinite}
@keyframes freshdot{0%,100%{opacity:.45}50%{opacity:1}}
@media (prefers-reduced-motion:reduce){.row.fresh::after,.row.fresh::before,.dotc.glow{animation:none}.row.fresh::after{opacity:.45}}
/* resources attached to a rhythm (Keagan, Oct 14): links on the panel and on every step row */
.drawer .rres{padding:0 22px 4px}.drawer .rres h3{margin:14px 0 8px}.drawer .rres .mu.small{font-size:12.5px;color:var(--muted);margin-bottom:8px}
.drawer .rlist{display:flex;flex-direction:column;gap:6px;margin-bottom:8px}.drawer .rr{display:flex;align-items:center;gap:6px}.drawer .rr a{flex:1;display:flex;align-items:center;gap:10px;background:#f8f7f4;border:1px solid var(--line);border-radius:10px;padding:7px 10px;color:var(--ink);text-decoration:none;min-width:0}.drawer .rr a b{font-weight:500;font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.drawer .rr a small{display:block;color:var(--muted);font-size:11.5px}.drawer .rr a .fav{width:16px;height:16px;border-radius:4px;flex:none}.drawer .rr .xr{border:0;background:transparent;color:var(--muted);font-size:18px;cursor:pointer;padding:4px 6px;border-radius:6px}.drawer .rr .xr:hover{background:#f3f1ec;color:var(--bad)}
.drawer .ratt{display:flex;gap:6px;align-items:center}.drawer .ratt select{flex:1;min-width:0;border:1px solid var(--line);border-radius:9px;padding:6px 8px;font:inherit;font-size:13px;background:#fff}
.drawer .rnew{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap}.drawer .rnew input{flex:1;min-width:140px;border:1px solid var(--line);border-radius:9px;padding:6px 9px;font:inherit;font-size:13px}.drawer .rnew.busy{opacity:.6;pointer-events:none}
.row .rlink{display:inline-block;font-size:11px;font-weight:600;color:var(--pj);background:#eaf0fb;border-radius:999px;padding:1px 7px;margin-left:4px;text-decoration:none;vertical-align:middle;max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row .rlink:hover{background:#dbe4f5}.row .rlink.more{color:var(--muted);background:#f0ede7}
.res .rrh{display:flex;flex-wrap:wrap;gap:4px;padding:0 12px 10px}.res .rchip{border:1px solid #dbe4f5;background:#eaf0fb;color:var(--pj);border-radius:999px;padding:1px 8px;font-size:11px;font-weight:600;cursor:pointer;font-family:inherit}.res .rchip:hover{background:#dbe4f5}
.res-form .rhyset{flex-basis:100%;font-size:13px}.res-form .rhyset summary{cursor:pointer;color:var(--muted);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.06em;list-style:none}.res-form .rhyopts{display:flex;flex-wrap:wrap;gap:4px 14px;padding:8px 0 4px}.res-form .rhyopts .chk{font-size:13px}
.alfstrip .l3 a.closed,.coachpanel .wi.closed a{text-decoration:line-through;color:var(--muted)}.wdone{font-style:normal;font-size:11px;font-weight:600;color:var(--ok);background:rgba(31,122,77,.1);border-radius:6px;padding:1px 6px;margin-left:4px;vertical-align:middle} /* a watch item that closed since the read (Keagan, Oct 14: the read must follow the data) */
