.tools-main{max-width:1320px;margin:auto;padding:55px 5% 90px}.tools-main h1{font-size:clamp(52px,6vw,84px)}.tools-intro{max-width:720px;margin:25px 0;color:var(--muted)}.tool-notice{background:#ece4d2;border-left:3px solid var(--red);padding:16px 20px;font-size:12px;line-height:1.6;margin:25px 0}.photo-layout{display:grid;grid-template-columns:350px 1fr;gap:55px;margin:40px 0}.dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:170px;border:2px dashed #cbbda3;border-radius:8px;text-align:center;padding:20px;cursor:pointer;background:#fffbf2}.dropzone.dragging{border-color:var(--red);background:#f8d9d3}.dropzone span{color:var(--red);margin:8px}.dropzone small{font-weight:400;color:var(--muted);line-height:1.6}.dropzone input{font-size:11px;border:0;background:none;padding:5px;margin-top:15px}.photo-layout output{float:right;color:var(--red)}input[type=range]{padding:0;accent-color:var(--red);background:none}.preview-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.preview-heading h2,.tool-section h2,.chart-card h2{font-size:38px}.photo-preview{background:#fff9ef;border:1px solid var(--line);border-radius:8px;overflow:hidden}.photo-preview img{max-height:440px;object-fit:cover}.photo-preview figcaption{padding:16px;font-size:12px}.photo-layout .text-link{display:inline-block;margin-top:25px}.secondary{border:1px solid var(--line);border-radius:4px;padding:12px 16px;background:#fffbf2;cursor:pointer;font-weight:600}.tool-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin:20px 0}.tool-actions .button{font-size:13px;padding:14px}.tool-section{margin-top:55px}.media-library{display:grid;grid-template-columns:repeat(5,1fr);gap:18px;margin-top:25px}.media-tile{text-align:left;background:#fffbf2;border:1px solid var(--line);padding:0;border-radius:6px;overflow:hidden}.media-tile img{aspect-ratio:1.4}.media-tile strong,.media-tile span{display:block;padding:12px 12px 0;font-size:12px}.media-tile span{color:var(--muted);padding:6px 12px 12px;font-size:10px}.message-error{color:#a82217;font-size:12px}.message-ok{color:#316f48;font-size:12px}.header [aria-current]{color:var(--red);text-decoration:underline;text-underline-offset:7px}.filters{display:flex;flex-wrap:wrap;align-items:end;gap:15px;margin-top:35px}.filters label{flex:1;min-width:150px;margin:0}.filters .secondary{margin-bottom:1px}.data-source{display:flex;justify-content:space-between;gap:15px;flex-wrap:wrap;margin:25px 0;align-items:center}.data-source .tool-actions{margin:0}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.metric{border:1px solid var(--line);padding:22px;border-radius:8px;background:#fffbf2}.metric span,.metric small{display:block;font-size:11px;color:var(--muted);line-height:1.6}.metric strong{display:block;font-family:var(--display);font-size:43px;margin:10px 0}.metric .positive{color:#28764b}.metric .negative{color:var(--red)}.dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:25px}.chart-card{min-width:0;background:#fffbf2;border:1px solid var(--line);padding:25px;border-radius:8px}.chart-card.wide{grid-column:1/-1}.chart-card h2{font-size:32px;line-height:1.1;margin-bottom:14px}.chart-card>p{font-size:12px;color:var(--muted);margin-bottom:15px}.chart-card svg{width:100%;height:auto;display:block}.channel-row{display:grid;grid-template-columns:120px 1fr 90px;gap:15px;align-items:center;margin:20px 0;font-size:12px}.channel-bar{height:14px;background:#e9e3d5;border-radius:4px;overflow:hidden}.channel-bar i{display:block;height:100%;background:var(--red)}.channel-row.uber .channel-bar i{background:#198259}.channel-row.deliveroo .channel-bar i{background:#009e98}.channel-row>strong{text-align:right}.table-scroll{overflow:auto}table{width:100%;border-collapse:collapse;font-size:12px}th{text-align:left;font-weight:700;color:var(--muted)}th,td{padding:13px 10px;border-bottom:1px solid var(--line);white-space:nowrap}.heatmap{display:grid;grid-template-columns:70px repeat(14,minmax(23px,1fr));gap:4px;min-width:540px;font-size:10px}.heatmap .cell{padding:13px 2px;text-align:center;background:#f3eee3;border-radius:3px}.heatmap .axis{padding:9px 0;align-self:center}.heatmap .cell:hover{outline:2px solid var(--red)}.forecast-controls{display:flex;gap:18px;flex-wrap:wrap}.forecast-controls label{min-width:140px;flex:1}.forecast-controls input{padding:9px}.empty-chart{padding:50px 10px;text-align:center;color:var(--muted);font-size:13px}.report-insights{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:20px 0}.report-insights article{border-left:3px solid var(--red);padding:0 15px;font-size:12px;line-height:1.6}.report-insights strong{display:block;margin-bottom:8px}.import-box{margin-top:25px}.import-box summary{font-size:15px}.import-box p{font-size:12px;margin:15px 0}.file-button{position:relative;background:var(--red);color:var(--cream);border-radius:4px;padding:12px 16px;font-size:12px;display:inline-flex;margin:0;cursor:pointer}.file-button input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer}.forecast-label{background:#e9dec4;padding:4px 8px;border-radius:4px;font-size:10px}.comparison-legend{font-size:11px;margin-bottom:15px;display:flex;gap:25px}.comparison-legend span:before{content:'';display:inline-block;width:12px;height:3px;background:var(--red);vertical-align:middle;margin-right:8px}.comparison-legend span+span:before{background:#889383}.coverage{font-size:12px;background:#f2ead8;border-radius:5px;padding:14px;margin-top:15px}.tools-footer{margin-top:40px;font-size:11px;color:var(--muted)}@media(max-width:900px){.photo-layout{grid-template-columns:280px 1fr;gap:25px}.media-library{grid-template-columns:repeat(3,1fr)}.metrics{grid-template-columns:1fr 1fr}.report-insights{grid-template-columns:1fr}.dashboard-grid{grid-template-columns:1fr}.chart-card.wide{grid-column:auto}}@media(max-width:700px){.tools-main{padding:35px 5% 65px}.photo-layout{grid-template-columns:1fr;gap:25px}.media-library{grid-template-columns:1fr 1fr}.tools-main .header nav a{display:block}.header nav a:nth-child(2),.header nav a:nth-child(3){display:block}.tools-main h1{font-size:60px}.metric{padding:16px}.metric strong{font-size:34px}.filters{gap:10px}.filters label{min-width:130px}.chart-card{padding:18px}.channel-row{grid-template-columns:100px 1fr 80px;gap:10px}.tool-actions .secondary,.tool-actions .button{font-size:11px}.header nav{gap:10px;font-size:10px}.header .button.small{font-size:10px;padding:10px}.header{gap:10px}}

[data-recipe] input{min-width:90px;padding:8px;margin:0}[data-recipe] select{min-width:90px;padding:8px;margin:0}[data-recipe] td:first-child input{min-width:160px}[data-share]{max-width:100px;margin:0;padding:8px}@media print{.header,.demo-bar,.filters,.data-source,.tool-actions,.import-box{display:none!important}body{background:#fff}.tools-main{max-width:none;padding:0}.chart-card,.metric{break-inside:avoid;background:#fff}.chart-card{border:1px solid #ccc}.tools-main h1{font-size:40px}.dashboard-grid{display:block}.chart-card{margin:20px 0}.metrics{grid-template-columns:repeat(4,1fr)}}

#csv-mapper{width:min(680px,95vw)}#mapping-title{font-size:32px}.mapping-form{padding:25px 30px}#mapping-fields{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}.mapping-form label{min-width:0}.mapping-form select{max-width:100%}@media(max-width:700px){#mapping-fields{grid-template-columns:1fr}.mapping-form{padding:20px}}

.admin-stats{grid-template-columns:repeat(2,1fr)}.kitchen-time{font-size:18px!important;margin:18px 0!important}.admin-order ul{font-size:18px;line-height:1.8}.admin-order li{margin-bottom:14px}.admin-order small{font-size:13px}.kitchen-settings{margin-top:25px}.receipt-layout{display:grid;grid-template-columns:1fr 390px;gap:40px;margin-top:30px}.receipt-paper{background:#fff;color:#111;padding:30px;font-family:Arial,sans-serif;font-size:12px;box-shadow:0 6px 30px #0001;overflow-wrap:anywhere}.receipt-paper h2{font-family:Arial,sans-serif;font-size:26px;line-height:1.2;letter-spacing:0;margin:16px 0}.receipt-paper p{margin:12px 0;line-height:1.5}.receipt-specimen{text-align:center;font-weight:bold;font-size:10px}.receipt-line,.receipt-total{display:flex;justify-content:space-between;gap:15px;margin:14px 0}.receipt-line small{display:block;font-size:10px;margin-top:5px}.receipt-total.grand{font-size:16px}.receipt-paper hr{border:0;border-top:1px dashed #aaa;margin:18px 0}@media(max-width:700px){.receipt-layout{grid-template-columns:1fr}.header nav{flex-wrap:wrap}.admin-order{padding:20px}.admin-order h3{font-size:25px}}@media print{body:has(.receipt-paper) .header,body:has(.receipt-paper) .demo-bar,body:has(.receipt-paper) .tools-main>h1,body:has(.receipt-paper) .tools-main>.eyebrow,body:has(.receipt-paper) .tools-main>label,body:has(.receipt-paper) .receipt-layout>section{display:none!important}body:has(.receipt-paper) .receipt-layout{display:block;margin:0}body:has(.receipt-paper) .receipt-paper{width:76mm;padding:3mm;box-shadow:none}body:has(.receipt-paper) .tools-main{padding:0}}

.stock-section{margin:24px 0}.stock-section h2:not(:first-child){margin-top:42px}.stock-ref{display:block;font-size:12px;margin-top:5px;color:#756c5c}.stock-section details{margin:22px 0;padding:16px;border:1px solid #ddd5c6}.stock-section summary{cursor:pointer;font-weight:700}.stock-rule{padding:18px;margin:18px 0;border:1px solid #ddd5c6}.stock-rule p{grid-column:1/-1}.stock-section input[type=file]{display:block;max-width:220px;margin-top:8px}.stock-section .forecast-controls{flex-wrap:wrap}.stock-section td{vertical-align:top}.stock-section .tool-actions{flex-wrap:wrap}


.stock-section td:last-child .secondary{margin-bottom:8px}.stock-section td:last-child .text-link{display:block}.stock-section{scroll-margin-top:145px}

/* Restaurant tools must remain readable at normal viewing distance. */
@media screen{
body:has(.tools-main,.admin-main){font-size:20px;line-height:1.6;--muted:#514b40}
.tools-main,.admin-main{max-width:1900px;width:94%;margin-inline:auto;padding:45px 0 80px}
.tools-main p,.tools-main label,.tools-main summary,.admin-main label{font-size:18px;line-height:1.6}
.tools-main .tools-intro{font-size:22px;max-width:1050px;color:#514b40}
.tools-main .eyebrow,.admin-main .eyebrow{font-size:16px}
.tools-main .subtle,.tools-main .coverage,.tools-main .tool-notice,.tools-main .tools-footer,.tools-main .stock-ref,.tools-main .forecast-label,.tools-main .message-error,.tools-main .message-ok{font-size:17px;color:#514b40;line-height:1.6}
.tools-main .message-error{color:#a82217}.tools-main .message-ok{color:#316f48}
.tools-main table{font-size:18px;line-height:1.5;width:100%}
.tools-main th,.tools-main td{font-size:18px;padding:18px 14px}
.tools-main input,.tools-main select,.tools-main textarea,.admin-main input,.admin-main select{font-size:18px;min-height:50px;padding:12px;min-width:0;max-width:100%}
.tools-main button,.tools-main .button,.tools-main .secondary,.tools-main .text-link,.tools-main .file-button,.admin-main button{font-size:18px;line-height:1.4;min-height:48px;white-space:normal}
.tools-main .status-pill{font-size:16px;line-height:1.5;padding:10px 14px}
.tools-main .metric span,.tools-main .metric small{font-size:17px;color:#514b40;line-height:1.5}
.tools-main .metric strong{font-size:48px;line-height:1.15;overflow-wrap:anywhere}
.tools-main .report-insights article,.tools-main .channel-row,.tools-main .comparison-legend{font-size:18px;line-height:1.6}
.tools-main .chart-card>p,.tools-main .import-box p{font-size:18px;color:#514b40}
.tools-main .chart-card h2,.tools-main .tool-section h2{font-size:40px}
.tools-main .chart-card{padding:30px}
.tools-main .heatmap{font-size:17px;min-width:900px;grid-template-columns:80px repeat(14,minmax(48px,1fr))}
.tools-main .filters label{min-width:210px}.tools-main .forecast-controls label{min-width:210px}
body:has(.tools-main,.admin-main) .header nav{font-size:18px;gap:24px;flex-wrap:wrap}
body:has(.tools-main,.admin-main) .header .button.small{font-size:18px;padding:14px 18px}
body:has(.tools-main,.admin-main) .demo-bar{font-size:15px;line-height:1.5;padding:10px 4%;gap:20px}
.admin-main .admin-stat span,.admin-main .admin-order p,.admin-main .admin-order small,.admin-main .admin-notice,.admin-main .admin-state{font-size:17px;line-height:1.6}
.admin-main .admin-order ul{font-size:20px}
.tools-main .receipt-paper{font-size:16px}.tools-main .receipt-paper small,.tools-main .receipt-specimen{font-size:14px}.tools-main .receipt-total.grand{font-size:20px}
}
@media screen and (max-width:1000px){
.tools-main .metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
body:has(.tools-main,.admin-main) .header{flex-wrap:wrap;gap:14px}
body:has(.tools-main,.admin-main) .header nav{gap:14px;font-size:17px;flex:1;justify-content:flex-end}
}
@media screen and (max-width:700px){
.tools-main,.admin-main{width:92%;padding:30px 0 65px}
.tools-main .tools-intro{font-size:20px}.tools-main .chart-card{padding:20px}
.tools-main h1{font-size:56px}.tools-main .chart-card h2,.tools-main .tool-section h2{font-size:34px}
.tools-main .metrics{grid-template-columns:1fr}.tools-main .metric strong{font-size:44px}
.tools-main .filters label,.tools-main .forecast-controls label{min-width:0;flex-basis:100%}
.tools-main .channel-row{grid-template-columns:110px minmax(0,1fr) 75px;gap:10px;font-size:17px}
body:has(.tools-main,.admin-main) .header nav a{display:block!important}
body:has(.tools-main,.admin-main) .header .button.small{font-size:16px}
body:has(.tools-main,.admin-main) .demo-bar{font-size:14px;flex-wrap:wrap}
body:has(.tools-main,.admin-main) .demo-bar a{max-width:none}
.tools-main .receipt-layout{grid-template-columns:minmax(0,1fr)}
}

