:root{--bg: #faf6f1;--surface: #ffffff;--text: #2b2118;--muted: #6b5a4c;--accent: #8a4b2a;--accent-text: #ffffff;--border: #e3d6c8;--danger: #a3261b;--ok: #2f6b3a;--radius: 12px;color-scheme:light;font-family:system-ui,-apple-system,Segoe UI,Roboto,Noto Sans,sans-serif;font-size:18px;line-height:1.5}@media(prefers-color-scheme:dark){:root{--bg: #1d1814;--surface: #2a231d;--text: #f3ebe3;--muted: #c4b3a3;--accent: #e0a57f;--accent-text: #1d1814;--border: #4a3e33;--danger: #ff8f80;--ok: #8fd19e;color-scheme:dark}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}a{color:var(--accent)}.topbar{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--surface);border-bottom:1px solid var(--border)}.brand{font-weight:700;font-size:1.2rem;text-decoration:none}.who{display:flex;gap:12px;align-items:center;flex-wrap:wrap}main{max-width:680px;margin:0 auto;padding:20px 16px 48px}.page-title h1{margin:0 0 4px;font-size:1.6rem}.page-title{margin-bottom:16px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px;margin-bottom:20px}.card h2{margin-top:0;font-size:1.3rem}.lead{font-size:1.15rem}.field{margin-bottom:16px}.field label{display:block;font-weight:600;margin-bottom:6px}input[type=text],input[type=email],input[type=password],input:not([type]),select{width:100%;font:inherit;padding:12px;border:1px solid var(--border);border-radius:8px;background:var(--bg);color:var(--text);min-height:48px}input:focus-visible,select:focus-visible,button:focus-visible,a:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.hint,.muted{color:var(--muted)}.hint{margin:6px 0 0;font-size:.9rem}.small{font-size:.9rem}.checkbox{display:flex;gap:8px;align-items:center;margin:-8px 0 16px;font-size:.95rem}button{font:inherit;min-height:48px;padding:10px 18px;border-radius:8px;cursor:pointer;border:1px solid var(--border);background:var(--surface);color:var(--text)}button.primary{background:var(--accent);color:var(--accent-text);border-color:var(--accent);font-weight:600}button.danger{color:var(--danger);border-color:var(--danger)}button.link{background:none;border:none;color:var(--accent);text-decoration:underline;padding:8px;min-height:0}button:disabled{opacity:.6;cursor:wait}.error{color:var(--danger);font-weight:600}.notice{color:var(--ok);font-weight:600}.members{list-style:none;margin:0;padding:0}.members li{display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;align-items:center;padding:14px 0;border-top:1px solid var(--border)}.members li:first-child{border-top:none}.member-actions{display:flex;gap:8px;flex-wrap:wrap}.member-actions select{width:auto}.badge{padding:4px 10px;border-radius:999px;background:var(--bg);border:1px solid var(--border);font-size:.9rem}.roles{border:none;padding:0;margin:0 0 16px}.roles legend{font-weight:600;margin-bottom:8px;padding:0}.role{display:flex;gap:12px;align-items:flex-start;padding:12px;margin-bottom:8px;border:1px solid var(--border);border-radius:8px;cursor:pointer}.role.selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.role input{margin-top:6px;width:20px;height:20px;flex-shrink:0}.role span{display:flex;flex-direction:column}.link-box{margin-top:16px;padding:16px;border-radius:8px;background:var(--bg);border:1px dashed var(--accent)}.link-box input{margin-bottom:10px;font-size:.9rem}.button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:10px 18px;border-radius:8px;border:1px solid var(--border);background:var(--surface);color:var(--text);text-decoration:none;cursor:pointer;font:inherit}.button.primary{background:var(--accent);color:var(--accent-text);border-color:var(--accent);font-weight:600}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.button:focus-within{outline:3px solid var(--accent);outline-offset:2px}.tabs{display:flex;gap:4px;margin-bottom:20px;border-bottom:1px solid var(--border);overflow-x:auto}.tabs a{padding:12px 16px;text-decoration:none;color:var(--muted);border-bottom:3px solid transparent;white-space:nowrap;font-weight:600}.tabs a.active{color:var(--accent);border-bottom-color:var(--accent)}.month h2{font-size:1.15rem;margin:24px 0 10px}.grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:4px}.tile{position:relative;display:block;aspect-ratio:1;background:var(--border);border-radius:4px;overflow:hidden}.tile img{width:100%;height:100%;object-fit:cover;display:block}.tile-placeholder{display:flex;height:100%;align-items:center;justify-content:center;text-align:center;padding:6px;font-size:.8rem;color:var(--muted)}.badge-video{position:absolute;right:4px;bottom:4px;padding:1px 6px;border-radius:6px;background:#000000a6;color:#fff;font-size:.8rem}.load-more{display:block;margin:24px auto 0}.viewer{margin:0 0 16px}.viewer img,.viewer video{display:block;width:100%;max-height:75vh;object-fit:contain;background:#000;border-radius:8px}.viewer figcaption{margin-top:8px;font-weight:600}.facts{display:grid;grid-template-columns:max-content 1fr;gap:6px 16px;margin:0 0 20px}.facts dt{color:var(--muted)}.facts dd{margin:0;overflow-wrap:anywhere}.dropzone{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:center;padding:24px 12px;border:2px dashed var(--border);border-radius:var(--radius);text-align:center}.dropzone.dragging{border-color:var(--accent);background:var(--bg)}.dropzone-text{flex-basis:100%;margin:0;color:var(--muted)}.uploads{list-style:none;margin:0 0 12px;padding:0}.uploads li{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;padding:10px 0;border-top:1px solid var(--border)}.uploads li:first-child{border-top:none}.upload-name{overflow-wrap:anywhere}.progress{display:flex;flex-direction:column;min-width:160px}.progress progress{width:100%;accent-color:var(--accent)}.upload-failed{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.notice-warn{color:var(--danger);font-weight:600}.totals{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;margin:0 0 16px}.total{padding:12px;border-radius:8px;background:var(--bg);border:1px solid var(--border)}.total dt{color:var(--muted);font-size:.9rem}.total dd{margin:4px 0 0;font-size:1.5rem;font-weight:700}.total dd .badge{font-size:.85rem;font-weight:400}.total-failed dd{color:var(--danger)}.steps{list-style:none;margin:0;padding:0}.steps li{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:10px 0;border-top:1px solid var(--border)}.steps li:first-child{border-top:none}
