:root{--ink:#171b19;--muted:#69716a;--line:#e1e6df;--paper:#fbfcfa;--surface:#f0f3ef;--green:#247849;--green-soft:#e9f1e9;--red:#bd5947;--radius:6px;--mono:'SFMono-Regular',Consolas,'Liberation Mono',monospace}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:14px/1.45 Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased}button,input,select{font:inherit}button{color:inherit;cursor:pointer;border:0;background:none}button,input,select{outline:none}button:focus-visible,input:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--green);outline-offset:4px}button:active{transform:translateY(1px)}button{transition:background .15s,color .15s,transform .12s}::selection{background:#ccdfcf}a{color:inherit}svg{display:block}h1,h2,p{margin:0}h1{font-size:24px;font-weight:500;letter-spacing:-.7px}h2{font-size:15px;font-weight:600}small{font-size:12px}[x-cloak]{display:none!important}.topbar{height:68px;display:flex;align-items:center;border-bottom:1px solid var(--line);padding:0 48px;gap:65px;background:#fff}.workspace{display:flex;align-items:center;gap:11px;white-space:nowrap}.workspace strong{font-size:16px}.workspace-label{color:#858b85;font-size:12px;margin-left:1px}.app-mark{display:block;width:29px;height:29px;color:var(--ink);margin-right:2px}.app-mark svg{width:26px;height:26px}.topbar nav{display:flex;align-self:stretch;gap:28px}.topbar nav button{font-size:14px;color:var(--muted);position:relative;padding:0 2px}.topbar nav button:hover{color:var(--ink)}.topbar nav button.active{color:var(--ink);font-weight:600}.topbar nav button.active:after{content:'';position:absolute;bottom:-1px;height:2px;left:0;right:0;background:var(--ink)}.nav-count{font-size:11px;margin-left:5px;color:#70766f}.connection{margin-left:auto;display:flex;gap:8px;align-items:center;color:var(--muted);font-size:12px}.status-dot{width:6px;height:6px;background:var(--green);display:inline-block;border-radius:50%;flex-shrink:0}.avatar-user{display:flex;width:29px;height:29px;align-items:center;justify-content:center;background:#e7e9e4;color:#4b534c;border-radius:50%;font-size:10px;font-weight:600;margin-left:20px}main{max-width:1440px;margin:auto;padding:0 64px}.pagebar{height:70px;display:flex;align-items:center;justify-content:space-between}.breadcrumbs{display:flex;gap:13px;align-items:center;color:var(--muted);font-size:13px}.breadcrumbs button{padding:4px 0}.breadcrumbs button:hover{color:var(--green)}.breadcrumbs>button:first-child{color:var(--ink)}.crumb-divider{color:#b2b9b0}.page-actions{display:flex;align-items:center;gap:20px}.currency{color:var(--muted);font-size:11px;letter-spacing:.5px}.button{border:1px solid #d6dcd3;border-radius:var(--radius);padding:8px 12px;display:inline-flex;align-items:center;justify-content:center;gap:8px;background:#fff;line-height:1.2;font-size:13px;min-height:34px}.button:hover{background:var(--surface);border-color:#b5c1b2}.button svg,.search-box svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linejoin:round}.report-heading{display:flex;justify-content:space-between;align-items:center;margin:2px 0 29px}.report-heading p{font-size:13px;color:var(--muted);margin-top:6px}.report-controls{display:flex;gap:17px;align-items:center}.closed-period{font-size:12px;color:var(--muted)}.month-select{position:relative}.month-select select{appearance:none;border:1px solid #d6dcd3;background:#fff;border-radius:6px;padding:9px 34px 9px 13px;color:var(--ink);font-size:13px;cursor:pointer}.month-select>span{position:absolute;right:12px;top:6px;font-size:19px;pointer-events:none}.balance-heading{display:flex;align-items:center;gap:25px;margin-bottom:0}.balance>span{color:var(--muted);font-size:12px}.balance>div{font-size:52px;line-height:1.18;font-weight:400;letter-spacing:-2.5px;font-variant-numeric:tabular-nums;margin-top:4px}.balance-change{display:grid;grid-template-columns:auto auto;gap:6px 10px;margin-top:22px;align-items:center}.gain-badge{background:var(--green-soft);color:var(--green);font-family:var(--mono);font-size:13px;padding:4px 8px;border-radius:4px}.balance-change strong{font-size:12px;color:var(--green);font-weight:400}.balance-change>span:last-child{grid-column:1/-1;color:var(--muted);font-size:12px}.text-button{font-size:13px;color:var(--ink);padding:7px 0;display:inline-flex;gap:16px;align-items:center}.text-button:hover{color:var(--green)}.balance-heading>.text-button{margin-left:auto;margin-top:27px}.bridge-wrap{margin-top:12px;min-height:246px}.bridge-svg{width:100%;height:auto;overflow:visible;font-family:Arial,Helvetica,sans-serif;display:block}.bridge-svg .axis-label{fill:#818a80;font-size:11px}.bridge-svg .bar-label{fill:var(--ink);font-size:14px;font-family:var(--mono)}.bridge-svg .category-label{fill:var(--muted);font-size:12px}.bridge-svg .bridge-bar{transform-box:fill-box;transform-origin:bottom;animation:grow-bar .58s cubic-bezier(.21,.8,.26,1) both;animation-delay:var(--delay)}.bridge-svg .movement-group{cursor:pointer}.bridge-svg .movement-group:hover .bridge-bar{filter:brightness(.86)}.bridge-svg .movement-group:focus .bridge-bar{stroke:var(--ink);stroke-width:2}.bridge-svg .hit-area{fill:transparent}.movement-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;padding:17px 0 18px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-top:7px}.movement-strip button{display:grid;grid-template-columns:1fr auto;gap:8px 10px;text-align:left;padding:0 10px 0 0;border-radius:4px}.movement-strip button:hover{background:var(--surface)}.movement-label{display:flex;gap:7px;align-items:center;color:var(--muted);font-size:12px;grid-column:1/-1}.movement-label i,.recon-row i{width:7px;height:7px;display:inline-block;border-radius:1px;background:var(--green)}i.new{background:#72a47b!important}i.upgrades{background:var(--green)!important}i.downgrades{background:#df9d81!important}i.churn{background:var(--red)!important}.movement-count{margin-left:2px;font-size:11px;color:#90978d}.movement-strip strong{font-family:var(--mono);font-size:20px;font-weight:400;color:var(--green)}.movement-strip .loss-item strong{color:var(--red)}.movement-arrow{color:#8c9889;align-self:center;font-size:17px}.lower-grid{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:62px;margin-top:28px}.section-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:13px}.section-heading>span{color:var(--muted);font-size:11px}.months-table,.activity-table,.directory-table{width:100%;border-collapse:collapse;table-layout:fixed}.months-table th,.months-table td{text-align:right;font-size:12px;padding:9px 12px;height:35px;border-bottom:1px solid #e8ece5}.months-table th{font-size:11px;color:var(--muted);font-weight:400;height:30px}.months-table th:first-child,.months-table td:first-child{text-align:left;padding-left:12px;width:30%}.months-table th:last-child,.months-table td:last-child{width:40px;padding-right:9px}.months-table .selected{background:var(--green-soft)}.months-table .selected td{border-color:var(--green-soft)}.months-table td:first-child button{padding:0;font-size:12px}.selected-dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--green);margin-left:9px;vertical-align:middle}.row-arrow{padding:2px 5px;color:#6c7e69;font-size:17px;min-width:26px;min-height:26px;border-radius:4px}.row-arrow:hover{background:#dbe6d8;color:var(--green)}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}.positive{color:var(--green)}.negative{color:var(--red)}.retention{padding-left:0}.info-dot{border:1px solid #b6beb3;border-radius:50%;width:15px;height:15px;text-align:center;font-family:Georgia,serif;line-height:13px}.retention-value{margin-top:22px;display:flex;flex-direction:column;gap:2px}.retention-value>span:first-child{font-size:37px;letter-spacing:-1.5px}.retention-value>span:last-child{font-size:12px;color:var(--muted)}.retention-track{height:6px;margin-top:20px;background:#e1e7dc;position:relative;overflow:visible}.retention-track>div{height:6px;background:var(--green);transition:width .25s}.track-mark{position:absolute;height:12px;width:1px;background:#385b37;right:0;top:-3px}.retention-labels{display:flex;justify-content:space-between;font-size:10px;color:var(--muted);margin-top:7px}.retention>p{color:var(--muted);font-size:13px;line-height:1.65;margin-top:19px;max-width:284px}.retention>.text-button{margin-top:10px}footer{display:flex;justify-content:space-between;color:#8a9186;font-size:10px;border-top:1px solid var(--line);margin-top:26px;padding:15px 0 18px;gap:20px}footer>span:first-child{display:flex;align-items:center;gap:6px}footer .status-dot{width:4px;height:4px}.view-enter{animation:view-in .24s ease both}.month-summary{display:flex;align-items:center;gap:55px;padding-bottom:25px;border-bottom:1px solid var(--line);margin-top:28px}.month-summary>div:first-child{min-width:200px;display:flex;flex-direction:column;gap:8px}.month-summary>div:first-child>span{color:var(--muted);font-size:12px}.month-summary>div:first-child>strong{font-size:44px;font-weight:400;letter-spacing:-2px;color:var(--green)}.compact-bridge{flex:1;min-width:0}.compact-bridge .bridge-bar{animation:none}.detail-layout{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:40px;margin-top:27px}.filters{display:flex;gap:4px;align-items:center;border-bottom:1px solid var(--line);padding-bottom:13px}.filters button{padding:7px 10px;border-radius:5px;color:var(--muted);font-size:13px;white-space:nowrap}.filters button.selected{background:var(--green-soft);color:var(--green)}.filters button:hover{background:var(--surface)}.tab-count{font-size:12px;margin-left:6px;opacity:.7}.activity-heading{display:flex;justify-content:space-between;align-items:center;margin:20px 0 9px}.activity-heading>span{font-size:12px;color:var(--muted)}.table-scroll{max-height:393px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#cbd4c8 transparent}.activity-table th{position:sticky;top:0;background:var(--paper);text-align:left;font-weight:400;color:var(--muted);font-size:13px;padding:10px 6px;border-bottom:1px solid var(--line)}.activity-table th:first-child{padding-left:0;width:31%}.activity-table th:nth-child(2){width:15%}.activity-table th:nth-child(3){width:20%}.activity-table th:nth-child(4){width:13%}.activity-table th:nth-child(5){text-align:right;width:17%}.activity-table th:last-child{width:4%}.activity-table td{border-bottom:1px solid #e6ebe2;padding:13px 6px;font-size:12px}.activity-table td:first-child{padding-left:0}.activity-table td:nth-child(5){text-align:right}.activity-table tbody tr:hover,.directory-table tbody tr:hover{background:#f1f5ef}.customer-cell{display:flex;align-items:center;gap:11px;text-align:left;width:100%;padding:0;min-width:0}.company-avatar{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:32px;height:32px;border-radius:7px;background:var(--avatar-bg,#e4e9df);font-size:11px;color:#414b3e;font-weight:600;letter-spacing:-.3px}.customer-cell>span:last-child{display:flex;flex-direction:column;gap:3px;min-width:0}.customer-cell strong{font-size:12px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.customer-cell small{font-size:10px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.change-type{font-size:11px}.month-reconciliation{border-left:1px solid var(--line);padding-left:25px;padding-top:7px}.month-reconciliation h2{margin-bottom:21px}.recon-row{display:flex;justify-content:space-between;align-items:center;padding:12px 0;width:100%;font-size:12px;gap:10px}.recon-row>span{display:flex;gap:8px;align-items:center}.recon-row strong{font-family:var(--mono);font-weight:400;font-size:12px}.recon-row:first-of-type{border-bottom:1px solid var(--line);margin-bottom:7px}.recon-row button:hover{background:var(--surface)}.recon-total{border-top:1px solid var(--ink);margin-top:9px;padding-top:16px}.recon-total strong{font-size:17px}.recon-note{display:flex;align-items:center;gap:6px;font-size:10px;color:var(--muted);margin-top:6px}.retained-note{margin-top:33px;padding-top:22px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:6px}.retained-note>span{font-size:12px;color:var(--muted)}.retained-note>strong{font-size:27px;font-weight:400;letter-spacing:-.8px}.retained-note p{font-size:11px;color:var(--muted);margin-top:6px;line-height:1.6}.customer-page-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:27px}.customer-page-heading>span{font-size:12px;color:var(--muted)}.customer-layout{display:grid;grid-template-columns:270px minmax(0,1fr);gap:62px}.customer-profile{border-right:1px solid var(--line);padding:0 31px 0 0}.large-avatar{width:56px;height:56px;font-size:18px;border-radius:11px;margin-bottom:21px}.customer-profile h1{font-size:26px;letter-spacing:-.8px}.customer-profile>p{color:var(--muted);font-size:13px;margin-top:5px;word-break:break-word}.account-status{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:var(--green);margin-top:17px}.account-status i{width:5px;height:5px;background:var(--green);border-radius:50%}.account-status.cancelled{color:var(--red)}.account-status.cancelled i{background:var(--red)}dl{margin:30px 0 0}dl>div{margin-bottom:21px}dt{font-size:11px;color:var(--muted);margin-bottom:4px}dd{margin:0;font-size:13px}.contact-person{border-top:1px solid var(--line);padding-top:22px;margin-top:29px;display:flex;flex-direction:column;gap:5px}.contact-person>span,.contact-person small{font-size:11px;color:var(--muted)}.contact-person strong{font-size:13px;font-weight:400;margin-top:3px}.customer-statline{display:flex;gap:63px;align-items:center;padding:6px 0 27px}.customer-statline>div{display:flex;flex-direction:column;gap:5px}.customer-statline>div>span{font-size:12px;color:var(--muted)}.customer-statline>div>strong{font-size:40px;font-weight:400;letter-spacing:-1.5px}.customer-statline>div:nth-child(2)>strong{font-size:25px;letter-spacing:-.8px}.customer-change-label{font-size:11px;background:var(--green-soft);padding:4px 8px;border-radius:4px;margin-left:auto}.subscription-chart{padding:20px 0 24px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.customer-chart{width:100%;height:auto}.subscription-history{margin-top:27px}.history-row{position:relative;display:flex;align-items:flex-start;min-height:83px;gap:20px}.history-date{font-size:11px;color:var(--muted);width:104px;padding-top:3px;flex-shrink:0}.history-node{margin-top:7px;border-radius:50%;width:6px;height:6px;flex-shrink:0;background:#bac8b5;position:relative;z-index:1}.history-node.current{background:var(--green)}.history-row:not(:last-child):after{content:'';position:absolute;left:126px;top:12px;bottom:-7px;width:1px;background:var(--line)}.history-description{display:flex;flex-direction:column;gap:5px}.history-description strong{font-size:13px;font-weight:500}.history-description>span{color:var(--muted);font-size:12px}.history-amount{margin-left:auto;font-size:12px;padding-top:3px}.directory-table th{text-align:left;color:var(--muted);font-size:13px;font-weight:400;padding:10px 12px;border-bottom:1px solid var(--line)}.directory-table th:first-child{width:42%}.directory-table th:last-child{width:40px}.directory-table td{padding:13px 12px;border-bottom:1px solid var(--line);font-size:12px}.directory-table th:nth-child(4),.directory-table td:nth-child(4){text-align:right}.search-box{display:flex;gap:9px;align-items:center;padding:9px 12px;background:#fff;border:1px solid var(--line);border-radius:6px}.search-box input{border:0;background:none;font-size:13px;width:205px}.empty-state{text-align:center;padding:60px 0}.empty-state p{color:var(--muted);margin:10px 0 18px}.toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);padding:12px 20px;color:#fff;background:var(--ink);border-radius:7px;font-size:13px;box-shadow:0 5px 25px #172c1520}
@keyframes grow-bar{from{transform:scaleY(.04);opacity:.2}to{transform:scaleY(1);opacity:1}}@keyframes view-in{from{opacity:.1;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:1500px){main{padding-left:74px;padding-right:74px}}@media(max-width:1150px){main{padding:0 32px}.topbar{padding:0 32px;gap:40px}.lower-grid{gap:32px;grid-template-columns:minmax(0,1fr) 280px}.detail-layout{grid-template-columns:minmax(0,1fr) 225px;gap:20px}.activity-table th:first-child{width:29%}.customer-layout{gap:35px;grid-template-columns:240px minmax(0,1fr)}}@media(max-width:850px){.workspace-label,.closed-period,.connection{display:none}.topbar{justify-content:space-between;gap:15px}.pagebar{height:60px}.balance-heading{flex-wrap:wrap;gap:15px}.balance-heading>.text-button{margin-left:auto}.lower-grid{grid-template-columns:1fr}.retention{max-width:450px}.movement-strip{gap:13px}.movement-strip strong{font-size:16px}.detail-layout{grid-template-columns:1fr}.month-reconciliation{border-left:0;border-top:1px solid var(--line);padding:20px 0}.month-summary{gap:20px}.month-summary>div:first-child{min-width:160px}.month-summary>div:first-child>strong{font-size:34px}.customer-layout{grid-template-columns:200px minmax(0,1fr);gap:25px}.customer-statline{gap:22px}.customer-change-label{display:none}.customer-statline>div>strong{font-size:34px}.history-date{width:78px}.history-row{gap:12px}.history-row:not(:last-child):after{left:92px}footer{font-size:10px;flex-direction:column;gap:9px}}
@media(max-width:600px){main{padding:0 20px}.topbar{height:60px;padding:0 20px}.topbar nav{gap:16px}.workspace{gap:7px}.topbar nav button{font-size:12px}.nav-count{display:none}.app-mark{width:24px}.page-actions .currency{display:none}.breadcrumbs{font-size:11px;gap:7px;flex-wrap:wrap}.page-actions{margin-left:12px}.button{font-size:11px;padding:8px 9px}.report-heading{align-items:flex-start;gap:20px;margin-bottom:25px}h1{font-size:21px}.report-heading p{font-size:12px}.month-select select{font-size:11px;padding-left:9px;max-width:144px}.report-controls{margin-top:2px}.balance>div{font-size:42px}.balance-change{margin-top:20px;gap:5px}.balance-change strong{font-size:10px}.gain-badge{font-size:11px}.balance-change>span:last-child{font-size:10px}.balance-heading>.text-button{margin:0;font-size:12px}.bridge-wrap{overflow-x:auto;min-height:222px;margin-top:17px;padding-bottom:8px}.bridge-wrap .bridge-svg{width:650px}.movement-strip{grid-template-columns:1fr 1fr;gap:20px 15px}.movement-label{font-size:11px}.movement-strip strong{font-size:18px}.lower-grid{gap:35px;margin-top:24px}.months-table th,.months-table td{padding:9px 5px;font-size:11px}.months-table th{font-size:9px}.months-table th:first-child,.months-table td:first-child{padding-left:6px;width:27%}.months-table th:last-child,.months-table td:last-child{width:25px;padding-right:0}.months-table td:first-child button{font-size:11px}.selected-dot{margin-left:5px;width:4px;height:4px}.section-heading h2{font-size:14px}.retention{padding-bottom:10px}.month-summary{flex-direction:column;align-items:flex-start;gap:16px}.compact-bridge{width:100%;overflow:auto}.compact-bridge svg{min-width:470px}.month-summary>div:first-child{flex-direction:row;align-items:center;width:100%;justify-content:space-between}.month-summary>div:first-child>strong{font-size:30px}.filters{gap:2px;overflow:auto}.filters button{padding:7px 8px;font-size:11px}.tab-count{margin-left:3px}.table-scroll{overflow:auto;max-height:480px}.activity-table{min-width:720px}.customer-layout{display:block}.customer-profile{border-right:0;border-bottom:1px solid var(--line);padding:0 0 20px}.customer-profile dl{display:grid;grid-template-columns:1fr 1fr;gap:0 20px;margin-top:23px}.customer-profile dl>div{margin-bottom:17px}.contact-person{margin-top:4px}.customer-revenue{padding-top:25px}.customer-statline{justify-content:space-between}.customer-statline>div>span{font-size:11px}.customer-statline>div>strong{font-size:35px}.customer-statline>div:nth-child(2)>strong{font-size:24px}.history-description strong{font-size:12px}.history-description>span{font-size:11px}.history-date{font-size:10px;width:72px}.history-row{gap:10px;min-height:91px}.history-row:not(:last-child):after{left:84px}.history-amount{font-size:10px}.customer-page-heading>span{font-size:10px}.customers-view .report-heading{flex-direction:column}.directory-table th:nth-child(2),.directory-table td:nth-child(2){display:none}.directory-table th:first-child{width:55%}.directory-table td{padding:12px 5px}.directory-table td:first-child{padding-left:0}.directory-table th{padding:10px 5px}.customer-cell{gap:8px}.customer-cell small{font-size:9px}.customer-cell strong{font-size:11px}.company-avatar{width:27px;height:27px;font-size:9px}.large-avatar{width:50px;height:50px;font-size:17px}.subscription-chart .section-heading>span{font-size:10px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Round 2: a complete monthly ledger at the target desktop size. */
@media(min-width:851px){.topbar{height:60px}.pagebar{height:52px}.report-heading{margin-bottom:20px}.bridge-wrap{min-height:205px}.movement-strip{padding:13px 0 14px}.lower-grid{margin-top:23px}.months-table td{height:33px;padding-top:3px;padding-bottom:3px}.months-table th{height:27px;padding-top:5px;padding-bottom:5px}.months-table .row-arrow{min-height:24px;height:24px;line-height:20px;padding-top:0;padding-bottom:0}.retention-value{margin-top:17px}.retention-track{margin-top:15px}.retention>p{margin-top:14px}.retention>.text-button{margin-top:4px}footer{margin-top:18px;padding-top:12px;padding-bottom:14px}}

/* Round 3: keep evidence, remove repeated explanation. */
.retention-track .track-mark{right:16.667%}.retention-labels{position:relative}.baseline-label{position:absolute;left:83.333%;transform:translateX(-50%)}
.history-row{min-height:70px}.history-row:not(:last-child):after{bottom:-7px}.customer-cell strong{font-size:13px}.customer-cell small{font-size:11px}.activity-table td{font-size:13px}.recon-note{font-size:11px}.retained-note p{font-size:12px}
@media(max-width:600px){.history-row{min-height:91px}.customer-cell strong{font-size:12px}.customer-cell small{font-size:10px}}

@media(min-width:851px){footer{margin-top:10px}.table-scroll{max-height:330px}.month-reconciliation{padding-top:7px}.month-reconciliation .recon-row{padding-top:10px;padding-bottom:10px}}
footer{color:#747d6f}

@media(min-width:851px){footer{padding-bottom:12px}}

/* Independent review: bring customer causes closer to the month. */
.ledger-period{display:flex;gap:14px;align-items:center;color:var(--muted);font-size:11px}.ledger-period svg{width:96px;height:26px}.plan-change{display:flex;flex-direction:column;gap:3px}.plan-change strong{font-size:13px;font-weight:400}.plan-change small{font-size:11px;color:var(--muted)}.activity-table.is-filtered th:first-child{width:38%}.activity-table.is-filtered th:nth-child(3){width:24%}.activity-table.is-filtered th:nth-child(4){width:17%}.activity-table tr:has(button:active){background:#dce8d4}.bridge-svg .movement-group:active .bridge-bar{filter:brightness(.6)}.bridge-svg .traced .bridge-bar{stroke:#173a21;stroke-width:1.5px}.bridge-svg .traced .bar-label{font-weight:600}.compact-bridge .traced .bridge-bar{animation:trace-flash .3s ease-out}.report-controls .button svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.4}
@keyframes trace-flash{from{opacity:.4}to{opacity:1}}
@media(min-width:851px){.overview .report-heading{margin-top:24px}.month-summary{margin-top:12px;padding-bottom:20px}.detail-layout{margin-top:20px}.filters{padding-bottom:8px}.activity-heading{margin-top:16px}.table-scroll{max-height:385px}}
@media(max-width:600px){.overview .report-heading{margin-top:20px;flex-wrap:wrap;gap:14px}.overview .report-controls{width:100%;justify-content:space-between}.overview .closed-period{display:inline;font-size:11px}.ledger-period{gap:7px}.ledger-period svg{width:67px}}
/* Final readability and interaction pass: keep the selected object in view. */
.months-table th{font-size:12px}.months-table td,.months-table td:first-child button{font-size:13px}.customer-cell small{font-size:13px}.plan-change small{font-size:14px}.history-date{font-size:12px}.history-description>span{font-size:13px}.contact-person>span,.contact-person small,dt{font-size:12px}footer{font-size:11px}.movement-label{font-size:13px}.movement-count{font-size:12px}.recon-row,.recon-row strong{font-size:13px}.retention-labels{font-size:11px}
.bridge-svg .movement-group:hover .hit-area,.bridge-svg .movement-group:focus .hit-area{fill:#e6edde;fill-opacity:.5;rx:4px}.bridge-svg .movement-group:hover .category-label,.bridge-svg .movement-group:focus .category-label{fill:#247849;text-decoration:underline}.bridge-svg .traced .hit-area{fill:#e6edde;fill-opacity:.32;rx:4px}
.view-enter{animation:none}.month-view .activity-section,.customer-view .customer-revenue{animation:detail-in .22s ease-out both}
@keyframes detail-in{from{opacity:.65;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:600px){.customer-cell small{font-size:11px}.months-table td,.months-table td:first-child button{font-size:12px}.months-table th{font-size:10px}.history-date{font-size:11px}.history-description>span{font-size:12px}footer{font-size:11px}}

/* Revision 4: explicit report scope, readable causes, and recoverable address state. */
.directory-controls{display:flex;align-items:center;gap:16px}.search-box input{width:230px}.customer-page-heading>span strong{font-weight:500;color:var(--ink)}.state-error{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:12px 16px;background:#fbede6;border:1px solid #dfa087;border-radius:var(--radius);margin:16px 0;color:var(--ink);font-size:13px}.empty-state>div{display:flex;justify-content:center;gap:12px}.activity-heading>span{font-size:13px}.change-type{font-size:13px}
@media(max-width:850px){.directory-controls{flex-wrap:wrap}.customer-page-heading{align-items:flex-start;gap:20px}.customer-page-heading>span{max-width:55%;text-align:right}}
@media(max-width:600px){.directory-controls{width:100%}.directory-controls .search-box{width:100%}.search-box input{width:100%}.state-error{align-items:flex-start}.customer-page-heading>span{font-size:11px}.activity-table{min-width:820px}}
