:root{color:#1a1a1a;background:#f6f4ef;font-family:Segoe UI,system-ui,sans-serif;line-height:1.45}body{margin:0}.page{max-width:42rem;margin:0 auto;padding:1.25rem}.center{min-height:100vh;display:grid;place-content:center;gap:.75rem;text-align:center}.header{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:1rem}.session-header{align-items:flex-start}.session-header h1{margin:.15rem 0 0;border-bottom:3px solid #c8d96f;display:inline-block;padding-bottom:.15rem}.task-count{margin:0;font-size:.9rem;color:#666}.muted{color:#666}.error{color:#b00020}.filters{display:grid;gap:.75rem;margin-bottom:1rem}.date-filter-input{flex:1;max-width:12rem}.date-filter-wrap{position:relative;max-width:12rem}.date-filter-wrap .date-filter-input{max-width:none;width:100%}.month-grid-wrap{background:#fff;border:1px solid #e2ddd3;border-radius:.75rem;padding:.75rem;margin-bottom:1rem}.month-grid-popover{position:absolute;top:calc(100% + .35rem);left:0;z-index:20;width:min(20rem,calc(100vw - 2rem));margin-bottom:0;box-shadow:0 8px 24px #0000001f}.month-nav{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.month-nav-btn{background:#eee;color:#333;width:2rem;height:2rem;border-radius:999px;padding:0;line-height:1}.month-dow,.month-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.25rem;text-align:center}.month-dow{font-size:.75rem;color:#666;margin-bottom:.25rem}.month-day{background:transparent;color:inherit;border:0;border-radius:.4rem;padding:.45rem 0;min-height:2.25rem}.month-day.empty{pointer-events:none}.month-day.has-hw{font-weight:700;box-shadow:inset 0 -2px #0b6e4f}.month-day.selected{background:#f5d547;color:#111}.month-actions{display:flex;justify-content:space-between;margin-top:.5rem;padding-top:.5rem;border-top:1px solid #eee}.session-btn{white-space:nowrap}.session-btn.start{background:#c62828}.session-btn.in-progress{background:#ef6c00}.session-btn.completed{background:#2e7d32}.claim-btn{background:#c62828}.claim-btn.claimed{background:#ef6c00}.claim-btn.awarded{background:#2e7d32}.list{list-style:none;padding:0;margin:0;display:grid;gap:.75rem}.card{background:#fff;border:1px solid #e2ddd3;border-radius:.75rem;padding:.9rem 1rem}.card-top{display:flex;justify-content:space-between;gap:.5rem;margin-bottom:.35rem}.badge{font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:#555}.field{display:grid;gap:.35rem;margin-bottom:.75rem}.form h2,.day-section h2{margin:0 0 .75rem;font-size:1.05rem}button,input,select,textarea{font:inherit}button{border:0;background:#0b6e4f;color:#fff;border-radius:.5rem;padding:.45rem .85rem;cursor:pointer}button:disabled{opacity:.85;cursor:default}button.danger{background:#8b1e1e}button.linkish{background:transparent;color:#0b6e4f;padding:0}input,select,textarea{border:1px solid #ccc;border-radius:.45rem;padding:.45rem .55rem;background:#fff}.day-section{margin-top:1.5rem}.empty-card{background:#fff;border:1px solid #e2ddd3;border-radius:.75rem;padding:1.1rem 1.2rem}.empty-card h2{margin:0 0 .5rem;font-size:1.15rem}.empty-card p{margin:0 0 .75rem}.empty-steps{margin:0 0 1rem;padding-left:1.25rem;display:grid;gap:.45rem}
