@import "https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;1,9..40,300&family=DM+Mono:wght@400;500&display=swap";*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--font-sans:"DM Sans", system-ui, sans-serif;--font-mono:"DM Mono", monospace;--bg:#f7f4ef;--surface:#fff;--surface-alt:#f0ede8;--border:#0000001a;--border-strong:#0000002e;--text-primary:#1a1a18;--text-secondary:#5a5a55;--text-muted:#9a9a94;--accent:#1a1a18;--accent-fg:#fff;--radius-sm:6px;--radius-md:9px;--radius-lg:14px}html{font-size:16px}body{font-family:var(--font-sans);background:var(--bg);color:var(--text-primary);-webkit-font-smoothing:antialiased;min-height:100vh}#root{min-height:100vh}.app{max-width:1280px;margin:0 auto;padding:2rem 2rem 4rem}.app-header{border-bottom:1px solid var(--border);margin-bottom:2rem;padding-bottom:1.25rem}.brand{align-items:center;gap:10px;margin-bottom:4px;display:flex}.brand-icon{color:var(--text-secondary);font-size:22px;line-height:1}.brand-name{letter-spacing:-.5px;font-size:22px;font-weight:500}.brand-sub{color:var(--text-muted);font-size:13px;font-weight:300}.toolbar{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:1.5rem;display:flex}.toolbar-right{flex-wrap:wrap;align-items:center;gap:8px;margin-left:auto;display:flex}.toggle-group{display:flex}.tgl{font-size:12.5px;font-weight:500;font-family:var(--font-sans);border:1px solid var(--border-strong);background:var(--surface);color:var(--text-secondary);cursor:pointer;border-left-width:0;padding:7px 14px;transition:background .12s,color .12s}.tgl.first,.tgl:first-child{border-radius:var(--radius-sm) 0 0 var(--radius-sm);border-left-width:1px}.tgl.last,.tgl:last-child{border-radius:0 var(--radius-sm) var(--radius-sm) 0}.tgl:only-child{border-radius:var(--radius-sm);border-left-width:1px}.tgl.active{background:var(--accent);color:var(--accent-fg);border-color:var(--accent);z-index:1}.tgl:hover:not(.active){background:var(--surface-alt)}.main-layout{grid-template-columns:210px minmax(0,1fr);align-items:start;gap:1.5rem;display:grid}@media (width<=720px){.main-layout{grid-template-columns:1fr}}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.25rem;position:sticky;top:1.5rem}.fields{flex-direction:column;gap:10px;margin-bottom:1.25rem;display:flex}.field{flex-direction:column;gap:3px;display:flex}.field label{color:var(--text-secondary);letter-spacing:.2px;font-size:11px;font-weight:500}.field .unit-hint{color:var(--text-muted);font-weight:400}.field input{font-size:13.5px;font-family:var(--font-mono);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);color:var(--text-primary);-moz-appearance:textfield;width:100%;padding:7px 10px;transition:border-color .12s,box-shadow .12s}.field input::-webkit-inner-spin-button{opacity:.4}.field input::-webkit-outer-spin-button{opacity:.4}.field input:focus{border-color:var(--accent);background:var(--surface);outline:none;box-shadow:0 0 0 3px #1a1a180f}.actions{flex-direction:column;gap:7px;display:flex}.btn{width:100%;font-size:12.5px;font-weight:500;font-family:var(--font-sans);border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--surface);color:var(--text-secondary);cursor:pointer;text-align:center;padding:9px 14px;transition:background .12s,color .12s,transform .1s}.btn:hover{background:var(--surface-alt)}.btn:active{transform:scale(.98)}.btn-primary{background:var(--accent);color:var(--accent-fg);border-color:var(--accent)}.btn-primary:hover{background:#2d2d2a}.canvas-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);min-height:460px;padding:1.25rem}.canvas-wrap.empty{justify-content:center;align-items:center;display:flex}.empty-state{text-align:center;color:var(--text-muted);padding:2rem}.empty-icon{opacity:.35;margin-bottom:1rem}.empty-title{color:var(--text-secondary);margin-bottom:4px;font-size:14px;font-weight:500}.empty-sub{font-size:12px}.legend{color:var(--text-secondary);border-bottom:1px solid var(--border);flex-wrap:wrap;gap:16px;margin-bottom:1rem;padding-bottom:10px;font-size:11px;display:flex}.leg-item{align-items:center;gap:6px;display:flex}.leg-swatch{flex-shrink:0;width:24px}.svg-container{max-width:100%;overflow:auto}.svg-container svg{max-width:100%;height:auto;display:block}.garment-tabs{flex-wrap:wrap;gap:4px;display:flex}.garment-tabs .toggle-group{flex-wrap:wrap;gap:0;display:flex}.garment-tabs .tgl{flex-shrink:0;padding:6px 11px;font-size:11px}
