.hero{text-align:center;padding:34px 0 10px}.hero h1{letter-spacing:-.02em;margin-bottom:.3em;font-size:clamp(1.5rem,3.4vw,2.2rem)}.lede{color:var(--muted);max-width:560px;margin:0 auto}.dropzone{text-align:center;border:2px dashed var(--line);cursor:pointer;max-width:640px;margin:22px auto;padding:54px 20px;transition:border-color .15s,background .15s}.dropzone.over,.dropzone:hover{border-color:var(--accent);background:var(--accent-tint)}.dz-big{margin:0 0 4px;font-size:1.25rem;font-weight:700}.dz-sub{color:var(--muted);margin:0}.hint{text-align:center;color:var(--muted);font-size:.88rem}.stage{padding-top:20px}.stage-grid{grid-template-columns:340px 1fr;gap:16px;display:grid}@media (width<=800px){.stage-grid{grid-template-columns:1fr}}.panel{padding:20px}.panel h2{margin:0 0 14px;font-size:1.05rem}.panel label{margin-bottom:12px;font-size:.88rem;font-weight:600;display:block}.panel select{border:1.5px solid var(--line);background:#fff;border-radius:8px;width:100%;margin-top:4px;padding:.5em;font-size:.92rem;display:block}fieldset{border:0;margin:0 0 12px;padding:0}legend{margin-bottom:6px;padding:0;font-size:.88rem;font-weight:600}.key-list{gap:6px;max-height:220px;display:grid;overflow-y:auto}.key-item{border:1.5px solid var(--line);cursor:pointer;border-radius:8px;align-items:center;gap:8px;padding:7px 10px;display:flex;margin:0!important;font-weight:400!important}.key-item.suggested{border-color:var(--accent);background:var(--accent-tint)}.key-item em{color:var(--muted);margin-left:auto;font-size:.8rem;font-style:normal}.table-scroll{overflow-x:auto}#grid{border-collapse:collapse;width:100%;font-size:.8rem}#grid td{border:1px solid var(--line);white-space:nowrap;padding:3px 7px}#grid tr.hrow td{background:var(--accent-tint);font-weight:700}.warn{background:var(--warn-tint);color:var(--warn);border-radius:8px;padding:8px 12px;font-size:.85rem}.group-list{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:8px;max-height:300px;padding:0;list-style:none;display:grid;overflow-y:auto}.group-list li{border:1px solid var(--line);cursor:pointer;border-radius:8px;padding:7px 12px;font-size:.88rem}.group-list li:hover{border-color:var(--accent)}.group-list li.active{border-color:var(--accent);background:var(--accent-tint)}.gi-row{justify-content:space-between;display:flex}.gi-check{cursor:pointer;align-items:center;gap:6px;display:flex;margin:0!important;font-weight:400!important}.group-item:has(.gi-include:not(:checked)){opacity:.45}.group-list.busy{pointer-events:none;opacity:.7}.restart-bar{justify-content:flex-end;padding-top:10px;display:flex}.restart-link{border:1.5px solid var(--line);color:var(--muted);cursor:pointer;background:0 0;border-radius:8px;padding:.35em .9em;font-size:.85rem}.restart-link:hover:not(:disabled){color:var(--ink);border-color:var(--accent)}.restart-link:disabled{opacity:.4;cursor:not-allowed}.group-list span{color:var(--muted)}.gi-name{border:1px dashed var(--line);width:100%;color:var(--muted);background:0 0;border-radius:6px;margin-top:5px;padding:3px 7px;font-size:.8rem}.gi-name:focus{border-style:solid;border-color:var(--accent);color:var(--ink);background:#fff;outline:none}.info{color:var(--muted);font-size:.85rem}.sample-box{margin-top:14px}.sample-box h3{color:var(--muted);margin:0 0 8px;font-size:.92rem;font-weight:600}#sample-grid{border-collapse:collapse;width:100%;font-size:.8rem}#sample-grid td{border:1px solid var(--line);white-space:nowrap;padding:3px 7px}#sample-grid tr.hrow td{background:var(--accent-tint);font-weight:700}.row-actions{justify-content:space-between;margin-top:16px;display:flex}.center{text-align:center}.center .btn{margin:8px 4px}.shelf-title{text-align:center;margin:26px 0 10px;font-size:1.02rem}.recipe-list{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;max-width:640px;margin:0 auto;display:grid}.recipe-card{background:var(--card);border:1.5px dashed var(--line);cursor:pointer;border-radius:12px;padding:14px 16px}.recipe-card:hover,.recipe-card.over{border-color:var(--accent);background:var(--accent-tint)}.recipe-card p{color:var(--muted);margin:4px 0;font-size:.85rem}.rc-head{justify-content:space-between;align-items:center;display:flex}.rc-del{color:var(--muted);cursor:pointer;background:0 0;border:0;padding:0 4px;font-size:1.1rem}.rc-del:hover{color:var(--warn)}.rc-drop{font-weight:600;color:var(--accent)!important}.card-inset{border:1px solid var(--line);text-align:left;border-radius:10px;max-width:460px;margin:16px auto;padding:14px 16px}.recipe-save-row{gap:8px;display:flex}.recipe-save-row input{border:1.5px solid var(--line);border-radius:8px;flex:1;padding:.5em .7em;font-size:.92rem}
