/*!*************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[15].oneOf[10].use[2]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[15].oneOf[10].use[3]!./app/globals.css ***!
  \*************************************************************************************************************************************************************************************************************************************************************/
:root { color-scheme: dark; }
* { box-sizing: border-box; }
html, body { margin: 0; min-height: 100%; }
.toss-dark {
  --color-primary-50:#0a1d3d; --color-primary-100:#0e2b5c; --color-primary-500:#4795ff; --color-primary-600:#6faeff;
  --color-success-bg:#0f2e1c; --color-success-fg:#4ade80; --color-warning-bg:#2e1f00; --color-warning-fg:#ffb547;
  --color-error-bg:#2e1010; --color-error-fg:#ff6b6b; --bg-base:#0f1115; --bg-subtle:#15171c; --bg-elevated:#1a1d24;
  --bg-field:#2c303a; --text-primary:#f2f4f6; --text-secondary:#b0b8c1; --text-tertiary:#8b95a1; --text-on-primary:#0f1115;
  --border-default:#21232a; --border-strong:#2c2f37; --border-field:#464d5c; --border-focus:#4795ff;
  --radius-sm:8px; --radius-md:12px; --radius-lg:14px; --radius-xl:20px;
  --shadow-xl:0 0 0 1px rgba(71,149,255,.3),0 16px 32px rgba(71,149,255,.18);
  /* 탭 헤드: 기본 +10% / 선택 +15% (white mix) */
  --tab-head-bg: color-mix(in srgb, var(--bg-subtle) 90%, white 10%);
  --tab-head-fg: color-mix(in srgb, var(--text-tertiary) 90%, white 10%);
  --tab-head-fg-strong: color-mix(in srgb, var(--text-secondary) 90%, white 10%);
  --tab-head-active-bg: color-mix(in srgb, var(--bg-elevated) 85%, white 15%);
  --tab-head-active-fg: color-mix(in srgb, var(--text-primary) 85%, white 15%);
  background:var(--bg-base); color:var(--text-primary); font-family:Pretendard,"Geist Sans","Segoe UI",sans-serif; letter-spacing:-.02em;
}
button,input,select { font:inherit; }
button { cursor:pointer; }
.app-shell { min-height:100vh; display:grid; grid-template-columns:212px 1fr; position:relative; z-index:0; }
.toss-sidebar { position:sticky; top:0; height:100vh; background:var(--bg-subtle); border-right:1px solid var(--border-default); padding:16px 11px; display:flex; flex-direction:column; overflow-y:auto; }
.brand { display:flex; align-items:center; gap:8px; padding:0 6px 16px; font-weight:800; font-size:15px; }
.brand-mark { width:28px; height:28px; border-radius:8px; display:grid; place-items:center; color:var(--text-on-primary); background:var(--color-primary-500); box-shadow:var(--shadow-xl); }
.nav-label { padding:8px 10px; color:var(--text-tertiary); text-transform:uppercase; font-size:12px; font-weight:700; letter-spacing:.08em; }
.toss-sidebar-section { margin:2px 0 6px; }
/* 대메뉴 */
.toss-sidebar-section-head { display:flex; align-items:center; justify-content:space-between; gap:8px; width:100%; border:0; background:transparent; padding:8px 10px; margin:0; border-radius:var(--radius-sm); color:var(--text-secondary); text-transform:none; font-size:15px; font-weight:750; letter-spacing:-.01em; cursor:pointer; text-align:left; }
.toss-sidebar-section-head:hover { background:var(--bg-field); color:var(--text-primary); }
.toss-sidebar-section-head.is-current { color:var(--text-primary); }
.toss-sidebar-chevron { flex-shrink:0; transition:transform .15s ease; opacity:.7; width:16px; height:16px; }
.toss-sidebar-section:not(.is-open) .toss-sidebar-chevron { transform:rotate(-90deg); }
.toss-sidebar-chevron-inline { margin-left:auto; }
.toss-sidebar-group:not(.is-open) .toss-sidebar-chevron-inline { transform:rotate(-90deg); }
.toss-sidebar-section-body { padding:0 0 4px; }
/* 소메뉴 */
.toss-sidebar-link { position:relative; display:flex; align-items:center; gap:8px; border:0; width:100%; padding:7px 10px; margin:1px 0; border-radius:var(--radius-sm); background:transparent; color:var(--text-secondary); text-align:left; text-decoration:none; cursor:pointer; font:inherit; font-size:13px; font-weight:500; line-height:1.35; }
.toss-sidebar-link-active { background:var(--bg-field); color:var(--text-primary); }
.toss-sidebar-link-active:before { content:""; position:absolute; left:0; top:6px; bottom:6px; width:2px; border-radius:9px; background:var(--color-primary-500); }
.toss-sidebar-group { margin:1px 0; }
.toss-sidebar-group-head { font-weight:600; color:var(--text-primary); font-size:13px; }
.toss-sidebar-group-head.toss-sidebar-link-active:before { display:none; }
.toss-sidebar-sub { padding:0 0 2px 10px; }
.toss-sidebar-link-sub { padding:6px 10px; margin:0; font-size:13px; font-weight:500; }
.toss-sidebar-external-icon { margin-left:auto; opacity:.55; flex-shrink:0; }
.sidebar-foot { margin-top:auto; padding:10px 8px; border-top:1px solid var(--border-default); color:var(--text-tertiary); font-size:11px; line-height:1.5; display:grid; gap:6px; }
.sidebar-foot-title { margin:0; font-size:11px; line-height:1.45; color:var(--text-tertiary); }
.sidebar-foot-download {
  display:inline-flex; align-items:center; justify-content:center;
  height:28px; padding:0 8px; border-radius:8px;
  background:rgba(71,149,255,.12); color:var(--color-primary-600);
  font-size:11px; font-weight:700; text-decoration:none;
}
.sidebar-foot-download:hover { background:rgba(71,149,255,.18); }
.sidebar-foot-guide {
  border:0; background:transparent; padding:0; margin:0;
  color:var(--text-secondary); font-size:11px; text-align:left;
  text-decoration:underline; text-underline-offset:3px; cursor:pointer;
}
.sidebar-foot-guide:hover { color:var(--text-primary); }

.ext-guide { display:grid; gap:18px; max-width:720px; }
.ext-guide section h3 { margin:0 0 8px; font-size:14px; font-weight:800; }
.ext-guide ol, .ext-guide ul { margin:0; padding-left:18px; display:grid; gap:8px; }
.ext-guide li { font-size:13px; line-height:1.55; color:var(--text-secondary); }
.ext-guide strong { color:var(--text-primary); font-weight:700; }
.ext-guide code {
  font-size:12px; padding:1px 6px; border-radius:6px;
  background:var(--bg-subtle); border:1px solid var(--border-default);
}
.ext-guide-note { display:inline-block; margin-top:4px; color:var(--text-tertiary); font-size:12px; }
.ext-guide-tips {
  padding:12px; border-radius:12px; background:var(--bg-subtle); border:1px solid var(--border-default);
}
.ext-guide-lead { margin:0; font-size:13px; line-height:1.6; color:var(--text-secondary); }
.ext-guide-pages { display:flex; flex-wrap:wrap; gap:8px; margin:12px 0 0; }
.ext-guide-pages .toss-btn-secondary { height:36px; padding:0 12px; text-decoration:none; display:inline-flex; align-items:center; }
.ext-guide a { color:var(--color-primary-600); }
.ext-help-nav {
  display:flex; gap:6px; margin:0 0 18px; padding:4px; width:fit-content; max-width:100%;
  border:1px solid var(--border-default); border-radius:12px; background:var(--tab-head-bg);
}
.ext-help-nav-link {
  height:34px; padding:0 14px; border-radius:9px; text-decoration:none;
  color:var(--tab-head-fg-strong); font-size:13px; font-weight:700;
  display:inline-flex; align-items:center;
}
.ext-help-nav-link.is-active {
  background:var(--tab-head-active-bg); color:var(--tab-head-active-fg);
  box-shadow:0 1px 0 rgba(0,0,0,.04);
}
.ext-help-caution {
  max-width: 720px;
  margin: 0 0 18px;
  padding: 16px 18px 18px;
  border-radius: var(--radius-lg);
  border: 1px solid color-mix(in srgb, var(--color-warning-fg) 45%, var(--border-default));
  background: var(--color-warning-bg);
  box-shadow: 0 0 0 1px color-mix(in srgb, var(--color-warning-fg) 22%, transparent);
}
.ext-help-caution-head {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 10px;
}
.ext-help-caution-head h2 {
  margin: 0;
  font-size: 16px;
  font-weight: 800;
  color: var(--color-warning-fg);
}
.ext-help-caution-lead {
  margin: 0 0 12px;
  font-size: 14px;
  line-height: 1.6;
  color: var(--text-primary);
}
.ext-help-caution ul {
  margin: 0;
  padding-left: 18px;
  display: grid;
  gap: 8px;
}
.ext-help-caution ul + ul { margin-top: 10px; }
.ext-help-caution li {
  font-size: 13px;
  line-height: 1.55;
  color: var(--text-primary);
}
.ext-help-caution strong { color: #fff; font-weight: 800; }
.ext-help-caution .toss-chip.warn {
  background: var(--color-warning-fg);
  color: #1a1200;
}

/* 토스트 — 화면 중앙, 폭 70% · 유형색은 info/error 기존 규격 */
.app-toast {
  position: fixed;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  z-index: 12000;
  width: 70%;
  max-width: 70%;
  box-sizing: border-box;
  padding: 14px 18px;
  border-radius: 12px;
  background: var(--bg-field, #2c303a);
  border: 1px solid var(--border-strong, #2c2f37);
  box-shadow: 0 18px 48px rgba(0, 0, 0, 0.45);
  color: var(--text-primary, #f2f4f6);
  font-size: 14px;
  line-height: 1.5;
  text-align: center;
  pointer-events: none;
}
.app-toast-light {
  background: #122033;
  border-color: transparent;
  color: #fff;
  box-shadow: 0 14px 40px rgba(0, 0, 0, 0.35);
}
/* ALERT / 실패 전용 — 빨간 배경 + 흰 글씨 (디자인 시스템) */
.app-toast-error {
  background: #c62828;
  border-color: #b71c1c;
  color: #ffffff;
  box-shadow: 0 18px 48px rgba(198, 40, 40, 0.45);
}

.generate-wait-overlay {
  position:fixed; inset:0; width:100vw; height:100vh; z-index:11000;
  display:grid; place-items:center; align-content:center; gap:12px;
  background:rgba(12, 18, 28, 0.55); -webkit-backdrop-filter:blur(2px); backdrop-filter:blur(2px); padding:24px;
}
.ext-modal-root {
  position:fixed; inset:0; z-index:80;
  display:flex; align-items:center; justify-content:center;
  padding:20px; background:rgba(8,10,14,.62);
}
.ext-modal {
  width:min(640px, 100%);
  max-height:min(88vh, 860px);
  display:flex; flex-direction:column;
  background:var(--bg-field);
  border:1px solid var(--border-strong);
  border-radius:16px;
  box-shadow:0 24px 60px rgba(0,0,0,.45);
  overflow:hidden;
}
.ext-modal-head {
  display:flex; justify-content:space-between; gap:12px; align-items:flex-start;
  padding:18px 18px 12px; border-bottom:1px solid var(--border-default);
}
.ext-modal-head h2 { margin:0; font-size:17px; font-weight:800; }
.ext-modal-head p { margin:6px 0 0; color:var(--text-tertiary); font-size:13px; line-height:1.5; }
.ext-modal-close {
  width:34px; height:34px; border-radius:10px; border:1px solid var(--border-default);
  background:var(--bg-subtle); color:var(--text-secondary); cursor:pointer;
  display:inline-flex; align-items:center; justify-content:center; flex:none;
}
.ext-modal-body {
  overflow:auto; padding:8px 18px 16px;
  display:grid; gap:14px;
}
.ext-modal-body section h3 { margin:0 0 8px; font-size:14px; font-weight:800; }
.ext-modal-body ol, .ext-modal-body ul { margin:0; padding-left:18px; display:grid; gap:8px; }
.ext-modal-body li { font-size:13px; line-height:1.55; color:var(--text-secondary); }
.ext-modal-body strong { color:var(--text-primary); font-weight:700; }
.ext-modal-body code {
  font-size:12px; padding:1px 6px; border-radius:6px;
  background:var(--bg-subtle); border:1px solid var(--border-default);
  color:var(--text-primary);
}
.ext-modal-note { display:inline-block; margin-top:4px; color:var(--text-tertiary); font-size:12px; }
.ext-modal-tips {
  padding:12px; border-radius:12px; background:var(--bg-subtle); border:1px solid var(--border-default);
}
.ext-modal-foot {
  display:flex; justify-content:flex-end; flex-wrap:wrap; gap:8px;
  padding:12px 18px 16px; border-top:1px solid var(--border-default);
}

.agent-result-tabs {
  display: flex; flex-wrap: wrap; gap: 8px;
  margin-bottom: 14px; padding-bottom: 10px;
  border-bottom: 1px solid var(--border-default);
}
.agent-result-chip {
  border: 0; background: transparent; padding: 0;
  font-size: 13px; font-weight: 650; color: var(--tab-head-fg);
  cursor: pointer; text-decoration: none;
}
.agent-result-chip:hover { color: var(--tab-head-fg-strong); }
.agent-result-chip.active { color: var(--tab-head-active-fg); text-decoration: underline; text-underline-offset: 4px; }
.agent-result-chip.has-result { color: var(--tab-head-fg-strong); }
.agent-result-thumb {
  flex: 0 0 180px; display: grid; gap: 6px; text-decoration: none;
  color: var(--text-tertiary); font-size: 11px;
  border: 1px solid var(--border-default); border-radius: 10px; overflow: hidden;
  background: var(--bg-subtle);
}
.agent-result-thumb.selected { border-color: var(--color-primary-500); box-shadow: 0 0 0 1px rgba(71,149,255,.35); }
.agent-result-thumb img { width: 100%; display: block; aspect-ratio: 1; object-fit: contain; background: var(--bg-field); }
.agent-result-thumb span { padding: 0 8px 8px; }
.main { min-width:0; padding:32px clamp(22px,4vw,54px) 80px; max-width:1500px; width:100%; }
.home-page {
  position: relative;
  min-height: calc(100vh - 64px);
  margin: -32px calc(-1 * clamp(22px, 4vw, 54px)) -80px;
  width: calc(100% + 2 * clamp(22px, 4vw, 54px));
  max-width: none;
  overflow: hidden;
  /* MIS charcoal — not pure black */
  background:
    radial-gradient(ellipse 70% 55% at 50% 38%, #1a2233 0%, transparent 62%),
    radial-gradient(ellipse 90% 80% at 50% 100%, #12151c 0%, var(--bg-base) 70%);
}
.home-particle-field {
  position: absolute;
  inset: 0;
  z-index: 0;
  display: block;
  width: 100%;
  height: 100%;
  pointer-events: none;
}
.home-page > *:not(.home-particle-field) {
  position: relative;
  z-index: 1;
}
.page-header { display:flex; justify-content:space-between; gap:20px; align-items:flex-start; margin-bottom:26px; }
.page-header > :first-child { min-width:0; flex:1 1; }
.page-header > .monitor-toolbar { flex-wrap:nowrap; flex-shrink:0; }
.toss-page-title { margin:0; font-size:24px; line-height:1.3; font-weight:800; }
.toss-page-desc { margin:6px 0 0; color:var(--text-tertiary); font-size:13px; }
.muted { color: var(--text-tertiary); }
.status-chip,.toss-tag { display:inline-flex; align-items:center; gap:6px; border:1px solid var(--border-strong); background:var(--bg-subtle); color:var(--text-secondary); padding:6px 10px; border-radius:999px; font-size:12px; }
.status-dot { width:7px; height:7px; background:var(--color-success-fg); border-radius:50%; box-shadow:0 0 9px rgba(74,222,128,.6); }
.hero { position:relative; overflow:hidden; padding:28px; margin-bottom:20px; border:1px solid var(--border-default); border-radius:var(--radius-xl); background:var(--bg-elevated); }
.hero:after { content:""; position:absolute; inset:-80% 45% auto -15%; height:350px; background:radial-gradient(circle,rgba(71,149,255,.18),transparent 65%); pointer-events:none; }
.hero h2 { position:relative; z-index:1; margin:0 0 8px; font-size:19px; }
.hero p { position:relative; z-index:1; margin:0 0 22px; color:var(--text-secondary); font-size:13px; }
.search-row { position:relative; z-index:1; display:grid; grid-template-columns:150px minmax(240px,1fr) auto; gap:10px; }
.toss-input,.toss-select { height:46px; border:1px solid var(--border-field); border-radius:var(--radius-md); background:var(--bg-field); color:var(--text-primary); outline:none; padding:0 14px; }
.toss-input:focus,.toss-select:focus { border-color:var(--border-focus); box-shadow:0 0 0 3px rgba(71,149,255,.12); }
.toss-input::placeholder { color:var(--text-tertiary); }
.toss-btn-primary,.toss-btn-secondary { height:46px; border-radius:var(--radius-md); padding:0 18px; border:0; font-weight:750; display:inline-flex; align-items:center; justify-content:center; gap:8px; }
.toss-btn-primary { background:var(--color-primary-500); color:var(--text-on-primary); box-shadow:var(--shadow-xl); }
.toss-btn-primary:disabled { cursor:not-allowed; opacity:.45; box-shadow:none; }
.toss-btn-secondary { color:var(--text-secondary); background:var(--bg-field); border:1px solid var(--border-field); }
a.toss-btn-primary, a.toss-btn-secondary, .toss-btn-link { text-decoration: none; }
.toss-btn-danger { color: var(--color-error-fg); border-color: color-mix(in srgb, var(--color-error-fg) 35%, var(--border-field)); }
.toss-btn-danger:hover { color: var(--color-error-fg); }
.toss-alert-warn {
  margin: 0;
  padding: 12px 16px;
  border-radius: var(--radius-sm);
  background: var(--color-warning-bg);
  color: var(--color-warning-fg);
  font-size: 13px;
}
.toss-card-flush { overflow: hidden; }
.toss-section-gap { margin-top: 16px; }
.toss-section-gap-lg { margin-top: 28px; }
.monitor-panel-spaced .monitor-form { padding: 18px 20px 20px; }
.monitor-panel-note { padding: 12px 20px 0 !important; margin: 0 !important; }
.monitor-panel-spaced .monitor-detail-analysis { padding: 16px 20px 20px; }
.monitor-panel-spaced .muted-pad { padding: 16px 20px !important; }
.monitor-panel-spaced .table-wrap { padding: 0 8px 12px; }
.muted-pad { padding: 16px; }
.page-note { margin: 12px 16px 16px; font-size: 13px; }
.page-note-tight { margin: 0 0 12px; font-size: 13px; }
.meta-12 { font-size: 12px; }
.toss-text-link { font-size: 13px; color: var(--color-primary-600); }
.jobs-table tbody tr.jobs-row-static { cursor: default; }
.notice { margin-top:12px; padding:10px 12px; border-radius:var(--radius-sm); background:var(--color-warning-bg); color:var(--color-warning-fg); font-size:12px; }
.grid { display:grid; grid-template-columns:minmax(0,1.55fr) minmax(310px,.75fr); gap:20px; align-items:start; }
.toss-card { border:1px solid var(--border-default); border-radius:var(--radius-lg); background:var(--bg-elevated); }
.card-head { padding:18px 20px; border-bottom:1px solid var(--border-default); display:flex; align-items:center; justify-content:space-between; gap:12px; }
.card-head h3 { margin:0; font-size:15px; }
.card-body { padding:18px 20px; }
.empty { min-height:230px; display:grid; place-items:center; text-align:center; color:var(--text-tertiary); }
.empty-icon { width:44px; height:44px; border-radius:14px; margin:0 auto 12px; display:grid; place-items:center; background:var(--bg-field); color:var(--text-secondary); }
.product-list { display:grid; gap:8px; }
.product { display:grid; grid-template-columns:auto 54px 1fr auto; gap:12px; align-items:center; padding:11px; border:1px solid var(--border-default); border-radius:12px; background:var(--bg-subtle); }
.product.selected { border-color:rgba(71,149,255,.55); background:var(--color-primary-50); }
.checkbox { width:18px; height:18px; accent-color:var(--color-primary-500); }
.thumb { width:54px; height:54px; object-fit:cover; border-radius:10px; background:var(--bg-field); }
.thumb-placeholder { display:grid; place-items:center; color:var(--text-tertiary); }
.product-title { font-size:13px; line-height:1.45; font-weight:700; }
.product-meta { margin-top:5px; display:flex; gap:8px; color:var(--text-tertiary); font-size:11px; }
.detail-upload { display:inline-flex; align-items:center; gap:4px; color:var(--color-primary-600); cursor:pointer; font-weight:700; }
.price { font-size:13px; font-weight:800; white-space:nowrap; }
.action-bar { margin-top:14px; display:flex; align-items:center; justify-content:space-between; gap:10px; }
.max-wrap { display:flex; align-items:center; gap:8px; color:var(--text-tertiary); font-size:12px; }
.max-wrap .toss-select { height:38px; width:92px; }
.jobs { display:grid; gap:9px; min-width:0; overflow:hidden; }
.job { width:100%; min-width:0; max-width:100%; overflow:hidden; border:1px solid var(--border-default); border-radius:12px; background:var(--bg-subtle); color:inherit; padding:13px; text-align:left; }
.job:hover { border-color:var(--border-strong); }
.job-top { display:flex; justify-content:space-between; gap:8px; font-size:12px; }
.job-status { font-weight:750; }
.job small { display:block; width:100%; max-width:100%; color:var(--text-tertiary); margin-top:6px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.progress { height:4px; margin-top:10px; background:var(--bg-field); border-radius:10px; overflow:hidden; }
.progress span { display:block; height:100%; background:var(--color-primary-500); transition:width .3s; }
.failed { color:var(--color-error-fg); }
.completed { color:var(--color-success-fg); }
.analysis { margin-top:20px; }
.analysis-hero { padding:22px; background:linear-gradient(135deg,var(--color-primary-50),var(--bg-elevated)); }
.analysis-hero h2 { margin:0 0 8px; font-size:20px; }
.analysis-hero p { margin:0; color:var(--text-secondary); line-height:1.7; font-size:14px; }
.analysis-status-row { display:flex; flex-wrap:wrap; gap:8px; margin: 4px 0 12px; }
.section-title { margin:25px 0 12px; font-size:16px; }
.insight-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.position-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.position-card { padding:16px; min-height:130px; }
.position-card strong { display:block; margin:8px 0; font-size:24px; }
.position-card p { margin:0; color:var(--text-secondary); font-size:12px; line-height:1.55; }
.position-card.confirmed { border-color:rgba(74,222,128,.32); }
.position-card.contradicted { border-color:rgba(255,107,107,.32); }
.insight-card { padding:16px; }
.insight-card h4 { margin:8px 0; font-size:14px; }
.insight-card p { margin:0; color:var(--text-secondary); font-size:12px; line-height:1.6; }
.count { color:var(--color-primary-600); font-size:11px; font-weight:750; }
.message-list { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.message { padding:18px; }
.message blockquote { margin:10px 0; font-size:18px; font-weight:800; line-height:1.4; }
.message p { color:var(--text-secondary); font-size:12px; line-height:1.6; }
.shorts { display:grid; gap:10px; }
.create-tabs {
  display: flex; gap: 6px; margin: 28px 0 8px; padding: 4px;
  width: fit-content; max-width: 100%;
  border: 1px solid var(--border-default); border-radius: 12px;
  background: var(--tab-head-bg);
}
.create-tab {
  height: 34px; padding: 0 14px; border: 0; border-radius: 9px;
  background: transparent; color: var(--tab-head-fg-strong);
  font-size: 13px; font-weight: 700; cursor: pointer;
  display: inline-flex; align-items: center; text-decoration: none;
}
.create-tab.active {
  background: var(--tab-head-active-bg); color: var(--tab-head-active-fg);
  box-shadow: 0 1px 0 rgba(0,0,0,.04);
}
.short-card { padding:18px; }
.short-card h4 { margin:0 0 5px; }
.hook { color:var(--color-primary-600); font-size:14px; font-weight:750; }
.scene { display:grid; grid-template-columns:58px 1fr 1fr; gap:12px; padding:10px 0; border-top:1px solid var(--border-default); font-size:12px; color:var(--text-secondary); }
.evidence { color:var(--text-tertiary); font-size:10px; overflow-wrap:anywhere; }
.table-wrap { overflow:auto; }
.jobs-table { width:100%; border-collapse:collapse; min-width:720px; }
.jobs-table th { text-align:left; padding:12px 16px; font-size:12px; color:var(--text-tertiary); border-bottom:1px solid var(--border-default); background:var(--bg-subtle); font-weight:700; }
.jobs-table td { padding:14px 16px; border-bottom:1px solid var(--border-default); vertical-align:top; font-size:13px; }
.jobs-table tbody tr { cursor:pointer; }
.jobs-table tbody tr:hover { background:var(--bg-subtle); }
.table-title { display:block; font-size:13px; margin-bottom:4px; }
.jobs-table small { display:block; color:var(--text-tertiary); font-size:12px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; max-width:42vw; }
.table-empty { text-align:center; color:var(--text-tertiary); padding:40px 16px !important; }
.pager { display:flex; align-items:center; justify-content:flex-end; gap:10px; padding:14px 16px; border-top:1px solid var(--border-default); }
.pager-meta { color:var(--text-tertiary); font-size:12px; min-width:64px; text-align:center; }
.spinner { animation:spin 1s linear infinite; }
@keyframes spin { to { transform:rotate(360deg); } }
@media (max-width:1050px) { .grid{grid-template-columns:1fr}.insight-grid,.position-grid{grid-template-columns:1fr 1fr} }
.mobile-unavailable-page { display: none; }
@media (max-width:760px) {
  /* 보고서 외: 스마트폰 미지원 */
  .desktop-workspace:not(.allow-mobile) { display: none !important; }
  .mobile-unavailable-page {
    display: flex;
    min-height: 100vh;
    align-items: center;
    justify-content: center;
    padding: 32px 24px;
    background: var(--bg-page, #0f1115);
  }
  .mobile-unavailable-inner {
    width: min(420px, 100%);
    text-align: center;
    display: grid;
    gap: 10px;
    justify-items: center;
  }
  .mobile-unavailable-brand {
    margin: 0;
    font-size: 14px;
    font-weight: 700;
    color: var(--text-secondary);
  }
  .mobile-unavailable-inner h1 {
    margin: 8px 0 0;
    font-size: 22px;
    font-weight: 800;
    line-height: 1.35;
    color: var(--text-primary);
  }
  .mobile-unavailable-desc {
    margin: 0;
    font-size: 14px;
    line-height: 1.55;
    color: var(--text-tertiary);
  }
  /* 보고서만 반응형 */
  .desktop-workspace.allow-mobile {
    display: grid !important;
    grid-template-columns: 1fr;
    min-height: 100vh;
  }
  .desktop-workspace.allow-mobile .toss-sidebar { display: none; }
  .desktop-workspace.allow-mobile .main {
    padding: 16px 12px 48px;
    max-width: none;
    width: 100%;
  }
  .desktop-workspace.allow-mobile .report-wrap { padding-bottom: 40px; max-width: none; }
  .desktop-workspace.allow-mobile .monitor-toolbar-report {
    flex-direction: column;
    align-items: stretch;
    gap: 8px;
  }
  .desktop-workspace.allow-mobile .kpi-row,
  .desktop-workspace.allow-mobile .kpi-row-official,
  .desktop-workspace.allow-mobile .dash-grid,
  .desktop-workspace.allow-mobile .monitor-stats {
    grid-template-columns: 1fr 1fr;
  }
  .desktop-workspace.allow-mobile .sheet { padding: 16px 14px 12px; }
  .desktop-workspace.allow-mobile .sheet-head { flex-direction: column; gap: 10px; }
  .desktop-workspace.allow-mobile .sheet-head h1 { font-size: 18px; }
  .desktop-workspace.allow-mobile .kpi-value { font-size: 22px; }
  .desktop-workspace.allow-mobile .donut-wrap { flex-direction: column; align-items: flex-start; }
}
@media (prefers-reduced-motion:reduce) { *{scroll-behavior:auto!important;animation:none!important;transition:none!important} }

.analysis-disclosure { margin: 14px 0; border: 1px solid var(--border-default); border-radius: 12px; padding: 14px 18px; }
.analysis-disclosure > summary { cursor: pointer; font-weight: 600; color: var(--text-secondary); }
.analysis-disclosure[open] > summary { margin-bottom: 16px; }

.brief-eyebrow { margin: 0 0 6px; font-size: 11px; font-weight: 750; letter-spacing: .04em; text-transform: uppercase; color: var(--color-primary-600); }
.brief-lead, .brief-hint { margin: 6px 0 0; color: var(--text-tertiary); font-size: 13px; line-height: 1.55; }
.brief-workspace { padding: 0; margin-top: 8px; overflow: hidden; }
.brief-workspace-head { display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; align-items: flex-start; }
.brief-workspace-head h3 { margin: 0; font-size: 18px; }
.brief-actions { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.brief-actions .toss-btn-primary,
.brief-actions .toss-btn-secondary { display: inline-flex; align-items: center; gap: 6px; height: 36px; font-size: 12px; }
.brief-status-row { display: flex; gap: 8px; flex-wrap: wrap; margin: 14px 0 6px; }
.brief-step { margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--border-default); }
.brief-step-head { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; }
.brief-step-head h4 { margin: 0; font-size: 15px; }
.brief-step-num {
  display: inline-flex; align-items: center; justify-content: center;
  width: 24px; height: 24px; border-radius: 999px;
  background: var(--color-primary-50); color: var(--color-primary-600);
  font-size: 12px; font-weight: 800;
}
/* 폴더형 탭 — 활성 탭이 본문과 이어지게 (버튼처럼 보이지 않음) */
.brief-subtabs {
  display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: flex-start;
  gap: 4px; margin: 0; padding: 10px 12px 0;
  background: var(--tab-head-bg);
  border-bottom: 1px solid var(--border-default);
}
.brief-subtab {
  position: relative; z-index: 0;
  height: auto; min-height: 38px; margin: 0 0 -1px;
  padding: 9px 16px 11px;
  border: 1px solid transparent; border-bottom: none;
  border-radius: 10px 10px 0 0;
  background: color-mix(in srgb, var(--bg-subtle) 90%, white 10%);
  color: var(--tab-head-fg); font-size: 13px; font-weight: 600;
  cursor: pointer; box-shadow: none;
}
.brief-subtab:hover:not(:disabled):not(.active) {
  color: var(--tab-head-fg-strong);
  background: color-mix(in srgb, var(--bg-subtle) 82%, white 18%);
}
.brief-subtab.active {
  z-index: 1;
  background: var(--tab-head-active-bg);
  border-color: var(--border-default);
  color: var(--tab-head-active-fg);
  font-weight: 750;
}
.brief-subtab:disabled { opacity: .4; cursor: not-allowed; }
.brief-panel { margin-top: 0; padding: 20px; }
.brief-packshot {
  display: grid; grid-template-columns: minmax(0, 1fr) 132px; gap: 14px; align-items: stretch;
}
@media (max-width: 720px) {
  .brief-packshot { grid-template-columns: 1fr; }
}
.brief-packshot-main {
  display: flex; flex-direction: column; gap: 12px; min-width: 0;
}
.brief-packshot-preview {
  flex: 1 1; min-height: 280px; display: flex; align-items: center; justify-content: center;
  border: 1px solid var(--border-default); border-radius: 12px; padding: 12px;
  background: repeating-conic-gradient(#2a2a2a 0% 25%, #1f1f1f 0% 50%) 50%/16px 16px;
}
.brief-packshot-preview img {
  max-width: 100%; max-height: 420px; object-fit: contain;
}
.brief-packshot-actions {
  display: flex; gap: 8px; flex-wrap: wrap; align-items: center;
}
.brief-packshot-actions .toss-btn-primary,
.brief-packshot-actions .toss-btn-secondary {
  display: inline-flex; align-items: center; gap: 6px; height: 36px; font-size: 12px;
}
.brief-packshot-side {
  display: flex; flex-direction: column; gap: 8px; min-height: 0;
}
.brief-side-label {
  margin: 0; font-size: 12px; font-weight: 650; color: var(--text-tertiary);
}
.brief-packshot-list {
  display: flex; flex-direction: column; gap: 8px;
  max-height: 360px; overflow-y: auto; padding-right: 2px;
}
.brief-packshot-thumb {
  width: 100%; aspect-ratio: 1; padding: 4px; border-radius: 10px;
  border: 1px solid var(--border-default); background: transparent; cursor: pointer;
}
.brief-packshot-thumb.active {
  border: 2px solid var(--color-primary-500); background: var(--color-primary-50);
}
.brief-packshot-thumb img {
  width: 100%; height: 100%; object-fit: contain; border-radius: 6px;
  background: repeating-conic-gradient(#ddd 0% 25%, #fff 0% 50%) 50%/10px 10px;
}
.brief-packshot-upload {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  width: 100%; height: 40px; border-radius: 10px;
  border: 1px dashed var(--border-default); background: transparent;
  color: var(--text-secondary); font-size: 12px; font-weight: 650; cursor: pointer;
}
.brief-packshot-upload:disabled { opacity: .55; cursor: not-allowed; }
.brief-direction {
  display: grid; grid-template-columns: 1fr; gap: 16px; align-items: start;
}
.brief-direction-options,
.brief-direction-prompt {
  display: grid; gap: 12px;
  padding: 14px; border-radius: 12px; border: 1px solid var(--border-default);
  background: var(--bg-subtle);
}
.brief-direction-options h4,
.brief-direction-prompt h4 {
  margin: 0; font-size: 13px; color: var(--text-tertiary);
}
.brief-prompt-toggle {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  height: 36px; font-size: 12px; width: 100%;
}
.brief-direction-actions {
  display: grid; gap: 10px;
}
.brief-focus-row {
  display: flex; flex-wrap: nowrap; gap: 12px 16px; align-items: center;
  overflow-x: auto;
}
.brief-primary-row {
  display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
}
.brief-direction-options .brief-primary-row .toss-btn-primary {
  width: auto; min-width: 220px; flex: 1 1 auto;
}
/* 펼침/접힘 — 액션 버튼과 구분 (텍스트 + 화살표) */
.ui-disclosure-toggle {
  border: 0; background: transparent; padding: 2px 0;
  display: inline-flex; align-items: center; gap: 4px;
  color: var(--text-secondary); font-size: 13px; font-weight: 650;
  line-height: 1.2; cursor: pointer; white-space: nowrap;
}
.ui-disclosure-toggle:hover:not(:disabled) { color: var(--color-primary-600); }
.ui-disclosure-toggle:disabled { opacity: .45; cursor: not-allowed; }
/* 인라인 보조 링크/텍스트 액션 (다운로드·프롬프트 열기 등) */
.ui-text-link,
.brief-prompt-link {
  border: 0; background: transparent; padding: 0;
  color: var(--color-primary-600); font-size: 13px; font-weight: 650;
  text-decoration: underline; text-underline-offset: 2px; cursor: pointer;
  white-space: nowrap;
  display: inline-flex; align-items: center; gap: 4px;
}
.ui-text-link:hover,
.brief-prompt-link:hover:not(:disabled) { color: var(--color-primary-500); }
.ui-text-link[aria-disabled="true"],
.ui-text-link:disabled,
.brief-prompt-link:disabled {
  opacity: .45; cursor: not-allowed; text-decoration: none;
}
.brief-check {
  display: flex; align-items: center; gap: 8px; font-size: 13px; cursor: pointer;
}
.brief-check input { width: 16px; height: 16px; }
/* 인물 프로필: 행을 채우지 않고 옵션 텍스트 너비에 맞춤 */
.human-profile-select {
  height: 36px;
  font-size: 13px;
  width: max-content;
  max-width: 100%;
  flex: 0 0 auto;
  field-sizing: content;
}
.brief-field {
  display: grid; gap: 6px; font-size: 12px; color: var(--text-secondary);
}
.brief-direction-options .toss-btn-primary,
.brief-direction-prompt .toss-btn-primary {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  height: 36px; font-size: 12px; width: 100%;
}
.brief-instruction { width: 100%; min-height: 220px; line-height: 1.7; }
.brief-copy { display: grid; gap: 6px; margin: 10px 0 0; font-size: 13px; }
.brief-copy strong { font-size: 12px; color: var(--text-tertiary); }
.brief-copy span {
  display: block; padding: 8px 10px; border-radius: 8px;
  background: var(--bg-subtle); border: 1px solid var(--border-default);
}
.brief-result { margin-top: 10px; max-width: 560px; }
.brief-result img { width: 100%; border-radius: 12px; border: 1px solid var(--border-default); }
.brief-result-actions { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 10px; align-items: center; }
.brief-result-actions a.toss-btn-secondary { display: inline-flex; align-items: center; text-decoration: none; }
.brief-gallery { display: flex; gap: 12px; overflow-x: auto; padding-bottom: 4px; }
.brief-gallery-item {
  flex: 0 0 180px;
  margin: 0;
  padding: 0;
  border: 1px solid var(--border-default);
  border-radius: 10px;
  overflow: hidden;
  background: var(--bg-secondary, #f7f8fa);
  cursor: pointer;
  text-align: left;
}
.brief-gallery-item.active { border: 2px solid var(--color-blue, #3182f6); }
.brief-gallery-item img { width: 100%; display: block; }
.brief-gallery-item span {
  display: block;
  padding: 6px 8px;
  font-size: 11px;
  color: var(--text-tertiary);
}
.brief-revise { margin-top: 14px; display: grid; gap: 8px; max-width: 560px; }
.brief-revise label { display: grid; gap: 6px; font-size: 13px; }
.marketer-strategy { padding: 20px; margin: 16px 0; }
.marketer-strategy h3 { margin: 14px 0 8px; font-size: 14px; color: var(--text-secondary); }
.marketer-strategy h3:first-of-type { margin-top: 4px; }
.marketer-title { display: block; font-size: 22px; line-height: 1.35; margin-bottom: 8px; }
.marketer-quote { margin: 0 0 8px; font-size: 20px; font-weight: 800; line-height: 1.4; }
.marketer-caution { color: var(--color-warning-fg); }

.mi-stack { display: grid; gap: 14px; margin: 16px 0 8px; }
.mi-card { padding: 18px; }
.toss-page-title-sub {
  font-size: 0.72em; font-weight: 600; color: var(--text-secondary);
}
.mi-card-head { margin-bottom: 12px; }
.mi-card-head h3 {
  margin: 0; font-size: 16px; display: flex; align-items: center; gap: 8px;
}
.mi-num {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 22px; height: 22px; padding: 0 6px; border-radius: 999px;
  background: var(--color-primary-50); color: var(--color-primary-700);
  font-size: 12px; font-weight: 800;
}
.mi-review-lift {
  width: 100%; min-height: 52px; font-size: 13px; line-height: 1.45;
  color: var(--text-secondary);
}
.mi-block { margin-top: 12px; }
.mi-block h4,
.mi-mini-card h4 {
  margin: 0 0 8px; font-size: 12px; font-weight: 700;
  color: var(--text-tertiary); letter-spacing: .02em;
}
.mi-bullets { margin: 0; padding-left: 18px; display: grid; gap: 4px; }
.mi-bullets li { font-size: 13px; line-height: 1.45; color: var(--text-primary); }
.mi-specs { margin: 0; font-size: 13px; line-height: 1.55; color: var(--text-secondary); }
.mi-disclosure { margin-top: 10px; border-top: 1px solid var(--border-default); }
.mi-disclosure-btn {
  width: 100%; display: flex; justify-content: space-between; align-items: center;
  padding: 10px 0; border: 0; background: transparent; color: inherit;
  font-size: 13px; font-weight: 650; cursor: pointer;
}
.mi-disclosure-caret { color: var(--text-tertiary); font-size: 12px; font-weight: 500; display: inline-flex; align-items: center; }
.mi-disclosure-body { padding: 0 0 8px; }
.mi-images {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(88px, 1fr)); gap: 8px;
}
.mi-images img {
  width: 100%; aspect-ratio: 1; object-fit: contain; border-radius: 8px;
  border: 1px solid var(--border-default);
  background: repeating-conic-gradient(#ddd 0% 25%, #fff 0% 50%) 50%/10px 10px;
}
.mi-review-grid,
.mi-synth-grid {
  display: grid; gap: 10px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.mi-synth-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 860px) {
  .mi-review-grid,
  .mi-synth-grid { grid-template-columns: 1fr; }
}
.mi-mini-card {
  padding: 12px; border-radius: 12px;
  border: 1px solid var(--border-default); background: var(--bg-subtle);
}
.mi-mini-card p { margin: 0; font-size: 13px; line-height: 1.45; }
.mi-pos { border-color: color-mix(in srgb, var(--color-primary-500) 35%, var(--border-default)); }
.mi-neg { border-color: color-mix(in srgb, var(--color-warning-fg) 35%, var(--border-default)); }
.mi-words { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 8px; }
.mi-word {
  display: inline-flex; padding: 3px 8px; border-radius: 999px;
  background: var(--bg-field); border: 1px solid var(--border-default);
  font-size: 11px; color: var(--text-secondary);
}
.mi-tag { color: var(--color-primary-700); border-color: var(--color-primary-500); }
.mi-recommend {
  border: 1px solid color-mix(in srgb, var(--color-primary-500) 55%, var(--border-default));
  background:
    linear-gradient(180deg, color-mix(in srgb, var(--color-primary-50) 70%, transparent), var(--bg-elevated));
  box-shadow: 0 10px 28px rgba(0,0,0,.18);
}
.mi-title { display: block; font-size: 20px; line-height: 1.35; }
.mi-points { display: grid; gap: 8px; }
.mi-point {
  display: grid; gap: 6px; padding: 10px 12px; border-radius: 10px;
  border: 1px solid var(--border-default); background: var(--bg-elevated);
}
.mi-point p { margin: 0; font-size: 13px; line-height: 1.45; }
.mi-point-focus { margin: 0; font-size: 15px; font-weight: 700; line-height: 1.4; }
.mi-key { margin: 0; font-size: 18px; font-weight: 800; line-height: 1.4; }

.shorts-workspace {
  display: grid;
  grid-template-columns: minmax(220px, 280px) minmax(0, 1fr);
  gap: 18px;
  align-items: start;
}
.shorts-job-rail { overflow: hidden; position: sticky; top: 16px; max-height: calc(100vh - 48px); display: flex; flex-direction: column; }
.shorts-job-list { overflow: auto; padding: 8px; display: grid; gap: 6px; }
.shorts-job-item {
  display: grid; gap: 4px; width: 100%; text-align: left;
  padding: 12px 12px; border: 1px solid transparent; border-radius: 10px;
  background: transparent; color: var(--text-primary); cursor: pointer;
}
.shorts-job-item:hover { background: var(--bg-subtle); }
.shorts-job-item.active { background: var(--bg-field); border-color: var(--border-strong); }
.shorts-job-item strong { font-size: 13px; line-height: 1.35; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.shorts-job-item span { color: var(--text-tertiary); font-size: 11px; }
.shorts-main { display: grid; gap: 16px; min-width: 0; }
.shorts-main-head { display: flex; justify-content: space-between; gap: 12px; align-items: flex-start; flex-wrap: wrap; }
.shorts-main-head h2 { margin: 0; font-size: 18px; font-weight: 800; }
.shorts-main-head p { margin: 6px 0 0; color: var(--text-tertiary); font-size: 13px; }
.shorts-asset-card { overflow: hidden; margin-top: 14px; }
.shorts-asset-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap: 10px;
}
.shorts-asset-thumb {
  display: grid; gap: 6px; text-decoration: none; color: var(--text-secondary); font-size: 11px;
}
.shorts-asset-thumb img,
.shorts-asset-thumb video {
  width: 100%; aspect-ratio: 1; object-fit: contain;
  border-radius: 10px; background: var(--bg-subtle); border: 1px solid var(--border-default);
}
@media (max-width: 960px) {
  .shorts-workspace { grid-template-columns: 1fr; }
  .shorts-job-rail { position: static; max-height: 280px; }
}

.shorts-options-card { margin-top: 14px; }
.toss-card.shorts-options-card > .brief-workspace { margin-top: 0; }
.shorts-prep-gate {
  border-color: rgba(255, 170, 60, 0.35);
  box-shadow: 0 0 0 1px rgba(255, 170, 60, 0.08);
}
.shorts-block1-proto {
  border-color: rgba(71, 149, 255, 0.35);
  box-shadow: 0 0 0 1px rgba(71, 149, 255, 0.08);
}
.shorts-status-pill,
.shorts-proto-pill {
  display: inline-flex;
  align-items: center;
  padding: 4px 10px;
  border-radius: 999px;
  background: rgba(255, 170, 60, 0.16);
  color: #b36b00;
  font-size: 11px;
  font-weight: 700;
}
.shorts-mood-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.shorts-mood-chip {
  display: grid;
  gap: 2px;
  text-align: left;
  min-width: 120px;
  padding: 10px 12px;
  border-radius: 12px;
  border: 1px solid var(--border-default);
  background: var(--bg-subtle);
  color: var(--text-secondary);
  cursor: pointer;
}
.shorts-mood-chip:hover { border-color: var(--border-strong); }
.shorts-mood-chip.active {
  border-color: var(--color-primary-500);
  background: rgba(71, 149, 255, 0.08);
  color: var(--text-primary);
  box-shadow: 0 0 0 1px rgba(71, 149, 255, 0.25);
}
.shorts-mood-chip strong { font-size: 13px; color: var(--text-primary); }
.shorts-mood-chip span { font-size: 11px; line-height: 1.35; }
.shorts-block1-notes {
  margin: 0;
  padding-left: 18px;
  display: grid;
  gap: 4px;
  color: var(--text-secondary);
  font-size: 12px;
  line-height: 1.45;
}
.shorts-block1-summary {
  padding: 10px 12px;
  border-radius: 10px;
  background: var(--bg-subtle);
  border: 1px dashed var(--border-default);
  overflow-x: auto;
}
.shorts-block1-summary code {
  font-size: 12px;
  color: var(--text-primary);
  white-space: nowrap;
}
.shorts-block2-proto {
  border-color: rgba(46, 160, 120, 0.35);
  box-shadow: 0 0 0 1px rgba(46, 160, 120, 0.08);
}
.shorts-block2-steps {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 14px;
  margin: 0;
  padding: 0;
  list-style: none;
  counter-reset: b2;
}
.shorts-block2-steps li {
  counter-increment: b2;
  font-size: 12px;
  font-weight: 700;
  color: var(--text-tertiary);
}
.shorts-block2-steps li::before {
  content: counter(b2) ". ";
}
.shorts-block2-steps li.active { color: var(--color-primary-600); }
.shorts-block2-steps li.done { color: var(--text-secondary); }
.shorts-block2-scene-list { display: grid; gap: 14px; }
.shorts-block2-scene {
  padding: 12px;
  border-radius: 12px;
  border: 1px solid var(--border-default);
  background: var(--bg-subtle);
}
.shorts-block2-textarea {
  width: 100%;
  min-height: 96px;
  resize: none;
  font-family: inherit;
  line-height: 1.5;
}
.shorts-block2-textarea-full {
  overflow: hidden;
  white-space: pre-wrap;
  field-sizing: content;
}
.shorts-block2-image-section { display: grid; gap: 8px; }
.shorts-block2-image-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 12px;
}
.shorts-block2-image-card {
  margin: 0;
  display: grid;
  gap: 8px;
}
.shorts-block2-image-card figcaption {
  font-size: 12px;
  font-weight: 700;
  color: var(--text-secondary);
}
.shorts-block2-image-card img {
  width: 100%;
  aspect-ratio: 9 / 16;
  object-fit: cover;
  border-radius: 12px;
  border: 1px solid var(--border-default);
  background: var(--bg-subtle);
}
.shorts-block2-image-slot {
  margin-top: 10px;
  min-height: 88px;
  display: grid;
  place-items: center;
  border-radius: 10px;
  border: 1px dashed var(--border-strong);
  background: rgba(0, 0, 0, 0.03);
  font-size: 12px;
  color: var(--text-secondary);
}
.shorts-block2-note {
  margin: 0;
  padding: 10px 12px;
  border-radius: 10px;
  background: rgba(46, 160, 120, 0.08);
}
.shorts-pipeline-grid {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}
.shorts-pipeline-card {
  display: grid;
  gap: 6px;
  text-align: left;
  padding: 14px 16px;
  border-radius: 14px;
  border: 1px solid var(--border-default);
  background: var(--bg-subtle);
  color: var(--text-secondary);
  cursor: pointer;
}
.shorts-pipeline-card:hover { border-color: var(--border-strong); }
.shorts-pipeline-card.active {
  border-color: var(--color-primary-500);
  background: rgba(71, 149, 255, 0.08);
  color: var(--text-primary);
  box-shadow: 0 0 0 1px rgba(71, 149, 255, 0.28);
}
.shorts-pipeline-card strong {
  font-size: 14px;
  color: var(--text-primary);
}
.shorts-pipeline-card span {
  font-size: 12px;
  line-height: 1.45;
}
.shorts-block2-omni-proto {
  border-color: rgba(71, 149, 255, 0.22);
}
.shorts-omni-upload-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  margin-top: 12px;
}
.shorts-omni-person-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 12px;
  margin-bottom: 10px;
}
.shorts-omni-person-row .human-profile-select {
  min-width: 220px;
  width: auto;
  max-width: min(100%, 360px);
}
.shorts-omni-video-preview {
  width: min(100%, 280px);
  max-height: 360px;
  border-radius: 12px;
  background: #0b0f14;
  border: 1px solid var(--border-default);
}
.shorts-omni-model-select {
  position: relative;
  max-width: 420px;
}
.shorts-omni-model-trigger {
  display: grid;
  grid-template-columns: 72px minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  width: 100%;
  min-height: 88px;
  padding: 10px 12px;
  border-radius: 14px;
  border: 1px solid var(--border-default);
  background: var(--bg-subtle);
  color: var(--text-secondary);
  cursor: pointer;
  text-align: left;
}
.shorts-omni-model-trigger.open,
.shorts-omni-model-trigger:hover {
  border-color: var(--border-strong);
}
.shorts-omni-model-trigger img {
  width: 72px;
  height: 90px;
  object-fit: cover;
  border-radius: 10px;
  background: #0b0f14;
}
.shorts-omni-model-trigger-text {
  display: grid;
  gap: 4px;
  min-width: 0;
}
.shorts-omni-model-trigger-text strong {
  font-size: 14px;
  color: var(--text-primary);
}
.shorts-omni-model-trigger-text em {
  font-style: normal;
  font-size: 12px;
  color: var(--text-secondary);
  line-height: 1.35;
}
.shorts-omni-model-caret {
  font-size: 14px;
  color: var(--text-tertiary);
}
.shorts-omni-model-menu {
  position: absolute;
  z-index: 20;
  left: 0;
  right: 0;
  top: calc(100% + 6px);
  margin: 0;
  padding: 6px;
  list-style: none;
  max-height: 320px;
  overflow: auto;
  border-radius: 14px;
  border: 1px solid var(--border-strong);
  background: var(--bg-field, var(--bg-subtle));
  box-shadow: 0 16px 36px rgba(0, 0, 0, 0.28);
}
.shorts-omni-model-option {
  display: grid;
  grid-template-columns: 56px minmax(0, 1fr);
  gap: 12px;
  align-items: center;
  width: 100%;
  padding: 8px;
  border: 0;
  border-radius: 10px;
  background: transparent;
  color: var(--text-secondary);
  cursor: pointer;
  text-align: left;
}
.shorts-omni-model-option:hover,
.shorts-omni-model-option.active {
  background: rgba(71, 149, 255, 0.1);
}
.shorts-omni-model-option img {
  width: 56px;
  height: 70px;
  object-fit: cover;
  border-radius: 8px;
  background: #0b0f14;
}
.shorts-omni-model-option span {
  display: grid;
  gap: 3px;
  min-width: 0;
}
.shorts-omni-model-option strong {
  font-size: 13px;
  color: var(--text-primary);
}
.shorts-omni-model-option em {
  font-style: normal;
  font-size: 11px;
  line-height: 1.35;
  color: var(--text-secondary);
}
.shorts-omni-model-grid {
  display: none;
}
.shorts-omni-model-card {
  display: none;
}
.shorts-omni-ref-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.shorts-omni-ref-grid img {
  width: 72px;
  height: 72px;
  object-fit: cover;
  border-radius: 10px;
  border: 1px solid var(--border-default);
}
.shorts-omni-prompt-preview {
  margin: 0;
  padding: 12px 14px;
  border-radius: 12px;
  border: 1px solid var(--border-default);
  background: var(--bg-subtle);
  font-size: 12px;
  line-height: 1.5;
  white-space: pre-wrap;
  word-break: break-word;
  color: var(--text-secondary);
}
.shorts-block3-proto {
  border-color: rgba(120, 120, 140, 0.28);
}
.shorts-block3-readonly {
  padding: 10px 12px;
  border-radius: 10px;
  background: var(--bg-subtle);
  border: 1px solid var(--border-default);
  font-size: 12px;
  color: var(--text-secondary);
}
.shorts-block3-scene-picks {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.shorts-block3-scene-pick {
  display: grid;
  gap: 6px;
  width: 92px;
  padding: 0;
  border: 1px solid var(--border-default);
  border-radius: 12px;
  background: var(--bg-subtle);
  color: var(--text-tertiary);
  cursor: pointer;
  overflow: hidden;
}
.shorts-block3-scene-pick img {
  width: 100%;
  height: 120px;
  object-fit: cover;
  display: block;
}
.shorts-block3-scene-empty {
  display: grid;
  place-items: center;
  height: 120px;
  font-size: 11px;
  color: var(--text-tertiary);
}
.shorts-block3-scene-pick em {
  font-style: normal;
  font-size: 11px;
  font-weight: 700;
  padding: 0 8px 8px;
  color: var(--text-secondary);
}
.shorts-block3-scene-pick.active {
  border-color: var(--color-primary-500);
  box-shadow: 0 0 0 1px rgba(71, 149, 255, 0.35);
}
.shorts-block3-scene-pick.active em {
  color: var(--color-primary-600);
}
.shorts-block3-payload {
  display: grid;
  gap: 6px;
}
.shorts-block3-payload pre {
  margin: 0;
  max-height: 280px;
  overflow: auto;
  padding: 12px 14px;
  border-radius: 12px;
  border: 1px solid var(--border-default);
  background: #0f1218;
  color: #d7e0ea;
  font-size: 11px;
  line-height: 1.45;
  white-space: pre-wrap;
  word-break: break-word;
}
.shorts-block4,
.shorts-block4-proto {
  border-color: rgba(71, 149, 255, 0.28);
}
.shorts-block4-body { display: grid; gap: 16px; }
.shorts-block4-grid {
  display: grid;
  gap: 14px;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
}
.shorts-block4-card {
  display: grid;
  gap: 10px;
  padding: 10px;
  border-radius: 14px;
  border: 1px solid var(--border-default);
  background: var(--bg-subtle);
}
.shorts-block4-player {
  position: relative;
  aspect-ratio: 9 / 16;
  border-radius: 12px;
  overflow: hidden;
  background: #0b0f14;
}
.shorts-block4-player img,
.shorts-block4-player video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  opacity: 0.92;
}
.shorts-block4-player-empty {
  display: grid;
  place-items: center;
  height: 100%;
  color: var(--text-tertiary);
  font-size: 12px;
}
.shorts-block4-play {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 52px;
  height: 52px;
  border: 0;
  border-radius: 999px;
  background: rgba(15, 20, 28, 0.72);
  color: #fff;
  font-size: 18px;
  cursor: pointer;
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.35);
}
.shorts-block4-badge {
  position: absolute;
  left: 8px;
  bottom: 8px;
  padding: 4px 8px;
  border-radius: 999px;
  background: rgba(8, 12, 18, 0.72);
  color: #e8eef6;
  font-size: 11px;
  font-weight: 700;
}
.shorts-block4-meta {
  display: grid;
  gap: 2px;
  min-width: 0;
}
.shorts-block4-meta strong {
  font-size: 13px;
  color: var(--text-primary);
}
.shorts-block4-meta span {
  font-size: 11px;
  color: var(--text-secondary);
  line-height: 1.35;
}
.shorts-block4-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.shorts-options-body { display: grid; gap: 20px; }
.shorts-options-block h4 { margin: 0; font-size: 14px; }
.shorts-options-label-row {
  display: flex; flex-wrap: wrap; gap: 8px 12px; align-items: center; margin-bottom: 6px;
}
.shorts-recommend-pill {
  display: inline-flex; align-items: center; padding: 4px 10px; border-radius: 999px;
  background: rgba(71,149,255,.14); color: var(--color-primary-600); font-size: 11px; font-weight: 700;
}
.shorts-story-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 8px;
}
.shorts-story-card {
  display: grid; gap: 6px; text-align: left;
  padding: 12px; border-radius: 12px;
  border: 1px solid var(--border-default); background: var(--bg-subtle);
  color: var(--text-secondary); cursor: pointer;
}
.shorts-story-card:hover { border-color: var(--border-strong); }
.shorts-story-card.active {
  border-color: var(--color-primary-500);
  background: rgba(71,149,255,.08);
  color: var(--text-primary);
  box-shadow: 0 0 0 1px rgba(71,149,255,.25);
}
.shorts-story-card-top { display: flex; justify-content: space-between; gap: 8px; align-items: flex-start; }
.shorts-story-card-top strong { font-size: 13px; color: var(--text-primary); }
.shorts-story-card-top em {
  font-style: normal; font-size: 10px; font-weight: 800;
  color: var(--text-on-primary); background: var(--color-primary-500);
  padding: 2px 6px; border-radius: 999px;
}
.shorts-story-card > span:last-child { font-size: 11px; line-height: 1.4; }
.shorts-options-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 12px;
}
.shorts-field { display: grid; gap: 6px; min-width: 0; }
.shorts-field > span { font-size: 12px; font-weight: 700; color: var(--text-secondary); }
.shorts-field .toss-select,
.shorts-field .toss-input { width: 100%; }
.shorts-field .human-profile-select {
  width: 100%;
  max-width: 100%;
  field-sizing: fixed;
}
.shorts-field-grow { grid-column: 1 / -1; }
@media (min-width: 900px) {
  .shorts-field-grow { grid-column: span 2; }
}
.shorts-options-previews { display: flex; flex-wrap: wrap; gap: 10px; }
.shorts-options-preview {
  display: grid; gap: 6px; width: 96px; color: var(--text-tertiary); font-size: 11px; text-align: center;
}
.shorts-options-preview img {
  width: 96px; height: 96px; object-fit: contain; border-radius: 10px;
  background: var(--bg-subtle); border: 1px solid var(--border-default);
}
.shorts-pick-row {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}
.shorts-pick-card {
  display: grid;
  gap: 10px;
  padding: 12px;
  border-radius: 12px;
  border: 1px solid var(--border-default);
  background: var(--bg-subtle);
}
.shorts-pick-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  font-size: 12px;
  font-weight: 700;
  color: var(--text-secondary);
}
.shorts-pick-remove {
  height: 24px;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: var(--text-tertiary);
  font-size: 11px;
  cursor: pointer;
}
.shorts-pick-remove:hover { color: var(--color-error-fg); }
.asset-picker-modal { max-width: min(920px, calc(100vw - 32px)); width: 100%; }
.asset-picker-body { display: grid; gap: 18px; max-height: min(68vh, 640px); overflow: auto; }
.asset-picker-group h4 {
  display: flex; align-items: center; gap: 8px;
  margin: 0 0 10px; font-size: 13px;
}
.asset-picker-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
  gap: 10px;
}
.asset-picker-cell {
  position: relative;
  display: grid;
  gap: 6px;
  padding: 8px;
  border-radius: 12px;
  border: 1px solid var(--border-default);
  background: var(--bg-field);
  color: var(--text-tertiary);
  font-size: 11px;
  text-align: center;
  cursor: pointer;
}
.asset-picker-cell img {
  width: 100%;
  aspect-ratio: 1;
  object-fit: contain;
  border-radius: 8px;
  background: var(--bg-subtle);
}
.asset-picker-cell.active {
  border-color: var(--color-primary-500);
  box-shadow: 0 0 0 1px var(--color-primary-500);
}
.asset-picker-cell em {
  position: absolute;
  top: 12px;
  right: 12px;
  font-style: normal;
  font-size: 10px;
  font-weight: 700;
  padding: 2px 6px;
  border-radius: 999px;
  background: var(--color-primary-500);
  color: #fff;
}
.asset-picker-cell:disabled { opacity: .4; cursor: not-allowed; }
.shorts-options-checks { display: flex; flex-wrap: wrap; gap: 14px 18px; }
.shorts-options-checks label {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 13px; color: var(--text-secondary); cursor: pointer;
}
.shorts-options-actions {
  display: flex; flex-wrap: wrap; gap: 10px; justify-content: flex-end;
  padding-top: 4px; border-top: 1px solid var(--border-default);
}
.shorts-options-actions .toss-btn-primary:disabled,
.shorts-options-actions .toss-btn-secondary:disabled { opacity: .45; cursor: not-allowed; }

.result-gallery-item { display: grid; gap: 8px; }
.result-gallery-actions { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.shorts-asset-cell { display: grid; gap: 6px; }
.shorts-asset-cell.size-ref-on .shorts-asset-thumb img {
  outline: 2px solid var(--color-primary-500);
  outline-offset: 1px;
}
.size-ref-btn {
  height: 28px; font-size: 11px; font-weight: 700;
  border-radius: 8px; border: 1px solid var(--border-default);
  background: var(--bg-subtle); color: var(--text-secondary); cursor: pointer;
}
.size-ref-btn.active {
  border-color: var(--color-primary-500);
  background: rgba(71,149,255,.12);
  color: var(--color-primary-600);
}
.size-ref-btn:disabled { opacity: .4; cursor: not-allowed; }
.media-more-btn { margin-top: 10px; height: 34px; font-size: 12px; width: 100%; }
.shorts-scale-summary { min-height: 40px; }
.shorts-video-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 12px;
}
.shorts-video-item { display: grid; gap: 8px; }
.shorts-video-item video {
  width: 100%; aspect-ratio: 9/16; max-height: 360px; object-fit: contain;
  border-radius: 12px; background: #0b0f14; border: 1px solid var(--border-default);
}

.results-thumb {
  display: block;
  width: 52px;
  height: 52px;
  border-radius: 8px;
  overflow: hidden;
  border: 1px solid var(--border-default);
  background: var(--bg-subtle);
}
.results-thumb img,
.results-thumb video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.results-thumb-audio {
  width: 148px;
  height: auto;
  min-height: 40px;
  padding: 4px;
}
.results-thumb-audio audio {
  width: 100%;
  height: 32px;
  display: block;
}
.results-kind {
  display: inline-block;
  font-size: 11px;
  font-weight: 700;
  padding: 2px 8px;
  border-radius: 999px;
  background: var(--bg-subtle);
  color: var(--text-secondary);
}
.results-kind-gpu { background: rgba(71,149,255,.14); color: var(--color-primary-600); }
.results-kind-edited { background: rgba(120,120,120,.14); color: var(--text-secondary); }
.results-kind-agent { background: rgba(46,180,120,.14); color: #1f8a5a; }
.results-kind-topview { background: rgba(180,100,255,.12); color: #7a3db8; }
.results-kind-shortform { background: rgba(255,140,60,.14); color: #c45a12; }
.results-kind-nukki { background: rgba(234,88,12,.14); color: #c2410c; }
.results-kind-voice { background: rgba(124,58,237,.12); color: #6d28d9; }
.results-kind-sfx { background: rgba(14,165,233,.14); color: #0369a1; }
.results-kind-sub {
  display: block;
  margin-top: 4px;
  font-size: 11px;
  color: var(--text-tertiary);
}
.results-links {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.results-table td { vertical-align: middle; }


/* —— SNS monitor (`/mkt_analy`) — design system —— */
.monitor-toolbar { display:flex; flex-wrap:wrap; gap:10px; align-items:center; }
.monitor-toolbar .spacer { flex:1 1; }
.monitor-toolbar-report { margin-bottom: 18px; }
.monitor-toolbar-actions { display:flex; gap:10px; align-items:center; flex-shrink:0; margin-left:auto; }
.monitor-help-btn { width:46px; min-width:46px; height:46px; padding:0; flex-shrink:0; }
.ext-modal-root.monitor-help-root { padding:5vh 5vw; z-index:13000; }
.monitor-help-modal { width:100%; height:100%; max-width:none; max-height:none; }
.monitor-help-modal .ext-modal-head h2 { font-size:20px; }
.monitor-help-modal .ext-modal-head p { font-size:14px; }
.monitor-help-modal .ext-modal-body { font-size:15px; }
.monitor-help-modal .ext-modal-body section h3 { font-size:16px; }
.monitor-help-modal .ext-modal-body li { font-size:15px; line-height:1.7; }
.settings-grid { display: grid; gap: 16px; }
.settings-identity { font-weight: 700; color: var(--text-secondary); }
.settings-meters { display: grid; gap: 14px; padding: 0 16px 8px; }
.settings-meter-row { display: flex; justify-content: space-between; gap: 12px; font-size: 13px; margin-bottom: 8px; }
.settings-meter-row strong { font-weight: 800; }
.settings-hint { display: block; font-size: 12px; font-weight: 500; color: var(--text-tertiary); }
.settings-more-wrap { padding: 0 16px 16px; }
.settings-more-btn { height: 36px; padding: 0 14px; font-size: 13px; }
.monitor-stats { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin-bottom:18px; }
.monitor-stat { border:1px solid var(--border-default); border-radius:var(--radius-lg); background:var(--bg-elevated); padding:16px; }
.monitor-stat .label { font-size:12px; color:var(--text-tertiary); margin-bottom:8px; }
.monitor-stat .value { font-size:28px; font-weight:800; line-height:1.1; }
.monitor-stat .delta { margin-top:6px; font-size:12px; color:var(--text-secondary); }
.monitor-panel-head { display:flex; justify-content:space-between; align-items:center; padding:14px 16px; border-bottom:1px solid var(--border-default); }
.monitor-panel-head h2 { margin:0; font-size:15px; font-weight:800; }
.monitor-quick { display:flex; flex-wrap:wrap; gap:10px; padding:14px 16px 0; }
.monitor-quick a { padding:8px 12px; border-radius:10px; background:var(--bg-field); border:1px solid var(--border-field); color:var(--text-primary); text-decoration:none; font-size:13px; font-weight:700; }
.monitor-alerts { list-style:none; margin:0; padding:8px 16px 16px; display:grid; gap:10px; }
.monitor-alerts li { display:flex; gap:10px; align-items:flex-start; font-size:13px; color:var(--text-secondary); }
.toss-chip, .monitor-chip {
  display:inline-flex; align-items:center; padding:3px 8px; border-radius:999px;
  font-size:11px; font-weight:750; background:var(--bg-field); color:var(--text-secondary); white-space:nowrap;
}
.toss-chip.ok, .monitor-chip.ok { background: var(--color-success-bg); color: var(--color-success-fg); }
.toss-chip.run, .monitor-chip.run { background: var(--color-primary-50); color: var(--color-primary-600); }
.toss-chip.wait, .monitor-chip.wait,
.toss-chip.warn, .monitor-chip.warn { background: var(--color-warning-bg); color: var(--color-warning-fg); }
.toss-chip.err, .toss-chip.error, .monitor-chip.err, .monitor-chip.error { background: var(--color-error-bg); color: var(--color-error-fg); }
.toss-chip.info, .monitor-chip.info { background: var(--color-primary-50); color: var(--color-primary-600); }
.monitor-form { display:grid; grid-template-columns:1fr 1fr; gap:12px 14px; padding:16px; }
.monitor-form label { display:grid; gap:6px; font-size:12px; font-weight:700; color:var(--text-tertiary); }
.monitor-form .span-2 { grid-column:1 / -1; }
.monitor-check-row {
  display: flex !important;
  flex-direction: row !important;
  align-items: flex-start;
  gap: 10px;
  font-weight: 500 !important;
  color: var(--text-secondary) !important;
}
.monitor-check-row input[type="checkbox"] {
  width: 18px;
  height: 18px;
  margin-top: 2px;
  flex: none;
}
.monitor-form input, .monitor-form textarea, .monitor-form select,
.monitor-select, .monitor-date {
  width:100%; border:1px solid var(--border-field); border-radius:var(--radius-md); background:var(--bg-field);
  color:var(--text-primary); padding:10px 12px; font-size:13px; outline:none;
}
.monitor-form input:focus, .monitor-form textarea:focus, .monitor-form select:focus,
.monitor-select:focus, .monitor-date:focus {
  border-color: var(--border-focus);
  box-shadow: 0 0 0 3px rgba(71,149,255,.12);
}
.monitor-date, .monitor-select { width:auto; min-width:160px; height:46px; }
.monitor-date-field {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 46px;
  padding: 0 10px 0 12px;
  border: 1px solid var(--border-field);
  border-radius: var(--radius-md);
  background: var(--bg-field);
  cursor: pointer;
  -webkit-user-select: none;
          user-select: none;
}
.monitor-date-field:focus-within {
  border-color: var(--border-focus);
  box-shadow: 0 0 0 3px rgba(71,149,255,.12);
}
.monitor-date-field-label {
  font-size: 12px;
  color: var(--text-tertiary);
  white-space: nowrap;
}
.monitor-date-field .monitor-date {
  border: 0;
  background: transparent;
  box-shadow: none;
  min-width: 132px;
  height: 42px;
  padding: 0 4px;
  cursor: pointer;
}
.monitor-date-field .monitor-date:focus {
  border: 0;
  box-shadow: none;
}
.monitor-mini-btn { height:34px !important; padding:0 12px !important; font-size:12px !important; }
.monitor-detail-analysis { padding:0 16px 16px; display:grid; gap:10px; }
.monitor-detail-analysis ul { margin:0; padding-left:18px; font-size:13px; color:var(--text-secondary); }
.monitor-detail-summary { margin:0; font-size:14px; line-height:1.55; white-space:pre-wrap; }
.monitor-detail-images { display:grid; gap:10px; margin-top:4px; }
.monitor-detail-images .toss-btn-secondary { width:fit-content; }
.monitor-detail-image-grid {
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(96px, 1fr));
  gap:8px;
}
.monitor-detail-image-thumb {
  display:block;
  border:1px solid var(--border-subtle, #2a2f3a);
  border-radius:10px;
  overflow:hidden;
  background:var(--bg-field, #15171c);
}
.monitor-detail-image-thumb img {
  width:100%;
  aspect-ratio:1;
  object-fit:contain;
  display:block;
}

.report-page .page { max-width:none; }
.report-wrap { max-width:920px; margin:0 auto; padding:0 0 64px; }
.sheet { border:1px solid var(--border-default); border-radius:16px; background:var(--bg-elevated); padding:22px 22px 16px; margin-bottom:20px; }
.sheet-head { display:flex; justify-content:space-between; gap:16px; align-items:flex-start; margin-bottom:18px; padding-bottom:14px; border-bottom:1px solid var(--border-default); }
.sheet-head.compact { margin-bottom:14px; }
.sheet-head h1 { margin:0 0 6px; font-size:22px; font-weight:800; }
.sheet-head .eyebrow { margin:0 0 6px; font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--color-primary-600); }
.sheet-head .sub { margin:0; color:var(--text-tertiary); font-size:13px; }
.sheet-badge { flex:none; padding:8px 12px; border-radius:999px; font-size:11px; font-weight:800; letter-spacing:.04em; color:var(--text-on-primary); background:var(--color-primary-500); }
.kpi-row { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin-bottom:14px; }
.kpi-row-official { grid-template-columns:repeat(3,minmax(0,1fr)); }
.kpi { border:1px solid var(--border-default); border-radius:12px; background:var(--bg-subtle); padding:14px; display:grid; gap:4px; }
.kpi-label { font-size:12px; color:var(--text-tertiary); }
.kpi-value { font-size:28px; font-weight:800; line-height:1.1; }
.kpi-delta { font-size:12px; color:var(--text-secondary); }
.kpi-delta.up { color: var(--color-success-fg); }
.dash-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.dash-card { border:1px solid var(--border-default); border-radius:12px; background:var(--bg-subtle); padding:14px; min-height:200px; }
.dash-card h2 { margin:0 0 12px; font-size:13px; font-weight:800; }
.donut-wrap { display:flex; align-items:center; gap:16px; }
.donut { width:132px; height:132px; transform:rotate(-90deg); }
.donut-track { fill:none; stroke:var(--bg-field); stroke-width:12; }
.donut-pos,.donut-neu,.donut-neg { fill:none; stroke-width:12; }
.donut-pos { stroke:var(--color-success-fg); }
.donut-neu { stroke:var(--text-tertiary); }
.donut-neg { stroke:var(--color-error-fg); }
.donut-center { transform:rotate(90deg); transform-origin:60px 60px; fill:var(--text-primary); font-size:16px; font-weight:800; }
.donut-center-sub { transform:rotate(90deg); transform-origin:60px 60px; fill:var(--text-tertiary); font-size:9px; }
.legend { list-style:none; margin:0; padding:0; display:grid; gap:8px; font-size:12px; color:var(--text-secondary); }
.legend .sw { display:inline-block; width:10px; height:10px; border-radius:3px; margin-right:8px; }
.sw.pos { background:var(--color-success-fg); }
.sw.neu { background:var(--text-tertiary); }
.sw.neg { background:var(--color-error-fg); }
.bars { display:flex; align-items:flex-end; gap:8px; height:120px; padding:0 4px; }
.period-bars { gap: 4px; }
.period-bars .bar label { font-size: 10px; transform: rotate(-35deg); transform-origin: top center; height: 22px; }
.bar { flex:1 1; display:flex; flex-direction:column; align-items:center; justify-content:flex-end; height:100%; gap:6px; }
.bar span { display:block; width:100%; max-width:28px; border-radius:6px 6px 2px 2px; background:var(--color-primary-50); min-height:2px; }
.bar.on span { background:var(--color-primary-500); }
.bar label { font-size:10px; color:var(--text-tertiary); }
.chart-note { margin:10px 0 0; font-size:12px; color:var(--text-tertiary); }
.h-bars { display:grid; gap:12px; }
.h-bar { display:grid; grid-template-columns:72px 1fr 28px; gap:8px; align-items:center; font-size:12px; }
.h-label { color:var(--text-secondary); }
.h-track { height:10px; border-radius:999px; background:var(--bg-field); overflow:hidden; }
.h-track i { display:block; height:100%; border-radius:inherit; background:var(--color-primary-600); }
.h-track.accent i { background:var(--color-success-fg); }
.h-val { text-align:right; color:var(--text-tertiary); }
.tags { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:14px; }
.tag { padding:5px 10px; border-radius:999px; font-size:12px; font-weight:700; background:var(--bg-field); color:var(--text-secondary); }
.tag.up { background:var(--color-success-bg); color:var(--color-success-fg); }
.tag.down { background:var(--color-error-bg); color:var(--color-error-fg); }
.comp-list { display:grid; gap:0; }
.comp-list-group { border-bottom:1px solid var(--border-default); }
.comp-list-group:last-child { border-bottom:0; }
.comp-list-head {
  display:flex; flex-wrap:wrap; gap:12px; align-items:center; justify-content:space-between;
  padding:14px 16px;
}
.comp-list-toggle {
  appearance:none; border:0; background:transparent; text-align:left; cursor:pointer;
  display:grid; gap:4px; padding:0; color:inherit; min-width:0; flex:1 1;
}
.comp-list-toggle strong { font-size:14px; font-weight:800; }
.comp-list-toggle small { color:var(--text-tertiary); font-size:12px; }
.comp-list-meta { display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.monitor-comp-section { overflow: visible; }
.monitor-comp-section .monitor-panel-head .toss-btn-secondary {
  height: 36px;
  padding: 0 14px;
  font-size: 13px;
}
.monitor-comp-section .monitor-panel-note { padding: 12px 16px 8px !important; }
.monitor-comp-section .table-wrap { padding: 0 8px 0; overflow-x: auto; }
.monitor-comp-save {
  padding: 12px 16px 16px;
  border-top: 1px solid var(--border-default);
}
.monitor-comp-table { width: 100%; min-width: 1080px; }
.monitor-comp-table th:nth-child(1),
.monitor-comp-table td:nth-child(1) { width: 15%; }
.monitor-comp-table th:nth-child(2),
.monitor-comp-table td:nth-child(2) { width: 26%; }
.monitor-comp-table th:nth-child(3),
.monitor-comp-table td:nth-child(3) { width: 16%; }
.monitor-comp-table th:nth-child(4),
.monitor-comp-table td:nth-child(4) { width: 12%; }
.monitor-comp-table th:nth-child(5),
.monitor-comp-table td:nth-child(5) { width: 31%; min-width: 268px; }
.monitor-comp-table td { vertical-align: middle; padding: 8px 12px; }
.monitor-comp-table tbody tr:hover { background: transparent; }
.monitor-comp-table .toss-input {
  width: 100%;
  min-width: 0;
  height: 38px;
  padding: 0 12px;
  font-size: 13px;
  border-radius: var(--radius-sm);
}
.monitor-comp-status {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
}
.monitor-comp-status .toss-text-link {
  padding: 0;
  border: 0;
  background: transparent;
  height: auto;
  font-weight: 700;
}
.monitor-comp-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
}
.monitor-comp-actions .toss-btn-primary,
.monitor-comp-actions .toss-btn-secondary {
  height: 38px;
  padding: 0 12px;
  font-size: 13px;
  white-space: nowrap;
  flex-shrink: 0;
  box-shadow: none;
}
.comp { display:grid; grid-template-columns:64px 1fr auto; gap:8px; align-items:center; font-size:12px; }
.comp-meter { height:8px; border-radius:999px; background:var(--bg-field); overflow:hidden; }
.comp-meter i { display:block; height:100%; background:var(--color-warning-fg); }
.sheet-foot { display:flex; justify-content:space-between; margin-top:16px; padding-top:10px; border-top:1px solid var(--border-default); font-size:11px; color:var(--text-tertiary); }
.analysis-block { border:1px solid var(--border-default); border-radius:12px; background:var(--bg-subtle); padding:14px 16px 6px; margin-bottom:10px; }
.analysis-block h2 { margin:0 0 8px; font-size:14px; font-weight:800; }
.analysis-block ul { margin:0 0 10px; padding-left:18px; color:var(--text-secondary); font-size:13px; }
.analysis-block li { margin-bottom:5px; }
.suggest { border-left:3px solid var(--color-primary-500); padding-left:12px; margin-bottom:10px; color:var(--text-primary); font-size:13px; }

@media (max-width:1100px) {
  .monitor-comp-table { min-width: 880px; }
}
@media (max-width:900px) {
  .monitor-stats, .kpi-row, .dash-grid, .monitor-form { grid-template-columns:1fr 1fr; }
}
@media (max-width:520px) {
  .desktop-workspace.allow-mobile .kpi-row,
  .desktop-workspace.allow-mobile .kpi-row-official,
  .desktop-workspace.allow-mobile .dash-grid,
  .desktop-workspace.allow-mobile .monitor-stats {
    grid-template-columns: 1fr;
  }
}

@media print {
  @page { size:A4; margin:12mm; }
  body { background:#fff !important; color:#111 !important; }
  .no-print, .toss-sidebar, .app-shell > aside, .mobile-unavailable-page { display:none !important; }
  .app-shell, .main, .page, .report-page { display:block !important; width:auto !important; max-width:none !important; padding:0 !important; margin:0 !important; background:transparent !important; }
  .report-wrap { max-width:none; padding:0; margin:0; }
  .sheet { border:0; border-radius:0; background:transparent; padding:0; margin:0; box-shadow:none; }
  .sheet-dash { break-after:page; page-break-after:always; }
  .sheet-analysis { break-before:page; page-break-before:always; }
  .sheet-head, .dash-card, .kpi, .analysis-block { border-color:#ddd !important; background:#fff !important; }
  .kpi-value, .sheet-head h1 { color:#111 !important; }
  .kpi-label, .sub, .sheet-foot, .chart-note, .muted, .h-label, .h-val { color:#555 !important; }
  .eyebrow { color:#2b6cb0 !important; }
  .sheet-badge { background:#4795ff !important; color:#fff !important; -webkit-print-color-adjust:exact; print-color-adjust:exact; }
  .donut-pos, .donut-neu, .donut-neg, .bar span, .h-track i, .comp-meter i, .tag { -webkit-print-color-adjust:exact; print-color-adjust:exact; }
  .analysis-block ul { color:#333 !important; }
  .suggest { color:#111 !important; border-left-color:#4795ff !important; }
}

.monitor-search-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  font-size: 12px;
  font-weight: 700;
  color: var(--text-tertiary);
}

.jobs-table tbody tr.monitor-row-active,
.jobs-table tbody tr.monitor-row-active:hover {
  background: color-mix(in srgb, var(--color-primary-500) 12%, transparent);
}
.monitor-detail-actions {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}
.monitor-detail-actions .toss-btn-danger {
  margin-right: auto;
}

.monitor-contacts { display: grid; gap: 12px; }
.monitor-contact-card {
  border: 1px solid var(--border-default);
  border-radius: 12px;
  background: var(--bg-subtle);
  padding: 12px;
}
.monitor-contact-card-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 10px;
  font-size: 13px;
}
.monitor-contact-grid {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 10px;
}
.monitor-contact-grid label {
  display: grid;
  gap: 6px;
  font-size: 12px;
  font-weight: 700;
  color: var(--text-tertiary);
}
.monitor-contact-grid input {
  width: 100%;
  border: 1px solid var(--border-field);
  border-radius: 10px;
  background: var(--bg-field);
  color: var(--text-primary);
  padding: 10px 12px;
  font-size: 13px;
}
@media (max-width: 900px) {
  .monitor-contact-grid { grid-template-columns: 1fr; }
}

.usage-toolbar { margin-bottom: 16px; flex-wrap: wrap; }
.usage-toolbar .usage-date { flex: none; }
.usage-date {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  font-weight: 700;
  color: var(--text-tertiary);
}
.usage-date input[type="date"] {
  height: 46px;
  min-width: 150px;
  border: 1px solid var(--border-field);
  border-radius: var(--radius-md);
  background: var(--bg-field);
  color: var(--text-primary);
  padding: 0 12px;
}
.usage-kpis { margin-top: 4px; }
.usage-kpis-paid { grid-template-columns: 1.15fr repeat(4, minmax(0, 1fr)); }
.usage-health-refresh { height: 32px; padding: 0 12px; font-size: 13px; }
.usage-health { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 24px; padding: 14px 16px 16px; }
.usage-health-title { margin: 0 0 10px; font-size: 13px; font-weight: 800; }
.usage-health-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.usage-health-list li { display: grid; grid-template-columns: 1fr auto; gap: 4px 10px; align-items: center; font-size: 13px; }
.usage-health-list em { grid-column: 1 / -1; font-style: normal; font-size: 12px; color: var(--text-tertiary); }
@media (max-width: 1100px) {
  .usage-kpis-paid { grid-template-columns: 1fr 1fr; }
  .usage-health { grid-template-columns: 1fr; }
}
.usage-panel { margin-bottom: 16px; }
.usage-limits { padding-bottom: 16px; }
.usage-track-warn i { background: var(--color-warning-fg); }
.usage-error {
  margin: 0 16px 16px;
  font-size: 13px;
  color: var(--color-error-fg);
}
.usage-daily {
  display: flex;
  align-items: flex-end;
  gap: 4px;
  height: 140px;
  padding: 16px 16px 28px;
  overflow-x: auto;
}
.usage-daily-col {
  flex: 1 1;
  min-width: 0;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  align-items: center;
  gap: 6px;
}
.usage-daily-bar {
  width: 100%;
  max-width: 18px;
  border-radius: 6px 6px 2px 2px;
  background: var(--color-primary-500);
  min-height: 4px;
}
.usage-daily-label {
  font-size: 10px;
  color: var(--text-tertiary);
  transform: rotate(-45deg);
  transform-origin: top center;
  white-space: nowrap;
  height: 14px;
}
.usage-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin-bottom: 16px;
}
.usage-rows { display: grid; gap: 14px; padding: 14px 16px 16px; }
.usage-row-top {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  font-size: 13px;
  margin-bottom: 8px;
}
.usage-name {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-weight: 700;
}
.usage-name i {
  width: 8px;
  height: 8px;
  border-radius: 99px;
  display: inline-block;
}
.usage-name em {
  font-style: normal;
  font-weight: 600;
  font-size: 11px;
  color: var(--text-tertiary);
}
.usage-foot { padding: 0 4px 24px; }
@media (max-width: 980px) {
  .usage-split { grid-template-columns: 1fr; }
}

