:root{--bg: #f6f4ee;--panel: #ffffff;--line: #e4e0d6;--ink: #1f2623;--muted: #6b716c;--accent: #2e6b6a;--accent-soft: #d7e6e3;--warn: #b5451b;--warn-soft: #f7e3d8;--up: #2f7a3f;--forecast-bg: #f3f0f7;--forecast-ink: #5f5677;--s1: #2a78d6;--ly: #a3a39b;color-scheme:light}@media(prefers-color-scheme:dark){:root{--bg: #161a19;--panel: #1f2423;--line: #333a38;--ink: #ecefeb;--muted: #9aa29d;--accent: #6fb3ad;--accent-soft: #24403e;--warn: #f08a5d;--warn-soft: #3d2a21;--up: #7cc68a;--forecast-bg: #262330;--forecast-ink: #b3a9cc;--s1: #3987e5;--ly: #6f6f69;color-scheme:dark}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.45 system-ui,-apple-system,Segoe UI,sans-serif;-webkit-font-smoothing:antialiased}h1,h2{margin:0;font-weight:600}h2{font-size:15px;margin-bottom:10px}button{font:inherit;color:var(--ink);background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:7px 12px;cursor:pointer}button:hover{border-color:var(--muted)}button.primary{background:var(--accent);border-color:var(--accent);color:#fff}button.quiet{background:none;margin-top:8px}button.link{border:0;background:none;padding:0;text-decoration:underline;color:inherit}input,textarea{font:inherit;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:6px 8px;width:100%}code{font-size:12px;word-break:break-all}.muted{color:var(--muted)}.small{font-size:13px}.up{color:var(--up)}.down{color:var(--warn)}.centre{min-height:100vh;display:grid;place-content:center;text-align:center;gap:12px;padding:16px}.brand{font-size:18px;letter-spacing:-.01em}.top{background:var(--panel);border-bottom:1px solid var(--line)}.top-inner,.wrap{max-width:1240px;margin:0 auto;padding:0 16px}.top-inner{display:flex;align-items:center;justify-content:space-between;height:56px;gap:12px}nav{display:flex;gap:4px}.tab{border:0;background:none;color:var(--muted)}.tab.on{color:var(--ink);background:var(--bg)}.wrap{padding-top:16px;padding-bottom:48px}.toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.segmented{display:inline-flex;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:3px}.segmented button{border:0;background:none;padding:6px 16px;border-radius:7px;color:var(--muted)}.segmented button.on{background:var(--accent);color:#fff}.sync{display:flex;gap:12px;flex-wrap:wrap}.notice{background:var(--accent-soft);padding:10px 14px;border-radius:8px}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.span2{grid-column:span 2}@media(max-width:760px){.grid{grid-template-columns:minmax(0,1fr)}.span2{grid-column:auto}}.panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px;min-width:0}.panel>p.small{margin:-4px 0 12px}.events,.gaps,.hbars,.feeds{list-style:none;margin:0;padding:0}.event,.gap{display:flex;flex-wrap:wrap;gap:4px 12px;padding:7px 0;border-top:1px solid var(--line);align-items:baseline}.event:first-child,.gap:first-child{border-top:0}.date{width:96px;flex:none;font-variant-numeric:tabular-nums}.kind{font-size:12px;font-weight:600;padding:1px 8px;border-radius:99px;background:var(--bg)}.kind.arrival{background:var(--accent-soft)}.kind.changeover{background:var(--warn-soft);color:var(--warn)}.unit{font-size:13px;color:var(--muted);width:56px}.who{flex:1 1 220px}.gaps{max-height:280px;overflow:auto}.flag{font-size:12px;font-weight:600;color:var(--warn)}.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.tile .big{font-size:30px;font-weight:600;font-variant-numeric:tabular-nums}table{border-collapse:collapse;width:100%;font-variant-numeric:tabular-nums}th,td{text-align:right;padding:5px 6px;border-top:1px solid var(--line)}thead th{border-top:0;font-weight:500;color:var(--muted);font-size:13px}tbody th{text-align:left;font-weight:400}.hbars li{margin-bottom:10px}.hbar-label{display:flex;justify-content:space-between;gap:8px;font-size:13px;margin-bottom:3px}.hbar-track{height:10px}.hbar{height:100%;background:var(--accent);border-radius:0 4px 4px 0;min-width:2px}.vbars{display:grid;grid-template-columns:repeat(12,1fr);gap:4px;height:200px;margin:8px 0 4px}.vcol{display:grid;grid-template-rows:3fr 1fr auto;min-width:0}.vpos{display:flex;align-items:flex-end;border-bottom:1px solid var(--muted)}.vneg{display:flex;align-items:flex-start}.vbar{width:100%;background:var(--accent);border-radius:4px 4px 0 0;min-height:2px}.vbar.neg{background:var(--warn);border-radius:0 0 4px 4px}.vlabel{font-size:11px;color:var(--muted);text-align:center;padding-top:4px}details{margin-top:8px;font-size:13px}summary{cursor:pointer;color:var(--muted)}.settings{display:grid;gap:16px;max-width:720px}.settings label{display:block;margin-bottom:10px;font-size:13px}.settings label input{margin-top:3px}.settings label.inline{display:flex;align-items:center;gap:8px}.settings label.inline input{width:80px;margin:0 0 0 auto}.feeds li{display:grid;grid-template-columns:180px 1fr auto;gap:8px;align-items:center;margin-bottom:8px;font-size:13px}@media(max-width:600px){.feeds li{grid-template-columns:1fr auto}.feeds li span{grid-column:span 2}}.actions{display:flex;align-items:center;gap:12px}select{font:inherit;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:6px 8px}.year{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted)}.booking-costs{display:grid;gap:8px;margin-bottom:10px}.booking-cost{display:grid;grid-template-columns:minmax(0,1fr) 110px 170px 130px auto;gap:8px;align-items:center}.booking-cost .quiet{margin:0}.money-input{display:flex;align-items:center;gap:4px}@media(max-width:640px){.booking-cost{grid-template-columns:1fr 1fr;padding-bottom:8px;border-bottom:1px solid var(--line)}.booking-cost>input:first-child{grid-column:span 2}}.table-scroll{overflow-x:auto;margin:0 -16px;padding:0 16px}.pnl{min-width:1000px;font-size:13px}.pnl td{white-space:nowrap}.pnl td,.pnl thead tr:not(.groups) th:not(:first-child){min-width:66px}.pnl tr.note th{position:static;text-align:left;font-weight:400;font-style:italic;color:var(--muted);padding-left:14px}.pnl th:first-child{position:sticky;left:0;z-index:1;background:var(--panel);min-width:170px}.pnl thead th{white-space:nowrap}.pnl thead th.total{white-space:normal;min-width:84px;vertical-align:bottom;line-height:1.2}.pnl tr.groups th{font-size:11px;text-transform:uppercase;letter-spacing:.05em;text-align:center;padding-bottom:2px}.pnl th.group{border-bottom:2px solid var(--line)}.pnl th.group.actual{color:var(--muted)}.pnl th.group.current{color:var(--accent);border-bottom-color:var(--accent)}.pnl th.group.forecast{color:var(--forecast-ink);border-bottom:2px dashed var(--forecast-ink)}.pnl th.group.total-group{color:var(--muted)}.pnl .current{background:var(--accent-soft)}.pnl thead th.current{color:var(--accent);font-weight:700}.pnl .forecast{background:var(--forecast-bg);color:var(--forecast-ink);font-style:italic}.pnl .total{font-weight:600;border-left:2px solid var(--line)}.pnl .total.forecast{font-style:italic}.pnl td.down{color:var(--warn)}.pnl tr.heading th{text-align:left;font-weight:600;padding-top:14px;border-top:0;color:var(--muted);text-transform:uppercase;font-size:11px;letter-spacing:.05em}.pnl tr.subtotal th,.pnl tr.subtotal td{font-weight:600}.pnl tr.total th,.pnl tr.total td{font-weight:700;border-top:2px solid var(--ink)}.pnl tr.cost th,.pnl tr.less th{padding-left:14px}.pnl-intro{margin:-4px 0 12px}.legend{display:flex;flex-wrap:wrap;gap:6px 14px;color:var(--muted)}.legend span{display:inline-flex;align-items:center;gap:6px}.swatch{width:14px;height:14px;border-radius:3px;border:1px solid var(--line);display:inline-block;background:var(--panel)}.swatch.current{background:var(--accent-soft);border-color:var(--accent)}.swatch.forecast{background:var(--forecast-bg);border:1px dashed var(--forecast-ink)}.year-block{margin-bottom:16px}.year-block>summary{display:flex;align-items:baseline;gap:12px;cursor:pointer;list-style:none;margin-bottom:4px}.year-block>summary::-webkit-details-marker{display:none}.year-block>summary:before{content:"▸";color:var(--muted);width:14px;font-size:16px}.year-block[open]>summary:before{content:"▾"}.year-block>summary h2{margin:0;font-size:18px}.year-block:not([open]){padding-bottom:12px}.calc{margin-bottom:16px}.calc-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px}.calc-head h2{font-size:18px;margin:0}.calc-actions{display:flex;gap:8px}.calc-actions .quiet{margin:0}.calc-grid{display:grid;grid-template-columns:minmax(280px,380px) minmax(0,1fr);gap:24px;align-items:start}@media(max-width:860px){.calc-grid{grid-template-columns:minmax(0,1fr)}}.calc h3{font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:16px 0 6px;font-weight:600}.calc h3:first-child{margin-top:0}.field{display:grid;grid-template-columns:1fr 130px;align-items:center;gap:2px 10px;padding:4px 6px;margin:0 -6px;border-radius:6px;font-size:13px}.field small{grid-column:1 / -1;color:var(--muted);font-size:11px}.field.changed{background:var(--warn-soft)}.field.changed small{color:var(--warn)}.changed-h{color:var(--warn)!important}.field-input{display:flex;align-items:center;gap:4px;white-space:nowrap}.field-input input{text-align:right}.calc-row{display:grid;grid-template-columns:minmax(0,1fr) 96px 150px auto;gap:6px;align-items:center;margin-bottom:6px;font-size:13px}.calc-row.running{grid-template-columns:minmax(0,1fr) 110px auto}.calc-row .quiet,.calc .quiet{margin:0;padding:4px 10px}.calc-table{font-size:13px}.calc-table th:first-child{text-align:left}.calc-table tr.subtotal th,.calc-table tr.subtotal td{font-weight:600}.calc-table tr.total th,.calc-table tr.total td{font-weight:700;border-top:2px solid var(--ink)}.calc-table tr.cost th,.calc-table tr.less th{padding-left:14px}.calc-table tr.muted th,.calc-table tr.muted td{color:var(--muted)}.calc-table td:nth-child(3){font-weight:600}.calc-results{position:sticky;top:12px}@media(max-width:860px){.calc-results{position:static}}.ask{max-width:820px;display:grid;gap:12px;padding-bottom:140px}.ask-intro h2{font-size:18px}.examples{display:grid;gap:8px;margin-top:12px}.example{text-align:left;background:var(--bg)}.turn.question{justify-self:end;max-width:85%;background:var(--accent);color:#fff;border-radius:14px 14px 4px;padding:8px 14px}.turn.question p{margin:0;white-space:pre-wrap}.turn.answer{line-height:1.55;overflow-x:auto}.turn.answer>:first-child{margin-top:0}.turn.answer>:last-child{margin-bottom:0}.turn.answer table{width:auto;font-size:13px;margin:8px 0}.turn.answer th,.turn.answer td{padding:4px 10px}.turn.answer h1,.turn.answer h2,.turn.answer h3{font-size:15px;margin:14px 0 6px}.ask-box{position:sticky;bottom:12px;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:10px;box-shadow:0 4px 18px #00000014}.ask-box textarea{resize:vertical;border:0;background:transparent;padding:4px}.ask-box textarea:focus{outline:none}.ask-actions{display:flex;justify-content:flex-end;gap:8px}.ask-actions .quiet{margin:0}.key{display:inline-block;width:10px;height:10px;border-radius:2px;margin:0 4px 0 10px;vertical-align:-1px;background:var(--muted)}.key.s1{background:var(--s1)}.key.ly{background:var(--ly)}.legend-inline{margin:6px 0 0}.legend-inline .key:first-child{margin-left:0}.linechart{position:relative}.linechart svg{display:block;max-width:100%}.linechart .grid{stroke:var(--line);stroke-width:1}.linechart .axis{fill:var(--muted);font-size:11px}.linechart .line{fill:none;stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round}.linechart .line.s1{stroke:var(--s1)}.linechart .line.ly{stroke:var(--ly);stroke-dasharray:5 4}.linechart .dot{stroke:var(--panel);stroke-width:2}.linechart .dot.s1{fill:var(--s1)}.linechart .dot.ly{fill:var(--ly)}.linechart .crosshair{stroke:var(--muted);stroke-width:1}.linechart .today-line{stroke:var(--warn);stroke-width:1.5;stroke-dasharray:3 3}.chart-tip{position:absolute;top:8px;transform:translate(-50%);background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:6px 10px;font-size:12px;pointer-events:none;box-shadow:0 4px 14px #0000001a;white-space:nowrap}.chart-tip .key{margin-left:0}
