:root{--bg: #fff8e1;--ink: #1f2430;--muted: #566070;--card: #ffffff;--line: #e4d9b4;--accent: #f2cd37;--accent-ink: #2b2200;--ok: #1b7a3a;--ok-bg: #e6f6ea;--warn: #8a5a00;--err: #b3261e;--radius: 18px}@media (prefers-color-scheme: dark){:root{--bg: #14161c;--ink: #f4f5f8;--muted: #b0b6c4;--card: #1f232c;--line: #3a4050;--accent-ink: #1b1500;--ok: #7be39a;--ok-bg: #16301f;--warn: #ffd47a;--err: #ff8a80}}*{box-sizing:border-box}html{font-size:18px}body{margin:0;background:var(--bg);color:var(--ink);font-family:system-ui,Segoe UI,sans-serif;line-height:1.4}#app{max-width:680px;margin:0 auto;padding:16px 16px 48px;display:grid;gap:16px}h1{font-size:1.6rem;margin:4px 0}h2{font-size:1.2rem;margin:14px 0 8px;display:flex;align-items:center;gap:8px}h2:first-child{margin-top:0}h3{font-size:1.15rem;margin:0 0 4px}.card{background:var(--card);border:2px solid var(--line);border-radius:var(--radius);padding:16px}.card.ok{border-color:var(--ok);background:var(--ok-bg)}.hint{color:var(--muted);font-size:.9rem;margin:6px 0}.error{color:var(--err);font-weight:600}.status{font-size:1.05rem;font-weight:700;margin:4px 0 8px}.card.ok .status{color:var(--ok)}.chosen{font-weight:700;margin:4px 0 12px}.badge{background:var(--accent);color:var(--accent-ink);border-radius:999px;padding:0 12px;font-size:1rem}button{font:inherit;cursor:pointer;border:2px solid var(--line);background:var(--card);color:var(--ink);border-radius:14px;padding:12px 16px;min-height:52px;transition:transform .08s}button:active{transform:scale(.97)}button:focus-visible,input:focus-visible,a:focus-visible{outline:4px solid #1a73e8;outline-offset:2px}button:disabled{opacity:.45;cursor:not-allowed}.primary{background:var(--accent);color:var(--accent-ink);border-color:transparent;font-weight:800;width:100%}.primary.big{min-height:64px;font-size:1.2rem}.link{border:0;background:none;color:var(--muted);text-decoration:underline;min-height:48px}.card button:not(.part):not(.swatch):not(.round):not(.primary):not(.link){width:100%;margin-top:8px;font-weight:700}.colors{display:grid;grid-template-columns:repeat(auto-fill,minmax(56px,1fr));gap:10px;margin-bottom:8px}.swatch{width:100%;aspect-ratio:1;min-height:56px;border-radius:50%;padding:0;border:4px solid transparent;box-shadow:0 0 0 2px var(--line)}.swatch.on{border-color:var(--ink);box-shadow:0 0 0 3px var(--accent)}input[type=search]{width:100%;font:inherit;padding:12px 14px;margin-bottom:12px;min-height:56px;border:2px solid var(--line);border-radius:14px;background:var(--bg);color:var(--ink)}.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}@media (min-width: 520px){.grid{grid-template-columns:repeat(3,1fr)}}.part{display:grid;justify-items:center;align-content:start;text-align:center;gap:4px;min-height:132px;padding:10px 8px}.part strong{font-size:.95rem;line-height:1.2;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.part small,.inv small{color:var(--muted)}.part.pop{animation:pop .25s;border-color:var(--ok)}@keyframes pop{50%{transform:scale(1.06)}}@media (prefers-reduced-motion: reduce){.part.pop{animation:none}button{transition:none}}.inv{list-style:none;margin:0;padding:0;display:grid;gap:8px}.inv li{display:flex;align-items:center;gap:10px}.inv .grow{flex:1;display:grid;line-height:1.2}.round{width:52px;padding:0;font-size:1.5rem;font-weight:800}.qty{min-width:28px;text-align:center;font-size:1.2rem}.check{display:flex;align-items:center;gap:10px;margin-top:12px;min-height:52px;font-weight:600}.check input{width:28px;height:28px;flex:none}.preview{width:100%;max-height:280px;object-fit:contain;margin-top:10px;border-radius:12px}.ideas,.results{display:grid;gap:12px}.bar{height:14px;background:var(--line);border-radius:8px;overflow:hidden;margin:8px 0}.bar i{display:block;height:100%;background:var(--ok);border-radius:8px}.detail ol,.detail ul{padding-left:1.2rem}.missing{list-style:none;padding:0;display:grid;gap:6px}.missing li{display:flex;align-items:center;gap:10px}.hint-list{margin:4px 0 8px;padding-left:1.2rem;color:var(--muted);font-size:.95rem}.links{display:grid;gap:8px}.links a{font-weight:700;min-height:44px;display:flex;align-items:center}.icon{flex:none}.step{margin:16px 0 0;padding:12px;border:2px dashed var(--line);border-radius:var(--radius)}.step h4{margin:0 0 6px;font-size:1.1rem}.step figcaption{font-weight:700;margin:6px 0}.build{display:block;width:100%;max-width:380px;height:auto;margin:0 auto;background:var(--bg);border-radius:12px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
