:root{--paper: #f5efe4;--paper-deep: #ece2d2;--surface: #fffdf7;--surface-sunk: #f7f1e6;--ink: #241c16;--ink-soft: #4f4339;--muted: #8c7d6b;--faint: #b6a896;--line: #e4d9c6;--line-strong: #d4c4aa;--paprika: #bd431d;--paprika-deep: #983212;--saffron: #d4892a;--olive: #6f6e3c;--danger: #a8331f;--danger-bg: #f9ece6;--shadow-sm: 0 1px 2px rgba(60, 40, 20, .05);--shadow: 0 2px 4px rgba(60, 40, 20, .05), 0 8px 24px -12px rgba(60, 40, 20, .18);--shadow-lg: 0 24px 60px -24px rgba(50, 30, 15, .35);--font-display: "Fraunces", Georgia, "Times New Roman", serif;--font-body: "Hanken Grotesk", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "DM Mono", ui-monospace, "SFMono-Regular", monospace;--radius: 14px;--radius-sm: 9px;font-family:var(--font-body);color-scheme:light}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background-color:var(--paper);background-image:radial-gradient(1200px 600px at 12% -8%,rgba(212,137,42,.1),transparent 60%),radial-gradient(1000px 700px at 108% 0%,rgba(189,67,29,.08),transparent 55%),linear-gradient(180deg,var(--paper) 0%,var(--paper-deep) 100%);background-attachment:fixed;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;letter-spacing:.005em}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;pointer-events:none;opacity:.4;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.045'/%3E%3C/svg%3E")}::selection{background:var(--paprika);color:#fff}h1,h2,h3{font-family:var(--font-display);font-weight:600;letter-spacing:-.01em;color:var(--ink)}button{font:inherit;cursor:pointer}input,textarea,select{font:inherit;width:100%;padding:.6rem .75rem;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}input::placeholder,textarea::placeholder{color:var(--faint)}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--paprika);box-shadow:0 0 0 3px #bd431d24;background:#fff}label{display:block;font-family:var(--font-body);font-size:.68rem;font-weight:700;color:var(--muted);margin-bottom:.35rem;text-transform:uppercase;letter-spacing:.12em}.btn{display:inline-flex;align-items:center;gap:.45rem;padding:.55rem 1.05rem;border:1px solid var(--line-strong);border-radius:999px;background:var(--surface);color:var(--ink);font-weight:600;font-size:.9rem;letter-spacing:.01em;transition:transform .12s ease,border-color .15s ease,background .15s ease,box-shadow .15s ease,color .15s ease}.btn:hover{border-color:var(--ink-soft);background:var(--surface);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.btn:active{transform:translateY(0)}.btn-primary{background:var(--paprika);border-color:var(--paprika);color:#fff;box-shadow:0 2px 10px -2px #bd431d80}.btn-primary:hover{background:var(--paprika-deep);border-color:var(--paprika-deep);color:#fff;box-shadow:0 6px 18px -4px #9832128c}.btn-danger{color:var(--danger);border-color:#e7c3b8;background:var(--surface)}.btn-danger:hover{background:var(--danger-bg);border-color:var(--danger)}.topbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 1.75rem;background:#fffdf7d1;-webkit-backdrop-filter:saturate(1.3) blur(10px);backdrop-filter:saturate(1.3) blur(10px);border-bottom:1px solid var(--line);box-shadow:0 1px #fff9 inset;position:sticky;top:0;z-index:20}.topbar h1{font-family:var(--font-display);font-optical-sizing:auto;font-size:1.5rem;font-weight:600;letter-spacing:-.02em;margin:0;cursor:pointer;line-height:1;transition:color .15s ease}.topbar h1:hover{color:var(--paprika)}.container{max-width:900px;margin:0 auto;padding:2rem 1.5rem 4rem;animation:rise .5s cubic-bezier(.2,.8,.2,1) both}@keyframes rise{0%{opacity:0;transform:translateY(10px)}}.field{margin-bottom:1.1rem}.row{display:flex;gap:1rem;flex-wrap:wrap}.row>.field{flex:1;min-width:140px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.1rem 1.3rem}.recipe-row{position:relative;display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.7rem;padding-left:1.45rem;cursor:pointer;overflow:hidden;transition:transform .14s ease,box-shadow .18s ease,border-color .18s ease;animation:rowIn .45s cubic-bezier(.2,.8,.2,1) both}@keyframes rowIn{0%{opacity:0;transform:translateY(8px)}}.recipe-row:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(var(--saffron),var(--paprika));transform:scaleY(0);transform-origin:top;transition:transform .22s cubic-bezier(.2,.8,.2,1)}.recipe-row:hover{transform:translateY(-2px);border-color:var(--line-strong);box-shadow:var(--shadow-lg)}.recipe-row:hover:before{transform:scaleY(1)}.recipe-row strong{font-family:var(--font-display);font-weight:600;font-size:1.18rem;letter-spacing:-.01em;line-height:1.2}.recipe-row .meta{color:var(--muted);font-size:.82rem;margin-top:.2rem;letter-spacing:.01em}.recipe-row-main{display:flex;align-items:center;gap:.95rem;min-width:0}.recipe-row-tags{flex:none;text-align:right;max-width:45%}.thumb{flex:none;width:62px;height:62px;border-radius:11px;object-fit:cover;border:1px solid var(--line);background:var(--surface-sunk);box-shadow:var(--shadow-sm)}.thumb.is-empty{display:grid;place-items:center;font-family:var(--font-display);font-weight:600;font-size:1.55rem;color:var(--paprika);background:radial-gradient(120% 120% at 30% 20%,#faefdb,#f1dac1 60%,#ecceb0)}.recipe-article{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;animation:rise .5s cubic-bezier(.2,.8,.2,1) both}.recipe-hero{position:relative;background:var(--surface-sunk)}.recipe-hero img{display:block;width:100%;height:clamp(220px,40vw,400px);object-fit:cover}.recipe-hero-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;justify-content:flex-end;padding:1.8rem 1.6rem 1.35rem;background:linear-gradient(to top,#16110ddb,#16110d66 42%,#16110d00 72%)}.recipe-hero-overlay h1{color:#fff;margin:0 0 .35rem;font-size:clamp(1.85rem,4.5vw,2.7rem);line-height:1.05;letter-spacing:-.02em;text-shadow:0 2px 24px rgba(0,0,0,.45)}.recipe-hero-meta{margin:0;color:#ffffffe0;font-size:.85rem;font-weight:500;letter-spacing:.02em;text-shadow:0 1px 10px rgba(0,0,0,.5)}.recipe-article-body{padding:1.4rem 1.5rem 1.6rem}.recipe-article-body h1{margin-top:0}.recipe-article-body h3{font-size:.74rem;font-weight:700;font-family:var(--font-body);text-transform:uppercase;letter-spacing:.14em;color:var(--paprika);margin:1.6rem 0 .6rem;padding-bottom:.4rem;border-bottom:1px solid var(--line)}.recipe-article-body ul{padding-left:1.2rem;line-height:1.6}.recipe-article-body ul li{margin-bottom:.3rem}.tag{display:inline-block;background:var(--surface-sunk);color:var(--ink-soft);border:1px solid var(--line);border-radius:999px;padding:.16rem .65rem;font-size:.7rem;font-weight:600;letter-spacing:.04em;text-transform:lowercase;margin:0 .35rem .35rem 0}.tag-filter-bar{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;margin-bottom:1rem}.filter-chip{display:inline-flex;align-items:center;background:var(--surface-sunk);color:var(--ink-soft);border:1px solid var(--line);border-radius:999px;padding:.16rem .6rem;font-size:.7rem;font-weight:600;letter-spacing:.04em;cursor:pointer;transition:background .14s ease,color .14s ease,border-color .14s ease}.filter-chip:hover{background:var(--paprika);color:#fff;border-color:var(--paprika)}.filter-chip.is-active{background:var(--saffron);color:#fff;border-color:var(--saffron)}.muted{color:var(--muted)}.error{color:var(--danger);background:var(--danger-bg);border:1px solid #e7c3b8;border-left:3px solid var(--danger);border-radius:var(--radius-sm);padding:.65rem .85rem;margin-bottom:1.1rem;font-size:.9rem}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:1.5rem}.login-card{width:100%;max-width:380px;padding:2rem 1.9rem 1.9rem;border:1px solid var(--line);box-shadow:var(--shadow-lg);position:relative}.login-card:after{content:"";position:absolute;top:7px;right:7px;bottom:7px;left:7px;border:1px solid var(--line);border-radius:calc(var(--radius) - 5px);pointer-events:none}.login-card h1{font-size:1.9rem;text-align:center;margin-bottom:1.4rem;letter-spacing:-.02em}.login-switch{margin:1rem 0 0;text-align:center;font-size:.85rem;color:var(--muted)}.link-btn{background:none;border:none;padding:0;font:inherit;color:var(--paprika);font-weight:600;cursor:pointer;text-decoration:underline}.link-btn:hover{color:var(--ink)}.spacer{flex:1}ul.steps{padding-left:1.2rem}ul.steps li{margin-bottom:.55rem;line-height:1.55}.nav{display:flex;gap:.15rem}.nav button{position:relative;background:transparent;border:none;padding:.4rem .85rem;border-radius:999px;font-family:var(--font-body);font-weight:600;font-size:.78rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);transition:color .15s ease,background .15s ease}.nav button:after{content:"";position:absolute;left:50%;bottom:.1rem;width:0;height:2px;border-radius:2px;background:var(--paprika);transform:translate(-50%);transition:width .2s ease}.nav button.active{color:var(--ink)}.nav button.active:after{width:1.1rem}.nav button:hover{color:var(--ink);background:#bd431d0f}.planner-head{display:flex;align-items:center;gap:.6rem;margin-bottom:1.4rem;flex-wrap:wrap}.planner-head h2{margin:0 .4rem;font-size:1.75rem;font-weight:600;letter-spacing:-.02em}.planner-head .btn{padding:.45rem .85rem}.grid-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow)}table.grid{border-collapse:collapse;width:100%;min-width:720px}table.grid th,table.grid td{border:1px solid var(--line);padding:.6rem .65rem;vertical-align:top;text-align:left}table.grid thead th{background:var(--surface-sunk);font-family:var(--font-body);font-size:.68rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.12em;text-align:center}table.grid th.slot-label{background:var(--surface-sunk);font-family:var(--font-display);font-style:italic;font-weight:500;font-size:.95rem;color:var(--ink-soft);text-transform:none;letter-spacing:0;white-space:nowrap;width:96px;text-align:left}.cell{min-height:60px;min-width:90px;transition:background .15s ease}.cell:hover{background:#d4892a0d}.cell .add{display:inline-block;color:var(--faint);cursor:pointer;font-size:.82rem;font-weight:600;transition:color .15s ease}.cell .add:hover{color:var(--paprika)}.cell .meal{cursor:pointer;font-family:var(--font-display);font-size:.95rem;font-weight:500;line-height:1.25;letter-spacing:-.01em;transition:color .15s ease}.cell .meal:hover{color:var(--paprika)}.cell .meal .ck{font-family:var(--font-mono);color:var(--muted);font-size:.72rem;font-weight:400;letter-spacing:0;margin-top:.15rem}.cell .meal.deleted{color:var(--muted);font-style:italic}.cell-actions{display:flex;gap:.35rem;margin-top:.45rem}.cell-actions button{font-size:.7rem;font-weight:600;padding:.18rem .5rem;border:1px solid var(--line-strong);border-radius:999px;background:var(--surface);transition:border-color .15s ease,color .15s ease}.cell-actions button:hover{border-color:var(--paprika);color:var(--paprika)}.planner-mobile{display:none;flex-direction:column;gap:.85rem}.day-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);overflow:hidden}.day-card-head{background:var(--surface-sunk);padding:.5rem .8rem;font-family:var(--font-body);font-size:.7rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.12em}.day-card-slots{display:flex;flex-wrap:wrap}.day-card-slot{flex:1 1 0;min-width:130px;padding:.55rem .7rem;border-top:1px solid var(--line)}.day-card-slot+.day-card-slot{border-left:1px solid var(--line)}.day-card-slot-label{font-family:var(--font-display);font-style:italic;font-size:.85rem;color:var(--ink-soft);margin-bottom:.3rem}.day-card-slot .cell{min-height:0;min-width:0}@media (max-width: 720px){.planner-desktop{display:none}.planner-mobile{display:flex}}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#2418106b;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:grid;place-items:center;padding:1rem;z-index:50;animation:fade .2s ease both}@keyframes fade{0%{opacity:0}}.modal{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);width:100%;max-width:480px;max-height:82vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:var(--shadow-lg);animation:pop .26s cubic-bezier(.2,.9,.2,1) both}@keyframes pop{0%{opacity:0;transform:translateY(14px) scale(.97)}}.modal-head{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.2rem;border-bottom:1px solid var(--line);background:var(--surface)}.modal-head strong,.modal-head h2,.modal-head h3{font-family:var(--font-display);font-size:1.1rem;font-weight:600}.tabs{display:flex;gap:.2rem;padding:.7rem 1.2rem 0;background:var(--surface)}.tab{background:transparent;border:none;border-bottom:2px solid transparent;padding:.45rem .7rem;font-weight:600;font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);transition:color .15s ease,border-color .15s ease}.tab.active{color:var(--paprika);border-bottom-color:var(--paprika)}.tab:hover{color:var(--ink)}.modal-body{padding:1rem 1.2rem 1.2rem;overflow-y:auto}.cook-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:radial-gradient(900px 500px at 50% -10%,rgba(189,67,29,.18),transparent 60%),#1a1511;color:#f3ead9;display:flex;flex-direction:column;z-index:100}.cook-bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 1.1rem;border-bottom:1px solid #362d24}.cook-bar .btn{background:#2a221b;border-color:#3d332a;color:#f3ead9}.cook-bar .btn:hover{border-color:#7a6c5c;background:#322820}.cook-title{flex:1;text-align:center;font-family:var(--font-display);font-size:1.15rem;font-weight:500;letter-spacing:-.01em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cook-progress{height:4px;background:#362d24}.cook-progress-fill{height:100%;background:linear-gradient(90deg,var(--saffron),var(--paprika));transition:width .3s ease}.cook-body{flex:1;display:flex;overflow:hidden}.cook-sidebar{width:270px;border-right:1px solid #362d24;padding:1.25rem 1.4rem;overflow-y:auto;background:#181310}.cook-sidebar h3{margin-top:0;font-family:var(--font-body);font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.14em;color:#b8a892}.cook-step{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:2rem}.cook-stepno{font-family:var(--font-mono);color:var(--saffron);text-transform:uppercase;letter-spacing:.22em;font-size:.8rem;margin-bottom:1.75rem}.cook-text{font-family:var(--font-display);font-weight:400;font-size:clamp(1.7rem,4.2vw,2.7rem);line-height:1.36;letter-spacing:-.015em;max-width:760px;margin:0 0 2rem}.cook-timer-chip{font-size:1rem}.cook-nav{display:flex;justify-content:space-between;gap:1rem;padding:1rem;border-top:1px solid #362d24}.cook-nav .btn{flex:1;justify-content:center;padding:.95rem;font-size:1.02rem;border-radius:var(--radius-sm);background:#2a221b;border-color:#3d332a;color:#f3ead9}.cook-nav .btn:hover{border-color:#7a6c5c}.cook-nav .btn-primary{background:var(--paprika);border-color:var(--paprika);color:#fff}.cook-nav .btn-primary:hover{background:var(--paprika-deep);border-color:var(--paprika-deep)}.cook-nav .btn:disabled{opacity:.35;cursor:not-allowed}.cook-timer-tray{position:absolute;bottom:88px;left:50%;transform:translate(-50%);display:flex;gap:.5rem;flex-wrap:wrap;justify-content:center;max-width:90%}.cook-timer{display:flex;align-items:center;gap:.5rem;font-family:var(--font-mono);background:#2a221b;border:1px solid #3d332a;border-radius:999px;padding:.4rem .55rem .4rem .95rem;font-size:.9rem}.cook-timer.done{border-color:var(--paprika);background:#3a2014;animation:ring 1s ease-in-out infinite}.cook-timer button{background:transparent;border:none;color:#b8a892;cursor:pointer}@keyframes ring{0%,to{box-shadow:0 0 #bd431d80}50%{box-shadow:0 0 0 6px #bd431d00}}.cook-step-img{max-width:300px;border-radius:var(--radius);margin-bottom:1.25rem;box-shadow:var(--shadow-lg)}.planner-head select.btn{cursor:pointer;max-width:16rem}.shop-summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:.9rem}.shop-recipes{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:1.2rem}.shop-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem;align-items:start}.shop-cat{padding:.9rem 1.1rem 1rem}.shop-cat h3{display:flex;align-items:center;gap:.5rem;margin:0 0 .6rem;padding-bottom:.55rem;border-bottom:1px solid var(--line);font-family:var(--font-display);font-size:1.02rem;font-weight:600;color:var(--ink)}.shop-cat-icon{font-size:1.1rem}.shop-cat-count{margin-left:auto;font-family:var(--font-mono);font-size:.72rem;color:var(--muted);background:var(--surface-sunk);border-radius:999px;padding:.05rem .5rem}.shop-items{list-style:none;margin:0;padding:0}.shop-item{display:flex;flex-direction:column;gap:.1rem;padding:.4rem 0;border-bottom:1px dashed var(--line)}.shop-item:last-child{border-bottom:none}.shop-item label{display:flex;align-items:baseline;gap:.55rem;cursor:pointer}.shop-item input[type=checkbox]{margin:0;width:1rem;height:1rem;accent-color:var(--paprika);cursor:pointer;flex-shrink:0;transform:translateY(2px)}.shop-item-name{color:var(--ink);font-size:.94rem;line-height:1.3}.shop-item-badge{margin-left:.4rem;font-family:var(--font-mono);font-size:.7rem;color:var(--paprika-deep)}.shop-item-from{margin-left:1.55rem;font-size:.74rem;color:var(--faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.shop-item.done .shop-item-name{text-decoration:line-through;color:var(--faint)}.shop-item.done .shop-item-from{opacity:.6}.shop-item-staple{margin-left:.45rem;font-size:.62rem;text-transform:uppercase;letter-spacing:.04em;color:var(--olive);border:1px solid var(--line-strong);border-radius:999px;padding:.02rem .4rem;vertical-align:middle}.shop-filters{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;margin-bottom:1rem;font-size:.86rem}.shop-filters label{display:inline-flex;align-items:center;gap:.4rem;cursor:pointer;color:var(--ink-soft)}.shop-filters input[type=checkbox]{width:.95rem;height:.95rem;accent-color:var(--paprika);cursor:pointer}.cell .meal .meal-meta{display:flex;align-items:center;gap:.4rem;margin-top:.15rem}.serves-badge{font-family:var(--font-mono);font-size:.68rem;color:var(--olive)}.serves-control{display:flex;align-items:center;gap:.35rem;padding:.25rem .1rem .4rem;font-size:.78rem;color:var(--ink-soft);border-bottom:1px solid var(--line);margin-bottom:.25rem}.serves-control button{width:1.4rem;height:1.4rem;padding:0;border:1px solid var(--line-strong);background:var(--surface);border-radius:6px;cursor:pointer;font-size:.85rem;line-height:1;color:var(--ink)}.serves-control button:hover{background:var(--surface-sunk)}.serves-control strong{min-width:1.1rem;text-align:center}.ing-editor{border:1px solid var(--line);border-radius:var(--radius-sm);padding:.6rem .7rem .8rem;background:var(--surface-sunk)}.ing-head,.ing-row{display:grid;grid-template-columns:4.5rem 6rem 1fr 9rem 4.5rem;gap:.4rem;align-items:center}.ing-head{font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);padding:0 .1rem .35rem}.ing-row{margin-bottom:.4rem}.ing-editor input,.ing-editor select{margin:0;padding:.35rem .45rem;font-size:.88rem}.ing-actions{display:flex;gap:.2rem;justify-content:flex-end}.ing-actions button{width:1.5rem;height:1.6rem;padding:0;border:1px solid var(--line-strong);background:var(--surface);border-radius:6px;cursor:pointer;color:var(--ink-soft);font-size:.8rem}.ing-actions button:hover:not(:disabled){background:var(--surface-sunk)}.ing-actions button:disabled{opacity:.35;cursor:default}.ing-actions .ing-del:hover{color:var(--danger);border-color:var(--danger)}.ing-paste{margin-top:.6rem;padding-top:.6rem;border-top:1px dashed var(--line-strong)}@media (max-width: 640px){.ing-head{display:none}.ing-row{grid-template-columns:3.5rem 4.5rem 1fr;grid-template-areas:"qty unit name" "aisle aisle act";row-gap:.3rem}.ing-row .ing-col-qty{grid-area:qty}.ing-row .ing-col-unit{grid-area:unit}.ing-row .ing-col-name{grid-area:name}.ing-row .ing-col-aisle{grid-area:aisle}.ing-row .ing-actions{grid-area:act}}.aisle-order{list-style:none;margin:0;padding:0;max-width:22rem}.aisle-order li{display:flex;align-items:center;justify-content:space-between;padding:.4rem .6rem;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);margin-bottom:.35rem;font-size:.9rem}.aisle-move button{width:1.6rem;height:1.6rem;padding:0;margin-left:.25rem;border:1px solid var(--line-strong);background:var(--surface);border-radius:6px;cursor:pointer;color:var(--ink-soft)}.aisle-move button:hover:not(:disabled){background:var(--surface-sunk)}.aisle-move button:disabled{opacity:.35;cursor:default}.staple-list{display:flex;flex-wrap:wrap;gap:.45rem}.staple-chip{display:inline-flex;align-items:center;gap:.4rem;padding:.25rem .4rem .25rem .7rem;background:var(--surface-sunk);border:1px solid var(--line-strong);border-radius:999px;font-size:.85rem}.staple-chip button{width:1.2rem;height:1.2rem;padding:0;border:none;background:transparent;cursor:pointer;color:var(--muted);font-size:.75rem;border-radius:50%}.staple-chip button:hover{color:var(--danger);background:var(--danger-bg)}.sains-summary,.sains-progress{margin-bottom:1rem}.sains-steps{list-style:none;margin:0 0 .85rem;padding:0;display:flex;flex-direction:column;gap:.5rem}.sains-step{display:flex;align-items:center;gap:.55rem;font-size:.92rem;animation:rowIn .3s ease both}.sains-step.done{color:var(--ink-soft)}.sains-step.active{color:var(--ink);font-weight:600}.sains-step-icon{flex:none;width:1.2rem;text-align:center}.sains-step.done .sains-step-icon{color:var(--success, #2e7d32)}.sains-step.active .sains-step-icon{animation:pulse 1.2s ease-in-out infinite}@keyframes pulse{50%{opacity:.35}}.sains-grid{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:1rem;align-items:start}@media (max-width: 760px){.sains-grid{grid-template-columns:1fr}}.sains-col-head{margin:0 0 .7rem;padding-bottom:.5rem;border-bottom:1px solid var(--line);font-family:var(--font-display);font-size:1.02rem}.sains-original{list-style:none;margin:0;padding:0}.sains-original li{display:flex;align-items:baseline;justify-content:space-between;gap:.6rem;padding:.35rem 0;border-bottom:1px dashed var(--line);font-size:.9rem}.sains-original li:last-child{border-bottom:none}.sains-aisle{font-size:.74rem;white-space:nowrap}.sains-group{margin-bottom:1rem}.sains-group:last-child{margin-bottom:0}.sains-group-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.4rem;font-size:.84rem;font-weight:600;color:var(--ink)}.sains-remove-all{font-size:.74rem;padding:.15rem .5rem}.sains-lines{list-style:none;margin:0;padding:0}.sains-line{display:flex;align-items:center;gap:.6rem;padding:.45rem 0;border-bottom:1px dashed var(--line)}.sains-line:last-child{border-bottom:none}.sains-line.removed{opacity:.5}.sains-line.removed .sains-line-name{text-decoration:line-through}.sains-line-main{flex:1;min-width:0}.sains-line-name{display:flex;align-items:baseline;gap:.5rem;font-size:.9rem;color:var(--ink)}.sains-price{font-family:var(--font-mono);font-size:.78rem;color:var(--olive)}.sains-line-from{font-size:.74rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sains-line-actions{display:flex;align-items:center;gap:.4rem}.qty-stepper{display:flex;align-items:center;gap:.3rem}.qty-stepper button{width:1.5rem;height:1.5rem;padding:0;border:1px solid var(--line-strong);background:var(--surface);border-radius:6px;cursor:pointer;font-size:.9rem;line-height:1;color:var(--ink)}.qty-stepper button:hover{background:var(--surface-sunk)}.qty-stepper strong{min-width:1.1rem;text-align:center;font-size:.9rem}.sains-x{width:1.6rem;height:1.6rem;padding:0;border:1px solid var(--line-strong);background:var(--surface);border-radius:6px;cursor:pointer;color:var(--muted)}.sains-x:hover{color:var(--danger);border-color:var(--danger)}.sains-unmatched{list-style:none;margin:0;padding:0;font-size:.84rem}.sains-unmatched li{padding:.2rem 0}.sains-actions{display:flex;align-items:center;gap:.5rem;margin-top:1rem}
