/* ════════════════════════════════════════════════
   디자인 토큰 — 사업자용 (다크 사이드바 + 라이트 본문)
   매출/정산을 정확히 보여주는 게 핵심이라 본문은 라이트로
   ════════════════════════════════════════════════ */
:root{
  --sb-bg:        #0c111c;
  --sb-bg-2:      #151b29;
  --sb-border:    #232a3d;
  --sb-text:      #eef1f6;
  --sb-muted:     #828ca3;

  --bg:           #f6f7f9;
  --card:         #ffffff;
  --card-soft:    #f9fafb;
  --panel:        #f2f4f7;
  --panel-strong: #eaecf0;
  --border:       #e9ecf1;
  --line:         #eef0f4;
  --text:         #101828;
  --text-soft:    #475467;
  --muted:        #667085;
  --muted-2:      #98a2b3;

  --gold:         #c19536;
  --gold-bright:  #e6c068;
  --gold-dark:    #9a7327;
  --gold-soft:    rgba(193,149,54,0.10);
  --mint:         #1d9e75;
  --blue:         #378add;
  --purple:       #7f77dd;
  --red:          #d94848;
  --orange:       #ef9f27;
  --green:        #1d9e75;

  /* 깊이 — 카드가 종이 위에 떠 보이도록 */
  --shadow-sm:    0 1px 2px rgba(28,31,38,0.05), 0 1px 3px rgba(28,31,38,0.04);
  --shadow-md:    0 2px 6px rgba(28,31,38,0.05), 0 6px 16px rgba(28,31,38,0.06);
  --shadow-lg:    0 10px 34px rgba(28,31,38,0.12);
  --shadow-gold:  0 8px 22px rgba(193,149,54,0.20);
  --ring-gold:    0 0 0 3px rgba(193,149,54,0.18);

  /* 모서리 반경 */
  --r-sm: 8px;
  --r-md: 12px;
  --r-lg: 16px;

  /* 모바일 레이아웃 치수 — 상단바/하단탭/페이지 여백을 한 곳에서 관리 */
  --m-topbar-h: 52px;
  --m-nav-h: 64px;
  --m-page-x: 14px;
  --m-page-top: 14px;
  --m-page-bottom-extra: 24px;
}
*{box-sizing:border-box;margin:0;padding:0;}
[style*="font-mono"], .kpi-val, .stat-num, .table-num,
.fin-amt, .month-bar-val {
  font-feature-settings:"tnum" 1, "ss01" 1;
  font-variant-numeric: tabular-nums;
}
html,body{
  width:100%;height:100%;overflow:hidden;
  font-family:'Pretendard',ui-sans-serif,system-ui,sans-serif;
  font-weight:500;
  background:var(--bg);color:var(--text);
  font-size:13px;-webkit-font-smoothing:antialiased;
  font-feature-settings:"tnum" 1, "ss01" 1;
  letter-spacing:-0.005em;
}

/* ════════════════════════════════════════════════
   레이아웃
   ════════════════════════════════════════════════ */
.app{display:grid;grid-template-columns:220px 1fr;grid-template-rows:1fr 26px;height:100vh;}

/* ── Sidebar (다크) ── */
.sidebar{
  grid-row:1/3;display:flex;flex-direction:column;
  background:linear-gradient(180deg,#0c1018 0%,var(--sb-bg) 100%);
  border-right:1px solid var(--sb-border);
}
.sidebar-brand{padding:22px 18px 18px;border-bottom:1px solid var(--sb-border);}
.sb-eye{font-size:9px;font-weight:800;letter-spacing:0.18em;color:rgba(255,255,255,0.4);margin-bottom:6px;}
.sidebar-brand h1{font-size:20px;font-weight:500;color:#fff;letter-spacing:-0.025em;line-height:1;}
.sidebar-brand h1 b{font-weight:800;color:var(--gold-bright);font-style:normal;}
.sb-tag{
  display:inline-block;margin-top:8px;padding:3px 9px;border-radius:99px;
  background:rgba(193,149,54,0.12);border:1px solid rgba(193,149,54,0.35);
  color:var(--gold-bright);font-size:10px;font-weight:800;letter-spacing:0.04em;
}
.sidebar-nav{flex:1;padding:10px 8px;overflow-y:auto;}
.sb-btn{
  position:relative;
  display:flex;align-items:center;gap:11px;width:100%;
  padding:11px 14px;margin-bottom:3px;
  background:transparent;border:none;color:var(--sb-muted);
  font-size:13px;font-weight:600;letter-spacing:-0.005em;
  cursor:pointer;border-radius:9px;
  transition:background .15s,color .15s;font-family:inherit;text-align:left;
}
.sb-btn:hover{background:rgba(255,255,255,0.06);color:var(--sb-text);}
.sb-btn.active{background:rgba(193,149,54,0.14);color:var(--gold-bright);font-weight:700;}
.sb-btn.active::before{
  content:'';position:absolute;left:-8px;top:50%;transform:translateY(-50%);
  width:3px;height:18px;border-radius:0 3px 3px 0;background:var(--gold-bright);
}
.sb-btn .sb-icon{font-size:15px;width:18px;text-align:center;opacity:.92;}
.sidebar-bottom{padding:14px;border-top:1px solid var(--sb-border);}
.sb-user{
  display:flex;align-items:center;gap:10px;padding:10px 12px;
  background:var(--sb-bg-2);border-radius:9px;margin-bottom:8px;
}
.sb-user-avatar{
  width:32px;height:32px;border-radius:50%;
  background:linear-gradient(135deg,var(--gold) 0%,var(--gold-dark) 100%);
  display:flex;align-items:center;justify-content:center;
  font-size:13px;font-weight:900;color:#1c1a12;flex-shrink:0;
}
.sb-user-info{min-width:0;flex:1;}
.sb-user-info b{display:block;font-size:12px;font-weight:800;color:var(--sb-text);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.sb-user-info span{font-size:10px;color:var(--sb-muted);font-weight:700;}
.sb-logout{
  width:100%;padding:8px;border-radius:7px;
  background:transparent;border:1px solid var(--sb-border);color:var(--sb-muted);
  font-size:11px;font-weight:700;cursor:pointer;font-family:inherit;letter-spacing:-0.005em;
}
.sb-logout:hover{border-color:var(--red);color:var(--red);}

/* ── Content (라이트) ── */
.content{grid-column:2;grid-row:1;overflow-y:auto;background:var(--bg);}
.content-header{
  position:sticky;top:0;z-index:10;
  background:rgba(246,247,249,0.86);backdrop-filter:blur(14px) saturate(1.1);
  border-bottom:1px solid var(--border);
  padding:16px 28px;
  display:flex;justify-content:space-between;align-items:center;
}
.content-header h2{font-size:18px;font-weight:700;letter-spacing:-0.022em;}
.content-header h2 small{font-size:11px;font-weight:600;color:var(--muted);margin-left:9px;letter-spacing:0;}
.refresh-btn{
  padding:8px 14px;border-radius:9px;
  background:var(--card);border:1px solid var(--border);
  color:var(--text-soft);font-size:12px;font-weight:700;cursor:pointer;font-family:inherit;
  display:flex;align-items:center;gap:6px;transition:all .15s;
  box-shadow:var(--shadow-sm);
}
.refresh-btn:hover{border-color:var(--gold);color:var(--gold-dark);box-shadow:var(--shadow-md);transform:translateY(-1px);}
.refresh-btn:active{transform:translateY(0);}
.refresh-btn.loading{opacity:0.6;pointer-events:none;}

.view{display:none;}
.view.active{display:block;}

/* ════════════════════════════════════════════════
   상단 KPI 바 (큰 4개 + 작은 4개)
   ════════════════════════════════════════════════ */
.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:12px;}
.kpi-card{
  background:var(--card);border:1px solid var(--border);
  border-radius:var(--r-md);padding:15px 17px;
  box-shadow:var(--shadow-sm);transition:transform .15s,box-shadow .15s;
}
.kpi-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);}
.kpi-head{display:flex;align-items:center;gap:9px;margin-bottom:12px;}
.kpi-ic{
  width:28px;height:28px;border-radius:8px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;font-size:16px;
}
.kpi-ic.gold  {background:rgba(193,149,54,0.14);color:var(--gold-dark);}
.kpi-ic.mint  {background:rgba(29,158,117,0.12);color:var(--mint);}
.kpi-ic.blue  {background:rgba(55,138,221,0.12);color:var(--blue);}
.kpi-ic.purple{background:rgba(127,119,221,0.13);color:var(--purple);}
.kpi-label{
  font-size:12px;font-weight:600;color:var(--muted);letter-spacing:-0.005em;
}
.kpi-val{font-size:24px;font-weight:800;color:var(--text);letter-spacing:-0.025em;line-height:1;}
.kpi-val .unit{font-size:12px;font-weight:600;color:var(--muted-2);margin-left:4px;letter-spacing:0;}
.kpi-sub{font-size:11px;font-weight:500;color:var(--muted-2);margin-top:7px;}

/* 결제수단 스트립 — 현금/이체/카드 한 줄 */
.pay-strip{
  background:var(--card);border:1px solid var(--border);
  border-radius:var(--r-md);padding:13px 18px;margin-bottom:22px;
  display:flex;align-items:center;box-shadow:var(--shadow-sm);
}
.pay-seg{flex:1;display:flex;align-items:baseline;gap:7px;min-width:0;}
.pay-div{width:1px;height:24px;background:var(--line);margin:0 16px;flex-shrink:0;}
.pay-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;align-self:center;}
.pay-seg-label{font-size:12px;font-weight:600;color:var(--muted);}
.pay-seg-val{font-size:16px;font-weight:800;color:var(--text);letter-spacing:-0.015em;}
.pay-seg-val::after{content:'만원';font-size:11px;font-weight:500;color:var(--muted-2);margin-left:3px;}
.pay-pct{font-size:11px;font-weight:500;color:var(--muted-2);}

/* ════════════════════════════════════════════════
   섹션 헤더
   ════════════════════════════════════════════════ */
.section-header{
  display:flex;justify-content:space-between;align-items:center;margin:28px 0 16px;
}
.section-header h3{font-size:15px;font-weight:800;letter-spacing:-0.012em;}
.section-header .controls{display:flex;gap:8px;align-items:center;}
/* ⓘ 단위/설명 툴팁 — 호버 또는 탭(포커스) 시 표시 */
.hint-i{
  position:relative;display:inline-flex;align-items:center;justify-content:center;
  width:17px;height:17px;margin-left:7px;border-radius:50%;
  border:1px solid var(--border);background:var(--card-soft);color:var(--muted);
  font-size:11px;font-weight:800;line-height:1;cursor:pointer;
  vertical-align:2px;font-family:inherit;padding:0;
  transition:border-color .12s,color .12s;
}
.hint-i:hover,.hint-i:focus{border-color:var(--gold);color:var(--gold-dark);outline:none;}
.hint-i .hint-tip{
  display:none;position:absolute;top:calc(100% + 8px);left:50%;transform:translateX(-50%);
  z-index:60;white-space:nowrap;padding:8px 12px;border-radius:8px;
  background:var(--text);color:#fff;font-size:11px;font-weight:600;letter-spacing:-0.005em;
  box-shadow:0 10px 26px rgba(16,24,40,0.28);pointer-events:none;
}
.hint-i:hover .hint-tip,.hint-i:focus .hint-tip,.hint-i.open .hint-tip{display:block;}
@media(max-width:880px){
  /* 모바일: ⓘ 툴팁을 화면 중앙에 고정.
     기존에는 버튼 기준 absolute(right:-10px) 라 ⓘ 가 화면 가장자리에 있으면
     안내문이 좌우로 잘려 나갔다. 중앙 고정이면 버튼 위치와 무관하게 항상 온전히 보인다.
     (탭하면 어디를 눌러도 닫히는 동작은 그대로 — .hint-tip 은 pointer-events:none) */
  .hint-i .hint-tip{
    position:fixed;top:50%;left:50%;right:auto;bottom:auto;
    transform:translate(-50%,-50%);
    white-space:normal;width:min(86vw,360px);min-width:0;max-width:none;
    padding:15px 17px;font-size:12.5px;line-height:1.65;text-align:left;
    border-radius:12px;z-index:9999;
    box-shadow:0 20px 50px rgba(16,24,40,0.45);
  }
  /* 열렸을 때 뒤 배경을 살짝 눌러 가독성 확보 (클릭은 통과시켜 탭 한 번에 닫힘) */
  .hint-i.open::after{
    content:'';position:fixed;inset:0;z-index:9998;
    background:rgba(16,24,40,0.42);pointer-events:none;
  }
}
.search-box{
  padding:8px 13px;border-radius:8px;
  background:var(--card);border:1px solid var(--border);color:var(--text);
  font-size:12px;font-weight:700;font-family:inherit;outline:none;
  letter-spacing:-0.005em;width:220px;transition:border-color .15s,box-shadow .15s;
}
.search-box:focus{border-color:var(--gold);box-shadow:var(--ring-gold);}

/* ════════════════════════════════════════════════
   7일 트렌드 차트
   ════════════════════════════════════════════════ */
.trend-box{
  background:var(--card);border:1px solid var(--border);
  border-radius:var(--r-md);padding:20px 22px;margin-bottom:8px;
  box-shadow:var(--shadow-sm);
}
.trend-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:18px;}
.trend-title{font-size:13px;font-weight:800;letter-spacing:-0.01em;}
.trend-total{font-size:16px;font-weight:800;color:var(--gold-dark);letter-spacing:-0.015em;}
.trend-bars{display:flex;gap:10px;align-items:stretch;height:188px;padding:0 2px;}
.trend-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:8px;min-width:0;}
.trend-val{font-size:11px;font-weight:800;color:var(--text-soft);letter-spacing:-0.01em;height:14px;}
.trend-track{
  flex:1;width:100%;display:flex;align-items:flex-end;justify-content:center;
  border-radius:7px;
}
.trend-stack{
  width:64%;max-width:38px;border-radius:5px 5px 2px 2px;overflow:hidden;
  display:flex;flex-direction:column-reverse;
  background:var(--panel);transition:filter .15s;
}
.trend-col:hover .trend-stack{filter:saturate(1.15) brightness(1.03);}
.trend-seg.cash    {background:var(--orange);}
.trend-seg.transfer{background:var(--blue);}
.trend-seg.card    {background:var(--purple);}
.trend-label{font-size:11px;color:var(--muted);font-weight:700;letter-spacing:-0.005em;}

.trend-legend{display:flex;gap:16px;margin-top:14px;justify-content:center;}
.trend-legend-item{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:700;color:var(--text-soft);}
.trend-legend-dot{width:9px;height:9px;border-radius:3px;}

/* 분석 — 매장별 매출 비교 (가로 막대) */
.cmp-list{
  background:var(--card);border:1px solid var(--border);border-radius:var(--r-md);
  box-shadow:var(--shadow-sm);padding:6px 6px;
}
.cmp-row{
  display:grid;grid-template-columns:150px 1fr 140px;align-items:center;gap:16px;
  padding:11px 16px;
}
.cmp-row + .cmp-row{border-top:1px solid var(--line);}
.cmp-rank{
  display:inline-flex;align-items:center;justify-content:center;
  width:20px;height:20px;border-radius:6px;margin-right:8px;
  background:var(--panel);color:var(--muted);font-size:11px;font-weight:900;flex-shrink:0;
}
.cmp-row:first-child .cmp-rank{background:rgba(193,149,54,0.16);color:var(--gold-dark);}
.cmp-name{font-size:13px;font-weight:800;color:var(--text);letter-spacing:-0.01em;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;}
.cmp-track{height:14px;background:var(--panel);border-radius:99px;overflow:hidden;}
.cmp-bar{height:100%;border-radius:99px;min-width:4px;
  background:linear-gradient(90deg,var(--gold-dark),var(--gold));transition:width .3s;}
.cmp-val{text-align:right;font-size:13px;font-weight:900;color:var(--gold-dark);
  font-variant-numeric:tabular-nums;letter-spacing:-0.01em;}
.cmp-pct{font-size:11px;font-weight:700;color:var(--muted);margin-left:5px;}

/* 분석 탭 — 상단 컨텍스트 스트립 (합계는 참고용) */
.an-context{
  display:flex;align-items:center;gap:8px;flex-wrap:wrap;
  font-size:12.5px;font-weight:700;color:var(--muted);
  padding:10px 14px;background:var(--card-soft);border:1px solid var(--border);
  border-radius:var(--r-md);margin-bottom:4px;
}
.an-context b{color:var(--text);font-weight:900;}
.an-context .an-dot{color:var(--border);}
/* 결제수단별 누적(스택) 막대 */
.pm-track{height:16px;background:var(--panel);border-radius:99px;overflow:hidden;}
.pm-fill{height:100%;display:flex;border-radius:99px;overflow:hidden;min-width:6px;transition:width .3s;}
.pm-seg{height:100%;}
.pm-seg:not(:last-child){box-shadow:1px 0 0 rgba(255,255,255,0.55);}

/* ════════════════════════════════════════════════
   매장 카드 그리드
   ════════════════════════════════════════════════ */
.store-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:14px;
}
.store-card{
  background:var(--card);border:1px solid var(--border);
  border-radius:var(--r-md);padding:18px 20px;cursor:pointer;position:relative;
  box-shadow:var(--shadow-sm);
  transition:transform .15s,box-shadow .15s,border-color .15s;
}
.store-card:hover{
  transform:translateY(-3px);border-color:rgba(193,149,54,0.45);
  box-shadow:var(--shadow-lg);
}
.store-card .sc-status{
  position:absolute;top:15px;right:16px;
  display:inline-flex;align-items:center;gap:5px;
  font-size:10px;font-weight:800;letter-spacing:-0.005em;
  padding:3px 9px;border-radius:99px;
}
.store-card .sc-status::before{content:'';width:6px;height:6px;border-radius:50%;background:currentColor;}
.store-card .sc-status.open    {color:var(--mint);background:rgba(31,170,110,0.12);}
.store-card .sc-status.open::before{box-shadow:0 0 0 3px rgba(31,170,110,0.18);}
.store-card .sc-status.closed  {color:var(--text-soft);background:var(--panel);}
.store-card .sc-status.pre-open{color:var(--blue);background:rgba(44,123,229,0.10);}
.sc-name{font-size:15.5px;font-weight:800;color:var(--text);letter-spacing:-0.015em;margin-bottom:5px;padding-right:68px;}
.sc-plan{display:inline-block;font-size:10px;font-weight:800;padding:2px 8px;border-radius:5px;letter-spacing:0.03em;margin-bottom:14px;}
.sc-plan.free     {background:var(--panel);color:var(--muted);}
.sc-plan.basic    {background:rgba(44,123,229,0.12);color:var(--blue);}
.sc-plan.standard {background:rgba(113,102,220,0.12);color:var(--purple);}
.sc-plan.premium  {background:rgba(193,149,54,0.16);color:var(--gold-dark);}
.sc-plan.expired,
.sc-plan.suspended{background:rgba(217,72,72,0.12);color:var(--red);}

.sc-main-amt{
  font-size:28px;font-weight:800;color:var(--text);letter-spacing:-0.03em;line-height:1;margin-bottom:3px;
}
.sc-main-amt .unit{font-size:13px;color:var(--muted);font-weight:700;margin-left:3px;}
.sc-main-label{font-size:10px;font-weight:700;color:var(--muted);letter-spacing:0.02em;margin-bottom:14px;}
.sc-pay-row{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-bottom:14px;}
.sc-pay{padding:7px 8px;border-radius:7px;background:var(--card-soft);border:1px solid var(--line);text-align:center;}
.sc-pay-label{font-size:9px;font-weight:700;color:var(--muted);letter-spacing:0.02em;}
.sc-pay-val{font-size:13px;font-weight:900;letter-spacing:-0.01em;margin-top:1px;}
.sc-pay.cash     .sc-pay-val{color:var(--orange);}
.sc-pay.transfer .sc-pay-val{color:var(--blue);}
.sc-pay.card     .sc-pay-val{color:var(--purple);}
.sc-stat-row{display:flex;justify-content:space-between;padding-top:12px;border-top:1px solid var(--line);}
.sc-stat{font-size:11px;font-weight:600;color:var(--muted);}
.sc-stat b{color:var(--text);font-weight:900;}

/* ════════════════════════════════════════════════
   매장 상세 + 월별 정산 공통 — 일자별 테이블
   ════════════════════════════════════════════════ */
.detail-controls{
  display:flex;gap:10px;align-items:center;margin-bottom:18px;flex-wrap:wrap;
  padding:14px 18px;background:var(--card);border:1px solid var(--border);border-radius:var(--r-md);
  box-shadow:var(--shadow-sm);
}
.detail-control-group{display:flex;align-items:center;gap:8px;}
.detail-control-label{font-size:11px;font-weight:800;color:var(--muted);letter-spacing:0.04em;text-transform:uppercase;}
.detail-select{
  padding:8px 12px;border-radius:8px;
  background:var(--card-soft);border:1px solid var(--border);color:var(--text);
  font-size:13px;font-weight:700;font-family:inherit;outline:none;letter-spacing:-0.005em;
  min-width:140px;cursor:pointer;transition:border-color .15s,box-shadow .15s;
}
.detail-select:focus{border-color:var(--gold);box-shadow:var(--ring-gold);}
.month-shift-btn{
  width:32px;height:32px;border-radius:8px;border:1px solid var(--border);
  background:var(--card);color:var(--text-soft);font-weight:900;cursor:pointer;font-family:inherit;
  transition:border-color .15s,color .15s,box-shadow .15s;
}
.month-shift-btn:hover{border-color:var(--gold);color:var(--gold-dark);box-shadow:var(--shadow-sm);}

/* 월 요약 카드 (매장별) */
.month-summary-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;margin-bottom:18px;
}
.fin-card{
  background:var(--card);border:1px solid var(--border);border-radius:var(--r-md);padding:15px 17px;
  box-shadow:var(--shadow-sm);
}
.fin-card.gold{border-color:rgba(193,149,54,0.35);}
.fin-card.mint{border-color:rgba(31,170,110,0.24);}
.fin-card-label{font-size:11px;font-weight:700;color:var(--muted);letter-spacing:0.02em;margin-bottom:7px;}
.fin-amt{font-size:21px;font-weight:800;color:var(--text);letter-spacing:-0.02em;line-height:1;}
.fin-amt .unit{font-size:11px;font-weight:700;color:var(--muted);margin-left:3px;}
.fin-card.gold .fin-amt{color:var(--gold-dark);}
.fin-card.mint .fin-amt{color:var(--mint);}
.fin-card-sub{font-size:11px;font-weight:600;color:var(--muted);margin-top:6px;}

/* 일자별 매트릭스 테이블 */
.table-scroll{
  overflow-x:auto;background:var(--card);border:1px solid var(--border);border-radius:var(--r-md);
  box-shadow:var(--shadow-sm);
}
.daily-table{
  width:100%;border-collapse:collapse;font-size:12px;font-family:inherit;
  letter-spacing:-0.005em;
}
.daily-table thead th{
  position:sticky;top:0;background:var(--panel);
  padding:10px 8px;font-size:10px;font-weight:800;
  color:var(--text-soft);text-align:center;letter-spacing:0.04em;text-transform:uppercase;
  border-bottom:2px solid var(--border);white-space:nowrap;
}
.daily-table thead th.store-head{
  background:var(--panel-strong);font-size:11px;
  border-bottom:1px solid var(--border);color:var(--text);
}
.daily-table thead .sub-th-cash    {color:var(--orange);}
.daily-table thead .sub-th-transfer{color:var(--blue);}
.daily-table thead .sub-th-card    {color:var(--purple);}
.daily-table thead .sub-th-total   {color:var(--gold-dark);background:rgba(193,149,54,0.05);}
.daily-table td{
  padding:8px;text-align:right;border-bottom:1px solid var(--line);
  font-weight:700;color:var(--text);font-feature-settings:"tnum" 1;
}
.daily-table td.day-num{
  background:var(--card-soft);font-weight:800;text-align:center;width:46px;
  color:var(--text-soft);position:sticky;left:0;z-index:1;
}
.daily-table td.zero{color:var(--muted-2);font-weight:600;}
.daily-table td.total-cell{
  background:rgba(193,149,54,0.04);font-weight:900;color:var(--gold-dark);
  border-left:1px solid rgba(193,149,54,0.15);
}
.daily-table tr:hover td{background:rgba(193,149,54,0.04);}
.daily-table tr:hover td.day-num{background:var(--panel);}
.daily-table tr.sum-row td{
  background:var(--panel-strong);font-weight:900;color:var(--text);
  border-top:2px solid var(--border);border-bottom:none;
  position:sticky;bottom:0;
}
.daily-table tr.sum-row td.day-num{color:var(--text);font-weight:900;}
.daily-table tr.sum-row td.total-cell{color:var(--gold-dark);}

/* ── 일자별 매출 가독성 강화 (매장 상세) ── */
.daily-table .dow{font-size:10px;font-weight:700;margin-left:6px;color:var(--muted);}
.daily-table .dow.sat{color:var(--blue);}
.daily-table .dow.sun{color:var(--red);}
.daily-table td.day-num{white-space:nowrap;width:58px;}
/* 주말 행 옅은 음영 (sticky 일자 칸은 제외해 스크롤 비침 방지) */
.daily-table tbody tr.sat td:not(.day-num){background:rgba(44,123,229,0.05);}
.daily-table tbody tr.sun td:not(.day-num){background:rgba(217,72,72,0.05);}
.daily-table tbody tr.sat td.day-num{box-shadow:inset 3px 0 0 rgba(44,123,229,0.45);}
.daily-table tbody tr.sun td.day-num{box-shadow:inset 3px 0 0 rgba(217,72,72,0.45);}
/* 총합 칸 데이터 바 — 매출 크기를 막대로 시각화 */
.daily-table td.total-cell{position:relative;overflow:hidden;}
.daily-table td.total-cell .tbar{
  position:absolute;left:0;top:0;bottom:0;z-index:0;
  background:linear-gradient(90deg,rgba(193,149,54,0.12),rgba(193,149,54,0.30));
}
.daily-table td.total-cell .tnum{position:relative;z-index:1;}
/* 최고 매출일 강조 */
.daily-table tbody tr.peak td.total-cell .tnum{color:var(--gold-dark);font-weight:900;}
.daily-table tbody tr.peak td.day-num{box-shadow:inset 3px 0 0 var(--gold);color:var(--gold-dark);}
/* 호버·합계 우선순위 재확정 (위 음영보다 뒤에 와서 이김) */
.daily-table tbody tr:hover td:not(.day-num){background:rgba(193,149,54,0.07);}
.daily-table tbody tr.sum-row td{background:var(--panel-strong);}
/* 영업일만 보기 토글 */
.section-header .chk{
  display:inline-flex;align-items:center;gap:6px;cursor:pointer;
  font-size:12px;font-weight:700;color:var(--text-soft);user-select:none;
  padding:6px 11px;border:1px solid var(--border);border-radius:8px;background:var(--card);
}
.section-header .chk:hover{border-color:var(--gold);color:var(--gold-dark);}
.section-header .chk input{accent-color:var(--gold);cursor:pointer;margin:0;}

/* 매장 그룹핑 — 헤더 행 매장명 셀 4열 병합 */
.daily-table th.store-head-merged{
  border-right:1px solid var(--border);
}
.daily-table td.store-group-end{
  border-right:1px solid var(--border);
}

/* ════════════════════════════════════════════════
   모달 (회원가입 등)
   ════════════════════════════════════════════════ */
.modal-overlay{
  position:fixed;inset:0;background:rgba(10,13,18,0.7);backdrop-filter:blur(6px);
  z-index:10000;display:none;align-items:center;justify-content:center;padding:20px;
}
.modal-overlay.open{display:flex;}
.modal-box{
  width:100%;max-width:600px;max-height:90vh;overflow-y:auto;
  background:var(--card);border:1px solid var(--border);
  border-radius:var(--r-lg);padding:30px;position:relative;
  box-shadow:0 28px 70px rgba(0,0,0,0.32);
}
.modal-close{
  position:absolute;top:16px;right:16px;
  width:34px;height:34px;border-radius:50%;
  background:var(--panel);border:none;color:var(--text-soft);
  font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center;
  font-family:inherit;line-height:1;transition:background .15s,color .15s;
}
.modal-close:hover{background:var(--red);color:#fff;}
.modal-title{font-size:18px;font-weight:900;letter-spacing:-0.02em;margin-bottom:6px;}
.modal-sub{font-size:12px;color:var(--muted);font-weight:700;margin-bottom:20px;}

.form-group{display:flex;flex-direction:column;gap:14px;}
.form-label{
  font-size:11px;font-weight:800;color:var(--muted);
  letter-spacing:0.04em;text-transform:uppercase;margin-bottom:6px;
}
.form-input{
  width:100%;padding:11px 13px;border-radius:8px;
  background:var(--card-soft);border:1px solid var(--border);color:var(--text);
  font-size:13px;font-weight:700;font-family:inherit;outline:none;letter-spacing:-0.005em;
}
.form-input:focus{border-color:var(--gold);box-shadow:var(--ring-gold);}
.form-help{font-size:11px;color:var(--muted);font-weight:700;margin-top:4px;}

.modal-footer{display:flex;gap:8px;margin-top:24px;}

/* ════════════════════════════════════════════════
   버튼
   ════════════════════════════════════════════════ */
.btn{
  padding:11px 18px;border-radius:var(--r-sm);border:none;cursor:pointer;
  font-size:13px;font-weight:800;font-family:inherit;letter-spacing:-0.005em;
  transition:transform .12s,box-shadow .12s,border-color .12s,color .12s,background .12s,filter .12s;
}
.btn-gold{background:linear-gradient(135deg,var(--gold) 0%,var(--gold-dark) 100%);color:#fff;font-weight:900;box-shadow:var(--shadow-gold);}
.btn-gold:hover{filter:brightness(1.06);transform:translateY(-1px);}
.btn-gold:disabled{opacity:0.55;cursor:wait;transform:none;box-shadow:none;}
.btn-outline{background:var(--card);color:var(--text);border:1px solid var(--border);box-shadow:var(--shadow-sm);}
.btn-outline:hover{border-color:var(--gold);color:var(--gold-dark);box-shadow:var(--shadow-md);}
.btn-danger{background:var(--card);color:var(--red);border:1px solid rgba(217,72,72,0.35);}
.btn-danger:hover{background:var(--red);color:#fff;border-color:var(--red);}
.btn-sm{padding:6px 12px;font-size:11px;font-weight:700;}

/* ════════════════════════════════════════════════
   로그인 / 빈 상태 / 토스트
   ════════════════════════════════════════════════ */
.auth-screen{
  display:none;position:fixed;inset:0;z-index:9999;
  background:
    radial-gradient(900px 520px at 26% 16%,rgba(193,149,54,0.13) 0%,transparent 58%),
    radial-gradient(760px 520px at 84% 90%,rgba(44,123,229,0.07) 0%,transparent 55%),
    #0a0d12;
  align-items:center;justify-content:center;padding:20px;
}
.auth-screen.show{display:flex;}
.auth-card{
  width:100%;max-width:392px;
  background:linear-gradient(180deg,#1a212e 0%,#141925 100%);
  border:1px solid #2c3340;
  border-radius:var(--r-lg);padding:34px;
  box-shadow:0 24px 64px rgba(0,0,0,0.5);
}
.auth-brand{text-align:center;margin-bottom:24px;}
.auth-brand .ab-eye{font-size:9px;font-weight:800;letter-spacing:0.18em;color:rgba(255,255,255,0.4);margin-bottom:6px;}
.auth-brand h1{font-size:28px;font-weight:500;letter-spacing:-0.03em;color:#fff;}
.auth-brand h1 b{font-weight:800;color:var(--gold-bright);}
.auth-brand .auth-tag{
  display:inline-block;margin-top:10px;padding:4px 11px;border-radius:99px;
  background:rgba(193,149,54,0.12);border:1px solid rgba(193,149,54,0.35);
  color:var(--gold-bright);font-size:10px;font-weight:800;letter-spacing:0.05em;
}
.auth-brand .auth-sub{font-size:11px;color:#7a8499;font-weight:700;margin-top:10px;}
.auth-field{display:flex;flex-direction:column;gap:10px;}
.auth-label{font-size:11px;font-weight:800;color:#7a8499;letter-spacing:0.02em;margin-bottom:4px;}
.auth-input{
  display:block;width:100%;
  padding:12px 14px;border-radius:10px;
  background:#0f1319;border:1px solid #2a3140;color:#fff;
  font-size:13px;font-weight:700;font-family:inherit;outline:none;letter-spacing:-0.005em;
  transition:border-color .15s,box-shadow .15s;
}
.auth-input:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(193,149,54,0.22);}
.auth-remember{
  display:flex;align-items:center;gap:8px;flex-wrap:wrap;
  margin-top:2px;cursor:pointer;user-select:none;
}
.auth-remember input[type=checkbox]{
  width:16px;height:16px;accent-color:var(--gold);cursor:pointer;margin:0;
}
.auth-remember span{font-size:12px;font-weight:700;color:#c2c9d8;}
.auth-remember small{
  flex-basis:100%;margin-left:24px;margin-top:-2px;
  font-size:10.5px;font-weight:600;color:#7a8499;
}
.auth-submit{
  padding:14px;border-radius:10px;border:none;cursor:pointer;
  background:linear-gradient(135deg,var(--gold-bright) 0%,var(--gold) 52%,var(--gold-dark) 100%);
  color:#1c1a12;font-size:13.5px;font-weight:900;font-family:inherit;
  margin-top:10px;letter-spacing:-0.01em;
  box-shadow:0 12px 26px rgba(193,149,54,0.30);
  transition:filter .12s,transform .12s,box-shadow .12s;
}
.auth-submit:hover{filter:brightness(1.05);transform:translateY(-1px);}
.auth-submit:disabled{opacity:0.5;cursor:not-allowed;transform:none;box-shadow:none;}
.auth-err{
  margin-top:12px;padding:10px 12px;border-radius:8px;
  background:rgba(217,72,72,0.1);border:1px solid rgba(217,72,72,0.3);
  color:#ff8585;font-size:12px;font-weight:700;text-align:center;
  display:none;line-height:1.5;
}
.auth-err.show{display:block;}

.empty-state{
  padding:60px 20px;text-align:center;color:var(--muted);
  background:var(--card);border:1px dashed var(--border);border-radius:12px;
}
.empty-state .es-icon{font-size:48px;margin-bottom:10px;opacity:0.4;}
.empty-state .es-text{font-size:14px;font-weight:700;}

.toast{
  position:fixed;bottom:50px;left:50%;transform:translateX(-50%);
  padding:11px 20px;border-radius:9px;
  background:var(--text);color:var(--card);
  font-size:13px;font-weight:800;letter-spacing:-0.005em;
  box-shadow:0 12px 32px rgba(0,0,0,0.18);
  z-index:5000;opacity:0;transition:all 0.3s;pointer-events:none;
}
.toast.show{opacity:1;bottom:60px;}
.toast.success{background:var(--mint);color:#fff;}
.toast.error  {background:var(--red);color:#fff;}

/* ════════════════════════════════════════════════
   Footer
   ════════════════════════════════════════════════ */
.footer{
  grid-column:2;grid-row:2;
  background:var(--card-soft);border-top:1px solid var(--border);
  padding:0 28px;display:flex;align-items:center;justify-content:space-between;
  font-size:10px;color:var(--muted);font-weight:700;
}
.footer .health-dot{
  display:inline-block;width:7px;height:7px;border-radius:50%;
  background:var(--mint);box-shadow:0 0 5px rgba(31,170,110,0.5);margin-right:6px;
}
.footer .health-dot.off{background:var(--red);}

/* 스크롤바 */
::-webkit-scrollbar{width:8px;height:8px;}
::-webkit-scrollbar-track{background:transparent;}
::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px;}
::-webkit-scrollbar-thumb:hover{background:var(--muted-2);}

/* ════════════════════════════════════════════════
   회원가입 / 권한 대기 / 마이페이지 / 권한관리
   ════════════════════════════════════════════════ */
.auth-switch{
  text-align:center;margin-top:18px;padding-top:18px;border-top:1px solid #2a3140;
  font-size:11px;color:#7a8499;font-weight:700;
}
.auth-switch a{
  color:var(--gold-bright);text-decoration:none;font-weight:800;cursor:pointer;
  margin-left:5px;
}
.auth-switch a:hover{text-decoration:underline;}

/* 권한 대기 화면 — 전체 화면 차지, 사이드바 그대로 보임 */
.pending-screen{
  display:flex;align-items:center;justify-content:center;
  min-height:calc(100vh - 26px);padding:40px 28px;
}
.pending-card{
  width:100%;max-width:520px;
  background:var(--card);border:1px solid var(--border);
  border-radius:var(--r-lg);padding:40px;
  box-shadow:var(--shadow-lg);text-align:center;
}
.pending-icon{font-size:56px;margin-bottom:14px;}
.pending-title{font-size:22px;font-weight:900;letter-spacing:-0.025em;margin-bottom:8px;color:var(--text);}
.pending-sub{font-size:13px;color:var(--muted);font-weight:700;line-height:1.6;margin-bottom:28px;}
.pending-info{
  background:var(--card-soft);border:1px solid var(--border);border-radius:10px;
  padding:18px 20px;margin-bottom:24px;text-align:left;
}
.pending-info-row{display:flex;justify-content:space-between;padding:6px 0;}
.pending-info-row + .pending-info-row{border-top:1px solid var(--line);}
.pending-info-label{font-size:11px;font-weight:800;color:var(--muted);letter-spacing:0.04em;text-transform:uppercase;}
.pending-info-val{font-size:13px;font-weight:800;color:var(--text);letter-spacing:-0.005em;}
.pending-status-badge{
  display:inline-block;padding:6px 14px;border-radius:99px;
  background:rgba(232,138,44,0.12);border:1px solid rgba(232,138,44,0.3);
  color:var(--orange);font-size:11px;font-weight:900;letter-spacing:0.04em;
  margin-bottom:18px;
}
.pending-actions{display:flex;gap:8px;}

/* 마이페이지 */
.mypage-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px;}
.mypage-card{
  background:var(--card);border:1px solid var(--border);
  border-radius:var(--r-md);padding:22px 24px;
  box-shadow:var(--shadow-sm);
}
.mypage-card h3{font-size:14px;font-weight:800;margin-bottom:18px;letter-spacing:-0.01em;}
.mypage-field{margin-bottom:14px;}
.mypage-field-label{
  font-size:11px;font-weight:800;color:var(--muted);
  letter-spacing:0.04em;text-transform:uppercase;margin-bottom:6px;
}
.mypage-field-val{
  font-size:14px;font-weight:800;color:var(--text);letter-spacing:-0.01em;
  padding:9px 0;border-bottom:1px solid var(--line);
}
.mypage-input{
  width:100%;padding:10px 12px;border-radius:7px;
  background:var(--card-soft);border:1px solid var(--border);color:var(--text);
  font-size:13px;font-weight:700;font-family:inherit;outline:none;letter-spacing:-0.005em;
}
.mypage-input:focus{border-color:var(--gold);box-shadow:var(--ring-gold);}

/* 권한 관리 화면 (슈퍼어드민용) */
.grants-layout{
  display:grid;grid-template-columns:340px 1fr;gap:14px;height:calc(100vh - 200px);min-height:500px;
}
.grants-left,.grants-right{
  background:var(--card);border:1px solid var(--border);border-radius:var(--r-md);
  display:flex;flex-direction:column;overflow:hidden;
  box-shadow:var(--shadow-sm);
}
.grants-section-head{
  padding:14px 18px;border-bottom:1px solid var(--border);
  display:flex;justify-content:space-between;align-items:center;
}
.grants-section-head h4{font-size:13px;font-weight:800;letter-spacing:-0.01em;}
.grants-section-head .count{font-size:11px;color:var(--muted);font-weight:700;}
.grants-search{
  padding:10px 14px;border-bottom:1px solid var(--line);
}
.grants-search input{
  width:100%;padding:7px 10px;border-radius:6px;
  background:var(--card-soft);border:1px solid var(--border);color:var(--text);
  font-size:12px;font-weight:700;font-family:inherit;outline:none;letter-spacing:-0.005em;
}
.grants-search input:focus{border-color:var(--gold);box-shadow:var(--ring-gold);}

.merchants-list,.stores-pick-list{
  flex:1;overflow-y:auto;padding:8px;
}
.merchant-item{
  display:flex;align-items:center;gap:10px;
  padding:11px 12px;border-radius:8px;cursor:pointer;margin-bottom:3px;
  transition:all 0.1s;border:1px solid transparent;
}
.merchant-item:hover{background:var(--card-soft);}
.merchant-item.selected{background:rgba(193,149,54,0.08);border-color:rgba(193,149,54,0.3);}
.merchant-avatar{
  width:34px;height:34px;border-radius:50%;flex-shrink:0;
  background:linear-gradient(135deg,var(--gold) 0%,var(--gold-dark) 100%);
  display:flex;align-items:center;justify-content:center;
  font-size:13px;font-weight:900;color:#1c1a12;
}
.merchant-info{flex:1;min-width:0;}
.merchant-name{font-size:13px;font-weight:800;color:var(--text);letter-spacing:-0.01em;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.merchant-meta{font-size:10px;color:var(--muted);font-weight:700;margin-top:2px;}
.merchant-status{
  font-size:9px;font-weight:900;padding:2px 7px;border-radius:99px;letter-spacing:0.04em;
}
.merchant-status.pending{background:rgba(232,138,44,0.12);color:var(--orange);}
.merchant-status.active{background:rgba(31,170,110,0.12);color:var(--mint);}
.merchant-status.disabled{background:rgba(217,72,72,0.12);color:var(--red);}

.grants-empty{
  flex:1;display:flex;align-items:center;justify-content:center;
  flex-direction:column;color:var(--muted);text-align:center;padding:40px 20px;
}
.grants-empty .gi{font-size:42px;margin-bottom:10px;opacity:0.4;}
.grants-empty .gt{font-size:13px;font-weight:700;}

/* ─── 데이터 관리 (정합성/방문 구축) ─── */
.dop-list{display:flex;flex-direction:column;gap:14px;}
.dop-card{
  background:var(--card,#fff);border:1px solid var(--border);border-radius:12px;
  padding:16px 18px;box-shadow:var(--shadow-sm,0 1px 3px rgba(16,24,40,0.06));
}
.dop-head{margin-bottom:10px;}
.dop-store{font-size:15px;font-weight:800;color:var(--text);display:flex;align-items:center;gap:7px;letter-spacing:-0.01em;}
.dop-store i{color:var(--gold-dark,#b8860b);}
.dop-rows{display:flex;flex-direction:column;gap:8px;}
.dop-row{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:11px 13px;border-radius:9px;background:var(--card-soft,#f7f8fa);flex-wrap:wrap;
}
.dop-row-l{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:13px;color:var(--text);}
.dop-row-l b{font-weight:800;}
.dop-sub{width:100%;font-size:11.5px;color:var(--muted);font-weight:600;margin-top:2px;}
.dop-badge{font-size:11px;font-weight:800;padding:2px 8px;border-radius:20px;}
.dop-good{background:rgba(22,163,74,0.12);color:#15803d;}
.dop-bad{background:rgba(220,38,38,0.12);color:#dc2626;}
.dop-gray{background:rgba(100,116,139,0.14);color:#64748b;}
.btn-dop{
  display:inline-flex;align-items:center;gap:6px;flex-shrink:0;
  padding:8px 14px;border-radius:8px;border:1px solid var(--border);
  background:var(--card,#fff);color:var(--text);font-size:12.5px;font-weight:800;cursor:pointer;
  transition:all .15s;
}
.btn-dop:hover:not(:disabled){border-color:var(--gold);color:var(--gold-dark);box-shadow:var(--shadow-md);transform:translateY(-1px);}
.btn-dop:disabled{opacity:0.55;cursor:not-allowed;}
.dop-spin{animation:dop-rot 0.8s linear infinite;}
@keyframes dop-rot{to{transform:rotate(360deg);}}
.dop-detail{margin-top:12px;padding:12px 14px;border-radius:9px;background:var(--card-soft,#f7f8fa);border:1px solid var(--border);}
.dop-detail-hd{font-size:12px;font-weight:800;color:#dc2626;margin-bottom:8px;}
.dop-detail-ok{font-size:12.5px;font-weight:700;color:#15803d;display:flex;align-items:center;gap:6px;}
.dop-table{width:100%;border-collapse:collapse;font-size:12px;}
.dop-table th{text-align:left;padding:6px 8px;color:var(--muted);font-weight:800;border-bottom:1px solid var(--border);white-space:nowrap;}
.dop-table td{padding:6px 8px;border-bottom:1px solid var(--border);color:var(--text);font-weight:600;white-space:nowrap;}

.store-pick-row{
  display:flex;align-items:center;gap:10px;
  padding:9px 12px;border-radius:7px;margin-bottom:2px;
}
.store-pick-row:hover{background:var(--card-soft);}
.store-pick-row input[type="checkbox"]{
  width:16px;height:16px;accent-color:var(--gold);cursor:pointer;flex-shrink:0;
}
.store-pick-row label{
  font-size:13px;font-weight:700;color:var(--text);cursor:pointer;flex:1;
  letter-spacing:-0.005em;
  display:flex;align-items:center;gap:8px;
}
.store-pick-row .owner-tag{
  font-size:9px;font-weight:800;padding:2px 6px;border-radius:4px;
  background:rgba(44,123,229,0.12);color:var(--blue);letter-spacing:0.02em;
}
.store-pick-row .pending-tag{
  font-size:9px;font-weight:800;padding:2px 6px;border-radius:4px;
  background:rgba(232,138,44,0.12);color:var(--orange);letter-spacing:0.02em;
}

/* 승인 대기 안내 (사업자 목록 상단) */
.grants-pending-note{
  margin:0 0 8px;padding:9px 12px;border-radius:8px;
  background:rgba(232,138,44,0.08);border:1px solid rgba(232,138,44,0.25);
  color:var(--orange);font-size:11.5px;font-weight:800;line-height:1.45;
  display:flex;align-items:center;gap:6px;
}
/* 이메일 미인증 표시 */
.mail-unverified{
  font-size:9px;font-weight:800;padding:2px 6px;border-radius:4px;margin-left:5px;
  background:rgba(217,72,72,0.12);color:var(--red);letter-spacing:0.02em;
  display:inline-flex;align-items:center;gap:3px;vertical-align:middle;
}
.grants-mail-warn{
  padding:9px 14px;background:rgba(217,72,72,0.07);
  border-bottom:1px solid rgba(217,72,72,0.22);
  color:var(--red);font-size:11px;font-weight:800;
  display:flex;align-items:center;gap:6px;
}
/* 체크=최종 권한 안내 */
.grants-hint{
  padding:8px 14px;border-bottom:1px solid var(--line);
  color:var(--muted);font-size:11px;font-weight:700;line-height:1.45;
  display:flex;align-items:center;gap:6px;
}
.grants-hint b{color:var(--text);}
/* 적용 전 변경분 미리보기 */
.grants-delta{
  margin-left:6px;padding:2px 7px;border-radius:5px;
  background:rgba(193,149,54,0.14);color:var(--gold);font-weight:800;
}

.grants-actions-bar{
  padding:14px 18px;border-top:1px solid var(--border);
  display:flex;gap:8px;align-items:center;
  background:var(--card-soft);
}
.grants-actions-bar .selected-count{
  font-size:11px;color:var(--muted);font-weight:700;flex:1;
}

/* 슈퍼어드민 마크 (사이드바 메뉴) */
.sb-btn.super-only{
  background:linear-gradient(135deg,rgba(193,149,54,0.08) 0%,rgba(193,149,54,0.02) 100%);
}
.sb-btn.super-only::after{
  content:"ADMIN";
  margin-left:auto;
  font-size:8px;font-weight:900;
  background:rgba(193,149,54,0.3);
  color:var(--gold-bright);
  padding:2px 5px;border-radius:3px;letter-spacing:0.05em;
}

/* ════════════════════════════════════════════════
   모바일 전용 요소 (상단바 + 하단 탭) — 데스크탑에선 숨김
   ════════════════════════════════════════════════ */
.m-topbar{display:none;}
.m-nav{display:none;}

@media(max-width:880px){
  html,body{width:100%;min-width:0;overflow-x:hidden;}
  body{overscroll-behavior-y:none;}
  .app{
    grid-template-columns:1fr;
    grid-template-rows:var(--m-topbar-h) minmax(0,1fr);
    height:100vh;height:100dvh;
    min-height:0;overflow:hidden;
  }
  .sidebar{display:none;}
  .footer{display:none;}

  /* 상단바 — 다크 네이비 브랜드 유지 */
  .m-topbar{
    grid-column:1;grid-row:1;
    display:flex;align-items:center;justify-content:space-between;
    background:linear-gradient(180deg,#0c1018 0%,var(--sb-bg) 100%);
    border-bottom:1px solid var(--sb-border);
    padding:0 var(--m-page-x);height:var(--m-topbar-h);min-height:var(--m-topbar-h);
  }
  .m-brand{display:flex;align-items:center;gap:8px;cursor:pointer;}
  .m-brand-name{font-size:16px;font-weight:500;color:#fff;letter-spacing:-0.02em;}
  .m-brand-name b{font-weight:800;color:var(--gold-bright);}
  .m-brand-tag{
    font-size:9px;font-weight:800;letter-spacing:0.05em;
    padding:2px 8px;border-radius:99px;
    background:rgba(193,149,54,0.12);border:1px solid rgba(193,149,54,0.35);
    color:var(--gold-bright);
  }
  .m-topbar-actions{display:flex;gap:6px;}
  .m-top-btn{
    width:38px;height:38px;border-radius:9px;border:none;cursor:pointer;
    background:rgba(255,255,255,0.07);color:var(--sb-muted);
    font-size:17px;display:flex;align-items:center;justify-content:center;font-family:inherit;
  }
  .m-top-btn:active{background:rgba(255,255,255,0.14);color:#fff;}
  .m-top-btn.active{background:rgba(193,149,54,0.20);color:var(--gold-bright);}

  .content{
    grid-column:1;grid-row:2;
    min-width:0;min-height:0;
    overflow-x:hidden;overflow-y:auto;
    -webkit-overflow-scrolling:touch;
    /* 하단 고정 탭에 콘텐츠가 가리지 않도록 — 여기 한 곳에서만 확보 */
    padding-bottom:calc(var(--m-nav-h) + env(safe-area-inset-bottom) + var(--m-page-bottom-extra));
  }

  /* 하단 탭 내비 */
  .m-nav{
    position:fixed;left:0;right:0;bottom:0;z-index:1000;
    display:flex;align-items:stretch;
    min-height:var(--m-nav-h);
    background:var(--card);border-top:1px solid var(--border);
    padding:6px 4px calc(6px + env(safe-area-inset-bottom));
    box-shadow:0 -4px 16px rgba(16,24,40,0.06);
  }
  .m-nav-btn{
    flex:1 1 0;min-width:0;min-height:52px;border:none;background:transparent;cursor:pointer;
    display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
    color:var(--muted-2);font-family:inherit;border-radius:10px;
    touch-action:manipulation;-webkit-tap-highlight-color:transparent;
  }
  .m-nav-btn i{font-size:20px;line-height:1;}
  .m-nav-btn span{
    font-size:10.5px;font-weight:600;letter-spacing:-0.01em;line-height:1.15;
    max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  }
  .m-nav-btn.active{color:var(--gold-dark);background:rgba(193,149,54,0.10);}

  /* 뷰 래퍼 패딩 축소 — 하단 내비 공간은 .content가 담당(이중 패딩 방지) */
  .view > div[style*="28px 40px"]{padding:var(--m-page-top) var(--m-page-x) 24px !important;}
  .content-header{padding:12px 14px;}
  .content-header h2{font-size:16px;}
  .content-header h2 small{display:block;margin-left:0;margin-top:3px;}

  /* ── 터치 영역 확대 (2026-07-09) — 폰에서 컨트롤을 손가락에 맞게 ── */
  .refresh-btn,
  .btn,
  .btn-dop,
  .ai-tab-btn,
  .ai-win-btn,
  .ai-fb-btn,
  .detail-select,
  .m-sort-select{ min-height:44px; }
  .refresh-btn,
  .btn,
  .btn-dop{ padding-top:10px; padding-bottom:10px; }
  /* 기간 이동 ◀▶ — 정사각 탭 영역 */
  .month-shift-btn{ min-width:42px; min-height:42px; }
  /* 폼 컨트롤 — 16px 로 iOS 포커스 자동확대 방지 */
  select, input, textarea, .detail-select{ font-size:16px; }
  /* AI 리포트 서브탭 — 좁으면 자연 줄바꿈(id=aiTabBar flex-wrap:wrap), 라벨은 안 깨지게 */
  .ai-tab-btn{ white-space:nowrap; }
  /* ⓘ 정보 버튼 — 폰에서 누르기 쉽게 살짝 키움(보조 아이콘이라 과하지 않게)
     .ai-info 하위로 특이도를 높여 파일 뒤쪽 기본규칙(16px)을 확실히 이김 */
  .ai-info .ai-info-btn{ width:24px; height:24px; font-size:12px; }

  /* 대시보드 */
  .kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;}
  .kpi-val{font-size:21px;}
  .pay-strip{flex-direction:column;align-items:stretch;gap:10px;padding:12px 14px;}
  .pay-div{width:auto;height:1px;margin:0;}
  .trend-bars{height:140px;gap:6px;}
  .store-grid{grid-template-columns:1fr;}

  /* 매장별 상세 / 정산 */
  .month-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  /* 긴 텍스트/숫자로 카드가 그리드를 밀어내지 않게 (넘침 가드) */
  .kpi-card,.fin-card,.store-card,.mypage-card,.pay-strip,.trend-box{
    min-width:0;max-width:100%;
  }
  .kpi-card *,.fin-card *,.store-card *{min-width:0;}
  .detail-controls{padding:12px 14px;gap:8px;}
  .detail-select{min-width:0;flex:1;}
  .section-header{flex-wrap:wrap;gap:8px;margin:20px 0 12px;}
  .search-box{width:100%;}

  /* 분석 — 매장 비교 행 세로 스택 */
  .cmp-row{grid-template-columns:1fr;gap:7px;padding:12px 14px;}
  .cmp-val{text-align:left;}

  /* 권한 관리 — 2컬럼 → 세로 스택 */
  .grants-layout{grid-template-columns:1fr;height:auto;min-height:0;}
  .grants-left,.grants-right{min-height:340px;max-height:60vh;}

  /* 마이페이지 / 모달 */
  .mypage-grid{grid-template-columns:1fr;}
  .modal-box{padding:22px 18px;max-height:86vh;}
}

/* ── 초소형 화면 (iPhone SE · 폴드 접힘 등, ≤390px) ── */
@media(max-width:390px){
  :root{
    --m-page-x:10px;
    --m-page-top:12px;
    --m-nav-h:62px;
  }
  .kpi-grid,.month-summary-grid{grid-template-columns:1fr !important;}
  .m-nav-btn{min-height:50px;}
  .m-nav-btn span{font-size:10px;}
}

/* ── 키보드 열림 상태 (app.js가 body.keyboard-open 부여) ──
   입력 포커스 중엔 하단 고정 탭을 숨겨 키보드와 겹치지 않게 */
@media(max-width:880px){
  body.keyboard-open .m-nav{display:none !important;}
  body.keyboard-open .content{padding-bottom:24px !important;}
}

/* ── 새 버전 배포 알림 바 ── */
.update-bar{
  position:fixed;left:50%;bottom:24px;transform:translate(-50%,16px);
  display:flex;align-items:center;gap:14px;
  background:var(--sb-bg);color:#fff;
  border:1px solid rgba(193,149,54,0.45);border-radius:12px;
  padding:11px 12px 11px 18px;z-index:2000;
  font-size:13px;font-weight:600;letter-spacing:-0.005em;
  box-shadow:0 16px 40px rgba(0,0,0,0.35);
  opacity:0;transition:opacity .25s ease,transform .3s ease;
  max-width:92%;
}
.update-bar.show{opacity:1;transform:translate(-50%,0);}
.update-bar i{color:var(--gold-bright);margin-right:2px;vertical-align:-2px;}
.update-bar button{
  flex-shrink:0;border:none;border-radius:8px;padding:8px 15px;cursor:pointer;
  background:linear-gradient(135deg,var(--gold-bright) 0%,var(--gold) 100%);
  color:#241c08;font-weight:800;font-size:12px;font-family:inherit;
  transition:filter .12s;
}
.update-bar button:hover{filter:brightness(1.06);}
@media(max-width:880px){
  .update-bar{
    bottom:calc(var(--m-nav-h) + env(safe-area-inset-bottom) + 14px);
    width:max-content;
  }
}

/* 로딩 스피너 (Tabler 아이콘 회전) */
@keyframes ti-spin{to{transform:rotate(360deg);}}
.es-icon .ti-loader-2,.gi .ti-loader-2{display:inline-block;animation:ti-spin 1.1s linear infinite;}


/* ════ AI 분석 리포트 ════ */
.ai-tab-btn{
  font-family:inherit;border:none;background:transparent;cursor:pointer;
  padding:8px 16px;border-radius:8px;font-size:12.5px;font-weight:700;color:var(--muted);
  transition:background .15s,color .15s;white-space:nowrap;
}
.ai-tab-btn:hover{color:var(--text);}
.ai-tab-btn.active{background:var(--card);color:var(--gold-dark);font-weight:800;box-shadow:0 1px 3px rgba(16,24,40,0.08);}
.ai-box{
  background:var(--card);border:1px solid var(--border);border-radius:14px;
  padding:18px 20px;margin-bottom:16px;box-shadow:0 1px 2px rgba(16,24,40,0.04);
}
.ai-box-title{font-size:13.5px;font-weight:800;color:var(--text);margin-bottom:4px;}
.ai-box-sub{font-size:11.5px;font-weight:600;color:var(--muted);line-height:1.6;margin-bottom:12px;}
.ai-table{width:100%;border-collapse:collapse;font-size:12.5px;}
.ai-table thead tr{color:var(--muted);font-size:11.5px;}
.ai-table th{text-align:right;padding:6px;font-weight:700;}
.ai-table th:first-child{text-align:left;}
.ai-table td{text-align:right;padding:8px 6px;border-top:1px solid var(--border);font-weight:700;color:var(--text);}
.ai-table td:first-child{text-align:left;font-weight:800;}
.ai-mini-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:12px;}
.ai-mini{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:12px 14px;}
.ai-mini .t{font-size:11px;font-weight:800;color:var(--muted);margin-bottom:5px;}
.ai-mini .v{font-size:19px;font-weight:800;color:var(--text);letter-spacing:-0.02em;}
.ai-mini .s{font-size:10.5px;font-weight:700;color:var(--muted);margin-top:3px;}


/* ════ ⓘ 정보 버튼 + 팝오버 (박스 설명 숨김용) ════ */
.ai-info{position:relative;display:inline-flex;vertical-align:middle;margin-left:6px;}
.ai-info-btn{
  width:16px;height:16px;border-radius:50%;border:1px solid var(--border);
  background:var(--panel);color:var(--muted);font-size:10px;font-weight:800;
  font-style:italic;font-family:Georgia,serif;cursor:pointer;line-height:1;
  display:inline-flex;align-items:center;justify-content:center;padding:0;flex-shrink:0;
}
.ai-info-btn:hover{border-color:var(--gold);color:var(--gold-dark);}
.ai-info.open .ai-info-btn{border-color:var(--gold);color:var(--gold-dark);background:var(--gold-soft);}
.ai-info-tip{
  display:none;position:absolute;top:22px;left:50%;transform:translateX(-50%);z-index:80;
  width:min(340px,82vw);background:var(--card);border:1px solid var(--border);border-radius:10px;
  box-shadow:0 10px 28px rgba(16,24,40,0.16);padding:11px 13px;
  font-size:11.5px;font-weight:600;color:var(--muted);line-height:1.7;text-align:left;white-space:normal;
}
.ai-info.open .ai-info-tip{display:block;}
/* 뷰포트 밖으로 넘칠 때 좌/우 끝에 정렬 (지표 산정 기준 등 우측 요소) */
.ai-info.flip-right .ai-info-tip{left:auto;right:0;transform:none;}
.ai-info.flip-left  .ai-info-tip{left:0;right:auto;transform:none;}

/* 단골 결제·보상 기간 토글 (최근 1개월 / 3개월) */
.ai-win-toggle{display:inline-flex;gap:2px;background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:2px;flex-shrink:0;}
.ai-win-btn{
  padding:5px 11px;border:none;background:transparent;border-radius:6px;cursor:pointer;
  font-size:11.5px;font-weight:800;color:var(--muted);white-space:nowrap;transition:all .15s;
}
.ai-win-btn:hover{color:var(--gold-dark);}
.ai-win-btn.active{background:var(--card);color:var(--gold-dark);box-shadow:0 1px 3px rgba(16,24,40,0.10);}

/* 솔루션 피드백 (👍/👎) 버튼 */
.ai-fb-btn{
  padding:6px 13px;border-radius:99px;border:1px solid var(--border);
  background:var(--card);color:var(--muted);font-size:12px;font-weight:800;cursor:pointer;
  transition:all .15s;white-space:nowrap;
}
.ai-fb-btn:hover{border-color:var(--gold);color:var(--gold-dark);transform:translateY(-1px);}
.ai-fb-btn.fb-on-up{background:rgba(29,158,117,0.12);border-color:rgba(29,158,117,0.5);color:#15803d;}
.ai-fb-btn.fb-on-down{background:rgba(217,72,72,0.10);border-color:rgba(217,72,72,0.45);color:#c0392b;}

/* ════════════════════════════════════════════════
   데스크톱 정리 (2026-07-25) — 광폭 모니터에서 읽는 폭·정렬 다듬기
   ≥881px · 정산 / 매장별 상세 / 분석 / AI 리포트 화면에만 적용
   (대시보드는 기존 디자인 그대로 둔다)
   ════════════════════════════════════════════════ */
@media(min-width:881px){
  /* 본문 최대 폭 — 초광폭에서 표·카드가 늘어져 시선 이동이 길어지는 문제 */
  #settlementView > div, #storeDetailView > div,
  #analyticsView > div, #aiReportView > div{
    max-width:1480px;margin-left:auto;margin-right:auto;
  }
  #settlementView .content-header, #storeDetailView .content-header,
  #analyticsView .content-header, #aiReportView .content-header{
    padding-left:max(28px,calc((100% - 1480px) / 2 + 28px));
    padding-right:max(28px,calc((100% - 1480px) / 2 + 28px));
    /* 헤더 높이 고정 — 아래 sticky 컨트롤 줄의 오프셋 기준 */
    height:57px;padding-top:0;padding-bottom:0;
  }
  #settlementView .content-header h2 small, #storeDetailView .content-header h2 small,
  #analyticsView .content-header h2 small, #aiReportView .content-header h2 small{
    white-space:nowrap;word-break:keep-all;
  }

  /* 기간·매장 선택 줄을 헤더 아래에 고정 — 표를 내려봐도 월을 잃지 않게 */
  .detail-controls{
    position:sticky;top:57px;z-index:9;
    background:rgba(255,255,255,0.92);backdrop-filter:blur(12px) saturate(1.1);
  }

  /* 정산·상세 표 — 열 구분과 숫자 정렬 강화 */
  .daily-table thead th{padding:11px 10px;}
  .daily-table td{padding:9px 10px;}
  .daily-table thead th.sub-th-total{border-left:1px solid rgba(193,149,54,0.22);}
  .fin-card-label{word-break:keep-all;}

  /* 분석 — 매장 비교 행: 매장명 폭 확보, 값 열 고정 폭 */
  .cmp-row{grid-template-columns:minmax(180px,240px) 1fr 150px;padding:12px 18px;}

  /* AI 리포트 — 문장이 길어지지 않도록 읽는 폭 제한 */
  #aiReportBody .ai-box{max-width:1040px;}
  #aiReportBody .ai-box + .ai-box{margin-top:0;}
}

/* ── 높은 화면에서만 일자별 매트릭스에 자체 스크롤 허용 (중첩 스크롤러 방지) ── */
@media(min-width:881px) and (min-height:900px){
  #settlementBody .table-scroll:last-of-type,
  #storeDetailBody .table-scroll:last-of-type{max-height:calc(100vh - 300px);overflow-y:auto;}
}

/* ── 초광폭 (≥1700px) ── */
@media(min-width:1700px){
  .kpi-grid{gap:16px;}
  .store-grid{gap:16px;}
}

/* ════════════════════════════════════════════════
   상단 알림 영역 — 급감 · 누락
   ════════════════════════════════════════════════ */
.alert-strip{display:flex;flex-direction:column;gap:8px;padding:14px 28px 0;}
.alert-strip[hidden]{display:none;}
.alert-item{
  display:flex;align-items:center;gap:12px;
  padding:12px 15px;border-radius:var(--r-md);
  background:var(--card);border:1px solid var(--border);box-shadow:var(--shadow-sm);
}
.alert-item .al-ic{
  width:34px;height:34px;border-radius:10px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;font-size:18px;
  background:var(--panel);color:var(--muted);
}
.alert-item .al-body{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1;}
.alert-item .al-title{font-size:13px;font-weight:800;color:var(--text);letter-spacing:-0.012em;}
.alert-item .al-sub{font-size:11.5px;font-weight:600;color:var(--muted);line-height:1.5;}
.alert-item .al-cta{
  flex-shrink:0;min-height:36px;padding:8px 14px;border-radius:8px;cursor:pointer;
  background:var(--card);border:1px solid var(--border);color:var(--text-soft);
  font-size:11.5px;font-weight:800;font-family:inherit;
  transition:border-color .15s,color .15s;
}
.alert-item .al-cta:hover{border-color:var(--gold);color:var(--gold-dark);}
.alert-item.danger{border-color:rgba(217,72,72,0.35);}
.alert-item.danger .al-ic{background:rgba(217,72,72,0.10);color:var(--red);}
.alert-item.danger .al-title{color:var(--red);}
.alert-item.warn{border-color:rgba(193,149,54,0.38);}
.alert-item.warn .al-ic{background:var(--gold-soft);color:var(--gold-dark);}
.alert-item.info{border-color:rgba(55,138,221,0.32);}
.alert-item.info .al-ic{background:rgba(55,138,221,0.10);color:var(--blue);}
.alert-more{
  display:flex;align-items:center;justify-content:center;gap:6px;
  min-height:40px;border-radius:9px;cursor:pointer;font-family:inherit;
  background:var(--card-soft);border:1px dashed var(--border);color:var(--muted);
  font-size:11.5px;font-weight:700;
}
.alert-more:hover{border-color:var(--gold);color:var(--gold-dark);}

/* ════════════════════════════════════════════════
   정산 합계 히어로 — 합계를 가장 먼저 읽히게
   ════════════════════════════════════════════════ */
.sum-hero{
  background:linear-gradient(135deg,var(--sb-bg-2) 0%,var(--sb-bg) 100%);
  border-radius:var(--r-lg);padding:20px 22px;margin-bottom:18px;
  box-shadow:0 10px 28px rgba(12,17,28,0.22);
}
.sum-hero .sh-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:9px;flex-wrap:wrap;}
.sum-hero .sh-label{font-size:11.5px;font-weight:800;color:rgba(255,255,255,0.55);letter-spacing:0.02em;}
.sum-hero .sh-chip{
  font-size:10.5px;font-weight:800;color:var(--gold-bright);
  background:rgba(193,149,54,0.16);padding:4px 10px;border-radius:99px;
}
.sum-hero .sh-amt{
  font-size:34px;font-weight:800;color:#fff;letter-spacing:-0.035em;line-height:1;
  font-variant-numeric:tabular-nums;
}
.sum-hero .sh-amt .unit{font-size:13px;font-weight:600;color:rgba(255,255,255,0.5);margin-left:5px;letter-spacing:0;}
.sum-hero .sh-bar{
  display:flex;height:9px;border-radius:99px;overflow:hidden;margin-top:16px;
  background:rgba(255,255,255,0.08);
}
.sum-hero .sh-bar span{height:100%;}
.sum-hero .sh-legend{display:flex;gap:22px;margin-top:12px;flex-wrap:wrap;}
.sum-hero .shl{display:flex;align-items:center;gap:7px;font-size:11px;font-weight:700;color:rgba(255,255,255,0.55);}
.sum-hero .shl i{width:8px;height:8px;border-radius:2px;display:inline-block;}
.sum-hero .shl b{font-size:13.5px;font-weight:800;color:#fff;font-variant-numeric:tabular-nums;}
.sum-hero .sh-stats{
  display:flex;gap:10px;margin-top:16px;padding-top:14px;
  border-top:1px solid rgba(255,255,255,0.1);flex-wrap:wrap;
}
.sum-hero .sh-stats > div{flex:1;min-width:110px;display:flex;flex-direction:column;gap:4px;}
.sum-hero .sh-stats span{font-size:10.5px;font-weight:700;color:rgba(255,255,255,0.45);}
.sum-hero .sh-stats b{font-size:13.5px;font-weight:800;color:#fff;font-variant-numeric:tabular-nums;}

/* 표 합계 행 — 남색 배경 + 골드 총액 (스크롤해도 하단 고정) */
.daily-table tbody tr.sum-row td,
.daily-table tr.sum-row td{
  background:var(--sb-bg);color:#fff;font-weight:800;
  border-top:1px solid var(--sb-border);
}
.daily-table tr.sum-row td.day-num{background:var(--sb-bg);color:var(--gold-bright);font-weight:900;}
.daily-table tr.sum-row td.total-cell{
  background:rgba(193,149,54,0.16);color:var(--gold-bright);font-weight:900;
  border-left-color:rgba(193,149,54,0.3);
}

/* 매장별 월 요약 — 데스크톱은 표, 모바일은 카드 */
.store-sum-cards{display:none;}
@media(max-width:880px){
  .desk-only{display:none !important;}
  .store-sum-cards{display:flex;flex-direction:column;gap:10px;margin-bottom:22px;}
  .ssc{
    background:var(--card);border:1px solid var(--border);border-radius:var(--r-md);
    padding:14px 15px;box-shadow:var(--shadow-sm);
  }
  .ssc-head{display:flex;align-items:center;gap:9px;}
  .ssc-rank{
    width:22px;height:22px;border-radius:7px;flex-shrink:0;
    display:flex;align-items:center;justify-content:center;
    background:var(--panel);color:var(--muted);font-size:11px;font-weight:900;
  }
  .ssc:first-child .ssc-rank{background:rgba(193,149,54,0.16);color:var(--gold-dark);}
  .ssc-name{
    flex:1;min-width:0;font-size:14px;font-weight:800;letter-spacing:-0.015em;
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  }
  .ssc-total{font-size:17px;font-weight:800;letter-spacing:-0.02em;font-variant-numeric:tabular-nums;}
  .ssc-total i{font-size:10.5px;font-weight:700;color:var(--muted-2);font-style:normal;margin-left:3px;}
  .ssc-bar{height:6px;border-radius:99px;background:var(--panel);overflow:hidden;margin-top:11px;}
  .ssc-bar span{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--gold-dark),var(--gold));}
  .ssc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:12px;}
  .ssc-grid > div{
    display:flex;flex-direction:column;gap:3px;
    padding:8px 10px;border-radius:8px;background:var(--card-soft);border:1px solid var(--line);
  }
  .ssc-grid span{font-size:9.5px;font-weight:700;color:var(--muted);}
  .ssc-grid b{font-size:12.5px;font-weight:800;font-variant-numeric:tabular-nums;}
  .ssc-grid b.c-cash{color:var(--orange);}
  .ssc-grid b.c-transfer{color:var(--blue);}
  .ssc-grid b.c-card{color:var(--purple);}
  .ssc-sum{
    display:flex;align-items:baseline;gap:8px;
    padding:14px 16px;border-radius:var(--r-md);background:var(--sb-bg);
  }
  .ssc-sum span{flex:1;font-size:12px;font-weight:900;color:var(--gold-bright);}
  .ssc-sum b{font-size:19px;font-weight:900;color:#fff;font-variant-numeric:tabular-nums;}
  .ssc-sum i{font-size:11px;font-weight:700;color:rgba(255,255,255,0.5);font-style:normal;}

  /* 알림 영역 — 상단바 바로 아래, 페이지 여백에 맞춤 */
  .alert-strip{padding:var(--m-page-top) var(--m-page-x) 0;gap:7px;}
  .alert-item{padding:11px 13px;gap:10px;}
  .alert-item .al-ic{width:30px;height:30px;font-size:16px;}
  .alert-item .al-cta{min-height:44px;padding:10px 13px;}
  .alert-more{min-height:44px;}
  /* 합계 히어로 — 폰 폭에 맞게 */
  .sum-hero{padding:16px 17px;border-radius:var(--r-md);}
  .sum-hero .sh-amt{font-size:29px;}
  .sum-hero .sh-legend{gap:14px;}
  .sum-hero .sh-stats > div{min-width:0;}
  /* 기간 이동 ◀▶ — 44px 기준으로 확대 */
  .month-shift-btn{min-width:44px;min-height:44px;}

  /* 선그래프 — 폰에서 과하게 넓어 좌우 스크롤이 길어지던 문제.
     min-width를 줄이고 축 라벨은 CSS로 키워 축소돼도 읽히게 한다 */
  .trend-box svg{min-width:420px !important;}
  .trend-box svg text{font-size:12px;}
  /* 매장이 많으면 범례가 한 줄을 넘기므로 줄바꿈 허용 */
  .trend-legend{flex-wrap:wrap;row-gap:8px;gap:12px;}
}

