:root{--paper:#f4ede0;--paper-2:#efe6d6;--ink:#211b14;--ink-soft:#5c5142;--oxblood:#7c2d27;--oxblood-deep:#5e211d;--gold:#bd9347;--gold-soft:#d8b870;--line:#d8ccb6;--max:760px;--ease:cubic-bezier(.2,.7,.2,1)}
body{font-family:"Hanken Grotesk",system-ui,sans-serif;line-height:1.6}
.wrap{max-width:var(--max);margin:0 auto;padding:0 28px}
h1,h2{font-family:"Fraunces",Georgia,serif;font-weight:440;letter-spacing:-.01em}
.portal{padding:40px 28px 0}
.muted{color:var(--ink-soft)}
.note{font-size:.95rem;margin-top:.6em;min-height:1.2em}
.note.err{color:var(--oxblood)}
.note.ok{color:#3f6b46}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;background:var(--oxblood);color:#fff;font-family:"Hanken Grotesk",sans-serif;font-weight:600;font-size:.96rem;padding:.7em 1.3em;border-radius:999px;text-decoration:none;border:none;cursor:pointer;transition:background .2s,transform .2s}
.btn:hover{background:var(--oxblood-deep);transform:translateY(-1px);color:#fff}
.btn.small{padding:.42em .95em;font-size:.85rem}
.btn:disabled{opacity:.6;cursor:default;transform:none}
.link{background:none;border:none;color:var(--oxblood);cursor:pointer;font:inherit;text-decoration:underline;padding:0}
input[type=email],input[type=text],#code,#profile-name{width:100%;max-width:340px;padding:.7em .9em;border:1px solid var(--line);border-radius:10px;background:#fbf6ec;font:inherit;color:var(--ink);margin:.4em 0}
#code{max-width:180px;letter-spacing:.4em;font-size:1.3rem;text-align:center}

/* sign-in card */
.card{background:linear-gradient(170deg,#fbf6ec,#f1e7d6);border:1px solid var(--line);border-radius:16px;padding:38px 34px;max-width:440px;margin:30px auto}
.card h1{font-size:2rem;margin-bottom:.2em}

/* dashboard */
.dash-head{display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin:6px 0 22px}
.dash-head h1{font-size:2rem}
.panel{background:#fbf6ec;border:1px solid var(--line);border-radius:14px;padding:24px 26px;margin-bottom:20px}
.panel h2{font-size:1.4rem;color:var(--oxblood);margin-bottom:.6em}
.bigstep{display:flex;align-items:center;gap:14px}
.bigstep .dot{width:14px;height:14px;border-radius:50%;flex:0 0 auto;background:var(--gold)}
.bigstep .dot.you{background:var(--oxblood)}
.bigstep .dot.done{background:#3f6b46}
.stepname{font-family:"Fraunces",serif;font-size:1.35rem;color:var(--ink)}
.next{margin-top:14px;background:rgba(189,147,71,.12);border-left:3px solid var(--gold);border-radius:8px;padding:.7em 1em}
#deliverables-list{list-style:none;padding:0;margin:0}
#deliverables-list li{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:.7em 0;border-bottom:1px dotted var(--line)}
#deliverables-list li:last-child{border-bottom:none}
#deliverables-list li.deliv{display:block;padding:.6em 0}
#deliverables-list li.book-head{display:block;border-bottom:none;padding:1.1em 0 .3em;font-family:"Fraunces",serif;font-size:1.1rem;color:var(--oxblood)}
#deliverables-list li.book-head:first-child{padding-top:.1em}
.soon{color:var(--ink-soft);font-size:.9rem;font-style:italic}
.dial{padding:.55em 0;border-bottom:1px dotted var(--line)}
.dial:last-child{border-bottom:none}
.dial-row,.deliv-row{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap}
.dial-title,.deliv-title{background:none;border:none;font:inherit;cursor:pointer;color:var(--ink-soft);padding:.15em 1.3em .15em 0;position:relative;text-align:left}
.dial-title::after,.deliv-title::after{content:"+";position:absolute;right:0;top:50%;transform:translateY(-50%);color:var(--oxblood);font-size:1.25rem;line-height:1}
.dial.open .dial-title,.deliv.open .deliv-title{color:var(--oxblood)}
.dial.open .dial-title::after,.deliv.open .deliv-title::after{content:"–"}
.dial-desc,.deliv-desc{display:grid;grid-template-rows:0fr;transition:grid-template-rows .28s var(--ease)}
.dial.open .dial-desc,.deliv.open .deliv-desc{grid-template-rows:1fr}
.dd-inner{overflow:hidden}
.dial-desc p,.deliv-desc p{margin:.5em 0 .2em;color:var(--ink-soft);font-size:.9rem;max-width:60ch}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:999px;overflow:hidden;flex:0 0 auto}
.seg button{background:transparent;border:none;padding:.4em .85em;font:inherit;font-size:.85rem;cursor:pointer;color:var(--ink-soft)}
.seg button.on{background:var(--oxblood);color:#fff}
label{display:block;margin-bottom:.6em;color:var(--ink-soft)}
/* keep the hidden attribute working even though .infoline sets display:flex */
.infoline[hidden]{display:none}
#btn-save-profile{margin-top:1.1em}
#btn-upload{margin-top:.9em}

/* "or paste a link" divider + link row */
.or-sep{display:flex;align-items:center;text-align:center;color:var(--ink-soft);font-size:.85rem;margin:18px 0 6px}
.or-sep::before,.or-sep::after{content:"";flex:1;height:1px;background:var(--line)}
.or-sep span{padding:0 .8em}
.link-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.link-row input{margin:0;flex:1 1 260px}
.link-row .btn{flex:0 0 auto}

/* book-card action row: email-step / remind / pause + reveal-on-click option chips */
.card-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:14px}
.card-actions .card-link{font-size:.9rem}
.card-actions .reminder-note{font-size:.85rem}
.card-actions .opts{flex-basis:100%;display:flex;flex-wrap:wrap;gap:2px;align-items:center;font-size:.9rem}
.card-actions .opts:empty{display:none}
.card-actions .opt{font-size:.9rem}
.card-actions .opt-cancel{color:var(--ink-soft)}

/* "what you've sent me" — per-book groups + per-item remove */
#sent-list{list-style:none;padding:0;margin:0}
.sent-group{margin:0 0 14px}
.sent-group-h{font-family:"Fraunces",serif;font-size:.95rem;color:var(--ink);margin:0 0 4px;font-weight:600}
.sent-sub{list-style:none;padding:0;margin:0}
.sent-item{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap;padding:4px 0;border-bottom:1px solid var(--line)}
.sent-item a{color:var(--oxblood)}
.sent-del{margin-left:auto;font-size:.8rem;color:var(--ink-soft);text-decoration:none}
.sent-del:hover{color:var(--oxblood);text-decoration:underline}

/* finish-line progress */
.finish{margin:4px 0 16px}
.finish-top{display:flex;justify-content:space-between;align-items:baseline;font-size:.85rem;color:var(--ink-soft);margin-bottom:5px}
.finish-pct{font-family:"Fraunces",serif;font-size:1.1rem;color:var(--oxblood);font-weight:600}
.finish-bar{display:block;height:10px;background:var(--paper-2);border-radius:6px;overflow:hidden}
.finish-fill{display:block;height:100%;background:linear-gradient(90deg,var(--gold),var(--oxblood));border-radius:6px;transition:width .5s var(--ease)}
.finish-meta{font-size:.82rem;color:var(--ink-soft);margin-top:5px}

/* progress within the CURRENT stage (not the whole-book percent above) */
.in-stage{margin:2px 0 14px}
.in-stage-top{display:flex;justify-content:space-between;font-size:.82rem;color:var(--ink-soft);margin-bottom:4px}
.in-stage-bar{display:block;height:6px;background:var(--paper-2);border-radius:4px;overflow:hidden}
.in-stage-fill{display:block;height:100%;background:var(--gold);border-radius:4px;transition:width .5s var(--ease)}

/* author-facing book plan: chapter-by-chapter status + what's currently being asked */
.book-plan{margin:10px 0 4px;padding:12px 14px;background:var(--paper-2);border-radius:8px}
.plan-summary{font-weight:600;margin-bottom:8px}
.plan-premise{font-style:italic;margin:0 0 10px}
.plan-row{padding:7px 0;border-top:1px dotted var(--line)}
.plan-row:first-of-type{border-top:none}
.plan-row-top{display:flex;align-items:baseline;gap:6px;font-size:.92rem}
.plan-ord{color:var(--ink-soft)}
.plan-title{flex:1}
.plan-status{font-size:.78rem;color:var(--ink-soft);white-space:nowrap}
.plan-row.status-meets_standard .plan-status{color:var(--oxblood)}
.plan-ask{margin-top:5px;font-size:.85rem;color:var(--ink-soft);background:var(--paper);border-radius:6px;padding:8px 10px}
.plan-rules{margin:0 0 12px;padding:8px 10px;background:var(--paper);border-radius:6px}
.plan-rules-title{font-size:.82rem;font-weight:600;margin-bottom:4px}
.plan-rules ul{margin:0;padding-left:18px;font-size:.85rem;color:var(--ink-soft)}
.plan-rules li{margin:2px 0}

/* book title editor */
.book-rename{margin-bottom:18px;padding-bottom:16px;border-bottom:1px dotted var(--line)}
.rename-label{display:block;margin-bottom:.3em;color:var(--ink-soft);font-size:.9rem}
.rename-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.rename-row input{margin:0;flex:1 1 240px}
.rename-row .btn{flex:0 0 auto}

/* book tabs — flip between projects */
.booktabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}
.booktab{background:#fbf6ec;border:1px solid var(--line);border-bottom-width:2px;border-radius:10px 10px 0 0;padding:.55em 1.1em;font:inherit;font-size:.95rem;color:var(--ink-soft);cursor:pointer;transition:color .2s,border-color .2s,background .2s}
.booktab:hover{color:var(--ink)}
.booktab.on{color:var(--oxblood);font-weight:600;border-color:var(--gold);border-bottom-color:var(--oxblood);background:#fffdf8}
.acct-sep{height:1px;background:var(--line);margin:34px 0 22px}

/* per-book progress cards (an author can have several books at once) */
.bookcard + .bookcard{margin-top:24px;padding-top:22px;border-top:1px solid var(--line)}
.book-title{font-family:"Fraunces",serif;font-size:1.18rem;color:var(--oxblood);margin-bottom:14px}

/* five-step journey indicator */
.steps{list-style:none;display:flex;padding:0;margin:0 0 20px}
.steps li{flex:1;text-align:center;position:relative;font-size:.78rem}
.steps li .num{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;margin:0 auto 7px;font-weight:600;font-size:.9rem;background:var(--paper-2);color:var(--ink-soft);border:2px solid var(--line);position:relative;z-index:1}
.steps li .lbl{display:block;color:var(--ink-soft);line-height:1.25;padding:0 4px}
.steps li::before{content:"";position:absolute;top:15px;left:-50%;width:100%;height:2px;background:var(--line);z-index:0}
.steps li:first-child::before{display:none}
.steps li.done .num{background:#3f6b46;color:#fff;border-color:#3f6b46}
.steps li.done::before,.steps li.current::before{background:#3f6b46}
.steps li.current .num{background:var(--oxblood);color:#fff;border-color:var(--oxblood);box-shadow:0 0 0 4px rgba(124,45,39,.15)}
.steps li.current .lbl{color:var(--ink);font-weight:600}

/* last email + info rows */
.invested{margin-top:12px;font-size:.92rem;color:#3f6b46;background:rgba(63,107,70,.08);border-left:3px solid #3f6b46;border-radius:8px;padding:.6em 1em}
.lastmail{margin-top:14px;font-size:.92rem;color:var(--ink)}
.vp-line{margin-top:16px}
.infoline{display:flex;gap:12px;align-items:baseline;margin-top:.7em;font-size:.95rem}
.info-label{font-weight:600;color:var(--oxblood);min-width:70px}
.info-val{color:var(--ink)}
@media(max-width:640px){.dial-row{justify-content:flex-start}.steps li{font-size:.68rem}.steps li .num{width:26px;height:26px}}
