.traffic-workspace { padding:20px 26px 30px; background:#f3f8fe; }
.traffic-page .entry-page-header h2 { font-size:26px; margin:0; }
.traffic-page .traffic-reference-badge { display:inline-flex; align-items:center; min-height:26px; padding:4px 9px; border-radius:4px; background:#e9faf2; color:#198568; font-size:12px; }
.traffic-tabs { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin-bottom:16px; }
.traffic-tabs:has(button:nth-child(4)) { grid-template-columns:repeat(4,minmax(0,1fr)); }
.traffic-tabs > button { display:flex; align-items:center; gap:12px; min-width:0; padding:16px; min-height:72px; color:#263c5e; background:#fff; border:1px solid #dfebf8; border-radius:7px; box-shadow:0 2px 8px #294f7c08; cursor:pointer; }
.traffic-tabs > button > span { display:flex; align-items:center; justify-content:center; width:37px; height:37px; flex:0 0 37px; color:#f57b1a; background:#fff0e4; border-radius:7px; }
.traffic-tabs > button:nth-child(2) > span { color:#287fee; background:#eaf4ff; }
.traffic-tabs > button:nth-child(3) > span { color:#1ba77d; background:#e9faf1; }
.traffic-tabs > button:nth-child(4) > span { color:#8665c9; background:#f2edfc; }
.traffic-tabs > button > strong { font-size:15px; text-align:left; min-width:0; overflow-wrap:anywhere; }
.traffic-tabs > button > .ui-icon { width:15px; height:15px; margin-left:auto; color:#9aacc3; flex:0 0 15px; }
.traffic-tabs > button[aria-selected=true] { border-color:#ff9b50; background:#fffaf5; box-shadow:0 2px 8px #f28b2410; }
.traffic-tabs > button[aria-selected=true] strong,.traffic-tabs > button[aria-selected=true] > .ui-icon { color:#ef7019; }
.traffic-main { min-width:0; }
.traffic-page .traffic-main > .entry-section,.traffic-page .traffic-review-fields > .entry-section,.traffic-page .traffic-monthly > .entry-section { border:0; margin:0 0 14px; padding:0 18px 18px; }
.traffic-page .entry-section h3 { padding:10px 14px; margin:0 -18px 16px; color:#233a5b; background:#fff; border-color:#edf2f8; }
.traffic-page .entry-section h3 > span { width:31px; height:31px; flex:0 0 31px; border-radius:7px; background:#ff861f; font-size:15px; }
.traffic-info-fields { grid-template-columns:1fr 1.15fr .65fr 1fr; align-items:start; }
.traffic-state { display:inline-flex; align-items:center; justify-content:center; justify-self:start; width:max-content; max-width:100%; min-height:30px; padding:5px 12px; border-radius:4px; color:#b57c28; background:#fff3dc; font-size:12px; font-weight:600; }
.traffic-state.saved { color:#169874; background:#e9faf2; }
.traffic-entry-form { margin:0; }
.traffic-review-fields { min-width:0; margin:0; padding:0; border:0; }
.traffic-review-fields:disabled { opacity:.75; }
.traffic-review-notice { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:10px; padding:12px 16px; margin-bottom:14px; background:#fff4e9; color:#ad570e; border-block:1px solid #ffe0c5; font-size:13px; line-height:1.6; }
.traffic-review-notice>span { display:inline-flex; align-items:center; gap:8px; }
.traffic-change-record { padding:14px 0; border-bottom:1px solid #e4ebf3; }
.traffic-change-record:last-child { border-bottom:0; }
.traffic-change-record header { display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.traffic-change-record p { overflow-wrap:anywhere; line-height:1.6; font-size:13px; }
.business-status.withdrawn { background:#edf2f7; color:#64758c; }
.traffic-group { border-bottom:1px solid #e4edf7; padding-bottom:16px; margin-bottom:16px; min-width:0; }
.traffic-group:last-child { margin-bottom:0; }
.traffic-group-heading { display:flex; flex-wrap:wrap; align-items:center; gap:8px; padding:0 0 12px; min-width:0; }
.traffic-operator-icon { display:flex; align-items:center; justify-content:center; color:#2785ee; background:#ebf4ff; border-radius:50%; width:30px; height:30px; flex:0 0 30px; }
.traffic-operator-icon .ui-icon { width:17px; height:17px; }
.traffic-small-label { color:#8a9bb3; font-size:11px; }
.traffic-operator-toggle { display:flex; align-items:center; justify-content:space-between; gap:6px; max-width:100%; min-width:90px; border:1px solid #dce9f8; border-radius:4px; background:#f8fbff; color:#2b4d76; padding:7px 9px; cursor:pointer; }
.traffic-operator-toggle strong { font-size:13px; min-width:0; overflow-wrap:anywhere; }
.traffic-operator-toggle .ui-icon { width:13px; height:13px; flex:0 0 13px; transform:rotate(90deg); }
.traffic-group-count { color:#57718f; font-size:12px; margin-left:auto; white-space:nowrap; }
.traffic-group-count output { font-weight:700; color:#1b9b80; font-variant-numeric:tabular-nums; }
.traffic-group-heading .icon-button { width:30px; height:30px; min-height:30px; padding:6px; background:transparent; color:#94a6bd; }
.traffic-source-row { display:grid; grid-template-columns:minmax(0,1fr) 60px 125px 30px; align-items:end; gap:10px; padding:10px 0; min-width:0; }
.traffic-source-choice { min-width:0; }
.traffic-source-choice > .traffic-small-label { display:block; margin-bottom:8px; }
.traffic-choice-toggle { display:flex; align-items:center; justify-content:space-between; gap:8px; width:100%; min-height:38px; padding:8px 10px; background:#fff; border:1px solid #dae5f2; border-radius:5px; color:#29466b; cursor:pointer; text-align:left; }
.traffic-choice-toggle > span { min-width:0; overflow-wrap:anywhere; font-size:13px; line-height:1.45; }
.traffic-choice-toggle > .ui-icon { width:13px; height:13px; flex:0 0 13px; transform:rotate(90deg); color:#8b9fbb; }
.traffic-choice-toggle:disabled { background:#f6f8fb; color:#a5b2c4; cursor:default; }
.traffic-kind { display:inline-block; padding:4px 7px; background:#f1f4f8; color:#8090a5; border-radius:4px; font-size:11px; white-space:nowrap; }
.traffic-kind.free { color:#1b9b7b; background:#eafaf3; }
.traffic-kind.channel { color:#3b7bd7; background:#edf4ff; }
.traffic-row-kind { display:flex; flex-direction:column; gap:8px; align-items:flex-start; padding-bottom:5px; }
.traffic-number-input { display:flex !important; align-items:center; position:relative; }
.traffic-page .traffic-number-input input { padding-right:26px; font-variant-numeric:tabular-nums; }
.traffic-number-input > span { position:absolute; right:10px; font-size:12px; color:#91a1b7; pointer-events:none; }
.traffic-page .traffic-remove { width:30px; height:38px; min-height:38px; padding:7px; background:transparent; color:#91a3bb; }
.traffic-group-footer { display:flex; justify-content:space-between; gap:10px; align-items:center; padding-top:8px; }
.traffic-page .traffic-group-footer .btn { padding:5px 8px; min-height:30px; color:#4288dd; border:1px solid #dce9f8; background:#fff; font-size:12px; }
.traffic-group-footer > span { color:#8398b3; font-size:11px; }
.traffic-choice-menu { flex:1 0 100%; padding:10px; margin-top:8px; background:#f6faff; border:1px solid #dce9fb; border-radius:5px; min-width:0; }
.traffic-choice-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px; max-height:215px; overflow-y:auto; margin-top:8px; }
.traffic-choice-list > button { display:flex; align-items:center; gap:6px; border:1px solid #e1eaf7; border-radius:4px; background:#fff; color:#4c6687; text-align:left; padding:9px; font-size:12px; cursor:pointer; min-width:0; }
.traffic-choice-list > button > span { overflow-wrap:anywhere; min-width:0; flex:1; }
.traffic-choice-list > button > .ui-icon { width:14px; height:14px; color:#f47e21; flex:0 0 14px; }
.traffic-choice-list > button[aria-pressed=true] { border-color:#ffc588; background:#fff6ec; }
.traffic-search-empty { margin:10px 0 0; font-size:12px; color:#8598b2; }
.traffic-source-row:has(.traffic-choice-menu:not([hidden])) { align-items:start; }
.traffic-source-row:has(.traffic-choice-menu:not([hidden])) .traffic-remove { margin-top:23px; }
.traffic-entry-actions { display:flex; flex-wrap:wrap; justify-content:space-between; gap:14px; align-items:center; padding-top:14px; }
.traffic-page .traffic-add-group { color:#347cdb; background:#f4f9ff; border:1px solid #d4e6fb; }
.traffic-zero { display:flex; align-items:center; gap:8px; color:#69809d; font-size:12px; cursor:pointer; }
.traffic-zero input { accent-color:#268ce9 !important; }
.traffic-empty { display:flex; justify-content:center; align-items:center; flex-direction:column; gap:10px; padding:26px 12px; color:#99aac1; font-size:13px; }
.traffic-empty .ui-icon { width:34px; height:34px; color:#b1c7e1; }
.traffic-summary-metrics { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.traffic-summary-metric { display:flex; align-items:center; gap:10px; padding:13px 10px; border-radius:5px; min-width:0; background:#fff5ec; }
.traffic-summary-metric.channel { background:#eef6ff; }
.traffic-summary-metric.total { background:#eefaf4; }
.traffic-metric-icon { display:flex; align-items:center; justify-content:center; width:32px; height:32px; flex:0 0 32px; border-radius:50%; background:#ffe8d6; color:#f48024; }
.traffic-summary-metric.channel .traffic-metric-icon { color:#3687ea; background:#e0edff; }
.traffic-summary-metric.total .traffic-metric-icon { color:#20aa83; background:#ddf6e9; }
.traffic-summary-metric > div { min-width:0; flex:1; }
.traffic-summary-metric > div > span { display:block; font-size:11px; color:#7e8fa6; margin-bottom:5px; }
.traffic-summary-metric strong { display:block; font-size:23px; color:#ed7a26; font-variant-numeric:tabular-nums; white-space:nowrap; }
.traffic-summary-metric.channel strong { color:#3687ea; }
.traffic-summary-metric.total strong { color:#1fa784; }
.traffic-summary-metric small { color:#8d9eb4; font-size:11px; font-weight:500; margin-left:5px; }
.traffic-reason { margin-top:18px !important; }
.traffic-unknown { color:#b48844; font-size:12px; margin:12px 0 0; }
.traffic-page .traffic-summary .entry-error { margin:14px 0 0; }
.traffic-review-fields > .entry-footer { border:1px solid #e2ecf8; border-radius:6px; background:#fff; }
.traffic-footer-date { display:flex; gap:6px; align-items:center; color:#8a9ab1; font-size:12px; }
.traffic-footer-date .ui-icon { width:15px; height:15px; }
.traffic-preview .entry-preview-totals { grid-template-columns:minmax(65px,1fr) minmax(0,1.2fr); }
.traffic-preview [data-traffic-preview=free] { color:#f07a1f; }
.traffic-preview [data-traffic-preview=channel] { color:#3489ef; }
.traffic-preview [data-traffic-preview=total] { color:#1aa17d; font-size:21px; }
.traffic-operator-totals { padding:8px 12px; }
.traffic-operator-totals > div { display:flex; justify-content:space-between; align-items:baseline; gap:12px; padding:8px 0; color:#8a9eb7; font-size:12px; }
.traffic-operator-totals > div > span { min-width:0; overflow-wrap:anywhere; }
.traffic-operator-totals strong { color:#4a6686; white-space:nowrap; font-weight:600; }
.traffic-audit { padding:12px 0; color:#8297b3; font-size:12px; }
.traffic-page .traffic-audit .table-wrap { background:#fff; margin-top:10px; }
.traffic-records,.traffic-monthly { min-width:0; }
.traffic-period-toolbar { display:flex; align-items:flex-end; gap:10px; margin:0 0 16px; }
.traffic-period-toolbar .field { width:190px; }
.traffic-period-toolbar .icon-button { height:38px; min-height:38px; width:38px; padding:9px; }
.traffic-period-toolbar .traffic-export { margin-left:auto; height:38px; }
.traffic-records > .table-wrap { background:#fff; border:1px solid #e2ecf8; border-radius:6px; }
.traffic-page table { font-size:12px; }
.traffic-page table th,.traffic-page table td { padding:12px; }
.traffic-page table td strong { color:#2b536f; }
.traffic-page .traffic-monthly h3 small { font-weight:500; font-size:12px; margin-left:auto; color:#8c9eb6; }
.traffic-recorded-days { margin:12px 0 0; color:#899db6; font-size:12px; }
.traffic-inspection { background:#f6faff; border-top:1px solid #dce8f8; padding:16px; margin-top:16px; }
.traffic-inspection > header { display:flex; justify-content:space-between; align-items:center; gap:12px; }
.traffic-inspection h3 { color:#3d648b; font-size:14px; margin:0; }
.traffic-page .traffic-operator-table { width:100%; min-width:0; table-layout:fixed; border-collapse:separate; border-spacing:0; }
.traffic-operator-table th:nth-child(1) { width:28%; }
.traffic-operator-table th:nth-child(2),.traffic-operator-table th:nth-child(3) { width:24%; }
.traffic-operator-table th:nth-child(4) { width:16%; }
.traffic-operator-table th:nth-child(5) { width:8%; }
.traffic-page .traffic-operator-table th { padding:12px 10px; font-size:12px; color:#617994; border-bottom:1px solid #e4edf7; background:#f4f7fb; white-space:normal; }
.traffic-operator-table .traffic-group { display:table-row-group; padding:0; margin:0; border:0; }
.traffic-page .traffic-operator-row > td { padding:12px 10px; vertical-align:middle; border-bottom:1px solid #e7eef7; white-space:normal; }
.traffic-operator-cell { display:flex; align-items:center; gap:8px; min-width:0; }
.traffic-operator-cell .traffic-operator-icon { background:#fff0e0; color:#f18b2c; }
.traffic-operator-table tbody:nth-of-type(3n + 2) .traffic-operator-icon { background:#e9f3ff; color:#448eea; }
.traffic-operator-table tbody:nth-of-type(3n) .traffic-operator-icon { background:#e7f8f0; color:#36ab80; }
.traffic-operator-cell .traffic-operator-toggle { min-width:0; flex:1; max-width:100%; padding:6px 0; border:0; background:transparent; text-align:left; }
.traffic-operator-cell .traffic-operator-toggle strong { color:#304c6e; }
.traffic-operator-row input[data-traffic-free-input] { text-align:center; font-size:14px; min-height:38px; padding:8px; font-variant-numeric:tabular-nums; }
.traffic-channel-total { display:flex; align-items:center; justify-content:center; position:relative; gap:6px; width:100%; min-height:38px; padding:8px 23px 8px 6px; background:#fff; color:#3a689a; border:1px solid #dbe6f3; border-radius:5px; cursor:pointer; }
.traffic-channel-total output { font-size:14px; font-variant-numeric:tabular-nums; }
.traffic-channel-total .ui-icon { position:absolute; right:6px; width:13px; height:13px; color:#8aabcf; }
.traffic-channel-total[aria-expanded=true] { border-color:#8bbbf3; background:#f8fbff; }
.traffic-row-total { display:block; min-height:38px; padding:9px 5px; border-radius:5px; text-align:center; font-size:14px; font-weight:700; color:#2e526f; background:#f0f5fa; font-variant-numeric:tabular-nums; }
.traffic-page .traffic-row-actions { text-align:center; padding:8px 0 !important; }
.traffic-row-actions .icon-button { min-height:30px; height:30px; width:28px; padding:6px; color:#92a4ba; background:transparent; }
.traffic-page .traffic-operator-menu-row > td { padding:0; border:0; }
.traffic-operator-menu-row:has(.traffic-choice-menu[hidden]) { display:none; }
.traffic-operator-menu-row .traffic-choice-menu { margin:10px 0; }
.traffic-page .traffic-source-detail-row > td { padding:10px 14px 14px; border-bottom:1px solid #e3edf8; background:#f8fbff; }
.traffic-source-detail-row .traffic-group-lines { min-width:0; }
.traffic-source-detail-row .traffic-source-row { padding:8px 0; }
.traffic-source-detail-row .traffic-group-footer { border-top:1px solid #e3edf8; margin-top:6px; }
.traffic-free-details { border-bottom:1px solid #e3edf8; margin-bottom:10px; padding-bottom:8px; }
.traffic-free-details h4 { font-size:12px; color:#659483; margin:0 0 8px; }
.traffic-free-source { grid-template-columns:minmax(0,1fr) 125px; }
.traffic-free-source-name { font-size:13px; color:#477766; align-self:center; }
.traffic-default-toggle { display:flex; align-items:center; gap:8px; min-height:38px; padding:8px 10px; border:1px solid #dae5f2; border-radius:5px; background:#f7faff; color:#6884a7; cursor:pointer; text-align:left; }
.traffic-default-toggle strong { min-width:0; flex:1; font-size:13px; color:#3d5b80; }
.traffic-default-toggle .ui-icon { width:16px; height:16px; flex:0 0 16px; }
.traffic-default-toggle .ui-icon:last-child { width:14px; height:14px; flex-basis:14px; color:#8ba5c5; }
.traffic-default-editor { grid-column:1 / -1; min-width:0; padding:14px; border:1px solid #dce9fa; border-radius:6px; background:#f8fbff; }
.traffic-default-editor > header { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:12px; }
.traffic-default-editor h4 { font-size:14px; margin:0; color:#355a85; }
.traffic-default-editor > header .icon-button { min-height:28px; width:28px; height:28px; padding:5px; background:transparent; }
.traffic-default-options { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; margin-top:12px; max-height:220px; overflow:auto; }
.traffic-default-options label { display:flex; align-items:center; gap:8px; min-width:0; padding:10px 8px; background:#fff; border:1px solid #dfe9f6; border-radius:4px; cursor:pointer; font-size:12px; color:#557293; }
.traffic-default-options label > span { min-width:0; overflow-wrap:anywhere; }
.traffic-default-options label:has(input:checked) { background:#fff5eb; border-color:#ffc68f; color:#c67724; }
.traffic-default-editor footer { display:flex; justify-content:flex-end; gap:8px; margin-top:14px; }
.traffic-default-editor footer button[type=submit] { background:#ff861f; color:#fff; }
.traffic-default-editor .entry-error { margin:12px 0 0; }
.operator-source-defaults { max-width:100%; min-width:0; overflow:auto; border:1px solid #dce7f4; border-radius:5px; background:#fff; }
.operator-source-defaults table { width:100%; min-width:590px; border-collapse:collapse; font-size:12px; table-layout:fixed; }
.operator-source-defaults th,.operator-source-defaults td { padding:10px 8px; border-bottom:1px solid #e4ecf7; text-align:center; vertical-align:middle; }
.operator-source-defaults thead th { background:#f2f6fc; color:#486387; font-weight:600; }
.operator-source-defaults th:first-child { width:190px; text-align:left; position:sticky; left:0; background:#f7faff; }
.operator-source-defaults tbody th { color:#304b6d; overflow-wrap:anywhere; font-weight:500; }
.operator-source-defaults .traffic-kind { display:inline-block; margin:0 6px 4px 0; }
.operator-source-defaults input[type=checkbox] { display:block; width:17px; height:17px; margin:auto; accent-color:#2686ee; }
.operator-source-defaults tr:last-child :is(th,td) { border-bottom:0; }
@media (max-width:1280px) {
  .traffic-workspace { padding:18px; }
  .traffic-tabs > button { gap:9px; padding:13px; }
  .traffic-summary-metric { gap:7px; }
  .traffic-summary-metric strong { font-size:20px; }
  .traffic-metric-icon { width:26px; height:26px; flex-basis:26px; }
  .traffic-info-fields { grid-template-columns:1fr 1.15fr; }
  .traffic-default-options { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (max-width:760px) {
  .traffic-workspace { padding:16px 12px; }
  .traffic-tabs { gap:8px; }
  .traffic-tabs > button { flex-direction:column; justify-content:center; gap:8px; min-height:85px; padding:10px 6px; }
  .traffic-tabs > button > span { width:30px; height:30px; flex-basis:30px; }
  .traffic-tabs > button > strong { font-size:12px; text-align:center; }
  .traffic-tabs > button > .ui-icon { display:none; }
  .traffic-info-fields { grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
  .traffic-info-state { justify-content:flex-start; }
  .traffic-page .traffic-main > .entry-section,.traffic-page .traffic-review-fields > .entry-section,.traffic-page .traffic-monthly > .entry-section { padding:0 12px 14px; }
  .traffic-page .entry-section h3 { margin:0 -12px 14px; padding:9px 12px; font-size:15px; }
  .traffic-source-row { grid-template-columns:minmax(0,1fr) 96px 25px; gap:8px; }
  .traffic-source-choice { grid-column:1 / -1; }
  .traffic-row-kind { flex-direction:row; align-items:center; gap:8px; }
  .traffic-count-field { grid-column:2; }
  .traffic-source-row:has(.traffic-choice-menu:not([hidden])) .traffic-remove { margin-top:22px; }
  .traffic-choice-list { grid-template-columns:minmax(0,1fr); }
  .traffic-summary-metrics { gap:7px; }
  .traffic-summary-metric { display:block; padding:12px 8px; }
  .traffic-metric-icon { margin-bottom:10px; }
  .traffic-summary-metric strong { font-size:20px; }
  .traffic-summary-metric small { display:none; }
  .traffic-group-heading { gap:7px; }
  .traffic-group-heading > .traffic-small-label { display:none; }
  .traffic-preview .entry-preview-totals { grid-template-columns:minmax(75px,1fr) minmax(0,1.2fr); }
  .traffic-period-toolbar { flex-wrap:wrap; }
  .traffic-period-toolbar .field { flex:1; width:auto; }
  .traffic-period-toolbar .traffic-export { flex:1 0 100%; }
  .traffic-default-options { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .traffic-page .traffic-operator-table,.traffic-operator-table .traffic-group { display:block; }
  .traffic-operator-table > thead { display:none; }
  .traffic-operator-table .traffic-operator-row { position:relative; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px 8px; padding:12px 0; border-bottom:1px solid #e5edf8; }
  .traffic-page .traffic-operator-row > td { display:block; padding:0; border:0; min-width:0; }
  .traffic-operator-row > td:first-child { grid-column:1/-1; padding-right:35px; }
  .traffic-operator-row > td:not(:first-child):not(:last-child)::before { content:attr(data-label); display:block; color:#91a0b5; font-size:11px; margin-bottom:7px; }
  .traffic-page .traffic-operator-row .traffic-row-actions { position:absolute; top:12px; right:0; padding:0 !important; }
  .traffic-operator-row .traffic-operator-toggle { flex:0 1 auto; gap:8px; }
  .traffic-operator-table .traffic-operator-menu-row,.traffic-operator-table .traffic-source-detail-row { display:block; }
  .traffic-operator-table .traffic-operator-menu-row:has(.traffic-choice-menu[hidden]) { display:none; }
  .traffic-page .traffic-source-detail-row > td,.traffic-page .traffic-operator-menu-row > td { display:block; }
  .traffic-page .traffic-source-detail-row > td { padding:8px 10px 12px; }
}
