:root{--sage:#3F4A2E;--sage-600:#59683f;--sage-50:#eef2e6;--ink:#1e241a;--muted:#5f6a56;--line:#dde3d4;--bg:#f7f8f3;--card:#fff;--warn:#b7791f;--err:#b42318;--radius:16px;--shadow:0 6px 24px rgba(30,36,26,.08)}
*{box-sizing:border-box}html{font-size:16px}
body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:var(--ink);background:var(--bg);line-height:1.5}
a{color:var(--sage-600)}
.skip{position:absolute;left:-999px;top:8px;background:#fff;padding:8px 12px;border-radius:8px}.skip:focus{left:8px;z-index:99}
.wrap{max-width:1000px;margin:0 auto;padding:0 16px}
.test-banner{background:#fff4d6;color:#5a3e00;text-align:center;padding:8px 16px;font-size:.9rem;border-bottom:1px solid #f0d58a}
.top{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}
.top .row{display:flex;align-items:center;gap:16px;min-height:64px;flex-wrap:wrap}
.row.between{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);margin-right:auto}
.brand b{display:block;font-size:1.05rem;line-height:1.1}.brand small{display:block;color:var(--sage-600);letter-spacing:.12em;font-size:.65rem;font-weight:700}
.mark{width:34px;height:34px;border-radius:10px;background:radial-gradient(circle at 35% 30%,#fff 0,#cfd9bd 35%,var(--sage) 100%);display:inline-block}
.nav{display:flex;gap:4px}.nav a{padding:8px 10px;border-radius:10px;text-decoration:none;color:var(--ink);font-weight:600}.nav a:hover{background:var(--sage-50)}
.who{color:var(--muted);font-size:.9rem;margin-right:8px}.inline{display:inline}
button.link{background:none;border:0;color:var(--sage-600);text-decoration:underline;cursor:pointer;font:inherit;padding:4px}
main{padding:28px 0 48px}
h1{font-weight:600;font-size:clamp(1.6rem,4vw,2.2rem);line-height:1.15;margin:0 0 8px}
h2{font-size:1.15rem;margin:24px 0 8px}
.lead{color:var(--muted);margin:0 0 16px;max-width:60ch}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow);margin:0 0 16px}
.grid{display:grid;gap:16px}@media(min-width:760px){.grid.two{grid-template-columns:1fr 1.4fr}}
.f{margin:0 0 14px}.f label{display:block;font-weight:600;margin:0 0 4px}.f .opt{color:var(--muted);font-weight:400;font-size:.85rem}
.f input,.f select{width:100%;font:inherit;padding:11px 12px;border:1px solid #c7cfbd;border-radius:10px;background:#fff;min-height:44px}
.f input[type=file]{padding:8px}.f.check label{display:flex;gap:8px;align-items:center;font-weight:500}.f.check input{width:auto;min-height:0}
.f input:focus,.f select:focus{outline:3px solid rgba(89,104,63,.35);border-color:var(--sage)}
.f small{display:block;color:var(--muted);margin-top:4px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 18px;border-radius:999px;background:var(--sage);color:#fff;border:0;font:inherit;font-weight:700;text-decoration:none;cursor:pointer}
.btn:hover{background:var(--sage-600)}.btn.secondary{background:#fff;color:var(--ink);border:1.5px solid #c7cfbd}.btn.secondary:hover{background:var(--sage-50)}
.btn.danger{background:#fff;color:var(--err);border:1.5px solid #e5b4b0}.btn-sm{min-height:36px;padding:6px 14px;font-size:.9rem}
.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}
.flash{background:#e9f3dc;color:#2d4a12;border:1px solid #c6dca6;padding:10px 14px;border-radius:10px}
.err{background:#fdecea;color:var(--err);border:1px solid #f3c2bd;padding:10px 14px;border-radius:10px}
.people{list-style:none;margin:0;padding:0;display:grid;gap:10px}@media(min-width:640px){.people{grid-template-columns:1fr 1fr}}
.person{display:grid;grid-template-columns:64px 1fr auto;gap:12px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:14px;padding:10px}
.person.inactive{opacity:.6}
.thumb{width:64px;height:80px;border-radius:10px;overflow:hidden;background:linear-gradient(160deg,#cfd9bd,var(--sage));display:grid;place-items:center;text-decoration:none}
.thumb img{width:100%;height:100%;object-fit:cover;display:block}.initials{color:#fff;font-weight:700;font-size:1.3rem}
.meta{display:grid;gap:2px;font-size:.95rem}.meta a{color:var(--ink);text-decoration:none}.meta span{color:var(--muted);font-size:.88rem}
.badge{display:inline-block;width:max-content;padding:1px 8px;border-radius:999px;font-size:.72rem;font-weight:700;border:1px solid var(--line);color:var(--muted)}.badge.warn{color:var(--warn);border-color:#ecd3a3;background:#fff7e6}
.moves{display:grid;gap:4px}.moves button{min-width:36px;min-height:36px;border:1px solid var(--line);background:#fff;border-radius:8px;cursor:pointer;font-size:1rem}
.empty{color:var(--muted);padding:10px}
.photo-card .preview{aspect-ratio:4/5;max-width:260px;border-radius:14px;overflow:hidden;background:var(--sage-50);display:grid;place-items:center;margin:0 0 12px}
.photo-card .preview img{width:100%;height:100%;object-fit:cover;display:block}.photo-card .preview p{color:var(--muted);padding:12px;text-align:center;font-size:.9rem}
.audit{width:100%;border-collapse:collapse;font-size:.9rem;background:#fff;border-radius:12px;overflow:hidden}.audit th,.audit td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line);vertical-align:top}
.foot{color:var(--muted);font-size:.85rem;padding:16px 0 32px}
