/* ===== RESET & BASE ===== */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --c-warm:#FF6B35;--c-warm-light:#FFF0EB;--c-warm-dark:#CC5528;
  --c-peak:#E63946;--c-peak-light:#FDE8EA;--c-peak-dark:#B82E3A;
  --cool:#4A90D9;--c-cool-light:#EBF3FB;--c-cool-dark:#3A73B0;
  --c-bg:#0F0F12;--c-surface:#1A1A20;--c-surface2:#242430;--c-border:#2E2E3A;
  --c-text:#E8E8ED;--c-text-dim:#9898A8;--c-text-muted:#6B6B7E;
  --font:system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  --radius:12px;--radius-sm:8px;--shadow:0 2px 16px rgba(0,0,0,.3);
  --max-width:1200px;
}
html{font-size:16px;scroll-behavior:smooth}
body{font-family:var(--font);background:var(--c-bg);color:var(--c-text);line-height:1.6;-webkit-font-smoothing:antialiased}
img,svg{max-width:100%;height:auto}
a{color:var(--c-warm);text-decoration:none}
a:hover{text-decoration:underline}
ul{list-style:none}
.container{max-width:var(--max-width);margin:0 auto;padding:0 20px}

/* ===== HEADER ===== */
.site-header{background:var(--c-surface);border-bottom:1px solid var(--c-border);position:sticky;top:0;z-index:100}
.site-header .container{display:flex;align-items:center;justify-content:space-between;height:56px}
.logo{display:flex;align-items:center;gap:10px;color:var(--c-text);font-weight:700;font-size:1.1rem}
.logo:hover{text-decoration:none}
.logo svg{flex-shrink:0}
.main-nav{display:flex;gap:24px}
.main-nav a{color:var(--c-text-dim);font-size:.9rem;font-weight:500}
.main-nav a:hover{color:var(--c-text);text-decoration:none}

/* ===== HERO ===== */
.hero{padding:80px 0 60px;text-align:center;background:linear-gradient(180deg,var(--c-surface) 0%,var(--c-bg) 100%)}
.hero h1{font-size:clamp(1.8rem,4vw,2.8rem);font-weight:800;line-height:1.2;margin-bottom:16px;background:linear-gradient(135deg,var(--c-warm),var(--c-peak),var(--cool));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.hero-sub{font-size:1.1rem;color:var(--c-text-dim);max-width:560px;margin:0 auto 32px}

/* ===== BUTTONS ===== */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 20px;border-radius:var(--radius-sm);font-size:.9rem;font-weight:600;cursor:pointer;border:2px solid transparent;transition:all .2s;font-family:var(--font);white-space:nowrap}
.btn-primary{background:var(--c-warm);color:#fff;border-color:var(--c-warm)}
.btn-primary:hover{background:var(--c-warm-dark);border-color:var(--c-warm-dark);text-decoration:none}
.btn-secondary{background:var(--c-surface2);color:var(--c-text);border-color:var(--c-border)}
.btn-secondary:hover{background:var(--c-border);text-decoration:none}
.btn-ghost{background:transparent;color:var(--c-text-dim);border-color:var(--c-border);padding:8px 14px;font-size:.82rem}
.btn-ghost:hover{color:var(--c-text);border-color:var(--c-text-muted);text-decoration:none}
.btn-lg{padding:14px 28px;font-size:1rem}
.btn-sm{padding:6px 12px;font-size:.8rem}

/* ===== FORM FIELDS ===== */
.field{margin-bottom:16px}
.field label{display:block;font-size:.82rem;font-weight:600;color:var(--c-text-dim);margin-bottom:6px;text-transform:uppercase;letter-spacing:.5px}
.field input,.field select{width:100%;padding:10px 14px;background:var(--c-surface2);border:1px solid var(--c-border);border-radius:var(--radius-sm);color:var(--c-text);font-size:.95rem;font-family:var(--font);transition:border-color .2s}
.field input:focus,.field select:focus{outline:none;border-color:var(--c-warm);box-shadow:0 0 0 3px rgba(255,107,53,.15)}
.field select{cursor:pointer;appearance:auto}
.song-input-row{display:flex;gap:8px;flex-wrap:wrap;align-items:flex-end}
.song-input-row label{width:100%}
.song-input-row input[type="text"]{flex:2;min-width:140px}
.song-input-row input[type="number"]{flex:0 0 80px}
.help-text{font-size:.8rem;color:var(--c-text-muted);margin-top:6px}

/* ===== BUILDER LAYOUT ===== */
.builder-section{padding:48px 0}
.builder-grid{display:grid;grid-template-columns:320px 1fr;gap:32px;align-items:start}
.controls-panel{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius);padding:24px;position:sticky;top:72px}
.controls-panel h2{font-size:1.1rem;margin-bottom:20px}

/* ===== PHASE INFO CARDS ===== */
.phase-info{display:flex;flex-direction:column;gap:10px;margin:20px 0}
.phase-card{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:var(--radius-sm);font-size:.85rem}
.phase-warm{background:var(--c-warm-light);color:var(--c-warm-dark)}
.phase-peak{background:var(--c-peak-light);color:var(--c-peak-dark)}
.phase-cool{background:var(--c-cool-light);color:var(--c-cool-dark)}
.phase-label{font-weight:700;min-width:60px}
.phase-bpm{font-weight:600;flex:1}
.phase-time{color:inherit;opacity:.8;font-size:.8rem}

/* ===== PRESET CHIPS ===== */
.preset-area{margin-top:16px}
.preset-label{font-size:.8rem;color:var(--c-text-muted);margin-bottom:8px}
.preset-chips{display:flex;flex-wrap:wrap;gap:6px}
.preset-chip{padding:4px 10px;background:var(--c-surface2);border:1px solid var(--c-border);border-radius:20px;font-size:.78rem;color:var(--c-text-dim);cursor:pointer;transition:all .2s;font-family:var(--font)}
.preset-chip:hover{border-color:var(--c-warm);color:var(--c-warm)}

/* ===== BUCKET PANEL ===== */
.bucket-actions{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:20px}
.buckets-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:20px}
.bucket{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius);padding:16px;min-height:200px}
.bucket h3{font-size:.95rem;display:flex;align-items:center;gap:8px;margin-bottom:4px}
.bucket-range{font-size:.78rem;color:var(--c-text-muted);margin-bottom:12px}
.bucket-dot{width:10px;height:10px;border-radius:50%;display:inline-block;flex-shrink:0}
.bucket-dot-warm{background:var(--c-warm)}
.bucket-dot-peak{background:var(--c-peak)}
.bucket-dot-cool{background:var(--cool)}
.song-list{display:flex;flex-direction:column;gap:6px}
.song-item{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:var(--c-surface2);border-radius:var(--radius-sm);font-size:.85rem;cursor:grab;transition:background .2s;border:1px solid transparent}
.song-item:hover{background:var(--c-border)}
.song-item.dragging{opacity:.5}
.song-item-title{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-right:8px}
.song-item-bpm{font-weight:700;font-size:.78rem;color:var(--c-text-muted);margin-right:8px}
.song-item-remove{background:none;border:none;color:var(--c-text-muted);cursor:pointer;font-size:1.1rem;line-height:1;padding:2px 6px;border-radius:4px}
.song-item-remove:hover{color:var(--c-peak);background:var(--c-peak-light)}
.bucket-empty{font-size:.82rem;color:var(--c-text-muted);font-style:italic;padding:12px 0}
.unassigned-area{background:var(--c-surface);border:1px dashed var(--c-border);border-radius:var(--radius);padding:16px}
.unassigned-area h3{font-size:.9rem;margin-bottom:4px}

/* ===== GUIDE SECTION ===== */
.guide-section{padding:64px 0;background:var(--c-surface)}
.guide-section h2{font-size:1.6rem;text-align:center;margin-bottom:40px}
.guide-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.guide-step{background:var(--c-bg);border:1px solid var(--c-border);border-radius:var(--radius);padding:24px}
.step-num{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:var(--c-warm);color:#fff;font-weight:800;font-size:.9rem;margin-bottom:12px}
.guide-step h3{font-size:1rem;margin-bottom:8px}
.guide-step p{font-size:.88rem;color:var(--c-text-dim);line-height:1.5}

/* ===== EXAMPLES SECTION ===== */
.examples-section{padding:64px 0}
.examples-section h2{font-size:1.6rem;text-align:center;margin-bottom:12px}
.section-intro{text-align:center;color:var(--c-text-dim);margin-bottom:32px;font-size:.95rem}
.examples-table-wrap{overflow-x:auto}
.examples-table{width:100%;border-collapse:collapse;font-size:.9rem}
.examples-table th{text-align:left;padding:12px 16px;background:var(--c-surface);color:var(--c-text-dim);font-size:.78rem;text-transform:uppercase;letter-spacing:.5px;border-bottom:2px solid var(--c-border)}
.examples-table td{padding:12px 16px;border-bottom:1px solid var(--c-border)}
.examples-table tr:hover td{background:var(--c-surface)}

/* ===== TIPS SECTION ===== */
.tips-section{padding:64px 0;background:var(--c-surface)}
.tips-section h2{font-size:1.6rem;text-align:center;margin-bottom:32px}
.tips-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin-bottom:40px}
.tip-card{background:var(--c-bg);border:1px solid var(--c-border);border-radius:var(--radius);padding:24px}
.tip-card h3{font-size:1rem;margin-bottom:8px;color:var(--c-warm)}
.tip-card p{font-size:.88rem;color:var(--c-text-dim);line-height:1.5}
.assumptions-box{background:var(--c-surface2);border:1px solid var(--c-border);border-radius:var(--radius);padding:24px}
.assumptions-box h3{font-size:1rem;margin-bottom:12px}
.assumptions-box ul{list-style:disc;padding-left:20px}
.assumptions-box li{font-size:.88rem;color:var(--c-text-dim);margin-bottom:6px;line-height:1.5}

/* ===== FOOTER ===== */
.site-footer{background:var(--c-surface);border-top:1px solid var(--c-border);padding:40px 0 24px}
.footer-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-bottom:24px}
.footer-grid strong{font-size:.85rem;text-transform:uppercase;letter-spacing:.5px;color:var(--c-text-dim)}
.footer-grid p{font-size:.85rem;color:var(--c-text-muted);margin-top:6px}
.footer-grid a{color:var(--c-text-muted)}
.footer-grid a:hover{color:var(--c-text)}
.footer-meta{text-align:center;font-size:.78rem;color:var(--c-text-muted);padding-top:16px;border-top:1px solid var(--c-border)}

/* ===== PRINT STYLES ===== */
@media print{
  .site-header,.site-footer,.controls-panel,.bucket-actions,.tips-section,.examples-section,.guide-section,.hero{display:none!important}
  body{background:#fff;color:#000}
  .builder-section{padding:0}
  .builder-grid{display:block}
  .bucket{border:1px solid #ccc;break-inside:avoid;margin-bottom:16px}
  .bucket h3{color:#000}
  .song-item{background:#f5f5f5;color:#000}
  .unassigned-area{border:1px dashed #ccc}
}

/* ===== RESPONSIVE ===== */
@media(max-width:900px){
  .builder-grid{grid-template-columns:1fr}
  .controls-panel{position:static}
  .buckets-grid{grid-template-columns:1fr}
  .guide-grid{grid-template-columns:repeat(2,1fr)}
  .tips-grid{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr;text-align:center}
}
@media(max-width:600px){
  .hero{padding:48px 0 36px}
  .guide-grid{grid-template-columns:1fr}
  .main-nav{gap:12px}
  .main-nav a{font-size:.82rem}
  .bucket-actions{flex-direction:column}
  .bucket-actions .btn{width:100%}
}

/* ===== TOAST ===== */
.toast{position:fixed;bottom:24px;right:24px;background:var(--c-surface2);border:1px solid var(--c-border);color:var(--c-text);padding:12px 20px;border-radius:var(--radius-sm);font-size:.85rem;box-shadow:var(--shadow);z-index:999;transition:opacity .3s,transform .3s;opacity:0;transform:translateY(8px);pointer-events:none}
.toast.show{opacity:1;transform:translateY(0)}



/* Factory-injected deployment helpers. The AI owns the site design above this block. */
.ad-unit {
  width: min(100%, 720px);
  min-height: 120px;
  margin: 24px auto;
  display: block;
}

.legal-page {
  width: min(900px, calc(100% - 32px));
  margin: 40px auto;
}

.factory-fallback-nav {
  width: min(900px, calc(100% - 32px));
  margin: 24px auto 0;
  display: flex;
  flex-wrap: wrap;
  gap: 10px 16px;
  align-items: center;
  font-size: 0.95rem;
}

.factory-fallback-nav a {
  color: inherit;
  text-decoration: none;
  border-bottom: 1px solid currentColor;
}
