:root{--bg:#f4f1ea;--panel:#fff;--ink:#1f2a37;--muted:#5b6573;--accent:#2b6cb0;--accent-ink:#fff;--danger:#c53030;--warn:#b7791f;--ring:#f6c343;--radius:16px;--tap:56px;color:var(--ink);background:var(--bg);-webkit-tap-highlight-color:transparent;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}html,body,#root{overscroll-behavior:none;height:100%;margin:0;overflow:hidden}body{-webkit-user-select:none;user-select:none}button{font:inherit;color:inherit}.app{grid-template:"top""scene"1fr"tools""palette"/1fr;height:100dvh;display:grid}@media (width>=900px) and (orientation:landscape){.app{grid-template:"top top""palette scene"1fr"palette tools"/auto 1fr}.palette{flex-direction:column;overflow:hidden auto}}.top{padding:8px;padding-top:max(8px, env(safe-area-inset-top));background:var(--panel);grid-area:top;align-items:center;gap:8px;display:flex;box-shadow:0 1px #0001}.scene{grid-area:scene;min-height:0;position:relative}.tools{background:var(--panel);grid-area:tools;justify-content:center;gap:8px;padding:8px;display:flex}.palette{padding:8px;padding-bottom:max(8px, env(safe-area-inset-bottom));background:var(--panel);grid-area:palette;gap:8px;display:flex;overflow-x:auto;box-shadow:0 -1px #0001}.btn{min-width:var(--tap);min-height:var(--tap);border-radius:var(--radius);cursor:pointer;touch-action:manipulation;background:#eef1f5;border:0;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:4px 10px;display:inline-flex}.btn:disabled{opacity:.35;cursor:default}.btn .ico{font-size:26px;line-height:1}.btn .lbl{font-size:12px;font-weight:600}.btn.on{background:var(--accent);color:var(--accent-ink);box-shadow:0 0 0 3px var(--ring)}.btn.primary{background:var(--accent);color:var(--accent-ink);font-weight:700}.btn.big{flex-direction:row;gap:12px;width:100%;min-height:72px;font-size:20px}.btn.danger{color:var(--danger);background:#fde8e8}.tools .btn{flex:1 1 0;min-width:0;max-width:110px;padding:4px 2px}.tools .btn .lbl{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}@media (width<=480px){.top{gap:4px;padding-left:4px;padding-right:4px}.top .btn{min-width:56px;padding:4px}.tools{gap:4px;padding:6px 4px}}.name{width:0;min-width:0;height:var(--tap);color:var(--ink);text-overflow:ellipsis;-webkit-user-select:text;user-select:text;background:#f6f7f9;border:2px solid #0000;border-radius:12px;flex:1 1 0;padding:0 12px;font-size:18px;font-weight:700}.name:focus{border-color:var(--accent);outline:none}.swatch{width:var(--tap);height:var(--tap);cursor:pointer;touch-action:manipulation;border:3px solid #0002;border-radius:50%;flex:none}.swatch.on{box-shadow:0 0 0 4px var(--panel), 0 0 0 8px var(--ink)}.swatch.add{background:#eef1f5;border-style:dashed;justify-content:center;align-items:center;font-size:28px;display:flex}.overlay{z-index:10;background:#0006;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}@media (width>=700px){.overlay{align-items:center}}.sheet{background:var(--panel);width:min(640px,100%);max-height:92dvh;padding:20px;padding-bottom:max(20px, env(safe-area-inset-bottom));border-radius:24px 24px 0 0;flex-direction:column;gap:14px;display:flex;overflow:auto}@media (width>=700px){.sheet{border-radius:24px}}.sheet h2{justify-content:space-between;align-items:center;gap:8px;margin:0;font-size:24px;display:flex}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.field{flex-direction:column;gap:6px;font-weight:600;display:flex}.field select,.field input[type=number]{min-height:var(--tap);font:inherit;color:var(--ink);background:#fff;border:2px solid #d5dae1;border-radius:12px;padding:0 12px;font-size:18px}.builds{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;display:grid}.card{border-radius:var(--radius);background:#f6f7f9;flex-direction:column;display:flex;overflow:hidden}.card button.open{cursor:pointer;text-align:left;min-height:var(--tap);background:0 0;border:0;padding:0}.card img,.card .noimg{aspect-ratio:4/3;object-fit:cover;background:#e3e7ec;width:100%;display:block}.card .title{text-overflow:ellipsis;white-space:nowrap;padding:8px 10px;font-weight:700;overflow:hidden}.msgs{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.msgs li{background:#eef6ee;border-radius:12px;padding:12px 14px;font-size:17px}.msgs li.error{color:var(--danger);background:#fde8e8;font-weight:700}.msgs li.warning{color:#7a4f0c;background:#fdf3e1}.preview{aspect-ratio:4/3;border-radius:var(--radius);object-fit:contain;background:#e9e4d8;width:100%}.steps{margin:0;font-size:17px;line-height:1.5}.hint{color:var(--muted);margin:0;font-size:14px}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{min-height:var(--tap);cursor:pointer;background:#fff;border:2px solid #d5dae1;border-radius:999px;align-items:center;gap:8px;padding:0 14px;font-weight:600;display:inline-flex}.chip .dot{border:2px solid #0002;border-radius:50%;width:24px;height:24px}
