.wrap {max-width:76rem;width:calc(100% - 40px)}
.topbar,.section-head{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}.topbar{margin-bottom:24px}
.section-head h2{border:0;margin:0}.section-head{margin-bottom:18px}
button,input,select{font:inherit;color:var(--ink);background:var(--raised);border:1px solid var(--rule);padding:10px 12px;max-width:100%;box-sizing:border-box}
button{cursor:pointer}button:hover{border-color:var(--copper)}button:disabled{opacity:.5;cursor:wait}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--copper);outline-offset:2px}
#open-upload,#apply,#unlock{background:var(--copper);color:var(--raised);border-color:var(--copper)}
label{display:flex;flex-direction:column;gap:6px;font-size:14px}.filters{display:flex;flex-direction:row;gap:14px;align-items:end;flex-wrap:wrap}.filters label{flex:1;min-width:135px}
.muted{color:var(--ink-soft)}.small,small{font-size:13px}small{display:block;color:var(--ink-soft)}
.metrics .metric{min-height:106px}.metrics b{font-variant-numeric:tabular-nums}
.legend{display:flex;gap:20px;flex-wrap:wrap;font-size:13px;color:var(--ink-soft)}.legend span{display:flex;gap:7px;align-items:center}.legend i{width:11px;height:11px;display:inline-block}
.ethoca{background:var(--patina)}.cdrn{background:var(--copper)}.rdr{background:var(--ink-faint)}.avg{background:var(--ink);height:3px!important}
#chart{width:100%;margin-top:22px}#chart svg{width:100%;height:auto;display:block;min-height:240px}
#chart .grid{stroke:var(--rule);stroke-width:1}#chart text{fill:var(--ink-soft);font:12px var(--sans)}
#chart .hit{fill:transparent;cursor:pointer}#chart .hit:focus{stroke:var(--copper);outline:none}
#chart .ethoca-bar{fill:var(--patina)}#chart .cdrn-bar{fill:var(--copper)}#chart .rdr-bar{fill:var(--ink-faint)}#chart .average-line{fill:none;stroke:var(--ink);stroke-width:2.5}
.chart-detail{min-height:28px;font-size:14px}#message:not(:empty){padding:14px;border:1px solid var(--rule);background:var(--warn-wash)}
table th:not(:first-child),table td:not(:first-child){text-align:right}table th:last-child,table td:last-child{text-align:left}
tfoot{font-weight:700}.history-item{padding:14px 0;border-top:1px solid var(--rule);overflow-wrap:anywhere}.history-item p{margin:4px 0}
dialog{color:var(--ink);background:var(--ground);border:1px solid var(--rule);width:min(720px,calc(100% - 32px));max-height:90vh;box-sizing:border-box;padding:24px}dialog::backdrop{background:rgba(0,0,0,.45)}dialog h2{margin:0}dialog form>*{margin-bottom:18px}
.check{flex-direction:row;align-items:start;margin-top:14px}.check input{margin-top:5px}.dropzone{padding:24px;border:1px dashed var(--copper);gap:14px}.dropzone.over{background:var(--warn-wash)}#upload-message,#undo-message{color:var(--warn)}[hidden]{display:none!important}
@media(max-width:620px){.wrap{width:calc(100% - 24px)}.card{padding:16px}.metrics{grid-template-columns:1fr}.metrics .metric{min-height:80px}.filters label{min-width:125px}h1{font-size:32px}#chart svg{min-height:220px}.legend{gap:12px}dialog{padding:16px}}

.metrics .metric b{font-size:2.5rem}
/* Private day details share the public dashboard's type and color tokens. */
.day-details{font-size:.75rem;padding:.2rem .45rem;margin-top:.3rem}
#daily-table{width:100%;min-width:740px;table-layout:fixed}
#alert-details{padding:16px;text-align:left;max-width:calc(100vw - 112px);box-sizing:border-box}
#matching-expansion>td{padding:0;background:var(--ground);text-align:left}
#alert-details .section-head h2{font-size:1.25rem}
.email-totals{width:100%;table-layout:fixed}
.email-totals th:first-child,.email-totals td:first-child{width:50%;overflow-wrap:anywhere}
.email-totals th:nth-child(2),.email-totals td:nth-child(2){width:18%;text-align:right}
.email-totals th:last-child,.email-totals td:last-child{text-align:right;overflow-wrap:anywhere}
@media(max-width:600px){.email-totals{font-size:.8rem}.email-totals th,.email-totals td{padding:10px 5px}.email-totals th:first-child,.email-totals td:first-child{width:43%}#matching-unlock-form label{width:100%}}

.email-totals th:first-child,.email-totals td:first-child{width:40%}
.email-totals th:nth-child(2),.email-totals td:nth-child(2){width:12%}
.email-totals th:nth-child(3),.email-totals td:nth-child(3){width:24%;text-align:right}
@media(max-width:600px){.email-totals th:first-child,.email-totals td:first-child{width:30%}.email-totals th:nth-child(2),.email-totals td:nth-child(2){width:16%}.email-totals th,.email-totals td{padding:10px 3px;overflow-wrap:anywhere!important}.email-totals th{letter-spacing:0;font-size:.6rem}.email-totals td{font-size:.72rem}}

.email-totals small{font-size:.7rem;line-height:1.4;margin-top:.3rem}.email-totals .likely-label{color:var(--copper);font-weight:600}

.email-totals .email-origin{font-weight:600;color:var(--ink-soft)}
.why-email{padding:3px 6px;margin-top:6px;font-size:.7rem}
.email-totals .email-explanation>td{width:auto;text-align:left;background:var(--ground);padding:12px}
.email-explanation p{font-size:.8rem;line-height:1.5;margin:.4rem 0;max-width:none}

/* Hidden Path aggregate tracker shares the canonical house tokens. */
.risk-actions{display:flex;gap:12px;flex-wrap:wrap}.risk-headline{display:flex;align-items:center;gap:24px;flex-wrap:wrap}
.risk-headline strong{font:4rem var(--serif);font-variant-numeric:tabular-nums}.risk-page .metrics{margin-top:24px}
.risk-page details{margin-top:20px}.risk-page summary{cursor:pointer;color:var(--copper)}
.risk-inputs{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}.risk-inputs dd{margin:0;font-variant-numeric:tabular-nums}
.risk-chart{width:100%;margin:24px 0}.risk-chart svg{display:block;width:100%;height:auto}.risk-chart text{fill:var(--ink-soft);font:12px var(--sans)}
.risk-chart .grid{stroke:var(--rule)}.risk-chart .risk-bar{fill:var(--patina)}.risk-chart .risk-partial{opacity:.45}.risk-chart .risk-point{fill:var(--copper)}
.risk-chart .risk-line{fill:none;stroke:var(--copper);stroke-width:2}.risk-chart .risk-reference{stroke:var(--ink-soft);stroke-dasharray:5 4;stroke-width:1.5}
@media(max-width:620px){.risk-headline strong{font-size:3rem}.risk-actions{width:100%}.risk-actions button{flex:1}.risk-inputs{grid-template-columns:1fr;gap:6px}.risk-inputs dd{margin-bottom:10px}}
