:root{color:#0f172a;background-color:#f1f5f9;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif}*{box-sizing:border-box}body{margin:0}.container{max-width:1100px;margin:0 auto;padding:1.5rem;display:grid;gap:1rem}h1,h2,h3,p{margin:0}header{display:grid;gap:.5rem}header h1{color:#1e3a8a;font-size:2rem}header p{color:#334155;max-width:80ch}.panel{background:#fff;border:1px solid #dbe5ef;border-radius:.75rem;padding:1rem;display:grid;gap:.75rem}.panel-header{display:flex;justify-content:space-between;align-items:center}.add-row-group{display:inline-flex;align-items:stretch}.add-row-group>button{border-top-right-radius:0;border-bottom-right-radius:0}.add-row-menu{position:relative;display:flex}.add-row-menu summary{list-style:none;min-width:2.1rem;display:flex;align-items:center;justify-content:center;padding:.4rem .8rem;border:1px solid #cbd5e1;border-left:0;background:#f8fafc;color:#0f172a;font:inherit;font-weight:400;line-height:1;border-top-right-radius:.45rem;border-bottom-right-radius:.45rem;cursor:pointer;user-select:none}.add-row-menu summary::-webkit-details-marker{display:none}.add-row-dropdown{position:absolute;right:0;top:calc(100% + .35rem);min-width:240px;padding:.35rem;border:1px solid #dbe5ef;border-radius:.5rem;background:#fff;box-shadow:0 6px 18px #0f172a1f;display:grid;gap:.25rem;z-index:3}.menu-item{text-align:left;background:#fff}.menu-empty{margin:0;font-size:.9rem;color:#64748b;padding:.35rem}.piece-table{width:100%;border-collapse:collapse}.piece-table th,.piece-table td{border-bottom:1px solid #e2e8f0;padding:.5rem;text-align:left}input{width:100%;border:1px solid #cbd5e1;border-radius:.4rem;padding:.35rem .5rem;font:inherit}button{border:1px solid #cbd5e1;background:#f8fafc;color:#0f172a;border-radius:.45rem;padding:.4rem .8rem;cursor:pointer}button.primary{background:#1d4ed8;color:#fff;border-color:#1d4ed8}.actions{display:flex;gap:.5rem;flex-wrap:wrap}.settings-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.75rem}.settings-grid label{display:grid;gap:.35rem;font-size:.9rem}.summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.5rem}.leftovers{margin:0;padding:.6rem 0 0 1rem;display:grid;gap:.3rem}details summary{font-weight:600;cursor:pointer}.stock-plan{display:grid;gap:.5rem}.stock-plan svg{border-radius:.4rem;background:#f8fafc;max-width:100%}.error{color:#b91c1c}
