:root{
    --ink:#1E1B18;
    --ink-2:#26221D;
    --paper:#F6F1E6;
    --paper-2:#EFE7D8;
    --charcoal:#2B2620;
    --brass:#AD8A54;
    --brass-light:#D8BE8E;
    --clay:#8B5540;
    --sage:#6E7A63;
    --line:rgba(30,27,24,0.14);
    --line-light:rgba(246,241,230,0.14);
    --muted:#8A8175;
  }
  *{box-sizing:border-box;}
  html,body{margin:0;padding:0;}
  body{
    background:var(--ink);
    color:var(--paper);
    font-family:'Inter',sans-serif;
    -webkit-font-smoothing:antialiased;
    min-height:100vh;
  }
  ::selection{background:var(--brass); color:var(--ink);}

  h1,h2,h3{font-family:'Fraunces',serif; font-weight:600; margin:0;}
  .mono{font-family:'Space Mono',monospace;}

  /* ---------- Topbar ---------- */
  .topbar{
    position:sticky; top:0; z-index:40;
    background:linear-gradient(180deg, var(--ink) 0%, var(--ink) 85%, rgba(30,27,24,0.0) 100%);
    border-bottom:1px solid var(--line-light);
    padding:18px 28px 14px;
  }
  .topbar-row{display:flex; align-items:flex-end; justify-content:space-between; gap:24px; flex-wrap:wrap;}
  .brand-block{display:flex; align-items:baseline; gap:14px;}
  .brand-mark{
    width:34px;height:34px;border-radius:2px;
    background:conic-gradient(from 210deg, var(--brass), var(--clay) 40%, var(--sage) 75%, var(--brass));
    flex:none;
  }
  .brand-title{font-size:22px; letter-spacing:0.2px; color:var(--paper);}
  .brand-sub{font-family:'Space Mono',monospace; font-size:10.5px; letter-spacing:0.14em; text-transform:uppercase; color:var(--brass-light); margin-top:2px;}

  .topbar-actions{display:flex; gap:10px; align-items:center; flex-wrap:wrap;}
  .btn{
    font-family:'Inter',sans-serif; font-size:12.5px; font-weight:600; letter-spacing:0.02em;
    padding:9px 16px; border-radius:2px; border:1px solid var(--line-light);
    background:transparent; color:var(--paper); cursor:pointer;
    transition:background .15s ease, color .15s ease, border-color .15s ease, transform .1s ease;
  }
  .btn:hover{border-color:var(--brass-light); color:var(--brass-light);}
  .btn:active{transform:translateY(1px);}
  .btn-primary{background:var(--brass); border-color:var(--brass); color:var(--ink);}
  .btn-primary:hover{background:var(--brass-light); border-color:var(--brass-light); color:var(--ink);}
  .btn-ghost{border-color:transparent; color:var(--muted); padding:9px 10px;}
  .btn-ghost:hover{color:var(--brass-light);}
  .btn-sm{padding:6px 11px; font-size:11.5px;}
  input[type=file]{display:none;}
  .mobile-section-nav{display:none; margin-top:12px;}
  .mobile-section-nav label{font-family:'Space Mono',monospace;font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);display:block;margin-bottom:5px;}
  .mobile-section-nav select{width:100%;background:var(--ink-2);color:var(--paper);border:1px solid var(--line-light);padding:11px;font-size:16px;border-radius:3px;}

  .client-strip{
    margin-top:16px; display:grid; grid-template-columns:repeat(5,1fr); gap:10px;
  }
  .field-inline{display:flex; flex-direction:column; gap:4px;}
  .field-inline label{font-family:'Space Mono',monospace; font-size:9.5px; letter-spacing:0.1em; text-transform:uppercase; color:var(--muted);}
  .field-inline input{
    background:var(--ink-2); border:1px solid var(--line-light); border-radius:2px;
    color:var(--paper); font-size:13px; padding:8px 9px; font-family:'Inter',sans-serif;
  }
  .field-inline input:focus{outline:none; border-color:var(--brass);}

  .progress-track{height:3px; background:var(--ink-2); margin-top:16px; border-radius:2px; overflow:hidden;}
  .progress-fill{height:100%; background:linear-gradient(90deg, var(--clay), var(--brass), var(--brass-light)); width:0%; transition:width .3s ease;}
  .progress-label{font-family:'Space Mono',monospace; font-size:9.5px; color:var(--muted); margin-top:6px; letter-spacing:.06em;}

  /* ---------- Layout ---------- */
  .layout{display:grid; grid-template-columns:230px 1fr; gap:0; max-width:1360px; margin:0 auto;}
  @media (max-width:880px){ .layout{grid-template-columns:1fr;} .rail{display:none;} .client-strip{grid-template-columns:1fr 1fr;} }

  @media (max-width:600px){
    .topbar{position:static; top:auto; z-index:auto; padding:14px 16px 12px;}
    .topbar-row{gap:12px;}
    .brand-title{font-size:18px;}
    .brand-sub{font-size:9px;}
    .topbar-actions{width:100%; gap:8px;}
    .topbar-actions .btn{flex:1 1 auto; text-align:center; padding:11px 10px; font-size:12px;}
    .client-strip{grid-template-columns:1fr; gap:8px; margin-top:12px;}
    .content{padding:18px 14px 90px;}
    .card{padding:22px 18px; border-radius:4px;}
    .card h2{font-size:22px;}
    .prompt{font-size:15.5px;}
    .row2,.row3{grid-template-columns:1fr;}
    .list-row,.asset-row{grid-template-columns:1fr; gap:8px;}
    .fillblank{font-size:14px; padding:14px 15px;}
    .fillblank input{min-width:100px; width:100%;}
    .entry-card{padding:16px;}
    .panel-nav .btn{padding:12px 16px; font-size:13px;}
    .chip-label{padding:9px 14px; font-size:13px;}
    .rank-controls button{width:34px; height:34px; font-size:14px;}
    .icon-btn{padding:6px 4px; font-size:13px;}
    input, textarea, select{font-size:16px !important;} /* prevents iOS auto-zoom on focus */
    .mobile-section-nav{display:block;}
    .topbar{padding-top:max(14px, env(safe-area-inset-top));}
    .content{padding-bottom:calc(110px + env(safe-area-inset-bottom));}
    .panel-nav{position:sticky;bottom:0;background:linear-gradient(180deg,rgba(30,27,24,0),var(--ink) 32%);padding:28px 2px max(12px,env(safe-area-inset-bottom));z-index:20;}
  }

  /* ---------- Swatch rail ---------- */
  .rail{padding:22px 14px 60px; position:sticky; top:168px; align-self:start; height:calc(100vh - 168px); overflow-y:auto;}
  .swatch{
    display:flex; align-items:center; gap:10px; width:100%; text-align:left;
    background:none; border:none; cursor:pointer; padding:8px 8px; border-radius:3px;
    color:var(--muted); margin-bottom:2px;
  }
  .swatch:hover{background:var(--ink-2);}
  .swatch.active{background:var(--ink-2); color:var(--paper);}
  .swatch-chip{
    width:20px; height:16px; border-radius:1px; flex:none; border:1px solid rgba(0,0,0,0.25);
    box-shadow:inset 0 0 0 1px rgba(255,255,255,0.06);
  }
  .swatch-text{display:flex; flex-direction:column; line-height:1.2;}
  .swatch-num{font-family:'Space Mono',monospace; font-size:9px; color:var(--brass-light); letter-spacing:.08em;}
  .swatch-name{font-size:12px; font-weight:500;}
  .swatch.done .swatch-chip{outline:1px solid var(--sage);}

  /* ---------- Content ---------- */
  .content{padding:30px 32px 120px;}
  .panel{display:none; animation:fade .25s ease;}
  .panel.active{display:block;}
  @keyframes fade{from{opacity:0; transform:translateY(4px);} to{opacity:1; transform:translateY(0);}}

  .card{
    background:var(--paper); color:var(--charcoal); border-radius:3px;
    padding:34px 38px; box-shadow:0 18px 40px rgba(0,0,0,0.28);
  }
  .card-eyebrow{font-family:'Space Mono',monospace; font-size:10.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--clay);}
  .card h2{font-size:28px; margin-top:6px; color:var(--charcoal);}
  .card-intro{font-size:14px; color:#5c5346; margin-top:10px; line-height:1.55; max-width:64ch;}
  .prompt{
    font-family:'Fraunces',serif; font-style:italic; font-size:17px; color:var(--clay);
    margin:22px 0 6px; line-height:1.4;
  }
  .block{margin-top:26px; padding-top:22px; border-top:1px solid var(--line);}
  .block:first-of-type{margin-top:22px;}
  .block-label{font-size:12.5px; font-weight:600; letter-spacing:.02em; color:var(--charcoal); margin-bottom:8px; display:block;}
  .hint{font-size:12px; color:#8a8071; margin-top:5px; line-height:1.5;}

  textarea, .card input[type=text], .card input[type=number], .card select{
    width:100%; font-family:'Inter',sans-serif; font-size:13.5px; color:var(--charcoal);
    background:#fff; border:1px solid rgba(43,38,32,0.18); border-radius:2px; padding:11px 12px;
  }
  textarea{min-height:110px; resize:vertical; line-height:1.55;}
  textarea:focus, .card input:focus, .card select:focus{outline:none; border-color:var(--clay); box-shadow:0 0 0 3px rgba(139,85,64,0.12);}
  .row2{display:grid; grid-template-columns:1fr 1fr; gap:16px;}
  .row3{display:grid; grid-template-columns:1fr 1fr 1fr; gap:16px;}
  @media (max-width:700px){.row2,.row3{grid-template-columns:1fr;}}

  .chipset{display:flex; flex-wrap:wrap; gap:8px; margin-top:4px;}
  .chip-check{display:none;}
  .chip-label{
    font-size:12.5px; padding:7px 13px; border-radius:20px; border:1px solid rgba(43,38,32,0.22);
    cursor:pointer; color:#5c5346; user-select:none; transition:all .12s ease; background:#fff;
  }
  .chip-check:checked + .chip-label{background:var(--clay); border-color:var(--clay); color:#fff;}

  .radio-list{display:flex; flex-direction:column; gap:8px; margin-top:4px;}
  .radio-item{display:flex; align-items:flex-start; gap:9px; font-size:13px; color:#3a352c;}
  .radio-item input{margin-top:3px;}

  .fillblank{
    background:#fff; border:1px dashed rgba(139,85,64,0.4); border-radius:3px; padding:16px 18px;
    font-family:'Fraunces',serif; font-size:15px; color:var(--charcoal); line-height:1.9; margin-top:10px;
  }
  .fillblank input{
    display:inline-block; width:auto; min-width:140px; border:none; border-bottom:1.5px solid var(--clay);
    background:transparent; font-family:'Fraunces',serif; font-style:italic; font-size:15px; padding:2px 4px;
  }
  .fillblank input:focus{outline:none; background:rgba(139,85,64,0.06);}

  /* tag input */
  .tag-input-wrap{background:#fff; border:1px solid rgba(43,38,32,0.18); border-radius:2px; padding:8px; display:flex; flex-wrap:wrap; gap:6px; align-items:center;}
  .tag-input-wrap input{border:none; flex:1; min-width:140px; padding:6px 4px;}
  .tag-input-wrap input:focus{outline:none;}
  .tag{background:var(--charcoal); color:var(--paper); font-size:12px; padding:5px 9px 5px 11px; border-radius:14px; display:flex; align-items:center; gap:6px;}
  .tag button{background:none; border:none; color:var(--paper); opacity:.6; cursor:pointer; font-size:12px; padding:0;}
  .tag button:hover{opacity:1;}

  /* dynamic row cards (services / projects) */
  .entry-card{
    background:#fff; border:1px solid rgba(43,38,32,0.14); border-radius:3px; padding:20px 22px;
    margin-bottom:16px; position:relative;
  }
  .entry-head{display:flex; justify-content:space-between; align-items:center; margin-bottom:14px;}
  .entry-title{font-family:'Space Mono',monospace; font-size:10.5px; text-transform:uppercase; letter-spacing:.1em; color:var(--clay);}
  .icon-btn{background:none; border:none; color:#b3271d; font-size:12px; cursor:pointer; font-weight:600;}
  .icon-btn:hover{text-decoration:underline;}
  .quick-add{margin-bottom:18px;}

  /* fixed-list tables (journey / operating system / assets) */
  .list-row{
    display:grid; grid-template-columns:210px 1fr; gap:16px; padding:14px 0;
    border-bottom:1px solid var(--line); align-items:start;
  }
  .list-row:first-child{padding-top:4px;}
  .list-row-num{font-family:'Space Mono',monospace; font-size:11px; color:var(--clay); display:block; margin-bottom:2px;}
  .list-row-name{font-size:13.5px; font-weight:600; color:var(--charcoal);}
  .asset-row{display:grid; grid-template-columns:1fr 190px 1fr; gap:14px; align-items:center; padding:11px 0; border-bottom:1px solid var(--line);}
  @media (max-width:700px){.list-row,.asset-row{grid-template-columns:1fr;}}

  /* priority ranking */
  .rank-list{display:flex; flex-direction:column; gap:8px; margin-top:10px;}
  .rank-item{
    display:flex; align-items:center; gap:12px; background:#fff; border:1px solid rgba(43,38,32,0.16);
    border-radius:3px; padding:10px 14px;
  }
  .rank-num{font-family:'Space Mono',monospace; color:#fff; background:var(--clay); width:24px; height:24px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:11px; flex:none;}
  .rank-name{flex:1; font-size:13.5px; color:var(--charcoal); font-weight:500;}
  .rank-controls{display:flex; gap:4px;}
  .rank-controls button{background:var(--paper-2); border:1px solid rgba(43,38,32,0.16); border-radius:2px; width:26px; height:26px; cursor:pointer; color:var(--charcoal); font-size:12px;}
  .rank-controls button:hover{background:var(--clay); color:#fff;}

  .checklist{display:flex; flex-direction:column; gap:10px; margin-top:10px;}
  .checklist label{display:flex; gap:10px; align-items:flex-start; font-size:13.5px; color:#3a352c; line-height:1.5;}
  .checklist input{margin-top:3px;}

  .panel-nav{display:flex; justify-content:space-between; margin-top:26px;}

  .banner{
    background:var(--sage); color:#fff; padding:12px 18px; border-radius:3px; font-size:13px; margin-bottom:18px;
    display:none; align-items:center; gap:10px;
  }
  .banner.show{display:flex;}
  .banner.warn{background:var(--clay);}

  .footnote{color:var(--muted); font-size:11.5px; text-align:center; padding:30px 0 10px; font-family:'Space Mono',monospace; letter-spacing:.04em;}

  fieldset{border:none; padding:0; margin:0;}
  fieldset:disabled .card{opacity:.6;}

/* ============================= RC1.1 ENGINE CAPABILITIES ============================= */
.executive-progress{
  margin-top:14px;
  padding:13px 15px 12px;
  border:1px solid rgba(216,190,142,.25);
  background:rgba(38,34,29,.82);
  border-radius:4px;
  box-shadow:0 8px 24px rgba(0,0,0,.12);
}
.executive-progress__head,.executive-progress__meta{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;}
.executive-progress__eyebrow{font-family:'Space Mono',monospace;font-size:8.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--brass-light);}
.executive-progress__section{margin-top:3px;font-family:'Fraunces',serif;font-size:17px;color:var(--paper);}
.executive-progress__percent{font-family:'Space Mono',monospace;font-weight:700;font-size:18px;color:var(--brass-light);}
.executive-progress__track{height:10px;margin:10px 0 8px;background:#151310;border:1px solid rgba(246,241,230,.10);border-radius:999px;overflow:hidden;}
.executive-progress__fill{height:100%;width:0;background:linear-gradient(90deg,var(--clay),var(--brass),var(--brass-light));border-radius:999px;transition:width .25s ease;}
.executive-progress__meta{font-family:'Space Mono',monospace;font-size:9px;letter-spacing:.04em;color:var(--muted);align-items:center;}

.voice-control{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:8px 0 4px;}
.voice-control__button{display:inline-flex;align-items:center;gap:8px;border:1px solid rgba(43,38,32,.22);background:#fff;color:var(--charcoal);border-radius:999px;padding:7px 12px;font-family:'Inter',sans-serif;font-size:11.5px;font-weight:600;cursor:pointer;transition:.15s ease;}
.voice-control__button:hover{border-color:var(--brass);color:var(--clay);}
.voice-control__button.is-recording{background:var(--clay);border-color:var(--clay);color:#fff;box-shadow:0 0 0 4px rgba(139,85,64,.14);}
.voice-control__icon{font-size:12px;color:var(--clay);}
.voice-control__button.is-recording .voice-control__icon{color:#fff;animation:voicePulse 1.15s infinite;}
.voice-control__status{font-size:11px;color:#746b60;line-height:1.35;flex:1 1 240px;}
@keyframes voicePulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.78)}}

@media(max-width:600px){
  .executive-progress{padding:11px 12px;}
  .executive-progress__section{font-size:15px;}
  .executive-progress__percent{font-size:16px;}
  .executive-progress__meta{font-size:8.5px;gap:8px;}
  .voice-control{align-items:flex-start;}
  .voice-control__button{padding:9px 14px;font-size:12px;}
  .voice-control__status{flex-basis:100%;}
}
