
    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

    :root {
      /* === NOTION-DARK PALETTE (v2.8.20: 사이버펑크 네온 → 차분한 노션 다크로 정돈) === */
      --neon-cyan:    #6aa9e9;   /* 차분한 블루 액센트 */
      --neon-cyan-d:  #4a86c5;
      --neon-pink:    #e0608f;
      --neon-magenta: #d96a9e;
      --neon-purple:  #9b8cdb;
      --neon-violet:  #8f7fd0;
      --neon-green:   #5fb98a;
      --neon-yellow:  #d6c277;
      --neon-orange:  #d99a5a;
      --bg-void:      #191919;   /* 노션 차콜 */
      --bg-deep:      #1e1e1e;
      --bg-card:      #242424;
      --bg-card-hi:   #2c2c2c;
      --bg-input:     #1c1c1c;
      --border:       rgba(255,255,255,0.094);
      --border-pink:  rgba(224,96,143,0.28);
      --txt-hi:       #e6e6e4;
      --txt-mid:      #9b9b97;
      --txt-lo:       #6b6b69;
      --txt-neon:     #6aa9e9;
      --glow-cyan:    0 0 0 0 rgba(0,0,0,0);   /* 네온 글로우 제거(리스트 안전값) */
      --glow-pink:    0 0 0 0 rgba(0,0,0,0);
      --glow-purple:  0 0 0 0 rgba(0,0,0,0);
      --glow-green:   0 0 0 0 rgba(0,0,0,0);
      --sh-card:      0 0 0 1px rgba(255,255,255,0.06), 0 4px 16px rgba(0,0,0,0.40);

      /* legacy aliases (for compatibility with inline --accent) */
      --blue-deep:  var(--neon-purple);
      --blue-mid:   var(--neon-cyan);
      --blue-light: var(--neon-cyan);
      --cyan:       var(--neon-cyan);
    }

    @keyframes scanline {
      0%   { transform: translateY(-100%); }
      100% { transform: translateY(100vh); }
    }
    @keyframes glitch {
      0%, 100% { text-shadow: 0 0 6px var(--neon-cyan), 0 0 12px rgba(0,240,255,0.45); }
      40%      { text-shadow: -2px 0 var(--neon-pink), 2px 0 var(--neon-cyan); }
      60%      { text-shadow: 2px 0 var(--neon-pink), -2px 0 var(--neon-cyan); }
    }
    @keyframes pulse-neon {
      0%, 100% { box-shadow: var(--glow-cyan); }
      50%      { box-shadow: 0 0 16px rgba(0,240,255,0.85), 0 0 36px rgba(0,240,255,0.45); }
    }
    @keyframes flicker {
      0%, 19%, 21%, 23%, 25%, 54%, 56%, 100% { opacity: 1; }
      20%, 24%, 55% { opacity: 0.55; }
    }

    html { background: var(--bg-void); }
    body {
      font-family: 'JetBrains Mono', 'Noto Sans KR', monospace;
      background: var(--bg-void);
      background-image:
        linear-gradient(rgba(0,240,255,0.04) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,0,110,0.04) 1px, transparent 1px),
        radial-gradient(ellipse at 15% 0%, rgba(176,38,255,0.18) 0%, transparent 55%),
        radial-gradient(ellipse at 85% 100%, rgba(0,240,255,0.14) 0%, transparent 55%),
        radial-gradient(ellipse at 50% 50%, rgba(255,0,110,0.06) 0%, transparent 60%);
      background-size: 44px 44px, 44px 44px, 100% 100%, 100% 100%, 100% 100%;
      background-attachment: fixed;
      color: var(--txt-hi);
      min-height: 100vh;
      position: relative;
      overflow-x: hidden;
      letter-spacing: 0.01em;
    }
    /* fixed scanline overlay */
    body::after {
      content: '';
      position: fixed;
      inset: 0;
      pointer-events: none;
      background: repeating-linear-gradient(
        0deg,
        transparent 0,
        transparent 2px,
        rgba(0,240,255,0.022) 2px,
        rgba(0,240,255,0.022) 3px
      );
      z-index: 9999;
      mix-blend-mode: screen;
    }
    /* moving horizontal scanline */
    body::before {
      content: '';
      position: fixed;
      left: 0; right: 0;
      height: 100px;
      background: linear-gradient(180deg, transparent 0%, rgba(0,240,255,0.06) 50%, transparent 100%);
      pointer-events: none;
      z-index: 9998;
      animation: scanline 8s linear infinite;
    }

    /* Cyberpunk corner-cut helper (used via mask-image fallback) */
    .cp-frame {
      position: relative;
    }
    .cp-frame::before, .cp-frame::after {
      content: '';
      position: absolute;
      width: 14px; height: 14px;
      border-color: var(--neon-cyan);
      border-style: solid;
      pointer-events: none;
    }
    .cp-frame::before {
      top: -1px; left: -1px;
      border-width: 2px 0 0 2px;
    }
    .cp-frame::after {
      bottom: -1px; right: -1px;
      border-width: 0 2px 2px 0;
      border-color: var(--neon-pink);
    }

    /* Scrollbar */
    ::-webkit-scrollbar { width: 10px; height: 10px; }
    ::-webkit-scrollbar-track { background: var(--bg-deep); }
    ::-webkit-scrollbar-thumb {
      background: linear-gradient(180deg, var(--neon-cyan), var(--neon-purple));
      border-radius: 0;
    }
    ::-webkit-scrollbar-thumb:hover {
      background: linear-gradient(180deg, var(--neon-pink), var(--neon-purple));
    }
    ::selection { background: var(--neon-pink); color: #fff; }

    /* ── LOGIN SCREEN ── */
    #login-screen {
      min-height: 100vh;
      display: flex;
      align-items: center;
      justify-content: center;
      position: relative;
      background:
        radial-gradient(ellipse at 30% 20%, rgba(176,38,255,0.20) 0%, transparent 55%),
        radial-gradient(ellipse at 70% 80%, rgba(255,0,110,0.18) 0%, transparent 55%),
        radial-gradient(ellipse at 50% 50%, rgba(0,240,255,0.10) 0%, transparent 65%),
        var(--bg-void);
    }
    .login-box {
      background: linear-gradient(180deg, rgba(15,10,40,0.95) 0%, rgba(10,4,32,0.95) 100%);
      border: 1px solid var(--neon-cyan);
      border-radius: 0;
      padding: 44px 38px 40px;
      width: min(420px, 92vw);
      box-shadow:
        0 0 0 1px rgba(0,240,255,0.12),
        0 0 30px rgba(0,240,255,0.25),
        0 30px 80px rgba(0,0,0,0.7),
        inset 0 0 60px rgba(176,38,255,0.06);
      text-align: center;
      position: relative;
      clip-path: polygon(0 18px, 18px 0, calc(100% - 18px) 0, 100% 18px, 100% calc(100% - 18px), calc(100% - 18px) 100%, 18px 100%, 0 calc(100% - 18px));
    }
    .login-box::before {
      content: '> SYSTEM_AUTH.REQUIRED';
      position: absolute;
      top: 14px; left: 24px;
      color: var(--neon-pink);
      font-family: 'JetBrains Mono', monospace;
      font-size: 10px;
      letter-spacing: 0.18em;
      text-shadow: 0 0 8px rgba(255,0,110,0.7);
    }
    .login-box::after {
      content: '';
      position: absolute;
      inset: 0;
      pointer-events: none;
      background: repeating-linear-gradient(0deg, transparent 0, transparent 3px, rgba(255,255,255,0.015) 3px, rgba(255,255,255,0.015) 4px);
    }
    .login-logo {
      display: flex;
      justify-content: center;
      margin-top: 8px;
      margin-bottom: 14px;
    }
    .login-logo img {
      width: 78%;
      max-width: 280px;
      height: auto;
      display: block;
      filter:
        invert(1)
        hue-rotate(180deg)
        saturate(1.7)
        contrast(1.05)
        drop-shadow(0 0 10px rgba(0,240,255,0.7))
        drop-shadow(0 0 26px rgba(0,240,255,0.35));
      animation: flicker 6s infinite;
    }
    .login-sub {
      font-family: 'JetBrains Mono', monospace;
      font-size: 11px;
      color: var(--neon-pink);
      letter-spacing: 0.32em;
      margin-bottom: 36px;
      text-shadow: 0 0 6px rgba(255,0,110,0.5);
    }
    .login-label {
      display: block;
      font-family: 'JetBrains Mono', monospace;
      font-size: 10px;
      font-weight: 500;
      letter-spacing: 0.22em;
      text-transform: uppercase;
      color: var(--neon-cyan);
      text-align: left;
      margin-bottom: 10px;
      text-shadow: 0 0 6px rgba(0,240,255,0.4);
    }
    .login-label::before { content: '◉ '; color: var(--neon-pink); }
    .login-input {
      width: 100%;
      border: 1px solid var(--border);
      border-radius: 0;
      padding: 13px 16px;
      font-size: 15px;
      font-family: 'JetBrains Mono', monospace;
      color: var(--neon-cyan);
      background: var(--bg-input);
      outline: none;
      transition: border-color .2s, box-shadow .2s;
      letter-spacing: 0.18em;
      margin-bottom: 22px;
      caret-color: var(--neon-pink);
    }
    .login-input:focus {
      border-color: var(--neon-cyan);
      box-shadow: var(--glow-cyan);
    }
    .login-btn {
      width: 100%;
      background: linear-gradient(135deg, var(--neon-pink) 0%, var(--neon-purple) 100%);
      border: 1px solid rgba(255,255,255,0.2);
      border-radius: 0;
      padding: 14px;
      color: #fff;
      font-family: 'Black Han Sans', sans-serif;
      font-size: 15px;
      letter-spacing: 0.18em;
      text-transform: uppercase;
      cursor: pointer;
      box-shadow: 0 0 18px rgba(255,0,110,0.55), 0 0 40px rgba(176,38,255,0.30);
      transition: all .2s;
      position: relative;
      clip-path: polygon(8px 0, 100% 0, calc(100% - 8px) 100%, 0 100%);
    }
    .login-btn:hover {
      transform: translateY(-1px);
      box-shadow: 0 0 26px rgba(255,0,110,0.85), 0 0 60px rgba(176,38,255,0.50);
    }
    .login-err {
      margin-top: 14px;
      font-family: 'JetBrains Mono', monospace;
      font-size: 11px;
      letter-spacing: 0.1em;
      color: #ff3860;
      text-shadow: 0 0 8px rgba(255,56,96,0.6);
      display: none;
    }
    .login-err::before { content: '⚠ ERR_AUTH_FAIL: '; }
    .login-err.show { display: block; }

    /* ── DASHBOARD ── */
    #dashboard { display: none; }

    /* 헤더 */
    .dash-header {
      background:
        linear-gradient(90deg, rgba(176,38,255,0.18) 0%, rgba(0,240,255,0.10) 50%, rgba(255,0,110,0.18) 100%),
        linear-gradient(180deg, #0a0420 0%, #050010 100%);
      border-bottom: 1px solid var(--neon-cyan);
      box-shadow: 0 0 24px rgba(0,240,255,0.25), inset 0 -1px 0 rgba(255,0,110,0.4);
      padding: 0 32px;
      position: relative;
    }
    .dash-header::after {
      content: '';
      position: absolute;
      left: 0; right: 0; bottom: -2px; height: 2px;
      background: linear-gradient(90deg, transparent, var(--neon-pink), var(--neon-cyan), var(--neon-pink), transparent);
      filter: blur(0.5px);
    }
    .dash-header-inner {
      max-width: 1280px;
      margin: 0 auto;
      height: 68px;
      display: flex;
      align-items: center;
      justify-content: space-between;
    }
    .dash-brand {
      display: flex;
      align-items: center;
      gap: 14px;
    }
    .dash-brand img {
      height: 42px;
      width: auto;
      display: block;
      /* invert: 검정 텍스트→흰색, 흰 배경→검정(다크 페이지와 동화)
         hue-rotate(180deg): 반전된 노랑을 원래 블루 계열로 복원
         saturate: 시안 색감 강화 / drop-shadow: 네온 글로우 */
      filter:
        invert(1)
        hue-rotate(180deg)
        saturate(1.6)
        contrast(1.05)
        drop-shadow(0 0 8px rgba(0,240,255,0.65))
        drop-shadow(0 0 22px rgba(0,240,255,0.32));
      animation: flicker 8s infinite;
    }
    .dash-brand span {
      font-family: 'JetBrains Mono', monospace;
      font-size: 10px;
      letter-spacing: 0.32em;
      color: var(--neon-pink);
      vertical-align: middle;
      padding: 3px 9px;
      border: 1px solid var(--neon-pink);
      text-shadow: 0 0 6px rgba(255,0,110,0.5);
      box-shadow: 0 0 10px rgba(255,0,110,0.25);
    }
    .dash-actions {
      display: flex;
      align-items: center;
      gap: 14px;
    }
    .refresh-btn {
      background: rgba(0,240,255,0.08);
      border: 1px solid var(--neon-cyan);
      border-radius: 0;
      padding: 8px 18px;
      color: var(--neon-cyan);
      font-family: 'JetBrains Mono', monospace;
      font-size: 11px;
      letter-spacing: 0.18em;
      text-transform: uppercase;
      cursor: pointer;
      transition: all .2s;
      box-shadow: var(--glow-cyan);
      clip-path: polygon(6px 0, 100% 0, calc(100% - 6px) 100%, 0 100%);
    }
    .refresh-btn:hover {
      background: var(--neon-cyan);
      color: var(--bg-void);
      box-shadow: 0 0 20px rgba(0,240,255,0.85);
    }
    .refresh-btn::before { content: '↻ '; }
    .back-link {
      color: var(--neon-pink);
      font-family: 'JetBrains Mono', monospace;
      font-size: 11px;
      letter-spacing: 0.18em;
      text-transform: uppercase;
      text-decoration: none;
      transition: all .2s;
      text-shadow: 0 0 6px rgba(255,0,110,0.4);
    }
    .back-link:hover {
      color: var(--neon-yellow);
      text-shadow: 0 0 10px rgba(255,242,0,0.7);
    }

    /* Last updated */
    .last-updated {
      font-family: 'JetBrains Mono', monospace;
      font-size: 11px;
      letter-spacing: 0.1em;
      color: var(--txt-mid);
    }
    .last-updated::before { content: '◷ '; color: var(--neon-green); }

    /* 대시보드 본문 */
    .dash-body {
      max-width: 1280px;
      margin: 0 auto;
      padding: 36px 32px 60px;
      position: relative;
    }

    /* 섹션 타이틀 */
    .dash-section-title {
      font-family: 'Black Han Sans', sans-serif;
      font-size: 14px;
      letter-spacing: 0.18em;
      text-transform: uppercase;
      color: var(--neon-cyan);
      margin-bottom: 18px;
      display: flex;
      align-items: center;
      gap: 12px;
      text-shadow: 0 0 8px rgba(0,240,255,0.5);
    }
    .dash-section-title::before {
      content: '▶';
      font-size: 11px;
      color: var(--neon-pink);
      text-shadow: 0 0 8px rgba(255,0,110,0.7);
    }
    .dash-section-title::after {
      content: '';
      flex: 1;
      height: 1px;
      background: linear-gradient(90deg, var(--neon-cyan), transparent);
      opacity: 0.5;
    }

    /* ── 스탯 카드 그리드 ── */
    .kpi-grid {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
      gap: 14px;
      margin-bottom: 36px;
    }
    .kpi-card {
      background:
        linear-gradient(135deg, rgba(0,240,255,0.04) 0%, rgba(176,38,255,0.06) 100%),
        var(--bg-card);
      border: 1px solid var(--border);
      border-radius: 0;
      padding: 22px 20px;
      box-shadow: var(--sh-card);
      position: relative;
      overflow: hidden;
      transition: all .25s;
      clip-path: polygon(0 0, calc(100% - 14px) 0, 100% 14px, 100% 100%, 14px 100%, 0 calc(100% - 14px));
    }
    .kpi-card:hover {
      border-color: var(--neon-cyan);
      box-shadow: 0 0 0 1px var(--neon-cyan), var(--glow-cyan), 0 8px 32px rgba(0,0,0,0.55);
      transform: translateY(-2px);
    }
    .kpi-card::before {
      content: '';
      position: absolute;
      top: 0; left: 0; right: 0;
      height: 2px;
      background: var(--accent, linear-gradient(90deg, var(--neon-cyan), var(--neon-pink)));
      box-shadow: 0 0 12px currentColor;
    }
    .kpi-card::after {
      content: '';
      position: absolute;
      top: 8px; right: 8px;
      width: 6px; height: 6px;
      background: var(--neon-pink);
      border-radius: 50%;
      box-shadow: 0 0 8px var(--neon-pink);
      animation: flicker 3s infinite;
    }
    .kpi-icon {
      font-size: 22px;
      margin-bottom: 14px;
      display: block;
      filter: drop-shadow(0 0 6px rgba(0,240,255,0.5));
    }
    .kpi-n {
      font-family: 'JetBrains Mono', monospace;
      font-size: 34px;
      font-weight: 700;
      color: var(--neon-cyan);
      line-height: 1;
      margin-bottom: 8px;
      text-shadow: 0 0 12px rgba(0,240,255,0.55);
      letter-spacing: 0.02em;
    }
    .kpi-l {
      font-family: 'JetBrains Mono', monospace;
      font-size: 10px;
      color: var(--txt-mid);
      letter-spacing: 0.22em;
      text-transform: uppercase;
    }

    /* ── 메뉴 클릭 통계 (컴팩트) ── */
    .menu-stats-card {
      background: var(--bg-card);
      border: 1px solid var(--border);
      border-radius: 0;
      padding: 14px 18px;
      margin-bottom: 28px;
      box-shadow: var(--sh-card);
      position: relative;
    }
    .menu-stats-card::before {
      content: '';
      position: absolute;
      left: 0; top: 0; bottom: 0;
      width: 3px;
      background: linear-gradient(180deg, var(--neon-cyan), var(--neon-pink));
      box-shadow: 0 0 10px var(--neon-cyan);
    }
    .menu-stats-head {
      display: flex;
      align-items: center;
      justify-content: space-between;
      font-family: 'JetBrains Mono', monospace;
      font-size: 11px;
      font-weight: 700;
      color: var(--neon-cyan);
      letter-spacing: 0.16em;
      text-transform: uppercase;
      margin-bottom: 10px;
      text-shadow: 0 0 6px rgba(0,240,255,0.4);
    }
    .menu-stats-hint {
      font-size: 10px;
      color: var(--neon-pink);
      font-weight: 500;
      letter-spacing: 0.1em;
    }
    .menu-stats-body {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
      gap: 6px;
    }
    .menu-stats-row {
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 7px 12px;
      background: rgba(0,240,255,0.04);
      border: 1px solid rgba(0,240,255,0.12);
      border-radius: 0;
      font-size: 12px;
      transition: all .2s;
    }
    .menu-stats-row:hover {
      background: rgba(0,240,255,0.08);
      border-color: var(--neon-cyan);
      box-shadow: 0 0 10px rgba(0,240,255,0.3);
    }
    .menu-stats-row .ms-name {
      color: var(--txt-hi);
      font-weight: 500;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
    }
    .menu-stats-row .ms-num {
      color: var(--neon-cyan);
      font-family: 'JetBrains Mono', monospace;
      font-size: 11px;
      font-weight: 700;
      margin-left: 8px;
      flex-shrink: 0;
      text-shadow: 0 0 6px rgba(0,240,255,0.4);
    }
    .menu-stats-row .ms-num .ms-total {
      color: var(--neon-pink);
      font-weight: 500;
      text-shadow: 0 0 4px rgba(255,0,110,0.4);
    }

    /* ── 카드별 클릭 통계 ── */
    .card-stats-wrap {
      background: var(--bg-card);
      border: 1px solid var(--border);
      padding: 14px 18px;
      margin-bottom: 28px;
      box-shadow: var(--sh-card);
      position: relative;
    }
    .card-stats-wrap::before {
      content: '';
      position: absolute;
      left: 0; top: 0; bottom: 0;
      width: 3px;
      background: linear-gradient(180deg, var(--neon-green), var(--neon-cyan));
      box-shadow: 0 0 10px var(--neon-green);
    }
    .card-stats-head {
      display: flex;
      align-items: center;
      justify-content: space-between;
      font-family: 'JetBrains Mono', monospace;
      font-size: 11px;
      font-weight: 700;
      color: var(--neon-green);
      letter-spacing: 0.16em;
      text-transform: uppercase;
      margin-bottom: 14px;
      text-shadow: 0 0 6px rgba(0,255,136,0.4);
    }
    .card-stats-hint {
      font-size: 10px;
      color: var(--neon-pink);
      font-weight: 500;
      letter-spacing: 0.1em;
    }
    /* 카드별 클릭 — 메뉴 그룹 */
    .cs-menu-group { margin-bottom: 18px; }
    .cs-menu-group:last-child { margin-bottom: 0; }
    .cs-menu-header {
      font-size: 10px;
      font-weight: 700;
      letter-spacing: 0.14em;
      text-transform: uppercase;
      color: var(--neon-cyan);
      font-family: 'JetBrains Mono', monospace;
      padding: 4px 10px;
      background: rgba(0,240,255,0.06);
      border-left: 2px solid var(--neon-cyan);
      margin-bottom: 10px;
      text-shadow: 0 0 6px rgba(0,240,255,0.35);
    }
    /* 카드 그리드 (3열) */
    .cs-cards-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 10px;
    }
    /* 개별 카드 차트 셀 */
    .cs-card-chart {
      background: rgba(0,240,255,0.025);
      border: 1px solid rgba(0,240,255,0.12);
      padding: 8px;
      position: relative;
    }
    .cs-card-name {
      font-family: 'JetBrains Mono', monospace;
      font-size: 9px;
      font-weight: 700;
      color: var(--txt-mid);
      letter-spacing: 0.06em;
      margin-bottom: 4px;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
    }
    .cs-card-total {
      position: absolute;
      top: 8px; right: 8px;
      font-family: 'JetBrains Mono', monospace;
      font-size: 10px;
      font-weight: 700;
      color: var(--neon-pink);
      text-shadow: 0 0 5px rgba(255,0,110,0.4);
    }
    .cs-card-canvas-wrap {
      position: relative;
      height: 90px;
    }
    .cs-card-canvas-wrap canvas {
      width: 100%;
      height: 100%;
      filter: drop-shadow(0 0 4px rgba(0,240,255,0.3));
    }

    /* ── 체류 시간 통계 ── */
    .sess-stats-wrap {
      background: var(--bg-card);
      border: 1px solid var(--border);
      padding: 14px 18px;
      margin-bottom: 28px;
      box-shadow: var(--sh-card);
      position: relative;
    }
    .sess-stats-wrap::before {
      content: '';
      position: absolute;
      left: 0; top: 0; bottom: 0;
      width: 3px;
      background: linear-gradient(180deg, var(--neon-yellow), var(--neon-orange));
      box-shadow: 0 0 10px var(--neon-yellow);
    }
    .sess-head {
      display: flex;
      align-items: center;
      justify-content: space-between;
      font-family: 'JetBrains Mono', monospace;
      font-size: 11px;
      font-weight: 700;
      color: var(--neon-yellow);
      letter-spacing: 0.16em;
      text-transform: uppercase;
      margin-bottom: 14px;
      text-shadow: 0 0 6px rgba(255,242,0,0.4);
    }
    .sess-head-hint {
      font-size: 10px;
      color: var(--neon-pink);
      font-weight: 500;
      letter-spacing: 0.1em;
    }
    /* KPI 3칸 */
    .sess-kpi-row {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 10px;
      margin-bottom: 14px;
    }
    .sess-kpi {
      background: rgba(255,242,0,0.04);
      border: 1px solid rgba(255,242,0,0.14);
      padding: 11px 10px;
      text-align: center;
      position: relative;
    }
    .sess-kpi-num {
      font-family: 'JetBrains Mono', monospace;
      font-size: 22px;
      font-weight: 700;
      color: var(--neon-yellow);
      text-shadow: 0 0 10px rgba(255,242,0,0.45);
      line-height: 1;
    }
    .sess-kpi-unit {
      font-family: 'JetBrains Mono', monospace;
      font-size: 11px;
      color: var(--neon-orange);
      margin-left: 2px;
    }
    .sess-kpi-label {
      font-size: 10px;
      color: var(--txt-lo);
      letter-spacing: 0.08em;
      margin-top: 5px;
      font-family: 'JetBrains Mono', monospace;
    }
    /* 분포 구간 */
    .sess-dist-label {
      font-size: 10px;
      font-family: 'JetBrains Mono', monospace;
      color: var(--txt-lo);
      letter-spacing: 0.1em;
      text-transform: uppercase;
      margin-bottom: 7px;
    }
    .sess-dist {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 7px;
      margin-bottom: 12px;
    }
    .sess-dist-pill {
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 4px;
      padding: 8px 6px;
      background: rgba(176,38,255,0.06);
      border: 1px solid rgba(176,38,255,0.2);
    }
    .sess-dist-cnt {
      font-family: 'JetBrains Mono', monospace;
      font-size: 20px;
      font-weight: 700;
      color: var(--neon-purple);
      text-shadow: 0 0 8px rgba(176,38,255,0.5);
      line-height: 1;
    }
    .sess-dist-lbl {
      font-size: 10px;
      color: var(--txt-lo);
      font-family: 'JetBrains Mono', monospace;
      text-align: center;
    }
    /* 최근 세션 타임라인 */
    .sess-recent-label {
      font-size: 10px;
      font-family: 'JetBrains Mono', monospace;
      color: var(--txt-lo);
      letter-spacing: 0.1em;
      text-transform: uppercase;
      margin-bottom: 5px;
    }
    .sess-recent {
      display: flex;
      flex-direction: column;
      gap: 2px;
      max-height: 130px;
      overflow-y: auto;
    }
    .sess-rec-row {
      display: flex;
      justify-content: space-between;
      align-items: center;
      font-size: 11px;
      padding: 4px 8px;
      border-bottom: 1px solid rgba(0,240,255,0.05);
    }
    .sess-rec-row:last-child { border-bottom: none; }
    .sess-rec-time {
      color: var(--txt-lo);
      font-family: 'JetBrains Mono', monospace;
      font-size: 10px;
    }
    .sess-rec-dur {
      color: var(--neon-yellow);
      font-family: 'JetBrains Mono', monospace;
      font-weight: 700;
      font-size: 11px;
      text-shadow: 0 0 6px rgba(255,242,0,0.35);
    }
    .sess-empty {
      font-size: 12px;
      color: var(--txt-lo);
      font-family: 'JetBrains Mono', monospace;
      padding: 10px 0;
      letter-spacing: 0.08em;
    }
    .cs-empty {
      font-size: 12px;
      color: var(--txt-lo);
      font-family: 'JetBrains Mono', monospace;
      padding: 10px 0;
      letter-spacing: 0.08em;
    }

    /* ── 차트 영역 ── */
    .chart-row {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 16px;
      margin-bottom: 36px;
    }
    .chart-card {
      background:
        linear-gradient(135deg, rgba(0,240,255,0.03) 0%, transparent 50%, rgba(255,0,110,0.04) 100%),
        var(--bg-card);
      border: 1px solid var(--border);
      border-radius: 0;
      padding: 24px;
      box-shadow: var(--sh-card);
      position: relative;
      clip-path: polygon(0 0, calc(100% - 16px) 0, 100% 16px, 100% 100%, 16px 100%, 0 calc(100% - 16px));
    }
    .chart-card::before {
      content: '';
      position: absolute;
      top: 12px; right: 12px;
      width: 30px; height: 1px;
      background: var(--neon-cyan);
      box-shadow: 0 0 6px var(--neon-cyan);
    }
    .chart-title {
      font-family: 'JetBrains Mono', monospace;
      font-size: 11px;
      font-weight: 600;
      color: var(--neon-cyan);
      margin-bottom: 22px;
      letter-spacing: 0.18em;
      text-transform: uppercase;
      text-shadow: 0 0 6px rgba(0,240,255,0.4);
    }
    .chart-title::before { content: '▤ '; color: var(--neon-pink); }
    .line-chart {
      position: relative;
      height: 160px;
    }
    .line-chart canvas {
      width: 100%;
      height: 100%;
      filter: drop-shadow(0 0 6px rgba(0,240,255,0.4));
    }

    /* ── 클릭 순위 테이블 ── */
    .rank-card {
      background: var(--bg-card);
      border: 1px solid var(--border);
      border-radius: 0;
      padding: 24px;
      box-shadow: var(--sh-card);
      margin-bottom: 36px;
      clip-path: polygon(0 0, calc(100% - 16px) 0, 100% 16px, 100% 100%, 16px 100%, 0 calc(100% - 16px));
    }
    .rank-table {
      width: 100%;
      border-collapse: collapse;
    }
    .rank-table th {
      font-family: 'JetBrains Mono', monospace;
      font-size: 10px;
      font-weight: 600;
      letter-spacing: 0.22em;
      text-transform: uppercase;
      color: var(--neon-pink);
      padding: 0 12px 14px;
      text-align: left;
      border-bottom: 1px solid var(--neon-pink);
      text-shadow: 0 0 6px rgba(255,0,110,0.4);
    }
    .rank-table td {
      padding: 13px 12px;
      font-size: 13px;
      color: var(--txt-hi);
      border-bottom: 1px solid rgba(0,240,255,0.08);
      vertical-align: middle;
    }
    .rank-table tr { transition: background .2s; }
    .rank-table tr:hover td {
      background: rgba(0,240,255,0.04);
    }
    .rank-table tr:last-child td { border-bottom: none; }
    .rank-num {
      font-family: 'JetBrains Mono', monospace;
      font-size: 11px;
      font-weight: 700;
      color: var(--neon-cyan);
      width: 32px;
      text-shadow: 0 0 6px rgba(0,240,255,0.5);
    }
    .rank-bar-wrap {
      display: flex;
      align-items: center;
      gap: 10px;
    }
    .rank-inline-bar {
      flex: 1;
      height: 4px;
      border-radius: 0;
      background: linear-gradient(90deg, var(--neon-cyan), var(--neon-pink));
      min-width: 4px;
      box-shadow: 0 0 8px rgba(0,240,255,0.5);
    }
    .rank-clicks {
      font-family: 'JetBrains Mono', monospace;
      font-size: 13px;
      font-weight: 700;
      color: var(--neon-cyan);
      min-width: 36px;
      text-align: right;
      text-shadow: 0 0 6px rgba(0,240,255,0.5);
    }
    .rank-type-badge {
      font-family: 'JetBrains Mono', monospace;
      font-size: 9px;
      padding: 3px 9px;
      border-radius: 0;
      font-weight: 500;
      letter-spacing: 0.12em;
      text-transform: uppercase;
      border: 1px solid currentColor;
    }
    .badge-life {
      background: rgba(0,240,255,0.08);
      color: var(--neon-cyan);
      text-shadow: 0 0 4px rgba(0,240,255,0.5);
    }
    .badge-nonlife {
      background: rgba(255,0,110,0.08);
      color: var(--neon-pink);
      text-shadow: 0 0 4px rgba(255,0,110,0.5);
    }

    .empty-msg {
      text-align: center;
      padding: 40px;
      color: var(--txt-mid);
      font-family: 'JetBrains Mono', monospace;
      font-size: 12px;
      letter-spacing: 0.1em;
    }
    .empty-msg::before { content: '> '; color: var(--neon-cyan); }

    /* ── 소식지 관리 ── */
    .nl-upload-box {
      background: var(--bg-card);
      border: 1px solid var(--border);
      border-radius: 0;
      padding: 24px;
      box-shadow: var(--sh-card);
      margin-bottom: 20px;
      position: relative;
      clip-path: polygon(0 0, calc(100% - 14px) 0, 100% 14px, 100% 100%, 14px 100%, 0 calc(100% - 14px));
    }
    .nl-upload-box::before {
      content: '◢';
      position: absolute;
      top: 0; right: 0;
      color: var(--neon-pink);
      font-size: 16px;
      line-height: 1;
      text-shadow: 0 0 8px rgba(255,0,110,0.6);
    }
    .nl-form {
      display: flex;
      gap: 12px;
      align-items: flex-end;
      flex-wrap: wrap;
    }
    .nl-field {
      display: flex;
      flex-direction: column;
      gap: 6px;
    }
    .nl-field label {
      font-family: 'JetBrains Mono', monospace;
      font-size: 9px;
      font-weight: 600;
      letter-spacing: 0.22em;
      text-transform: uppercase;
      color: var(--neon-cyan);
      text-shadow: 0 0 4px rgba(0,240,255,0.4);
    }
    .nl-field label::before { content: '▸ '; color: var(--neon-pink); }
    .nl-field select,
    .nl-field input[type="text"],
    .nl-field textarea {
      border: 1px solid var(--border);
      border-radius: 0;
      padding: 9px 12px;
      font-size: 13px;
      font-family: 'JetBrains Mono', monospace;
      color: var(--txt-hi);
      outline: none;
      background: var(--bg-input);
      transition: all .2s;
    }
    .nl-field select:focus,
    .nl-field input[type="text"]:focus,
    .nl-field textarea:focus {
      border-color: var(--neon-cyan);
      box-shadow: var(--glow-cyan);
    }
    .nl-field select option { background: var(--bg-deep); color: var(--txt-hi); }
    .nl-file-label {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      background: rgba(176,38,255,0.08);
      border: 1px dashed var(--neon-purple);
      border-radius: 0;
      padding: 9px 16px;
      font-family: 'JetBrains Mono', monospace;
      font-size: 11px;
      letter-spacing: 0.08em;
      color: var(--neon-purple);
      cursor: pointer;
      transition: all .2s;
      text-shadow: 0 0 6px rgba(176,38,255,0.4);
    }
    .nl-file-label:hover {
      background: rgba(176,38,255,0.16);
      border-color: var(--neon-pink);
      box-shadow: var(--glow-purple);
      color: var(--neon-pink);
    }
    .nl-file-label input { display: none; }
    .nl-file-name {
      font-family: 'JetBrains Mono', monospace;
      font-size: 10px;
      color: var(--neon-cyan);
      max-width: 120px;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }
    .nl-upload-btn {
      background: linear-gradient(135deg, var(--neon-cyan) 0%, var(--neon-pink) 100%);
      border: 1px solid rgba(255,255,255,0.2);
      border-radius: 0;
      padding: 10px 22px;
      color: var(--bg-void);
      font-family: 'JetBrains Mono', monospace;
      font-size: 11px;
      font-weight: 700;
      letter-spacing: 0.18em;
      text-transform: uppercase;
      cursor: pointer;
      transition: all .2s;
      box-shadow: 0 0 16px rgba(0,240,255,0.4), 0 0 32px rgba(255,0,110,0.25);
      clip-path: polygon(6px 0, 100% 0, calc(100% - 6px) 100%, 0 100%);
    }
    .nl-upload-btn:hover {
      transform: translateY(-1px);
      box-shadow: 0 0 24px rgba(0,240,255,0.7), 0 0 50px rgba(255,0,110,0.4);
    }
    .nl-upload-btn:disabled { opacity: 0.35; cursor: not-allowed; }
    .nl-status {
      font-family: 'JetBrains Mono', monospace;
      font-size: 11px;
      letter-spacing: 0.06em;
      margin-top: 12px;
      color: var(--neon-green);
      text-shadow: 0 0 6px rgba(0,255,136,0.4);
    }

    .nl-list {
      background: var(--bg-card);
      border: 1px solid var(--border);
      border-radius: 0;
      padding: 24px;
      box-shadow: var(--sh-card);
      margin-bottom: 36px;
      clip-path: polygon(0 0, calc(100% - 14px) 0, 100% 14px, 100% 100%, 14px 100%, 0 calc(100% - 14px));
    }
    .nl-item {
      display: flex;
      align-items: center;
      gap: 14px;
      padding: 14px 0;
      border-bottom: 1px solid rgba(0,240,255,0.08);
      transition: all .2s;
    }
    .nl-item:hover {
      padding-left: 8px;
      border-bottom-color: var(--neon-cyan);
    }
    .nl-item:last-child { border-bottom: none; }
    .nl-thumb {
      width: 48px; height: 48px;
      border-radius: 0;
      object-fit: cover;
      background: var(--bg-input);
      border: 1px solid var(--neon-cyan);
      flex-shrink: 0;
      display: flex; align-items: center; justify-content: center;
      font-size: 20px;
      color: var(--neon-cyan);
      box-shadow: 0 0 8px rgba(0,240,255,0.3);
    }
    .nl-meta { flex: 1; min-width: 0; }
    .nl-meta-company {
      font-family: 'JetBrains Mono', monospace;
      font-size: 13px; font-weight: 700;
      color: var(--neon-cyan);
      letter-spacing: 0.06em;
      text-shadow: 0 0 4px rgba(0,240,255,0.4);
    }
    .nl-meta-title {
      font-size: 11px;
      color: var(--txt-mid);
      overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
    }
    .nl-meta-date {
      font-family: 'JetBrains Mono', monospace;
      font-size: 10px;
      color: var(--neon-pink);
      text-shadow: 0 0 4px rgba(255,0,110,0.4);
    }
    .nl-del-btn {
      background: transparent;
      border: 1px solid var(--neon-pink);
      border-radius: 0;
      padding: 6px 12px;
      font-family: 'JetBrains Mono', monospace;
      font-size: 10px;
      letter-spacing: 0.16em;
      text-transform: uppercase;
      color: var(--neon-pink);
      cursor: pointer;
      transition: all .2s;
      text-shadow: 0 0 6px rgba(255,0,110,0.5);
    }
    .nl-del-btn:hover {
      background: var(--neon-pink);
      color: var(--bg-void);
      box-shadow: var(--glow-pink);
      text-shadow: none;
    }

    /* ── 업로드 탭 ── */
    .upload-tabs {
      display: flex;
      gap: 8px;
      margin-bottom: 24px;
      flex-wrap: wrap;
      position: sticky;
      top: 0;
      background: linear-gradient(180deg, var(--bg-void) 70%, transparent 100%);
      padding: 14px 0;
      z-index: 10;
      border-bottom: 1px solid var(--neon-cyan);
      box-shadow: 0 4px 16px rgba(0,240,255,0.15);
    }
    .upload-tab {
      font-family: 'JetBrains Mono', monospace;
      font-size: 11px;
      font-weight: 600;
      letter-spacing: 0.16em;
      text-transform: uppercase;
      padding: 10px 20px;
      border-radius: 0;
      border: 1px solid var(--border);
      background: var(--bg-card);
      color: var(--txt-mid);
      cursor: pointer;
      transition: all .2s;
      display: inline-flex;
      align-items: center;
      gap: 6px;
      clip-path: polygon(8px 0, 100% 0, calc(100% - 8px) 100%, 0 100%);
    }
    .upload-tab:hover {
      border-color: var(--neon-cyan);
      color: var(--neon-cyan);
      text-shadow: 0 0 6px rgba(0,240,255,0.5);
      box-shadow: var(--glow-cyan);
    }
    .upload-tab.active {
      background: linear-gradient(135deg, var(--neon-pink) 0%, var(--neon-purple) 100%);
      color: #fff;
      border-color: transparent;
      text-shadow: 0 0 8px rgba(255,255,255,0.4);
      box-shadow: 0 0 20px rgba(255,0,110,0.55), 0 0 40px rgba(176,38,255,0.30);
    }
    /* v2.1.11: 탭 그룹 시각 구분자 */
    .tab-group-sep {
      display: inline-block;
      width: 1px; height: 22px;
      background: linear-gradient(180deg, transparent, var(--neon-cyan), transparent);
      opacity: 0.35;
      margin: 0 2px;
      align-self: center;
    }
    /* v2.1.11: 사용자 신청 통합 패널 — 내부 sub-tabs */
    .reqs-subtabs {
      display: flex; gap: 8px; align-items: center;
      padding: 0 0 14px;
      margin-bottom: 16px;
      border-bottom: 1px solid rgba(0,240,255,0.18);
      flex-wrap: wrap;
    }
    .reqs-subtab {
      font-family: inherit;
      padding: 9px 16px;
      border-radius: 8px;
      border: 1.5px solid var(--border);
      background: var(--bg-card);
      color: var(--txt-mid);
      font-size: 12.5px; font-weight: 700;
      cursor: pointer;
      transition: all .15s;
      display: inline-flex; align-items: center; gap: 8px;
    }
    .reqs-subtab:hover {
      border-color: var(--neon-cyan, #10b981);
      color: var(--neon-cyan, #10b981);
    }
    .reqs-subtab.active {
      background: linear-gradient(135deg, #ff3355, #b026ff);
      color: #fff;
      border-color: transparent;
      box-shadow: 0 4px 14px rgba(255,51,85,0.30);
    }
    .reqs-subbadge {
      display: inline-flex; align-items: center; justify-content: center;
      min-width: 18px; height: 18px;
      padding: 0 5px;
      border-radius: 999px;
      background: #ff3355;
      color: #fff;
      font-size: 10.5px; font-weight: 800;
      letter-spacing: 0;
    }
    .reqs-subtab.active .reqs-subbadge {
      background: rgba(255,255,255,0.95); color: #ff3355;
    }
    .reqs-refresh {
      margin-left: auto;
      padding: 7px 14px;
      background: transparent;
      border: 1px solid var(--neon-cyan, #10b981);
      color: var(--neon-cyan, #10b981);
      border-radius: 6px;
      font-size: 11px; font-weight: 700;
      cursor: pointer;
      letter-spacing: 0.06em;
      font-family: inherit;
    }
    .reqs-refresh:hover { background: rgba(0,240,255,0.08); }
    .reqs-export {
      padding: 7px 14px;
      background: rgba(245,158,11,0.10);
      border: 1px solid #f59e0b;
      color: #f59e0b;
      border-radius: 6px;
      font-size: 11px; font-weight: 700;
      cursor: pointer;
      letter-spacing: 0.06em;
      font-family: inherit;
    }
    .reqs-export:hover { background: rgba(245,158,11,0.18); }
    .reqs-sub-pane[data-sub-pane] { animation: reqsFade 0.2s ease; }
    @keyframes reqsFade {
      from { opacity: 0; transform: translateY(2px); }
      to   { opacity: 1; transform: translateY(0); }
    }

    /* v2.0.3: 승인대기 배지 */
    .pending-badge {
      display: inline-flex;
      align-items: center; justify-content: center;
      min-width: 18px; height: 18px;
      padding: 0 5px;
      border-radius: 9px;
      background: #ff3355;
      color: #fff;
      font-size: 10px;
      font-weight: 800;
      box-shadow: 0 0 8px rgba(255,51,85,0.6);
      animation: pendingPulse 1.6s infinite;
    }
    @keyframes pendingPulse {
      0%,100% { box-shadow: 0 0 8px rgba(255,51,85,0.6); }
      50%     { box-shadow: 0 0 14px rgba(255,51,85,0.9); }
    }
    .pending-list {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
      gap: 16px;
    }
    .pending-card {
      background: var(--bg-card);
      border: 1.5px solid var(--border);
      border-radius: 12px;
      padding: 16px;
      position: relative;
      cursor: pointer;
      transition: border-color .15s, transform .15s, box-shadow .15s;
    }
    .pending-card:hover {
      border-color: var(--neon-cyan, #00f0ff);
      transform: translateY(-1px);
      box-shadow: 0 10px 26px rgba(0,240,255,0.08);
    }
    .pending-card.lecture { border-color: var(--neon-pink); }
    .pending-card-tag {
      position: absolute; top: 10px; right: 10px;
      padding: 3px 8px; border-radius: 6px;
      font-size: 10px; font-weight: 800; letter-spacing: 0.1em;
    }
    .pending-card.recruit .pending-card-tag { background: rgba(124,58,237,0.2); color: #b794f4; }
    .pending-card.lecture .pending-card-tag { background: rgba(255,77,166,0.2); color: var(--neon-pink); }
    .pending-card.meetup .pending-card-tag { background: rgba(13,148,136,0.20); color: #2dd4bf; }
    .pending-card h4 { margin: 0 0 6px; font-size: 14.5px; color: var(--txt-hi); padding-right: 60px; }
    .pending-card-meta { font-size: 11px; color: var(--txt-lo); margin-bottom: 8px; }
    .pending-card-desc {
      font-size: 12.5px; color: var(--txt-mid);
      line-height: 1.55;
      max-height: 110px; overflow-y: auto;
      padding: 8px 10px;
      background: rgba(0,0,0,0.2);
      border-radius: 6px; margin-bottom: 10px;
      white-space: pre-wrap; word-break: break-word;
    }
    .pending-card-file { margin-bottom: 10px; font-size: 11px; }
    .pending-card-file a { color: var(--neon-cyan); text-decoration: underline; }
    .pending-card-hint {
      margin: 0 0 9px;
      font-size: 10.5px;
      font-weight: 700;
      color: var(--txt-lo);
    }
    .pending-card-actions { display: flex; gap: 8px; }
    .pending-card-actions button {
      flex: 1; padding: 8px 10px; border-radius: 6px;
      border: 1px solid; font-size: 11px; font-weight: 700;
      cursor: pointer; letter-spacing: 0.08em;
    }
    .pending-btn-approve {
      background: rgba(0,240,180,0.15); border-color: #00f0b4; color: #00f0b4;
    }
    .pending-btn-approve:hover { background: rgba(0,240,180,0.3); }
    .pending-btn-reject {
      background: rgba(255,51,85,0.15); border-color: #ff3355; color: #ff3355;
    }
    .pending-btn-reject:hover { background: rgba(255,51,85,0.3); }
    .pending-popup {
      display: none;
      position: fixed; inset: 0;
      background: rgba(0,0,0,0.7);
      z-index: 20000;
      align-items: center; justify-content: center;
      padding: 20px;
    }
    .pending-popup.show { display: flex; }
    .pending-popup-box {
      background: var(--bg-card, #14161e);
      border: 2px solid var(--neon-pink, #ff4da6);
      border-radius: 14px;
      max-width: 380px;
      padding: 26px 22px;
      box-shadow: 0 20px 60px rgba(255,77,166,0.4);
    }
    .pending-popup-icon { font-size: 36px; text-align: center; margin-bottom: 10px; }
    .pending-popup-title {
      text-align: center; font-size: 17px; font-weight: 800;
      color: var(--neon-pink, #ff4da6); margin-bottom: 8px;
      letter-spacing: 0.06em;
    }
    .pending-popup-msg {
      text-align: center; font-size: 13px; color: var(--txt-mid, #aab);
      line-height: 1.6; margin-bottom: 18px;
    }
    .pending-popup-actions { display: flex; gap: 10px; }
    .pending-popup-actions button {
      flex: 1; padding: 10px 14px; border-radius: 8px;
      font-size: 12px; font-weight: 700; cursor: pointer;
      letter-spacing: 0.08em;
    }
    .pending-detail-box {
      background: var(--bg-card, #14161e);
      border: 1.5px solid var(--neon-cyan, #00f0ff);
      border-radius: 14px;
      width: min(92vw, 760px);
      max-height: 88vh;
      overflow: hidden;
      display: flex;
      flex-direction: column;
      box-shadow: 0 22px 70px rgba(0,240,255,0.20);
    }
    .pending-detail-head {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
      padding: 16px 18px;
      border-bottom: 1px solid var(--border, rgba(255,255,255,0.12));
    }
    .pending-detail-title {
      margin: 0;
      font-size: 16px;
      font-weight: 850;
      color: var(--txt-hi);
      letter-spacing: 0;
    }
    .pending-detail-close {
      background: transparent;
      border: 1px solid var(--border, rgba(255,255,255,0.18));
      color: var(--txt-mid);
      border-radius: 7px;
      padding: 6px 10px;
      cursor: pointer;
      font-size: 12px;
      font-weight: 800;
    }
    .pending-detail-close:hover { border-color: var(--neon-pink); color: var(--neon-pink); }
    .pending-detail-body {
      padding: 16px 18px;
      overflow-y: auto;
    }
    .pending-detail-grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 10px;
      margin-bottom: 14px;
    }
    .pending-detail-row {
      border: 1px solid var(--border, rgba(255,255,255,0.12));
      border-radius: 9px;
      padding: 10px 11px;
      background: rgba(255,255,255,0.03);
      min-width: 0;
    }
    .pending-detail-label {
      display: block;
      margin-bottom: 4px;
      font-size: 10.5px;
      color: var(--txt-lo);
      font-weight: 800;
      letter-spacing: 0.04em;
    }
    .pending-detail-value {
      color: var(--txt-hi);
      font-size: 12.5px;
      font-weight: 700;
      line-height: 1.45;
      overflow-wrap: anywhere;
    }
    .pending-detail-section {
      margin: 14px 0 7px;
      font-size: 12px;
      color: var(--neon-cyan, #00f0ff);
      font-weight: 850;
      letter-spacing: 0.06em;
    }
    .pending-detail-desc {
      white-space: pre-wrap;
      word-break: break-word;
      border: 1px solid var(--border, rgba(255,255,255,0.12));
      border-radius: 9px;
      padding: 12px;
      background: rgba(0,0,0,0.20);
      color: var(--txt-mid);
      font-size: 12.5px;
      line-height: 1.6;
      margin: 0;
    }
    .pending-detail-actions {
      display: flex;
      gap: 10px;
      padding: 14px 18px 16px;
      border-top: 1px solid var(--border, rgba(255,255,255,0.12));
      flex-wrap: wrap;
    }
    .pending-detail-actions button {
      flex: 1;
      min-width: 130px;
      padding: 10px 14px;
      border-radius: 8px;
      font-size: 12px;
      font-weight: 800;
      cursor: pointer;
    }
    @media (max-width: 640px) {
      .pending-detail-grid { grid-template-columns: 1fr; }
      .pending-detail-box { width: 96vw; max-height: 92vh; }
    }
    .pp-btn-now {
      background: linear-gradient(135deg, var(--neon-pink, #ff4da6), var(--neon-purple, #b794f4));
      color: #fff; border: none;
    }
    .pp-btn-later {
      background: transparent; color: var(--txt-mid, #aab);
      border: 1px solid var(--border, #333);
    }

    .upload-panel { display: none; }
    .upload-panel.active { display: block; }

    /* Textarea cyber-style override (used inline in body) */
    textarea {
      background: var(--bg-input) !important;
      border: 1px solid var(--border) !important;
      color: var(--txt-hi) !important;
      font-family: 'JetBrains Mono', monospace !important;
      border-radius: 0 !important;
    }
    textarea:focus {
      border-color: var(--neon-cyan) !important;
      box-shadow: var(--glow-cyan) !important;
      outline: none;
    }

    /* 보험지식 admin styles */
    #kn-content-input {
      width: 100%; min-height: 180px; resize: vertical;
      padding: 12px; font-size: 13px; line-height: 1.7;
      font-family: 'JetBrains Mono', monospace;
      background: var(--bg-input); color: var(--txt-hi);
      border: 1px solid var(--border); border-radius: 8px;
    }
    .kn-post-thumb {
      width: 72px; height: 52px; object-fit: cover;
      border-radius: 6px; border: 1px solid var(--border);
    }

    /* ── 표 빌더 팝업 ── */
    #kn-table-modal {
      display: none; position: fixed; inset: 0; z-index: 9000;
      background: rgba(5,0,16,0.88);
      align-items: center; justify-content: center;
    }
    #kn-table-modal.open { display: flex; }
    .ktm-box {
      background: var(--bg-card); border: 1px solid var(--neon-cyan);
      box-shadow: var(--glow-cyan); border-radius: 10px;
      width: min(92vw, 820px); max-height: 88vh;
      display: flex; flex-direction: column; overflow: hidden;
    }
    .ktm-header {
      display: flex; align-items: center; justify-content: space-between;
      padding: 14px 18px; border-bottom: 1px solid var(--border);
      font-size: 13px; font-weight: 700; color: var(--neon-cyan); letter-spacing: 0.1em;
    }
    .ktm-close {
      background: transparent; border: 1px solid var(--border);
      color: var(--txt-mid); cursor: pointer; border-radius: 4px;
      padding: 4px 10px; font-size: 12px; transition: all .2s;
    }
    .ktm-close:hover { border-color: var(--neon-pink); color: var(--neon-pink); }
    .ktm-controls {
      display: flex; align-items: center; gap: 12px;
      padding: 10px 18px; border-bottom: 1px solid var(--border); flex-wrap: wrap;
    }
    .ktm-controls label { font-size: 11px; color: var(--txt-mid); letter-spacing: 0.06em; }
    .ktm-controls input[type=number] {
      width: 52px; padding: 5px 8px; font-size: 12px;
      background: var(--bg-input); color: var(--txt-hi);
      border: 1px solid var(--border); border-radius: 4px;
    }
    .ktm-btn {
      padding: 6px 14px; border-radius: 4px; font-size: 11px;
      font-weight: 700; letter-spacing: 0.08em; cursor: pointer;
      transition: all .2s; font-family: 'JetBrains Mono', monospace;
    }
    .ktm-btn-cyan {
      border: 1px solid var(--neon-cyan); background: transparent; color: var(--neon-cyan);
    }
    .ktm-btn-cyan:hover { background: rgba(0,240,255,0.12); box-shadow: var(--glow-cyan); }
    .ktm-btn-green {
      border: 1px solid var(--neon-green); background: transparent; color: var(--neon-green);
    }
    .ktm-btn-green:hover { background: rgba(0,255,136,0.12); box-shadow: var(--glow-green); }
    .ktm-btn-pink {
      border: 1px solid var(--neon-pink); background: transparent; color: var(--neon-pink);
    }
    .ktm-btn-pink:hover { background: rgba(255,0,110,0.12); box-shadow: var(--glow-pink); }
    .ktm-grid-wrap {
      flex: 1; overflow: auto; padding: 14px 18px;
    }
    #ktm-grid {
      border-collapse: collapse; font-size: 12px; min-width: 100%;
    }
    #ktm-grid th, #ktm-grid td {
      border: 1px solid var(--border); padding: 0; min-width: 80px;
      position: relative; cursor: pointer;
    }
    #ktm-grid th { background: rgba(0,240,255,0.07); color: var(--neon-cyan); font-weight: 700; }
    #ktm-grid td { color: var(--txt-hi); }
    #ktm-grid th.ktm-selected, #ktm-grid td.ktm-selected {
      outline: 2px solid var(--neon-cyan); outline-offset: -2px;
      background: rgba(0,240,255,0.14);
    }
    #ktm-grid .ktm-cell-inner {
      padding: 6px 8px; min-height: 28px; outline: none; white-space: pre-wrap;
    }
    .ktm-toolbar {
      display: flex; align-items: center; gap: 8px;
      padding: 8px 18px; border-top: 1px solid var(--border);
      flex-wrap: wrap; background: var(--bg-deep);
    }
    .ktm-toolbar label { font-size: 10px; color: var(--txt-lo); letter-spacing: 0.06em; }
    .ktm-toolbar input[type=color] {
      width: 28px; height: 24px; padding: 1px; cursor: pointer;
      border: 1px solid var(--border); background: var(--bg-input); border-radius: 3px;
    }
    .ktm-align-btn {
      padding: 4px 8px; border-radius: 3px; font-size: 12px;
      border: 1px solid var(--border); background: transparent;
      color: var(--txt-mid); cursor: pointer; transition: all .15s;
    }
    .ktm-align-btn.active, .ktm-align-btn:hover {
      border-color: var(--neon-cyan); color: var(--neon-cyan);
    }
    .ktm-sep { width: 1px; height: 20px; background: var(--border); margin: 0 4px; }
    .ktm-footer {
      display: flex; justify-content: flex-end; gap: 10px;
      padding: 10px 18px; border-top: 1px solid var(--border);
    }
    /* 수정 모드 배너 */
    #kn-edit-banner {
      display: none; padding: 8px 14px; margin-bottom: 12px;
      background: rgba(176,38,255,0.12); border: 1px solid var(--neon-purple);
      border-radius: 6px; font-size: 12px; color: var(--neon-purple);
      letter-spacing: 0.06em;
    }
    .nl-edit-btn {
      background: transparent; border: 1px solid var(--neon-cyan);
      border-radius: 0; padding: 6px 12px;
      font-family: 'JetBrains Mono', monospace; font-size: 10px;
      letter-spacing: 0.16em; text-transform: uppercase;
      color: var(--neon-cyan); cursor: pointer; transition: all .2s;
      text-shadow: 0 0 6px rgba(0,240,255,0.5); margin-right: 6px;
    }
    .nl-edit-btn:hover {
      background: var(--neon-cyan); color: var(--bg-void);
      box-shadow: var(--glow-cyan); text-shadow: none;
    }

    /* ── 통계 슬라이더 ── */
    .stats-slider { margin-bottom: 36px; }

    /* 탭 네비게이션 바 */
    .stats-slider-nav {
      display: flex;
      align-items: stretch;
      background: var(--bg-deep);
      border: 1px solid var(--neon-cyan);
      border-bottom: none;
      box-shadow: 0 0 16px rgba(0,240,255,0.12);
    }
    .ssn-tabs {
      display: flex;
      flex: 1;
      overflow-x: auto;
      scrollbar-width: none;
    }
    .ssn-tabs::-webkit-scrollbar { display: none; }
    .ssn-tab {
      font-family: 'JetBrains Mono', monospace;
      font-size: 10px;
      font-weight: 700;
      letter-spacing: 0.16em;
      text-transform: uppercase;
      padding: 13px 18px;
      border: none;
      border-right: 1px solid rgba(0,240,255,0.10);
      background: transparent;
      color: var(--txt-lo);
      cursor: pointer;
      transition: all .2s;
      white-space: nowrap;
      position: relative;
    }
    .ssn-tab::after {
      content: '';
      position: absolute;
      bottom: 0; left: 0; right: 0;
      height: 2px;
      background: var(--neon-cyan);
      box-shadow: 0 0 8px var(--neon-cyan);
      transform: scaleX(0);
      transition: transform .22s ease;
    }
    .ssn-tab.active {
      color: var(--neon-cyan);
      text-shadow: 0 0 8px rgba(0,240,255,0.5);
      background: rgba(0,240,255,0.06);
    }
    .ssn-tab.active::after { transform: scaleX(1); }
    .ssn-tab:hover:not(.active) { color: var(--txt-hi); background: rgba(0,240,255,0.03); }
    .ssn-nav-btn {
      font-family: 'JetBrains Mono', monospace;
      font-size: 13px;
      padding: 0 14px;
      border: none;
      border-left: 1px solid rgba(0,240,255,0.10);
      background: transparent;
      color: var(--neon-pink);
      cursor: pointer;
      transition: all .2s;
      flex-shrink: 0;
    }
    .ssn-nav-btn:first-child { border-left: none; border-right: 1px solid rgba(0,240,255,0.10); }
    .ssn-nav-btn:hover { color: var(--neon-cyan); text-shadow: 0 0 8px rgba(0,240,255,0.6); }
    .ssn-nav-btn:disabled { opacity: 0.18; cursor: not-allowed; }

    /* 슬라이드 뷰포트 */
    .stats-slides-outer {
      overflow: hidden;
      border: 1px solid var(--neon-cyan);
      border-top: none;
      background: var(--bg-card);
      box-shadow: 0 0 0 1px rgba(0,240,255,0.08), 0 12px 40px rgba(0,0,0,0.5);
      position: relative;
    }
    .stats-slides-outer::before {
      content: '';
      position: absolute;
      bottom: 0; left: 0; right: 0;
      height: 1px;
      background: linear-gradient(90deg, var(--neon-cyan), var(--neon-pink));
      opacity: 0.4;
      z-index: 1;
    }
    .stats-slides {
      display: flex;
      transition: transform 0.38s cubic-bezier(0.4,0,0.2,1);
      will-change: transform;
    }
    .stats-slide {
      min-width: 100%;
      padding: 24px;
      box-sizing: border-box;
    }

    /* 슬라이드별 섹션 제목 */
    .slide-title {
      font-family: 'JetBrains Mono', monospace;
      font-size: 10px;
      font-weight: 700;
      letter-spacing: 0.22em;
      text-transform: uppercase;
      color: var(--neon-pink);
      margin-bottom: 16px;
      text-shadow: 0 0 6px rgba(255,0,110,0.4);
    }
    .slide-title::before { content: '▶ '; }

    /* 날짜 컨텍스트 바 */
    .date-context-bar {
      font-family: 'JetBrains Mono', monospace;
      font-size: 11px;
      color: rgba(0,240,255,0.7);
      background: rgba(0,240,255,0.06);
      border: 1px solid rgba(0,240,255,0.15);
      border-radius: 6px;
      padding: 6px 12px;
      margin-bottom: 14px;
      letter-spacing: 0.05em;
    }

    /* 슬라이드 높이 동적 전환 */
    .stats-slides-outer { transition: height 0.35s ease; }
    .stats-slides { align-items: flex-start; }

    /* Responsive */
    @media (max-width: 768px) {
      .dash-body { padding: 24px 16px 40px; }
      .chart-row { grid-template-columns: 1fr; }
      .kpi-grid { grid-template-columns: repeat(2, 1fr); }
      .dash-header { padding: 0 16px; }
      .dash-brand { font-size: 18px; }
      .dash-brand span { display: none; }
      .ssn-tab { padding: 12px 12px; font-size: 9px; }
      .stats-slide { padding: 16px; }
      .cs-cards-grid { grid-template-columns: repeat(2, 1fr); }
    }

    /* ══════════════════════════════════════════════════════════════════
       ✨ 랜딩페이지 스타일 OVERRIDE (v1.0)
       - 사이버펑크 테마 → 소프트 블루 클린 디자인
       - Pretendard 폰트 / 라이트+다크 모드
       - 모든 cyberpunk 장식 무효화 (scanlines, glitch, neon glow 등)
    ══════════════════════════════════════════════════════════════════ */

    :root {
      --blue-deep:  #0c1fb8;
      --blue-mid:   #1a3de8;
      --blue-light: #4a70f5;
      --cyan:       #00c8ee;
      --cyan-light: #a0eeff;
      --bg:         #f0f5ff;
      --bg-card:    #ffffff;
      --bg-card-hi: #f7faff;
      --bg-input:   #ffffff;
      --bg-void:    #f0f5ff;
      --bg-deep:    #e6eeff;
      --border:     rgba(12,31,184,0.10);
      --border-pink: rgba(255,0,110,0.18);
      --txt-hi:     #080f30;
      --txt-mid:    #3d5080;
      --txt-lo:     #8fa5cc;
      --txt-neon:   #1a3de8;
      --radius-lg:  16px;
      --radius-md:  10px;
      --radius-sm:  6px;
      --sh-sm:      0 2px 12px rgba(12,31,184,0.07);
      --sh-md:      0 8px 32px rgba(12,31,184,0.10);
      --sh-card:    0 4px 18px rgba(12,31,184,0.08);
      --glow-cyan:  0 0 0 3px rgba(0,200,238,0.15);
      --glow-pink:  0 0 0 3px rgba(255,0,110,0.15);
      --glow-purple: 0 0 0 3px rgba(176,38,255,0.15);
      --glow-green: 0 0 0 3px rgba(0,200,100,0.15);
      /* legacy aliases */
      --neon-cyan:    var(--blue-mid);
      --neon-cyan-d:  var(--blue-deep);
      --neon-pink:    #ff006e;
      --neon-magenta: #ff2d92;
      --neon-purple:  #6b46c1;
      --neon-violet:  #6b46c1;
      --neon-green:   #16a34a;
      --neon-yellow:  #ca8a04;
      --neon-orange:  #ea580c;
    }
    [data-theme="dark"] {
      --blue-deep:  #4a70f5;
      --blue-mid:   #4a70f5;
      --blue-light: #6b8af7;
      --cyan:       #00c8ee;
      --bg:         #0d1117;
      --bg-card:    #161b22;
      --bg-card-hi: #1c2128;
      --bg-input:   #0d1117;
      --bg-void:    #0d1117;
      --bg-deep:    #0a0d12;
      --border:     rgba(255,255,255,0.08);
      --txt-hi:     #e6edf3;
      --txt-mid:    #8b949e;
      --txt-lo:     #484f58;
      --sh-sm:      0 2px 12px rgba(0,0,0,0.40);
      --sh-md:      0 8px 32px rgba(0,0,0,0.50);
      --sh-card:    0 4px 18px rgba(0,0,0,0.35);
      --neon-cyan:    #4a70f5;
      --neon-pink:    #f472b6;
      --neon-purple:  #a78bfa;
      --neon-green:   #34d399;
      --neon-yellow:  #fbbf24;
      --neon-orange:  #fb923c;
    }

    /* 기본 폰트 / 배경 / 효과 제거 */
    *, *::before, *::after {
      font-family: 'Pretendard', 'Noto Sans KR', -apple-system, BlinkMacSystemFont, sans-serif !important;
    }
    html { background: var(--bg) !important; }
    body {
      background: var(--bg) !important;
      background-image: none !important;
      color: var(--txt-hi) !important;
      letter-spacing: normal !important;
      font-family: 'Pretendard', 'Noto Sans KR', sans-serif !important;
    }
    /* 사이버펑크 장식 모두 제거 */
    body::before, body::after { display: none !important; content: none !important; }
    .cp-frame::before, .cp-frame::after { display: none !important; }

    /* 스크롤바 */
    ::-webkit-scrollbar { width: 10px; height: 10px; }
    ::-webkit-scrollbar-track { background: transparent; }
    ::-webkit-scrollbar-thumb { background: rgba(12,31,184,0.18); border-radius: 5px; }
    ::-webkit-scrollbar-thumb:hover { background: rgba(12,31,184,0.30); }
    [data-theme="dark"] ::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.12); }
    ::selection { background: rgba(74,112,245,0.30); color: var(--txt-hi); }

    /* ══════════════════ 로그인 화면 ══════════════════ */
    #login-screen {
      background:
        radial-gradient(ellipse at 25% 20%, rgba(74,112,245,0.10) 0%, transparent 55%),
        radial-gradient(ellipse at 75% 80%, rgba(0,200,238,0.08) 0%, transparent 55%),
        var(--bg) !important;
    }
    .login-box {
      background: var(--bg-card) !important;
      border: 1px solid var(--border) !important;
      border-radius: var(--radius-lg) !important;
      padding: 40px 36px 36px !important;
      box-shadow: var(--sh-md) !important;
      clip-path: none !important;
    }
    .login-box::before, .login-box::after { display: none !important; content: none !important; }
    .login-logo img {
      filter: none !important;
      animation: none !important;
    }
    [data-theme="dark"] .login-logo img { filter: brightness(0) invert(1) !important; }
    .login-sub {
      font-family: 'Pretendard', sans-serif !important;
      font-size: 13px !important;
      color: var(--txt-mid) !important;
      letter-spacing: 0.18em !important;
      margin-bottom: 32px !important;
      text-shadow: none !important;
      font-weight: 600 !important;
    }
    .login-label {
      font-family: 'Pretendard', sans-serif !important;
      font-size: 12px !important;
      color: var(--txt-mid) !important;
      letter-spacing: 0.06em !important;
      text-transform: none !important;
      font-weight: 700 !important;
      text-shadow: none !important;
    }
    .login-label::before { content: '' !important; }
    .login-input {
      background: var(--bg-input) !important;
      border: 1.5px solid var(--border) !important;
      border-radius: var(--radius-md) !important;
      color: var(--txt-hi) !important;
      font-family: 'Pretendard', sans-serif !important;
      letter-spacing: normal !important;
      caret-color: var(--blue-mid) !important;
    }
    .login-input:focus {
      border-color: var(--blue-mid) !important;
      box-shadow: var(--glow-cyan) !important;
    }
    .login-btn {
      background: linear-gradient(135deg, var(--blue-mid), var(--blue-light)) !important;
      border: none !important;
      border-radius: var(--radius-md) !important;
      font-family: 'Pretendard', sans-serif !important;
      font-size: 15px !important;
      font-weight: 700 !important;
      letter-spacing: 0.04em !important;
      text-transform: none !important;
      box-shadow: 0 4px 14px rgba(26,61,232,0.30) !important;
      clip-path: none !important;
    }
    .login-btn:hover {
      transform: translateY(-1px);
      box-shadow: 0 6px 20px rgba(26,61,232,0.45) !important;
    }
    .login-err {
      font-family: 'Pretendard', sans-serif !important;
      color: #dc2626 !important;
      letter-spacing: normal !important;
      text-shadow: none !important;
    }
    .login-err::before { content: '⚠ ' !important; }

    /* ══════════════════ 대시보드 헤더 ══════════════════ */
    .dash-header {
      background: var(--bg-card) !important;
      border-bottom: 1px solid var(--border) !important;
      box-shadow: var(--sh-sm) !important;
      padding: 0 32px !important;
    }
    .dash-header::after { display: none !important; content: none !important; }
    .dash-header-inner { height: 64px !important; }
    .dash-brand img {
      filter: none !important;
      animation: none !important;
    }
    [data-theme="dark"] .dash-brand img { filter: brightness(0) invert(1) !important; }
    .dash-brand span {
      font-family: 'Pretendard', sans-serif !important;
      font-size: 11px !important;
      font-weight: 700 !important;
      letter-spacing: 0.12em !important;
      color: var(--blue-mid) !important;
      border: 1px solid var(--blue-mid) !important;
      border-radius: 12px !important;
      padding: 3px 10px !important;
      text-shadow: none !important;
      box-shadow: none !important;
      background: rgba(74,112,245,0.08) !important;
    }
    .refresh-btn {
      background: var(--bg-card) !important;
      border: 1px solid var(--border) !important;
      border-radius: var(--radius-md) !important;
      color: var(--txt-hi) !important;
      font-family: 'Pretendard', sans-serif !important;
      font-size: 13px !important;
      font-weight: 600 !important;
      letter-spacing: normal !important;
      text-transform: none !important;
      box-shadow: var(--sh-sm) !important;
      clip-path: none !important;
      padding: 8px 16px !important;
    }
    .refresh-btn:hover {
      background: var(--blue-mid) !important;
      color: #fff !important;
      border-color: var(--blue-mid) !important;
      box-shadow: 0 4px 14px rgba(26,61,232,0.30) !important;
    }
    .refresh-btn::before { content: '↻ ' !important; }
    .back-link {
      color: var(--txt-mid) !important;
      font-family: 'Pretendard', sans-serif !important;
      font-size: 13px !important;
      font-weight: 600 !important;
      letter-spacing: normal !important;
      text-transform: none !important;
      text-shadow: none !important;
    }
    .back-link:hover {
      color: var(--blue-mid) !important;
      text-shadow: none !important;
    }
    .last-updated {
      font-family: 'Pretendard', sans-serif !important;
      font-size: 12px !important;
      color: var(--txt-lo) !important;
      letter-spacing: normal !important;
    }
    .last-updated::before { content: '🕐 ' !important; color: var(--txt-lo) !important; }

    /* 테마 토글 버튼 */
    .theme-toggle {
      display: inline-flex;
      align-items: center;
      gap: 4px;
      background: var(--bg-card);
      border: 1px solid var(--border);
      border-radius: var(--radius-md);
      padding: 2px;
      box-shadow: var(--sh-sm);
    }
    .theme-toggle button {
      background: transparent;
      border: none;
      padding: 6px 12px;
      font-size: 12px;
      font-weight: 600;
      color: var(--txt-mid);
      cursor: pointer;
      border-radius: 8px;
      transition: all 0.18s;
      font-family: 'Pretendard', sans-serif;
    }
    .theme-toggle button:hover { color: var(--txt-hi); }
    .theme-toggle button.active {
      background: var(--blue-mid);
      color: #fff;
    }

    /* ══════════════════ 대시보드 본문 ══════════════════ */
    .dash-body { padding: 32px !important; }
    .dash-section-title {
      font-family: 'Pretendard', sans-serif !important;
      font-size: 18px !important;
      font-weight: 800 !important;
      color: var(--txt-hi) !important;
      letter-spacing: -0.01em !important;
      text-transform: none !important;
      text-shadow: none !important;
      margin-bottom: 16px !important;
    }
    .dash-section-title::before {
      content: '' !important;
      width: 4px;
      height: 18px;
      background: linear-gradient(180deg, var(--blue-mid), var(--cyan));
      border-radius: 2px;
      text-shadow: none !important;
    }
    .dash-section-title::after {
      background: linear-gradient(90deg, var(--border), transparent) !important;
      opacity: 1 !important;
    }

    /* ══════════════════ KPI 카드 ══════════════════ */
    .kpi-grid { gap: 16px !important; }
    .kpi-card {
      background: var(--bg-card) !important;
      border: 1px solid var(--border) !important;
      border-radius: var(--radius-lg) !important;
      box-shadow: var(--sh-card) !important;
      clip-path: none !important;
      padding: 22px 22px !important;
    }
    .kpi-card:hover {
      border-color: var(--blue-light) !important;
      box-shadow: 0 8px 28px rgba(26,61,232,0.12) !important;
      transform: translateY(-2px);
    }
    .kpi-card::before {
      background: var(--accent, linear-gradient(90deg, var(--blue-mid), var(--cyan))) !important;
      box-shadow: none !important;
      height: 3px !important;
    }
    .kpi-card::after { display: none !important; content: none !important; }
    .kpi-icon {
      filter: none !important;
      font-size: 24px !important;
    }
    .kpi-n {
      font-family: 'Pretendard', sans-serif !important;
      color: var(--txt-hi) !important;
      text-shadow: none !important;
      font-size: 32px !important;
      font-weight: 800 !important;
      letter-spacing: -0.02em !important;
    }
    .kpi-l {
      font-family: 'Pretendard', sans-serif !important;
      color: var(--txt-mid) !important;
      letter-spacing: 0.02em !important;
      text-transform: none !important;
      font-size: 12px !important;
      font-weight: 600 !important;
    }

    /* ══════════════════ 통계 카드(메뉴/카드별/세션) 공통 ══════════════════ */
    .menu-stats-card, .card-stats-wrap, .sess-stats-wrap {
      background: var(--bg-card) !important;
      border: 1px solid var(--border) !important;
      border-radius: var(--radius-lg) !important;
      box-shadow: var(--sh-card) !important;
      padding: 18px 20px !important;
    }
    .menu-stats-card::before, .card-stats-wrap::before, .sess-stats-wrap::before {
      width: 4px !important;
      border-radius: 2px !important;
      box-shadow: none !important;
      top: 18px !important; bottom: 18px !important;
    }
    .menu-stats-card::before { background: linear-gradient(180deg, var(--blue-mid), var(--cyan)) !important; }
    .card-stats-wrap::before { background: linear-gradient(180deg, var(--neon-green), var(--cyan)) !important; }
    .sess-stats-wrap::before { background: linear-gradient(180deg, var(--neon-yellow), var(--neon-orange)) !important; }
    .menu-stats-head, .card-stats-head, .sess-head {
      font-family: 'Pretendard', sans-serif !important;
      font-weight: 700 !important;
      letter-spacing: normal !important;
      text-transform: none !important;
      font-size: 14px !important;
      text-shadow: none !important;
      color: var(--txt-hi) !important;
    }
    .menu-stats-hint, .card-stats-hint, .sess-head-hint {
      font-family: 'Pretendard', sans-serif !important;
      color: var(--txt-lo) !important;
      letter-spacing: normal !important;
      font-size: 11px !important;
    }
    .menu-stats-row {
      background: rgba(74,112,245,0.05) !important;
      border: 1px solid rgba(74,112,245,0.12) !important;
      border-radius: var(--radius-sm) !important;
      transition: all 0.15s !important;
    }
    .menu-stats-row:hover {
      background: rgba(74,112,245,0.10) !important;
      border-color: var(--blue-light) !important;
      box-shadow: none !important;
      transform: translateX(2px);
    }
    .menu-stats-row .ms-name { color: var(--txt-hi) !important; font-weight: 500 !important; }
    .menu-stats-row .ms-num {
      font-family: 'Pretendard', sans-serif !important;
      color: var(--blue-mid) !important;
      text-shadow: none !important;
      font-weight: 700 !important;
    }
    .menu-stats-row .ms-num .ms-total {
      color: var(--txt-lo) !important;
      text-shadow: none !important;
    }

    /* 카드별 클릭 셀 */
    .cs-menu-header {
      background: rgba(74,112,245,0.06) !important;
      border-left: 3px solid var(--blue-mid) !important;
      border-radius: 0 var(--radius-sm) var(--radius-sm) 0 !important;
      font-family: 'Pretendard', sans-serif !important;
      color: var(--txt-hi) !important;
      letter-spacing: normal !important;
      text-transform: none !important;
      text-shadow: none !important;
      font-size: 12px !important;
      padding: 6px 12px !important;
    }
    .cs-card-chart {
      background: var(--bg-card-hi) !important;
      border: 1px solid var(--border) !important;
      border-radius: var(--radius-sm) !important;
    }
    .cs-card-name {
      font-family: 'Pretendard', sans-serif !important;
      color: var(--txt-mid) !important;
      letter-spacing: normal !important;
      font-size: 11px !important;
      font-weight: 600 !important;
    }
    .cs-card-total {
      font-family: 'Pretendard', sans-serif !important;
      color: var(--blue-mid) !important;
      text-shadow: none !important;
      font-weight: 700 !important;
    }
    .cs-card-canvas-wrap canvas { filter: none !important; }
    .cs-empty {
      font-family: 'Pretendard', sans-serif !important;
      color: var(--txt-lo) !important;
      letter-spacing: normal !important;
    }

    /* 세션 통계 */
    .sess-kpi {
      background: rgba(234,138,4,0.06) !important;
      border: 1px solid rgba(234,138,4,0.16) !important;
      border-radius: var(--radius-sm) !important;
    }
    .sess-kpi-num {
      font-family: 'Pretendard', sans-serif !important;
      color: var(--neon-yellow) !important;
      text-shadow: none !important;
      font-weight: 800 !important;
    }
    .sess-kpi-unit {
      font-family: 'Pretendard', sans-serif !important;
      color: var(--neon-orange) !important;
    }
    .sess-kpi-label {
      font-family: 'Pretendard', sans-serif !important;
      color: var(--txt-mid) !important;
      letter-spacing: normal !important;
    }
    .sess-dist-label, .sess-recent-label {
      font-family: 'Pretendard', sans-serif !important;
      color: var(--txt-mid) !important;
      letter-spacing: normal !important;
      text-transform: none !important;
      font-weight: 600 !important;
    }
    .sess-dist-pill {
      background: rgba(107,70,193,0.06) !important;
      border: 1px solid rgba(107,70,193,0.18) !important;
      border-radius: var(--radius-sm) !important;
    }
    .sess-dist-cnt {
      font-family: 'Pretendard', sans-serif !important;
      color: var(--neon-purple) !important;
      text-shadow: none !important;
      font-weight: 800 !important;
    }
    .sess-dist-lbl {
      font-family: 'Pretendard', sans-serif !important;
      color: var(--txt-mid) !important;
    }
    .sess-rec-row { border-bottom-color: var(--border) !important; }
    .sess-rec-time {
      font-family: 'Pretendard', sans-serif !important;
      color: var(--txt-lo) !important;
    }
    .sess-rec-dur {
      font-family: 'Pretendard', sans-serif !important;
      color: var(--neon-yellow) !important;
      text-shadow: none !important;
      font-weight: 700 !important;
    }
    .sess-empty {
      font-family: 'Pretendard', sans-serif !important;
      color: var(--txt-lo) !important;
      letter-spacing: normal !important;
    }

    /* ══════════════════ 차트 ══════════════════ */
    .chart-card {
      background: var(--bg-card) !important;
      background-image: none !important;
      border: 1px solid var(--border) !important;
      border-radius: var(--radius-lg) !important;
      box-shadow: var(--sh-card) !important;
      clip-path: none !important;
      padding: 22px !important;
    }
    .chart-card::before { display: none !important; content: none !important; }
    .chart-title {
      font-family: 'Pretendard', sans-serif !important;
      color: var(--txt-hi) !important;
      text-shadow: none !important;
      letter-spacing: normal !important;
      text-transform: none !important;
      font-size: 14px !important;
      font-weight: 700 !important;
    }
    .chart-title::before { content: '📊 ' !important; }
    .line-chart canvas { filter: none !important; }

    /* ══════════════════ 순위 테이블 ══════════════════ */
    .rank-card {
      background: var(--bg-card) !important;
      border: 1px solid var(--border) !important;
      border-radius: var(--radius-lg) !important;
      box-shadow: var(--sh-card) !important;
      clip-path: none !important;
      padding: 22px !important;
    }
    .rank-table th {
      font-family: 'Pretendard', sans-serif !important;
      color: var(--txt-mid) !important;
      letter-spacing: 0.02em !important;
      text-transform: none !important;
      text-shadow: none !important;
      border-bottom: 1px solid var(--border) !important;
      font-size: 12px !important;
      font-weight: 700 !important;
    }
    .rank-table td {
      color: var(--txt-hi) !important;
      border-bottom: 1px solid var(--border) !important;
    }
    .rank-table tr:hover td { background: rgba(74,112,245,0.04) !important; }
    .rank-num {
      font-family: 'Pretendard', sans-serif !important;
      color: var(--blue-mid) !important;
      text-shadow: none !important;
      font-weight: 700 !important;
    }
    .rank-inline-bar {
      background: linear-gradient(90deg, var(--blue-mid), var(--cyan)) !important;
      box-shadow: none !important;
      border-radius: 2px !important;
      height: 5px !important;
    }
    .rank-clicks {
      font-family: 'Pretendard', sans-serif !important;
      color: var(--blue-mid) !important;
      text-shadow: none !important;
      font-weight: 700 !important;
    }
    .rank-type-badge {
      font-family: 'Pretendard', sans-serif !important;
      border-radius: 10px !important;
      letter-spacing: normal !important;
      text-transform: none !important;
      font-size: 11px !important;
      font-weight: 700 !important;
      padding: 3px 10px !important;
    }
    .badge-life {
      background: rgba(74,112,245,0.10) !important;
      color: var(--blue-mid) !important;
      text-shadow: none !important;
      border-color: rgba(74,112,245,0.25) !important;
    }
    .badge-nonlife {
      background: rgba(255,0,110,0.08) !important;
      color: var(--neon-pink) !important;
      text-shadow: none !important;
      border-color: rgba(255,0,110,0.22) !important;
    }

    .empty-msg {
      font-family: 'Pretendard', sans-serif !important;
      color: var(--txt-mid) !important;
      letter-spacing: normal !important;
    }
    .empty-msg::before { content: '' !important; }

    /* ══════════════════ 업로드 패널 / 폼 ══════════════════ */
    .nl-upload-box {
      background: var(--bg-card) !important;
      border: 1px solid var(--border) !important;
      border-radius: var(--radius-lg) !important;
      box-shadow: var(--sh-card) !important;
      clip-path: none !important;
      padding: 24px !important;
    }
    .nl-upload-box::before { display: none !important; content: none !important; }
    .nl-field label {
      font-family: 'Pretendard', sans-serif !important;
      color: var(--txt-mid) !important;
      letter-spacing: normal !important;
      text-transform: none !important;
      text-shadow: none !important;
      font-size: 12px !important;
      font-weight: 700 !important;
    }
    .nl-field label::before { content: '' !important; }
    .nl-field select, .nl-field input[type="text"], .nl-field textarea {
      background: var(--bg-input) !important;
      border: 1.5px solid var(--border) !important;
      border-radius: var(--radius-md) !important;
      color: var(--txt-hi) !important;
      font-family: 'Pretendard', sans-serif !important;
      font-size: 13px !important;
      padding: 10px 12px !important;
    }
    .nl-field select:focus, .nl-field input[type="text"]:focus, .nl-field textarea:focus {
      border-color: var(--blue-mid) !important;
      box-shadow: var(--glow-cyan) !important;
    }
    .nl-field select option { background: var(--bg-card) !important; color: var(--txt-hi) !important; }
    .nl-file-label {
      background: rgba(74,112,245,0.06) !important;
      border: 1.5px dashed var(--blue-light) !important;
      border-radius: var(--radius-md) !important;
      color: var(--blue-mid) !important;
      font-family: 'Pretendard', sans-serif !important;
      letter-spacing: normal !important;
      text-shadow: none !important;
      padding: 9px 14px !important;
      font-size: 13px !important;
      font-weight: 600 !important;
    }
    .nl-file-label:hover {
      background: rgba(74,112,245,0.12) !important;
      border-color: var(--blue-mid) !important;
      color: var(--blue-deep) !important;
      box-shadow: none !important;
    }
    .nl-file-name {
      font-family: 'Pretendard', sans-serif !important;
      color: var(--txt-mid) !important;
      letter-spacing: normal !important;
      font-size: 12px !important;
      font-weight: 500 !important;
    }
    .nl-upload-btn {
      background: linear-gradient(135deg, var(--blue-mid), var(--blue-light)) !important;
      border: none !important;
      border-radius: var(--radius-md) !important;
      color: #fff !important;
      font-family: 'Pretendard', sans-serif !important;
      letter-spacing: normal !important;
      text-transform: none !important;
      box-shadow: 0 4px 12px rgba(26,61,232,0.28) !important;
      clip-path: none !important;
      padding: 10px 22px !important;
      font-size: 13px !important;
      font-weight: 700 !important;
    }
    .nl-upload-btn:hover {
      transform: translateY(-1px);
      box-shadow: 0 6px 18px rgba(26,61,232,0.40) !important;
    }
    .nl-status {
      font-family: 'Pretendard', sans-serif !important;
      color: var(--neon-green) !important;
      text-shadow: none !important;
      letter-spacing: normal !important;
      font-size: 12px !important;
      font-weight: 600 !important;
    }

    .nl-list {
      background: var(--bg-card) !important;
      border: 1px solid var(--border) !important;
      border-radius: var(--radius-lg) !important;
      box-shadow: var(--sh-card) !important;
      clip-path: none !important;
      padding: 12px 22px !important;
    }
    .nl-item { border-bottom-color: var(--border) !important; padding: 14px 0 !important; }
    .nl-item:hover {
      padding-left: 8px !important;
      border-bottom-color: var(--blue-light) !important;
    }
    .nl-thumb {
      border-radius: var(--radius-sm) !important;
      border: 1px solid var(--border) !important;
      background: var(--bg-card-hi) !important;
      color: var(--blue-mid) !important;
      box-shadow: none !important;
    }
    .nl-meta-company {
      font-family: 'Pretendard', sans-serif !important;
      color: var(--txt-hi) !important;
      letter-spacing: normal !important;
      text-shadow: none !important;
      font-weight: 700 !important;
      font-size: 14px !important;
    }
    .nl-meta-title {
      font-family: 'Pretendard', sans-serif !important;
      color: var(--txt-mid) !important;
      font-size: 12px !important;
    }
    .nl-meta-date {
      font-family: 'Pretendard', sans-serif !important;
      color: var(--txt-lo) !important;
      text-shadow: none !important;
      font-size: 11px !important;
    }
    .nl-del-btn {
      background: transparent !important;
      border: 1px solid #ef4444 !important;
      border-radius: var(--radius-md) !important;
      color: #ef4444 !important;
      font-family: 'Pretendard', sans-serif !important;
      letter-spacing: normal !important;
      text-transform: none !important;
      text-shadow: none !important;
      font-size: 12px !important;
      font-weight: 600 !important;
      padding: 6px 14px !important;
    }
    .nl-del-btn:hover {
      background: #ef4444 !important;
      color: #fff !important;
      box-shadow: 0 2px 8px rgba(239,68,68,0.30) !important;
      text-shadow: none !important;
    }
    .nl-edit-btn {
      background: transparent !important;
      border: 1px solid var(--blue-mid) !important;
      border-radius: var(--radius-md) !important;
      color: var(--blue-mid) !important;
      font-family: 'Pretendard', sans-serif !important;
      letter-spacing: normal !important;
      text-transform: none !important;
      text-shadow: none !important;
      font-size: 12px !important;
      font-weight: 600 !important;
      padding: 6px 14px !important;
    }
    .nl-edit-btn:hover {
      background: var(--blue-mid) !important;
      color: #fff !important;
      box-shadow: 0 2px 8px rgba(26,61,232,0.30) !important;
      text-shadow: none !important;
    }

    /* ══════════════════ 업로드 탭 ══════════════════ */
    .upload-tabs {
      background: var(--bg) !important;
      border-bottom: 1px solid var(--border) !important;
      box-shadow: none !important;
      padding: 12px 0 !important;
      gap: 6px !important;
    }
    .upload-tab {
      background: var(--bg-card) !important;
      border: 1px solid var(--border) !important;
      border-radius: var(--radius-md) !important;
      color: var(--txt-mid) !important;
      font-family: 'Pretendard', sans-serif !important;
      letter-spacing: normal !important;
      text-transform: none !important;
      clip-path: none !important;
      padding: 9px 16px !important;
      font-size: 13px !important;
      font-weight: 600 !important;
      box-shadow: var(--sh-sm) !important;
    }
    .upload-tab:hover {
      border-color: var(--blue-light) !important;
      color: var(--blue-mid) !important;
      text-shadow: none !important;
      box-shadow: 0 4px 12px rgba(26,61,232,0.10) !important;
    }
    .upload-tab.active {
      background: linear-gradient(135deg, var(--blue-mid), var(--blue-light)) !important;
      color: #fff !important;
      border-color: transparent !important;
      text-shadow: none !important;
      box-shadow: 0 4px 14px rgba(26,61,232,0.35) !important;
    }
    .upload-tab.upload-tab-posting {
      border-color: rgba(245,158,11,0.58) !important;
      color: #b45309 !important;
      background: linear-gradient(135deg, rgba(245,158,11,0.14), rgba(249,115,22,0.08)) !important;
      font-weight: 800 !important;
      box-shadow: 0 4px 14px rgba(245,158,11,0.14) !important;
    }
    .upload-tab.upload-tab-posting:hover {
      color: #fff !important;
      border-color: transparent !important;
      background: linear-gradient(135deg, #f59e0b, #f97316) !important;
      box-shadow: 0 8px 22px rgba(249,115,22,0.28) !important;
    }
    .upload-tab.upload-tab-posting.active {
      color: #fff !important;
      border-color: transparent !important;
      background: linear-gradient(135deg, #f59e0b, #f97316, #db2777) !important;
      box-shadow: 0 10px 26px rgba(249,115,22,0.34) !important;
    }

    /* ══════════════════ 통계 슬라이더 ══════════════════ */
    .stats-slider-nav {
      background: var(--bg-card) !important;
      border: 1px solid var(--border) !important;
      border-bottom: none !important;
      border-radius: var(--radius-lg) var(--radius-lg) 0 0 !important;
      box-shadow: none !important;
      overflow: hidden;
    }
    .ssn-tab {
      font-family: 'Pretendard', sans-serif !important;
      letter-spacing: normal !important;
      text-transform: none !important;
      color: var(--txt-mid) !important;
      border-right-color: var(--border) !important;
      font-size: 13px !important;
      font-weight: 600 !important;
      padding: 14px 20px !important;
    }
    .ssn-tab::after {
      background: var(--blue-mid) !important;
      box-shadow: none !important;
    }
    .ssn-tab.active {
      color: var(--blue-mid) !important;
      background: rgba(74,112,245,0.06) !important;
      text-shadow: none !important;
    }
    .ssn-tab:hover:not(.active) {
      color: var(--txt-hi) !important;
      background: rgba(74,112,245,0.03) !important;
    }
    .ssn-nav-btn {
      font-family: 'Pretendard', sans-serif !important;
      color: var(--blue-mid) !important;
      border-left-color: var(--border) !important;
      font-size: 14px !important;
    }
    .ssn-nav-btn:first-child { border-right-color: var(--border) !important; }
    .ssn-nav-btn:hover {
      color: var(--blue-deep) !important;
      text-shadow: none !important;
      background: rgba(74,112,245,0.06) !important;
    }
    .stats-slides-outer {
      border: 1px solid var(--border) !important;
      border-top: none !important;
      border-radius: 0 0 var(--radius-lg) var(--radius-lg) !important;
      background: var(--bg-card) !important;
      box-shadow: var(--sh-card) !important;
    }
    .stats-slides-outer::before { display: none !important; content: none !important; }
    .slide-title {
      font-family: 'Pretendard', sans-serif !important;
      color: var(--txt-mid) !important;
      letter-spacing: 0.02em !important;
      text-transform: none !important;
      text-shadow: none !important;
      font-size: 12px !important;
      font-weight: 700 !important;
    }
    .slide-title::before { content: '' !important; }
    .date-context-bar {
      font-family: 'Pretendard', sans-serif !important;
      background: rgba(74,112,245,0.06) !important;
      border: 1px solid rgba(74,112,245,0.18) !important;
      color: var(--blue-mid) !important;
      letter-spacing: normal !important;
      border-radius: var(--radius-md) !important;
      padding: 8px 14px !important;
      font-size: 12px !important;
      font-weight: 600 !important;
    }

    /* ══════════════════ 기타 ══════════════════ */
    textarea {
      background: var(--bg-input) !important;
      border: 1.5px solid var(--border) !important;
      color: var(--txt-hi) !important;
      font-family: 'Pretendard', sans-serif !important;
      border-radius: var(--radius-md) !important;
    }
    textarea:focus {
      border-color: var(--blue-mid) !important;
      box-shadow: var(--glow-cyan) !important;
    }
    #kn-content-input {
      font-family: 'Pretendard', sans-serif !important;
      background: var(--bg-input) !important;
      color: var(--txt-hi) !important;
      border: 1.5px solid var(--border) !important;
    }
    .kn-post-thumb { border-radius: var(--radius-sm) !important; }

    /* 표 빌더 팝업 */
    #kn-table-modal { background: rgba(0,0,0,0.55) !important; }
    .ktm-box {
      background: var(--bg-card) !important;
      border: 1px solid var(--border) !important;
      border-radius: var(--radius-lg) !important;
      box-shadow: var(--sh-md) !important;
    }
    .ktm-header {
      font-family: 'Pretendard', sans-serif !important;
      color: var(--txt-hi) !important;
      letter-spacing: normal !important;
      border-bottom-color: var(--border) !important;
      font-weight: 700 !important;
    }
    .ktm-close {
      border-radius: var(--radius-sm) !important;
      border-color: var(--border) !important;
      color: var(--txt-mid) !important;
    }
    .ktm-close:hover { border-color: #ef4444 !important; color: #ef4444 !important; }
    .ktm-controls { border-bottom-color: var(--border) !important; }
    .ktm-controls label { color: var(--txt-mid) !important; }
    .ktm-controls input[type=number] {
      background: var(--bg-input) !important;
      color: var(--txt-hi) !important;
      border-color: var(--border) !important;
      border-radius: var(--radius-sm) !important;
    }
    .ktm-btn {
      font-family: 'Pretendard', sans-serif !important;
      border-radius: var(--radius-sm) !important;
      letter-spacing: normal !important;
    }
    .ktm-btn-cyan { border-color: var(--blue-mid) !important; color: var(--blue-mid) !important; }
    .ktm-btn-cyan:hover { background: rgba(74,112,245,0.10) !important; box-shadow: none !important; }
    .ktm-btn-green { border-color: var(--neon-green) !important; color: var(--neon-green) !important; }
    .ktm-btn-green:hover { background: rgba(22,163,74,0.10) !important; box-shadow: none !important; }
    .ktm-btn-pink { border-color: #ef4444 !important; color: #ef4444 !important; }
    .ktm-btn-pink:hover { background: rgba(239,68,68,0.10) !important; box-shadow: none !important; }
    #ktm-grid th, #ktm-grid td { border-color: var(--border) !important; }
    #ktm-grid th { background: rgba(74,112,245,0.06) !important; color: var(--txt-hi) !important; }
    #ktm-grid td { color: var(--txt-hi) !important; }
    #ktm-grid th.ktm-selected, #ktm-grid td.ktm-selected {
      outline-color: var(--blue-mid) !important;
      background: rgba(74,112,245,0.12) !important;
    }
    .ktm-toolbar {
      background: var(--bg-card-hi) !important;
      border-top-color: var(--border) !important;
    }
    .ktm-toolbar label { color: var(--txt-mid) !important; }
    .ktm-toolbar input[type=color] {
      background: var(--bg-input) !important;
      border-color: var(--border) !important;
      border-radius: var(--radius-sm) !important;
    }
    .ktm-align-btn {
      background: transparent !important;
      border-color: var(--border) !important;
      color: var(--txt-mid) !important;
      border-radius: var(--radius-sm) !important;
    }
    .ktm-align-btn.active, .ktm-align-btn:hover {
      border-color: var(--blue-mid) !important;
      color: var(--blue-mid) !important;
    }
    .ktm-sep { background: var(--border) !important; }
    .ktm-footer { border-top-color: var(--border) !important; }
    #kn-edit-banner {
      background: rgba(107,70,193,0.08) !important;
      border: 1px solid rgba(107,70,193,0.25) !important;
      color: var(--neon-purple) !important;
      border-radius: var(--radius-md) !important;
      letter-spacing: normal !important;
      font-family: 'Pretendard', sans-serif !important;
    }

    /* ::before/::after 잔여 효과 차단 */
    .chart-title::before { content: '📊 ' !important; }
    .menu-stats-head::before { content: '' !important; }
    .card-stats-head::before { content: '' !important; }
    .sess-head::before { content: '' !important; }
    .nl-thumb { color: var(--blue-mid) !important; }
    /* flicker, glitch 애니메이션 제거 */
    .kpi-card *, .chart-card *, .nl-upload-box *, .stats-slider * { animation: none !important; }
    /* 단, kpi-icon 등 필요한 애니메이션은 유지하고 싶다면 별도로 다시 풀 수 있음 */

    /* 반응형 */
    @media (max-width: 768px) {
      .dash-body { padding: 20px 16px !important; }
      .dash-header { padding: 0 16px !important; }
      .ssn-tab { padding: 12px 14px !important; font-size: 12px !important; }
      .stats-slide { padding: 18px !important; }
    }

    /* ══════════════════ 파트너 전용 안내 카드 (로그인 화면) ══════════════════ */
    .partner-notice {
      background: linear-gradient(135deg, rgba(74,112,245,0.06), rgba(0,200,238,0.05));
      border: 1px solid rgba(74,112,245,0.18);
      border-radius: var(--radius-md);
      padding: 16px 18px;
      margin: 0 0 24px;
      text-align: left;
    }
    [data-theme="dark"] .partner-notice {
      background: linear-gradient(135deg, rgba(74,112,245,0.10), rgba(0,200,238,0.06));
      border-color: rgba(74,112,245,0.25);
    }
    .partner-notice-head {
      display: flex;
      align-items: center;
      gap: 8px;
      margin-bottom: 8px;
    }
    .partner-notice-icon {
      font-size: 18px;
      line-height: 1;
    }
    .partner-notice-title {
      font-family: 'Pretendard', sans-serif;
      font-size: 13px;
      font-weight: 800;
      color: var(--blue-mid);
      letter-spacing: -0.005em;
    }
    .partner-notice-text {
      font-family: 'Pretendard', sans-serif;
      font-size: 12px;
      line-height: 1.6;
      color: var(--txt-mid);
      margin-bottom: 12px;
    }
    .partner-contact-btn {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 8px;
      width: 100%;
      padding: 10px 14px;
      background: #FEE500;
      border: 1px solid #FEE500;
      border-radius: var(--radius-md);
      color: #391B1B;
      font-family: 'Pretendard', sans-serif;
      font-size: 13px;
      font-weight: 700;
      text-decoration: none;
      transition: all 0.18s;
      box-shadow: 0 2px 8px rgba(254,229,0,0.30);
    }
    .partner-contact-btn:hover {
      transform: translateY(-1px);
      box-shadow: 0 4px 14px rgba(254,229,0,0.45);
      background: #FFDE00;
    }
    .partner-back-link {
      display: inline-block;
      margin-top: 18px;
      font-family: 'Pretendard', sans-serif;
      font-size: 12px;
      font-weight: 500;
      color: var(--txt-lo);
      text-decoration: none;
      transition: color 0.15s;
    }
    .partner-back-link:hover { color: var(--blue-mid); }

    /* ══════════════════ 유입 경로 (Slide 3) ══════════════════ */
    .ts-period-bar {
      display: flex;
      align-items: center;
      gap: 6px;
      margin-bottom: 14px;
    }
    .ts-period-btn {
      background: var(--bg-card);
      border: 1px solid var(--border);
      border-radius: 8px;
      padding: 6px 14px;
      font-size: 12px;
      font-weight: 700;
      color: var(--txt-mid);
      cursor: pointer;
      transition: all 0.15s;
      font-family: 'Pretendard', sans-serif;
    }
    .ts-period-btn:hover { color: var(--txt-hi); border-color: var(--blue-light); }
    .ts-period-btn.active {
      background: var(--blue-mid);
      border-color: var(--blue-mid);
      color: #fff;
    }
    .ts-updated {
      font-size: 11px;
      color: var(--txt-lo);
      margin-left: auto;
    }
    .traffic-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 14px;
    }
    .traffic-card {
      background: var(--bg-card);
      border: 1px solid var(--border);
      border-radius: 12px;
      padding: 14px 16px;
    }
    .traffic-card-wide { grid-column: 1 / -1; }
    .traffic-card-head {
      display: flex;
      align-items: center;
      gap: 6px;
      margin-bottom: 10px;
      padding-bottom: 8px;
      border-bottom: 1px dashed var(--border);
      flex-wrap: wrap;
    }
    .traffic-icon { font-size: 16px; line-height: 1; }
    .traffic-title {
      font-size: 13px;
      font-weight: 700;
      color: var(--txt-hi);
    }
    .traffic-hint {
      font-size: 11px;
      color: var(--txt-lo);
      font-weight: 500;
      margin-left: auto;
    }
    .traffic-list {
      list-style: none;
      padding: 0; margin: 0;
      display: flex;
      flex-direction: column;
      gap: 4px;
      min-height: 120px;
    }
    .ts-item {
      display: flex;
      align-items: center;
      gap: 8px;
      padding: 6px 8px;
      border-radius: 6px;
      transition: background 0.12s;
    }
    .ts-item:hover { background: rgba(74,112,245,0.06); }
    .ts-rank {
      width: 20px;
      flex-shrink: 0;
      text-align: center;
      font-size: 10px;
      font-weight: 800;
      color: var(--txt-lo);
    }
    .ts-name {
      flex: 1;
      font-size: 12.5px;
      font-weight: 600;
      color: var(--txt-hi);
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
    }
    .ts-count {
      font-size: 11.5px;
      font-weight: 700;
      color: var(--blue-mid);
      font-variant-numeric: tabular-nums;
    }
    .ts-bar {
      display: inline-block;
      height: 4px;
      background: linear-gradient(90deg, var(--blue-mid), var(--cyan));
      border-radius: 2px;
      vertical-align: middle;
      margin-right: 6px;
      min-width: 4px;
    }
    .ts-empty {
      font-size: 12px;
      color: var(--txt-lo);
      padding: 14px 0;
      text-align: center;
      font-style: italic;
    }
    /* 테이블 (UTM / 최근 유입) */
    .traffic-table {
      width: 100%;
      border-collapse: collapse;
      font-size: 12px;
    }
    .traffic-table th {
      text-align: left;
      padding: 8px 10px;
      font-size: 11px;
      font-weight: 700;
      color: var(--txt-mid);
      border-bottom: 1px solid var(--border);
      background: rgba(74,112,245,0.04);
    }
    .traffic-table th.ta-right { text-align: right; }
    .traffic-table td {
      padding: 8px 10px;
      border-bottom: 1px solid var(--border);
      color: var(--txt-hi);
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
      max-width: 240px;
    }
    .traffic-table td.ta-right { text-align: right; }
    .traffic-table tr:last-child td { border-bottom: none; }
    .traffic-table tr:hover td { background: rgba(74,112,245,0.04); }
    .traffic-recent-wrap {
      max-height: 360px;
      overflow-y: auto;
    }
    .ts-tag {
      display: inline-block;
      padding: 2px 7px;
      font-size: 10px;
      font-weight: 700;
      border-radius: 8px;
      background: rgba(74,112,245,0.10);
      color: var(--blue-mid);
    }
    @media (max-width: 900px) {
      .traffic-grid { grid-template-columns: 1fr; }
    }

    /* ══════════════════ 인기 콘텐츠 (Slide 4) ══════════════════ */
    .pc-period-btn {
      background: var(--bg-card);
      border: 1px solid var(--border);
      border-radius: 8px;
      padding: 6px 14px;
      font-size: 12px;
      font-weight: 700;
      color: var(--txt-mid);
      cursor: pointer;
      transition: all 0.15s;
      font-family: 'Pretendard', sans-serif;
    }
    .pc-period-btn:hover { color: var(--txt-hi); border-color: var(--blue-light); }
    .pc-period-btn.active {
      background: var(--blue-mid);
      border-color: var(--blue-mid);
      color: #fff;
    }
    .pc-legend {
      display: flex;
      flex-wrap: wrap;
      gap: 16px;
      margin: 0 0 18px;
      padding: 10px 14px;
      background: rgba(74,112,245,0.04);
      border: 1px solid var(--border);
      border-radius: 10px;
      font-size: 11.5px;
      color: var(--txt-mid);
    }
    .pc-legend-item {
      display: inline-flex;
      align-items: center;
      gap: 6px;
    }
    .pc-dot {
      display: inline-block;
      width: 8px; height: 8px;
      border-radius: 50%;
    }
    .pc-dot-clicks { background: #4a70f5; }
    .pc-dot-shared { background: #10b981; }
    .pc-dot-copies { background: #a855f7; }

    .pc-section { margin-bottom: 22px; }
    .pc-section:last-child { margin-bottom: 0; }
    .pc-section-head {
      display: flex;
      align-items: center;
      gap: 8px;
      margin-bottom: 10px;
      padding-bottom: 8px;
      border-bottom: 2px solid var(--border);
    }
    .pc-section-icon { font-size: 20px; line-height: 1; }
    .pc-section-title {
      font-size: 14px;
      font-weight: 800;
      color: var(--txt-hi);
      letter-spacing: -0.01em;
    }
    .pc-3col {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 12px;
    }
    .pc-card {
      background: var(--bg-card);
      border: 1px solid var(--border);
      border-radius: 12px;
      padding: 12px 14px;
      position: relative;
      overflow: hidden;
    }
    .pc-card::before {
      content: '';
      position: absolute;
      top: 0; left: 0; right: 0;
      height: 3px;
    }
    .pc-card-clicks::before { background: #4a70f5; }
    .pc-card-shared::before { background: #10b981; }
    .pc-card-copies::before { background: #a855f7; }
    .pc-card-head {
      font-size: 12px;
      font-weight: 700;
      color: var(--txt-mid);
      margin-bottom: 8px;
      padding-bottom: 6px;
      border-bottom: 1px dashed var(--border);
    }
    .pc-list {
      list-style: none;
      padding: 0; margin: 0;
      display: flex;
      flex-direction: column;
      gap: 4px;
      min-height: 140px;
    }
    .pc-item {
      display: flex;
      align-items: center;
      gap: 6px;
      padding: 5px 7px;
      border-radius: 6px;
      transition: background 0.12s;
    }
    .pc-item:hover { background: rgba(74,112,245,0.05); }
    .pc-rank {
      width: 18px;
      flex-shrink: 0;
      text-align: center;
      font-size: 10px;
      font-weight: 800;
      color: var(--txt-lo);
    }
    .pc-item.pc-rank-1 .pc-rank { color: #f59e0b; }
    .pc-item.pc-rank-2 .pc-rank { color: #64748b; }
    .pc-item.pc-rank-3 .pc-rank { color: #c2410c; }
    .pc-name {
      flex: 1;
      font-size: 12px;
      font-weight: 600;
      color: var(--txt-hi);
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
    }
    .pc-count {
      font-size: 11px;
      font-weight: 700;
      color: var(--blue-mid);
      font-variant-numeric: tabular-nums;
      flex-shrink: 0;
    }
    .pc-card-shared .pc-count { color: #10b981; }
    .pc-card-copies .pc-count { color: #a855f7; }
    @media (max-width: 900px) {
      .pc-3col { grid-template-columns: 1fr; }
    }

    /* ════════════════════════════════════════════════════════════
       v2.6.6: 모바일 관리자 레이아웃 전면 정비 (≤640px)
       - 탭 바: 줄바꿈 난립 → 가로 스크롤 한 줄
       - 표/넓은 그리드/입력폼/미디어를 화면 폭에 맞게 정리
    ════════════════════════════════════════════════════════════ */
    @media (max-width: 640px) {
      /* 헤더 */
      .dash-header { padding: 0 12px !important; }
      .dash-header-inner { height: 54px; gap: 8px; }
      .dash-brand { gap: 8px; min-width: 0; }
      .dash-brand img { height: 28px; }
      .dash-brand span { display: none; }
      .dash-actions { gap: 8px; flex-shrink: 0; }
      .refresh-btn { padding: 7px 11px; font-size: 10px; letter-spacing: 0.04em; }
      .back-link { font-size: 10px; letter-spacing: 0.04em; }
      .last-updated { display: none; }

      /* 본문 여백 축소 */
      .dash-body { padding: 14px 12px 52px !important; }
      .dash-section-title { font-size: 12px; margin-bottom: 14px; }

      /* 탭 바 → 가로 스크롤 한 줄 (줄바꿈 제거) */
      .upload-tabs {
        flex-wrap: nowrap !important;
        overflow-x: auto;
        overflow-y: hidden;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        gap: 6px;
        padding: 10px 0;
        margin-bottom: 16px;
      }
      .upload-tabs::-webkit-scrollbar { display: none; }
      .upload-tab {
        flex: 0 0 auto;
        white-space: nowrap;
        padding: 9px 13px;
        font-size: 11px;
        letter-spacing: 0.03em;
      }
      .tab-group-sep { display: none; }

      /* 내부 서브탭도 가로 스크롤 */
      .reqs-subtabs {
        flex-wrap: nowrap !important;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
      }
      .reqs-subtabs::-webkit-scrollbar { display: none; }

      /* 표 → 가로 스크롤 (잘림 방지) */
      .dash-body table {
        display: block;
        width: 100%;
        max-width: 100%;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        white-space: nowrap;
      }

      /* 넓은 그리드 축소 */
      .sess-dist     { grid-template-columns: repeat(2, 1fr) !important; }
      .sess-kpi-row  { grid-template-columns: repeat(3, 1fr) !important; }
      .cs-cards-grid { grid-template-columns: repeat(2, 1fr) !important; }
      .kpi-grid      { grid-template-columns: repeat(2, 1fr) !important; }
      /* 패널 내부 인라인 3열 그리드 폴백 */
      .upload-panel [style*="repeat(3"] { grid-template-columns: repeat(2, 1fr) !important; }

      /* 입력폼 — iOS 확대 방지 + 풀폭 */
      .dash-body input,
      .dash-body select,
      .dash-body textarea {
        font-size: 16px !important;
        max-width: 100%;
        box-sizing: border-box;
      }

      /* 미디어 오버플로 방지 */
      .dash-body img,
      .dash-body iframe,
      .dash-body canvas,
      .dash-body video { max-width: 100%; height: auto; }

      /* 패널/카드 폭 안전장치 */
      .upload-panel { max-width: 100%; }
      .upload-panel > * { max-width: 100%; box-sizing: border-box; }
    }
  