/* CEO AI OS — Dashboard. Sovereign: SELF-HOSTED fonts (no CDN). "Executive Sovereignty" design. */
@font-face{font-family:'Be Vietnam Pro';font-weight:400;font-display:swap;src:url(fonts/bvp-latin-400.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Be Vietnam Pro';font-weight:400;font-display:swap;src:url(fonts/bvp-viet-400.woff2) format('woff2');unicode-range:U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}
@font-face{font-family:'Be Vietnam Pro';font-weight:500;font-display:swap;src:url(fonts/bvp-latin-500.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Be Vietnam Pro';font-weight:500;font-display:swap;src:url(fonts/bvp-viet-500.woff2) format('woff2');unicode-range:U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}
@font-face{font-family:'Be Vietnam Pro';font-weight:700;font-display:swap;src:url(fonts/bvp-latin-700.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Be Vietnam Pro';font-weight:700;font-display:swap;src:url(fonts/bvp-viet-700.woff2) format('woff2');unicode-range:U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}
@font-face{font-family:'Be Vietnam Pro';font-weight:800;font-display:swap;src:url(fonts/bvp-latin-800.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Be Vietnam Pro';font-weight:800;font-display:swap;src:url(fonts/bvp-viet-800.woff2) format('woff2');unicode-range:U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}
@font-face{font-family:'JetBrains Mono';font-weight:500;font-display:swap;src:url(fonts/jbm-latin-500.woff2) format('woff2')}
@font-face{font-family:'JetBrains Mono';font-weight:700;font-display:swap;src:url(fonts/jbm-latin-700.woff2) format('woff2')}
:root{
  /* Executive Sovereignty — neutral-led, single confident blue, hairline + soft shadow */
  --bg:#F7F8FA; --surface:#FFFFFF; --surface-2:#F1F2F5;
  --ink:#0B0F19; --ink-2:#384152; --muted:#6B7280; --faint:#9AA1AD;
  --line:#E6E8EC; --line-2:#F1F2F5;
  --primary:#2B59FF; --primary-ink:#1E40E0; --primary-soft:#EEF2FF;
  --ok:#0F9D58; --ok-bg:#ECFDF3; --ok-line:#BBF0CE;
  --warn:#B7791F; --warn-bg:#FFFBEB; --warn-line:#FCE8B5;
  --risk:#DC2626; --risk-bg:#FEF2F2; --risk-line:#FECACA;
  --idle:#9AA1AD; --idle-bg:#F1F2F5; --idle-line:#D7DBE2;
  --r-sm:8px; --r:12px; --r-lg:16px;
  --sh:0 1px 2px 0 rgba(11,15,25,.05);
  --sh-hover:0 6px 18px rgba(11,15,25,.09);
  --sans:'Be Vietnam Pro',Inter,-apple-system,"Segoe UI",system-ui,Roboto,sans-serif;
  --mono:'JetBrains Mono',"Cascadia Code",ui-monospace,Consolas,monospace;
  --t:170ms cubic-bezier(.4,0,.2,1);
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.55 var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
h1,h2,h3{margin:0}
.num{font-family:var(--mono);font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.muted{color:var(--muted)} .loading{color:var(--faint);font-size:13px;padding:6px 0}

/* topbar */
.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:14px;padding:13px 24px;
  background:var(--surface);border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:15px;letter-spacing:-.01em}
.brand .logo{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;color:#fff;
  background:linear-gradient(135deg,var(--primary),#4f46e5);box-shadow:var(--sh)}
.brand .logo svg{width:17px;height:17px} .brand small{display:block;font-weight:500;font-size:11px;color:var(--muted)}
.spacer{flex:1}
.pill{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;padding:5px 11px;
  border-radius:999px;border:1px solid var(--line);color:var(--ink-2)}
.pill .dot{width:7px;height:7px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 3px var(--ok-bg)}
.upd{font-size:12px;color:var(--muted)}

/* layout */
.cards{display:grid;grid-template-columns:repeat(12,1fr);gap:16px}
.col-12{grid-column:span 12} .col-8{grid-column:span 8} .col-4{grid-column:span 4}
@media(max-width:1000px){.col-8{grid-column:span 12}.col-4{grid-column:span 6}}
@media(max-width:620px){.cards{grid-template-columns:1fr}.col-8,.col-4{grid-column:auto}}

/* app shell: sidebar + main */
.app{display:flex;height:100dvh;overflow:hidden}
.sidebar{width:268px;flex-shrink:0;background:var(--surface);border-right:1px solid var(--line);display:flex;flex-direction:column;height:100dvh}
.side-brand{display:flex;align-items:center;gap:10px;padding:15px 18px;border-bottom:1px solid var(--line);font-weight:750;font-size:15px;letter-spacing:-.01em}
.side-brand .logo{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,var(--primary),#4f46e5);box-shadow:var(--sh)}
.side-brand .logo svg{width:17px;height:17px} .side-brand small{display:block;font-weight:500;font-size:11px;color:var(--muted)}
.nav{flex:1;overflow:auto;padding:10px 10px 16px}
.side-foot{padding:11px 16px;border-top:1px solid var(--line);font-size:10.5px;color:var(--faint)}
.main-wrap{flex:1;min-width:0;display:flex;flex-direction:column;height:100dvh}
.view{flex:1;overflow:auto;padding:24px 28px}
.view>.cards,.view>.banner,.view>.ov-hero,.view>.ov-stats{max-width:1100px;margin-left:auto;margin-right:auto}
.crumb{font-weight:750;font-size:16px;letter-spacing:-.01em}
.iconbtn{display:none;place-items:center;width:36px;height:36px;border-radius:9px;border:1px solid var(--line);background:var(--surface);cursor:pointer;color:var(--ink-2)}
.iconbtn svg{width:18px;height:18px}
.scrim{display:none}

/* nav items */
.nav a{text-decoration:none}
.nav-item{display:flex;align-items:center;gap:10px;padding:9px 11px;border-radius:10px;cursor:pointer;font-weight:600;font-size:13.5px;color:var(--ink-2);transition:background var(--t),color var(--t)}
.nav-item:hover{background:var(--surface-2)}
.nav-item.active{background:var(--primary);color:#fff;font-weight:700;box-shadow:0 2px 8px rgba(43,89,255,.28)}
.nav-item.active:hover{background:var(--primary)}
.nav-item .i{width:18px;height:18px;color:var(--muted)} .nav-item.active .i{color:#fff}
.nav-item .i svg,.tool .i svg,.ph-name+ .i svg{width:100%;height:100%}
.nav-sec{font-size:10px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:var(--faint);padding:15px 12px 6px;display:flex;align-items:center;gap:8px}
.mode{font-size:8.5px;font-weight:800;letter-spacing:.04em;padding:2px 6px;border-radius:5px;white-space:nowrap}
.mode.SEARCH{background:#eef2ff;color:#4f46e5} .mode.EXECUTION{background:#ecfdf5;color:#059669} .mode.ONGOING{background:#fff7ed;color:#c2410c}

/* phase accordion — gọn: số · tên · đếm · chevron */
.phase{border-radius:9px;margin:1px 0}
.phase.active{box-shadow:inset 2px 0 0 var(--primary)}
.phase-h{width:100%;display:flex;align-items:center;gap:10px;padding:10px 11px;border:none;background:none;cursor:pointer;border-radius:9px;text-align:left;font:inherit;color:var(--ink-2);transition:background var(--t)}
.phase-h:hover{background:var(--surface-2)}
.ph-ord{width:22px;height:22px;border-radius:7px;background:var(--surface-2);color:var(--muted);font-size:11px;font-weight:800;display:grid;place-items:center;flex-shrink:0;font-family:var(--mono)}
.phase.active .ph-ord{background:var(--primary);color:#fff}
.ph-name{flex:1;font-weight:600;font-size:13.5px}
.phase.active .ph-name{font-weight:700;color:var(--primary-ink)}
.ph-count{font-size:10.5px;font-weight:700;color:var(--faint);font-family:var(--mono)}
.chev{color:var(--idle-line);display:grid;transition:transform var(--t)} .chev svg{width:15px;height:15px} .phase.open .chev{transform:rotate(90deg)}
.tools{display:none;flex-direction:column;gap:1px;padding-bottom:6px} .phase.open .tools{display:flex}
.tools-flat{display:flex;padding:2px 0}
.tool{display:flex;align-items:center;gap:9px;padding:7px 11px 7px 41px;border-radius:8px;cursor:pointer;font-size:12.5px;color:var(--ink-2);transition:background var(--t)}
.tools-flat .tool{padding-left:14px}
.tool:hover{background:var(--surface-2)} .tool.active{background:var(--surface-2);color:var(--ink);font-weight:600}
.tool .i{width:15px;height:15px;color:var(--faint);flex-shrink:0} .tool.active .i{color:var(--ink-2)}
.tool .tx{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tool .soon{font-size:8.5px;font-weight:700;color:var(--warn);background:var(--warn-bg);padding:2px 6px;border-radius:999px}

/* panel header */
.panel-h{display:flex;align-items:center;gap:13px;margin-bottom:18px;max-width:1100px;margin-left:auto;margin-right:auto}
.panel-h .ic{width:44px;height:44px;border-radius:13px;display:grid;place-items:center;background:var(--primary-soft);color:var(--primary);flex-shrink:0}
.panel-h .ic svg{width:23px;height:23px}
.panel-h h1{font-size:20px;font-weight:750;letter-spacing:-.02em} .panel-h p{font-size:13px;color:var(--muted);margin-top:3px}
.panel-h .pmeta{margin-left:auto;text-align:right;font-size:11.5px;color:var(--muted);line-height:1.3}
.panel-h .pmeta .num{font-size:19px;font-weight:750;color:var(--ink)}
.view>.card,.view>.bmc-legend,.view>.bmc,.view>.about{max-width:1100px;margin-left:auto;margin-right:auto}
.view>.bmc{margin-top:0}

/* BMC — card giải thích "BMC là gì" + 3 vùng */
.about{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:18px 20px;box-shadow:var(--sh);margin-bottom:16px}
.about h3{font-size:15px;font-weight:700;letter-spacing:-.01em;margin-bottom:6px}
.about p{font-size:13px;color:var(--muted);line-height:1.65;max-width:780px}
.zones{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:14px}
.zone{border:1px solid var(--line);border-left:3px solid var(--zc);border-radius:var(--r);padding:11px 13px;background:var(--surface-2)}
.zone b{display:block;font-size:12.5px;font-weight:700;color:var(--ink);margin-bottom:3px}
.zone span{font-size:12px;color:var(--muted);line-height:1.45}
@media(max-width:760px){.zones{grid-template-columns:1fr}}

/* phase landing — danh sách tool dạng card */
.phase-h.active{background:var(--surface-2)}
.chev{cursor:pointer;padding:2px;border-radius:5px} .chev:hover{background:var(--line)}
.view>.tcards,.view>.phase-head{max-width:860px;margin-left:auto;margin-right:auto}
.phase-head{margin-bottom:18px}
.phase-head .mode{display:inline-block;margin-bottom:9px}
.phase-head h1{font-size:21px;font-weight:750;letter-spacing:-.02em}
.phase-head h1 small{display:block;font-size:13px;font-weight:500;color:var(--muted);letter-spacing:0;margin-top:2px}
.banner h1 .h1-sub{font-size:14px;font-weight:500;color:var(--muted);letter-spacing:0}
.phase-head p{font-size:13.5px;color:var(--muted);margin-top:5px;max-width:640px}
.tcards{display:flex;flex-direction:column;gap:12px}
.tcard{display:flex;align-items:center;gap:14px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:15px 18px;box-shadow:var(--sh);text-decoration:none;color:inherit;transition:border-color var(--t),box-shadow var(--t),transform var(--t)}
.tcard:hover{border-color:#c7d2fe;box-shadow:var(--sh-hover);transform:translateY(-1px)}
.tc-ic{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:var(--surface-2);color:var(--ink-2);border:1px solid var(--line);flex-shrink:0}
.tc-ic svg{width:22px;height:22px}
.tc-main{flex:1;min-width:0}
.tc-h{display:flex;align-items:center;gap:10px;margin-bottom:3px}
.tc-h b{font-size:14.5px;font-weight:700;letter-spacing:-.01em}
.tc-badge{font-size:9.5px;font-weight:800;text-transform:uppercase;letter-spacing:.03em;padding:3px 8px;border-radius:999px;border:1px solid transparent;flex-shrink:0}
.tc-badge.done{background:var(--ok-bg);color:var(--ok);border-color:var(--ok-line)}
.tc-badge.doing{background:var(--warn-bg);color:var(--warn);border-color:var(--warn-line)}
.tc-badge.todo{background:var(--idle-bg);color:var(--faint);border-color:var(--line)}
.tc-badge.soon{background:var(--warn-bg);color:var(--warn);border-color:var(--warn-line)}
.tc-desc{font-size:13px;color:var(--muted);line-height:1.45;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tc-bar{height:6px;border-radius:999px;background:var(--line);overflow:hidden;margin-top:10px}
.tc-bar>i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#22c55e,var(--ok))}
.tc-bar.b0>i{width:0}
.tc-arrow{color:var(--faint);flex-shrink:0;display:grid} .tc-arrow svg{width:18px;height:18px} .tcard:hover .tc-arrow{color:var(--primary)}

/* overview banner — card sáng, accent trái */
.banner{position:relative;overflow:hidden;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:22px 24px 22px 26px;margin-bottom:18px;box-shadow:var(--sh)}
.banner::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(var(--primary),#4f46e5)}
.banner-top{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.banner-sub{font-size:12px;color:var(--muted)}
.banner h1{font-size:22px;font-weight:750;letter-spacing:-.02em;color:var(--ink)}
.banner .goal{color:var(--muted);font-size:13.5px;margin-top:5px}
.banner-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:24px;margin-top:18px}
.banner .lbl{font-size:10.5px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--faint);margin-bottom:8px}
.checklist{list-style:none;margin:0;padding:0}
.checklist li{display:flex;gap:9px;padding:4px 0;font-size:13px;color:var(--ink-2)}
.checklist .box{width:16px;height:16px;border:1.6px solid var(--idle-line);border-radius:5px;flex-shrink:0;margin-top:1px}
.kpitags{display:flex;flex-wrap:wrap;gap:7px}
.kpitag{font-size:11.5px;font-weight:600;color:var(--ink-2);background:var(--surface-2);border:1px solid var(--line);padding:5px 10px;border-radius:999px}
@media(max-width:680px){.banner-grid{grid-template-columns:1fr;gap:16px}}
.ov-prog{display:flex;align-items:center;gap:12px}
.ov-prog .bar{flex:1;height:9px;border-radius:999px;background:var(--line);overflow:hidden}
.ov-prog .bar>i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#22c55e,var(--ok));transition:width .6s var(--t)}
.ov-prog span{font-size:12px;color:var(--muted);font-weight:600;white-space:nowrap}

/* kb + soon */
.kb-stat{display:flex;gap:30px;padding:4px 2px 14px;border-bottom:1px solid var(--line-2);margin-bottom:14px}
.kb-stat b{font-size:26px;font-weight:750} .kb-stat span{display:block;font-size:12px;color:var(--muted)}
.kb-hint{font-size:13px;color:var(--ink-2);line-height:1.6} .kb-hint code{background:var(--surface-2);border:1px solid var(--line);border-radius:6px;padding:1px 7px;font-family:var(--mono);font-size:12px}
.soon-page{text-align:center;padding:30px 16px}
.soon-tag{display:inline-block;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--warn);background:var(--warn-bg);padding:5px 12px;border-radius:999px;margin-bottom:14px}
.soon-page p{font-size:14px;color:var(--ink-2);max-width:460px;margin:8px auto;line-height:1.6}

/* drawer (mobile) */
@media(max-width:900px){
  .sidebar{position:fixed;z-index:60;left:0;top:0;transform:translateX(-100%);transition:transform var(--t);box-shadow:0 0 50px rgba(15,23,42,.25)}
  .sidebar.open{transform:none}
  .scrim.show{display:block;position:fixed;inset:0;background:rgba(15,23,42,.42);z-index:55}
  .iconbtn.menu{display:grid}
  .view{padding:18px 16px}
}

.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:20px;box-shadow:var(--sh)}
.card-h{display:flex;align-items:center;gap:10px;margin-bottom:14px}
.card-h .ic{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;background:var(--surface-2);color:var(--ink-2);border:1px solid var(--line)}
.card-h .ic svg{width:17px;height:17px} .card-h h2{font-size:14px;font-weight:650;flex:1}
.badge{font-size:12px;font-weight:700;color:var(--primary-ink);background:var(--primary-soft);padding:3px 9px;border-radius:999px}

/* hero / overview */
.hero{grid-column:span 12;border-radius:var(--r-lg);padding:24px 26px;color:#fff;
  background:linear-gradient(135deg,#1e3a8a,var(--primary) 55%,#4f46e5);box-shadow:0 10px 26px rgba(43,89,255,.28)}
.hero h1{font-size:22px;font-weight:750;letter-spacing:-.02em}
.hero .sub{color:#dbeafe;font-size:13.5px;margin-top:5px}
.hero-row{display:flex;flex-wrap:wrap;gap:34px;align-items:flex-end;margin-top:18px}
.hero-row .n{font-family:var(--mono);font-size:34px;font-weight:750;line-height:1}
.hero-row .l{font-size:12px;color:#dbeafe;margin-top:4px}
.hero .prog{flex:1;min-width:160px}
.hero .prog .bar{height:9px;border-radius:999px;background:#ffffff33;overflow:hidden}
.hero .prog .bar>i{display:block;height:100%;background:#fff;border-radius:999px;transition:width .6s var(--t)}
.hero .prog .pl{font-size:11.5px;color:#dbeafe;margin-bottom:6px}

/* plan grid (framework modules) */
.plan{grid-column:span 12;display:grid;grid-template-columns:repeat(auto-fill,minmax(232px,1fr));gap:14px}
.section-t{grid-column:span 12;display:flex;align-items:baseline;gap:10px;margin:6px 2px -4px}
.section-t h2{font-size:15px;font-weight:700;letter-spacing:-.01em} .section-t span{font-size:12.5px;color:var(--muted)}
.fw{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:16px;box-shadow:var(--sh);
  display:flex;flex-direction:column;gap:9px;transition:transform var(--t),box-shadow var(--t),border-color var(--t)}
.fw:hover{transform:translateY(-3px);box-shadow:var(--sh-hover);border-color:var(--primary)}
.fw-h{display:flex;align-items:center;justify-content:space-between}
.fw-ic{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;background:var(--primary-soft);color:var(--primary)}
.fw-ic svg{width:20px;height:20px}
.fw-badge{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;padding:5px 9px;border-radius:999px;display:inline-flex;align-items:center;gap:5px}
.fw-badge.done{background:var(--ok-bg);color:var(--ok)} .fw-badge.doing{background:var(--warn-bg);color:var(--warn)} .fw-badge.todo{background:var(--idle-bg);color:var(--faint)}
.fw-title{font-size:14.5px;font-weight:700;letter-spacing:-.01em}
.fw-desc{font-size:12px;color:var(--muted);line-height:1.45;flex:1}
.fw-bar{height:7px;border-radius:999px;background:var(--line);overflow:hidden}
.fw-bar>i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#22c55e,var(--ok));transition:width .5s var(--t)}
.fw-bar.b0>i{background:var(--idle-line)} .fw-bar.b1>i{background:linear-gradient(90deg,var(--warn),#f59e0b)}
.fw-meta{font-size:11.5px;color:var(--muted);font-weight:600}

/* activity */
.bars{display:flex;align-items:flex-end;gap:9px;height:80px;padding:6px 2px 0;margin-bottom:6px}
.bars .col{flex:1;display:flex;flex-direction:column;align-items:center;gap:5px;height:100%}
.bars .track{flex:1;width:100%;display:flex;align-items:flex-end}
.bars .bar{width:100%;border-radius:6px 6px 3px 3px;min-height:4px;background:linear-gradient(180deg,#60a5fa,var(--primary));transition:filter var(--t)}
.bars .col:hover .bar{filter:brightness(1.1)}
.bars .d{font-size:10px;color:var(--faint)} .bars .v{font-size:10px;font-weight:700;color:var(--ink-2);min-height:13px}
.feed{list-style:none;margin:8px 0 0;padding:0;max-height:240px;overflow:auto}
.feed li{display:flex;align-items:center;gap:11px;padding:9px 4px;border-bottom:1px solid var(--line-2);transition:background var(--t)}
.feed li:hover{background:var(--surface-2)}
.feed .t{font-size:11.5px;color:var(--muted);white-space:nowrap;min-width:78px}
.chip{font-size:11px;font-weight:700;padding:3px 9px;border-radius:7px;white-space:nowrap;background:var(--primary-soft);color:var(--primary-ink)}
.chip.startup-kit{background:#ede9fe;color:#6d28d9} .chip.daily-brief{background:#dcfce7;color:#15803d}
.chip.email{background:#fef3c7;color:#b45309} .chip.ai-mentor{background:#cffafe;color:#0e7490}
.feed .act{font-size:13px;color:var(--ink-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* team */
.team{list-style:none;margin:0;padding:0}
.team li{display:flex;align-items:center;gap:11px;padding:9px 2px;border-bottom:1px solid var(--line-2)}
.team .av{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;color:#fff;font-weight:700;font-size:13px;flex-shrink:0}
.team .nm{flex:1;font-weight:600;font-size:13.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.team .nm small{display:block;font-weight:500;color:var(--muted);font-size:11px}
.role{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--primary-ink);background:var(--primary-soft);padding:4px 9px;border-radius:7px}

/* empty (kpi) */
.empty{display:flex;align-items:center;gap:14px;padding:8px 4px;color:var(--muted)}
.empty .ic{width:46px;height:46px;border-radius:13px;display:grid;place-items:center;background:var(--surface-2);border:1px dashed var(--line);color:var(--faint);flex-shrink:0}
.empty .ic svg{width:22px;height:22px}
.empty b{color:var(--ink-2);font-size:13.5px;font-weight:650;display:block} .empty span{font-size:12.5px}

footer{text-align:center;padding:18px 24px 30px;color:var(--faint);font-size:12px}

/* clickable framework + modal */
.fw{cursor:pointer} .fw:focus-visible{outline:2px solid var(--primary);outline-offset:2px}
.fw .more{font-size:11px;color:var(--primary);font-weight:600;display:flex;align-items:center;gap:3px}
.modal[hidden]{display:none}
.modal{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:20px}
.modal-bg{position:absolute;inset:0;background:rgba(15,23,42,.55);backdrop-filter:blur(2px);animation:fade .15s}
.modal-card{position:relative;background:var(--surface);border-radius:var(--r-lg);width:min(640px,100%);
  max-height:86vh;display:flex;flex-direction:column;box-shadow:0 24px 60px rgba(15,23,42,.35);animation:pop .18s var(--t)}
.modal-h{display:flex;align-items:flex-start;gap:12px;padding:18px 20px;border-bottom:1px solid var(--line)}
.modal-h .ic{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;background:var(--primary-soft);color:var(--primary);flex-shrink:0}
.modal-h .ic svg{width:20px;height:20px}
.modal-ti{flex:1} .modal-ti h3{font-size:16px;font-weight:750;letter-spacing:-.01em} .modal-ti p{font-size:12.5px;margin:3px 0 0}
.modal-x{border:none;background:var(--surface-2);color:var(--muted);width:32px;height:32px;border-radius:8px;cursor:pointer;display:grid;place-items:center;flex-shrink:0;transition:background var(--t)}
.modal-x:hover{background:var(--line)} .modal-x svg{width:16px;height:16px}
.modal-body{padding:6px 20px 20px;overflow:auto}
.mb{padding:14px 0;border-bottom:1px solid var(--line-2)} .mb:last-child{border-bottom:none}
.mb-h{display:flex;align-items:center;gap:10px;margin-bottom:7px}
.mb-h b{font-size:13.5px;font-weight:650;flex:1}
.badge2{font-size:9.5px;font-weight:800;text-transform:uppercase;letter-spacing:.03em;padding:3px 8px;border-radius:999px;border:1px solid transparent}
.badge2.validated{background:var(--ok-bg);color:var(--ok);border-color:var(--ok-line)} .badge2.draft{background:var(--warn-bg);color:var(--warn);border-color:var(--warn-line)} .badge2.not_started{background:var(--idle-bg);color:var(--faint);border-color:var(--line)}
.mb-body{font-size:13.5px;color:var(--ink-2);line-height:1.6;white-space:pre-wrap}
.mb-q{font-size:12.5px;color:var(--faint);font-style:italic}
/* BMC — lưới Osterwalder 9 ô */
.modal-card.wide{width:min(980px,100%)}
.bmc-legend{display:flex;align-items:center;gap:16px;font-size:11.5px;color:var(--muted);padding:2px 2px 12px}
.bmc-legend b{margin-left:auto;color:var(--ink-2);font-weight:700}
.bmc-legend i.d{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:5px;vertical-align:middle}
.bmc-legend i.d.not_started{background:var(--idle-line)} .bmc-legend i.d.draft{background:var(--warn)} .bmc-legend i.d.validated{background:var(--ok)}
.bmc{display:flex;flex-direction:column;gap:12px}
.bmc-top{display:grid;gap:12px;grid-template-columns:repeat(5,1fr);grid-template-rows:1fr 1fr;
  grid-template-areas:"part act val rel cust" "part res val cha cust"}
.bmc-bot{display:grid;gap:12px;grid-template-columns:1fr 1fr;grid-template-areas:"cost revn"}
.bcell{background:var(--bg);border:1px solid var(--line);border-top:3px solid var(--ac);border-radius:12px;
  padding:14px 16px;min-height:156px;display:flex;flex-direction:column;gap:9px;overflow:hidden}
.bc-h{display:flex;align-items:flex-start;gap:8px}
.bc-ic{width:26px;height:26px;border-radius:7px;display:grid;place-items:center;flex-shrink:0;background:#fff;border:1px solid var(--line);color:var(--ac)} .bc-ic svg{width:15px;height:15px}
.bc-t{flex:1;min-width:0;font-weight:700;font-size:14px;color:var(--ac);line-height:1.3;letter-spacing:-.01em}
.bc-s{font-size:15px;line-height:1;flex-shrink:0}
.bc-s.not_started{color:#cbd5e1} .bc-s.draft{color:var(--warn)} .bc-s.validated{color:var(--ok)}
.bc-body{font-size:13px;color:var(--ink);line-height:1.55;white-space:pre-wrap;overflow:auto;max-height:220px}
.bc-q{font-size:12px;color:#9aa3b2;line-height:1.5;font-style:italic}
@media(max-width:760px){
  .bmc-top{grid-template-columns:1fr;grid-template-rows:none;grid-template-areas:none}
  .bmc-bot{grid-template-columns:1fr}
  .bcell{grid-area:auto!important;min-height:auto}
}

/* Value Proposition Canvas — ô vuông (giá trị) ↔ vòng tròn (khách) */
.vpc-stmt{max-width:1100px;margin:0 auto 14px;background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--primary);border-radius:var(--r);padding:12px 16px;box-shadow:var(--sh)}
.vpc-stmt .l{font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--faint)}
.vpc-stmt p{font-size:14.5px;color:var(--ink);margin-top:4px;font-weight:650}
.vpc-stmt p.q{font-style:italic;color:var(--faint);font-weight:400;font-size:13px}
.vpc-scroll{max-width:1120px;margin:0 auto;overflow-x:auto}
.vpc-wrap{position:relative;width:100%;min-width:560px;aspect-ratio:1000/540}
.vpc-bg{position:absolute;inset:0;width:100%;height:100%}
.vz-s.validated{color:var(--ok)} .vz-s.draft{color:var(--warn)} .vz-s.not_started{color:#cbd5e1}
.vzc{position:absolute;background:#fff;border:1px solid var(--line);border-radius:9px;padding:8px 10px;box-shadow:0 2px 7px rgba(9,9,11,.10)}
.vzc-h{display:flex;align-items:center;gap:7px;margin-bottom:4px}
.vzc-ic{width:24px;height:24px;border-radius:6px;display:grid;place-items:center;background:var(--surface-2);border:1px solid var(--line);color:var(--ink-2);flex-shrink:0}
.vzc-ic svg{width:14px;height:14px}
.vzc-h b{flex:1;font-size:12px;font-weight:800;letter-spacing:-.01em;line-height:1.15}
.vzc .vz-s{font-size:13px;line-height:1;flex-shrink:0}
.vzc-b{font-size:12.5px;color:var(--ink);line-height:1.45;white-space:pre-wrap;max-height:124px;overflow:auto}
.vzc-q{font-size:11.5px;color:var(--muted);font-style:italic;line-height:1.4;max-height:100px;overflow:hidden}

/* Customer Persona — thẻ định danh + lưới mảng */
.persona{display:grid;grid-template-columns:264px 1fr;gap:16px;max-width:1100px;margin:0 auto}
.persona-id{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh);padding:22px 18px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:5px;height:fit-content}
.pid-avatar{width:96px;height:96px;border-radius:24px;background:var(--surface-2);border:1px solid var(--line);display:grid;place-items:center;color:var(--muted);margin-bottom:6px} .pid-avatar svg{width:50px;height:50px}
.persona-id h2{font-size:17px;font-weight:750;letter-spacing:-.01em;line-height:1.3}
.pid-sum{font-size:12.5px;color:var(--ink-2);line-height:1.5} .pid-sum.q{color:var(--faint);font-style:italic}
.pid-tag{margin-top:8px;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--primary-ink);background:var(--primary-soft);padding:5px 11px;border-radius:999px}
.persona-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px;align-content:start}
.pcard{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh);padding:13px 15px}
.pc-h{display:flex;align-items:center;gap:9px;margin-bottom:7px}
.pc-ic{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;background:var(--surface-2);border:1px solid var(--line);color:var(--primary);flex-shrink:0} .pc-ic svg{width:16px;height:16px}
.pc-h b{flex:1;font-size:13px;font-weight:700;letter-spacing:-.01em}
.pcard .vz-s{font-size:13px;line-height:1;flex-shrink:0}
.pc-b{font-size:12.5px;color:var(--ink-2);line-height:1.55;white-space:pre-wrap}
.pc-q{font-size:12px;color:var(--faint);font-style:italic;line-height:1.45}
@media(max-width:860px){.persona{grid-template-columns:1fr}.persona-grid{grid-template-columns:1fr}}

/* Customer Journey Map — lưới chặng × dòng + đường cảm xúc */
.cjm-scroll{max-width:1160px;margin:0 auto;overflow-x:auto;padding-bottom:8px}
.cjm{min-width:1000px;display:grid;grid-template-columns:152px repeat(5,1fr);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;background:var(--surface);box-shadow:var(--sh)}
.cjm>div{border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:11px 12px;min-width:0}
.rlabel{background:var(--surface-2);font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.03em;color:var(--ink-2);display:flex;align-items:center}
.rlabel.corner{justify-content:center;color:var(--faint)}
.rlabel.pain{color:#dc2626} .rlabel.opp{color:#16a34a} .rlabel.emo-l{color:var(--primary-ink)}
.shead{text-align:center;background:var(--surface-2)}
.sh-top{display:flex;align-items:center;justify-content:center;gap:7px;margin-bottom:5px}
.sh-num{width:22px;height:22px;border-radius:50%;background:var(--primary);color:#fff;font:800 11px/1 var(--mono);display:grid;place-items:center}
.sh-ic{color:var(--primary);display:grid;place-items:center} .sh-ic svg{width:16px;height:16px}
.sh-nm{font-size:12px;font-weight:700;line-height:1.25}
.emo-cell{grid-column:2 / span 5;position:relative;height:118px;padding:0!important;background:var(--surface-2)}
.emo-svg{position:absolute;inset:0;width:100%;height:100%}
.emo-pt{position:absolute;transform:translate(-50%,-50%);font-size:21px;line-height:1}
.emo-pt.off{font-size:13px;color:var(--idle-line)}
.ccell{font-size:12px;color:var(--ink-2);line-height:1.45;white-space:pre-wrap}
.ccell.pain{color:#b1493f} .ccell.opp{color:#15803d}
.ccell .dash{color:var(--faint)}

/* Kỹ năng AI — catalog */
.skgroup{max-width:1100px;margin:0 auto 22px}
.skg-h{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.skg-h .ic{width:32px;height:32px;border-radius:9px;display:grid;place-items:center;background:var(--surface-2);border:1px solid var(--line);color:var(--ink-2)} .skg-h .ic svg{width:17px;height:17px}
.skg-h h3{font-size:15px;font-weight:750;letter-spacing:-.01em}
.skgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(264px,1fr));gap:13px}
.skcard{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh);padding:14px 15px;display:flex;flex-direction:column;gap:7px;cursor:pointer;transition:transform .12s,box-shadow .12s,border-color .12s;position:relative}
.skcard:hover{transform:translateY(-2px);box-shadow:0 6px 18px rgba(16,24,40,.10);border-color:var(--primary)}
.skcard.soon{background:var(--surface-2)}
.skcard.hi{border-color:var(--primary);background:var(--primary-soft);box-shadow:0 0 0 1px var(--primary) inset,var(--sh)}
.sk-star{display:inline-flex;align-items:center;gap:4px;align-self:flex-start;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.03em;color:#fff;background:var(--primary);padding:3px 9px;border-radius:999px;margin-bottom:1px}
.sk-star .ic svg{width:12px;height:12px}
.sk-more{font-size:11px;font-weight:700;color:var(--primary);margin-left:auto}
.sk-h{display:flex;align-items:flex-start;gap:10px}
.sk-name{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}
.sk-name b{font-size:13.5px;font-weight:700;letter-spacing:-.01em}
.sk-id{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:10.5px;color:var(--ink-2);opacity:.75;font-weight:500}
.sk-badge{display:inline-flex;align-items:center;gap:5px;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.03em;padding:3px 9px;border-radius:999px;border:1px solid transparent;flex-shrink:0}
.sk-badge::before,.badge2::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;flex-shrink:0}
.badge2{display:inline-flex;align-items:center;gap:5px}
.sk-badge.ready{background:var(--ok-bg);color:var(--ok);border-color:var(--ok-line)}
.sk-badge.soon{background:var(--warn-bg);color:var(--warn);border-color:var(--warn-line)}
.sk-desc{font-size:12.5px;color:var(--muted);line-height:1.5;flex:1}
.sk-foot{display:flex;flex-wrap:wrap;gap:7px;align-items:center}
.sk-trig{font-size:11px;color:var(--primary-ink);background:var(--primary-soft);padding:3px 8px;border-radius:7px}
.sk-needs{font-size:10.5px;color:var(--faint)}
.modal-bd{position:fixed;inset:0;background:rgba(16,24,40,.46);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;animation:mfade .14s ease}
@keyframes mfade{from{opacity:0}to{opacity:1}}
.modal{background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:0 24px 60px rgba(16,24,40,.28);width:min(560px,100%);max-height:86vh;overflow:auto;padding:22px 24px;position:relative;animation:mpop .16s ease}
@keyframes mpop{from{transform:translateY(8px) scale(.99);opacity:.6}to{transform:none;opacity:1}}
.modal-x{position:absolute;top:14px;right:14px;width:30px;height:30px;border:1px solid var(--line);background:var(--surface-2);border-radius:8px;cursor:pointer;font-size:14px;color:var(--ink-2);line-height:1}
.modal-x:hover{background:var(--line)}
.skm-h h2{font-size:18px;font-weight:800;letter-spacing:-.02em;margin:6px 40px 0 0}
.skm-meta{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:8px}
.skm-trig{margin-top:14px;font-size:13px;color:var(--ink-2)}
.skm-trig code,.skm-guide code{background:var(--surface-2);border:1px solid var(--line);padding:1px 7px;border-radius:6px;font-size:12.5px;font-family:ui-monospace,Menlo,Consolas,monospace}
.skm-guide{margin-top:14px;font-size:13.5px;color:var(--ink-2);line-height:1.6}
.skm-guide p{margin:0 0 9px} .skm-guide b{color:var(--ink)} .skm-guide ul{margin:6px 0;padding-left:20px} .skm-guide li{margin:3px 0}
.skm-needs{margin-top:14px;font-size:12px;color:var(--warn);background:var(--warn-bg);border:1px solid var(--warn-line);padding:7px 11px;border-radius:8px}

/* Operations — Kanban mirror (chỉ-đọc) */
.kanban-scroll{max-width:1140px;margin:0 auto;overflow-x:auto;padding-bottom:8px}
.kanban{display:grid;grid-template-columns:repeat(4,minmax(220px,1fr));gap:13px;min-width:940px}
.kbcol{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-lg);padding:10px;display:flex;flex-direction:column;gap:8px}
.kbcol-h{display:flex;align-items:center;gap:8px;padding:2px 4px}
.kbcol-h b{flex:1;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.03em;color:var(--ink-2)}
.kbcol-done .kbcol-h b{color:var(--ok)} .kbcol-blocked .kbcol-h b{color:#dc2626} .kbcol-running .kbcol-h b{color:var(--primary-ink)}
.kbcount{font-size:11px;font-weight:700;color:var(--muted);background:var(--surface);border:1px solid var(--line);padding:1px 8px;border-radius:999px}
.kbcol-body{display:flex;flex-direction:column;gap:8px;min-height:44px}
.kbcard{background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--idle-line);border-radius:9px;padding:10px 11px;box-shadow:var(--sh)}
.kbcard.p2,.kbcard.p3{border-left-color:var(--warn)} .kbcard.p4,.kbcard.p5{border-left-color:#dc2626}
.kb-t{font-size:12.5px;font-weight:600;color:var(--ink);line-height:1.4}
.kb-m{display:flex;flex-wrap:wrap;gap:7px;margin-top:7px;align-items:center}
.kb-as{font-size:10.5px;font-weight:700;color:var(--primary-ink);background:var(--primary-soft);padding:2px 7px;border-radius:6px}
.kb-st{font-size:10px;color:var(--faint);text-transform:uppercase;letter-spacing:.03em}
.kb-empty{font-size:13px;color:var(--idle-line);text-align:center;padding:10px 0}

/* Customer Development — overview diagram + chi tiết theo stage (mỗi stage 1 màu) */
.proc-ov{max-width:1140px;margin:0 auto 22px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh);padding:8px 14px}
.proc-ov-svg{width:100%;height:auto;display:block}
.ov-stage{cursor:pointer} .ov-stage:hover circle{filter:brightness(1.08)}
.proc-step{max-width:1140px;margin:0 auto 24px;scroll-margin-top:16px}
.ps-h{display:flex;align-items:center;gap:12px;margin-bottom:5px}
.ps-num{width:30px;height:30px;border-radius:50%;background:var(--c,var(--primary));color:#fff;font:800 14px/1 var(--mono);display:grid;place-items:center;flex-shrink:0}
.ps-ti{flex:1} .ps-ti b{font-size:16px;font-weight:750;letter-spacing:-.01em} .ps-ti span{display:block;font-size:12px;color:var(--muted)}
.ps-tag{font-size:9.5px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--c,var(--primary));border:1px solid var(--c,var(--line));padding:3px 9px;border-radius:999px}
.ps-goal{font-size:13px;color:var(--muted);line-height:1.5;margin:0 0 12px;max-width:780px}
.proc-phases{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.proc-phase{background:var(--surface);border:1px solid var(--line);border-top:3px solid var(--c,var(--primary));border-radius:var(--r-lg);box-shadow:var(--sh);padding:13px 14px;display:flex;flex-direction:column;gap:7px}
.proc-phase.gate{border-top-color:#d56a4f;background:#fff8f6}
.pp-h{display:flex;align-items:center;gap:8px}
.pp-n{width:22px;height:22px;border-radius:6px;background:var(--c,var(--primary));color:#fff;font:800 11px/1 var(--mono);display:grid;place-items:center;flex-shrink:0}
.pp-h b{flex:1;font-size:12.5px;font-weight:700;line-height:1.25}
.pp-gate{align-self:flex-start;font-size:8.5px;font-weight:800;color:#c0492f;background:#fde8e2;padding:2px 7px;border-radius:999px;letter-spacing:.03em}
.pp-goal{font-size:11.5px;color:var(--ink-2);line-height:1.45}
.pp-acts{margin:0;padding-left:15px;font-size:11px;color:var(--muted);line-height:1.4;display:flex;flex-direction:column;gap:3px}
.pp-tools{display:flex;flex-wrap:wrap;gap:5px;margin-top:auto;padding-top:5px}
.proc-tool{font-size:10.5px;font-weight:600;color:var(--primary-ink);background:var(--primary-soft);border:1px solid #dbeafe;padding:3px 8px;border-radius:7px;text-decoration:none;transition:background var(--t)}
.proc-tool:hover{background:#dbeafe}
.proc-note{max-width:1140px;margin:6px auto 0;font-size:12px;color:var(--muted);line-height:1.55;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r);padding:12px 14px}
@media(max-width:900px){.proc-phases{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.proc-phases{grid-template-columns:1fr}}

/* Customer Discovery — sơ đồ chi tiết các bước (mỗi bước link tool) */
.cdflow-scroll{overflow-x:auto;padding-bottom:6px}
.cdflow{position:relative;display:flex;flex-direction:column;gap:34px;min-width:680px}
.cdflow-svg{position:absolute;top:0;left:0;pointer-events:none;overflow:visible;z-index:0}
.cdrow{position:relative;z-index:1;display:grid;grid-template-columns:126px 1fr;align-items:center;gap:12px}
.cdrow-l{display:flex;flex-direction:column;gap:1px;color:var(--c,var(--primary));text-align:right;line-height:1.2}
.cdrow-l b{font-size:12.5px;font-weight:750}
.cdrow-l span{font-size:10px;font-weight:600;opacity:.72}
.cdrow-s{display:flex;align-items:stretch;flex-wrap:nowrap;gap:0}
.cdstep{display:flex;flex-direction:column;justify-content:center;gap:3px;min-width:118px;max-width:158px;background:var(--c,var(--primary));color:#fff;border-radius:10px;padding:9px 11px;cursor:pointer;box-shadow:var(--sh);transition:filter var(--t),transform var(--t)}
.cdstep:hover{filter:brightness(1.12);transform:translateY(-1px)}
.cdstep:focus-visible{outline:2px solid #fff;outline-offset:2px}
.cds-n{font-size:12px;font-weight:700;line-height:1.22}
.cds-vi{font-size:10px;font-weight:500;opacity:.9;line-height:1.22}
.cds-tools{display:flex;flex-direction:column;align-items:flex-start;gap:4px;margin-top:5px;max-width:100%}
.cds-t{display:inline-flex;align-items:center;gap:4px;max-width:100%;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.3);border-radius:9px;padding:2px 7px 2px 5px;text-decoration:none;color:#fff;cursor:pointer;transition:background var(--t),border-color var(--t)}
.cds-t:hover{background:rgba(255,255,255,.32);border-color:rgba(255,255,255,.6)}
.cds-t svg{width:11px;height:11px;opacity:.9;flex-shrink:0}
.cds-t i{font-style:normal;font-size:7px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;opacity:.62;flex-shrink:0}
.cds-tn{font-size:9.5px;font-weight:600;line-height:1.15;word-break:break-word}
/* Trang chi tiết 1 bước (card) */
.stepcard{display:flex;flex-direction:column;gap:14px;border-top:3px solid var(--c,var(--primary))}
.step-back{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;font-size:12.5px;font-weight:600;color:var(--primary);text-decoration:none}
.step-back svg{width:15px;height:15px}
.step-back:hover{text-decoration:underline}
.step-stage{display:flex;align-items:center;gap:7px;font-size:13px;color:var(--ink-2,#475569)}
.step-stage .dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}
.step-stage b{color:var(--ink,#0f172a)}
.step-desc{font-size:15px;line-height:1.6;color:var(--ink,#0f172a);margin:0}
.step-sec h4{font-size:12px;font-weight:750;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-2,#64748b);margin:0 0 8px}
.step-do{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:6px}
.step-do li{font-size:14px;line-height:1.5;color:var(--ink,#0f172a)}
/* checklist tick (do[]) — mức công ty */
.ck-prog{display:inline-block;margin-left:6px;font-size:11px;font-weight:700;color:var(--primary,#2563eb);background:var(--primary-soft,#eff6ff);border-radius:99px;padding:1px 8px;letter-spacing:.02em}
.ck-list{padding-left:0;list-style:none;gap:2px}
.ck-li{font-size:14px;line-height:1.45}
.ck{display:flex;align-items:flex-start;gap:9px;cursor:pointer;padding:6px 8px;border-radius:8px;transition:background var(--t)}
.ck:hover{background:var(--bg-soft,#f8fafc)}
.ck input{position:absolute;opacity:0;width:0;height:0}
.ck-mark{flex-shrink:0;margin-top:1px;width:19px;height:19px;border:1.8px solid var(--line,#cbd5e1);border-radius:6px;display:grid;place-items:center;transition:background var(--t),border-color var(--t)}
.ck-mark svg{width:13px;height:13px;stroke:#fff;stroke-width:3;opacity:0;transition:opacity var(--t)}
.ck input:checked+.ck-mark{background:var(--primary,#2563eb);border-color:var(--primary,#2563eb)}
.ck input:checked+.ck-mark svg{opacity:1}
.ck input:focus-visible+.ck-mark{outline:2px solid var(--primary,#2563eb);outline-offset:2px}
.ck-tx{color:var(--ink,#0f172a)}
.ck-li.on .ck-tx{color:var(--muted,#71717a);text-decoration:line-through}
.ck-groups{list-style:none;padding-left:0;margin:0;display:flex;flex-direction:column;gap:13px}
.ck-group .ckg-h{font-size:12px;font-weight:750;text-transform:uppercase;letter-spacing:.03em;color:var(--c,var(--primary));opacity:.85;margin:0 0 2px;padding-left:8px}
.step-result{background:var(--bg-soft,#f1f5f9);border-left:3px solid var(--c,var(--primary));border-radius:8px;padding:11px 14px;font-size:14px;line-height:1.55}
.step-pitfall{background:#fffbeb;border-left:3px solid #f59e0b;border-radius:8px;padding:11px 14px;font-size:14px;line-height:1.55}
.step-pitfall b{color:#b45309}
.step-tools{display:flex;flex-wrap:wrap;gap:10px}
.step-tool{display:inline-flex;align-items:center;gap:9px;background:var(--c,var(--primary));color:#fff;border-radius:10px;padding:10px 14px;text-decoration:none;box-shadow:var(--sh);transition:filter var(--t),transform var(--t)}
.step-tool:hover{filter:brightness(1.1);transform:translateY(-1px)}
.step-tool svg{width:17px;height:17px;flex-shrink:0}
.step-tool .st-x{display:flex;flex-direction:column;line-height:1.2}
.step-tool .st-x b{font-size:13.5px;font-weight:700}
.step-tool .st-x i{font-style:normal;font-size:10.5px;opacity:.85}
.step-soon{font-size:13.5px}
/* Hồ sơ công ty */
.prof-sum{display:flex;flex-direction:column;gap:10px}
.prof-stat{display:flex;gap:28px;flex-wrap:wrap}
.prof-stat>div{display:flex;flex-direction:column}
.prof-stat .num{font-size:22px;font-weight:800;color:var(--ink,#09090b);line-height:1.1}
.prof-stat>div span{font-size:12px;color:var(--ink-2,#64748b)}
.prof-stat .warn .num{color:#b45309}
.prof-bar{position:relative;height:9px;border-radius:99px;background:var(--bg-soft,#f1f5f9);overflow:hidden}
.prof-bar .pb-fill{position:absolute;left:0;top:0;bottom:0;background:#bfdbfe;border-radius:99px}
.prof-bar .pb-val{position:absolute;left:0;top:0;bottom:0;background:var(--primary,#2563eb);border-radius:99px}
.prof-h{margin:0 0 12px;font-size:15px;font-weight:750}
/* ===== Overview cockpit ===== */
.ov-hero{background:linear-gradient(135deg,var(--surface),var(--primary-soft));border:1px solid var(--line);border-radius:16px;padding:20px 22px;margin-bottom:16px;box-shadow:var(--sh)}
.ovh-top{display:flex;align-items:center;gap:10px;margin-bottom:8px;flex-wrap:wrap}
.ovh-tag{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--primary);background:var(--surface);border:1px solid var(--primary-soft);border-radius:999px;padding:3px 10px}
.ovh-stage{font-size:12px;color:var(--ink-2)}
.ov-hero h1{margin:2px 0 6px;font-size:24px;font-weight:800;letter-spacing:-.02em}
.ovh-pitch{margin:0 0 8px;font-size:14.5px;color:var(--ink-2);line-height:1.55;max-width:760px}
.ovh-cust{margin:0;font-size:13px;color:var(--ink-2);display:flex;align-items:center;gap:7px}
.ovh-cust .ic svg{width:15px;height:15px}
.ov-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}
.ov-stat{background:var(--surface);border:1px solid var(--line);border-radius:13px;padding:13px 15px;display:flex;flex-direction:column;gap:2px;text-decoration:none;color:inherit;transition:border-color var(--t),box-shadow var(--t)}
a.ov-stat:hover{border-color:var(--primary);box-shadow:var(--sh)}
.ov-stat .num{font-size:27px;font-weight:800;letter-spacing:-.02em;line-height:1.1}
.ov-stat span{font-size:11.5px;color:var(--muted)}
.ov-stat.warn .num{color:var(--warn)} .ov-stat.ok .num{color:var(--ok)}
.ov-actions .oa-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px}
.oa-item{display:flex;align-items:flex-start;gap:10px;padding:11px 12px;border-radius:11px;border:1px solid var(--line);background:var(--surface-2);font-size:13.5px;line-height:1.5}
.oa-item .oa-ic{flex-shrink:0;color:var(--ink-2)} .oa-item .oa-ic svg{width:18px;height:18px}
.oa-tx{flex:1;min-width:0}
.oa-act{flex-shrink:0;font-size:12px;font-weight:700;color:var(--primary);text-decoration:none;white-space:nowrap;align-self:center}
.oa-act:hover{text-decoration:underline}
.oa-item.s-red{border-left:3px solid #dc2626} .oa-item.s-red .oa-ic{color:#dc2626}
.oa-item.s-amber{border-left:3px solid var(--warn)} .oa-item.s-amber .oa-ic{color:var(--warn)}
.oa-item.s-blue{border-left:3px solid var(--primary)} .oa-item.s-blue .oa-ic{color:var(--primary)}
.oa-ok{padding:14px;font-size:13.5px;color:var(--ok)} .oa-okm{font-weight:800}
.cdh-note{margin:10px 0 0;font-size:11.5px}
/* Tóm tắt công ty (Hồ sơ) */
.prof-id .pid-grid{display:flex;flex-direction:column;gap:10px}
.pid-row{display:grid;grid-template-columns:132px 1fr;gap:12px;align-items:start;font-size:13.5px;line-height:1.5}
.pid-k{font-weight:700;color:var(--muted);font-size:12px;padding-top:1px}
.pid-v{color:var(--ink)}
.brain-howto{display:flex;gap:11px;align-items:flex-start;margin-bottom:14px;border-left:3px solid var(--primary)}
.brain-howto .ic{flex-shrink:0;color:var(--primary)} .brain-howto .ic svg{width:18px;height:18px}
.brain-howto b{font-size:13.5px} .brain-howto>div>span{display:block;font-size:13px;color:var(--ink-2);line-height:1.6;margin-top:3px}
.brain-howto code{background:var(--surface-2);padding:1px 6px;border-radius:5px;font-size:12px}
@media(max-width:620px){.ov-stats{grid-template-columns:repeat(2,1fr)}.pid-row{grid-template-columns:1fr;gap:2px}.pid-k{font-size:11px}}
.cdprog{display:grid;grid-template-columns:minmax(96px,180px) 1fr 40px;align-items:center;gap:12px;margin-bottom:9px}
.cdp-name{display:flex;flex-direction:column;line-height:1.2;text-decoration:none;color:var(--c,var(--primary));font-size:13px;font-weight:700;min-width:0;overflow:hidden;text-overflow:ellipsis}
.cdp-name span{font-size:10.5px;font-weight:500;opacity:.7;color:var(--ink-2,#64748b)}
.cdp-bar{height:8px;border-radius:99px;background:var(--bg-soft,#f1f5f9);overflow:hidden}
.cdp-bar span{display:block;height:100%;border-radius:99px;transition:width var(--t)}
.cdp-pct{font-size:12px;font-weight:700;text-align:right;color:var(--ink-2,#475569)}
.prof-fw .pf-h{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:10px;border-bottom:1px solid var(--line,#e4e4e7);padding-bottom:8px}
.prof-fw .pf-h b{font-size:15px}
.pf-pct{font-size:12px;font-weight:700;color:var(--primary,#2563eb)}
.pf-block{padding:9px 0;border-bottom:1px dashed var(--line,#ececf0)}
.pf-block:last-child{border-bottom:0}
.pf-block.stale{background:#fffbeb;margin:0 -8px;padding:9px 8px;border-radius:8px}
.pf-bh{display:flex;align-items:center;gap:8px;margin-bottom:3px}
.pf-bt{font-size:13.5px;font-weight:700}
.pf-badge{font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;padding:1px 7px;border-radius:99px}
.pf-badge.validated{background:#dcfce7;color:#15803d}
.pf-badge.draft{background:#fef9c3;color:#a16207}
.pf-stale{font-size:10px;font-weight:700;color:#b45309}
.pf-ex{margin:0;font-size:13px;line-height:1.5;color:var(--ink-2,#3f3f46)}
.pf-meta{margin-top:3px;font-size:11px;color:var(--faint,#a1a1aa)}
.prof-empty{font-size:13px;color:var(--ink-2,#52525b)}
.prof-empty b{color:var(--ink,#09090b)}
/* Brain — đồ thị tri thức */
.brain-wrap{display:grid;grid-template-columns:1fr 330px;gap:16px;align-items:start}
.brain-canvas-wrap{position:relative;height:560px;padding:0;overflow:hidden}
#brain-graph{width:100%;height:100%;cursor:grab}
#brain-graph:active{cursor:grabbing}
#brain-graph canvas{display:block;border-radius:12px}
.brain-legend{position:absolute;top:10px;left:12px;display:flex;gap:12px;flex-wrap:wrap;align-items:center;font-size:11px;background:rgba(255,255,255,.88);backdrop-filter:blur(4px);padding:6px 11px;border-radius:9px;box-shadow:var(--sh);color:var(--ink-2,#475569);pointer-events:none}
.bl-item{display:inline-flex;align-items:center;gap:5px;font-weight:600}
.bl-item i{width:9px;height:9px;border-radius:50%;display:inline-block}
.bl-stat{color:var(--faint,#a1a1aa);font-weight:600}
.brain-empty{position:absolute;inset:0;display:grid;place-items:center;padding:24px}
.brain-empty[hidden]{display:none}
.brain-side{height:560px;overflow:auto;padding:16px}
.brain-side .bs-empty{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--ink-2,#64748b);gap:8px}
.brain-side .bs-empty .ic{opacity:.5}
.brain-side .bs-empty .ic svg{width:34px;height:34px}
.bs-head{display:flex;align-items:center;gap:8px;margin-bottom:2px}
.bs-head b{font-size:15.5px}
.bs-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}
.bs-meta{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:10.5px;color:var(--faint,#a1a1aa);margin-bottom:10px;word-break:break-all}
.bs-body{font-size:13.5px;line-height:1.6;color:var(--ink,#0f172a)}
.bs-body h3{font-size:15px;margin:12px 0 6px}.bs-body h4{font-size:13.5px;margin:10px 0 5px}.bs-body h5{font-size:12.5px;margin:9px 0 4px;color:var(--ink-2,#475569)}
.bs-body p{margin:0 0 9px}.bs-body ul{margin:0 0 9px;padding-left:18px}.bs-body li{margin:2px 0}
.bs-body .wl{color:var(--primary,#2563eb);background:var(--primary-soft,#eff6ff);border-radius:5px;padding:0 5px;font-weight:600;font-size:12.5px}
.bs-load{color:var(--ink-2,#64748b);font-size:13px}
@media(max-width:860px){.brain-wrap{grid-template-columns:1fr}.brain-side{height:auto;max-height:380px}}
/* Business Mentors */
.mentor-list{display:flex;flex-direction:column;gap:12px}
.mentor-card{display:flex;align-items:center;gap:14px;background:var(--card,#fff);border:1px solid var(--line,#e4e4e7);border-radius:12px;padding:14px 16px;text-decoration:none;color:inherit;box-shadow:var(--sh);transition:border-color var(--t),transform var(--t)}
.mentor-card:hover{border-color:var(--primary,#2563eb);transform:translateY(-1px)}
.mc-av{flex-shrink:0;width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:var(--primary-soft,#eff6ff);color:var(--primary,#2563eb)}
.mc-av svg{width:24px;height:24px}
.mc-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.mc-top{display:flex;align-items:center;gap:9px}
.mc-top b{font-size:15.5px}
.mc-badge{font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;padding:1px 7px;border-radius:99px;background:var(--bg-soft,#f1f5f9);color:var(--ink-2,#64748b)}
.mc-badge.ready{background:#dcfce7;color:#15803d}
.mc-sum{font-size:13px;line-height:1.5;color:var(--ink-2,#475569)}
.mc-meta{display:flex;flex-wrap:wrap;gap:6px 12px;font-size:11.5px;color:var(--faint,#a1a1aa);margin-top:2px}
.mc-meta .mc-mode{color:var(--primary,#2563eb);font-weight:600}
.mc-chev{flex-shrink:0;color:var(--faint,#cbd5e1)}.mc-chev svg{width:18px;height:18px}
/* mentor detail */
.mt-head{display:flex;flex-direction:column;gap:14px}
.mt-badges{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.mt-mode{font-size:11.5px;font-weight:700;color:var(--primary,#2563eb);background:var(--primary-soft,#eff6ff);border-radius:99px;padding:2px 10px}
.mt-tier{font-size:11px;color:var(--ink-2,#64748b)}
.mt-block h4,.mt-sec h3,.mt-use h4{margin:0 0 8px;font-size:13px;font-weight:750;text-transform:uppercase;letter-spacing:.03em;color:var(--ink-2,#64748b)}
.mt-sec h3{display:flex;align-items:center;gap:8px;font-size:15px;text-transform:none;color:var(--ink,#0f172a)}
.mt-n{font-size:11px;font-weight:700;color:var(--primary,#2563eb);background:var(--primary-soft,#eff6ff);border-radius:99px;padding:1px 8px}
.mt-traits,.mt-sigs{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:5px}
.mt-traits li{font-size:13.5px;line-height:1.5;color:var(--ink,#0f172a)}
.mt-sigs li{font-size:13.5px;line-height:1.5;color:var(--ink-2,#475569);font-style:italic}
.mt-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px}
.mt-item{display:flex;gap:9px;align-items:flex-start;padding:9px 11px;background:var(--bg-soft,#f8fafc);border-radius:9px}
.mt-item .mi-ic{flex-shrink:0;color:var(--primary,#2563eb);margin-top:1px}.mt-item .mi-ic svg{width:15px;height:15px}
.mt-item b{font-size:13px;font-weight:650;display:block;line-height:1.3}
.mt-item span{font-size:11.5px;color:var(--ink-2,#64748b);line-height:1.4}
.mt-use p{margin:0;font-size:13.5px;line-height:1.6;color:var(--ink,#0f172a)}
.mt-use code{background:var(--bg-soft,#f1f5f9);border-radius:5px;padding:1px 6px;font-size:12.5px}
.mt-lessons{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}
.ml-row{display:flex;align-items:center;gap:10px;padding:9px 11px;border-radius:8px;transition:background var(--t)}
.ml-row:hover{background:var(--bg-soft,#f8fafc)}
.ml-row.stub{opacity:.55}
.ml-stage{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--primary,#2563eb);background:var(--primary-soft,#eff6ff);border-radius:99px;padding:2px 8px;flex-shrink:0}
.ml-title{flex:1;font-size:13.5px;color:var(--ink,#0f172a)}
.ml-badge{font-size:9.5px;font-weight:700;text-transform:uppercase;padding:1px 7px;border-radius:99px;background:var(--bg-soft,#f1f5f9);color:var(--ink-2,#64748b);flex-shrink:0}
.ml-badge.ready{background:#dcfce7;color:#15803d}
.mc-badge.gen{background:#ede9fe;color:#6d28d9}
.mt-hint{margin:-2px 0 10px;font-size:12.5px;color:var(--ink-2,#64748b)}
.mt-link{text-decoration:none;color:inherit;border:1px solid transparent;transition:background var(--t),border-color var(--t)}
.mt-link:hover{background:var(--primary-soft,#eff6ff);border-color:var(--primary,#2563eb)}
/* Ưu tiên use-case AI */
.uc-crit{font-size:12.5px;color:var(--ink-2,#64748b);margin-bottom:10px;display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.uc-chip{background:var(--muted,#f1f5f9);border-radius:999px;padding:2px 9px;font-size:11.5px;color:var(--ink,#0f172a)}
.uc-sens{font-size:12.5px;padding:8px 11px;border-radius:8px;margin-bottom:12px;line-height:1.5}
.uc-sens.ok{background:#f0fdf4;color:#15803d;border:1px solid #bbf7d0}
.uc-sens.warn{background:#fffbeb;color:#b45309;border:1px solid #fde68a}
.uc-tw{overflow-x:auto}
.uc-table{width:100%;border-collapse:collapse;font-size:13px}
.uc-table th{text-align:left;font-weight:600;color:var(--ink-2,#64748b);font-size:11px;text-transform:uppercase;letter-spacing:.03em;padding:6px 8px;border-bottom:1px solid var(--border,#e2e8f0)}
.uc-table td{padding:9px 8px;border-bottom:1px solid var(--border,#f1f5f9);vertical-align:top}
.uc-rank{font-weight:700;color:var(--ink-2,#64748b);width:28px}
.uc-name{font-weight:600}
.uc-name .uc-note{display:block;font-weight:400;font-size:12px;color:var(--ink-2,#64748b)}
.uc-sc{display:inline-block;background:var(--muted,#f1f5f9);border-radius:5px;padding:1px 6px;margin:1px 4px 1px 0;font-size:11.5px;font-variant-numeric:tabular-nums}
.uc-total{text-align:right;font-variant-numeric:tabular-nums;font-size:14px}
.uc-badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;white-space:nowrap}
.uc-badge.q-quick_win{background:#dcfce7;color:#15803d}
.uc-badge.q-big_bet{background:#ffedd5;color:#c2410c}
.uc-badge.q-fill_in{background:#e0f2fe;color:#0369a1}
.uc-badge.q-avoid{background:#fee2e2;color:#b91c1c}
.uc-quads{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-top:14px}
.uc-quad{background:var(--card,#fff);border:1px solid var(--border,#e2e8f0);border-radius:12px;padding:12px 14px}
.uc-quad h4{margin:0 0 8px;font-size:13px}
.uc-quad.q-quick_win{border-color:#bbf7d0}.uc-quad.q-quick_win h4{color:#15803d}
.uc-quad.q-big_bet h4{color:#c2410c}.uc-quad.q-fill_in h4{color:#0369a1}.uc-quad.q-avoid h4{color:#b91c1c}
.uc-quad ul{margin:0;padding-left:18px;font-size:13px}
.uc-quad li{margin:3px 0}
/* Sức khoẻ khách hàng */
.ch-chip{border-radius:999px;padding:2px 9px;font-size:11.5px;font-weight:600}
.ch-badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;white-space:nowrap}
.ch-chip.q-healthy,.ch-badge.q-healthy{background:#dcfce7;color:#15803d}
.ch-chip.q-ok,.ch-badge.q-ok{background:#fef9c3;color:#a16207}
.ch-chip.q-at_risk,.ch-badge.q-at_risk{background:#ffedd5;color:#c2410c}
.ch-chip.q-churning,.ch-badge.q-churning{background:#fee2e2;color:#b91c1c}
.ch-table .ch-act{font-size:12px;color:var(--ink-2,#64748b);max-width:240px}
.ch-table tr.ch-churning td:first-child{box-shadow:inset 3px 0 0 #b91c1c}
.ch-table tr.ch-at_risk td:first-child{box-shadow:inset 3px 0 0 #c2410c}
/* Guide ban cố vấn */
.mentors-guide{border-left:3px solid var(--primary,#2563eb)}
.mentors-guide h3{display:flex;align-items:center;gap:7px;margin:0 0 8px;font-size:15px}
.mentors-guide h3 .ic{width:18px;height:18px;color:var(--primary,#2563eb)}
.mentors-guide h3 .ic svg{width:18px;height:18px}
.mentors-guide>p{margin:0 0 12px;font-size:13.5px;color:var(--ink-2,#475569);line-height:1.6}
.mg-list{list-style:none;margin:0 0 12px;padding:0;display:grid;gap:9px}
.mg-list li{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;font-size:13.5px;line-height:1.5}
.mg-name{font-weight:600;color:var(--primary,#2563eb);text-decoration:none;white-space:nowrap}
.mg-name:hover{text-decoration:underline}
.mg-tag.gen{font-size:10.5px;background:#ede9fe;color:#6d28d9;border-radius:999px;padding:1px 7px;font-weight:600;align-self:center}
.mg-when{color:var(--ink,#0f172a);flex:1;min-width:220px}
.mg-foot{margin:0;font-size:12.5px;color:var(--ink-2,#64748b);border-top:1px solid var(--border,#f1f5f9);padding-top:10px;line-height:1.6}
.cdarrow{display:grid;align-items:center;color:#dc2626;padding:0 4px;flex-shrink:0} .cdarrow svg{width:15px;height:15px}

/* Guide (per framework) — nút mở hộp hướng dẫn */
.guide{max-width:1100px;margin:0 auto 16px}
.guide>summary{list-style:none;display:inline-flex;align-items:center;gap:7px;cursor:pointer;font-size:12.5px;font-weight:650;color:var(--ink-2);background:var(--surface);border:1px solid var(--line);border-radius:9px;padding:7px 12px;box-shadow:var(--sh);user-select:none}
.guide>summary::-webkit-details-marker{display:none}
.guide>summary .g-ic{display:grid;color:var(--muted)} .guide>summary .g-ic svg{width:15px;height:15px}
.guide>summary .g-chev{display:grid;color:var(--faint);transition:transform var(--t)} .guide>summary .g-chev svg{width:15px;height:15px}
.guide[open]>summary .g-chev{transform:rotate(180deg)}
.guide-body{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}
.g-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh);padding:12px 14px}
.g-card h4{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--faint);margin-bottom:5px}
.g-card p{font-size:12.5px;color:var(--ink-2);line-height:1.55}
.g-tip{background:#f0fdf4;border-color:var(--ok-line)} .g-tip h4{color:var(--ok)}
@media(max-width:760px){.guide-body{grid-template-columns:1fr}}

/* Idea Canvas — 4 góc + cột Key Assumptions */
.ideacanvas{max-width:1120px;margin:0 auto}
.ic-name{display:flex;align-items:center;gap:12px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh);padding:12px 16px;margin-bottom:14px}
.ic-name .l{font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--faint)}
.ic-name b{font-size:15px;font-weight:750} .ic-name .q{font-size:13px;color:var(--faint);font-style:italic}
.ic-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.ic-quad{display:grid;grid-template-columns:1.5fr 1fr;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh);overflow:hidden;min-height:170px}
.ic-main{padding:14px 15px;display:flex;flex-direction:column;gap:8px}
.ic-h{display:flex;align-items:center;gap:8px}
.ic-ic{width:28px;height:28px;border-radius:7px;display:grid;place-items:center;background:var(--surface-2);border:1px solid var(--line);color:var(--primary);flex-shrink:0} .ic-ic svg{width:15px;height:15px}
.ic-h b{flex:1;font-size:13.5px;font-weight:750;letter-spacing:-.01em} .ic-h .vz-s{font-size:13px;flex-shrink:0}
.ic-body{font-size:12.5px;color:var(--ink-2);line-height:1.5;white-space:pre-wrap}
.ic-q{font-size:11.5px;color:var(--faint);font-style:italic;line-height:1.45}
.ic-asscol{background:var(--surface-2);border-left:1px solid var(--line);padding:12px;display:flex;flex-direction:column;gap:8px}
.ic-asslbl{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
.ic-ass{background:var(--surface);border:1px solid var(--line);border-radius:7px;min-height:34px;padding:6px 9px;font-size:11.5px;color:var(--ink-2);line-height:1.4}
@media(max-width:820px){.ic-grid{grid-template-columns:1fr}.ic-quad{grid-template-columns:1fr}.ic-asscol{border-left:none;border-top:1px solid var(--line)}}

/* Strategy Pyramid — 5 tầng */
.pyr-scroll{max-width:1140px;margin:0 auto;overflow-x:auto;padding-bottom:8px}
.pyramid{display:flex;flex-direction:column;gap:5px;min-width:820px}
.pyr-row{display:grid;grid-template-columns:130px 360px 1fr;align-items:stretch;gap:14px;height:74px}
.pyr-label{align-self:center;justify-self:end;background:var(--c);color:#fff;font-weight:750;font-size:13px;padding:8px 14px;border-radius:9px;box-shadow:var(--sh)}
.pyr-band{height:100%;background:var(--c);display:grid;place-items:center;color:#fff;font:800 22px/1 var(--mono);letter-spacing:.02em}
.pyr-desc{align-self:center;display:flex;flex-direction:column;gap:2px;overflow:hidden}
.pyr-desc b{font-size:13px;font-weight:750;color:var(--ink)}
.pyr-desc span{font-size:12px;color:var(--ink-2);line-height:1.45;max-height:46px;overflow:auto}
.pyr-desc span.q{color:var(--faint);font-style:italic}
.pyr-base-lbl{max-width:1100px;margin:18px auto 8px;font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--faint);text-align:center}
.pyr-base-row{max-width:1000px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:13px}
.pyr-base{background:var(--surface);border:1px solid var(--line);border-top:3px solid #64748b;border-radius:var(--r-lg);box-shadow:var(--sh);padding:14px 16px}
.pb-h{display:flex;align-items:center;gap:9px;margin-bottom:7px}
.pb-ic{width:28px;height:28px;border-radius:8px;display:grid;place-items:center;background:var(--surface-2);border:1px solid var(--line);color:var(--ink-2);flex-shrink:0} .pb-ic svg{width:15px;height:15px}
.pb-h b{flex:1;font-size:13.5px;font-weight:750}
.pyr-base .vz-s{font-size:13px;flex-shrink:0}
.pb-b{font-size:12.5px;color:var(--ink-2);line-height:1.5;white-space:pre-wrap}
.pb-q{font-size:12px;color:var(--faint);font-style:italic;line-height:1.45}
@media(max-width:760px){.pyr-base-row{grid-template-columns:1fr}}

/* Problem Statement Canvas — lưới Productable */
.psc-scroll{max-width:1120px;margin:0 auto;overflow-x:auto;padding-bottom:6px}
.psc{min-width:840px;display:grid;gap:10px;grid-template-columns:1fr 1fr 1fr;
  grid-template-areas:"prob ctx alt" "usr emo short" "usr qty short" "stmt stmt stmt"}
.psc-cell{background:var(--surface);border:1px solid var(--line);border-top:3px solid #0e7490;border-radius:10px;padding:12px 14px;min-height:118px;display:flex;flex-direction:column;gap:7px}
.psc-h{display:flex;align-items:center;gap:8px}
.psc-ic{width:26px;height:26px;border-radius:7px;display:grid;place-items:center;background:var(--surface-2);border:1px solid var(--line);color:#0e7490;flex-shrink:0} .psc-ic svg{width:15px;height:15px}
.psc-h b{flex:1;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.02em;line-height:1.2}
.psc-cell .vz-s{font-size:13px;line-height:1;flex-shrink:0}
.psc-b{font-size:12.5px;color:var(--ink);line-height:1.5;white-space:pre-wrap}
.psc-q{font-size:11.5px;color:#9aa3b2;font-style:italic;line-height:1.4}
.psc-stmt{grid-area:stmt;background:var(--surface);border:1px solid var(--line);border-left:4px solid #0e7490;border-radius:10px;padding:13px 16px;box-shadow:var(--sh)}
.psc-stmt .l{font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--faint)}
.psc-stmt p{font-size:14px;color:var(--ink);margin-top:4px;font-weight:650} .psc-stmt p.q{font-style:italic;color:var(--faint);font-weight:400;font-size:12.5px}
@media(max-width:760px){.psc{grid-template-columns:1fr;grid-template-areas:"prob" "ctx" "alt" "usr" "emo" "qty" "short" "stmt"}}

@keyframes fade{from{opacity:0}} @keyframes pop{from{opacity:0;transform:translateY(8px) scale(.98)}}

@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* Kanban details styling */
.kbcard-det .det-section { margin-bottom: 8px; }
.kbcard-det .det-h { font-size: 10px; font-weight: bold; text-transform: uppercase; color: var(--faint); margin-bottom: 3px; letter-spacing: 0.02em; }
.kbcard-det .det-b { font-size: 11.5px; color: var(--ink); line-height: 1.5; }
.kbcard-det code { background: rgba(255, 255, 255, 0.05); color: #ff9e64; padding: 1px 3px; border-radius: 3px; font-family: monospace; font-size: 11px; }
.kbcard-det pre { background: rgba(0, 0, 0, 0.2); border: 1px solid rgba(255, 255, 255, 0.05); padding: 6px; border-radius: 4px; overflow-x: auto; margin: 4px 0; }
.kbcard-det pre code { background: none; padding: 0; color: var(--ink-2); }
