.campaign-visual,.campaign-calendar-visual{font-family:Geist,Arial,sans-serif;color:#20251b;padding:12px;background:#faf9f7}.visual-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;margin-bottom:20px}.visual-heading small{font-size:10px;letter-spacing:.12em;color:#657152}.visual-heading h2{font-size:23px!important;letter-spacing:-.03em;margin:6px 0 0!important;line-height:1.2}.visual-live{white-space:nowrap;font-size:11px;color:#405700;background:#eaf4da;padding:7px 10px}.visual-event{background:#fff;border:1px solid #dde3d5;display:flex;gap:12px;align-items:center;padding:13px 18px;margin-bottom:18px}.visual-event-icon{font-size:27px;color:#597d06}.visual-event small{font-size:11px;color:#69725f}.visual-event p{font-size:16px;line-height:1.35;margin:4px 0 0}.visual-event-arrow{margin-left:auto;font-size:22px;color:#597d06}.visual-graphs{display:grid;grid-template-columns:1.15fr 1fr;gap:14px}.visual-graphs article{background:white;border:1px solid #e0e4d9;padding:15px;min-width:0}.visual-graphs h3{font-size:15px;font-weight:600;margin:0 0 12px}.visual-funnel svg{display:block;width:100%;max-height:300px}.visual-funnel text{text-anchor:middle;font-family:Geist,Arial,sans-serif;font-size:16px;font-weight:500;dominant-baseline:middle}.visual-confirmed-shape{transition:fill .6s,points .6s}.visual-donut-wrap{position:relative;width:min(100%,235px);margin:20px auto 5px}.visual-donut-wrap svg{display:block;width:100%}.visual-donut-wrap>div{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px}.visual-donut-wrap strong{font-size:32px;letter-spacing:-.05em}.visual-donut-wrap span{font-size:13px;color:#626c59}.visual-budget-arc{transition:stroke-dasharray .8s ease}.visual-budget-legend{display:flex;justify-content:center;gap:15px;font-size:11px}.visual-budget-legend span{display:flex;align-items:center;gap:5px}.visual-budget-legend i{width:7px;height:7px;background:#a9df59}.visual-budget-legend span+span i{background:#e7eadf}.visual-budget-total{font-size:12px;text-align:center;color:#626c59;margin:12px 0}.visual-change{font-size:12px!important;min-height:35px;line-height:1.4;background:#f2f7e9;padding:8px;margin:14px 0 0;opacity:0;transition:opacity .4s}.visual-change.shown{opacity:1}.visual-change b{white-space:nowrap;color:#405700;margin-left:5px}.visual-agent{display:flex;align-items:center;gap:10px;background:#eaf4da;padding:13px 16px;margin-top:15px;font-size:14px;line-height:1.4}.visual-agent img{width:24px;height:24px;object-fit:contain;filter:brightness(0)}.calendar-date-change{display:flex;align-items:center;gap:18px;margin:16px 0 20px}.calendar-date-change>span{font-size:12px;color:#626c59}.calendar-date-change strong{display:flex;align-items:center;gap:14px;font-size:23px}.calendar-date-change del{color:#8c9186;font-size:17px}.calendar-date-change i{font-style:normal;color:#8c9186}.calendar-date-change b{font-weight:500;background:#eee;padding:6px 10px}.calendar-date-change .date-confirmed{background:#b3ed57}.calendar-date-change small{margin-left:auto;font-size:11px;color:#405700}.campaign-calendar-visual .日历说明{display:none}.campaign-calendar-visual .日历进度{display:none}.campaign-calendar-visual .日历图例{order:3;margin:10px 0 0;justify-content:flex-end}.campaign-calendar-visual .日历网{gap:4px}.campaign-calendar-visual .日历格{min-height:63px;padding:5px;background:white;border:1px solid #e0e4d9}.campaign-calendar-visual .日历格--今天{border-color:#405700}.campaign-calendar-visual .日历事{font-size:10px;padding:3px;margin-top:4px}.campaign-calendar-visual .日历日{font-size:11px}.campaign-calendar-visual[data-step="2"] .日历事--截止,.campaign-calendar-visual[data-step="3"] .日历事--截止{background:#d6f3ad;border-color:#779b3a;animation:calendar-record .7s ease-out}.campaign-calendar-visual .visual-agent{margin-top:12px}@keyframes calendar-record{from{transform:translateY(-5px);opacity:.2}to{transform:none;opacity:1}}
@media(max-width:520px){.visual-heading{flex-wrap:wrap;gap:8px;margin-bottom:12px}.visual-heading h2{font-size:20px!important}.visual-graphs{grid-template-columns:1fr 1fr;gap:8px}.visual-graphs article{padding:10px}.visual-graphs h3{font-size:12px;line-height:1.3}.visual-donut-wrap{margin:16px auto 8px}.visual-donut-wrap strong{font-size:23px}.visual-donut-wrap span{font-size:11px}.visual-budget-legend{gap:7px;font-size:9px}.visual-funnel svg{min-height:190px}.visual-funnel text{font-size:21px}.visual-change{font-size:10px!important;padding:6px}.visual-event{padding:12px}.visual-event p{font-size:14px}.visual-agent{font-size:12px}.calendar-date-change{flex-wrap:wrap;gap:8px}.calendar-date-change small{width:100%;margin:0}.campaign-calendar-visual .日历格{min-height:60px;padding:3px}.campaign-calendar-visual .日历事{font-size:9px;padding:2px;overflow-wrap:anywhere}.campaign-calendar-visual .日历日{font-size:10px}}
@media(prefers-reduced-motion:reduce){.campaign-visual *,.campaign-calendar-visual *{animation:none!important;transition:none!important}}
.visual-funnel .funnel-label{text-anchor:start;font-size:14px;fill:#4f5c42}.report-view .visual-heading h2{display:none!important}.report-view .visual-heading{align-items:center;margin-bottom:15px}.report-view .campaign-visual,.report-view .campaign-calendar-visual{max-width:1040px;margin:0 auto;padding:20px}.report-view .visual-graphs h3{font-size:17px}.report-view .visual-event p{font-size:18px}.report-view .visual-agent{font-size:16px}@media(max-width:520px){.report-view .campaign-visual,.report-view .campaign-calendar-visual{padding:8px}.report-view .visual-graphs h3{font-size:13px}.report-view .visual-event p,.report-view .visual-agent{font-size:13px}}
/* Use a readable agenda on narrow screens instead of shrinking seven columns. */
@media(max-width:450px){
 .campaign-calendar-visual .visual-heading{margin-bottom:10px;gap:6px}
 .campaign-calendar-visual .visual-live{padding:5px 8px;font-size:10px}
 .campaign-calendar-visual .calendar-event{margin-bottom:12px;padding:10px}
 .calendar-date-change{margin:10px 0 14px;gap:7px}
 .calendar-date-change strong{font-size:20px;gap:8px}
 .calendar-date-change>span{width:100%}
 .campaign-calendar-visual .日历星期{display:none}
 .campaign-calendar-visual .日历网{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
 .campaign-calendar-visual .日历格:not(:has(.日历事)){display:none}
 .campaign-calendar-visual .日历格{min-height:55px;padding:5px}
 .campaign-calendar-visual .日历日{font-size:11px}
 .campaign-calendar-visual .日历事{font-size:11px;line-height:1.25;padding:3px;margin:2px 0 0}
 .campaign-calendar-visual .日历图例{gap:7px;font-size:10px}
 .campaign-calendar-visual .visual-agent{padding:10px;font-size:12px}
}
.calendar-follow{margin-top:14px;background:#eaf4da;padding:14px 16px;display:flex;gap:20px;align-items:center}.calendar-follow-time{display:flex;align-items:center;gap:10px;flex-shrink:0}.calendar-follow-time>img{width:25px;filter:brightness(0)}.calendar-follow-time small{display:block;font-size:10px;color:#546247}.calendar-follow-time strong{display:block;font-size:19px;margin-top:4px;font-weight:500}.follow-clock{font-size:25px;color:#405700}.calendar-follow-plan{border-left:1px solid #c6d5b4;padding-left:20px}.calendar-follow-plan p{margin:0 0 10px;font-size:13px;line-height:1.4}.calendar-follow-plan>div{display:flex;flex-wrap:wrap;gap:6px 12px}.calendar-follow-plan span{font-size:10px;color:#69725f}.calendar-follow-plan .active{color:#405700}.calendar-follow-plan .complete{color:#405700;text-decoration:line-through}.calendar-follow[data-follow="3"] .follow-clock{animation:follow-wake 1s ease-out}.calendar-follow[data-follow="3"]{background:#d6f3ad}@keyframes follow-wake{from{transform:rotate(-120deg)}to{transform:rotate(0deg)}}
@media(max-width:600px){.calendar-follow{display:block;padding:12px}.calendar-follow-plan{border:0;padding:12px 0 0}.calendar-follow-plan>div{gap:6px 10px}}
@media(prefers-reduced-motion:reduce){.calendar-follow .follow-clock{animation:none!important}}
.calendar-follow-plan span{font-size:12px}.calendar-follow-plan p{font-size:14px}.calendar-follow-time small{font-size:11px}

/* Readable conclusions; the small chart labels remain secondary. */
.visual-heading small,.visual-live,.visual-event small,.visual-budget-legend,.visual-budget-total{font-size:13px}
.visual-change{font-size:14px!important}
.calendar-follow-time small,.calendar-follow-plan span{font-size:13px}
@media(max-width:520px){
 .visual-heading small,.visual-live,.visual-event small,.visual-budget-legend,.visual-budget-total{font-size:12px}
 .visual-change{font-size:13px!important}
 .visual-agent,.report-view .visual-agent{font-size:14px}
 .visual-budget-legend{flex-wrap:wrap;gap:6px 10px}
 .calendar-follow-time small,.calendar-follow-plan span{font-size:12px}
 .campaign-calendar-visual .日历事{font-size:12px;line-height:1.35}
}
