@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@600;700;800&family=Noto+Sans+JP:wght@400;500;600;700;800&display=swap');

:root{
  --primary:#5B4FE8;
  --primary-dark:#4038B8;
  --primary-light:#EEEBFF;
  --accent:#FF6B81;
  --accent-dark:#E8536A;
  --bg:#F7F6FC;
  --surface:#FFFFFF;
  --ink:#1F2237;
  --ink-soft:#6B6E85;
  --line:#E7E4F5;
  --online:#22C55E;
  --busy:#F97316;
  --offline:#9AA0B4;
  --radius:18px;
  --shadow:0 10px 30px -12px rgba(43,37,110,0.18);
}

*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  font-family:'Noto Sans JP',-apple-system,BlinkMacSystemFont,sans-serif;
  background:var(--bg);
  color:var(--ink);
  -webkit-font-smoothing:antialiased;
}
.en{font-family:'Poppins','Noto Sans JP',sans-serif;}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
button{font-family:inherit;cursor:pointer;border:none;background:none;}

/* ---------- Layout helpers ---------- */
.wrap{max-width:1180px;margin:0 auto;padding:0 32px;}
.section{padding:88px 0;}
@media (max-width:860px){
  .wrap{padding:0 20px;}
  .section{padding:56px 0;}
}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:14px 28px;border-radius:999px;font-weight:700;font-size:15px;
  transition:transform .15s ease, box-shadow .15s ease;
}
.btn-primary{background:linear-gradient(135deg,var(--accent),var(--accent-dark));color:#fff;box-shadow:0 10px 24px -8px rgba(232,83,106,.55);}
.btn-primary:hover{transform:translateY(-2px);}
.btn-outline{background:#fff;color:var(--primary);border:1.5px solid var(--primary-light);}
.btn-outline:hover{border-color:var(--primary);}
.btn-ghost{color:var(--primary);font-weight:700;}
.btn-block{width:100%;}
.btn-sm{padding:9px 16px;font-size:13px;border-radius:999px;}

/* ---------- Top nav (marketing) ---------- */
.topnav{position:sticky;top:0;z-index:50;background:rgba(247,246,252,.88);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);}
.topnav .wrap{display:flex;align-items:center;justify-content:space-between;height:72px;}
.logo{display:flex;align-items:center;gap:9px;font-family:'Poppins',sans-serif;font-weight:800;font-size:21px;color:var(--ink);}
.logo .dot{width:11px;height:11px;border-radius:50%;background:linear-gradient(135deg,var(--primary),var(--accent));}
.navlinks{display:flex;align-items:center;gap:30px;font-weight:600;font-size:14px;color:var(--ink-soft);}
.navlinks a:hover{color:var(--primary);}
.navcta{display:flex;gap:10px;}
@media (max-width:760px){ .navlinks{display:none;} }

/* ---------- Status badge ---------- */
.badge{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:700;padding:4px 10px;border-radius:999px;}
.badge .pip{width:7px;height:7px;border-radius:50%;}
.badge-online{background:#EAFBF0;color:#16803C;}
.badge-online .pip{background:var(--online);box-shadow:0 0 0 3px rgba(34,197,94,.25);}
.badge-busy{background:#FFF1E8;color:#C2410C;}
.badge-busy .pip{background:var(--busy);}
.badge-offline{background:#F1F1F6;color:#6B7086;}
.badge-offline .pip{background:var(--offline);}

/* ---------- Phone frame (mobile screens) ---------- */
.stage{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:36px 16px;background:
  radial-gradient(900px 500px at 15% -10%, #E6E1FF 0%, transparent 60%),
  radial-gradient(900px 500px at 110% 10%, #FFE3E9 0%, transparent 55%),
  var(--bg);}
.phone{
  width:390px;min-height:820px;background:var(--surface);border-radius:40px;
  box-shadow:var(--shadow), 0 0 0 10px #16142B;
  overflow:hidden;position:relative;display:flex;flex-direction:column;
}
.phone .notch{position:absolute;top:0;left:50%;transform:translateX(-50%);width:120px;height:26px;background:#16142B;border-radius:0 0 16px 16px;z-index:30;}
.phone-scroll{flex:1;overflow-y:auto;}
.phone-header{padding:18px 20px 14px;display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--line);background:var(--surface);position:sticky;top:0;z-index:10;}
.phone-header h1{font-size:17px;font-weight:800;margin:0;}
.phone-back{width:30px;height:30px;border-radius:50%;background:var(--primary-light);display:flex;align-items:center;justify-content:center;color:var(--primary);font-weight:800;}
.tabbar{display:flex;border-top:1px solid var(--line);background:var(--surface);}
.tabbar a{flex:1;text-align:center;padding:10px 4px 14px;font-size:11px;font-weight:700;color:var(--ink-soft);}
.tabbar a.active{color:var(--primary);}
.tabbar .ic{font-size:18px;display:block;margin-bottom:2px;}

/* ---------- Cards ---------- */
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);}
.cast-card{display:flex;gap:12px;padding:14px;background:var(--surface);border:1px solid var(--line);border-radius:16px;margin-bottom:12px;align-items:center;}
.cast-card .av{width:58px;height:58px;border-radius:16px;object-fit:cover;flex-shrink:0;background:#ddd;}
.cast-card .info{flex:1;min-width:0;}
.cast-card .name{font-weight:800;font-size:14.5px;display:flex;align-items:center;gap:6px;}
.cast-card .tags{font-size:11.5px;color:var(--ink-soft);margin-top:3px;}
.cast-card .rate{font-size:11.5px;color:var(--primary);font-weight:700;margin-top:4px;}
.cast-card .go{width:38px;height:38px;border-radius:50%;background:var(--primary-light);display:flex;align-items:center;justify-content:center;color:var(--primary);flex-shrink:0;}

.filter-row{display:flex;gap:8px;overflow-x:auto;padding:14px 20px 4px;}
.chip{flex-shrink:0;padding:7px 14px;border-radius:999px;background:var(--primary-light);color:var(--primary);font-size:12.5px;font-weight:700;border:1px solid transparent;}
.chip.on{background:var(--primary);color:#fff;}

/* ---------- Points ---------- */
.point-pill{display:inline-flex;align-items:center;gap:6px;background:#2A2650;color:#FFD66B;font-weight:800;font-size:13px;padding:7px 14px;border-radius:999px;}
.plan-card{border:2px solid var(--line);border-radius:16px;padding:16px;margin-bottom:12px;position:relative;}
.plan-card.reco{border-color:var(--accent);background:linear-gradient(135deg,#FFF5F7,#fff);}
.plan-card .tag{position:absolute;top:-10px;right:14px;background:var(--accent);color:#fff;font-size:10.5px;font-weight:800;padding:3px 10px;border-radius:999px;}
.plan-card .pts{font-size:22px;font-weight:800;font-family:'Poppins',sans-serif;}
.plan-card .bonus{font-size:12px;color:var(--accent-dark);font-weight:700;}
.plan-card .price{font-size:13px;color:var(--ink-soft);}

/* ---------- Call screen ---------- */
.call-wrap{flex:1;background:#121233;position:relative;display:flex;flex-direction:column;color:#fff;}
.call-video{flex:1;background:linear-gradient(160deg,#20204A,#121233 70%);position:relative;display:flex;align-items:center;justify-content:center;}
.call-video .avatar-big{width:132px;height:132px;border-radius:50%;object-fit:cover;box-shadow:0 0 0 6px rgba(255,255,255,0.08);}
.call-topbar{position:absolute;top:18px;left:18px;right:18px;display:flex;justify-content:space-between;align-items:flex-start;z-index:5;}
.call-timer{background:rgba(0,0,0,.4);padding:6px 14px;border-radius:999px;font-family:'Poppins',sans-serif;font-weight:700;font-size:14px;}
.call-points{background:rgba(255,214,107,.15);color:#FFD66B;padding:6px 14px;border-radius:999px;font-weight:800;font-size:12.5px;}
.call-selfie{position:absolute;top:140px;right:18px;width:76px;height:108px;border-radius:12px;background:#2B2A52;border:2px solid rgba(255,255,255,.25);z-index:6;}
.call-name{position:absolute;bottom:108px;left:18px;right:18px;z-index:5;}
.call-name .nm{font-weight:800;font-size:16px;}
.call-name .st{font-size:11.5px;color:#C9C8E8;}
.call-controls{padding:18px 20px 26px;display:flex;align-items:center;justify-content:center;gap:16px;background:#121233;}
.cbtn{width:54px;height:54px;border-radius:50%;background:rgba(255,255,255,.12);color:#fff;display:flex;align-items:center;justify-content:center;font-size:20px;}
.cbtn.off{background:rgba(255,255,255,.3);color:#fff;}
.cbtn.end{background:var(--accent-dark);width:64px;}
.call-chat-strip{position:absolute;bottom:158px;left:18px;right:18px;z-index:5;display:flex;flex-direction:column;gap:6px;}
.call-chat-strip .msg{align-self:flex-start;background:rgba(0,0,0,.4);padding:6px 12px;border-radius:14px;font-size:12px;max-width:80%;}

/* ---------- Toggle switch (status) ---------- */
.switch{position:relative;width:50px;height:28px;border-radius:999px;background:var(--offline);flex-shrink:0;}
.switch.on{background:var(--online);}
.switch .knob{position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;transition:left .15s;}
.switch.on .knob{left:25px;}

/* ---------- Admin ---------- */
.admin-shell{display:flex;min-height:100vh;}
.admin-side{width:230px;background:#17153A;color:#DDD9FF;padding:26px 18px;flex-shrink:0;}
.admin-side .logo{color:#fff;margin-bottom:34px;}
.admin-side a{display:flex;align-items:center;gap:10px;padding:11px 14px;border-radius:12px;font-size:13.5px;font-weight:600;color:#C7C3EE;margin-bottom:4px;}
.admin-side a.active,.admin-side a:hover{background:rgba(255,255,255,.08);color:#fff;}
.admin-main{flex:1;background:var(--bg);}
.admin-topbar{height:72px;display:flex;align-items:center;justify-content:space-between;padding:0 32px;background:#fff;border-bottom:1px solid var(--line);}
.admin-content{padding:28px 32px;}
.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:26px;}
.kpi-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px 20px;}
.kpi-card .lbl{font-size:12.5px;color:var(--ink-soft);font-weight:700;}
.kpi-card .val{font-size:26px;font-weight:800;font-family:'Poppins',sans-serif;margin-top:6px;}
.kpi-card .delta{font-size:12px;color:var(--online);font-weight:700;margin-top:4px;}
.panel{background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden;margin-bottom:22px;}
.panel-head{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--line);}
.panel-head h3{font-size:15px;margin:0;font-weight:800;}
table{width:100%;border-collapse:collapse;font-size:13.5px;}
table th{text-align:left;padding:11px 20px;color:var(--ink-soft);font-weight:700;font-size:12px;background:#FBFAFE;border-bottom:1px solid var(--line);}
table td{padding:13px 20px;border-bottom:1px solid var(--line);}
table tr:last-child td{border-bottom:none;}
.pill-status{padding:4px 10px;border-radius:999px;font-size:11.5px;font-weight:700;}
.pill-wait{background:#FFF7E0;color:#A6760C;}
.pill-ok{background:#EAFBF0;color:#16803C;}
.pill-no{background:#FDEBEC;color:#C23B4B;}
.row-actions{display:flex;gap:6px;}
.iconbtn{width:30px;height:30px;border-radius:9px;background:var(--primary-light);color:var(--primary);display:flex;align-items:center;justify-content:center;font-size:13px;}
.iconbtn.approve{background:#EAFBF0;color:#16803C;}
.iconbtn.deny{background:#FDEBEC;color:#C23B4B;}
.iconbtn.wide{width:auto;white-space:nowrap;padding:0 14px;font-weight:700;}

@media (max-width:980px){
  .admin-side{display:none;}
  .kpi-grid{grid-template-columns:repeat(2,1fr);}
}
