:root{color-scheme:light;--bg:#f4f7f2;--surface:#ffffff;--text:#17221b;--muted:#65736a;--border:#d3ded5;--accent:#287a4d;--button-text:#ffffff;--soft:#e2efe5;--soft-text:#205b38;--notice:#fff4c7;--notice-text:#664900;--error-text:#a72e2e;--error-bg:#fff0f0}
:root[data-theme="dark"]{color-scheme:dark;--bg:#17201c;--surface:#232f28;--text:#edf5ef;--muted:#b1c1b6;--border:#44554a;--accent:#70ce94;--button-text:#102518;--soft:#30473a;--soft-text:#c6efd3;--notice:#453b21;--notice-text:#ffe29a;--error-text:#ffb4b4;--error-bg:#462a2a}
button{background:var(--soft);color:var(--soft-text)}:root{font-family:system-ui,sans-serif;color:var(--text);background:var(--bg)}*{box-sizing:border-box}body{margin:0 auto;max-width:900px}header{position:sticky;top:0;background:var(--bg);backdrop-filter:blur(10px);display:flex;justify-content:space-between;align-items:center;padding:14px 20px;z-index:5;border-bottom:1px solid var(--border)}h1,h2,h3,p{margin-top:0}.eyebrow{color:var(--accent);text-transform:uppercase;font-size:.75rem;font-weight:800;letter-spacing:.08em;margin:0 0 3px}main{padding:20px}.hero{padding:18px 0 8px}.hero h2{font-size:1.8rem;margin-bottom:5px}.hero p,.muted{color:var(--muted)}button,input,select,textarea{font:inherit}button{border:0;border-radius:12px;padding:11px 15px;font-weight:750;cursor:pointer}.primary{background:var(--accent);color:var(--button-text)}.secondary{background:var(--soft);color:var(--soft-text)}.quiet{background:transparent;color:var(--accent);padding:8px}.wide{width:100%;margin-top:10px}input,select,textarea{width:100%;padding:13px;border:1px solid var(--border);border-radius:11px;background:var(--surface);margin:6px 0}textarea{min-height:72px;resize:vertical}nav{display:flex;gap:8px;overflow:auto;padding:12px 0}nav button{background:var(--soft);color:var(--soft-text);white-space:nowrap}.active{background:var(--accent)!important;color:var(--button-text)!important}#catalog{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}.card,.product-card,.order-card{background:var(--surface);border-radius:16px;padding:16px;box-shadow:0 3px 14px #17351b0d;margin:12px 0}.product-card h3{margin-bottom:4px}.mode-row,.quantity-row,.section-heading,.order-header,.action-row{display:flex;align-items:center;gap:8px}.mode-row{margin-top:14px}.mode-row button{padding:8px 10px;background:var(--soft);color:var(--soft-text)}.mode-row .selected{background:var(--accent);color:var(--button-text)}.quantity-row input{margin:0;text-align:center}.quantity-row button{padding:8px 12px;background:var(--soft);color:var(--soft-text)}.line{display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid var(--border);padding:12px 0}.line:last-child{border-bottom:0}.line-main{flex:1}.line-actions{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.line-actions button{padding:6px 10px;background:var(--soft);color:var(--soft-text)}.line-actions input{width:80px;margin:0;text-align:center}.notice{background:var(--surface);border:1px solid var(--border);padding:10px 12px;border-radius:8px}.error{color:var(--error-text);background:var(--error-bg);padding:10px;border-radius:8px}.status{display:inline-block;border-radius:999px;padding:5px 9px;background:var(--soft);color:var(--soft-text);font-size:.85rem;font-weight:700}.status.warn{background:var(--notice);color:var(--notice-text)}.section-heading{justify-content:space-between}.order-card small{color:var(--muted)}.order-card .details{white-space:pre-line;margin:8px 0}.issue-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:10px;margin-top:8px}.tabs{display:flex;gap:8px;overflow:auto;margin:10px 0}.tabs button{background:var(--soft);color:var(--soft-text)}.tabs button.active{background:var(--accent);color:var(--button-text)}.prep-grid{display:grid;grid-template-columns:2fr repeat(5,minmax(70px,1fr));gap:8px;align-items:center}.prep-grid input{margin:0}.danger{background:#c94b4b;color:var(--button-text)}.success{background:var(--accent);color:var(--button-text)}.admin-tools{border-top:1px solid var(--border);margin-top:24px;padding-top:18px}@media(max-width:650px){main{padding:14px}.prep-grid{grid-template-columns:1fr 1fr}.prep-grid b{display:none}.prep-grid .product-cell{grid-column:1/-1}.prep-grid input::placeholder{color:var(--muted)}.hero h2{font-size:1.5rem}}

input,select,textarea{color:var(--text)}input::placeholder,textarea::placeholder{color:var(--muted);opacity:1}.notice,.issue-card{color:var(--text)}.danger{color:#fff}header h1{font-size:clamp(1.15rem,4vw,1.8rem);margin:0}header>div{min-width:0}header{gap:12px}

/* Separate the unit selector from the quantity and action on narrow screens. */
.product-card{min-width:0}
.product-card .mode-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:16px 0 14px}
.product-card .mode-row button{min-height:44px;padding:10px;min-width:0}
.product-card .quantity-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:stretch}
.product-card .quantity-row input{width:100%;min-width:0;min-height:46px}
.product-card .quantity-row button{min-height:46px;padding:12px 16px;white-space:nowrap}
@media(max-width:350px){#catalog{grid-template-columns:minmax(0,1fr)}}

.catalog-editor{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:end}
.admin-field{display:flex;flex-direction:column;gap:6px;min-width:0;font-weight:600}
.admin-field>span{font-size:.9rem;color:var(--text)}
.admin-field input,.admin-field select{min-width:0;width:100%;font-size:16px;margin:0;min-height:46px}
.admin-field input[type=checkbox]{width:24px;height:24px;min-height:24px;align-self:flex-start}
.catalog-editor>.admin-field:first-child{grid-column:1/-1}
@media(max-width:520px){.catalog-editor{grid-template-columns:minmax(0,1fr)}.catalog-editor>button{width:100%;min-height:46px}}

.prep-grid{display:block}
.prep-product{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;border:1px solid var(--border);border-radius:12px;padding:14px;margin:14px 0}
.prep-product .product-cell{grid-column:1/-1;font-size:1.1rem;font-weight:700;overflow-wrap:anywhere}
@media(max-width:520px){.prep-product{grid-template-columns:repeat(2,minmax(0,1fr))}}

.product-photo{width:100%;height:160px;object-fit:cover;border-radius:12px;margin-bottom:12px}.product-photo[hidden]{display:none}.photo-tools{grid-column:1/-1;min-width:0;border-top:1px solid var(--border);padding-top:14px}.photo-tools img{width:120px;height:100px;object-fit:cover;border-radius:10px}.import-preview{max-height:400px;overflow:auto}.import-row{padding:12px 0;border-bottom:1px solid var(--border)}.import-row p{margin:6px 0;font-size:.9rem}[role=status]{white-space:pre-line}.photo-tools input[type=file]{max-width:100%}#catalogAdmin>.card>button{margin:6px 6px 6px 0}

.catalog-toolbar{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0}
.catalog-filters{display:grid;grid-template-columns:2fr 1fr 1fr;gap:12px;margin-bottom:14px}
.catalog-list{display:grid;gap:8px}
.catalog-list-row{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:12px;background:var(--surface);color:var(--text);border:1px solid var(--border)}
.catalog-thumb{display:flex;align-items:center;justify-content:center;width:48px;height:48px;flex-shrink:0;font-size:.7rem;color:var(--muted);background:var(--soft);border-radius:8px}
.catalog-thumb img{width:100%;height:100%;object-fit:cover;border-radius:8px}
.catalog-list-info{display:flex;flex-direction:column;gap:5px;flex:1;min-width:0;font-weight:400}
.catalog-list-info strong{overflow-wrap:anywhere}.catalog-list-info>span{font-size:.9rem;color:var(--muted)}
.catalog-list-row .status{flex-shrink:0;font-size:.75rem}
.catalog-pagination{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:16px 0}
button:disabled{opacity:.5;cursor:default}
.catalog-dialog{width:min(700px,calc(100% - 24px));max-height:85dvh;overflow:auto;border:1px solid var(--border);border-radius:16px;padding:18px;background:var(--bg);color:var(--text)}
.catalog-dialog::backdrop{background:#0009}
.catalog-dialog>.section-heading{position:sticky;top:-18px;padding:12px 0;background:var(--bg);z-index:2;align-items:center}
.catalog-dialog h3{margin:0}.catalog-dialog .card{box-shadow:none}.catalog-downloads{display:grid;gap:12px}
@media(max-width:600px){.catalog-filters{grid-template-columns:1fr 1fr}.catalog-filters>.admin-field:first-child{grid-column:1/-1}.catalog-toolbar button{flex:1}.catalog-pagination{flex-wrap:wrap}.catalog-pagination>span{font-size:.85rem}.catalog-list-row{gap:8px;padding:10px}.catalog-dialog{padding:12px}.catalog-dialog>.section-heading{top:-12px}}

/* Mobile visual review: keep photo controls separated and use the dialog width. */
.photo-tools{display:grid;gap:12px}
.photo-tools p{margin:0}.photo-tools>button{min-height:44px}
.catalog-dialog{width:min(700px,calc(100% - 16px));max-width:calc(100% - 16px)}
.catalog-dialog .catalog-editor{padding:12px;margin:8px 0}
@media(max-width:380px){
 .catalog-filters{grid-template-columns:minmax(0,1fr)}
 .catalog-list-row{display:grid;grid-template-columns:44px minmax(0,1fr);gap:8px 10px}
 .catalog-thumb{width:44px;height:44px;grid-row:1/3}
 .catalog-list-row .status{grid-column:2;justify-self:start}
 .tabs{gap:6px}.tabs button{flex:1;min-width:0;padding:11px 7px;font-size:.85rem}
}

@media(max-width:520px){.catalog-filters{grid-template-columns:minmax(0,1fr)}}
.category-list{display:grid;gap:8px}
.category-list-row{display:flex;flex-direction:column;align-items:flex-start;gap:4px;width:100%;text-align:left;padding:10px 12px;border:1px solid var(--border);background:var(--surface);color:var(--text);white-space:normal;overflow-wrap:anywhere}
.category-list-row:disabled{opacity:1;cursor:default}
.category-list-row small{font-weight:normal;color:var(--muted)}

[hidden]{display:none!important}
.delivery-options{border:0;padding:0;margin:10px 0 16px;display:grid;gap:10px}
.delivery-options label{display:flex;align-items:center;gap:10px;padding:12px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}
.delivery-options input[type=radio]{width:20px;height:20px;margin:0;flex-shrink:0;accent-color:var(--accent)}
.customer-form{display:grid;gap:12px;margin:16px 0}
.customer-form .action-row{flex-wrap:wrap}
.customer-form .action-row button{flex:1;min-width:130px}

.product-card .quantity-row{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;gap:8px}
.product-card .quantity-row>.primary{grid-column:1/-1;width:100%}
.customer-action-form{scroll-margin-top:100px;border:2px solid var(--accent)}

.prep-product>.danger,.prep-product>.issue-card{grid-column:1/-1}
.prep-product>.danger{justify-self:start;font-size:.875rem;padding:10px 12px}
.prep-product>.issue-card{min-width:0}
.order-card>.action-row{flex-wrap:wrap;gap:10px}
.operator-select{flex:1 1 180px;width:auto;min-width:0;max-width:100%;font-size:14px;text-overflow:ellipsis}
.prep-product .admin-field>span{font-size:.8rem}

p.error:empty,p.notice:empty{display:none}

.cart-popup-backdrop{position:fixed;inset:0;background:#0008;z-index:100;display:grid;place-items:center;padding:18px}
.cart-popup{width:min(420px,100%);max-height:80dvh;overflow:auto}.cart-popup p{white-space:pre-line}.cart-popup button{width:100%}

/* Keep import controls separated inside the catalogue dialog, including narrow phones. */
.catalog-import{display:grid;grid-template-columns:minmax(0,1fr);gap:18px;min-width:0}
.catalog-import h3,.catalog-import h4,.catalog-import p{margin:0}
.catalog-import h4{font-size:1rem}
.import-help summary{cursor:pointer;color:var(--accent);padding:8px 0}
.import-help p{padding-top:8px;line-height:1.55;color:var(--muted)}
.import-downloads,.import-upload,.import-results{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;min-width:0}
.import-upload,.import-results{border-top:1px solid var(--border);padding-top:18px}
.catalog-import button{width:100%;min-height:46px;margin:0;white-space:normal;overflow-wrap:anywhere}
.catalog-import input[type=file]{max-width:100%;min-width:0;padding:10px;font-size:.875rem}
.catalog-import input[type=file]::file-selector-button{padding:8px;margin-right:8px;border:1px solid var(--border);border-radius:8px;background:var(--soft);color:var(--soft-text);font:inherit}
.catalog-import .import-preview{min-width:0;overflow-wrap:anywhere}
.catalog-import .import-preview:empty,.catalog-import [role=status]:empty{display:none}
.catalog-import button:disabled{opacity:.5;cursor:default}
@media(min-width:600px){.import-downloads{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* Standalone web account and sign-in. */
[hidden]{display:none!important}
.account-nav{align-items:center;flex-wrap:wrap;overflow:visible;font-size:.9rem}
.account-nav a{color:var(--accent);font-weight:700;text-decoration:none;padding:8px}
.account-nav #logout{margin-left:auto}
.address-card{border:1px solid var(--border);padding:16px;border-radius:12px;margin:12px 0}
.address-card h4{margin:0 0 8px}.address-card p{overflow-wrap:anywhere}
.address-card .action-row{flex-wrap:wrap}#accountPanel details{margin-top:24px}#accountPanel form{margin-top:20px;max-width:560px}
.login-page{max-width:1100px}.login-layout{min-height:100vh;display:grid;grid-template-columns:1.1fr 1fr;gap:60px;align-items:center;padding:60px 36px}
.welcome h1{font-size:clamp(2rem,4vw,3.3rem);line-height:1.12;letter-spacing:-.035em;margin:20px 0}
.welcome>p{line-height:1.7}.welcome-fruit{font-size:64px;letter-spacing:10px;margin:30px 0}
.login-card{padding:32px}.login-card label{display:block;margin-top:18px;font-weight:600}.login-card input{font-weight:400}.login-card h2{font-size:1.7rem}
.recovery-help{font-size:.8rem;line-height:1.5;margin:22px 0 0}.login-card button{min-height:48px}button:disabled{opacity:.6;cursor:wait}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
@media(max-width:700px){.login-layout{grid-template-columns:1fr;gap:8px;padding:28px 18px;min-height:0}.welcome h1{font-size:2.2rem}.welcome-fruit,.welcome>p:last-child{display:none}.login-card{padding:22px}.account-nav{gap:0}.account-nav #logout{margin-left:0}}

.telegram-link{display:block;margin:14px 0;color:var(--accent);font-weight:700}.address-card>button{margin:4px 8px 4px 0}
