

    @font-face {

      font-family: 'ChangwonDanggamAsak';

      src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_2108@1.1/CWDangamAsac-Bold.woff') format('woff');

      font-weight: normal; font-display: swap;

    }

    @font-face {

      font-family: 'CookieRun';

      src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_2001@1.1/CookieRun-Regular.woff') format('woff');

      font-weight: normal; font-display: swap;

    }

    @font-face {

      font-family: 'Recipekorea';

      src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_2001@1.1/Recipekorea.woff') format('woff');

      font-weight: normal; font-display: swap;

    }

    :root {
      --primary-color: #D32F2F;
      --theme-primary: #D32F2F;
      --bg:      #F8FAFC;
      --bg-main: #F8FAFC;
      --surface: #ffffff;
      --panel: #ffffff;
      --border:  rgba(62, 58, 57, 0.08);
      --accent:  var(--primary-color);
      --gold:    #c9a227;
      --green:   #34c759;
      --red:     #e53935;
      --text:    #3e3a39;
      --muted:   #8a8580;
      --text-muted: #8a8580;
      --radius:  16px;
      --main-max-w:   1100px;
      --main-pad-x:   24px;
      --page-gutter:  var(--main-pad-x);
      --panel-radius: 18px;
      --panel-pad:    15px;
      --font-display: 'Outfit', 'IBM Plex Sans KR', 'Noto Sans KR', sans-serif;
      --font-body: 'IBM Plex Sans KR', 'Outfit', 'Noto Sans KR', sans-serif;
    }



    * { box-sizing: border-box; margin: 0; padding: 0; }



    body {

      font-family: 'Apple SD Gothic Neo', 'Malgun Gothic', 'Noto Sans KR', sans-serif;

      background: var(--bg);

      color: var(--text);

      min-height: 100vh;

    }



    /* [초슬림 다이어트] 상단바 — 매장 직원 동선 최적화를 위해 세로 두께를 py-1.5 수준으로 압축 */

    .topbar {

      background: var(--surface);

      border-bottom: 1px solid var(--border);

      padding: 0 16px; height: 44px;

      display: flex; align-items: center; justify-content: space-between;

      position: sticky; top: 0; z-index: 100; gap: 10px;

    }

    .topbar { overflow-x: hidden; flex-wrap: nowrap; }

    /* 상단 공지 배너 — 45px 고정 · 접기 토글 */
    .banner-wrap { position: relative; }
    .top-banner, #notice-banner, .top-promo-banner {
      height: 45px;
      min-height: 45px;
      max-height: 45px;
      display: flex;
      align-items: center;
      justify-content: center;
      background-color: #D32F2F;
      border-top: 1.5px solid #D0D0D0;
      position: relative;
      z-index: 100;
      color: #ffffff;
      font-size: 13px;
      font-weight: 600;
      letter-spacing: .2px;
      overflow: hidden;
      padding: 0 16px;
      box-sizing: border-box;
      cursor: default;
      transition: height 0.25s ease-in-out, min-height 0.25s ease-in-out, padding 0.25s ease-in-out;
    }
    .top-promo-banner.collapsed,
    #notice-banner.collapsed {
      height: 0 !important;
      min-height: 0 !important;
      max-height: 0 !important;
      padding-top: 0 !important;
      padding-bottom: 0 !important;
      border-top-width: 0;
    }
    #banner-inner, .banner-content {
      position: relative;
      display: flex; align-items: center; justify-content: center;
      height: 45px; width: 100%; min-width: 0;
      white-space: nowrap;
    }
    .banner-link {
      display: inline-flex; align-items: center; justify-content: center; gap: 7px;
      min-width: 0; max-width: calc(100% - 88px);
      color: #ffffff; text-decoration: none; text-align: center;
      font-size: 13px; font-weight: 600;
      overflow: hidden; text-overflow: ellipsis; cursor: pointer;
    }
    #banner-go { flex-shrink: 0; font-size: 13px; opacity: .92; }
    .banner-toggle-btn {
      position: absolute; right: 16px; top: 50%; transform: translateY(-50%);
      background: transparent; border: none; color: #ffffff;
      font-size: 12px; font-weight: 600; cursor: pointer; opacity: 0.9;
      padding: 4px 2px; font-family: inherit; z-index: 2;
    }
    .banner-toggle-btn:hover { opacity: 1; }
    .banner-expand-btn {
      display: none; position: absolute; top: 6px; right: 12px; z-index: 130;
      background: #FFFFFF; border: 1px solid #E5E7EB; color: #3E3A39;
      font-size: 11px; font-weight: 700; border-radius: 999px;
      padding: 3px 10px; cursor: pointer; font-family: inherit;
    }
    .banner-wrap.is-collapsed .banner-expand-btn { display: inline-flex; }
    .topbar-brand {

      display: flex; align-items: center; gap: 8px;

      font-size: 15px; font-weight: 800; color: var(--gold);

      letter-spacing: 0.3px; flex: 0 1 auto; min-width: 0;

    }
    .topbar-brand #storeName, .brand-name-bi {
      font-size: 15px; font-weight: 800; max-width: 120px;
      white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
    }
    .settings-quick-btn {
      height: 28px; padding: 2px 8px; font-size: 11px; font-weight: 600;
      border-radius: 14px; border: 1px solid #E0E0E0; background: #FAFAFA;
      color: #1d1d1f; white-space: nowrap; cursor: pointer;
    }
    #pwa-install-btn, #btn-lan-qr, #btn-master-gear {
      height: 30px !important; padding: 2px 8px !important; font-size: 11.5px !important;
      font-weight: 600 !important; border-radius: 15px !important;
      display: inline-flex !important; align-items: center !important; justify-content: center !important;
      gap: 3px !important; white-space: nowrap !important; flex-shrink: 0 !important;
      box-sizing: border-box !important;
    }

    .topbar-brand .logo { font-size: 18px; }

    .topbar-right { display: flex; align-items: center; gap: 4px; flex-shrink: 1; min-width: 0; overflow-x: hidden; flex-wrap: nowrap; }

    /* [하네스 4] SNS 녹화 모드 · 가짜 데이터 스위치 */
    .mkt-toggle {
      display: inline-flex; align-items: center; gap: 5px;
      padding: 4px 9px; border-radius: 999px; border: 1px solid var(--border);
      background: rgba(255,255,255,0.04); color: var(--muted);
      font-size: 11px; font-weight: 700; cursor: pointer; white-space: nowrap;
    }
    .mkt-toggle.on {
      border-color: rgba(255, 99, 132, 0.55);
      background: rgba(255, 99, 132, 0.12); color: #ffb3c1;
    }
    .mkt-toggle .mkt-switch {
      width: 28px; height: 14px; border-radius: 999px; background: #3a3a48;
      position: relative; flex-shrink: 0;
    }
    .mkt-toggle .mkt-switch::after {
      content: ''; position: absolute; top: 2px; left: 2px;
      width: 10px; height: 10px; border-radius: 50%; background: #ddd;
      transition: transform .15s ease;
    }
    .mkt-toggle.on .mkt-switch { background: #e85a7a; }
    .mkt-toggle.on .mkt-switch::after { transform: translateX(14px); background: #fff; }
    .mkt-demo-btn {
      display: inline-flex; align-items: center; gap: 4px;
      padding: 4px 9px; border-radius: 999px; border: 1px solid var(--border);
      background: rgba(255,215,0,0.06); color: var(--gold);
      font-size: 11px; font-weight: 700; cursor: pointer; white-space: nowrap;
    }
    .mkt-demo-btn:hover { background: rgba(255,215,0,0.14); }
    html.mybiz-sns-record .private-info {
      filter: blur(6px) !important;
      user-select: none !important;
    }
    .license-gate-banner {
      display: none; align-items: center; justify-content: space-between; gap: 10px;
      padding: 8px 14px; background: #3a1d28; border-bottom: 1px solid #7a3048;
      color: #ffc9d6; font-size: 12px; font-weight: 600;
    }
    .license-gate-banner.show { display: flex; }
    .license-gate-banner button {
      border: 1px solid #ff8aa5; background: transparent; color: #ffc9d6;
      border-radius: 8px; padding: 4px 10px; font-size: 11px; font-weight: 700; cursor: pointer;
    }
    .pin-redeem-overlay {
      display: none; position: fixed; inset: 0; z-index: 9999;
      background: rgba(0,0,0,0.55); align-items: center; justify-content: center; padding: 16px;
    }
    .pin-redeem-overlay.show { display: flex; }
    .pin-redeem-modal {
      width: min(420px, 100%); background: var(--surface); border: 1px solid var(--border);
      border-radius: 14px; padding: 18px 16px; color: var(--text);
    }
    .pin-redeem-modal h3 { margin: 0 0 8px; font-size: 15px; color: var(--gold); }
    .pin-redeem-modal p { margin: 0 0 12px; font-size: 12px; color: var(--muted); line-height: 1.45; }
    .pin-redeem-modal input {
      width: 100%; box-sizing: border-box; padding: 10px 12px; border-radius: 8px;
      border: 1px solid var(--border); background: #12121a; color: var(--text);
      font-size: 14px; letter-spacing: 1px; margin-bottom: 10px;
    }
    .pin-redeem-actions { display: flex; gap: 8px; justify-content: flex-end; }
    .pin-redeem-actions button {
      padding: 8px 12px; border-radius: 8px; border: 1px solid var(--border);
      background: #1c1c28; color: var(--text); font-weight: 700; cursor: pointer; font-size: 12px;
    }
    .pin-redeem-actions button.primary { background: var(--gold); color: #1a1200; border-color: var(--gold); }



    .clock {

      font-size: 14px; font-weight: 700;

      font-variant-numeric: tabular-nums; color: var(--text); letter-spacing: 1px;

    }

    .status-badge {
      display: inline-flex;
      align-items: center;
      gap: 5px;
      padding: 3px 9px;
      border-radius: 9999px;
      font-size: 12px;
      font-weight: 600;
      border: none;
      white-space: nowrap;
      flex-shrink: 0;
      box-sizing: border-box;
    }
    .status-badge.connected {
      background-color: #E8F5E9;
      color: #2E7D32;
    }
    .status-badge.disconnected {
      background-color: #FFEBEE;
      color: #C62828;
    }
    .status-dot {
      width: 6px;
      height: 6px;
      border-radius: 50%;
      background-color: #2E7D32;
      flex-shrink: 0;
    }
    .status-badge.disconnected .status-dot { background-color: #C62828; }
    .ws-badge { display: inline-flex; align-items: center; gap: 5px; }
    .ws-dot { width: 6px; height: 6px; border-radius: 50%; background: currentColor; }

    .ws-badge.connected .ws-dot { animation: blink 2s ease-in-out infinite; }

    @keyframes blink { 0%, 100% { opacity: 1; } 50% { opacity: 0.3; } }



    .btn-qr-center {

      background: linear-gradient(135deg, #92680a 0%, #d4a820 40%, #f5d060 60%, #d4a820 80%, #92680a 100%);

      background-size: 250% auto;

      color: #1a0900; border: none; padding: 6px 13px; border-radius: 9px;

      font-size: 12px; font-weight: 900; cursor: pointer; letter-spacing: 0.2px;

      transition: background-position 0.4s ease, transform 0.15s, box-shadow 0.2s;

      display: flex; align-items: center; gap: 5px;

      box-shadow: 0 3px 16px rgba(212,168,32,0.45); white-space: nowrap; flex-shrink: 0;

    }

    .btn-qr-center:hover { background-position: right center; transform: translateY(-1px); box-shadow: 0 5px 22px rgba(212,168,32,0.65); }

    .btn-qr-center:active { transform: scale(0.97); }



    .btn-sys-gear {

      width: 32px; height: 32px; flex-shrink: 0;

      background: rgba(255,255,255,0.05);

      border: 1px solid rgba(255,255,255,0.14);

      border-radius: 10px; color: var(--muted);

      font-size: 17px; cursor: pointer;

      display: flex; align-items: center; justify-content: center;

      transition: all 0.2s;

    }

    .btn-sys-gear:hover {

      background: rgba(255,255,255,0.1);

      border-color: rgba(255,255,255,0.28);

      color: var(--text);

      transform: rotate(45deg);

    }

    .btn-sys-gear:active { transform: rotate(45deg) scale(0.94); }



    .main-vertical {

      max-width: var(--main-max-w);

      margin: 0 auto;

      padding: 10px var(--main-pad-x) 20px;

      display: flex; flex-direction: column; gap: 0;

      min-height: 0;

    }

    .main-vertical > .dashboard-top,

    .main-vertical > .kpi-board,

    .main-vertical > .approval-alert-banner,

    .main-vertical > .master-tab-bar,

    .main-vertical > .master-tab-body {

      width: 100%;

      box-sizing: border-box;

    }



    /* [초슬림 다이어트] 리뷰 현황 보드 — 상하 패딩 py-1.5 수준 압축 */

    .review-scoreboard {

      border: 1px solid #e0e0e0;

      border-radius: var(--panel-radius);

      padding: 7px var(--panel-pad);

      margin-bottom: 0;

      background: #fff;

      font-size: 13.5px; font-weight: 700; color: #1a1a1a;

      letter-spacing: 0.2px; line-height: 1.5;

      text-align: center;

      box-shadow: 0 2px 12px rgba(0,0,0,0.08);

    }

    .review-scoreboard .score-sep { color: #cbd5e1; margin: 0 4px; }

    .review-scoreboard .score-today-bold { font-weight: bold; color: #1a1a1a; }

    .review-scoreboard .score-val {

      color: #03C75A; font-size: 16px; font-weight: 900;

      font-variant-numeric: tabular-nums;

    }



    /* [핵심 KPI 요약 카드 보드] 업계 표준 통계 대시보드 규격 — 영구 DB 원장 실시간 집계 */

    .kpi-board {

      display: grid;

      grid-template-columns: repeat(3, 1fr);

      gap: 8px;

      margin-bottom: 8px;

    }

    .kpi-card {

      background: var(--surface);

      border: 1px solid var(--border);

      border-radius: var(--panel-radius);

      padding: 8px 12px;

      display: flex; flex-direction: column; justify-content: center; gap: 2px;

      min-height: 52px;

    }

    .kpi-label { font-size: 11px; font-weight: 700; color: var(--muted); letter-spacing: 0.3px; }

    .kpi-value {

      font-size: 19px; font-weight: 900; color: #03C75A;

      font-variant-numeric: tabular-nums; line-height: 1.2;

    }

    .kpi-card.kpi-gold .kpi-value { color: var(--gold); }

    .kpi-card.kpi-export { align-items: stretch; gap: 4px; }

    .btn-export-ledger {

      width: 100%; padding: 6px 10px; border-radius: 8px;

      border: 1px solid rgba(3,199,90,0.45);

      background: rgba(3,199,90,0.12);

      color: #34d399; font-size: 12px; font-weight: 800; cursor: pointer;

      transition: background 0.15s, border-color 0.15s;

      white-space: nowrap;

    }

    .btn-export-ledger:hover { background: rgba(3,199,90,0.22); border-color: rgba(3,199,90,0.7); }

    .kpi-sub { font-size: 10.5px; color: var(--muted); text-align: center; font-variant-numeric: tabular-nums; }

    @media (max-width: 760px) {

      .kpi-board { grid-template-columns: repeat(2, 1fr); }

    }



    .approval-alert-banner {

      font-size: 20px; font-weight: 900;

      text-align: center; line-height: 1.3;

      padding: 9px 16px;

      margin-bottom: 8px;

      color: #f59e0b;

      background: linear-gradient(135deg, rgba(245,158,11,0.18), rgba(239,68,68,0.08));

      border: 2px solid rgba(245,158,11,0.55);

      border-radius: var(--panel-radius);

      letter-spacing: 0.5px;

      box-shadow: 0 6px 28px rgba(245,158,11,0.2);

    }

    .approval-alert-banner.blinking {

      animation: approvalBlink 1s ease-in-out infinite;

    }

    @keyframes approvalBlink {

      0%, 100% { opacity: 1; }

      50%       { opacity: 0.35; }

    }

    .approval-alert-banner.hidden { display: none; }

    .approval-alert-banner.idle {

      font-size: 13px; color: #94a3b8;

      padding: 6px 16px;

      background: rgba(255,255,255,0.04);

      border: 2px solid rgba(255,255,255,0.15);

      box-shadow: none; animation: none;

    }



    /* [애플 세그먼트] 둔탁한 회색 탭바 → 라이트 트랙 + 순백 활성 패널 */
    .master-tab-bar {

      display: flex;

      gap: 4px;

      border: none;

      border-radius: 12px;

      overflow: hidden;

      background: #f1f5f9;

      padding: 4px;

      margin-bottom: 12px;

    }

    .master-tab-btn {

      /* 탭 개수에 맞춰 균등 분배 — 33.33% 고정 폭이면 탭이 늘어난 순간
         마지막 탭이 overflow:hidden에 잘려 아예 보이지 않게 된다 */

      flex: 1 1 0; min-width: 0;

      padding: 10px 8px;

      background: transparent; border: none;

      border-bottom: none;

      color: #64748b; font-size: 13px; font-weight: 600;

      cursor: pointer; transition: all 0.2s;

      text-align: center;

      border-radius: 8px;

    }

    .master-tab-btn:hover { color: #475569; background: transparent; }

    .master-tab-btn.active {

      color: var(--primary-color);

      font-weight: bold;

      border-bottom-color: transparent;

      background: #ffffff;

      box-shadow: 0 2px 4px rgba(0,0,0,0.06);

      border-radius: 8px;

    }



    .master-tab-body {

      border: 1px solid #f1f5f9;

      border-top: 1px solid #f1f5f9;

      border-radius: 12px;

      background: transparent;

      overflow: hidden;

      flex: 1;

    }

    .master-tab-panel {

      display: none;

      padding: var(--panel-pad);

      width: 100%;

      box-sizing: border-box;

    }

    .master-tab-panel.active { display: block; }



    .event-scroll-view { display: flex; flex-direction: column; gap: 12px; }



    /* [게임 세션 초기화] 라이브 진행 상태 회생 버튼 — 과거 장부(영구 DB)는 절대 건드리지 않음 */

    .master-reset-bar { margin-bottom: 10px; }

    .btn-master-reset {

      width: 100%; padding: 8px 16px; border-radius: 10px; border: 1px solid rgba(248,113,113,0.55);

      background: linear-gradient(135deg, #7f1d1d 0%, #991b1b 45%, #b91c1c 100%);

      color: #fff; font-size: 13px; font-weight: 900; letter-spacing: 0.2px;

      box-shadow: 0 4px 18px rgba(220,38,38,0.35); cursor: pointer;

      transition: transform 0.15s ease, box-shadow 0.15s ease;

    }

    .btn-master-reset:hover {

      transform: translateY(-1px); box-shadow: 0 6px 24px rgba(220,38,38,0.5);

    }

    .btn-master-reset:active { transform: translateY(0); }



    .event-section {

      border: 1px solid #f1f5f9;

      border-radius: 12px;

      background: #ffffff;

      padding: 20px;

      margin-bottom: 0;

      border-bottom: 1px solid #f1f5f9;

    }

    .event-section.event-section-log {

      border: 1px solid #f1f5f9;

      margin-bottom: 0;

      padding: 20px;

    }

    .event-section-pending h2 { color: #dc2626 !important; }

    .event-section-active h2 { color: #ca8a04 !important; }

    .event-section-log h2 { color: #0284c7 !important; }



    .master-tab-panel.graph-panel {

      padding: 20px;

    }



    .cost-dashboard {

      padding: 5px;

    }



    .section-head { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; }

    .section-head h2 { font-size: 14px; font-weight: 700; color: #111827; }

    .count-badge {

      display: inline-flex; align-items: center; justify-content: center;

      min-width: 20px; height: 20px; border-radius: 10px;

      font-size: 11px; font-weight: 800; padding: 0 6px;

    }

    .count-badge.red   { background: var(--red);  color: #fff; }

    .count-badge.green { background: var(--green); color: #fff; }

    .count-badge.hidden { display: none; }



    .empty-state {

      text-align: center; padding: 12px 16px; color: #64748b; font-size: 12.5px;

      border: 1px dashed #e2e8f0; border-radius: 10px; background: #f8fafc;

    }

    .empty-state .icon { font-size: 20px; margin-bottom: 4px; opacity: 0.5; }



    /* [초슬림 다이어트] 실시간 테이블 카드(Row) — 상하 py-1.5~py-2 수준으로 압축해

       스크롤 없이 한 화면에 진행·대기 세션 5~8건이 한눈에 정렬되도록 최적화 */

    .table-card {

      background: var(--surface); border: 1px solid var(--border);

      border-radius: var(--radius); padding: 8px 12px; margin-bottom: 6px;

      transition: border-color 0.3s, box-shadow 0.3s; animation: slideIn 0.3s ease;

    }

    @keyframes slideIn { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }

    .card-pending { border-color: rgba(245,158,11,0.4); box-shadow: 0 0 20px rgba(245,158,11,0.1); }

    .card-pending.new-alert { animation: alertPulse 0.8s ease 3; }

    @keyframes alertPulse {

      0%, 100% { box-shadow: 0 0 20px rgba(245,158,11,0.1); }

      50%       { box-shadow: 0 0 32px rgba(245,158,11,0.5); border-color: var(--gold); }

    }

    .card-active { border-color: rgba(16,185,129,0.3); }

    .card-active.prize-received { border-color: rgba(251,191,36,0.6); box-shadow: 0 0 24px rgba(251,191,36,0.15); }



    .card-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 5px; flex-wrap: wrap; gap: 6px; }

    .card-title-group { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }

    .card-table-id { font-size: 15px; font-weight: 900; color: var(--text); }

    .game-count-badge {

      display: inline-flex; align-items: center; gap: 4px;

      background: rgba(251,191,36,0.12); border: 1px solid rgba(251,191,36,0.35);

      border-radius: 10px; padding: 2px 8px; font-size: 11px; font-weight: 700; color: var(--gold);

    }

    /* [🔓 잠금해제 초미니 캡슐] 회차 배지 바로 옆에 밀착 배치 — 승인/리셋 등 하단 버튼 조작과 절대 간섭 없음 */

    .btn-unlock-mini {

      flex-shrink: 0; display: inline-flex; align-items: center; gap: 3px;

      width: auto; padding: 3px 11px; border-radius: 999px;

      background: rgba(245,158,11,0.14); border: 1px solid rgba(245,158,11,0.4);

      color: #fbbf24; font-size: 11px; font-weight: 800; line-height: 1.5;

      white-space: nowrap; cursor: pointer; transition: background 0.15s, border-color 0.15s;

    }

    .btn-unlock-mini:hover { background: rgba(245,158,11,0.26); border-color: rgba(245,158,11,0.65); }

    .card-time { font-size: 12px; color: var(--muted); font-variant-numeric: tabular-nums; }



    .card-status { margin-bottom: 6px; }

    .tag-pending {

      display: inline-block; padding: 2px 8px; border-radius: 6px;

      background: rgba(239,68,68,0.12); border: 1px solid rgba(239,68,68,0.3); color: #f87171;

      font-size: 11px; font-weight: 700;

    }

    .tag-approved {

      display: inline-block; padding: 2px 8px; border-radius: 6px;

      background: rgba(16,185,129,0.12); border: 1px solid rgba(16,185,129,0.3); color: #34d399;

      font-size: 11px; font-weight: 700;

    }



    .prize-reveal {

      display: none; background: rgba(0,0,0,0.2); border: 1px solid var(--border);

      border-radius: 8px; padding: 6px var(--panel-pad); margin-bottom: 6px;

    }

    .prize-reveal.visible { display: block; animation: slideIn 0.3s ease; }

    .prize-reveal-label { font-size: 10px; font-weight: 800; color: var(--muted); text-transform: uppercase; margin-bottom: 3px; }

    .prize-reveal-content { display: flex; align-items: center; gap: 10px; }

    .prize-reveal-emoji { font-size: 22px; }

    .prize-reveal-rank { font-size: 10.5px; font-weight: 800; }

    .prize-reveal-name { font-size: 13.5px; font-weight: 900; color: var(--text); margin-top: 1px; }



    /* [초슬림 다이어트] 액션 버튼을 가로 1줄로 배치 — 카드 세로 두께 3분의 1로 압축 */

    .card-actions { display: flex; flex-direction: row; flex-wrap: wrap; gap: 6px; }

    .btn {

      flex: 1 1 0; min-width: 120px; padding: 7px 10px; border-radius: 8px; border: none;

      font-size: 12px; font-weight: 700; cursor: pointer; transition: all 0.2s;

      display: flex; align-items: center; justify-content: center; gap: 5px; box-sizing: border-box;

      white-space: nowrap;

    }

    .btn-approve { background: linear-gradient(135deg, #10b981, #059669); color: #fff; box-shadow: 0 3px 14px rgba(16,185,129,0.3); font-size: 13px; padding: 8px 12px; }

    .btn-approve:hover:not(:disabled) { box-shadow: 0 4px 20px rgba(16,185,129,0.5); }

    .btn-deliver { background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.15); color: var(--muted); }

    .btn-deliver:hover:not(.delivered) { border-color: rgba(16,185,129,0.5); color: #34d399; }

    .btn-deliver.delivered { background: rgba(16,185,129,0.18); border: 1px solid rgba(16,185,129,0.5); color: #34d399; font-weight: 800; }

    .btn-reset { background: rgba(239,68,68,0.1); border: 1px solid rgba(239,68,68,0.3); color: #f87171; }

    .btn-reset:hover { background: rgba(239,68,68,0.18); border-color: rgba(239,68,68,0.55); }

    .btn-dismiss { background: transparent; border: 1px solid rgba(255,255,255,0.1); color: var(--muted); }

    .btn-dismiss:hover { border-color: rgba(255,255,255,0.25); color: var(--text); }



    /* [오늘 장부 로그 마감] 유일한 수동 로그 비우기 버튼 — 컨펌 승인 시에만 동작 */

    .btn-log-close {

      margin-left: 8px; padding: 4px 2px; border-radius: 0;

      border: none;

      background: transparent;

      color: #111827; font-size: 12px; font-weight: 600; cursor: pointer;

      white-space: nowrap; transition: opacity 0.15s, color 0.15s;

    }

    .btn-log-close:hover { background: transparent; border: none; color: #111827; opacity: 0.65; }



    .log-box,
    #log-box,
    #eventLog,
    #logContainer {

      background: transparent; border: none;

      border-radius: 0; padding: 0; min-height: 0; max-height: none; overflow: visible;

      font-size: 13px; line-height: 1.65;
      font-family: ui-monospace, 'SF Mono', 'Consolas', 'Courier New', monospace;
      color: #1e293b;
      font-weight: 500;
      box-shadow: none;
      scroll-behavior: smooth;

    }

    .log-box,
    #log-box {
      scrollbar-width: thin;
      scrollbar-color: transparent transparent;
    }
    .log-box:hover,
    #log-box:hover {
      scrollbar-color: rgba(0, 0, 0, 0.4) transparent;
    }
    .log-box::-webkit-scrollbar,
    #log-box::-webkit-scrollbar {
      width: 7px;
      background: transparent;
    }
    .log-box::-webkit-scrollbar-track,
    #log-box::-webkit-scrollbar-track {
      background: transparent;
    }
    .log-box::-webkit-scrollbar-thumb,
    #log-box::-webkit-scrollbar-thumb {
      background: transparent;
      border-radius: 4px;
    }
    .log-box:hover::-webkit-scrollbar-thumb,
    #log-box:hover::-webkit-scrollbar-thumb {
      background: rgba(0, 0, 0, 0.4);
    }
    .log-box::-webkit-scrollbar-thumb:active,
    #log-box::-webkit-scrollbar-thumb:active,
    .log-box:hover::-webkit-scrollbar-thumb:active,
    #log-box:hover::-webkit-scrollbar-thumb:active {
      background: rgba(0, 0, 0, 0.6);
    }

    .log-entry,
    #eventLog .log-entry,
    #logContainer .log-entry { padding: 4px 0; border-bottom: none !important; color: #1e293b; font-weight: 500; line-height: 1.65; }

    .log-entry:last-child { border-bottom: none !important; }

    .log-entry .ts  { color: #64748b; margin-right: 8px; font-weight: 500; }

    .log-entry .msg,
    #eventLog .log-entry .msg,
    #logContainer .log-entry .msg,
    #log-box .log-entry .msg { color: #1e293b !important; font-weight: 500 !important; }

    .log-entry.info  .msg { color: #0369a1; }

    .log-entry.ok    .msg { color: #15803d; }

    .log-entry.warn  .msg { color: var(--primary-color); }

    .log-entry.prize .msg { color: #a16207; font-weight: 700; }

    .log-entry.reset .msg { color: #b91c1c; }



    /* [구형 2분할 차트 CSS 철거] .chart-period-bar / .chart-period-btn / .chart-box /
       .chart-box-title / .chart-canvas-wrap 는 통합 주식차트로 일원화되면서
       참조하는 마크업이 모두 사라져 제거했다. (.sc-* 규격이 이를 대체한다) */

    /* ═══════════════════════════════════════════════════════════════
       [단일 통합 주식차트 인터페이스]
       분산돼 있던 리뷰 추이·원가 추이 2분할 차트를 하나의 금융 차트로 일원화.
       구성: 기간 스위쳘(5종) → 이력 내비게이터 → 총합 요약 → 단일 캔버스.
       ═══════════════════════════════════════════════════════════════ */
    .stockchart {
      background: linear-gradient(180deg, rgba(10,14,24,0.85), rgba(4,7,14,0.92));
      border: 1px solid rgba(255,255,255,0.09);
      border-radius: 14px; padding: 14px;
    }

    /* ── 기간 스위쳘 5종 ── */
    .sc-period-bar {
      display: flex; gap: 6px; flex-wrap: wrap;
      padding-bottom: 12px; margin-bottom: 12px;
      border-bottom: 1px solid rgba(255,255,255,0.07);
    }
    .sc-period-btn {
      flex: 1 1 auto; min-width: 78px;
      padding: 8px 10px; border-radius: 9px;
      border: 1px solid rgba(255,255,255,0.12);
      background: rgba(255,255,255,0.04);
      color: var(--muted); font-family: inherit;
      font-size: 12px; font-weight: 800; letter-spacing: 0.2px;
      cursor: pointer; transition: all 0.18s; white-space: nowrap;
    }
    .sc-period-btn:hover { border-color: rgba(255,255,255,0.28); color: #cbd5e1; }
    .sc-period-btn.active {
      background: linear-gradient(135deg, rgba(59,130,246,0.32), rgba(14,165,233,0.22));
      border-color: rgba(96,165,250,0.7); color: #bfdbfe;
      box-shadow: 0 2px 12px rgba(59,130,246,0.28);
    }
    .sc-period-btn .sc-pb-sub { display: block; font-size: 9.5px; font-weight: 600; opacity: 0.7; margin-top: 1px; }

    /* ── 과거 이력 내비게이터 (다년차 조회) ── */
    .sc-nav { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 12px; }
    .sc-nav-btn {
      width: 30px; height: 30px; flex-shrink: 0;
      border-radius: 8px; border: 1px solid rgba(255,255,255,0.14);
      background: rgba(255,255,255,0.05); color: #cbd5e1;
      font-size: 13px; font-weight: 900; cursor: pointer; font-family: inherit;
      transition: all 0.15s;
    }
    .sc-nav-btn:hover:not(:disabled) { background: rgba(255,255,255,0.12); border-color: rgba(255,255,255,0.3); }
    .sc-nav-btn:disabled { opacity: 0.28; cursor: not-allowed; }
    .sc-nav-range {
      flex: 1 1 auto; text-align: center; min-width: 150px;
      font-size: 12px; font-weight: 800; color: #e2e8f0; letter-spacing: 0.2px;
    }
    .sc-nav-input {
      background: rgba(255,255,255,0.06); color: #e2e8f0;
      border: 1px solid rgba(255,255,255,0.16); border-radius: 8px;
      padding: 5px 8px; font-size: 11.5px; font-family: inherit; font-weight: 700;
      color-scheme: dark; flex-shrink: 0;
    }
    .sc-nav-today {
      padding: 5px 10px; border-radius: 8px; flex-shrink: 0;
      border: 1px solid rgba(148,163,184,0.35); background: rgba(148,163,184,0.12);
      color: #cbd5e1; font-size: 11px; font-weight: 800; cursor: pointer; font-family: inherit;
    }
    .sc-nav-today:hover { background: rgba(148,163,184,0.22); }

    /* ── 총합 요약 보드 (선택 기간 전체 합계) ── */
    .sc-summary {
      display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 8px;
      margin-bottom: 12px;
    }
    .sc-sum-card {
      background: rgba(255,255,255,0.035);
      border: 1px solid rgba(255,255,255,0.08);
      border-radius: 10px; padding: 9px 11px;
      display: flex; flex-direction: column; gap: 2px; min-width: 0;
    }
    .sc-sum-label { font-size: 10px; font-weight: 700; color: var(--muted); letter-spacing: 0.2px; white-space: nowrap; }
    .sc-sum-value { font-size: 17px; font-weight: 900; color: #e2e8f0; letter-spacing: -0.2px; }
    .sc-sum-card.sc-hero {
      background: linear-gradient(135deg, rgba(3,199,90,0.16), rgba(3,199,90,0.05));
      border-color: rgba(3,199,90,0.4);
    }
    .sc-sum-card.sc-hero .sc-sum-value { font-size: 24px; color: #4ade80; }
    .sc-sum-card.sc-hero .sc-sum-label { color: #86efac; }

    /* ── 단일 캔버스 ── */
    .sc-canvas-wrap { position: relative; height: 300px; }
    .sc-empty {
      display: none; position: absolute; inset: 0;
      align-items: center; justify-content: center; text-align: center;
      color: var(--muted); font-size: 12.5px; font-weight: 700; line-height: 1.7;
      pointer-events: none;
    }
    .sc-empty.on { display: flex; }

    /* ── 계열 표시 토글 (리뷰 건수 / 원가 지출) ── */
    .sc-legend { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 10px; }
    .sc-legend-btn {
      display: inline-flex; align-items: center; gap: 6px;
      padding: 5px 10px; border-radius: 999px; cursor: pointer; font-family: inherit;
      border: 1px solid rgba(255,255,255,0.12); background: rgba(255,255,255,0.04);
      color: var(--muted); font-size: 11px; font-weight: 800;
      transition: all 0.15s;
    }
    .sc-legend-btn .sc-dot { width: 9px; height: 9px; border-radius: 50%; flex-shrink: 0; }
    .sc-legend-btn.off { opacity: 0.4; text-decoration: line-through; }
    .sc-legend-btn:hover { border-color: rgba(255,255,255,0.28); }
    /* 테스트 모드 중임을 차트 위에서도 재고지 — 수치 오독 방지 */
    .sc-test-note {
      display: none; margin-top: 10px; padding: 6px 10px; border-radius: 8px;
      background: rgba(245,158,11,0.12); border: 1px solid rgba(251,191,36,0.35);
      color: #fcd34d; font-size: 10.5px; font-weight: 700; line-height: 1.5;
    }
    .sc-test-note.on { display: block; }



    .cost-dashboard-hd {

      padding: 0 0 14px;

      font-size: 14px; font-weight: 800; color: var(--gold);

    }

    .cost-table {

      width: 100%; border-collapse: collapse; font-size: 13px;

    }

    .cost-table th {

      text-align: left; padding: 12px 16px;

      background: rgba(255,255,255,0.04);

      color: var(--muted); font-size: 11px;

      font-weight: 700; text-transform: uppercase;

      letter-spacing: 0.4px;

      border-bottom: 1px solid var(--border);

    }

    .cost-table td {

      padding: 14px 16px;

      border-bottom: 1px solid rgba(255,255,255,0.05);

      vertical-align: middle;

    }

    .cost-table tbody tr:hover { background: rgba(255,255,255,0.02); }

    .cost-table .prize-name { font-weight: 800; color: var(--text); }

    .cost-table .num { font-variant-numeric: tabular-nums; font-weight: 700; }

    .cost-table .sub { font-size: 11px; color: var(--muted); margin-top: 3px; }

    .cost-table tfoot td {

      background: rgba(251,191,36,0.08);

      border-top: 2px solid rgba(251,191,36,0.35);

      font-weight: 800; color: var(--gold);

      padding: 16px;

    }

    .cost-table tfoot .total-val { font-size: 16px; color: #fbbf24; }



    /* [미니 알림 패널 CSS 제거] 승인 알림은 approval-alert.html 독립창이 전담 */

    /* [중앙 정렬 모달 백드롭] 뒤 대시보드가 은은히 비치는 다크 딤드 배경 —
       flex 상하좌우 완전 중앙 정렬로 모달이 화면 정중앙에 안착한다.
       (딤 0.72→0.65 / 블러 6px→5px — 약 10% 완화로 뒤 화면이 한층 자연스럽게 비침) */
    .master-overlay {

      position: fixed; inset: 0; z-index: 600;

      background: rgba(5, 10, 18, 0.65);

      backdrop-filter: blur(5px) saturate(0.9);

      display: flex; align-items: center; justify-content: center;

      padding: 24px;

    }

    .master-overlay.hidden { display: none; }



    .master-pw-box {

      background: var(--surface);

      border: 1px solid var(--border);

      border-radius: 18px;

      padding: 28px 24px 24px;

      width: 100%; max-width: 340px;

      box-shadow: 0 24px 80px rgba(0,0,0,0.6);

      animation: modalDrop 0.28s cubic-bezier(0.34, 1.3, 0.64, 1);

    }

    .master-pw-title {

      font-size: 16px; font-weight: 900; color: var(--gold);

      margin-bottom: 6px; text-align: center;

    }

    .master-pw-sub {

      font-size: 12px; color: var(--muted); text-align: center;

      margin-bottom: 18px; line-height: 1.5;

    }

    .master-pw-input {

      width: 100%; padding: 12px 14px;

      background: rgba(255,255,255,0.06);

      border: 1px solid rgba(255,255,255,0.15);

      border-radius: 10px; color: var(--text);

      font-size: 18px; font-weight: 700; letter-spacing: 6px;

      text-align: center; font-family: inherit;

      margin-bottom: 10px;

    }

    .master-pw-input:focus { outline: none; border-color: rgba(251,191,36,0.5); }
    .master-pw-input:disabled {
      background: #f3f4f6;
      color: #9ca3af;
      cursor: not-allowed;
      opacity: 0.75;
    }
    .btn-master-unlock:disabled {
      opacity: 0.45;
      cursor: not-allowed;
      pointer-events: none;
    }

    .master-pw-err {

      font-size: 12px; color: #f87171; text-align: center;

      min-height: 18px; margin-bottom: 8px;

    }

    .master-pw-actions { display: flex; gap: 8px; }

    .master-pw-actions .btn { margin-bottom: 0; flex: 1; }

    .pin-modal-header {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 8px;
      margin-bottom: 6px;
    }
    .pin-modal-header .pin-modal-title,
    .pin-modal-header .master-pw-title {
      margin-bottom: 0;
      text-align: left;
      flex: 1;
      min-width: 0;
    }
    .pin-header-actions {
      display: flex;
      align-items: center;
      gap: 8px;
      flex-shrink: 0;
    }
    .stealth-r-badge {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 20px;
      height: 20px;
      border-radius: 50%;
      background-color: #f3f4f6;
      border: 1px solid #e5e7eb;
      color: #9ca3af;
      font-size: 10px;
      font-weight: 700;
      cursor: pointer;
      padding: 0;
      line-height: 1;
      user-select: none;
      transition: all 0.2s ease;
    }
    .stealth-r-badge:hover {
      background-color: #e5e7eb;
      color: #6b7280;
    }
    .stealth-r-badge:active {
      transform: scale(0.92);
    }
    .pin-modal-close {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 22px;
      height: 22px;
      border: none;
      background: transparent;
      color: #9ca3af;
      font-size: 14px;
      font-weight: 700;
      cursor: pointer;
      padding: 0;
      line-height: 1;
    }
    .pin-modal-close:hover { color: #4b5563; }

    .btn-master-unlock {

      background: linear-gradient(135deg, #b45309, #f59e0b);

      color: #1a0900; box-shadow: 0 3px 14px rgba(245,158,11,0.35);

    }

    .btn-master-cancel {

      background: rgba(255,255,255,0.06);

      border: 1px solid rgba(255,255,255,0.12);

      color: var(--muted);

    }



    /* [고급 카드형 모달] 세로 flex 골격 — 헤더는 상단 고정, 본문만 내부 스크롤.
       내용이 짧으면 높이가 내용에 딱 맞게 수축(허술한 빈 공간 제거), 길면 min(860px, 90vh)에서 캡. */
    .master-settings-modal {

      background: linear-gradient(155deg, #0b1625, #0e2038 50%, #091525);

      border: 1px solid rgba(212,168,32,0.45);

      border-radius: 20px;

      width: 100%; max-width: 560px;

      max-height: min(860px, 90vh);

      display: flex; flex-direction: column;

      overflow: hidden;

      box-shadow: 0 24px 60px rgba(0,0,0,0.55), 0 40px 120px rgba(0,0,0,0.75);

      animation: modalDrop 0.28s cubic-bezier(0.34, 1.3, 0.64, 1);

    }

    .master-settings-hdr {

      display: flex; align-items: center; justify-content: space-between;

      padding: 18px 22px;

      border-bottom: 1px solid rgba(212,168,32,0.25);

      background: rgba(0,0,0,0.2);

      flex-shrink: 0;

    }

    .master-settings-title { font-size: 15px; font-weight: 900; color: #f0d060; }

    .master-settings-body { padding: 20px 22px 24px; flex: 1 1 auto; min-height: 0; overflow-y: auto; }

    .master-settings-note {

      font-size: 11px; color: rgba(148,163,184,0.9);

      background: rgba(239,68,68,0.08);

      border: 1px solid rgba(239,68,68,0.22);

      border-radius: 10px; padding: 10px 12px;

      margin-bottom: 16px; line-height: 1.55;

    }



    .master-tabs {

      display: flex; gap: 0;

      border-bottom: 1px solid rgba(255,255,255,0.08);

      margin-bottom: 18px;

    }

    .master-tab {

      flex: 1; padding: 10px 4px;

      background: transparent; border: none;

      border-bottom: 2px solid transparent;

      color: var(--muted); font-size: 10.5px; font-weight: 700;

      cursor: pointer; transition: all 0.2s;

      letter-spacing: 0.05px; white-space: nowrap;

    }

    .master-tab:hover { color: var(--text); background: rgba(255,255,255,0.03); }

    .master-tab.active {

      color: var(--primary-color);

      border-bottom-color: var(--primary-color);

      background: color-mix(in srgb, var(--primary-color) 12%, transparent);

    }



    .evt-form { display: flex; flex-direction: column; gap: 8px; }

    .evt-row { display: flex; flex-direction: column; gap: 4px; }

    .evt-label {

      font-size: 11px; font-weight: 700; color: var(--muted);

      text-transform: uppercase; letter-spacing: 0.5px;

    }

    .evt-input {

      background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.12);

      border-radius: 8px; padding: 9px 12px;

      color: var(--text); font-size: 13px; font-family: inherit; width: 100%;

    }

    .evt-input:focus { outline: none; border-color: rgba(3,199,90,0.5); background: rgba(255,255,255,0.08); }

    textarea.evt-input { resize: vertical; min-height: 72px; line-height: 1.55; }

    .evt-color-row { display: flex; align-items: center; gap: 10px; }

    .evt-color-input {

      width: 46px; height: 34px; border: 1px solid rgba(255,255,255,0.2);

      border-radius: 8px; cursor: pointer; background: transparent; padding: 3px; flex-shrink: 0;

    }

    .evt-color-input::-webkit-color-swatch-wrapper { padding: 0; }

    .evt-color-input::-webkit-color-swatch { border-radius: 5px; border: none; }

    .evt-hint { font-size: 11px; color: var(--muted); }



    .region-style-section { margin-top: 4px; display: flex; flex-direction: column; gap: 10px; }

    .region-style-block {

      border: 1px solid rgba(255,255,255,0.1); border-radius: 10px;

      padding: 12px; background: rgba(255,255,255,0.03);

    }

    .region-style-block-title { font-size: 12px; font-weight: 800; color: var(--gold); margin-bottom: 8px; }

    .region-style-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }

    .region-style-grid .evt-row { gap: 3px; }

    .evt-size-row { display: flex; align-items: center; gap: 8px; }

    .evt-size-row input[type="range"] { flex: 1; min-width: 0; accent-color: #03C75A; }

    .evt-size-row input[type="number"] {

      width: 52px; flex-shrink: 0; background: rgba(255,255,255,0.06);

      border: 1px solid rgba(255,255,255,0.12); border-radius: 6px;

      color: var(--text); font-size: 12px; padding: 4px 6px; text-align: center;

    }

    .evt-font-select { font-size: 12px; }

    select.evt-input,

    .evt-dark-select,

    .evt-font-select,

    .evt-micro-font {

      background-color: #1e2a3a !important;

      color: #ffffff !important;

      border-color: rgba(255,255,255,0.18);

    }

    select.evt-input option,

    .evt-dark-select option,

    .evt-font-select option,

    .evt-micro-font option,

    select.evt-input optgroup,

    #evt-bg-photo-select optgroup {

      background-color: #1e2a3a !important;

      color: #ffffff !important;

    }

    .evt-split-row {

      display: flex; flex-direction: column; gap: 3px; align-items: stretch;

    }

    .evt-split-row > .evt-label { margin-bottom: 0; line-height: 1.2; }

    .evt-split-body {

      display: flex; flex-direction: row; flex-wrap: wrap;

      align-items: flex-start; gap: 6px 8px; width: 100%;

    }

    .evt-split-input {

      flex: 1 1 60%; min-width: 0; max-width: 60%;

      display: flex; align-items: center; box-sizing: border-box;

    }

    .evt-split-input .evt-input,

    .evt-split-input textarea.evt-input {

      width: 100%; min-height: 32px; padding: 5px 10px; font-size: 12px; line-height: 1.4;

    }

    .evt-split-input textarea.evt-input { min-height: 48px; max-height: 88px; resize: vertical; }

    .evt-split-input .evt-hint { font-size: 10px; line-height: 1.35; }

    .evt-split-micro {

      flex: 1 1 40%; min-width: 0; max-width: 40%;

      display: flex; flex-direction: column; gap: 4px;

      background: transparent; border: none; border-radius: 0; padding: 0; box-sizing: border-box;

    }

    .micro-panel-inner.micro-panel-inline {

      display: flex; flex-direction: row; flex-wrap: nowrap;

      align-items: center; gap: 4px; width: 100%;

    }

    .evt-micro-font {

      flex: 1 1 auto; min-width: 0; max-width: 90px;

      font-size: 10px; height: 28px; padding: 3px 3px; box-sizing: border-box;

      text-overflow: ellipsis; overflow: hidden; white-space: nowrap;

    }

    .evt-micro-color {

      width: 26px; height: 28px; padding: 2px; flex-shrink: 0;

      border-radius: 6px;

    }

    .evt-micro-size-wrap {

      display: flex; flex-direction: row; align-items: center; flex-shrink: 0; gap: 0;

    }

    .evt-micro-size {

      width: 38px; height: 28px; flex-shrink: 0;

      background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.12);

      border-right: none; border-radius: 6px 0 0 6px; color: var(--text); font-size: 11px;

      padding: 2px 2px; text-align: center; box-sizing: border-box;

    }

    .evt-micro-size::-webkit-outer-spin-button,

    .evt-micro-size::-webkit-inner-spin-button {

      -webkit-appearance: none; margin: 0;

    }

    .evt-micro-size-tri {

      display: flex; flex-direction: column; flex-shrink: 0;

      width: 16px; height: 28px; box-sizing: border-box;

    }

    .tri-btn {

      flex: 1 1 50%; width: 100%; min-height: 0;

      display: flex; align-items: center; justify-content: center;

      background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.12);

      color: var(--muted); font-size: 7px; line-height: 1; padding: 0;

      cursor: pointer; user-select: none; box-sizing: border-box;

    }

    .tri-btn:first-child { border-radius: 0 4px 0 0; border-bottom: none; }

    .tri-btn:last-child { border-radius: 0 0 4px 0; }

    .tri-btn:hover { background: rgba(255,160,0,0.25); color: #ffae00; }

    .tri-btn:active { background: rgba(255,160,0,0.4); }

    .micro-box-block {

      width: 100%; flex: 1 1 100%;

      margin-top: 2px; padding-top: 4px; border-top: 1px solid rgba(255,255,255,0.07);

      display: flex; flex-direction: column; gap: 4px;

    }

    .micro-box-row {

      display: flex; flex-direction: row; flex-wrap: wrap;

      align-items: center; gap: 4px 6px; width: 100%;

    }

    .micro-compact-label { font-size: 10px; gap: 3px; white-space: nowrap; margin: 0; }

    .micro-compact-label input[type="checkbox"] { width: 12px; height: 12px; margin: 0; }

    .evt-micro-grad-pct {

      flex: 1 1 52px; min-width: 44px; max-width: 80px; height: 6px;

      accent-color: #03C75A; padding: 0; margin: 0;

    }

    .evt-micro-border {

      flex: 0 1 58px; min-width: 52px; max-width: 72px;

      height: 28px; padding: 2px 4px; font-size: 10px;

    }

    .micro-pct-tag { font-size: 10px; color: var(--muted); min-width: 26px; flex-shrink: 0; }

    @media (max-width: 480px) {

      .evt-split-input { flex: 1 1 100%; max-width: 100%; }

      .evt-split-micro { flex: 1 1 100%; max-width: 100%; }

      .micro-panel-inner.micro-panel-inline { justify-content: flex-start; flex-wrap: wrap; }

    }

    .mp-table-badge {

      text-align: center; font-size: 13px; color: #f5a623; margin: 6px 0 4px;

      border-radius: 6px; padding: 4px 8px; display: inline-block;

      width: fit-content !important; max-width: max-content !important;

      align-self: center !important;

    }

    .qr-master-block { margin-top: 4px; }

    .lc-cf {

      width: 94%; box-sizing: border-box; text-align: center;

      padding: 2px 0; margin: 0 auto; line-height: 1.4;

      flex-shrink: 0; background: transparent;

    }

    .lc-tagline, .lc-body, .lc-id, .lc-scan { background: transparent !important; }

    .fx-btn {

      flex-shrink: 0; height: 26px; padding: 0 7px; min-width: 46px;

      background: rgba(255,160,0,0.13); border: 1px solid rgba(255,160,0,0.4);

      border-radius: 5px; color: #ffb347; font-size: 10px; cursor: pointer;

      white-space: nowrap; font-weight: 600; transition: background 0.15s;

    }

    .fx-btn:hover { background: rgba(255,160,0,0.25); border-color: #ffae00; }

    .fx-btn.active { background: rgba(255,160,0,0.3); border-color: #ffae00; color: #fff; }

    .fx-panel {

      display: none; width: 100%; padding: 7px 8px;

      background: rgba(255,255,255,0.035); border: 1px solid rgba(255,255,255,0.10);

      border-radius: 6px; margin-top: 5px; box-sizing: border-box;

    }

    .fx-panel.open { display: block; }

    .fx-row {

      display: flex; flex-direction: row; flex-wrap: wrap;

      align-items: center; gap: 4px 6px; margin-bottom: 5px;

    }

    .fx-row:last-child { margin-bottom: 0; }

    .qr-custom-fields-block { margin-top: 8px; }

    .qr-theme-compact-row {

      display: flex; flex-direction: row; flex-wrap: wrap;

      align-items: center; gap: 5px 8px; margin-bottom: 5px;

    }

    .qr-theme-compact-row .evt-label {

      margin: 0; min-width: auto; text-transform: none; font-size: 10px; flex-shrink: 0;

    }

    #evt-qr-master-radius-num.evt-micro-size { width: 40px; }

    .evt-check-label {

      font-size: 12px; color: var(--text); display: flex; align-items: center; gap: 6px;

      cursor: pointer; user-select: none;

    }

    .region-extra-row { margin-top: 6px; }

    .bg-photo-upload-block {

      border: 1px dashed rgba(255,255,255,0.14); border-radius: 10px;

      padding: 10px; margin-bottom: 8px; background: rgba(255,255,255,0.02);

    }

    .premium-feature {

      position: relative;

      border: 1px dashed rgba(245,158,11,0.28);

      border-radius: 10px;

      padding: 12px;

      background: rgba(15,23,42,0.35);

      opacity: 0.55;

      pointer-events: none;

      transition: opacity 0.2s ease, border-color 0.2s ease;

    }

    .premium-feature.premium-unlocked {

      opacity: 1;

      pointer-events: auto;

      border-color: rgba(16,185,129,0.35);

      background: rgba(255,255,255,0.02);

    }

    .premium-badge {

      display: inline-block;

      font-size: 11px;

      font-weight: 800;

      color: #fbbf24;

      background: rgba(245,158,11,0.12);

      border: 1px solid rgba(245,158,11,0.35);

      border-radius: 999px;

      padding: 5px 12px;

      margin-bottom: 10px;

    }

    .premium-feature.premium-unlocked .premium-badge {

      color: #6ee7b7;

      background: rgba(16,185,129,0.12);

      border-color: rgba(16,185,129,0.35);

    }

    .bg-template-optgroup { font-weight: 700; }

    .evt-tab-split {

      display: flex; flex-wrap: wrap; gap: 22px; align-items: flex-start;

    }

    .evt-tab-fields { flex: 1; min-width: 260px; }

    .evt-preview-center {

      flex: 1; min-width: 220px;

      display: flex; flex-direction: column; align-items: center; justify-content: flex-start;

    }

    .evt-preview-center .qr-cfg-preview-label { text-align: center; width: 100%; }



    .mobile-preview-viewport {

      max-width: 340px; width: 100%; height: 450px;

      border: 10px solid #1f2937;

      border-radius: 32px;

      background: #0f172a;

      overflow: hidden;

      box-shadow: 0 16px 48px rgba(0,0,0,0.5), inset 0 0 0 2px rgba(255,255,255,0.08);

      padding: 10px 8px;

      margin: 0 auto;

    }

    .mobile-preview-screen {

      width: 100%; height: 100%; overflow: hidden;

      background: linear-gradient(160deg, #1a1025 0%, #111827 100%);

      border-radius: 22px; padding: 10px 8px;

      color: #f1f5f9; font-size: 8.5px; line-height: 1.45;

      display: flex; flex-direction: column;

      text-align: center;

      position: relative;

    }

    .pv-bg-layer {

      position: absolute; inset: 0; z-index: 0; pointer-events: none; overflow: hidden;

      border-radius: 22px; display: none;

    }

    .pv-bg-layer.active { display: block; }

    .pv-bg-img {

      width: 100%; height: 100%; object-fit: cover;

      filter: grayscale(100%) blur(8px) brightness(0.35);

      transform: scale(1.08);

    }

    /* [🖨️ A6 즉시 인쇄] 핸드폰 목업 프레임 바로 아래 중앙에 배치되는 럭셔리 대시보드 버튼 */

    .btn-a6-instant-print {

      margin: 14px auto 0; display: block; width: auto;

      padding: 11px 26px; border-radius: 12px; border: 1px solid rgba(16,185,129,0.55);

      background: linear-gradient(135deg, #065f46 0%, #059669 45%, #10b981 100%);

      color: #fff; font-size: 13px; font-weight: 900; letter-spacing: 0.2px; cursor: pointer;

      box-shadow: 0 4px 18px rgba(16,185,129,0.4);

      transition: transform 0.15s ease, box-shadow 0.15s ease;

    }

    .btn-a6-instant-print:hover { transform: translateY(-1px); box-shadow: 0 6px 24px rgba(16,185,129,0.55); }

    .btn-a6-instant-print:active { transform: translateY(0); }



    /* [🖨️ A6 즉시 인쇄] 평소 화면에는 절대 보이지 않는 인쇄 전용 스테이지 */

    .a6-print-stage { display: none; }



    /* ════════════════════════════════════════════════════════

     * [A6 아크릴 꽂이용 즉시 인쇄] — A4 가로(Landscape) 용지 1장을 정확히 50:50 좌우 컬럼으로 수학적

     * 분할하고, 각 컬럼 한가운데에 A6 카드(105×148mm + 1mm 네이버 그린 테두리)를 청아하게 앉힌다.

     * 좌측 컬럼 우측 테두리에 회색 점선을 매립해 정중앙(148.5mm) 절취 가이드 + 약 43.5mm 유격을

     * 자연스럽게 확보하고, 그 외 대시보드 UI는 전부 숨긴다.

     * ════════════════════════════════════════════════════════ */

    @page { size: A4 landscape; margin: 0; }

    @media print {

      body * { visibility: hidden !important; }

      #a6-print-stage, #a6-print-stage * { visibility: visible !important; }



      html, body { margin: 0 !important; padding: 0 !important; background: #fff !important; }



      #a6-print-stage {

        display: flex !important;

        align-items: center;

        position: fixed !important; top: 0 !important; left: 0 !important;

        margin: 0 !important; width: 297mm !important; height: 210mm !important;

        background: #fff !important;

      }

      /* 좌/우 카드 방 — 각각 정확히 전체의 절반(148.5mm)으로 균등 분할 */

      .a6-print-col {

        width: 50% !important; height: 100% !important;

        display: flex !important; justify-content: center; align-items: center;

        box-sizing: border-box !important; margin: 0 !important;

      }

      /* 좌측 방 우측 테두리 = 정중앙(148.5mm) 절취 가이드 점선. 좌우 카드 사이 유격을 약 43.5mm로 확보 */

      .a6-print-col-left {

        border-right: 1px dashed #bbb !important;

      }

      .a6-print-card {

        position: relative;

        flex: 0 0 auto;

        width: 105mm !important; height: 148mm !important;

        margin: 0 !important; padding: 8mm 6mm !important; box-sizing: border-box !important;

        border: 1mm solid #03C75A !important; border-radius: 0 !important;

        box-shadow: none !important;

        -webkit-print-color-adjust: exact !important;

        print-color-adjust: exact !important;

      }

    }



    .mobile-preview-screen > :not(.pv-bg-layer) { position: relative; z-index: 1; }

    .mobile-preview-screen .mp-logo { text-align: center; font-size: 16px; margin-bottom: 2px; }

    .mobile-preview-screen .mp-title { text-align: center; font-size: 10px; font-weight: 800; margin-bottom: 2px; }

    .mobile-preview-screen .mp-store-name {

      text-align: center; font-size: 11px; font-weight: 900;

      color: #fbbf24; margin-bottom: 2px; line-height: 1.25;

    }

    .mobile-preview-screen .mp-card {

      background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.1);

      border-radius: 8px; padding: 8px; margin-bottom: 6px;

    }

    .mobile-preview-screen .mp-hl { color: #fbbf24; font-weight: 800; }

    .mobile-preview-screen .mp-sub { color: #94a3b8; font-size: 7.5px; margin-top: 4px; white-space: pre-wrap; text-align: center; }

    .mobile-preview-screen .mp-tips-title { font-weight: 800; color: #03C75A; margin-bottom: 3px; }

    .mobile-preview-screen .mp-tips-desc { color: #94a3b8; font-size: 7.5px; margin-bottom: 4px; white-space: pre-wrap; text-align: left; line-height: 1.55; }

    .mobile-preview-screen .mp-kw { display: flex; flex-wrap: wrap; gap: 3px; margin: 0; justify-content: flex-start; }

    .mobile-preview-screen .mp-kw-guide-title {

      font-size: 7.5px; font-weight: 800; color: #6ee7b7;

      text-align: left; margin: 4px 0 3px; line-height: 1.45; width: 100%;

    }

    #pv-tips-card { text-align: left; }

    #pv-tips-card .mp-tips-title { text-align: center; }

    #pv-tips-card .mp-sub { text-align: left; }

    #pv-header-zone {

      margin-top: 5px;

      padding: 5px 6px 5px;

      margin-bottom: 6px;

      border-radius: 8px;

    }

    #pv-header-zone,

    #pv-intro-card,

    #pv-tips-card {

      position: relative;

      z-index: 2;

    }

    .mobile-preview-screen .mp-kw span {

      background: rgba(3,199,90,0.15); border: 1px solid rgba(3,199,90,0.35);

      color: #6ee7b7; border-radius: 4px; padding: 1px 4px; font-size: 7px;

    }

    #image-preview { flex: 1; min-height: 0; display: none; flex-direction: column; }

    #image-preview .mp-hero-img {

      flex: 1; width: 100%; min-height: 0;

      object-fit: cover; object-position: center;

      border-radius: 8px; display: block;

    }

    

    /* 4번, 5번의 순수 스타일 엔진 위임을 위해 하드코딩 background-color 제거 */

    #pv-agree-btn {

      margin-top: auto;

      position: relative !important;

      z-index: 9999 !important;

    }

    #pv-table-badge {

      display: inline-block !important; margin: 6px auto 4px;

      position: relative !important;

      z-index: 9999 !important;

      width: fit-content !important;

      max-width: max-content !important;

      align-self: center !important;

    }



    .saas-primary-btn {

      margin: 20px auto;

      display: block;

      width: 85%;

      border-radius: 8px;

      padding: 14px 0;

      background-color: var(--primary-color);

      color: #ffffff;

      font-weight: bold;

      font-size: 16px;

      text-align: center;

      border: none;

      cursor: pointer;

      box-sizing: border-box;

      font-family: inherit;

      letter-spacing: 0.2px;

      transition: opacity 0.15s ease, transform 0.1s ease;

      flex-shrink: 0;

    }

    .saas-primary-btn:hover:not(:disabled) { opacity: 0.92; }

    .saas-primary-btn:active:not(:disabled) { transform: scale(0.98); }

    .saas-primary-btn:disabled { opacity: 0.45; cursor: not-allowed; transform: none !important; }

    

    .img-upload-warn {

      font-size: 13px; color: #e11d48; font-weight: 500; margin-top: 8px; line-height: 1.5; text-align: center;

    }

    .qr-preview-stage {

      width: 100%; display: flex; justify-content: center; align-items: center; text-align: center;

      min-height: 380px; padding: 24px; background: #ffffff; border: 2px dashed #b5b5b5; border-radius: 8px; box-sizing: border-box;

    }

    .qr-preview-viewport--large {

      width: fit-content; height: fit-content; min-width: 0; padding: 10px; overflow: visible;

      border: none; border-radius: 6px; background: #f1f5f9; margin: 0 auto; box-shadow: none; position: relative; flex-shrink: 0; box-sizing: border-box;

    }

    .qr-preview-scaler--large {

      width: 397px; height: 559px; transform: scale(0.529); transform-origin: center center; position: relative; left: auto; top: auto; margin: 0; overflow: visible;

    }

    #qr-text-board, #qr-image-board {

      position: absolute; top: 0; left: 0; width: 397px; height: 559px; box-sizing: border-box; overflow: hidden;

    }

    #qr-text-board { display: flex; flex-direction: column; }

    #qr-image-board { flex-direction: column; align-items: center; justify-content: center; background: #ffffff; }

    .qr-preview-scaler--large.qr-mode-text #qr-text-board { display: flex !important; }

    .qr-preview-scaler--large.qr-mode-text #qr-image-board { display: none !important; }

    .qr-preview-scaler--large.qr-mode-image #qr-text-board { display: none !important; }

    .qr-preview-scaler--large.qr-mode-image #qr-image-board { display: flex !important; }

    #qr-image-board .qr-pure-poster { width: 100%; height: 100%; object-fit: contain; object-position: center; display: block; flex: 1 1 auto; min-height: 0; }

    #qr-image-board .qr-image-empty-guide { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; padding: 24px; color: #64748b; font-size: 13px; line-height: 1.55; text-align: center; pointer-events: none; box-sizing: border-box; }

    #qr-image-board .qr-image-empty-guide.hidden { display: none !important; }

    #qr-image-board .qr-image-empty-icon { font-size: 36px; line-height: 1; opacity: 0.55; }

    

    .qr-preview-scaler--large .lc-top-band, #qr-text-board .lc-top-band { width: 100% !important; box-sizing: border-box; display: flex !important; align-items: center; flex-shrink: 0; padding: 10px 14px; gap: 6px; }

    #qr-text-board .lc-top-band, #qr-text-board .lc-top-band .lc-band-txt, #qr-text-board .lc-top-band .lc-n-icon { color: #ffffff !important; }

    #qr-text-board .lc-n-icon { background: rgba(255,255,255,0.28); color: #ffffff !important; font-weight: 900; border-radius: 3px; width: 22px; height: 22px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; font-size: 12px; }

    .qr-preview-scaler--large .lc-band-txt { flex: 1; width: 100%; text-align: center; color: #ffffff !important; font-weight: 700; font-size: 13px; }

    .qr-preview-scaler--large .lc-inner, #qr-text-board .lc-inner { width: 100% !important; box-sizing: border-box; flex: 1 !important; min-height: 0 !important; height: 100% !important; display: flex !important; flex-direction: column !important; align-items: center !important; justify-content: space-between !important; padding: 12px 16px 14px !important; gap: 6px !important; background: transparent !important; color: #222222 !important; }

    .qr-preview-scaler--large .lc-mid-block, #qr-text-board .lc-mid-block { flex: 0 0 auto; width: 100% !important; }

    .qr-preview-scaler--large .lc-qr-zone, #qr-text-board .lc-qr-zone { flex: 1 1 auto; min-height: 0; width: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; }

    .qr-preview-scaler--large .lc-qr-frame, #qr-text-board .lc-qr-frame { flex-shrink: 0; background: #ffffff; border: 2px solid #03C75A; border-radius: 8px; padding: 4px; box-sizing: border-box; }

    .qr-preview-scaler--large .lc-qr-img, #qr-pv-qr-img { display: block !important; object-fit: contain; flex-shrink: 0; }

    #qr-pv-title, .qr-preview-scaler--large .lc-tagline { font-size: 20px; font-weight: bold; text-align: center; width: 100% !important; box-sizing: border-box; line-height: 1.35; padding-bottom: 8px; border-bottom: 2px solid #03C75A; color: #000000 !important; }

    #qr-pv-body, .qr-preview-scaler--large .lc-body { font-size: 14px; font-weight: 400; text-align: center; width: 100% !important; box-sizing: border-box; line-height: 1.65; white-space: pre-wrap; margin-top: 8px; color: #1f2937 !important; }

    #qr-pv-table-id, .qr-preview-scaler--large .lc-id { font-size: 16px; font-weight: 900; text-align: center; letter-spacing: 1px; flex-shrink: 0; margin-top: 2px; color: #000000 !important; }

    #qr-pv-slogan, .qr-preview-scaler--large .lc-scan { font-size: 13px; font-weight: 600; text-align: center; width: 94% !important; box-sizing: border-box; flex-shrink: 0; padding: 8px 12px; border: 1px solid rgba(3,199,90,0.4); border-radius: 6px; line-height: 1.45; color: #1f2937 !important; }

    .qr-preview-scaler--large .lc-bottom-bar, #qr-text-board .lc-bottom-bar { width: 100% !important; flex-shrink: 0; height: 8px; }

    

    #qr-text-board .lc-mid-block, #qr-text-board .lc-tagline, #qr-text-board .lc-body, #qr-text-board .lc-id, #qr-text-board .lc-scan, #qr-text-board .lc-cf { background: transparent !important; }

    .qr-preview-scaler--large.mode-image-pure { display: flex !important; align-items: center; justify-content: center; background: #ffffff; overflow: hidden; }

    .qr-preview-scaler--large.mode-image-pure .qr-pure-poster { width: 100%; height: 100%; object-fit: contain; object-position: center; display: block; }

    .qr-preview-scaler--large.mode-image-pure .qr-pure-empty { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; color: #94a3b8; font-size: 11px; text-align: center; padding: 12px; }

    #qr-pv-poster-img { width: 100%; height: 100%; object-fit: contain; object-position: center; display: block; }

    .qr-page-panel { display: none; }

    .qr-page-panel.active { display: block; }

    .qr-poster-guide { font-weight: 800; font-size: 12.5px; line-height: 1.65; color: #f0d060; margin-top: 10px; padding: 10px 12px; background: rgba(212,168,32,0.08); border-radius: 8px; border: 1px solid rgba(212,168,32,0.25); }

    .qr-poster-guide-note { font-weight: 600; font-size: 11px; line-height: 1.5; color: #94a3b8; margin-top: 6px; }

    

    .customer-mode-radio-bar { display: flex; gap: 10px; margin-bottom: 16px; width: 100%; flex-wrap: wrap; }

    .customer-mode-radio { flex: 1; min-width: 100px; display: flex; align-items: center; justify-content: center; gap: 6px; padding: 10px 8px; border: 1px solid rgba(255,255,255,0.15); border-radius: 8px; background: rgba(255,255,255,0.04); color: var(--muted); font-size: 11.5px; font-weight: 700; cursor: pointer; transition: all 0.18s; }

    .customer-mode-radio:has(input:checked) { border-color: #f0d060; color: #f0d060; background: rgba(212,168,32,0.1); }

    .customer-mode-radio input { accent-color: #f0d060; cursor: pointer; }

    .customer-mode-bar { display: flex; gap: 8px; margin-bottom: 16px; width: 100%; }

    .preview-layer { width: 100%; display: none; }

    .customer-mode-btn { flex: 1; padding: 10px 6px; border: 1px solid rgba(255,255,255,0.15); border-radius: 8px; background: rgba(255,255,255,0.04); color: var(--muted); font-size: 11.5px; font-weight: 700; cursor: pointer; transition: all 0.18s; }

    .customer-mode-btn.active { border-color: #f0d060; color: #f0d060; background: rgba(212,168,32,0.1); }

    .customer-mode-panel { display: none; }

    .customer-mode-panel.active { display: block; animation: evtPanelFadeIn 0.18s ease; }

    @keyframes evtPanelFadeIn {

      from { opacity: 0; transform: translateY(-4px); }

      to   { opacity: 1; transform: translateY(0); }

    }

    .evt-file-input { background: rgba(255,255,255,0.06); border: 1px dashed rgba(255,255,255,0.2); border-radius: 8px; padding: 12px; color: var(--muted); font-size: 12px; width: 100%; }

    

    .pw-change-form { display: flex; flex-direction: column; gap: 12px; max-width: 360px; }

    .pw-change-msg { font-size: 12px; min-height: 18px; text-align: center; }

    .pw-change-msg.ok  { color: #34d399; }

    .pw-change-msg.err { color: #f87171; }

    .btn-change-pw { background: linear-gradient(135deg, #7c2d12, #ea580c); color: #fff; border: none; border-radius: 10px; padding: 11px 24px; font-size: 13px; font-weight: 800; cursor: pointer; box-shadow: 0 3px 14px rgba(234,88,12,0.35); }

    .btn-change-pw:hover { box-shadow: 0 4px 20px rgba(234,88,12,0.5); }

    .pw-change-note { font-size: 11px; color: var(--muted); line-height: 1.55; background: rgba(255,255,255,0.03); border-radius: 8px; padding: 10px 12px; }



    .layout { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; padding: 0; }

    @media (max-width: 720px) {

      .review-scoreboard { font-size: 12px; padding: 6px 10px; }

      .review-scoreboard .score-val { font-size: 14px; }

      .review-scoreboard .score-sep { margin: 0 4px; }

      .master-tab-btn { font-size: 11px; padding: 7px 4px; }

      .approval-alert-banner { font-size: 16px; padding: 8px 12px; }

      .approval-alert-banner.idle { font-size: 12px; padding: 5px 12px; }

    }



    .prize-cfg-panel { background: transparent; border: none; overflow: visible; }

    .prize-cfg-body { padding: 16px 20px 20px; }

    .prize-cfg-grid { display: flex; flex-direction: column; gap: 8px; margin-bottom: 14px; }

    .pcfg-row { display: grid; grid-template-columns: 70px 1fr 100px 80px 44px; gap: 8px; align-items: center; }

    @media (max-width: 600px) { .pcfg-row { grid-template-columns: 60px 1fr 80px 36px; } .pcfg-emoji-col { display: none; } }

    .pcfg-rank { font-size: 13px; font-weight: 800; text-align: center; background: rgba(255,255,255,0.05); border-radius: 8px; padding: 8px 4px; }

    .pcfg-prob-wrap { position: relative; }

    .pcfg-prob-wrap .pcfg-input { padding-right: 28px; }

    .pcfg-pct { position: absolute; right: 10px; top: 50%; transform: translateY(-50%); font-size: 12px; font-weight: 700; color: var(--muted); pointer-events: none; }

    .pcfg-color-input { width: 44px; height: 36px; border: 1px solid rgba(255,255,255,0.15); border-radius: 8px; cursor: pointer; background: transparent; padding: 3px; }

    .pcfg-color-input::-webkit-color-swatch-wrapper { padding: 0; }

    .pcfg-color-input::-webkit-color-swatch { border-radius: 5px; border: none; }

    .pcfg-prob-total { font-size: 12px; color: var(--muted); text-align: right; margin-bottom: 12px; }

    .pcfg-prob-total.ok   { color: #34d399; }

    .pcfg-prob-total.warn { color: #f87171; }



    .qr-overlay { position: fixed; inset: 0; z-index: 720; background: rgba(28,28,30,0.28); backdrop-filter: blur(16px) saturate(1.2); -webkit-backdrop-filter: blur(16px) saturate(1.2); display: flex; align-items: flex-start; justify-content: center; padding: 24px 16px 48px; overflow-y: auto; }

    .qr-overlay.hidden { display: none; }

    .qr-modal { background: rgba(255,255,255,0.86); backdrop-filter: blur(24px) saturate(1.4); -webkit-backdrop-filter: blur(24px) saturate(1.4); border: 1px solid rgba(255,255,255,0.72); border-radius: 20px; width: 100%; max-width: 1020px; box-shadow: 0 8px 30px rgba(0,0,0,0.06), 0 24px 80px rgba(0,0,0,0.10); overflow: hidden; animation: modalDrop 0.28s cubic-bezier(0.34, 1.3, 0.64, 1); }

    @keyframes modalDrop { from { opacity: 0; transform: translateY(-16px) scale(0.97); } to   { opacity: 1; transform: none; } }

    .qr-hdr { background: transparent; border-bottom: 1px solid rgba(0,0,0,0.05); padding: 26px 28px 20px; display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }

    .qr-hdr-title { font-size: 20px; font-weight: 700; color: #1d1d1f; letter-spacing: -0.3px; margin-bottom: 0; line-height: 1.3; }

    /* [QR 인코딩 베이스 주소 입력] 모달 최상단 — 관리자가 직접 대상 서버 주소를 입력/수정 */

    .qr-baseurl-row { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-top: 16px; }

    .qr-baseurl-label { font-size: 12px; font-weight: 600; color: #86868b; white-space: nowrap; letter-spacing: 0; }

    .qr-baseurl-input {

      flex: 1 1 260px; min-width: 220px; background: #f5f5f7; border: 1px solid #e5e7eb;

      border-radius: 12px; padding: 10px 14px; color: #1d1d1f; font-size: 13px; font-family: 'SF Mono', 'Consolas', monospace;

      transition: border-color 0.18s, box-shadow 0.18s, background 0.18s;

    }

    .qr-baseurl-input:focus { outline: none; border-color: #3b82f6; background: #fff; box-shadow: 0 0 0 3px rgba(59,130,246,0.28); }

    .qr-hdr-close { width: 32px; height: 32px; flex-shrink: 0; background: #f3f4f6; border: none; border-radius: 50%; color: #6b7280; font-size: 14px; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: all 0.2s; }

    .qr-hdr-close:hover { background: #fee2e2; color: #dc2626; }

    .qr-print-btn { display: inline-flex; align-items: center; gap: 7px; padding: 11px 22px; border: none; border-radius: 12px; font-size: 13px; font-weight: 700; cursor: pointer; transition: all 0.2s; letter-spacing: 0; white-space: nowrap; }

    .qr-print-btn.btn-gen { background: #007aff; color: #fff; box-shadow: 0 4px 14px rgba(0,122,255,0.28); }

    .qr-print-btn.btn-gen:hover { background: #0066d6; transform: translateY(-1px); box-shadow: 0 6px 18px rgba(0,122,255,0.36); }

    .qr-print-btn:active { transform: scale(0.97) !important; }

    .qr-tip { padding: 0 28px 4px; background: transparent; border-bottom: none; font-size: 12px; color: #86868b; line-height: 1.6; }

    .qr-tip strong { color: #1d1d1f; font-weight: 600; }



    /* [인쇄/다운로드 센터] 상위 탭 — 애플 세그먼트 컨트롤 */

    .qr-top-tabs { margin: 18px 28px 0; padding: 4px; display: flex; gap: 4px; flex-wrap: nowrap; background: #f3f4f6; border-radius: 12px; }

    .qr-top-tab {

      flex: 1; min-width: 0; padding: 10px 14px; border: none;

      border-radius: 10px; background: transparent;

      color: #6b7280; font-size: 13px; font-weight: 700; cursor: pointer; transition: all 0.18s;

    }

    .qr-top-tab:hover { color: #1d1d1f; background: rgba(255,255,255,0.55); }

    .qr-top-tab.active { background: #fff; color: #1d1d1f; box-shadow: 0 1px 3px rgba(0,0,0,0.08); }

    .qr-sub-tabs { padding: 14px 28px 0; display: flex; gap: 8px; flex-wrap: wrap; align-items: center; background: transparent; border-bottom: none; }

    .qr-sub-tab {

      display: inline-flex; align-items: center; gap: 6px; padding: 7px 14px; border-radius: 999px;

      border: 1px solid #e5e7eb; background: #fff; color: #6b7280;

      font-size: 12px; font-weight: 700; cursor: pointer; transition: all 0.18s;

    }

    .qr-sub-tab:hover { color: #1d1d1f; border-color: #d1d5db; }

    .qr-sub-tab.active[data-size-mode="sticker"] { background: #34c759; border-color: #34c759; color: #fff; box-shadow: 0 4px 12px rgba(52,199,89,0.28); }



    /* [탭 패널 전환] 매장 대표 QR ↔ 테이블별 QR — 비활성 탭은 완전히 숨김(display:none) 처리해 서로의 전유물 UI가 섞이지 않게 함 */

    .qr-panel { display: none; }

    .qr-panel.active { display: block; animation: evtPanelFadeIn 0.18s ease; }



    /* [스티커 출력] 사이즈 선택 서브 옵션 바 */

    .qr-sticker-opts { display: none; align-items: center; gap: 10px; flex-wrap: wrap; padding: 10px 28px 4px; background: transparent; border-bottom: none; }

    .qr-sticker-opts.active { display: flex; }

    .qr-sticker-opts .evt-label { margin: 0; font-size: 12px; color: #86868b; font-weight: 600; text-transform: none; }

    .qr-sticker-size-select {

      background-color: #f5f5f7; border: 1px solid #e5e7eb; border-radius: 10px;

      padding: 7px 14px; color: #1d1d1f; font-size: 12.5px; font-weight: 600; font-family: inherit; cursor: pointer;

      transition: border-color 0.18s, box-shadow 0.18s, background 0.18s;

    }

    .qr-sticker-size-select:focus { outline: none; border-color: #3b82f6; background: #fff; box-shadow: 0 0 0 3px rgba(59,130,246,0.28); }

    .qr-sticker-size-select option { background-color: #fff; color: #1d1d1f; }

    .qr-sticker-size-select option:hover,

    .qr-sticker-size-select option:checked,

    .qr-sticker-size-select option:focus { background-color: #007aff; color: #fff; }



    /* [스티커 프레임] 정사각형 · 3mm 짙은초록 실선 · 1/20 라운드 (CSS 변수로 실시간 계산) */

    .qr-sticker-frame {

      --sticker-size: 8cm;

      --sticker-border-w: 3mm;

      --sticker-radius: 0.4cm;

      width: var(--sticker-size); height: var(--sticker-size);

      border: var(--sticker-border-w) solid #004D20;

      border-radius: var(--sticker-radius);

      background: #ffffff; box-sizing: border-box;

      display: flex; align-items: center; justify-content: center; overflow: hidden;

      box-shadow: 0 8px 24px rgba(0,0,0,0.08);

    }

    .qr-sticker-frame.hidden { display: none; }

    .qr-sticker-frame img { width: 80%; height: 80%; object-fit: contain; display: block; }



    /* [매장 대표 QR] 초기: 테두리 없는 순수 QR 박스 / 스티커: 정사각 짙은초록 테두리 프레임 */

    .qr-store-wrap { display: flex; flex-direction: column; align-items: center; gap: 14px; padding: 20px 0 10px; }

    .qr-store-plain-box {

      width: 260px; height: 260px; background: #ffffff; border-radius: 16px;

      border: 1px solid #f3f4f6; display: flex; align-items: center; justify-content: center;

      overflow: hidden; box-shadow: 0 8px 24px rgba(0,0,0,0.06);

    }

    .qr-store-plain-box.hidden { display: none; }

    .qr-store-plain-box img { width: 100%; height: 100%; object-fit: contain; display: block; }

    .qr-store-url { font-size: 12px; color: #86868b; font-family: 'SF Mono', 'Consolas', monospace; word-break: break-all; text-align: center; }

    .qr-dl-lg { width: auto; min-width: 240px; padding: 13px 26px; font-size: 13.5px; border-radius: 12px; background: #007aff; border-color: #007aff; color: #fff; box-shadow: 0 4px 14px rgba(0,122,255,0.24); }

    .qr-dl-lg:hover { background: #0066d6; border-color: #0066d6; color: #fff; }



    /* [테이블별 QR] 입력 + 순수 QR 카드 격자 */

    .qr-table-input-row { display: flex; gap: 10px; flex-wrap: wrap; align-items: flex-start; margin-bottom: 14px; }

    .qr-table-input {

      flex: 1 1 260px; min-width: 220px; background: #f5f5f7; border: 1px solid #e5e7eb;

      border-radius: 12px; padding: 10px 14px; color: #1d1d1f; font-size: 13px; font-family: inherit;

      resize: vertical; min-height: 44px;

      transition: border-color 0.18s, box-shadow 0.18s, background 0.18s;

    }

    .qr-table-input:focus { outline: none; border-color: #3b82f6; background: #fff; box-shadow: 0 0 0 3px rgba(59,130,246,0.28); }

    .qr-select-all-row { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 18px; }

    .qr-select-all-row.hidden { display: none; }

    .qr-select-all-row label {

      display: inline-flex; align-items: center; gap: 7px; font-size: 12.5px; font-weight: 600;

      color: #1d1d1f; cursor: pointer; user-select: none;

    }

    .qr-select-all-row input[type="checkbox"] { width: 16px; height: 16px; accent-color: #007aff; cursor: pointer; }

    .qr-dl-sm { width: auto; padding: 7px 14px; font-size: 11px; border-radius: 10px; }

    /* [일괄 QR 다운로드] 애플 블루 솔리드 — 전체 선택 문구 옆 액션 버튼 */

    .qr-dl-premium {

      width: auto; padding: 9px 18px; font-size: 12px; font-weight: 700; border-radius: 12px;

      background: #007aff; color: #fff; border: none; letter-spacing: 0;

      box-shadow: 0 4px 14px rgba(0,122,255,0.24);

    }

    .qr-dl-premium:hover { background: #0066d6; transform: translateY(-1px); box-shadow: 0 6px 18px rgba(0,122,255,0.32); }

    #qr-table-edit-view.hidden { display: none; }

    .qr-table-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 18px; }

    .qr-tf-card {

      position: relative; display: flex; flex-direction: column; align-items: center; gap: 9px;

      background: #fff; border: 1px solid #f3f4f6;

      border-radius: 16px; padding: 12px; transition: border-color 0.18s, box-shadow 0.18s;

      box-shadow: 0 1px 3px rgba(0,0,0,0.04);

    }

    .qr-tf-checkbox-wrap {

      position: absolute; top: 8px; right: 8px; z-index: 40;

      background: #f3f4f6; border-radius: 8px; padding: 3px; line-height: 0;

    }

    .qr-tf-checkbox { width: 17px; height: 17px; accent-color: #007aff; cursor: pointer; display: block; }

    .qr-tf-card.tf-selected { border-color: #93c5fd; box-shadow: 0 0 0 3px rgba(59,130,246,0.22); }

    .qr-tf-label { font-size: 12px; font-weight: 700; color: #1d1d1f; text-align: center; }



    /* [테이블 카드 기본] 테두리 없는 순수 QR 알맹이만 정사각 박스에 심플하게 — 격자 카드 레이아웃 붕괴 방지 */

    .qr-tf-plain-box {

      width: 100%; aspect-ratio: 1 / 1; background: #ffffff; border-radius: 12px; box-sizing: border-box;

      border: none; display: flex; align-items: center; justify-content: center;

      overflow: hidden; box-shadow: 0 4px 14px rgba(0,0,0,0.06);

    }

    .qr-tf-plain-box img { width: 82%; height: 82%; object-fit: contain; display: block; }

    .qr-cfg-panel { border-bottom: 1px solid rgba(0,0,0,0.05); background: transparent; }

    .qr-cfg-toggle { width: 100%; padding: 12px 28px; background: transparent; border: none; color: #86868b; font-size: 12.5px; font-weight: 600; cursor: pointer; text-align: left; display: flex; align-items: center; gap: 8px; transition: background 0.2s; letter-spacing: 0; }

    .qr-cfg-toggle:hover { background: #f5f5f7; }

    .qr-cfg-toggle .arrow { transition: transform 0.2s; margin-left: auto; }

    .qr-cfg-toggle.open .arrow { transform: rotate(180deg); }

    .qr-cfg-body { padding: 16px 28px 20px; display: none; gap: 20px; }

    .qr-cfg-body.open { display: flex; flex-wrap: wrap; }

    .qr-cfg-form { flex: 1; min-width: 220px; display: flex; flex-direction: column; gap: 10px; }

    .qr-cfg-row { display: flex; flex-direction: column; gap: 4px; }

    .qr-cfg-label { font-size: 11px; font-weight: 700; color: var(--muted); text-transform: uppercase; letter-spacing: 0.6px; }

    .qr-cfg-input { background: #f5f5f7; border: 1px solid #e5e7eb; border-radius: 12px; padding: 8px 12px; color: #1d1d1f; font-size: 12px; font-family: inherit; width: 100%; transition: border-color 0.18s, box-shadow 0.18s, background 0.18s; }

    .qr-cfg-input:focus { outline: none; border-color: #3b82f6; background: #fff; box-shadow: 0 0 0 3px rgba(59,130,246,0.28); }

    textarea.qr-cfg-input { resize: vertical; min-height: 64px; line-height: 1.5; }

    .qr-cfg-color-row { display: flex; align-items: center; gap: 10px; }

    .qr-cfg-color-input { width: 46px; height: 34px; border: 1px solid rgba(255,255,255,0.2); border-radius: 8px; cursor: pointer; background: transparent; padding: 3px; flex-shrink: 0; }

    .qr-cfg-color-input::-webkit-color-swatch-wrapper { padding: 0; }

    .qr-cfg-color-input::-webkit-color-swatch { border-radius: 5px; border: none; }

    .qr-cfg-color-hint { font-size: 11px; color: var(--muted); }

    .qr-cfg-preview-col { flex-shrink: 0; }

    .qr-cfg-preview-label { font-size: 11px; font-weight: 700; color: var(--muted); text-transform: uppercase; letter-spacing: 0.6px; margin-bottom: 8px; }

    .qr-preview-viewport { width: 128px; height: 180px; overflow: hidden; border: 1px solid #e5e7eb; border-radius: 12px; background: #fff; }

    .qr-preview-scaler { transform-origin: top left; transform: scale(0.32); }

    .qr-body { padding: 20px 28px 32px; max-height: 52vh; overflow-y: auto; }

    .qr-body::-webkit-scrollbar { width: 5px; }

    .qr-body::-webkit-scrollbar-thumb { background: rgba(0,0,0,0.12); border-radius: 4px; }

    .qr-loading { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 64px 20px; gap: 16px; color: #86868b; font-size: 14px; }

    .qr-loading.hidden { display: none; }

    .qr-spin { width: 46px; height: 46px; border: 3px solid rgba(0,122,255,0.14); border-top-color: #007aff; border-radius: 50%; animation: spin 0.75s linear infinite; }

    .qr-group { margin-bottom: 32px; }

    .qr-group-hd { display: flex; align-items: center; gap: 10px; padding-bottom: 10px; margin-bottom: 16px; border-bottom: 1px solid rgba(0,0,0,0.06); }

    .qr-group-name { font-size: 13px; font-weight: 700; color: #1d1d1f; }

    .qr-group-badge { background: #f3f4f6; border: none; color: #6b7280; border-radius: 999px; padding: 2px 10px; font-size: 11px; font-weight: 600; }

    .qr-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(136px, 1fr)); gap: 10px; }

    .qr-tc { background: #fff; border: 1px solid #f3f4f6; border-radius: 16px; padding: 12px 10px 10px; display: flex; flex-direction: column; align-items: center; gap: 8px; transition: all 0.2s; box-shadow: 0 1px 3px rgba(0,0,0,0.04); }

    .qr-tc:hover { background: #fff; border-color: #e5e7eb; transform: translateY(-2px); box-shadow: 0 8px 24px rgba(0,0,0,0.08); }

    .qr-qp { width: 94px; height: 94px; background: #fff; border-radius: 10px; overflow: hidden; display: flex; align-items: center; justify-content: center; border: 1px solid #e5e7eb; flex-shrink: 0; }

    .qr-qp img { width: 100%; height: 100%; object-fit: contain; display: block; }

    .qr-tc-name { font-size: 11px; font-weight: 700; color: #1d1d1f; text-align: center; line-height: 1.35; min-height: 28px; display: flex; align-items: center; justify-content: center; }

    .qr-dl { width: 100%; background: #f5f5f7; border: 1px solid #e5e7eb; color: #1d1d1f; border-radius: 10px; padding: 6px 8px; font-size: 11px; font-weight: 700; cursor: pointer; transition: all 0.18s; display: flex; align-items: center; justify-content: center; gap: 4px; }

    .qr-dl:hover { background: #007aff; border-color: #007aff; color: #fff; }

    .qr-dl:active { transform: scale(0.97); }


    /* ═══ [동적 확장형 사운드 시스템] 마스터 설정 — 사운드 탭 ═══ */
    .sound-cfg-note {
      font-size: 11px; color: rgba(148,163,184,0.95);
      background: rgba(3,199,90,0.07); border: 1px solid rgba(3,199,90,0.25);
      border-radius: 10px; padding: 10px 12px; margin-bottom: 14px; line-height: 1.65;
    }
    .sound-cfg-note code { color: #34d399; background: rgba(0,0,0,0.3); padding: 1px 6px; border-radius: 5px; font-size: 10.5px; }
    .sound-cfg-grid { display: flex; flex-direction: column; gap: 8px; margin-bottom: 14px; }
    .sound-cfg-row {
      display: grid; grid-template-columns: 158px 1fr 40px; gap: 8px; align-items: center;
      background: rgba(255,255,255,0.03); border: 1px solid var(--border);
      border-radius: 10px; padding: 8px 10px;
    }
    .sound-cfg-label { font-size: 12px; font-weight: 800; color: var(--text); line-height: 1.35; }
    .sound-cfg-label small { display: block; font-size: 9.5px; font-weight: 600; color: var(--muted); margin-top: 1px; }
    .sound-cfg-select {
      width: 100%; padding: 8px 10px;
      background: #16233a; border: 1px solid rgba(255,255,255,0.15);
      border-radius: 8px; color: var(--text); font-size: 12px; font-weight: 700;
    }
    .sound-cfg-select:focus { outline: none; border-color: rgba(251,191,36,0.5); }
    .btn-sound-preview {
      width: 40px; height: 34px; border-radius: 8px;
      border: 1px solid rgba(251,191,36,0.4); background: rgba(251,191,36,0.1);
      color: var(--gold); font-size: 13px; cursor: pointer; transition: background 0.15s;
    }
    .btn-sound-preview:hover { background: rgba(251,191,36,0.22); }
    .sound-cfg-msg { font-size: 12px; min-height: 18px; text-align: center; margin-top: 8px; }
    .sound-cfg-msg.ok  { color: #34d399; }
    .sound-cfg-msg.err { color: #f87171; }


    /* ═══ [접이식(Accordion) 이벤트 섹션] 헤더 탭으로 접기/펴기 — 모바일 한 화면 가독성 ═══ */
    .event-section > .section-head { cursor: pointer; user-select: none; -webkit-tap-highlight-color: transparent; }
    .event-section > .section-head::after { content: none !important; }
    .section-toggle {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-width: 32px;
      min-height: 32px;
      margin-left: auto;
      padding: 0;
      border: none;
      background: transparent;
      color: #333336;
      font-size: 16px;
      font-weight: 700;
      line-height: 1;
      cursor: pointer;
      flex-shrink: 0;
      font-family: inherit;
      -webkit-tap-highlight-color: transparent;
    }
    .section-toggle:hover { color: #111113; }
    .section-toggle-icon {
      display: inline-block;
      transform: rotate(0deg);
      transition: transform 0.2s ease;
    }
    .event-section.collapsed > .section-head .section-toggle-icon { transform: rotate(180deg); }
    .event-section.collapsed > :not(.section-head) { display: none !important; }
    .event-section.collapsed { padding-bottom: 4px; }


    /* ═══════════════════════════════════════════════════════════════
       [모바일/패드 초슬림 컴팩트 UI] 반응형 리모델링
       아이폰 Mini/Standard/Pro·갤럭시 전 기종 100% 핏 — 여백·폰트·버튼 대폭 다이어트
       ═══════════════════════════════════════════════════════════════ */
    /* ═══════════════════════════════════════════════════════════════
       [관리자 테스트 모드 토글 — is_test 샌드박스]
       ON이면 이후 발생하는 참여·당첨·쿠폰이 is_test로 각인되어 매출/리뷰/CAC
       통계 집계에서 전부 제외된다. 오조작 시 손실이 크므로 시각적으로 강하게 구분한다.
       ═══════════════════════════════════════════════════════════════ */
    .test-mode-toggle {
      display: inline-flex; align-items: center; gap: 6px;
      padding: 5px 10px; border-radius: 999px; cursor: pointer;
      border: 1px solid rgba(148,163,184,0.45);
      background: rgba(30,41,59,0.85); color: #cbd5e1;
      font-family: inherit; font-size: 11.5px; font-weight: 800;
      letter-spacing: 0.2px; white-space: nowrap; flex-shrink: 0;
      transition: background 0.18s ease, border-color 0.18s ease, color 0.18s ease, box-shadow 0.18s ease;
    }
    .test-mode-toggle:hover { border-color: rgba(148,163,184,0.8); }
    .test-mode-toggle:active { transform: scale(0.97); }
    .tmt-switch {
      position: relative; width: 30px; height: 16px; border-radius: 999px;
      background: rgba(100,116,139,0.55); flex-shrink: 0;
      transition: background 0.18s ease;
    }
    .tmt-knob {
      position: absolute; top: 2px; left: 2px; width: 12px; height: 12px;
      border-radius: 50%; background: #f8fafc;
      transition: transform 0.18s ease;
    }
    .tmt-state { font-size: 10.5px; font-weight: 900; min-width: 24px; text-align: left; }
    /* ON 상태 — 앰버 경보색으로 전환 + 은은한 맥동으로 켜져 있음을 각인 */
    .test-mode-toggle.on {
      background: linear-gradient(135deg, #b45309, #f59e0b);
      border-color: #fbbf24; color: #1c1206;
      box-shadow: 0 0 0 1px rgba(251,191,36,0.35), 0 2px 14px rgba(245,158,11,0.5);
      animation: tmtPulse 2.2s ease-in-out infinite;
    }
    .test-mode-toggle.on .tmt-switch { background: rgba(28,18,6,0.55); }
    .test-mode-toggle.on .tmt-knob { transform: translateX(14px); }
    @keyframes tmtPulse {
      0%, 100% { box-shadow: 0 0 0 1px rgba(251,191,36,0.35), 0 2px 14px rgba(245,158,11,0.5); }
      50%      { box-shadow: 0 0 0 1px rgba(251,191,36,0.6),  0 2px 20px rgba(245,158,11,0.85); }
    }
    /* 통신 중 중복 클릭 차단 */
    .test-mode-toggle.busy { opacity: 0.55; pointer-events: none; }

    /* [전면 경고 배너] 토글만으로는 놓칠 수 있어, ON일 때 상단 전폭 띠로 재차 고지 */
    #test-mode-banner {
      display: none;
      background: repeating-linear-gradient(45deg, #FFEBEE, #FFEBEE 10px, #FFCDD2 10px, #FFCDD2 20px);
      border-bottom: 1px solid #EF9A9A;
      color: #D32F2F; font-size: 12px; font-weight: 700; letter-spacing: 0.2px;
      text-align: center; padding: 6px 10px; line-height: 1.45;
      position: sticky; top: 44px; z-index: 99;
    }
    #test-mode-banner.on { display: block; }

    /* ═══════════════════════════════════════════════════════════════
       [3단계 · 비상 마스터 오버라이드 토글]
       스케줄 설정과 무관하게 손님 참여를 즉시 차단하는 최상위 스위치.
       재료 소진·주방 과부하 같은 급박한 순간에 한 손으로 눌러야 하므로
       테스트 토글보다 더 크고 붉게, 켜지면 강한 경보색으로 전환한다.
       ═══════════════════════════════════════════════════════════════ */
    .master-off-toggle {
      display: inline-flex; align-items: center; gap: 6px;
      padding: 5px 10px; border-radius: 999px; cursor: pointer;
      border: 1px solid rgba(248,113,113,0.5);
      background: rgba(30,41,59,0.85); color: #fca5a5;
      font-family: inherit; font-size: 11.5px; font-weight: 800;
      letter-spacing: 0.2px; white-space: nowrap; flex-shrink: 0;
      transition: background 0.18s ease, border-color 0.18s ease, color 0.18s ease, box-shadow 0.18s ease;
    }
    .master-off-toggle:hover { border-color: rgba(248,113,113,0.9); }
    .master-off-toggle:active { transform: scale(0.97); }
    .mot-switch {
      position: relative; width: 30px; height: 16px; border-radius: 999px;
      background: rgba(100,116,139,0.55); flex-shrink: 0;
      transition: background 0.18s ease;
    }
    .mot-knob {
      position: absolute; top: 2px; left: 2px; width: 12px; height: 12px;
      border-radius: 50%; background: #f8fafc;
      transition: transform 0.18s ease;
    }
    .mot-state { font-size: 10.5px; font-weight: 900; min-width: 30px; text-align: left; }
    .master-off-toggle.on {
      background: linear-gradient(135deg, #991b1b, #ef4444);
      border-color: #fecaca; color: #fff5f5;
      box-shadow: 0 0 0 1px rgba(248,113,113,0.4), 0 2px 14px rgba(239,68,68,0.55);
      animation: motPulse 1.6s ease-in-out infinite;
    }
    .master-off-toggle.on .mot-switch { background: rgba(69,10,10,0.6); }
    .master-off-toggle.on .mot-knob { transform: translateX(14px); }
    @keyframes motPulse {
      0%, 100% { box-shadow: 0 0 0 1px rgba(248,113,113,0.4), 0 2px 14px rgba(239,68,68,0.55); }
      50%      { box-shadow: 0 0 0 1px rgba(254,202,202,0.75), 0 2px 22px rgba(239,68,68,0.95); }
    }
    .master-off-toggle.busy { opacity: 0.55; pointer-events: none; }

    /* 차단 사유 선택 팝오버 — '비상'과 '재료소진'은 손님 안내 문구가 달라 구분 입력받는다 */
    .mot-pop-overlay {
      display: none; position: fixed; inset: 0; z-index: 12000;
      background: rgba(2,6,14,0.62); backdrop-filter: blur(2px);
      align-items: center; justify-content: center; padding: 18px;
    }
    .mot-pop-overlay.on { display: flex; }
    .mot-pop {
      width: 100%; max-width: 340px; border-radius: 16px; overflow: hidden;
      background: #0f172a; border: 1px solid rgba(248,113,113,0.45);
      box-shadow: 0 22px 60px rgba(0,0,0,0.65);
    }
    .mot-pop-hdr {
      padding: 13px 16px; font-size: 13.5px; font-weight: 900; color: #fecaca;
      background: linear-gradient(135deg, rgba(153,27,27,0.55), rgba(127,29,29,0.25));
      border-bottom: 1px solid rgba(248,113,113,0.3);
    }
    .mot-pop-body { padding: 14px 16px 16px; display: flex; flex-direction: column; gap: 9px; }
    .mot-pop-btn {
      display: flex; flex-direction: column; gap: 3px; text-align: left;
      padding: 11px 13px; border-radius: 11px; cursor: pointer;
      border: 1px solid rgba(248,113,113,0.35); background: rgba(30,41,59,0.9);
      color: #fee2e2; font-family: inherit; transition: all 0.15s ease;
    }
    .mot-pop-btn:hover { border-color: #fca5a5; background: rgba(69,10,10,0.6); transform: translateY(-1px); }
    .mot-pop-btn strong { font-size: 13px; font-weight: 900; }
    .mot-pop-btn span { font-size: 10.5px; color: #cbd5e1; line-height: 1.4; }
    .mot-pop-cancel {
      margin-top: 2px; padding: 9px; border-radius: 10px; cursor: pointer;
      border: 1px solid rgba(148,163,184,0.3); background: transparent;
      color: #94a3b8; font-family: inherit; font-size: 12px; font-weight: 800;
    }
    .mot-pop-cancel:hover { color: #e2e8f0; border-color: rgba(148,163,184,0.6); }

    /* [게이트 상태 배너] 마스터 OFF·휴무일·일일 상한·스케줄 중 무엇 때문에 손님이
       못 들어오는지를 관리자가 즉시 알 수 있어야 문의 응대가 가능하다. */
    #event-gate-banner {
      display: none;
      background: repeating-linear-gradient(45deg, #7f1d1d, #7f1d1d 12px, #991b1b 12px, #991b1b 24px);
      border-bottom: 2px solid #fca5a5;
      color: #fee2e2; font-size: 12px; font-weight: 800; letter-spacing: 0.3px;
      text-align: center; padding: 6px 10px; line-height: 1.45;
      position: sticky; top: 44px; z-index: 98;
    }
    #event-gate-banner.on { display: block; }
    #event-gate-banner .egb-code {
      display: inline-block; margin-right: 6px; padding: 1px 7px; border-radius: 999px;
      background: rgba(0,0,0,0.35); font-size: 10.5px; font-weight: 900; color: #fecaca;
    }

    /* ═══════════════════════════════════════════════════════════════
       [3단계 · 운영 스케줄 패널] 프리셋 3종 · 24×7 타임 그리드 ·
       지정 차단일 · 일일 최대 참여 제한
       ═══════════════════════════════════════════════════════════════ */
    .sched-block { margin-bottom: 16px; }
    .sched-block:last-child { margin-bottom: 0; }
    .sched-head {
      display: flex; align-items: center; justify-content: space-between;
      gap: 10px; flex-wrap: wrap; margin-bottom: 9px;
    }
    .sched-head h3 {
      margin: 0; font-size: 12.5px; font-weight: 900; color: #e2e8f0;
      display: flex; align-items: center; gap: 6px;
    }
    .sched-desc { font-size: 10.5px; color: #94a3b8; line-height: 1.5; margin: 0 0 9px; }

    /* 스케줄 사용 여부 마스터 스위치 */
    .sched-enable-row {
      display: flex; align-items: center; justify-content: space-between; gap: 10px;
      padding: 10px 12px; border-radius: 11px; margin-bottom: 14px;
      background: rgba(15,23,42,0.75); border: 1px solid rgba(148,163,184,0.22);
    }
    .sched-enable-row .ser-txt { font-size: 12px; font-weight: 800; color: #e2e8f0; }
    .sched-enable-row .ser-sub { display: block; font-size: 10px; font-weight: 600; color: #94a3b8; margin-top: 2px; }
    .sched-switch {
      position: relative; width: 44px; height: 24px; border-radius: 999px; flex-shrink: 0;
      background: rgba(100,116,139,0.5); border: 1px solid rgba(148,163,184,0.3);
      cursor: pointer; transition: background 0.18s ease, border-color 0.18s ease;
    }
    .sched-switch::after {
      content: ''; position: absolute; top: 2px; left: 2px; width: 18px; height: 18px;
      border-radius: 50%; background: #f8fafc; transition: transform 0.18s ease;
    }
    .sched-switch.on { background: linear-gradient(135deg, #15803d, #22c55e); border-color: #4ade80; }
    .sched-switch.on::after { transform: translateX(20px); }

    /* 프리셋 3종 — 한 번 누르면 주간 그리드가 통째로 세팅된다 */
    /* 프리셋 개수가 늘어도 고아 카드가 생기지 않게 폭 기준으로 흐르게 둔다 */
    .preset-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(196px, 1fr)); gap: 8px; }
    .preset-card {
      display: flex; flex-direction: column; gap: 4px; text-align: left;
      padding: 11px 12px; border-radius: 12px; cursor: pointer;
      border: 1px solid rgba(148,163,184,0.25); background: rgba(15,23,42,0.8);
      color: #e2e8f0; font-family: inherit; transition: all 0.16s ease;
    }
    .preset-card:hover { border-color: #38bdf8; background: rgba(2,32,54,0.85); transform: translateY(-2px); }
    .preset-card.active {
      border-color: #22c55e; background: linear-gradient(135deg, rgba(21,128,61,0.32), rgba(15,23,42,0.9));
      box-shadow: 0 0 0 1px rgba(34,197,94,0.28);
    }
    .preset-card .pc-no { font-size: 9.5px; font-weight: 900; color: #38bdf8; letter-spacing: 0.5px; }
    .preset-card.active .pc-no { color: #4ade80; }
    .preset-card .pc-title { font-size: 12.5px; font-weight: 900; }
    .preset-card .pc-desc { font-size: 10px; color: #94a3b8; line-height: 1.45; }

    /* 24×7 타임 그리드 — 30분 단위 48칸 × 7일. 좁은 화면에서는 가로 스크롤 */
    .timegrid-wrap {
      border: 1px solid rgba(148,163,184,0.22); border-radius: 11px;
      background: rgba(15,23,42,0.7); padding: 10px 10px 12px;
      overflow-x: auto; -webkit-overflow-scrolling: touch;
    }
    .timegrid { display: inline-block; min-width: 100%; }
    .tg-hours { display: flex; margin-left: 34px; margin-bottom: 4px; }
    .tg-hour {
      width: 26px; flex: 0 0 26px; text-align: left;
      font-size: 8.5px; font-weight: 800; color: #64748b; letter-spacing: -0.3px;
    }
    .tg-hour.peak { color: #fbbf24; }
    .tg-row { display: flex; align-items: center; margin-bottom: 2px; }
    .tg-row:last-child { margin-bottom: 0; }
    .tg-day {
      width: 34px; flex: 0 0 34px; display: flex; align-items: center; gap: 3px;
      font-size: 10.5px; font-weight: 900; color: #cbd5e1; cursor: pointer;
      user-select: none;
    }
    .tg-day:hover { color: #38bdf8; }
    .tg-row.weekend .tg-day { color: #f0abfc; }
    .tg-cells { display: flex; gap: 1px; }
    .tg-cell {
      width: 12px; height: 20px; flex: 0 0 12px; border-radius: 2px; cursor: pointer;
      background: rgba(51,65,85,0.55); border: 0; padding: 0;
      transition: background 0.1s ease;
    }
    .tg-cell:nth-child(even) { margin-right: 1px; }
    .tg-cell.on { background: linear-gradient(180deg, #22c55e, #15803d); }
    .tg-cell.now { box-shadow: 0 0 0 2px #fbbf24; z-index: 2; position: relative; }
    .tg-cell:hover { background: #38bdf8; }
    .tg-legend {
      display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
      margin-top: 9px; font-size: 10px; color: #94a3b8;
    }
    .tg-legend i { display: inline-block; width: 11px; height: 11px; border-radius: 2px; vertical-align: -1px; margin-right: 4px; }
    .tg-legend i.on { background: linear-gradient(180deg, #22c55e, #15803d); }
    .tg-legend i.off { background: rgba(51,65,85,0.55); }
    .tg-legend i.now { background: transparent; box-shadow: 0 0 0 2px #fbbf24; }
    .tg-quick { display: flex; gap: 6px; flex-wrap: wrap; }
    .tg-quick button {
      padding: 4px 9px; border-radius: 7px; cursor: pointer; font-family: inherit;
      font-size: 10.5px; font-weight: 800; color: #cbd5e1;
      border: 1px solid rgba(148,163,184,0.3); background: rgba(30,41,59,0.85);
    }
    .tg-quick button:hover { border-color: #38bdf8; color: #e0f2fe; }

    /* 지정 차단일 (공휴일·정기 휴무) */
    .blockdate-input-row { display: flex; gap: 7px; flex-wrap: wrap; margin-bottom: 9px; }
    .blockdate-input-row input[type="date"] {
      flex: 1 1 150px; min-width: 0; padding: 8px 10px; border-radius: 9px;
      background: rgba(15,23,42,0.9); border: 1px solid rgba(148,163,184,0.3);
      color: #e2e8f0; font-family: inherit; font-size: 12px;
      color-scheme: dark;
    }
    .blockdate-add {
      padding: 8px 14px; border-radius: 9px; cursor: pointer; font-family: inherit;
      font-size: 12px; font-weight: 900; color: #04140a; border: 0;
      background: linear-gradient(135deg, #22c55e, #4ade80);
    }
    .blockdate-add:hover { filter: brightness(1.08); }
    /* 공휴일은 '닫는' 설정이 아니라 '주말처럼 여는' 설정이라 색을 갈라 오조작을 막는다 */
    .blockdate-add.is-holiday { background: linear-gradient(135deg, #6366f1, #818cf8); color: #f8fafc; }
    .blockdate-list { display: flex; flex-wrap: wrap; gap: 6px; min-height: 26px; }
    .blockdate-chip {
      display: inline-flex; align-items: center; gap: 6px;
      padding: 5px 8px 5px 10px; border-radius: 999px;
      background: rgba(127,29,29,0.45); border: 1px solid rgba(248,113,113,0.4);
      color: #fecaca; font-size: 11px; font-weight: 800;
    }
    .blockdate-chip.is-today { background: rgba(180,83,9,0.55); border-color: #fbbf24; color: #fde68a; }
    .blockdate-chip.is-holiday { background: rgba(49,46,129,0.55); border-color: rgba(129,140,248,0.5); color: #c7d2fe; }
    .blockdate-chip.is-holiday.is-today { background: rgba(67,56,202,0.7); border-color: #a5b4fc; color: #e0e7ff; }
    .blockdate-chip button {
      width: 16px; height: 16px; border-radius: 50%; cursor: pointer; padding: 0;
      border: 0; background: rgba(0,0,0,0.35); color: inherit;
      font-size: 11px; line-height: 1; font-family: inherit;
    }
    .blockdate-chip button:hover { background: #ef4444; color: #fff; }
    .blockdate-empty { font-size: 10.5px; color: #64748b; padding: 4px 0; }

    /* 일일 최대 참여 제한 (Auto-OFF 리미터) */
    .limit-row { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
    .limit-row input[type="number"] {
      width: 110px; padding: 8px 10px; border-radius: 9px;
      background: rgba(15,23,42,0.9); border: 1px solid rgba(148,163,184,0.3);
      color: #e2e8f0; font-family: inherit; font-size: 13px; font-weight: 900; text-align: right;
    }
    .limit-row .limit-unit { font-size: 12px; font-weight: 800; color: #cbd5e1; }
    .limit-quick { display: flex; gap: 5px; flex-wrap: wrap; }
    .limit-quick button {
      padding: 5px 10px; border-radius: 7px; cursor: pointer; font-family: inherit;
      font-size: 11px; font-weight: 800; color: #cbd5e1;
      border: 1px solid rgba(148,163,184,0.3); background: rgba(30,41,59,0.85);
    }
    .limit-quick button:hover { border-color: #38bdf8; color: #e0f2fe; }
    .limit-progress {
      margin-top: 9px; padding: 9px 11px; border-radius: 10px;
      background: rgba(15,23,42,0.8); border: 1px solid rgba(148,163,184,0.2);
      font-size: 11px; color: #cbd5e1; font-weight: 700;
    }
    .limit-progress b { color: #4ade80; font-size: 13px; }
    .limit-progress.reached { border-color: rgba(248,113,113,0.55); background: rgba(69,10,10,0.5); color: #fecaca; }
    .limit-progress.reached b { color: #fca5a5; }
    .limit-bar { height: 6px; border-radius: 999px; background: rgba(51,65,85,0.7); margin-top: 7px; overflow: hidden; }
    .limit-bar i { display: block; height: 100%; border-radius: 999px; background: linear-gradient(90deg, #22c55e, #4ade80); transition: width 0.3s ease; }
    .limit-progress.reached .limit-bar i { background: linear-gradient(90deg, #b91c1c, #ef4444); }

    /* 스케줄 저장 바 */
    .sched-save-bar {
      display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
      margin-top: 16px; padding-top: 14px; border-top: 1px solid rgba(148,163,184,0.18);
    }
    .sched-save-btn {
      flex: 1 1 200px; padding: 12px 16px; border-radius: 11px; cursor: pointer;
      border: 0; font-family: inherit; font-size: 13.5px; font-weight: 900; color: #04140a;
      background: linear-gradient(135deg, #16a34a, #4ade80);
      box-shadow: 0 4px 16px rgba(34,197,94,0.32);
    }
    .sched-save-btn:hover { filter: brightness(1.07); }
    .sched-save-btn:disabled { opacity: 0.55; cursor: default; filter: none; }
    .sched-save-hint { font-size: 10.5px; color: #94a3b8; line-height: 1.5; flex: 1 1 180px; }

    /* [상단바 가로 넘침 차단 — 태블릿·소형 노트북 전 구간]
       상단바 버튼 묶음은 화면이 좁아져도 줄어들지 않는(flex-shrink:0 · nowrap) 요소들이라,
       폭이 모자라면 그대로 화면 밖으로 밀려난다. 641~1280px 구간에서 아래로 접히도록
       허용하고, 접힌 만큼 상단바가 자라야 하므로 고정 높이를 최소 높이로 바꾼다.
       1281px 이상에서는 한 줄에 모두 들어가므로 기존 44px 고정 규격 그대로 유지된다. */
    @media (max-width: 1280px) {
      .topbar { height: auto; min-height: 44px; padding: 5px 16px; flex-wrap: wrap; }
      .topbar-right { flex: 1 1 auto; min-width: 0; flex-wrap: wrap; justify-content: flex-end; }
      /* 상단바 높이가 가변이 되면 44px 고정 오프셋 sticky는 어긋난다 — 일반 흐름으로 전환 */
      #test-mode-banner, #event-gate-banner { position: static; }
    }

    @media (max-width: 860px) {
      :root { --main-pad-x: 14px; --panel-pad: 12px; }
      .master-settings-modal { max-width: 92vw; }
      .topbar { padding: 5px 12px; }
    }

    @media (max-width: 640px) {
      :root { --main-pad-x: 8px; --panel-pad: 10px; --panel-radius: 10px; --radius: 10px; }

      /* [상단 가로 바 찌그러짐 원천 수정] 고정 높이 해제 + 랩핑 허용 + 아이콘 온리 버튼 */
      .topbar { height: auto; min-height: 40px; padding: 5px 8px; gap: 6px; flex-wrap: wrap; }
      .topbar-brand { font-size: 12px; gap: 5px; }
      .topbar-brand .logo { font-size: 15px; }
      .brand-sub { display: none; }
      .topbar-right { gap: 5px; flex-wrap: wrap; justify-content: flex-end; }
      .tb-label { display: none; }
      .btn-qr-center { padding: 5px 10px; font-size: 13px; border-radius: 8px; box-shadow: 0 2px 8px rgba(212,168,32,0.35); }
      .btn-sys-gear { width: 28px; height: 28px; font-size: 14px; border-radius: 8px; }
      .clock { font-size: 11.5px; letter-spacing: 0.5px; }
      .ws-badge { padding: 3px 8px; font-size: 10px; gap: 4px; }
      .ws-dot { width: 6px; height: 6px; }

      /* 테스트 모드 토글 — 라벨은 유지(오조작 방지가 최우선)하고 치수만 압착.
         상단바가 wrap되면 sticky 기준점이 흔들리므로 배너는 일반 흐름으로 전환한다. */
      .test-mode-toggle { padding: 4px 8px; font-size: 10.5px; gap: 5px; }
      .tmt-switch { width: 26px; height: 14px; }
      .tmt-knob { width: 10px; height: 10px; }
      .test-mode-toggle.on .tmt-knob { transform: translateX(12px); }
      .tmt-state { font-size: 9.5px; min-width: 21px; }
      #test-mode-banner { position: static; font-size: 10.5px; padding: 5px 8px; border-bottom-width: 1px; }

      /* 비상 마스터 토글 — 급박한 상황용이라 라벨은 끝까지 유지하고 치수만 압착 */
      .master-off-toggle { padding: 4px 8px; font-size: 10.5px; gap: 5px; }
      .mot-switch { width: 26px; height: 14px; }
      .mot-knob { width: 10px; height: 10px; }
      .master-off-toggle.on .mot-knob { transform: translateX(12px); }
      .mot-state { font-size: 9.5px; min-width: 26px; }
      #event-gate-banner { position: static; font-size: 10.5px; padding: 5px 8px; border-bottom-width: 1px; }
      #event-gate-banner .egb-code { font-size: 9.5px; padding: 1px 6px; }

      /* 운영 스케줄 패널 — 프리셋 1열 스택 + 타임그리드 가로 스크롤 */
      .preset-grid { grid-template-columns: 1fr; gap: 6px; }
      .preset-card { padding: 9px 11px; }
      .preset-card .pc-title { font-size: 12px; }
      .timegrid-wrap { padding: 8px 8px 10px; }
      .tg-cell { width: 11px; flex-basis: 11px; height: 22px; }
      .tg-hour { width: 24px; flex-basis: 24px; font-size: 8px; }
      .tg-hours { margin-left: 30px; }
      .tg-day { width: 30px; flex-basis: 30px; font-size: 10px; }
      .tg-legend { gap: 8px; font-size: 9.5px; }
      .sched-enable-row { padding: 9px 10px; }
      .sched-save-btn { flex-basis: 100%; padding: 11px 14px; font-size: 13px; }
      .sched-save-hint { flex-basis: 100%; }
      .limit-row input[type="number"] { width: 96px; }

      .main-vertical { padding: 6px var(--main-pad-x) 12px; min-height: 0; }

      /* 스코어보드·KPI — 정보 밀도 극대화 */
      .review-scoreboard { font-size: 11px; padding: 5px 8px; margin-bottom: 6px; line-height: 1.5; }
      .review-scoreboard .score-val { font-size: 12.5px; }
      .review-scoreboard .score-sep { margin: 0 2px; }
      .kpi-board { grid-template-columns: repeat(2, 1fr); gap: 5px; margin-bottom: 6px; }
      .kpi-card { padding: 5px 8px; min-height: 40px; gap: 1px; }
      .kpi-label { font-size: 9.5px; }
      .kpi-value { font-size: 15px; }
      .btn-export-ledger { padding: 4px 6px; font-size: 10.5px; }
      .kpi-sub { font-size: 9px; }

      .approval-alert-banner { font-size: 13px; padding: 6px 8px; margin-bottom: 6px; border-width: 1px; }
      .approval-alert-banner.idle { font-size: 11px; padding: 4px 8px; }

      .master-tab-btn { font-size: 11px; padding: 6px 2px; border-bottom-width: 2px; }
      .master-tab-panel { padding: var(--panel-pad); }
      .master-tab-panel.graph-panel { padding: 10px 8px; }

      /* 통합 주식차트 — 스마트폰 세로 화면 최적화 (레이아웃 붕괴 방지) */
      .stockchart { padding: 10px 8px; border-radius: 11px; }
      .sc-period-bar { gap: 4px; padding-bottom: 9px; margin-bottom: 9px; }
      .sc-period-btn { min-width: 0; flex: 1 1 30%; padding: 6px 4px; font-size: 10.5px; border-radius: 7px; }
      .sc-period-btn .sc-pb-sub { display: none; }
      .sc-nav { gap: 5px; margin-bottom: 9px; }
      .sc-nav-btn { width: 27px; height: 27px; font-size: 12px; }
      .sc-nav-range { font-size: 10.5px; min-width: 100px; order: -1; flex-basis: 100%; }
      .sc-nav-input { padding: 4px 6px; font-size: 10.5px; }
      .sc-nav-today { padding: 4px 8px; font-size: 10px; }
      .sc-summary { grid-template-columns: repeat(2, 1fr); gap: 5px; margin-bottom: 9px; }
      .sc-sum-card { padding: 6px 8px; }
      .sc-sum-label { font-size: 9px; }
      .sc-sum-value { font-size: 14px; }
      .sc-sum-card.sc-hero { grid-column: 1 / -1; }
      .sc-sum-card.sc-hero .sc-sum-value { font-size: 20px; }
      .sc-canvas-wrap { height: 240px; }
      .sc-legend-btn { padding: 4px 8px; font-size: 10px; }
      .sc-test-note { font-size: 9.5px; padding: 5px 8px; }

      .event-section { padding-bottom: 7px; margin-bottom: 7px; }
      .section-head { margin-bottom: 6px; }
      .section-head h2 { font-size: 14px; }
      .btn-log-close { font-size: 12px; padding: 4px 2px; }

      /* 세션 카드·버튼 — 한 손 터치 최적화 슬림 규격 */
      .table-card { padding: 6px 8px; }
      .btn { padding: 6px 8px; font-size: 11.5px; }

      /* 마스터 설정 모달 — 화면 폭에 맞는 슬림 핏 중앙 모달로 자동 변형 */
      .master-overlay { padding: 12px 8px; }
      .master-settings-modal { max-width: 100%; max-height: 94dvh; border-radius: 14px; }
      .master-settings-hdr { padding: 10px 12px; }
      .master-settings-body { padding: 10px 12px 18px; }
      .master-settings-note { padding: 7px 9px; margin-bottom: 10px; font-size: 10px; }
      .master-tabs { overflow-x: auto; -webkit-overflow-scrolling: touch; margin-bottom: 12px; }
      .master-tab { flex: 1 0 auto; min-width: 60px; padding: 8px 6px; font-size: 10.5px; }
      .layout { grid-template-columns: 1fr; gap: 12px; }
      .prize-cfg-body { padding: 10px 0 12px; }
      .saas-primary-btn { padding: 11px 0; font-size: 13px; }

      /* 사운드 설정 — 라벨 상단 배치 2단 그리드 */
      .sound-cfg-row { grid-template-columns: 1fr 40px; padding: 7px 8px; }
      .sound-cfg-label { grid-column: 1 / -1; }

      /* QR 마케팅 센터 모달 동일 압착 */
      .qr-overlay { padding: 12px 10px 24px; }
      .qr-modal { max-width: 100%; border-radius: 16px; }
      .qr-hdr { padding: 20px 18px 16px; }
      .qr-top-tabs { margin: 14px 18px 0; }
      .qr-top-tab { font-size: 12px; padding: 9px 8px; }
      .qr-sub-tabs, .qr-sticker-opts, .qr-tip, .qr-body { padding-left: 18px; padding-right: 18px; }
    }

    /* 아이폰 Mini·소형 안드로이드(≤380px) 미세 보정 */
    @media (max-width: 380px) {
      :root { --main-pad-x: 6px; }
      .topbar-brand { font-size: 11px; }
      .clock { font-size: 10.5px; }
      .kpi-value { font-size: 13.5px; }
      .master-tab { min-width: 54px; font-size: 10px; padding: 7px 4px; }
      .master-tab-btn { font-size: 10px; }
      .review-scoreboard { font-size: 10px; }
      .test-mode-toggle { padding: 4px 7px; font-size: 10px; gap: 4px; }
      .tmt-text { display: inline; }
      #test-mode-banner { font-size: 10px; }
      .master-off-toggle { padding: 4px 7px; font-size: 10px; gap: 4px; }
      .mot-text { display: inline; }
      #event-gate-banner { font-size: 10px; }
      .tg-cell { width: 10px; flex-basis: 10px; }
    }

    /* ═══════════════════════════════════════════════════════════════
       [CASINO-APPLE-UI] 면/여백 중심 — 중첩 박스·과도한 테두리 걷어내기
       Waiting 패밀리룩: 아웃라인 칩 + 애플 스위치 + 연초록 연결 배지
       ═══════════════════════════════════════════════════════════════ */
    html, body,
    html[data-theme],
    body[data-theme],
    .main-vertical {
      background: #F8FAFC !important;
      background-color: #F8FAFC !important;
    }
    html, body, :root {
      --bg: #F8FAFC;
      --bg-main: #F8FAFC;
      --mb-bg-main: #F8FAFC;
    }
    .topbar {
      height: auto; min-height: 52px; padding: 8px 20px;
      background: #FFFFFF;
      border-bottom: none;
      box-shadow: 0 1px 3px rgba(0,0,0,0.05);
    }
    .topbar-brand { color: #111827; }
    .topbar-right { gap: 6px; flex-wrap: nowrap; }

    .mkt-toggle,
    .mkt-demo-btn,
    .toggle-switch-wrapper,
    .master-off-toggle,
    .test-mode-toggle,
    .btn-qr-center,
    .btn-sys-gear,
    #pwa-install-btn {
      background: #FFFFFF !important;
      background-image: none !important;
      border: 1px solid #E5E7EB !important;
      color: #111827 !important;
      box-shadow: none !important;
      animation: none !important;
      border-radius: 12px !important;
      font-weight: 700;
    }
    .mkt-toggle:hover,
    .mkt-demo-btn:hover,
    .toggle-switch-wrapper:hover,
    .master-off-toggle:hover,
    .test-mode-toggle:hover,
    .btn-qr-center:hover,
    .btn-sys-gear:hover,
    #pwa-install-btn:hover {
      background: #FAFAFA !important;
      border-color: #D1D5DB !important;
      color: #111827 !important;
      transform: none;
      box-shadow: 0 1px 3px rgba(0,0,0,0.05) !important;
    }
    .test-mode-toggle.on:hover,
    .master-off-toggle.on:hover,
    .toggle-switch-wrapper.is-danger.on:hover {
      background-color: #FFEBEE !important;
      border: 1px solid #E53935 !important;
      color: #D32F2F !important;
      box-shadow: none !important;
    }
    .mkt-toggle.on {
      background: #FFFFFF !important;
      border-color: #E5E7EB !important;
      color: #111827 !important;
      box-shadow: none !important;
    }
    .test-mode-toggle.on,
    .master-off-toggle.on,
    .toggle-switch-wrapper.is-danger.on {
      background-color: #FFEBEE !important;
      background-image: none !important;
      border: 1px solid #E53935 !important;
      color: #D32F2F !important;
      box-shadow: none !important;
      animation: none !important;
    }
    .btn-sys-gear {
      width: auto; height: 30px;
      padding: 2px 8px;
      background: #FFFFFF !important;
    }
    .btn-sys-gear:hover { transform: none; color: #111827 !important; }

    /* 애플 스위치 — Off #E5E7EB / On #10B981 */
    .mkt-toggle .mkt-switch,
    .tmt-switch,
    .mot-switch {
      width: 36px !important; height: 22px !important;
      background: #E5E7EB !important;
      border-radius: 999px !important;
      position: relative; flex-shrink: 0;
      box-shadow: inset 0 1px 2px rgba(0,0,0,0.06);
    }
    .mkt-toggle .mkt-switch::after,
    .tmt-knob,
    .mot-knob {
      content: '';
      position: absolute; top: 2px; left: 2px;
      width: 18px !important; height: 18px !important;
      border-radius: 50% !important;
      background: #FFFFFF !important;
      box-shadow: 0 1px 3px rgba(0,0,0,0.12);
      transition: transform 0.2s ease;
    }
    .mkt-toggle.on .mkt-switch,
    .test-mode-toggle.on .tmt-switch {
      background: #10B981 !important;
    }
    .master-off-toggle.on .mot-switch,
    .toggle-switch-wrapper.is-danger.on .toggle-track {
      background: #D32F2F !important;
    }
    .mkt-toggle.on .mkt-switch::after,
    .test-mode-toggle.on .tmt-knob,
    .master-off-toggle.on .mot-knob {
      transform: translateX(14px) !important;
      background: #FFFFFF !important;
    }
    .tmt-state, .mot-state { color: #111827; font-weight: 800; }

    .clock,
    .clock-display,
    #header-clock {
      padding: 0 4px;
      border-radius: 0;
      background: transparent;
      border: none;
      box-shadow: none;
      color: #111827;
      font-size: 15px;
      font-weight: 700;
      letter-spacing: -0.2px;
      font-variant-numeric: tabular-nums;
      display: inline-flex;
      align-items: center;
    }
    .status-badge,
    .ws-badge {
      display: inline-flex;
      align-items: center;
      gap: 4px;
      padding: 4px 8px;
      border-radius: 6px;
      border: none !important;
      font-size: 11px;
      font-weight: 600;
      box-shadow: none !important;
    }
    .status-badge.connected,
    .ws-badge.connected {
      background-color: #E8F5E9 !important;
      color: #2E7D32 !important;
    }
    .status-badge.connected::before,
    .ws-badge.connected::before,
    .status-badge.disconnected::before,
    .ws-badge.disconnected::before {
      content: none !important;
    }
    .status-badge.disconnected,
    .ws-badge.disconnected {
      background-color: #FFEBEE !important;
      color: #C62828 !important;
    }
    .status-dot { display: none !important; }

    .review-scoreboard,
    .stats-summary,
    .kpi-card,
    .master-tab-body,
    .event-section,
    .event-section.event-section-log,
    .table-card,
    .cost-dashboard,
    .prize-cfg-panel,
    .graph-panel,
    .econ-edit-table,
    .dash-panel {
      border: none !important;
      border-bottom: none !important;
      box-shadow: 0 1px 3px rgba(0,0,0,0.05) !important;
      border-radius: 14px !important;
    }
    .review-scoreboard,
    .kpi-card,
    .event-section,
    .table-card {
      background: #FFFFFF;
      padding: 16px 18px;
    }
    .master-tab-body {
      background: #FAFAFA;
      overflow: hidden;
    }
    .master-tab-panel {
      padding: 18px 20px;
    }
    .event-section + .event-section { margin-top: 16px; }
    .event-section-pending,
    .event-section-active,
    .event-section-log { background: #FFFFFF; }
    .empty-state {
      border: none !important;
      background: transparent !important;
      border-radius: 0 !important;
      padding: 20px 8px;
      box-shadow: none !important;
    }
    .kpi-board { gap: 12px; margin-bottom: 12px; }
    .kpi-card { min-height: 64px; padding: 14px 16px; background: #FFFFFF; }
    .approval-alert-banner {
      border: none !important;
      background: transparent !important;
      color: #D32F2F !important;
      box-shadow: none !important;
      border-radius: 0 !important;
      padding: 0 !important;
      margin: 0 !important;
      font-size: 13px !important;
      font-weight: 600 !important;
    }
    .approval-alert-banner.idle {
      background: transparent !important;
      color: #D32F2F !important;
      border: none !important;
      box-shadow: none !important;
      animation: none !important;
    }
    .card-pending, .card-active, .card-active.prize-received {
      border-color: transparent !important;
      box-shadow: 0 1px 3px rgba(0,0,0,0.05) !important;
    }
    .pcfg-row {
      background: #FAFAFA;
      border-radius: 12px;
      padding: 10px 12px;
    }
    .pcfg-rank { background: #FFFFFF; border-radius: 10px; }
    .master-tab-bar {
      background: #FAFAFA;
      border-radius: 14px;
      padding: 4px;
    }
    .master-tab-btn.active {
      background: #FFFFFF;
      box-shadow: 0 1px 3px rgba(0,0,0,0.05);
      border-radius: 10px;
    }

    .master-settings-modal,
    .master-pw-box {
      background: #FFFFFF !important;
      border: none !important;
      box-shadow: 0 8px 30px rgba(0,0,0,0.08) !important;
      border-radius: 16px !important;
    }
    .master-settings-hdr {
      background: #FAFAFA !important;
      border-bottom: none !important;
    }
    .master-settings-title,
    .master-pw-title { color: #111827 !important; }
    .master-settings-note {
      background: #FAFAFA !important;
      border: none !important;
      color: #6B7280 !important;
      border-radius: 12px;
    }
    .master-tabs {
      background: #FAFAFA;
      border-radius: 12px;
      padding: 4px;
      border: none !important;
    }
    .master-tab {
      border: none !important;
      background: transparent !important;
      color: #6B7280 !important;
    }
    .master-tab.active {
      background: #FFFFFF !important;
      color: #111827 !important;
      box-shadow: 0 1px 3px rgba(0,0,0,0.05);
      border-radius: 10px !important;
    }
    .master-pw-input {
      background: #FAFAFA !important;
      border: 1px solid #E5E7EB !important;
      color: #111827 !important;
      border-radius: 12px;
    }

    /* ═══════════════════════════════════════════════════════════════
       [CASINO-UI-VIBE] 허여멀건함 제거 — 파스텔 KPI · 시그니처 액티브 탭 · 섹션 포인트 바
       ═══════════════════════════════════════════════════════════════ */
    .kpi-board .kpi-card.kpi-today {
      background: #EFF6FF !important;
      border: 1px solid #DBEAFE !important;
      box-shadow: 0 1px 3px rgba(37, 99, 235, 0.06) !important;
    }
    .kpi-board .kpi-card.kpi-prize {
      background: #ECFDF5 !important;
      border: 1px solid #A7F3D0 !important;
      box-shadow: 0 1px 3px rgba(16, 185, 129, 0.08) !important;
    }
    .kpi-board .kpi-card.kpi-gold {
      background: #FFFBEB !important;
      border: 1px solid #FDE68A !important;
      box-shadow: 0 1px 3px rgba(217, 119, 6, 0.08) !important;
    }
    .kpi-board .kpi-card.kpi-export {
      background: #F8FAFC !important;
      border: 1px solid #E2E8F0 !important;
      box-shadow: 0 1px 3px rgba(15, 23, 42, 0.04) !important;
    }

    .master-tab-bar .master-tab-btn {
      color: #6B7280;
      background: transparent;
      font-weight: 600;
    }
    .master-tab-bar .master-tab-btn:hover {
      color: #111827;
      background: #F3F4F6;
    }
    .master-tab-bar .master-tab-btn.active {
      background: #D32F2F !important;
      color: #FFFFFF !important;
      font-weight: 800;
      box-shadow: 0 2px 8px rgba(211, 47, 47, 0.28) !important;
      border-radius: 10px;
    }

    .event-section.event-section-pending,
    .event-section.event-section-active,
    .event-section.event-section-log {
      border: none !important;
      border-top: none !important;
    }
    .event-section-pending .section-head h2 { color: #D32F2F !important; }
    .event-section-active .section-head h2 { color: #111827 !important; }
    .event-section-log .section-head h2 { color: #111827 !important; }

    /* ═══════════════════════════════════════════════════════════════
       [CASINO-POSTER-DESIGN] 컬러 절제(레드·에메랄드·오프화이트) · 포스터 타이포 · 모던 차트
       ═══════════════════════════════════════════════════════════════ */
    .kpi-board .kpi-card.kpi-today {
      background: #FFFFFF !important;
      border: 1px solid rgba(211, 47, 47, 0.18) !important;
      box-shadow: 0 1px 3px rgba(211, 47, 47, 0.06) !important;
    }
    .kpi-board .kpi-card.kpi-prize {
      background: #FFFFFF !important;
      border: 1px solid rgba(16, 185, 129, 0.22) !important;
      box-shadow: 0 1px 3px rgba(16, 185, 129, 0.06) !important;
    }
    .kpi-board .kpi-card.kpi-gold {
      background: #FFFFFF !important;
      border: 1px solid rgba(211, 47, 47, 0.18) !important;
      box-shadow: 0 1px 3px rgba(211, 47, 47, 0.06) !important;
    }
    .kpi-board .kpi-card.kpi-export {
      background: #F8FAFC !important;
      border: 1px solid #E2E8F0 !important;
      box-shadow: 0 1px 3px rgba(17, 24, 39, 0.04) !important;
    }
    .kpi-value {
      display: flex;
      align-items: baseline;
      gap: 5px;
      color: #111827;
      line-height: 1;
    }
    .kpi-num {
      font-size: 30px;
      font-weight: 800;
      letter-spacing: -0.04em;
      line-height: 1.05;
      font-variant-numeric: tabular-nums;
      color: #111827;
    }
    .kpi-card.kpi-today .kpi-num,
    .kpi-card.kpi-gold .kpi-num { color: #D32F2F; }
    .kpi-card.kpi-prize .kpi-num { color: #10B981; }
    .kpi-unit {
      font-size: 13px;
      font-weight: 600;
      color: #6B7280;
      letter-spacing: 0;
    }
    .btn-export-ledger {
      border: 1px solid rgba(16, 185, 129, 0.35) !important;
      background: #ECFDF5 !important;
      color: #047857 !important;
    }
    .btn-export-ledger:hover {
      background: #D1FAE5 !important;
      border-color: #10B981 !important;
    }

    .event-section.event-section-pending,
    .event-section.event-section-active,
    .event-section.event-section-log,
    .card-section,
    .approval-card,
    .session-card,
    .log-card {
      border: none !important;
      border-top: none !important;
      background: #ffffff !important;
      border-radius: 14px !important;
      padding: 16px !important;
      padding-top: 12px !important;
      margin-top: 0 !important;
      margin-bottom: 0 !important;
      box-shadow: 0 4px 18px rgba(0, 0, 0, 0.04), 0 1px 3px rgba(0, 0, 0, 0.02) !important;
    }
    .event-section + .event-section { margin-top: 0 !important; }
    .event-section-pending .section-head h2 { color: #D32F2F !important; }
    .event-section-active .section-head h2 { color: #111827 !important; font-weight: 700 !important; }
    .event-section-log .section-head h2 { color: #111827 !important; }

    .event-section.event-section-pending {
      border: 2px solid #FF3B30 !important;
      border-radius: 14px !important;
      padding-top: 12px !important;
    }
    .event-section.event-section-pending.has-pending {
      box-shadow: 0 0 12px rgba(255, 59, 48, 0.25), 0 4px 18px rgba(0, 0, 0, 0.04) !important;
    }
    .event-section.event-section-active,
    .event-section.event-section-log {
      padding-top: 12px !important;
    }
    .master-tab-bar {
      margin-bottom: 12px !important;
    }
    .master-tab-panel.event-panel {
      padding-top: 0 !important;
      padding-bottom: 12px !important;
    }
    .event-scroll-view {
      display: flex !important;
      flex-direction: column !important;
      gap: 12px !important;
    }
    .event-section-log .log-box,
    .event-section-log #log-box {
      border: none !important;
      box-shadow: none !important;
      background: transparent !important;
      border-radius: 0 !important;
      padding: 0 !important;
      max-height: none !important;
      min-height: 0 !important;
      overflow: visible !important;
    }
    .event-section-log .log-entry,
    .event-section-log .log-item,
    #log-box .log-entry,
    #log-box .log-item {
      border: none !important;
      border-bottom: none !important;
      box-shadow: none !important;
    }

    html, body {
      height: auto !important;
      max-height: none !important;
      overflow-x: hidden !important;
      overflow-y: auto !important;
    }
    .main-vertical,
    .master-tab-body,
    .master-tab-panel,
    .master-tab-panel.event-panel,
    .master-tab-panel.graph-panel,
    .event-scroll-view,
    .dashboard-top {
      height: auto !important;
      min-height: 0 !important;
      max-height: none !important;
      overflow: visible !important;
      flex: none !important;
    }
    .topbar {
      position: sticky;
      top: 0;
      z-index: 100;
    }

    .stockchart {
      background: #FFFFFF !important;
      border: 1px solid #E5E7EB !important;
      box-shadow: 0 1px 3px rgba(17, 24, 39, 0.05);
    }
    .sc-period-bar { border-bottom-color: #F1F5F9 !important; }
    .sc-period-btn {
      border: 1px solid #E5E7EB !important;
      background: #F8FAFC !important;
      color: #6B7280 !important;
    }
    .sc-period-btn:hover {
      background: #F3F4F6 !important;
      color: #111827 !important;
      border-color: #D1D5DB !important;
    }
    .sc-period-btn.active {
      background: #D32F2F !important;
      border-color: #D32F2F !important;
      color: #FFFFFF !important;
      box-shadow: 0 2px 8px rgba(211, 47, 47, 0.28) !important;
    }
    .sc-nav-btn {
      border: 1px solid #E5E7EB !important;
      background: #FFFFFF !important;
      color: #111827 !important;
    }
    .sc-nav-btn:hover:not(:disabled) {
      background: #F3F4F6 !important;
      border-color: #D1D5DB !important;
    }
    .sc-nav-range { color: #111827 !important; }
    .sc-nav-input {
      background: #F8FAFC !important;
      color: #111827 !important;
      border: 1px solid #E5E7EB !important;
      color-scheme: light !important;
    }
    .sc-nav-today {
      border: 1px solid #E5E7EB !important;
      background: #F8FAFC !important;
      color: #111827 !important;
    }
    .sc-sum-card {
      background: #F8FAFC !important;
      border: 1px solid #E5E7EB !important;
    }
    .sc-sum-label { color: #6B7280 !important; }
    .sc-sum-value { color: #111827 !important; }
    .sc-sum-card.sc-hero {
      background: #FFFFFF !important;
      border: 1px solid rgba(211, 47, 47, 0.22) !important;
    }
    .sc-sum-card.sc-hero .sc-sum-value { color: #D32F2F !important; }
    .sc-sum-card.sc-hero .sc-sum-label { color: #6B7280 !important; }
    .sc-legend-btn {
      border: 1px solid #E5E7EB !important;
      background: #FFFFFF !important;
      color: #111827 !important;
    }
    .sc-legend-btn:hover { border-color: #D1D5DB !important; }
    .sc-test-note {
      background: #FEF2F2 !important;
      border: 1px solid rgba(211, 47, 47, 0.22) !important;
      color: #111827 !important;
    }

    @media (max-width: 640px) {
      .kpi-num { font-size: 22px; }
      .kpi-unit { font-size: 11px; }
    }
    @media (max-width: 380px) {
      .kpi-num { font-size: 20px; }
      .kpi-unit { font-size: 10px; }
    }

    #pwa-install-btn.is-installed { opacity: 0.55; }
    #pwa-guide-modal {
      display: none; position: fixed; inset: 0; z-index: 10050;
      align-items: center; justify-content: center; padding: 20px;
      background: rgba(17, 24, 39, 0.45);
    }
    #pwa-guide-modal.show { display: flex; }
    #pwa-guide-card {
      width: min(420px, 100%); background: #FFFFFF;
      border: 1px solid #E5E7EB; border-radius: 16px;
      padding: 22px 20px; box-shadow: 0 8px 30px rgba(0,0,0,0.12); color: #111827;
    }
    #pwa-guide-card h2 { margin: 0; font-size: 16px; font-weight: 800; color: #111827; }
    #pwa-guide-card p, #pwa-guide-card li { font-size: 13px; color: #4B5563; line-height: 1.6; }
    #pwa-guide-card ol { margin: 12px 0 14px; padding-left: 18px; }
    #pwa-guide-hint {
      background: #F8FAFC; border: 1px solid #E5E7EB; border-radius: 12px;
      padding: 10px 12px; font-size: 12px; color: #6B7280;
    }
    #pwa-guide-ok {
      width: 100%; margin-top: 14px; height: 44px; border: none; border-radius: 12px;
      background: #D32F2F; color: #FFFFFF; font-size: 14px; font-weight: 800; cursor: pointer;
    }

    /* ── MyBiz 표준 토글 스위치 + 반응형 상단 대시보드 ── */
    .sr-only {
      position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
      overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
    }
    .toggle-switch-wrapper {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      font-size: 13px;
      font-weight: 600;
      height: 30px;
      padding: 2px 8px;
      border-radius: 15px;
      box-sizing: border-box;
      white-space: nowrap;
      cursor: pointer;
      font-family: inherit;
    }
    .toggle-switch-wrapper .toggle-label {
      font-size: 12px;
      font-weight: 800;
      letter-spacing: 0.1px;
    }
    .dashboard-top {
      display: flex;
      gap: 16px;
      align-items: stretch;
      width: 100%;
      margin-bottom: 12px;
    }
    .dashboard-top > * {
      flex: 1 1 0;
      min-width: 0;
    }
    .dash-card-title {
      font-size: 12px;
      font-weight: 800;
      color: #3E3A39;
      letter-spacing: -0.2px;
      margin-bottom: 6px;
      text-align: left;
    }
    .review-score-line {
      white-space: nowrap;
      overflow-x: auto;
      text-overflow: clip;
    }
    .stats-summary {
      background: #FFFFFF;
      border: 1px solid #E5E7EB;
      border-radius: 14px;
      padding: 12px 14px;
      box-shadow: 0 1px 3px rgba(0,0,0,0.05);
    }
    .stats-summary-container {
      display: flex;
      gap: 8px;
      width: 100%;
      align-items: stretch;
    }
    .stat-chip {
      flex: 1 1 0;
      min-width: 0;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 2px;
      padding: 6px 4px;
      border-radius: 10px;
      background: #F8FAFC;
      border: 1px solid #EEF2F7;
    }
    .stat-chip-label {
      font-size: 10.5px;
      font-weight: 700;
      color: #726E6D;
      white-space: nowrap;
    }
    .stat-chip-val {
      font-size: 16px;
      font-weight: 900;
      color: #D32F2F;
      font-variant-numeric: tabular-nums;
      line-height: 1.15;
    }
    @media (max-width: 768px) {
      .dashboard-top {
        display: flex;
        flex-direction: column;
        gap: 8px;
      }
      .stats-summary { padding: 8px 10px; }
      .stats-summary-container {
        display: grid;
        grid-template-columns: repeat(5, 1fr);
        gap: 4px;
        font-size: 11px;
      }
      .stat-chip { padding: 4px 2px; }
      .stat-chip-label { font-size: 9.5px; }
      .stat-chip-val { font-size: 13px; }
      .dash-card-title { font-size: 11px; margin-bottom: 4px; }
    }

    /* ── 헤더 2줄 고정 (3줄 밀림 금지) ── */
    .topbar-row {
      display: flex;
      align-items: center;
      width: 100%;
      min-width: 0;
      flex-wrap: nowrap;
    }
    .topbar-toggles,
    .topbar-tools {
      display: flex;
      align-items: center;
      gap: 6px;
      flex-wrap: nowrap;
      flex-shrink: 0;
    }
    .topbar-status {
      display: flex;
      align-items: center;
      gap: 8px;
      flex-shrink: 0;
    }
    .status-badge.connected {
      display: inline-flex;
      align-items: center;
      gap: 4px;
      padding: 4px 8px;
      background-color: #E8F5E9;
      color: #2E7D32;
      border-radius: 6px;
      font-size: 11px;
      font-weight: 600;
    }
    .status-badge.connected::before,
    .status-badge.disconnected::before,
    .ws-badge.connected::before,
    .ws-badge.disconnected::before {
      content: none !important;
    }
    .status-dot { display: none; }

    @media (min-width: 769px) {
      .topbar {
        display: block !important;
        height: auto !important;
        min-height: 44px;
        padding: 6px 0 !important;
        flex-wrap: nowrap !important;
        overflow: hidden;
      }
    }

    @media (max-width: 768px) {
      .topbar {
        display: block !important;
        height: auto !important;
        min-height: 0 !important;
        padding: 4px 0 6px !important;
        overflow: visible !important;
      }
      .topbar-right { display: none; }
      .topbar-row-primary {
        height: 36px;
        justify-content: space-between;
        gap: 8px;
      }
      .topbar-row-secondary {
        height: 34px;
        margin-top: 6px;
        justify-content: space-between;
        gap: 6px;
      }
      .topbar-brand #storeName,
      .brand-name-bi { max-width: 88px; font-size: 14px; }
      .toggle-switch-wrapper {
        height: 30px !important;
        padding: 2px 6px !important;
        font-size: 12px !important;
        gap: 6px !important;
      }
      .header-btn,
      .topbar-status .btn-sys-gear,
      .topbar-tools .btn-qr-center {
        height: 28px !important;
        min-height: 28px !important;
        width: auto !important;
        padding: 2px 8px !important;
        font-size: 11px !important;
        border-radius: 14px !important;
      }
      .header-right-group { gap: 6px; }
      .topbar-status { margin-left: auto; gap: 6px; }
      .topbar .clock,
      .topbar .clock-display,
      .topbar #header-clock {
        padding: 0 4px !important;
        font-size: 14px !important;
        letter-spacing: -0.2px;
        background: transparent !important;
        border: none !important;
        box-shadow: none !important;
        flex: 0 0 auto;
        text-align: right;
        color: #111827 !important;
        font-weight: 700 !important;
        font-variant-numeric: tabular-nums;
      }
      .status-badge {
        padding: 4px 8px !important;
        font-size: 11px !important;
        height: auto !important;
        border-radius: 6px !important;
      }
    }

    @media (max-width: 480px) {
      .hdr-desktop-only { display: none !important; }
      .topbar-row { flex-wrap: nowrap !important; }
      .topbar-toggles { gap: 4px; }
      .toggle-switch-wrapper .toggle-label { font-size: 11px; }
    }

    /* ── UI 8종 디테일: 시각적 노이즈 제거 (후순위 승자) ── */
    .event-section .section-head {
      display: flex;
      align-items: center;
      justify-content: flex-start;
      position: relative;
      gap: 8px;
      margin-top: 0;
      padding-top: 0;
    }
    .event-section-log .section-head {
      justify-content: space-between;
    }
    .event-section .section-head h2 {
      font-size: 14px !important;
      font-weight: 700 !important;
      margin: 0;
    }
    .event-section-active .section-head h2 {
      color: #111827 !important;
      font-weight: 700 !important;
    }
    .event-section-active .section-head {
      margin-bottom: 2px !important;
    }
    .event-section-active #active-list { margin-top: 0 !important; padding-top: 0 !important; }
    .event-section-active .table-card.card-active {
      padding: 6px 10px 10px !important;
      margin-top: 0 !important;
    }
    .card-active .session-header,
    .card-active .card-header {
      display: flex !important;
      align-items: center !important;
      justify-content: space-between !important;
      gap: 8px !important;
      flex-wrap: nowrap !important;
      margin: 0 0 4px 0 !important;
      padding: 0 !important;
      overflow-x: auto;
    }
    .card-active .card-title-group {
      display: flex !important;
      align-items: center !important;
      gap: 8px !important;
      flex-wrap: nowrap !important;
      min-width: 0;
    }
    .card-active .card-table-id,
    .card-active .game-count-badge,
    .card-active .btn-unlock-mini,
    .card-active .tag-approved {
      flex-shrink: 0;
      white-space: nowrap;
    }
    .card-active .card-time {
      margin-left: auto !important;
      flex-shrink: 0;
      white-space: nowrap;
      font-size: 12px;
      color: #64748b;
    }
    .card-active .card-status { display: none !important; }
    .card-active .prize-reveal,
    .card-active .prize-reveal.visible {
      background: #fafaf9 !important;
      border: 1px solid #f1f5f9 !important;
      border-radius: 12px !important;
      padding: 12px 16px !important;
      margin: 10px 0 12px 0 !important;
    }
    .card-active .prize-reveal-label {
      color: #64748b !important;
      font-size: 12px !important;
      font-weight: 600 !important;
      text-transform: none !important;
      margin-bottom: 4px !important;
    }
    .card-active .prize-reveal-content {
      display: flex;
      align-items: baseline;
      gap: 6px;
    }
    .card-active .prize-reveal-emoji { font-size: 16px; }
    .card-active .prize-reveal-rank,
    .card-active .prize-reveal-name {
      color: #0f172a !important;
      font-size: 15px !important;
      font-weight: 700 !important;
      margin-top: 0 !important;
    }
    .card-active .card-actions {
      display: flex;
      flex-wrap: nowrap;
      gap: 6px;
    }
    .card-active .card-actions .btn {
      height: 38px !important;
      border-radius: 10px !important;
      font-size: 13px !important;
      font-weight: 600 !important;
      padding: 0 14px !important;
      box-shadow: none !important;
    }
    .card-active .btn-deliver,
    .card-active .btn-deliver.delivered {
      background: #ecfdf5 !important;
      border: 1px solid #a7f3d0 !important;
      color: #059669 !important;
    }
    .card-active .btn-reset {
      background: #eff6ff !important;
      border: 1px solid #bfdbfe !important;
      color: #2563eb !important;
    }
    .card-active .btn-dismiss {
      background: #ffffff !important;
      border: 1px solid #e2e8f0 !important;
      color: #64748b !important;
    }
    .event-section-log .section-head::after { margin-left: 0; }
    .event-section-log .btn-log-close {
      margin-left: 8px;
      border: none !important;
      background: transparent !important;
      color: #111827 !important;
      box-shadow: none !important;
      padding: 2px 0 !important;
      font-size: 12px !important;
      font-weight: 600 !important;
    }
    .event-section-log .btn-log-close:hover {
      opacity: 0.62;
      background: transparent !important;
    }
    .event-section-pending .section-head {
      min-height: 32px;
    }
    .log-card-header .section-toggle { margin-left: 0; }
    .approval-alert-banner {
      position: absolute;
      left: 50%;
      transform: translateX(-50%);
      display: inline-block;
      white-space: nowrap;
      pointer-events: none;
      color: #D32F2F !important;
      font-weight: 600 !important;
      font-size: 13px !important;
      letter-spacing: 0;
      background: transparent !important;
      border: none !important;
      box-shadow: none !important;
      padding: 0 !important;
      margin: 0 !important;
    }
    .approval-alert-banner.idle { animation: none !important; }
    .approval-alert-banner.blink-active,
    .blink-active {
      animation: blink 1s infinite;
    }
    @keyframes blink {
      0%, 100% { opacity: 1; }
      50% { opacity: 0.2; }
    }
    .empty-state,
    #pending-list .empty-state,
    #active-list .empty-state {
      background: transparent !important;
      border: none !important;
      border-radius: 0 !important;
      box-shadow: none !important;
      padding: 22px 4px !important;
    }
    @media (max-width: 768px) {
      .event-section-pending .section-head { flex-wrap: wrap; }
      .approval-alert-banner {
        position: static;
        transform: none;
        width: 100%;
        text-align: center;
        order: 20;
        font-size: 12px !important;
        pointer-events: none;
      }
    }

    /* 웨이팅 표준 알약형 연결 뱃지 */
    .status-badge-waiting-standard {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      padding: 4px 12px;
      background-color: #F1F8E9;
      border: 1px solid #4CAF50;
      border-radius: 9999px;
      font-size: 13px;
      font-weight: 600;
      color: #1B5E20;
      box-sizing: border-box;
      white-space: nowrap;
      flex-shrink: 0;
      box-shadow: none;
    }
    .status-badge-waiting-standard .wifi-icon {
      display: flex;
      align-items: center;
      justify-content: center;
      flex-shrink: 0;
    }
    .status-badge-waiting-standard.disconnected {
      background-color: #FFEBEE;
      border-color: #E57373;
      color: #C62828;
    }
    .status-badge-waiting-standard.disconnected .wifi-icon {
      stroke: #C62828;
    }

    /* ── 페이지 좌우 칼각 열맞춤 + 로그 마감 버튼 격리 ── */
    .header-container,
    .main-vertical,
    .main-vertical > .dashboard-top,
    .main-vertical > .kpi-board,
    .main-vertical > .master-tab-bar,
    .main-vertical > .master-tab-body {
      width: 100%;
      max-width: var(--main-max-w);
      margin-left: auto;
      margin-right: auto;
      box-sizing: border-box;
    }
    .header-container {
      padding-left: var(--page-gutter);
      padding-right: var(--page-gutter);
    }
    .topbar {
      width: 100%;
      padding-left: 0 !important;
      padding-right: 0 !important;
      box-sizing: border-box;
    }
    .main-vertical {
      padding-left: var(--page-gutter) !important;
      padding-right: var(--page-gutter) !important;
    }
    .main-vertical > .master-tab-body > .master-tab-panel,
    .main-vertical > .master-tab-body > .master-tab-panel.graph-panel,
    .main-vertical > .master-tab-body > .master-tab-panel.event-panel {
      padding-left: 0 !important;
      padding-right: 0 !important;
    }
    .master-tab-bar,
    .dashboard-top,
    .kpi-board,
    .event-section.event-section-pending,
    .event-section.event-section-active,
    .event-section.event-section-log {
      width: 100%;
      box-sizing: border-box;
    }

    .log-card-header {
      display: flex !important;
      justify-content: space-between;
      align-items: center;
      width: 100%;
    }
    .log-card-header .header-left {
      display: flex;
      align-items: center;
      gap: 8px;
      flex-shrink: 0;
    }
    .log-card-header .header-right {
      display: flex;
      align-items: center;
      gap: 12px;
      margin-left: auto;
      flex-shrink: 0;
    }
    .event-section-log .section-head::after {
      margin-left: 0 !important;
    }
    .log-card-header .btn-log-close {
      margin-left: 0 !important;
    }

    /* 헤더 1줄 완결 — 로고 좌 / 우측 그룹 수평 정렬 */
    .topbar {
      display: block !important;
      overflow: visible !important;
    }
    .header-container {
      display: flex !important;
      flex-direction: row !important;
      justify-content: space-between;
      align-items: center;
      padding: 8px 16px;
      flex-wrap: nowrap;
      min-height: 48px;
      gap: 8px;
    }
    .header-logo-group,
    .topbar-brand.header-logo-group {
      display: flex;
      align-items: center;
      gap: 8px;
      flex-shrink: 0;
      min-width: 0;
    }
    .header-logo-group #storeName,
    .header-logo-group .brand-name-bi {
      max-width: none;
      overflow: visible;
      text-overflow: clip;
    }
    .header-right-group {
      display: flex;
      align-items: center;
      justify-content: flex-end;
      gap: 6px;
      flex-shrink: 0;
      flex-wrap: nowrap;
      min-width: 0;
      overflow: visible;
    }
    .header-btn {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      height: 30px;
      padding: 2px 10px;
      border: 1px solid #E5E7EB;
      border-radius: 12px;
      background: #FFFFFF;
      color: #111827;
      font-size: 12px;
      font-weight: 700;
      white-space: nowrap;
      cursor: pointer;
      box-shadow: none;
      font-family: inherit;
    }
    .header-btn:hover {
      background: #FAFAFA;
      border-color: #D1D5DB;
    }
    .master-settings-note,
    .settings-ops-bar { display: none !important; }
    .modal-header-compact.master-settings-hdr {
      display: flex !important;
      flex-direction: column !important;
      align-items: stretch !important;
      justify-content: flex-start !important;
      gap: 8px;
      padding: 10px 14px !important;
    }
    .modal-row-1 {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 8px;
      width: 100%;
    }
    .modal-title-group {
      display: flex;
      align-items: center;
      gap: 10px;
      min-width: 0;
      flex: 1;
      flex-wrap: nowrap;
    }
    .master-settings-title,
    .modal-title {
      white-space: nowrap;
      font-size: 16px;
      font-weight: 700;
    }
    .toggle-control-inline {
      display: flex;
      align-items: center;
      gap: 6px;
      flex-shrink: 0;
      flex-wrap: nowrap;
    }
    .modal-header-compact .toggle-switch-wrapper {
      height: 28px !important;
      padding: 2px 8px !important;
      font-size: 12px !important;
    }
    .modal-row-2 {
      display: flex;
      align-items: center;
      justify-content: flex-end;
      gap: 6px;
      width: 100%;
    }
    .modal-row-2 .settings-quick-btn,
    .modal-tools-row .tool-btn {
      height: 28px;
      padding: 2px 8px;
      font-size: 11px;
      font-weight: 700;
      white-space: nowrap;
    }
    .qr-overlay { z-index: 720 !important; }
    .qr-pc-hint {
      margin: 6px 0 0;
      padding: 0;
      background: transparent;
      color: #86868b;
      font-size: 12.5px;
      font-weight: 500;
      line-height: 1.45;
      text-align: left;
    }
    .settings-tabs.master-tabs {
      display: flex;
      width: 100%;
      gap: 4px;
      margin-top: 14px;
      overflow: hidden;
    }
    .settings-tabs.master-tabs .master-tab,
    .settings-tabs.master-tabs .tab-btn {
      flex: 1 1 0;
      min-width: 0;
      padding: 8px 2px;
      font-size: 12px;
      text-align: center;
      white-space: nowrap;
    }
    @media (max-width: 480px) {
      .settings-tabs.master-tabs { overflow: hidden; }
      .settings-tabs.master-tabs .master-tab,
      .settings-tabs.master-tabs .tab-btn {
        flex: 1 1 0 !important;
        min-width: 0 !important;
        font-size: 11px;
        padding: 8px 1px;
      }
    }
    @media (max-width: 360px) {
      .settings-tabs.master-tabs .master-tab,
      .settings-tabs.master-tabs .tab-btn {
        font-size: 10.5px;
        letter-spacing: -0.3px;
      }
    }

    .store-name-label {
      display: block;
      color: #D32F2F !important;
      font-weight: 600;
      font-size: 13px;
      margin: 0 0 6px;
    }
    .theme-select-wrapper {
      position: relative;
      display: flex;
      align-items: center;
      width: 100%;
      box-sizing: border-box;
      margin: 10px 0 12px;
      background: transparent;
      border: none;
      padding: 0;
      height: auto;
    }
    .theme-color-dot {
      position: absolute;
      left: 12px;
      top: 50%;
      transform: translateY(-50%);
      width: 14px;
      height: 14px;
      border-radius: 50%;
      pointer-events: none !important;
      z-index: 2;
      box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
    }
    .theme-select-wrapper .theme-select-input,
    .theme-select-wrapper #themeSelect,
    .theme-select-wrapper .sound-cfg-select {
      display: block;
      width: 100% !important;
      max-width: 100%;
      height: 42px;
      background-color: #f3f4f6 !important;
      border: 1px solid #e5e7eb !important;
      border-radius: 8px;
      padding: 8px 36px 8px 36px !important;
      font-size: 14px;
      font-weight: 600;
      color: #111827 !important;
      cursor: pointer;
      outline: none;
      box-sizing: border-box;
      box-shadow: none !important;
      appearance: auto;
      -webkit-appearance: menulist;
      -moz-appearance: menulist;
    }
    .theme-dropdown-arrow {
      display: none !important;
    }
    .master-settings-body > .master-tab-panel {
      padding: 0 !important;
      width: 100%;
      max-width: 100%;
      box-sizing: border-box;
    }
    .master-settings-body .prize-cfg-panel,
    .master-settings-body .prize-cfg-body,
    .master-settings-body .prize-cfg-grid,
    .master-settings-body .pcfg-prob-total,
    .master-settings-body .econ-edit-list,
    .master-settings-body .econ-edit-body,
    .master-settings-body #econ-edit-body,
    .master-settings-body .sound-cfg-grid,
    .master-settings-body .sound-cfg-row,
    .master-settings-body .password-tab-container,
    .master-settings-body .pw-change-form {
      width: 100% !important;
      max-width: 100% !important;
      box-sizing: border-box;
    }
    .apple-info-card {
      width: 100%;
      background: #f9fafb;
      border: 1px solid #f3f4f6;
      border-radius: 8px;
      padding: 10px 14px;
      margin: 0 0 12px;
      box-sizing: border-box;
      color: #111827;
      font-size: 12px;
      line-height: 1.5;
      font-weight: 500;
    }
    .apple-info-card,
    .apple-info-card p,
    .apple-info-card span,
    .apple-info-card strong,
    .apple-info-card code {
      color: #111827 !important;
      background: none !important;
      border: none;
      padding: 0;
      box-shadow: none;
    }
    .apple-info-card strong { font-weight: 700; color: #111827 !important; }
    .apple-info-card code { font-weight: 700; font-family: inherit; }
    .master-settings-body .econ-bind-note,
    .master-settings-body .sound-cfg-note,
    .master-settings-body .pw-change-note {
      width: 100%;
      background: #f9fafb !important;
      border: 1px solid #f3f4f6 !important;
      border-radius: 8px;
      padding: 10px 14px;
      margin: 0 0 12px;
      box-sizing: border-box;
      color: #111827 !important;
      font-size: 12px;
      line-height: 1.5;
      font-weight: 500;
    }
    .master-settings-body .sound-cfg-note code {
      color: #111827 !important;
      background: none !important;
      padding: 0 !important;
      font-weight: 700;
      font-family: inherit;
    }
    .master-settings-body .sound-cfg-row {
      width: 100%;
      background: #f9fafb !important;
      border: 1px solid #f3f4f6 !important;
      box-sizing: border-box;
    }
    .master-settings-body .sound-cfg-label,
    .master-settings-body .sound-cfg-label small {
      color: #111827 !important;
    }
    .master-settings-body .sound-cfg-select {
      background: #f3f4f6 !important;
      color: #111827 !important;
      border: 1px solid #e5e7eb !important;
    }
    .master-settings-body .saas-primary-btn,
    .master-settings-body .btn-change-pw,
    .password-tab-container .save-btn {
      display: block;
      width: 100% !important;
      max-width: 100% !important;
      margin: 16px 0 0;
      box-sizing: border-box;
      background: var(--primary-color, #D32F2F) !important;
      color: #fff !important;
      border: none !important;
      border-radius: 8px;
      padding: 14px 0;
      font-size: 15px;
      font-weight: 700;
      box-shadow: none !important;
      text-shadow: none !important;
      filter: none !important;
    }
    .master-settings-body .btn-change-pw:hover,
    .password-tab-container .save-btn:hover {
      box-shadow: none !important;
      opacity: 0.92;
    }
    .password-tab-container .evt-label {
      color: #374151 !important;
      text-transform: none;
      letter-spacing: 0;
      font-size: 12px;
    }
    .password-tab-container input,
    .password-tab-container .evt-input,
    .password-tab-container .save-btn {
      width: 100% !important;
      box-sizing: border-box;
    }
    .password-tab-container .evt-input {
      height: 42px;
      background: #f3f4f6 !important;
      border: 1px solid #e5e7eb !important;
      color: #111827 !important;
      border-radius: 8px;
    }
    .econ-bind-note {
      margin: 0 0 8px;
      padding: 6px 8px;
      font-size: 11px;
      font-weight: 600;
      line-height: 1.35;
      color: #92400E;
      background: #FFFBEB;
      border-radius: 8px;
    }
    .econ-edit-list { width: 100%; box-sizing: border-box; }
    .cost-setting-row {
      display: flex;
      align-items: center;
      gap: 4px;
      width: 100%;
      padding: 6px 4px;
      box-sizing: border-box;
    }
    .cost-setting-head {
      padding: 2px 4px 6px;
      color: #6B7280;
      font-size: 11px;
      font-weight: 700;
    }
    .cost-rank-col {
      width: 32px;
      flex-shrink: 0;
      text-align: center;
      font-size: 13px;
      font-weight: 700;
      white-space: nowrap;
      color: #111827;
    }
    .cost-setting-head .cost-input-name,
    .cost-setting-head .cost-input-price {
      height: auto;
      border: none;
      background: transparent;
      text-align: center;
      color: #6B7280;
      font-size: 11px;
      padding: 0 4px;
    }
    .cost-input-name {
      flex: 1.2;
      min-width: 0;
      height: 36px;
      font-size: 12px;
      padding: 0 6px;
      box-sizing: border-box;
    }
    .cost-input-price {
      flex: 1;
      min-width: 0;
      height: 36px;
      font-size: 12px;
      padding: 0 4px;
      text-align: right;
      box-sizing: border-box;
    }
    .prize-cfg-grid {
      width: 100%;
      box-sizing: border-box;
    }
    .pcfg-row,
    .prize-rate-item {
      display: flex !important;
      align-items: center;
      gap: 6px;
      width: 100%;
      max-width: 100%;
      padding: 6px 8px !important;
      background: #f9fafb !important;
      border-radius: 8px !important;
      margin-bottom: 6px;
      box-sizing: border-box;
      grid-template-columns: none !important;
    }
    .pcfg-rank,
    .prize-rank-text {
      width: 36px;
      font-size: 14px;
      font-weight: 700;
      color: #111827;
      text-align: center;
      flex-shrink: 0;
      background: transparent !important;
      border-radius: 0 !important;
      padding: 0 !important;
    }
    .prize-name-input,
    .pcfg-row .pcfg-name-readonly {
      flex: 1;
      min-width: 0;
      width: auto !important;
      height: 36px;
      padding: 0 8px !important;
      font-size: 13px;
      border: 1px solid #e5e7eb;
      border-radius: 6px;
      background: #fff;
      box-sizing: border-box;
    }
    .pcfg-prob-wrap,
    .prize-rate-input-group {
      position: static;
      display: flex;
      align-items: center;
      gap: 2px;
      flex-shrink: 0;
      width: auto !important;
    }
    .prize-rate-input,
    .pcfg-prob-wrap .pcfg-input {
      width: 44px !important;
      height: 36px;
      padding: 0 2px !important;
      text-align: center;
      font-size: 13px;
      border: 1px solid #e5e7eb;
      border-radius: 6px;
      background: #fff;
      box-sizing: border-box;
    }
    .pcfg-pct,
    .prize-rate-unit {
      position: static !important;
      transform: none !important;
      font-size: 13px;
      font-weight: 600;
      color: #6b7280;
    }
    .pcfg-color-input,
    .prize-color-box {
      width: 36px !important;
      height: 36px !important;
      padding: 0 !important;
      border-radius: 6px !important;
      flex-shrink: 0;
      box-sizing: border-box;
    }
    @media (max-width: 480px) {
      .master-overlay { padding: 0 !important; align-items: stretch !important; }
      .master-settings-modal {
        width: 100% !important;
        max-width: 100% !important;
        max-height: 100dvh !important;
        border-radius: 0 !important;
      }
      .master-settings-body {
        overflow-x: hidden !important;
        padding: 10px 10px 16px !important;
      }
    }

    @media (max-width: 480px) {
      .header-container {
        padding: 8px 10px;
        min-height: 48px;
      }
      .header-btn {
        padding: 4px 8px;
        font-size: 13px;
        height: 28px;
      }
      .status-badge-waiting-standard {
        padding: 3px 8px;
        font-size: 12px;
      }
    }

    .mybiz-dialog-overlay {
      position: fixed; inset: 0; z-index: 20000;
      display: flex; align-items: flex-start; justify-content: center;
      padding: 18vh 16px 24px;
      background: rgba(0, 0, 0, 0.45);
      backdrop-filter: blur(4px);
      -webkit-backdrop-filter: blur(4px);
    }
    .mybiz-dialog-overlay.hidden { display: none !important; }
    .mybiz-dialog {
      border-radius: 16px;
      background: #ffffff;
      box-shadow: 0 12px 32px rgba(0,0,0,0.18);
      padding: 24px;
      max-width: 420px;
      width: 90%;
    }
    .mybiz-dialog h3 {
      margin: 0 0 10px;
      font-size: 17px;
      font-weight: 800;
      color: #111827;
      letter-spacing: -0.2px;
    }
    .mybiz-dialog p {
      margin: 0 0 20px;
      font-size: 14px;
      line-height: 1.65;
      color: #374151;
    }
    .mybiz-dialog-actions {
      display: flex;
      justify-content: flex-end;
      gap: 8px;
    }
    .mybiz-dialog-btn {
      min-height: 40px;
      padding: 8px 16px;
      border-radius: 10px;
      font-size: 14px;
      font-weight: 700;
      font-family: inherit;
      cursor: pointer;
    }
    .mybiz-dialog-cancel {
      background: #ffffff;
      border: 1px solid #D1D5DB;
      color: #4B5563;
    }
    .mybiz-dialog-cancel:hover { background: #F3F4F6; }
    .mybiz-dialog-ok {
      background: #007AFF;
      border: none;
      color: #ffffff;
    }
    .mybiz-dialog-ok.is-danger { background: #D32F2F; }
    .mybiz-dialog-ok:hover { filter: brightness(0.96); }
    .mybiz-dialog-cancel.hidden { display: none !important; }

  </style>
  <style id="active-session-force">
    /* [강제] 진행 중 세션 — 타이틀 밀착 + 1줄 헤더 + 3단 버튼 */
    .event-section.event-section-active {
      padding-top: 8px !important;
      padding-bottom: 10px !important;
    }
    .event-section-active .section-head {
      margin: 0 0 6px 0 !important;
      padding: 0 !important;
      min-height: 0 !important;
    }
    #active-list {
      margin: 0 !important;
      padding: 0 !important;
    }
    #active-list .table-card.card-active {
      margin-top: 0 !important;
      margin-bottom: 12px !important;
      padding-top: 2px !important;
      padding-bottom: 10px !important;
    }
    #active-list .card-active .session-header,
    #active-list .card-active .card-header {
      display: flex !important;
      flex-direction: row !important;
      align-items: center !important;
      flex-wrap: nowrap !important;
      gap: 8px !important;
      width: 100% !important;
      margin: 0 !important;
      padding: 0 !important;
      overflow: visible !important;
    }
    #active-list .card-active .card-title-group {
      display: contents !important;
    }
    #active-list .card-active .card-status {
      display: contents !important;
    }
    #active-list .card-active .card-table-id,
    #active-list .card-active .game-count-badge,
    #active-list .card-active .btn-unlock-mini,
    #active-list .card-active .tag-approved,
    #active-list .card-active .card-time {
      display: inline-flex !important;
      align-items: center !important;
      flex: 0 0 auto !important;
      width: auto !important;
      max-width: none !important;
      clear: none !important;
      float: none !important;
      white-space: nowrap !important;
    }
    #active-list .card-active .tag-approved {
      margin: 0 !important;
    }
    #active-list .card-active .card-time {
      margin-left: auto !important;
    }
    #active-list .card-active .card-actions {
      display: flex !important;
      flex-direction: row !important;
      flex-wrap: nowrap !important;
      gap: 6px !important;
      margin-top: 8px !important;
    }
    #active-list .card-active .card-actions .btn {
      height: 36px !important;
      border-radius: 8px !important;
      font-size: 12px !important;
      font-weight: 600 !important;
      padding: 0 12px !important;
      display: inline-flex !important;
      align-items: center !important;
      justify-content: center !important;
      box-shadow: none !important;
    }
    #active-list .card-active .btn-deliver,
    #active-list .card-active .btn-deliver.delivered {
      background: #f0fdf4 !important;
      border: 1px solid #bbf7d0 !important;
      color: #166534 !important;
    }
    #active-list .card-active .btn-reset {
      background: #fff1f2 !important;
      border: 1px solid #fecdd3 !important;
      color: #e11d48 !important;
    }
    #active-list     .card-active .btn-dismiss {
      background: #f8fafc !important;
      border: 1px solid #e2e8f0 !important;
      color: #64748b !important;
    }
  </style>
  <style id="schedule-light-theme">
    /* [운영 스케줄] 애플 라이트 미니멀 — JS 클래스/동작 보존, 스코프 한정 */
    #dash-panel-schedule {
      background: transparent !important;
      color: #0f172a !important;
    }
    #dash-panel-schedule .sched-enable-row {
      background: #ffffff !important;
      border: 1px solid #e2e8f0 !important;
      border-radius: 14px !important;
      padding: 14px 18px !important;
      margin-bottom: 16px !important;
      box-shadow: 0 2px 8px rgba(0,0,0,0.03) !important;
    }
    #dash-panel-schedule .sched-enable-row .ser-txt {
      font-size: 15px !important;
      font-weight: 700 !important;
      color: #0f172a !important;
    }
    #dash-panel-schedule .sched-enable-row .ser-sub {
      font-size: 12px !important;
      font-weight: 500 !important;
      color: #64748b !important;
      margin-top: 4px !important;
    }
    #dash-panel-schedule .sched-switch {
      background: #e2e8f0 !important;
      border: 1px solid #cbd5e1 !important;
    }
    #dash-panel-schedule .sched-switch.on {
      background: #10b981 !important;
      border-color: #10b981 !important;
    }
    #dash-panel-schedule .sched-switch::after {
      background: #ffffff !important;
      box-shadow: 0 1px 3px rgba(0,0,0,0.15);
    }

    #dash-panel-schedule .preset-grid {
      display: grid !important;
      grid-template-columns: repeat(4, 1fr) !important;
      gap: 12px !important;
    }
    #dash-panel-schedule .preset-card {
      background: #ffffff !important;
      border: 1px solid #e2e8f0 !important;
      border-radius: 12px !important;
      padding: 14px 12px !important;
      color: #0f172a !important;
      box-shadow: none !important;
      transform: none !important;
      transition: all 0.2s ease !important;
    }
    #dash-panel-schedule .preset-card:hover,
    #dash-panel-schedule .preset-card.active {
      border-color: #3b82f6 !important;
      box-shadow: 0 4px 12px rgba(59, 130, 246, 0.08) !important;
      background: #ffffff !important;
    }
    #dash-panel-schedule .preset-card .pc-no {
      display: inline-flex !important;
      align-items: center;
      width: fit-content;
      font-size: 11px !important;
      font-weight: 700 !important;
      color: #2563eb !important;
      background: #eff6ff !important;
      padding: 2px 6px !important;
      border-radius: 4px !important;
      letter-spacing: 0 !important;
    }
    #dash-panel-schedule .preset-card.active .pc-no {
      color: #2563eb !important;
    }
    #dash-panel-schedule .preset-card .pc-title {
      font-size: 14px !important;
      font-weight: 700 !important;
      color: #0f172a !important;
      margin: 6px 0 4px !important;
    }
    #dash-panel-schedule .preset-card .pc-desc {
      font-size: 11px !important;
      color: #64748b !important;
      line-height: 1.4 !important;
    }

    #dash-panel-schedule .sched-block {
      background: #ffffff !important;
      border: 1px solid #e2e8f0 !important;
      border-radius: 14px !important;
      padding: 16px !important;
      margin-bottom: 12px !important;
    }
    #dash-panel-schedule .sched-head h3 {
      font-size: 14px !important;
      font-weight: 700 !important;
      color: #0f172a !important;
    }
    #dash-panel-schedule .sched-desc {
      font-size: 12px !important;
      color: #64748b !important;
      margin-bottom: 10px !important;
    }
    #dash-panel-schedule .tg-quick button {
      height: 28px !important;
      border-radius: 6px !important;
      font-size: 11px !important;
      font-weight: 600 !important;
      background: #ffffff !important;
      border: 1px solid #cbd5e1 !important;
      color: #475569 !important;
      padding: 0 10px !important;
    }
    #dash-panel-schedule .tg-quick button:hover {
      border-color: #94a3b8 !important;
      color: #0f172a !important;
    }
    #dash-panel-schedule .timegrid-wrap {
      background: #ffffff !important;
      border: 1px solid #e2e8f0 !important;
      border-radius: 14px !important;
      padding: 16px !important;
      box-shadow: 0 2px 8px rgba(0,0,0,0.02) !important;
    }
    #dash-panel-schedule .tg-day {
      width: 24px !important;
      flex-basis: 24px !important;
      font-size: 12px !important;
      font-weight: 700 !important;
      color: #475569 !important;
      text-align: center !important;
      justify-content: center !important;
    }
    #dash-panel-schedule .tg-row.weekend .tg-day { color: #ef4444 !important; }
    #dash-panel-schedule .tg-day:hover { color: #2563eb !important; }
    #dash-panel-schedule .tg-hour {
      font-size: 10px !important;
      color: #94a3b8 !important;
      font-weight: 600 !important;
    }
    #dash-panel-schedule .tg-hour.peak { color: #94a3b8 !important; }
    #dash-panel-schedule .tg-cell {
      border-radius: 3px !important;
      margin: 1px !important;
      background: #e2e8f0 !important;
      box-shadow: none !important;
    }
    #dash-panel-schedule .tg-cell.on { background: #10b981 !important; }
    #dash-panel-schedule .tg-cell.now {
      border: 2px solid #f59e0b !important;
      box-shadow: none !important;
    }
    #dash-panel-schedule .tg-cell:hover { background: #cbd5e1 !important; }
    #dash-panel-schedule .tg-cell.on:hover { background: #059669 !important; }
    #dash-panel-schedule .tg-legend {
      font-size: 11px !important;
      color: #64748b !important;
      margin-top: 10px !important;
    }
    #dash-panel-schedule .tg-legend i.on { background: #10b981 !important; }
    #dash-panel-schedule .tg-legend i.off { background: #e2e8f0 !important; }
    #dash-panel-schedule .tg-legend i.now {
      background: transparent !important;
      box-shadow: none !important;
      border: 2px solid #f59e0b !important;
    }

    #dash-panel-schedule .blockdate-input-row input[type="date"],
    #dash-panel-schedule .limit-row input[type="number"] {
      height: 38px !important;
      border: 1px solid #cbd5e1 !important;
      border-radius: 8px !important;
      padding: 0 12px !important;
      font-size: 13px !important;
      background: #f8fafc !important;
      color: #0f172a !important;
      color-scheme: light !important;
    }
    #dash-panel-schedule .limit-row .limit-unit { color: #475569 !important; }
    #dash-panel-schedule .blockdate-add {
      height: 38px !important;
      border-radius: 8px !important;
      padding: 0 14px !important;
      font-size: 12px !important;
      font-weight: 700 !important;
      background: #f0fdf4 !important;
      border: 1px solid #bbf7d0 !important;
      color: #166534 !important;
      filter: none !important;
    }
    #dash-panel-schedule .blockdate-add.is-holiday {
      background: #eff6ff !important;
      border: 1px solid #bfdbfe !important;
      color: #1d4f91 !important;
    }
    #dash-panel-schedule .blockdate-chip {
      background: #fef2f2 !important;
      border: 1px solid #fecaca !important;
      color: #991b1b !important;
    }
    #dash-panel-schedule .blockdate-chip.is-holiday {
      background: #eff6ff !important;
      border: 1px solid #bfdbfe !important;
      color: #1d4ed8 !important;
    }
    #dash-panel-schedule .blockdate-chip.is-today {
      background: #fffbeb !important;
      border-color: #fde68a !important;
      color: #92400e !important;
    }
    #dash-panel-schedule .blockdate-chip button {
      background: #ffffff !important;
      color: #64748b !important;
    }
    #dash-panel-schedule .blockdate-empty { color: #94a3b8 !important; }

    #dash-panel-schedule .limit-quick button {
      height: 32px !important;
      border-radius: 8px !important;
      font-size: 12px !important;
      font-weight: 600 !important;
      background: #f1f5f9 !important;
      border: 1px solid #e2e8f0 !important;
      color: #334155 !important;
      padding: 0 12px !important;
    }
    #dash-panel-schedule .limit-quick button.active {
      background: #0f172a !important;
      color: #ffffff !important;
      border-color: #0f172a !important;
    }
    #dash-panel-schedule .limit-progress {
      background: #f8fafc !important;
      border: 1px solid #e2e8f0 !important;
      border-radius: 10px !important;
      padding: 10px 14px !important;
      font-size: 13px !important;
      font-weight: 600 !important;
      color: #334155 !important;
    }
    #dash-panel-schedule .limit-progress b { color: #0f172a !important; }
    #dash-panel-schedule .limit-progress.reached {
      background: #fef2f2 !important;
      border-color: #fecaca !important;
      color: #991b1b !important;
    }
    #dash-panel-schedule .limit-bar { background: #e2e8f0 !important; }
    #dash-panel-schedule .limit-bar i { background: #10b981 !important; }

    #dash-panel-schedule .sched-save-bar {
      display: flex !important;
      align-items: center !important;
      justify-content: space-between !important;
      margin-top: 20px !important;
      padding-top: 0 !important;
      border-top: none !important;
      gap: 16px !important;
    }
    #dash-panel-schedule .sched-save-btn {
      flex: 0 0 auto !important;
      height: 46px !important;
      border-radius: 12px !important;
      padding: 0 24px !important;
      font-size: 14px !important;
      font-weight: 700 !important;
      background: #0f172a !important;
      color: #ffffff !important;
      border: none !important;
      box-shadow: 0 4px 12px rgba(15, 23, 42, 0.15) !important;
      filter: none !important;
    }
    #dash-panel-schedule .sched-save-btn:hover {
      background: #1e293b !important;
      filter: none !important;
    }
    #dash-panel-schedule .sched-save-hint {
      font-size: 12px !important;
      color: #94a3b8 !important;
      flex: 1 1 auto !important;
    }
    @media (max-width: 960px) {
      #dash-panel-schedule .preset-grid { grid-template-columns: repeat(2, 1fr) !important; }
    }
    @media (max-width: 640px) {
      #dash-panel-schedule .preset-grid { grid-template-columns: 1fr !important; }
      #dash-panel-schedule .sched-save-bar { flex-wrap: wrap !important; }
    }

/* ========================================================
   [매장 설정 모달] 헤더 & 상단 관제바 1줄 최적화 레이아웃
   ======================================================== */

/* 1. 모달 헤더: 단독 타이틀 + 좌측 라인 일치 */
.modal-header-clean {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 16px 20px 10px 20px;
  border-bottom: none;
}

.modal-title-clean {
  margin: 0;
  font-size: 18px;
  font-weight: 700;
  color: #1e293b;
  display: flex;
  align-items: center;
  gap: 6px;
}

.btn-modal-close {
  background: transparent;
  border: none;
  font-size: 20px;
  color: #94a3b8;
  cursor: pointer;
  padding: 4px 8px;
  line-height: 1;
  transition: color 0.15s ease;
}
.btn-modal-close:hover {
  color: #334155;
}

/* 2. 관제 & 도구 라인: 좌/우 분리 배치 */
.modal-control-bar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 4px 20px 14px 20px;
}

.control-toggles-left {
  display: flex;
  align-items: center;
  gap: 16px; /* STOP과 테스트 간격 */
}

/* 3. QR 생성 버튼: 1.5px 블루 테두리 및 우측 정렬 */
.btn-qr-styled {
  background-color: #f8fafc;
  color: #2563eb;
  border: 1.5px solid #2563eb;
  border-radius: 8px;
  padding: 6px 14px;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  transition: all 0.2s ease;
}

.btn-qr-styled:hover {
  background-color: #eff6ff;
  border-color: #1d4ed8;
  color: #1d4ed8;
  box-shadow: 0 2px 4px rgba(37, 99, 235, 0.15);
}

/* 4. 매장명 1줄 압축 행: 라벨 + 입력창 + 저장 */
.store-name-inline-box {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 0 20px 16px 20px;
}

.store-name-label {
  font-size: 13px;
  font-weight: 700;
  color: #dc2626; /* 매장명 강조 레드 */
  white-space: nowrap; /* 글자 줄바꿈 방지 */
  min-width: 110px;
}

.store-name-input {
  flex: 1; /* 중간 인풋 필드가 남은 공간 차지 */
  height: 38px;
  padding: 0 12px;
  font-size: 14px;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  background-color: #f8fafc;
  color: #334155;
  box-sizing: border-box;
}
.store-name-input:focus {
  border-color: #2563eb;
  outline: none;
  background-color: #fff;
}

.btn-store-save {
  height: 38px;
  padding: 0 16px;
  font-size: 13px;
  font-weight: 600;
  color: #334155;
  background-color: #f1f5f9;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  cursor: pointer;
  white-space: nowrap;
  transition: background-color 0.15s;
}
.btn-store-save:hover {
  background-color: #e2e8f0;
}

/* ==========================================================================
   [매장 설정 모달] 전 탭 UI 그리드 & 그레이 톤 일원화 시스템
   ========================================================================== */

/* 1. 모달 내 모든 텍스트/숫자 인풋, 셀렉트 배경 톤 일원화 */
.master-settings-modal input[type="text"],
.master-settings-modal input[type="number"],
.master-settings-modal input[type="password"],
.master-settings-modal textarea,
.master-settings-modal select {
  background-color: #f1f5f9 !important; /* 테마 박스와 동일한 모던 그레이 */
  border: 1px solid #e2e8f0 !important;
  border-radius: 8px !important;
  color: #1e293b !important;
  font-size: 13px !important;
  box-sizing: border-box !important;
}

.master-settings-modal input:focus,
.master-settings-modal select:focus,
.master-settings-modal textarea:focus {
  background-color: #ffffff !important;
  border-color: #2563eb !important;
  outline: none !important;
}

/* 2. 경품/확률 탭: 등수 너비 고정 및 컬러박스 단정한 정렬 */
.prob-row {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
}
.prob-rank-badge {
  width: 38px;
  font-size: 13px;
  font-weight: 700;
  color: #1e293b;
  flex-shrink: 0;
  text-align: center;
}
.prob-color-box {
  width: 34px !important;
  height: 34px !important;
  border-radius: 6px !important;
  flex-shrink: 0;
}

/* 3. 경품/원가 탭: 50% : 25% : 25% 황금 비율 배분 */
.cost-header-row,
.cost-item-row {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
}
.cost-rank-badge {
  width: 38px; /* 경품확률 탭의 등수 너비와 100% 동일하게 일치 */
  font-size: 13px;
  font-weight: 700;
  color: #1e293b;
  flex-shrink: 0;
  text-align: center;
}
.cost-input-group {
  display: flex;
  align-items: center;
  gap: 8px;
  flex: 1; /* 등수 제외한 나머지 전체 영역 */
}
.cost-field-name {
  flex: 2 !important; /* 경품명: 50% 배분 */
  min-width: 0;
}
.cost-field-perceived {
  flex: 1 !important; /* 체감: 25% 배분 */
  min-width: 0;
  text-align: right;
}
.cost-field-actual {
  flex: 1 !important; /* 원가: 25% 배분 */
  min-width: 0;
  text-align: right;
}

/* 4. 비밀번호 탭: 1줄 가로 정렬 (테마 컬러 라인과 완벽 일치) */
.pw-inline-row {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;
}
.pw-inline-label {
  width: 125px; /* 상단 매장명/테마 라벨과 시각적 기준선 정렬 */
  font-size: 13px;
  font-weight: 700;
  color: #334155;
  white-space: nowrap;
  flex-shrink: 0;
  margin: 0;
}
.pw-inline-input {
  flex: 1;
  height: 36px;
  padding: 0 12px;
}

/* 5. 최하단 저장 버튼 마진 확보 (답답함 해소) */
.master-settings-modal .btn-primary,
.master-settings-modal button[type="submit"] {
  margin-top: 20px !important;
  margin-bottom: 24px !important;
}

/* ==========================================================================
   [MyBiz 테마 엔진 완벽 동기화]
   배너, 탭 버튼, 승인대기 박스, 통계 카운터 숫자까지 테마 컬러 실시간 연동
   ========================================================================== */

/* 1. 최상단 접기/펼치기 홍보 배너 */
.top-banner,
.top-promo-banner,
#notice-banner {
  background: var(--primary-color, #D32F2F) !important;
}

/* 2. 대시보드 메인 활성 탭 버튼 (현재 이벤트 등) */
.master-tab-bar .master-tab-btn.active {
  background: var(--primary-color, #D32F2F) !important;
  border-color: var(--primary-color, #D32F2F) !important;
  color: #ffffff !important;
}

/* 3. 승인 대기 섹션 테두리 & 타이틀 닷 */
.event-section-pending {
  border-color: var(--primary-color, #D32F2F) !important;
}
.event-section-pending .section-head h2::before,
.event-section-pending .section-head h2 {
  color: var(--primary-color, #D32F2F) !important;
}
#approval-alert-banner.active {
  color: var(--primary-color, #D32F2F) !important;
}

/* 4. [사장님 요청] 리뷰 현황 & 참여 건수 & KPI 카운터 숫자들 */
/* 1) 리뷰 현황의 오늘 건수 */
.score-today-bold,
.score-today-bold .score-val {
  color: var(--primary-color, #D32F2F) !important;
}

/* 2) 참여 건수 박스들의 강조 숫자 */
.stat-chip .stat-chip-val {
  color: var(--primary-color, #D32F2F) !important;
}

/* 3) KPI 1등 당첨 건수 숫자 */
#kpi-first-count .kpi-num {
  color: var(--primary-color, #D32F2F) !important;
}

/* 5. 매장 설정 모달 내 저장 버튼류 */
.saas-primary-btn,
.btn-apply-prizes,
.btn-apply-econ,
.btn-change-pw {
  background: var(--primary-color, #D32F2F) !important;
  border-color: var(--primary-color, #D32F2F) !important;
}

/* ==========================================================================
   [요청 반영] 테마 컬러 선택 박스 및 이벤트 탭 링크 인풋창 BG 완벽 일원화
   매장명/브랜드명 인풋박스 배경(#f1f5f9)과 100% 동일하게 강제 통일
   ========================================================================== */

/* 1. 테마 컬러 선택 드롭다운 박스 배경 및 테두리 통일 */
#themeSelect,
.theme-select-input,
.sound-cfg-select {
  background-color: #f1f5f9 !important;
  border: 1px solid #cbd5e1 !important;
  color: #1e293b !important;
}

/* 2. 이벤트 탭: A6 인쇄용 파일 링크 인풋창 배경 통일 */
#a6PrintSourceUrl,
.master-settings-modal #a6PrintSourceUrl {
  background-color: #f1f5f9 !important;
  border: 1px solid #cbd5e1 !important;
  color: #1e293b !important;
}

/* 3. 이벤트 탭: 맨 아래 네이버 스마트플레이스 리뷰 링크 인풋창 배경 통일 */
#page2TargetUrl,
.master-settings-modal #page2TargetUrl {
  background-color: #f1f5f9 !important;
  border: 1px solid #cbd5e1 !important;
  color: #1e293b !important;
}

/* ==========================================================================
   [설정 저장 완료 문구] 3px 위로 이동 & 하단 안전 여백 밸런스 조정
   ========================================================================== */
#econ-bind-msg,
.econ-bind-msg,
#event-page-save-msg,
.sound-cfg-msg,
.pw-change-msg {
  position: relative !important;
  top: -3px !important;           /* 문구를 정확히 3px 위로 밀착 */
  margin-top: 4px !important;
  margin-bottom: 10px !important;  /* 모달 바닥 굴곡과 닿지 않도록 하단 여백 추가 */
  padding-bottom: 2px !important;
  line-height: 1.4 !important;
}

/* ==========================================================================
   [승인 대기 섹션 테마 동기화] 
   빨간색 테두리 박스 & '현재 승인 대기 없음' 텍스트를 테마 컬러로 강제 치환
   ========================================================================== */

/* 1. 승인 대기 박스 전체 외곽 테두리선 */
.event-section.event-section-pending,
.event-section-pending {
  border: 1.5px solid var(--primary-color, #D32F2F) !important;
  border-color: var(--primary-color, #D32F2F) !important;
}

/* 2. '현재 승인 대기 없음' 텍스트 (기본/idle/대기 상태 모두 적용) */
#approval-alert-banner,
.approval-alert-banner,
#approval-alert-banner.idle,
.approval-alert-banner.idle {
  color: var(--primary-color, #D32F2F) !important;
}

/* 3. 승인 대기 건수 뱃지 (숫자 카운트 뱃지 활성화 시) */
.event-section-pending .count-badge.red,
#pending-count {
  background-color: var(--primary-color, #D32F2F) !important;
}

/* ==========================================================================
   [대시보드 상태 닷 2종] 승인 대기 vs 진행 중인 세션 전용 테마 그래픽 닷
   ========================================================================== */

/* 1. 승인 대기 전용 닷: 선택한 테마 컬러(오렌지/네이비/블랙 등)와 100% 동기화 */
.pending-theme-dot {
  display: inline-block;
  width: 11px;
  height: 11px;
  border-radius: 50%;
  background-color: var(--primary-color, #D32F2F) !important;
  margin-right: 8px;
  vertical-align: 1px;
  box-shadow: 0 0 8px var(--primary-color, rgba(211, 47, 47, 0.45));
  transition: background-color 0.2s ease, box-shadow 0.2s ease;
}

/* 2. 진행 중인 세션 전용 닷: 활성 상태를 나타내는 은은한 골드/앰버 닷 */
.active-theme-dot {
  display: inline-block;
  width: 11px;
  height: 11px;
  border-radius: 50%;
  background-color: #f59e0b !important; /* 활성 상태 골드 */
  margin-right: 8px;
  vertical-align: 1px;
  box-shadow: 0 0 8px rgba(245, 158, 11, 0.45);
}

/* ==========================================================================
   [진행 중인 세션 닷 테마 완벽 동기화]
   오렌지 고정값(#f59e0b) 삭제 -> 테마 컬러(네이비/블랙/오렌지 등)와 100% 실시간 연동
   ========================================================================== */
.active-theme-dot {
  display: inline-block;
  width: 11px;
  height: 11px;
  border-radius: 50%;
  background-color: var(--primary-color, #D32F2F) !important;
  margin-right: 8px;
  vertical-align: 1px;
  box-shadow: 0 0 8px var(--primary-color, rgba(211, 47, 47, 0.45));
  transition: background-color 0.2s ease, box-shadow 0.2s ease;
}

/* ==========================================================================
   [테스트 모드 확인 팝업] 매장 설정 모달보다 맨 앞으로 Z-Index 강제 승격
   ========================================================================== */
.mybiz-dialog-overlay,
#mybiz-dialog-overlay,
.custom-dialog-overlay {
  z-index: 999999 !important;
}