*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:#f5f6f4;color:#1c1c1c}.app{max-width:640px;margin:0 auto;padding:1rem 1rem 5rem}header h1{font-size:1.4rem;margin-bottom:.25rem}.banner{color:#b3401d;font-weight:600;margin:0 0 1rem}.month-nav{display:flex;align-items:center;justify-content:center;gap:1.5rem;font-weight:600;margin-bottom:.75rem}.month-nav button{background:none;border:none;font-size:1.4rem;cursor:pointer}.calendar-header,.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.weekday{text-align:center;font-size:.7rem;color:#888;padding:4px 0}.cell{min-height:4.5rem;border:1px solid #e2e2e2;border-left:3px solid #ddd;border-radius:6px;background:#fff;padding:4px;display:flex;flex-direction:column;align-items:flex-start;gap:2px;cursor:pointer;font-size:.7rem;text-align:left}.cell.empty{visibility:hidden}.cell.today{outline:2px solid #2f6f4f}.cell.unassigned{background:#fdecea}.cell.conflict{background:#ffdada}.cell.past{opacity:.45}.cell.selected{outline:2px solid #3a6ea5;background:#eaf1fa}.cell{-webkit-user-select:none;user-select:none}.day-num{font-weight:700;font-size:.85rem}.assignee{font-weight:600}.assignee.tentative{opacity:.6;font-style:italic}.warn{color:#b3401d;font-weight:600}.unavailable-btn{position:fixed;bottom:1rem;left:50%;transform:translate(-50%);width:calc(100% - 2rem);max-width:600px}.btn{border:none;border-radius:8px;padding:.75rem 1rem;font-size:1rem;cursor:pointer}.btn.primary{background:#2f6f4f;color:#fff}.btn.primary:disabled{opacity:.5}.btn.secondary{background:#eee;color:#333;margin-right:.5rem}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;padding:1.5rem;z-index:10}.sheet{background:#fff;width:100%;max-width:460px;border-radius:16px;padding:1.25rem;max-height:80vh;overflow-y:auto;box-shadow:0 20px 60px #00000040}.sheet h3{margin-top:0}.sheet-range{color:#666;font-size:.85rem;margin-top:-.5rem}.sheet label{display:block;font-size:.8rem;color:#666;margin:.75rem 0 .35rem}.sheet input[type=date],.sheet input[type=text]{width:100%;padding:.5rem;border:1px solid #ddd;border-radius:6px;font-size:1rem}.pill-row{display:flex;flex-wrap:wrap;gap:.5rem}.pill{border:2px solid #ddd;background:#fff;border-radius:999px;padding:.4rem .9rem;cursor:pointer;font-size:.9rem}.pill.active{background:#2f6f4f;border-color:#2f6f4f;color:#fff}.sheet-actions{display:flex;justify-content:flex-end;margin-top:1.25rem}
