:root{--ink:#292923;--muted:#77736b;--paper:#f7f5f0;--card:#fffefa;--line:#e5e0d7;--green:#5e965c;--pale:#e8f0e5}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.45 system-ui,sans-serif}header{background:#292923;color:#fff}.brand{max-width:1050px;margin:auto;padding:13px 20px;display:flex;align-items:center;gap:12px;font-weight:900;letter-spacing:1px;white-space:nowrap}.brand img{width:56px;height:56px;object-fit:contain}.brand span{display:block;color:#d8c99f;font-size:clamp(6px,1vw,10px);letter-spacing:.6px}main{max-width:1050px;margin:28px auto;padding:0 16px 45px}.hidden{display:none!important}h1{font-size:clamp(27px,4vw,36px);margin:4px 0}h2{margin:0 0 5px;font-size:21px}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:850;color:var(--muted);margin:0 0 5px}.muted{color:var(--muted);margin:3px 0}.small{font-size:12px}.card,.auth{background:var(--card);border:1px solid var(--line);border-radius:15px;padding:18px;margin:14px 0;box-shadow:0 2px 9px #332b1708}.auth{max-width:440px;margin:55px auto;padding:25px}label{display:block;font-size:13px;font-weight:700;margin:13px 0}input{display:block;width:100%;padding:12px;border:1px solid var(--line);border-radius:9px;margin-top:6px;font:inherit;background:white}button{font:inherit;cursor:pointer;border-radius:9px;padding:10px 14px;font-weight:750;border:1px solid var(--line)}.primary{background:#292923;color:white;border-color:#292923}.secondary{background:white}.full{width:100%}.link{border:0;background:none;color:var(--muted)}nav{display:flex;gap:18px;border-bottom:1px solid var(--line);margin:20px 0 12px}nav button{border:0;background:none;color:var(--muted)}nav button.active{border-bottom:2px solid var(--green);color:var(--ink)}.msg{font-size:13px;color:#8a4b2b;min-height:18px}.welcome,.toolbar,.calhead,.between,.monthnav{display:flex;justify-content:space-between;align-items:center;gap:12px}.toolbar{margin-top:22px}.members{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:9px}.member{border:1px solid var(--line);border-radius:11px;background:white;padding:12px;display:flex;align-items:center;justify-content:space-between;gap:8px}.member.selected{background:#f1f5ee;border-color:#9dbb96}.membername{background:none;border:0;text-align:left;padding:0}.membername strong,.membername span{display:block}.membername span{font-size:11px;color:var(--muted)}.tools{display:flex;gap:4px}.tools button{font-size:11px;padding:6px;background:white}.calhead{align-items:flex-start}.monthnav{justify-content:center;margin:18px}.monthnav h3{min-width:170px;text-align:center}.monthnav button{font-size:20px;padding:3px 13px;background:white}.calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.weekday{text-align:center;color:var(--muted);font-size:11px;font-weight:750;padding:4px}.date{min-height:58px;text-align:left;background:white;border:1px solid var(--line);padding:5px}.date.done{background:var(--pale);border-color:#a9c8a2}.date:disabled{opacity:.3}.date span{display:block}.hammer{font-size:19px}.heat-scroll{overflow-x:auto;padding:8px 0}.months{display:grid;grid-template-columns:repeat(12,1fr);gap:3px;min-width:570px;margin-left:25px;font-size:10px;color:var(--muted)}.heat{display:grid;grid-auto-flow:column;grid-template-rows:repeat(7,11px);grid-auto-columns:11px;gap:3px;min-width:max-content}.sq{background:#eeece6;width:11px;height:11px;border-radius:3px}.sq.done{background:var(--green)}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:15px}dialog{border:1px solid var(--line);border-radius:14px;width:min(400px,95vw)}dialog::backdrop{background:#0008}.toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:#292923;color:white;padding:10px 15px;border-radius:9px;opacity:0;transition:.2s}.toast.show{opacity:1}.notice{background:#fff1d6;padding:12px;border-radius:10px}footer{text-align:center;color:var(--muted);font-size:10px;letter-spacing:1px;padding:20px}@media(max-width:600px){.brand{padding:11px 13px;gap:8px;font-size:13px}.brand img{width:44px;height:44px}.brand span{font-size:6px;letter-spacing:.2px}main{margin:18px auto;padding:0 11px 35px}.card{padding:14px}.date{min-height:48px}.auth{margin:25px auto;padding:19px}.calhead{display:block}.calhead button{margin-top:10px}}