:root{font-family:Inter,system-ui,sans-serif;color:#173649;background:#f3f7f8;--line:#d6e3e7;--sub:#46616d;--accent:#08685e}
*{box-sizing:border-box}
body{margin:0}
[hidden]{display:none!important}
.brand{background:#173649;color:white}
.brand>div,main{max-width:1280px;margin:auto;padding:0 clamp(12px,4vw,44px)}
.brand>div{min-height:55px;display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.wordmark{font-weight:700}.context{color:#c7dce2;font-size:.875rem}
main{padding-top:22px;padding-bottom:22px}
h1,h2,p{margin:0}h1{font-size:1.55rem}h2{font-size:1.08rem}p{line-height:1.5;color:var(--sub);margin-top:5px}
.intro,.toolbar,.actions{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
button,.button,select,input[type=date]{font:inherit;min-height:44px;border:1px solid var(--line);border-radius:8px;padding:8px 12px;background:white;color:#173649;max-width:100%}
button,.button{cursor:pointer;font-weight:600}.primary{background:var(--accent);color:white;position:relative;display:inline-flex;align-items:center}.primary input{position:absolute;inset:0;opacity:0;width:100%;cursor:pointer}
button:disabled{opacity:.55;cursor:default}
:focus-visible,.button:focus-within{outline:3px solid #208c82;outline-offset:3px}
#status{background:#e5f0f1;padding:10px 12px;border-radius:8px;margin:14px 0;overflow-wrap:anywhere}
#controls,.chart-panel,aside,.table-panel,details{background:white;border:1px solid var(--line);border-radius:12px;padding:14px}
#controls{display:flex;align-items:end;gap:12px;flex-wrap:wrap;margin-bottom:14px}
label{display:grid;gap:5px;font-weight:500;font-size:.875rem;min-width:0}label select,label input{width:100%;font-size:1rem}
.source{flex:1 1 300px}
.analysis{display:grid;grid-template-columns:minmax(0,2.5fr) minmax(0,1fr);gap:12px;margin:12px 0}
aside li{margin-bottom:9px;line-height:1.4}aside ul{padding-left:19px}
.muted,footer,#page-label{font-size:.875rem;color:var(--sub)}
canvas{display:block;width:100%;height:245px;margin-top:8px}
.table-scroll{overflow:auto;margin-top:9px}
table{width:100%;border-collapse:collapse;min-width:740px;font-variant-numeric:tabular-nums}
th,td{text-align:right;padding:8px 10px;white-space:nowrap;border-bottom:1px solid var(--line)}
th{background:#eaf2f4;font-size:.82rem}th:first-child,td:first-child{text-align:left}
tbody tr:nth-child(even){background:#f7fafb}
.actions{justify-content:flex-start}.pagination{margin-top:10px}
details,footer{margin-top:14px}summary{cursor:pointer;min-height:44px;padding:10px 0}
@media(max-width:760px){.analysis{grid-template-columns:1fr}.chart-panel,.table-panel,aside{padding:12px}.source{flex-basis:100%}}

.summary-scroll table{min-width:420px}.summary-scroll tbody th{background:transparent;font-weight:500}.table-panel{margin-top:12px}
.signal-actions{margin-top:12px}.signal-actions label{flex:0 1 auto}
.wave-file{position:relative;background:#fff;color:#173649;display:inline-flex;align-items:center}
.wave-file input{position:absolute;inset:0;width:100%;opacity:0;cursor:pointer}
#alarm-chart,#wave-chart{height:190px}#alarm-list{padding-left:22px;overflow-wrap:anywhere}
#alarm-list li{margin:.4rem 0}
.brand .wordmark{display:block;object-fit:contain}.credit{font-size:.875rem}.credit a{color:var(--accent);text-underline-offset:3px}
.alarm-wave-link{margin-inline-start:.6rem;margin-block:.2rem;padding-inline:10px;color:var(--accent)}
#wave-status{scroll-margin-top:16px}

#research{margin:0 0 14px}
.research-fields{align-items:end;margin:12px 0}
.research-fields input{min-height:44px;border:1px solid var(--line);border-radius:8px;padding:8px;color:inherit;max-width:100%}
#research fieldset{margin:0 0 12px;min-width:0;border:1px solid var(--line);border-radius:8px}
#study-sources{max-height:220px;overflow:auto}
#study-sources label{display:flex;align-items:center;min-height:44px;overflow-wrap:anywhere}
#study-sources input{width:20px;height:20px;flex:none}
#study-status{overflow-wrap:anywhere}

#study-charts{padding:12px}
#study-charts label{width:fit-content;max-width:100%}
#study-charts canvas{height:180px}
.study-cycle{margin-top:14px;padding:10px;border:1px solid var(--line);border-radius:8px;min-width:0}
.study-cycle h3{font-size:1rem;margin:0}
.study-cycle p{font-size:.875rem}
.study-legend{margin-top:10px;font-size:.875rem}
.study-legend span::before{content:"●";margin-right:6px;color:#08796b}
.study-legend [data-series="1"]::before{color:#2459ae}
.study-legend [data-series="2"]::before{color:#9b461e}

#study-cosinor{margin-top:12px;padding:10px;border:1px solid var(--line);border-radius:8px}
#study-cosinor h3{font-size:1rem;margin:0}
#study-cosinor ul{margin:8px 0 0;padding-left:20px}
#study-cosinor li+li{margin-top:8px}
#study-cosinor li p{font-size:.875rem}
