:root {
  --cream:#faf8f3; --card:#ffffff; --ink:#1a1a2e; --ink-soft:#4a4a6a;
  --ink-faint:#9090b0; --accent:#534AB7; --accent-soft:#EEEDFE;
  --accent2:#2563eb; --accent2-soft:#eff6ff; --green:#16a34a;
  --green-soft:#f0fdf4; --amber:#d97706; --amber-soft:#fffbeb;
  --coral:#D85A30; --coral-soft:#FAECE7;
  --border:#e8e6e0; --shadow:0 2px 12px rgba(26,26,46,0.07);
  --shadow-lg:0 8px 32px rgba(26,26,46,0.12); --sidebar-width:248px;
}
*{box-sizing:border-box;margin:0;padding:0;}
body{font-family:'DM Sans',sans-serif;background:var(--cream);color:var(--ink);min-height:100vh;}
/* ─ TOPBAR ─ */
.topbar{background:var(--ink);color:white;padding:0 32px;display:flex;align-items:center;justify-content:space-between;height:56px;position:sticky;top:0;z-index:100;box-shadow:0 2px 16px rgba(26,26,46,0.25);}
.topbar-brand{font-family:'Playfair Display',serif;font-size:20px;font-weight:900;letter-spacing:-0.5px;}
.topbar-brand span{color:#8B83E8;}
.topbar-tagline{font-size:11px;color:#888;margin-left:12px;font-family:'DM Mono',monospace;display:none;}
@media(min-width:768px){.topbar-tagline{display:inline;}}
.topbar-right{display:flex;gap:10px;align-items:center;flex-wrap:wrap;}
.btn-save{background:var(--accent);color:white;border:none;border-radius:8px;padding:8px 18px;font-size:13px;font-weight:600;cursor:pointer;font-family:'DM Sans',sans-serif;transition:all 0.15s;}
.btn-save:hover{background:#3f37a0;transform:translateY(-1px);box-shadow:0 4px 12px rgba(83,74,183,0.35);}
.btn-backup{background:transparent;color:#ccc;border:1px solid #444;border-radius:8px;padding:8px 18px;font-size:13px;font-weight:500;cursor:pointer;font-family:'DM Sans',sans-serif;transition:all 0.15s;}
.btn-backup:hover{color:white;border-color:#888;}
.save-status{font-size:11px;color:#888;font-family:'DM Mono',monospace;}
/* ─ LAYOUT ─ */
.layout{display:flex;height:calc(100vh - 56px);overflow:hidden;}
.sidebar{width:var(--sidebar-width);min-width:var(--sidebar-width);background:white;border-right:1px solid var(--border);padding:20px 0;height:100%;overflow-y:auto;display:flex;flex-direction:column;gap:2px;flex-shrink:0;}
.sidebar-label{font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:1.8px;color:var(--ink-faint);padding:14px 16px 5px;}
.sidebar-item{display:flex;align-items:center;gap:10px;padding:9px 14px;border-radius:8px;cursor:pointer;font-size:13px;font-weight:500;color:var(--ink-soft);transition:all 0.12s;margin:1px 8px;border:none;background:none;width:calc(100% - 16px);text-align:left;}
.sidebar-item:hover{background:var(--cream);color:var(--ink);}
.sidebar-item.active{background:var(--accent-soft);color:var(--accent);font-weight:600;}
.sidebar-item .icon{font-size:14px;width:20px;text-align:center;flex-shrink:0;}
.sidebar-progress{padding:14px;margin:6px 8px 12px;background:var(--cream);border-radius:10px;border:1px solid var(--border);}
.sidebar-progress-label{font-size:10px;font-weight:700;color:var(--ink-soft);margin-bottom:7px;text-transform:uppercase;letter-spacing:0.8px;}
.sidebar-progress-bar{height:6px;background:var(--border);border-radius:3px;overflow:hidden;}
.sidebar-progress-fill{height:100%;background:linear-gradient(90deg,var(--accent),#8B83E8);border-radius:3px;transition:width 0.6s ease;}
.sidebar-progress-num{font-size:10.5px;color:var(--ink-faint);margin-top:5px;font-family:'DM Mono',monospace;}
/* ─ MAIN ─ */
.main{flex:1;padding:32px;overflow-y:auto;height:100%;}
.main > .panel{max-width:1100px;}
.panel{display:none;animation:fadeIn 0.2s ease;}
.panel.active{display:block;}
@keyframes fadeIn{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:translateY(0);}}
.page-header{margin-bottom:24px;}
.page-title{font-family:'Playfair Display',serif;font-size:28px;font-weight:900;color:var(--ink);line-height:1.2;}
.page-subtitle{font-size:14px;color:var(--ink-soft);margin-top:6px;line-height:1.5;}
/* ─ STAT CARDS ─ */
.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:14px;margin-bottom:24px;}
.stat-card{background:white;border:1px solid var(--border);border-radius:12px;padding:18px;box-shadow:var(--shadow);transition:all 0.15s;}
.stat-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px);}
.stat-card .stat-label{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--ink-faint);}
.stat-card .stat-value{font-family:'Playfair Display',serif;font-size:28px;font-weight:700;margin:6px 0 2px;color:var(--ink);}
.stat-card .stat-sub{font-size:11px;color:var(--ink-soft);line-height:1.4;}
.stat-card.accent{border-left:3px solid var(--accent);}
.stat-card.green{border-left:3px solid var(--green);}
.stat-card.blue{border-left:3px solid var(--accent2);}
.stat-card.amber{border-left:3px solid var(--amber);}
.stat-card.coral{border-left:3px solid var(--coral);}
/* ─ CARDS ─ */
.card{background:white;border:1px solid var(--border);border-radius:14px;padding:24px;margin-bottom:20px;box-shadow:var(--shadow);}
.card-title{font-size:15px;font-weight:700;color:var(--ink);margin-bottom:16px;display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.card-title .badge{font-size:10px;font-weight:600;padding:3px 8px;border-radius:20px;}
.badge-purple{background:var(--accent-soft);color:var(--accent);}
.badge-red{background:#fef2f2;color:#dc2626;}
.badge-green{background:var(--green-soft);color:var(--green);}
.badge-amber{background:var(--amber-soft);color:var(--amber);}
.badge-blue{background:var(--accent2-soft);color:var(--accent2);}
.badge-coral{background:var(--coral-soft);color:var(--coral);}
/* ─ TASK ITEMS ─ */
.task-group{margin-bottom:24px;}
.task-group-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:1.2px;color:var(--ink-faint);margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;}
.task-item{display:flex;align-items:flex-start;gap:12px;padding:13px 14px;border-radius:10px;margin-bottom:8px;border:1px solid var(--border);background:white;transition:all 0.12s;cursor:pointer;position:relative;}
.task-item:hover{border-color:#ccc;box-shadow:var(--shadow);}
.task-item.done{background:var(--green-soft);border-color:#bbf7d0;}
.task-item.done .task-title{text-decoration:line-through;color:var(--ink-faint);}
.task-checkbox{width:21px;height:21px;border:2px solid var(--border);border-radius:6px;flex-shrink:0;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all 0.15s;margin-top:1px;background:white;font-size:12px;font-weight:700;color:white;}
.task-item.done .task-checkbox{background:var(--green);border-color:var(--green);}
.task-content{flex:1;min-width:0;}
.task-title{font-size:14px;font-weight:500;color:var(--ink);line-height:1.4;}
.task-meta{font-size:11px;color:var(--ink-faint);margin-top:4px;display:flex;gap:8px;align-items:center;flex-wrap:wrap;}
.task-expand{font-size:11px;color:var(--accent);cursor:pointer;font-weight:600;white-space:nowrap;padding:3px 8px;border-radius:4px;background:var(--accent-soft);transition:all 0.12s;margin-top:6px;display:inline-block;user-select:none;}
.task-expand:hover{background:#d8d5f7;}
/* ─ STEPS ─ */
.task-steps{display:none;margin-top:12px;background:#f8f7ff;border:1px solid #e8e6f5;border-radius:10px;overflow:hidden;}
.task-steps.open{display:block;}
.task-steps-header{background:var(--ink);color:white;padding:10px 14px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:1px;display:flex;align-items:center;gap:6px;}
.task-steps-body{padding:14px 16px;}
.step-list{list-style:none;padding:0;}
.step-list li{display:flex;gap:10px;align-items:flex-start;padding:9px 0;border-bottom:1px solid #eceaf8;font-size:13px;color:var(--ink-soft);line-height:1.6;}
.step-list li:last-child{border-bottom:none;}
.step-num{flex-shrink:0;width:22px;height:22px;background:var(--accent);color:white;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;margin-top:1px;}
.step-body{flex:1;}
.step-body strong{color:var(--ink);font-weight:600;}
.step-body code{font-family:'DM Mono',monospace;font-size:11px;background:#e8e6f8;padding:1px 6px;border-radius:4px;color:#3730a3;}
.step-tip{display:flex;gap:8px;align-items:flex-start;font-size:12px;color:#1e40af;background:#dbeafe;padding:10px 12px;border-radius:7px;margin-top:10px;border-left:3px solid var(--accent2);line-height:1.5;}
.step-warning{display:flex;gap:8px;align-items:flex-start;font-size:12px;color:#92400e;background:#fef3c7;padding:10px 12px;border-radius:7px;margin-top:10px;border-left:3px solid var(--amber);line-height:1.5;}
.step-danger{display:flex;gap:8px;align-items:flex-start;font-size:12px;color:#991b1b;background:#fef2f2;padding:10px 12px;border-radius:7px;margin-top:10px;border-left:3px solid #dc2626;line-height:1.5;}
/* ─ PRIORITY ─ */
.priority{display:inline-flex;align-items:center;gap:3px;font-size:10px;font-weight:700;padding:2px 7px;border-radius:4px;}
.priority-critical{background:#fef2f2;color:#dc2626;}
.priority-high{background:var(--amber-soft);color:var(--amber);}
.priority-medium{background:var(--accent2-soft);color:var(--accent2);}
.priority-low{background:var(--green-soft);color:var(--green);}
/* ─ CHIPS ─ */
.chip{display:inline-flex;align-items:center;padding:3px 10px;border-radius:20px;font-size:11px;font-weight:500;border:1px solid var(--border);background:white;color:var(--ink-soft);}
.chip.green{background:var(--green-soft);border-color:#bbf7d0;color:var(--green);}
.chip.amber{background:var(--amber-soft);border-color:#fde68a;color:var(--amber);}
.chip.red{background:#fef2f2;border-color:#fecaca;color:#dc2626;}
.chip.blue{background:var(--accent2-soft);border-color:#bfdbfe;color:var(--accent2);}
.chip.purple{background:var(--accent-soft);border-color:#c4c0f0;color:var(--accent);}
/* ─ ALERTS ─ */
.alert{padding:14px 16px;border-radius:10px;margin-bottom:16px;font-size:13px;display:flex;gap:10px;align-items:flex-start;line-height:1.5;}
.alert-icon{font-size:16px;flex-shrink:0;margin-top:1px;}
.alert-body{flex:1;}
.alert-body strong{font-weight:600;}
.alert.success{background:var(--green-soft);border:1px solid #bbf7d0;color:#166534;}
.alert.warning{background:var(--amber-soft);border:1px solid #fde68a;color:#92400e;}
.alert.info{background:var(--accent2-soft);border:1px solid #bfdbfe;color:#1e40af;}
.alert.danger{background:#fef2f2;border:1px solid #fecaca;color:#991b1b;}
.alert.purple{background:var(--accent-soft);border:1px solid #c4c0f0;color:#3f37a0;}
/* ─ KILL LIST ─ */
.kill-item{display:flex;align-items:flex-start;gap:10px;padding:11px 14px;border-radius:8px;background:#fef2f2;border:1px solid #fecaca;margin-bottom:8px;}
.kill-item .ki-icon{font-size:13px;flex-shrink:0;margin-top:1px;color:#dc2626;}
.kill-item .ki-text{font-size:13px;color:#991b1b;line-height:1.4;}
.kill-item .ki-text strong{color:#7f1d1d;}
/* ─ MATRIX TABLE ─ */
.matrix-table{width:100%;border-collapse:collapse;font-size:13px;}
.matrix-table th{text-align:left;padding:10px 14px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--ink-faint);border-bottom:2px solid var(--border);background:var(--cream);}
.matrix-table td{padding:11px 14px;border-bottom:1px solid var(--border);color:var(--ink-soft);}
.matrix-table tr:last-child td{border-bottom:none;}
.matrix-table tr:hover td{background:var(--cream);}
/* ─ PHASE CARDS ─ */
.phase-card{border:1px solid var(--border);border-radius:12px;margin-bottom:14px;overflow:hidden;}
.phase-header{padding:16px 20px;display:flex;align-items:center;justify-content:space-between;cursor:pointer;background:white;transition:background 0.12s;user-select:none;}
.phase-header:hover{background:var(--cream);}
.phase-title{font-size:15px;font-weight:700;color:var(--ink);display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.phase-meta{font-size:12px;color:var(--ink-faint);font-family:'DM Mono',monospace;}
.phase-body{display:none;padding:0 20px 20px;background:white;border-top:1px solid var(--border);}
.phase-body.open{display:block;}
.phase-step{display:flex;gap:12px;padding:12px 0;border-bottom:1px solid var(--border);}
.phase-step:last-child{border-bottom:none;}
.phase-step-num{width:26px;height:26px;background:var(--accent);color:white;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;flex-shrink:0;margin-top:1px;}
.phase-step-num.green{background:var(--green);}
.phase-step-num.amber{background:var(--amber);}
.phase-step-content{flex:1;}
.phase-step-title{font-size:13.5px;font-weight:600;color:var(--ink);}
.phase-step-desc{font-size:12px;color:var(--ink-soft);margin-top:4px;line-height:1.5;}
/* ─ PROGRESS ─ */
.progress-wrap{margin-bottom:20px;}
.progress-bar-main{height:10px;background:var(--border);border-radius:5px;overflow:hidden;}
.progress-bar-fill{height:100%;background:linear-gradient(90deg,var(--accent),#8B83E8);border-radius:5px;transition:width 0.6s ease;}
.progress-label{font-size:12px;color:var(--ink-soft);margin-top:7px;display:flex;justify-content:space-between;}
/* ─ GUIDE BOX ─ */
.guide-box{background:linear-gradient(135deg,#1a1a2e 0%,#16213e 100%);border-radius:12px;padding:20px;margin-bottom:20px;color:white;}
.guide-box-title{font-family:'Playfair Display',serif;font-size:18px;font-weight:700;margin-bottom:8px;}
.guide-box-body{font-size:13px;color:#ccc;line-height:1.6;}
.guide-box-steps{margin-top:12px;display:flex;flex-direction:column;gap:8px;}
.guide-box-step{display:flex;gap:10px;align-items:flex-start;}
.guide-box-step-num{flex-shrink:0;width:22px;height:22px;background:var(--accent);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;}
.guide-box-step-text{font-size:13px;color:#ddd;line-height:1.5;}
/* ─ SECTION INTRO ─ */
.section-intro{font-size:14px;color:var(--ink-soft);line-height:1.7;margin-bottom:20px;padding:16px 20px;background:var(--accent-soft);border-radius:10px;border-left:3px solid var(--accent);}
/* ─ NOTES ─ */
.notes-area{width:100%;min-height:180px;border:1px solid var(--border);border-radius:10px;padding:14px;font-family:'DM Sans',sans-serif;font-size:14px;color:var(--ink);background:white;resize:vertical;outline:none;line-height:1.6;transition:border-color 0.15s;}
.notes-area:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(83,74,183,0.08);}
/* ─ BACKUP MODAL ─ */
.modal-overlay{display:none;position:fixed;inset:0;background:rgba(26,26,46,0.6);z-index:1000;align-items:center;justify-content:center;backdrop-filter:blur(3px);}
.modal-overlay.open{display:flex;}
.modal{background:white;border-radius:16px;padding:32px;max-width:580px;width:90%;box-shadow:var(--shadow-lg);animation:fadeIn 0.2s ease;max-height:90vh;overflow-y:auto;}
.modal-title{font-family:'Playfair Display',serif;font-size:22px;font-weight:700;margin-bottom:8px;}
.modal-sub{font-size:13px;color:var(--ink-soft);margin-bottom:20px;line-height:1.6;}
.modal-textarea{width:100%;height:160px;font-family:'DM Mono',monospace;font-size:11px;border:1px solid var(--border);border-radius:8px;padding:12px;resize:none;outline:none;background:var(--cream);}
.modal-textarea:focus{border-color:var(--accent);}
.modal-actions{display:flex;gap:10px;margin-top:16px;justify-content:flex-end;flex-wrap:wrap;}
.btn-primary{background:var(--accent);color:white;border:none;border-radius:8px;padding:10px 20px;font-size:13px;font-weight:600;cursor:pointer;font-family:'DM Sans',sans-serif;transition:all 0.15s;}
.btn-primary:hover{background:#3f37a0;}
.btn-secondary{background:white;color:var(--ink);border:1px solid var(--border);border-radius:8px;padding:10px 20px;font-size:13px;font-weight:500;cursor:pointer;font-family:'DM Sans',sans-serif;transition:all 0.15s;}
.btn-secondary:hover{border-color:#aaa;}
/* ─ TWO COL ─ */
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
.three-col{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px;}
@media(max-width:900px){.two-col,.three-col{grid-template-columns:1fr;}}
/* ─ TREE ─ */
.arch-tree{font-family:'DM Mono',monospace;font-size:12px;background:#f5f4ff;border:1px solid #e0ddf7;border-radius:10px;padding:16px 18px;line-height:1.9;color:var(--ink-soft);overflow-x:auto;white-space:pre;}
.arch-tree .hl{color:var(--accent);font-weight:700;}
.arch-tree .hl2{color:var(--green);font-weight:700;}
/* ─ PRINCIPLES ─ */
.principle-item{display:flex;gap:14px;padding:14px 16px;border:1px solid var(--border);border-radius:10px;margin-bottom:8px;background:white;}
.principle-num{flex-shrink:0;width:28px;height:28px;background:var(--accent);color:white;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;margin-top:1px;}
.principle-content .principle-title{font-size:13.5px;font-weight:600;color:var(--ink);margin-bottom:4px;}
.principle-content .principle-desc{font-size:12px;color:var(--ink-soft);line-height:1.5;}
/* ─ MOBILE ─ */
.btn-menu-toggle{display:none;background:none;border:none;color:white;font-size:20px;cursor:pointer;padding:4px 8px;line-height:1;}
.mobile-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.5);z-index:149;}
.mobile-overlay.open{display:block;}
@media(max-width:768px){
  .btn-menu-toggle{display:block;}
  .sidebar{display:flex!important;position:fixed;left:-260px;top:56px;height:100%;z-index:150;transition:left 0.25s ease;}
  .sidebar.mobile-open{left:0;box-shadow:4px 0 20px rgba(26,26,46,0.2);}
  .main{padding:16px;}
  .topbar{padding:0 16px;}
  .topbar-right .save-status{display:none;}
  .stats-grid{grid-template-columns:repeat(2,1fr);}
  .page-title{font-size:22px;}
}
/* ─ MISC ─ */
.divider{height:1px;background:var(--border);margin:24px 0;}
code{font-family:'DM Mono',monospace;font-size:12px;background:#f1f0fa;padding:2px 6px;border-radius:4px;border:1px solid #ddd;color:#3730a3;}
::-webkit-scrollbar{width:6px;}
::-webkit-scrollbar-track{background:var(--cream);}
::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px;}

/* ══════════════════════════════════════════════════════════════════════
   V2 — PLATFORM LAYER / OPERATING SYSTEM ADDITIONS
   ══════════════════════════════════════════════════════════════════════ */

/* ─ SELECT / NUMBER MINI CONTROLS ─ */
.sel-mini{font-family:'DM Sans',sans-serif;font-size:11px;font-weight:600;border:1px solid var(--border);border-radius:6px;padding:4px 7px;background:var(--cream);color:var(--ink-soft);cursor:pointer;outline:none;}
.sel-mini:focus{border-color:var(--accent);}
.num-mini{font-family:'DM Mono',monospace;font-size:12px;border:1px solid var(--border);border-radius:6px;padding:5px 8px;background:white;color:var(--ink);width:100%;outline:none;}
.num-mini:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(83,74,183,0.08);}
.field-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:0.7px;color:var(--ink-faint);margin-bottom:4px;display:block;}

/* ─ STATUS BADGES ─ */
.status-badge{display:inline-flex;align-items:center;gap:5px;font-size:10.5px;font-weight:700;padding:3px 9px;border-radius:20px;white-space:nowrap;}
.status-idea{background:#f1f0fa;color:#6b6b8f;}
.status-planned{background:var(--accent2-soft);color:var(--accent2);}
.status-inprogress{background:var(--amber-soft);color:var(--amber);}
.status-blocked{background:#fef2f2;color:#dc2626;}
.status-live{background:var(--green-soft);color:var(--green);}
.status-badge::before{content:'●';font-size:8px;}

/* ─ MODULE CARD (Platform hub) ─ */
.module-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:16px;}
.module-card{background:white;border:1px solid var(--border);border-radius:14px;padding:20px;box-shadow:var(--shadow);transition:box-shadow 0.15s;}
.module-card:hover{box-shadow:var(--shadow-lg);}
.module-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:10px;}
.module-card-name{font-size:15.5px;font-weight:700;color:var(--ink);display:flex;align-items:center;gap:8px;}
.module-card-icon{font-size:18px;}
.module-card-tagline{font-size:12px;color:var(--ink-soft);line-height:1.5;margin-bottom:12px;}
.module-progress-row{display:flex;align-items:center;gap:10px;margin-bottom:4px;}
.module-progress-row .progress-bar-main{flex:1;height:7px;}
.module-progress-num{font-family:'DM Mono',monospace;font-size:11px;color:var(--ink-faint);min-width:34px;text-align:right;}
.module-meta-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:12px 0;}
.module-section-label{font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--ink-faint);margin:12px 0 6px;}
.module-deps{display:flex;flex-wrap:wrap;gap:6px;}
.dep-chip{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:600;padding:3px 9px;border-radius:7px;cursor:pointer;border:1px solid transparent;transition:all 0.12s;}
.dep-chip:hover{transform:translateY(-1px);}
.dep-chip.dep-on{background:#f1f0fa;color:#534AB7;border-color:#e0ddf7;}
.dep-chip.dep-blocks{background:#fff1ee;color:#c2410c;border-color:#fed7c8;}
.dep-chip.dep-feature{background:var(--accent2-soft);color:var(--accent2);border-color:#bfdbfe;}
.dep-chip.dep-product{background:var(--green-soft);color:var(--green);border-color:#bbf7d0;}
.dep-chip.dep-on.dep-done::before{content:'✓ ';}
.dep-chip.dep-on.dep-pending::before{content:'○ ';}
.module-card-footer{display:flex;align-items:center;justify-content:space-between;margin-top:14px;padding-top:12px;border-top:1px solid var(--border);}
.module-link{font-size:11.5px;font-weight:600;color:var(--accent);cursor:pointer;text-decoration:none;}
.module-link:hover{text-decoration:underline;}
.module-toggle{font-size:11.5px;font-weight:600;color:var(--ink-soft);cursor:pointer;user-select:none;padding:3px 8px;border-radius:6px;background:var(--cream);}
.module-toggle:hover{background:#f0eee5;}
.module-details{display:none;margin-top:14px;padding-top:14px;border-top:1px solid var(--border);}
.module-details.open{display:block;}
.module-checklist-mini{list-style:none;padding:0;margin:0;}
.module-checklist-mini li{display:flex;align-items:center;gap:8px;padding:6px 0;font-size:12.5px;color:var(--ink-soft);border-bottom:1px solid #f3f2ec;}
.module-checklist-mini li:last-child{border-bottom:none;}
.module-checklist-mini li.done{color:var(--ink-faint);text-decoration:line-through;}
.mini-cb{width:16px;height:16px;border:2px solid var(--border);border-radius:5px;flex-shrink:0;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;color:white;background:white;}
.mini-cb.done{background:var(--green);border-color:var(--green);}
.module-notes-area{width:100%;min-height:70px;border:1px solid var(--border);border-radius:8px;padding:10px;font-family:'DM Sans',sans-serif;font-size:12.5px;color:var(--ink);background:var(--cream);resize:vertical;outline:none;margin-top:6px;}
.module-notes-area:focus{border-color:var(--accent);background:white;}

/* ─ MATURITY STEPPER ─ */
.maturity-row{display:flex;align-items:center;gap:8px;}
.maturity-track{display:flex;gap:2px;}
.maturity-dot{width:13px;height:7px;border-radius:2px;background:var(--border);}
.maturity-dot.filled{background:linear-gradient(90deg,var(--accent),#8B83E8);}
.maturity-label{font-size:10.5px;color:var(--ink-faint);font-family:'DM Mono',monospace;white-space:nowrap;}

/* ─ STAR RATING (impact score) ─ */
.impact-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 14px;}
.impact-row{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:11.5px;color:var(--ink-soft);}
.star-rate{display:inline-flex;gap:2px;cursor:pointer;}
.star-rate span{font-size:13px;color:#ddd;transition:color 0.1s;}
.star-rate span.lit{color:#f5a524;}
.star-rate.risk span.lit{color:#dc2626;}
.star-rate:hover span{color:#f5a524;}

/* ─ DEPENDENCY / BUILD ORDER FLOW ─ */
.flow-chain{display:flex;flex-direction:column;align-items:center;max-width:480px;margin:0 auto;}
.flow-node{width:100%;background:white;border:2px solid var(--border);border-radius:14px;padding:18px 22px;text-align:center;box-shadow:var(--shadow);position:relative;transition:all 0.15s;}
.flow-node.done{border-color:#bbf7d0;background:var(--green-soft);}
.flow-node.current{border-color:var(--accent);box-shadow:0 0 0 4px rgba(83,74,183,0.12),var(--shadow-lg);}
.flow-node.pending{opacity:0.55;}
.flow-node-title{font-size:15px;font-weight:700;color:var(--ink);}
.flow-node-sub{font-size:11.5px;color:var(--ink-soft);margin-top:4px;line-height:1.5;}
.flow-node-pct{font-family:'DM Mono',monospace;font-size:11px;color:var(--ink-faint);margin-top:8px;}
.flow-node-tag{position:absolute;top:-10px;right:14px;background:var(--accent);color:white;font-size:10px;font-weight:700;padding:3px 10px;border-radius:20px;}
.flow-arrow{font-size:20px;color:var(--ink-faint);margin:2px 0;line-height:1;}

/* ─ COCKPIT (founder dashboard) ─ */
.cockpit-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:16px;margin-bottom:20px;}
@media(max-width:900px){.cockpit-grid{grid-template-columns:1fr;}}
.mission-card{background:linear-gradient(135deg,#1a1a2e 0%,#2d2a52 100%);border-radius:16px;padding:24px 26px;color:white;position:relative;overflow:hidden;}
.mission-card::after{content:'🎯';position:absolute;font-size:90px;opacity:0.07;right:10px;top:-10px;}
.mission-eyebrow{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:1.5px;color:#a8a0e8;margin-bottom:8px;}
.mission-title{font-family:'Playfair Display',serif;font-size:21px;font-weight:700;line-height:1.3;margin-bottom:10px;}
.mission-meta{display:flex;gap:16px;flex-wrap:wrap;font-size:12.5px;color:#cfcce8;margin-top:12px;}
.mission-meta b{color:white;}
.mini-stack{display:flex;flex-direction:column;gap:12px;}
.mini-tile{background:white;border:1px solid var(--border);border-radius:12px;padding:14px 16px;display:flex;align-items:center;justify-content:space-between;box-shadow:var(--shadow);}
.mini-tile-label{font-size:11px;color:var(--ink-faint);font-weight:600;}
.mini-tile-value{font-family:'Playfair Display',serif;font-size:18px;font-weight:700;color:var(--ink);}
.activity-feed{list-style:none;padding:0;margin:0;}
.activity-feed li{display:flex;gap:10px;align-items:baseline;padding:8px 0;border-bottom:1px solid #f3f2ec;font-size:12.5px;color:var(--ink-soft);}
.activity-feed li:last-child{border-bottom:none;}
.activity-feed .dot{width:6px;height:6px;border-radius:50%;background:var(--green);flex-shrink:0;}
.activity-feed .time{color:var(--ink-faint);font-family:'DM Mono',monospace;font-size:10.5px;margin-left:auto;white-space:nowrap;}

/* ─ GAUGE (platform health) ─ */
.gauge-wrap{display:flex;align-items:center;gap:24px;flex-wrap:wrap;}
.gauge-num{font-family:'Playfair Display',serif;font-size:36px;font-weight:900;}
.health-bars{flex:1;min-width:240px;display:flex;flex-direction:column;gap:10px;}
.health-bar-row{display:flex;align-items:center;gap:10px;}
.health-bar-label{font-size:12px;color:var(--ink-soft);width:108px;flex-shrink:0;}
.health-bar-track{flex:1;height:8px;background:var(--border);border-radius:4px;overflow:hidden;}
.health-bar-fill{height:100%;border-radius:4px;background:linear-gradient(90deg,var(--accent),#8B83E8);}
.health-slider{flex:1;-webkit-appearance:none;height:6px;border-radius:3px;background:var(--border);outline:none;}
.health-slider::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;border-radius:50%;background:var(--accent);cursor:pointer;border:2px solid white;box-shadow:0 1px 4px rgba(0,0,0,0.3);}
.health-slider::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:var(--accent);cursor:pointer;border:2px solid white;}
.health-val{font-family:'DM Mono',monospace;font-size:12px;color:var(--ink-soft);width:38px;text-align:right;flex-shrink:0;}

/* ─ CHARTS (pure SVG / CSS, no libraries) ─ */
.chart-card{background:white;border:1px solid var(--border);border-radius:14px;padding:22px 24px;box-shadow:var(--shadow);margin-bottom:20px;}
.bar-chart{display:flex;align-items:flex-end;gap:16px;height:160px;padding-top:10px;}
.bar-chart-col{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;gap:6px;}
.bar-chart-bar{width:100%;max-width:46px;border-radius:6px 6px 2px 2px;background:linear-gradient(180deg,#8B83E8,var(--accent));transition:height 0.4s ease;min-height:2px;}
.bar-chart-val{font-family:'DM Mono',monospace;font-size:11px;color:var(--ink-soft);}
.bar-chart-label{font-size:10.5px;color:var(--ink-faint);text-align:center;font-weight:600;}
.donut-legend{display:flex;flex-direction:column;gap:8px;}
.donut-legend-row{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--ink-soft);}
.donut-legend-swatch{width:10px;height:10px;border-radius:3px;flex-shrink:0;}
.donut-wrap{display:flex;align-items:center;gap:28px;flex-wrap:wrap;}

/* ─ TECH DEBT ─ */
.debt-row{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--border);border-radius:10px;margin-bottom:8px;background:white;}
.debt-sev{font-size:9.5px;font-weight:700;padding:3px 8px;border-radius:5px;text-transform:uppercase;letter-spacing:0.5px;flex-shrink:0;}
.debt-sev.critical{background:#fef2f2;color:#dc2626;}
.debt-sev.high{background:var(--amber-soft);color:var(--amber);}
.debt-sev.medium{background:var(--accent2-soft);color:var(--accent2);}
.debt-sev.low{background:var(--green-soft);color:var(--green);}
.debt-title{flex:1;font-size:13px;color:var(--ink);}
.debt-hours{font-family:'DM Mono',monospace;font-size:11.5px;color:var(--ink-faint);white-space:nowrap;}
.debt-del{cursor:pointer;color:#dc2626;font-size:13px;padding:4px 6px;border-radius:5px;}
.debt-del:hover{background:#fef2f2;}
.add-form{display:flex;gap:8px;flex-wrap:wrap;align-items:flex-end;background:var(--cream);border:1px solid var(--border);border-radius:10px;padding:14px;margin-bottom:18px;}
.add-form .field{display:flex;flex-direction:column;gap:4px;}
.add-form input[type=text]{font-family:'DM Sans',sans-serif;font-size:12.5px;border:1px solid var(--border);border-radius:7px;padding:8px 10px;outline:none;min-width:180px;}
.add-form input[type=text]:focus{border-color:var(--accent);}
.add-form input[type=number]{font-family:'DM Mono',monospace;font-size:12.5px;border:1px solid var(--border);border-radius:7px;padding:8px 10px;outline:none;width:80px;}

/* ─ ADR CARDS ─ */
.adr-card{border:1px solid var(--border);border-radius:12px;padding:16px 18px;margin-bottom:10px;background:white;position:relative;}
.adr-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;gap:10px;}
.adr-title{font-size:14px;font-weight:700;color:var(--ink);}
.adr-date{font-family:'DM Mono',monospace;font-size:10.5px;color:var(--ink-faint);white-space:nowrap;}
.adr-field{font-size:12px;color:var(--ink-soft);margin-top:6px;line-height:1.5;}
.adr-field b{color:var(--ink);font-weight:600;}

/* ─ FUTURE PRODUCTS ─ */
.future-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;}
.future-card{border:1.5px dashed var(--border);border-radius:14px;padding:18px;text-align:center;background:#fdfcf9;transition:all 0.15s;}
.future-card:hover{border-color:var(--accent);background:white;}
.future-icon{font-size:26px;margin-bottom:8px;}
.future-name{font-size:13.5px;font-weight:700;color:var(--ink);}
.future-desc{font-size:11px;color:var(--ink-soft);margin-top:4px;line-height:1.4;}

/* ─ READINESS ─ */
.readiness-table{width:100%;border-collapse:collapse;font-size:12.5px;}
.readiness-table th{text-align:left;padding:9px 10px;font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:0.6px;color:var(--ink-faint);border-bottom:2px solid var(--border);}
.readiness-table td{padding:9px 10px;border-bottom:1px solid var(--border);}
.ready-pill{font-size:10.5px;font-weight:700;padding:3px 10px;border-radius:20px;}
.ready-pill.yes{background:var(--green-soft);color:var(--green);}
.ready-pill.no{background:#fef2f2;color:#dc2626;}

@media(max-width:768px){
  .module-grid{grid-template-columns:1fr;}
  .gauge-wrap{flex-direction:column;align-items:flex-start;}
}

/* ══════════════════════════════════════════════════════════════════════
   V3 — BIBLE EDITION ADDITIONS (Security, QA, Timeline, Marketing/Growth)
   ══════════════════════════════════════════════════════════════════════ */

/* ─ TIMELINE (1wk → 5yr horizon view) ─ */
.timeline-rail{position:relative;padding-left:28px;margin:8px 0;}
.timeline-rail::before{content:'';position:absolute;left:9px;top:6px;bottom:6px;width:2px;background:linear-gradient(180deg,var(--accent),var(--border));}
.timeline-block{position:relative;margin-bottom:22px;}
.timeline-dot{position:absolute;left:-28px;top:2px;width:20px;height:20px;border-radius:50%;background:white;border:3px solid var(--accent);z-index:2;}
.timeline-block.done .timeline-dot{background:var(--green);border-color:var(--green);}
.timeline-horizon{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:1.3px;color:var(--accent);margin-bottom:4px;}
.timeline-card{background:white;border:1px solid var(--border);border-radius:12px;padding:16px 18px;box-shadow:var(--shadow);}
.timeline-card-title{font-size:14.5px;font-weight:700;color:var(--ink);margin-bottom:4px;}
.timeline-card-sub{font-size:12px;color:var(--ink-soft);line-height:1.5;margin-bottom:10px;}

/* ─ HORIZON TABS (1W/1M/3M/6M/1Y/2-5Y switcher) ─ */
.horizon-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:18px;}
.horizon-tab{background:white;border:1px solid var(--border);border-radius:20px;padding:8px 16px;font-size:12.5px;font-weight:600;color:var(--ink-soft);cursor:pointer;transition:all 0.12s;}
.horizon-tab:hover{border-color:var(--accent);color:var(--accent);}
.horizon-tab.active{background:var(--accent);border-color:var(--accent);color:white;}
.horizon-panel{display:none;}
.horizon-panel.active{display:block;animation:fadeIn 0.2s ease;}

/* ─ SECURITY / QA SEVERITY CARDS ─ */
.sec-category{margin-bottom:26px;}
.sec-category-head{display:flex;align-items:center;gap:10px;margin-bottom:10px;padding-bottom:8px;border-bottom:2px solid var(--border);}
.sec-category-title{font-size:15px;font-weight:700;color:var(--ink);}
.sec-category-count{font-size:11px;color:var(--ink-faint);font-family:'DM Mono',monospace;margin-left:auto;}

/* ─ METRIC / KPI STRIP ─ */
.kpi-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:20px;}
.kpi-tile{background:white;border:1px solid var(--border);border-radius:10px;padding:14px 16px;}
.kpi-tile-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:0.8px;color:var(--ink-faint);}
.kpi-tile-value{font-family:'Playfair Display',serif;font-size:22px;font-weight:700;color:var(--ink);margin-top:4px;}
.kpi-tile-target{font-size:11px;color:var(--ink-soft);margin-top:2px;}

/* ─ PLAYBOOK / CHANNEL CARDS (marketing) ─ */
.channel-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;margin-bottom:20px;}
.channel-card{background:white;border:1px solid var(--border);border-radius:14px;padding:18px 20px;box-shadow:var(--shadow);}
.channel-card-head{display:flex;align-items:center;gap:10px;margin-bottom:8px;}
.channel-card-icon{font-size:20px;}
.channel-card-name{font-size:14.5px;font-weight:700;color:var(--ink);}
.channel-card-effort{margin-left:auto;}
.channel-card-desc{font-size:12px;color:var(--ink-soft);line-height:1.55;margin-bottom:10px;}
.channel-tactics{list-style:none;padding:0;margin:0;}
.channel-tactics li{font-size:12px;color:var(--ink-soft);padding:5px 0 5px 16px;position:relative;border-bottom:1px solid #f3f2ec;line-height:1.5;}
.channel-tactics li:last-child{border-bottom:none;}
.channel-tactics li::before{content:'→';position:absolute;left:0;color:var(--accent);font-weight:700;}

/* ─ FUNNEL ─ */
.funnel-wrap{display:flex;flex-direction:column;gap:4px;max-width:560px;margin:0 auto;}
.funnel-row{display:flex;align-items:center;gap:14px;}
.funnel-bar{background:linear-gradient(90deg,var(--accent),#8B83E8);border-radius:8px;padding:12px 16px;color:white;font-size:12.5px;font-weight:600;flex-shrink:0;}
.funnel-label{font-size:12px;color:var(--ink-soft);white-space:nowrap;}

/* ─ PERSONA CARDS ─ */
.persona-card{background:white;border:1px solid var(--border);border-radius:14px;padding:20px;box-shadow:var(--shadow);margin-bottom:14px;}
.persona-head{display:flex;align-items:center;gap:12px;margin-bottom:10px;}
.persona-avatar{width:40px;height:40px;border-radius:50%;background:var(--accent-soft);display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0;}
.persona-name{font-size:14.5px;font-weight:700;color:var(--ink);}
.persona-role{font-size:11.5px;color:var(--ink-faint);}
.persona-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 16px;margin-top:10px;}
.persona-field-label{font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:0.7px;color:var(--ink-faint);margin-bottom:3px;}
.persona-field-val{font-size:12px;color:var(--ink-soft);line-height:1.5;}

/* ─ COMPETITOR TABLE ─ */
.compete-table{width:100%;border-collapse:collapse;font-size:12.5px;}
.compete-table th{text-align:left;padding:10px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:0.6px;color:var(--ink-faint);border-bottom:2px solid var(--border);}
.compete-table td{padding:10px;border-bottom:1px solid var(--border);vertical-align:top;line-height:1.5;}
.compete-table tr:last-child td{border-bottom:none;}

/* ─ NORTH STAR BANNER ─ */
.northstar{background:linear-gradient(135deg,#1a1a2e 0%,#2d2a52 100%);border-radius:16px;padding:26px 28px;color:white;margin-bottom:22px;position:relative;overflow:hidden;}
.northstar::after{content:'🧭';position:absolute;font-size:100px;opacity:0.06;right:0;top:-14px;}
.northstar-eyebrow{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:1.6px;color:#a8a0e8;margin-bottom:10px;}
.northstar-title{font-family:'Playfair Display',serif;font-size:24px;font-weight:700;line-height:1.35;max-width:760px;}
.northstar-sub{font-size:13px;color:#cfcce8;margin-top:10px;max-width:700px;line-height:1.6;}

/* ─ SEVERITY-TAGGED CHECKLIST ROW VARIANT (security) ─ */
.task-item.sev-critical{border-left:3px solid #dc2626;}
.task-item.sev-high{border-left:3px solid var(--amber);}
.task-item.sev-medium{border-left:3px solid var(--accent2);}

/* ─ PRINT / SCAN-FRIENDLY TOC CARD ─ */
.toc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;margin-bottom:8px;}
.toc-card{display:flex;align-items:center;gap:10px;background:white;border:1px solid var(--border);border-radius:10px;padding:12px 14px;cursor:pointer;transition:all 0.12s;}
.toc-card:hover{border-color:var(--accent);box-shadow:var(--shadow);transform:translateY(-1px);}
.toc-card-icon{font-size:18px;flex-shrink:0;}
.toc-card-text{font-size:12.5px;font-weight:600;color:var(--ink);}

@media(max-width:768px){
  .persona-grid{grid-template-columns:1fr;}
  .channel-grid{grid-template-columns:1fr;}
}
