:root{
  --paper:#f3efe6;
  --paper-2:#ebe5d8;
  --card:#fbf9f4;
  --ink:#1b1a17;
  --ink-2:#4a463e;
  --ink-3:#7d776b;
  --rule:#d6cebd;
  --rule-2:#bfb5a0;
  --signal:#e8501a;
  --signal-ink:#b23a0f;
  --green:#1f4d3a;
  --blue:#21406b;
  --sans:"Archivo",system-ui,-apple-system,"Segoe UI",sans-serif;
  --narrow:"Archivo Narrow","Arial Narrow",var(--sans);
  --mono:"IBM Plex Mono",ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;
  --serif:"Source Serif 4",Georgia,"Times New Roman",serif;
}
*{box-sizing:border-box}
html,body{margin:0;height:100%}
body{background:var(--paper);color:var(--ink);font:15px/1.45 var(--sans);-webkit-font-smoothing:antialiased}
a{color:inherit}
button,input,select,textarea{font:inherit;color:inherit}
h1,h2,h3{margin:0;font-weight:800;letter-spacing:-.01em}
.mono{font-family:var(--mono)}
.muted{color:var(--ink-3)}
.hidden{display:none!important}

/* ---------- shell ---------- */
.shell{display:grid;grid-template-columns:232px 1fr;min-height:100vh}
.rail{position:sticky;top:0;height:100vh;background:var(--ink);color:var(--paper);display:flex;flex-direction:column;padding:22px 18px;gap:26px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none}
.brand-mark{display:grid;gap:3px;width:22px}
.brand-mark i{display:block;height:3px;background:var(--paper)}
.brand-mark i:first-child{background:var(--signal);height:4px}
.brand-mark i:last-child{width:62%}
.brand-name{font:800 22px/1 var(--sans);letter-spacing:-.02em}
.nav{display:flex;flex-direction:column;border-top:1px solid #3a3731}
.nav a{display:flex;align-items:baseline;gap:12px;padding:11px 2px;border-bottom:1px solid #3a3731;text-decoration:none;font:600 15px var(--sans);color:#cfc8b8}
.nav a:hover{color:var(--paper)}
.nav a.active{color:var(--paper)}
.nav a.active .nav-num{color:var(--signal)}
.nav-num{font:500 11px var(--mono);color:#77715f;width:18px}
.rail-add{margin-top:auto}
.rail-foot{font-size:12px;color:#98917f;margin:0;line-height:1.5}
.rail-foot a{color:#cfc8b8}

.view{padding:34px 44px 80px;min-width:0;outline:none}
.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;border-bottom:2px solid var(--ink);padding-bottom:14px;margin-bottom:26px;flex-wrap:wrap}
.eyebrow{font:500 11px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);margin-bottom:10px}
.page-head h1{font-size:40px;line-height:1}
.head-actions{display:flex;gap:8px;flex-wrap:wrap}

/* ---------- buttons / inputs ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1.5px solid var(--ink);background:transparent;padding:8px 14px;font:600 13.5px var(--sans);cursor:pointer;border-radius:0;text-decoration:none;white-space:nowrap}
.btn:hover{background:var(--ink);color:var(--paper)}
.btn-ink{background:var(--ink);color:var(--paper)}
.btn-ink:hover{background:var(--signal);border-color:var(--signal);color:#fff}
.rail .btn-ink{background:var(--signal);border-color:var(--signal);color:#fff}
.rail .btn-ink:hover{background:var(--paper);border-color:var(--paper);color:var(--ink)}
.btn-signal{background:var(--signal);border-color:var(--signal);color:#fff}
.btn-signal:hover{background:var(--ink);border-color:var(--ink)}
.btn-sm{padding:5px 10px;font-size:12.5px}
.btn-ghost{border-color:transparent;color:var(--ink-2);padding-left:6px;padding-right:6px}
.btn-ghost:hover{background:transparent;color:var(--signal);border-color:transparent}
.btn-danger{border-color:var(--signal-ink);color:var(--signal-ink)}
.btn-danger:hover{background:var(--signal-ink);color:#fff;border-color:var(--signal-ink)}
.link{background:none;border:0;padding:0;color:var(--signal-ink);text-decoration:underline;text-underline-offset:2px;cursor:pointer;font-weight:600}

label.field{display:flex;flex-direction:column;gap:5px;min-width:0}
.field>span{font:500 10.5px/1 var(--mono);letter-spacing:.07em;text-transform:uppercase;color:var(--ink-3)}
.input,input[type=text].input,select.input,textarea.input{width:100%;background:var(--card);border:1px solid var(--rule-2);border-radius:0;padding:8px 10px;outline:none;min-width:0}
.input:focus{border-color:var(--ink);box-shadow:inset 0 -2px 0 var(--signal)}
textarea.input{resize:vertical;min-height:90px;line-height:1.5}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px}

/* ---------- stage tags ---------- */
.stage-tag{display:inline-flex;align-items:center;gap:6px;font:500 11px/1 var(--mono);text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}
.stage-tag::before{content:"";width:8px;height:8px;background:var(--c,var(--ink-3))}
.s-saved{--c:#9a927f}.s-applied{--c:var(--blue)}.s-screen{--c:#7a5aa6}.s-interview{--c:var(--signal)}.s-offer{--c:var(--green)}.s-closed{--c:#3b3934}

/* ---------- today ---------- */
.stats{display:grid;grid-template-columns:repeat(4,1fr);border:1.5px solid var(--ink);margin-bottom:34px;background:var(--card)}
.stat{padding:16px 18px;border-right:1px solid var(--rule)}
.stat:last-child{border-right:0}
.stat-num{font:500 38px/1 var(--mono);letter-spacing:-.03em}
.stat-label{font:600 12.5px var(--sans);color:var(--ink-2);margin-top:8px}
.stat-sub{font:400 11.5px var(--mono);color:var(--ink-3);margin-top:3px}
.today-cols{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:40px}
.section-title{display:flex;justify-content:space-between;align-items:baseline;font:700 13px var(--narrow);text-transform:uppercase;letter-spacing:.08em;border-bottom:1px solid var(--ink);padding-bottom:7px;margin:0 0 4px}
.section-title .count{font:500 12px var(--mono);color:var(--ink-3)}
.section{margin-bottom:34px}
.duelist{list-style:none;margin:0;padding:0}
.duelist li{display:grid;grid-template-columns:88px 1fr auto;gap:14px;align-items:center;padding:11px 0;border-bottom:1px solid var(--rule);cursor:pointer}
.duelist li:hover .due-what{text-decoration:underline}
.due-when{font:500 12px var(--mono);color:var(--ink-2)}
.due-when.late{color:var(--signal-ink);font-weight:500}
.due-when.late::before{content:"● ";color:var(--signal)}
.due-what{font-weight:600}
.due-what small{display:block;font-weight:400;color:var(--ink-3);font-size:13px}
.empty-line{padding:14px 0;color:var(--ink-3);border-bottom:1px solid var(--rule);font-size:14px}
.funnel{display:flex;flex-direction:column;gap:0;margin-top:6px}
.funnel-row{display:grid;grid-template-columns:110px 1fr 34px;gap:10px;align-items:center;padding:7px 0;border-bottom:1px dashed var(--rule);cursor:pointer}
.funnel-row:hover .stage-tag{text-decoration:underline}
.funnel-bar{height:14px;background:var(--paper-2);position:relative}
.funnel-bar i{position:absolute;inset:0 auto 0 0;background:var(--c,var(--ink))}
.funnel-n{font:500 13px var(--mono);text-align:right}
.activity{list-style:none;margin:0;padding:0}
.activity li{padding:9px 0;border-bottom:1px solid var(--rule);font-size:14px;display:grid;grid-template-columns:62px 1fr;gap:10px;cursor:pointer}
.activity .a-date{font:500 11.5px var(--mono);color:var(--ink-3);padding-top:2px}
.activity b{font-weight:600}

.welcome{border:1.5px solid var(--ink);background:var(--card);padding:34px 36px;display:grid;grid-template-columns:1.2fr 1fr;gap:36px;margin-bottom:34px}
.welcome h2{font-size:30px;line-height:1.05;margin-bottom:12px}
.welcome p{margin:0 0 18px;color:var(--ink-2);max-width:52ch}
.welcome ol{margin:0;padding:0;list-style:none;counter-reset:w;border-left:1px solid var(--rule)}
.welcome ol li{counter-increment:w;padding:6px 0 14px 18px;position:relative;font-size:14px;color:var(--ink-2)}
.welcome ol li b{display:block;color:var(--ink);font-size:15px}
.welcome ol li::before{content:counter(w,decimal-leading-zero);position:absolute;left:-14px;top:5px;background:var(--card);font:500 11px var(--mono);color:var(--signal);padding:2px 0}

/* ---------- pipeline ---------- */
.board{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(176px,1fr);gap:0;border:1.5px solid var(--ink);overflow-x:auto;background:var(--card);min-height:60vh}
.col{border-right:1px solid var(--rule);display:flex;flex-direction:column;min-width:0}
.col:last-child{border-right:0}
.col-head{padding:12px 12px 10px;border-bottom:1.5px solid var(--ink);display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;background:var(--card)}
.col-head .num{font:500 11px var(--mono);color:var(--ink-3)}
.col-body{padding:10px;display:flex;flex-direction:column;gap:8px;flex:1;transition:background .12s}
.col-body.drop{background:repeating-linear-gradient(-45deg,transparent 0 8px,rgba(232,80,26,.07) 8px 16px)}
.col.col-closed{background:var(--paper)}
.card{background:#fff;border:1px solid var(--rule-2);border-top:3px solid var(--c,var(--ink));padding:10px 11px 9px;cursor:grab;user-select:none}
.card:hover{border-color:var(--ink);border-top-color:var(--c,var(--ink))}
.card.dragging{opacity:.4}
.card-co{font:700 15px/1.2 var(--sans)}
.card-role{font-size:13px;color:var(--ink-2);margin-top:2px}
.card-meta{display:flex;justify-content:space-between;gap:8px;margin-top:9px;font:400 11px var(--mono);color:var(--ink-3)}
.card-meta .late{color:var(--signal-ink)}
.card-flag{font:500 10.5px var(--mono);text-transform:uppercase;letter-spacing:.04em;color:var(--ink-3);margin-top:6px}
.heat{letter-spacing:1px;color:var(--signal)}
.heat i{font-style:normal;color:var(--rule-2)}
.col-add{border:1px dashed var(--rule-2);background:transparent;padding:8px;font:500 12px var(--mono);color:var(--ink-3);cursor:pointer;text-align:left}
.col-add:hover{border-color:var(--ink);color:var(--ink)}
.board-hint{font:400 12px var(--mono);color:var(--ink-3);margin-top:10px}

/* ---------- list ---------- */
.toolbar{display:flex;gap:10px;margin-bottom:14px;flex-wrap:wrap;align-items:center}
.toolbar .input{width:auto}
.toolbar .search{flex:1;min-width:200px}
.table-wrap{border:1.5px solid var(--ink);background:var(--card);overflow-x:auto}
table.ledger{width:100%;border-collapse:collapse;font-size:14px}
.ledger th{text-align:left;font:500 10.5px var(--mono);letter-spacing:.07em;text-transform:uppercase;color:var(--ink-3);padding:10px 12px;border-bottom:1.5px solid var(--ink);white-space:nowrap;cursor:pointer;user-select:none}
.ledger th.sorted{color:var(--ink)}
.ledger td{padding:11px 12px;border-bottom:1px solid var(--rule);vertical-align:top}
.ledger tbody tr{cursor:pointer}
.ledger tbody tr:hover{background:#fff}
.ledger td.co{font-weight:700}
.ledger td.dt{font:400 12.5px var(--mono);white-space:nowrap;color:var(--ink-2)}
.ledger td.dt.late{color:var(--signal-ink)}

/* ---------- drawer ---------- */
.drawer,.modal{position:fixed;inset:0;z-index:40;pointer-events:none}
.drawer-scrim,.modal-scrim{position:absolute;inset:0;background:rgba(27,26,23,.35);opacity:0;transition:opacity .18s}
.drawer.open,.modal.open{pointer-events:auto}
.drawer.open .drawer-scrim,.modal.open .modal-scrim{opacity:1}
.drawer-panel{position:absolute;top:0;right:0;bottom:0;width:min(640px,100%);background:var(--paper);border-left:2px solid var(--ink);transform:translateX(100%);transition:transform .22s ease;overflow-y:auto;display:flex;flex-direction:column}
.drawer.open .drawer-panel{transform:none}
.d-head{position:sticky;top:0;z-index:2;background:var(--paper);padding:20px 26px 0;border-bottom:1.5px solid var(--ink)}
.d-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.d-title{font:800 28px/1.05 var(--sans);border:0;background:transparent;width:100%;padding:0;outline:none}
.d-role{font:500 17px var(--sans);border:0;background:transparent;width:100%;padding:2px 0 0;outline:none;color:var(--ink-2)}
.d-title:focus,.d-role:focus{box-shadow:inset 0 -2px 0 var(--signal)}
.stepper{display:flex;margin:16px -26px 0;border-top:1px solid var(--rule);overflow-x:auto}
.step{flex:1;border:0;border-right:1px solid var(--rule);background:transparent;padding:10px 6px 9px;font:600 11px var(--narrow);text-transform:uppercase;letter-spacing:.06em;cursor:pointer;color:var(--ink-3);position:relative;white-space:nowrap;min-width:78px}
.step:last-child{border-right:0}
.step:hover{color:var(--ink)}
.step.done{color:var(--ink-2)}
.step.done::after,.step.current::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--ink-3)}
.step.current{color:var(--ink);background:var(--card)}
.step.current::after{background:var(--signal);height:4px}
.step.closed-on{color:#fff;background:var(--ink)}
.d-body{padding:22px 26px 40px;display:flex;flex-direction:column;gap:26px}
.d-section h3{font:700 12px var(--narrow);text-transform:uppercase;letter-spacing:.08em;border-bottom:1px solid var(--ink);padding-bottom:6px;margin-bottom:12px;display:flex;justify-content:space-between;align-items:baseline}
.closed-box{background:var(--ink);color:var(--paper);padding:12px 14px;display:flex;gap:12px;align-items:center;flex-wrap:wrap;font-size:14px}
.closed-box select{background:var(--ink);color:var(--paper);border:1px solid #5c574c;padding:5px 8px}
.heat-pick{display:flex;gap:3px}
.heat-pick button{width:26px;height:26px;border:1px solid var(--rule-2);background:var(--card);cursor:pointer;font:500 11px var(--mono);color:var(--ink-3);padding:0}
.heat-pick button.on{background:var(--signal);border-color:var(--signal);color:#fff}
.contact{display:grid;grid-template-columns:1fr 1fr 1fr 1fr 28px;gap:6px;margin-bottom:6px}
.contact .input{padding:6px 8px;font-size:13.5px}
.x{border:0;background:transparent;cursor:pointer;color:var(--ink-3);font-size:18px;line-height:1;padding:0}
.x:hover{color:var(--signal)}
.log-add{display:grid;grid-template-columns:130px 140px 1fr auto;gap:6px;margin-bottom:12px}
.log-add .input{padding:6px 8px;font-size:13.5px}
.timeline{list-style:none;margin:0;padding:0;border-left:2px solid var(--ink);margin-left:6px}
.timeline li{position:relative;padding:0 0 14px 18px}
.timeline li::before{content:"";position:absolute;left:-6px;top:4px;width:10px;height:10px;background:var(--paper);border:2px solid var(--ink)}
.timeline li.t-interview::before,.timeline li.t-offer::before{background:var(--signal);border-color:var(--signal)}
.timeline li.t-stage::before{background:var(--ink)}
.t-meta{font:500 11px var(--mono);color:var(--ink-3);text-transform:uppercase;letter-spacing:.04em;display:flex;gap:10px;align-items:center}
.t-text{font-size:14px;margin-top:2px;white-space:pre-wrap}
.t-future{color:var(--signal-ink)}
.d-foot{display:flex;justify-content:space-between;align-items:center;font:400 11.5px var(--mono);color:var(--ink-3);border-top:1px solid var(--rule);padding-top:14px}

/* ---------- modal ---------- */
.modal-panel{position:absolute;left:50%;top:12vh;transform:translate(-50%,10px);width:min(520px,calc(100% - 28px));background:var(--paper);border:2px solid var(--ink);box-shadow:8px 8px 0 var(--ink);padding:24px 26px;opacity:0;transition:all .16s}
.modal.open .modal-panel{opacity:1;transform:translate(-50%,0)}
.modal-panel h2{font-size:24px;margin-bottom:16px}
.modal-panel form{display:flex;flex-direction:column;gap:14px}
.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:6px}

/* ---------- resumes ---------- */
.res-layout{display:grid;grid-template-columns:270px minmax(0,1fr);gap:30px;align-items:start}
.res-list{border:1.5px solid var(--ink);background:var(--card)}
.res-item{display:block;padding:12px 14px;border-bottom:1px solid var(--rule);text-decoration:none;position:relative}
.res-item:last-child{border-bottom:0}
.res-item:hover{background:#fff}
.res-item.active{background:var(--ink);color:var(--paper)}
.res-item.active .res-sub{color:#b9b2a1}
.res-name{font-weight:700;font-size:14.5px;display:block;padding-right:40px}
.res-sub{font:400 11px var(--mono);color:var(--ink-3);display:block;margin-top:3px}
.res-kind{position:absolute;right:12px;top:13px;font:500 9.5px var(--mono);letter-spacing:.06em;border:1px solid currentColor;padding:2px 4px;opacity:.75}
.res-empty{padding:18px 14px;color:var(--ink-3);font-size:14px}
.res-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap}
.res-head .input{font:700 20px var(--sans);max-width:420px;border-color:transparent;background:transparent;padding-left:0}
.res-head .input:hover{border-color:var(--rule-2)}
.res-head .input:focus{padding-left:10px;background:var(--card)}
.used-in{font-size:13px;color:var(--ink-2);margin:-6px 0 16px}
.file-card{border:1.5px solid var(--ink);background:var(--card)}
.file-meta{display:flex;gap:28px;padding:14px 16px;border-bottom:1px solid var(--rule);flex-wrap:wrap}
.file-meta div span{display:block;font:500 10.5px var(--mono);text-transform:uppercase;letter-spacing:.07em;color:var(--ink-3)}
.file-meta div b{font:500 14px var(--mono)}
.file-preview{height:72vh;width:100%;border:0;background:#fff;display:block}
.file-nopreview{padding:40px 20px;text-align:center;color:var(--ink-3)}
.editor{display:grid;grid-template-columns:minmax(330px,1fr) minmax(0,1.15fr);gap:24px;align-items:start}
.ed-form{display:flex;flex-direction:column;gap:22px}
.ed-block{border-top:1.5px solid var(--ink);padding-top:10px;display:flex;flex-direction:column;gap:10px}
.ed-block>h3{font:700 12px var(--narrow);text-transform:uppercase;letter-spacing:.08em;display:flex;justify-content:space-between;align-items:center}
.ed-entry{border:1px solid var(--rule-2);background:var(--card);padding:12px;display:flex;flex-direction:column;gap:9px;position:relative}
.ed-entry .x{position:absolute;right:8px;top:6px}
.ed-entry-tools{display:flex;gap:4px;position:absolute;right:30px;top:6px}
.ed-entry-tools button{border:0;background:none;cursor:pointer;color:var(--ink-3);font-size:13px;padding:0 3px}
.ed-entry-tools button:hover{color:var(--ink)}
.ed-hint{font:400 11.5px var(--mono);color:var(--ink-3)}
.preview-wrap{position:sticky;top:20px;background:var(--paper-2);border:1px solid var(--rule-2);padding:18px;max-height:calc(100vh - 40px);overflow:auto}
.preview-tools{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;gap:8px;flex-wrap:wrap}
.seg{display:inline-flex;border:1.5px solid var(--ink)}
.seg button{border:0;background:transparent;padding:5px 10px;font:600 12px var(--sans);cursor:pointer}
.seg button+button{border-left:1.5px solid var(--ink)}
.seg button.on{background:var(--ink);color:var(--paper)}

/* the resume page itself */
.sheet{background:#fff;width:100%;aspect-ratio:8.5/11;box-shadow:0 1px 0 var(--rule-2),0 10px 30px -18px rgba(0,0,0,.4);container-type:inline-size}
.rz{font-size:1.72cqw;line-height:1.38;color:#111;padding:6.5cqw 7cqw}
.rz h1{font-size:4.2cqw;font-weight:700;letter-spacing:-.01em;line-height:1.05}
.rz .rz-headline{font-size:1.95cqw;margin-top:.5cqw;color:#333}
.rz .rz-contact{margin-top:1cqw;font-size:1.55cqw;color:#333;display:flex;flex-wrap:wrap;gap:0 1.6cqw}
.rz section{margin-top:2.6cqw}
.rz h2{font-size:1.5cqw;letter-spacing:.14em;text-transform:uppercase;font-weight:700;padding-bottom:.6cqw;margin-bottom:1.3cqw}
.rz .rz-job{margin-bottom:1.6cqw;break-inside:avoid}
.rz .rz-row{display:flex;justify-content:space-between;gap:2cqw}
.rz .rz-row b{font-weight:700}
.rz .rz-dates{white-space:nowrap;color:#333}
.rz .rz-sub{font-style:italic;color:#333}
.rz ul{margin:.6cqw 0 0;padding-left:2.4cqw}
.rz li{margin-bottom:.3cqw}
.rz p{margin:0}
.rz-placeholder{color:#aaa}
.rz.classic{font-family:var(--serif)}
.rz.classic header{text-align:center;border-bottom:.25cqw solid #111;padding-bottom:1.8cqw}
.rz.classic .rz-contact{justify-content:center}
.rz.classic h2{border-bottom:.12cqw solid #111}
.rz.sharp{font-family:var(--sans)}
.rz.sharp header{border-left:1cqw solid var(--signal);padding-left:2.2cqw}
.rz.sharp h1{font-weight:800;letter-spacing:-.025em}
.rz.sharp h2{color:var(--signal-ink);font-family:var(--mono);letter-spacing:.08em;font-weight:500;border-bottom:.12cqw solid #ccc}
.rz.sharp .rz-sub{font-style:normal;color:#555}
.rz.plain{font-family:Arial,"Helvetica Neue",Helvetica,sans-serif}
.rz.plain h1{font-size:3.6cqw}
.rz.plain h2{font-size:1.6cqw;letter-spacing:.04em;border-bottom:.12cqw solid #111}
.rz.plain .rz-sub{font-style:normal}
.rz.compact{font-family:var(--sans);font-size:1.6cqw;line-height:1.3;padding:5cqw 6cqw}
.rz.compact header{display:flex;flex-wrap:wrap;align-items:baseline;gap:.4cqw 2cqw;border-bottom:.25cqw solid #111;padding-bottom:1.2cqw}
.rz.compact h1{font-size:3.2cqw}
.rz.compact .rz-contact{margin-top:0;flex-basis:100%}
.rz.compact section{margin-top:1.8cqw}
.rz.compact h2{font-size:1.4cqw;margin-bottom:.8cqw;padding-bottom:0}
.rz.compact .rz-job{margin-bottom:1.1cqw}
.rz.executive{font-family:Georgia,var(--serif)}
.rz.executive h1{font-size:4.6cqw;font-weight:400;letter-spacing:.02em}
.rz.executive .rz-headline{font-style:italic}
.rz.executive header{border-bottom:.5cqw double #111;padding-bottom:1.6cqw}
.rz.executive h2{font-variant:small-caps;text-transform:none;font-size:2cqw;letter-spacing:.06em;font-weight:600;color:#1f3a5a;border-bottom:.12cqw solid #9aa7b5}

/* ---------- backup ---------- */
.backup-grid{display:grid;grid-template-columns:repeat(2,1fr);border:1.5px solid var(--ink);background:var(--card)}
.backup-grid>div{padding:22px;border-right:1px solid var(--rule);display:flex;flex-direction:column;gap:12px}
.backup-grid>div:nth-child(2n){border-right:0}
.backup-grid>div:nth-child(n+3){border-top:1px solid var(--rule)}
.backup-grid h3{font-size:18px}
.backup-grid p{margin:0;color:var(--ink-2);font-size:14px;flex:1}
.facts{margin-top:30px;max-width:720px}
.facts dt{font:700 14px var(--sans);margin-top:16px}
.facts dd{margin:4px 0 0;color:var(--ink-2);font-size:14px}


/* ---------- job feed ---------- */
.nav-badge{margin-left:auto;font:500 10.5px/1 var(--mono);background:var(--signal);color:#fff;padding:3px 5px}
.feed-status{font:500 12px var(--mono);color:var(--ink-3);align-self:center}
.feed-status.busy::before{content:"";display:inline-block;width:8px;height:8px;background:var(--signal);margin-right:7px;animation:blink 1s steps(2) infinite}
@keyframes blink{50%{opacity:0}}
.feed-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:36px;align-items:start}
.feed-layout .seg button .mono{font-size:11px;opacity:.7;margin-left:3px}
.wire{list-style:none;margin:0;padding:0;border-top:1.5px solid var(--ink)}
.fj{display:grid;grid-template-columns:64px minmax(0,1fr) 64px auto;gap:16px;align-items:start;padding:14px 0 13px;border-bottom:1px solid var(--rule)}
.fj.is-new{background:linear-gradient(90deg,rgba(232,80,26,.07),transparent 60%)}
.fj-when{font:500 11.5px var(--mono);color:var(--ink-3);display:flex;flex-direction:column;gap:5px;padding:3px 0 0 4px}
.fj-new{color:#fff;background:var(--signal);align-self:flex-start;padding:2px 5px;font-size:10px;letter-spacing:.06em;text-transform:uppercase}
.fj-title{font:700 16.5px/1.25 var(--sans);text-decoration:none}
.fj-title:hover{text-decoration:underline;text-underline-offset:3px}
.fj-title span{font-weight:400;color:var(--ink-3);font-size:13px}
.fj-co{font-size:13.5px;color:var(--ink-2);margin-top:3px}
.fj-co b{color:var(--ink);font-weight:600}
.fj-pay{font-family:var(--mono);font-size:12.5px;color:var(--green)}
.fj-meta{font:400 11.5px var(--mono);color:var(--ink-3);margin-top:6px}
.fj-meta a{color:var(--ink-2)}
.fj-score{text-align:right;border-left:1px solid var(--rule);padding-left:10px}
.fj-score b{display:block;font:500 24px/1 var(--mono);color:var(--ink-3)}
.fj-score span{font:500 9.5px var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3)}
.fj-score.mid b{color:var(--ink)}
.fj-score.hi b{color:var(--signal-ink)}
.fj-acts{display:flex;flex-direction:column;gap:4px;align-items:stretch;min-width:140px}
.feed-more{margin-top:14px}
.feed-side .section{margin-bottom:26px}
.side-list{list-style:none;margin:0;padding:0}
.side-list li{display:grid;grid-template-columns:1fr auto auto;gap:8px;align-items:start;padding:9px 0;border-bottom:1px solid var(--rule);font-size:14px}
.side-list b{font-weight:600;display:block;line-height:1.3}
.side-list small{display:block;font:400 11.5px var(--mono);color:var(--ink-3);margin-top:2px}
.side-list small .late{color:var(--signal-ink)}
.side-n{font:500 12px var(--mono);color:var(--ink-2);padding-top:2px}
.side-tools{display:flex;gap:8px;align-items:center}
.side-tools .link{font:500 11.5px var(--mono)}
.watch-add{display:grid;grid-template-columns:1fr auto;gap:6px;margin-top:10px}
.watch-add .input{padding:6px 8px;font-size:13.5px}
.side-note{font-size:12.5px;color:var(--ink-3);margin:8px 0 0;line-height:1.45}
.check{display:flex;align-items:center;gap:8px;padding:6px 0;font-size:14px;border-bottom:1px dashed var(--rule)}
.check input{accent-color:var(--signal)}
.feed-new-n{color:var(--signal-ink)}


/* ---------- insights ---------- */
.insight-table td.num,.insight-table th.num{text-align:right;font-family:var(--mono);white-space:nowrap}
.insight-table .rate{min-width:130px}
.mini{display:inline-block;width:60px;height:8px;background:var(--paper-2);margin-right:8px;vertical-align:middle;position:relative}
.mini i{position:absolute;inset:0 auto 0 0;background:var(--signal)}
.early{font:500 10.5px var(--mono);color:var(--ink-3);text-transform:uppercase;letter-spacing:.04em;margin-left:6px}
.takeaways{margin:10px 0 0;padding:0;list-style:none;counter-reset:tk}
.takeaways li{counter-increment:tk;display:grid;grid-template-columns:34px 1fr;padding:9px 0;border-bottom:1px dashed var(--rule);font:400 16px/1.45 var(--serif)}
.takeaways li::before{content:counter(tk,decimal-leading-zero);font:500 12px var(--mono);color:var(--signal-ink);padding-top:4px}
.funnel-row.static{cursor:default;grid-template-columns:110px 1fr 34px}
.funnel-l{font:600 13px var(--sans)}
.weeks{display:grid;grid-template-columns:repeat(8,1fr);gap:6px;height:180px;align-items:end;margin-top:12px;border-bottom:1.5px solid var(--ink)}
.wk{display:flex;flex-direction:column;justify-content:flex-end;align-items:stretch;height:100%;position:relative}
.wk i{display:block;background:var(--ink);min-height:2px}
.wk:last-child i{background:var(--signal)}
.wk-n{font:500 12px var(--mono);text-align:center;margin-bottom:3px}
.wk-l{position:absolute;bottom:-20px;left:0;right:0;text-align:center;font:400 10.5px var(--mono);color:var(--ink-3);white-space:nowrap}


/* ---------- interview prep ---------- */
.prep-next{font:500 12.5px var(--mono);color:var(--signal-ink);margin:-4px 0 12px}
.qgroup{margin-top:16px}
.qgroup-h{font:600 10.5px var(--mono);text-transform:uppercase;letter-spacing:.07em;color:var(--ink-3);margin-bottom:2px}
.q{display:grid;grid-template-columns:20px 1fr 24px;gap:8px;align-items:start;padding:6px 0;border-bottom:1px dashed var(--rule);font-size:14px;cursor:pointer}
.q input{accent-color:var(--signal);margin:3px 0 0}
.q.done span{color:var(--ink-3);text-decoration:line-through;text-decoration-color:var(--rule-2)}
.prepq-add{display:grid;grid-template-columns:1fr auto;gap:6px;margin-top:8px}
.prepq-add .input,#prep-story-add{padding:6px 8px;font-size:13.5px}
.story-links{list-style:none;margin:0 0 8px;padding:0}
.story-links li{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:6px 0;border-bottom:1px solid var(--rule);font-size:14px}
.prep-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}
.prep-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:36px;align-items:start}
.prep-prog{font:500 11.5px var(--mono);color:var(--ink-3);white-space:nowrap}
.story{border-top:1.5px solid var(--ink);padding:14px 0 20px}
.section-title+.story{border-top:0}
.story-head{display:grid;grid-template-columns:1fr 220px 28px;gap:10px;align-items:center}
.story-title{font:700 19px var(--sans);color:var(--ink);border:0;background:transparent;padding:4px 0;border-bottom:1px dashed var(--rule-2);width:100%;outline:0}
.story-title:focus{border-bottom-color:var(--signal)}
.star{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px;margin-top:12px}
.star textarea{min-height:76px;font-size:14px}
.story-used{font:400 11.5px var(--mono);color:var(--ink-3);margin-top:10px}
.qbank{list-style:none;padding:0;margin:0}
.qbank li{padding:8px 0;border-bottom:1px dashed var(--rule);font:400 15px/1.4 var(--serif)}
.star-help{margin:6px 0 0}
.star-help dt{font:600 12px var(--mono);color:var(--signal-ink);margin-top:10px}
.star-help dd{margin:2px 0 0;font-size:14px;color:var(--ink-2)}
button.link{background:none;border:0;padding:0;font:inherit;cursor:pointer}


/* ---------- offers ---------- */
.offer-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.offer-grid .input,.offer-table td .input{padding:6px 8px;font-size:14px;width:100%}
.field>span i,.offer-table th i{font-style:normal;color:var(--ink-3);font-weight:400}
.offer-total{display:flex;align-items:baseline;gap:12px;margin-top:14px;padding-top:10px;border-top:1px dashed var(--rule-2);flex-wrap:wrap}
.offer-total span{font:600 10.5px var(--mono);text-transform:uppercase;letter-spacing:.07em;color:var(--ink-3)}
.offer-total b{font:500 26px var(--mono)}
.offer-total small{font:400 12px var(--mono);color:var(--ink-3)}
.offer-total em{font-style:normal;color:var(--ink)}
.offer-table th[scope=row]{text-align:left;font:600 13.5px var(--sans);text-transform:none;letter-spacing:0;color:var(--ink);white-space:nowrap;width:230px}
.offer-table thead th{vertical-align:top;text-align:left;min-width:200px;border-top:5px solid transparent;text-transform:none;letter-spacing:0}
.offer-table thead th.best{border-top-color:var(--signal)}
.offer-table thead th.best::after{content:"Highest yearly total";display:block;font:500 10.5px var(--mono);color:var(--signal-ink);text-transform:uppercase;letter-spacing:.05em;margin-top:6px}
.offer-table .offer-co{font:700 17px var(--sans);display:block;text-align:left;color:var(--ink);text-decoration:none}
.offer-table .offer-co:hover{text-decoration:underline}
.offer-table thead small{display:block;font:400 12.5px var(--sans);color:var(--ink-3);margin:2px 0 6px}
.offer-base{display:grid;grid-template-columns:1fr 24px;gap:4px;align-items:center}
.offer-table .offer-co-in{font:700 15px var(--sans);padding:4px 6px}
.offer-table td.num{font-family:var(--mono);font-size:14px}
.offer-table tr.total td,.offer-table tr.total th{font:600 18px var(--mono);background:var(--paper-2)}
.offer-table tr.total th{font:700 14px var(--sans)}
.offer-sep td{padding:0;border-bottom:1.5px solid var(--ink)}


/* ---------- calendar ---------- */
.cal-tools{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0 6px}
.cal-tools .btn.on{border-color:var(--green);color:var(--green)}
.t-cal{background:none;border:0;padding:0;font:500 11px var(--mono);color:var(--signal-ink);text-decoration:underline;cursor:pointer}
.cal-opts{display:flex;flex-direction:column;gap:8px}
.cal-opts .btn{justify-content:center;text-align:center}

.csv-map{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px;max-height:52vh;overflow:auto}
.csv-map .input{padding:6px 8px;font-size:13.5px}

/* ---------- goals ---------- */
.goal{margin:12px 0 14px}
.goal-row{display:flex;justify-content:space-between;align-items:baseline;font-size:14px;gap:10px}
.goal-n{font:400 12px var(--mono);color:var(--ink-3);white-space:nowrap}
.goal-n b{font:600 20px var(--mono);color:var(--ink)}
.goal-in{width:2.6em;font:500 13px var(--mono);color:var(--ink);border:0;border-bottom:1px dashed var(--ink-3);background:transparent;text-align:center;padding:0 0 1px;-moz-appearance:textfield}
.goal-in::-webkit-inner-spin-button{display:none}
.goal-bar{height:8px;background:var(--paper-2);margin-top:6px}
.goal-bar i{display:block;height:100%;background:var(--ink)}
.goal-bar i.met{background:var(--green)}
.week-days{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-top:6px}
.week-days span{font:500 11px var(--mono);text-align:center;padding:6px 0;border:1px solid var(--rule);color:var(--ink-3)}
.week-days span.on{background:var(--signal);border-color:var(--signal);color:#fff}
.week-days span.today{outline:1.5px solid var(--ink);outline-offset:1px}

/* ---------- toast ---------- */
.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,20px);background:var(--ink);color:var(--paper);padding:10px 16px;font:500 13px var(--mono);opacity:0;transition:all .2s;z-index:60;pointer-events:none;border-left:4px solid var(--signal)}
.toast.show{opacity:1;transform:translate(-50%,0)}

.print-root{display:none}

/* ---------- responsive ---------- */
@media (max-width:1100px){
  .today-cols,.editor,.feed-layout,.prep-layout{grid-template-columns:1fr}
  .preview-wrap{position:static;max-height:none}
  .res-layout{grid-template-columns:1fr}
}
@media (max-width:820px){
  .shell{grid-template-columns:minmax(0,1fr)}
  .rail,.nav{min-width:0}
  .rail{position:sticky;height:auto;flex-direction:row;flex-wrap:wrap;align-items:center;padding:12px 14px;gap:12px;z-index:20}
  .nav{flex-direction:row;border-top:0;overflow-x:auto;order:3;width:100%}
  .nav a{border-bottom:0;padding:6px 12px 6px 0;white-space:nowrap}
  .nav-num{display:none}
  .rail-add{margin:0 0 0 auto;padding:6px 10px}
  .rail-foot{display:none}
  .view{padding:22px 16px 60px}
  .page-head h1{font-size:30px}
  .stats{grid-template-columns:1fr 1fr}
  .stat:nth-child(2){border-right:0}
  .stat:nth-child(-n+2){border-bottom:1px solid var(--rule)}
  .welcome{grid-template-columns:1fr;padding:24px}
  .grid-3{grid-template-columns:1fr 1fr}
  .contact{grid-template-columns:1fr 1fr 28px}
  .log-add{grid-template-columns:1fr 1fr}
  .backup-grid{grid-template-columns:1fr}
  .fj{grid-template-columns:minmax(0,1fr) 56px;gap:8px 12px}
  .star{grid-template-columns:1fr}
  .offer-grid{grid-template-columns:1fr 1fr}
  .story-head{grid-template-columns:1fr 28px}
  .story-head .input{grid-column:1/-1;order:3}
  .feed-layout .toolbar .search{flex-basis:100%;order:3}
  .feed-layout .toolbar .seg{flex:1}
  .fj-when{grid-column:1/-1;flex-direction:row;padding:0}
  .fj-acts{grid-column:1/-1;flex-direction:row;min-width:0}
  .nav-badge{margin-left:6px}
  .backup-grid>div{border-right:0;border-bottom:1px solid var(--rule)}
  .d-head,.d-body{padding-left:18px;padding-right:18px}
  .stepper{margin:16px -18px 0}
}

/* ---------- print: only the resume ---------- */
@page{size:letter;margin:0}
@media print{
  body{background:#fff}
  .shell,.drawer,.modal,.toast{display:none!important}
  .print-root{display:block}
  .print-root .sheet{box-shadow:none;width:8.5in;min-height:11in;aspect-ratio:auto}
}
