/* Layout boundaries apply to content as well as the surrounding grid. */
main,.grid,.grid>*,.stats>*,.panel,.heading>div,.car-banner>div{min-width:0}
aside{overflow-y:auto;overscroll-behavior:contain}
.heading h1,.car-banner h2,.row-content b,.row-content p,.report-intro h2{overflow-wrap:anywhere}
.icon{flex-shrink:0}.car-banner:after{pointer-events:none}.car-banner>div{position:relative;z-index:1}
button,a,input,select,textarea{touch-action:manipulation}
button:focus-visible,a:focus-visible,.import:focus-within{outline:2px solid var(--accent-border,#d6b126);outline-offset:3px}
dialog{max-height:calc(100dvh - 32px);overflow-y:auto;overscroll-behavior:contain}
.table-scroll{max-width:100%;overscroll-behavior-x:contain}
@media screen and (min-width:651px) and (max-width:900px){
 aside{width:190px;padding:24px 14px}.brand{font-size:31px}.brand>span{font-size:9px}
 main{margin-left:190px;padding:0 20px}header{flex-wrap:wrap;justify-content:flex-start;gap:10px}
 header>.eyebrow{max-width:none}.header-right{width:100%;justify-content:space-between}
 .preferences{flex-wrap:wrap}.heading{flex-wrap:wrap}.heading>.primary{margin-left:auto}
 .car-banner{gap:20px;padding:22px;flex-wrap:wrap}.odometer{margin-left:auto}
 .report-intro{gap:12px;padding:24px}.report-symbol{font-size:65px;padding:0}
 .report-filters label{min-width:calc(50% - 12px)}
}
@media screen and (max-width:650px){
 :root{font-size:15px}body{min-width:280px}
 aside{position:static;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:16px max(16px,env(safe-area-inset-right)) 12px max(16px,env(safe-area-inset-left));width:100%;overflow:visible}
 .brand{grid-column:1/-1;flex-wrap:nowrap;font-size:30px;gap:9px}.brand>span,aside>.eyebrow{display:none}
 .brand .brand-dot{display:inline}.logo-mark{width:36px;height:36px}
 aside #carSelect{grid-column:1;min-width:0;width:100%;margin:0;font-size:16px;min-height:46px;padding:10px}
 aside #addCar{display:block;grid-column:2;min-height:46px;margin:0;font-size:12px;padding:10px;max-width:150px;background:#2b2d23;color:#eeefdd;border:1px solid #454937;border-radius:8px}
 aside nav{grid-column:1/-1;display:flex;width:100%;min-width:0;overflow-x:auto;gap:7px;margin:0;padding:2px 0 8px;scroll-snap-type:x proximity;scroll-padding-inline:4px;scrollbar-width:thin;scrollbar-color:#77734b transparent;overscroll-behavior-x:contain}
 nav button{min-height:46px;flex:0 0 auto;scroll-snap-align:start;font-size:13px;padding:12px 15px;white-space:nowrap}
 aside .aside-bottom{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:9px;margin:0;padding-top:2px}
 .aside-bottom .status,.aside-bottom>small{display:none}.aside-bottom button,.aside-bottom .import{flex:1;min-height:44px;border:1px solid #454937;border-radius:8px;padding:12px 8px;font-size:11px;display:flex;align-items:center;justify-content:center;text-align:center;margin:0;white-space:normal}
 main{margin:0;width:100%;padding:0 max(16px,env(safe-area-inset-right)) 0 max(16px,env(safe-area-inset-left))}
 header{height:auto;min-height:0;padding:16px 0;display:block}header>.eyebrow{display:none}
 .header-right{display:flex;width:100%;gap:0;justify-content:stretch}.header-right #today,.header-right .avatar{display:none}
 .preferences{width:100%;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}
 .preferences label{font-size:11px;min-width:0;gap:6px}.preferences select{width:100%;min-width:0;min-height:46px;font-size:16px;padding:10px}
 .heading{display:block;margin:22px 0}.heading h1{font-size:26px;line-height:1.25;letter-spacing:-.7px}.heading p{font-size:13px;line-height:1.7;margin:9px 0 16px}
 .heading .primary{display:block;width:100%;font-size:15px;min-height:48px;padding:12px 18px}
 .car-banner{display:flex;flex-direction:column;align-items:stretch;gap:22px;padding:22px;min-height:0}
 .car-banner h2{font-size:24px;line-height:1.35}.car-banner p{font-size:13px}.car-banner .eyebrow{line-height:1.7;font-size:10px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
 .car-banner .eyebrow button{min-width:44px;min-height:44px;font-size:12px!important;margin-left:auto!important;padding:8px 12px!important}
 .plate{font-size:13px}.odometer{text-align:left;border-top:1px solid #ffffff22;padding-top:18px}.odometer b{font-size:30px}.odometer span{font-size:10px;letter-spacing:1px;margin-bottom:7px}
 .stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:18px 0}.stat{padding:16px 13px}.stat label{display:block;font-size:12px;line-height:1.5;min-height:36px}
 .stat strong{font-size:22px;line-height:1.3;letter-spacing:-.5px;overflow-wrap:anywhere;margin:10px 0}.stat small{font-size:11px;line-height:1.6}
 .grid{display:grid;grid-template-columns:minmax(0,1fr);gap:0}.panel{padding:18px;margin-bottom:16px}.panel h3{font-size:15px;line-height:1.5;margin-bottom:16px}
 .panel-heading{align-items:center;flex-wrap:wrap;gap:10px;margin-bottom:8px}.panel-heading h3{margin-bottom:0}.panel-heading>button{font-size:12px;min-height:44px;max-width:100%;padding:10px 12px}
 .bars{gap:8px;height:175px;padding-left:0;padding-right:0}.bar-group{min-width:0;gap:2px}.bar-group span{min-width:4px}.bar-group small{font-size:10px;white-space:nowrap}
 .legend{display:grid;grid-template-columns:1fr 1fr;gap:12px;font-size:11px;line-height:1.6;margin-top:24px}.legend i{width:9px;height:9px}
 .row{display:grid;grid-template-columns:36px minmax(0,1fr);gap:10px 12px;padding:16px 0;align-items:start}
 .row .icon{grid-column:1;grid-row:1;width:36px;height:36px}.row .row-content{grid-column:2;grid-row:1}.row b{font-size:14px;line-height:1.5}.row p{font-size:12px;line-height:1.7;margin-top:5px}
 .row>strong,.row>.badge{grid-column:2;justify-self:start;font-size:13px;max-width:100%;overflow-wrap:anywhere}.row>.badge{font-size:11px}
 .row>.actions{grid-column:2;display:flex;flex-direction:row;gap:10px}.actions button{min-width:44px;min-height:44px;font-size:15px;padding:10px}
 .row>button{min-height:44px;grid-column:2;justify-self:start}.row>.row-content:empty{display:none}
 .toolbar{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}.toolbar input{min-width:0}.toolbar button{min-height:46px;font-size:14px}
 .report-intro{padding:22px;margin-bottom:18px;gap:8px}.report-intro>div:first-child{min-width:0}.report-intro h2{font-size:24px;line-height:1.3}.report-intro p{font-size:13px}.report-symbol{display:none}
 .report-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 12px}.report-filters label{min-width:0;font-size:12px}.report-filters label:nth-of-type(3){grid-column:1/-1}.report-filters select,.report-filters input{font-size:16px;min-height:46px;max-width:100%;width:100%;min-width:0;padding:10px}.report-filters button{font-size:13px;min-height:46px;padding:11px 8px}.report-filters button:last-child{grid-column:1/-1}
 .category-line>div:first-child{flex-wrap:wrap;font-size:12px;gap:7px}.category-line>div:first-child>span{font-size:13px;max-width:100%;overflow-wrap:anywhere}.category-line small{font-size:11px}.track{height:9px}.month-line{gap:10px;font-size:12px}.month-line b{min-width:72px;max-width:45%;overflow-wrap:anywhere}
 .report-period{max-width:none;font-size:11px;line-height:1.6}.report-note{font-size:12px;line-height:1.8}
 /* Detailed reports become labelled record cards on phones. */
 .table-scroll{overflow:visible}table,tbody{display:block;white-space:normal;width:100%}thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}tbody tr{display:block;padding:12px 0;border-bottom:1px solid #e2e2d7}tbody td{display:flex;justify-content:space-between;align-items:baseline;gap:16px;width:100%;padding:7px 0;border:0;font-size:12px;overflow-wrap:anywhere;text-align:right}tbody td::before{content:attr(data-label);flex:0 0 43%;color:#85897b;text-align:left;font-size:11px}tbody td:last-child{font-weight:800;font-size:14px}tfoot{display:block}tfoot tr{display:flex;justify-content:space-between;width:100%;gap:12px}tfoot th{display:block;border:0;padding:15px 8px;font-size:13px;overflow-wrap:anywhere}tfoot th:first-child{flex:1}
 [data-theme=dark] tbody tr{border-color:#3a3e2e}[data-theme=dark] tbody td::before{color:#b2b79f}
 input,select,textarea{font-size:16px;min-height:46px}textarea{min-height:105px;resize:vertical}
 dialog{width:100%;max-width:none;max-height:calc(100dvh - 12px - env(safe-area-inset-top));margin:auto 0 0;border-radius:18px 18px 0 0;padding:20px max(20px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left))}
 .modal-head{gap:10px;position:sticky;top:-20px;background:#fffef8;z-index:2;padding:8px 0;border-bottom:1px solid #e2e2d7}.modal-head h2{font-size:20px;line-height:1.4}.modal-head button{min-width:44px;min-height:44px}.modal-head+div{min-width:0}[data-theme=dark] .modal-head{background:#22251b;border-color:#454a36}
 form label{font-size:13px;line-height:1.6;margin:16px 0}form input,form select{min-width:0;max-width:100%}.check{min-height:44px}.check input{min-height:24px;width:24px;height:24px;flex-shrink:0;accent-color:var(--accent-border,#d3ac20);margin:0}form .primary{font-size:16px;min-height:48px}
 .empty{padding:25px 4px}.empty p{font-size:13px}.empty button{min-height:46px;font-size:14px}.empty strong{font-size:16px}
 #toast{left:16px;right:16px;bottom:max(16px,env(safe-area-inset-bottom));text-align:center;font-size:14px;max-width:calc(100% - 32px)}footer{font-size:10px;line-height:1.8;padding-bottom:env(safe-area-inset-bottom);margin:24px 0}
}
@media screen and (max-width:359px){
 .stats{grid-template-columns:minmax(0,1fr)}.stat label{min-height:0}.stat strong{font-size:26px}.preferences{grid-template-columns:minmax(0,1fr)}.report-filters{grid-template-columns:minmax(0,1fr)}.report-filters label:nth-of-type(3),.report-filters button:last-child{grid-column:auto}aside #addCar{max-width:120px;font-size:11px}.heading h1{font-size:24px}.legend{grid-template-columns:minmax(0,1fr)}
}

/* Keep the add-vehicle hover surface clear of the selector in the sidebar. */
@media screen and (min-width:651px){aside #carSelect,aside #addCar{flex-shrink:0}aside #addCar{margin-top:10px;padding:11px 12px}aside #addCar:hover{background:#30312a;color:#fff}}
