:root{color-scheme:light dark;--bg: #f4f1ea;--card: #fffdf8;--ink: #1d1a16;--muted: #6e675c;--accent: #7a1f1f;--ok: #2e6b3a;--info: #2f6fbf;--line: #d9d2c4;font-family:system-ui,sans-serif}@media(prefers-color-scheme:dark){:root{--bg: #15120f;--card: #201c17;--ink: #efe9dd;--muted: #a39a8a;--line: #3a332a;--accent: #c0392b;--ok: #6fbf7a;--info: #5b9bea}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink)}#app{max-width:640px;margin:0 auto;padding:16px}.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px}h1{font-size:1.4rem;margin:0}h2{font-size:1rem;margin:20px 0 6px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}header.row{align-items:center;gap:12px;margin-bottom:12px}header .muted{margin-left:auto}header .small-link{font-size:.85rem;color:var(--muted)}.back{font-size:1.6rem;text-decoration:none;color:var(--ink);line-height:1}.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}form{display:grid;gap:8px}form.new{margin-bottom:8px}label{display:grid;gap:4px;font-size:.9rem;color:var(--muted)}label.row{display:flex;align-items:center}label.row input{width:auto}input{padding:10px;border:1px solid var(--line);border-radius:8px;background:transparent;color:inherit;font:inherit}button{padding:10px 14px;border:1px solid transparent;border-radius:8px;background:var(--ink);color:var(--bg);font:inherit;font-weight:600;cursor:pointer}button.secondary{background:var(--card);color:var(--ink);border-color:var(--ink)}button.danger{background:var(--accent);color:#fff}button.thumb{font-size:1.1rem;padding:6px 10px}button.thumb.active{background:var(--ok);color:#fff}button:disabled{opacity:.6;cursor:default}button.small{padding:6px 10px;font-size:.9rem}.list{list-style:none;padding:0;margin:0;display:grid;gap:8px}.list li{padding:10px 12px;border:1px solid var(--line);border-radius:10px}.list li a{color:var(--ink);font-weight:600;text-decoration:none;margin-right:8px}.chore .head{display:flex;justify-content:space-between;gap:8px}.chore p{margin:6px 0 0}.chore.accepted{border-color:var(--ok)}.chore.rejected{border-color:var(--accent)}.photos{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.photos img{height:96px;width:auto;max-width:100%;object-fit:contain;border-radius:6px;border:1px solid var(--line);background:#000}.actions{margin-top:8px;display:flex;gap:8px;flex-wrap:wrap}.actions form.row{display:flex}.actions input[type=text],.actions input:not([type]){flex:1;min-width:120px}.muted{color:var(--muted);font-size:.9rem}.note{padding:8px 12px;border-left:3px solid var(--accent)}.flash{margin:12px 0 0;padding:8px 12px;border-radius:8px}.flash.err{background:color-mix(in srgb,var(--accent) 15%,transparent)}.flash.ok{background:color-mix(in srgb,var(--ok) 15%,transparent)}.photos img{cursor:zoom-in}.photos img.broken{object-fit:contain;font-size:.6rem;color:var(--accent)}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000e6;display:flex;align-items:center;justify-content:center;z-index:10;cursor:pointer}.lightbox img{max-width:100vw;max-height:100vh;object-fit:contain}.lightbox button{position:absolute;background:#00000080;color:#fff;border:0;font-size:1.6rem;line-height:1;padding:8px 14px;border-radius:8px}.lightbox .prev{left:8px;top:50%;transform:translateY(-50%)}.lightbox .next{right:8px;top:50%;transform:translateY(-50%)}.lightbox .close{top:8px;right:8px}.lightbox .pos{position:absolute;top:16px;left:12px;color:#fff;font-size:.9rem}.lightbox.single .prev,.lightbox.single .next{display:none}.evidence{list-style:none;padding:0;margin:8px 0 0;display:grid;gap:6px}.evidence .ev{padding:6px 8px;border-left:2px solid var(--line)}.evidence .meta{margin-top:4px;font-size:.9rem}.verdict.ok{color:var(--ok)}.verdict.nope{color:var(--accent)}.photos img.pending{width:72px;background:var(--line)}.history .ev{display:grid;gap:6px}.history .meta strong{margin-right:6px}.badge{display:inline-block;padding:1px 8px;border-radius:999px;background:var(--ok);color:#fff;font-size:.75rem;margin-left:6px}.reaction{display:flex;gap:6px}.shot{position:relative;display:inline-block}.shot .del{position:absolute;top:2px;right:2px;padding:0 6px;font-size:.8rem;line-height:1.4;border-radius:6px;background:#0009;color:#fff}.thumb-shown{font-size:.9rem;color:var(--muted)}.actions-row{margin-bottom:8px}.actions-row .buzz{margin-left:auto}.chore .head button{margin-left:auto;white-space:nowrap}dialog.sheet{border:1px solid var(--line);border-radius:12px;background:var(--card);color:var(--ink);padding:16px;width:min(92vw,480px)}dialog.sheet::backdrop{background:#0000008c}dialog.sheet h2{margin:0 0 4px}dialog.sheet .buttons{justify-content:flex-end;margin-top:8px}.pensum>.head{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}.pensum>.head .progress{margin-left:auto;font-size:.85rem;color:var(--muted);white-space:nowrap}.pensum>p{margin:6px 0 0}.pensum>.list{margin-top:8px}.pensum>[data-add]{margin-top:8px}.badge.bonus,.badge.late{background:var(--accent)}header .presence{margin-left:auto}header .bell{padding:4px 8px}header .back{font-size:1.3rem;line-height:1;padding:2px 10px}header .gear{font-size:1.3rem;text-decoration:none;color:var(--muted);line-height:1}#app{padding-bottom:calc(72px + env(safe-area-inset-bottom))}.tabbar{position:fixed;left:0;right:0;bottom:0;display:flex;background:var(--card);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom);z-index:5}.tabbar a{flex:1;text-align:center;padding:14px 4px;color:var(--muted);text-decoration:none;font-weight:600}.tabbar a.active{color:var(--ink);box-shadow:inset 0 3px 0 var(--ink)}.tabbar .count{display:inline-block;min-width:1.4em;padding:1px 5px;border-radius:4px;background:var(--info);color:#fff;font-size:.75rem;margin-left:4px}.feed .fi{display:grid;gap:2px;padding:6px 10px;font-size:.95rem}.feed .fi.unseen a{font-weight:700}.feed .fi .muted{font-size:.8rem}.feed .fi a{display:flex;gap:8px;align-items:stretch;color:inherit;text-decoration:none;font-weight:400;margin:0}.feed .fi .text{display:grid;gap:2px;flex:1;min-width:0}.feed .fi .previews{display:flex;gap:3px;flex:none;height:2.5rem}.feed .fi .previews img{height:100%;width:auto;max-width:3.5rem;object-fit:cover;border-radius:3px;cursor:zoom-in}.feed .fi .previews img.pending{width:2.5rem;background:var(--line)}.chore-head h2{font-size:1.3rem;margin:0;text-transform:none;letter-spacing:0;color:var(--ink)}.chore-head p{margin:4px 0 0}.chore-head button{margin-top:8px}.chore-head{margin-bottom:12px}.rows{display:grid;gap:6px}.chore-row input{flex:1;min-width:120px}select.small{font:inherit;padding:6px 8px;border:1px solid var(--line);border-radius:8px;background:transparent;color:inherit}.pensum-done{border-color:var(--ok)}.attachment{font-size:.9rem;margin-top:2px}.update-bar{position:sticky;top:0;z-index:6;display:flex;gap:12px;align-items:center;justify-content:center;padding:8px 16px;background:var(--ok);color:#fff;font-weight:600}.update-bar button{background:#fff;color:var(--ok)}:root{--focus: #3b7dd8}[hidden]{display:none!important}:focus-visible{outline:4px solid var(--focus);outline-offset:2px}.chore[tabindex]{cursor:pointer}.chore.locked{opacity:.6}.chore-row label{white-space:nowrap}.chore[tabindex]:focus-visible{border-color:var(--focus);box-shadow:0 0 0 2px var(--focus)}dialog.camera{width:min(96vw,560px);max-width:100%;max-height:96vh;overflow:auto;overflow-x:hidden}dialog.camera{overflow:hidden}dialog.camera form{display:flex;flex-direction:column;gap:6px;height:100%;min-height:0}dialog.camera form>*{flex:0 0 auto}dialog.camera .photos{gap:4px;margin:0}dialog.camera .photos img{height:56px}@media(max-width:600px){dialog.camera{width:100%;height:100%;max-height:100%;margin:0;border:0;border-radius:0;padding:8px}dialog.camera .keys{display:none}}.viewfinder{--ar: 4 / 3;flex:1 1 auto!important;min-height:100px;aspect-ratio:var(--ar);width:auto;max-width:100%;height:auto;margin:0 auto}.viewfinder .flash-shot{position:absolute;top:0;right:0;bottom:0;left:0;background:#fff}.viewfinder .confirm{position:absolute;left:0;right:0;top:12px;margin:0 12px;padding:8px 12px;text-align:center;font-weight:700;color:#000;background:#ffffffe6;border-radius:8px}.active-chore{flex:1;min-width:0}.active-chore h2{font-size:1.5rem;margin:0;overflow-wrap:anywhere}.viewfinder .taken{position:absolute;left:0;right:0;bottom:12px;text-align:center;font-size:1.6rem;font-weight:700;color:#fff;text-shadow:0 0 10px #000}dialog.camera header h2{flex:1}.viewfinder{position:relative;background:#000;border-radius:8px;overflow:hidden;display:flex;align-items:center;justify-content:center}.viewfinder video{width:100%;height:100%;object-fit:contain}.viewfinder .countdown{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:6rem;font-weight:700;color:#fff;text-shadow:0 0 12px #000;background:#00000040}.viewfinder .nocam{position:absolute;top:0;right:0;bottom:0;left:0;margin:0;display:flex;align-items:center;justify-content:center;padding:16px;text-align:center;color:#ddd}dialog.camera [data-shoot]{flex:1;font-size:1.1rem;padding:14px}dialog.camera .keys{font-size:.75rem;flex:1;min-width:0}dialog.camera .photos img{max-width:100%}
