:root{--ink:#173b37;--muted:#60706c;--bg:#f5f5ee;--card:#fff;--line:#dce2d8;--accent:#d5ef78;--radius:18px;font-family:Inter,ui-sans-serif,system-ui,sans-serif;color:var(--ink);background:var(--bg)}*{box-sizing:border-box}body{margin:0}a{color:inherit}header,main,footer{max-width:1240px;margin:auto}header{display:flex;align-items:center;justify-content:space-between;padding:26px 30px;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:10px;font-weight:800;text-decoration:none;font-size:21px}.mark{background:var(--ink);color:var(--accent);padding:10px;border-radius:10px;font-size:16px}nav{display:flex;gap:24px;font-size:14px}nav a{text-decoration:none}nav a[aria-current=page]{font-weight:800;text-decoration:underline;text-underline-offset:7px}main{padding:48px 30px;min-height:75vh}.eyebrow{text-transform:uppercase;letter-spacing:2px;font-size:12px;font-weight:800;color:var(--muted)}h1{font-size:clamp(34px,5vw,66px);letter-spacing:-2px;line-height:1.07;max-width:850px;margin:20px 0}h2{font-size:23px;letter-spacing:-.5px}p{line-height:1.7;color:var(--muted);max-width:740px}.hero{padding:24px 0 50px}.button,button{background:var(--ink);color:white;border:0;border-radius:9px;padding:14px 20px;font:inherit;font-weight:650;cursor:pointer;display:inline-block;text-decoration:none}.button.light{background:var(--accent);color:var(--ink)}.actions{display:flex;gap:12px;margin-top:26px}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:26px}.card p{font-size:14px}.badge{display:inline-block;background:#edf1e8;color:var(--muted);font-size:11px;padding:5px 8px;border-radius:5px;font-weight:650}.banner{background:var(--ink);color:white;border-radius:var(--radius);padding:28px;margin-bottom:28px}.banner p{color:#d1dfd8}.split{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:24px}form .fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}label{display:block;font-size:13px;font-weight:650}input{width:100%;margin-top:8px;border:1px solid #b6c4bb;border-radius:8px;padding:12px;font:inherit;color:var(--ink);background:white}form button{margin-top:24px}.results{background:var(--ink);color:white}.results p{color:#c7d6cf}.profit{font-size:48px;font-weight:750;letter-spacing:-2px;margin:20px 0}.row{display:flex;justify-content:space-between;gap:20px;padding:14px 0;border-bottom:1px solid #ffffff25}.plans{grid-template-columns:repeat(4,minmax(0,1fr))}.price{font-size:34px;font-weight:800;margin-top:25px}.price small{font-size:13px;color:var(--muted);font-weight:400}footer{padding:24px 30px;border-top:1px solid var(--line);font-size:12px;color:var(--muted);display:flex;justify-content:space-between;gap:20px}.skip{position:absolute;top:-100px}.skip:focus{top:0;background:white;padding:15px;z-index:2}a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid #679d12;outline-offset:4px}.error{color:#b42a24} @media(max-width:900px){.grid,.plans{grid-template-columns:repeat(2,minmax(0,1fr))}.split{grid-template-columns:1fr}header{align-items:flex-start;gap:24px;flex-direction:column}}@media(max-width:550px){main{padding:30px 18px}header{padding:20px 18px}nav{gap:16px;font-size:12px}.grid,.plans{grid-template-columns:1fr}form .fields{grid-template-columns:1fr}footer{flex-direction:column}h1{letter-spacing:-1px}.actions{flex-wrap:wrap}.card{padding:20px}}
select{width:100%;margin:8px 0 18px;border:1px solid #b6c4bb;border-radius:8px;padding:12px;font:inherit;color:var(--ink);background:white}.notice{border:1px solid #d5ca92;background:#faf5dc;border-radius:12px;padding:18px 24px;margin:20px 0}.notice p{margin:8px 0 0;font-size:14px}.metrics{grid-template-columns:repeat(4,minmax(0,1fr));margin:26px 0}.metric{font-size:clamp(24px,3vw,36px);font-weight:750;margin:12px 0;letter-spacing:-1px}.ledger-layout{grid-template-columns:repeat(2,minmax(0,1fr))}form>label{margin-top:14px}.history{margin-top:24px}.table-scroll{overflow:auto}table{border-collapse:collapse;width:100%;text-align:left;font-size:14px}th,td{padding:14px 12px;border-bottom:1px solid var(--line)}th:not(:first-child),td:not(:first-child){text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.entry{border-bottom:1px solid var(--line);padding:18px 0}.entry summary{display:flex;justify-content:space-between;gap:20px;cursor:pointer;line-height:1.7}.muted{color:var(--muted);font-size:13px}.secondary{background:#edf1e8;color:var(--ink);font-size:13px;margin-top:16px}.empty{padding:30px 0}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:20px}.section-heading button{font-size:13px}dialog{max-width:520px;width:calc(100% - 32px);border:1px solid var(--line);border-radius:18px;color:var(--ink);padding:28px}dialog::backdrop{background:#112e2c99}button:disabled{opacity:.55;cursor:wait}#ledger-status:not(:empty){padding:16px 0;font-weight:650}.row{border-bottom-color:var(--line)}.results .row{border-bottom-color:#ffffff25}@media(max-width:900px){.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.ledger-layout{grid-template-columns:1fr}}@media(max-width:550px){nav{flex-wrap:wrap}.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.entry summary,.section-heading{flex-direction:column;gap:8px}}
.subnav{margin:24px 0;padding:16px 0;border-bottom:1px solid var(--line)}
[hidden]{display:none!important}
.unit-picker{min-width:240px;max-width:100%}.unit-picker select{margin-bottom:0}.status-overdue{background:#fbe6dd;color:#9b3526}.status-due{background:#faf0b7;color:#75591b}.status-completed{background:#dfedcb;color:#345c28}dialog{max-height:90vh;overflow:auto}dialog .fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}dialog label{margin-top:12px}header nav{flex-wrap:wrap;row-gap:12px}header{gap:24px}#equipment-status:not(:empty){padding:16px 0;font-weight:650}#equipment-detail{margin-top:24px}@media(max-width:550px){dialog .fields{grid-template-columns:1fr}.unit-picker{width:100%}}
/* Shared logo and responsive primary navigation. */
.site-header{background:#fff;flex-direction:row;align-items:center;gap:24px}
.brand{flex-shrink:0;max-width:100%}
.brand-logo{display:block;width:260px;max-width:100%;height:auto}
.site-header .primary-nav{align-items:center;justify-content:flex-end}
.menu-toggle{display:none;align-items:center;justify-content:center;width:46px;height:46px;padding:12px;border:1px solid var(--line);background:transparent;color:var(--ink);flex-shrink:0}
.hamburger{display:flex;flex-direction:column;gap:5px;width:22px}
.hamburger span{display:block;width:22px;height:2px;background:currentColor;transition:transform .15s,opacity .15s}
.menu-toggle[aria-expanded=true] .hamburger span:first-child{transform:translateY(7px) rotate(45deg)}
.menu-toggle[aria-expanded=true] .hamburger span:nth-child(2){opacity:0}
.menu-toggle[aria-expanded=true] .hamburger span:last-child{transform:translateY(-7px) rotate(-45deg)}
@media(max-width:900px){
 .site-header{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px 16px}
 .brand-logo{width:240px}
 .menu-toggle{display:inline-flex}
 .site-header .primary-nav{display:none;grid-column:1/-1;flex-direction:column;align-items:stretch;gap:0;border-top:1px solid var(--line);padding-top:8px;font-size:15px}
 .site-header .primary-nav.is-open{display:flex}
 .primary-nav a{display:block;padding:14px 8px;min-height:48px;border-radius:6px}
 .primary-nav a:hover{background:var(--bg)}
}
@media(prefers-reduced-motion:reduce){.hamburger span{transition:none}}

/* Content-fit rules shared by all financial screens. */
:root{--space-card:clamp(22px,2.4vw,30px);--space-grid:24px}
body{font-size:16px;line-height:1.5}
h1,h2,p{overflow-wrap:break-word}
h1,h2{text-wrap:balance}
h2{line-height:1.3;margin:0 0 16px}
p{text-wrap:pretty;margin:0 0 18px}
p:last-child{margin-bottom:0}
.grid,.split{gap:var(--space-grid)}
.grid>*,.split>*,.fields>*,.section-heading>*,.entry summary>*{min-width:0}
.card{padding:var(--space-card);container-type:inline-size}
.card>h2:not(:first-child){margin-top:28px}
.card>.badge+h2{margin-top:16px}
.card p{line-height:1.65}
.metrics{grid-template-columns:repeat(auto-fit,minmax(min(100%,245px),1fr));align-items:stretch}
.metrics .eyebrow{font-size:11px;letter-spacing:1px;line-height:1.6}
.metric{font-size:clamp(22px,9cqi,36px);line-height:1.25;letter-spacing:-.6px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;margin:14px 0 18px}
.profit{font-size:clamp(28px,11cqi,48px);line-height:1.2;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.plans{grid-template-columns:repeat(auto-fit,minmax(min(100%,245px),1fr))}
.plans h2{font-size:22px}
.price{line-height:1.3;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.price small{display:inline-block;white-space:nowrap}
form .fields,dialog .fields{grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:20px;align-items:start}
label{min-width:0;line-height:1.5;font-size:14px}
input,select{min-width:0;max-width:100%;font-size:16px;line-height:1.5;padding:12px 14px;min-height:48px}
select{padding-right:28px}
form>label,dialog label{margin-top:18px}
form .fields label{margin-top:0}
form .fields{margin-top:18px;margin-bottom:18px}
.actions{flex-wrap:wrap;align-items:center;gap:12px 16px}
.actions button,.actions .button{margin-top:0}
button,.button{line-height:1.4;max-width:100%;text-align:center;white-space:normal;overflow-wrap:break-word}
.badge{line-height:1.5;padding:6px 10px;max-width:100%}
.row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:12px 24px;padding:16px 0}
.row>span{min-width:0;overflow-wrap:anywhere}
.row>strong{white-space:nowrap;font-variant-numeric:tabular-nums;text-align:right}
.section-heading{flex-wrap:wrap;align-items:center;gap:20px 28px;margin-bottom:24px}
.section-heading .actions{margin-top:0}
.section-heading h2{margin-bottom:8px}
.entry summary{align-items:baseline;gap:16px 28px;padding:4px 0}
.entry summary>span:first-child{flex:1;overflow-wrap:anywhere}
.entry summary>span:last-child{flex-shrink:0;font-variant-numeric:tabular-nums}
.entry summary .badge{margin-left:6px}
.primary-nav a,.subnav a{white-space:nowrap}
.subnav{flex-wrap:wrap;gap:12px 24px;line-height:1.6}
th,td{line-height:1.6;padding:16px}
td:first-child{min-width:180px;overflow-wrap:anywhere}
.notice{padding:22px 24px;line-height:1.6}
dialog{max-width:640px;padding:clamp(22px,4vw,32px)}
@container(max-width:340px){
 .row{grid-template-columns:minmax(0,1fr);gap:6px}
 .row>strong{text-align:left}
}
@media(max-width:550px){
 .section-heading{align-items:stretch}
 .section-heading>.actions{width:100%}
 .entry summary{align-items:stretch}
 .entry summary>span:last-child{flex-shrink:1}
 .notice{padding:20px}
 .banner{padding:24px}
}
.check-row{display:grid;grid-template-columns:22px minmax(0,1fr) auto;align-items:center;gap:16px;padding:18px 0;border-bottom:1px solid var(--line)}.check-row input{min-height:22px;width:22px;margin:0}.check-row strong{white-space:nowrap;font-variant-numeric:tabular-nums}details>summary{cursor:pointer;line-height:1.6}details>p{margin-top:16px}#load-status:not(:empty),#cash-status:not(:empty){padding:16px 0;font-weight:650}@media(max-width:550px){.check-row{grid-template-columns:22px minmax(0,1fr)}.check-row strong{grid-column:2}}
.auth-card{max-width:620px;margin:20px auto}.auth-card h1{font-size:clamp(32px,5vw,46px);letter-spacing:-1px}.auth-switch{margin-top:28px}
/* Narrow containers and long financial values stay inside their cards. */
.unit-picker{min-width:0;width:min(100%,340px)}
.card,dialog,details,form{min-width:0}
input[type=checkbox]{width:22px;min-height:22px;flex-shrink:0}
.row>button{justify-self:end;margin-top:0}
.entry strong,.auth-card strong{overflow-wrap:anywhere}
.brand-logo{object-fit:contain}
@media(max-width:420px){.row{grid-template-columns:minmax(0,1fr);gap:8px}.row>strong,.row>button{text-align:left;justify-self:start;white-space:normal}.actions>button,.actions>.button{flex:1 1 150px}.metric{letter-spacing:0}.site-header{padding-inline:16px}.brand-logo{width:min(210px,100%)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}}
:focus-visible{outline:3px solid #679d12;outline-offset:4px}
.boot-loading{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;opacity:0;animation:boot-fade .2s ease-out .35s forwards}.boot-spinner{width:34px;height:34px;border:3px solid var(--line);border-top-color:var(--ink);border-radius:50%;animation:boot-spin .8s linear infinite}.boot-label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}@keyframes boot-fade{to{opacity:1}}@keyframes boot-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.boot-spinner{animation-duration:1.6s}}
