*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --bg:#f7f5f2;
  --bg2:#ffffff;
  --bg3:#f0ede8;
  --navy:#1c2b4a;
  --navy2:#243859;
  --navy3:#2e4570;
  --gold:#b8913a;
  --gold-l:#d4aa56;
  --gold-dim:rgba(184,145,58,0.10);
  --white:#ffffff;
  --text:#000000;
  --text2:#000000;
  --muted:#94a3b8;
  --border:#e8e4de;
  --border2:#d4cec6;
  --green:#15803d;
  --green-bg:#f0fdf4;
  --green-border:#a7f3c1;
  --amber:#b45309;
  --amber-bg:#fffbeb;
  --amber-border:#fde68a;
  --red:#dc2626;
  --red-bg:#fff5f5;
  --red-border:#fecaca;
  --sidebar:268px;
  --radius:16px;
  --radius-sm:10px;
  --shadow:0 1px 8px rgba(28,43,74,0.06),0 2px 20px rgba(28,43,74,0.04);
  --shadow-md:0 4px 20px rgba(28,43,74,0.09),0 1px 4px rgba(28,43,74,0.05);
  --shadow-lg:0 8px 40px rgba(28,43,74,0.12),0 2px 8px rgba(28,43,74,0.06);
}
html,body{height:100%;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--text);font-family:'Plus Jakarta Sans',sans-serif;font-weight:400;line-height:1.7;overflow-x:hidden;min-height:100vh}

/* ── SCROLLBAR ── */
::-webkit-scrollbar{width:5px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--border2);border-radius:8px}

/* ── LAYOUT ── */
.app{display:flex;min-height:100vh}
.sidebar{width:var(--sidebar);background:linear-gradient(180deg,#d6e8f7 0%,#7aafd4 18%,#2e6094 36%,#1c3d6e 54%,#162f58 72%,#122040 88%,#0e1a32 100%);position:fixed;top:0;left:0;height:100vh;overflow-y:auto;display:flex;flex-direction:column;z-index:50;transition:transform 0.3s;border-right:1px solid rgba(255,255,255,0.06)}
.main{margin-left:var(--sidebar);flex:1;min-height:100vh;display:flex;flex-direction:column}
.topbar{height:64px;background:var(--bg2);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 2rem;position:sticky;top:0;z-index:40;box-shadow:0 1px 0 var(--border)}
.content{flex:1;padding:2.25rem 2.75rem;width:100%}

/* ── SIDEBAR ── */
.sb-logo{padding:1.75rem 1rem 1.25rem;border-bottom:1px solid rgba(255,255,255,0.15);display:flex;flex-direction:column;align-items:center;text-align:center}
.sb-logo img{width:210px;background:transparent;border-radius:0;padding:8px;filter:none}
.sb-progress{padding:1.25rem 1.5rem;border-bottom:1px solid rgba(255,255,255,0.08)}
.sb-progress-label{font-size:0.68rem;color:rgba(255,255,255,0.4);text-transform:uppercase;letter-spacing:0.12em;margin-bottom:0.6rem;font-weight:600}
.progress-track{background:rgba(255,255,255,0.1);height:6px;border-radius:6px;overflow:hidden}
.progress-fill{background:linear-gradient(90deg,var(--gold),var(--gold-l));height:100%;border-radius:8px;transition:width 0.6s cubic-bezier(0.4,0,0.2,1);opacity:0.9}
.progress-pct{font-size:0.72rem;color:var(--gold-l);margin-top:0.4rem;font-weight:600}
.sb-nav{padding:1rem 0;flex:1}
.sb-section-label{padding:0.4rem 1.5rem;font-size:0.62rem;text-transform:uppercase;letter-spacing:0.14em;color:rgba(255,255,255,0.3);font-weight:700;margin-top:0.5rem}
.sb-module{margin-bottom:0.15rem}
.sb-module-header{display:flex;align-items:center;gap:0.75rem;padding:0.65rem 1.5rem;cursor:pointer;transition:all 0.15s;font-size:0.82rem;font-weight:600;color:rgba(255,255,255,0.55);border-radius:0}
.sb-module-header:hover{background:rgba(255,255,255,0.06);color:rgba(255,255,255,0.9)}
.sb-module-header.active-module{color:var(--gold-l)}
.module-dot{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,0.2);flex-shrink:0;transition:background 0.2s}
.sb-module-header.active-module .module-dot{background:var(--gold)}
.sb-module-header.completed-module .module-dot{background:var(--green)}
.sb-lessons{display:none}
.sb-lessons.open{display:block}
.sb-lesson{display:flex;align-items:center;gap:0.6rem;padding:0.5rem 1.5rem 0.5rem 3rem;cursor:pointer;font-size:0.78rem;color:rgba(255,255,255,0.4);transition:all 0.15s;border-left:0px solid transparent;position:relative}
.sb-lesson:hover{color:rgba(255,255,255,0.8);background:rgba(255,255,255,0.04)}
.sb-lesson.active{color:white;background:rgba(184,145,58,0.18)}
.sb-lesson.active::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--gold);border-radius:0 2px 2px 0}
.sb-lesson.completed{color:rgba(255,255,255,0.55)}
.lesson-check{width:16px;height:16px;border-radius:50%;border:1.5px solid currentColor;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:9px;transition:all 0.2s}
.lesson-check.done{background:var(--green);border-color:var(--green);color:white}
.sb-bottom{padding:1.25rem 1.5rem;border-top:1px solid rgba(255,255,255,0.08);margin-top:auto}
.sb-cta-btn{width:100%;background:var(--gold);color:#fff;border:none;padding:0.8rem;font-family:'Plus Jakarta Sans',sans-serif;font-size:0.82rem;font-weight:600;cursor:pointer;letter-spacing:0.02em;border-radius:var(--radius-sm);transition:all 0.2s}
.sb-cta-btn:hover{background:var(--gold-l);transform:translateY(-1px)}
.sb-nav-item{display:flex;align-items:center;gap:0.75rem;padding:0.65rem 1.5rem;cursor:pointer;font-size:0.82rem;font-weight:600;color:rgba(255,255,255,0.5);transition:all 0.15s;border-radius:0}
.sb-nav-item:hover{background:rgba(255,255,255,0.06);color:rgba(255,255,255,0.9)}
.sb-nav-item.active-nav{color:var(--gold-l);background:rgba(201,168,76,0.1)}

/* ── TOPBAR ── */
.topbar-left{display:flex;align-items:center;gap:1rem}
.breadcrumb{font-size:0.85rem;color:var(--muted)}
.breadcrumb strong{color:var(--text);font-weight:600}
.topbar-right{display:flex;align-items:center;gap:0.75rem}
.user-badge{display:flex;align-items:center;gap:0.6rem;background:var(--bg3);padding:0.4rem 0.75rem 0.4rem 0.4rem;border-radius:50px;font-size:0.82rem;font-weight:500;color:var(--text2)}
.avatar{width:32px;height:32px;border-radius:50%;background:var(--navy);display:flex;align-items:center;justify-content:center;font-size:0.72rem;color:white;font-weight:700}
.streak-badge{background:var(--amber-bg);border:1px solid var(--amber-border);padding:0.35rem 0.75rem;font-size:0.75rem;color:var(--amber);font-weight:600;border-radius:50px}
.menu-toggle{display:none;background:none;border:none;color:var(--text);font-size:1.3rem;cursor:pointer;padding:0.25rem}

/* ── PANELS ── */
.panel{display:none}
.panel.active{display:block;animation:fadeUp 0.3s ease}
@keyframes fadeUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}

/* ── DASHBOARD ── */
.dash-greeting{margin-bottom:2rem}
.dash-greeting h1{font-family:'Nunito',sans-serif;font-size:1.8rem;font-weight:700;color:var(--navy);margin-bottom:0.4rem}
.dash-greeting p{color:var(--text2);font-size:0.95rem}
.metrics-row{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:2rem}
.metric-card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);padding:1.4rem 1.5rem;box-shadow:var(--shadow)}
.metric-card .label{font-size:0.68rem;text-transform:uppercase;letter-spacing:0.1em;color:var(--muted);font-weight:700;margin-bottom:0.4rem}
.metric-card .value{font-family:'Nunito',sans-serif;font-size:1.8rem;font-weight:800;color:var(--navy)}
.metric-card .sub{font-size:0.72rem;color:var(--muted);margin-top:0.15rem}
.metric-card .value.gold{color:var(--gold)}
.metric-card .value.green{color:var(--green)}

.modules-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;margin-bottom:2rem}
.module-card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);padding:1.75rem;cursor:pointer;transition:all 0.25s;position:relative;overflow:hidden;box-shadow:var(--shadow)}
.module-card:hover:not(.locked){border-color:var(--border2);box-shadow:var(--shadow-md);transform:translateY(-3px)}
.module-card.locked{opacity:0.55;cursor:not-allowed}
.module-card.completed{border-color:var(--green-border);background:linear-gradient(135deg,#ffffff 0%,#f8fffe 100%)}
.module-card .mc-num{font-size:0.68rem;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:0.1em;margin-bottom:0.4rem}
.module-card h3{font-family:'Nunito',sans-serif;font-size:1.05rem;font-weight:800;color:var(--navy);margin-bottom:0.4rem}
.module-card p{font-size:0.8rem;color:var(--text2);line-height:1.65}
.mc-status{position:absolute;top:1rem;right:1rem;font-size:0.68rem;font-weight:700;padding:0.25rem 0.65rem;border-radius:50px}
.status-done{background:var(--green-bg);color:var(--green);border:1px solid var(--green-border)}
.status-active{background:var(--gold-dim);color:var(--amber);border:1px solid var(--amber-border)}
.status-locked{background:var(--bg3);color:var(--muted);border:1px solid var(--border)}
.mc-lessons{font-size:0.72rem;color:var(--muted);margin-top:0.75rem;font-weight:500}
.mc-bar{height:4px;background:var(--bg3);margin-top:0.6rem;border-radius:4px;overflow:hidden}
.mc-bar-fill{height:100%;background:linear-gradient(90deg,var(--navy2),var(--navy3));border-radius:4px}

/* ── LESSON VIEW ── */
.lesson-header{margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:1px solid var(--border)}
.lesson-module-tag{display:inline-flex;align-items:center;background:var(--navy);color:white;font-size:0.7rem;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;padding:0.3rem 0.8rem;border-radius:50px;margin-bottom:0.85rem}
.lesson-header h1{font-family:'Nunito',sans-serif;font-size:1.7rem;font-weight:700;color:var(--navy);line-height:1.3;margin-bottom:0.75rem}
.lesson-meta{display:flex;gap:1.25rem;font-size:0.78rem;color:var(--muted);font-weight:500;flex-wrap:wrap}
.lesson-meta span{display:flex;align-items:center;gap:0.3rem}

.lesson-body h2{font-family:'Nunito',sans-serif;font-size:1.2rem;font-weight:800;color:var(--navy);margin:1.75rem 0 0.6rem}
.lesson-body h3{font-size:0.95rem;font-weight:700;margin:1.25rem 0 0.4rem;color:var(--navy2)}
.lesson-body p{font-size:0.94rem;color:var(--text2);line-height:1.85;margin-bottom:1rem}
.lesson-body ul,.lesson-body ol{padding-left:1.5rem;margin-bottom:1rem}
.lesson-body li{font-size:0.92rem;color:var(--text2);line-height:1.8;margin-bottom:0.3rem}.action-steps-list li{color:#ffffff !important}
#panel-terms h2{font-family:'Nunito',sans-serif;font-size:1.1rem;font-weight:800;color:var(--navy);margin:1.75rem 0 0.6rem}
#panel-terms p{font-size:0.92rem;color:var(--text2);line-height:1.8;margin-bottom:0.9rem}.ws-textarea{width:100%;box-sizing:border-box;border:1px solid var(--border);border-radius:var(--radius-sm);padding:0.65rem 0.85rem;font-family:'Plus Jakarta Sans',sans-serif;font-size:0.85rem;color:var(--text);background:var(--bg2);resize:vertical;min-height:72px;line-height:1.7;margin-top:0.3rem;transition:border-color 0.18s}.ws-textarea:focus{outline:none;border-color:var(--navy)}.ws-textarea::placeholder{color:var(--muted)}

.callout{border-radius:var(--radius-sm);padding:1.1rem 1.35rem;margin:1.4rem 0;border-left:3px solid var(--amber)}
.callout{background:var(--amber-bg);border-color:var(--amber)}
.callout.green{background:var(--green-bg);border-color:var(--green)}
.callout.red{background:var(--red-bg);border-color:var(--red)}
.callout-label{font-size:0.68rem;text-transform:uppercase;letter-spacing:0.1em;font-weight:700;color:var(--amber);margin-bottom:0.3rem}
.callout.green .callout-label{color:var(--green)}
.callout.red .callout-label{color:var(--red)}
.callout p{margin:0 0 0.6rem;font-size:0.88rem;color:var(--text)}.callout p:last-child{margin-bottom:0}

.formula-box{background:var(--navy);border-radius:var(--radius-sm);padding:1.25rem 1.5rem;margin:1.4rem 0;font-family:'Nunito',sans-serif;font-size:0.95rem;color:var(--gold-l);font-weight:600;opacity:0.96}
.formula-box .formula-label{font-size:0.62rem;color:#ffffff;text-transform:uppercase;letter-spacing:0.12em;margin-bottom:0.4rem;font-weight:700}

.knowledge-check{background:var(--bg3);border:1.5px solid var(--border2);border-radius:var(--radius);padding:1.5rem;margin:2rem 0}
.kc-label{font-size:0.7rem;color:var(--navy2);text-transform:uppercase;letter-spacing:0.1em;font-weight:700;margin-bottom:0.75rem}
.kc-question{font-size:0.95rem;font-weight:600;color:var(--navy);margin-bottom:1rem}
.kc-options{display:flex;flex-direction:column;gap:0.5rem}
.kc-option{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-sm);padding:0.85rem 1.1rem;cursor:pointer;font-size:0.88rem;transition:all 0.18s;display:flex;align-items:center;gap:0.75rem;color:var(--text2);font-weight:500}
.kc-option:hover{border-color:var(--border2);background:var(--bg3);color:var(--navy)}
.kc-option.correct{border-color:var(--green);background:var(--green-bg);color:var(--green)}
.kc-option.wrong{border-color:var(--red);background:var(--red-bg);color:var(--red)}
.kc-option-letter{font-size:0.72rem;font-weight:700;color:var(--navy);background:var(--bg3);padding:0.15rem 0.5rem;border-radius:4px;flex-shrink:0;min-width:24px;text-align:center}

.lesson-nav{display:flex;justify-content:space-between;align-items:center;margin-top:3rem;padding-top:1.5rem;border-top:2px solid var(--border)}
.btn{padding:0.65rem 1.5rem;font-family:'Plus Jakarta Sans',sans-serif;font-size:0.85rem;font-weight:600;cursor:pointer;transition:all 0.2s;border:none;border-radius:var(--radius-sm);letter-spacing:0.02em}
.btn-primary{background:var(--navy);color:white;letter-spacing:0.01em}
.btn-primary:hover{background:var(--navy2);transform:translateY(-1px);box-shadow:var(--shadow-md)}
.btn-secondary{background:var(--white);color:var(--text2);border:1.5px solid var(--border)}
.btn-secondary:hover{border-color:var(--navy);color:var(--navy)}
.btn-ghost{background:transparent;color:var(--muted);font-size:0.82rem;padding:0.5rem 1rem;border:1.5px solid var(--border);border-radius:var(--radius-sm)}
.btn-ghost:hover{color:var(--green);border-color:var(--green)}

/* ── TOOLS ── */
.tools-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:2rem}
.tool-card{background:var(--white);border:1.5px solid var(--border);border-radius:var(--radius);padding:1.5rem;cursor:pointer;transition:all 0.2s;box-shadow:var(--shadow)}
.tool-card:hover{border-color:var(--navy);box-shadow:var(--shadow-md);transform:translateY(-2px)}
.tool-icon{font-size:2rem;margin-bottom:0.75rem}
.tool-card h3{font-family:'Nunito',sans-serif;font-size:1rem;font-weight:800;color:var(--navy);margin-bottom:0.4rem}
.tool-card p{font-size:0.78rem;color:var(--text2);line-height:1.6}

.tool-back{background:none;border:none;color:var(--muted);cursor:pointer;font-size:0.82rem;font-family:'Plus Jakarta Sans',sans-serif;font-weight:500;display:flex;align-items:center;gap:0.3rem;padding:0;margin-bottom:1.25rem}
.tool-back:hover{color:var(--navy)}
.tool-title{font-family:'Nunito',sans-serif;font-size:1.4rem;font-weight:800;color:var(--navy);margin-bottom:1.5rem}
.fd-groups{display:grid;grid-template-columns:1fr 1fr;gap:1.75rem}
@media (max-width:900px){.fd-groups{grid-template-columns:1fr}}
.fd-group-title{font-size:0.72rem;font-weight:700;text-transform:uppercase;letter-spacing:0.08em;color:var(--muted);margin-bottom:0.85rem;padding-bottom:0.5rem;border-bottom:1px solid var(--border)}
.fd-grid{display:flex;flex-direction:column;gap:0.55rem}
.fd-input-row{display:flex;align-items:center;justify-content:space-between;gap:0.75rem}
.fd-field{display:flex;flex-direction:column}
.fd-input-row.active .info-btn{background:var(--navy);color:#fff;border-color:var(--navy)}
.fd-input-row label .info-btn{margin-left:4px}
.fd-custom{display:flex;flex-direction:column;gap:0.55rem;margin-top:0.55rem}
.fd-custom-row{display:flex;align-items:center;gap:0.5rem}
.fd-custom-row input[type="text"]{flex:1;padding:0.4rem 0.6rem;border:1px solid var(--border2);border-radius:6px;font-size:0.82rem;font-family:inherit;color:var(--navy)}
.fd-custom-row input[type="text"]:focus{outline:2px solid var(--gold);outline-offset:1px}
.fd-custom-row input[type="number"]{width:130px;padding:0.4rem 0.6rem;border:1px solid var(--border2);border-radius:6px;font-size:0.85rem;text-align:right;font-family:inherit;color:var(--navy)}
.fd-custom-row input[type="number"]:focus{outline:2px solid var(--gold);outline-offset:1px}
.fd-custom-remove{background:#fff5f5;color:#dc2626;border:1px solid #fecaca;border-radius:6px;width:30px;height:30px;flex-shrink:0;cursor:pointer;font-size:0.9rem;line-height:1}
.fd-add-btn{margin-top:0.65rem;background:none;border:1.5px dashed var(--border2);color:var(--navy2);border-radius:6px;padding:0.45rem 0.9rem;font-size:0.8rem;font-weight:600;cursor:pointer;font-family:inherit;align-self:flex-start}
.fd-add-btn:hover{border-color:var(--navy2);color:var(--navy)}
#financial-data-section .info-tip{display:none;background:var(--navy);color:#fff;font-size:0.78rem;line-height:1.6;border-radius:8px;padding:0.65rem 0.85rem;margin-top:0.4rem}
#financial-data-section .info-tip.visible{display:block}
#financial-data-section .info-tip strong{color:var(--gold-l);display:block;margin-bottom:0.2rem}
.fd-input-row label{font-size:0.82rem;color:var(--text2);flex:1}
.fd-input-row input{width:130px;padding:0.4rem 0.6rem;border:1px solid var(--border2);border-radius:6px;font-size:0.85rem;text-align:right;font-family:inherit;color:var(--navy)}
.fd-input-row input:focus{outline:2px solid var(--gold);outline-offset:1px}
.fd-totals{margin:0.85rem 0;padding:0.75rem 0.9rem;background:var(--bg2);border-radius:6px}
.fd-total-row{display:flex;justify-content:space-between;align-items:center;font-size:0.85rem;padding:0.2rem 0}
.fd-total-row strong{color:var(--navy);font-weight:700}
.fd-btn{border:none;border-radius:6px;padding:0.5rem 1.1rem;font-size:0.82rem;font-weight:600;cursor:pointer;font-family:inherit;white-space:nowrap}
.fd-btn-primary{background:var(--gold);color:var(--navy)}
.fd-btn-danger{background:#fff5f5;color:#dc2626;border:1px solid #fecaca}
.fd-btn-secondary{background:var(--navy);color:#fff}

.calc-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:2rem;width:100%}
.calc-inputs{display:flex;flex-direction:column;gap:0.9rem}
.input-group label{display:block;font-size:0.74rem;font-weight:700;text-transform:uppercase;letter-spacing:0.08em;color:var(--text2);margin-bottom:0.35rem}
.input-group input{width:100%;background:var(--white);border:1px solid var(--border);color:var(--text);padding:0.7rem 1rem;font-family:'Plus Jakarta Sans',sans-serif;font-size:0.92rem;outline:none;transition:border-color 0.2s;border-radius:var(--radius-sm);font-weight:400}
.input-group input:focus{border-color:var(--navy)}
.calc-results{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem;box-shadow:var(--shadow);width:100%}
.calc-results-title{font-size:0.72rem;font-weight:700;text-transform:uppercase;letter-spacing:0.1em;color:var(--muted);margin-bottom:1rem}
.result-row{display:flex;justify-content:space-between;align-items:center;padding:0.65rem 0;border-bottom:1px solid var(--border)}
.result-row:last-child{border-bottom:none}
.result-label{font-size:0.82rem;color:var(--text2);font-weight:500}
.result-value{font-family:'Nunito',sans-serif;font-size:1.05rem;font-weight:800}
.result-value.positive{color:var(--green)}
.result-value.warning{color:var(--amber)}
.result-value.danger{color:var(--red)}
.result-value.neutral{color:var(--navy)}
.traffic-indicator{display:inline-flex;align-items:center;gap:0.35rem;padding:0.25rem 0.7rem;border-radius:50px;font-size:0.72rem;font-weight:700}
/* ── ABOUT MODAL ── */
.about-btn{background:var(--amber-bg);border:2px solid var(--amber);color:#92400e;padding:0.4rem 0.9rem;border-radius:var(--radius-sm);font-family:'Plus Jakarta Sans',sans-serif;font-size:0.78rem;font-weight:700;cursor:pointer;display:flex;align-items:center;gap:0.35rem;transition:all 0.15s}
.about-btn:hover{background:var(--amber);color:#fff;border-color:var(--amber)}

/* ── FAQ MODAL ── */
.faq-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.45);z-index:9100;display:flex;align-items:center;justify-content:center;padding:1.5rem;opacity:0;pointer-events:none;transition:opacity 0.2s}
.faq-overlay.open{opacity:1;pointer-events:all}
.faq-modal{background:#fff;border-radius:var(--radius);box-shadow:0 20px 60px rgba(0,0,0,0.18);width:100%;max-width:720px;max-height:88vh;display:flex;flex-direction:column;transform:translateY(12px);transition:transform 0.2s}
.faq-overlay.open .faq-modal{transform:translateY(0)}
.faq-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;border-bottom:1px solid var(--border);flex-shrink:0}
.faq-modal-header h2{font-family:'Nunito',sans-serif;font-size:1.1rem;font-weight:800;color:var(--navy);margin:0}
.faq-modal-close{background:none;border:none;font-size:1.3rem;cursor:pointer;color:var(--muted);line-height:1;padding:0.25rem;border-radius:4px;transition:color 0.15s}
.faq-modal-close:hover{color:var(--navy)}
.faq-search-bar{padding:0.9rem 1.5rem;border-bottom:1px solid var(--border);flex-shrink:0}
.faq-search-bar input{width:100%;box-sizing:border-box;border:1.5px solid var(--border);border-radius:var(--radius-sm);padding:0.55rem 0.85rem;font-family:'Plus Jakarta Sans',sans-serif;font-size:0.86rem;color:var(--text);outline:none;transition:border-color 0.15s}
.faq-search-bar input:focus{border-color:var(--navy)}
.faq-cats{display:flex;gap:0.5rem;flex-wrap:wrap;padding:0.75rem 1.5rem;border-bottom:1px solid var(--border);flex-shrink:0}
.faq-cat-btn{background:none;border:1.5px solid var(--border);color:var(--text2);padding:0.3rem 0.8rem;border-radius:50px;font-family:'Plus Jakarta Sans',sans-serif;font-size:0.73rem;font-weight:600;cursor:pointer;transition:all 0.15s}
.faq-cat-btn:hover,.faq-cat-btn.active{background:var(--navy);border-color:var(--navy);color:#fff}
.faq-body{overflow-y:auto;flex:1;padding:0.5rem 1.5rem 1.5rem}
.faq-item{border-bottom:1px solid var(--border);padding:0}
.faq-item:last-child{border-bottom:none}
.faq-q{width:100%;background:none;border:none;text-align:left;padding:1rem 0;font-family:'Plus Jakarta Sans',sans-serif;font-size:0.875rem;font-weight:700;color:var(--navy);cursor:pointer;display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;line-height:1.5}
.faq-q:hover{color:var(--amber)}
.faq-chevron{flex-shrink:0;font-size:0.75rem;transition:transform 0.2s;margin-top:0.15rem;color:var(--muted)}
.faq-item.open .faq-chevron{transform:rotate(180deg)}
.faq-a{display:none;padding:0 0 1rem;font-size:0.84rem;color:var(--text2);line-height:1.8}
.faq-a p{margin:0 0 0.6rem}
.faq-a p:last-child{margin:0}
.faq-a ul{padding-left:1.25rem;margin:0.4rem 0 0.6rem}
.faq-a li{margin-bottom:0.3rem}
.faq-a strong{color:var(--navy)}
.faq-item.open .faq-a{display:block}
.faq-empty{text-align:center;padding:2rem;font-size:0.875rem;color:var(--muted)}
.about-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.45);z-index:9000;display:flex;align-items:center;justify-content:center;padding:1.5rem;opacity:0;pointer-events:none;transition:opacity 0.2s}
.about-overlay.open{opacity:1;pointer-events:all}
.about-modal{background:#fff;border-radius:var(--radius);box-shadow:0 20px 60px rgba(0,0,0,0.18);width:100%;max-width:560px;max-height:82vh;overflow-y:auto;transform:translateY(12px);transition:transform 0.2s}
.about-overlay.open .about-modal{transform:translateY(0)}
.about-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem 0}
.about-modal-header h2{font-family:'Nunito',sans-serif;font-size:1.1rem;font-weight:800;color:var(--navy);margin:0}
.about-modal-close{background:none;border:none;font-size:1.3rem;cursor:pointer;color:var(--muted);line-height:1;padding:0.25rem;border-radius:4px;transition:color 0.15s}
.about-modal-close:hover{color:var(--navy)}
.about-modal-body{padding:1.1rem 1.5rem 1.5rem;font-size:0.86rem;color:var(--text2);line-height:1.8}
.about-modal-body h3{font-size:0.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:1.1rem 0 0.4rem}
.about-modal-body h3:first-child{margin-top:0}
.about-modal-body p{margin:0 0 0.6rem}
.about-modal-body ul{padding-left:1.25rem;margin:0 0 0.6rem}
.about-modal-body li{margin-bottom:0.3rem}
.about-modal-body .formula-box{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);padding:0.75rem 1rem;font-family:monospace;font-size:0.82rem;color:var(--navy);margin:0.5rem 0 0.75rem}
.ti-green{background:var(--green-bg);color:var(--green);border:1px solid var(--green-border)}
.ti-amber{background:var(--amber-bg);color:var(--amber);border:1px solid var(--amber-border)}
.ti-red{background:var(--red-bg);color:var(--red);border:1px solid var(--red-border)}

/* Cashflow table */
.cf-table{width:100%;border-collapse:separate;border-spacing:0;font-size:0.8rem;margin-top:1rem;border-radius:var(--radius);overflow:hidden;border:1px solid var(--border)}
.cf-table th{background:var(--navy);color:rgba(255,255,255,0.7);padding:0.6rem 0.75rem;text-align:right;font-size:0.68rem;font-weight:700;text-transform:uppercase;letter-spacing:0.06em}
.cf-table th:first-child{text-align:left}
.cf-table td{padding:0.55rem 0.75rem;border-bottom:1px solid var(--border);text-align:right;font-weight:500}
.cf-table td:first-child{text-align:left;color:var(--text2)}
.cf-table tr:hover td{background:var(--bg3)}
.cf-table .total-row td{background:var(--bg3);font-weight:700;border-top:2px solid var(--border2)}
.cf-table .section-row td{background:var(--navy);color:rgba(255,255,255,0.6);font-size:0.68rem;font-weight:700;text-transform:uppercase;letter-spacing:0.08em;padding:0.4rem 0.75rem}
.cf-table .positive{color:var(--green)}
.cf-table .negative{color:var(--red)}
.cf-input{background:transparent;border:none;color:var(--text);font-family:'Plus Jakarta Sans',sans-serif;font-size:0.8rem;width:72px;text-align:right;outline:none;padding:0;font-weight:500}
.cf-input:focus{color:var(--navy);font-weight:700}

/* ── ROADMAP ── */
.roadmap-quarters{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:1.5rem}
.quarter-card{background:var(--white);border:1.5px solid var(--border);border-radius:var(--radius);padding:1.25rem;box-shadow:var(--shadow)}
.quarter-label{font-size:0.68rem;font-weight:700;text-transform:uppercase;letter-spacing:0.1em;color:var(--gold);margin-bottom:0.4rem}
.quarter-card h3{font-family:'Nunito',sans-serif;font-size:0.95rem;font-weight:800;color:var(--navy);margin-bottom:0.75rem}
.quarter-card.active-quarter{border-color:var(--gold);box-shadow:0 0 0 3px rgba(184,145,58,0.15)}
.quarter-actions{display:flex;flex-direction:column;gap:0.35rem}
.q-action{font-size:0.76rem;color:var(--text2);display:flex;gap:0.4rem;align-items:flex-start;line-height:1.5}
.q-action::before{content:"→";color:var(--navy2);flex-shrink:0;font-size:0.7rem;margin-top:0.1rem;font-weight:700}

.roadmap-focus{background:var(--white);border:1.5px solid var(--border);border-radius:var(--radius);padding:1.5rem;margin-bottom:1.5rem;box-shadow:var(--shadow)}
.focus-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;flex-wrap:wrap;gap:0.5rem}
.focus-header h3{font-family:'Nunito',sans-serif;font-size:1.05rem;font-weight:800;color:var(--navy)}
.priority-tag{font-size:0.68rem;font-weight:700;padding:0.25rem 0.65rem;background:var(--red-bg);color:var(--red);border:1px solid var(--red-border);border-radius:50px}
.action-items{display:flex;flex-direction:column;gap:0.5rem}
.action-item{display:flex;align-items:center;gap:0.75rem;padding:0.65rem 0.9rem;background:var(--bg3);border-radius:var(--radius-sm);cursor:pointer;transition:background 0.15s}
.action-item:hover{background:var(--border)}
.action-item input[type=checkbox]{accent-color:var(--navy);width:16px;height:16px;flex-shrink:0;cursor:pointer}
.action-item label{font-size:0.85rem;cursor:pointer;font-weight:500;color:var(--text)}
.action-item.done label{text-decoration:line-through;color:var(--muted)}

/* ── SECTION HEADERS ── */
.section-eyebrow{font-size:0.7rem;font-weight:700;color:var(--gold);text-transform:uppercase;letter-spacing:0.14em;margin-bottom:0.4rem}
.section-title{font-family:'Nunito',sans-serif;font-size:1.55rem;font-weight:700;color:var(--navy);margin-bottom:0.5rem}
.section-sub{color:var(--text2);font-size:0.9rem;margin-bottom:2rem;max-width:620px;line-height:1.7}
.divider{height:1px;background:var(--border);margin:2rem 0}

/* ── RESPONSIVE ── */
@media(max-width:900px){
  .sidebar{transform:translateX(-100%)}
  .sidebar.open{transform:translateX(0)}
  .main{margin-left:0}
  .metrics-row{grid-template-columns:repeat(2,1fr)}
  .modules-grid{grid-template-columns:1fr}
  .tools-grid{grid-template-columns:1fr}
  .calc-grid{grid-template-columns:1fr}
  .roadmap-quarters{grid-template-columns:repeat(2,1fr)}
  .menu-toggle{display:block}
  .content{padding:1.5rem}
}

/* ── PRINT STYLES ── */
@media print {
  .sidebar,.topbar,.tool-back,.tool-print-btn,#import-banner,.tools-grid,
  .section-eyebrow,.section-title,.section-sub,
  #login-screen,#set-password-screen,.sb-cta,#logout-btn,#reset-btn { display:none !important; }
  .main { margin-left:0 !important; }
  .content { padding:0 !important; }
  body { background:#fff !important; color:#000 !important; font-size:11pt; }
  .print-header { display:block !important; }
  .calc-grid { grid-template-columns:1fr 1fr !important; gap:1rem !important; }
  .calc-results { box-shadow:none !important; border:1px solid #ddd !important; }
  .input-group input { border:1px solid #ccc !important; background:#f9f9f9 !important; }
  .result-row { border-bottom:1px solid #eee; padding:0.4rem 0; }
  h2,h3 { color:#1c2b4a !important; }
  .tool-header-bar { border-bottom:2px solid #1c2b4a; padding-bottom:0.75rem; margin-bottom:1.25rem; }
}
.print-header { display:none; }
