:root{--paper:#f5f6f8;--card:#fff;--ink:#1b2430;--muted:#66717f;--rule:#d9dee5;--accent:#2f4b8f;--accent-ink:#fff;--danger:#b3372f;--ok:#256b45;--okbg:#e6f3ec;--errbg:#fbe9e7}
@media (prefers-color-scheme:dark){:root{--paper:#14181e;--card:#1c222a;--ink:#e7ebf0;--muted:#97a2b0;--rule:#2f3844;--accent:#8fa9e8;--accent-ink:#10141a;--danger:#f08a80;--ok:#7fd1a2;--okbg:#17302a;--errbg:#3a1f1c}}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.55 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
a{color:var(--accent)}
main{max-width:820px;margin:0 auto;padding:1.5rem 1rem 4rem}
h1,h2{font-family:Georgia,"Times New Roman",serif;font-weight:600;line-height:1.2}
h1{font-size:1.9rem;margin:.2rem 0 .4rem}
h2{font-size:1.2rem;margin:2.2rem 0 .8rem;padding-bottom:.4rem;border-bottom:1px solid var(--rule)}
.muted{color:var(--muted)}
.top{display:flex;align-items:center;gap:1.5rem;padding:.7rem 1rem;background:var(--card);border-bottom:1px solid var(--rule)}
.top .brand{font-family:Georgia,serif;font-weight:700;color:var(--ink);text-decoration:none;font-size:1.1rem}
.top nav{display:flex;gap:1rem;flex:1}
.top nav a{color:var(--muted);text-decoration:none;padding:.2rem 0;border-bottom:2px solid transparent}
.top nav a[aria-current]{color:var(--ink);border-color:var(--accent)}
.top form{margin:0}
.link{background:none;border:0;color:var(--muted);cursor:pointer;font:inherit;padding:0}
.bar{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}
.btn{display:inline-block;padding:.45rem .9rem;border:1px solid var(--rule);border-radius:6px;background:var(--card);color:var(--ink);font:inherit;text-decoration:none;cursor:pointer;list-style:none}
.btn:hover{border-color:var(--accent)}
.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.btn.danger{background:var(--danger);border-color:var(--danger);color:#fff}
.btn.danger-outline{color:var(--danger)}
summary.btn::-webkit-details-marker{display:none}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.flash{padding:.6rem .9rem;border-radius:6px;background:var(--okbg);color:var(--ok);margin:0 0 1rem}
.flash.error,.err{background:var(--errbg);color:var(--danger)}
.err{display:block;background:none;font-size:.9rem;margin-top:.2rem}
form label{display:block;margin:0 0 1rem;font-weight:500}
input,select,textarea{display:block;width:100%;margin-top:.25rem;padding:.5rem .6rem;border:1px solid var(--rule);border-radius:6px;background:var(--card);color:var(--ink);font:inherit}
textarea{resize:vertical}
.narrow{max-width:460px}
.actions{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}
.filters{display:flex;gap:.5rem;margin:1.2rem 0;flex-wrap:wrap;align-items:center}
.filters input{flex:1 1 200px;margin:0;width:auto}.filters select{width:auto;margin:0}
.list{width:100%;border-collapse:collapse;background:var(--card);border:1px solid var(--rule);border-radius:6px}
.list th{text-align:left;font-weight:500;color:var(--muted);font-size:.9rem}
.list th,.list td{padding:.65rem .9rem;border-bottom:1px solid var(--rule)}
.list tr:last-child td{border-bottom:0}
.list td a{text-decoration:none}
.rows{list-style:none;margin:1.2rem 0;padding:0;background:var(--card);border:1px solid var(--rule);border-radius:6px}
.rows li{display:flex;gap:1rem;align-items:center;padding:.8rem .9rem;border-bottom:1px solid var(--rule)}
.rows li:last-child{border:0}.rows li>div{flex:1}.rows a{text-decoration:none}
.row-actions{display:inline-flex;gap:.8rem;font-size:.9rem;white-space:nowrap}
.row-actions a{color:var(--muted)}.row-actions a.danger-link:hover{color:var(--danger)}
.empty{padding:2rem 1rem;text-align:center;color:var(--muted)}
.back{margin:0 0 .5rem}.back a{color:var(--muted);text-decoration:none}
.profile-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;flex-wrap:wrap}
.profile-head p{margin:0}
.data{display:grid;grid-template-columns:8rem 1fr;gap:.45rem 1rem;margin:0}
.data dt{color:var(--muted)}.data dd{margin:0;overflow-wrap:anywhere}
.obs{list-style:none;margin:0 0 .8rem;padding:0}
.obs li{display:flex;justify-content:space-between;gap:1rem;padding:.4rem 0 .4rem .9rem;border-left:3px solid var(--accent)}
.obs li+li{margin-top:.3rem}
.text{white-space:pre-wrap;overflow-wrap:anywhere}
blockquote.text{margin:1rem 0;padding:.6rem .9rem;border-left:3px solid var(--rule);color:var(--muted)}
details.add{margin:.4rem 0 1rem}
details.add form{margin-top:.7rem}
details.add textarea{margin-bottom:.6rem}
.timeline{list-style:none;margin:1.2rem 0 0;padding:0 0 0 1.2rem;border-left:2px solid var(--rule)}
.timeline li{position:relative;background:var(--card);border:1px solid var(--rule);border-radius:6px;padding:.8rem 1rem;margin-bottom:.9rem}
.timeline li::before{content:"";position:absolute;left:calc(-1.2rem - 6px);top:1.1rem;width:10px;height:10px;border-radius:50%;background:var(--accent);border:2px solid var(--paper)}
.timeline time{display:block;color:var(--muted);font-size:.9rem;margin-bottom:.3rem}
.timeline .row-actions{display:flex;margin-top:.5rem}
@media (max-width:520px){.data{grid-template-columns:1fr}.data dt{margin-top:.5rem}.top{gap:.8rem}}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
