/* 자동입찰 화면. 마피아넷 도구 페이지의 값을 그대로 쓴다 —
   배경 var(--ab-page), 카드 1px var(--ab-card-line) + radius 14px, 주 버튼 var(--ab-primary) radius 8px, 제목 30px/850. */

:root{
  --ab-page: #f8fafc;
  --ab-surface: #ffffff;
  --ab-surface-sub: #fafcff;
  --ab-surface-mute: #f1f5f9;
  --ab-text-strong: #111827;
  --ab-text: #1f2937;
  --ab-text-body: #475569;
  --ab-text-muted: #64748b;
  --ab-text-faint: #5f6d7e;
  --ab-text-tag: #5b6b7d;
  --ab-text-off: #6b7280;
  --ab-line: #eef2f7;        /* 표 줄 사이. 촘촘한 줄이라 연하게 */
  --ab-divider: #dbe5f3;     /* 칸을 가르는 선. 보여야 칸으로 읽힌다 */
  --ab-line-soft: #f4f7fa;
  --ab-card-line: #dbe5f3;      /* 카드·칩 윤곽. 마피아넷 실측값 */
  --ab-input-border: #8896a8;   /* 입력칸 테두리. 그 자체가 조작 요소 표시라 3:1이 필요하다 */
  --ab-primary: #3b82f6;
  --ab-primary-ink: #2563eb;
  --ab-primary-strong: #1d4ed8;
  --ab-primary-bg: #eef4ff;
  --ab-ok: #0f766e;
  --ab-ok-bg: #effaf7;
  --ab-warn: #8a6212;
  --ab-warn-bg: #fdf8ec;
  --ab-danger: #b3413a;
  --ab-mini-h: 34px;         /* 표 안의 작은 입력칸 */
  --ab-control-h: 36px;      /* 조회 조건 줄의 선택칸 */
  --ab-field-h: 40px;        /* 모달 폼의 입력칸 */
  --ab-fast: 120ms;
  --ab-move: 180ms;
}

*{box-sizing:border-box}
body{margin:0;background:var(--ab-page);color:#3f4c5a;
  font-family:'Pretendard','Pretendard Variable',-apple-system,BlinkMacSystemFont,'Apple SD Gothic Neo','Segoe UI','Malgun Gothic',sans-serif;
  font-size:14px;line-height:1.65;letter-spacing:-.01em;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  /* 스티키 푸터: 본문이 짧아도 푸터가 화면 바닥에 붙고 그 아래 빈 공간이 안 생기게 한다.
     사이드바·모달·FAB 는 position:fixed 라 이 컬럼 흐름 밖이라 영향 없음. */
  min-height:100vh;display:flex;flex-direction:column}
/* flex 컬럼에서 .ab 의 margin:0 auto 는 stretch 를 끄고 내용 폭으로 줄인다 — width:100% 로 항상 컨테이너 폭을 채운 뒤 max-width 로 캡·중앙정렬. */
body>main.ab{flex:1 0 auto;width:100%}
body>.pc-footer{flex-shrink:0}
button{font-family:inherit;cursor:pointer;border:0;background:none}
img{max-width:100%;display:block}

/* 한국어는 어절에서만 줄을 바꾼다. 기본값은 글자 사이 아무 데서나 끊어 '비/슷한'이 된다. 긴 주소만 넘칠 때 끊는다. */
.ab{word-break:keep-all;overflow-wrap:anywhere;max-width:1280px;margin:0 auto;padding:20px 16px 64px}

.ab-card,.ab-head,.ab-summary{background:var(--ab-surface);border:1px solid var(--ab-card-line);border-radius:14px;box-shadow:0 14px 34px rgba(15,23,42,.04)}
.ab-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:26px 28px;margin-bottom:16px}
.ab-eyebrow{display:inline-block;font-size:11px;font-weight:600;color:var(--ab-text-muted);letter-spacing:.02em}
.ab-head h1{margin:6px 0 0;font-size:30px;font-weight:850;color:var(--ab-text-strong);letter-spacing:-.02em}
.ab-head p{margin:10px 0 0;font-size:13px;color:var(--ab-text-muted);max-width:62ch;text-wrap:pretty}
.ab-head .ab-head-lead{max-width:none;white-space:nowrap;text-wrap:nowrap}
.ab-head .ab-head-lead b{color:var(--ab-text-strong)}
.ab-head-side{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.ab-chip{border:1px solid #e2e8f0;background:var(--ab-page);color:var(--ab-text-muted);border-radius:999px;padding:6px 12px;font-size:12px;white-space:nowrap}
.ab-link{transition:color var(--ab-fast) ease;display:inline-flex;align-items:center;min-height:24px;padding:0 4px;font-size:12px;font-weight:600;color:var(--ab-primary-ink);text-decoration:underline;cursor:pointer;background:none;border:0;font-family:inherit}
.ab-link:hover{color:var(--ab-primary-strong)}
.ab-link:focus-visible{outline:2px solid var(--ab-primary);outline-offset:2px;border-radius:6px}

.ab-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border-radius:8px;padding:0 20px;height:40px;font-size:14px;font-weight:600;text-decoration:none;white-space:nowrap;cursor:pointer}
.ab-btn:focus-visible,.ab-modal-close:focus-visible,.ab-choice:focus-visible{outline:2px solid var(--ab-primary);outline-offset:2px}
/* 흰 글씨를 얹으려면 --ab-primary(3.68:1)로는 모자란다. 한 단계 진한 쪽이 5.12:1이다. */
.ab-btn-primary{background:var(--ab-primary-ink);color:var(--ab-surface)}
.ab-btn-primary:hover{background:var(--ab-primary-strong)}
.ab-btn-ghost{background:var(--ab-surface);color:var(--ab-primary-strong);border:1px solid var(--ab-primary)}
.ab-btn-ghost:hover{background:#f0f7ff}
/* 조용한 두 번째 선택지. 같은 크기·같은 모양에 색만 뺀다 — '안 하기'도 정당한 답이라 링크로 격하하지 않는다. */
.ab-btn-quiet{background:var(--ab-surface);color:var(--ab-text-body);border:1px solid var(--ab-card-line)}
.ab-btn-quiet:hover{border-color:var(--ab-text-muted);color:var(--ab-text-strong)}
.ab-btn:disabled{opacity:.55;cursor:default}
.ab-btn-lg{height:46px;padding:0 26px;font-size:16px;border-radius:10px}

.ab-banner{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px;padding:16px 20px;border:1px solid #cfe0fb;background:#f2f7ff;border-radius:12px;font-size:13px;color:#3f5f8a}
.ab-banner[hidden]{display:none}   /* class display 가 UA [hidden] 을 이겨서 안 닫히던 것 — 닫기(X)·초기 숨김이 먹게 */
.ab-banner b{display:block;color:#1e3a8a;font-size:14px;margin-bottom:2px}

.ab-summary{display:grid;grid-template-columns:repeat(4,1fr);margin-bottom:16px;overflow:hidden}
.ab-stat{display:block;width:100%;text-align:left;padding:20px 22px;position:relative;background:none;border:0;font-family:inherit;transition:background var(--ab-fast) ease}
.ab-stat:hover{background:var(--ab-surface-sub)}
.ab-stat[aria-pressed=true]{background:var(--ab-primary-bg)}
.ab-stat[aria-pressed=true] span{color:var(--ab-primary-ink);font-weight:600}
.ab-stat:focus-visible{outline:2px solid var(--ab-primary);outline-offset:-2px}
.ab-stat+.ab-stat:before{content:'';position:absolute;left:0;top:20px;bottom:20px;border-left:1px solid var(--ab-divider)}
.ab-stat span{display:block;font-size:12px;color:var(--ab-text-muted)}
.ab-stat strong{display:block;margin-top:8px;font-size:28px;font-weight:800;color:var(--ab-text-strong);line-height:1.1}
.ab-stat-good strong{color:var(--ab-ok)}

.ab-card{margin-bottom:16px;overflow:hidden}
.ab-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 22px;border-bottom:1px solid var(--ab-line)}
.ab-card h2{margin:0;font-size:16px;font-weight:750;color:var(--ab-text-strong)}
.ab-count{color:var(--ab-primary-strong)}
/* 지면(파워링크/쇼핑검색) 1차 구분 — 제목 바로 아래 페이지 탭(밑줄형) */
.ab-surface-tabs{display:flex;gap:4px;margin:18px 0 2px;border-bottom:1px solid var(--ab-card-line)}
.ab-surface-tab{appearance:none;border:0;background:none;font-family:inherit;cursor:pointer;padding:11px 18px;font-size:15px;font-weight:700;color:var(--ab-text-muted);border-bottom:2px solid transparent;margin-bottom:-1px}
.ab-surface-tab:hover{color:var(--ab-text-strong)}
.ab-surface-tab[aria-selected=true]{color:var(--ab-primary-ink);border-bottom-color:var(--ab-primary-ink)}
.ab-surface-tab:focus-visible{outline:2px solid var(--ab-primary);outline-offset:2px;border-radius:6px}
.ab-surface-tab b{margin-left:6px;font-size:12px;font-weight:700;color:var(--ab-text-muted);background:var(--ab-surface-mute);border-radius:999px;padding:1px 8px}
.ab-surface-tab[aria-selected=true] b{color:var(--ab-primary-ink);background:var(--ab-primary-bg)}
.ab-sample{font-size:12px;font-weight:700;color:#92700f;background:#fef3c7;border:1px solid #f2d998;border-radius:6px;padding:4px 9px}
.ab-sample-note{margin:0 0 12px;padding:10px 14px;border:1px solid #f2d998;background:#fef8e7;border-radius:8px;font-size:13px;line-height:1.5;color:#7a5c00}
.ab-sample-note b{color:#92700f}
/* 연동 직후 넛지: 불러오기 유도 */
.ab-import-nudge{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:2px 0 12px;padding:11px 15px;border:1px solid #bfdbfe;background:linear-gradient(100deg,#eff6ff,#f7faff);border-radius:10px;font-size:13px;line-height:1.5;color:#1e3a8a}
.ab-import-nudge b{color:#1d4ed8}
/* .ab-card 가 overflow:hidden 이라 box-shadow 링은 잘린다 → 버튼 자체를 밝게+크게(안 잘림) */
.ab-import-glow{animation:ab-import-glow 1.05s ease-in-out infinite}
@keyframes ab-import-glow{
  0%,100%{transform:scale(1);filter:brightness(1)}
  50%{transform:scale(1.06);filter:brightness(1.22)}
}
.ab-muted{color:var(--ab-text-muted);font-size:13px}
.ab-filter-note{margin:0;padding:12px 22px;border-bottom:1px solid var(--ab-line);background:var(--ab-surface-sub);font-size:12px;color:var(--ab-text-tag)}
.ab-filter-note button{color:var(--ab-primary-strong);font-weight:600;text-decoration:underline;font-size:12px;margin-left:8px}

.ab-table-wrap{overflow-x:auto}
.ab-table{width:100%;border-collapse:collapse}
.ab-table th,.ab-table td{text-align:center}
/* 긴 이름은 왼쪽으로 읽는다. 머리글도 같은 축에 서야 한 열로 읽힌다. */
.ab-table .ab-th-name,.ab-table .ab-name,.ab-table .ab-name-cell{text-align:left}
/* 상태 배지는 왼쪽으로 읽는다 — 그 칸(내용)도 왼쪽으로 두어 왼쪽 머리글과 축을 맞춘다. */
.ab-table td.ab-state-cell{text-align:left}
.ab-table th{background:var(--ab-surface-sub);color:var(--ab-text-faint);font-size:11px;font-weight:600;padding:10px 16px;border-bottom:1px solid var(--ab-line);white-space:nowrap}
.ab-table td{padding:14px 16px;border-bottom:1px solid var(--ab-line-soft);font-size:13px;vertical-align:middle}
.ab-table tr:last-child td{border-bottom:0}
.ab-num{font-variant-numeric:tabular-nums;white-space:nowrap}
.ab-table td.ab-num small{color:var(--ab-text-muted)}
.ab-name{color:var(--ab-text);overflow-wrap:anywhere;max-width:340px}
.ab-name-content{display:flex;align-items:center;gap:10px;min-width:0}
.ab-name-content>div{min-width:0}
.ab-table tbody tr[data-product="shopping"]>td{padding-top:12px;padding-bottom:12px}
.ab-table-creative-image{flex:0 0 76px;width:76px;height:76px;border:1px solid var(--ab-line);border-radius:10px;background:#fff;object-fit:cover}
.ab-shopping-product-link{color:inherit;text-decoration:none}
.ab-shopping-product-link:hover{color:var(--ab-primary-strong);text-decoration:underline;text-underline-offset:2px}
.ab-shopping-product-link:focus-visible{border-radius:3px;outline:2px solid var(--ab-primary);outline-offset:2px}
.ab-shopping-product-price{display:block;margin-top:5px;font-size:13px;line-height:1.35;color:var(--ab-text-strong)}
@media(max-width:700px){.ab-table-creative-image{flex-basis:64px;width:64px;height:64px}}
/* 좁은 화면에서는 관리 표를 상품 카드로 바꾼다. 이름을 한 글자씩 눌러 담거나 가로 스크롤시키지 않는다. */
@media(max-width:640px){
  .ab-management-card .ab-table-wrap{overflow:visible}
  .ab-management-card .ab-table,.ab-management-card .ab-table tbody{display:block;width:100%}
  .ab-management-card .ab-table thead{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
  .ab-management-card .ab-table tbody{padding:10px;background:var(--ab-surface-sub)}
  .ab-management-card .ab-table tbody tr{display:grid;grid-template-columns:28px minmax(0,1fr);gap:0 8px;margin-bottom:10px;padding:12px;border:1px solid var(--ab-card-line);border-radius:12px;background:var(--ab-surface);box-shadow:0 1px 2px rgba(15,23,42,.04)}
  .ab-management-card .ab-table tbody tr:last-child{margin-bottom:0}
  .ab-management-card .ab-table tbody tr[hidden]{display:none}
  .ab-management-card .ab-table tbody tr>td{padding:9px 0;border:0;font-size:13px}
  .ab-management-card .ab-table tbody tr>td.ab-pick-col{grid-column:1;grid-row:1;padding:3px 0;align-self:start}
  .ab-management-card .ab-table tbody tr>td.ab-name{grid-column:2;grid-row:1;max-width:none;padding:0 0 12px;min-width:0}
  .ab-management-card .ab-name-content{align-items:flex-start}
  .ab-management-card .ab-name b,.ab-management-card .ab-shopping-product-link{overflow-wrap:anywhere;word-break:keep-all}
  .ab-management-card .ab-table tbody tr>td[data-label]{grid-column:1/-1;display:grid;grid-template-columns:112px minmax(0,1fr);align-items:center;gap:10px;border-top:1px solid var(--ab-line-soft);text-align:right;white-space:normal}
  .ab-management-card .ab-table tbody tr>td[data-label]::before{content:attr(data-label);text-align:left;font-size:11px;font-weight:650;color:var(--ab-text-muted);white-space:nowrap}
  .ab-management-card .ab-table tbody tr>td.ab-state-cell{text-align:right}
  .ab-management-card .ab-table tbody tr>td.ab-state-cell .ab-badge{justify-self:end;min-width:0}
  .ab-management-card .ab-table tbody tr>td.ab-switch-col .ab-row-switch{justify-self:end}
  .ab-management-card .ab-table tbody tr>td[data-label]>.ab-link{justify-self:end}
}
/* 쇼핑: 목표 구좌 자동 조정 힌트(목표셀) + 지면 중복금지 안내(쇼핑 탭 툴바) */
.ab-slot-clamp{display:inline-block;margin-top:4px;font-size:10.5px;font-weight:700;color:var(--ab-warn);background:var(--ab-warn-bg);border-radius:5px;padding:1px 6px;white-space:nowrap;cursor:default}
.ab-shopping-note{margin:12px 0 0;padding:11px 13px;border-radius:12px;background:var(--ab-surface-sub);border:1px solid var(--ab-card-line);font-size:12.5px;line-height:1.6;color:var(--ab-text-body)}
.ab-shopping-note b{color:var(--ab-text-strong)}
.ab-mini-text{width:130px;max-width:100%;height:28px;padding:0 8px;font-size:12px;border:1px solid var(--ab-input-border);border-radius:7px;background:var(--ab-surface);color:var(--ab-text);font-family:inherit}
.ab-manage-query .ab-manage-choice-label em{font-weight:400;color:var(--ab-text-muted);font-size:11px;margin-left:6px}
.ab-query-help{margin:7px 0 0;font-size:12px;line-height:1.55;color:var(--ab-text-muted)}
.ab-query-current-box{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:12px;padding:11px 12px;border:1px solid var(--ab-card-line);border-radius:10px;background:var(--ab-surface-sub)}
.ab-query-current-box>span{min-width:0}
.ab-query-current-box small{display:block;margin-bottom:3px;font-size:10.5px;color:var(--ab-text-muted)}
.ab-query-current-box b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;color:var(--ab-text-strong)}
.ab-query-current-box .ab-btn{flex:0 0 auto;height:34px;padding:0 12px}
.ab-query-search{display:block;margin-top:12px;font-size:11.5px;font-weight:650;color:var(--ab-text-body)}
.ab-query-search input[type="search"]{display:block;margin-top:5px;width:100%;height:36px;border:1px solid var(--ab-input-border);border-radius:8px;padding:0 11px;font:inherit;color:var(--ab-text);background:var(--ab-surface)}
.ab-query-result{min-height:16px;margin:6px 0 0;font-size:11.5px;color:var(--ab-text-muted)}
.ab-query-list{display:flex;flex-direction:column;gap:6px;margin-top:8px;max-height:260px;overflow-y:auto}
.ab-query-row{display:flex;align-items:flex-start;gap:10px;flex:0 0 auto;min-height:48px;padding:10px 11px;border:1px solid var(--ab-card-line);border-radius:10px;cursor:pointer;background:var(--ab-surface)}
.ab-query-row:hover{border-color:#93b8f7;background:var(--ab-surface-sub)}
.ab-query-row input[type="radio"]{display:block;box-sizing:border-box;margin:2px 0 0;padding:0;width:16px;height:16px;flex:0 0 16px;accent-color:var(--ab-primary)}
.ab-query-row input[type="radio"]:focus-visible{outline:2px solid var(--ab-primary);outline-offset:2px;box-shadow:none}
.ab-query-row:has(input:checked){border-color:var(--ab-primary-ink);background:var(--ab-primary-bg)}
.ab-query-row.is-reco{border-color:#bcd3fb}
.ab-query-main{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:13px;color:var(--ab-text)}
.ab-query-main b{font-weight:700;color:var(--ab-text-strong)}
.ab-query-metrics{display:flex;flex-wrap:wrap;gap:3px 7px;flex-basis:100%;color:var(--ab-text-muted);font-size:11.5px;margin-top:2px;font-variant-numeric:tabular-nums}
.ab-query-why{display:block;flex-basis:100%;font-weight:400;color:var(--ab-text-muted);font-size:11.5px;margin-top:2px}
.ab-query-why small{display:block;margin-top:2px;font-size:inherit;line-height:1.45}
.ab-qtag{font-style:normal;font-size:10.5px;font-weight:700;border-radius:5px;padding:1px 6px}
.ab-qtag.core{color:var(--ab-ok);background:var(--ab-ok-bg)}
.ab-qtag.watch{color:var(--ab-text-tag);background:var(--ab-surface-mute)}
.ab-qtag.waste{color:var(--ab-warn);background:var(--ab-warn-bg)}
.ab-qtag.reco{color:#fff;background:var(--ab-primary-ink)}
.ab-query-loading,.ab-query-empty{flex:0 0 auto;margin:8px 0 0;padding:12px;border-radius:9px;background:var(--ab-surface-sub);font-size:12.5px;line-height:1.5;color:var(--ab-text-muted)}
.ab-query-empty small{display:block;margin-top:3px;font-size:11.5px}
.ab-query-row[hidden]{display:none}
.ab-modal.ab-query-picker{z-index:2400}
.ab-modal-box.ab-query-picker-box{max-width:820px}
.ab-query-picker .ab-modal-help{margin:16px 0 0;padding:12px 14px;border-radius:10px;background:var(--ab-surface-sub);font-size:12.5px;line-height:1.6;color:var(--ab-text-body)}
.ab-query-picker .ab-query-list{gap:0;max-height:min(50vh,480px);border:1px solid var(--ab-card-line);border-radius:11px;overflow-y:auto}
.ab-query-picker .ab-query-row{min-height:56px;border:0;border-bottom:1px solid var(--ab-line-soft);border-radius:0;padding:12px 14px}
.ab-query-picker .ab-query-row:last-child{border-bottom:0}
.ab-query-picker .ab-query-row:hover{border-color:var(--ab-line-soft)}
.ab-query-picker .ab-query-row:has(input:checked){border-color:var(--ab-line-soft);box-shadow:inset 3px 0 0 var(--ab-primary-ink)}
.ab-query-picker .ab-query-empty,.ab-query-picker .ab-query-loading{margin:0;border-radius:0}
/* 후보 행의 ‘제외’ 버튼 — 라디오 선택과 나란히, 오른쪽에 둔다 */
.ab-query-exclude{flex:0 0 auto;align-self:center;margin-left:auto;border:1px solid var(--ab-card-line);border-radius:7px;background:var(--ab-surface);color:var(--ab-warn);font-size:11.5px;font-weight:700;padding:4px 9px;cursor:pointer;white-space:nowrap}
.ab-query-exclude:hover{border-color:var(--ab-warn);background:var(--ab-warn-bg)}
.ab-query-exclude:disabled{opacity:.6;cursor:default}
/* 제외 검색어 섹션 */
.ab-query-exclusions{margin-top:14px;padding-top:14px;border-top:1px solid var(--ab-line-soft)}
.ab-query-exclusions h3{margin:0 0 4px;font-size:13px;font-weight:700;color:var(--ab-text-strong)}
.ab-query-exclusions-help{margin:0 0 10px;font-size:11.5px;line-height:1.55;color:var(--ab-text-muted)}
.ab-exclusion-list{display:flex;flex-wrap:wrap;gap:7px}
.ab-exclusion-empty{margin:0;font-size:12px;color:var(--ab-text-muted)}
.ab-exclusion-chip{display:inline-flex;align-items:center;gap:7px;padding:5px 8px 5px 11px;border:1px solid var(--ab-card-line);border-radius:999px;background:var(--ab-surface-sub);font-size:12px}
.ab-exclusion-chip b{font-weight:700;color:var(--ab-text-strong)}
.ab-exclusion-remove{border:0;background:transparent;color:var(--ab-text-muted);font-size:11px;font-weight:700;cursor:pointer;padding:2px 4px;border-radius:6px}
.ab-exclusion-remove:hover{color:var(--ab-warn);background:var(--ab-warn-bg)}
.ab-query-picker .ab-modal-foot>.ab-muted{font-size:11.5px;line-height:1.5;color:var(--ab-text-muted)}
.ab-assign-query-options{max-height:none}
@media(max-width:560px){
  .ab-query-current-box{align-items:stretch;flex-direction:column}
  .ab-query-current-box .ab-btn{width:100%}
  .ab-query-picker .ab-modal-foot{align-items:stretch;flex-direction:column}
  .ab-query-picker .ab-modal-foot-right{display:grid;grid-template-columns:1fr 1fr}
}
.ab-name b{display:block;font-weight:650;line-height:1.45}
.ab-name span{display:block;margin-top:3px;font-size:11px;color:var(--ab-text-faint)}
.ab-sub{color:var(--ab-text-faint);font-size:12px;white-space:nowrap}
.ab-empty{padding:56px 16px;text-align:center;color:var(--ab-text-muted)}

.ab-badge{display:inline-flex;align-items:center;justify-content:flex-start;gap:6px;min-width:84px;font-size:12px;color:var(--ab-text-muted);white-space:nowrap;text-align:left}
.ab-badge:before{content:'';flex:0 0 auto;width:6px;height:6px;border-radius:50%;background:#cbd5e1}
.ab-reached{color:var(--ab-ok)}.ab-reached:before{background:#14b8a6}
.ab-adjusting,.ab-surged{color:#4f6bb0}.ab-adjusting:before,.ab-surged:before{background:#7d97d6}
.ab-dropped,.ab-missing{color:#a2573f}.ab-dropped:before,.ab-missing:before{background:#c2765b}
.ab-limited,.ab-budget,.ab-capped,.ab-review,.ab-setup,.ab-crowded{color:var(--ab-warn)}.ab-limited:before,.ab-budget:before,.ab-capped:before,.ab-review:before,.ab-setup:before,.ab-crowded:before{background:#d3a13c}
.ab-off,.ab-off_campaign,.ab-off_adgroup,.ab-off_keyword,.ab-off_ad{color:#a2573f}.ab-off:before,.ab-off_campaign:before,.ab-off_adgroup:before,.ab-off_keyword:before,.ab-off_ad:before{background:#c2765b}

/* 관리 방식 선택 — 크게 두 갈래 */
.ab-choose{padding:28px}
.ab-choose h2{font-size:22px;font-weight:800}
.ab-choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:20px}
.ab-choice{display:block;text-align:left;border:1px solid var(--ab-card-line);border-radius:14px;padding:24px;background:var(--ab-surface)}
.ab-choice:hover{border-color:#93b8f7;background:var(--ab-surface-sub)}
.ab-choice-icon{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:12px;background:var(--ab-primary-bg);color:var(--ab-primary-strong);font-size:22px}
.ab-choice strong{display:block;margin-top:16px;font-size:18px;font-weight:800;color:var(--ab-text-strong)}
.ab-choice small{display:block;margin-top:8px;font-size:12.5px;color:var(--ab-text-muted);line-height:1.75}
.ab-choice-go{display:block;margin-top:16px;font-size:13px;font-weight:700;color:var(--ab-primary-strong)}

/* 카드 머리의 오른쪽 묶음. 임포트 카드에만 있던 규칙인데 활동 카드도 같은 모양을 쓴다. */
.ab-card-actions{display:flex;align-items:center;gap:14px}
.ab-card-head-tabs .ab-import-launch{margin-left:auto}
.ab-import-workflow[hidden]{display:none}
.ab-import-workflow:not(.is-open) .ab-import-close{display:none}
body.ab-importing{overflow:hidden}
.ab-import-workflow.is-open{position:fixed;inset:0;z-index:2000;margin:0;border:0;border-radius:0;background:var(--ab-page);overflow-y:auto;padding:24px 32px 40px}
/* 데스크톱에서는 마피아넷의 전역 탐색을 가리지 않는다. 등록 흐름에서도 다른 도구와 현재 위치가 계속 보인다. */
@media(min-width:1024px){.ab-import-workflow.is-open{left:248px}}
.ab-import-workflow.is-open>.ab-card-head,.ab-import-workflow.is-open>.ab-muted,.ab-import-workflow.is-open>.ab-panel{width:min(1480px,100%);margin-left:auto;margin-right:auto;box-sizing:border-box}
.ab-import-workflow.is-open>.ab-card-head{position:sticky;top:0;z-index:4;margin-top:0;padding-top:8px;background:var(--ab-page);border-bottom:0}
.ab-import-workflow.is-open>.ab-muted{padding:8px 22px 18px}
.ab-import-workflow.is-open>.ab-panel{margin-bottom:0;box-shadow:0 12px 36px rgba(15,23,42,.08)}
.ab-import-workflow.is-open .ab-panel-head{flex-direction:row;align-items:center;justify-content:space-between;gap:16px}
.ab-import-workflow.is-open .ab-panel-head>[data-open-screen-guide]{flex:none;align-self:center}
.ab-import-workflow.is-open .ab-pick{grid-template-columns:320px minmax(0,1fr)}
/* 키워드가 많아도 고정 높이 안에서만 스크롤 — 위 선택바(전체 선택·선택 목록에 추가)가 늘 보이게 */
.ab-import-workflow.is-open .ab-import-results{max-height:calc(100vh - 400px);min-height:200px;overflow-y:auto}
.ab-import-workflow.is-open .ab-result-selectbar{position:sticky;top:0;z-index:1;background:var(--ab-surface)}
.ab-import-workflow.is-open .ab-panel-scroll{max-height:none}
.ab-import-workflow.is-open .ab-assign-sections{grid-template-columns:1fr}
.ab-import>.ab-muted{margin:0;padding:16px 22px}
.ab-import .ab-panel{margin:0 22px 22px}
.ab-import-result{margin-top:18px;font-size:13px;color:var(--ab-text-body)}
.ab-panel{margin-top:18px;border:1px solid #e6edf6;border-radius:12px;overflow:hidden;background:var(--ab-surface)}
.ab-panel-head{display:flex;flex-direction:column;gap:4px;padding:14px 16px;border-bottom:1px solid var(--ab-line);background:var(--ab-surface-sub)}
.ab-panel-head b{display:block;font-size:14px;color:var(--ab-text)}
.ab-panel-head span{display:block;margin-top:3px;font-size:12px;color:var(--ab-text-faint)}
.ab-panel-head .ab-link{transition:color var(--ab-fast) ease;align-self:flex-start;margin-bottom:2px}
.ab-import-steps{display:grid;grid-template-columns:repeat(3,1fr);list-style:none;margin:0;padding:0;border-bottom:1px solid var(--ab-line);background:var(--ab-surface)}
.ab-import-steps li{display:flex;align-items:center;justify-content:center;gap:7px;padding:12px 8px;font-size:12px;color:var(--ab-text-muted);border-right:1px solid var(--ab-line)}
.ab-import-steps li:last-child{border-right:0}
.ab-import-steps li span{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:999px;background:var(--ab-surface-mute);font-size:11px;font-weight:800}
.ab-import-steps li b{font-weight:650;white-space:nowrap;word-break:keep-all}
.ab-import-steps li.on{color:var(--ab-primary-strong);background:var(--ab-primary-bg)}
.ab-import-steps li.on span{color:#fff;background:var(--ab-primary)}
.ab-import-steps li.done{color:var(--ab-ok)}
.ab-import-steps li.done span{font-size:0;background:var(--ab-ok);color:#fff}
.ab-import-steps li.done span:after{content:'✓';font-size:12px}
/* 스크롤은 목록에만 준다. 본문 전체를 스크롤 박스로 두면 왼쪽 레일과 조건 제목이 같이 밀린다. */
#ab-panel-body{max-height:none;overflow:visible}
.ab-panel-scroll{max-height:420px;overflow-y:auto}
.ab-group-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 16px;background:var(--ab-surface-sub);border-bottom:1px solid var(--ab-line);font-size:12px;color:var(--ab-text-faint)}
.ab-group-head b{font-size:13px;color:#334155}
.ab-row-btn{display:flex;align-items:center;gap:10px;flex-wrap:wrap;width:100%;text-align:left;padding:12px 16px;border-bottom:1px solid var(--ab-line-soft);font-size:13px}
.ab-row-btn:hover{background:var(--ab-surface-sub)}
.ab-row-main{font-weight:650;color:var(--ab-text)}
.ab-row-sub{color:var(--ab-text-faint);font-size:12px;margin-right:auto}
.ab-row-empty{padding:28px 16px;text-align:center;color:var(--ab-text-muted);font-size:13px;margin:0}
.ab-flag{font-size:11px;font-weight:600;border-radius:6px;padding:3px 8px;white-space:nowrap}
.ab-flag-ok{color:var(--ab-ok);background:var(--ab-ok-bg)}
.ab-flag-off{color:var(--ab-text-muted);background:var(--ab-surface-mute)}
.ab-flag-reviewing{color:#4f6bb0;background:#eef3fc}
.ab-flag-disapproved{color:#a2573f;background:#fdf3ee}
.ab-flag-budget,.ab-flag-capped,.ab-flag-review{color:var(--ab-warn);background:var(--ab-warn-bg)}
.ab-landings{padding:16px;border-top:1px solid var(--ab-line);font-size:12px;color:var(--ab-text-tag)}
.ab-landings b{display:block;margin-bottom:8px;color:#334155}
.ab-landings ul{margin:0;padding-left:18px;line-height:1.9;overflow-wrap:anywhere}
.ab-panel-foot{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:14px 16px;border-top:1px solid var(--ab-line);background:var(--ab-surface-sub)}
/* 왼쪽엔 보조/뒤로(설정 수정)·안내, 오른쪽 끝엔 주 버튼(관리 시작/다음). 버튼 두 개가 어중간하게 벌어지지 않게 주 버튼만 오른쪽으로. */
.ab-panel-foot .ab-btn-primary{margin-left:auto}
/* 전체화면 불러오기: 하단 바 오른쪽에 플로팅 FAB 폭만큼 여백을 둬 액션 버튼이 FAB 밑으로 안 들어가게 */
.ab-import-workflow.is-open .ab-panel-foot{padding-right:184px}
@media(max-width:640px){.ab-import-workflow.is-open .ab-panel-foot{padding-right:72px}}
.ab-pick-table td{padding:10px 12px}
.ab-stage-note{margin:0;padding:11px 20px;border-bottom:1px solid var(--ab-line);background:#f8fbff;font-size:12px;color:var(--ab-text-muted)}
.ab-check{display:flex;align-items:center;gap:8px;cursor:pointer}
.ab-check input{width:15px;height:15px;flex-shrink:0}
.ab-check span{font-weight:650;color:var(--ab-text);overflow-wrap:anywhere}
.ab-check input:disabled+span{color:var(--ab-text-muted);font-weight:400}
.ab-mini-wrap{display:inline-flex;align-items:center;gap:5px}
.ab-mini-wrap i{font-style:normal;font-size:12px;color:var(--ab-text-faint)}
.ab-mini{transition:border-color var(--ab-fast) ease,box-shadow var(--ab-move) ease;width:56px;height:var(--ab-mini-h);border:1px solid var(--ab-input-border);border-radius:8px;padding:0 8px;font-family:inherit;font-size:13px;text-align:center;color:var(--ab-text);-moz-appearance:textfield}
.ab-mini-wide{width:84px}
.ab-mini::-webkit-outer-spin-button,.ab-mini::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.ab-mini::placeholder{color:#7b8798}
.ab-mini:hover:not(:disabled){border-color:#c3d4ec}
.ab-mini:focus{outline:none;border-color:var(--ab-primary);box-shadow:0 0 0 3px rgba(59,130,246,.12)}
.ab-mini:disabled{background:#f1f4f8;border-color:#c8d3e2;color:var(--ab-text-off)}
.ab-mini:disabled+i{color:var(--ab-text-off)}
.ab-dim{color:var(--ab-text-muted)}
.ab-reasons{margin:0;padding:16px 16px 16px 34px;font-size:13px;line-height:1.8;color:var(--ab-text-tag)}
.ab-reasons b{color:var(--ab-text)}
/* 연동 모달 */
.ab-modal{position:fixed;inset:0;z-index:60;background:rgba(15,23,42,.45);padding:24px 16px;overflow-y:auto;display:flex;align-items:flex-start;justify-content:center}
.ab-modal[hidden]{display:none}
.ab-modal-box{width:100%;max-width:640px;background:var(--ab-surface);border-radius:16px;padding:24px;margin:auto}
.ab-modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.ab-modal-head h2{margin:4px 0 0;font-size:22px;font-weight:800;color:var(--ab-text-strong)}
.ab-modal-close{font-size:22px;color:var(--ab-text-muted);width:34px;height:34px;border-radius:8px;line-height:1}
.ab-modal-close:hover{background:var(--ab-surface-mute)}
/* 드로어(키워드별 설정) 닫기 X — 옅어서 안 보이던 것, 버튼처럼 또렷하게 */
.ab-drawer .ab-modal-close{background:var(--ab-surface-mute);border:1px solid var(--ab-card-line);color:var(--ab-text-strong);font-weight:700}
.ab-drawer .ab-modal-close:hover{background:#e2e8f0;border-color:var(--ab-text-muted)}
.ab-modal-sm{max-width:520px}
.ab-fields-row{grid-template-columns:1fr 1fr}
.ab-fields label[hidden]{display:none}
.ab-modal-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:20px}
.ab-modal-foot-right{display:flex;gap:8px}
.ab-danger{color:var(--ab-danger)}
.ab-form-hint{color:var(--ab-text-muted)}
.ab-remove-confirm{z-index:90;background:rgba(15,23,42,.56)}
.ab-remove-summary{margin:20px 0 0;font-size:15px;line-height:1.65;color:var(--ab-text-body);word-break:keep-all}
.ab-remove-summary b{color:var(--ab-text-strong)}
.ab-remove-warning{display:flex;align-items:flex-start;gap:12px;margin-top:16px;padding:14px;border:1px solid #efc3bf;border-radius:12px;background:#fff7f6;color:#7f2f2a}
.ab-remove-warning[hidden]{display:none}
.ab-remove-warning-mark{display:grid;place-items:center;flex:0 0 24px;width:24px;height:24px;border-radius:50%;background:var(--ab-danger);color:#fff;font-size:13px;font-weight:900}
.ab-remove-warning b{display:block;font-size:13px;color:#7f2f2a}
.ab-remove-warning p{margin:4px 0 0;font-size:12px;line-height:1.6;color:#8f403a}
.ab-remove-effect{margin:14px 0 0;padding-left:12px;border-left:3px solid var(--ab-line);font-size:12px;line-height:1.65;color:var(--ab-text-muted);word-break:keep-all}
.ab-remove-foot{justify-content:flex-end}
.ab-remove-foot .ab-btn{min-width:112px}
@media(max-width:520px){.ab-remove-foot{display:grid;grid-template-columns:1fr 1fr}.ab-remove-foot .ab-btn{width:100%;min-width:0}}
.ab-manage-average{display:grid;gap:14px}
.ab-manage-average[hidden]{display:none}
.ab-average-setting{display:grid;grid-template-columns:76px minmax(0,1fr);align-items:center;gap:12px}
.ab-manage-choice-label{font-size:12px;font-weight:700;color:var(--ab-text-body)}
.ab-average-ranks .ab-seg-btn{padding:0 6px}
.ab-manage-average .ab-modal-note{margin:0}
@media(max-width:420px){.ab-average-setting{grid-template-columns:1fr;gap:6px}}
/* 연동 모달이 쓰는 각주 스타일. 지우면 그 안내가 본문 크기로 커진다. */
.ab-footnote{font-size:11px;color:var(--ab-text-muted);line-height:1.7;margin:14px 0 0}
.ab-steps{display:flex;gap:8px;list-style:none;margin:20px 0 18px;padding:0;font-size:12px;color:var(--ab-text-muted);counter-reset:s}
.ab-steps li{flex:1;padding:8px 10px;border-radius:8px;background:var(--ab-page);border:1px solid var(--ab-line);text-align:center;counter-increment:s;cursor:pointer;user-select:none;transition:border-color var(--ab-fast) ease,color var(--ab-fast) ease}
.ab-steps li:hover{border-color:#cfe0fb;color:var(--ab-primary-ink)}
.ab-steps li:focus-visible{outline:2px solid var(--ab-primary);outline-offset:2px}
.ab-steps li:before{content:counter(s) '. '}
.ab-steps li.on{background:var(--ab-primary-bg);border-color:#cfe0fb;color:var(--ab-primary-ink);font-weight:700}
.ab-step-text{font-size:14px;color:#334155;margin:0 0 14px}
.ab-step img{border:1px solid var(--ab-line);border-radius:10px;background:var(--ab-surface);max-height:320px;object-fit:contain;width:100%}
.ab-step-img-sm{max-height:200px}
/* 1단계는 두 장(검색광고+도구 → SA API 사용관리)을 나란히. 좁으면 위아래로 쌓인다. */
.ab-step-imgs{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.ab-step-imgs img{max-height:260px}
@media (max-width:520px){.ab-step-imgs{grid-template-columns:1fr}}
.ab-step-nav{display:flex;justify-content:space-between;gap:10px;margin-top:18px}
/* 보고서에도 연결 체크박스(연동 모달 3단계) */
.ab-report-also{display:flex;align-items:flex-start;gap:9px;margin:16px 0 0;padding:12px;border:1px solid var(--ab-border,#e5e7eb);border-radius:10px;background:var(--ab-surface,#fff);cursor:pointer;font-size:13px;color:var(--ab-text-body,#334155);line-height:1.5}
.ab-report-also[hidden]{display:none}
.ab-report-also input{flex:0 0 auto;margin-top:2px;width:16px;height:16px;accent-color:var(--ab-primary,#3b82f6)}
.ab-report-also small{display:block;color:var(--ab-text-muted,#64748b);font-size:11.5px;margin-top:2px}
.ab-fields{display:grid;gap:12px;margin-top:16px}
.ab-fields label{font-size:12px;font-weight:600;color:var(--ab-text-body)}
.ab-fields input:not([type="radio"]):not([type="checkbox"]){display:block;margin-top:6px;width:100%;height:var(--ab-field-h);border:1px solid var(--ab-input-border);border-radius:8px;padding:0 12px;font-size:14px;font-family:inherit;color:var(--ab-text)}
.ab-fields input:focus,.ab-fields select:focus{outline:none;border-color:var(--ab-primary);box-shadow:0 0 0 3px rgba(59,130,246,.12)}
.ab-fields select{display:block;margin-top:6px;width:100%;height:var(--ab-field-h);border:1px solid var(--ab-input-border);border-radius:8px;padding:0 8px;font-family:inherit;font-size:14px;color:var(--ab-text);background:var(--ab-surface)}
.ab-field-unit{display:flex;align-items:center;gap:6px;min-width:0;margin-top:6px}
.ab-field-unit i{font-style:normal;font-size:12px;font-weight:500;color:var(--ab-text-faint)}
.ab-fields .ab-field-unit input{min-width:0;margin-top:0;-moz-appearance:textfield}
.ab-fields input::-webkit-outer-spin-button,.ab-fields input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.ab-form-error{color:var(--ab-danger);font-size:12px;margin:10px 0 0;min-height:1em}

/* 오른쪽 아래. FAQ 플로팅 버튼(48px, bottom 24px) 위에 뜨도록 bottom 을 올린다. */
#ab-toast{position:fixed;bottom:88px;right:24px;left:auto;transform:translateY(8px);background:#1e293b;color:var(--ab-surface);border-radius:10px;padding:12px 18px;font-size:13px;box-shadow:0 12px 30px rgba(15,23,42,.22);opacity:0;pointer-events:none;transition:opacity var(--ab-fast) ease,transform var(--ab-fast) ease;z-index:4000;max-width:min(360px,calc(100vw - 32px))}
#ab-toast.on{opacity:1;transform:translateY(0)}
@media (max-width:640px){#ab-toast{right:16px;left:16px;bottom:80px;max-width:none;text-align:center}}

@media(max-width:760px){
  .ab-head{display:block;padding:20px}
  .ab-head h1{font-size:24px}
  .ab-head-side{justify-content:flex-start;margin-top:16px}
  .ab-summary{grid-template-columns:1fr 1fr}
  .ab-stat:nth-child(3),.ab-stat:nth-child(4){border-top:1px solid var(--ab-divider)}
  .ab-stat:nth-child(3):before{display:none}
  .ab-choice-grid{grid-template-columns:1fr}
  .ab-banner{display:block}
  .ab-banner .ab-btn{margin-top:12px}
}
@media(max-width:700px){.ab-import-workflow.is-open{padding:16px 12px 28px}.ab-import-workflow.is-open>.ab-card-head{top:0;margin-top:0;padding:4px 4px 10px}.ab-import-workflow.is-open>.ab-muted{padding:6px 4px 14px}.ab-import-workflow.is-open .ab-pick{grid-template-columns:1fr}}

/* 광고 고르기 — 왼쪽에서 어디를, 오른쪽에서 무엇을 */
.ab-pick{display:grid;grid-template-columns:264px minmax(0,1fr)}
.ab-pick-nav{border-right:1px solid var(--ab-line);background:var(--ab-surface-sub);padding:6px 0}
.ab-nav-block{padding:12px 16px}
.ab-nav-block+.ab-nav-block{border-top:1px solid var(--ab-surface-mute)}
.ab-nav-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:8px}
.ab-nav-head span{font-size:11px;font-weight:700;letter-spacing:.02em;color:var(--ab-text-faint)}
.ab-nav-head em{font-style:normal;font-size:11px;color:var(--ab-text-muted)}
.ab-nav-note{margin:8px 0 0;font-size:11px;line-height:1.6;color:var(--ab-text-muted)}
.ab-nav-empty{margin:0;font-size:12px;color:var(--ab-text-muted)}
.ab-seg{display:flex;gap:4px;padding:3px;background:var(--ab-line);border-radius:9px}
.ab-seg-btn{transition:background var(--ab-fast) ease,color var(--ab-fast) ease;flex:1 1 0;min-width:0;height:30px;border:0;border-radius:7px;background:none;font-family:inherit;font-size:12px;font-weight:600;color:var(--ab-text-body);cursor:pointer}   /* 트랙(--ab-line) 위라 muted는 4.23:1로 모자란다 */
.ab-seg-btn.on{background:var(--ab-surface);color:var(--ab-primary-strong);box-shadow:0 1px 2px rgba(15,23,42,.08)}
.ab-seg-btn:focus-visible{outline:2px solid var(--ab-primary);outline-offset:1px}
.ab-nav-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}
.ab-nav-scroll{max-height:280px;overflow-y:auto;margin-right:-6px;padding-right:6px}
.ab-nav-item{transition:background var(--ab-fast) ease;display:flex;align-items:center;gap:8px;width:100%;text-align:left;padding:8px 10px;border:0;border-radius:8px;background:none;font-family:inherit;cursor:pointer}
.ab-nav-item b{flex:1 1 auto;min-width:0;font-size:13px;font-weight:600;line-height:1.4;color:var(--ab-text-body);white-space:normal;overflow-wrap:anywhere;word-break:break-word}
.ab-nav-item:hover{background:#f1f6fd}
.ab-nav-item.on{background:var(--ab-primary-bg)}
.ab-nav-item.on b{color:var(--ab-primary-strong);font-weight:700}
.ab-nav-item.muted b{color:var(--ab-text-muted)}
.ab-nav-item:focus-visible{outline:2px solid var(--ab-primary);outline-offset:-2px}
.ab-tag{flex:0 0 auto;font-style:normal;font-size:11px;font-weight:600;color:var(--ab-text-tag);background:var(--ab-surface-mute);border-radius:5px;padding:2px 5px}
.ab-tag.ok{color:var(--ab-ok);background:var(--ab-ok-bg)}
.ab-tag.warn{color:var(--ab-warn);background:var(--ab-warn-bg)}

.ab-pick-main{display:flex;flex-direction:column;min-width:0}
.ab-pick-empty{display:flex;align-items:center;justify-content:center;min-height:220px;padding:24px}
.ab-pick-empty p{margin:0;font-size:13px;color:var(--ab-text-muted)}
.ab-shopping-unsupported{margin:20px;padding:22px;border:1px solid #fed7aa;border-radius:12px;background:#fff7ed;color:#9a3412}
.ab-shopping-unsupported>span{display:inline-flex;padding:3px 8px;border-radius:999px;background:#ffedd5;font-size:11px;font-weight:750}
.ab-shopping-unsupported h3{margin:10px 0 6px;font-size:16px;color:#9a3412}
.ab-shopping-unsupported p{margin:0;font-size:13px;line-height:1.7;color:#7c2d12}
.ab-shopping-unsupported small{display:block;margin-top:10px;font-size:12px;line-height:1.6;color:#9a3412}
.ab-main-head{padding:16px 20px;border-bottom:1px solid var(--ab-line)}
.ab-main-head b{display:block;font-size:16px;font-weight:700;color:var(--ab-text-strong)}
.ab-main-head span{display:block;margin-top:3px;font-size:12px;color:var(--ab-text-faint)}
.ab-main-body{padding:4px 0 0}
.ab-main-note{margin:16px 20px 0;font-size:13px;color:var(--ab-text-body)}
.ab-main-body .ab-reasons{margin-top:12px}
.ab-main-body .ab-footnote{padding:0 20px 14px;margin:10px 0 0}

/* 순위 조회 조건 — 표 위에 제 자리를 준다 */
.ab-where{padding:16px 20px;border-bottom:1px solid var(--ab-line);background:var(--ab-surface-sub)}
.ab-where-head{margin-bottom:12px}
.ab-where-head b{font-size:12px;font-weight:700;color:var(--ab-text-body)}
.ab-where-head span{display:block;margin-top:3px;font-size:11px;color:var(--ab-text-muted)}
.ab-where-grid{display:flex;flex-wrap:wrap;gap:14px 20px;align-items:flex-start}
.ab-where-field{display:flex;flex-direction:column;gap:6px;min-width:0}
.ab-where-field>span{font-size:11px;font-weight:600;color:var(--ab-text-faint)}
.ab-where-field select{height:var(--ab-control-h);min-width:132px;border:1px solid var(--ab-input-border);border-radius:8px;padding:0 10px;font-family:inherit;font-size:13px;color:var(--ab-text);background:var(--ab-surface)}
.ab-where-field select:focus{outline:none;border-color:var(--ab-primary);box-shadow:0 0 0 3px rgba(59,130,246,.12)}
.ab-where-wide{flex:1 1 340px}
.ab-where-fixed{display:inline-flex;align-items:center;gap:6px;height:var(--ab-control-h);font-size:13px;font-weight:650;color:var(--ab-text)}
.ab-where-fixed em{font-style:normal;font-size:11px;font-weight:500;color:var(--ab-text-muted)}

@media (max-width:860px){
  .ab-pick{grid-template-columns:1fr}
  .ab-pick-nav{border-right:0;border-bottom:1px solid var(--ab-line)}
  .ab-nav-scroll{max-height:200px}
}
/* 순위 조회 지역 — 시 → 구 → 동 */
.ab-region-box{display:block}
.ab-region{display:inline-flex;gap:6px;flex-wrap:wrap;align-items:center}
.ab-region select{height:var(--ab-control-h);max-width:150px;border:1px solid var(--ab-input-border);border-radius:8px;padding:0 8px;font-family:inherit;font-size:13px;color:var(--ab-text);background:var(--ab-surface)}
.ab-region select:focus{outline:none;border-color:var(--ab-primary);box-shadow:0 0 0 3px rgba(59,130,246,.12)}
.ab-fields .ab-region-box{margin-top:6px}
.ab-fields .ab-region{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:var(--ab-field-h);gap:6px;width:100%}
.ab-fields .ab-region select{width:100%;min-width:0;height:var(--ab-field-h);max-width:none;margin-top:0;font-size:14px}

/* 설정 모달 — 정하는 것끼리 묶는다 */
.ab-modal-section{padding-top:18px;margin-top:18px;border-top:1px solid var(--ab-line)}
.ab-modal-section:first-of-type{padding-top:14px;margin-top:14px}
.ab-modal-box>.ab-modal-section:first-of-type{border-top:0}
.ab-modal-section h3{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;margin:0;font-size:12px;font-weight:700;color:var(--ab-text-body)}
.ab-modal-section h3 em{font-style:normal;font-size:11px;font-weight:500;color:var(--ab-text-muted)}
.ab-modal-section .ab-fields{margin-top:10px}

/* 움직임을 줄이라는 설정이면 전환과 부드러운 스크롤을 끈다. */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important;scroll-behavior:auto !important}
}

/* 고른 것들에 한 번에 적용하는 줄 */
.ab-bulk{display:flex;align-items:flex-end;gap:14px;flex-wrap:wrap;padding:12px 20px;border-bottom:1px solid var(--ab-line);background:var(--ab-primary-bg)}
.ab-bulk[hidden]{display:none}
.ab-bulk>b{font-size:12px;font-weight:700;color:var(--ab-primary-strong);padding-bottom:9px}
.ab-bulk-field{display:flex;flex-direction:column;gap:6px;font-size:11px;font-weight:600;color:var(--ab-text-faint)}
.ab-btn-sm{height:var(--ab-mini-h);padding:0 14px;font-size:13px}
.ab-bulk .ab-link{transition:color var(--ab-fast) ease;padding-bottom:9px}
.ab-pick-cell{width:44px;text-align:center}
.ab-pick-cell input{width:16px;height:16px;cursor:pointer}
.ab-name-cell{font-weight:650;color:var(--ab-text);overflow-wrap:anywhere}
.ab-check-name{display:block;max-width:320px}

@media (max-width:720px){
  .ab-mini,.ab-fields input,.ab-fields select,.ab-region select,.ab-where-field select{font-size:16px}
}

/* 기다리는 동안 자리를 지키는 뼈대 */
.ab-skeleton{display:flex;flex-direction:column;gap:10px;padding:18px 20px}
.ab-skeleton span{display:block;height:14px;border-radius:6px;background:linear-gradient(90deg,var(--ab-line),#f6f9fc,var(--ab-line));background-size:200% 100%;animation:ab-shimmer 1.2s linear infinite}
.ab-skeleton span:nth-child(odd){width:82%}
.ab-skeleton span:nth-child(even){width:64%}
@keyframes ab-shimmer{from{background-position:200% 0}to{background-position:-200% 0}}

/* 값이 빠진 칸은 그 자리에서 표시한다 */
[aria-invalid="true"]{border-color:var(--ab-danger) !important;box-shadow:0 0 0 3px rgba(179,65,58,.12)}

/* 설정 모달의 조회 조건 — 기기는 좁게, 지역은 넓게 한 행에 */
#ab-manage-where .ab-fields{grid-template-columns:132px minmax(0,1fr);align-items:start;gap:12px 16px}
@media (max-width:560px){
  #ab-manage-where .ab-fields{grid-template-columns:1fr}
}

/* 관리 방식 바꾸기 */
.ab-chip-btn{display:inline-flex;align-items:center;gap:6px;min-height:24px;cursor:pointer;font-family:inherit;transition:border-color var(--ab-fast) ease,background var(--ab-fast) ease}
.ab-chip-btn:hover{border-color:var(--ab-primary);background:var(--ab-primary-bg);color:var(--ab-primary-strong)}
.ab-chip-btn:focus-visible{outline:2px solid var(--ab-primary);outline-offset:2px}
.ab-mode-list{display:grid;gap:10px;margin-top:16px}
.ab-mode-list[hidden]{display:none}
.ab-mode-item{display:block;text-align:left;padding:16px;border:1px solid var(--ab-card-line);border-radius:12px;background:var(--ab-surface);cursor:pointer;font-family:inherit;transition:border-color var(--ab-fast) ease,background var(--ab-fast) ease}
.ab-mode-item:hover{border-color:#93b8f7;background:var(--ab-surface-sub)}
.ab-mode-item.on{border-color:var(--ab-primary);background:var(--ab-primary-bg)}
.ab-mode-item b{display:block;font-size:14px;font-weight:700;color:var(--ab-text-strong)}
.ab-mode-item small{display:block;margin-top:4px;font-size:12px;line-height:1.65;color:var(--ab-text-muted)}
.ab-mode-item .ab-tag{display:inline-block;margin-top:8px}
.ab-mode-apply{display:flex;align-items:flex-start;gap:8px;margin-top:16px;padding:12px 14px;border:1px solid var(--ab-line);border-radius:10px;background:var(--ab-surface-sub);font-size:12px;color:var(--ab-text-body);cursor:pointer}
.ab-mode-apply input{width:16px;height:16px;margin-top:1px;flex:0 0 auto}
.ab-mode-apply em{display:block;margin-top:4px;font-style:normal;font-size:11px;color:var(--ab-text-muted)}

/* 지금 하는 일 */
.ab-activity-body{padding:16px 22px}
.ab-activity-line{margin:0;font-size:13px;color:var(--ab-text-body);line-height:1.7}
.ab-activity-line+.ab-activity-line{margin-top:10px}
.ab-activity-line b{font-weight:700;color:var(--ab-text-strong)}
.ab-activity-paused{color:var(--ab-text-strong);font-weight:600}
/* AI가 하는 일. 접혀 있다가 펼치면 주기별 세 칸 — 왼쪽 선 하나가 '흐름'을 말하고, 굵은 주기가 먼저 읽힌다. */
.ab-head .ab-rhythm{margin-top:16px;max-width:900px}
.ab-head .ab-rhythm-limits{max-width:900px}
.ab-rhythm{list-style:none;margin:10px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.ab-rhythm li{padding:2px 0 2px 12px;border-left:2px solid var(--ab-ai-line);display:flex;flex-direction:column;gap:2px;min-width:0}
.ab-rhythm b{font-size:13px;font-weight:700;color:var(--ab-ai-strong);letter-spacing:-.01em}
.ab-rhythm span{font-size:12px;line-height:1.55;color:var(--ab-text-body)}
/* 커스텀/실시간 모드 헤더는 AI 보라색이 아니라 중립색으로 */
.ab-rhythm.is-plain li{border-left-color:var(--ab-divider)}
.ab-rhythm.is-plain b{color:var(--ab-text-strong)}
.ab-rhythm-limits{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:10px 0 0;font-size:11px;color:var(--ab-text-muted)}
.ab-rhythm-limits-label{margin-right:2px;font-weight:700}
.ab-rhythm-limits .ab-limit{display:inline-flex;align-items:center;height:22px;padding:0 9px;border:1px solid var(--ab-divider);border-radius:999px;background:var(--ab-surface);font-size:11px;font-weight:600;color:var(--ab-text-body)}
@media (max-width:640px){.ab-rhythm{grid-template-columns:1fr;gap:8px}}
.ab-activity-line span{color:var(--ab-text-muted)}
.ab-activity-list{margin:8px 0 0;padding-left:18px;font-size:12px;line-height:1.8;color:var(--ab-text-body)}
.ab-activity-list b{font-weight:650;color:var(--ab-text-strong)}
.ab-warn-line{margin:0;padding:12px 22px;border-bottom:1px solid var(--ab-line);background:var(--ab-warn-bg);font-size:12px;line-height:1.7;color:var(--ab-warn)}
.ab-tag.ai{margin-left:6px;color:var(--ab-primary-strong);background:var(--ab-primary-bg);vertical-align:middle}
.ab-checked{display:block;margin-top:3px;font-size:11px;color:var(--ab-text-faint)}

/* AI 세팅 단계 */
.ab-mode-setup[hidden]{display:none}
.ab-mode-help{margin:10px 0 0;font-size:12px;line-height:1.75;color:var(--ab-text-muted)}
.ab-mode-help b{font-weight:700;color:var(--ab-text-body)}

/* AI 세팅 — 상품별 마진 계산 */
.ab-ai-field{display:block;font-size:12px;font-weight:600;color:var(--ab-text-body);margin-top:10px}
.ab-ai-field .ab-field-unit{max-width:220px}
.ab-ai-products{margin-top:10px;border:1px solid var(--ab-line);border-radius:10px;overflow:hidden}
.ab-ai-product{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:8px 12px;font-size:12px;color:var(--ab-text-muted)}
.ab-ai-product+.ab-ai-product{border-top:1px solid var(--ab-line)}
.ab-ai-product b{flex:1 1 auto;min-width:0;font-weight:650;color:var(--ab-text-strong);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ab-ai-product span{white-space:nowrap;text-align:right}
.ab-ai-product span b{color:var(--ab-primary-strong)}

/* AI 세팅 — 맡기기 전 확인 목록 */
.ab-check-list{list-style:none;margin:8px 0 0;padding:0;border:1px solid var(--ab-card-line);border-radius:10px;overflow:hidden}
.ab-check{display:block;padding:10px 12px 10px 34px;position:relative;font-size:12px;line-height:1.6}
.ab-check+.ab-check{border-top:1px solid var(--ab-divider)}
.ab-check b{display:block;font-weight:650;color:var(--ab-text-strong)}
.ab-check span{display:block;margin-top:2px;color:var(--ab-text-muted)}
.ab-check::before{position:absolute;left:12px;top:10px;font-size:12px;line-height:1.6}
.ab-check-ok::before{content:'✓';color:var(--ab-ok)}
.ab-check-warn::before{content:'!';font-weight:700;color:var(--ab-warn)}
.ab-check-unknown::before,.ab-check-wait::before{content:'·';font-weight:700;color:var(--ab-text-muted)}
.ab-check-wait{padding-left:34px;color:var(--ab-text-muted)}
.ab-ai-field input,.ab-ai-field select{display:block;margin-top:6px;width:100%;height:var(--ab-field-h);border:1px solid var(--ab-input-border);border-radius:8px;font-size:14px;font-family:inherit;color:var(--ab-text);background:var(--ab-surface)}
.ab-ai-field input{padding:0 12px;-moz-appearance:textfield}
.ab-ai-field select{padding:0 8px;max-width:220px}
.ab-ai-field .ab-field-unit input{margin-top:0}

/* AI 세팅 — 예산 확인 줄의 버튼 */
.ab-ai-actions{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}
.ab-ai-actions .ab-btn{text-decoration:none;display:inline-flex;align-items:center;height:var(--ab-control-h)}

/* AI 세팅 — 성향 고르기 */
.ab-stance{display:grid;gap:8px;margin-top:8px}
.ab-stance-item{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border:1px solid var(--ab-card-line);border-radius:10px;cursor:pointer;transition:border-color var(--ab-fast),background var(--ab-fast)}
.ab-stance-item:hover{border-color:var(--ab-primary)}
.ab-stance-item input{margin:2px 0 0;width:16px;height:16px;flex:none;accent-color:var(--ab-primary)}
.ab-stance-item b{display:block;font-size:13px;font-weight:650;color:var(--ab-text-strong)}
.ab-stance-item em{display:block;margin-top:2px;font-style:normal;font-size:12px;line-height:1.6;color:var(--ab-text-muted)}
.ab-stance-item:has(input:checked){border-color:var(--ab-primary);background:var(--ab-primary-bg)}
.ab-stance-item:focus-within{outline:2px solid var(--ab-primary);outline-offset:1px}

/* 세팅 단계는 확인 항목이 많아 길다. 확인 버튼이 화면 밖으로 밀리지 않도록 바닥에 붙인다. */
.ab-mode-setup .ab-modal-foot{position:sticky;bottom:0;z-index:1;margin:20px -24px -24px;padding:14px 24px 20px;background:var(--ab-surface);border-top:1px solid var(--ab-divider);border-radius:0 0 16px 16px;box-shadow:0 -10px 18px -12px rgba(15,23,42,.28)}

/* ── 방식이 보이는 화면 ─────────────────────────────────────
   AI에 맡긴 화면은 색과 배치가 달라야 한다. 토글 하나만 다르면 맡긴 줄 모른다.
   보라 계열은 '사람이 만지는 파랑'과 구분하려고 쓴다 — AI가 정한 값에만 붙인다. */
:root{
  --ab-ai: #6d5efc;
  --ab-ai-ink: #5646e8;
  --ab-ai-strong: #4936c9;
  --ab-ai-bg: #f2f0ff;
  --ab-ai-line: #ddd8ff;
}

/* 헤더의 방식 표시. 칩 하나가 아니라 '지금 누가 운전 중인지' 말하는 자리다. */
.ab-mode-chip{display:flex;flex-direction:column;align-items:flex-start;gap:1px;padding:7px 14px;border:1px solid var(--ab-card-line);border-radius:10px;background:var(--ab-surface);cursor:pointer;text-align:left;transition:border-color var(--ab-fast),background var(--ab-fast)}
.ab-mode-chip:hover{border-color:var(--ab-primary)}
/* 아직 안 연 방식. 지우지 않고 잠근다 — 무엇이 올지 보여야 기다린다. */
.ab-soon{display:inline-block;margin-left:6px;padding:1px 7px;border-radius:999px;font-style:normal;font-size:10px;font-weight:700;letter-spacing:.02em;vertical-align:middle;color:var(--ab-ai-strong);background:var(--ab-ai-bg);border:1px solid var(--ab-ai-line)}
.ab-choice.is-soon,.ab-mode-item.is-soon{cursor:not-allowed;opacity:.72}
.ab-choice.is-soon:hover,.ab-mode-item.is-soon:hover{border-color:var(--ab-card-line);box-shadow:none;transform:none}
.ab-choice.is-soon .ab-choice-go{color:var(--ab-text-muted)}
.ab-hours-chip{min-width:126px}
.ab-hours-chip[hidden]{display:none}
.ab-hours-chip .ab-mode-chip-label{font-weight:700;color:var(--ab-text-body)}
.ab-hours-chip .ab-mode-chip-sub{font-variant-numeric:tabular-nums}
/* 광고그룹 스위치. 표 위 한 줄, 켜진 것 먼저. */
.ab-groups{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:0 22px 12px}
.ab-groups[hidden],.ab-ptabs[hidden]{display:none}
.ab-groups-label{font-size:12px;font-weight:700;color:var(--ab-text-muted);margin-right:4px}
.ab-group{position:relative;display:inline-flex;align-items:center;gap:7px;height:30px;padding:0 10px 0 8px;border:1px solid var(--ab-card-line);border-radius:999px;background:var(--ab-surface);font-size:12px;color:var(--ab-text-body);cursor:pointer;user-select:none}
.ab-group:hover{border-color:var(--ab-primary)}
.ab-group input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.ab-group-switch{position:relative;width:26px;height:16px;border-radius:999px;background:#cbd5e1;transition:background var(--ab-fast) ease;flex:none}
.ab-group-switch::after{content:'';position:absolute;top:2px;left:2px;width:12px;height:12px;border-radius:50%;background:#fff;transition:transform var(--ab-fast) ease}
.ab-group input:checked+.ab-group-switch{background:var(--ab-primary-ink)}
.ab-group input:checked+.ab-group-switch::after{transform:translateX(10px)}
.ab-group.is-mixed input:checked+.ab-group-switch{background:#94a3b8}
.ab-group input:focus-visible+.ab-group-switch{outline:2px solid var(--ab-primary);outline-offset:2px}
.ab-row-switch{position:relative;display:inline-flex;align-items:center;gap:6px;cursor:pointer;user-select:none;font-size:11px;font-weight:700;color:var(--ab-text-faint)}
.ab-row-switch input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.ab-row-switch input:checked+.ab-group-switch{background:var(--ab-primary-ink)}
.ab-row-switch input:checked+.ab-group-switch::after{transform:translateX(10px)}
.ab-row-switch input:checked~.ab-row-switch-text{color:var(--ab-primary-ink)}
.ab-row-switch input:focus-visible+.ab-group-switch{outline:2px solid var(--ab-primary);outline-offset:2px}
.ab-row-switch.is-busy{opacity:.5;pointer-events:none}
.ab-th-switch,.ab-switch-col{white-space:nowrap}
.ab-group-name{font-weight:600;color:var(--ab-text-strong);max-width:22ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ab-group-count{font-size:11px;color:var(--ab-text-muted);font-variant-numeric:tabular-nums}
.ab-group.is-busy{opacity:.6;pointer-events:none}
.ab[data-mode=ai] .ab-group input:checked+.ab-group-switch{background:var(--ab-ai-ink)}
.ab-modal-help{margin:12px 0 0;font-size:12px;line-height:1.6;color:var(--ab-text-body)}
.ab-modal-note{margin:8px 0 0;font-size:12px;color:var(--ab-text-muted);min-height:18px}
.ab-mode-chip-label{font-size:13px;font-weight:700;color:var(--ab-text-strong)}
.ab-mode-chip-sub{font-size:11px;color:var(--ab-text-muted)}
.ab-mode-chip.is-ai{border-color:var(--ab-ai-line);background:var(--ab-ai-bg)}
.ab-mode-chip.is-ai:hover{border-color:var(--ab-ai)}
.ab-mode-chip.is-ai .ab-mode-chip-label{color:var(--ab-ai-strong)}
.ab-mode-chip.is-ai .ab-mode-chip-sub{color:var(--ab-ai-ink)}
.ab-h1-tag{margin-left:8px;font-style:normal;font-size:13px;font-weight:750;vertical-align:middle;color:var(--ab-ai-strong);background:var(--ab-ai-bg);border:1px solid var(--ab-ai-line);border-radius:999px;padding:3px 10px}

/* AI 모드에서는 '지금 하는 일'이 맨 위에서 크게 말한다. */
.ab[data-mode=ai] .ab-activity{border-color:var(--ab-ai-line);background:linear-gradient(180deg,var(--ab-ai-bg),var(--ab-surface) 120px)}
.ab[data-mode=ai] .ab-activity .ab-card-head h2{color:var(--ab-ai-strong)}
.ab[data-mode=ai] .ab-activity .ab-card-head h2:before{content:'✦ ';color:var(--ab-ai)}
.ab[data-mode=ai] .ab-activity-line b{color:var(--ab-ai-strong)}
.ab[data-mode=ai] .ab-activity-list li b{color:var(--ab-text-strong)}
.ab[data-mode=ai] .ab-stat-good strong{color:var(--ab-ai-strong)}
.ab[data-mode=ai] .ab-stat[aria-pressed=true]{background:var(--ab-ai-bg);border-color:var(--ab-ai-line)}
.ab[data-mode=ai] .ab-tag.ai{color:var(--ab-ai-strong);background:var(--ab-ai-bg);border-color:var(--ab-ai-line)}
/* AI가 정한 값은 사람이 넣은 값과 다른 색으로 읽힌다. */
.ab[data-mode=ai] .ab-table td.ab-num small{color:var(--ab-ai-ink);font-weight:600}
/* AI 카드 안에서 AI의 제안에 답하는 버튼. 카드가 보라인데 버튼만 파랗면 다른 데서 온 것처럼 보인다.
   '사람이 만지는 파랑' 규칙은 표와 설정 쪽에 그대로 두고, 이 카드 안에서만 카드 색을 따른다. 흰 글씨 6.1:1. */
.ab[data-mode=ai] .ab-task-actions .ab-btn-primary{background:var(--ab-ai-ink)}
.ab[data-mode=ai] .ab-task-actions .ab-btn-primary:hover{background:var(--ab-ai-strong)}
.ab[data-mode=ai] .ab-task-actions .ab-btn-quiet{border-color:var(--ab-ai-line);color:var(--ab-ai-strong)}
.ab[data-mode=ai] .ab-task-actions .ab-btn-quiet:hover{border-color:var(--ab-ai);background:var(--ab-surface)}
.ab[data-mode=ai] .ab-task-actions .ab-btn:focus-visible{outline-color:var(--ab-ai)}
/* 같은 카드 머리의 'AI 설정'도 같은 색이어야 한 카드로 읽힌다. */
.ab[data-mode=ai] .ab-activity .ab-card-head .ab-btn-ghost{color:var(--ab-ai-strong);border-color:var(--ab-ai)}
.ab[data-mode=ai] .ab-activity .ab-card-head .ab-btn-ghost:hover{background:var(--ab-ai-bg)}

/* 고르기 칸 */
.ab-pick-col{width:38px;text-align:center;padding-left:14px;padding-right:0}
.ab-pick-col input{width:16px;height:16px;accent-color:var(--ab-primary);cursor:pointer}
.ab[data-mode=ai] .ab-pick-col input{accent-color:var(--ab-ai)}

/* 관리 표 일괄 처리 바 — 고른 것이 있을 때만 나타난다.
   화면 하단을 따라오되 JS가 관리 표의 하단을 경계로 bottom 값을 올려, 도움말 영역까지 따라가지 않는다. */
#ab-rows-bulk{position:fixed;left:50%;transform:translateX(-50%);bottom:18px;z-index:40;width:min(1248px,calc(100vw - 32px));display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:12px 18px;border:1px solid var(--ab-card-line);border-radius:12px;background:var(--ab-surface);box-shadow:0 18px 40px rgba(15,23,42,.18)}
#ab-rows-bulk[hidden]{display:none}
.ab-bulk[hidden]{display:none}
.ab-bulk-count{font-size:13px;font-weight:700;color:var(--ab-text-strong);white-space:nowrap}
.ab-bulk-count b{color:var(--ab-primary-strong)}
.ab[data-mode=ai] .ab-bulk-count b{color:var(--ab-ai-strong)}
.ab-bulk-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-left:auto}
.ab-bulk-field{margin-top:0}
.ab-bulk-field input{width:110px;height:var(--ab-control-h);border:1px solid var(--ab-input-border);border-radius:8px;padding:0 10px;font-size:13px;font-family:inherit;color:var(--ab-text);-moz-appearance:textfield}
/* 한 줄의 모든 것이 같은 높이(36px)여야 한 줄로 읽힌다. 버튼은 기본 40px이라 여기서 맞춘다. */
.ab-bulk .ab-btn{height:var(--ab-control-h);padding:0 14px;font-size:13px}
.ab-bulk .ab-link{padding:0 4px;height:var(--ab-control-h);display:inline-flex;align-items:center}
.ab-bulk-field{display:flex;flex-direction:row;align-items:center;gap:6px}
.ab-bulk-field[hidden]{display:none}   /* 쇼핑 탭: 순위 조회 지역 칸 없음 */
.ab-bulk-field i{font-style:normal;font-size:12px;color:var(--ab-text-faint)}
.ab-bulk-region .ab-region{display:inline-flex;gap:6px;flex-wrap:nowrap}
.ab-bulk-region .ab-region select{height:var(--ab-control-h);max-width:130px;min-width:0}
.ab-bulk-region .ab-region select[hidden]{display:none}
.ab-bulk-actions{row-gap:8px}
.ab-bulk-note{font-size:12px;color:var(--ab-text-muted)}
.ab-bulk .ab-form-error{flex-basis:100%;margin:0}

/* 오른쪽 드로어 — 목록을 보면서 고친다. */
.ab-drawer{position:fixed;inset:0;z-index:1200}   /* 마피아넷 상단바(900)·사이드바(1100) 위로 — 안 그러면 드로어 상단(X)이 상단바에 가려 짤린다 */
.ab-drawer[hidden]{display:none}
/* 설정 드로어 아래에서 도움말 플로팅 버튼이 비치면 저장·끄기 버튼과 겹쳐 보인다. */
body.ab-manage-open .ab-faq-fab{display:none}
.ab-drawer-veil{position:absolute;inset:0;background:rgba(15,23,42,.28)}
.ab-drawer-panel{position:absolute;top:0;right:0;bottom:0;width:min(440px,100vw);display:flex;flex-direction:column;background:var(--ab-surface);box-shadow:-18px 0 40px rgba(15,23,42,.16);padding:22px 24px 0;animation:ab-drawer-in var(--ab-move) ease-out}
@keyframes ab-drawer-in{from{transform:translateX(24px);opacity:.6}to{transform:none;opacity:1}}
@media (prefers-reduced-motion:reduce){.ab-drawer-panel{animation:none}}
.ab-drawer-body{flex:1;overflow-y:auto;margin:0 -24px;padding:0 24px}
.ab-drawer-foot{margin:0 -24px;padding:14px 24px 20px;border-top:1px solid var(--ab-divider);background:var(--ab-surface)}
@media (max-width:640px){
  .ab-drawer-panel{width:100vw;padding:18px 16px 0}
  .ab-drawer-body,.ab-drawer-foot{margin:0 -16px;padding-left:16px;padding-right:16px}
}
.ab-owned{font-size:11px;font-weight:600;color:var(--ab-ai-ink);white-space:nowrap}

/* 드로어는 폭이 좁다. 기기와 지역을 한 줄에 두면 지역 칸이 77px가 되어 동 이름이 잘린다. */
.ab-drawer #ab-manage-where .ab-fields{grid-template-columns:1fr}

/* 선택 바가 관리 표의 마지막 행을 덮지 않도록 같은 카드 안에만 자리를 비운다. */
.ab-management-card.has-bulk{padding-bottom:96px}
/* 데스크톱에서는 사이드바 오른쪽의 본문 영역 안에서 너비와 중앙을 계산한다. */
@media (min-width:1024px){
  #ab-rows-bulk{left:264px;right:16px;width:auto;max-width:1248px;margin-inline:auto;transform:none}
}
.ab-bid-note{margin:0 0 10px;font-size:12px;color:var(--ab-text-muted)}
.ab-bid-note b{color:var(--ab-ai-strong);font-weight:700}
.ab-bid-note-warn{color:var(--ab-warn)}
/* 예산 소진 그룹: 등록은 되지만 지금은 노출이 멈춘 이유를 알려 주는 안내 카드 */
.ab-budget-note{margin:0 0 12px;padding:10px 12px;font-size:12px;line-height:1.6;color:#92400e;background:#fffbeb;border:1px solid #fde68a;border-radius:8px}

/* 장바구니: 여러 광고그룹의 키워드를 모아 한 번에 등록. 목록 화면 위에 얹힌다. */
.ab-cart{margin:0 0 14px;border:1px solid var(--ab-primary);border-radius:10px;background:var(--ab-primary-bg);overflow:hidden}
.ab-cart-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:10px 14px}
.ab-cart-toggle{border:0;background:transparent;font-family:inherit;font-size:14px;color:var(--ab-text-strong);cursor:pointer;display:inline-flex;align-items:center;gap:6px;padding:0}
.ab-cart-toggle b{color:var(--ab-primary-strong);font-weight:800}
.ab-cart-caret{font-style:normal;color:var(--ab-primary-ink);font-size:12px}
.ab-cart-actions{display:flex;align-items:center;gap:12px}
.ab-cart-actions .ab-link{font-size:13px}
.ab-cart-clear{color:var(--ab-danger)!important;font-weight:700}
.ab-cart-clear:hover{text-decoration:underline}
.ab-cart-list{padding:4px 14px 12px;max-height:280px;overflow-y:auto;border-top:1px solid var(--ab-primary)}
.ab-cart-group{padding:8px 0}
.ab-cart-group + .ab-cart-group{border-top:1px solid #dbe4fb}
.ab-cart-group>b{display:block;font-size:12px;color:var(--ab-text-body);margin-bottom:6px}
.ab-cart-gcount{display:inline-block;min-width:18px;text-align:center;margin-left:4px;padding:0 6px;border-radius:999px;background:#fff;color:var(--ab-primary-ink);font-size:11px;font-weight:700}
.ab-cart-group ul{list-style:none;margin:0;padding:0}
.ab-cart-group li{display:flex;align-items:center;gap:8px;padding:4px 0;font-size:13px}
.ab-cart-kw{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ab-text)}
.ab-cart-meta{flex:0 0 auto;color:var(--ab-text-muted);font-size:12px}
.ab-cart-x{flex:0 0 auto;width:22px;height:22px;border:0;border-radius:6px;background:#fff;color:var(--ab-text-muted);font-size:15px;line-height:1;cursor:pointer}
.ab-cart-x:hover{background:#e7efff;color:var(--ab-danger)}
/* 이미 담긴 줄: 체크 칸은 완료 표시, 상태 문구는 키워드명 옆에 둬 서로 침범하지 않게 한다. */
.ab-row-carted{background:#f8fafc}
.ab-row-carted:hover{background:#f8fafc}
.ab-row-carted .ab-eligibility-cell,.ab-row-carted .ab-import-result-state{opacity:.55}
.ab-carted-check{display:inline-grid;width:20px;height:20px;place-items:center;border-radius:50%;background:#e2e8f0;color:#475569;font-size:12px;font-weight:800}
.ab-carted-tag{display:inline-flex;align-items:center;min-height:22px;padding:2px 7px;border-radius:6px;background:#e2e8f0;color:#475569;font-size:10px;font-weight:750;line-height:1.25;white-space:nowrap}
.ab-assign-bulk-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:16px;background:var(--ab-page);border-bottom:1px solid var(--ab-line)}
.ab-assign-nav{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 16px;border-bottom:1px solid var(--ab-line);background:var(--ab-surface)}
.ab-assign-nav .ab-link{font-size:12px;font-weight:700}
.ab-assign-nav>div{display:flex;align-items:center;gap:14px}
.ab-assign-nav span{font-size:11px;color:var(--ab-text-muted)}
/* 섹션 위에 얹는 일괄 설정 툴바(카드 아님) */
.ab-assign-bulk-card{padding:12px 14px;border-bottom:1px solid var(--ab-line);background:var(--ab-surface-sub)}
.ab-assign-bulk-lead{margin-bottom:8px;font-size:12px;font-weight:800;color:var(--ab-text-strong)}
.ab-assign-bulk-lead em{margin-left:6px;font-style:normal;font-size:11px;font-weight:600;color:var(--ab-text-muted)}
.ab-assign-bulk-card>header{min-height:42px}
.ab-assign-bulk-card>header b{display:block;font-size:14px;color:var(--ab-text-strong)}
.ab-assign-bulk-card>header span{display:block;margin-top:4px;font-size:11px;line-height:1.5;color:var(--ab-text-muted)}
/* 박스 없이 라벨+컨트롤만 한 줄 툴바로 — 난잡하지 않게 */
.ab-assign-bulk-fields{display:flex;flex-wrap:wrap;align-items:flex-end;gap:8px 12px}
.ab-assign-bulk-fields>label{display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:0;border:0;background:transparent;font-size:10px;font-weight:600;color:var(--ab-text-muted);white-space:nowrap}
.ab-assign-bulk-fields>label .ab-mini,.ab-assign-bulk-fields>label select{height:30px;background:#fff;border:1px solid var(--ab-input-border);border-radius:7px}
.ab-assign-bulk-fields>label select{width:auto;min-width:92px;max-width:132px}
.ab-assign-bulk-region{flex:1 1 210px;min-width:180px}
.ab-assign-bulk-region .ab-region{display:flex;gap:5px;width:100%}
.ab-assign-bulk-region .ab-region select{width:0;min-width:82px;max-width:none;flex:1 1 0}
.ab-assign-bulk-apply{display:flex;gap:8px;margin-left:auto;align-self:flex-end}
.ab-assign-bulk-apply .ab-btn{margin:0}
.ab-assign-bulk-card select{height:34px;border:1px solid var(--ab-input-border);border-radius:8px;background:var(--ab-surface);padding:0 8px;font:inherit;font-size:12px;color:var(--ab-text)}
.ab-bulk-fixed{font-size:12px;color:var(--ab-text-muted)}
.ab-assign-basis{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:12px 14px;border-bottom:1px solid var(--ab-line);background:#fbfdff}
.ab-assign-basis.needs-device{background:#fffbeb}
.ab-assign-basis>b{font-size:12px;color:var(--ab-text-strong);margin-right:auto}
.ab-assign-basis label{display:flex;align-items:center;gap:7px;font-size:11px;font-weight:650;color:var(--ab-text-muted)}
.ab-assign-basis select{height:34px;border:1px solid var(--ab-input-border);border-radius:8px;background:var(--ab-surface);padding:0 8px;font:inherit;font-size:12px;color:var(--ab-text)}
.ab-assign-basis .ab-region select{height:34px;font-size:12px}
.ab-device-choice{display:inline-flex;padding:3px;border:1px solid #f4c96b;border-radius:9px;background:#fff}
.ab-device-choice label{display:block!important;cursor:pointer}
.ab-device-choice input{position:absolute;opacity:0;pointer-events:none}
.ab-device-choice span{display:block;min-width:62px;padding:7px 13px;border-radius:6px;text-align:center;font-size:12px;font-weight:800;color:var(--ab-text-muted)}
.ab-device-choice input:checked+span{background:var(--ab-primary);color:#fff;box-shadow:0 1px 2px rgba(37,99,235,.22)}
.ab-device-choice input:focus-visible+span{outline:2px solid var(--ab-primary);outline-offset:2px}
.ab-assign-sections{display:grid;grid-template-columns:1fr;gap:14px;padding:16px;background:var(--ab-page)}
.ab-assign-section{min-width:0;border:1px solid var(--ab-line);border-radius:12px;background:var(--ab-surface);overflow:hidden}
.ab-assign-section>.ab-assign-row{max-width:100%}
.ab-assign-section{max-height:620px;overflow:auto}
.ab-assign-head{position:sticky;top:0;z-index:2}
.ab-assign-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 14px;border-bottom:1px solid var(--ab-line);background:var(--ab-surface-sub)}
.ab-assign-head-main{display:flex;min-width:0;align-items:center;gap:10px}
.ab-assign-head b{display:block;font-size:13px;color:var(--ab-text-strong)}
.ab-assign-head span{display:block;margin-top:3px;font-size:10px;line-height:1.5;color:var(--ab-text-muted)}
.ab-assign-head em{font-style:normal;font-size:12px;font-weight:800;color:var(--ab-primary-strong);white-space:nowrap}
.ab-assign-bulk-toggle{flex:0 0 auto;min-height:34px}
.ab-assign-row{display:grid;grid-template-columns:26px minmax(170px,1.15fr) 138px minmax(310px,2fr) 24px;align-items:center;gap:10px;padding:11px 14px;border-bottom:1px solid var(--ab-line-soft);transition:background .15s ease}
.ab-assign-row.is-expanded{background:#fbfdff}
.ab-assign-pick{display:flex;align-items:center;justify-content:center}
.ab-assign-pick input{width:16px;height:16px;cursor:pointer}
.ab-assign-summary{display:flex;min-width:0;min-height:38px;align-items:center;justify-content:space-between;gap:10px;padding:5px 9px;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--ab-text);text-align:left;cursor:pointer}
.ab-assign-summary:hover,.ab-assign-summary:focus-visible{border-color:var(--ab-input-border);background:var(--ab-surface-sub);outline:0}
.ab-assign-summary>span{display:flex;min-width:0;align-items:center;gap:5px;overflow:hidden}
.ab-assign-summary i{display:inline-flex;flex:0 0 auto;align-items:center;min-height:24px;padding:0 7px;border-radius:999px;background:var(--ab-page);color:var(--ab-text-muted);font-size:10px;font-style:normal;font-weight:650;white-space:nowrap}
.ab-assign-summary.needs-input i:last-of-type,.ab-assign-summary.needs-input i:first-child{background:#fff7ed;color:#b45309}
.ab-assign-summary>b{flex:0 0 auto;color:var(--ab-primary-strong);font-size:11px;white-space:nowrap}
.ab-assign-detail{grid-column:2/-2;margin:2px 0 4px;padding:12px 14px;border:1px solid var(--ab-line);border-radius:10px;background:var(--ab-surface)}
.ab-assign-detail .ab-assign-settings{width:100%}
.ab-assign-detail-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:12px;padding-top:10px;border-top:1px solid var(--ab-line-soft)}
.ab-assign-detail-actions .ab-btn{min-width:96px}
.ab-assign-fixed{display:inline-flex;align-items:center;gap:5px;height:30px;font-size:12px;font-weight:650;color:var(--ab-text)}
.ab-assign-fixed em{font-style:normal;font-size:10px;font-weight:500;color:var(--ab-text-muted)}
.ab-assign-region-name{display:inline-flex;align-items:center;height:30px;font-size:12px;font-weight:650;color:var(--ab-text)}
.ab-assign-row:last-child{border-bottom:0}
.ab-assign-name{min-width:0}
.ab-assign-name.has-creative{display:flex;align-items:flex-start;gap:10px}
.ab-assign-name-copy{flex:1;min-width:0}
.ab-assign-creative-image{flex:0 0 56px;width:56px;height:56px;border:1px solid var(--ab-line);border-radius:8px;background:#fff;object-fit:cover}
.ab-assign-name b{display:block;font-size:13px;line-height:1.45;color:var(--ab-text);white-space:normal;overflow-wrap:anywhere;word-break:break-word}
.ab-assign-name span{display:block;margin-top:3px;font-size:10px;line-height:1.4;color:var(--ab-text-muted);white-space:normal;overflow-wrap:anywhere}
.ab-assign-name b>em,.ab-assign-name small>em{margin-right:4px;font-style:normal;font-size:10px;font-weight:750;color:var(--ab-text-muted)}
.ab-assign-name small{display:block;margin-top:4px;font-size:11px;line-height:1.4;color:var(--ab-text-body);white-space:normal;overflow-wrap:anywhere}
.ab-assign-name a{display:block;margin-top:4px;font-size:11px;font-weight:650;line-height:1.4;color:var(--ab-primary-strong);text-decoration:none;overflow-wrap:anywhere;word-break:break-all}
.ab-assign-name a>em{margin-right:4px;font-style:normal;font-size:10px;font-weight:750;color:var(--ab-text-muted);word-break:keep-all}
.ab-assign-name a:hover{text-decoration:underline}
.ab-assign-mode select,.ab-assign-settings select{height:30px;border:1px solid var(--ab-input-border);border-radius:8px;background:#fff;padding:0 8px;font:inherit;font-size:12px;color:var(--ab-text);max-width:100%}
.ab-assign-mode{align-self:stretch}
.ab-assign-mode-field{display:flex;height:100%;min-width:0;flex-direction:column;align-items:flex-start;justify-content:flex-end;gap:3px;padding:0;border:0;background:transparent;font-size:10px;font-weight:600;color:var(--ab-text-muted)}
.ab-assign-mode-field select{width:136px;max-width:100%}
.ab-assign-settings{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:end;gap:7px;font-size:11px;color:var(--ab-text-muted)}
.ab-assign-row[data-mode="average"] .ab-assign-settings{grid-template-columns:100px 112px minmax(160px,1fr)}
/* 실시간: 기기·지역·목표·최대입찰가를 한 줄로. 지역(시·구·동)도 한 줄 안에서 바꾼다. */
.ab-assign-row[data-mode="realtime"] .ab-assign-settings{display:flex;flex-wrap:nowrap;align-items:flex-end;gap:7px}
.ab-assign-row[data-mode="realtime"] .ab-assign-f{flex:0 0 auto}
.ab-assign-row[data-mode="realtime"] .ab-assign-f:nth-child(1){width:100px}
.ab-assign-row[data-mode="realtime"] .ab-assign-f:nth-child(2){flex:1 1 320px;min-width:220px}
.ab-assign-row[data-mode="realtime"] .ab-assign-f:nth-child(3){width:88px}
.ab-assign-row[data-mode="realtime"] .ab-assign-f:nth-child(4){width:158px}
.ab-assign-section[data-assign-product="shopping"] .ab-assign-settings{display:grid;grid-template-columns:220px 150px 120px 170px;align-items:end;justify-content:start;gap:12px 16px}
.ab-assign-section[data-assign-product="shopping"] .ab-assign-settings>.ab-assign-f{width:auto!important;min-width:0!important}
.ab-assign-query-setting{grid-column:1/-1;display:grid;grid-template-columns:minmax(220px,1fr) auto;align-items:center;gap:12px;width:min(100%,664px);padding:10px 12px;border:1px solid var(--ab-card-line);border-radius:9px;background:var(--ab-surface-sub)}
.ab-assign-query-setting>span{min-width:0}
.ab-assign-query-setting small{display:block;margin-bottom:3px;font-size:10px;font-weight:650;color:var(--ab-text-muted)}
.ab-assign-query-setting b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;color:var(--ab-text-strong)}
.ab-assign-query-setting .ab-btn{height:32px;padding:0 11px;white-space:nowrap}
.ab-assign-settings .ab-region{display:flex;flex-wrap:nowrap;gap:4px}
.ab-assign-settings .ab-region select{height:30px;font-size:12px;min-width:0;flex:1 1 0;padding:0 6px}
.ab-assign-settings .ab-region-box{display:block;width:100%}
.ab-assign-settings label{display:flex;min-width:0;flex-direction:column;align-items:flex-start;gap:3px;padding:0;border:0;background:transparent;font-size:10px;font-weight:600;color:var(--ab-text-muted);white-space:nowrap}
.ab-assign-settings label .ab-mini-wrap,.ab-assign-settings label select{width:100%;min-width:0}
.ab-assign-settings label .ab-mini{width:auto;flex:1;min-width:0;height:30px;background:#fff}
.ab-assign-settings label select{height:30px;background:#fff}
.ab-assign-mode-label{display:inline-flex;padding:4px 8px;border-radius:6px;font-size:11px;font-weight:700}
.ab-assign-mode-label.realtime{background:var(--ab-primary-bg);color:var(--ab-primary-strong)}
.ab-assign-mode-label.average{background:#f0fdf4;color:#157347}
.ab-assign-sections.is-review{grid-template-columns:1fr}
.ab-review-columns,.ab-review-row{display:grid;grid-template-columns:minmax(220px,2fr) 130px 90px 105px 120px 120px;align-items:center;gap:12px}
.ab-review-columns{position:sticky;top:62px;z-index:1;padding:9px 14px;border-bottom:1px solid var(--ab-line);background:#fbfdff;color:var(--ab-text-muted);font-size:10px;font-weight:700}
.ab-review-row{min-height:62px;padding:10px 14px;border-bottom:1px solid var(--ab-line-soft);font-size:12px;color:var(--ab-text-body)}
.ab-review-row:last-child{border-bottom:0}
.ab-review-row>span,.ab-review-row>strong{font-variant-numeric:tabular-nums;white-space:nowrap}
.ab-review-row>.ab-review-condition{min-width:0;white-space:normal!important;overflow-wrap:anywhere;line-height:1.45}
.ab-review-row>strong{color:var(--ab-text-strong);font-size:12px}
.ab-shopping-capacity-choice{margin:0 0 14px;padding:16px;border:1px solid #d8dee8;border-radius:10px;background:#fff;display:grid;grid-template-columns:1fr 1fr;gap:10px 12px}
.ab-shopping-capacity-choice>div,.ab-shopping-capacity-choice>p{grid-column:1/-1}
.ab-shopping-capacity-choice>div b{display:block;margin-bottom:4px;color:var(--ab-text-strong);font-size:13px}
.ab-shopping-capacity-choice>div span{display:block;color:var(--ab-text-body);font-size:12px;line-height:1.55}
.ab-shopping-capacity-choice>label:not(.ab-shopping-replace-select){display:flex;align-items:flex-start;gap:9px;min-width:0;padding:12px;border:1px solid var(--ab-line);border-radius:8px;background:#fafbfc;cursor:pointer}
.ab-shopping-capacity-choice>label.is-selected{border-color:#8291a8;background:#f5f7fa}
.ab-shopping-capacity-choice>label.is-disabled{opacity:.55;cursor:not-allowed}
.ab-shopping-capacity-choice input[type="radio"]{flex:0 0 auto;width:16px;height:16px;margin:2px 0 0;accent-color:var(--ab-primary)}
.ab-shopping-capacity-choice label span{min-width:0}
.ab-shopping-capacity-choice label b{display:block;color:var(--ab-text-strong);font-size:12px}
.ab-shopping-capacity-choice label small{display:block;margin-top:3px;color:var(--ab-text-muted);font-size:11px;line-height:1.45}
.ab-shopping-capacity-choice>.ab-shopping-replace-select{grid-column:1/-1;display:grid;grid-template-columns:150px minmax(220px,420px);align-items:center;gap:10px;padding:2px 12px;color:var(--ab-text-body);font-size:11px;font-weight:650}
.ab-shopping-capacity-choice select{width:100%;height:34px;min-width:0;border:1px solid var(--ab-line);border-radius:7px;background:#fff;padding:0 28px 0 10px;color:var(--ab-text-strong);font-size:12px}
.ab-shopping-capacity-choice select:disabled{background:#f2f4f7;color:var(--ab-text-muted)}
.ab-shopping-capacity-choice>p{margin:0;padding-top:2px;color:var(--ab-text-muted);font-size:11px}
.ab-shopping-capacity-choice>p b{color:var(--ab-text-body)}
@media(max-width:1050px){.ab-review-columns,.ab-review-row{grid-template-columns:minmax(190px,2fr) 110px 80px 95px 105px 105px;gap:8px}}
@media(max-width:1100px){.ab-assign-bulk-grid,.ab-assign-sections{grid-template-columns:1fr}.ab-assign-row{grid-template-columns:26px minmax(120px,1fr) 126px minmax(230px,1.6fr) 24px}.ab-assign-summary>span{max-width:330px}}
@media(max-width:800px){.ab-review-columns{display:none}.ab-review-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 14px;padding:14px}.ab-review-row .ab-assign-name{grid-column:1/-1;padding-bottom:7px;border-bottom:1px solid var(--ab-line-soft)}.ab-review-row>span,.ab-review-row>strong{display:flex;justify-content:space-between;gap:8px}.ab-review-row>span:before,.ab-review-row>strong:before{content:attr(data-label);color:var(--ab-text-muted);font-size:10px;font-weight:600}}
@media(max-width:700px){.ab-import-steps li b{display:none}.ab-assign-bulk-fields{grid-template-columns:1fr}.ab-assign-bulk-fields>.ab-btn{grid-column:1}.ab-assign-nav{align-items:flex-start}.ab-assign-nav>div{align-items:flex-end;flex-direction:column;gap:6px}.ab-assign-head{align-items:flex-start}.ab-assign-head-main{align-items:flex-start;flex-direction:column;gap:3px}.ab-assign-row{grid-template-columns:26px 1fr auto}.ab-assign-pick{grid-column:1;grid-row:1}.ab-assign-name{grid-column:2}.ab-assign-mode,.ab-assign-summary{grid-column:1/-1}.ab-assign-summary>span{flex-wrap:wrap;overflow:visible}.ab-assign-detail{grid-column:1/-1}.ab-assign-settings{grid-column:1/-1}.ab-assign-row>.ab-cart-x{grid-column:3;grid-row:1}.ab-assign-basis{align-items:flex-start;flex-direction:column}.ab-assign-basis>b{margin-right:0}.ab-assign-mode-field select{width:100%}.ab-assign-row[data-mode="realtime"] .ab-assign-settings{display:grid;grid-template-columns:1fr 1fr;gap:10px}.ab-assign-row[data-mode="realtime"] .ab-assign-f{width:auto!important;min-width:0}.ab-assign-row[data-mode="realtime"] .ab-assign-f:nth-child(2){grid-column:1/-1}.ab-assign-row[data-mode="average"] .ab-assign-settings{grid-template-columns:1fr 1fr}.ab-assign-row[data-mode="average"] .ab-assign-f:last-child{grid-column:1/-1}}
@media(max-width:700px){.ab-shopping-capacity-choice{grid-template-columns:1fr}.ab-shopping-capacity-choice>div,.ab-shopping-capacity-choice>p,.ab-shopping-capacity-choice>.ab-shopping-replace-select{grid-column:1}.ab-shopping-capacity-choice>.ab-shopping-replace-select{grid-template-columns:1fr}}
@media(max-width:900px){.ab-head .ab-head-lead{white-space:normal;text-wrap:pretty}}
@media(max-width:900px){.ab-assign-section[data-assign-product="shopping"] .ab-assign-settings{grid-template-columns:minmax(160px,1fr) minmax(120px,.8fr) 100px 150px}}
@media(max-width:700px){.ab-assign-section[data-assign-product="shopping"] .ab-assign-settings{grid-template-columns:1fr 1fr}.ab-assign-section[data-assign-product="shopping"] .ab-assign-f:nth-child(2){grid-column:auto}.ab-assign-query-setting{grid-column:1/-1;width:100%}}
@media(max-width:480px){.ab-assign-query-setting{grid-template-columns:1fr}.ab-assign-query-setting .ab-btn{width:100%}}

/* 성과 — 관리 전보다 나아졌는가 */
.ab-perf-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:0}
.ab-perf-item{padding:18px 22px;position:relative}
.ab-perf-item+.ab-perf-item:before{content:'';position:absolute;left:0;top:18px;bottom:18px;border-left:1px solid var(--ab-divider)}
.ab-perf-label{display:block;font-size:12px;color:var(--ab-text-muted)}
.ab-perf-value{display:block;margin-top:4px;font-size:26px;font-weight:800;color:var(--ab-text-strong);font-variant-numeric:tabular-nums}
.ab-perf-delta{display:block;margin-top:4px;font-size:12px;font-weight:700}
.ab-perf-delta em{font-style:normal;font-weight:500}
.ab-perf-up{color:var(--ab-ok)}
.ab-perf-down{color:var(--ab-danger)}
.ab-perf-before{display:block;margin-top:2px;font-size:11px;color:var(--ab-text-faint)}
.ab-perf-foot{margin:0;padding:12px 22px;border-top:1px solid var(--ab-line);font-size:12px;color:var(--ab-text-muted)}
.ab-perf-foot em{font-style:normal;display:block;margin-top:2px}
.ab-perf-empty{margin:0;padding:20px 22px;font-size:13px;color:var(--ab-text-muted)}
@media (max-width:640px){.ab-perf-item+.ab-perf-item:before{display:none}.ab-perf-item+.ab-perf-item{border-top:1px solid var(--ab-divider)}}

.ab-name span .ab-roas{font-weight:700;color:var(--ab-ok)}

/* 설정 모달의 지역도 담기 화면처럼 한 줄 3칸으로. 세로로 쌓으면 폼이 불필요하게 길어진다. */
.ab-ai-field .ab-region{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;width:100%}
.ab-ai-field .ab-region select{width:100%;min-width:0;max-width:none;height:var(--ab-field-h);margin-top:0;font-size:13px}
.ab-ai-field .ab-region-box{display:block;margin-top:6px}

.ab-where-note{display:block;margin-top:4px;font-style:normal;font-size:11px;color:var(--ab-text-muted)}

.ab-mode-note{margin:14px 0 0;padding-top:14px;border-top:1px solid var(--ab-line);font-size:12px;color:var(--ab-text-muted)}
.ab-mode-note b{color:var(--ab-text-strong)}

/* 위쪽 줄 — 위치와 로그인 정보. 방식 표시와 섞지 않는다. */
.ab-mode-chip{align-items:center}
.ab-mode-chip .ab-mode-chip-label{font-size:14px}

/* AI가 낸 제안 */
/* 확인할 제안이 카드의 첫 자리. 제목 옆 숫자가 '몇 개 남았나'를 말한다. */
.ab-inbox{margin-bottom:14px;padding-bottom:14px;border-bottom:1px solid var(--ab-divider)}
.ab-inbox-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px}
.ab-inbox-head h3{margin:0;font-size:14px;font-weight:700;color:var(--ab-ai-strong)}
.ab-inbox-count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--ab-ai-ink);color:#fff;font-size:11px;font-weight:700;vertical-align:2px}
.ab-inbox-sub{font-size:12px;color:var(--ab-text-muted)}
.ab-inbox .ab-tasks{margin-top:10px;padding-top:0;border-top:0}
/* minmax(0,…)이 없으면 칸이 자식의 최소 폭(줄바꿈 없는 안내문 등)만큼 넓어져 좁은 화면에서 카드가 잘린다. */
.ab-tasks{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;margin-top:14px;padding-top:14px;border-top:1px solid var(--ab-divider)}
.ab-task{padding:12px 14px;border:1px solid var(--ab-card-line);border-radius:10px;background:var(--ab-surface)}
.ab-task.is-open{border-color:var(--ab-ai-line);background:var(--ab-ai-bg)}
.ab-task-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.ab-task-head b{font-size:13px;font-weight:700;color:var(--ab-text-strong)}
.ab-task-state{font-size:11px;color:var(--ab-text-body)}   /* AI 배경 위라 muted는 4.23:1로 모자람 */
.ab-task-why{margin:6px 0 0;font-size:12px;line-height:1.7;color:var(--ab-text-body);max-width:78ch;text-wrap:pretty}
.ab-task-group{font-weight:500;color:var(--ab-text-muted)}
.ab-task-why b{display:block;font-size:13px;font-weight:700;color:var(--ab-text-strong)}
/* 지금 그룹 → 새 그룹. 옮길 키워드만 진하고 나머지는 흐리다 — 무엇이 빠져나오는지 한눈에. */
.ab-split{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:10px;align-items:stretch;margin-top:10px}
.ab-split-box{padding:10px 12px;border:1px solid var(--ab-divider);border-radius:8px;background:var(--ab-surface);min-width:0}
.ab-split-box.is-new{border-color:var(--ab-ai-line);background:var(--ab-ai-bg)}
.ab-split-title{display:flex;align-items:baseline;gap:6px;font-size:12px;min-width:0}
.ab-split-title span{flex:none;font-weight:700;color:var(--ab-text-muted)}
.ab-split-title b{font-weight:650;color:var(--ab-text-strong);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ab-split-box.is-new .ab-split-title span{color:var(--ab-ai-ink)}
.ab-split-chips{display:flex;flex-direction:column;gap:4px;margin-top:8px}
.ab-kw-row{display:flex;flex-wrap:wrap;gap:4px}
.ab-split-title em{font-style:normal;font-size:11px;color:var(--ab-text-muted);flex:none}
.ab-kw[hidden]{display:none}
button.ab-kw-more{cursor:pointer;border-style:dashed}
button.ab-kw-more:hover{color:var(--ab-text-strong);border-color:var(--ab-text-muted)}
.ab-kw.is-stay{background:transparent;border-color:var(--ab-divider);color:var(--ab-text-muted);font-weight:500}
.ab-split-meta{margin-top:8px;font-size:11px;color:var(--ab-text-muted);display:flex;flex-wrap:wrap;align-items:center;gap:4px}
.ab-split-box.is-new .ab-split-meta{color:var(--ab-text-body)}
.ab-split-arrow{align-self:center;font-size:18px;color:var(--ab-ai-ink)}
@media (max-width:640px){.ab-split{grid-template-columns:1fr}.ab-split-arrow{transform:rotate(90deg);justify-self:center}}
/* 추천안. 그룹 진단 밑에 하나씩. 여러 개면 각자 답한다. */
.ab-rec{margin-top:12px;padding:12px 14px;border:1px solid var(--ab-ai-line);border-radius:10px;background:var(--ab-surface)}
.ab-rec-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.ab-rec-head b{font-size:13px;font-weight:700;color:var(--ab-ai-strong)}
.ab-rec-line{margin:4px 0 0;font-size:12px;line-height:1.6;color:var(--ab-text-body)}
.ab-rec .ab-task-spec{background:var(--ab-ai-bg);border-color:var(--ab-ai-line)}
/* 무엇을 어디로. 왼쪽 라벨은 회색으로 물러나고 값이 앞에 선다. */
.ab-task-spec{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:6px 14px;margin:10px 0 0;padding:10px 12px;border:1px solid var(--ab-divider);border-radius:8px;background:var(--ab-surface);font-size:12px}
.ab-task-spec dt{margin:0;color:var(--ab-text-muted);font-weight:600;line-height:22px;white-space:nowrap}
.ab-task-spec dd{margin:0;display:flex;flex-wrap:wrap;align-items:center;gap:4px 6px;min-width:0;line-height:22px;color:var(--ab-text-body)}
.ab-task-spec dd b{font-weight:650;color:var(--ab-text-strong)}
.ab-kw{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:6px;background:var(--ab-ai-bg);border:1px solid var(--ab-ai-line);color:var(--ab-ai-strong);font-size:12px;font-weight:600}
.ab-kw-more{background:transparent;color:var(--ab-text-muted)}
.ab-task-tag{display:inline-flex;align-items:center;height:18px;padding:0 6px;border-radius:4px;font-size:10px;font-weight:700;color:var(--ab-text-muted);background:var(--ab-page,#f3f4f6)}
.ab-task-tag.is-found{color:#0b6b36;background:#e6f7ec}
.ab-task-landing-link{color:var(--ab-ai-strong);text-decoration:none;word-break:break-all}
.ab-task-landing-link:hover{text-decoration:underline}
.ab-task-landing-link b{font-weight:650}
.ab-task-safe{margin:12px 0 0;text-align:center;font-size:11px;color:var(--ab-text-muted)}
.ab-task-safe i{font-style:normal;margin:0 4px;color:var(--ab-text-muted)}
/* 답을 정하는 자리. 카드 가운데, 위에 선을 그어 '여기서 결정한다'를 분리한다.
   치수는 같은 카드의 'AI 설정'과 같다(34px·8px 라운드). 그림자·들썩임은 이 화면 어디에도 없으니 여기도 없다. */
.ab-task-actions{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:8px}
.ab-btn-wide{min-width:120px}

/* 제안 카드의 소재 미리보기 */
.ab-task-copy{margin-top:10px;padding:10px 12px;border:1px solid var(--ab-divider);border-radius:8px;background:var(--ab-surface)}
.ab-task-copy-label{display:block;font-size:11px;font-weight:700;color:var(--ab-text-muted)}
.ab-task-line{margin:6px 0 0;font-size:13px;font-weight:650;color:var(--ab-text-strong)}
.ab-task-line.ab-task-desc{font-size:12px;font-weight:400;color:var(--ab-text-body)}
.ab-task-pin{font-style:normal;font-size:10px;font-weight:700;color:var(--ab-ai-strong);background:var(--ab-ai-bg);border-radius:4px;padding:1px 5px;margin-right:5px;vertical-align:middle}
/* 검색 결과에 실리는 모양 그대로. 반응형은 조합이 돌아가므로 한 장면씩 넘긴다. */
.ab-ad-preview{margin-top:8px;border:1px solid var(--ab-divider);border-radius:8px;background:var(--ab-surface);overflow:hidden}
.ab-ad-preview-ad{padding:12px 14px 10px;min-height:74px;transition:opacity .28s ease}
.ab-ad-preview-ad.is-swapping{opacity:0}
.ab-ad-preview-title{display:flex;align-items:center;gap:6px;font-size:15px;line-height:1.35}
.ab-ad-preview-title b{font-weight:650;color:#1a56b8}
/* 네이버 '광고' 표시를 닮되 읽히게. 흰 글씨를 그 초록에 얹으면 2.25:1이라 안 보인다. 진한 초록 글씨는 5.5:1. */
.ab-ad-preview-tag{flex:none;font-size:10px;font-weight:700;line-height:1;padding:3px 4px;border-radius:3px;color:#0b6b36;background:#e6f7ec;border:1px solid #b9e8c8}
.ab-ad-preview-url{margin-top:2px;font-size:12px;color:#2c7a3f}
.ab-ad-preview-desc{margin-top:4px;font-size:13px;line-height:1.5;color:var(--ab-text-body)}
.ab-ad-preview-bar{display:flex;align-items:center;gap:8px;padding:6px 10px 6px 14px;border-top:1px solid var(--ab-divider);background:#f8f9fb;font-size:11px;color:var(--ab-text-muted)}
.ab-ad-preview-bar [data-ad-counter]{font-variant-numeric:tabular-nums;font-weight:700;color:var(--ab-text-body)}
.ab-ad-preview-hint{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ab-ad-preview-next{flex:none;width:26px;height:26px;border:1px solid var(--ab-card-line);border-radius:6px;background:var(--ab-surface);color:var(--ab-text-body);font-size:16px;line-height:1;cursor:pointer}
.ab-ad-preview-next:hover{border-color:var(--ab-text-muted);color:var(--ab-text-strong)}
.ab-task-copy-all{margin-top:8px}
.ab-task-copy-all summary{cursor:pointer;font-size:12px;color:var(--ab-text-muted)}
/* 왼쪽 제목, 오른쪽 설명. 각 칸은 위에서부터 채우고, 좁은 화면에서는 위아래로 쌓는다. */
.ab-task-copy-cols{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,3fr);gap:4px 24px;margin-top:8px;padding:10px 12px;border:1px solid var(--ab-divider);border-radius:8px;background:var(--ab-surface)}
.ab-task-copy-col-label{display:block;font-size:11px;font-weight:700;color:var(--ab-text-muted);margin-bottom:2px}
.ab-task-copy-cols .ab-task-line{margin:4px 0 0}
@media (max-width:640px){.ab-task-copy-cols{grid-template-columns:1fr}.ab-task-copy-cols>div+div{margin-top:8px}}
@media (prefers-reduced-motion:reduce){.ab-ad-preview-ad{transition:none}}
@media (max-width:640px){.ab-ad-preview-hint{display:none}}
.ab-task-note{margin:8px 0 0;padding-top:8px;border-top:1px solid var(--ab-divider);font-size:11px;line-height:1.6;color:var(--ab-warn)}
.ab-task-ask{margin:8px 0 0;font-size:12px;color:var(--ab-warn)}
.ab-tasks-held summary{cursor:pointer;font-size:12px;color:var(--ab-text-muted);list-style:none}
.ab-tasks-held summary::before{content:'▸ ';font-size:11px}
.ab-tasks-held[open] summary::before{content:'▾ '}
.ab-tasks-held-list{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:6px}
.ab-tasks-held-list li{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12px;color:var(--ab-text-body)}
.ab-tasks-held-list li b{font-weight:650;color:var(--ab-text-strong)}
/* 순위 추이 */
.ab-rank-link,.ab-bid-history-link{background:none;border:0;padding:0;font:inherit;color:inherit;cursor:pointer;border-bottom:1px dashed var(--ab-line);line-height:1.3}
.ab-rank-link:hover,.ab-bid-history-link:hover{color:var(--ab-primary-ink);border-bottom-color:var(--ab-primary-ink)}
.ab-rank-link small,.ab-bid-history-link small{color:var(--ab-text-faint)}
.ab-modal-sub{margin:4px 0 0;font-size:12px;color:var(--ab-text-muted)}
.ab-history-range{margin:14px 0 8px;font-size:12px;color:var(--ab-text-faint)}
.ab-history-chart svg{display:block;width:100%;height:200px;overflow:visible}
.ab-hc-grid{stroke:var(--ab-line);stroke-width:1}
.ab-hc-y,.ab-hc-x{font-size:10px;fill:var(--ab-text-faint)}
.ab-hc-bidlabel{fill:#b45309}
.ab-hc-target{stroke:#16a34a;stroke-width:1;stroke-dasharray:4 3}
.ab-hc-rank{fill:none;stroke:var(--ab-primary-ink);stroke-width:2;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.ab-hc-dot{fill:var(--ab-primary-ink)}
.ab-hc-bid{fill:none;stroke:#f59e0b;stroke-width:1.5;stroke-dasharray:2 2;vector-effect:non-scaling-stroke}
.ab-hc-bid-solid{stroke-width:2;stroke-dasharray:none;stroke-linecap:round;stroke-linejoin:round}
.ab-hc-bid-dot{fill:#f59e0b;stroke:#fff;stroke-width:1.5}
.ab-hc-miss{fill:none;stroke:var(--ab-danger);stroke-width:1.5}
.ab-hc-legend{display:flex;gap:14px;margin-top:6px;font-size:11px;color:var(--ab-text-muted)}
.ab-hc-legend span::before{content:'';display:inline-block;width:14px;height:0;border-top:2px solid;margin-right:5px;vertical-align:middle}
.ab-hc-legend .rank::before{border-color:var(--ab-primary-ink)}
.ab-hc-legend .target::before{border-color:#16a34a;border-top-style:dashed}
.ab-hc-legend .bid::before{border-color:#f59e0b;border-top-style:dotted}
.ab-hc-legend .miss::before{width:6px;height:6px;border:1.5px solid var(--ab-danger);border-radius:50%}
.ab-history-empty{margin:24px 0;text-align:center;font-size:13px;color:var(--ab-text-muted)}
.ab-history-list{margin-top:12px;max-height:280px;overflow:auto;border-top:1px solid var(--ab-line)}
.ab-history-table{width:100%;border-collapse:collapse;font-size:12px}
.ab-history-table th{position:sticky;top:0;background:var(--ab-surface);text-align:left;padding:8px 6px;font-weight:600;color:var(--ab-text-faint);border-bottom:1px solid var(--ab-line)}
.ab-history-table td{padding:7px 6px;border-bottom:1px solid var(--ab-line);vertical-align:top;white-space:nowrap}
.ab-history-table td:last-child{white-space:normal;min-width:180px}
.ab-history-table td b{display:block;color:var(--ab-text-strong)}
.ab-history-table td span{display:block;color:var(--ab-text-muted);word-break:keep-all}
.ab-hc-chg{font-style:normal;font-size:10px;color:#b45309}
.ab-bulk-caption{font-style:normal;font-size:11px;font-weight:600;color:var(--ab-text-faint);white-space:nowrap}

/* 지면 탭 — 파워링크 / 쇼핑검색 */
.ab-card-head-tabs{flex-wrap:wrap}
.ab-ptabs{display:inline-flex;gap:4px;padding:3px;border-radius:999px;background:var(--ab-surface-sub);border:1px solid var(--ab-line)}
.ab-ptab{height:30px;padding:0 14px;border:0;border-radius:999px;background:transparent;font:inherit;font-size:13px;font-weight:600;color:var(--ab-text-muted);cursor:pointer}
.ab-ptab b{font-weight:700;color:var(--ab-text-faint);margin-left:2px}
.ab-ptab[aria-selected="true"]{background:var(--ab-surface);color:var(--ab-text-strong);box-shadow:0 1px 2px rgba(15,23,42,.08)}
.ab-ptab[aria-selected="true"] b{color:var(--ab-primary-ink)}
.ab-ptab:focus-visible{outline:2px solid var(--ab-primary);outline-offset:2px}
.ab-bid-tabs{order:-1;flex-basis:100%;width:max-content;border-radius:10px;background:#eef4ff}
.ab-bid-tabs .ab-ptab{border-radius:7px}
.ab-bid-mode-tools{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 16px;border-bottom:1px solid var(--ab-line);background:var(--ab-surface-sub)}
.ab-bid-mode-tools[hidden]{display:none}
.ab-bid-primary-row{display:flex;align-items:center;gap:16px;width:100%}
.ab-management-meta-slot{display:flex;justify-content:flex-end;min-width:0}
.ab-management-meta{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}
.ab-management-meta .ab-mode-chip,.ab-management-meta .ab-plan-chip{min-height:46px;padding:7px 12px;border-radius:9px}
.ab-management-meta .ab-mode-chip-label{font-size:11px;line-height:1.2}
.ab-management-meta .ab-mode-chip-sub{font-size:10px;line-height:1.25}
.ab-management-meta .ab-hours-chip{min-width:134px}
.ab-management-meta .ab-account-chip{min-width:132px;border-color:#9fc8b7;background:#f3faf7}
.ab-management-meta .ab-account-chip .ab-mode-chip-label{color:#23624b}
.ab-management-meta .ab-account-chip .ab-mode-chip-sub{font-size:12px;font-weight:800;color:#174d3a}
.ab-management-meta .ab-plan-chip{min-width:292px}
.ab-management-meta .ab-plan-chip-action{min-height:30px;padding:0 11px}
.ab-management-meta .ab-account-pop{top:calc(100% + 7px)}
/* import 카드: 계정 칩을 불러오기 버튼 아래 줄에 우측 정렬로 둔다 */
.ab-import>.ab-management-meta{justify-content:flex-end;padding:14px 22px 0}
/* 연동 완료 넛지: 카드 최상단 배너(위쪽 모서리는 카드 radius 가 둥글려 줌) */
.ab-import>.ab-import-nudge{margin:0;padding:12px 22px;border-width:0 0 1px 0;border-radius:0}
/* 불러오기 카드: 설명을 제목 바로 아래 서브타이틀로 묶어 붕 뜨지 않게 */
.ab-import-head-copy{display:flex;flex-direction:column;gap:3px;min-width:0}
.ab-import-head-copy h2{margin:0}
.ab-import-sub{margin:0}
.ab-import-workflow.is-open .ab-import-sub{display:none}
/* 전체화면 불러오기 중엔 계정 칩 줄을 숨긴다 — 가운데 정렬 대상이 아니라 우측으로 붕 떠 보였음 */
.ab-import-workflow.is-open .ab-management-meta{display:none}
/* 이미 불러오는 화면(전체화면)에선 넛지와 헤더의 '불러오기' 버튼을 숨긴다 — 그 화면에 있을 이유가 없다(닫기만 남긴다) */
.ab-import-workflow.is-open .ab-import-nudge,
.ab-import-workflow.is-open .ab-card-actions [data-import]{display:none}
/* 패널 닫힘(import): 마지막 요소가 카드 하단에 맞닿지 않게 여백 */
.ab-import-workflow:not(.is-open){padding-bottom:18px}
/* 불러오기 전체화면(z-2000)이 열려도 가이드/FAQ 플로팅은 그 위에 보이게 */
body.ab-importing .ab-faq-fab{z-index:2001}
@media(max-width:1100px){.ab-bid-primary-row{align-items:flex-start;flex-direction:column}.ab-management-meta-slot,.ab-management-meta{width:100%;justify-content:flex-start}.ab-management-meta .ab-account-pop{right:auto;left:0}}
.ab-bid-limit-copy{display:flex;flex-direction:column;gap:2px;margin-right:auto}
.ab-bid-limit-copy b{font-size:12px;color:var(--ab-text-strong)}
.ab-bid-limit-copy span{font-size:11px;color:var(--ab-text-muted);font-variant-numeric:tabular-nums}
.ab-speed-filters{display:flex;align-items:center;gap:6px;flex-wrap:wrap;flex-basis:100%;padding-top:9px;border-top:1px solid var(--ab-line-soft)}
.ab-speed-filters[hidden]{display:none}
.ab-speed-filters button{height:28px;padding:0 11px;border:1px solid var(--ab-line);border-radius:999px;background:var(--ab-surface);font:inherit;font-size:11px;font-weight:650;color:var(--ab-text-muted);cursor:pointer}
.ab-speed-filters button[aria-pressed=true]{border-color:#b9cff8;background:var(--ab-primary-bg);color:var(--ab-primary-strong)}
.ab-speed-filters .ab-speed-manage{height:34px;margin-left:auto;padding:0 17px;border-color:#8eafe8;border-radius:8px;background:#fff;color:var(--ab-primary-strong);font-size:12px;font-weight:800}
.ab-speed-filters .ab-speed-manage:hover{border-color:var(--ab-primary);background:var(--ab-primary-bg)}
.ab-inline-setting{min-width:190px}
.ab-speed-readonly{display:inline-flex;align-items:center;justify-content:center;min-width:78px;min-height:30px;padding:0 10px;border:1px solid #c9d7ec;border-radius:999px;background:var(--ab-primary-bg);color:var(--ab-primary-strong);font-size:11px;font-weight:750;cursor:help}
.ab-speed-readonly.is-wait{border-color:var(--ab-line);background:var(--ab-surface-mute);color:var(--ab-text-muted)}
.ab-inline-setting>select,.ab-inline-setting label select{height:30px;border:1px solid #c9d7ec;border-radius:999px;padding:0 9px;background:var(--ab-primary-bg);color:var(--ab-primary-strong);font:inherit;font-size:11px;font-weight:700;cursor:pointer}
.ab-inline-setting label{display:inline-flex;align-items:center;gap:3px;margin:2px;font-size:10px;color:var(--ab-text-muted)}
.ab-average-pick{min-width:230px}
.ab-average-pick label{display:inline-flex;align-items:center;gap:4px;margin:2px;font-size:11px;color:var(--ab-text-muted)}
.ab-import-mode{display:flex;align-items:center;gap:12px;padding:14px 20px;border-bottom:1px solid var(--ab-line);background:var(--ab-surface-sub)}
.ab-import-mode>span{font-size:12px;font-weight:700;color:var(--ab-text-body)}
.ab-import-mode .ab-bid-tabs{order:initial;flex-basis:auto}
.ab-eligibility-filters{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 12px}
.ab-import-list-tools{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:10px}
.ab-import-list-tools .ab-eligibility-filters{margin:0}
.ab-import-search{display:flex;align-items:center;gap:8px;font-size:11px;font-weight:650;color:var(--ab-text-muted)}
.ab-import-search input{width:220px;height:36px;border:1px solid var(--ab-input-border);border-radius:9px;padding:0 11px;background:var(--ab-surface);font:inherit;font-size:12px;color:var(--ab-text)}
.ab-result-selectbar{position:sticky;top:0;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 14px;border:1px solid var(--ab-line);border-radius:10px 10px 0 0;background:var(--ab-surface-sub)}
.ab-result-selectbar label{display:flex;align-items:center;gap:9px;font-size:12px;color:var(--ab-text-strong);cursor:pointer}
.ab-result-selectbar span{font-size:11px;color:var(--ab-text-muted)}
.ab-result-select-actions{display:flex;align-items:center;gap:10px}
.ab-import-results{border:1px solid var(--ab-line);border-top:0;border-radius:0 0 10px 10px;background:var(--ab-surface);overflow:hidden}
.ab-import-result-row{display:grid;grid-template-columns:30px minmax(150px,1fr) minmax(250px,auto) auto;align-items:center;gap:12px;padding:12px 14px;border-bottom:1px solid var(--ab-line-soft)}
.ab-import-result-row:last-child{border-bottom:0}
.ab-import-result-row:hover{background:#fbfdff}
.ab-import-result-main{display:flex;align-items:flex-start;gap:12px;min-width:0}
.ab-import-result-copy{flex:1;min-width:0}
.ab-import-creative-image{flex:0 0 76px;width:76px;height:76px;border:1px solid var(--ab-line);border-radius:8px;background:#fff;object-fit:cover}
.ab-import-result-title{display:flex;min-width:0;align-items:center;gap:7px;flex-wrap:wrap}
.ab-import-result-main b{display:block;font-size:13px;line-height:1.45;color:var(--ab-text-strong);white-space:normal;overflow-wrap:anywhere;word-break:break-word}
.ab-import-result-copy>span{display:block;margin-top:4px;font-size:11px;color:var(--ab-text-muted)}
.ab-import-result-title b>em,.ab-import-creative-copy em{margin-right:5px;font-style:normal;font-size:10px;font-weight:750;color:var(--ab-text-muted)}
.ab-import-result-copy>.ab-import-creative-copy{display:grid;gap:3px;margin-top:6px;font-size:12px;line-height:1.45;color:var(--ab-text-body)}
.ab-import-creative-copy span{min-width:0;overflow-wrap:anywhere;word-break:break-word}
.ab-import-creative-copy a{color:var(--ab-primary-strong);text-decoration:none;overflow-wrap:anywhere;word-break:break-all}
.ab-import-creative-copy a:hover{text-decoration:underline}
.ab-import-result-state{min-width:72px;text-align:right}
.ab-filter-chip{min-height:36px;padding:0 13px;border:1px solid var(--ab-line);border-radius:999px;background:var(--ab-surface);font:inherit;font-size:12px;font-weight:650;color:var(--ab-text-body);cursor:pointer}
.ab-filter-chip b{margin-left:4px;color:var(--ab-text-muted);font-size:11px}
.ab-filter-chip:hover{border-color:var(--ab-primary);color:var(--ab-primary-strong)}
.ab-filter-chip.on{border-color:var(--ab-primary);background:var(--ab-primary-bg);color:var(--ab-primary-strong)}
.ab-filter-chip.on b{color:var(--ab-primary-strong)}
.ab-eligibility-mini{display:flex;gap:3px;flex-wrap:wrap;margin-top:5px}
.ab-eligibility-mini .ab-tag{font-size:9px;padding:2px 5px}
.ab-tag.muted{background:var(--ab-surface-mute);color:var(--ab-text-muted)}
.ab-eligibility-cell{display:flex;min-width:0;flex-direction:column;align-items:flex-end;gap:5px}
.ab-eligibility-badges{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end}
.ab-eligibility-badge{display:inline-flex;align-items:center;justify-content:center;min-width:118px;margin:2px 4px 2px 0;padding:5px 8px;border-radius:6px;font-size:11px;font-weight:750}
.ab-eligibility-badge.is-ok{background:#ecfdf3;color:#157347}
.ab-eligibility-badge.is-off{background:#f1f5f9;color:#94a3b8;text-decoration:line-through}
.ab-group-eligibility-reasons{margin:0 0 16px;padding:16px 18px;border:1px solid #fed7aa;border-radius:10px;background:#fff7ed;color:#9a3412}
.ab-group-eligibility-reasons>strong{display:block;margin-bottom:10px;font-size:14px;line-height:1.4;color:#c2410c}
.ab-group-eligibility-reasons ul{display:grid;gap:9px;margin:0;padding:0;list-style:none}
.ab-group-eligibility-reasons li{display:grid;grid-template-columns:auto minmax(0,1fr);gap:11px;font-size:13px;line-height:1.6}
.ab-group-eligibility-reasons li>b{white-space:nowrap;color:#c2410c}
.ab-group-eligibility-reasons span,.ab-group-eligibility-reasons small{display:block}
.ab-group-eligibility-reasons small{margin-top:3px;font-size:12px;line-height:1.5;color:#7c2d12}
.ab-filter-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:220px;padding:32px;text-align:center;border:1px dashed var(--ab-line);border-radius:10px;background:var(--ab-surface-sub)}
.ab-filter-empty b{font-size:14px;color:var(--ab-text-strong)}
.ab-filter-empty span{margin-top:7px;font-size:12px;color:var(--ab-text-muted)}
@media(max-width:1100px){.ab-import-result-row{grid-template-columns:30px minmax(140px,1fr) minmax(240px,auto)}.ab-import-result-state{grid-column:2;text-align:left}.ab-import-result-row .ab-eligibility-cell{grid-column:3;grid-row:1/3}}
@media(max-width:700px){.ab-eligibility-filters{gap:6px}.ab-filter-chip{min-height:40px;padding:0 11px}.ab-import-search{width:100%}.ab-import-search input{flex:1;width:auto}.ab-result-selectbar{align-items:stretch;flex-direction:column}.ab-result-select-actions{justify-content:space-between}.ab-result-select-actions .ab-btn{flex:1}.ab-import-result-row{grid-template-columns:28px minmax(0,1fr);align-items:start}.ab-import-result-row .ab-eligibility-cell{grid-column:2;grid-row:auto;align-items:flex-start}.ab-eligibility-badges{justify-content:flex-start}.ab-import-result-state{grid-column:2}.ab-eligibility-badge{min-width:0}.ab-import-creative-image{flex-basis:64px;width:64px;height:64px}.ab-group-eligibility-reasons li{grid-template-columns:1fr}.ab-assign-bulk-card>div{align-items:flex-start;flex-direction:column}.ab-assign-bulk-card .ab-btn{width:100%;margin-left:0}}
.ab-group[hidden]{display:none}
.ab-sched{display:block;margin-top:3px;font-size:11px;color:var(--ab-text-muted);white-space:normal;word-break:keep-all}
.ab-sched-none{color:var(--ab-text-faint)}

/* 운영 시간 — 요일별 */
.ab-hours-quick{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:12px 0 10px}
.ab-hours-quick-label{font-size:11px;font-weight:600;color:var(--ab-text-faint);margin-right:2px}
.ab-chip{display:inline-flex;align-items:center;min-height:36px;padding:0 14px;border:1px solid var(--ab-card-line);border-radius:999px;background:var(--ab-surface);font:inherit;font-size:13px;font-weight:600;color:var(--ab-text-body);cursor:pointer;transition:background var(--ab-fast) ease,border-color var(--ab-fast) ease}
.ab-chip:hover{border-color:var(--ab-primary);color:var(--ab-primary-strong);background:#f0f7ff}
.ab-chip:active{transform:translateY(1px)}
.ab-chip:focus-visible{outline:2px solid var(--ab-primary);outline-offset:2px}
.ab-hours-table{width:100%;border-collapse:collapse;font-size:13px}
.ab-hours-table th{text-align:left;font-weight:600;color:var(--ab-text-faint);font-size:11px;padding:6px 6px}
.ab-hours-table tbody th{font-size:13px;color:var(--ab-text-strong);width:36px}
.ab-hours-table td{padding:4px 6px;border-top:1px solid var(--ab-line)}
.ab-hours-table tr.is-off td:nth-child(3),.ab-hours-table tr.is-off td:nth-child(4){opacity:.4}
.ab-hours-sel{height:40px;border:1px solid var(--ab-input-border);border-radius:8px;padding:0 8px;font-family:inherit;font-size:13px;color:var(--ab-text);background:var(--ab-surface);width:100%;max-width:120px}
.ab-hours-sel:disabled{background:var(--ab-surface-sub)}
.ab-hours-off{flex-direction:column;align-items:flex-start;gap:8px}
.ab-radio{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:13px;color:var(--ab-text-body);cursor:pointer}
.ab-radio input[type=radio]{accent-color:var(--ab-primary-ink)}
.ab-hours-off .ab-field-unit input{width:110px}
.ab-fields .ab-radio,.ab-hours-off .ab-radio{display:flex;flex-direction:row;align-items:center;gap:8px;width:100%;margin:0;font-size:13px;font-weight:500;color:var(--ab-text-body)}
.ab-hours-off .ab-radio input[type=radio]{width:16px;height:16px;margin:0;flex:none}
.ab-hours-off .ab-radio .ab-field-unit{margin-left:auto}
@media (max-width:560px){.ab-hours-off .ab-radio{flex-wrap:wrap}.ab-hours-off .ab-radio .ab-field-unit{margin-left:24px}}
.ab-fields.ab-hours-off{display:flex;flex-direction:column;align-items:stretch;gap:8px;grid-template-columns:none}

/* 설명 풍선 */
.ab-tip{position:absolute;z-index:80;padding:10px 12px;border-radius:10px;background:#1e293b;color:#f8fafc;font-size:12px;line-height:1.55;box-shadow:0 8px 24px rgba(15,23,42,.18);word-break:keep-all;pointer-events:none}
.ab-tip[hidden]{display:none}
.ab-badge[data-tip]{cursor:help;border-radius:6px}
.ab-badge[data-tip]:focus-visible{outline:2px solid var(--ab-primary);outline-offset:2px}
/* 터치 영역: 스위치·선택칸 모두 44px 높이 확보(모바일). 데스크톱은 40. */
.ab-hours-switch{min-height:40px;padding:0 6px;border-radius:8px}
@media (max-width:640px){.ab-hours-sel{height:44px;font-size:16px}.ab-hours-switch{min-height:44px}.ab-hours-table td{padding:4px 4px}}
/* 표 머리글은 가운데. 단, 왼쪽으로 읽는 열(광고 이름·상태 배지)은 머리글도 같은 왼쪽 축에 세워 내용과 맞춘다. */
.ab-table th,.ab-hours-table th,.ab-history-table th{text-align:center !important}
.ab-table .ab-th-name,.ab-table .ab-th-state{text-align:left !important}
.ab-hours-table tbody th{text-align:center}

/* 전체 점검(axe·터치 영역·글자 크기) 뒤 손본 것 */
.ab-sample{color:#6b5300}
.ab-mode-item.on small,.ab-mode-item:hover small{color:var(--ab-text-body)}
.ab-rank-link small{font-size:11px}
.ab-soon{font-size:11px}
.ab-link{min-height:32px;padding:0 6px}
.ab-rank-link,.ab-bid-history-link{min-height:32px;padding:4px 6px;margin:-4px -6px}
.ab-row-switch{min-height:32px}
.ab-ptab,.ab-history-tab,.ab-seg-btn{height:34px}
.ab-group{height:34px}
.ab-row-pick,#ab-rows-all{width:18px;height:18px;cursor:pointer}
.ab-pick-col{padding:8px 10px}
.ab-th-tools{width:60px}
input.ab-row-pick,input#ab-rows-all{width:20px;height:20px}
.ab-table small{font-size:11px}
.ab-hc-y,.ab-hc-x{font-size:11px}
/* 순위 성적 */
.ab-rank-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px 24px;padding:16px 22px}
.ab-rank-item{display:flex;flex-direction:column;gap:6px}
.ab-rank-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.ab-rank-label{font-size:12px;font-weight:600;color:var(--ab-text-faint)}
.ab-spark{width:120px;height:32px;overflow:visible}
.ab-spark path{fill:none;stroke:var(--ab-primary-ink);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.ab-rank-facts{font-size:12px;color:var(--ab-text-muted)}
.ab-rank-facts b{font-weight:700}
.ab-perf-value small{font-size:13px;font-weight:500;color:var(--ab-text-muted)}

/* 등급·한도 칩 (PLAN-LIMITS.md). 방식 칩과 같은 모양, 누르면 마피아넷 요금제로. */
/* 계정 칩 — 옆의 방식·등급 칩과 똑같은 모양(라벨+잔액). 누르면 아래 팝오버가 열린다. */
.ab-account-wrap{position:relative;display:inline-flex}
.ab-account-chip .ab-mode-chip-label{font-weight:600;color:var(--ab-text-body)}
.ab-account-chip .ab-mode-chip-sub{font-variant-numeric:tabular-nums}
.ab-account-chip.is-locked{border-color:#f1c8c5;background:#fdf3f2}
.ab-account-chip.is-locked .ab-mode-chip-sub{color:var(--ab-danger);font-weight:700}
/* 팝오버 패널 — 비즈머니 잔액과 충전만 보여준다. */
.ab-account-pop{position:absolute;top:calc(100% + 8px);right:0;z-index:50;width:320px;padding:16px;border:1px solid var(--ab-card-line);border-radius:14px;background:var(--ab-surface);box-shadow:0 16px 40px rgba(0,0,0,.16)}
.ab-account-pop-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:12px}
.ab-account-pop-head .ab-muted{font-size:11px}
.ab-account-biz{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:14px 16px;border:1px solid var(--ab-card-line);border-radius:12px;background:var(--ab-page)}
.ab-account-biz-label{display:block;font-size:12px;color:var(--ab-text-muted)}
.ab-account-biz b{display:block;margin:3px 0;font-size:24px;font-weight:800;color:var(--ab-text-strong);font-variant-numeric:tabular-nums}
.ab-account-biz b.ab-danger{color:var(--ab-danger)}
.ab-account-biz .ab-muted{font-size:11px}
.ab-account-biz-actions{display:flex;flex-direction:column;align-items:flex-end;gap:8px;flex:none}
.ab-account-refresh{width:30px;height:30px;display:flex;align-items:center;justify-content:center;border:1px solid var(--ab-card-line);border-radius:8px;background:var(--ab-surface);color:var(--ab-text-muted);font-size:15px;line-height:1;cursor:pointer;transition:border-color var(--ab-fast) ease,color var(--ab-fast) ease}
.ab-account-refresh:hover{border-color:var(--ab-primary);color:var(--ab-text-body)}
.ab-account-note{margin:10px 2px 0;font-size:11px;line-height:1.5;color:var(--ab-text-muted)}
.ab-disconnect-wrap{position:relative;display:inline-flex}
.ab-disconnect-chip{height:34px;padding:0 10px;border:1px solid #dfcac8;border-radius:9px;background:var(--ab-surface);font:inherit;font-size:11px;font-weight:650;color:#8d4b46;cursor:pointer}
.ab-disconnect-chip:hover,.ab-disconnect-chip[aria-expanded=true]{border-color:#d69b96;background:#fff6f5;color:var(--ab-danger)}
.ab-disconnect-confirm-pop{position:absolute;top:calc(100% + 8px);right:0;z-index:80;width:320px;padding:14px;border:1px solid #f1c8c5;border-radius:12px;background:#fffafa;box-shadow:0 16px 40px rgba(0,0,0,.16);font-size:12px;line-height:1.5;color:var(--ab-text-body)}
.ab-disconnect-confirm-pop b,.ab-disconnect-confirm-pop span{display:block}
.ab-disconnect-confirm-pop b{margin-bottom:5px;font-size:13px;color:var(--ab-text-strong)}
.ab-disconnect-confirm-pop .ab-form-error{margin:8px 0 0}
.ab-account-disc-actions{display:flex;gap:8px;margin-top:10px}
.ab-btn-danger{color:var(--ab-danger)}.ab-btn-danger:hover{border-color:var(--ab-danger)}
.ab-btn-danger-solid{background:var(--ab-danger);border-color:var(--ab-danger);color:#fff}.ab-btn-danger-solid:hover{background:#9a352f}
.ab-plan-chip{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:7px 8px 7px 13px;border:1px solid #b9cff8;border-radius:10px;background:#f7faff;text-decoration:none;transition:border-color var(--ab-fast) ease,background var(--ab-fast) ease,box-shadow var(--ab-fast) ease}
.ab-plan-chip:hover{border-color:var(--ab-primary);background:var(--ab-primary-bg);box-shadow:0 5px 14px rgba(37,99,235,.1)}
.ab-plan-chip-copy{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:0}
.ab-plan-chip .ab-mode-chip-label{font-weight:800;color:var(--ab-text-strong)}
.ab-plan-chip-action{display:inline-flex;align-items:center;justify-content:center;gap:4px;min-height:32px;padding:0 12px;border-radius:7px;background:var(--ab-primary);color:#fff;font-size:11px;font-weight:800;white-space:nowrap}
.ab-plan-chip:hover .ab-plan-chip-action{background:var(--ab-primary-strong)}
.ab-plan-chip.is-blocked{border-color:#f1c8c5;background:#fdf3f2}
.ab-plan-chip.is-blocked .ab-mode-chip-label,.ab-plan-chip.is-blocked .ab-mode-chip-sub{color:var(--ab-danger)}
.ab-plan-chip.is-blocked .ab-plan-chip-action{background:var(--ab-danger);color:#fff}
.ab-banner-event{border-color:#fcd9a8;background:linear-gradient(90deg,#fff7ea,#fffdf8);color:#7a4b12}
.ab-banner-event b{color:#b45309}.ab-banner-event strong{color:#9a3412}
.ab-banner-report{border-color:#bfdbfe;background:linear-gradient(90deg,#eff6ff,#f8fbff);color:#1e3a8a}
.ab-banner-report b{color:#1d4ed8}.ab-banner-report strong{color:#1e40af}
.ab-banner-blocked{border-color:#f1c8c5;background:#fdf3f2;color:#8a3f3a}
.ab-banner-blocked b{color:var(--ab-danger)}

/* 확인 우선순위 관리 모달 (섹션 모델, SECTION_MODE). 검색 + 높음/보통/낮음 + '약 N분'. */
.ab-priority-chip .ab-mode-chip-label{font-weight:600;color:var(--ab-text-body)}
.ab-priority-box{width:460px;max-width:calc(100vw - 32px)}
.ab-priority-search{display:flex;align-items:center;gap:8px;margin:14px 0 4px;padding:10px 12px;border:1px solid var(--ab-card-line);border-radius:10px;background:var(--ab-page)}
.ab-priority-search input{flex:1;border:0;background:none;font-size:13px;color:var(--ab-text-body);outline:none}
.ab-priority-list{max-height:44vh;overflow-y:auto;margin:4px -2px 0}
.ab-priority-row{display:flex;align-items:center;gap:12px;padding:12px 2px;border-bottom:1px solid var(--ab-divider)}
.ab-priority-kw{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}
.ab-priority-kw b{font-size:14px;font-weight:700;color:var(--ab-text-strong);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ab-priority-name{display:flex;align-items:center;gap:6px;min-width:0}
.ab-priority-device{flex:0 0 auto;font-size:11px;font-weight:700;color:#1d4ed8;background:#eff6ff;border:1px solid #dbeafe;padding:1px 7px;border-radius:999px}
.ab-priority-cycle{align-self:flex-start;font-size:11px;color:var(--ab-text-muted);background:var(--ab-page);padding:2px 7px;border-radius:6px;font-variant-numeric:tabular-nums}
.ab-priority-cycle.is-slow{color:#b45309;background:#fff7ea;font-weight:600}
.ab-priority-seg{display:flex;gap:4px;flex:none}
.ab-priority-pick{padding:5px 11px;border:1px solid var(--ab-card-line);border-radius:7px;background:var(--ab-surface);font-size:11px;font-weight:500;color:var(--ab-text-body);cursor:pointer;transition:border-color var(--ab-fast) ease,background var(--ab-fast) ease,color var(--ab-fast) ease}
.ab-priority-pick:hover{border-color:var(--ab-primary)}
.ab-priority-pick.on{background:var(--ab-primary);border-color:var(--ab-primary);color:#fff;font-weight:700}
.ab-priority-empty{padding:26px 4px;text-align:center;font-size:13px;color:var(--ab-text-muted)}
.ab-priority-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px;padding-top:14px;border-top:1px solid var(--ab-divider)}
.ab-priority-foot-info{display:flex;flex-direction:column;gap:2px}
.ab-priority-foot-info b{font-size:12px;font-weight:700;color:var(--ab-text-body)}
.ab-priority-foot-info span{font-size:11px;color:var(--ab-text-muted)}

/* 확인 속도 모달: 요금제 헤더 + 용량 게이지(막대만, 숫자X). */
.ab-priority-plan{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:14px 0 10px;padding:12px 14px;border:1px solid var(--ab-card-line);border-radius:12px;background:var(--ab-page)}
.ab-priority-plan b{display:block;font-size:14px;font-weight:800;color:var(--ab-text-strong)}
.ab-priority-plan span{display:block;font-size:12px;color:var(--ab-text-body);font-weight:700;margin-top:2px}
.ab-priority-plan small{display:block;font-size:11px;color:var(--ab-text-muted);margin-top:3px;line-height:1.45}
.ab-priority-gauge{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.ab-priority-gauge-bar{flex:1;height:8px;border-radius:99px;background:var(--ab-card-line);overflow:hidden}
.ab-priority-gauge-bar i{display:block;height:100%;border-radius:99px;background:var(--ab-primary);transition:width .25s ease}
.ab-priority-gauge-word{font-size:12px;font-weight:600;color:var(--ab-text-muted);white-space:nowrap}
.ab-priority-gauge[data-status=near] .ab-priority-gauge-bar i{background:#d97706}
.ab-priority-gauge[data-status=near] .ab-priority-gauge-word{color:#b45309}
.ab-priority-gauge[data-status=full] .ab-priority-gauge-bar i{background:var(--ab-danger)}
.ab-priority-gauge[data-status=full] .ab-priority-gauge-word{color:var(--ab-danger)}
.ab-priority-capacity-note{margin:0 0 10px;padding:9px 11px;border-radius:8px;background:var(--ab-primary-bg);font-size:12px;line-height:1.55;color:var(--ab-text-body)}
.ab-priority-capacity-note[hidden]{display:none}
.ab-priority-gauge[data-status=full]+.ab-priority-capacity-note{background:#fff4f2;color:#9f332e}

/* 쇼핑검색 ON 확인 — 파워링크 입찰 속도 모달과 분리해 10분 고정 조회 조건만 보여준다. */
.ab-shopping-start-box{width:520px;max-width:calc(100vw - 32px)}
.ab-shopping-start-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:14px 0;padding:12px;border:1px solid var(--ab-card-line);border-radius:10px;background:var(--ab-surface-sub)}
.ab-shopping-start-facts span{display:flex;flex-direction:column;gap:3px;min-width:0;font-size:12px;line-height:1.45;color:var(--ab-text-body);word-break:keep-all}
.ab-shopping-start-facts b{font-size:10px;color:var(--ab-text-muted)}
.ab-shopping-start-list{max-height:220px;overflow-y:auto;border-top:1px solid var(--ab-line)}
.ab-shopping-start-item{padding:11px 2px;border-bottom:1px solid var(--ab-line)}
.ab-shopping-start-item b{display:block;font-size:13px;color:var(--ab-text-strong);overflow-wrap:anywhere}
.ab-shopping-start-item span{display:block;margin-top:3px;font-size:11px;line-height:1.5;color:var(--ab-text-muted);overflow-wrap:anywhere}
.ab-shopping-start-replace{margin-top:14px;padding:13px;border:1px solid #bfdbfe;border-radius:10px;background:#eff6ff}
.ab-shopping-start-replace[hidden]{display:none}
.ab-shopping-start-replace>b{display:block;font-size:13px;color:#1e3a8a}
.ab-shopping-start-replace>span{display:block;margin-top:4px;font-size:11px;line-height:1.5;color:#475569}
#ab-shopping-start-replace-list{display:grid;gap:6px;margin-top:10px}
.ab-shopping-start-replace-item{display:flex;align-items:center;gap:9px;min-height:44px;padding:9px 10px;border:1px solid #dbeafe;border-radius:8px;background:#fff;cursor:pointer}
.ab-shopping-start-replace-item:has(input:checked){border-color:var(--ab-primary);box-shadow:0 0 0 1px var(--ab-primary)}
.ab-shopping-start-replace-item:has(input:focus-visible){outline:2px solid var(--ab-primary);outline-offset:2px}
.ab-shopping-start-replace-item input{width:16px;height:16px;accent-color:var(--ab-primary);flex:none}
.ab-shopping-start-replace-item span{font-size:12px;font-weight:650;color:var(--ab-text-body);overflow-wrap:anywhere}
#ab-shopping-start-capacity{font-size:11px;color:var(--ab-text-muted)}
@media(max-width:560px){
  .ab-shopping-start-facts{grid-template-columns:1fr}
  .ab-shopping-start-box .ab-modal-foot{display:grid;grid-template-columns:1fr;align-items:stretch;gap:10px}
  .ab-shopping-start-box .ab-modal-foot-right{display:grid;grid-template-columns:1fr 1fr;width:100%}
  .ab-shopping-start-box .ab-modal-foot-right .ab-btn{width:100%;min-height:44px;padding-inline:10px}
  #ab-shopping-start-capacity{line-height:1.5}
}

/* 화면 가이드: 큰 설명 패널 대신 기능 옆의 작은 번호표를 쓴다. 설명과 화살표는 호버한 항목 하나만 연다. */
.ab-screen-guide{position:fixed;inset:0;z-index:3000;color:#fff}
.ab-guide-open{overflow:hidden}
.ab-screen-guide[hidden]{display:none}
.ab-screen-guide-mono{position:absolute;inset:0;background:rgba(15,23,42,.26);backdrop-filter:grayscale(.7) brightness(.88)}
.ab-screen-guide-lines,.ab-screen-guide-marks{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.ab-screen-guide-lines{z-index:3;overflow:visible}
.ab-screen-guide-mark{position:fixed;z-index:2;border:1px solid rgba(255,255,255,.88);border-radius:10px;box-shadow:0 0 0 2px rgba(59,130,246,.48);transition:border-color .16s ease,box-shadow .16s ease,background .16s ease}
.ab-screen-guide-mark.is-active{border-color:#ff3b30;background:rgba(255,59,48,.1);box-shadow:0 0 0 4px rgba(255,59,48,.38),0 8px 28px rgba(0,0,0,.22)}
.ab-guide-line{opacity:0;transition:opacity .14s ease}
.ab-guide-line.is-active{opacity:1}
.ab-screen-guide-panel{position:fixed;z-index:4;inset:0;pointer-events:none}
.ab-screen-guide-head{position:fixed;top:14px;left:50%;display:flex;align-items:center;justify-content:space-between;gap:14px;max-width:calc(100vw - 24px);padding:9px 10px 9px 14px;border:1px solid rgba(255,255,255,.38);border-radius:12px;background:#111827;box-shadow:0 10px 28px rgba(0,0,0,.28);transform:translateX(-50%);pointer-events:auto}
.ab-screen-guide-head b{display:block;font-size:14px;white-space:nowrap}.ab-screen-guide-head span{display:block;margin-top:2px;font-size:10px;color:#cbd5e1;white-space:nowrap}
.ab-screen-guide-close{flex:none;width:30px;height:30px;border-radius:8px;background:#fff;color:#111827;font-size:18px;font-weight:700}
.ab-screen-guide-callouts{display:contents}
.ab-screen-guide-callout{position:fixed;width:max-content;max-width:184px;padding:7px 10px;border:1px solid rgba(103,232,249,.88);border-radius:7px;background:rgba(8,15,28,.95);box-shadow:0 0 0 1px rgba(59,130,246,.18),0 0 16px rgba(34,211,238,.24),0 6px 18px rgba(0,0,0,.22);pointer-events:auto;cursor:help;transition:width .16s ease,max-width .16s ease,transform .16s ease,border-radius .16s ease,box-shadow .16s ease,border-color .16s ease,background .16s ease,opacity .16s ease}
.ab-screen-guide.has-active .ab-screen-guide-callout:not(.is-active){opacity:0;pointer-events:none}
.ab-screen-guide-callout:hover,.ab-screen-guide-callout:focus-visible,.ab-screen-guide-callout.is-active{width:260px;max-width:260px;border-radius:10px;border-color:#fb7185;background:#0b1220;box-shadow:0 0 0 1px rgba(251,113,133,.28),0 0 20px rgba(251,113,133,.2),0 12px 32px rgba(0,0,0,.34);outline:0}
.ab-screen-guide-callout.grow-left:hover,.ab-screen-guide-callout.grow-left:focus-visible,.ab-screen-guide-callout.grow-left.is-active{transform:translateX(calc(-100% + var(--guide-compact-width,80px)))}
.ab-screen-guide-callout b{display:flex;align-items:center;gap:6px;font-size:11px;color:#fff;white-space:nowrap}
.ab-screen-guide-callout:hover b,.ab-screen-guide-callout:focus-visible b,.ab-screen-guide-callout.is-active b{gap:8px;font-size:12px}
.ab-screen-guide-callout b i{display:inline;font-style:normal;font-size:10px;font-weight:850;color:#67e8f9;text-shadow:0 0 9px rgba(103,232,249,.75)}
.ab-screen-guide-callout span{display:none;margin-top:7px;padding-top:7px;border-top:1px solid rgba(255,255,255,.12);font-size:11px;line-height:1.55;color:#e2e8f0;word-break:keep-all}
.ab-screen-guide-callout:hover span,.ab-screen-guide-callout:focus-visible span,.ab-screen-guide-callout.is-active span{display:block}
.ab-guide-chip{border-color:#bfdbfe;background:#eff6ff;color:#1d4ed8}
.ab-modal-head-actions{display:flex;align-items:center;gap:8px}
@media(max-width:760px){
  .ab-screen-guide-head{top:8px}.ab-screen-guide-head span{display:none}
  .ab-screen-guide-callout{max-width:calc(100vw - 24px)}
  .ab-screen-guide-callout:hover,.ab-screen-guide-callout:focus-visible,.ab-screen-guide-callout.is-active{width:min(260px,calc(100vw - 24px));max-width:calc(100vw - 24px)}
}

/* 확인 속도 모달: 게이지 숫자 + 전체선택/일괄바 + 체크박스 + 대기 */
.ab-priority-gauge-num{font-size:12px;font-weight:700;color:var(--ab-text-body);font-variant-numeric:tabular-nums;white-space:nowrap}
.ab-priority-bulk{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:6px 0 2px;padding:8px 2px;border-bottom:1px solid var(--ab-divider)}
.ab-priority-all{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--ab-text-body);cursor:pointer}
.ab-priority-selcount{font-size:12px;color:var(--ab-primary);font-weight:700}
.ab-priority-bulk-btns{display:flex;gap:4px;margin-left:auto}
.ab-priority-checkwrap{display:flex;align-items:center;flex:none}
.ab-priority-check{width:16px;height:16px;cursor:pointer}
.ab-priority-cycle.is-wait{color:var(--ab-text-muted);background:transparent;font-style:italic}
.ab-priority-row.is-wait{opacity:.66}
.ab-priority-cycle:empty{display:none}   /* 버튼이 시간을 보여주므로 활성 상태는 배지 숨김(대기만 표시) */
.ab-priority-row[hidden]{display:none}   /* 검색 필터가 먹게(class display 가 UA [hidden] 을 이기던 것) */
@media (min-width:1024px){.ab-modal{left:248px}}   /* 좌측 사이드바(248px) 고려해 본문 영역 중앙에 */
/* 무료 순위 진단(미연동 후킹) — 공지형 가운데 모달, 실시간 강조 */
.ab-diag-modal{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:20px;padding-top:calc(20px + env(safe-area-inset-top,0px));padding-bottom:calc(20px + env(safe-area-inset-bottom,0px));background:rgba(15,23,42,.55)}
.ab-diag-modal[hidden]{display:none}   /* display:flex 가 UA [hidden] 을 이기므로 명시적으로 끈다 */
@media (min-width:1024px){.ab-diag-modal{left:248px}} /* 고정 사이드바를 뺀 작업 영역의 정중앙 */
.ab-diag-box{position:relative;width:100%;max-width:540px;max-height:90vh;overflow:auto;background:#fff;border-radius:18px;padding:26px 24px 16px;box-shadow:0 24px 70px rgba(0,0,0,.3)}
.ab-diag-x{position:absolute;top:12px;right:14px;width:32px;height:32px;border:0;background:transparent;font-size:24px;line-height:1;color:#94a3b8;cursor:pointer;border-radius:8px}
.ab-diag-x:hover{background:#f1f5f9;color:#334155}
.ab-diag-live{display:inline-flex;align-items:center;gap:6px;padding:4px 11px;border-radius:999px;background:#eafaf0;color:#0f9d58;font-size:12px;font-weight:800;letter-spacing:.02em}
.ab-diag-live i{width:7px;height:7px;border-radius:50%;background:#12b76a;animation:ab-diag-pulse 1.6s infinite}
@keyframes ab-diag-pulse{0%{box-shadow:0 0 0 0 rgba(18,183,106,.55)}70%{box-shadow:0 0 0 7px rgba(18,183,106,0)}100%{box-shadow:0 0 0 0 rgba(18,183,106,0)}}
.ab-diag-head h2{margin:10px 20px 6px 0;font-size:21px;line-height:1.3;letter-spacing:-.01em}
.ab-diag-head p{margin:0 0 16px;color:#64748b;font-size:13px;line-height:1.5}
.ab-diag-head p b{color:#0f172a}
.ab-diag-form{display:flex;flex-wrap:wrap;gap:12px}
.ab-diag-field{flex:1 1 100%}
.ab-diag-label{display:block;margin:0 0 5px;font-size:12px;font-weight:700;color:#475569}
.ab-diag-form input[type=text]{width:100%;box-sizing:border-box;min-height:42px;padding:0 13px;border:1px solid var(--ab-card-line);border-radius:10px;background:var(--ab-surface);font-size:14px}
.ab-diag-form input[type=text]:focus{outline:none;border-color:var(--ab-primary)}
.ab-diag-form .ab-region-box{width:100%}
.ab-diag-form .ab-region{display:grid;grid-template-columns:0.85fr 1.15fr 1.15fr;gap:8px;width:100%}
.ab-diag-form .ab-region select{width:100%;min-width:0;max-width:none;height:42px;padding:0 12px;border:1px solid var(--ab-card-line);border-radius:10px;background:var(--ab-surface);font-size:14px}
.ab-diag-form #ab-diag-run{flex:1 1 100%;min-height:44px;font-weight:700}
.ab-diag-msg{margin:12px 0 0;color:var(--ab-danger);font-size:13px}
.ab-diag-result{margin:18px 0 0;display:flex;flex-direction:column;gap:14px}
.ab-diag-resulthead{display:flex;align-items:center;flex-wrap:wrap;gap:8px;font-size:14px;color:#0f172a;font-weight:700}
.ab-diag-resulthead .meta{font-weight:400;color:#94a3b8;font-size:12px}
.ab-diag-dev{border:1px solid var(--ab-card-line);border-radius:12px;overflow:hidden}
.ab-diag-dev-head{display:flex;justify-content:space-between;align-items:center;padding:10px 13px;background:#fafbfc;font-size:13px;border-bottom:1px solid var(--ab-card-line)}
.ab-diag-dev-head b{font-size:13px}
.ab-diag-dev-head .cnt{color:#64748b;font-size:12px}
.ab-diag-dev-head .cnt b{color:var(--ab-primary);font-size:14px}
.ab-diag-slot{display:flex;align-items:center;gap:11px;padding:9px 13px;font-size:13px}
.ab-diag-slot+.ab-diag-slot{border-top:1px solid #f1f5f9}
.ab-diag-slot .rk{flex:0 0 auto;width:24px;height:24px;border-radius:7px;background:#eef2f7;color:#475569;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:800}
.ab-diag-slot.top .rk{background:var(--ab-primary);color:#fff}
.ab-diag-slot .nm{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500;color:#1f2937}
.ab-diag-slot .dm{flex:0 0 auto;color:#94a3b8;font-size:12px;max-width:38%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ab-diag-empty{padding:12px 13px;color:#64748b;font-size:13px}
.ab-diag-cta{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:14px;border-radius:12px;background:linear-gradient(100deg,#eef4ff,#f7faff);border:1px solid #dbe6ff}
.ab-diag-cta span{flex:1 1 220px;font-size:13px;color:#1e293b;line-height:1.5}
.ab-diag-cta span b{color:var(--ab-primary)}
.ab-diag-cta .ab-btn{flex:0 0 auto}
.ab-diag-hide{display:flex;align-items:center;gap:6px;margin:18px 0 2px;font-size:12px;color:#94a3b8;cursor:pointer}
.ab-diag-hide input{margin:0}
/* 예시 표 위 안내줄(모달 재열기) */
.ab-diag-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:0 0 14px;padding:12px 16px;border:1px solid var(--ab-card-line);border-radius:10px;background:#fff}
.ab-diag-bar span{font-size:13px;color:#475569}
.ab-diag-bar span b{color:#0f172a}
.ab-diag-bar .ab-btn{flex:0 0 auto}
@media (max-width:520px){.ab-diag-head h2{font-size:19px}.ab-diag-bar .ab-btn{width:100%}}

/* 자동입찰 화면 안의 공지사항 진입점 */
.ab-notice-entry{display:flex;align-items:center;gap:13px;margin:0 0 16px;padding:14px 18px;border:1px solid #dbe5f3;border-radius:12px;background:#fff;color:#1f2937;text-decoration:none;box-shadow:0 8px 22px rgba(15,23,42,.035);transition:border-color .15s,background .15s}
.ab-notice-entry:hover{border-color:#93c5fd;background:#f8fbff}
.ab-notice-entry:focus-visible{outline:2px solid #2563eb;outline-offset:2px}
.ab-notice-entry>.material-symbols-outlined{display:grid;place-items:center;flex:0 0 38px;width:38px;height:38px;border-radius:10px;background:#eef4ff;color:#2563eb;font-size:21px}
.ab-notice-entry-copy{display:flex;flex-direction:column;gap:1px;min-width:0;flex:1}.ab-notice-entry-copy b{font-size:14px;color:#111827}.ab-notice-entry-copy small{font-size:12px;color:#64748b}.ab-notice-entry-action{font-size:12px;font-weight:700;color:#2563eb;white-space:nowrap}
@media(max-width:640px){.ab-notice-entry{padding:12px 14px;gap:10px}.ab-notice-entry-copy small{font-size:11px}.ab-notice-entry-action{font-size:0}.ab-notice-entry-action span{font-size:18px}}
.ab-notice-entry-title{display:flex;align-items:center;gap:7px}.ab-notice-entry-new{display:inline-flex;align-items:center;height:17px;padding:0 5px;border-radius:5px;background:#ef4444;color:#fff;font-size:10px;font-weight:800;line-height:1}.ab-notice-entry-new[hidden]{display:none}
