:root{--blue:#292995;--ink:#242444;--muted:#727286;--line:#dddde9;--red:#b15b4e;--yellow:#ffed83}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:#fff;color:var(--ink);font:16px/1.45 Arial,Helvetica,sans-serif}button,select,input{font:inherit;color:inherit}button,a,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{opacity:.3;cursor:default}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible,main:focus-visible{outline:2px solid #9898cd;outline-offset:3px}header{height:76px;display:flex;align-items:center;gap:18px;padding:0 32px;background:white;position:relative;z-index:5}h1{font-size:17px;font-weight:400;margin:0;color:var(--blue)}header button,header select,.back{border:1px solid #e5e5ee;border-radius:3px;background:#fff;height:30px;min-width:30px;padding:3px 8px;color:var(--blue);font-size:13px}header button:hover,header select:hover{background:#f7f7fc}.back{font-size:25px;line-height:23px;text-decoration:none;display:grid;place-items:center;width:34px;height:34px;padding:0;color:#777}nav{display:flex;gap:7px;margin-left:auto;align-items:center}nav select{border-color:transparent;font-size:14px;max-width:180px}.zoom{display:flex;gap:5px;margin-left:12px}#zoom-reset{width:58px}#viewport{height:calc(100dvh - 76px);width:100%;overflow:auto;background:#fff;overscroll-behavior:contain;cursor:grab;scrollbar-color:#d6d6e2 white}#viewport.dragging{cursor:grabbing;user-select:none}#space{position:relative}#paper{position:relative;width:5200px;height:5800px;transform-origin:0 0;background:white}#connections{position:absolute;inset:0;width:5200px;height:5800px;pointer-events:none;overflow:visible}#connections path.link{fill:none;stroke:#7777bd;stroke-width:1.15;opacity:.8}#connections path.link.red{stroke:var(--red)}#connections path.link.active{stroke:var(--blue);stroke-width:2.4;opacity:1}.block{position:absolute;background:white;z-index:1;min-width:0}.block h2{font-size:18px;line-height:1.3;font-weight:400;color:var(--blue);margin:0 0 19px}.block h2 span{background:linear-gradient(transparent 62%,var(--yellow) 62%,var(--yellow) 88%,transparent 88%);padding:0 1px}table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}th,td{padding:9px 7px;border-bottom:1px solid #efeff5;font-size:15px;font-weight:400;text-align:right;vertical-align:middle}th{color:var(--blue)}th:first-child,td:first-child{text-align:left;padding-left:0}td:last-child,th:last-child{padding-right:0}tbody tr:last-child td,tbody tr:last-child th{border-bottom:0}td.num{white-space:nowrap}tr.total td,tr.total th{border-top:1px solid #a4a4c9;border-bottom:0;color:var(--blue);font-weight:500;padding-top:11px}tr.total .value{font-weight:500}td.calc{font-size:12px;color:var(--muted);white-space:nowrap}.value{border:0;border-radius:0;background:none;padding:0;color:inherit;font-size:inherit;font-weight:inherit;font-variant-numeric:tabular-nums;white-space:nowrap;text-decoration:none}.value:hover{background:#fff5ba}.value.negative,.negative{color:var(--red)}.value.selected{background:#ffe887}.value.precedent{background:#edf0ff;box-shadow:0 1px #7979c3}.note{font-size:12px;color:var(--muted);line-height:1.5;margin:13px 0 0}.note.essential{color:#53536f}.formula{font-size:16px;color:var(--blue);margin:14px 0;line-height:1.6;font-variant-numeric:tabular-nums}.result{font-size:32px;color:var(--blue);font-weight:400;line-height:1.3;margin:12px 0}.result small{font-size:13px;margin-left:6px}.units{font-size:12px;position:absolute;left:42px;top:12px;color:var(--muted)}.source{position:absolute;left:42px;top:2010px;font-size:11px;color:var(--muted)}.timeline th,.timeline td{font-size:14px;padding:11px 8px;white-space:nowrap}.timeline thead th{color:var(--blue);border-bottom:1px solid #bfbfd7}.timeline .pv td{border-top:1px solid #a4a4c9;color:var(--blue);border-bottom:0}.timeline td.terminal{background:#fffcf1}.bridge{display:flex;align-items:baseline;gap:17px;white-space:nowrap;color:var(--blue);font-size:26px;margin:15px 0}.bridge span{display:block}.bridge small{display:block;font-size:12px;color:var(--muted);margin:0 0 10px}.bridge .operation{font-size:18px;color:var(--muted)}.section-label{position:absolute;left:42px;color:var(--blue);font-size:22px;font-weight:400;margin:0}.section-label span{font-size:12px;color:var(--muted);margin-left:14px}input[type=number]{width:90px;text-align:right;border:0;border-bottom:1px solid #b2b2d3;background:white;border-radius:0;padding:3px 0;color:var(--blue);appearance:textfield;-moz-appearance:textfield}input::-webkit-inner-spin-button,input::-webkit-outer-spin-button{appearance:none;margin:0}.mini-button{padding:4px 8px;border:1px solid #dddde9;border-radius:3px;background:white;color:var(--blue);font-size:12px}.block select{border:0;border-bottom:1px solid var(--line);background:white;color:var(--blue);padding:4px 2px;font-size:14px}.validation{min-height:18px;font-size:12px;color:var(--red);margin:8px 0}.controls{display:flex;align-items:center;gap:12px;margin:12px 0}.controls label{font-size:13px;color:var(--muted)}.controls input{width:85px}.scenario-table tr.active td,.scenario-table tr.active th{background:#fff9dc}.scenario-table button{background:none;border:0;border-bottom:1px dotted #aaaacc;color:var(--blue);padding:0 4px}.tornado{margin-top:20px}.tornado-row{margin-bottom:26px}.tornado-label{font-size:14px;display:flex;justify-content:space-between;margin-bottom:9px}.track{height:17px;position:relative}.track:after{content:'';position:absolute;left:50%;height:25px;top:-4px;width:1px;background:#a0a0bd}.bar{position:absolute;height:100%;top:0;background:#acb7df}.bar.low{background:#e7b5a9}.tornado-values{display:flex;justify-content:space-between;margin-top:7px;font-size:12px;color:var(--muted)}.spark{width:100%;display:block;margin-top:14px}.spark text{font:12px Arial,sans-serif;fill:var(--muted)}.spark path{fill:none;stroke:var(--blue);stroke-width:1.6}.spark .axis{stroke:#dddde9;stroke-width:1}.spark circle{fill:var(--blue)}dialog{position:fixed;inset:auto 24px 24px auto;margin:0;width:460px;max-width:calc(100vw - 32px);max-height:50vh;overflow:auto;padding:23px;background:white;border:1px solid #d6d6e7;box-shadow:0 4px 24px #22224a12;color:var(--ink);font-size:13px;z-index:10}#close-inspector{position:absolute;right:8px;top:5px;border:0;background:white;color:#777;font-size:23px}#cell-name{color:var(--muted);font-size:11px;overflow-wrap:anywhere;padding-right:15px}#cell-formula{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;overflow-wrap:anywhere;color:var(--blue);padding:13px 0}#cell-inputs{display:flex;flex-wrap:wrap;gap:7px}#cell-inputs button{background:white;border:1px solid #e3e3ed;padding:5px 9px;font-size:12px;color:var(--blue)}#cell-inputs button span{margin-right:8px;color:var(--muted)}.source-ref{color:var(--muted);font-size:11px}.legend{display:flex;gap:18px;color:var(--muted);font-size:11px;margin-top:12px}.legend i{display:inline-block;width:12px;height:6px;background:#e7b5a9;margin-right:5px}.legend i.high{background:#acb7df}.anchor{height:1px}.focus-links{display:flex;gap:18px;margin-top:18px}.focus-links a{font-size:12px;color:var(--blue);text-decoration:none;border-bottom:1px dotted #c8c8df}.risk-link{position:absolute;font-size:13px;color:var(--blue);text-decoration:none}
@media(max-width:650px){header{height:106px;gap:12px;padding:12px 16px;flex-wrap:wrap;align-content:center}h1{font-size:16px}nav{order:3;margin-left:46px}nav select{font-size:13px;width:140px}.zoom{margin-left:auto;gap:3px}.zoom button{min-width:26px;padding:3px 5px}.zoom #zoom-reset{width:48px}#viewport{height:calc(100dvh - 106px)}dialog{bottom:16px;right:16px}.back{height:30px;width:30px}}
@media print{@page{size:A2 landscape;margin:10mm}html,body{overflow:visible;height:auto}header,dialog{display:none}#viewport{height:auto;overflow:visible}#space{width:auto!important;height:auto!important}#paper{transform:scale(.6)!important;transform-origin:0 0}button.value{color:inherit}.source{display:block}}
#status{position:fixed;bottom:12px;left:24px;background:#fff;color:#ad4739;font-size:13px;z-index:8;padding:0}#status:not(:empty){padding:8px 12px;border:1px solid #e4c8c3}input[aria-invalid=true]{border-color:#b15b4e;color:#b15b4e}#cannib-body td.calc{white-space:normal;max-width:160px}#assumptions th,#risk-inputs th{font-size:14px}#assumptions td.source-ref,#risk-inputs td.source-ref{font-size:10px;white-space:nowrap}#assumptions td,#risk-inputs td,#assumptions th,#risk-inputs th{padding-top:8px;padding-bottom:8px}
.scenario-table input{width:54px;font-size:14px}.scenario-table th,.scenario-table td{padding-left:5px;padding-right:5px}.scenario-table .scenario-result{white-space:nowrap}#operating td.calc{font-size:11px}#operating th{font-size:14px}

/* Open canvas: the calculation groups have their own generous margins. */
.units{left:240px;top:165px}.source{left:240px;top:3600px}.section-label{left:240px}header{padding:0 40px}nav{margin-left:auto}nav select{border:0}.block h2{margin-bottom:24px}#npv-result,#risk-npv,#scenario-npv,#break-result{display:table;border:1px solid #bc5147;padding:12px 18px;margin:18px 0;background:white}#bridge-equation>span:last-child{border:1px solid #bc5147;padding:12px 18px}#year1-fcf,#can-fcf,#risk-fcf1,#timeline-flow{outline:1px solid #bc5147;outline-offset:5px}#break-body .formula{display:table;border:1px solid #bc5147;padding:12px 18px}#bridge-equation{gap:22px}#scenarios .scenario-table input{width:76px}#paper,#space{min-width:0}.zoom{display:none}
@media(max-width:650px){header{height:70px;flex-wrap:nowrap;gap:12px;padding:0 20px}nav{order:initial;margin-left:auto}nav select{width:130px}#viewport{height:calc(100dvh - 70px)}}

#net-income{outline:1px solid #bc5147;outline-offset:5px}

.block{background:transparent}

/* The viewport is a camera, not a bounded scrollable sheet. */
#viewport{position:relative;overflow:clip;touch-action:none;cursor:grab}#space{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}#paper{position:absolute;left:0;top:0;pointer-events:auto;will-change:transform}#viewport.dragging,#viewport.dragging *{cursor:grabbing!important;user-select:none!important}#viewport.pan-ready *{cursor:grab!important}#paper input{cursor:text}#paper button,#paper select{cursor:pointer}
@media print{#viewport{overflow:visible}#space{position:relative;inset:auto}#paper{position:relative;will-change:auto}}

/* Larger figures, while labels remain quiet. */
td.num,.value,input[type=number],.timeline td,.scenario-table td{font-size:18px}.scenario-table input,#scenarios .scenario-table input{font-size:18px;width:80px}input[type=number]{width:100px}.result,.result .value{font-size:36px}.bridge,.bridge .value{font-size:28px}.tornado-values{font-size:15px}.timeline th{font-size:14px}#working-capital input{width:110px}#investment-inputs th{font-size:14px}#investment-inputs .source-ref{font-size:11px}.source{top:3400px}

.units{top:425px}#terminal-fcf{outline:1px solid #bc5147;outline-offset:5px}

.full-schedule th{min-width:200px}.full-schedule thead th:not(:first-child){min-width:135px}.full-schedule .subtotal td,.full-schedule .subtotal th{border-top:1px solid #dddde9}.core-row{outline:1px solid #bc5147;outline-offset:5px}.sensitivity-npv td,.sensitivity-npv th{padding-bottom:26px;color:var(--muted)}

[hidden]{display:none!important}.page-navigation{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);z-index:6;display:flex;gap:5px;margin:0;padding:5px 9px;background:#fffffff2;border:1px solid #ededf3;border-radius:4px}.page-link{display:grid;place-items:center;width:29px;height:29px;font-size:14px;line-height:1;text-decoration:none;color:#8b8ba3}.page-link:hover{color:var(--blue);background:#f7f7fc}.page-link[aria-current=page]{color:var(--blue);box-shadow:inset 0 -2px var(--blue)}@media print{.page-navigation{display:none}}

/* Comfortable reading size on each canvas. */
.block h2{font-size:21px}th,td,#assumptions th,#risk-inputs th,#operating th,#investment-inputs th,.timeline th{font-size:17px}td.num,.value,input[type=number],.timeline td,.scenario-table td{font-size:21px}.scenario-table input,#scenarios .scenario-table input{font-size:21px;width:88px}input[type=number]{width:108px}.result,.result .value{font-size:40px}.bridge,.bridge .value{font-size:31px}.note,.units,.bridge small,.legend{font-size:14px}.formula{font-size:18px}td.calc,#operating td.calc{font-size:13px}.tornado-label,.tornado-values{font-size:17px}.full-schedule th{min-width:220px}.full-schedule thead th:not(:first-child){min-width:150px}.source-ref,#assumptions td.source-ref,#risk-inputs td.source-ref,#investment-inputs .source-ref{font-size:12px}.block select{font-size:16px}.mini-button{font-size:14px}.page-link{font-size:16px}.section-label{display:none}

/* Show the inherited model and its changes without explanatory labels. */
#variant-plus{position:absolute;color:#737388;font-size:36px;line-height:44px;pointer-events:none}
.variant-page #assumptions,.variant-page #working-capital,.variant-page #investment-inputs{color:#666678}
.variant-page #assumptions :is(th,h2,input),.variant-page #working-capital :is(th,h2,input),.variant-page #investment-inputs :is(th,h2,input){color:#666678}
.variant-page #assumptions h2 span,.variant-page #working-capital h2 span,.variant-page #investment-inputs h2 span{background:none}
.variant-page #assumptions input:focus,.variant-page #working-capital input:focus,.variant-page #investment-inputs input:focus{color:var(--blue)}
.variant-page #cannib-inputs{outline:1px solid #bc5147;outline-offset:16px}
.variant-page #cannib-inputs input{border-bottom-color:#c7776e}
.variant-changed{background:#fff2e9!important;box-shadow:inset 0 -1px #d8a096}
.previous-value{display:block;font-size:14px;line-height:1.3;color:#747483;text-decoration:line-through;text-decoration-color:#b0b0bc;margin-bottom:4px;font-variant-numeric:tabular-nums}
.variant-inherited,.variant-inherited .value{color:#666678!important}
.variant-page #bridge-equation>span:first-child{color:#666678}

#break-result{font-size:40px;line-height:1.3}#breakeven .controls select{font-size:17px}#breakeven .controls input{font-size:21px;width:108px}

/* A short case brief stays on the same white canvas as the model. */
.case-context{color:#53536f}.case-context h2{margin-bottom:14px}.case-context h2 span{background:none}.case-context p{font-size:20px;line-height:1.5;margin:7px 0;max-width:1500px}.case-context .case-question{color:var(--blue);font-size:25px}.case-context .note{font-size:15px;color:var(--muted);margin-top:14px}
.variant-page #rd-inputs{outline:1px solid #bc5147;outline-offset:16px}.variant-page #rd-inputs input{border-bottom-color:#c7776e}

/* Explain the financial mechanism beside the calculation it belongs to. */
.insight{font-size:18px;line-height:1.5;color:#565672;margin:22px 0 0;max-width:100%;text-wrap:pretty}.insight + .insight{margin-top:14px}.insight em{font-style:normal;color:var(--blue)}.insight-math{display:block;color:var(--blue);font-variant-numeric:tabular-nums;margin-top:8px}

/* Consistent reading measure and spacing for the calculation groups. */
.insight{line-height:1.6;margin-top:26px;max-width:38em;text-wrap:pretty}.insight + .insight{margin-top:18px}.block h2{margin-bottom:26px}.case-context p{max-width:1200px}.case-context .case-question{max-width:none}#scenarios .scenario-table{max-width:760px}#scenarios .insight{max-width:760px}#quantity-chart{margin:0 0 28px}#quantity-data .spark{margin-top:0}.bridge small{font-size:16px;line-height:1.4}#bridge-equation{gap:26px}

/* Use the shared arrow styling on every page. */
#quantity-plot #quantity-chart{margin:0}
