/* CartPath: the same palette, with a calmer and more legible working surface. */
.grain{opacity:.06}
.topbar{background:var(--paper);border-bottom:1px solid var(--line)}
.brand-mark{box-shadow:0 4px 12px #f26c3f25}
.workspace-nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;padding:6px;border:1px solid var(--line);border-radius:18px;background:var(--paper);margin:14px 0 0}
.workspace-nav button{border:0;border-radius:12px;background:transparent;min-width:0;min-height:48px;font-size:14px;transition:background .15s,box-shadow .15s}
.workspace-nav [aria-pressed=true]{background:var(--ink);color:var(--paper);box-shadow:0 3px 8px #17372b18}
.save-status{font-size:14px;gap:8px;min-height:40px}
.save-status button{background:transparent;border:0;text-decoration:underline;text-underline-offset:3px;padding:6px 10px}
.planner-grid{padding-top:28px;gap:28px;grid-template-columns:minmax(300px,.85fr) minmax(0,1.15fr)}
.control-panel{padding-right:28px;min-width:0}.route-panel{min-width:0}
.section-heading{margin-bottom:20px;gap:12px}.section-heading h2{font-size:clamp(21px,2.3vw,29px);letter-spacing:-.8px;line-height:1.2}
.step{border:0;background:var(--lime);color:#17372b;min-width:30px;min-height:30px;display:grid;place-items:center;font-size:13px}
.input-shell{box-shadow:0 5px 0 #17372b09;border-radius:16px;transition:box-shadow .15s}
.input-shell:focus-within{box-shadow:0 0 0 4px #c9ec7280;border-color:var(--ink)}
.add-form label,.store-section>label,.quick-add label,.label-row label{font-size:14px;letter-spacing:.7px}
.input-help,.mini-copy,.store-note,.check-items-help{font-size:14px;line-height:1.6}
.store-location-card{padding:16px;border-radius:16px;background:var(--paper)}
.store-location-card>label{font-size:14px!important;letter-spacing:0;text-transform:none}
.store-location-entry input{font-size:16px;min-height:46px}
.store-location-entry button,.use-location-button{font-size:14px;min-height:44px}
.use-location-button{border-style:solid;border-radius:10px}
.use-location-button[aria-busy=true]{background:#c9ec7233;border-color:#8ba64f}
.use-location-button[aria-busy=true]::before{content:'';display:inline-block;width:12px;height:12px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;vertical-align:-2px;margin-right:8px;animation:location-turn 1s linear infinite}
.store-location-status{font-size:14px;line-height:1.5;margin:12px 0 0}
.store-location-status[data-state=error]{border-left:3px solid var(--orange);padding-left:10px;color:var(--ink)}
.store-location-status[data-state=success]{border-left:3px solid #80a741;padding-left:10px;color:var(--ink)}
.route-location-chip{font-size:14px;white-space:normal;overflow-wrap:anywhere;border-radius:12px;line-height:1.5}
.trip-stats{border-radius:20px;box-shadow:0 8px 22px #17372b12;background:#17372b;color:#fffdf7}
.trip-stats strong{font-size:28px}.trip-stats .stat-label{font-size:12px;color:#c6d3c9;letter-spacing:1px}.progress-line{height:8px;border-radius:8px;overflow:hidden}.progress-line i{background:var(--lime);transition:width .25s ease}
.department,.mobile-draft{border-radius:18px;border:1px solid var(--line);background:var(--paper);box-shadow:0 4px 16px #17372b06;overflow:hidden}
.dept-head{background:#c9ec7214;padding:18px}.dept-title strong{font-size:18px}.dept-title span{font-size:14px}.dept-count{font-size:12px}
.stop-number{border-radius:12px;min-width:38px;min-height:38px;background:var(--yellow);color:#17372b}
.grocery-item{grid-template-columns:36px minmax(0,1fr);gap:10px 12px;padding:18px}
.grocery-item .check{grid-column:1;grid-row:1 / span 3;align-self:start}
.grocery-item .item-name{grid-column:2;grid-row:1;font-size:17px;line-height:1.4}
.grocery-item .dept-select{grid-column:2;grid-row:2;max-width:180px;font-size:14px}
.grocery-item .item-controls{grid-column:2;grid-row:3;justify-content:flex-start;flex-wrap:wrap}
.item-controls .quantity-stepper,.draft-item-controls .quantity-stepper{margin-right:auto}
.quantity-stepper{border-radius:10px;overflow:hidden}.quantity-stepper button{min-width:38px;min-height:40px}.quantity-stepper b{font-size:16px}
.item-controls .item-edit,.item-controls .save-staple,.item-controls .delete,.mobile-draft-actions button{min-width:40px;min-height:40px}
.item-controls .item-edit,.mobile-draft-row .mobile-edit{font-size:14px}
.mobile-draft-head{padding:16px;background:#c9ec7228;flex-wrap:wrap;gap:10px}.mobile-draft-head span,.mobile-draft-head strong,.mobile-draft-head-actions button{font-size:14px}.mobile-draft-head small{font-size:12px}
.mobile-draft-row{padding:16px}.mobile-draft-row:first-child{background:#ffd56810}.mobile-sort-button{border-radius:12px;min-height:48px}
.quick-grid button,.recipe-card,.pantry-item,.history-item,.recommendation-card{border-radius:14px;background:var(--paper);border:1px solid var(--line)}
.recipe-card{padding:18px}.recipe-card strong,.history-item strong{font-size:17px}.recipe-card small{font-size:14px}.recipe-actions{flex-wrap:wrap;gap:8px}.recipe-actions button{min-height:42px;font-size:14px}
.route-actions{gap:8px}.route-actions button,.direction-select,.cold-last-toggle{min-height:44px;font-size:14px}
button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid var(--orange);outline-offset:3px}
body.dark .trip-stats{border:1px solid var(--line)}body.dark .store-location-card,body.dark .workspace-nav,body.dark .department,body.dark .mobile-draft{background:var(--paper)}
@keyframes location-turn{to{transform:rotate(360deg)}}
@media(max-width:1000px){.planner-grid{grid-template-columns:minmax(0,1fr)}.control-panel{padding-right:0;border-right:0}}
@media(max-width:560px){main{padding-left:16px;padding-right:16px}.topbar{padding-left:16px;padding-right:16px;gap:10px}.workspace-nav{gap:3px;padding:4px;border-radius:14px}.workspace-nav button{padding:10px 2px;font-size:14px;line-height:1.3}.section-heading>div{gap:8px}.planner-grid{padding-top:22px}.route-actions{width:100%}.route-actions>*{flex:1 1 auto}.trip-stats{padding:20px}.grocery-item{padding:16px}.grocery-item .item-controls{grid-row:2}.grocery-item .check{grid-row:1 / span 2}.mobile-draft-head div{flex-wrap:wrap}.recipe-card{padding:14px}.undo-notice{bottom:max(16px,env(safe-area-inset-bottom));width:calc(100% - 32px);min-width:0}.save-status{font-size:13px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
