:root{--tb-blue:#0062fd;--tb-blue-deep:#071d8e;--tb-blue-soft:#8ebaff;--tb-green:#00dc84;--tb-green-pale:#f8fffd;--tb-white:#fff;--tb-grey-01:#f3f3f3;--tb-grey-02:#e7e7e8;--tb-grey-03:#88898c;--tb-ink:#242527;--font:"Red Hat Display", "Helvetica Neue", Helvetica, Arial, sans-serif;--mono:"Red Hat Mono", ui-monospace, monospace;--avail-wash:#f1fdf8;--feast-wash:#eaf1ff}*{box-sizing:border-box}html,body{margin:0}body{font-family:var(--font);color:var(--tb-ink);background:var(--tb-white);-webkit-font-smoothing:antialiased;line-height:1.4}a{color:var(--tb-blue)}a:hover{color:var(--tb-blue-deep)}.wrap{max-width:780px;margin:0 auto;padding:64px 32px 80px}.brand{align-items:center;gap:12px;margin-bottom:44px;display:flex}.brand svg{width:auto;height:34px;display:block}.brand span{letter-spacing:-.01em;font-size:18px;font-weight:700}.page-title{letter-spacing:-.02em;margin:0 0 14px;font-size:44px;font-weight:700;line-height:1.08}.page-sub{color:var(--tb-grey-03);max-width:46ch;margin:0;font-size:19px}.monthbar{justify-content:space-between;align-items:center;margin:48px 0 18px;display:flex}.month-name{letter-spacing:-.01em;font-size:26px;font-weight:600}.nav{gap:8px;display:flex}.nav button{border:1.5px solid var(--tb-grey-02);background:var(--tb-white);width:44px;height:44px;color:var(--tb-ink);cursor:pointer;border-radius:999px;justify-content:center;align-items:center;transition:background .15s,border-color .15s;display:inline-flex}.nav button:hover{background:var(--tb-grey-01);border-color:var(--tb-grey-03)}.nav button:focus-visible{border-color:var(--tb-blue);outline:none;box-shadow:0 0 0 4px #0062fd33}.nav button svg{width:18px;height:18px}.dow{grid-template-columns:repeat(7,1fr);gap:6px;margin-bottom:6px;display:grid}.dow span{text-align:center;letter-spacing:.06em;text-transform:uppercase;color:var(--tb-grey-03);padding:2px 0;font-size:12px;font-weight:700}.grid{grid-template-columns:repeat(7,1fr);gap:6px;display:grid}.cell{aspect-ratio:1/1.04;background:var(--tb-grey-01);text-align:center;font-family:var(--font);cursor:default;border:1.5px solid #0000;border-radius:14px;flex-direction:column;align-items:center;padding:8px 6px 6px;transition:transform .12s,box-shadow .12s;display:flex;position:relative}.cell.blank{pointer-events:none;background:0 0;border:none}button.cell{cursor:pointer}button.cell:focus-visible{border-color:var(--tb-blue);outline:none;box-shadow:0 0 0 4px #0062fd33}button.cell:hover{transform:translateY(-1px);box-shadow:0 6px 16px -8px #24252747}.num{font-family:var(--mono);font-size:16px;font-weight:600;line-height:1}.cell .icon{opacity:.9;width:16px;height:16px;margin-top:auto}.reason{letter-spacing:-.01em;text-wrap:balance;margin-top:3px;font-size:10.5px;font-weight:600;line-height:1.12}.cell.avail{background:var(--avail-wash);border-color:#e1f6ec}.cell.avail .num{color:var(--tb-ink)}.cell.avail .dot{background:var(--tb-green);opacity:.9;border-radius:50%;width:5px;height:5px;margin-top:auto}.cell.unavail{background:var(--tb-grey-01);border-color:var(--tb-grey-02)}.cell.unavail .num,.cell.unavail .icon,.cell.unavail .reason{color:var(--tb-grey-03)}.cell.feast{background:var(--feast-wash);border-color:#d5e4ff}.cell.feast .num{color:var(--tb-blue-deep)}.cell.feast .icon{color:var(--tb-blue)}.cell.feast .reason{color:var(--tb-blue-deep)}.cell.today{box-shadow:inset 0 0 0 2px var(--tb-blue)}button.cell.today:hover{box-shadow:inset 0 0 0 2px var(--tb-blue), 0 6px 16px -8px #24252747}button.cell.today:focus-visible{box-shadow:inset 0 0 0 2px var(--tb-blue), 0 0 0 4px #0062fd33}.cell.run{border-radius:14px}.cell.run-start{border-top-right-radius:4px;border-bottom-right-radius:4px}.cell.run-inner{border-radius:4px}.cell.run-end{border-top-left-radius:4px;border-bottom-left-radius:4px}.cell.run:before{content:"";background:var(--tb-blue);opacity:.85;height:3px;position:absolute;top:6px;left:0;right:0}.cell.run-start:before{border-radius:2px 0 0 2px;left:6px}.cell.run-end:before{border-radius:0 2px 2px 0;right:6px}.cell.run-inner .reason,.cell.run-end .reason,.cell.run-inner .icon,.cell.run-end .icon{visibility:hidden}.detail{border:1.5px solid var(--tb-grey-02);background:var(--tb-white);border-radius:16px;align-items:center;gap:14px;min-height:52px;margin-top:20px;padding:14px 20px;display:flex}.detail .swatch{border-radius:8px;flex:none;justify-content:center;align-items:center;width:26px;height:26px;display:inline-flex}.detail .swatch.avail{background:var(--avail-wash);border:1.5px solid #e1f6ec}.detail .swatch.unavail{background:var(--tb-grey-01);border:1.5px solid var(--tb-grey-02);color:var(--tb-grey-03)}.detail .swatch.feast{background:var(--feast-wash);color:var(--tb-blue);border:1.5px solid #d5e4ff}.detail .swatch svg{width:15px;height:15px}.detail .swatch .dot.dot-lg{background:var(--tb-green);border-radius:50%;width:7px;height:7px;margin:0}.detail .dtxt{font-size:15px}.detail .dtxt b{font-weight:700}.detail .dtxt .muted{color:var(--tb-grey-03)}.legend{border-top:1.5px solid var(--tb-grey-02);flex-wrap:wrap;gap:10px 22px;margin-top:26px;padding-top:24px;display:flex}.legend .item{color:var(--tb-ink);align-items:center;gap:9px;font-size:14px;display:flex}.legend .key{border-radius:7px;flex:none;justify-content:center;align-items:center;width:24px;height:24px;display:inline-flex}.legend .key.avail{background:var(--avail-wash);border:1.5px solid #e1f6ec}.legend .key.avail .dot{background:var(--tb-green);border-radius:50%;width:6px;height:6px}.legend .key.grey{background:var(--tb-grey-01);border:1.5px solid var(--tb-grey-02);color:var(--tb-grey-03)}.legend .key.feast{background:var(--feast-wash);color:var(--tb-blue);border:1.5px solid #d5e4ff}.legend .key svg{width:14px;height:14px}.cta-wrap{border-top:1.5px solid var(--tb-grey-02);text-align:center;margin-top:44px;padding-top:36px}.cta-wrap p{color:var(--tb-grey-03);margin:0 0 20px;font-size:17px}.cta-row{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.btn{height:54px;font-family:var(--font);cursor:pointer;border:2px solid #0000;border-radius:999px;align-items:center;gap:10px;padding:0 28px;font-size:16px;font-weight:700;text-decoration:none;transition:background .18s,color .18s,box-shadow .18s;display:inline-flex}.btn svg{width:18px;height:18px}.btn.primary{background:var(--tb-blue);color:#fff}.btn.primary:hover{background:var(--tb-blue-deep);box-shadow:0 6px 16px #0062fd47}.btn.ghost{color:var(--tb-blue);border-color:var(--tb-grey-02);background:0 0}.btn.ghost:hover{border-color:var(--tb-blue);background:var(--avail-wash)}.btn:focus-visible{outline:none;box-shadow:0 0 0 4px #0062fd33}.cta-wrap p.cta-fallback{color:var(--tb-grey-03);margin:20px 0 0;font-size:14px}.cta-wrap p.cta-fallback a{color:var(--tb-ink);text-underline-offset:3px;text-decoration:underline;-webkit-text-decoration-color:var(--tb-grey-02);text-decoration-color:var(--tb-grey-02)}.cta-wrap p.cta-fallback a:hover{color:var(--tb-blue);-webkit-text-decoration-color:var(--tb-blue);text-decoration-color:var(--tb-blue)}.foot{text-align:center;color:var(--tb-grey-03);margin-top:56px;font-size:13px}.foot a{color:var(--tb-grey-03);text-underline-offset:2px;text-decoration:underline}.foot a:hover{color:var(--tb-ink)}@media (width<=600px){.wrap{padding:40px 20px 64px}.cta-row{flex-direction:column;align-items:stretch;gap:12px}.cta-row .btn{justify-content:center;width:100%}.cta-wrap p.cta-fallback{margin-top:28px;line-height:1.6}.foot{margin-top:44px}.page-title{font-size:32px}.page-sub{font-size:16px}.monthbar{margin:36px 0 16px}.month-name{font-size:21px}.dow,.grid{gap:5px}.dow span{font-size:10px}.cell{border-radius:11px;padding:6px 3px 5px}.num{font-size:14px}.reason{display:none}.cell .icon{width:14px;height:14px}.cell.run:before{top:5px}}@media (prefers-reduced-motion:reduce){*{transition:none!important}}
