:root{--bg: #ffffff;--ink: #000000;--ink-2: #555555;--ink-3: #999999;--line: #000000;--line-2: #d9d9d9;--font: "Archivo", "Helvetica Neue", Helvetica, Arial, sans-serif;--sheet-w: 440px}*{box-sizing:border-box}html{background:var(--bg);color-scheme:light;-webkit-text-size-adjust:100%}body{margin:0;font-family:var(--font);color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;min-height:100dvh;font-size:15px;line-height:1.4}main{max-width:640px;margin:0 auto;padding:0 0 56px}button,input,textarea{font:inherit;color:inherit}.hero{padding:clamp(32px,8vw,56px) 20px 28px;border-bottom:1px solid var(--line);margin:0 16px;padding-inline:0}.hero h1{font-weight:700;font-size:clamp(36px,10vw,60px);line-height:1;letter-spacing:-.035em;margin:0 0 14px;text-wrap:balance}.hero p{margin:0;font-size:16px;line-height:1.4;color:var(--ink-2);max-width:36ch}.hero .how{margin-top:10px;font-size:14px;color:var(--ink-3)}.muted.small{font-size:13px;margin-bottom:4px}.hero .count{margin-top:16px;font-size:12px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--ink);display:flex;gap:12px;align-items:center;flex-wrap:wrap}.chip{border:1px solid var(--line);background:transparent;padding:3px 8px;font-size:11px;letter-spacing:.08em;text-transform:uppercase;cursor:pointer}.month{padding:28px 16px 0}.month h2{font-weight:700;font-size:22px;letter-spacing:-.02em;margin:0 0 12px;display:flex;align-items:baseline;gap:8px}.month h2 .year{font-size:12px;font-weight:500;letter-spacing:.08em;color:var(--ink-3)}.weekdays{display:grid;grid-template-columns:repeat(7,1fr);margin-bottom:4px}.weekdays span{text-align:left;padding-left:5px;font-size:10px;font-weight:600;letter-spacing:.1em;color:var(--ink-3)}.grid{display:grid;grid-template-columns:repeat(7,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}.cell{position:relative;aspect-ratio:1;border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--bg);padding:0;overflow:hidden;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background .1s ease}.cell.pad{pointer-events:none;background:#f7f7f7}.cell:not(.pad):not(.filled):hover{background:#f2f2f2}.cell:not(.pad):active{background:#e6e6e6}.cell.past{opacity:.3}.cell .num{position:absolute;top:4px;left:5px;font-size:11px;font-weight:500;font-variant-numeric:tabular-nums;color:var(--ink);z-index:2;line-height:1}.cell.filled .num{background:var(--bg);padding:2px 3px}.cell.today .num{background:var(--ink);color:var(--bg);padding:2px 3px}.mosaic{position:absolute;inset:0;display:grid;gap:1px;background:var(--ink)}.mosaic.n1{grid-template-columns:1fr}.mosaic.n2{grid-template-columns:1fr 1fr}.mosaic.n3,.mosaic.n4{grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr}.mosaic.n3 .tile:first-child{grid-row:1 / span 2}.tile{position:relative;overflow:hidden;background:#eee}.tile img{display:block;width:100%;height:100%;object-fit:cover}.tile .more{position:absolute;inset:0;display:grid;place-items:center;background:#0009;color:#fff;font-size:11px;font-weight:700}footer{padding:24px 16px 0;color:var(--ink-3);font-size:13px}footer p{margin:0}.backdrop{position:fixed;inset:0;z-index:10;background:#00000080}.sheet{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:11;width:min(calc(100% - 32px),var(--sheet-w));max-height:min(86dvh,calc(100% - 32px));overflow-y:auto;background:var(--bg);border:1px solid var(--line);padding:22px 20px 24px;animation:pop-in .18s ease-out both}.sheet .handle{display:none}.sheet h3{font-weight:700;font-size:24px;letter-spacing:-.025em;line-height:1.05;margin:0 0 12px}.muted{color:var(--ink-2);margin:0 0 16px;font-size:15px}.claims{list-style:none;margin:0 0 16px;padding:0;border-top:1px solid var(--line-2)}.claims li{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--line-2)}.claims img{width:48px;height:48px;object-fit:cover;flex:none;background:#eee}.claims .who{display:flex;flex-direction:column;gap:1px;min-width:0;flex:1}.claims .who b{font-weight:600}.claims .who span{color:var(--ink-2);font-size:14px}.remove{border:1px solid var(--line);background:transparent;padding:4px 8px;font-size:12px;cursor:pointer}.btn{display:block;width:100%;padding:14px 18px;border:1px solid var(--ink);background:var(--ink);color:var(--bg);font-weight:600;font-size:15px;text-align:center;text-decoration:none;cursor:pointer;margin-top:8px}.btn:hover{background:#222}.btn.ghost{background:transparent;color:var(--ink)}.btn.ghost:hover{background:#f2f2f2}.btn:disabled{opacity:.4;cursor:default}.link{display:inline-block;background:none;border:0;padding:10px 4px;color:var(--ink-2);text-decoration:underline;text-underline-offset:3px;cursor:pointer;font-size:14px}.link.center{display:block;width:100%;text-align:center}.claim-form{display:flex;flex-direction:column;gap:14px}.field{display:flex;flex-direction:column;gap:6px}.field span{font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase}.field input{padding:12px;border:1px solid var(--ink);border-radius:0;background:var(--bg);font-size:16px;outline:none}.field input:focus{box-shadow:inset 0 0 0 1px var(--ink)}.field input::placeholder{color:var(--ink-3)}.check{display:flex;gap:10px;align-items:flex-start;font-size:14px;line-height:1.35}.check input{margin:2px 0 0;accent-color:var(--ink);flex:none}.check small{color:var(--ink-3)}.photo-btn{display:flex;align-items:center;justify-content:center;height:120px;border:1px dashed var(--ink);background:var(--bg);font-size:16px;font-weight:600;cursor:pointer}.photo-btn:hover{background:#f2f2f2}.preview{display:flex;align-items:center;gap:16px}.preview img{width:120px;height:120px;object-fit:cover;border:1px solid var(--ink)}.error{margin:0;color:var(--ink);font-size:14px;font-weight:600}.done{display:flex;flex-direction:column;align-items:center;text-align:center;padding-top:8px}.done h3{margin-top:20px}.done .btn,.done .link.center{width:100%}.done .photo img{display:block;width:160px;height:160px;object-fit:cover;border:1px solid var(--ink)}@keyframes pop-in{0%{transform:translate(-50%,-50%) scale(.97);opacity:0}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}@media(min-width:640px){.hero,.month,footer{margin-inline:0;padding-inline:24px}.hero{margin-inline:24px;padding-inline:0}.cell .num{font-size:12px}.sheet{padding:24px}}.cell.blocked{background:repeating-linear-gradient(-45deg,transparent 0 5px,var(--line-2) 5px 6px);cursor:default}.cell.blocked:not(.pad):hover{background:repeating-linear-gradient(-45deg,transparent 0 5px,var(--line-2) 5px 6px)}.cell.blocked .num{color:var(--ink-3);background:transparent}.cell.blocked.today .num{background:var(--ink);color:var(--bg)}.cell .tag{position:absolute;left:0;right:0;bottom:0;z-index:2;font-size:7px;font-weight:700;letter-spacing:.1em;line-height:1;padding:3px 0 2px;border-top:1px solid var(--ink);background:var(--bg);color:var(--ink);text-align:center}.legend{display:flex;align-items:center;gap:6px 8px;flex-wrap:wrap;margin-bottom:8px!important}.legend .key{display:inline-block;width:14px;height:14px;border:1px solid var(--ink);vertical-align:middle;margin-left:8px}.legend .key:first-child{margin-left:0}.legend .key.hatch{background:repeating-linear-gradient(-45deg,transparent 0 3px,var(--line-2) 3px 4px)}.legend .key.remote{width:auto;height:auto;font-size:8px;font-weight:700;letter-spacing:.1em;padding:2px 4px;color:var(--ink)}.notice{margin:0 0 14px;padding:10px 12px;border:1px solid var(--ink);font-size:14px}.status{border:1px solid var(--line-2);padding:12px;margin-bottom:16px;display:flex;flex-direction:column;gap:10px}.status-row{display:flex;flex-direction:column;gap:6px}.status-label{font-size:10px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2)}.seg{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--ink)}.seg button{border:0;border-right:1px solid var(--ink);background:var(--bg);padding:9px 4px;font-size:13px;font-weight:500;cursor:pointer}.seg button:last-child{border-right:0}.seg button.on{background:var(--ink);color:var(--bg)}.seg button:disabled{opacity:.5}.status input[type=date]{padding:8px 10px;border:1px solid var(--ink);border-radius:0;background:var(--bg);font-size:14px;width:100%}.cell.need .help-tag{position:absolute;left:0;right:0;bottom:0;z-index:2;background:var(--ink);color:var(--bg);font-size:8px;font-weight:700;letter-spacing:.12em;line-height:1;padding:3px 0 2px;text-align:center}.cell.need.remote .tag{bottom:12px}.legend .key.help{width:auto;height:auto;font-size:8px;font-weight:700;letter-spacing:.12em;padding:2px 4px;background:var(--ink);color:var(--bg)}.need{margin:0 0 14px;padding:12px;background:var(--ink);color:var(--bg)}.need-label{display:block;font-size:10px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;opacity:.7;margin-bottom:4px}.need b{display:block;font-size:17px;font-weight:700;letter-spacing:-.01em}.need p{margin:6px 0 0;font-size:14px;line-height:1.4;opacity:.9;white-space:pre-wrap}.status input[type=text],.status input:not([type]),.status textarea{padding:8px 10px;border:1px solid var(--ink);border-radius:0;background:var(--bg);font-size:14px;width:100%;resize:vertical;outline:none}.status .row{display:flex;gap:8px}.btn.small{padding:9px 12px;font-size:13px;margin-top:0;width:auto;flex:1}.btn.copy{width:100%;margin:-6px 0 16px}.requests{margin:24px 16px 0;border:1px solid var(--ink)}.requests h2{margin:0;padding:10px 12px;font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;background:var(--ink);color:var(--bg)}.requests ul{list-style:none;margin:0;padding:0}.requests li+li{border-top:1px solid var(--line-2)}.requests button{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:baseline;width:100%;padding:12px;border:0;background:var(--bg);text-align:left;cursor:pointer}.requests button:hover{background:#f2f2f2}.req-day{font-size:12px;font-weight:600;white-space:nowrap;font-variant-numeric:tabular-nums}.req-title{font-weight:600;font-size:15px}.req-count{font-size:12px;color:var(--ink-2);white-space:nowrap}.chips{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--ink)}.chips button{border:0;border-right:1px solid var(--ink);background:var(--bg);padding:11px 4px;font-size:14px;font-weight:500;cursor:pointer}.chips button:last-child{border-right:0}.chips button.on{background:var(--ink);color:var(--bg)}.claims .who em{font-style:normal;font-weight:600;color:var(--ink)}@media(min-width:640px){.requests{margin-inline:24px}.cell .tag{font-size:8px}}.seg.seg7{grid-template-columns:repeat(7,1fr)}.seg.seg7 button{padding-inline:0}.chips button:disabled{color:var(--ink-3);background:#f2f2f2;cursor:default;text-decoration:line-through}
