/* CAE Technical Archive - Main Stylesheet v3 (Pop Edition) */
*{margin:0;padding:0;box-sizing:border-box}
:root{--bg:#f5f7ff;--sidebar-bg:linear-gradient(180deg,#1a1a2e 0%,#16213e 50%,#0f3460 100%);--sidebar-bg-solid:#1a1a2e;--sidebar-w:300px;--text:#2d3436;--accent:#6c5ce7;--accent2:#a29bfe;--accent-warm:#fd79a8;--accent-green:#00b894;--accent-blue:#0984e3;--accent-orange:#e17055;--border:#dfe6e9;--code-bg:#f8f9fa;--cta-bg:linear-gradient(135deg,#dfe6e9,#f5f7ff);--cta-border:#6c5ce7;--radius:12px;--shadow:0 2px 12px rgba(108,92,231,.08)}
body{font-family:'Segoe UI','Meiryo','Hiragino Sans',sans-serif;background:var(--bg);color:var(--text);display:flex;min-height:100vh;font-size:15px;line-height:1.8}
a{color:var(--accent);text-decoration:none;transition:color .2s}a:hover{color:var(--accent-warm);text-decoration:none}

/* Sidebar */
#sidebar{position:fixed;top:0;left:0;width:var(--sidebar-w);height:100vh;background:var(--sidebar-bg-solid);background:var(--sidebar-bg);color:#ccc;overflow-y:auto;z-index:100;transition:transform .3s}
#sidebar .logo{padding:20px 16px 10px;font-size:17px;font-weight:700;color:#fff;border-bottom:1px solid rgba(255,255,255,.1);letter-spacing:.5px;background:rgba(255,255,255,.03)}
#sidebar .logo small{display:block;font-size:11px;color:#a29bfe;font-weight:400;margin-top:2px;letter-spacing:1px}
#sidebar ul{list-style:none;padding:0;margin:0}
#sidebar>ul{padding:8px 0}
#sidebar li{position:relative}
#sidebar li>a{display:block;padding:5px 16px 5px calc(16px + var(--depth,0)*16px);color:#bbb;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:background .15s,color .15s}
#sidebar li>a:hover{background:rgba(255,255,255,.07);color:#fff;text-decoration:none}
#sidebar li>a.active{color:#64b5f6;background:rgba(100,181,246,.1)}
#sidebar .toggle{position:absolute;right:8px;top:4px;cursor:pointer;color:#666;font-size:14px;width:22px;height:22px;display:flex;align-items:center;justify-content:center;border-radius:3px}
#sidebar .toggle:hover{background:rgba(255,255,255,.1);color:#aaa}
#sidebar ul.children{display:none}
#sidebar li.open>ul.children{display:block}
/* Sidebar group headers */
.nav-group-header{padding:14px 16px 6px;margin-top:8px;border-top:1px solid rgba(255,255,255,.08);pointer-events:none;list-style:none}
.nav-group-header:first-child{margin-top:0;border-top:none}
.nav-group-header span{display:block;font-size:11px;font-weight:700;color:#90caf9;text-transform:uppercase;letter-spacing:1.5px}
.nav-group-header small{display:block;font-size:10px;color:#556;margin-top:1px;letter-spacing:.5px}
.lang-switch{padding:6px 16px;font-size:12px;color:#888;border-bottom:1px solid #333}
.lang-switch a{color:#666;font-size:12px;font-weight:600}.lang-switch a:hover{color:#fff;text-decoration:none}
.lang-switch .lang-active{color:#64b5f6}
#sidebar .search-box{padding:10px 12px;position:relative}
#sidebar .search-box input{width:100%;padding:6px 10px;border:1px solid #444;background:#111;color:#eee;border-radius:4px;font-size:13px}

/* Full-text search results */
#search-results{display:none;padding:8px 12px;max-height:70vh;overflow-y:auto}
#search-results.active{display:block}
#search-results .search-result{padding:6px 8px;border-bottom:1px solid #333}
#search-results .search-result a{color:#8ab4f8;font-size:13px;display:block}
#search-results .search-result a:hover{color:#fff}
#search-results .search-result .search-cat{font-size:11px;color:#888;margin-top:2px}
#search-results .search-no-result{color:#888;font-size:13px;padding:8px}

/* Main */
#main{margin-left:var(--sidebar-w);flex:1;max-width:920px;padding:40px 48px 80px}
#main h1{font-size:28px;margin-bottom:12px;border-bottom:3px solid var(--accent);padding-bottom:10px;color:#2d3436;background:linear-gradient(90deg,rgba(108,92,231,.06),transparent);padding:12px 16px;border-radius:var(--radius) var(--radius) 0 0}
#main h2{font-size:20px;margin:32px 0 12px;color:#2d3436;border-left:4px solid var(--accent);padding-left:12px;position:relative}
#main h2::after{content:'';position:absolute;left:0;bottom:-4px;width:60px;height:2px;background:var(--accent2);border-radius:1px}
#main h3{font-size:17px;margin:24px 0 8px;color:#636e72}
#main p{margin:8px 0}
#main ul,#main ol{margin:8px 0 8px 24px}
#main table{border-collapse:collapse;width:100%;margin:12px 0;font-size:14px;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);display:table;max-width:100%}
#main .table-wrap,#main .vv-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:12px 0}
#main th,#main td{border:1px solid var(--border);padding:8px 12px;text-align:left}
#main th{background:linear-gradient(135deg,#6c5ce7,#a29bfe);color:#fff;font-weight:600;border-color:rgba(255,255,255,.2)}
#main code{background:var(--code-bg);padding:1px 5px;border-radius:3px;font-size:13px}
#main pre{background:#263238;color:#eeffff;padding:16px;border-radius:6px;overflow-x:auto;margin:12px 0;font-size:13px;line-height:1.5}
#main pre code{background:none;color:inherit;padding:0}
.breadcrumb{font-size:12px;color:#888;margin-bottom:16px}
.breadcrumb a{color:#666}.breadcrumb a:hover{color:var(--accent)}
.breadcrumb span{color:#444}
.meta{font-size:12px;color:#999;margin-bottom:20px}

/* Glossary tooltip */
.glossary-link{border-bottom:1px dashed var(--accent);cursor:help;position:relative}
.glossary-tooltip{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%);background:#1a1a2e;color:#eee;padding:10px 14px;border-radius:6px;font-size:12px;line-height:1.5;width:280px;max-width:90vw;z-index:9999;box-shadow:0 4px 16px rgba(0,0,0,.3);pointer-events:none;opacity:0;transition:opacity .2s}
.glossary-tooltip::after{content:'';position:absolute;top:100%;left:50%;transform:translateX(-50%);border:6px solid transparent;border-top-color:#1a1a2e}
.glossary-tooltip .gt-term{font-weight:700;color:#8ab4f8;margin-bottom:4px}
.glossary-tooltip .gt-def{color:#ccc}
.glossary-link:hover .glossary-tooltip{opacity:1}

/* Table of Contents */
.toc{background:linear-gradient(135deg,#f5f7ff,#fff);border:1px solid var(--border);border-radius:var(--radius);padding:18px 22px;margin:0 0 28px;font-size:14px;box-shadow:var(--shadow)}
.toc summary{font-weight:700;font-size:15px;color:var(--accent);cursor:pointer;margin-bottom:8px}
.toc summary::before{content:'\f0ca';font-family:'Font Awesome 6 Free';font-weight:900;margin-right:8px;color:var(--accent-warm)}
.toc ol{margin:8px 0 0;padding-left:20px;counter-reset:toc-counter}
.toc li{margin:3px 0;line-height:1.6;list-style:none;counter-increment:toc-counter}
.toc li::before{content:counters(toc-counter,".") ". ";color:#888;font-size:12px}
.toc li a{color:#0d47a1;font-size:13px}
.toc li a:hover{color:#1565c0;text-decoration:underline}
.toc .toc-h3{padding-left:20px;font-size:12px}
.toc .toc-h3 a{color:#555}

/* Equation */
.equation-block{background:linear-gradient(135deg,#f8f9fa,#fff);border:1px solid var(--border);border-radius:var(--radius);padding:20px;margin:16px 0;text-align:center;overflow-x:auto;box-shadow:var(--shadow);border-left:4px solid var(--accent)}

/* CTA */
.cta-box{background:var(--cta-bg);border:1px solid var(--border);border-radius:var(--radius);padding:24px 28px;margin:32px 0;box-shadow:var(--shadow);position:relative;overflow:hidden}
.cta-box::before{content:'';position:absolute;top:0;left:0;width:4px;height:100%;background:linear-gradient(180deg,var(--accent),var(--accent-warm))}
.cta-box h4{color:var(--accent);font-size:16px;margin-bottom:8px}
.cta-box p{font-size:14px;color:#636e72;margin-bottom:14px;line-height:1.7}
.cta-catchcopy{font-weight:700;color:var(--accent-warm);font-size:14px;margin-bottom:8px}
.cta-btn{display:inline-block;background:linear-gradient(135deg,var(--accent),var(--accent2));color:#fff !important;padding:10px 28px;border-radius:25px;font-size:13px;font-weight:600;transition:all .3s;box-shadow:0 4px 15px rgba(108,92,231,.3)}
.cta-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px rgba(108,92,231,.4);color:#fff !important;text-decoration:none}
.cta-btn-secondary{background:#fff;color:var(--accent) !important;border:2px solid var(--accent);box-shadow:none}
.cta-btn-secondary:hover{background:rgba(108,92,231,.05);transform:translateY(-2px)}

/* NovaSolver landing */
.novasolver-landing{margin:16px 0}
.novasolver-tagline{font-size:22px;font-weight:700;background:linear-gradient(135deg,var(--accent),var(--accent-warm));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:1px;margin-bottom:16px}
.novasolver-features{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:24px 0}
.novasolver-feature{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:20px;transition:all .3s;position:relative;overflow:hidden}
.novasolver-feature::after{content:'';position:absolute;top:0;left:0;width:100%;height:3px;background:linear-gradient(90deg,var(--accent),var(--accent2),var(--accent-warm));opacity:0;transition:opacity .3s}
.novasolver-feature:hover{box-shadow:var(--shadow);transform:translateY(-3px)}.novasolver-feature:hover::after{opacity:1}
.novasolver-feature h4{color:var(--accent);margin-bottom:8px;font-size:15px}
.novasolver-feature p{font-size:13px;color:#636e72;margin:0;line-height:1.7}
.novasolver-cta{text-align:center;background:linear-gradient(135deg,#f5f7ff,#dfe6e9);border:none;padding:32px;border-radius:var(--radius)}

/* VV table enhanced */
.vv-table{width:100%;border-collapse:collapse;font-size:13px;margin:16px 0;border:2px solid #1a237e;border-radius:4px;overflow:hidden}
.vv-table thead tr{background:#1a237e}
.vv-table th{background:#1a237e;color:#fff;padding:10px 12px;font-weight:600;text-align:center;border:1px solid #283593}
.vv-table td{padding:8px 12px;border:1px solid #ddd;text-align:center}
.vv-table tbody tr:nth-child(even){background:#f5f5f5}
.vv-table tbody tr:nth-child(odd){background:#fff}
.vv-table tbody tr:hover{background:#e3f2fd}

/* Related */
.related{margin-top:40px;padding-top:20px;border-top:1px solid #eee}
.related h3{font-size:15px;color:#555;margin-bottom:8px}
.related ul{list-style:none;padding:0}
.related li{padding:4px 0}.related li::before{content:'\25B6';color:var(--accent);margin-right:8px;font-size:10px}
.related li a{font-size:13px}

/* Hamburger */
#menu-toggle{display:none;position:fixed;top:10px;left:10px;z-index:200;background:var(--sidebar-bg);color:#fff;border:none;padding:8px 12px;border-radius:4px;cursor:pointer;font-size:18px}
@media(max-width:900px){
  #sidebar{transform:translateX(-100%)}
  #sidebar.open{transform:translateX(0)}
  #main{margin-left:0;padding:30px 20px 60px;overflow-x:hidden}
  #menu-toggle{display:block}
  .novasolver-features{grid-template-columns:1fr}
  .equation-block{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .vv-table{display:block;overflow-x:auto}
  .calc-panel input[type="number"],.calc-panel select{width:140px}
}

/* ===== Theory deep dive sections ===== */
.theory-deep-dive{margin-top:24px;padding-top:16px;border-top:1px solid #e0e0e0}
.eq-details{margin:6px 0;border:1px solid #e0e0e0;border-radius:8px;overflow:hidden;font-size:13px}
.eq-details summary{padding:8px 14px;cursor:pointer;font-weight:600;font-size:13px;color:#555;background:#f8f9fa;user-select:none;list-style:none;display:flex;align-items:center;gap:6px}
.eq-details summary::before{content:'▶';font-size:10px;transition:transform .2s;color:#999}
.eq-details[open] summary::before{transform:rotate(90deg)}
.eq-details summary:hover{background:#f0f0f0}
.eq-details>ul,.eq-details>table{margin:0;padding:8px 14px}
.eq-details .equation-terms{list-style:none;padding:6px 14px}
.eq-details .equation-terms li{margin:4px 0;padding:5px 8px;background:#fff8e1;border-left:3px solid #ff6f00;border-radius:0 4px 4px 0;line-height:1.5}
.eq-details .equation-terms li strong{color:#e65100}
.eq-details .assumption-list{list-style:none;padding:6px 14px}
.eq-details .assumption-list li{margin:3px 0;padding:4px 8px;background:#e8f5e9;border-left:3px solid #4caf50;border-radius:0 4px 4px 0;line-height:1.5}

/* ===== Method deep dive sections ===== */
.method-deep-dive{margin-top:32px;padding-top:24px;border-top:2px solid #e0e0e0}
.method-deep-dive h2{color:#1a237e;border-left:4px solid #1565c0;padding-left:12px}
.method-deep-dive h3{color:#0d47a1;font-size:15px;margin:16px 0 8px;padding:6px 12px;background:#e3f2fd;border-radius:4px}

/* ===== V&V enhanced comparison ===== */
.vv-enhanced{margin-top:32px;padding-top:24px;border-top:2px solid #e0e0e0}
.vv-enhanced h2{color:#1a237e;border-left:4px solid #4caf50;padding-left:12px}
.vv-comparison td{vertical-align:middle}

/* ===== Calculator Widget ===== */
.calc-widget{background:#f3e5f5;border:1px solid #ce93d8;border-radius:8px;padding:20px 24px;margin:24px 0;max-width:100%;overflow:hidden;box-sizing:border-box}
.calc-widget h3{color:#6a1b9a;margin-bottom:12px;font-size:16px}
.calc-widget label{display:block;margin:6px 0;font-size:13px}
.calc-widget input[type="number"],.calc-widget select{max-width:100%;box-sizing:border-box;padding:4px 8px;border:1px solid #ce93d8;border-radius:4px;font-size:13px}
.calc-widget button{background:#6a1b9a;color:#fff;border:none;padding:6px 16px;border-radius:4px;cursor:pointer;font-size:13px;margin:8px 4px 8px 0}
.calc-widget button:hover{background:#4a148c}
.calc-result{background:#fff;border:1px solid #e1bee7;border-radius:4px;padding:8px 12px;margin-top:8px;font-size:13px}
.calc-result p{margin:2px 0}
.calc-tabs{display:flex;gap:4px;margin-bottom:12px;flex-wrap:wrap}
.calc-tab{padding:6px 14px;border:1px solid #ce93d8;background:#fff;border-radius:4px;cursor:pointer;font-size:13px;color:#6a1b9a;transition:all .2s}
.calc-tab.active,.calc-tab:hover{background:#6a1b9a;color:#fff}
.calc-panel{display:none}
.calc-panel.active{display:block}
.calc-panel label{display:block;margin:6px 0;font-size:13px;color:#333}
.calc-panel input[type="number"],.calc-panel select{padding:4px 8px;border:1px solid #ccc;border-radius:3px;font-size:13px;width:180px;max-width:100%;margin-left:8px;box-sizing:border-box}
.calc-panel button{margin:10px 0;padding:6px 20px;background:#6a1b9a;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:13px}
.calc-panel button:hover{background:#4a148c}
.calc-result{margin-top:8px;padding:10px 14px;background:#fff;border:1px solid #e0e0e0;border-radius:4px;font-size:13px;min-height:30px}
.calc-result p{margin:2px 0}
.calc-result strong{color:#4a148c}

/* ===== Suggest box ===== */
.suggest-box{display:none;position:absolute;background:#1a1a2e;border:1px solid #444;border-radius:0 0 4px 4px;width:calc(100% - 24px);z-index:150;max-height:200px;overflow-y:auto}
.suggest-item{padding:6px 10px;cursor:pointer;color:#bbb;font-size:13px;border-bottom:1px solid #333}
.suggest-item:hover{background:rgba(255,255,255,.1);color:#fff}

/* ===== Intuitive explanation boxes ===== */
.practice-intuitive{margin-top:32px;padding-top:24px;border-top:2px solid var(--border)}
.practice-intuitive h2{color:var(--accent);border-left:4px solid var(--accent-orange);padding-left:12px}
.intuitive-box{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:18px 22px;margin:14px 0;box-shadow:var(--shadow);transition:transform .3s,opacity .5s;opacity:0;transform:translateY(20px)}
.intuitive-box.visible{opacity:1;transform:translateY(0)}
.intuitive-box:hover{transform:translateY(-3px) !important}
.intuitive-box h3{font-size:15px;margin:0 0 10px;color:#2d3436}
.intuitive-box p,.intuitive-box li{font-size:14px;line-height:1.8;color:#636e72}
.analogy-box{background:linear-gradient(135deg,#ffeaa7,#fff8e1);border-left:4px solid #fdcb6e}
.analogy-box h3::before{content:'\f0eb';font-family:'Font Awesome 6 Free';font-weight:900;margin-right:8px;color:#fdcb6e}
.analogy-box h3{color:#e17055}
.workflow-box{background:linear-gradient(135deg,#dfe6e9,#f5f7ff);border-left:4px solid var(--accent-blue)}
.workflow-box h3::before{content:'\f0d0';font-family:'Font Awesome 6 Free';font-weight:900;margin-right:8px;color:var(--accent-blue)}
.workflow-box h3{color:var(--accent-blue)}
.mistake-box{background:linear-gradient(135deg,#fab1a0,#ffeaa7);border-left:4px solid var(--accent-warm)}
.mistake-box h3::before{content:'\f071';font-family:'Font Awesome 6 Free';font-weight:900;margin-right:8px;color:var(--accent-warm)}
.mistake-box h3{color:#d63031}
.boundary-box{background:linear-gradient(135deg,#b8e994,#dfe6e9);border-left:4px solid var(--accent-green)}
.boundary-box h3::before{content:'\f058';font-family:'Font Awesome 6 Free';font-weight:900;margin-right:8px;color:var(--accent-green)}
.boundary-box h3{color:#00b894}

/* ===== Chat dialogue bubbles (LINE-style) ===== */
.chat-bubble{display:flex;gap:6px;margin:4px 0;align-items:flex-start;opacity:0;transform:translateY(10px);transition:opacity .4s ease,transform .4s ease}
.chat-bubble.visible{opacity:1;transform:translateY(0)}
.chat-left{animation:slideInLeft .35s ease forwards}
.chat-right{flex-direction:row-reverse;animation:slideInRight .35s ease forwards}
@keyframes slideInLeft{from{opacity:0;transform:translateX(-20px)}to{opacity:1;transform:translateX(0)}}
@keyframes slideInRight{from{opacity:0;transform:translateX(20px)}to{opacity:1;transform:translateX(0)}}
.chat-icon{width:28px;height:28px;flex-shrink:0;font-size:20px;line-height:28px;text-align:center;user-select:none}
.chat-body{max-width:75%;border-radius:16px;padding:7px 12px;box-shadow:0 1px 2px rgba(0,0,0,.07);position:relative;overflow-wrap:break-word;word-break:break-word;min-width:0}
.chat-left .chat-body{border-top-left-radius:4px;background:#fff;border:1px solid #e0e0e0}
.chat-left .chat-body::before{content:'';position:absolute;top:8px;left:-6px;width:0;height:0;border-top:5px solid transparent;border-bottom:5px solid transparent;border-right:6px solid #e0e0e0}
.chat-left .chat-body::after{content:'';position:absolute;top:8px;left:-4.5px;width:0;height:0;border-top:5px solid transparent;border-bottom:5px solid transparent;border-right:6px solid #fff}
.chat-right .chat-body{border-top-right-radius:4px}
.chat-right .chat-body::before{content:'';position:absolute;top:8px;right:-6px;width:0;height:0;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:6px solid rgba(0,0,0,.04)}
.chat-right .chat-body::after{content:'';position:absolute;top:8px;right:-5px;width:0;height:0;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:6px solid #dfe6e9}
.chat-text{font-size:13.5px;line-height:1.65;color:#2d3436;overflow-wrap:break-word;word-break:break-word}
.chat-text .eq-inline{margin:6px 0;padding:6px 4px;overflow-x:auto;overflow-y:hidden;max-width:100%;box-sizing:border-box;text-align:center;font-size:14px;-webkit-overflow-scrolling:touch}
.chat-text table,.chat-table{font-size:12px;width:100%;border-collapse:collapse;margin:4px 0;display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}
.chat-table th,.chat-table td,.chat-text table th,.chat-text table td{border:1px solid #ddd;padding:3px 6px;text-align:left}
.chat-table th,.chat-text table th{background:#f0f0f0;font-weight:600}
.chat-text pre,.chat-text code{white-space:pre-wrap;word-break:break-all;font-size:12px}
.chat-text .mjx-chtml{max-width:100%;overflow-x:auto;display:inline-block}
.chat-text p{margin:2px 0}
.chat-text ul{margin:3px 0;padding-left:1.2em;list-style-position:inside}
.chat-text li{margin:1px 0}
.chat-text strong{color:#6c5ce7}
.chat-text a.glossary-link{border-bottom-color:#a29bfe}
@media(max-width:900px){.chat-body{max-width:88%}.chat-icon{width:24px;height:24px;font-size:16px;line-height:24px}}
@media print{.chat-bubble{display:block;margin:3px 0}.chat-icon{display:inline;font-size:14px;margin-right:4px}.chat-body{max-width:100%;box-shadow:none;padding:1px 0;background:none !important;border:none !important;animation:none;display:inline}.chat-body::before,.chat-body::after{display:none}.chat-text{display:inline}}

/* ===== Hero image ===== */
.hero-image{margin:40px 0 28px;position:relative;overflow:visible}
.hero-image img{width:100%;max-height:280px;object-fit:cover;display:block;filter:brightness(.85);transition:filter .3s;border-radius:8px;box-shadow:0 4px 16px rgba(0,0,0,.12)}
.hero-image:hover img{filter:brightness(1)}
.hero-caption{padding:10px 0 0;color:#636e72;font-size:13px;font-weight:500;text-align:center;letter-spacing:.5px}
@media(max-width:900px){.hero-image{margin:30px 0 20px;max-height:200px}.hero-image img{height:200px}}
@media print{.hero-image{display:none}}

/* ===== Yomoyama (trivia) corner ===== */
.yomoyama-corner{background:linear-gradient(135deg,#ffeaa7,#fdcb6e);border-radius:var(--radius);padding:22px 26px;margin:28px 0;position:relative;overflow:hidden;box-shadow:0 4px 20px rgba(253,203,110,.3)}
.yomoyama-corner::before{content:'\f0f4';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;right:20px;top:20px;font-size:48px;color:rgba(0,0,0,.06)}
.yomoyama-header{font-size:12px;color:#636e72;margin-bottom:8px;display:flex;align-items:center;gap:8px}
.yomoyama-badge{background:#e17055;color:#fff;padding:2px 10px;border-radius:10px;font-size:11px;font-weight:700;letter-spacing:1px}
.yomoyama-corner h4{font-size:15px;color:#2d3436;margin-bottom:8px}
.yomoyama-corner p{font-size:14px;color:#636e72;line-height:1.8;margin:0}

/* ===== CSS Bar Charts ===== */
.css-chart{margin:20px 0;padding:20px;background:#fff;border-radius:var(--radius);box-shadow:var(--shadow)}
.css-chart h4{font-size:14px;color:var(--accent);margin-bottom:14px}
.chart-bar-group{margin:8px 0}
.chart-bar-label{font-size:12px;color:#636e72;margin-bottom:3px;display:flex;justify-content:space-between}
.chart-bar-label span{font-weight:700;color:#2d3436}
.chart-bar{height:22px;border-radius:11px;background:#f0f0f0;overflow:hidden;position:relative}
.chart-bar-fill{height:100%;border-radius:11px;transition:width 1s ease;position:relative;display:flex;align-items:center;justify-content:flex-end;padding-right:8px;font-size:10px;color:#fff;font-weight:700}
.bar-purple{background:linear-gradient(90deg,#6c5ce7,#a29bfe)}
.bar-pink{background:linear-gradient(90deg,#fd79a8,#e84393)}
.bar-blue{background:linear-gradient(90deg,#0984e3,#74b9ff)}
.bar-green{background:linear-gradient(90deg,#00b894,#55efc4)}
.bar-orange{background:linear-gradient(90deg,#e17055,#fab1a0)}
.chart-legend{display:flex;flex-wrap:wrap;gap:12px;margin-top:12px;font-size:11px;color:#636e72}
.chart-legend-item::before{content:'';display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:5px;vertical-align:middle}
.chart-legend-item.leg-purple::before{background:#6c5ce7}
.chart-legend-item.leg-pink::before{background:#fd79a8}
.chart-legend-item.leg-blue::before{background:#0984e3}
.chart-legend-item.leg-green::before{background:#00b894}

/* Sparkline-style inline chart */
.sparkline{display:inline-flex;align-items:flex-end;gap:2px;height:30px;vertical-align:middle}
.sparkline-bar{width:6px;border-radius:3px 3px 0 0;background:var(--accent);transition:height .5s}

/* Comparison meter */
.meter-row{display:flex;align-items:center;gap:10px;margin:6px 0;font-size:13px}
.meter-label{width:120px;text-align:right;color:#636e72;flex-shrink:0}
.meter-track{flex:1;height:18px;background:#f0f0f0;border-radius:9px;overflow:hidden}
.meter-fill{height:100%;border-radius:9px;display:flex;align-items:center;padding-left:8px;font-size:10px;color:#fff;font-weight:600}
.meter-value{width:60px;text-align:right;font-weight:700;color:#2d3436}

/* ===== Topic grid (subcategory index) ===== */
.topic-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;margin:20px 0}
.topic-card{background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:16px 20px;transition:box-shadow .2s}
.topic-card:hover{box-shadow:0 4px 12px rgba(0,0,0,.08)}
.topic-title{font-size:15px;color:#1a237e;margin:0 0 10px;padding-bottom:8px;border-bottom:2px solid #e8eaf6}
.topic-links{list-style:none;padding:0;margin:0}
.topic-links li{padding:3px 0;font-size:13px}
.topic-links li a{color:#333;display:block;padding:2px 6px;border-radius:3px;transition:background .15s}
.topic-links li a:hover{background:#e3f2fd;color:#0d47a1;text-decoration:none}
@media(max-width:900px){.topic-grid{grid-template-columns:1fr}}
@media print{.topic-grid{display:block}.topic-card{break-inside:avoid;margin-bottom:12px;border:1px solid #999}}

/* ===== Intro guide & Learning roadmap ===== */
.intro-guide{background:linear-gradient(135deg,#e8f5e9,#f1f8e9);border:1px solid #c8e6c9;border-radius:8px;padding:24px 28px;margin:24px 0}
.intro-guide h2{color:#2e7d32;border-left:4px solid #4caf50;padding-left:12px;margin-top:0}
.intro-guide h3{color:#388e3c;font-size:15px}
.intro-guide ul,.intro-guide ol{margin:8px 0 12px 20px}
.intro-guide li{margin:4px 0;line-height:1.6;font-size:14px}
.learning-roadmap{margin:24px 0}
.learning-roadmap h2{color:#1565c0;border-left:4px solid #1976d2;padding-left:12px}

/* ===== Global animations & effects ===== */
@keyframes fadeInUp{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}
@keyframes shimmer{0%{background-position:-200% 0}100%{background-position:200% 0}}
@keyframes pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.02)}}
@keyframes bounceIn{0%{transform:scale(.3);opacity:0}50%{transform:scale(1.05)}70%{transform:scale(.9)}100%{transform:scale(1);opacity:1}}
#main h1{animation:fadeInUp .6s ease}
#main h2{animation:fadeInUp .4s ease}
.vv-table{animation:fadeInUp .5s ease}
.topic-card{animation:fadeInUp .4s ease;animation-fill-mode:backwards}
.topic-card:nth-child(1){animation-delay:.05s}.topic-card:nth-child(2){animation-delay:.1s}
.topic-card:nth-child(3){animation-delay:.15s}.topic-card:nth-child(4){animation-delay:.2s}
.topic-card:nth-child(5){animation-delay:.25s}.topic-card:nth-child(6){animation-delay:.3s}
.novasolver-feature{animation:fadeInUp .5s ease;animation-fill-mode:backwards}
.novasolver-feature:nth-child(1){animation-delay:.1s}.novasolver-feature:nth-child(2){animation-delay:.2s}
.novasolver-feature:nth-child(3){animation-delay:.3s}.novasolver-feature:nth-child(4){animation-delay:.4s}
.hero-image img{animation:fadeInUp .6s ease}
.yomoyama-corner{animation:bounceIn .6s ease}
.cta-btn{animation:pulse 2s infinite ease-in-out}
.cta-btn:hover{animation:none}
.equation-block{transition:transform .2s,box-shadow .2s}.equation-block:hover{transform:scale(1.01);box-shadow:0 4px 20px rgba(108,92,231,.15)}
.toc{transition:transform .2s}.toc:hover{transform:scale(1.005)}
/* Scrollbar styling */
::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:#f0f0f0}::-webkit-scrollbar-thumb{background:linear-gradient(var(--accent),var(--accent-warm));border-radius:4px}
/* Selection color */
::selection{background:rgba(108,92,231,.2);color:#2d3436}
/* Focus styles */
a:focus{outline:2px solid var(--accent);outline-offset:2px;border-radius:3px}
/* Smooth scroll */
html{scroll-behavior:smooth}

/* ===== Print stylesheet ===== */
@media print{
  #sidebar,#menu-toggle,.cta-box,.cta-catchcopy,.novasolver-landing .cta-box,.search-box,#search-results{display:none !important}
  #main{margin-left:0;max-width:100%;padding:20px}
  body{display:block;font-size:12px;line-height:1.6;color:#000;background:#fff}
  a{color:#000;text-decoration:underline}
  .breadcrumb{font-size:10px}
  #main h1{font-size:20px;border-bottom:1px solid #000}
  #main h2{font-size:16px;color:#000;border-left:3px solid #000}
  #main h3{font-size:14px;color:#000}
  .equation-block{border:1px solid #999;break-inside:avoid}
  .vv-table{break-inside:avoid;font-size:11px}
  .vv-table th{background:#ddd !important;color:#000 !important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .related{border-top:1px solid #000}
  .glossary-tooltip{display:none !important}
  .toc{border:1px solid #999;break-inside:avoid;background:#f5f5f5 !important}
  .intro-guide{background:#f9f9f9 !important;border:1px solid #999}
  .eq-details{border:1px solid #999}
  .eq-details summary{background:none;font-size:12px}
  .eq-details .equation-terms li{background:#f5f5f5 !important;border-left:2px solid #000}
  .eq-details .assumption-list li{background:#f5f5f5 !important;border-left:2px solid #000}
  .method-deep-dive h3{background:#f0f0f0 !important}
  @page{margin:15mm}
}
