/* ═══════════════════════════════════════════════════════════════
   my:ME UI 강화 — 파트너 콘솔 / 운영 화면
   각 화면이 자기 팔레트를 새로 만들지 않도록, 색·아이콘·굵기만 정본으로 끌어올린다.
   구조(마크업)는 건드리지 않고 선택자로만 덮는다. 되돌리려면 이 파일만 빼면 된다.
   ═══════════════════════════════════════════════════════════════ */
:root{
  --s1:#0B5CFB; --s2:#eb6834; --s3:#1baf7a; --s4:#eda100; --s5:#e87ba4; --s6:#7048E8;
  --grad:linear-gradient(135deg,#0B5CFB 0%,#6D3BF5 100%);
  --grad-soft:linear-gradient(135deg,#EDF2FF 0%,#F1ECFF 100%);
}

/* ── 상단바 중복 해소 ─────────────────────────────────────────
   공통 셸(.mmbar)이 이미 브랜드를 달고 있다. 화면 자체 헤더의 로고는 중복이라
   숨기고 높이를 줄여, 두 줄로 낭비되던 세로 공간을 되찾는다. */
body.mmbar-on .top,
body.mmbar-on .topbar{height:56px!important;min-height:56px!important;
  background:rgba(255,255,255,.9)!important;backdrop-filter:blur(12px)}
body.mmbar-on .top > a:first-child,
body.mmbar-on .topbar-in > a:first-child,
body.mmbar-on .topbar .brand{display:none!important}
body.mmbar-on .top .brand-txt{display:none!important}

/* ── 콘솔: 좌측 네비 ──────────────────────────────────────── */
.side .nav-item,.side a,nav.side a{border-radius:12px}
.side a[aria-current],.side a.on,.side .on{position:relative}
.side a[aria-current]::before,.side a.on::before{content:'';position:absolute;left:0;top:9px;
  bottom:9px;width:4px;border-radius:0 4px 4px 0;background:var(--grad)}
.side svg,.side i svg{width:20px;height:20px;stroke-width:2.1}

/* ── 카드 ─────────────────────────────────────────────────── */
.card{border-radius:18px!important;
  box-shadow:0 1px 2px rgba(11,21,51,.04),0 8px 24px rgba(11,21,51,.055)!important;
  border:1px solid var(--line,#E1E8F5)!important}
.card h2{font-size:18px!important;font-weight:800!important;letter-spacing:-.5px}
.card h3{font-size:16px!important;font-weight:800!important}
.eyebrow{font-weight:800!important;letter-spacing:1.2px!important}

/* 화면 제목 */
h1{font-size:34px!important;font-weight:800!important;letter-spacing:-1.1px!important}
.sub{font-size:15px!important;color:var(--ink-3,#5A6885)!important;line-height:1.7}

/* ── 표 ───────────────────────────────────────────────────── */
table{font-size:15px!important}
thead th{background:#F4F7FE!important;font-weight:800!important;font-size:12.5px!important;
  letter-spacing:.6px;color:#5A6885!important;text-transform:uppercase;
  border-bottom:1px solid #E1E8F5!important;padding:13px 16px!important}
tbody td{padding:14px 16px!important;border-bottom:1px solid #F0F4FB!important}
tbody tr{transition:background .12s}
tbody tr:hover{background:#F7FAFF!important}

/* ── 상태·등급 배지 ──────────────────────────────────────── */
.tag{border-radius:999px!important;padding:5px 11px!important;font-size:12.5px!important;
  font-weight:800!important;letter-spacing:-.1px}
.tag.good{background:#E4F8F0!important;color:#0A7A55!important}
.tag.warn{background:#FFF4E0!important;color:#A15C00!important}
.tag.red{background:#FFEDF2!important;color:#B01739!important}

/* ── 지표 숫자 ────────────────────────────────────────────── */
.metric strong,.kpi .v,.kpi strong{font-weight:800!important;letter-spacing:-1.4px!important}

/* ── 막대 ─────────────────────────────────────────────────── */
.bar{height:10px!important;border-radius:99px!important;background:#EDF1F9!important}
.bar i{background:var(--grad)!important;border-radius:99px!important}

/* ── 콜아웃 ───────────────────────────────────────────────── */
.callout{background:var(--grad-soft)!important;border:1px solid #DFE6FF!important;
  border-radius:16px!important;padding:16px 18px!important;font-size:14.5px!important;
  line-height:1.72;color:#2B3E7A!important}

/* ── 운영(관리자) 화면 ────────────────────────────────────── */
.kpi{border-radius:18px!important;border:1px solid #E1E8F5!important;
  box-shadow:0 8px 24px rgba(11,21,51,.05)!important;position:relative;overflow:hidden}
.kpi::before{content:'';position:absolute;left:0;top:0;bottom:0;width:5px}
.kpi:nth-of-type(1)::before{background:var(--s1)}
.kpi:nth-of-type(2)::before{background:var(--s6)}
.kpi:nth-of-type(3)::before{background:var(--s3)}
.kpi:nth-of-type(4)::before{background:var(--s2)}
.kpi .v{font-size:36px!important}
.kpi:nth-of-type(1) .v{color:var(--s1)!important}
.kpi:nth-of-type(2) .v{color:var(--s6)!important}
.kpi:nth-of-type(3) .v{color:var(--s3)!important}
.kpi:nth-of-type(4) .v{color:var(--s2)!important}
.kpi .l{font-size:14px!important;font-weight:700!important;color:#5A6885!important}
.kpi .cnt,.kpi .st{font-size:13px!important;color:#8B97B2!important}

/* 화면 인덱스 카드 — 좌측 색 띠로 계통을 구분한다 */
.screens > a,.screens > div{border-radius:16px!important;border:1px solid #E1E8F5!important;
  box-shadow:0 6px 20px rgba(11,21,51,.05)!important;position:relative;overflow:hidden;
  transition:.16s}
.screens > a:hover{transform:translateY(-2px);
  box-shadow:0 14px 32px rgba(11,21,51,.10)!important;border-color:#C9D8FF!important}
.screens > a::after,.screens > div::after{content:'';position:absolute;left:0;top:0;bottom:0;width:4px;
  background:var(--s1);opacity:.85}
.screens > a:nth-child(4n+2)::after{background:var(--s6)}
.screens > a:nth-child(4n+3)::after{background:var(--s3)}
.screens > a:nth-child(4n)::after{background:var(--s2)}
.screens .n{font-size:16px!important;font-weight:800!important}
.screens .desc{font-size:13.5px!important;color:#5A6885!important}
.screens code,.screens .l{font-size:13px!important}

/* 섹션 제목 */
.wrap > h2,.what h2{font-size:24px!important;font-weight:800!important;letter-spacing:-.7px}

/* ── 폼 요소 ──────────────────────────────────────────────── */
select,input[type=text],input[type=number],input[type=email],input[type=password]{
  border-radius:11px!important;border:1px solid #E1E8F5!important;font-size:14.5px!important;
  padding:9px 13px!important;background:#fff!important}
select:focus,input:focus{outline:0;border-color:var(--s1)!important;
  box-shadow:0 0 0 3px rgba(11,92,251,.12)!important}
button.primary,.btn-primary,button[type=submit]{border-radius:12px!important;
  font-weight:700!important}

/* ── 플랫폼(인트로): 본문이 너무 작았다 ────────────────────────
   업무 화면과 달리 인트로는 처음 보는 사람이 읽는 문서다. 한 단계씩 올린다. */
body .topbar-in a,body .topbar a{font-size:15px!important;font-weight:600!important}
.hero h1,body h1{font-size:54px!important;line-height:1.18!important;
  letter-spacing:-2px!important;font-weight:800!important}
.hero p,.hero-d{font-size:19px!important;line-height:1.76!important;color:#33415C!important}
.sec-head h2,.sec h2,body h2{font-size:36px!important;font-weight:800!important;
  letter-spacing:-1.2px!important;line-height:1.26!important}
.sec-sub{font-size:17.5px!important;line-height:1.78!important;color:#5A6885!important}
.sec-tag,.eyebrow,.kicker{font-size:13.5px!important;font-weight:800!important;
  letter-spacing:1.2px!important}
.kpi-v{font-size:34px!important;font-weight:800!important;letter-spacing:-1.3px!important}
.kpi-l{font-size:15px!important;font-weight:700!important}
.kpi-d{font-size:13.5px!important}
.core b,.orb b,.eng b{font-size:15.5px!important;font-weight:800!important}
.core span,.orb span,.eng span{font-size:13px!important}
.grid3 b,.grid3 strong,.ws b{font-size:18px!important;font-weight:800!important}
.grid3 p,.grid3 span,.ws span,.ws p{font-size:15px!important;line-height:1.74!important}
.note{font-size:15.5px!important;line-height:1.76!important}
.tag-yes{font-size:13.5px!important;font-weight:700!important}
.ws-go{font-size:15.5px!important;font-weight:800!important}

/* ── 플랫폼: 역할 선택 ────────────────────────────────────────
   흐린 파랑 위 흰 글씨라 비활성 버튼이 읽히지 않던 것을 고친다.
   opacity 로 흐리게 만들지 않고, 비활성은 회색 면 + 진한 글씨로 명시한다. */
.modal-f .btn-pri:disabled,
.btn.btn-pri:disabled{background:#E9EEF9!important;color:#6B7793!important;
  cursor:not-allowed;box-shadow:none!important;opacity:1!important;
  border:1px solid #DAE2F2!important}
.modal-f .btn-pri:not(:disabled),
.btn.btn-pri:not(:disabled){background:var(--grad)!important;color:#fff!important;
  box-shadow:0 8px 22px rgba(11,92,251,.30)!important;border:0!important}
.modal-f .btn{min-height:54px!important;font-size:16.5px!important;font-weight:800!important;
  border-radius:14px!important}

/* 계정 카드 — 역할마다 다른 색을 주고 선택 상태를 분명히 한다 */
#userList > *{border-radius:14px!important;border:1.5px solid #E4EAF6!important;
  transition:.15s;margin-bottom:9px!important}
#userList > *:hover{border-color:#B9CCFF!important;background:#F8FAFF!important;
  transform:translateX(2px)}
#userList > *[aria-selected=true],#userList > .on,#userList > .sel{
  border-color:var(--s1)!important;background:#F2F6FF!important;
  box-shadow:0 0 0 3px rgba(11,92,251,.10)!important}
#userList > *:nth-child(1) .av,#userList > *:nth-child(1) [class*=av]{
  background:var(--s1)!important;color:#fff!important}
#userList > *:nth-child(2) .av,#userList > *:nth-child(2) [class*=av]{
  background:var(--s6)!important;color:#fff!important}
#userList > *:nth-child(3) .av,#userList > *:nth-child(3) [class*=av]{
  background:var(--s3)!important;color:#fff!important}
#userList [class*=av]{font-weight:800!important;letter-spacing:-.3px}
#userList b,#userList strong{font-size:16.5px!important;font-weight:800!important}
#userList small,#userList span{font-size:13.5px!important}
.modal-h h3{font-size:22px!important;font-weight:800!important;letter-spacing:-.7px}
.modal-h p{font-size:15px!important;color:#5A6885!important}
.disc{background:var(--grad-soft)!important;border:1px solid #DFE6FF!important;
  border-radius:13px!important;color:#2B3E7A!important;font-size:14px!important;
  line-height:1.7;padding:14px 16px!important}
.pw .hint{font-size:13px!important;color:#8B97B2!important}
.pw input{min-height:50px!important;font-size:16px!important}

/* ── 로그인·가입 화면 ─────────────────────────────────────────
   서버가 그리던 화면이라 리뉴얼에서 빠져 있었다. 글꼴만 바꾸면 크기가 작아
   그대로 안 읽히므로 입력·버튼·제목까지 함께 올린다. */
body[data-auth] input[type=text],body[data-auth] input[type=email],
body[data-auth] input[type=password],body[data-auth] input[type=tel],
body[data-auth] input[type=number],body[data-auth] select{
  min-height:52px!important;font-size:16px!important;border-radius:13px!important;
  padding:0 15px!important;border:1px solid #E1E8F5!important;background:#fff!important}
body[data-auth] input:focus,body[data-auth] select:focus{outline:0;
  border-color:#0B5CFB!important;box-shadow:0 0 0 3px rgba(11,92,251,.12)!important}
body[data-auth] label{font-size:14px!important;font-weight:700!important;color:#33415C!important}
body[data-auth] button[type=submit],body[data-auth] .btn-primary,
body[data-auth] button.primary,body[data-auth] .submit{
  min-height:54px!important;font-size:16.5px!important;font-weight:800!important;
  border-radius:14px!important;color:#fff!important;border:0!important;
  background:linear-gradient(135deg,#0B5CFB,#6D3BF5)!important;
  box-shadow:0 8px 22px rgba(11,92,251,.28)!important}
body[data-auth] button[type=submit]:disabled{background:#E9EEF9!important;
  color:#6B7793!important;box-shadow:none!important}
body[data-auth] h1{font-size:30px!important;font-weight:800!important;letter-spacing:-1px!important}
body[data-auth] h2{font-size:22px!important;font-weight:800!important;letter-spacing:-.7px!important}
body[data-auth] p,body[data-auth] .desc,body[data-auth] .sub{font-size:15.5px!important;
  line-height:1.72!important}
body[data-auth] .card,body[data-auth] .login-box,body[data-auth] .auth-box,
body[data-auth] .register-box,body[data-auth] form{border-radius:22px!important}

/* ── 로그인: 넓은 화면에서는 좌우로 나눈다 ────────────────────
   마크업을 건드리지 않고, 배경으로 좌측 비주얼을 깔고 폼을 오른쪽으로 민다.
   좁은 화면에서는 배경을 빼서 폼만 남긴다. */
/* 이미지 자체가 옅은 파랑 배경을 갖고 있어, 페이지 배경을 같은 톤으로 맞춰야
   사각 경계가 보이지 않는다. 폼과 겹치지 않도록 왼쪽으로 더 밀어둔다. */
body[data-auth]{background-color:#EDF2FA!important}
@media (min-width:1180px){
  body[data-auth]{
    background-image:url('/static/media/auth-visual.webp')!important;
    background-repeat:no-repeat!important;
    background-size:auto 68%!important;
    background-position:9% center!important}
  body[data-auth] form,body[data-auth] .login-box,body[data-auth] .auth-box,
  body[data-auth] .ll-card,body[data-auth] .lr-card{
    margin-left:auto!important;margin-right:10%!important}
}
/* 로고가 어두운 배경 전제로 흰 글씨였다. 밝은 배경에 맞춰 되돌린다. */
body[data-auth] .ll-logo-text,body[data-auth] .lr-logo-text,
body[data-auth] [class*="logo-text"]{color:#0B1533!important;
  text-shadow:none!important;opacity:1!important}
body[data-auth] [class*="logo-text"] span{color:#0B5CFB!important}
body[data-auth] [class*="logo-sub"],body[data-auth] [class*="logo-tag"]{
  color:#5A6885!important;opacity:1!important}
body[data-auth] [class*="logo-box"],body[data-auth] [class*="logo-wrap"]{
  background:rgba(255,255,255,.72)!important;border:1px solid #DEE6F5!important;
  box-shadow:0 6px 20px rgba(11,21,51,.06)!important}

/* ── 콘솔: 비어 있는 상태 ─────────────────────────────────── */
.empty{padding:34px 20px!important;text-align:center;color:#6B7793!important;
  font-size:15px!important;line-height:1.7}
.card > .empty::before{content:'';display:block;width:132px;height:132px;margin:0 auto 14px;
  background:url('/static/media/console-empty.webp') center/contain no-repeat;opacity:.92}

/* ── 운영 화면 헤더 배경 ───────────────────────────────────── */
body.mmbar-on .topbar{background-image:url('/static/media/admin-header.webp')!important;
  background-size:cover!important;background-position:center 40%!important}

/* ── 글꼴을 키우면서 생긴 넘침 방어 ───────────────────────────
   초기 화면들은 좁은 라벨 폭에 맞춰 짜여 있어서, 본문만 올리면 글자가 삐져나온다.
   해당 요소만 줄바꿈을 허용하고 아이콘 래퍼는 넘침 계산에서 뺀다. */
.snav-label,.snav-item span,.side-label{font-size:13px!important;white-space:normal!important;
  line-height:1.36!important;min-width:0}
[class*="icon"],[class*="-ic"],[class*="logo"]{overflow:hidden!important}
.dash-score-banner,.hero{overflow:hidden}

/* ── 데모 배지 톤다운 ─────────────────────────────────────── */
.demo,.chip.demo{background:#F1ECFF!important;color:#5B34C7!important;
  border:1px solid #DDD0FF!important;font-weight:700!important}
