*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --ink:#1C1A17;--ink2:#3A2F20;--ink3:#5A5145;--ink4:#8C7A6A;
  --rule:#DDD4C4;--rule-l:#EDE5D8;--bg:#FAF8F4;--bgw:#F5EDE0;--bgc:#FFFFFF;
  --gold:#8C6D3F;--goldl:#C8A96E;--goldp:#F0E9DE;
  --t1:#2B1F0E;--t1t:#F5E6CC;--t2:#4A3520;--t2t:#EDD9B8;--t3bg:#E8DFD0;--t3t:#5A4228;
  --sd:#1A3A2A;--sdt:#BFDDCC;
  --cc:#2B1F0E;--ccf:#5C3D1E;--tgfc:#1A3A2A;--rc:#2C3E5A;--lwd:#4A2040;
  --sw:260px;
  --stage-done:#2D6A4F;--stage-active:#8C6D3F;--stage-pending:#9E9689;
}
html{scroll-behavior:smooth}
body{font-family:'Source Sans 3',sans-serif;background:var(--bg);color:var(--ink);display:flex;min-height:100vh;flex-direction:column}

/* ── WORKFLOW TRACKER ── */
#workflow-bar{
  background:var(--t1);border-bottom:2px solid var(--goldl);
  padding:0;position:sticky;top:0;z-index:200;
  box-shadow:0 2px 12px rgba(0,0,0,0.3);
}
.wf-inner{
  display:flex;align-items:stretch;overflow-x:auto;
  scrollbar-width:none;
}
.wf-inner::-webkit-scrollbar{display:none}
.wf-stage{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  padding:10px 16px;cursor:pointer;border-right:1px solid rgba(200,169,110,0.15);
  min-width:110px;transition:background 0.2s;position:relative;flex:1;
  text-align:center;
}
.wf-stage:hover{background:rgba(200,169,110,0.08)}
.wf-stage.active{background:rgba(200,169,110,0.15)}
.wf-stage.selected{outline:2px solid var(--goldl);outline-offset:-2px;background:rgba(200,169,110,0.18)}
.wf-num{font-size:10px;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;margin-bottom:4px}
.wf-stage.done .wf-num{color:var(--sdt)}
.wf-stage.active .wf-num{color:var(--goldl)}
.wf-stage.pending .wf-num{color:rgba(255,255,255,0.3)}
.wf-label{font-size:11px;font-weight:600;line-height:1.4}
.wf-stage.done .wf-label{color:rgba(245,230,204,0.8)}
.wf-stage.active .wf-label{color:var(--t1t)}
.wf-stage.pending .wf-label{color:rgba(255,255,255,0.4)}
.wf-owner{font-size:10px;margin-top:4px}
.wf-stage.done .wf-owner{color:rgba(191,221,204,0.7)}
.wf-stage.active .wf-owner{color:var(--goldl)}
.wf-stage.pending .wf-owner{color:rgba(255,255,255,0.25)}
.wf-dot{
  width:10px;height:10px;border-radius:50%;margin-bottom:6px;
}
.wf-stage.done .wf-dot{background:var(--stage-done)}
.wf-stage.active .wf-dot{background:var(--goldl);box-shadow:0 0 6px var(--goldl)}
.wf-stage.pending .wf-dot{background:rgba(255,255,255,0.15)}
.wf-connector{
  position:absolute;top:50%;right:-1px;width:1px;height:60%;
  background:rgba(200,169,110,0.15);transform:translateY(-50%);
}
.wf-stage-tip{
  display:none;position:absolute;top:100%;left:50%;transform:translateX(-50%);
  background:var(--t1);border:1px solid var(--goldl);border-radius:4px;
  padding:10px 14px;min-width:200px;z-index:300;margin-top:6px;
  box-shadow:0 4px 16px rgba(0,0,0,0.4);
}
.wf-stage:hover .wf-stage-tip{display:block}
.wf-tip-title{font-size:11px;font-weight:700;color:var(--goldl);margin-bottom:4px;letter-spacing:0.08em;text-transform:uppercase}
.wf-tip-desc{font-size:11px;color:rgba(245,230,204,0.7);line-height:1.5}
.wf-tip-deliverable{font-size:10px;color:var(--sdt);margin-top:6px;font-style:italic}

/* ── STAGE BANNER ── */
#stage-banner{
  background:var(--bgw);border-bottom:1px solid var(--rule);
  padding:16px 32px;display:flex;align-items:center;gap:20px;
  flex-wrap:wrap;
}
.sb-stage-name{font-family:'Playfair Display',serif;font-size:18px;font-weight:700;color:var(--ink)}
.sb-owner{font-size:13px;color:var(--gold);font-weight:600}
.sb-status{display:inline-block;margin-left:10px;padding:3px 9px;border-radius:999px;background:var(--goldp);color:var(--gold);font-size:10px;font-weight:700;letter-spacing:0.1em;text-transform:uppercase}
.sb-reminder{font-size:13px;color:var(--ink3);flex:1;line-height:1.6}
.sb-actions{display:flex;gap:12px;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end}
.btn{
  font-size:12px;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;
  padding:10px 20px;border-radius:4px;border:1px solid transparent;cursor:pointer;transition:all 0.15s;
  box-shadow:0 1px 3px rgba(0,0,0,0.05);
}
.btn-gold{background:var(--gold);color:#FAF8F4;}
.btn-gold:hover{background:#7A5E35;box-shadow:0 2px 6px rgba(140,109,63,0.3)}
.btn-outline{background:transparent;color:var(--gold);border:1px solid var(--gold)}
.btn-outline:hover{background:var(--goldp);box-shadow:0 2px 6px rgba(140,109,63,0.15)}
.btn-green{background:var(--sd);color:var(--sdt)}
.btn-green:hover{background:#143020;box-shadow:0 2px 6px rgba(26,58,42,0.3)}
.btn-muted{background:var(--bg);color:var(--ink3);border:1px solid var(--rule)}
.btn-muted:hover{background:var(--bgw);color:var(--ink);box-shadow:0 2px 6px rgba(0,0,0,0.05)}
.btn-sm{font-size:11px;padding:8px 16px}

/* ── LAYOUT ── */
.body-wrap{display:flex;flex:1}
.sidebar{
  width:var(--sw);min-height:100%;background:var(--t1);
  position:sticky;top:94px;height:calc(100vh - 94px);overflow-y:auto;
  flex-shrink:0;align-self:flex-start;
  box-shadow:inset -1px 0 0 rgba(200,169,110,0.15);
}
.sidebar::-webkit-scrollbar{width:4px}
.sidebar::-webkit-scrollbar-thumb{background:rgba(200,169,110,0.2);border-radius:2px}
.sidebar-header{padding:20px 20px 16px;border-bottom:1px solid rgba(200,169,110,0.2)}
.sidebar-logo{font-size:10px;font-weight:600;letter-spacing:0.16em;text-transform:uppercase;color:var(--goldl);margin-bottom:4px}
.sidebar-title{font-family:'Playfair Display',serif;font-size:15px;font-weight:700;color:var(--t1t);line-height:1.3}
.sidebar-sub{font-size:11px;color:rgba(245,230,204,0.4);margin-top:3px}
.sidebar-nav{padding:12px 0 24px}
.nav-phase{font-size:9px;font-weight:600;letter-spacing:0.18em;text-transform:uppercase;color:var(--goldl);padding:12px 20px 5px;opacity:0.7}
.nav-item{display:flex;align-items:center;gap:8px;padding:7px 20px;text-decoration:none;color:rgba(245,230,204,0.6);font-size:12px;line-height:1.3;transition:all 0.15s;border-left:2px solid transparent}
.nav-item:hover{color:var(--t1t);background:rgba(200,169,110,0.08);border-left-color:var(--goldl)}
.nav-item.active{color:var(--t1t);background:rgba(200,169,110,0.12);border-left-color:var(--goldl)}
.nav-tier{flex-shrink:0;width:17px;height:17px;border-radius:2px;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:700}
.nt1{background:var(--gold);color:var(--t1t)}
.nt2{background:var(--t2);color:var(--t2t)}
.nt3{background:rgba(255,255,255,0.1);color:rgba(245,230,204,0.6)}
.nsd{background:var(--sd);color:var(--sdt)}
.nav-edit-dot{width:6px;height:6px;border-radius:50%;background:var(--goldl);margin-left:auto;flex-shrink:0;display:none}
.nav-item.has-edits .nav-edit-dot{display:block}

/* ── MAIN ── */
.main{flex:1;min-width:0}
.page-header{background:var(--bgc);border-bottom:1px solid var(--rule);padding:48px 56px 40px;position:relative;}
.doc-flag{display:inline-block;font-size:11px;font-weight:700;letter-spacing:0.16em;text-transform:uppercase;background:var(--gold);color:#FAF8F4;padding:6px 14px;border-radius:4px;margin-bottom:20px;box-shadow:0 2px 6px rgba(140,109,63,0.2)}
.page-header h1{font-family:'Playfair Display',serif;font-size:42px;font-weight:700;color:var(--ink);line-height:1.15;margin-bottom:12px;letter-spacing:-0.01em;}
.page-header .lead{font-size:16px;color:var(--ink3);font-weight:400;max-width:700px;line-height:1.65;margin-bottom:28px}
.meta-strip{display:flex;gap:40px;flex-wrap:wrap;background:var(--bgc);padding:16px 20px;border-radius:6px;border:1px solid var(--rule-l)}
.meta-item{display:flex;flex-direction:column;gap:4px}
.meta-label{font-size:11px;font-weight:700;letter-spacing:0.15em;text-transform:uppercase;color:var(--gold)}
.meta-value{font-size:15px;color:var(--ink);font-weight:600}

.brand-key{padding:20px 56px;background:var(--bgw);border-bottom:1px solid var(--rule);display:flex;gap:16px;flex-wrap:wrap;align-items:center}
.bkl{font-size:11px;font-weight:700;letter-spacing:0.16em;text-transform:uppercase;color:var(--ink3);margin-right:8px}
.bp{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;padding:6px 12px;border-radius:4px;letter-spacing:0.04em;box-shadow:0 1px 3px rgba(0,0,0,0.05)}
.bp-cc{background:var(--cc);color:#F5E6CC}
.bp-ccf{background:var(--ccf);color:#F5E6CC}
.bp-tgfc{background:var(--tgfc);color:var(--sdt)}
.bp-rc{background:var(--rc);color:#C8D8F0}
.bp-lwd{background:var(--lwd);color:#E8C8F0}

.campaign-bar{
  display:flex;align-items:center;gap:12px;flex-wrap:wrap;
  padding:16px 56px;background:var(--bgc);border-bottom:1px solid var(--rule);
  position:sticky;top:94px;z-index:150;
  box-shadow:0 2px 8px rgba(0,0,0,0.03);
}
.campaign-label{font-size:11px;font-weight:700;letter-spacing:0.16em;text-transform:uppercase;color:var(--gold)}
.campaign-select{
  min-width:320px;font-size:14px;color:var(--ink);background:var(--bg);
  border:1px solid var(--rule);border-radius:4px;padding:8px 12px;
  font-family:'Source Sans 3',sans-serif;font-weight:600;
  transition:all 0.15s;
}
.campaign-select:focus{outline:none;border-color:var(--goldl);box-shadow:0 0 0 3px rgba(200,169,110,0.15)}
.campaign-bar .btn{padding:8px 16px;font-size:11px;}

.content{padding:0 56px 80px}
.empty-campaign{
  margin-top:48px;background:var(--bgc);border:1px solid var(--rule);
  border-radius:6px;padding:28px;max-width:760px;
}
.empty-campaign h2{font-family:'Playfair Display',serif;font-size:24px;color:var(--ink);margin-bottom:8px}
.empty-campaign p{font-size:14px;line-height:1.65;color:var(--ink3);margin-bottom:16px}
.empty-campaign-actions{display:flex;gap:10px;flex-wrap:wrap}
.intake-panel{
  margin-top:48px;background:var(--bgc);border:1px solid var(--rule);
  border-radius:8px;padding:32px;max-width:980px;
  box-shadow:0 4px 12px rgba(0,0,0,0.02);
}
.intake-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:24px;border-bottom:1px solid var(--rule-l);padding-bottom:20px}
.intake-head h2{font-family:'Playfair Display',serif;font-size:28px;color:var(--ink);margin-bottom:6px}
.intake-head p{font-size:14px;color:var(--ink3);line-height:1.6}
.intake-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.intake-field{display:flex;flex-direction:column;gap:6px}
.intake-field.full{grid-column:1/-1}
.intake-field label{font-size:11px;font-weight:700;letter-spacing:0.15em;text-transform:uppercase;color:var(--gold)}
.intake-field input,.intake-field textarea{
  width:100%;font-size:14px;color:var(--ink);line-height:1.6;
  border:1px solid var(--rule);border-radius:4px;padding:12px 14px;
  font-family:'Source Sans 3',sans-serif;background:var(--bg);
  transition:all 0.15s;
}
.intake-field textarea{resize:vertical;min-height:90px}
.intake-field input:focus,.intake-field textarea:focus{outline:none;border-color:var(--goldl);background:var(--bgc);box-shadow:0 0 0 3px rgba(200,169,110,0.15)}
.intake-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px;padding-top:20px;border-top:1px solid var(--rule-l)}
.phase-divider{margin-top:56px;margin-bottom:-8px;display:flex;align-items:center;gap:14px}
.phase-label{font-size:10px;font-weight:700;letter-spacing:0.18em;text-transform:uppercase;color:var(--gold);white-space:nowrap}
.phase-rule{flex:1;height:1px;background:var(--rule)}

/* ── BEAT SECTION ── */
.beat-section{margin-top:64px;scroll-margin-top:140px;padding-top:12px;}
.beat-header{display:flex;align-items:flex-start;gap:16px;margin-bottom:24px;padding-bottom:16px;border-bottom:2px solid var(--rule);position:relative}
.beat-tier-block{flex-shrink:0;padding:8px 14px;border-radius:6px;display:flex;flex-direction:column;align-items:center;gap:2px;min-width:64px;box-shadow:0 2px 6px rgba(0,0,0,0.04)}
.bt1{background:var(--t1)}.bt2{background:var(--t2)}.bt3{background:var(--t3bg)}.bsd{background:var(--sd)}
.tier-word{font-size:9px;font-weight:700;letter-spacing:0.12em;text-transform:uppercase}
.bt1 .tier-word,.bt2 .tier-word{color:var(--goldl)}.bt3 .tier-word{color:#8C6D3F}.bsd .tier-word{color:#7ABFA0}
.tier-num{font-family:'Playfair Display',serif;font-size:24px;font-weight:700}
.bt1 .tier-num,.bt2 .tier-num{color:var(--t1t)}.bt3 .tier-num{color:#5A4228}.bsd .tier-num{color:var(--sdt);font-size:14px;font-family:'Source Sans 3',sans-serif;font-weight:700;letter-spacing:0.06em;text-transform:uppercase;margin-top:2px}
.beat-title-block{flex:1}
.beat-name{font-family:'Playfair Display',serif;font-size:26px;font-weight:700;color:var(--ink);line-height:1.2;margin-bottom:6px}
.beat-meta{display:flex;gap:20px;flex-wrap:wrap;margin-bottom:6px}
.beat-meta-item{font-size:13px;color:var(--ink4)}
.beat-meta-item strong{color:var(--ink3);font-weight:600}
.beat-theme{font-family:'Playfair Display',serif;font-style:italic;font-size:16px;color:var(--gold);margin-top:8px}
.beat-edit-btn{
  flex-shrink:0;margin-top:6px;
  font-size:11px;font-weight:600;letter-spacing:0.08em;text-transform:uppercase;
  padding:8px 16px;border-radius:4px;border:1px solid var(--rule);
  background:var(--bgc);color:var(--ink3);cursor:pointer;transition:all 0.15s;
  box-shadow:0 1px 3px rgba(0,0,0,0.02);
}
.beat-edit-btn:hover{border-color:var(--gold);color:var(--gold);background:var(--goldp);box-shadow:0 2px 4px rgba(200,169,110,0.2)}
.beat-edit-btn.editing{background:var(--gold);color:#FAF8F4;border-color:var(--gold)}
.beat-edit-indicator{font-size:11px;color:var(--gold);font-weight:600;margin-left:10px;display:none;padding:4px 8px;background:var(--goldp);border-radius:4px;}
.beat-edit-indicator.visible{display:inline-block}

/* ── BRAND CARDS ── */
.brand-cards{display:flex;flex-direction:column;gap:20px}
.brand-card{background:var(--bgc);border:1px solid var(--rule);border-radius:8px;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.02)}
.brand-card-header{display:flex;align-items:center;gap:14px;padding:14px 20px}
.bch-cc{background:var(--cc)}.bch-ccf{background:var(--ccf)}.bch-tgfc{background:var(--tgfc)}.bch-rc{background:var(--rc)}.bch-lwd{background:var(--lwd)}.bch-out{background:#3A3530}
.brand-name{font-size:11px;font-weight:700;letter-spacing:0.1em;text-transform:uppercase}
.bch-cc .brand-name,.bch-ccf .brand-name,.bch-tgfc .brand-name{color:#F5E6CC}
.bch-rc .brand-name{color:#C8D8F0}.bch-lwd .brand-name{color:#E8C8F0}.bch-out .brand-name{color:rgba(255,255,255,0.3)}
.brand-role-badge{font-size:10px;font-weight:600;letter-spacing:0.07em;padding:3px 9px;border-radius:2px;text-transform:uppercase}
.role-driver{background:rgba(200,169,110,0.25);color:var(--goldl)}
.role-active{background:rgba(255,255,255,0.12);color:rgba(255,255,255,0.65)}
.role-out{background:rgba(255,255,255,0.05);color:rgba(255,255,255,0.22)}
.brand-card-body{padding:20px 24px}
.brand-card.inactive .brand-card-body{background:#FDFCFA}

/* Narrative */
.brand-narrative{font-size:14px;color:var(--ink2);line-height:1.7;margin-bottom:16px}
.brand-narrative.muted{font-size:13.5px;color:var(--ink4);font-style:italic;margin-bottom:0}
.narrative-display{margin-bottom:16px}
.narrative-edit{display:none;margin-bottom:16px}
.narrative-edit textarea{
  width:100%;font-size:14px;color:var(--ink2);line-height:1.7;
  border:1px solid var(--goldl);border-radius:4px;padding:12px 14px;
  font-family:'Source Sans 3',sans-serif;resize:vertical;min-height:90px;
  background:var(--bgw);
  transition:all 0.15s;
}
.narrative-edit textarea:focus{outline:none;box-shadow:0 0 0 3px rgba(200,169,110,0.15)}

/* Spec grid */
.spec-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.spec-grid.three{grid-template-columns:1fr 1fr 1fr}
.spec-block{background:var(--bg);border:1px solid var(--rule-l);border-radius:6px;padding:14px 16px;box-shadow:0 1px 3px rgba(0,0,0,0.02)}
.spec-block.full{grid-column:1/-1}
.spec-label{font-size:10px;font-weight:700;letter-spacing:0.18em;text-transform:uppercase;color:var(--gold);margin-bottom:8px}
.spec-content{font-size:13px;color:var(--ink2);line-height:1.6}
.spec-content ul{padding-left:18px}
.spec-content li{margin-bottom:4px}
.spec-display{}
.spec-edit{display:none}
.spec-edit textarea{
  width:100%;font-size:13px;color:var(--ink2);line-height:1.6;
  border:1px solid var(--goldl);border-radius:4px;padding:10px 12px;
  font-family:'Source Sans 3',sans-serif;resize:vertical;min-height:80px;
  background:var(--bgw);
  transition:all 0.15s;
}
.spec-edit textarea:focus{outline:none;box-shadow:0 0 0 3px rgba(200,169,110,0.15)}
.spec-hint{font-size:11px;color:var(--ink4);margin-top:6px;font-style:italic}

/* ── EDIT PANEL (per beat) ── */
.beat-edit-panel{
  display:none;background:var(--bgw);border:1px solid var(--goldl);
  border-radius:6px;padding:20px;margin-bottom:20px;
}
.beat-edit-panel.open{display:block}
.ep-title{font-size:13px;font-weight:700;letter-spacing:0.12em;text-transform:uppercase;color:var(--gold);margin-bottom:16px}
.ep-name-row{display:flex;gap:16px;align-items:flex-end;flex-wrap:wrap;margin-bottom:20px}
.ep-name-row label{font-size:12px;font-weight:600;color:var(--ink3);display:block;margin-bottom:6px}
.ep-name-row input{font-size:14px;padding:10px 14px;border:1px solid var(--rule);border-radius:4px;font-family:'Source Sans 3',sans-serif;background:var(--bgc);color:var(--ink);min-width:240px;transition:all 0.15s}
.ep-name-row input:focus{outline:none;border-color:var(--goldl);box-shadow:0 0 0 3px rgba(200,169,110,0.15)}
.ep-actions{display:flex;gap:12px;margin-top:20px;padding-top:20px;border-top:1px solid var(--rule)}

/* ── EDIT LOG PANEL ── */
#log-panel{
  position:fixed;right:0;top:0;width:400px;height:100vh;
  background:var(--bgc);border-left:2px solid var(--rule);
  z-index:400;display:none;flex-direction:column;
  box-shadow:-4px 0 20px rgba(0,0,0,0.15);
}
#log-panel.open{display:flex}
.log-header{background:var(--t1);padding:20px 20px 16px;border-bottom:1px solid rgba(200,169,110,0.2)}
.log-title{font-family:'Playfair Display',serif;font-size:18px;font-weight:700;color:var(--t1t);margin-bottom:4px}
.log-sub{font-size:11px;color:rgba(245,230,204,0.5)}
.log-close{position:absolute;top:16px;right:16px;background:transparent;border:none;color:rgba(245,230,204,0.5);cursor:pointer;font-size:18px;line-height:1}
.log-close:hover{color:var(--t1t)}
.log-body{flex:1;overflow-y:auto;padding:16px}
.log-entry{border-bottom:1px solid var(--rule-l);padding:12px 0;last-child{border:none}}
.log-entry-header{display:flex;align-items:center;gap:8px;margin-bottom:6px;flex-wrap:wrap}
.log-beat-tag{font-size:10px;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;background:var(--goldp);color:var(--gold);padding:2px 8px;border-radius:2px}
.log-who{font-size:11px;font-weight:600;color:var(--ink)}
.log-when{font-size:10px;color:var(--ink4)}
.log-fields{margin-top:6px}
.log-field-entry{font-size:11px;color:var(--ink3);margin-bottom:4px;padding-left:10px;border-left:2px solid var(--rule)}
.log-field-entry .field-name{font-weight:600;color:var(--ink2)}
.log-before{color:var(--ink4);text-decoration:line-through;font-size:10px}
.log-after{color:var(--sd);font-size:10px}
.log-expand-btn{font-size:10px;color:var(--gold);cursor:pointer;background:none;border:none;padding:0;margin-top:4px}
.log-detail{display:none;margin-top:6px}
.log-detail.open{display:block}
.log-empty{font-size:13px;color:var(--ink4);text-align:center;padding:40px 20px;font-style:italic}
.log-summary{background:var(--bgw);padding:12px 16px;border-bottom:1px solid var(--rule);font-size:12px;color:var(--ink3)}
.log-summary strong{color:var(--ink);font-weight:600}

/* ── LINDIR PANEL ── */
#lindir-panel{
  position:fixed;left:0;top:0;width:100vw;height:100vh;
  background:rgba(0,0,0,0.6);z-index:500;display:none;align-items:center;justify-content:center;
}
#lindir-panel.open{display:flex}
.lp-box{
  background:var(--bgc);border-radius:8px;width:680px;max-width:95vw;max-height:85vh;
  display:flex;flex-direction:column;box-shadow:0 8px 40px rgba(0,0,0,0.4);
}
.lp-header{background:var(--t1);padding:20px 24px 16px;border-radius:8px 8px 0 0;position:relative}
.lp-title{font-family:'Playfair Display',serif;font-size:20px;font-weight:700;color:var(--t1t);margin-bottom:4px}
.lp-sub{font-size:11px;color:rgba(245,230,204,0.5)}
.lp-close{position:absolute;top:16px;right:16px;background:transparent;border:none;color:rgba(245,230,204,0.5);cursor:pointer;font-size:20px;line-height:1}
.lp-close:hover{color:var(--t1t)}
.lp-body{flex:1;overflow-y:auto;padding:20px 24px}
.lp-context-label{font-size:11px;font-weight:600;letter-spacing:0.1em;text-transform:uppercase;color:var(--gold);margin-bottom:8px}
.lp-stage-context{background:var(--bgw);border:1px solid var(--rule);border-radius:4px;padding:14px;margin-bottom:16px;font-size:13px;color:var(--ink2);line-height:1.55}
.lp-context-label2{font-size:11px;font-weight:600;letter-spacing:0.1em;text-transform:uppercase;color:var(--gold);margin-bottom:8px;margin-top:4px}
.lp-input{width:100%;font-size:13px;color:var(--ink);line-height:1.6;border:1px solid var(--rule);border-radius:4px;padding:12px;font-family:'Source Sans 3',sans-serif;resize:vertical;min-height:120px;background:var(--bgc)}
.lp-input:focus{outline:none;border-color:var(--goldl)}
.lp-file-row{margin-top:10px;display:flex;align-items:center;gap:10px}
.lp-file-label{font-size:11px;color:var(--ink3)}
.lp-file{font-size:12px;color:var(--ink3)}
.lp-response{margin-top:16px;display:none}
.lp-response.visible{display:block}
.lp-response-label{font-size:11px;font-weight:600;letter-spacing:0.1em;text-transform:uppercase;color:var(--sd);margin-bottom:8px}
.lp-response-box{background:#F0F7F2;border:1px solid #B5D5C5;border-radius:4px;padding:14px;font-size:13px;color:var(--ink2);line-height:1.65;max-height:280px;overflow-y:auto;white-space:pre-wrap}
.lp-next-draft{margin-top:16px;background:var(--bgw);border:1px solid var(--goldl);border-radius:6px;padding:14px}
.lp-next-draft-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:12px}
.lp-next-draft-head strong{display:block;font-size:14px;color:var(--ink)}
.lp-next-draft-head p{font-size:12px;color:var(--ink3);line-height:1.5;margin-top:3px}
.lp-next-draft-fields{display:flex;flex-direction:column;gap:8px;max-height:260px;overflow-y:auto}
.lp-next-field{background:var(--bgc);border:1px solid var(--rule-l);border-radius:4px;padding:10px 12px}
.lp-next-field-label{font-size:10px;font-weight:700;letter-spacing:0.12em;text-transform:uppercase;color:var(--gold);margin-bottom:4px}
.lp-next-field-value{font-size:12px;color:var(--ink2);line-height:1.55;white-space:pre-wrap}
.lp-footer{padding:16px 24px;border-top:1px solid var(--rule);display:flex;gap:10px;justify-content:flex-end}
.lp-thinking{font-size:12px;color:var(--ink3);font-style:italic;display:none}
.lp-thinking.visible{display:inline}

/* ── STAGE COMPLETE MODAL ── */
#complete-modal{
  position:fixed;left:0;top:0;width:100vw;height:100vh;
  background:rgba(0,0,0,0.5);z-index:600;display:none;align-items:center;justify-content:center;
}
#complete-modal.open{display:flex}
.cm-box{background:var(--bgc);border-radius:8px;width:480px;max-width:95vw;box-shadow:0 8px 40px rgba(0,0,0,0.4);overflow:hidden}
.cm-header{background:var(--sd);padding:20px 24px 16px}
.cm-title{font-family:'Playfair Display',serif;font-size:20px;font-weight:700;color:var(--sdt);margin-bottom:4px}
.cm-sub{font-size:12px;color:rgba(191,221,204,0.6)}
.cm-body{padding:20px 24px}
.cm-msg{font-size:14px;color:var(--ink2);line-height:1.65;margin-bottom:16px}
.cm-next-owner{background:var(--bgw);border-left:3px solid var(--gold);padding:12px 14px;margin-bottom:16px;border-radius:0 4px 4px 0}
.cm-next-label{font-size:10px;font-weight:700;letter-spacing:0.12em;text-transform:uppercase;color:var(--gold);margin-bottom:4px}
.cm-next-name{font-size:14px;font-weight:600;color:var(--ink)}
.cm-next-todo{font-size:12px;color:var(--ink3);margin-top:4px;line-height:1.5}
.cm-footer{padding:16px 24px;border-top:1px solid var(--rule);display:flex;gap:10px;justify-content:flex-end}

/* ── TOAST ── */
#toast{
  position:fixed;bottom:24px;right:24px;background:var(--t1);color:var(--t1t);
  padding:12px 20px;border-radius:4px;font-size:13px;font-weight:600;
  box-shadow:0 4px 16px rgba(0,0,0,0.3);z-index:700;
  opacity:0;transition:opacity 0.3s;pointer-events:none;
  border-left:3px solid var(--goldl);
}
#toast.visible{opacity:1}
