:root{color-scheme:dark;--bg:#0b0e13;--surface:#141922;--line:#293241;--text:#edf2f7;--muted:#a6b3c4;--accent:#67e8c3}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:16px/1.55 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}header{max-width:1400px;margin:auto;padding:35px 32px 22px;display:flex;align-items:center;justify-content:space-between;gap:20px}h1{font-size:clamp(26px,4vw,38px);letter-spacing:-1.4px;margin:5px 0}h2{font-size:20px;line-height:1.4;margin:0}.eyebrow{font-size:11px;letter-spacing:2px;color:var(--muted);font-weight:650}.dot{color:var(--accent)}.workspace{max-width:1400px;margin:auto;padding:0 32px 38px}.toolbar{display:flex;align-items:end;gap:14px;padding:20px;background:var(--surface);border:1px solid var(--line);border-radius:14px}.toolbar label{font-size:12px;color:var(--muted)}.search{flex:1;min-width:150px}label span{display:block}input,select,button,.button{font:inherit;border:1px solid var(--line);border-radius:8px;padding:10px 14px;min-height:44px}input,select{display:block;width:100%;background:#0c1118;color:var(--text);margin-top:6px}button,.button{display:inline-block;cursor:pointer;background:var(--accent);color:#06251c;font-weight:650;text-decoration:none;text-align:center}.subtle{background:transparent;color:var(--text)}button:hover,.button:hover{filter:brightness(1.12);border-color:var(--accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.summary{display:flex;justify-content:space-between;gap:20px;align-items:center;color:var(--muted);font-size:14px;padding:9px 0}.summary p{margin:14px 0}.summary small{font-size:12px}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:20px}.card{border:1px solid var(--line);border-radius:13px;background:var(--surface);overflow:hidden;display:flex;flex-direction:column}.cover{border:0;border-bottom:1px solid var(--line);border-radius:0;width:100%;height:210px;padding:0;background:#1a2230;position:relative;overflow:hidden}.cover img{width:100%;height:100%;object-fit:cover;opacity:.8}.cover .play{position:absolute;inset:0;display:grid;place-items:center;color:white;text-shadow:0 2px 15px black;font-size:38px}.cover .format{position:absolute;bottom:10px;left:12px;background:#0b0e13e8;color:var(--accent);font-size:11px;padding:3px 8px;border-radius:4px}.card-body{padding:16px;display:flex;flex-direction:column;flex:1}.card h2{font-size:14px;font-weight:600;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.meta{font-size:12px;color:var(--muted);margin:10px 0 15px}.actions{display:flex;gap:8px;margin-top:auto}.actions button,.actions a{font-size:12px;flex:1;padding:8px 6px}.empty{padding:65px 20px;text-align:center;color:var(--muted)}footer{margin-top:36px;padding-top:18px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}#more{display:block;margin:25px auto}#more[hidden]{display:none}dialog{width:min(800px,94vw);max-height:94vh;padding:22px;background:var(--surface);color:var(--text);border:1px solid var(--line);border-radius:15px}dialog::backdrop{background:#000c}.player-head{display:flex;gap:15px;align-items:start;justify-content:space-between;margin-bottom:18px}.player-head h2{overflow-wrap:anywhere}.player-head button{font-size:12px;flex-shrink:0}video{display:block;width:100%;max-height:65vh;background:black}audio{width:100%;margin:30px 0}#player-description{white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px;color:var(--muted)}.login{width:min(470px,92vw);margin:12vh auto;padding:32px;background:var(--surface);border:1px solid var(--line);border-radius:16px}.login p,.login small{color:var(--muted)}.login label{font-size:13px}.login button{width:100%;margin-top:18px}.error{color:#ff9ba8}.error:empty{display:none}@media(max-width:700px){header{padding:22px 16px 18px}.workspace{padding:0 16px 28px}.toolbar{flex-wrap:wrap;padding:14px;gap:10px}.search{flex-basis:100%}.toolbar label:not(.search){flex:1}.toolbar button{flex-basis:100%}.summary{align-items:start;flex-direction:column;gap:0;padding:10px 0 18px}.summary p{margin:8px 0}.grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.cover{height:190px}.card-body{padding:11px}.actions{flex-direction:column}.player-head{flex-direction:column}.login{padding:24px}dialog{padding:16px}}@media(prefers-reduced-motion:no-preference){button,.button{transition:filter .15s,border-color .15s}}
/* Raspberry control surface; same dark/mint language as the library. */
.monitor{border:1px solid #304646;background:#111f24;border-radius:16px;padding:20px;margin-bottom:24px;font-size:1rem}
.monitor-head{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}.monitor h2{margin:0;font-size:1.3rem}
.metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(125px,1fr));gap:12px;margin:20px 0}.metrics div{background:#192d32;border-radius:10px;padding:14px}.metrics strong{display:block;font-size:1.7rem;color:#73e7c5}.metrics span{font-size:.9rem}
.monitor details{border-top:1px solid #304646;padding:14px 0}.monitor summary{cursor:pointer;font-weight:600;font-size:1rem}.monitor p{line-height:1.6;font-size:.9rem}.settings-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin:20px 0}.settings-form label{font-size:.9rem}.settings-form input[type=checkbox]{width:auto;display:inline-block;margin-right:8px}.monitor-actions{display:flex;gap:10px;flex-wrap:wrap}
.inventory-wrap{overflow:auto;margin-top:16px}.inventory-wrap table{border-collapse:collapse;width:100%;font-size:.9rem}.inventory-wrap th,.inventory-wrap td{text-align:left;padding:12px;border-bottom:1px solid #304646}.inventory-wrap td:first-child{min-width:200px;max-width:420px;overflow-wrap:anywhere}.inventory-wrap small{display:block;color:#b1c5cb}.monitor ol{max-height:350px;overflow:auto;font-size:.9rem;line-height:1.7;padding-left:24px}
#player-transcript{white-space:pre-wrap;overflow-wrap:anywhere;max-height:45vh;overflow:auto;font:inherit;line-height:1.6}#player details{margin-top:20px}
@media(max-width:600px){.monitor{padding:14px}.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.monitor-actions button{width:100%}}
