/* Shared scale based on Indoor. Keep all operational labels legible. */
:root { --ui-text-size: 16px; --ui-label-size: 14px; --ui-control-height: 40px; }
body { font-size: var(--ui-text-size); line-height: 1.4; }
.shell h1 { font-size: 32px; line-height: 1.2; }
.shell h2 { font-size: 24px; line-height: 1.25; }
.shell h3 { font-size: 18px; line-height: 1.3; }
.shell label { font-size: var(--ui-text-size); line-height: 1.4; }
.shell small, .shell .field-hint { font-size: var(--ui-label-size); line-height: 1.4; }
.shell button, .shell input, .shell select, .shell textarea,
.registry-documents > summary { font-size: var(--ui-text-size) !important; font-family: "Onest Variable", Onest, Arial, sans-serif; line-height: 1.25; }
.shell button:not(.slot-toggle):not(.media-tree-toggle):not(.mw-folder-toggle):not(.pw-block-toggle):not(.pw-audio-button):not(.media-pane-divider):not(.shell-sidebar-toggle) { min-height: var(--ui-control-height); }
.shell input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]),
.shell select { min-height: var(--ui-control-height); box-sizing: border-box; }
.shell .tab { font-size: 16px !important; min-height: 46px; padding: 11px 12px; font-weight: 400; }
.shell .account-copy span, .shell .account-copy strong { font-size: 14px; }
.shell th, .shell td { font-size: 14px; }
.shell button:focus-visible, .shell select:focus-visible { outline: 2px solid #0876b9; outline-offset: 2px; }
.media-plan-registry-filters label { font-size: 14px; }
.media-plan-registry-main > strong { font-size: 16px; }
.media-plan-registry-main > span, .media-plan-registry-main > small,
.media-plan-registry-amount > span, .media-plan-status { font-size: 14px; }
.media-plan-registry-row .campaign-actions { gap: 8px; }
.media-plan-registry-row .registry-icon-button { width: 40px; height: 40px; min-width: 40px; padding: 8px; }
.media-plan-registry-row .registry-icon-button svg { width: 20px; height: 20px; }
.media-plan-registry-row .campaign-actions > button,
.registry-documents > summary { height: auto; min-height: 40px; }
.registry-documents > summary { padding: 8px 12px; }
.media-plan-registry-row .campaign-actions > [data-media-plan-action] { max-width: 190px; }
.campaign-card.media-plan-registry-row { grid-template-columns: minmax(240px, 1fr) 145px 170px auto; }
.campaign-upload.campaign-upload-compact { align-items: center; min-height: 64px; }
.campaign-upload #campaignAdLibraryOpen { margin-top: 0; }
.campaign-upload-compact button { margin: 0; align-self: center; min-height: 40px; }
.campaign-ad-upload-actions { align-items: center; flex-wrap: wrap; }
.campaign-ad-upload-actions button { min-height: 40px; }
.campaign-slot-visibility { align-items: center; gap: 10px; }
.campaign-bonus-mode-button { font-weight: 400; }
.campaign-hour-range { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.campaign-hour-range > span { font-size: 14px; font-weight: 600; }
.campaign-hour-range label { display: flex; align-items: center; gap: 6px; }
.campaign-hour-range select { width: 100px; }
.campaign-hour-range small { color: #526b7a; }
@media (max-width: 1450px) {
  .campaign-card.media-plan-registry-row { grid-template-columns: minmax(240px,1fr) 145px 170px; }
  .media-plan-registry-row .campaign-actions { grid-column: 1 / -1; justify-content: flex-end; flex-wrap: wrap; }
}
@media (max-width: 700px) {
  .shell h1 { font-size: 28px; }
  .campaign-card.media-plan-registry-row { grid-template-columns: minmax(0,1fr) auto; }
  .media-plan-registry-row > .media-plan-status { grid-column: 1 / -1; justify-self: start; }
  .media-plan-registry-row .campaign-actions { justify-content: flex-start; }
  .campaign-upload.campaign-upload-compact { display: flex; flex-wrap: wrap; justify-content: flex-start; gap: 10px; }
  .campaign-upload-compact > strong { width: 100%; }
}
.view > .section-head h2, .view > h2 { font-size: 32px; line-height: 1.2; }
.campaign-slot-table .slot-toggle { min-height: 32px; }
@media (max-width: 700px) { .view > .section-head h2, .view > h2 { font-size: 28px; } }
.media-plan-registry-row .registry-action-icon { flex-basis: 20px; width: 20px; height: 20px; }
.campaign-upload.campaign-upload-compact button { box-sizing: border-box; height: 40px; min-height: 40px; }
.campaign-financial-heading.plan-price-total > strong { font-size: 26px; overflow-wrap: anywhere; }
.view > .section-head.centered { justify-content: space-between; text-align: left; }
.pw-toolbar h2, #clientSettingsTitle { font-size: 32px; line-height: 1.2; }
.brand > span { font-size: 14px; letter-spacing: .04em; }
@media (max-width: 700px) { .pw-toolbar h2, #clientSettingsTitle { font-size: 28px; } }

/* Campaign editor: identity, technical details, creatives, planning, receipt. */
#manualMediaPlan .campaign-editor-block{margin:20px 0 0;padding:20px 0 0;border-top:1px solid #dce7ed;min-width:0}
#manualMediaPlan .campaign-editor-block h3{margin:0 0 14px;font-size:18px}
#manualMediaPlan .campaign-basics{border-top:0;padding-top:0}
#manualMediaPlan .campaign-basics-grid{display:grid;grid-template-columns:minmax(200px,.8fr) minmax(260px,1.15fr) minmax(230px,1fr);gap:16px;align-items:start}
#manualMediaPlan .campaign-period-grid{display:flex;gap:16px;align-items:end;flex-wrap:wrap;margin-top:16px}
#manualMediaPlan .campaign-period-grid .campaign-field-date{width:180px;max-width:none}
#manualMediaPlan .campaign-technical-grid{display:flex;gap:20px;align-items:start;flex-wrap:wrap}
#manualMediaPlan .campaign-technical-grid .campaign-field-public-id{width:180px;max-width:none}
#manualMediaPlan .campaign-technical-grid>label:last-child{width:min(360px,100%)}
#manualMediaPlan .campaign-duration-grid{display:flex;margin-bottom:14px}
#manualMediaPlan .campaign-duration-grid .campaign-field-duration{width:280px;max-width:none}
#manualMediaPlan .campaign-editor-block label{display:grid;gap:6px;color:#526b7a;margin:0;min-width:0;font-size:16px}
#manualMediaPlan .campaign-editor-block input,#manualMediaPlan .campaign-editor-block select{width:100%;margin:0}
#manualMediaPlan .campaign-advertiser-field{display:grid;gap:6px;min-width:0}
#manualMediaPlan .campaign-advertiser-field>span{color:#526b7a;font-size:16px;font-weight:600}
#manualMediaPlan .campaign-editor-block .campaign-field-name,#manualMediaPlan .campaign-editor-block .campaign-field-station,#manualMediaPlan .campaign-editor-block .campaign-field-advertiser{grid-column:auto}
#manualMediaPlan .campaign-period-grid .campaign-weekends{display:flex;align-items:center;height:40px}
#manualMediaPlan .campaign-weekends input{width:18px;margin:0}
#manualMediaPlan .campaign-price-controls{display:flex;gap:16px;flex-wrap:wrap;align-items:start;margin-bottom:12px}
#manualMediaPlan .campaign-price-controls label{width:220px;max-width:none}
#manualMediaPlan .campaign-price-controls .campaign-field-coefficient{width:140px}
#manualMediaPlan #campaignFinancialSummary{margin-top:0;grid-template-columns:minmax(180px,.7fr) minmax(0,2fr)}
#manualMediaPlan #campaignFinancialSummary .campaign-financial-heading{grid-row:auto}
#manualMediaPlan #campaignFinancialSummary .campaign-financial-commercial{grid-template-columns:repeat(2,minmax(0,1fr))}
#manualMediaPlan #campaignFinancialSummary .campaign-financial-commercial>div:first-child,#manualMediaPlan #campaignFinancialSummary .campaign-financial-commercial>div:nth-child(3){display:none}
#manualMediaPlan #campaignFinancialSummary .campaign-financial-heading strong{font-size:26px}
#manualMediaPlan #campaignFinancialSummary .campaign-financial-marketing{grid-column:1/-1}
#manualMediaPlan #campaignFinancialSummary .campaign-financial-marketing small{display:none}
#manualMediaPlan #campaignFinancialSummary .campaign-financial-row>div{min-height:44px;padding:8px 12px}
#manualMediaPlan.special-media-plan #campaignFinancialSummary{padding:0}
#manualMediaPlan #campaignFinancialSummary .plan-price-overview{padding:16px 18px;gap:16px}
#manualMediaPlan #campaignFinancialSummary .plan-price-base{padding:10px 18px}
#manualMediaPlan #campaignFinancialSummary .special-metrics-pending{padding:10px 18px;margin:0}
.campaign-setup-hint{color:#526b7a;font-size:14px;margin:0 0 12px}
.campaign-next-field{animation:campaign-guide-glow 2.8s ease-in-out infinite;position:relative;border-radius:7px}
.campaign-next-field:focus,.campaign-next-field:focus-within{animation:none;box-shadow:0 0 0 3px #328ab526}
@keyframes campaign-guide-glow{0%,100%{box-shadow:0 0 0 2px #328ab512}50%{box-shadow:0 0 0 5px #328ab538}}
@media(prefers-reduced-motion:reduce){.campaign-next-field{animation:none;box-shadow:0 0 0 3px #328ab526}}
@media(max-width:1100px){#manualMediaPlan .campaign-basics-grid{grid-template-columns:repeat(2,minmax(0,1fr))}#manualMediaPlan .campaign-field-name{grid-column:1/-1!important}}
@media(max-width:700px){#manualMediaPlan .campaign-basics-grid{grid-template-columns:minmax(0,1fr)}#manualMediaPlan #campaignFinancialSummary{grid-template-columns:minmax(0,1fr)}#manualMediaPlan #campaignFinancialSummary .campaign-financial-marketing{grid-template-columns:repeat(2,minmax(0,1fr))}#manualMediaPlan .campaign-editor-block{margin-top:16px;padding-top:16px}}

#manualMediaPlan #campaignFinancialSummary:has(>.campaign-financial-heading:only-child){grid-template-columns:minmax(0,1fr);background:#f8fbfc}
#manualMediaPlan .campaign-hour-range label{display:flex;align-items:center;gap:6px}
#manualMediaPlan.special-media-plan .campaign-duration-grid,#manualMediaPlan.special-media-plan .campaign-price-controls{display:none}
#manualMediaPlan #specialPlanSettings{border:0;box-shadow:none;padding:0;margin:0;background:transparent}
#manualMediaPlan #campaignFinancialSummary .plan-price-discount label{color:#fff}
#campaignCreator:empty{display:none}

/* Planning tools share one baseline; fill commands and the legend follow directly. */
#campaignPlanningBlock .campaign-slot-visibility {margin-top:0; align-items:center; gap:8px;}
#campaignPlanningBlock .campaign-hour-range label {margin:0; line-height:1;}
#campaignPlanningBlock .campaign-hour-range select,
#campaignPlanningBlock .campaign-slot-visibility button {height:40px; min-height:40px; box-sizing:border-box;}
#campaignPlanningBlock .campaign-slot-templates {margin-top:10px; gap:8px;}
#campaignPlanningBlock .campaign-slot-load-legend {margin:10px 0 14px; justify-content:flex-start;}
.campaign-day-week {display:inline-block; font-size:13px; font-weight:500; margin-left:5px; text-transform:none;}
.campaign-conflict-notice {padding:12px 14px; margin:12px 0; border:1px solid #f30b46; border-radius:10px; color:#a00b30; background:#fff0f3;}
.campaign-slot-table .slot-toggle.slot-conflict {outline:2px solid #ed0b46; outline-offset:-2px; background:#ffc1ce!important; animation:campaign-conflict-pulse 1.6s ease-in-out infinite;}
@keyframes campaign-conflict-pulse {0%,100%{box-shadow:inset 0 0 0 2px #ed0b46;}50%{box-shadow:inset 0 0 0 4px #ed0b46; background:#ff91ac;}}
@media(prefers-reduced-motion:reduce){.campaign-slot-table .slot-toggle.slot-conflict{animation:none;}}
#campaignPlanningBlock .campaign-slot-visibility button,
#campaignPlanningBlock .campaign-slot-templates button {margin:0;}
.campaign-slot-table thead th:not(:first-child) {min-width:76px; padding:6px 8px; white-space:nowrap;}

#campaignAdList {display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,360px),1fr));gap:12px;align-items:start;}
#campaignAdList .campaign-ad-row {display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:10px;padding:14px;min-width:0;align-items:center;}
#campaignAdList .campaign-ad-name {min-width:0;overflow-wrap:anywhere;}
#campaignAdList .campaign-ad-fact {grid-column:2/4;justify-self:start;}
#campaignAdList .campaign-ad-upload-actions {grid-column:1/-1;display:flex;gap:8px;align-items:center;flex-wrap:nowrap;}
#campaignAdList .campaign-ad-upload-actions button {margin:0;white-space:nowrap;min-height:40px;flex:0 0 auto;}
#campaignAdList .campaign-ad-remove {position:static;color:#ed0a3a;width:40px;height:40px;min-width:40px;display:grid;place-items:center;margin:0!important;}
#campaignAdList .campaign-ad-upload-actions .campaign-ad-remove {margin-left:auto!important;}
#campaignAdList .campaign-inline-player {grid-column:1/-1;min-width:0;}
#manualMediaPlan .campaign-field-discount {width:140px;}
#manualMediaPlan label[hidden] {display:none!important;}

#campaignAdList .pending .campaign-ad-name {grid-column:1/3;}
#campaignAdList .pending .campaign-ad-progress {grid-column:1/-1;}

#manualMediaPlan .campaign-duration-grid[hidden] {display:none!important;}
#campaignCapacityModal [data-campaign-capacity-edit][hidden] { display: none !important; }

#campaignDeleteModal textarea { box-sizing:border-box; width:100%; min-height:100px; resize:vertical; font:inherit; padding:12px; }
#campaignDeleteModal label { display:block; margin:12px 0 8px; }
#campaignDeleteModal [data-campaign-delete-error][hidden] { display:none !important; }
#campaignDeleteModal .action-confirm-target { overflow-wrap:anywhere; }

#campaignAdList .campaign-ad-name {white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere;}
.campaign-inline-player .campaign-player-toggle {display:grid;place-items:center;position:relative;line-height:1;min-height:40px;width:40px;height:40px;box-sizing:border-box;}
.campaign-player-toggle svg {display:block;width:36px;height:36px;fill:currentColor;pointer-events:none;}

.advertising-client-detail-actions {display:flex;gap:10px;align-items:center;flex-wrap:wrap;justify-content:flex-end;}
.advertising-client-detail-actions .client-delete-button {color:#d70a35;border-color:#f0b5c3;}
#advertisingClientDeleteStatus[hidden],#deleteAdvertisingClientFromDetail[hidden] {display:none!important;}
@media(max-width:850px){.advertising-client-detail-head > .advertising-client-detail-actions {grid-column:1/-1;grid-row:3;justify-content:flex-start;}}
