header a{color:var(--amber);text-decoration:none;font-size:.85rem}main{flex:1;padding:1rem;max-width:960px;width:100%;margin:0 auto}.filter-bar{display:flex;align-items:center;flex-wrap:wrap;gap:.6rem 1rem;margin-bottom:1rem}.filter-bar label{font-weight:600;font-size:.9rem}.filter-bar .checkbox-label{display:flex;align-items:center;gap:.4rem;font-weight:400;cursor:pointer}.filter-bar .checkbox-label input{margin:0;width:1rem;height:1rem}select,input[type=date]{font-size:1rem;padding:.5rem;border:1px solid #ccc;border-radius:6px;background:var(--white)}.link-button{background:none;border:none;color:var(--teal);font-size:.9rem;font-weight:600;cursor:pointer;padding:.4rem 0}.link-button:hover{color:var(--teal-dark);text-decoration:underline}.gear-button{flex:none;align-self:flex-start;background:none;border:1px solid #ccc;border-radius:6px;color:var(--teal);font-size:.85rem;font-weight:600;cursor:pointer;padding:.3rem .6rem}.gear-button:hover{color:var(--teal-dark);border-color:var(--teal)}.gear-button[aria-expanded=true]{color:var(--teal-dark);border-color:var(--teal);background:#f0f7f7}.ad-group-row{padding:.6rem 0;border-top:1px solid #eee}.ad-group-row .checkbox-label{display:inline-flex;align-items:center;gap:.35rem;margin:.35rem .9rem 0 0;font-size:.9rem;cursor:pointer}.ad-group-unmapped{color:#b00;font-size:.85rem}.filter-bar-toggles{flex-direction:column;align-items:stretch;gap:.35rem}.filter-bar[hidden]{display:none}.filter-bar-toggles .filter-bar{margin-bottom:0}#dash-category-toggles-other,#dash-total-toggle-row{padding-top:.35rem;border-top:1px dashed #ddd}[data-tab-panel=overview]{overflow-anchor:none}.card{background:var(--white);border-radius:10px;padding:1rem;margin-bottom:1rem;box-shadow:0 1px 3px #00000014;overflow-x:auto}.card h2{margin:0 0 .75rem;font-size:1.05rem}.card-note{margin:-.4rem 0 .75rem;font-size:.85rem;color:var(--muted, #5f6368)}.card-total{margin:0 0 .75rem;font-size:.95rem}.card h2+.card-total{margin-top:-.4rem}.card-total strong{font-size:1.15rem}.card-option{display:inline-flex;align-items:center;gap:.4rem;margin-bottom:.75rem;font-size:.9rem;cursor:pointer}.card-option input{margin:0;width:1rem;height:1rem}.card-toggle{cursor:pointer;display:flex;align-items:center;gap:.4rem;-webkit-user-select:none;user-select:none}.card-toggle:before{content:"\25be";font-size:.8em;color:var(--muted, #5f6368);transition:transform .15s ease}.card-toggle[aria-expanded=false]:before{transform:rotate(-90deg)}.card-toggle:hover{color:var(--teal)}.card-toggle:focus-visible{outline:2px solid var(--teal);outline-offset:2px;border-radius:4px}.card.collapsed>*:not(.card-toggle):not(.card-header){display:none!important}.card.collapsed .card-header>*:not(.card-toggle){display:none!important}.card.collapsed h2{margin-bottom:0}.card.collapsed{overflow:hidden}.card-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.card-header h2{margin:0 0 .75rem}.chart-type-select{font-size:.85rem;padding:.3rem .5rem;margin-bottom:.75rem}.card canvas{max-height:320px;min-height:240px}.chart-box{position:relative;height:380px;width:100%;box-sizing:border-box;overflow:hidden}.chart-box canvas{display:block;width:100%;height:100%;max-height:100%;min-height:0}.chart-legend{display:flex;flex-wrap:wrap;gap:.35rem 1rem;margin-bottom:.75rem;font-size:.85rem}.chart-legend span{display:inline-flex;align-items:center;gap:.4rem}.chart-legend i{width:12px;height:12px;border-radius:2px;flex:0 0 auto}.chart-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem}.chart-grid figure{margin:0;min-width:0}.chart-grid figcaption{font-size:.85rem;font-weight:600;margin-bottom:.35rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chart-grid canvas{max-height:220px;min-height:180px}.chart-grid-empty{color:#666;font-size:.9rem;margin:0}table{border-collapse:collapse;width:100%;font-size:.9rem}th,td{text-align:left;padding:.4rem .6rem;border-bottom:1px solid #eee}th{color:var(--muted);font-weight:600}.error{color:var(--danger);font-weight:600;padding:1rem;display:none}.error.visible{display:block}#dash-ad-spend-table{margin-bottom:1rem}.ad-spend-input{width:100%;font-size:.9rem;padding:.35rem .5rem;border:1px solid #ccc;border-radius:6px}.ad-spend-input.dirty{border-color:var(--amber);background:#fff8ec}.category-swatch{display:inline-block;width:.75rem;height:.75rem;border-radius:3px;margin-right:.4rem;vertical-align:middle}.loading{padding:1rem;color:var(--muted)}.tab-bar{display:flex;gap:.25rem;margin-bottom:1rem;border-bottom:2px solid #ddd;overflow-x:auto}.tab-button{background:none;border:none;font-size:.95rem;font-weight:600;color:var(--muted);padding:.6rem 1rem;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;white-space:nowrap}.tab-button:hover{color:var(--steel)}.tab-button.active{color:var(--teal);border-bottom-color:var(--teal)}.tab-panel{display:none}.tab-panel.active{display:block}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:1rem}@media(max-width:720px){.two-col{grid-template-columns:1fr}}#dash-map{height:520px;border-radius:6px}.map-coverage{margin-top:.6rem;font-size:.85rem;color:var(--muted, #666)}.map-jobs{margin-top:.9rem;border:1px solid var(--border, #ddd);border-radius:6px;max-height:420px;overflow-y:auto}.map-jobs-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.6rem .75rem;border-bottom:1px solid var(--border, #ddd);position:sticky;top:0;background:var(--card-bg, #fff)}.map-jobs-head h3{margin:0;font-size:.95rem}.map-jobs-close{border:0;background:none;font-size:1.3rem;line-height:1;cursor:pointer;padding:0 .3rem;color:var(--muted, #666)}.map-job{border-bottom:1px solid var(--border, #eee)}.map-job:last-child{border-bottom:0}.map-job>summary{cursor:pointer;padding:.55rem .75rem;display:flex;flex-wrap:wrap;gap:.5rem;align-items:baseline}.map-job>summary::-webkit-details-marker{display:none}.map-job-title{font-weight:600}.map-job-meta{color:var(--muted, #666);font-size:.85rem}.map-job-badge{font-size:.75rem;padding:.1rem .4rem;border-radius:999px;background:var(--chip-bg, #eef2ff);color:var(--chip-fg, #3730a3)}.map-job-badge.is-void{background:#fee2e2;color:#991b1b}.map-job-details{margin:0;padding:0 .75rem .7rem;display:grid;grid-template-columns:max-content 1fr;gap:.25rem .75rem;font-size:.87rem}.map-job-details dt{color:var(--muted, #666)}.map-job-details dd{margin:0}.map-legend{display:flex;flex-wrap:wrap;gap:.35rem 1rem;margin:0 0 .6rem;font-size:.85rem}.map-legend-item{display:inline-flex;align-items:center;gap:.35rem}.map-legend-swatch{width:.75rem;height:.75rem;border-radius:50%;box-shadow:0 0 0 1px #fff inset;flex:none}.map-pie{background:none;border:none}.card-note.card-note-below{margin:.35rem 0 0}
