@import url('https://fonts.googleapis.com/css2?family=Press+Start+2P&family=Space+Mono:wght@400;700&display=swap');
:root{--paper:#f5efdb;--ink:#333d35;--green:#ccd9aa;--pink:#e6b8a8;--event-pink:#f0bfd2;--yellow:#efdaa1;--blue:#b8d5e0;--hosted-grey:#d1d0c5;--grey:#e8e4d5;--pixel:'Press Start 2P',monospace;color:var(--ink);background:var(--paper);font-family:'Space Mono',monospace;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit;color:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:default}button:focus-visible,a:focus-visible{outline:3px solid #477e98;outline-offset:4px}a{color:inherit;text-decoration:none}.topbar{max-width:1176px;margin:auto;height:83px;border-bottom:2px solid #384335;display:flex;align-items:center;justify-content:space-between}.wordmark{font-family:var(--pixel);font-size:12px}.topbar>span{font-size:9px;letter-spacing:.5px}.topbar i,footer i{font-style:normal;color:#b07468;font-size:13px;margin-left:12px}main{max-width:1020px;margin:auto}.intro{text-align:center;padding:54px 0 37px}.eyebrow{font-family:var(--pixel);font-size:8px;line-height:1.8;letter-spacing:1px;color:#788361}h1{font-family:var(--pixel);font-size:36px;letter-spacing:-1.5px;line-height:1.7;margin:18px 0 10px;color:#425d41;text-shadow:3px 3px 0 #c2cfa4}.title-heart{color:#b97c69;font-size:22px;display:inline-block;transform:translateY(-4px);margin-left:22px;text-shadow:3px 3px #dfc4a4}.intro p{font-size:12px;line-height:1.9;color:#73766a;margin:0}.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.tiny-label{font-family:var(--pixel);font-size:8px;color:#7c826d}.month-switch{display:flex;gap:17px;align-items:center;font-family:var(--pixel);font-size:9px}.month-switch span{min-width:155px;text-align:center}.month-switch button{width:31px;height:29px;background:transparent;border:1px solid #88917b;font-size:10px;box-shadow:2px 2px 0 #bcc1a6}.month-switch button:disabled{opacity:.3}.month-switch button:not(:disabled):hover{background:var(--green)}.calendars{display:grid;grid-template-columns:repeat(2,1fr);gap:30px}.calendar-card{border:2px solid var(--ink);box-shadow:5px 5px 0 #b5bea0;background:var(--paper)}.calendar-card.amsterdam{box-shadow:5px 5px 0 #c4b5a0}.window-bar{height:30px;background:#c4d2b0;border-bottom:2px solid var(--ink);display:flex;align-items:center;justify-content:space-between;padding:0 11px;font-family:var(--pixel);font-size:7px}.amsterdam .window-bar{background:#d8c5b2}.window-bar>span:first-child{display:flex;gap:4px}.window-bar i{height:7px;width:7px;border:1px solid #4a5640;background:#f5efdb}.window-bar>span:last-child{font-size:17px}.host{height:130px;display:flex;align-items:center;padding:10px 23px 0 13px;gap:15px;overflow:hidden}.sprite{display:block;flex:none;width:97px;height:112px;background-image:url('/assets/trainers.png');background-repeat:no-repeat;background-size:240px 160px;background-position:-20px -26px;image-rendering:pixelated;mix-blend-mode:darken}.sprite.amsterdam{background-position:-128px -26px}.player{font-family:var(--pixel);font-size:6px;color:#889076;line-height:1.8}.host h2{font-family:var(--pixel);font-size:18px;font-weight:400;letter-spacing:-.8px;margin:13px 0 9px}.host p{font-size:10px;margin:0;color:#858575}.host-heart{margin-left:auto;color:#889e73;font-size:21px;align-self:center}.amsterdam .host-heart{color:#b38e79}.calendar-body{padding:3px 23px 20px}.calendar-caption{display:flex;justify-content:space-between;align-items:center;border-bottom:1px dashed #b8bca4;padding:12px 0 15px;margin-bottom:17px;font-size:10px}.calendar-caption span:last-child{font-size:7px;color:#8c907c}.weekdays,.days{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.weekdays{text-align:center;font-size:8px;color:#8a8d7a;margin-bottom:10px}.days{grid-auto-rows:45px}.day{border:1px solid #a7b493;position:relative;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;box-shadow:1px 1px 0 #6c765d25;padding:0}.available{background:var(--green)}.booked{background:var(--pink)}.event{background:var(--event-pink)}.event-together{background:linear-gradient(135deg,var(--event-pink) 0 50%,var(--blue) 50% 100%)}.pending{background:var(--yellow)}.together{background:var(--blue)}.hosted{background:var(--hosted-grey)}.home{background:var(--grey)}.day.booked{border-color:#c49788}.day.event,.day.event-together{border-color:#bf8da2}.day.pending{border-color:#c6b27d}.day.together{border-color:#8aafb9}.day.home{border-color:#d8d6c6;color:#a8a996}.day.past{opacity:.47}.day small{position:absolute;bottom:2px;right:4px;font-size:8px;font-weight:400;line-height:1}.day.selected{background:#526c46;border-color:#354c2b;color:#fff;opacity:1}.day.today>span{border-bottom:2px solid currentColor}.day:not(:disabled):hover{outline:2px solid var(--ink);outline-offset:1px;z-index:1;opacity:1}.selection{display:flex;align-items:center;gap:8px;margin-top:19px;min-height:35px}.selection>span{font-size:9px;line-height:1.5;color:#7c826c}.primary{border:2px solid var(--ink);background:#c7d6b2;box-shadow:3px 3px 0 var(--ink);font-family:var(--pixel);font-size:8px;padding:12px 14px;line-height:1.6}.selection .primary{margin-left:auto;white-space:nowrap;font-size:7px;padding:10px 11px}.primary:disabled{opacity:.4;box-shadow:2px 2px 0 #a4ab91}.primary:not(:disabled):hover{background:#b6c996;transform:translate(1px,1px);box-shadow:2px 2px 0 var(--ink)}.reset{background:none;border:0;font-size:20px;padding:0}.legend{display:flex;justify-content:center;gap:23px;margin:29px 0 12px;font-size:9px;flex-wrap:wrap}.legend>span{display:flex;align-items:center;gap:7px}.legend i{width:13px;height:13px;border:1px solid #7e8970;display:grid;place-items:center;font-style:normal;font-size:10px}.hint{text-align:center;font-size:9px;color:#8c917d;margin:0}.little-note{display:flex;justify-content:center;align-items:center;gap:18px;padding:20px 10px;border-top:1px dashed #b8bca4;border-bottom:1px dashed #b8bca4;margin-top:32px;color:#818b6d}.little-note p{font-size:10px;margin:0}.little-note>span{font-size:18px}.little-note>span:last-child{font-size:12px;color:#ad8371}.demo-note{font-size:7px;line-height:1.9;letter-spacing:.6px;color:#949681;text-align:center;margin:17px 0 25px}footer{max-width:1176px;margin:auto;border-top:2px solid #384335;padding:23px 0 30px;display:flex;align-items:center;justify-content:space-between;font-size:8px;color:#7c836d}footer button{border:0;background:none;font-size:10px;color:#586b4d;text-decoration:underline;text-underline-offset:4px}footer i{font-size:10px;margin:0}dialog{background:var(--paper);color:var(--ink);padding:0;border:2px solid var(--ink);box-shadow:7px 7px 0 #283b2a80;width:min(475px,calc(100% - 28px));max-height:90vh}dialog::backdrop{background:#27362970;backdrop-filter:blur(3px)}.dialog-bar{background:#c4d2b0;border-bottom:2px solid var(--ink);padding:8px 14px;display:flex;align-items:center;justify-content:space-between;font-family:var(--pixel);font-size:8px}.dialog-bar button{border:0;background:none;font-size:24px;line-height:1}.dialog-content{padding:28px}.dialog-content h2{font-family:var(--pixel);font-size:17px;line-height:1.65;margin:16px 0}.dialog-content p{font-size:11px;line-height:1.9;color:#747b68}.dialog-content h3{font-size:12px;line-height:1.7;margin:20px 0 8px}.dialog-content .demo-note{font-size:7px}.date-summary{background:#e5e6cf;border:1px dashed #a1ad8b;padding:15px;font-size:11px;line-height:1.8;margin:20px 0}.message-draft{padding:15px;border-left:3px solid #b78f7e;background:#eadfcb;user-select:text}.blue-text{color:#508195}.pink-text{color:#aa5f7e}.day .event-label{position:absolute;left:2px;bottom:2px;max-width:calc(100% - 4px);font-family:var(--pixel);font-size:4px;line-height:1.3;letter-spacing:-.2px}.day.event-together .event-label{background:transparent;padding:0}.day.event-together>span:first-child{align-self:flex-end;margin-bottom:8px}form{display:grid;gap:15px}label{display:grid;gap:7px;font-size:10px}input,select,textarea{width:100%;border:1px solid #9fa88e;border-radius:0;background:#faf7ec;padding:11px;font-size:12px}textarea{min-height:65px;resize:vertical}input:focus,textarea:focus,select:focus{outline:2px solid #668455;outline-offset:2px}.request-row{padding:18px 0;border-bottom:1px dashed #b8bca4}.request-status{font-family:var(--pixel);font-size:7px;color:#879168}.request-actions{display:flex;align-items:center;gap:18px}.text-button{border:0;background:none;text-decoration:underline;font-size:11px}#toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);padding:14px 20px;border:2px solid #344731;background:var(--green);font-size:11px;max-width:90%;opacity:0;pointer-events:none;z-index:5}#toast.show{opacity:1}
@media(max-width:1250px){.topbar,footer{margin-left:40px;margin-right:40px}main{margin-left:70px;margin-right:70px}}@media(max-width:1050px){main{margin-left:35px;margin-right:35px}.calendars{gap:22px}.calendar-body{padding-left:17px;padding-right:17px}.host{padding-left:5px;gap:6px}.host h2{font-size:16px}.host-heart{display:none}.tiny-label{font-size:7px}.days{grid-auto-rows:41px}.day{font-size:11px}.selection>span{font-size:8px}}@media(max-width:760px){.topbar{height:64px;margin:0 22px}.topbar>span{display:none}.wordmark{font-size:10px}main{margin:0 22px}.intro{padding:35px 0 30px}h1{font-size:23px;letter-spacing:-1px;margin:16px 0 12px}.title-heart{font-size:16px;margin-left:10px;text-shadow:2px 2px #dfc4a4;transform:translateY(-2px)}.eyebrow{font-size:6px;letter-spacing:.7px}.intro p{font-size:10px}.calendar-toolbar{justify-content:center;margin-bottom:21px}.tiny-label{display:none}.month-switch{gap:27px;font-size:9px}.calendars{grid-template-columns:1fr;gap:28px;max-width:470px;margin:auto}.host{padding-left:15px;gap:13px;height:125px}.host h2{font-size:20px}.host-heart{display:block}.calendar-body{padding:0 20px 20px}.days{grid-auto-rows:43px}.day{font-size:12px}.legend{gap:13px 18px;font-size:8px;max-width:400px;margin:25px auto 13px}.hint{font-size:8px;line-height:1.9;padding:0 10px}.little-note{padding:17px 7px;gap:10px;margin-top:23px}.little-note p{font-size:9px;line-height:1.8}.little-note>span:last-child{display:none}.demo-note{font-size:6px}footer{margin:0 22px;padding:20px 0;gap:12px}footer>span:last-child{display:none}.selection>span{font-size:9px}.dialog-content{padding:23px}}@media(max-width:380px){h1{font-size:20px}.host h2{font-size:17px}.host{gap:5px}.calendar-body{padding-left:14px;padding-right:14px}.weekdays,.days{gap:4px}.selection .primary{font-size:6px}}
@media(max-width:760px){.calendars{grid-template-columns:minmax(0,1fr)}.calendar-card{min-width:0}}@media(max-width:380px){.host{padding-left:6px;padding-right:6px;gap:3px}.host-heart{display:none}.host h2{font-size:16px}.calendar-caption{gap:8px}.calendar-caption span:last-child{font-size:6px}.selection>span{font-size:8px}}

.access-panel{max-width:400px;margin:0 auto 60px;padding:24px;border:2px solid var(--ink);background:var(--paper)}.access-panel p{font-size:11px;line-height:1.8}.access-panel [data-access-error]:empty{display:none}

.host>.sprite{width:58.2px;height:67.2px;background-size:144px 96px;background-position:-12px -15.6px}.host>.sprite.amsterdam{background-position:-76.8px -15.6px}
.day .visit-character{position:absolute;top:1px;right:1px;width:15.52px;height:17.92px;background-image:url('/assets/trainers-transparent.png');background-size:38.4px 25.6px;background-position:-3.2px -4.16px;mix-blend-mode:normal;pointer-events:none}.day .visit-character.amsterdam{background-position:-20.48px -4.16px}.day.together>span:first-child{align-self:flex-end;margin-bottom:4px}.day.together>small{display:none}
.calendar-toolbar{display:grid;grid-template-columns:1fr auto 1fr}.calendar-refresh{justify-self:end;border:1px solid #88917b;background:transparent;box-shadow:2px 2px 0 #bcc1a6;padding:8px 9px;font-family:var(--pixel);font-size:6px;line-height:1.5;white-space:nowrap}.calendar-refresh:not(:disabled):hover{background:var(--green)}.calendar-refresh:disabled{opacity:.55}@media(max-width:760px){.calendar-toolbar{grid-template-columns:1fr;justify-items:center;gap:14px}.calendar-refresh{justify-self:center;grid-row:2}}
.date-summary .calendar-description{margin:10px 0 0;padding-top:10px;border-top:1px dashed #a1ad8b;color:inherit;white-space:pre-wrap}
