*{box-sizing:border-box;margin:0;padding:0}

:root{
  --bg:#fff;--bg2:#f5f5f3;--bg3:#eeede8;
  --text:#1a1a18;--text2:#6b6b67;--text3:#9e9e99;
  --border:rgba(0,0,0,0.1);--border2:rgba(0,0,0,0.2);
  --radius:8px;--radius-lg:12px;--radius-xl:16px;
  --accent:#2563eb;--accent-light:#EFF6FF;--accent-text:#1d4ed8;
  --shadow:0 1px 4px rgba(0,0,0,0.08),0 4px 16px rgba(0,0,0,0.05);
  --shadow-lg:0 8px 32px rgba(0,0,0,0.12);
}

@media(prefers-color-scheme:dark){:root{
  --bg:#1e1e1c;--bg2:#252523;--bg3:#2d2d2a;
  --text:#e8e8e4;--text2:#9e9e99;--text3:#6b6b67;
  --border:rgba(255,255,255,0.08);--border2:rgba(255,255,255,0.18);
}}

body{
  font-family:-apple-system,BlinkMacSystemFont,'Segoe UI','Helvetica Neue',sans-serif;
  background:var(--bg3);color:var(--text);min-height:100vh;
  font-size:14px;line-height:1.5;
}

input,select,textarea{
  width:100%;padding:8px 10px;border:1px solid var(--border2);
  border-radius:var(--radius);font-size:14px;background:var(--bg);
  color:var(--text);font-family:inherit;transition:border-color .15s,box-shadow .15s;
}
input:focus,select:focus,textarea:focus{
  outline:none;border-color:var(--accent);
  box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 18%,transparent);
}
label{font-size:13px;color:var(--text2);display:block;margin-bottom:4px}

button{cursor:pointer;font-family:inherit}
.btn{
  display:inline-flex;align-items:center;gap:6px;
  padding:7px 14px;border-radius:var(--radius);border:1px solid var(--border2);
  background:var(--bg);color:var(--text);font-size:13px;font-weight:500;
  transition:background .15s,border-color .15s,box-shadow .15s;white-space:nowrap;
}
.btn:hover{background:var(--bg2);border-color:var(--border2)}
.btn-primary{background:var(--accent);color:#fff;border-color:var(--accent)}
.btn-primary:hover{opacity:.88}
.btn-ghost{border-color:transparent;background:transparent}
.btn-ghost:hover{background:var(--bg2)}
.btn-danger{color:#dc2626;border-color:#dc2626}
.btn-danger:hover{background:#fef2f2}
.btn-sm{padding:4px 10px;font-size:12px}
.btn-icon{padding:6px;border-radius:6px;border:none;background:transparent;color:var(--text2)}
.btn-icon:hover{background:var(--bg2);color:var(--text)}

.divider{border:none;border-top:1px solid var(--border);margin:12px 0}
.empty{color:var(--text2);font-size:13px;padding:1.5rem;text-align:center}
.badge{display:inline-block;padding:1px 7px;border-radius:999px;font-size:11px;font-weight:600}

/* Overlay */
.overlay{
  position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:100;
  display:flex;align-items:center;justify-content:center;
  opacity:0;pointer-events:none;transition:opacity .2s;
}
.overlay.open{opacity:1;pointer-events:auto}
.modal{
  background:var(--bg);border-radius:var(--radius-xl);
  box-shadow:var(--shadow-lg);width:min(480px,95vw);
  max-height:90vh;overflow-y:auto;padding:24px;
  transform:translateY(8px);transition:transform .2s;
}
.overlay.open .modal{transform:translateY(0)}
.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}
.modal-header h2{font-size:16px;font-weight:600}
.modal-body{display:flex;flex-direction:column;gap:14px}
.modal-footer{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}

/* Color dots */
.color-dot{width:14px;height:14px;border-radius:50%;display:inline-block;flex-shrink:0}
.color-picker-row{display:flex;flex-wrap:wrap;gap:8px;padding:4px 0}
.color-swatch{width:28px;height:28px;border-radius:50%;cursor:pointer;border:2px solid transparent;transition:transform .1s}
.color-swatch:hover{transform:scale(1.15)}
.color-swatch.selected{border-color:var(--text);transform:scale(1.1)}

/* Toast */
#toast{
  position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(20px);
  background:#1a1a18;color:#fff;padding:10px 20px;border-radius:999px;
  font-size:13px;opacity:0;transition:opacity .2s,transform .2s;z-index:999;pointer-events:none;
}
#toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

/* Color Picker */
.cp-wrap{display:flex;flex-direction:column;gap:8px}
.cp-swatches{display:flex;flex-wrap:wrap;gap:6px;padding-bottom:4px;border-bottom:1px solid var(--border)}
.cp-swatch{width:24px;height:24px;border-radius:50%;cursor:pointer;border:2px solid transparent;transition:transform .1s,border-color .1s;flex-shrink:0}
.cp-swatch:hover{transform:scale(1.18)}
.cp-swatch.active{border-color:var(--text);transform:scale(1.1)}
.cp-gradient{width:100%;height:140px;border-radius:var(--radius);cursor:crosshair;position:relative;border:1px solid var(--border2)}
.cp-cursor{width:12px;height:12px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px rgba(0,0,0,.4);position:absolute;transform:translate(-50%,-50%);pointer-events:none}
.cp-hue{width:100%;height:14px;border-radius:999px;cursor:pointer;position:relative;
  background:linear-gradient(to right,#f00,#ff0,#0f0,#0ff,#00f,#f0f,#f00)}
.cp-hue-thumb{width:16px;height:16px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px rgba(0,0,0,.4);position:absolute;top:50%;transform:translate(-50%,-50%);pointer-events:none}
.cp-preview-row{display:flex;align-items:center;gap:8px}
.cp-preview{width:32px;height:32px;border-radius:50%;border:1px solid var(--border2);flex-shrink:0}
.cp-hex{flex:1;font-size:13px;font-family:monospace}

/* Scrollbar */
::-webkit-scrollbar{width:5px;height:5px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--border2);border-radius:4px}
