:root{--green:#174e42;--mint:#e4efe8;--ink:#233d35;--muted:#64776f;--line:#dce4de;--cream:#f5f6f0}*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--ink);font:16px/1.5 system-ui,-apple-system,Segoe UI,sans-serif}header{background:#fff;border-bottom:1px solid var(--line);padding:20px max(24px,calc((100vw - 1180px)/2));display:flex;justify-content:space-between;align-items:center;gap:16px}.brand{display:flex;align-items:center;gap:12px}.brand small{display:block;color:var(--muted);font-size:12px}.mark{background:var(--green);color:white;width:42px;height:42px;border-radius:12px;display:grid;place-items:center;font:700 25px Georgia}main{max-width:1180px;margin:auto;padding:28px 24px 70px}.intro{display:flex;align-items:center;justify-content:space-between;gap:20px}.eyebrow{font-size:11px;letter-spacing:2px;font-weight:700;color:var(--green);margin:0}h1{font:400 42px/1.15 Georgia,serif;margin:10px 0}h2{font-size:20px}p{color:var(--muted)}button,input,select,textarea{font:inherit}button{border:0;border-radius:9px;background:var(--green);color:#fff;padding:11px 16px;cursor:pointer;font-weight:600;min-height:44px}button:disabled{opacity:.45;cursor:wait}.secondary{background:white;color:var(--green);border:1px solid var(--line)}button:hover{filter:brightness(.94)}:focus-visible{outline:3px solid #b68d37;outline-offset:3px}input,select,textarea{width:100%;border:1px solid #bfcfc5;background:#fff;border-radius:7px;padding:10px;color:var(--ink);min-height:44px}input[type=checkbox]{width:20px;min-height:20px;height:20px;accent-color:var(--green)}label{display:block;font-size:13px;font-weight:600}label input,label select{margin-top:5px}.tabs{display:flex;border-bottom:1px solid var(--line);gap:20px;margin:24px 0}.tabs button{background:none;border-radius:0;color:var(--muted);padding:12px 0;border-bottom:3px solid transparent}.tabs button.active{color:var(--green);border-color:var(--green)}.tabs span{background:var(--mint);border-radius:15px;padding:2px 7px;font-size:12px}#filters{display:grid;grid-template-columns:2fr 1fr 1fr;gap:14px;background:#fff;border:1px solid var(--line);padding:18px;border-radius:12px}#mode{text-align:center;background:#fff2d8;color:#75571c;font-size:13px;padding:9px 20px}#mode.connected{background:var(--mint);color:var(--green)}#summary{font-size:13px;color:var(--muted);margin:20px 0 12px}.group{margin:24px 0}.grouphead{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;gap:12px}.grouphead h2{margin:0}.badge{font-size:12px;border-radius:20px;background:var(--mint);padding:5px 10px;white-space:nowrap}.products{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.product{background:white;border:1px solid var(--line);border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:12px}.product.chosen{border-color:#6ba68b;box-shadow:inset 3px 0 #6ba68b}.product.done{opacity:.7}.product h3{font-size:15px;line-height:1.4;margin:0;min-height:42px}.editrow{display:grid;grid-template-columns:1fr 82px;gap:8px}.product small{color:var(--muted);font-size:11px}.product textarea{height:58px;resize:vertical}.product .actions{display:flex;align-items:center;justify-content:space-between;gap:10px}.product .remove{background:none;color:#8b554c;padding:5px;font-size:12px}.doneLabel{display:flex;align-items:center;gap:8px}.empty{background:#fff;padding:42px;text-align:center;border:1px dashed var(--line);border-radius:14px}.settingsbox{background:white;border:1px solid var(--line);padding:24px;border-radius:12px;margin-bottom:16px}.settingsbox label{margin:12px 0}.users{width:100%;border-collapse:collapse}.users td,.users th{text-align:left;padding:10px;border-bottom:1px solid var(--line)}#identity{display:flex;align-items:center;gap:8px;font-size:13px}#identity select{width:140px;margin:0}#tools{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap;margin-top:16px}#tools label{display:flex;gap:8px;align-items:center}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:var(--ink);color:white;padding:12px 24px;border-radius:10px;z-index:10;max-width:90vw}footer{text-align:center;font-size:12px;color:var(--muted);padding:20px}dialog{border:1px solid var(--line);border-radius:14px;max-width:440px;width:90%;padding:26px}dialog::backdrop{background:#183e3566}dialog label{margin:14px 0}#loginError{color:#a13930}#printArea{display:none}[hidden]{display:none!important}.danger{color:#a13930}#savedLists details{border-bottom:1px solid var(--line);padding:12px 0}#savedLists pre{white-space:pre-wrap;font-family:inherit;font-size:13px}body.busy{cursor:wait}@media(max-width:900px){.products{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){header{padding:16px;align-items:flex-start}.brand strong{font-size:14px}.brand small{display:none}.mark{width:32px;height:32px;font-size:20px}#identity{flex-direction:column;align-items:flex-end}main{padding:24px 16px 60px}h1{font-size:34px}.intro{align-items:flex-start;flex-direction:column}.intro p{font-size:14px}.tabs{gap:16px}.tabs button{font-size:14px}#filters{grid-template-columns:1fr 1fr;padding:14px}.search{grid-column:1/-1}.products{grid-template-columns:1fr}.product h3{min-height:0}.product{gap:10px}.grouphead{flex-wrap:wrap}}@page{size:A4 portrait;margin:12mm}@media print{body{background:white;font:11pt Arial;color:black}header,#mode,.intro,.tabs,#filters,#tools,#summary,#list,#settings,footer,#toast,dialog{display:none!important}main{padding:0;max-width:none}#printArea{display:block}.printgroup{break-before:page}.printgroup:first-child{break-before:auto}.printgroup h2{font-size:18pt;margin:0 0 5mm}.printgroup p{color:black;font-size:10pt}.printgroup table{width:100%;border-collapse:collapse;table-layout:fixed}.printgroup th,.printgroup td{border:1px solid #555;padding:3mm 2mm;overflow-wrap:anywhere}.printgroup th{background:#eee}.printgroup th:nth-child(1){width:8%}.printgroup th:nth-child(2){width:43%}.printgroup th:nth-child(3){width:12%}.printgroup th:nth-child(4){width:14%}.printgroup th:nth-child(5){width:23%}.printgroup thead{display:table-header-group}.printgroup tr{break-inside:avoid}}

#archiveDialog{max-width:800px;max-height:90vh;overflow:auto}#archiveDialog h3{margin:0}#archiveRows{display:grid;gap:12px;margin-bottom:20px}.archiveRow{border:1px solid var(--line);border-radius:10px;padding:16px}.archiveActions{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0}#archiveError{color:#a13930}#archiveRows .doneLabel{display:flex}#archiveRows textarea{resize:vertical}

.basketRows{grid-template-columns:1fr}.basketCompact{display:grid;grid-template-columns:minmax(180px,2fr) minmax(160px,1fr) minmax(180px,1.6fr) auto;align-items:center;gap:10px;padding:12px 16px}.basketCompact h3{min-height:0}.basketCompact textarea{height:44px}.basketCompact .doneLabel{grid-column:1/3}.basketCompact small{grid-column:3/5}.basketCompact .actions{flex-wrap:wrap}.tabs{overflow-x:auto}.tabs button{white-space:nowrap;flex-shrink:0}#printDialog button{margin:5px 0}#printInfo{font-weight:600}@media(max-width:750px){.basketCompact{grid-template-columns:1fr 150px}.basketCompact>label:not(.doneLabel){grid-column:1/-1}.basketCompact .actions{grid-column:2;grid-row:3}.basketCompact .doneLabel{grid-column:1;grid-row:3}.basketCompact small{grid-column:1/-1}.basketCompact h3{font-size:14px}.basketCompact .editrow label{font-size:11px}.basketCompact input,.basketCompact select{padding:7px}.basketCompact button{font-size:12px;padding:8px}.basketCompact textarea{height:44px}}
@media(max-width:600px){.tabs{display:grid;grid-template-columns:1fr 1fr;gap:0 14px;overflow:visible}.tabs button{text-align:left;white-space:normal}}#toast{width:max-content;max-width:calc(100vw - 32px);text-align:center}
