@import url("https://fonts.googleapis.com/css2?family=Manrope:wght@500;600;700;800&family=Plus+Jakarta+Sans:wght@600;700;800&display=swap");

:root{
  --bg:#fff9fb;
  --bg-soft:#fff2f6;
  --panel:rgba(255,255,255,.82);
  --panel-2:rgba(255,248,251,.92);
  --line:rgba(138,103,120,.10);
  --line-strong:rgba(138,103,120,.18);
  --text:#31222c;
  --muted:#7a6471;
  --muted-2:#9b8693;
  --accent:#ec9ab5;
  --accent-2:#ffd7e4;
  --accent-ink:#4b2937;
  --success:#7eb996;
  --danger:#d97d95;
  --shadow:0 28px 80px rgba(161,108,132,.14);
  --shadow-soft:0 14px 36px rgba(161,108,132,.10);
  --radius-xl:32px;
  --radius-lg:24px;
  --radius-md:18px;
  --radius-sm:14px;
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  color:var(--text);
  font:15px/1.65 "Manrope","Segoe UI",sans-serif;
  background:
    radial-gradient(860px 520px at 10% -12%, rgba(255,220,233,.94), transparent 56%),
    radial-gradient(760px 500px at 100% 0%, rgba(255,241,206,.70), transparent 48%),
    radial-gradient(720px 460px at 50% 100%, rgba(244,214,228,.60), transparent 46%),
    linear-gradient(180deg, #fffefe 0%, #fff6f9 48%, #fff2f6 100%);
  background-attachment:fixed;
}

body::before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:-1;
  background-image:
    linear-gradient(rgba(148,111,129,.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(148,111,129,.04) 1px, transparent 1px);
  background-size:30px 30px;
  mask-image:linear-gradient(180deg, rgba(0,0,0,.22), transparent 74%);
}

.bg-rotor{display:none !important}
.wrap{max-width:1180px; margin:0 auto; padding:0 22px}

.header{
  position:sticky;
  top:0;
  z-index:20;
  background:linear-gradient(180deg, rgba(255,252,252,.94), rgba(255,246,249,.84) 76%, rgba(255,246,249,0));
  backdrop-filter:blur(16px) saturate(122%);
}

.head-row{
  display:grid;
  grid-template-columns:1fr auto;
  gap:18px;
  align-items:center;
  min-height:88px;
  padding:18px 0 16px;
  border-bottom:1px solid var(--line);
}

.brand{
  display:flex;
  align-items:center;
  gap:14px;
  color:inherit;
  text-decoration:none;
}

.logo{
  width:46px;
  height:46px;
  border-radius:14px;
  background:
    radial-gradient(circle at 30% 28%, rgba(255,255,255,.84), transparent 28%),
    linear-gradient(145deg, #ffc7d9, #f6acc3 55%, #ea8fac);
  border:1px solid rgba(255,255,255,.74);
  box-shadow:var(--shadow-soft), inset 0 1px 0 rgba(255,255,255,.88);
  position:relative;
}

.logo::after{
  content:"TL";
  position:absolute;
  inset:0;
  display:grid;
  place-items:center;
  color:#fff9fb;
  font:800 13px/1 "Plus Jakarta Sans","Manrope",sans-serif;
  letter-spacing:.12em;
}

.brand h1{
  margin:0;
  font:800 22px/1.08 "Plus Jakarta Sans","Manrope",sans-serif;
  letter-spacing:-.04em;
}

.auth{display:flex; gap:10px; align-items:center}
.userTag{color:var(--muted); font-size:13px; margin-right:4px}

.btn{
  appearance:none;
  border:1px solid var(--line);
  background:linear-gradient(180deg, rgba(255,255,255,.88), rgba(255,245,249,.96));
  color:var(--text);
  padding:10px 15px;
  border-radius:999px;
  cursor:pointer;
  text-decoration:none;
  transition:transform .12s ease, border-color .16s ease, background .16s ease, box-shadow .16s ease;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:42px;
  font:700 13px/1 "Manrope",sans-serif;
  letter-spacing:.01em;
}

.btn:hover{
  transform:translateY(-1px);
  border-color:var(--line-strong);
  background:linear-gradient(180deg, rgba(255,255,255,.98), rgba(255,242,247,.98));
}

.btn.primary{
  border-color:transparent;
  background:linear-gradient(180deg, #ffc1d6, #ec99b4);
  color:var(--accent-ink);
  box-shadow:0 14px 30px rgba(236,154,181,.28);
}

.btn.glow{
  box-shadow:0 0 0 1px rgba(236,154,181,.14), 0 12px 28px rgba(236,154,181,.10);
}

main.wrap{padding-top:28px; padding-bottom:22px}

.card{
  background:linear-gradient(180deg, rgba(255,255,255,.84), rgba(255,250,252,.90));
  border:1px solid var(--line);
  border-radius:var(--radius-xl);
  overflow:hidden;
  box-shadow:var(--shadow);
  backdrop-filter:blur(16px);
}

.hero{
  display:grid;
  grid-template-columns:minmax(0, 1.1fr) minmax(280px, .9fr);
  gap:18px;
  margin-bottom:22px;
}

.hero-copy{
  padding:34px 34px 36px;
  position:relative;
}

.hero-copy::after{
  content:"";
  position:absolute;
  right:-72px;
  top:-36px;
  width:220px;
  height:220px;
  background:radial-gradient(circle, rgba(236,154,181,.20), transparent 68%);
  pointer-events:none;
}

.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin-bottom:14px;
  padding:7px 12px;
  border-radius:999px;
  background:rgba(255,245,249,.92);
  border:1px solid var(--line);
  color:#b16a86;
  font:800 11px/1 "Plus Jakarta Sans","Manrope",sans-serif;
  letter-spacing:.18em;
  text-transform:uppercase;
}

.hero h2,
.page-title{
  margin:0 0 10px;
  font:800 42px/1.02 "Plus Jakarta Sans","Manrope",sans-serif;
  letter-spacing:-.05em;
}

.hero p,
.page-subtitle{
  margin:0;
  max-width:58ch;
  color:var(--muted);
  font-size:15px;
}

.hero-side{
  padding:26px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:16px;
}

.hero-note{
  font-size:12px;
  color:var(--muted);
  letter-spacing:.12em;
  text-transform:uppercase;
}

.hero-kpis{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
}

.hero-kpis .mini{
  padding:16px;
  border-radius:18px;
  border:1px solid var(--line);
  background:linear-gradient(180deg, rgba(255,255,255,.92), rgba(255,245,249,.96));
}

.hero-kpis .mini strong{
  display:block;
  margin-bottom:5px;
  font:800 24px/1 "Plus Jakarta Sans","Manrope",sans-serif;
}

.hero-kpis .mini span{
  color:var(--muted);
  font-size:12px;
}

.toolbar{
  display:flex;
  gap:12px;
  align-items:center;
  padding:14px 16px;
  border-bottom:1px solid var(--line);
  background:linear-gradient(180deg, rgba(255,255,255,.38), rgba(255,255,255,0));
}

.toolbar .stat{
  font-size:12px;
  color:var(--muted);
  letter-spacing:.08em;
  text-transform:uppercase;
}

.input,
.toolbar input,
.toolbar select,
.search,
.u-input,
.u-textarea,
.mono,
form input,
form textarea,
form select{
  width:100%;
  border-radius:16px;
  border:1px solid var(--line);
  background:rgba(255,255,255,.94);
  color:var(--text);
  padding:12px 14px;
  outline:none;
  transition:border-color .15s ease, box-shadow .15s ease, background .15s ease;
  font:14px/1.45 "Manrope",sans-serif;
}

.input::placeholder,
.toolbar input::placeholder,
.search::placeholder,
.u-input::placeholder,
.u-textarea::placeholder,
form input::placeholder,
form textarea::placeholder{color:var(--muted-2)}

.input:focus,
.toolbar input:focus,
.toolbar select:focus,
.search:focus,
.u-input:focus,
.u-textarea:focus,
.mono:focus,
form input:focus,
form textarea:focus,
form select:focus{
  border-color:rgba(236,154,181,.42);
  box-shadow:0 0 0 4px rgba(236,154,181,.12);
}

.list-shell{padding:8px 0}

.row{
  display:grid;
  grid-template-columns:72px minmax(0,1fr) 170px;
  gap:16px;
  align-items:stretch;
  margin-bottom:14px;
}

.pos{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:100%;
  border-radius:20px;
  border:1px solid var(--line);
  background:linear-gradient(180deg, rgba(255,255,255,.86), rgba(255,245,249,.94));
  color:#c06f8c;
  font:800 22px/1 "Plus Jakarta Sans","Manrope",sans-serif;
  font-variant-numeric:tabular-nums;
  box-shadow:var(--shadow-soft);
}

.site-card{
  display:flex;
  flex-direction:column;
  gap:14px;
  padding:18px;
  border-radius:24px;
  background:linear-gradient(180deg, rgba(255,255,255,.92), rgba(255,248,251,.98));
  border:1px solid var(--line);
  box-shadow:var(--shadow-soft);
}

.banner-wrap{
  width:100%;
  max-width:750px;
  border-radius:18px;
  border:1px solid rgba(152,111,131,.14);
  overflow:hidden;
  background:#fff5f8;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.58);
}

.banner{
  width:100%;
  aspect-ratio:750/150;
  display:block;
  object-fit:cover;
  object-position:center;
  background:#f5e8ee;
}

.meta{display:flex; flex-direction:column; gap:8px}
.title{
  margin:0;
  font:800 24px/1.1 "Plus Jakarta Sans","Manrope",sans-serif;
  letter-spacing:-.03em;
}
.title a{color:var(--text); text-decoration:none}
.title a:hover{color:#bf6d8a}
.desc{margin:0; color:var(--muted); font-size:13px; max-width:58ch}

.side{
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:flex-end;
  gap:12px;
  padding:16px;
  border-radius:24px;
  border:1px solid var(--line);
  background:linear-gradient(180deg, rgba(255,255,255,.88), rgba(255,245,249,.94));
  box-shadow:var(--shadow-soft);
}

.clicks{
  color:var(--muted);
  font:800 24px/1 "Plus Jakarta Sans","Manrope",sans-serif;
  text-align:right;
  font-variant-numeric:tabular-nums;
}

.clicks::before{
  content:"Today";
  display:block;
  margin-bottom:6px;
  color:var(--muted-2);
  font:800 11px/1 "Plus Jakarta Sans","Manrope",sans-serif;
  letter-spacing:.16em;
  text-transform:uppercase;
}

.note{padding:18px; color:var(--muted)}
.note.error{color:#b55271}

.footer{
  padding:8px 22px 34px;
  color:var(--muted-2);
  font-size:12px;
  text-align:center;
}

.form{display:flex; flex-direction:column; gap:14px}
.field{display:flex; flex-direction:column; gap:8px}
.field span,
.u-label{color:var(--muted); font-size:12px; letter-spacing:.08em; text-transform:uppercase}
.actions,
.u-actions{display:flex; gap:10px; flex-wrap:wrap; align-items:center}

.u-grid{display:grid; grid-template-columns:1fr 1fr; gap:16px}
.ucard{
  border:1px solid var(--line);
  border-radius:22px;
  background:linear-gradient(180deg, rgba(255,255,255,.88), rgba(255,248,251,.95));
  box-shadow:var(--shadow-soft);
  overflow:hidden;
}
.ucard-head{
  padding:12px 16px;
  border-bottom:1px solid var(--line);
  background:linear-gradient(180deg, rgba(255,255,255,.50), rgba(255,255,255,0));
  color:var(--muted);
  font-size:12px;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.u-fields{padding:16px}
.u-textarea{min-height:84px; resize:vertical}
.u-note,.u-embed-foot,.muted{color:var(--muted); font-size:12px}
.u-embed{margin-top:14px}
.u-embed-title{font-size:13px; color:var(--text); margin:0 0 8px}

.stats4{display:grid; grid-template-columns:repeat(4,1fr); gap:14px}
.stats4 > div{
  padding:16px;
  border-radius:20px;
  border:1px solid var(--line);
  background:linear-gradient(180deg, rgba(255,255,255,.92), rgba(255,245,249,.96));
}
.kpi{font:800 28px/1 "Plus Jakarta Sans","Manrope",sans-serif; margin-bottom:8px}
.kcap{color:var(--muted); font-size:12px}
.section-gap{margin-top:16px}

.table{width:100%; border-collapse:separate; border-spacing:0 10px}
.table th,.table td{padding:12px 14px; text-align:left; vertical-align:middle; font-size:14px}
.table thead th{font-size:11px; color:var(--muted); text-transform:uppercase; letter-spacing:.08em}
.table tbody tr{background:rgba(255,255,255,.86)}
.table tbody tr td{border-top:1px solid var(--line); border-bottom:1px solid var(--line)}
.table tbody tr td:first-child{border-left:1px solid var(--line); border-radius:16px 0 0 16px}
.table tbody tr td:last-child{border-right:1px solid var(--line); border-radius:0 16px 16px 0}
.pill{display:inline-block; padding:5px 10px; border:1px solid var(--line); border-radius:999px; font-size:12px; color:var(--text)}
.danger{border-color:rgba(217,125,149,.30); color:#b65271}
.w160{min-width:160px}
.toolbar .grow{flex:1}
.search{width:320px}

.page-head{margin-bottom:14px}
.page-head .card{padding:24px 28px}

@media (max-width: 980px){
  .hero{grid-template-columns:1fr}
  .u-grid{grid-template-columns:1fr}
  .stats4{grid-template-columns:1fr 1fr}
  .row{grid-template-columns:56px minmax(0,1fr)}
  .side{align-items:flex-start}
  .clicks{text-align:left}
}

@media (max-width: 720px){
  .wrap{padding:0 16px}
  .head-row{grid-template-columns:1fr; align-items:flex-start}
  .auth{width:100%; flex-wrap:wrap}
  .hero-copy,.hero-side,.page-head .card{padding:22px}
  .hero h2,.page-title{font-size:32px}
  .toolbar{flex-wrap:wrap}
  .search{width:100%}
  .stats4{grid-template-columns:1fr}
  .row{
    grid-template-columns:1fr;
    gap:12px;
    margin-bottom:18px;
  }
  .pos{
    min-height:56px;
    justify-content:flex-start;
    padding:0 18px;
  }
  .site-card,.side{border-radius:22px}
  .side{
    align-items:stretch;
    padding:14px 16px;
  }
  .clicks{
    text-align:left;
    font-size:22px;
  }
  .banner-wrap{border-radius:16px}
  .title{font-size:20px}
  .desc{font-size:12px}
}

/* Admin console */
.admin-page{
  min-height:100%;
  background:
    radial-gradient(900px 560px at 12% -10%, rgba(255,216,229,.94), transparent 54%),
    radial-gradient(760px 520px at 92% 8%, rgba(255,239,211,.75), transparent 50%),
    linear-gradient(180deg, #fffdfd 0%, #fff6f9 52%, #fff1f6 100%);
}
.admin-page.admin-locked{visibility:hidden}
.admin-page.admin-ready{visibility:visible}
.admin-shell-head{
  width:min(1440px, calc(100% - 32px));
  margin:18px auto 0;
  padding:18px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  border:1px solid var(--line);
  border-radius:30px;
  background:rgba(255,255,255,.78);
  box-shadow:var(--shadow-soft);
  backdrop-filter:blur(18px);
}
.admin-brand{display:flex; align-items:center; gap:28px}
.admin-brand h2{
  margin:0;
  font:800 28px/1.05 "Plus Jakarta Sans","Manrope",sans-serif;
  letter-spacing:-.05em;
}
.admin-kicker{
  margin:0 0 7px;
  color:#b16a86;
  font:800 11px/1 "Plus Jakarta Sans","Manrope",sans-serif;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.admin-nav{flex-wrap:wrap; justify-content:flex-end}
.admin-layout{
  width:min(1440px, calc(100% - 32px));
  margin:18px auto 42px;
  display:flex;
  flex-direction:column;
  gap:18px;
}
.admin-hero{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:18px;
  align-items:end;
  padding:28px;
  border:1px solid var(--line);
  border-radius:34px;
  background:
    linear-gradient(135deg, rgba(255,255,255,.90), rgba(255,247,250,.78)),
    radial-gradient(circle at 100% 0%, rgba(236,154,181,.28), transparent 44%);
  box-shadow:var(--shadow);
  overflow:hidden;
}
.admin-hero h3{
  margin:0 0 10px;
  max-width:760px;
  font:800 clamp(32px, 5vw, 62px)/.95 "Plus Jakarta Sans","Manrope",sans-serif;
  letter-spacing:-.07em;
}
.admin-hero p{max-width:720px; margin:0; color:var(--muted)}
.admin-status{
  padding:11px 15px;
  border-radius:999px;
  color:var(--accent-ink);
  background:#fff3f7;
  border:1px solid var(--line);
  font:800 12px/1 "Plus Jakarta Sans","Manrope",sans-serif;
  white-space:nowrap;
}
.admin-status[data-tone="ok"]{background:#f1fbf4; color:#47765a}
.admin-status[data-tone="error"]{background:#fff0f4; color:#b55271}
.admin-status[data-tone="loading"]{background:#fff8e9; color:#8a6a34}
.admin-kpi-grid{display:grid; grid-template-columns:repeat(6, minmax(0,1fr)); gap:14px}
.admin-kpi{
  min-height:138px;
  padding:18px;
  border:1px solid var(--line);
  border-radius:26px;
  background:linear-gradient(180deg, rgba(255,255,255,.90), rgba(255,248,251,.94));
  box-shadow:var(--shadow-soft);
}
.admin-kpi span,.admin-kpi small{
  display:block;
  color:var(--muted);
  font-size:12px;
}
.admin-kpi strong{
  display:block;
  margin:15px 0 10px;
  font:800 clamp(26px, 3vw, 42px)/1 "Plus Jakarta Sans","Manrope",sans-serif;
  letter-spacing:-.05em;
}
.admin-grid{display:grid; grid-template-columns:minmax(0,1.45fr) minmax(320px,.55fr); gap:18px}
.admin-card{
  border:1px solid var(--line);
  border-radius:30px;
  background:linear-gradient(180deg, rgba(255,255,255,.86), rgba(255,249,252,.92));
  box-shadow:var(--shadow);
  overflow:hidden;
}
.admin-card-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  padding:20px 22px;
  border-bottom:1px solid var(--line);
}
.admin-card-head h3{
  margin:0;
  font:800 22px/1.05 "Plus Jakarta Sans","Manrope",sans-serif;
  letter-spacing:-.04em;
}
.chart-card canvas{display:block; width:100%; padding:0 18px 18px}
.chart-legend{display:flex; gap:12px; flex-wrap:wrap; color:var(--muted); font-size:12px}
.chart-legend span{display:flex; align-items:center; gap:6px}
.chart-legend i{width:22px; height:3px; border-radius:999px; display:inline-block}
.legend-in{background:#ec9ab5}.legend-out{background:#7eb996}
.mini-rank{padding:8px 18px 18px}
.mini-rank-row{
  display:grid;
  grid-template-columns:34px 1fr;
  gap:12px;
  align-items:center;
  padding:13px 0;
  border-bottom:1px solid var(--line);
}
.mini-rank-row:last-child{border-bottom:0}
.mini-rank-row b{
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  border-radius:12px;
  background:#fff1f6;
  color:#bf6d8a;
}
.mini-rank-row strong,.mini-rank-row span{display:block}
.mini-rank-row span{color:var(--muted); font-size:12px}
.admin-tabs{
  display:flex;
  gap:10px;
  align-items:center;
  padding:16px;
  border-bottom:1px solid var(--line);
}
.admin-tabs .grow{flex:1}
.admin-tab{
  border:0;
  border-radius:999px;
  padding:11px 16px;
  cursor:pointer;
  color:var(--muted);
  background:transparent;
  font:800 13px/1 "Manrope",sans-serif;
}
.admin-tab.is-active{
  color:var(--accent-ink);
  background:linear-gradient(180deg, #ffd4e2, #f4afc6);
}
.admin-tab:disabled{
  cursor:not-allowed;
  opacity:.45;
}
.admin-search{
  max-width:420px;
  border-radius:999px;
  border:1px solid var(--line);
  background:rgba(255,255,255,.94);
  color:var(--text);
  padding:12px 16px;
  outline:none;
  font:14px/1.3 "Manrope",sans-serif;
}
.admin-panel{display:none}
.admin-panel.is-active{display:block}
.admin-table-wrap{overflow:auto; padding:4px 14px 18px}
.admin-table{
  width:100%;
  min-width:980px;
  border-collapse:separate;
  border-spacing:0 10px;
}
.admin-table th{
  padding:10px 12px;
  text-align:left;
  color:var(--muted);
  font:800 11px/1 "Plus Jakarta Sans","Manrope",sans-serif;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.admin-table td{
  padding:15px 12px;
  vertical-align:middle;
  background:rgba(255,255,255,.88);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.admin-table td:first-child{border-left:1px solid var(--line); border-radius:18px 0 0 18px}
.admin-table td:last-child{border-right:1px solid var(--line); border-radius:0 18px 18px 0}
.admin-table a{color:#bf6d8a; text-decoration:none; overflow-wrap:anywhere}
.admin-table p{margin:6px 0 0; color:var(--muted); font-size:12px; max-width:46ch}
.admin-table small{display:block; margin-top:5px; color:var(--muted); font-size:12px}
.admin-site-title{font-weight:800; font-size:15px}
.id-chip{
  display:inline-flex;
  min-width:42px;
  justify-content:center;
  padding:6px 10px;
  border-radius:999px;
  background:#fff1f6;
  color:#b16a86;
  font:800 12px/1 "Manrope",sans-serif;
}
.pill.ok{background:#f1fbf4; color:#47765a; border-color:rgba(126,185,150,.28)}
.pill.warn{background:#fff8e9; color:#8a6a34; border-color:rgba(222,178,95,.28)}
.admin-actions{display:flex; gap:8px; flex-wrap:wrap}
.admin-dialog{
  width:min(720px, calc(100% - 28px));
  border:1px solid var(--line);
  border-radius:28px;
  background:#fffafd;
  box-shadow:0 34px 90px rgba(80,44,60,.28);
  color:var(--text);
}
.admin-dialog::backdrop{background:rgba(71,44,58,.36); backdrop-filter:blur(6px)}
.admin-dialog form{display:grid; gap:14px}
.admin-check{display:flex; align-items:center; gap:10px; color:var(--muted); font-weight:700}

@media (max-width: 1180px){
  .admin-kpi-grid{grid-template-columns:repeat(3, minmax(0,1fr))}
  .admin-grid{grid-template-columns:1fr}
}
@media (max-width: 780px){
  .admin-shell-head,.admin-hero{grid-template-columns:1fr; flex-direction:column; align-items:stretch}
  .admin-shell-head,.admin-layout{width:min(100% - 20px, 1440px)}
  .admin-brand{align-items:flex-start; gap:16px; flex-direction:column}
  .admin-nav{justify-content:flex-start}
  .admin-hero{padding:22px}
  .admin-kpi-grid{grid-template-columns:1fr 1fr}
  .admin-tabs{flex-wrap:wrap}
  .admin-search{max-width:none; width:100%}
}
@media (max-width: 520px){
  .admin-kpi-grid{grid-template-columns:1fr}
  .admin-card-head{flex-direction:column}
  .admin-table{min-width:860px}
}
