*{box-sizing:border-box}body{margin:0;background:#f6f4ed;color:#253c32;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;-webkit-font-smoothing:antialiased}button,input,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer;border:0}button:disabled{cursor:default;opacity:.55}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #b5813e;outline-offset:4px}[hidden]{display:none!important}main{max-width:780px;margin:auto;padding:30px 36px 24px}header{display:flex;align-items:center;justify-content:space-between;padding-bottom:34px;border-bottom:1px solid #dddcd1}.brand{display:flex;gap:12px;align-items:center;color:inherit;text-decoration:none;font-size:22px;font-weight:700;letter-spacing:-.7px}.brand small{display:block;font-size:10px;font-weight:400;letter-spacing:.5px;margin-top:3px;color:#6c766b}.house{font-size:37px;line-height:1}.profile{border:1px solid #d6d8c9;border-radius:30px;padding:10px 15px;background:transparent;font-size:13px;color:#354f3d}.profile:after{content:' ⇄';color:#7a8676}.intro{padding:38px 0 24px;position:relative}.eyebrow{font-size:10px;font-weight:700;letter-spacing:2px;color:#75816c}h1{font-size:56px;line-height:1.04;letter-spacing:-2.6px;font-weight:500;margin:17px 0 16px}p{line-height:1.6}.intro p,.welcome>p{color:#717969;font-size:14px;max-width:390px}.turn-card{background:#dfe8c7;border:1px solid #d4dfb7;border-radius:22px;padding:25px 28px 18px}.card-top{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:10px;letter-spacing:1.8px;font-weight:700}.badge{font-size:10px;letter-spacing:0;background:#f4f6e8;border:1px solid #ced9b4;padding:7px 10px;border-radius:20px;color:#566549}.badge.active{background:#2f523b;border-color:#2f523b;color:#fff}.turn-content{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:24px 0}.caption{font-size:13px;color:#65715a;margin:0 0 6px}h2{font-size:49px;line-height:1.1;font-weight:500;letter-spacing:-1.5px;margin:0}.turn-content p:last-child{font-size:13px;max-width:310px;color:#56664b;margin:13px 0 0}.dish-icon{width:110px;flex-shrink:0;transform:rotate(5deg);color:#688058}.dish-icon svg{width:100%;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.primary,.secondary{width:100%;display:flex;align-items:center;justify-content:space-between;border-radius:11px;padding:17px 20px;font-size:14px;font-weight:500}.primary{background:#2e503c;color:#fff}.primary:disabled{background:#b8c5a3;color:#415239;opacity:1}.primary span{font-size:22px}.card-foot{font-size:11px;color:#65715a;text-align:center;margin:12px 0 0}.section-title{display:flex;justify-content:space-between;align-items:center;gap:8px}h3{font-size:16px;font-weight:600;letter-spacing:-.3px;margin:0}.section-title>span{font-size:10px;color:#859079}.queue-section{margin:28px 0}.queue{list-style:none;margin:17px 0 0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.queue li{border:1px solid #dcded1;border-radius:12px;padding:12px 9px;background:#f9f8f2;display:flex;gap:8px;align-items:center;font-size:12px}.queue .initial{display:grid;place-items:center;flex-shrink:0;width:25px;height:25px;border-radius:50%;background:#e6e5d9;font-size:11px}.queue li:first-child{border-color:#9ba98b;background:#e9eddf}.queue li:first-child .initial{background:#354f3c;color:white}.queue small{display:block;font-size:9px;color:#89917f;margin-top:3px}.notification-card{display:flex;gap:16px;padding:23px 0;border-top:1px solid #dddcd1;border-bottom:1px solid #dddcd1}.notification-card h3{font-size:14px}.notification-card p{font-size:12px;color:#78806e;margin:8px 0 12px}.bell{font-size:30px;line-height:1;color:#71805e}.button-row{display:flex;align-items:center;gap:15px;flex-wrap:wrap}.small-button{border:1px solid #c5cbb7;background:#edf0e2;color:#38503b;padding:10px 15px;border-radius:8px;font-size:12px}.text-button{font-size:12px;padding:10px 0;color:#69795c;background:transparent;text-decoration:underline;text-underline-offset:3px}.parent-panel{margin:25px 0;padding:22px;border:1px dashed #c2c9b3;border-radius:14px}.parent-panel p{font-size:12px;color:#7b806e;margin:10px 0 15px}.secondary{background:#ece6d6;color:#4e5340;border:1px solid #d9d2be;padding:14px}.secondary span{font-size:20px}.tasks-section{margin:28px 0}.empty{padding:20px;background:#efeee5;border-radius:12px;text-align:center;color:#8b8e7d;font-size:12px;line-height:1.7}.task{display:flex;gap:10px;align-items:center;padding:14px 0;border-bottom:1px solid #e0dfd4}.task button{width:24px;height:24px;flex-shrink:0;border:1px solid #b6c2a5;border-radius:7px;background:#f8f8f0;color:#2f523b}.task.done .task-title{text-decoration:line-through;color:#8d9587}.task small{display:block;color:#87917c;font-size:11px;margin-top:4px}.task-title{font-size:13px}.history-section{border-top:1px solid #dddcd1;padding-top:20px}summary{cursor:pointer;font-size:13px;display:flex;justify-content:space-between;list-style:none}summary::-webkit-details-marker{display:none}#history{padding:0;list-style:none;margin:15px 0}#history li{display:flex;justify-content:space-between;gap:12px;padding:10px 0;font-size:11px;color:#75806c;border-bottom:1px solid #e8e6dc}#history time{flex-shrink:0;color:#959b8b}footer{display:flex;justify-content:space-between;gap:12px;padding-top:29px;margin-top:15px;font-size:9px;line-height:1.6;color:#929985}.welcome{padding:50px 0}.welcome h1{font-size:65px}.people{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:30px 0}.person{background:#e6ecd8;border:1px solid #d0dabf;color:#324e39;padding:26px 15px;text-align:left;border-radius:14px;display:flex;align-items:center;gap:14px;font-size:20px}.person .initial{display:grid;place-items:center;width:39px;height:39px;border-radius:50%;background:#f6f5ec;font-size:16px}.subtle{font-size:11px!important;color:#89917c!important}#message{position:sticky;top:12px;z-index:5;margin:14px 0;padding:13px 17px;background:#354f3c;color:white;border-radius:10px;font-size:13px;box-shadow:0 3px 15px #0001}#message.error{background:#875444}dialog{border:1px solid #d5dcc9;border-radius:20px;padding:30px;background:#f6f4ed;color:#253c32;max-width:390px;width:calc(100% - 32px)}dialog::backdrop{background:#21342b88;backdrop-filter:blur(4px)}dialog h2{font-size:30px;margin:15px 0}dialog p{font-size:13px;color:#77806f}label{display:block;font-size:12px;margin:16px 0 8px}input,select{display:block;width:100%;margin-top:8px;background:#fffef8;border:1px solid #c9cfbc;border-radius:8px;padding:12px;color:#253c32}#pinError{color:#9b4a38}#taskForm{padding:5px 15px 15px;background:#edeedf;border-radius:12px}.install-hint{background:#ece8da;border-radius:8px;padding:10px}@media(min-width:800px){.intro h1 br{display:none}.intro{padding-top:45px}.intro h1{font-size:62px}.turn-card{padding:27px 32px 20px}.turn-content{padding:30px 0}.dish-icon{width:120px}.queue li{padding:15px 12px}}@media(max-width:520px){main{padding:22px 20px 24px}header{padding-bottom:23px}.brand{font-size:20px}.intro{padding-top:30px}h1{font-size:49px}.turn-card{padding:21px 20px 17px}.card-top{letter-spacing:1.2px}.turn-content h2{font-size:42px}.dish-icon{width:82px}.queue{grid-template-columns:1fr 1fr;gap:8px}.queue li{padding:11px 12px}.section-title>span{font-size:9px}.parent-panel{padding:18px}footer{flex-direction:column;gap:5px}.welcome h1{font-size:55px}.person{font-size:17px;padding:20px 12px}.profile{font-size:12px;padding:9px 12px}}

.hero-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:5px 0 0}.hero-top h1{font-size:48px;flex-shrink:0;letter-spacing:-2px;line-height:1.07}.hero-art{width:48%;max-width:330px;mix-blend-mode:multiply;object-fit:contain}.intro>p{margin:0 0 8px}.intro .eyebrow{font-size:9px;letter-spacing:1.5px}.share-heading{display:flex;justify-content:space-between;align-items:center;font-size:10px;color:#879274;padding:0 3px 12px}.share-heading>span:first-child{font-size:14px;font-weight:700;color:#4b6245}#shareArea{padding:12px 0 2px}.share-row{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:-12px 0 26px}.share-row>span{font-size:10px;line-height:1.5;font-style:italic;color:#94967f;max-width:215px}.whatsapp-button{display:flex;align-items:center;gap:6px;white-space:nowrap;background:#e7eddd;border:1px solid #cbd8bc;border-radius:20px;color:#45673d;font-size:11px;font-weight:600;padding:10px 14px}.whatsapp-button:hover{background:#dce9cb}.queue li[data-person="Вероника"] .initial{background:#c6d39d;color:#365039}.queue li[data-person="Марина"] .initial{background:#deb4a0;color:#714e3d}.queue li[data-person="Паша"] .initial{background:#e6d191;color:#706035}.queue li[data-person="Лиза"] .initial{background:#d5c6df;color:#655170}.primary:not(:disabled):hover{background:#24432f}.person:hover{transform:translateY(-2px);background:#dae5c6}.person{transition:transform .2s,background .2s}.people .person:nth-child(2){background:#efe0d5}.people .person:nth-child(3){background:#eee7c8}.people .person:nth-child(4){background:#e8dfee}.turn-card{box-shadow:0 5px 0 #d3dcbd55}.badge.active:before{content:'● ';font-size:8px}.confetti{position:fixed;inset:0;pointer-events:none;z-index:50;overflow:hidden}.confetti i{position:absolute;left:var(--x);top:-20px;width:8px;height:13px;border-radius:3px;background:var(--color);animation:confetti-fall 1.7s var(--delay) ease-in forwards}@keyframes confetti-fall{to{transform:translate(20px,105vh) rotate(540deg);opacity:.1}}@media(max-width:520px){.hero-top h1{font-size:34px;letter-spacing:-1.2px}.hero-art{width:46%;max-width:180px;min-width:0}.intro .eyebrow{font-size:8px;letter-spacing:1.1px}.intro{padding-top:25px}.hero-top{margin:7px 0}.intro>p{font-size:12px;margin-bottom:6px}.share-row>span{font-size:9px;max-width:165px}.share-heading{font-size:8px}.share-heading>span:first-child{font-size:12px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

#shareDialog{max-width:480px;max-height:90vh;overflow:auto}#sharePreview{display:block;max-width:100%;height:auto;border-radius:12px;margin:15px 0;border:1px solid #dadfce}#shareDialog h2{font-size:28px}

.hero-art.dish-parade{position:relative;aspect-ratio:3/1;mix-blend-mode:normal;overflow:hidden;isolation:isolate}.hero-source{position:absolute;width:100%;height:100%;opacity:0;pointer-events:none}.dish-layer{position:absolute;inset:0;pointer-events:none}.dish-layer img{display:block;width:100%;height:100%;object-fit:contain}.lavender{clip-path:polygon(0 0,18% 0,18% 100%,0 100%);--travel:67%;transform-origin:9% 72%;animation:dish-walk 18s 9s infinite;z-index:4}.bowl{clip-path:polygon(18% 0,36% 0,36% 100%,18% 100%);--travel:50%;transform-origin:27% 72%;animation:dish-walk 18s 6s infinite;z-index:3}.mug{clip-path:polygon(35.6% 0,53.5% 0,53.5% 100%,35.6% 100%);--travel:32%;transform-origin:44% 72%;animation:dish-walk 18s 3s infinite;z-index:2}.plate{clip-path:polygon(53.5% 0,74.7% 0,74.7% 69%,71.4% 69%,71.4% 100%,53.5% 100%);--travel:14%;transform-origin:63% 72%;animation:dish-walk 18s infinite;z-index:1}.machine{clip-path:polygon(77.2% 0,100% 0,100% 100%,71.4% 100%,71.4% 70%,77.2% 70%);z-index:0}.animation-toggle{display:block;margin:-3px 0 9px auto;font-size:9px;color:#8a947f;background:transparent;padding:4px 0}.dish-parade.paused .dish-layer{animation-play-state:paused}@keyframes dish-walk{0%,5%{transform:translate(0,0) scale(1);opacity:1}8%{transform:translate(2%,-3%) rotate(2deg)}11%{transform:translate(4%,0) rotate(-2deg)}14%{transform:translate(6%,-3%) rotate(2deg)}17%{transform:translate(8%,0) rotate(-2deg)}23%{transform:translateX(var(--travel)) scale(.78);opacity:1}28%{transform:translateX(var(--travel)) scale(.45);opacity:0}83%{transform:translateX(var(--travel)) scale(.45);opacity:0}85%,100%{transform:translate(0,0) scale(1);opacity:1}}@media(max-width:520px){.hero-top{flex-direction:column;align-items:stretch;gap:0}.hero-top h1{font-size:40px;margin:14px 0 4px}.hero-art.dish-parade{width:100%;max-width:none;margin:4px 0 0}.animation-toggle{margin-top:0}.intro>p{margin-top:0}}@media(prefers-reduced-motion:reduce){.dish-layer{animation:none!important}.animation-toggle{display:none}}

.hero-art.dish-parade{aspect-ratio:760/290}.dish-parade canvas{display:block;width:100%;height:100%}.dish-parade .hero-source{display:none}.animation-toggle{min-height:24px;min-width:54px;font-size:10px}.intro>p{min-height:20px}

.intro .hero-top h1 br{display:block}.intro .hero-top h1{flex:0 0 47%;font-size:44px;white-space:normal}.hero-art.dish-parade{width:50%;max-width:none;flex:1 1 50%}.hero-top{gap:14px}.intro>p{margin-top:0}@media(max-width:520px){.intro .hero-top h1{font-size:40px;flex:auto}.hero-art.dish-parade{width:100%;flex:auto}}

/* Compact family dashboard */
main{max-width:740px;padding:20px 24px 18px}header{padding-bottom:18px}.brand{font-size:20px}.house{font-size:30px}.brand small{font-size:9px}.profile{padding:8px 12px}.intro{padding:20px 0 10px}.intro .hero-top h1{font-size:36px;margin:12px 0 8px}.hero-top{gap:10px;margin:1px 0}.animation-toggle{margin:-2px 0 1px auto;min-height:20px}.intro>p{font-size:12px;margin:0 0 3px;min-height:18px}.intro .eyebrow{font-size:8px;letter-spacing:1.2px}#shareArea{padding:7px 0 0}.share-heading{padding-bottom:8px;font-size:9px}.share-heading>span:first-child{font-size:12px}.turn-card{padding:18px 20px 14px;border-radius:17px}.turn-content{padding:16px 0}.turn-content h2{font-size:41px}.caption{font-size:12px;margin-bottom:5px}.turn-content p:last-child{font-size:12px;margin-top:9px;line-height:1.5}.dish-icon{width:82px}.primary{padding:12px 16px;min-height:46px;font-size:13px}.card-foot{font-size:10px;margin-top:9px;line-height:1.45}.card-top{font-size:9px;letter-spacing:1.3px}.badge{font-size:9px;padding:6px 9px}.queue-section{margin:20px 0}.queue{margin-top:12px;gap:7px}.queue li{padding:11px 9px}.section-title h3{font-size:14px}.share-row{margin:-6px 0 17px}.notification-card{padding:17px 0;gap:12px}.notification-card p{margin:6px 0 9px;font-size:11px}.notification-card h3{font-size:13px}.bell{font-size:25px}.small-button{padding:9px 12px}.parent-panel{margin:19px 0;padding:16px;border-radius:12px}.parent-panel p{font-size:11px;margin:8px 0 11px}.parent-panel h3{font-size:14px}.secondary{padding:11px 14px;font-size:12px;min-height:42px}.tasks-section{margin:20px 0}.empty{font-size:11px;padding:14px;margin-bottom:0}.history-section{padding-top:15px}footer{padding-top:19px;margin-top:9px}.text-button{font-size:11px}.whatsapp-button{padding:9px 12px}.welcome{padding:35px 0}
@media(max-width:520px){main{padding:16px 16px 20px}header{padding-bottom:15px}.intro{padding-top:17px;padding-bottom:9px}.hero-top{flex-direction:row;align-items:center;gap:5px}.intro .hero-top h1{font-size:29px;letter-spacing:-1px;flex:0 0 54%;line-height:1.09;margin:11px 0 6px}.hero-art.dish-parade{width:46%;flex:1 1 46%;margin:0}.intro .eyebrow{font-size:7px;letter-spacing:1px}.intro>p{font-size:11px}.animation-toggle{font-size:8px;min-height:18px;margin:0 0 2px auto}.turn-card{padding:16px 17px 12px}.turn-content h2{font-size:38px}.turn-content{padding:16px 0 17px}.dish-icon{width:70px}.turn-content p:last-child{font-size:11px;max-width:215px}.card-foot{font-size:9px}.queue{grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}.queue li{display:flex;flex-direction:column;text-align:center;align-items:center;gap:6px;padding:9px 3px;font-size:10px;border-radius:10px}.queue .initial{width:22px;height:22px;font-size:10px}.queue small{font-size:8px;margin-top:3px}.section-title>span{font-size:8px}.queue-section{margin:17px 0}.share-row{margin-bottom:15px}.share-row>span{font-size:8px;max-width:165px}.whatsapp-button{font-size:10px;padding:9px 11px}.notification-card{padding:15px 0}.parent-panel{padding:14px}.profile{font-size:11px}.brand{font-size:18px}.brand small{font-size:8px}.house{font-size:28px}.button-row{gap:12px}}

.install-banner{display:flex;align-items:flex-start;gap:12px;position:relative;margin:15px 0 0;padding:14px 35px 14px 14px;border:1px solid #d4dbc6;border-radius:12px;background:#eaf0de}.install-symbol{font-size:25px;color:#527047}.install-banner strong{font-size:12px;font-weight:600}.install-banner p{margin:4px 0 8px;font-size:11px;color:#718065;line-height:1.45}.install-banner .small-button{padding:8px 12px;background:#f7f8ef}.install-dismiss{position:absolute;right:4px;top:3px;width:30px;height:30px;background:transparent;color:#7c8b71;font-size:23px}#installDialog h2{font-size:28px}#installDialog p{font-size:13px;line-height:1.65}

.profile-count,.task-count{display:inline-grid;place-items:center;background:#b55c46;color:#fff;border-radius:20px;min-width:18px;height:18px;font-size:10px;font-weight:600;padding:0 4px;margin-left:6px}.task-count{vertical-align:middle}.task-hint{font-size:11px;color:#8b6445;margin:10px 0}.task.mine{border-left:3px solid #b8c88e;padding-left:10px;background:#e9eedc66;border-radius:8px}.task.mine small{color:#75844e}

.parent-panel .secondary + .secondary{margin-top:8px}

.queue-controls{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 4px}.queue-controls button{flex:1 1 180px}#swapDialog h2{font-size:28px;line-height:1.15}
/* Family shopping */
.app-tabs{display:flex;gap:5px;padding:5px;background:#eaece1;border-radius:14px;margin:17px 0 0}.app-tabs button{flex:1;padding:12px;border-radius:10px;background:transparent;color:#65715a;font-weight:600}.app-tabs [aria-selected=true]{background:#fffdf7;color:#2e503c;box-shadow:0 2px 6px #253c3210}.shop-heading{display:flex;align-items:center;justify-content:space-between;margin-top:27px}.shop-heading h1{font-size:42px;margin:12px 0;letter-spacing:-1.6px}.basket-art{font-size:64px;transform:rotate(-10deg);padding:15px}.shop-intro{font-size:12px;color:#76816e;margin:0 0 24px}.shop-listbar{display:flex;gap:8px;align-items:center;margin-bottom:17px}.shop-listbar select{flex:1;min-width:0;margin:0}.shop-compose{padding:18px;border-radius:16px;background:#e4ebd5;border:1px solid #d1ddbd}.shop-compose label,#catalogForm label{font-size:12px;font-weight:600}.shop-input-row{display:flex;gap:8px;align-items:center}.shop-input-row input{flex:1;min-width:0;margin:8px 0}.shop-input-row button{flex-shrink:0;min-height:44px;background:#2e503c;color:white}.shop-compose .button-row{margin-top:8px;flex-wrap:wrap}.shop-compose textarea{width:100%;font:inherit;resize:vertical;border:1px solid #c5cdb7;border-radius:10px;padding:12px;margin-top:9px;background:#fffdf8;color:inherit}.shop-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:25px 0 10px}.shop-summary h3{font-size:15px}.shop-summary .subtle{font-size:10px}.shopping-item{display:flex;align-items:center;gap:12px;padding:14px 0;border-bottom:1px solid #e3e4d9}.shopping-check{width:29px;height:29px;border:1.5px solid #b2bea5;background:#fffdf6;border-radius:9px;color:#fff;flex-shrink:0}.purchased .shopping-check{background:#73906a;border-color:#73906a}.shopping-item-body{padding:3px 0;text-align:start;flex:1;min-width:0;background:transparent;color:inherit}.shopping-item-body strong{display:block;font-size:14px;line-height:1.4;overflow-wrap:anywhere}.shopping-item-body span,.shopping-item-body small{display:block;margin-top:4px;font-size:11px;line-height:1.4;color:#75816c;overflow-wrap:anywhere}.shopping-author{font-size:10px!important}.shopping-chevron{color:#98a28e}.purchased .shopping-item-body strong{text-decoration:line-through;color:#87917e}#purchasedSection{margin-top:22px}#purchasedSection summary{cursor:pointer;font-size:13px;color:#75816c}#catalogSection{margin-top:19px;padding:16px;border:1px solid #d8ddcc;border-radius:14px}.catalog-result{display:flex;gap:12px;border-top:1px solid #e2e4d8;padding:10px 0;align-items:center}.shop-source{font-size:10px;color:#829076;line-height:1.5}.shop-source a,.product-photo a{color:#57774b}.recent-products{display:flex;flex-wrap:wrap;gap:7px}.recent-chip{font-size:11px;max-width:100%;overflow-wrap:anywhere;background:#efeee4;border:1px solid #dddccc;border-radius:20px;color:#58694d;padding:8px 11px}.product-photo{display:flex;flex-direction:column;align-items:center;gap:8px;margin:18px 0}.product-photo img{max-height:150px;max-width:100%;object-fit:contain;border-radius:12px}.photo-placeholder{font-size:45px}.product-photo a{font-size:10px}#itemDialog,#listDialog{max-height:88dvh;overflow-y:auto;width:min(94vw,490px)}#itemDialog h2,#listDialog h2{font-size:26px;letter-spacing:-.7px}#priceSection{margin:20px 0;padding-top:17px;border-top:1px solid #dddccc}#priceSection h3{margin-bottom:12px}.price-row{display:flex;gap:15px;justify-content:space-between;padding:10px 0;border-top:1px solid #e2e4d8}.price-row strong{font-size:11px}.price-row small{display:block;font-size:10px;color:#7d8973;margin-top:4px}.price-row b{font-size:14px;white-space:nowrap}.price-date{color:#92764e!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}#itemForm>.button-row{position:sticky;bottom:-1px;background:#f6f4ed;padding:12px 0;flex-wrap:wrap}#shoppingPanel input{font-size:16px}#message button{margin-left:12px}#shoppingPanel .empty{margin-top:12px}#bulkForm{margin-top:16px}@media(max-width:520px){.shop-heading h1{font-size:34px}.basket-art{font-size:50px;padding:6px}.shop-compose{padding:14px}.shop-listbar{gap:7px}.shop-listbar .small-button{font-size:11px;padding:10px}.app-tabs button{font-size:13px;padding:10px}.shopping-item{gap:10px}.shop-heading{margin-top:22px}.shop-intro{margin-bottom:20px}}
/* Shopping trips and quick suggestions */
.shopping-check{width:72px;min-height:44px;height:auto;padding:10px 6px;color:#3c6146;font-size:11px;font-weight:600;background:#e9eedf}.purchased .shopping-check{color:#fff;font-size:19px}.trip-progress{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px;margin:17px 0;background:#e4ebd5;border:1px solid #d1ddbd;border-radius:14px}.trip-progress strong{font-size:14px}.trip-progress p{font-size:11px;color:#647558;margin:5px 0 0;line-height:1.4}.trip-progress button{flex-shrink:0;max-width:140px}.trip-history{margin-top:24px;border-top:1px solid #d8ddcc;padding-top:17px}.trip-history>summary{font-size:14px;font-weight:600;cursor:pointer}.trip-record{margin:12px 0;border:1px solid #d8ddcc;border-radius:12px;padding:12px}.trip-record summary{cursor:pointer}.trip-record summary strong{font-size:13px}.trip-record summary span{display:block;font-size:11px;color:#75816c;margin-top:5px}.trip-item{display:flex;align-items:center;gap:12px;justify-content:space-between;border-top:1px solid #e2e4d8;padding:12px 0}.trip-item:first-of-type{margin-top:12px}.trip-item strong{font-size:13px}.trip-item small{display:block;font-size:10px;color:#75816c;margin-top:4px}.trip-item .text-button{flex-shrink:0;min-height:44px}.product-suggestions{border:1px solid #c5d0b6;border-radius:10px;overflow:hidden;background:#fffdf7;margin-bottom:8px}.product-suggestion{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;text-align:start;padding:12px;background:transparent;color:#314e39;border-radius:0;border-bottom:1px solid #e7eadf;min-height:44px}.product-suggestion:last-child{border-bottom:0}.product-suggestion strong{font-size:13px;overflow-wrap:anywhere}.product-suggestion small{font-size:10px;color:#7c8871;max-width:100px;flex-shrink:0}.product-suggestion:hover,.product-suggestion[aria-selected=true]{background:#e6ecd8}.suggestion-status{font-size:11px;color:#647558;margin:4px 0 10px}#finishTripDialog{width:min(94vw,440px)}#finishTripDialog p{font-size:14px;line-height:1.6}#finishTripDialog .button-row{flex-wrap:wrap}
@media(max-width:380px){.trip-progress{align-items:stretch;flex-direction:column}.trip-progress button{max-width:none}.shopping-check{width:62px;font-size:10px}}
/* Camera, local city selection and quantity drum */
.shopping-location{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 0;border-bottom:1px solid #e1e5d7}.shopping-location strong{font-size:12px}.shopping-location p{font-size:10px;color:#76816e;margin:5px 0}.shopping-location .button-row{margin:0;flex-wrap:wrap}.shopping-location button{font-size:11px}.price-location{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px}.price-location button{font-size:11px}.city-option{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;min-height:48px;text-align:start;padding:12px;border-radius:8px;background:#e9eddf;color:inherit;margin:6px 0}.city-option small{font-size:11px;color:#75816c}#locationStatus,#scannerStatus{font-size:13px;line-height:1.5}#scannerDialog,#locationDialog{width:min(94vw,490px);max-height:90dvh;overflow:auto}#locationDialog label{display:block;margin-top:16px}#scannerDialog .button-row{flex-wrap:wrap}.scanner-preview{position:relative;background:#283e31;border-radius:16px;overflow:hidden;aspect-ratio:4/3}.scanner-preview video{width:100%;height:100%;object-fit:cover}.scanner-guide{position:absolute;inset:30% 8%;border:2px solid #fff9;border-radius:10px;box-shadow:0 0 0 200px #0003;pointer-events:none}.scanner-guide:after{content:'';position:absolute;left:0;right:0;top:0;height:2px;background:#bcd48c;box-shadow:0 0 12px #bcd48c;animation:barcode-sweep 2.5s ease-in-out infinite alternate}@keyframes barcode-sweep{to{top:100%}}.photo-button{display:inline-flex;align-items:center;margin:0;cursor:pointer;position:relative;overflow:hidden}.photo-button input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%;margin:0}#barcodeManualForm{margin-top:18px}
.quantity-picker{background:#e8eddf;border:1px solid #d3dcc5;border-radius:18px;padding:15px;margin:18px 0}.quantity-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.quantity-heading h3{font-size:14px;margin:0}.quantity-heading output{font-size:15px;font-weight:650;color:#37583f;font-variant-numeric:tabular-nums}.quantity-body{display:grid;grid-template-columns:120px 1fr;gap:20px;align-items:center}.quantity-drum{position:relative;height:180px}.quantity-guide{position:absolute;top:60px;height:60px;left:0;right:0;border-top:1px solid #b2c39a;border-bottom:1px solid #b2c39a;background:#fff8;border-radius:12px;pointer-events:none;z-index:0}#quantityWheel{position:relative;z-index:1;height:180px;overflow-y:auto;padding:60px 0;scroll-snap-type:y mandatory;scrollbar-width:none;overscroll-behavior:contain;touch-action:pan-y;cursor:grab;mask-image:linear-gradient(transparent,#000 30%,#000 70%,transparent);-webkit-mask-image:linear-gradient(transparent,#000 30%,#000 70%,transparent)}#quantityWheel::-webkit-scrollbar{display:none}#quantityWheel.dragging{scroll-snap-type:none;cursor:grabbing}.quantity-number{display:block;flex-shrink:0;height:60px;min-height:60px;width:100%;padding:0;line-height:60px;background:transparent;color:#a0ac91;font-size:30px;font-weight:500;font-variant-numeric:tabular-nums;scroll-snap-align:center;user-select:none}.quantity-number.selected{color:#2d4e36;font-weight:700}.quantity-units{display:flex;gap:6px;flex-wrap:wrap}.quantity-unit{border:1px solid #c8d4b8;border-radius:10px;padding:10px 13px;background:#f8f8ef;color:#688056;min-height:42px}.quantity-unit[aria-pressed=true]{background:#355740;color:white;border-color:#355740;box-shadow:0 3px 8px #35574020}.quantity-body .subtle{font-size:10px;line-height:1.5;margin:12px 0 0}#quantityCustom{border-top:1px solid #d1dac5;padding-top:10px;font-size:11px;color:#77856c}#quantityCustom summary{cursor:pointer}#quantityCustom input{font-size:16px;margin-bottom:0}@media(max-width:380px){.quantity-body{grid-template-columns:95px 1fr;gap:10px}.quantity-unit{padding:8px 10px}.shopping-location{align-items:flex-start}}@media(prefers-reduced-motion:reduce){.scanner-guide:after{animation:none}.quantity-number{transform:none!important}}
/* Mobile interaction: viewport-aware dialogs and a non-overlapping product sheet. */
:root{--visible-height:100dvh;--visible-top:0px}html{scroll-padding-block:16px}body:has(dialog[open]){overflow:hidden}input,textarea,select{font-size:16px;min-height:46px}input,textarea{scroll-margin-block:18px}button{touch-action:manipulation}dialog{position:fixed;inset:auto 0 auto;margin:0 auto;top:calc(var(--visible-top) + 16px);max-height:calc(var(--visible-height) - 32px);overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}dialog h2{font-size:25px;line-height:1.15;letter-spacing:-.6px}dialog .small-button,dialog .text-button{min-height:44px}dialog .button-row{gap:8px}#scannerDialog,#locationDialog,#listDialog,#shareDialog{max-height:calc(var(--visible-height) - 32px)}
#itemDialog.product-sheet{width:calc(100% - 32px);max-width:520px;height:min(800px,calc(var(--visible-height) - 32px));max-height:calc(var(--visible-height) - 32px);top:calc(var(--visible-top) + max(16px,(var(--visible-height) - 800px)/2));padding:0;overflow:hidden;border-radius:22px;box-shadow:0 16px 60px #16291e26}.sheet-layout{height:100%;display:grid;grid-template-rows:auto minmax(0,1fr) auto;margin:0}.sheet-header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 16px 12px 20px;border-bottom:1px solid #e0e4d6;background:#f6f4ed}.sheet-header h2{font-size:21px!important;margin:0;line-height:1.2;letter-spacing:-.5px!important;outline:none}.sheet-header-buttons{display:flex;align-items:center;gap:8px}.sheet-close{width:44px;height:44px;min-width:44px;border-radius:50%;background:#e9ecdf;color:#4f6547;font-size:27px;line-height:1}.sheet-scroll{overflow-y:auto;min-height:0;padding:16px 20px 20px;overscroll-behavior:contain;scroll-padding-block:16px;-webkit-overflow-scrolling:touch}.sheet-actions{display:flex;align-items:center;gap:12px;padding:12px 20px max(12px,env(safe-area-inset-bottom));border-top:1px solid #dfe4d4;background:#f6f4ed;position:static;box-shadow:0 -3px 14px #253c3206}.sheet-actions .primary{flex:1;justify-content:center;min-height:48px;font-size:15px;padding:12px 16px}.sheet-actions .text-button{flex-shrink:0;font-size:12px;min-height:44px;max-width:110px;line-height:1.35}.product-overview{display:flex;gap:14px;align-items:center}.product-description{flex:1;min-width:0}.product-description label{margin:0;font-size:12px}.product-description input{margin-top:6px}.product-description #itemAuthor{font-size:11px!important;line-height:1.4;margin:8px 0 0}.product-overview .product-photo{margin:0;width:76px;min-width:76px;gap:5px}.product-overview .product-photo img{max-height:90px;max-width:70px;border-radius:6px}.product-overview .product-photo a{font-size:8px;text-align:center;line-height:1.3}.product-overview .photo-placeholder{font-size:34px}.sheet-scroll .quantity-picker{margin:18px 0 14px;padding:12px}.sheet-scroll .quantity-heading output{font-size:16px}.sheet-scroll .quantity-body{gap:15px}.sheet-scroll label{margin-top:12px}.sheet-scroll .product-description label{margin-top:0}.sheet-scroll #priceSection{margin:18px 0 0;padding:0;border:1px solid #d9dfcc;border-radius:12px;overflow:hidden}.sheet-scroll #priceDetails>summary{align-items:center;gap:8px;font-size:14px;font-weight:600;padding:16px;background:#ebeedf;min-height:50px}.price-details-body{padding:14px}.price-details-body .shop-source{line-height:1.6}.price-details-body #priceStatus{font-size:12px!important;line-height:1.5}.sheet-scroll .price-row{gap:10px}.sheet-scroll .price-row strong{font-size:12px}.sheet-scroll .price-row small{font-size:11px}.sheet-scroll .price-row>div{min-width:0;overflow-wrap:anywhere}.sheet-scroll #quantityCustom input{font-size:16px}.sheet-scroll #quantityCustom summary{min-height:36px;align-items:center}.sheet-scroll #itemNote{margin-bottom:0}#hideItemKeyboard{font-size:10px;max-width:75px;line-height:1.2;text-decoration:none}
.shop-heading{margin-top:20px;gap:10px}.shop-heading h1{font-size:30px;letter-spacing:-.8px;margin:8px 0}.shop-heading .eyebrow{font-size:8px;letter-spacing:1.2px}.basket-art{font-size:36px;padding:6px}.shop-intro{margin:3px 0 18px;font-size:12px}.shop-compose label{margin-top:0}.shop-compose>.button-row{display:grid;grid-template-columns:1.25fr .85fr 1fr;gap:6px;margin-top:10px}.shop-compose>.button-row .text-button{min-height:44px;padding:9px 5px;font-size:12px;border:1px solid #cbd6bc;border-radius:9px;background:#f6f7ec;text-decoration:none;line-height:1.25}.shop-input-row input{min-height:48px}.shop-input-row button{min-width:46px;min-height:48px}.product-suggestions{max-height:min(230px,calc(var(--visible-height) * .35));overflow-y:auto;overscroll-behavior:contain;scroll-padding:6px}.product-suggestion{min-height:48px}.product-suggestion strong{font-size:14px}.product-suggestion small{font-size:11px}.shopping-item-body strong{font-size:15px}.shopping-item-body span{font-size:12px}.shopping-author{font-size:11px!important}.shopping-location .small-button,.shop-listbar button{min-height:44px}.shopping-location .button-row{gap:7px}.shopping-location p{line-height:1.4}.app-tabs button{min-height:44px}
@media(max-width:600px){dialog{width:calc(100% - 16px);max-width:520px;padding:20px;top:calc(var(--visible-top) + 8px);max-height:calc(var(--visible-height) - 16px)}#scannerDialog,#locationDialog,#listDialog,#shareDialog{max-height:calc(var(--visible-height) - 16px)}#itemDialog.product-sheet{top:calc(var(--visible-top) + 8px);width:calc(100% - 16px);height:calc(var(--visible-height) - 16px);max-height:calc(var(--visible-height) - 16px);border-radius:18px}.sheet-header{padding:8px 10px 8px 16px}.sheet-header h2{font-size:20px!important}.sheet-scroll{padding:14px 16px 18px}.sheet-actions{padding:10px 16px max(10px,env(safe-area-inset-bottom));gap:10px}.shop-heading h1{font-size:27px}.shop-intro{font-size:11px;line-height:1.5}.product-overview{gap:10px}.sheet-scroll .quantity-body{grid-template-columns:110px 1fr;gap:12px}.quantity-unit{min-height:44px}.sheet-actions .text-button{font-size:11px}.shop-listbar{gap:6px}.shop-listbar .text-button{min-width:36px}.shopping-location{gap:8px}}
@media(max-width:360px){.sheet-scroll{padding-inline:12px}.sheet-header h2{font-size:18px!important}.sheet-actions{padding-inline:12px}.sheet-scroll .quantity-body{grid-template-columns:95px 1fr;gap:8px}.quantity-unit{padding:8px 10px}.product-overview .product-photo{width:58px;min-width:58px}.product-overview .product-photo img{max-width:54px;max-height:75px}.shop-heading h1{font-size:24px}.shop-compose>.button-row .text-button{font-size:11px}}
:root[data-keyboard-open] .sheet-actions{padding-bottom:10px}:root[data-keyboard-open] .sheet-header{padding-block:4px}:root[data-keyboard-open] .sheet-header h2{font-size:18px!important}
