@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700;800&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--bg:#f7f7f0;--paper:#fffefa;--ink:#1e312c;--muted:#6c7973;--green:#264f44;--leaf:#bcd77f;--line:#e1e5d9;--peach:#eee7df;--soft:#f1f3e9;--orange:#ad6945;--danger:#ad5b51;--shadow:0 14px 42px rgba(29,56,44,.06)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:'DM Sans',system-ui,Arial,sans-serif;font-size:14px;line-height:1.55}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.48;cursor:not-allowed}a{color:var(--green)}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #b6d88e;outline-offset:3px}h1,h2,h3,h4,p{margin:0}h1,h2,h3{font-family:'Manrope','DM Sans',sans-serif;letter-spacing:-.042em}h1{font-size:clamp(30px,4.2vw,54px);line-height:1.15;font-weight:750}h2{font-size:clamp(25px,3.4vw,39px);line-height:1.18;font-weight:760}h3{font-size:21px;font-weight:760}strong{font-weight:750}small{font-size:12px}.muted{color:var(--muted)}.eyebrow{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.17em;color:#69786f}.overline{display:flex;align-items:center;gap:9px;color:var(--green);font-size:11px;letter-spacing:.15em;text-transform:uppercase;font-weight:800}.overline:before{content:'';width:18px;height:2px;background:var(--green)}.app-frame{min-height:100vh;display:grid;grid-template-columns:256px minmax(0,1fr)}.sidebar{position:sticky;top:0;height:100vh;background:#f0f2e9;padding:29px 24px 21px;border-right:1px solid var(--line);display:flex;flex-direction:column}.mark{display:flex;align-items:center;gap:11px}.mark-icon{background:var(--green);border-radius:11px;width:42px;height:42px;display:grid;place-items:center;color:#d5e7a0;font-weight:900;font-size:21px;letter-spacing:-.1em}.mark h2{font-size:18px;letter-spacing:-.055em;line-height:1.05}.mark small{display:block;font-size:10px;font-weight:700;letter-spacing:.11em;color:#7d897f;margin-top:5px}.sidebar-label{color:#819088;font-size:10px;font-weight:800;letter-spacing:.17em;text-transform:uppercase;margin:47px 0 14px}.stage-list{display:grid;gap:8px}.stage-btn{border:1px solid transparent;background:none;text-align:left;display:flex;align-items:center;gap:13px;padding:12px 11px;border-radius:12px;color:#60736a;width:100%;transition:.15s}.stage-btn.active{background:var(--paper);border-color:#dbe3d3;color:var(--ink);box-shadow:0 4px 14px rgba(30,50,40,.04)}.stage-btn:hover:not(:disabled){background:#e8eedf}.stage-num{width:26px;height:26px;display:grid;place-items:center;border:1px solid #cbd5c9;border-radius:50%;font-size:12px;font-weight:800;flex:none}.stage-btn.active .stage-num{background:var(--green);color:white;border-color:var(--green)}.stage-btn.complete .stage-num{background:#c9dfa1;border-color:#c9dfa1;color:#31513f}.stage-btn .small{font-size:10px;color:#8a988f;margin-top:1px}.stage-name{font-size:12px;font-weight:750}.side-bottom{margin-top:auto}.sidenote{padding:19px;border:1px solid #d7e0d1;background:#e9eee0;border-radius:14px}.sidenote .tiny{font-size:10px;font-weight:800;letter-spacing:.13em}.sidenote p{font-size:12px;margin-top:8px;line-height:1.7}.side-credit{color:#8d9b90;font-size:10px;margin-top:19px}.workspace{min-width:0}.topbar{height:81px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 clamp(26px,5vw,80px)}.top-left{font-size:12px;color:#647870;font-weight:750}.top-left b{color:var(--ink)}.top-right{display:flex;gap:12px;align-items:center}.version{font-size:10px;letter-spacing:.08em;font-weight:800;padding:7px 11px;border-radius:30px;background:#e8efdd;color:#4d674e}.status-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#9dc76a;margin-right:7px}.ghost-small{border:1px solid #d8e0d3;background:transparent;color:var(--green);border-radius:8px;padding:7px 11px;font-size:12px;font-weight:750}.stage-wrap{max-width:1160px;margin:auto;padding:50px clamp(25px,5.1vw,83px) 95px}.hero{display:grid;grid-template-columns:1fr 200px;gap:25px;align-items:end;margin:0 0 30px}.hero h1{max-width:780px;margin-top:15px}.hero h2{margin-top:14px}.hero-desc{color:#66756e;font-size:15px;line-height:1.75;max-width:760px;margin-top:17px}.right-hero{text-align:right;color:#869288;font-size:12px;border-bottom:1px solid #c7d4bd;padding-bottom:12px}.right-hero b{font-size:32px;color:#42674f;font-weight:600;display:block;letter-spacing:-.07em}.panel{background:var(--paper);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:20px}.primary-panel{padding:clamp(20px,3vw,38px)}.section-header{display:flex;justify-content:space-between;gap:20px;align-items:start;margin-bottom:16px}.section-header h3{font-size:17px}.fine{font-size:12px;color:var(--muted);line-height:1.55}.text-field{display:block;width:100%;resize:vertical;min-height:129px;padding:21px 23px;border:1px solid #d3dcd0;background:#fbfcf6;border-radius:13px;color:var(--ink);outline:0;font-size:17px;line-height:1.62}.text-field:focus{border-color:#8eac73;box-shadow:0 0 0 3px rgba(180,210,137,.18)}.under-input{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:16px;flex-wrap:wrap}.btn{border:1px solid transparent;border-radius:11px;padding:13px 19px;display:inline-flex;align-items:center;justify-content:center;gap:10px;font-weight:800;font-size:13px;min-height:46px}.btn-primary{background:var(--green);color:white}.btn-primary:hover{background:#316456}.btn-secondary{background:#eef2e8;border-color:#dce3d7;color:#305447}.btn-secondary:hover{background:#e0ead9}.btn-plain{background:transparent;border-color:#d8e0d5;color:#50665d}.btn-plain:hover{background:#f3f7ee}.btn-small{font-size:11px;min-height:36px;padding:8px 12px}.btn-white{background:var(--paper);color:var(--green)}.callout{padding:15px 18px;border-radius:12px;background:#f0f4e7;border:1px solid #dfe7d4;line-height:1.65}.warning{background:#fbf3ea;border-color:#f0dfd1;color:#886147}.scenario-label{margin-top:38px;display:flex;align-items:center;justify-content:space-between}.scenario-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:17px}.scenario{padding:20px 22px;text-align:left;background:var(--paper);border-radius:14px;border:1px solid var(--line);display:flex;align-items:center;gap:14px;transition:.2s}.scenario:hover{border-color:#95bd79;transform:translateY(-2px);box-shadow:var(--shadow)}.scenario.active{background:#eff5e5;border-color:#92b66c}.scenario-icon{font-size:24px;color:#607d5f;border:1px solid #d2e0c4;border-radius:11px;height:47px;width:47px;display:grid;place-items:center;flex:none}.scenario-title{font-size:13px;font-weight:800}.scenario-sub{color:#79867c;font-size:11px;margin-top:4px}.stage-layout{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:20px;align-items:start}.stage-main{min-width:0}.aside-box{border:1px solid var(--line);background:#f6f7f0;border-radius:16px;padding:22px;position:sticky;top:26px}.aside-box h3{font-size:15px}.aside-list{list-style:none;margin:13px 0 0;padding:0;display:grid;gap:13px}.aside-list li{font-size:12px;color:#63746c;display:flex;gap:10px;line-height:1.6}.aside-list li:before{content:'↗';color:#7d9a6d;font-weight:800}.panel-title{display:flex;align-items:center;justify-content:space-between;gap:14px}.rule{border:0;border-top:1px solid var(--line);margin:27px 0}.two-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.three-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.factbox{padding:19px;border:1px solid #e0e6da;background:#f8faf4;border-radius:13px}.factbox .label{font-size:11px;color:#63756a;margin-bottom:8px}.factbox .value{font-size:25px;font-weight:800;letter-spacing:-.05em}.metric-sub{font-size:11px;color:var(--muted);margin-top:2px}.hyp-card{background:#fafbf5;border:1px solid #e0e4d8;border-radius:12px;padding:17px;line-height:1.7}.hyp-id{color:#849a75;font-weight:800;font-size:10px;letter-spacing:.13em;margin-bottom:7px}.hyp-card b{font-size:13px}.source-chip{font-size:11px;color:#587663;background:#edf1e6;border:1px solid #d9e3d0;padding:5px 9px;border-radius:7px;display:inline-block;margin:4px 5px 4px 0}.src-row{margin-top:15px}.source-details{margin-top:13px;border:1px solid #dfe5dc;background:#fcfcf8;border-radius:11px;padding:0 15px}.source-details summary{cursor:pointer;font-weight:750;padding:13px 0;color:var(--green);font-size:12px}.source-details .inner{padding-bottom:15px;display:grid;gap:9px}.source-details a{color:var(--green);font-size:12px;word-break:break-word}.data-table{margin-top:15px;border:1px solid var(--line);border-radius:13px;overflow:hidden}.data-head,.data-row{display:grid;grid-template-columns:1.35fr .8fr .8fr;align-items:center;gap:10px;padding:10px 15px}.data-head{background:#f0f3e9;color:#637468;font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.data-row{border-top:1px solid #e9ece5}.data-row label{font-size:12px;color:#50645a;font-weight:650}.data-row input,.simple-input{width:100%;min-width:0;border:1px solid #d9e1d5;background:white;border-radius:8px;padding:9px 10px;font-size:12px;color:var(--ink);text-align:right}.data-row.full{grid-template-columns:1.25fr 1fr}.data-row .blank{height:30px}.bridge{display:grid;gap:9px;margin-top:21px}.bridge-line{display:grid;grid-template-columns:130px 1fr 85px;gap:12px;align-items:center}.bridge-line .title{font-size:11px;color:#607368}.bridge-line .amount{text-align:right;font-size:12px;font-weight:800}.track{height:12px;border-radius:4px;display:flex;align-items:center;overflow:hidden;background:#eef1e8}.track.pos .fill{background:#8bab69}.track.neg .fill{background:#d9a79a}.stage-nav{display:flex;justify-content:space-between;align-items:center;margin-top:25px;gap:14px;flex-wrap:wrap}.option-card{border:1px solid #e0e5db;background:#fffefa;border-radius:15px;padding:22px;display:flex;flex-direction:column;gap:11px;min-width:0}.option-card.selected{border-color:#84aa6b;background:#f6faef;box-shadow:0 0 0 2px rgba(130,172,109,.13)}.option-number{width:33px;height:33px;border-radius:9px;background:#eef3e6;display:grid;place-items:center;color:#466f54;font-size:11px;font-weight:850}.option-card h3{font-size:17px;letter-spacing:-.035em;line-height:1.35}.option-card p{font-size:12px;color:#65766c;line-height:1.67}.option-card .key{font-size:11px;font-weight:800;color:#3c6653}.option-card .footer{margin-top:auto;padding-top:11px;border-top:1px solid #dbe6d7;display:flex;align-items:center;justify-content:space-between;gap:10px}.option-card .footer strong{font-size:16px}.option-card .footer small{display:block;color:#8d968c}.two-col-options{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin-top:21px}.cost-positive{color:#2f7655}.cost-negative{color:#aa6456}.pill{padding:3px 9px;border-radius:22px;font-size:10px;font-weight:800;background:#edf3e7;color:#58715a}.pill.warn{background:#faede4;color:#966749}.sim-stage{display:grid;grid-template-columns:minmax(0,1fr) minmax(270px,.85fr);gap:20px}.form-select,.wide-number{border:1px solid #d5dfd3;border-radius:9px;padding:11px 12px;background:#fbfcf7;color:var(--ink);width:100%}.param{padding:15px 0;border-bottom:1px solid #edf0e9}.param:last-child{border:0}.param-top{display:flex;justify-content:space-between;gap:15px;font-size:12px;margin-bottom:10px}.param-top strong{color:var(--green);font-weight:800;font-size:12px}input[type=range]{width:100%;accent-color:#63895f;cursor:pointer}.sim-results{background:#254f44;color:#e6f0de;border-radius:17px;padding:25px}.sim-results .eyebrow{color:#accca9}.big-number{font-family:Manrope,Arial,sans-serif;font-size:clamp(29px,3vw,41px);font-weight:800;letter-spacing:-.065em;color:#def0bc;margin:10px 0 2px}.sim-bar-grid{display:grid;gap:17px;margin-top:20px}.sim-bar-label{display:flex;justify-content:space-between;font-size:11px;color:#d4e5d3;margin-bottom:6px}.sim-bar{height:12px;background:#365d50;border-radius:8px;overflow:hidden}.sim-bar .fill{height:100%;background:#a9cc86;border-radius:8px}.sim-bar.base .fill{background:#a0b5ab}.sim-summary{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:23px}.sim-summary .mini{border-top:1px solid #507063;padding-top:13px}.sim-summary .mini b{font-size:15px}.formula{font-family:ui-monospace,Consolas,monospace;font-size:11px;line-height:1.8;border-left:2px solid #bddca0;background:#f6f9f0;padding:11px 13px;overflow-wrap:anywhere;color:#416051;margin-top:13px}.compare-list{margin-top:15px;display:grid;gap:8px}.compare-row{border:1px solid #e0e6d8;border-radius:11px;padding:12px 14px;display:grid;grid-template-columns:minmax(0,1fr) 115px 80px;gap:9px;align-items:center;background:#fff}.compare-row.selected{background:#eff5e7;border-color:#a4c48a}.compare-row .name{font-size:12px;font-weight:750}.compare-row .num{font-size:12px;font-weight:800;text-align:right}.compare-row .meta{font-size:10px;color:#72837a;text-align:right}.compare-row.unfit{opacity:.55}.decision-banner{background:#254f44;border-radius:17px;color:#eaf2dd;padding:24px 28px;display:grid;grid-template-columns:1fr auto;gap:20px;align-items:center}.decision-banner h3{color:#e9f5d7;font-size:23px;margin-top:7px}.decision-banner p{color:#bed3c7;max-width:680px;font-size:12px;margin-top:11px}.brief{border:1px solid #e1e5db;border-radius:16px;padding:30px;background:#fffefa;margin-top:21px}.brief-top{display:flex;align-items:center;justify-content:space-between;gap:15px;border-bottom:1px solid #e0e5dc;padding-bottom:16px;margin-bottom:22px}.brief h3{font-size:19px}.brief h4{font-size:12px;letter-spacing:.06em;text-transform:uppercase;font-weight:800;color:#416d55;margin-bottom:7px}.brief section{margin-bottom:21px;break-inside:avoid}.brief p,.brief li{font-size:12px;line-height:1.75;color:#50665a}.brief ul{margin:8px 0 0;padding-left:19px}.brief-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px}.brief-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:14px 0}.brief-metrics .box{padding:12px;background:#f4f7ed;border-radius:9px}.brief-metrics strong{font-size:18px;display:block}.action-strip{margin-top:21px;display:flex;gap:9px;flex-wrap:wrap}.audit-caption{color:#89978b;font-size:10px;margin-top:21px}.notebox{margin-top:13px;border-radius:12px;padding:14px;background:#fbf6ed;border:1px solid #f2e6d2;color:#765d43;font-size:12px;line-height:1.65}.empty-title{font-size:14px;font-weight:800;color:#856046}.action-row{display:flex;gap:9px;flex-wrap:wrap}.ai-result{border:1px solid #d4e4ce;border-radius:12px;background:#f5f9ef;padding:15px;margin-top:13px;font-size:12px}.ai-result h4{font-size:13px;margin-bottom:9px}.ai-result ul{padding-left:19px}.quick-msg{margin-top:10px;font-size:11px;color:#72866d}.footer-note{font-size:11px;color:#94a096;margin-top:38px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px}.toast{position:fixed;bottom:25px;right:28px;transform:translateY(100px);opacity:0;transition:.2s;background:#254f44;color:white;padding:12px 19px;border-radius:10px;font-size:12px;font-weight:750;max-width:380px;pointer-events:none;box-shadow:0 12px 33px rgba(0,0,0,.15);z-index:999}.toast.show{opacity:1;transform:translateY(0)}#print-shell{display:none}
@media(max-width:1200px){.app-frame{grid-template-columns:225px 1fr}.sidebar{padding:27px 17px}.stage-wrap{padding:43px 32px 80px}.stage-layout{grid-template-columns:1fr}.aside-box{position:static}.two-col-options{gap:9px}.option-card{padding:17px}}
@media(max-width:840px){.app-frame{display:block}.sidebar{position:relative;width:100%;height:auto;padding:14px 18px;display:flex;flex-direction:row;align-items:center;justify-content:space-between}.sidebar-label,.stage-list,.side-bottom{display:none}.topbar{height:59px;padding:0 20px}.stage-wrap{padding:31px 18px 60px}.hero{grid-template-columns:1fr}.right-hero{display:none}.two-col-options{grid-template-columns:1fr}.sim-stage{grid-template-columns:1fr}.scenario-list{grid-template-columns:1fr 1fr}}
@media(max-width:550px){.two-grid,.three-grid,.brief-grid{grid-template-columns:1fr}.scenario-list{grid-template-columns:1fr}.scenario{padding:15px}.top-right{gap:6px}.top-left{font-size:10px}.section-header{flex-direction:column}.data-head,.data-row{grid-template-columns:1.25fr .8fr .8fr;gap:5px;padding:9px}.data-row label{font-size:10px}.data-row input{padding:7px 5px}.bridge-line{grid-template-columns:88px 1fr 65px;gap:6px}.decision-banner{grid-template-columns:1fr}.compare-row{grid-template-columns:1fr 80px 56px}.brief{padding:18px}.brief-metrics{grid-template-columns:1fr}.btn{padding:11px 14px}.primary-panel{padding:18px}.footer-note{margin-top:22px}}
@page{size:A4;margin:18mm 16mm 20mm 16mm;@bottom-left{content:'BMC LAB · iLAB  |  Decision Brief v1.0';font:9px Arial;color:#738478}@bottom-right{content:'Trang ' counter(page) ' / ' counter(pages);font:9px Arial;color:#738478}}
@media print{*{print-color-adjust:exact!important;-webkit-print-color-adjust:exact!important}body{background:white!important;font-family:Arial,sans-serif;color:#26362e}#app,#toast{display:none!important}#print-shell{display:block!important}.print-header{border-bottom:2px solid #254f44;padding:0 0 12px;margin-bottom:21px;display:flex;justify-content:space-between;gap:10px}.print-header h1{font-size:23px;margin:5px 0 0;letter-spacing:0}.print-badge{font-size:9px;color:#517259;font-weight:bold}.print-meta{font-size:10px;text-align:right;color:#5f7167}.print-title{font-size:17px;font-weight:bold;margin:18px 0 6px}.print-note{padding:9px 12px;background:#f2f5ed;border-left:3px solid #86a86a;color:#5d705f;font-size:10px;margin:13px 0}.print-section{margin-top:19px;break-inside:avoid}.print-section h2{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:#2c5946;border-bottom:1px solid #e2e7df;padding-bottom:6px;margin:0 0 8px}.print-section p,.print-section li{font-size:11px;line-height:1.45;margin:5px 0}.print-section ul{margin:6px 0;padding-left:17px}.print-table{width:100%;border-collapse:collapse;font-size:10px}.print-table td,.print-table th{border:1px solid #d9e0d7;padding:7px;text-align:left}.print-table th{background:#eff3eb}.print-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.print-grid>.print-section{margin-top:8px}.print-footer{margin-top:25px;padding-top:8px;border-top:1px solid #dfe5dc;color:#677568;font-size:9px}}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
