:root{--bg: #0b0d12;--bg-soft: #11131a;--card: #141824;--card-2: #191e2e;--text: #e6e9f2;--muted: #a7afc6;--accent: #6c8cff;--primary: #7c4dff;--ring: rgba(124,77,255,.35);--shadow: 0 10px 30px rgba(0,0,0,.35);--radius: 16px}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,Noto Sans,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol;background:radial-gradient(1000px 600px at 80% -10%,#1a1f33,transparent),radial-gradient(600px 400px at -10% 100%,#231a33,transparent),var(--bg);color:var(--text)}.app{display:grid;grid-template-rows:auto 1fr auto;min-height:100%}.header{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;background:linear-gradient(180deg,#ffffff0a,#fff0);border-bottom:1px solid rgba(255,255,255,.06);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.brand{display:flex;gap:12px;align-items:center}.logo{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:6px;background:linear-gradient(145deg,var(--primary),#4f7cff);color:#fff;box-shadow:var(--shadow)}.header h1{font-size:18px;margin:0;font-weight:800;letter-spacing:.2px}.hint{color:var(--muted);font-size:12px}.container{display:grid;gap:22px;grid-template-columns:320px 1fr;padding:22px}@media (max-width: 900px){.container{grid-template-columns:1fr}}.panel{background:linear-gradient(180deg,#ffffff0d,#ffffff05);border:1px solid rgba(255,255,255,.06);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px;display:grid;gap:16px}.stage{background:linear-gradient(180deg,#ffffff0d,#ffffff05);border:1px solid rgba(255,255,255,.06);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px;display:grid;place-items:center}.grid{width:min(92vmin,720px);aspect-ratio:1 / 1;display:grid;gap:2px;background:var(--card-2);padding:12px;border-radius:calc(var(--radius) - 6px);box-shadow:inset 0 0 0 1px #ffffff0a}.cell{border:0;border-radius:4px;outline:none;background:transparent;cursor:crosshair;transition:transform 80ms ease,box-shadow .12s ease;box-shadow:inset 0 0 0 1px #ffffff0a}.cell:hover{transform:scale(1.03);box-shadow:0 0 0 2px var(--ring),inset 0 0 0 1px #ffffff14}.toolbar{display:grid;gap:14px}.group{background:var(--card);border:1px solid rgba(255,255,255,.06);border-radius:12px;padding:12px}.label{display:block;font-size:12px;color:var(--muted);margin-bottom:8px}.segmented{display:inline-flex;background:var(--card-2);border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:4px;gap:4px}.seg{background:transparent;color:var(--text);border:0;padding:8px 12px;border-radius:8px;cursor:pointer}.seg.active{background:linear-gradient(145deg,#2a3350,#202741);box-shadow:inset 0 0 0 1px #ffffff0f}.actions{display:flex;flex-wrap:wrap;gap:8px}.btn{background:#232a45;color:var(--text);border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:8px 12px;cursor:pointer;transition:transform 80ms ease,box-shadow .12s ease}.btn:hover{transform:translateY(-1px);box-shadow:0 8px 20px #00000040}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:linear-gradient(145deg,var(--primary),#4f7cff);border-color:#fff3}.palette .palette-header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.palette h2{font-size:16px;margin:0}.palette-create{display:flex;gap:8px;align-items:center}.palette .swatches{display:grid;grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:8px}.swatch{display:grid;grid-template-columns:1fr 28px;gap:6px;align-items:center;background:var(--card-2);border:1px solid rgba(255,255,255,.06);border-radius:10px;padding:6px}.swatch.active{box-shadow:0 0 0 2px var(--ring)}.swatch-color{height:28px;border-radius:8px;border:0;cursor:pointer}.swatch-remove{border:0;border-radius:8px;background:#22263b;color:#aab2d3;height:28px;cursor:pointer}.footer{padding:12px 22px 24px}.presets{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.preset{display:inline-flex;align-items:center;gap:10px;background:#1a1f33;color:var(--text);border:1px solid rgba(255,255,255,.06);border-radius:999px;padding:6px 10px;cursor:pointer}.preset-name{font-size:12px;color:var(--muted)}.preset-swatches{display:inline-flex;gap:4px}.preset-swatches i{width:14px;height:14px;border-radius:3px;display:inline-block;box-shadow:inset 0 0 0 1px #ffffff26}
