:root{
  --bg:#fff; --ink:#0a0b0d; --muted:#5b616e; --line:#eaecef;
  --brand:#1652F0; --radius:14px;
}
*{box-sizing:border-box}
html,body{font-family:'Inter',system-ui,-apple-system,sans-serif;color:var(--ink);background:#fafbfc;-webkit-font-smoothing:antialiased}
img{max-width:100%}
.btn{border-radius:12px;font-weight:600}
.btn-dark{background:#0a0b0d;border-color:#0a0b0d}
.btn-dark:hover{background:#23262d;border-color:#23262d}
.btn-lg{padding:.85rem 1rem;font-size:1rem}
.form-control,.form-select{border-radius:12px;border-color:var(--line)}
.form-control-lg,.form-select-lg{padding:.85rem 1rem;font-size:1rem}
.alert{border-radius:12px}

.noto-color-emoji-regular {
  font-family: "Noto Color Emoji", sans-serif;
  font-weight: 400;
  font-style: normal;
}


/* Top nav */
.top-nav{background:#fff;border-bottom:1px solid var(--line);padding:.75rem 1rem;position:sticky;top:0;z-index:50}
.brand{font-weight:800;text-decoration:none;color:var(--ink);font-size:1.05rem}
.public-main{min-height:60vh}
.public-footer{border-top:1px solid var(--line);background:#fff;margin-top:2rem}

/* Hero */
.hero{background:linear-gradient(180deg,#fff,#f3f5f7)}
.hero-eco{background:linear-gradient(160deg,color-mix(in srgb,var(--c) 12%,#fff) 0%,#fff 70%)}
.search-bar{max-width:560px}

/* Ecosystem cards */
.eco-card{display:block;text-align:center;padding:1.25rem;background:#fff;border:1px solid var(--line);border-radius:var(--radius);text-decoration:none;color:var(--ink);transition:.15s}
.eco-card:hover{transform:translateY(-2px);border-color:var(--c);box-shadow:0 8px 24px rgba(0,0,0,.05)}
.eco-card .emoji{font-size:2rem}
.eco-card .lbl{font-weight:700;margin-top:.25rem}

/* Spacer grid */
.spacer-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem}
@media(min-width:768px){.spacer-grid{grid-template-columns:repeat(4,1fr)}}
.spacer-card{display:flex;align-items:center;gap:.6rem;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:.6rem;text-decoration:none;color:var(--ink);transition:.15s}
.spacer-card:hover{border-color:#cfd3d8}
.spacer-card .ava{width:46px;height:46px;border-radius:50%;overflow:hidden;flex-shrink:0;background:#f1f3f5}
.spacer-card .ava img{width:100%;height:100%;object-fit:cover}
.spacer-card .meta{min-width:0}
.spacer-card .t{font-weight:600;font-size:.92rem}

/* Auth */
.auth-wrap{max-width:430px;padding:2rem 1rem}
.auth-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1.5rem}

/* Onboarding */
.onb{max-width:480px;padding:1.5rem 1rem 5rem}
.onb-step{color:var(--muted);font-size:.85rem;text-transform:uppercase;letter-spacing:.06em}
.eco-pick{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1rem;background:#fff;border:2px solid var(--line);border-radius:var(--radius);cursor:pointer;transition:.15s}
.eco-pick input{display:none}
.eco-pick:has(input:checked){border-color:var(--c);background:color-mix(in srgb,var(--c) 8%,#fff)}
.eco-pick .emoji{font-size:1.8rem}
.eco-pick .lbl{font-weight:600;margin-top:.25rem;font-size:.9rem}

/* Upload widgets */
.upload-circle{display:inline-flex;flex-direction:column;align-items:center;cursor:pointer}
.upload-circle img{width:120px;height:120px;border-radius:50%;object-fit:cover;border:3px solid #fff;box-shadow:0 0 0 1px var(--line)}
.upload-circle.small img{width:90px;height:90px}
.upload-circle span{color:var(--brand);font-size:.85rem;margin-top:.4rem;font-weight:600}
.upload-square{display:inline-flex;flex-direction:column;align-items:center;cursor:pointer}
.upload-square img{width:160px;height:160px;object-fit:cover;border-radius:14px;border:1px solid var(--line)}
.upload-square span{color:var(--brand);font-size:.85rem;margin-top:.4rem;font-weight:600}
.cover-upload{margin-bottom:1rem}
.cover-pick{display:block;position:relative;cursor:pointer;border-radius:14px;overflow:hidden}
.cover-pick img{width:100%;height:140px;object-fit:cover}
.cover-pick span{position:absolute;right:.5rem;bottom:.5rem;background:#0a0b0d;color:#fff;font-size:.75rem;padding:.3rem .55rem;border-radius:8px}

/* ============== DASHBOARD ============== */
body.dash{background:#f3f5f7;padding-bottom:80px}
.dash-top{background:#fff;border-bottom:1px solid var(--line);padding:.7rem 1rem;position:sticky;top:0;z-index:30}
.dash-avatar img{width:38px;height:38px;border-radius:50%;object-fit:cover;border:1px solid var(--line)}
.dash-main{padding:1rem;max-width:560px;margin:0 auto}

/* Bottom nav */
.dash-bottom{position:fixed;bottom:0;left:0;right:0;background:#fff;border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(6,1fr);z-index:40;padding-bottom:env(safe-area-inset-bottom)}
.dash-bottom a{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:.5rem 0;color:var(--muted);text-decoration:none;font-size:.7rem}
.dash-bottom a .ico{font-size:1.2rem;line-height:1}
.dash-bottom a .lbl{margin-top:2px}
.dash-bottom a.active{color:var(--ink);font-weight:700}

/* Cards */
.card-soft{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1rem;margin-bottom:.75rem}
.section-title{margin-top:1.2rem;margin-bottom:.6rem;font-weight:700;color:var(--ink)}
.empty{text-align:center;padding:2rem 1rem;color:var(--muted);background:#fff;border:1px dashed var(--line);border-radius:var(--radius)}

/* Stats */
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem}
.stat-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:.75rem;text-align:center}
.stat-num{font-weight:800;font-size:1.15rem;color:var(--ink)}
.stat-lbl{font-size:.7rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-top:2px}

/* List cards */
.list-cards .lc{display:flex;justify-content:space-between;align-items:center;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:.85rem 1rem;margin-bottom:.5rem;text-decoration:none;color:var(--ink)}
.list-cards .lc:hover{border-color:#cfd3d8}

/* Product grid */
.product-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.6rem}
@media(min-width:768px){.product-grid{grid-template-columns:repeat(3,1fr)} .product-grid.public{grid-template-columns:repeat(4,1fr)}}
.pg-item{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.pg-item a{display:block;text-decoration:none;color:var(--ink);padding:.5rem}
.pg-item .thumb{aspect-ratio:1;background:#f1f3f5;border-radius:10px;overflow:hidden;margin-bottom:.4rem}
.pg-item .thumb img{width:100%;height:100%;object-fit:cover}
.pg-item .t{font-size:.9rem;font-weight:600;padding:0 .5rem}
.pg-item .price{padding:0 .5rem;font-weight:700;color:var(--ink)}
.pg-item .desc{padding:0 .5rem .25rem}

/* Gallery */
.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.4rem}
.gallery-grid .gi{position:relative;aspect-ratio:1;background:#f1f3f5;border-radius:10px;overflow:hidden}
.gallery-grid .gi img{width:100%;height:100%;object-fit:cover}
.gallery-grid .gi .del{position:absolute;top:4px;right:4px;background:rgba(0,0,0,.65);color:#fff;border:0;border-radius:50%;width:24px;height:24px;line-height:1;font-size:.95rem}

/* ============== PUBLIC SPACER PAGE ============== */
.spacer-page{padding-bottom:2rem}
.spacer-page .cover{height:160px;background:#eee center/cover}
.spacer-page .head{text-align:center;margin-top:-50px;padding:0 1rem}
.spacer-page .head .ava{width:100px;height:100px;border-radius:50%;overflow:hidden;margin:0 auto .6rem;border:4px solid #fff;background:#fff;box-shadow:0 4px 16px rgba(0,0,0,.06)}
.spacer-page .head .ava img{width:100%;height:100%;object-fit:cover}
.spacer-page .head .bio{color:var(--muted);max-width:520px;margin:0 auto}
.spacer-page .action-bar{display:flex;gap:.5rem;margin:1rem auto;max-width:520px}
.spacer-page .meta-block{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:.8rem 1rem;margin:1rem auto;max-width:520px;text-align:left;font-size:.9rem}
.spacer-page .social-row{display:flex;justify-content:center;flex-wrap:wrap;gap:.4rem;margin:.6rem 0}
.spacer-page .social-row .soc{background:#fff;border:1px solid var(--line);padding:.3rem .7rem;border-radius:99px;font-size:.8rem;color:var(--ink);text-decoration:none}

/* Quick CTA */
.quick-cta .btn{font-size:1rem}

/* Small touches */
.badge{font-weight:500}
a{color:var(--brand);text-decoration:none}
a:hover{text-decoration:underline}
hr{border-color:var(--line)}


/* Setup checklist */
.setup-card{background:linear-gradient(180deg,#fff,#fafbfc)}
.setup-steps{display:flex;flex-direction:column;gap:.35rem;margin-top:.5rem}
.setup-steps .setup-step{display:flex;align-items:center;gap:.5rem;padding:.4rem .6rem;background:#f7f9fb;border-radius:10px;text-decoration:none;color:var(--ink);font-size:.9rem}
.setup-steps .setup-step:hover{background:#eef2f6}
.setup-steps .setup-step.done{color:var(--muted);text-decoration:line-through}

/* Revenue strip */
.revenue-strip{background:#0a0b0d;color:#fff;border-radius:var(--radius);padding:.85rem 1rem}
.revenue-strip .revenue-amt{font-size:1.4rem;font-weight:800;margin-top:2px;font-feature-settings:"tnum"}

/* Pending order urgency */
.list-cards .lc-urgent{border-color:#FFD68A;background:#fffaf0}
.dot-pulse{display:inline-block;width:8px;height:8px;border-radius:50%;background:#FF9500;margin-right:6px;animation:pulse 1.5s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(255,149,0,.5)}70%{box-shadow:0 0 0 8px rgba(255,149,0,0)}100%{box-shadow:0 0 0 0 rgba(255,149,0,0)}}

/* Dropdown active spacer highlight */
.dropdown-menu .dropdown-item.active{background:#0a0b0d;color:#fff}
.dropdown-menu .dropdown-item.active small{color:rgba(255,255,255,.7)!important}

/* Status badge clarity in dark header */
.dash-top .badge{font-size:.65rem}

/* Progress bar finetune */
.progress{background:#eef2f6;border-radius:99px;overflow:hidden}
.progress-bar{transition:width .4s ease}