:root{color-scheme:dark;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5;--bg: #0a0a0a;--surface: #141414;--border: rgba(255, 255, 255, .1);--text: #fafafa;--text-dim: rgba(255, 255, 255, .55);--accent: #6366f1;--accent-hover: #818cf8;--danger: #ef4444;--danger-hover: #f87171;--radius: .75rem}*{box-sizing:border-box;margin:0}html,body,#root{min-height:100vh;background:var(--bg);color:var(--text)}.app{max-width:720px;margin:0 auto;padding:2rem 1.25rem 4rem}.header{text-align:center;margin-bottom:2.5rem}.header h1{font-size:1.75rem;font-weight:700;letter-spacing:-.03em;margin-bottom:.25rem}.subtitle{color:var(--text-dim);font-size:.9rem}.section{margin-bottom:2rem}.palette-row{display:flex;gap:.5rem;margin-bottom:1.25rem}.color-swatch{flex:1;aspect-ratio:1 / 1.3;border:none;border-radius:var(--radius);cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.35rem;position:relative;transition:transform .15s ease,box-shadow .15s ease;font-family:inherit}.color-swatch:hover{transform:translateY(-4px);box-shadow:0 8px 24px #0006}.color-swatch:active{transform:translateY(-2px)}.hex-label{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.75rem;font-weight:600;letter-spacing:.04em;opacity:.85}.copied-toast{position:absolute;bottom:.5rem;font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;background:#0009;color:#fff;padding:.15rem .5rem;border-radius:.25rem;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.controls{display:flex;gap:.75rem;flex-wrap:wrap}.btn{font-family:inherit;font-size:.85rem;font-weight:600;border:none;border-radius:.5rem;padding:.6rem 1.25rem;cursor:pointer;transition:background .15s ease,transform .1s ease}.btn:active{transform:scale(.97)}.btn-primary{background:var(--accent);color:#fff;flex:1}.btn-primary:hover{background:var(--accent-hover)}.save-row{display:flex;gap:.5rem;flex:2}.name-input{flex:1;font-family:inherit;font-size:.85rem;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:.5rem;padding:.6rem .85rem;outline:none;transition:border-color .15s ease}.name-input::placeholder{color:var(--text-dim)}.name-input:focus{border-color:var(--accent)}.btn-save{background:#22c55e;color:#0a0a0a;white-space:nowrap}.btn-save:hover{background:#4ade80}.btn-toggle{width:100%;background:var(--surface);color:var(--text-dim);border:1px solid var(--border);border-radius:.5rem;padding:.65rem 1rem;font-size:.85rem;font-weight:500;cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease;margin-bottom:1.25rem}.btn-toggle:hover{background:#ffffff0f;color:var(--text);border-color:#ffffff2e}.saved-section{margin-bottom:2rem}.empty-msg{color:var(--text-dim);font-size:.9rem;text-align:center;padding:2rem 0}.saved-grid{display:grid;grid-template-columns:1fr;gap:.75rem}.saved-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;transition:border-color .15s ease}.saved-card:hover{border-color:#fff3}.saved-colors{display:flex;height:3rem}.saved-swatch{flex:1;cursor:pointer;transition:flex .15s ease}.saved-swatch:hover{flex:1.5}.saved-info{display:flex;align-items:center;justify-content:space-between;padding:.6rem .85rem;gap:.5rem}.saved-name{font-size:.85rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.saved-actions{display:flex;gap:.35rem;flex-shrink:0}.btn-icon{font-family:inherit;font-size:.75rem;font-weight:600;background:#ffffff14;color:var(--text-dim);border:none;border-radius:.35rem;padding:.3rem .65rem;cursor:pointer;transition:background .15s ease,color .15s ease}.btn-icon:hover{background:#ffffff24;color:var(--text)}.btn-delete:hover{background:#ef444433;color:var(--danger-hover)}@media(max-width:520px){.app{padding:1.25rem 1rem 3rem}.header h1{font-size:1.35rem}.palette-row{gap:.35rem}.hex-label{font-size:.6rem}.controls{flex-direction:column}.save-row{flex:unset}.saved-grid{grid-template-columns:1fr}}@media(min-width:520px){.saved-grid{grid-template-columns:1fr 1fr}}
