:root{color-scheme:light;--bg:#f6f7f5;--card:#fff;--ink:#1d2421;--mute:#68716c;--accent:#2f6b4f;--err:#b3261e;--line:#e1e5e2}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.5 system-ui,sans-serif}
main{max-width:720px;margin:0 auto;padding:24px 16px 48px}
h1{margin:0 0 4px}h2{margin:32px 0 12px}h2 small{color:var(--mute);font-weight:400}
.sub{color:var(--mute);margin-top:0}
.tabs{display:flex;gap:8px;margin:16px 0}
.tabs a{padding:6px 14px;border:1px solid var(--line);border-radius:999px;text-decoration:none;color:var(--ink);background:var(--card)}
.tabs a small{opacity:.7;margin-left:4px}
.tabs a.active{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}
a{color:var(--accent)}
.event{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin-bottom:12px}
.event.full{opacity:.7}.event.past{opacity:.5}
.head{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;align-items:center}
.badge{background:var(--accent);color:#fff;border-radius:999px;padding:2px 10px;font-size:.85rem}
.full .badge{background:var(--mute)}
.note{margin:6px 0 0;color:var(--mute);font-size:.95rem}
form.book,form.add{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
form.add{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px 16px}
form.add label{display:flex;flex-direction:column;font-size:.85rem;color:var(--mute);gap:2px;flex:1 1 140px}
form.add label.wide{flex-basis:100%}
input,select{font:inherit;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--ink);min-width:0}
form.book input{flex:1 1 160px}
button{font:inherit;padding:8px 16px;border:0;border-radius:8px;background:var(--accent);color:#fff;cursor:pointer}
button.link{background:none;color:var(--accent);padding:0;text-decoration:underline}
button.danger{color:var(--err)}
.hp{position:absolute;left:-9999px}
.flash{padding:10px 14px;border-radius:8px;border:1px solid var(--line);background:var(--card)}
.flash.err{border-color:var(--err);color:var(--err)}
.mine{margin-top:8px;font-size:.95rem}
.people{margin:8px 0;padding-left:20px}
form.inline{display:inline}.num{width:70px;padding:4px 6px}
.empty{color:var(--mute)}
footer{margin-top:40px;font-size:.9rem;color:var(--mute)}
form.logout{margin:8px 0}
h3{margin:20px 0 8px;font-size:1rem}
.topic{margin:6px 0 0;font-size:.95rem}
.empty{color:var(--mute)}
form.unit{margin:10px 0 6px;font-size:.95rem}
form.unit select{max-width:100%}
form.book .check{display:flex;gap:8px;align-items:flex-start;flex:1 1 100%;font-size:.9rem;color:var(--mute)}
form.book .check input{flex:0 0 auto;width:auto;margin-top:4px}
form.mat{display:flex;gap:8px;flex-wrap:wrap;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin-bottom:8px}
form.mat input{flex:1 1 180px}
.matrow{display:flex;gap:16px;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:10px 14px;margin-bottom:8px}
.matrow .t{flex:1;min-width:0;overflow-wrap:anywhere}
.people li.empty{list-style:none;margin-left:-20px}
