.menu-hero{display:grid;grid-template-columns:1.4fr 1fr;background:#e9eddf;border-radius:20px;overflow:hidden;margin-bottom:20px;min-height:250px}.menu-hero>div:first-child{padding:32px}.menu-hero h2{font-size:30px;line-height:1.3;margin:15px 0}.menu-hero p{color:#6e7e67}.hero-picture{position:relative;max-height:290px}.hero-picture img{width:100%;height:100%;object-fit:cover}.hero-picture>span{position:absolute;bottom:20px;left:20px;color:white;background:#193b31d9;padding:12px 18px;border-radius:10px;font-size:18px}.hero-picture small{display:block;font-size:10px;margin-top:5px}.menu-stats{display:flex;gap:28px;padding:15px 0 24px;flex-wrap:wrap}.menu-stats b{font-size:22px;margin-right:5px}.dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#478964;margin-right:9px}.dot.amber{background:#d2933e}.menu-controls{display:flex;gap:16px;align-items:end}.menu-search{flex:1}.menu-controls input,.menu-controls select{width:100%;background:white}.category-tabs{display:flex;gap:8px;margin:24px 0 18px;overflow-x:auto;padding-bottom:5px}.category-tabs button{white-space:nowrap;background:white;color:#617163;border:1px solid #e0e5d9}.category-tabs button.selected{background:#215a43;color:white;border-color:#215a43}.category-tabs small{margin-left:8px;opacity:.7}.menu-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.dish-card{background:white;border:1px solid #e2e7dc;border-radius:15px;overflow:hidden;transition:transform .15s,box-shadow .15s}.dish-card:hover{transform:translateY(-3px);box-shadow:0 8px 25px #183e3210}.dish-cover{position:relative;height:185px;background:#e5e9dd}.dish-cover img{width:100%;height:100%;object-fit:cover}.dish-status{position:absolute;top:12px;left:12px;background:#fffffff2;padding:6px 10px;border-radius:20px;font-size:10px;color:#356b4a}.dish-status.off{color:#98642d;background:#fff1d8}.illustration-label{position:absolute;bottom:9px;right:10px;color:white;background:#0006;border-radius:4px;padding:3px 6px;font-size:9px}.featured{position:absolute;bottom:10px;left:10px;background:#fae6ad;font-size:10px;padding:5px 8px;border-radius:5px}.dish-body{padding:18px}.dish-meta{display:flex;justify-content:space-between;font-size:10px;color:#84917f}.dish-meta span{font-size:9px}.dish-body h3{font-size:18px;margin:12px 0 8px}.dish-description{color:#7c8777;line-height:1.6;font-size:12px;min-height:38px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.dish-price{font-size:21px;font-weight:600;margin-top:18px;color:#215a43}.dish-price small{font-size:11px;font-weight:400;color:#8b9587}.dish-facts{display:flex;justify-content:space-between;color:#8a9584;font-size:11px;border-bottom:1px solid #edf0e7;padding:14px 0}.dish-actions{display:flex;gap:8px;padding-top:14px}.dish-actions button{font-size:12px;padding:10px 12px}.dish-actions button:first-child{flex:1}.soldout .dish-cover img{filter:grayscale(.65);opacity:.7}.dish-form{display:grid;grid-template-columns:220px minmax(0,1fr);gap:24px;align-items:start}.photo-editor img{width:100%;height:190px;object-fit:cover;border-radius:12px;margin-bottom:16px}.photo-editor label{margin-bottom:12px}.photo-editor small{display:block;color:#819079;line-height:1.7;margin-bottom:15px}.photo-editor input{width:100%;font-size:11px}.dish-fields{display:grid;gap:14px}.field-pair{display:grid;grid-template-columns:1fr 1fr;gap:12px}.dish-fields input,.dish-fields select,.dish-fields textarea{width:100%;min-width:0}.dish-fields textarea{font:inherit;border:1px solid #d8e1d6;border-radius:8px;padding:10px;resize:vertical}.check-label{display:flex;align-items:center}.check-label input{width:auto}.order-photo{width:calc(100% + 44px);height:145px;object-fit:cover;margin:-22px -22px 16px;border-radius:8px 8px 0 0}.product{overflow:hidden}.photo-caption{display:block;font-size:9px;color:#89967e;margin-top:8px}.image-missing{display:grid;place-content:center;min-height:120px;color:#83917c;font-size:12px}#photo-error{font-size:12px;color:#aa452a}@media(min-width:1450px){.menu-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:1100px){.menu-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.menu-hero h2{font-size:25px}}@media(max-width:600px){.menu-hero{grid-template-columns:1fr}.hero-picture{display:none}.menu-hero>div:first-child{padding:24px}.menu-controls{display:grid;grid-template-columns:1fr 1fr}.menu-search{grid-column:1/-1}.menu-stats{gap:12px;font-size:11px}.menu-stats b{font-size:18px}.menu-grid{gap:12px}.dish-cover{height:130px}.dish-body{padding:12px}.dish-body h3{font-size:15px}.dish-meta{font-size:9px}.dish-meta span{display:none}.dish-price{font-size:18px}.dish-actions{flex-direction:column}.dish-form{grid-template-columns:1fr}.photo-editor img{height:140px}.dish-description{font-size:11px}.order-photo{width:calc(100% + 28px);margin:-14px -14px 12px;height:120px}}

.topping-options{border:1px solid #dfe6d7;border-radius:10px;padding:15px;width:100%;min-width:0}.topping-option{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid #edf0e9}.topping-option input{width:auto}.topping-option span{flex:1}.topping-option b{font-size:12px}#topping-form{display:grid;min-width:min(380px,70vw)}#topping-total{font-size:21px;font-weight:600}

.add-list-button{padding:5px 0;background:transparent;color:#276448;font-size:12px;text-align:left}.inline-list-editor{display:grid;gap:8px;border:1px solid #d4dfca;padding:10px;background:#f4f7ef;border-radius:8px}.inline-list-editor input{min-width:0}.inline-list-editor small{color:#a33a2a}.inline-list-editor button{font-size:11px;padding:8px}

.highlight-badges{position:absolute;left:10px;bottom:10px;display:flex;gap:5px;flex-wrap:wrap;max-width:75%}.highlight-badges span{font-size:10px;border-radius:5px;padding:5px 7px;line-height:1.3}.highlight-manual{background:#ffe7ad;color:#785724}.highlight-week{background:#175740;color:white}.highlight-new{background:#d8e9ff;color:#204e89}.highlight-badges.in-product{position:static;max-width:100%;margin-top:9px}.highlight-badges.in-product span{margin:0;font-size:10px}.weekly-revenue{font-size:11px;color:#47775b;margin:9px 0 0}.highlight-options .check-label input{width:auto}.highlight-options .check-label{display:flex;gap:8px;margin:9px 0}

/* Shared layout and controls, kept out of thermal print output. */
@media screen {
 :root{background:#f4f6f8;color:#243c35;font-size:14px}
 body{line-height:1.5}
 main{padding:28px 32px;min-width:0}
 aside{padding:24px 16px;background:#123c32}
 .brand{padding:0 12px 24px;font-size:23px}
 nav a{border-radius:8px;margin:3px 0;font-size:13px}
 header{gap:16px;margin-bottom:20px}
 h1{margin:6px 0;font-size:28px;letter-spacing:-.6px}
 h2{line-height:1.4;margin:0 0 16px}h3{margin:0 0 14px;line-height:1.4}
 .muted{color:#687b73;line-height:1.65}
 .card{border-color:#e0e7e3;border-radius:14px;padding:22px;box-shadow:0 2px 6px #163d3004;min-width:0}
 .grid,.split{align-items:start;grid-template-columns:repeat(3,minmax(0,1fr))}
 .split{grid-template-columns:minmax(0,1.5fr) minmax(300px,1fr)}
 button,.button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:40px;padding:9px 16px;line-height:1.35;font-weight:600;vertical-align:middle;transition:background .15s,box-shadow .15s}
 button:hover:not(:disabled){filter:brightness(.96)}
 button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #8bb7a4;outline-offset:2px}
 button.secondary,.button.secondary{background:#eef3f0;border:1px solid #dce6df;color:#305546}
 input:not([type=checkbox]):not([type=radio]),select,textarea{min-height:42px;border:1px solid #cfdbd4;border-radius:8px;padding:10px 12px;font:inherit;background:#fff;color:#243c35;min-width:0}
 textarea{resize:vertical;width:100%}
 input[type=checkbox],input[type=radio],#ops-form input[type=checkbox]{width:17px;height:17px;min-height:0;flex:0 0 17px;margin:0;accent-color:#215a43}
 label{gap:7px;min-width:0;font-weight:500}
 form,.toolbar{align-items:end;gap:12px}
 form>label{flex:1 1 180px}form>button{flex-shrink:0}
 .actions{align-items:center;gap:8px}.actions button,#content table button{min-height:36px;padding:8px 12px}
 #operator-bar{background:white;padding:14px 18px;gap:20px;border-color:#dfe7e2}
 #operator-bar label{min-width:0;flex:0 1 340px}#operator-bar select{width:100%}
 .notice{margin-bottom:22px;border:1px solid #f0e1be}
 .table-wrap{border:1px solid #e5ebe7;border-radius:10px}
 th{background:#f6f8f7;color:#657a70;font-weight:600;white-space:nowrap}
 td,th{padding:14px 16px}#content td{vertical-align:middle}td .actions{flex-wrap:wrap}
 tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#fafcfb}
 .card>table{display:block;overflow-x:auto} .card>table tbody,.card>table thead{width:100%}
 .dish-card{display:flex;flex-direction:column;transform:none!important}
 .dish-body{display:flex;flex-direction:column;flex:1;gap:0}
 .dish-body h3{min-height:2.8em}.dish-description{margin-top:0}
 .dish-actions{margin-top:auto}.dish-actions button{min-height:40px}
 .dish-facts,.dish-meta{gap:10px;flex-wrap:wrap}
 .menu-hero>div:first-child>button{margin:4px 6px 0 0}
 .menu-controls{align-items:end}.menu-controls>label{min-width:0}
 .product{display:block;line-height:1.5;font-weight:500}
 .cart-item,.line{align-items:center}.basket .actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
 dialog{width:min(780px,calc(100vw - 40px));max-width:none;max-height:calc(100dvh - 40px);padding:26px;border:1px solid #dbe5de;border-radius:18px;box-shadow:0 24px 90px #102a3540;overflow:auto;scrollbar-gutter:stable}
 dialog .close{float:right;min-height:36px;margin:0 0 16px 16px;font-size:12px}
 dialog>h2{padding:5px 0 0;min-height:36px;margin-bottom:16px}
 dialog>p{clear:both;margin:0 0 20px}
 dialog form{margin-bottom:0}dialog .card:last-child{margin-bottom:0}
 #ops-form,#topping-form{min-width:0;gap:16px;clear:both}
 #ops-form>button{margin-top:4px}#ops-form .check-label{line-height:1.6}
 .dish-form{clear:both;align-items:start}.check-label{align-items:center;gap:10px}
 .add-list-button{min-height:30px;justify-content:flex-start;padding:3px 0;font-weight:500}
 .reference-section{padding:20px;box-shadow:none}
 .reference-section h3{font-size:15px;margin:0 0 16px}
 .reference-add{display:grid;grid-template-columns:minmax(0,1fr) 100px;align-items:end;padding-bottom:18px!important;margin-bottom:0!important;border-bottom:1px solid #e5ebe7}
 .reference-add input{width:100%}.reference-add button{height:42px}
 .reference-row{display:grid;grid-template-columns:minmax(0,1fr) 82px 82px;gap:16px;align-items:center;min-height:60px;padding:10px 0;border-bottom:1px solid #edf1ee}
 .reference-row:last-child{border-bottom:0;padding-bottom:0}
 .reference-name{overflow-wrap:anywhere;font-weight:500}
 .reference-status{font-size:11px;text-align:center;background:#eaf5ef;color:#27734e;padding:4px 8px;border-radius:20px;white-space:nowrap}
 .reference-status.is-hidden{background:#f0f2f4;color:#78828a}
 .reference-row button{min-height:34px;font-size:12px;padding:6px 12px}
 @media(max-width:1100px){main{padding:24px}.split{grid-template-columns:minmax(0,1fr)}.grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
 @media(max-width:700px){main{padding:18px}.grid{grid-template-columns:1fr}.menu-controls{flex-wrap:wrap}.dish-form{grid-template-columns:1fr}.photo-editor img{height:160px}}
 @media(max-width:600px){aside{padding:16px}header{align-items:center}h1{font-size:23px}.card{padding:16px}.split{grid-template-columns:minmax(0,1fr)}#operator-bar{gap:10px;align-items:stretch}#operator-bar label{flex:auto}.menu-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.menu-hero>div:first-child{padding:22px}.menu-stats{gap:12px}.dish-body h3{font-size:15px}.dish-actions{gap:6px}.dish-actions button{font-size:11px;padding:8px}.dish-price{font-size:18px}.dish-facts{font-size:10px}dialog{width:calc(100vw - 20px);max-height:calc(100dvh - 20px);padding:18px;border-radius:14px}.reference-section{padding:14px}.reference-row{gap:8px;grid-template-columns:minmax(0,1fr) 68px 66px}.reference-status{font-size:10px;padding:4px}.reference-add{grid-template-columns:minmax(0,1fr) 80px}.field-pair{gap:10px}#content>.card{overflow-x:auto}.welcome{padding:20px}.toolbar>button{flex:1}.badge{white-space:nowrap}}
}
