/* App additions on top of guide.css (Week 00 design) */
:root{--red:#b3412e;--redTint:#f7e4df;--amber:#9a6b12;--amberTint:#f6eed8}
:root[data-theme="dark"]{--red:#f19a86;--redTint:#3a2420;--amber:#e3bf6c;--amberTint:#3a321c}
.btn{display:inline-block;border:1px solid var(--line);border-radius:7px;padding:8px 12px;background:var(--surface);color:var(--ink);font-size:13px;font-weight:650;text-decoration:none;cursor:pointer}
.btn.primary{background:var(--ink);border-color:var(--ink);color:var(--surface)}
input,select{font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:7px;padding:7px 10px}
.fact input{border:0;padding:0 0 0 6px;font:12px ui-monospace,Consolas,monospace;background:transparent}
.fact.warn{background:var(--amberTint);border-color:var(--amber)}.gatefact{background:var(--tint);border-color:var(--accent)}
.dash{max-width:1320px;margin:auto}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin:10px 0 6px}
.stat{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:16px 18px;box-shadow:var(--shadow)}
.stat label{display:block;font:650 11px ui-monospace,Consolas,monospace;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.stat b{display:block;font-size:38px;line-height:1.15;letter-spacing:-.03em}.stat small{color:var(--muted);font-size:12px}
.twocol{display:grid;grid-template-columns:1fr 1fr;gap:0 24px}
.bar{display:grid;grid-template-columns:140px 1fr 70px 50px;align-items:center;gap:12px;font-size:14px;margin:6px 0}
.bar progress{margin:0;height:10px}.bar small{color:var(--muted);text-align:right}
ul.plain{list-style:none;padding:0}ul.plain li{margin:6px 0}
.badge{display:inline-block;font:600 10px/1.4 ui-monospace,Consolas,monospace;text-transform:uppercase;letter-spacing:.05em;padding:2px 7px;border-radius:20px;background:var(--bg);border:1px solid var(--line);color:var(--muted);text-decoration:none;white-space:nowrap}
.badge.done,.badge.passed{background:var(--greenTint);color:var(--green);border-color:var(--green)}
.badge.in_progress,.badge.doing{background:var(--tint);color:var(--accent);border-color:var(--accent)}
.badge.blocked{background:var(--redTint);color:var(--red);border-color:var(--red)}
.gates{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.gate{display:block;padding:12px;border:1px solid var(--line);border-left:4px solid var(--muted);border-radius:8px;text-decoration:none;color:var(--ink);font-size:13px;line-height:1.35;background:var(--bg)}
.gate b{display:block;font-family:ui-monospace,Consolas,monospace}.gate small{display:block;color:var(--muted);margin-top:6px}
.gate.passed{border-left-color:var(--green);background:var(--greenTint)}.gate.blocked{border-left-color:var(--red)}
.filters{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px}
.weekgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}
.wcard{position:relative;display:flex;flex-direction:column;gap:3px;padding:14px;border:1px solid var(--line);border-radius:10px;text-decoration:none;color:var(--ink);background:var(--surface);transition:transform .1s}
.wcard:hover{border-color:var(--accent);transform:translateY(-2px)}
.wcard b{font-size:15px;line-height:1.3;text-transform:capitalize}.wcard small{font-size:11px;color:var(--muted)}
.wcard .wnum{font:800 24px ui-monospace,Consolas,monospace;color:var(--muted)}.wcard .badge{position:absolute;top:14px;right:12px}
.wcard progress{margin:6px 0 0}.wcard.done{background:var(--greenTint)}.wcard.blocked{border-color:var(--red)}
.wcard.current{outline:3px solid var(--accent);outline-offset:2px}.wcard.current::after{content:"YOU ARE HERE";position:absolute;bottom:12px;right:12px;font:700 9px ui-monospace,Consolas,monospace;color:var(--accent)}
.wcard .gatelabel{color:var(--accent)}
.weekbar a{background:var(--redTint)}.weekbar a.done{background:var(--greenTint)}.weekbar a.done b::after{content:" ✓";color:var(--green)}
.weekbar a.next{box-shadow:inset 0 -3px 0 var(--accent)}
#sidebar-toggle{padding:3px 9px;margin-right:8px;font-size:14px;vertical-align:middle}
:root[data-sidebar="closed"] .shell{grid-template-columns:0 minmax(0,1fr)}
:root[data-sidebar="closed"] .sidebar{visibility:hidden;padding:0;border:0;overflow:hidden;height:0}
.weeknav{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:18px 0;flex-wrap:wrap}
.bigfield{display:block;width:100%;margin-top:8px;font-size:18px;font-weight:650;padding:12px 14px;border:2px solid var(--accent)}
.trackrow{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:10px}.trackrow label{display:grid;gap:4px;font-size:12px;font-weight:650;color:var(--muted)}
table.deliv td:first-child{min-width:190px}table.deliv td:last-child{min-width:120px}
.days{display:grid;gap:8px}
details.day{margin:0;padding:0 16px;border:1px solid var(--red);border-radius:10px;background:var(--redTint);font-size:14px}
details.day>summary{display:flex;align-items:center;gap:12px;padding:12px 0;font-size:15px}
details.day>summary input{width:19px;height:19px;accent-color:var(--green);cursor:pointer}
details.day .daystate{margin-left:auto;font:600 11px ui-monospace,Consolas,monospace;text-transform:uppercase;color:var(--red)}
details.day.done{background:var(--greenTint);border-color:var(--green)}details.day.done .daystate{color:var(--green)}
details.day[open]{padding-bottom:14px;box-shadow:0 0 0 3px var(--tint)}
details.day p{margin:0 0 10px;line-height:1.6}.slot{width:100%;font-size:12px}
.step>summary{list-style:none;margin:0;cursor:pointer;padding:0;font-size:inherit}
.step>summary::-webkit-details-marker{display:none}
.step>summary::after{content:"▾";margin-left:auto;font-size:22px;color:var(--muted);transition:transform .15s}
details.step:not([open])>summary{margin-bottom:0}details.step:not([open])>summary::after{transform:rotate(-90deg)}
details.step[open]{padding-bottom:clamp(20px,3.5vw,40px)}details.step:not([open]){padding-top:18px;padding-bottom:18px}
.md h3{font-size:17px}.md li:has(>input.task){list-style:none;margin-left:-22px}
input.task{width:17px;height:17px;accent-color:var(--green);vertical-align:-3px;margin:0 6px 0 0;cursor:pointer}
.inline-form{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}.inline-form input:not([type=file]){flex:1;min-width:180px}
.loglist{max-height:260px;overflow:auto;font-size:14px}
button.x{border:0;background:none;color:var(--muted);padding:0 6px;font-size:16px}button.x:hover{color:var(--red)}
.preview{border:1px dashed var(--line);border-radius:8px;padding:14px;margin-top:10px}
.media{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px}
.media figure{margin:0;border:1px solid var(--line);border-radius:9px;overflow:hidden;background:var(--bg)}
.media iframe,.media video,.media img{display:block;width:100%;aspect-ratio:16/9;border:0;object-fit:contain;background:#000}
.media audio{width:100%;margin:12px 0}.media figcaption{font-size:12px;padding:6px 10px;color:var(--muted);display:flex;justify-content:space-between}
.filelink{display:block;padding:24px;font-weight:650}
.guideframe{width:100%;height:80vh;border:1px solid var(--line);border-radius:8px}
.timerbar{position:fixed;right:18px;bottom:18px;z-index:30;display:flex;gap:12px;align-items:center;background:var(--ink);color:var(--surface);padding:10px 14px;border-radius:12px;box-shadow:0 8px 30px #0003;font-size:13px}
.timerbar b{font:800 26px ui-monospace,Consolas,monospace}.timerbar button{padding:4px 8px;margin-left:4px}
.timerbar:not(.running) .timer-run,.timerbar.running .timer-idle{display:none}
.timerbar:not(.running){opacity:.85;padding:6px 10px}.timerbar.paused b{opacity:.55}
/* Measured focus time: today's total sits in the timer bar, the day-by-day bars live on /now */
.timer-today{font:700 12px ui-monospace,Consolas,monospace;color:var(--surface);opacity:.75;text-decoration:none;border-left:1px solid #fff3;padding-left:12px;white-space:nowrap}
.timer-today:hover{opacity:1}
.stat b .unit{font-size:16px;letter-spacing:0;color:var(--muted)}
.focushead{margin:22px 0 10px;display:flex;align-items:baseline;gap:10px}
.focushead .small{color:var(--muted);font-weight:400}
.focusdays{display:flex;align-items:flex-end;gap:6px;height:130px;padding:10px 12px;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow)}
.fday{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:5px;height:100%;min-width:0}
.fday b{font:700 11px ui-monospace,Consolas,monospace;color:var(--muted)}
.fday i{display:block;width:100%;max-width:34px;min-height:3px;border-radius:4px 4px 0 0;background:var(--green)}
.fday small{font:11px ui-monospace,Consolas,monospace;color:var(--muted)}
.fday.empty i{background:var(--line)}
.fday.is-today i{background:var(--accent)}
.fday.is-today small{color:var(--accent);font-weight:700}
.measured{color:var(--green);font-weight:700}
@media(max-width:700px){.timer-today{display:none}.focusdays{height:104px}}
@media(max-width:950px){.twocol{grid-template-columns:1fr}}
@media(max-width:700px){.bar{grid-template-columns:100px 1fr 60px}.bar small{display:none}.topbar{flex-direction:column}.stat b{font-size:28px}}

/* ---------- Markdown library: browse, read part by part, edit, create ---------- */
.pinnav{display:inline-flex;flex-wrap:wrap;gap:6px;margin-right:6px}
.pinnav a{font-size:12px;font-weight:650;text-decoration:none;color:var(--muted);border:1px solid var(--line);border-radius:20px;padding:4px 10px;white-space:nowrap}
.pinnav a:hover{color:var(--accent);border-color:var(--accent)}
.docbar{margin-top:14px}
#part-filter{width:100%;margin:10px 0 6px;font-size:13px}
#resume a{font-weight:650}
.doclist li{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:baseline;gap:12px;padding:7px 0;border-bottom:1px solid var(--line)}
.doclist a{text-decoration:none}.doclist a:hover strong{text-decoration:underline}
.doclist code{font-size:12px;color:var(--muted)}
.docgroup h3{margin:22px 0 4px;font-size:14px;font-family:ui-monospace,Consolas,monospace;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.md a.missing,.small a.missing{color:var(--amber);text-decoration:underline dashed}
.md a.missing::after{content:" ＋"}
details.docpart .partfoot{display:flex;align-items:center;gap:14px;margin-top:18px;padding-top:12px;border-top:1px solid var(--line);font-size:13px}
details.docpart .partfoot button{border:1px solid var(--line);border-radius:7px;background:var(--surface);padding:6px 11px;font-size:13px;font-weight:650;cursor:pointer}
details.docpart .partfoot button:hover{border-color:var(--accent);color:var(--accent)}
details.docpart.editing .partbody{display:none}
.editor{margin-top:16px}
.editor textarea{font:13px/1.65 ui-monospace,Consolas,monospace;min-height:220px;tab-size:2}
.editbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px}
.editbar .small{margin-left:auto}
.editor .preview{margin-top:14px;background:var(--bg)}
.folderpick{display:flex;flex:1;gap:8px;min-width:220px}.folderpick select{flex:1;min-width:0}.folderpick input{flex:1;min-width:120px}
.locbar{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:10px}.locbar label{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:650;flex:1;min-width:240px}
.locbar label input{flex:1;min-width:0}
.syncbar{display:inline-flex;align-items:center;gap:6px;margin-right:6px}
.syncpill{font:600 12px ui-monospace,Consolas,monospace;text-decoration:none;color:var(--muted);border:1px solid var(--line);border-radius:20px;padding:5px 11px;white-space:nowrap}
.syncpill.dirty{color:var(--amber);background:var(--amberTint);border-color:var(--amber)}
#sync-btn{border:1px solid var(--line);border-radius:7px;background:var(--surface);padding:6px 11px;font-size:13px;font-weight:650;cursor:pointer}
#sync-btn:not(:disabled):hover{border-color:var(--accent);color:var(--accent)}#sync-btn:disabled{opacity:.5;cursor:default}
.synclog td:nth-child(1),.synclog td:nth-child(4){white-space:nowrap}

/* ---------- Resource cards: one source per card, everywhere they appear ---------- */
.deck{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:14px;margin:0 0 30px}
.deck.inline{margin:0}
.card{display:flex;flex-direction:column;gap:9px;background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--muted);border-radius:12px;padding:16px 18px;box-shadow:var(--shadow);min-width:0}
.card.watch{border-left-color:var(--accent)}.card.read{border-left-color:var(--green)}.card.run{border-left-color:var(--amber)}
.card.is-done{opacity:.58;background:var(--greenTint)}
.card h3{margin:0;font-size:17px;line-height:1.3;overflow-wrap:anywhere}
.cardhead{display:flex;flex-wrap:wrap;align-items:center;gap:7px}
.kind{font:700 10px/1.4 ui-monospace,Consolas,monospace;letter-spacing:.07em;text-transform:uppercase;padding:3px 8px;border-radius:20px;background:var(--bg);border:1px solid var(--line)}
.kind.watch{background:var(--tint);color:var(--accent);border-color:var(--accent)}
.kind.read{background:var(--greenTint);color:var(--green);border-color:var(--green)}
.kind.run{background:var(--amberTint);color:var(--amber);border-color:var(--amber)}
.mins{font:700 12px ui-monospace,Consolas,monospace}
.wk,.trk{font:11px ui-monospace,Consolas,monospace;color:var(--muted);text-decoration:none}
.wk:hover{color:var(--accent)}.trk.opt{font-style:italic}
.cardbody{margin:0;font-size:13.5px;line-height:1.55;color:var(--muted)}
.card .small{margin:0;font-size:12px}
.cardfoot{display:flex;flex-wrap:wrap;gap:7px;margin-top:auto;padding-top:6px;align-items:center}
.cardfoot .btn,.cardfoot button{font-size:12px;padding:6px 10px}
.cardfoot button.on{background:var(--greenTint);border-color:var(--green);color:var(--green)}
.warn-link{color:var(--amber);font-style:italic}
.stashed .badge{margin-right:4px}
/* Where a card sits in the week's running order, and what has to happen before it */
.stepno{font:700 10px ui-monospace,Consolas,monospace;color:var(--muted);background:var(--bg);border:1px solid var(--line);border-radius:20px;padding:3px 7px}
.trk.day{font-weight:700;color:var(--ink)}
.card .seq{color:var(--muted);line-height:1.5}
.seq .slotname{font-weight:700;color:var(--ink)}
.daytarget{margin:0 0 10px}
.daycards{list-style:decimal;margin:0 0 12px;padding-left:22px;display:flex;flex-direction:column;gap:7px}
.daycards.opt{opacity:.75}
.cardline{padding-left:2px}
.cardline .kind{margin-right:6px}
.cardline-title{font-weight:600;text-decoration:none;border-bottom:1px solid var(--line)}
.cardline-title:hover{color:var(--accent)}
.cardline.is-done{opacity:.6}
.cardline .small{margin-left:6px;color:var(--muted)}
/* Right now: one decision on the screen at a time */
.now-hero h1{font-size:clamp(34px,4.4vw,60px)}
.budgets{align-items:center;gap:8px}.budgets .small{margin-left:8px}
.thecard{padding:0;background:none;border:0;box-shadow:none;margin:0 0 24px}
.thecard .card{border-left-width:6px;padding:26px 28px;box-shadow:0 10px 40px #1b332b14}
.thecard .card h3{font-size:clamp(22px,2.6vw,30px);letter-spacing:-.02em}
.thecard .cardbody{font-size:15.5px;color:var(--ink)}
.thecard .cardfoot{gap:9px;margin-top:14px}
.thecard .cardfoot .btn,.thecard .cardfoot button{font-size:14px;padding:10px 16px}
.cardnav{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
.mentor{margin-top:16px;font-size:14px;color:var(--muted);border-left:3px solid var(--line);padding-left:14px}
.mentor em{color:var(--ink);font-style:italic}
/* Deck filters and search */
.deckfind{display:flex;flex-wrap:wrap;gap:8px;margin:22px 0 4px;max-width:760px}
.deckfind input{flex:1;min-width:240px;font-size:16px;padding:12px 14px}
.fgroup{display:inline-flex;flex-wrap:wrap;align-items:center;gap:5px;margin-right:14px}
.fgroup b{margin-right:2px;text-transform:uppercase;letter-spacing:.06em;font-size:10px}
.filters .btn{font-size:12px;padding:6px 11px}
#weekpick{font-size:12px;padding:6px 8px;max-width:230px}
@media(max-width:700px){.deck{grid-template-columns:1fr}.thecard .card{padding:20px}}
.startnow{border:2px solid var(--accent);background:linear-gradient(180deg,var(--tint),var(--surface) 70%)}
.startnow .filters{margin-bottom:0}
.startnow .btn{font-size:14px;padding:11px 16px}

/* ---------- Sidebar: drag to resize, collapse when the cards need the room ---------- */
.shell{grid-template-columns:var(--sidew,260px) minmax(0,1fr)}
.sidebar{position:relative}
.sidebar-resize{position:absolute;top:0;right:-4px;width:9px;height:100%;cursor:col-resize;z-index:5;touch-action:none}
.sidebar-resize::after{content:"";position:absolute;top:0;left:3px;width:3px;height:100%;background:transparent;transition:background .12s}
.sidebar-resize:hover::after,.sidebar-resize:focus-visible::after,:root[data-resizing] .sidebar-resize::after{background:var(--accent)}
.sidebar-resize:focus-visible{outline:none}
:root[data-resizing]{cursor:col-resize;user-select:none}
:root[data-sidebar="closed"] .shell{grid-template-columns:0 minmax(0,1fr)}
:root[data-sidebar="closed"] .sidebar-resize{display:none}
#sidebar-toggle[aria-expanded="false"]{background:var(--tint);border-color:var(--accent);color:var(--accent)}
/* cards inside the week shell wrap instead of overflowing a narrow column */
.deck{grid-template-columns:repeat(auto-fill,minmax(min(100%,285px),1fr))}
@media(max-width:700px){.shell{grid-template-columns:1fr}.sidebar-resize{display:none}}

/* Sidebar fills the full column height; only its contents stick to the viewport. */
.sidebar{height:auto;min-height:100%;align-self:stretch;position:relative;overflow:visible;padding:0}
.sidebar-inner{position:sticky;top:0;max-height:100vh;overflow-y:auto;overflow-x:hidden;padding:30px 20px;display:flex;flex-direction:column}
.sidebar-inner .sidebar-footer{margin-top:auto}
.sidebar-resize{top:0;height:100%}
:root[data-sidebar="closed"] .sidebar{min-height:0}
@media(max-width:700px){.sidebar{min-height:0}.sidebar-inner{position:static;max-height:none;padding:16px 18px 0}}

/* ---------- Consultant ---------- */
.askform{margin:22px 0 6px;max-width:820px}
.askform textarea{font-size:16px;min-height:74px}
.askbar{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:8px}
.askbar .btn{font-size:15px;padding:11px 18px}
.answer{font-size:15.5px;line-height:1.7}
.answer p:last-child{margin-bottom:0}
.answer strong{color:var(--ink)}
details.qa{border-left:3px solid var(--line)}
details.qa>summary{font-weight:650}
details.qa[open]{border-left-color:var(--accent)}
#answer-q{font-size:clamp(19px,2.2vw,25px);line-height:1.3}
