:root{color-scheme:dark;--bg:#10151c;--panel:#171e28;--line:#303b4b;--text:#e9edf3;--muted:#a3b0c1;--accent:#b5d5cb;font-family:system-ui,-apple-system,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);line-height:1.6}header,main,footer{max-width:1050px;margin:auto;padding:24px}header{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{font-weight:650;text-decoration:none;font-size:1.2rem}a{color:var(--accent)}button,.button{display:inline-block;border:1px solid var(--line);border-radius:10px;padding:10px 16px;background:var(--panel);color:var(--text);font:inherit;text-decoration:none;cursor:pointer}button:hover,.button:hover{border-color:var(--accent)}button:disabled{opacity:.5;cursor:wait}.primary{background:var(--accent);color:#122b23;border-color:var(--accent);font-weight:650}h1{font-weight:550;font-size:clamp(2rem,5vw,3rem);line-height:1.2;margin:8px 0 28px}h2{font-size:1.3rem}p{max-width:70ch}.eyebrow{text-transform:uppercase;font-size:.75rem;letter-spacing:.14em;color:var(--accent)}.muted,footer{color:var(--muted);font-size:.9rem}.welcome{padding:70px 0;max-width:650px}.welcome h1{font-size:clamp(2.5rem,7vw,4.5rem)}.welcome .button{margin-top:20px}.section-heading,.dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:20px}.filters{display:flex;align-items:end;flex-wrap:wrap;gap:12px;padding:18px;background:var(--panel);border:1px solid var(--line);border-radius:14px}.grow{flex:1;min-width:190px}label{display:block;color:var(--muted);font-size:.9rem}input,textarea{display:block;width:100%;font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:10px;margin:5px 0 12px}input:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:2px}.filters input{margin-bottom:0}.filters input[type=date]{max-width:155px}.filters #tag{max-width:120px}.check{display:flex;gap:8px;align-items:center;padding-bottom:10px}.check input{width:auto;margin:0}.records{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:16px;margin:20px 0}.record{display:flex;flex-direction:column;align-items:start;text-align:left;border-radius:16px;padding:22px;min-height:190px}.record h2{margin:10px 0;color:var(--text);line-height:1.4}.record p{margin:0 0 16px;overflow-wrap:anywhere;white-space:pre-wrap;color:var(--muted)}.record small{margin-top:auto;color:var(--accent)}dialog{color:var(--text);background:var(--panel);border:1px solid var(--line);border-radius:18px;width:min(760px,94vw);max-height:90dvh;padding:26px}dialog::backdrop{background:#000b}dialog form>label{margin-top:16px}.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}audio{width:100%;margin:14px 0}pre,code{white-space:pre-wrap;overflow-wrap:anywhere}pre{font:inherit;background:var(--bg);padding:15px;border-radius:8px}output{display:block;overflow-wrap:anywhere;padding:16px;color:var(--accent);user-select:all}#message{position:sticky;bottom:15px;max-width:100%;border-radius:10px}#message:not(:empty){padding:15px;background:#27342e;border:1px solid var(--accent)}[hidden]{display:none!important}#devices>div{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:12px 0}.empty{padding:35px;border:1px dashed var(--line);border-radius:12px;color:var(--muted)}@media(max-width:600px){header,main,footer{padding:18px}.section-heading{align-items:start}.section-heading h1{font-size:2rem}.filters{gap:8px}.filters .grow{flex-basis:100%}.filters input[type=date]{max-width:135px}.welcome{padding-top:40px}dialog{padding:20px}}

#settings{max-width:720px;margin:auto}#configForm{margin:24px 0 40px}.config-group{border:1px solid var(--line);border-radius:12px;padding:16px 20px;margin:14px 0}.config-group summary{cursor:pointer;font-weight:600}.config-group>label{margin-top:16px}.config-group .check{justify-content:space-between;padding-bottom:0}.config-group input{min-width:0}.config-group input[type=checkbox]{flex:none}#configResult{color:var(--accent)}
.busy{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 12px;color:var(--accent);font-size:.9rem}
.busy progress{flex-basis:100%;height:6px;accent-color:var(--accent)}
.spinner{width:14px;height:14px;border:2px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite;flex:none}
@keyframes spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.spinner{animation-duration:2.4s}}
#recordState .busy{margin-top:8px}
.alternative{border:1px solid var(--line);border-radius:12px;padding:12px 16px;margin:12px 0}
.alternative p{margin:0 0 8px}
