:root{
  --paper:#f5f5f2; --paper-2:#ffffff; --ink:#171918; --muted:#70746f;
  --line:#dedfda; --accent:#315c46; --accent-soft:#e8f0eb;
  --walnut-dark:#75401f; --gold:#d2a862; --danger:#a54a42;
  --shadow:0 10px 30px rgba(20,28,23,.06); --radius:18px;
}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);font-family:'Quicksand',sans-serif;}
main{max-width:920px;margin:0 auto;padding:28px 18px 80px;}
.studio-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px;flex-wrap:wrap;gap:8px;}
.studio-mark{display:flex;align-items:center;gap:10px;}
.studio-mark i{width:20px;height:20px;color:var(--accent);}
.studio-mark span{font-family:'Fraunces',serif;font-weight:800;font-size:1.15rem;letter-spacing:-.01em;}
.studio-tag{font-size:.68rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);background:var(--paper-2);border:1px solid var(--line);border-radius:999px;padding:5px 10px;}
h1{font-family:'Fraunces',serif;font-style:italic;font-weight:700;font-size:2rem;margin:6px 0 4px;letter-spacing:-.03em;}
.sub{color:var(--muted);margin:0 0 24px;font-size:.95rem;}
.add-btn{display:flex;align-items:center;gap:8px;border:0;border-radius:12px;background:var(--ink);color:#fff;padding:13px 20px;font-weight:700;font-family:inherit;font-size:.92rem;cursor:pointer;}
.add-btn i{width:17px;height:17px;}
.lib-toolbar{display:flex;align-items:center;justify-content:space-between;margin:28px 0 14px;}
.lib-toolbar h2{font-size:.78rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:0;}
.sort-toggle{display:flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--paper-2);border-radius:999px;padding:6px 12px;font-family:inherit;font-size:.76rem;font-weight:700;color:var(--ink);cursor:pointer;}
.sort-toggle i{width:13px;height:13px;}
.empty-state{color:var(--muted);font-size:.9rem;padding:30px 0;text-align:center;}
.hero-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px;}
.hero-card{background:var(--paper-2);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);}
.hero-thumb{aspect-ratio:4/3;position:relative;background:linear-gradient(135deg,#dfe8df,#c9d8cc);display:flex;align-items:center;justify-content:center;}
.hero-thumb img{width:100%;height:100%;object-fit:cover;}
.hero-thumb.empty i{width:26px;height:26px;color:#9caa9e;}
.hero-thumb .status-pill{position:absolute;top:9px;left:9px;font-size:.62rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;padding:4px 9px;border-radius:999px;background:rgba(255,255,255,.92);}
.status-draft{color:var(--muted);}
.status-scheduled{color:var(--walnut-dark);}
.status-active{color:#fff;background:var(--accent)!important;}
.status-past{color:#9a9d97;}
.hero-body{padding:12px 13px 14px;}
.hero-body .name{font-weight:700;font-size:.95rem;margin:0 0 2px;}
.hero-body .meta{font-size:.78rem;color:var(--muted);margin:0 0 10px;display:flex;align-items:center;gap:6px;}
.hero-body .meta i{width:13px;height:13px;}
.hero-actions{display:flex;gap:6px;}
.icon-btn{flex:1;display:flex;align-items:center;justify-content:center;border:1px solid var(--line);background:#fff;border-radius:9px;padding:7px 0;cursor:pointer;color:var(--ink);}
.icon-btn i{width:15px;height:15px;}
.icon-btn.danger{color:var(--danger);}

dialog{border:0;border-radius:20px;padding:0;width:min(480px,92vw);max-height:90vh;box-shadow:0 24px 60px rgba(0,0,0,.18);}
dialog::backdrop{background:rgba(23,25,24,.45);}
.dlg-shell{padding:22px 22px 20px;overflow-y:auto;max-height:90vh;}
.dlg-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:4px;}
.eyebrow{font-size:.68rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin:0;}
.dlg-head h3{font-family:'Fraunces',serif;font-weight:700;font-size:1.3rem;margin:4px 0 0;}
.dlg-close{border:0;background:none;cursor:pointer;color:var(--muted);padding:4px;}
.dlg-close i{width:18px;height:18px;}
.step-track{display:flex;gap:5px;margin:16px 0 18px;}
.step-track span{height:4px;flex:1;border-radius:2px;background:var(--line);}
.step-track span.done{background:var(--accent);}
.wizard-step[hidden]{display:none!important;}
.dropzone{border:1.5px dashed var(--line);border-radius:14px;padding:26px 16px;text-align:center;color:var(--muted);cursor:pointer;background:var(--accent-soft);}
.dropzone.filled{border-style:solid;border-color:var(--accent);background:var(--paper-2);padding:0;overflow:hidden;text-align:left;display:flex;align-items:center;gap:12px;cursor:default;}
.dropzone i{width:24px;height:24px;color:var(--accent);}
.dropzone p{margin:8px 0 0;font-size:.85rem;}
.dz-preview{width:64px;height:64px;background:linear-gradient(135deg,#dfe8df,#c9d8cc);flex-shrink:0;background-size:cover;background-position:center;}
.dz-info{padding:10px 12px 10px 0;}
.dz-info .fname{font-weight:700;font-size:.86rem;margin:0;}
.dz-info .fmeta{font-size:.76rem;color:var(--muted);margin:2px 0 0;}
.dim-error{display:flex;gap:8px;align-items:flex-start;background:#fbeceb;border:1px solid #e7bcb8;border-radius:10px;padding:10px 12px;margin-top:12px;}
.dim-error[hidden]{display:none!important;}
.dim-error i{width:16px;height:16px;color:var(--danger);flex-shrink:0;margin-top:1px;}
.dim-error p{margin:0;font-size:.8rem;color:var(--danger);line-height:1.4;}
.dlg-foot{display:flex;justify-content:space-between;align-items:center;margin-top:20px;}
.ghost-btn{border:0;background:none;color:var(--muted);font-weight:700;font-family:inherit;cursor:pointer;padding:10px 4px;}
.primary-button{border:0;border-radius:12px;background:var(--ink);color:#fff;padding:11px 22px;font-weight:700;font-family:inherit;cursor:pointer;}
.primary-button:disabled{opacity:.4;cursor:not-allowed;}
.field-label{font-size:.78rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);display:block;margin:0 0 8px;}

.detect-preview{position:relative;border-radius:14px;overflow:hidden;background:#eee;}
.detect-preview img{width:100%;display:block;}
.detect-preview>div{position:absolute;inset:0;}
.region-overlay{position:absolute;border:2px solid #fff;box-shadow:0 0 0 1px rgba(0,0,0,.25);border-radius:4px;}
.region-overlay span{position:absolute;top:-9px;left:-2px;background:var(--ink);color:#fff;font-size:.62rem;font-weight:800;padding:2px 6px;border-radius:5px;}
.region-list{margin-top:12px;display:flex;flex-direction:column;gap:6px;}
.region-row{display:flex;align-items:center;gap:8px;background:var(--paper-2);border:1px solid var(--line);border-radius:10px;padding:7px 9px;}
.region-row .swatch-dot{width:14px;height:14px;border-radius:50%;flex-shrink:0;}
.region-row input{border:0;background:none;font-family:inherit;font-weight:700;font-size:.85rem;flex:1;min-width:0;}
.region-row input:focus{outline:none;text-decoration:underline;}
.hint{font-size:.8rem;color:var(--muted);margin:10px 0 0;}

.swatch-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;}
.swatch-grid button{aspect-ratio:1;border-radius:50%;border:2px solid transparent;cursor:pointer;}
.swatch-grid button.selected{border-color:var(--ink);box-shadow:0 0 0 2px #fff,0 0 0 4px var(--ink);}

.hue-chips{display:flex;gap:10px;margin-bottom:6px;}
.palette-hero-preview{width:100%;max-height:140px;object-fit:cover;border-radius:12px;margin-bottom:14px;display:block;}.hue-chip{position:relative;}
.hue-chip-swatch{width:40px;height:40px;border-radius:50%;border:2px solid var(--line);cursor:pointer;}
.hue-chip-input{position:absolute;inset:0;width:40px;height:40px;opacity:0;pointer-events:none;border:0;padding:0;}
.text-button{border:0;background:none;color:var(--accent);font-weight:700;font-family:inherit;font-size:.8rem;cursor:pointer;padding:0;}

.month-input,.text-input{width:100%;border:1px solid var(--line);border-radius:10px;padding:11px 13px;font-family:inherit;font-size:.92rem;background:#fff;}
.month-input:focus,.text-input:focus{outline:none;border-color:var(--accent);}

.preview-summary{margin-top:14px;display:flex;flex-direction:column;gap:6px;font-size:.85rem;color:var(--muted);}
.preview-summary strong{color:var(--ink);}
.accent-chip{display:inline-flex;align-items:center;gap:6px;}
.accent-chip i{width:14px;height:14px;border-radius:50%;display:inline-block;}

.studio-version{position:fixed;bottom:12px;right:12px;font-size:.6rem;font-weight:600;color:var(--muted);opacity:.55;letter-spacing:.02em;background:var(--paper);padding:2px 6px;border-radius:6px;z-index:40;}
