/* ===========================================================================
   ForeverBond — stylesheet
   Layout mirrors the reference matrimony sites: hero search widget, trust
   badges, feature cards, story cards, FAQ accordion, explore link farm and a
   multi-column footer. Only the --primary var is brand-configurable.
   =========================================================================== */

:root{
  --primary: #d81b60;
  --primary-600: #c2185b;
  --primary-100: #fce4ec;
  --primary-50: #fdf2f6;
  --ink: #1f2330;
  --ink-2: #4b5066;
  --muted: #6b7189;
  --line: #e6e2f0;
  --card: #ffffff;
  --bg: #faf8fc;
  --rose: #ff6f61;
  --gold: #c9a227;
  --ok: #1e9e6a;
  --warn: #e8a33d;
  --danger: #d64545;
  --radius: 16px;
  --shadow-sm: 0 1px 2px rgba(31,35,48,.06), 0 1px 3px rgba(31,35,48,.04);
  --shadow-md: 0 4px 16px rgba(31,35,48,.08);
  --shadow-lg: 0 18px 50px rgba(216,27,96,.14);
  --wrap: 1180px;
}

*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
body{
  margin:0;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,"Apple Color Emoji",sans-serif;
  color:var(--ink);
  background:var(--bg);
  font-size:16px;
  line-height:1.55;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
a:hover{color:var(--primary);}
h1,h2,h3,h4{line-height:1.2;margin:0 0 .4em;}
h1{font-size:2.1rem;}
h2{font-size:1.5rem;}
h3{font-size:1.15rem;}
.small,small{font-size:.85rem;}
.muted{color:var(--muted);}
.small.muted,small.muted{font-size:.8rem;}
hr{border:0;border-top:1px solid var(--line);margin:1rem 0;}
code{background:var(--primary-50);padding:.1em .4em;border-radius:6px;font-size:.85em;}
.wrap{width:min(var(--wrap),100% - 2rem);margin-inline:auto;}

/* ---------------- buttons ---------------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.4rem;
  border:1px solid transparent;border-radius:999px;padding:.62rem 1.15rem;
  font-weight:600;font-size:.95rem;cursor:pointer;text-align:center;
  transition:transform .08s ease, box-shadow .15s ease, background .15s ease;
  line-height:1.1;white-space:nowrap;
}
.btn:active{transform:translateY(1px);}
.btn-primary{background:var(--primary);color:#fff;box-shadow:0 6px 16px rgba(216,27,96,.25);}
.btn-primary:hover{background:var(--primary-600);color:#fff;}
.btn-outline{border-color:var(--primary);color:var(--primary);background:transparent;}
.btn-outline:hover{background:var(--primary-50);color:var(--primary);}
.btn-ghost{background:#fff;border-color:var(--line);color:var(--ink);}
.btn-ghost:hover{border-color:var(--primary);color:var(--primary);}
.btn-ghost.danger{color:var(--danger);}
.btn-ghost.danger:hover{border-color:var(--danger);}
.btn-lg{padding:.8rem 1.5rem;font-size:1rem;}
.btn-sm{padding:.4rem .8rem;font-size:.85rem;}
.btn-block{width:100%;margin-top:.5rem;}
.link-more{color:var(--primary);font-weight:600;font-size:.95rem;white-space:nowrap;}

/* ---------------- header ---------------- */
.site-header{
  position:sticky;top:0;z-index:50;background:rgba(255,255,255,.96);
  backdrop-filter:saturate(160%) blur(8px);border-bottom:1px solid var(--line);
}
.header-row{display:flex;align-items:center;gap:1.2rem;min-height:64px;}
.brand{display:flex;align-items:center;gap:.55rem;font-weight:800;font-size:1.3rem;color:var(--primary);flex-shrink:0;}
.brand:hover{color:var(--primary);}
.brand-logo{height:36px;width:auto;}
.brand-text{letter-spacing:-.5px;}
.main-nav{display:flex;gap:1.1rem;align-items:center;font-weight:500;font-size:.95rem;flex-wrap:wrap;}
.header-actions{margin-left:auto;display:flex;align-items:center;gap:.6rem;}
.icon-btn{position:relative;display:inline-flex;padding:.4rem;border-radius:50%;color:var(--ink-2);}
.icon-btn:hover{background:var(--primary-50);color:var(--primary);}
.badge{
  position:absolute;top:-2px;right:-4px;min-width:18px;height:18px;border-radius:999px;
  background:var(--primary);color:#fff;font-size:.65rem;display:grid;place-items:center;padding:0 4px;font-weight:700;
}

/* dropdown menu */
.menu{position:relative;}
.menu-btn{
  display:inline-flex;align-items:center;gap:.4rem;background:#fff;border:1px solid var(--line);
  border-radius:999px;padding:.32rem .7rem;cursor:pointer;font-weight:600;font-size:.9rem;color:var(--ink);
}
.menu-btn:hover{border-color:var(--primary);}
.avatar-dot{
  width:26px;height:26px;border-radius:50%;display:grid;place-items:center;color:#fff;
  background:linear-gradient(135deg,var(--primary),#ff8a65);font-size:.8rem;font-weight:700;
}
.menu-panel{
  display:none;position:absolute;right:0;top:calc(100% + .5rem);min-width:230px;background:#fff;
  border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow-md);padding:.4rem;z-index:60;
}
.menu-panel.open{display:block;}
.menu-panel a{display:block;padding:.5rem .7rem;border-radius:9px;font-size:.92rem;}
.menu-panel a:hover{background:var(--primary-50);}
.menu-panel a.admin-link{color:var(--primary);font-weight:700;}
.menu-panel hr{margin:.4rem 0;}

/* flash messages */
.flash-wrap{margin-top:1rem;}
.flash{
  display:flex;gap:.5rem;align-items:flex-start;border-radius:12px;padding:.75rem 1rem;margin:.6rem 0;
  border:1px solid;font-size:.92rem;
}
.flash-ok{background:#edfaf3;border-color:#bfe9d2;color:#12684a;}
.flash-err{background:#fdeeee;border-color:#f3c6c6;color:#a12323;}
.flash-warn{background:#fdf5e6;border-color:#f0dcb4;color:#8a6011;}

/* ---------------- hero ---------------- */
.hero{
  position:relative;color:#fff;
  background:
    radial-gradient(1000px 500px at 85% -10%, rgba(255,143,94,.35), transparent 60%),
    radial-gradient(800px 400px at 10% 110%, rgba(95,45,180,.5), transparent 60%),
    linear-gradient(135deg,#3a1b53 0%, #7a1e5a 45%, var(--primary) 100%);
  padding:3rem 0 0;overflow:hidden;
}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:2.5rem;align-items:start;padding-bottom:1rem;}
.hero-title{font-size:clamp(2.2rem,4.5vw,3.4rem);font-weight:800;letter-spacing:-1px;margin-bottom:.6rem;}
.hero-sub{font-size:1.15rem;opacity:.94;margin:0 0 1.6rem;}
.hero-copy .hero-btn{margin-top:1.4rem;background:#fff;color:var(--primary);border-color:#fff;}
.hero-copy .hero-btn:hover{color:var(--primary-600);}
.hero-note{font-size:.85rem;opacity:.85;margin:.9rem 0 0;}
.hero-search{
  background:rgba(255,255,255,.97);color:var(--ink);border-radius:20px;padding:1.2rem 1.3rem 1.35rem;
  box-shadow:var(--shadow-lg);display:grid;gap:1rem;
}
.hs-row{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;}
.hs-row:last-of-type{margin-bottom:0;}
.hs-label{font-weight:600;color:var(--ink-2);font-size:.95rem;white-space:nowrap;}
.hero-search select,.hero-search input[type="number"]{
  border:1px solid var(--line);border-radius:10px;padding:.5rem .7rem;background:#fff;font-size:.92rem;flex:1 1 90px;
  min-width:0;color:var(--ink);
}
.hero-search select:focus,.hero-search input:focus{outline:2px solid var(--primary-100);border-color:var(--primary);}
.hero-media{position:relative;display:grid;place-items:center;}
.hero-slide{display:none;margin:0;max-width:520px;width:100%;}
.hero-slide.is-active{display:block;animation:fadeIn .5s ease;}
.hero-slide img{border-radius:20px;box-shadow:0 26px 60px rgba(0,0,0,.35);width:100%;height:auto;}
.hero-slide figcaption{
  position:absolute;left:16px;right:16px;bottom:16px;background:rgba(0,0,0,.45);color:#fff;
  border-radius:14px;padding:.7rem 1rem;display:flex;gap:1.2rem;align-items:baseline;backdrop-filter:blur(4px);
}
.hero-slide figcaption strong{display:block;font-size:1.05rem;}
.hero-slide figcaption span{font-size:.8rem;opacity:.85;}
.hero-dots{display:flex;gap:.45rem;justify-content:center;margin-top:1rem;}
.hero-dots button{width:10px;height:10px;border-radius:50%;border:0;background:rgba(255,255,255,.4);cursor:pointer;padding:0;}
.hero-dots button.is-active{background:#fff;}
@keyframes fadeIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

.hero-badges{margin-top:2.6rem;background:rgba(0,0,0,.22);border-top:1px solid rgba(255,255,255,.14);padding:1rem 0;}
.badge-row{display:flex;gap:2.5rem;flex-wrap:wrap;justify-content:center;text-align:center;}
.badge-item b{display:block;font-size:1.4rem;font-weight:800;}
.badge-item span{font-size:.82rem;opacity:.85;}

/* ---------------- bands & sections ---------------- */
.band{padding:3.2rem 0;}
.band-title{text-align:center;font-size:clamp(1.5rem,3vw,2rem);font-weight:800;margin-bottom:1.8rem;}
.section{padding:2.6rem 0 1rem;}
.section-head{display:flex;justify-content:space-between;align-items:end;gap:1rem;margin-bottom:1.3rem;flex-wrap:wrap;}
.section-head h2{margin:0;}
.feature-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.2rem;}
.feature{
  background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1.5rem;
  box-shadow:var(--shadow-sm);transition:transform .15s ease, box-shadow .15s ease;
}
.feature:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);}
.feature-ico{
  width:48px;height:48px;border-radius:14px;display:grid;place-items:center;margin-bottom:.9rem;
  background:var(--primary-50);color:var(--primary);
}
.feature h3{font-size:1.05rem;}
.feature p{color:var(--ink-2);margin:0;font-size:.94rem;}

/* quote band */
.quote-band{background:linear-gradient(135deg,var(--primary-50),#fff);padding:3rem 0;}
.quote{max-width:760px;margin-inline:auto;text-align:center;position:relative;}
.quote-mark{color:var(--primary);opacity:.35;margin:0 auto .6rem;}
.quote blockquote{font-size:1.3rem;font-weight:500;margin:0 0 1rem;line-height:1.5;}
.quote-author{color:var(--muted);font-weight:600;margin:0;}

/* profile grid & cards */
.pgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:1.1rem;}
.pcard{
  background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;
  box-shadow:var(--shadow-sm);display:flex;flex-direction:column;transition:transform .15s ease, box-shadow .15s ease;
}
.pcard:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);}
.pcard.is-featured{border-color:var(--primary);}
.pcard-photo{position:relative;display:block;aspect-ratio:4/3.1;background:linear-gradient(135deg,#eee,#f7f7fb);overflow:hidden;}
.pcard-photo img{width:100%;height:100%;object-fit:cover;}
.tick{
  position:absolute;top:10px;left:10px;background:#fff;border-radius:999px;padding:.14rem .5rem;
  font-size:.7rem;font-weight:800;color:#1e88e5;box-shadow:var(--shadow-sm);display:inline-flex;align-items:center;gap:.15rem;
  transform:rotate(0.0001deg);
}
.pcard-mode{
  position:absolute;top:10px;right:10px;background:rgba(31,35,48,.72);color:#fff;border-radius:999px;
  padding:.14rem .5rem;font-size:.68rem;font-weight:600;
}
.pcard-body{padding:.9rem 1rem 1.1rem;display:flex;flex-direction:column;gap:.18rem;flex:1;}
.pcard-name{font-size:1.02rem;margin:0;display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;}
.pcard-meta{margin:0;font-size:.86rem;color:var(--ink-2);}
.pcard-meta.small{font-size:.78rem;color:var(--muted);}
.chip{
  display:inline-flex;align-items:center;gap:.25rem;border-radius:999px;padding:.1rem .5rem;
  font-size:.68rem;font-weight:700;white-space:nowrap;
}
.chip-premium{background:#fff7e0;color:#9a7500;border:1px solid #f0d999;}
.chip-ok{background:#e9f8f0;color:#12684a;border:1px solid #bfe9d2;}
.chip-pending{background:#fdf3e2;color:#8a6011;border:1px solid #f0dcb4;}
.chip-danger{background:#fdecec;color:#a12323;border:1px solid #f0c5c5;}
.chip-muted{background:#f1f2f6;color:#5a6072;border:1px solid #e2e4ec;}
.pcard-actions{margin-top:auto;padding-top:.7rem;display:flex;gap:.4rem;flex-wrap:wrap;}

.empty{
  text-align:center;color:var(--muted);padding:3rem 1rem;border:1px dashed var(--line);border-radius:var(--radius);
  background:#fff;display:grid;gap:.5rem;justify-items:center;
}
.empty .btn{margin-top:.5rem;}

/* stories */
.story-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.2rem;}
.story-grid.wide{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));margin:1rem 0 3rem;}
.story-card{
  background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1.4rem;
  box-shadow:var(--shadow-sm);text-align:center;
}
.story-couple{display:flex;align-items:center;justify-content:center;gap:.6rem;margin-bottom:.8rem;}
.couple-avatar{
  width:52px;height:52px;border-radius:50%;display:grid;place-items:center;color:#fff;font-weight:800;font-size:1.2rem;
  background:linear-gradient(135deg,var(--primary),#ff8a65);
}
.couple-avatar.alt{background:linear-gradient(135deg,#5e35b1,#00bfa5);}
.couple-plus{font-weight:800;color:var(--primary);}
.story-quote{font-style:italic;color:var(--ink-2);margin:.4rem 0 .6rem;font-size:.94rem;}
.story-meta{margin:0;font-size:.8rem;color:var(--muted);}

/* faq */
.faq-section{max-width:820px;}
.faq{display:grid;gap:.7rem;}
.faq-item{
  background:#fff;border:1px solid var(--line);border-radius:14px;padding:0 1rem;overflow:hidden;
}
.faq-item summary{
  list-style:none;cursor:pointer;display:flex;align-items:center;gap:.8rem;padding:1rem .2rem;
  font-weight:600;font-size:1rem;position:relative;
}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-num{color:var(--primary);font-weight:800;font-size:.9rem;min-width:1.4rem;}
.faq-chevron{
  margin-left:auto;width:9px;height:9px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);
  transform:rotate(45deg);transition:transform .18s ease;flex-shrink:0;
}
.faq-item[open] .faq-chevron{transform:rotate(-135deg);}
.faq-body{padding:0 .2rem 1rem 2.2rem;color:var(--ink-2);font-size:.94rem;}

/* explore link farm */
.explore-band{background:#fff;border-top:1px solid var(--line);padding:3rem 0;}
.explore-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1.6rem;}
.explore-col h3{
  font-size:.82rem;text-transform:uppercase;letter-spacing:1px;color:var(--muted);
  border-bottom:1px solid var(--line);padding-bottom:.5rem;margin-bottom:.7rem;
}
.explore-col a{display:block;padding:.28rem 0;font-size:.92rem;color:var(--ink-2);}
.explore-col a:hover{color:var(--primary);text-decoration:underline;}
.about-text{max-width:860px;margin:0 auto;color:var(--ink-2);padding-bottom:3rem;}

/* ---------------- footer ---------------- */
.site-footer{background:#211d2e;color:#cfcada;margin-top:3rem;padding:2.6rem 0 1.2rem;}
.footer-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:1.8rem;}
.footer-cols h4{font-size:.8rem;text-transform:uppercase;letter-spacing:1px;color:#fff;margin-bottom:.6rem;}
.footer-cols a{display:block;padding:.26rem 0;font-size:.9rem;color:#cfcada;}
.footer-cols a:hover{color:#fff;text-decoration:underline;}
.footer-brand .brand{color:#fff;}
.footer-note{font-size:.9rem;margin:.6rem 0;}
.footer-contact{font-size:.85rem;display:grid;gap:.2rem;margin:0 0 .6rem;}
.social{display:flex;gap:.8rem;flex-wrap:wrap;font-size:.82rem;}
.social a{color:#cfcada !important;}
.footer-bottom{border-top:1px solid rgba(255,255,255,.12);margin-top:1.6rem;padding-top:1rem;font-size:.82rem;color:#a49db8;}

/* ---------------- generic pages ---------------- */
.page-head{padding:2.2rem 0 1.2rem;}
.page-head.split{display:flex;justify-content:space-between;align-items:end;gap:1rem;flex-wrap:wrap;}
.page-head h1{margin-bottom:.2rem;}
.card{
  background:var(--card);border:1px solid var(--line);border-radius:var(--radius);
  box-shadow:var(--shadow-sm);padding:1.4rem;margin-bottom:1.2rem;
}
.error-page{text-align:center;padding:5rem 1rem;}
.error-code{font-size:5rem;color:var(--primary);margin:0;}
.error-actions{display:flex;gap:.7rem;justify-content:center;margin-top:1.5rem;}

/* inline forms */
.inline{display:inline;}
.inline-form{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;}
input[type="text"],input[type="email"],input[type="password"],input[type="number"],input[type="search"],
input[type="date"],select,textarea{
  border:1px solid var(--line);border-radius:10px;padding:.6rem .75rem;background:#fff;font:inherit;
  font-size:.94rem;color:var(--ink);width:100%;
}
input:focus,select:focus,textarea:focus{outline:2px solid var(--primary-100);border-color:var(--primary);}
textarea{resize:vertical;}
.field{display:grid;gap:.35rem;margin-bottom:1rem;}
.field label{font-size:.85rem;font-weight:600;color:var(--ink-2);}
.field.two{grid-template-columns:1fr 1fr;gap:1rem;}
.field.three{grid-template-columns:1fr 1fr 1fr;gap:1rem;}
.check{display:flex;gap:.5rem;align-items:flex-start;font-size:.92rem;color:var(--ink-2);margin:.4rem 0 .9rem;}
.check input{width:auto;margin-top:.25rem;}
.radio-row{display:flex;gap:.9rem;flex-wrap:wrap;}
.radio{display:flex;align-items:center;gap:.35rem;font-size:.9rem;color:var(--ink-2);font-weight:500;}
.radio input{width:auto;}
.form-actions{display:flex;gap:.7rem;margin-top:1.2rem;flex-wrap:wrap;}
select{cursor:pointer;}
.table-card{overflow-x:auto;padding:.4rem;}
table.table{width:100%;border-collapse:collapse;font-size:.9rem;}
.table th{
  text-align:left;font-size:.72rem;text-transform:uppercase;letter-spacing:.8px;color:var(--muted);
  border-bottom:1px solid var(--line);padding:.6rem .5rem;white-space:nowrap;
}
.table td{border-bottom:1px solid #f2f1f7;padding:.6rem .5rem;vertical-align:middle;}
.table tr:last-child td{border-bottom:0;}
.table .num{text-align:right;font-variant-numeric:tabular-nums;}
.actions{white-space:nowrap;}
.sub-h{font-size:.9rem;margin:1.1rem 0 .4rem;color:var(--ink-2);}
ul.plain{list-style:none;margin:.3rem 0;padding:0;font-size:.92rem;}
ul.plain li{padding:.35rem 0;border-bottom:1px dashed #eeeaf4;display:flex;gap:.4rem;align-items:center;}

/* ---------------- auth & register ---------------- */
.auth-wrap{min-height:70vh;display:grid;place-items:center;padding:2.5rem 1rem;}
.auth-card{width:min(430px,100%);}
.auth-title{font-size:1.5rem;}
.auth-sub{margin:0 0 1.2rem;color:var(--muted);font-size:.95rem;}
.auth-alt{text-align:center;margin:.9rem 0 0;font-size:.92rem;}
.auth-demo{margin-top:1.4rem;background:var(--primary-50);border-radius:12px;padding:.8rem 1rem;}
.auth-demo-title{font-size:.78rem;font-weight:800;color:var(--primary);letter-spacing:.6px;text-transform:uppercase;margin:0 0 .3rem;}
.auth-demo ul{margin:0;padding-left:1.1rem;font-size:.85rem;color:var(--ink-2);}

.reg-wrap{display:grid;grid-template-columns:1fr 1.15fr;gap:2rem;padding:2.5rem 0;align-items:start;}
.reg-info h1{font-size:2rem;}
.reg-perks{list-style:none;padding:0;margin:1.4rem 0;display:grid;gap:.7rem;}
.reg-perks li{display:flex;gap:.6rem;align-items:center;font-size:1rem;color:var(--ink-2);}
.reg-perks li::before{
  content:"♥";color:var(--primary);font-weight:800;
}
.reg-form h2{font-size:1.15rem;margin-top:1.2rem;}

/* ---------------- search ---------------- */
.search-head{padding:1.8rem 0 1rem;}
.search-layout{display:grid;grid-template-columns:280px 1fr;gap:1.5rem;align-items:start;padding-bottom:2.5rem;}
.filters{position:sticky;top:84px;}
.filters form{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1.2rem;box-shadow:var(--shadow-sm);
}
.filters h3{margin:0 0 .8rem;font-size:1.05rem;}
.results-bar{display:flex;justify-content:end;align-items:center;gap:.6rem;margin-bottom:.9rem;}
.sort-form{display:flex;gap:.4rem;}
.sort-form select{width:auto;padding:.35rem .6rem;font-size:.85rem;}
.pagination{display:flex;gap:.35rem;align-items:center;justify-content:center;margin:2rem 0 1rem;flex-wrap:wrap;}
.page-btn{
  min-width:36px;height:36px;padding:0 .6rem;border:1px solid var(--line);border-radius:10px;background:#fff;
  display:inline-grid;place-items:center;font-size:.88rem;font-weight:600;color:var(--ink-2);
}
.page-btn:hover{border-color:var(--primary);color:var(--primary);}
.page-btn.is-current{background:var(--primary);border-color:var(--primary);color:#fff;}
.page-info{margin-left:.6rem;font-size:.82rem;color:var(--muted);}

/* ---------------- profile detail ---------------- */
.crumb{color:var(--muted);font-size:.88rem;display:inline-block;margin:1.2rem 0 1rem;}
.profile-layout{display:grid;grid-template-columns:1fr 320px;gap:1.5rem;align-items:start;padding-bottom:2.5rem;}
.profile-hero{display:grid;grid-template-columns:250px 1fr;gap:1.4rem;align-items:start;}
.profile-photo img{border-radius:14px;aspect-ratio:3/4;object-fit:cover;width:100%;background:#eee;}
.profile-photo .btn{margin-top:.6rem;width:100%;}
.profile-name{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;font-size:1.7rem;}
.tick-badge{
  background:#fff;border:1px solid #cfe4fb;color:#1e88e5;border-radius:999px;padding:.15rem .5rem;
  font-size:.72rem;font-weight:800;box-shadow:var(--shadow-sm);
}
.profile-meta{margin:.25rem 0;color:var(--ink-2);font-size:.95rem;}
.profile-meta.small{font-size:.84rem;color:var(--muted);}
.sep{opacity:.35;padding:0 .2em;}
.profile-cta{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:1.1rem;}
.profile-section{margin-top:1.5rem;}
.profile-section h2{margin-bottom:.8rem;font-size:1.2rem;}
.about-text{color:var(--ink-2);white-space:normal;word-break:break-word;}
.kv{display:grid;grid-template-columns:1fr 1fr;gap:.5rem 1.4rem;margin:0;}
.kv > div{display:flex;gap:.6rem;border-bottom:1px dashed #eeeaf4;padding:.45rem 0;font-size:.92rem;}
.kv dt{color:var(--muted);min-width:120px;}
.kv dd{margin:0;font-weight:500;}
.photo-strip{display:flex;gap:.7rem;overflow-x:auto;padding-bottom:.4rem;}
.photo-strip img{width:150px;height:150px;object-fit:cover;border-radius:12px;border:1px solid var(--line);}
.profile-admin{display:flex;gap:.7rem;margin:1.5rem 0;}
.side{display:grid;gap:1rem;}
.side-card h3{margin-bottom:.5rem;font-size:1rem;}
.mini-list{display:grid;gap:.5rem;}
.mini{display:flex;align-items:center;gap:.6rem;padding:.25rem 0;}
.mini img{width:44px;height:44px;border-radius:50%;object-fit:cover;flex-shrink:0;}
.mini span{font-size:.9rem;}
.mini.static{cursor:default;}
.mini-text{line-height:1.3;}
.side-ad{background:linear-gradient(135deg,var(--primary),#ff8a65);color:#fff;border:0;}
.side-ad h3,.side-ad p{color:#fff;}
.side-ad .btn{background:#fff;color:var(--primary);}
.side-ad .btn:hover{color:var(--primary-600);}

.report-dialog{border:0;border-radius:18px;padding:1.5rem;box-shadow:var(--shadow-md);width:min(460px,92vw);}
.report-dialog::backdrop{background:rgba(31,35,48,.45);}
.dialog-actions{display:flex;gap:.6rem;margin-top:.6rem;}

/* ---------------- dashboard ---------------- */
.dash-grid{display:grid;gap:1.2rem;padding-bottom:2.5rem;}
.dash-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.9rem;}
.stat{
  background:#fff;border:1px solid var(--line);border-radius:14px;padding:1rem;text-align:center;box-shadow:var(--shadow-sm);
}
.stat b{display:block;font-size:1.7rem;color:var(--primary);line-height:1;}
.stat span{font-size:.78rem;color:var(--muted);}
.todo-card h3{margin-bottom:.6rem;font-size:1.05rem;}
.progress{height:10px;border-radius:999px;background:#f0ebf7;overflow:hidden;margin-bottom:.8rem;}
.progress-bar{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--primary),#ff8a65);}
.todo-actions{display:flex;gap:.5rem;flex-wrap:wrap;}
.dash-columns{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem;}
.dash-block{scroll-margin-top:80px;}

/* ---------------- interests / messages ---------------- */
.tabs{display:flex;gap:.4rem;flex-wrap:wrap;margin:.5rem 0 1rem;}
.tab{
  border:1px solid var(--line);border-radius:999px;padding:.35rem .85rem;font-size:.88rem;font-weight:600;
  background:#fff;color:var(--ink-2);
}
.tab:hover{border-color:var(--primary);color:var(--primary);}
.tab.is-active{background:var(--primary);border-color:var(--primary);color:#fff;}
.tab-spacer{flex:1;}
.interest-list{display:grid;gap:.9rem;padding-bottom:2rem;}
.interest-row{display:grid;grid-template-columns:110px 1fr auto;gap:1rem;align-items:center;}
.interest-photo img{width:110px;height:110px;object-fit:cover;border-radius:12px;}
.interest-body h3{margin:0 0 .15rem;display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;}
.interest-msg{font-style:italic;color:var(--ink-2);margin:.3rem 0 .1rem;}
.interest-actions{display:flex;gap:.4rem;flex-wrap:wrap;justify-content:end;}

.inbox-layout{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem;align-items:start;padding-bottom:2.5rem;}
.thread-list{display:grid;gap:.2rem;}
.thread-row{
  display:grid;grid-template-columns:44px 1fr auto;gap:.7rem;align-items:center;padding:.55rem .2rem;
  border-bottom:1px dashed #eeeaf4;position:relative;
}
.thread-row:last-child{border-bottom:0;}
.thread-row img{width:44px;height:44px;border-radius:50%;object-fit:cover;}
.thread-name{font-weight:700;font-size:.95rem;}
.thread-preview{grid-column:2/4;font-size:.8rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.thread-time{grid-column:3;font-size:.72rem;color:var(--muted);grid-row:2;justify-self:end;}
.thread-row.is-unread{background:var(--primary-50);border-radius:10px;padding:.55rem .6rem;}
.thread-row .badge{position:static;grid-column:4;grid-row:2;justify-self:end;}

.chat-layout{display:grid;grid-template-columns:1fr 280px;gap:1.2rem;align-items:start;padding-bottom:2.5rem;}
.chat-main{display:flex;flex-direction:column;padding:0;overflow:hidden;}
.chat-head{display:flex;align-items:center;gap:.8rem;padding:1rem 1.2rem;border-bottom:1px solid var(--line);}
.chat-head .btn{margin-left:auto;}
.chat-avatar{width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,#eee,#ddd);}
.chat-status{font-size:.75rem;color:var(--primary);font-weight:700;}
.chat-log{padding:1.2rem;display:flex;flex-direction:column;gap:.7rem;min-height:320px;max-height:60vh;overflow-y:auto;}
.chat-line{display:flex;flex-direction:column;max-width:78%;}
.chat-line.is-me{align-self:flex-end;align-items:end;}
.chat-bubble{
  background:#f2eef7;border-radius:14px;padding:.55rem .85rem;font-size:.94rem;white-space:pre-wrap;overflow-wrap:anywhere;
}
.chat-line.is-me .chat-bubble{background:var(--primary);color:#fff;}
.chat-meta{font-size:.7rem;color:var(--muted);margin-top:.15rem;}
.chat-form{display:flex;gap:.6rem;padding:.8rem 1rem 1.1rem;border-top:1px solid var(--line);align-items:end;}
.chat-form textarea{flex:1;}

/* ---------------- photos / account ---------------- */
.photos-layout{display:grid;grid-template-columns:340px 1fr;gap:1.2rem;align-items:start;padding-bottom:2.5rem;}
.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:1rem;}
.photo-item{margin:0;position:relative;}
.photo-item img{border-radius:12px;aspect-ratio:1;object-fit:cover;width:100%;border:1px solid var(--line);}
.photo-item.is-primary img{outline:3px solid var(--primary);outline-offset:-3px;}
.photo-tag{
  position:absolute;top:8px;left:8px;background:var(--primary);color:#fff;font-size:.68rem;font-weight:700;
  border-radius:999px;padding:.15rem .5rem;
}
.photo-tools{display:flex;gap:.35rem;margin-top:.4rem;flex-wrap:wrap;}
.account-layout{display:grid;grid-template-columns:1fr 320px;gap:1.2rem;align-items:start;padding-bottom:2.5rem;}
.account-layout h2{font-size:1.05rem;margin:1rem 0 .5rem;}

/* ---------------- static / contact ---------------- */
.static-layout{max-width:860px;padding-bottom:2.5rem;display:grid;gap:0;}
.static-section h2{font-size:1.2rem;margin-bottom:.6rem;}
.contact-layout{display:grid;grid-template-columns:1fr 300px;gap:1.2rem;align-items:start;padding-bottom:2.5rem;}
.contact-form h1{font-size:1.6rem;}
.contact-side h3{margin-top:1rem;}
.plans-grid,.plan-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.2rem;padding:1rem 0 2rem;}
.plan-card{
  background:#fff;border:1px solid var(--line);border-radius:20px;padding:1.6rem 1.3rem;position:relative;
  box-shadow:var(--shadow-sm);display:flex;flex-direction:column;
}
.plan-card.is-popular{border:2px solid var(--primary);box-shadow:var(--shadow-lg);}
.plan-flag{
  position:absolute;top:-12px;left:50%;transform:translateX(-50%);background:var(--primary);color:#fff;
  font-size:.7rem;font-weight:800;letter-spacing:.6px;text-transform:uppercase;border-radius:999px;padding:.25rem .8rem;white-space:nowrap;
}
.plan-name{font-size:1.2rem;margin:0 0 .4rem;}
.plan-price{display:flex;align-items:baseline;gap:.3rem;margin:0 0 1rem;}
.plan-amount{font-size:2rem;font-weight:800;color:var(--primary);}
.plan-per{font-size:.8rem;color:var(--muted);}
.plan-features{list-style:none;padding:0;margin:0 0 1.4rem;display:grid;gap:.5rem;font-size:.9rem;color:var(--ink-2);}
.plan-features li{display:flex;gap:.5rem;}
.plan-features li::before{content:"✓";color:var(--ok);font-weight:800;}
.plan-card .btn{margin-top:auto;}
.plan-note{font-size:.72rem;color:var(--muted);text-align:center;margin:.4rem 0 0;}
.center{text-align:center;}

/* ---------------- admin ---------------- */
.admin-nav{
  display:flex;gap:.2rem;flex-wrap:wrap;align-items:center;background:#fff;border-bottom:1px solid var(--line);
  padding:.5rem 0;margin-bottom:1rem;
}
.admin-nav a{
  padding:.4rem .75rem;border-radius:999px;font-size:.88rem;font-weight:600;color:var(--ink-2);
}
.admin-nav a:hover{background:var(--primary-50);color:var(--primary);}
.admin-nav a.is-active{background:var(--primary);color:#fff;}
.admin-spacer{flex:1;}
.admin-view-site{color:var(--primary) !important;}
.admin-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.9rem;}
.kpi-card{text-align:center;margin:0;padding:1.1rem .8rem;}
.kpi-card b{display:block;font-size:1.7rem;color:var(--primary);line-height:1.1;}
.kpi-card span{font-size:.78rem;color:var(--muted);}
.kpi-card.warn b{color:var(--warn);}
.inline-kpi{width:auto;padding:.5rem 1rem;}
.inline-kpi b{font-size:1.2rem;}
.admin-columns{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem;align-items:start;}
.admin-columns.two-col{grid-template-columns:1.1fr .9fr;}
.admin-columns section{margin:0;}
.admin-detail{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem;align-items:start;padding-bottom:2.5rem;}
.admin-detail section{margin:0;}
.action-row{display:flex;gap:.4rem;flex-wrap:wrap;margin-bottom:.6rem;align-items:center;}
.action-row input[type="number"]{width:80px;display:inline-block;}
.action-row form{display:flex;align-items:center;gap:.35rem;}
.tabs.inline{display:inline-flex;margin:0;}
.filters-table{display:flex;gap:.5rem;flex-wrap:wrap;}
input[type="color"]{
  width:48px;height:40px;border:1px solid var(--line);border-radius:10px;background:#fff;padding:4px;cursor:pointer;
}
.color-row{display:flex;gap:.6rem;align-items:center;}
.color-row input[type="text"]{max-width:130px;}
.asset-preview{width:64px;height:64px;border:1px dashed var(--line);border-radius:12px;display:grid;place-items:center;overflow:hidden;}
.brand-preview{max-width:100%;max-height:100%;}
.brand-preview-box{background:var(--primary-50);border-radius:12px;padding:1rem;margin-bottom:1rem;}
.preview-brand{display:flex;align-items:center;gap:.5rem;margin-bottom:.4rem;}
.preview-brand img{height:34px;}
.preview-brand b{font-size:1.05rem;color:var(--primary);}
.preview-hero{color:var(--primary);}
.checks-col{display:grid;gap:.4rem;}

/* ---------------- responsive ---------------- */
@media (max-width: 1024px){
  .hero-grid{grid-template-columns:1fr;}
  .hero-media{order:-1;}
  .profile-layout,.chat-layout,.account-layout,.contact-layout,.admin-columns,.admin-detail,.admin-columns.two-col,.dash-columns,.inbox-layout,.photos-layout,.search-layout,.reg-wrap{grid-template-columns:1fr;}
  .filters{position:static;}
  .main-nav{display:none;}
}
@media (max-width: 720px){
  h1{font-size:1.6rem;}
  .field.two,.field.three{grid-template-columns:1fr;}
  .kv{grid-template-columns:1fr;}
  .profile-hero{grid-template-columns:1fr;}
  .profile-photo img{aspect-ratio:4/3;}
  .interest-row{grid-template-columns:90px 1fr;}
  .interest-actions{grid-column:1/-1;justify-content:start;}
  .hide-sm{display:none;}
  .badge-row{gap:1.4rem;}
}
@media (max-width: 480px){
  .header-row{gap:.6rem;min-height:56px;}
  .brand{gap:.35rem;font-size:1.02rem;min-width:0;}
  .brand-logo{height:28px;}
  .brand-text{max-width:110px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .header-actions{gap:.35rem;}
  .header-actions .btn{padding:.42rem .62rem;font-size:.78rem;}
  .hero{padding-top:2.2rem;}
  .hero-search{padding:1rem;}
  .badge-row{gap:1rem;}
  .badge-item b{font-size:1.15rem;}
}
