:root{--bg:#f6f5f1;--surface:#fff;--ink:#1d1d1b;--muted:#6b6a65;--line:#dddbd3;--accent:#4e79a7;--in:#59a14f;--out:#e15759;--mono:ui-monospace,"SF Mono",Menlo,monospace;--buncss-light:initial;--buncss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#171716;--surface:#222220;--ink:#ecebe6;--muted:#9a9890;--line:#34332f;--accent:#76a3d1;--in:#8cd17d;--out:#ff9d9a;--buncss-light: ;--buncss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}[hidden]{display:none!important}body{background:var(--bg);color:var(--ink);margin:0;padding:24px 16px 48px;font:15px/1.45 system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}body>header{max-width:1100px;margin:0 auto 20px}h1{letter-spacing:-.01em;margin:0;font-size:22px}body>header p{color:var(--muted);margin:4px 0 0}.layout{display:grid;grid-template-columns:minmax(0,1fr)minmax(0,420px);align-items: start;gap:20px;max-width:1100px;margin:0 auto}.people{background:var(--surface);border:1px solid var(--line);border-radius:10px;margin-bottom:12px;padding:10px 12px}.people:not(:has(member-row)){display:none}.people h2{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 6px;font-size:13px}member-row{display:block}member-row .who{display:flex;align-items: center;gap:4px;min-height:28px}member-row [data-col=name]{border-radius:4px;padding:1px 4px}member-row[me]>.who [data-col=name]{font-weight:600}member-row[me]>.who [data-col=name]:after{content:" · you";color:var(--muted);font-weight:400}member-row .invited{border-left:1px solid var(--line);margin-left:10px;padding-left:12px}member-row:not([link])>.who>.copy,member-row:not([me])>.who>.out,member-row:not([mine])>.who>[data-delete],member-row:not([me])>.invite{display:none}member-row>.invite{max-width:260px;margin:4px 0 4px 22px}member-row .roles{color:var(--muted);font-size:12px}member-row .give{display:flex;color:var(--muted);gap:10px;margin-top:4px;font-size:13px}member-row .give:empty{display:none}.out{margin:0}.copy .icon-check,.copy[copied] .icon-copy{display:none}.copy[copied] .icon-check{display:block;color:var(--in)}.nobody{text-align:center;max-width:420px;margin:15vh auto 0}.nobody h2{margin:0 0 6px;font-size:18px}.nobody p{color:var(--muted);margin:0}body[data-away]:after{content:"Reconnecting…";position:fixed;background:var(--surface);border:1px solid var(--line);color:var(--muted);border-radius:999px;padding:6px 14px;font-size:13px;bottom:16px;left:50%;transform:translate(-50%);box-shadow:0 2px 12px #00000026}[contenteditable]:focus{outline:2px solid var(--accent);outline-offset:1px}.icon{display:block;width:16px;height:16px}.copy,.out button,button[data-delete]{display:inline-grid;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:6px;place-items: center;width:24px;height:24px;padding:0}.copy:hover,.out button:hover,button[data-delete]:hover{background:var(--line);color:var(--ink)}button[data-delete]{opacity:0}member-row .who:hover button{opacity:1}button[data-delete]:focus-visible{opacity:1}[data-refused]{outline:2px solid var(--out);outline-offset:2px;border-radius:6px}form[data-refused]:after{content:attr(data-refused);display:block;color:var(--out);margin-top:4px;font-size:13px}input[name]:where(:not([type]),[type=text],[type=search],[type=number]){font:inherit;color:inherit;border:1px dashed var(--line);background:0 0;border-radius:6px;width:100%;padding:5px 8px}input[name]:where(:not([type]),[type=text],[type=search],[type=number]):focus{outline:none;border-style:solid;border-color:var(--accent)}.wire{background:var(--surface);border:1px solid var(--line);position:sticky;overflow:auto;border-radius:10px;max-height:calc(100vh - 32px);padding:10px 12px;top:16px}.wire h2{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 8px;font-size:13px}.wire ol{list-style:none;font:12px/1.45 var(--mono);margin:0;padding:0}.wire li{border-top:1px solid var(--line);word-break:break-all;border-left:3px solid;padding:6px 0 6px 10px}.wire li.in{border-left-color:var(--in)}.wire li.out{border-left-color:var(--out)}.wire .meta{display:block;color:var(--muted)}@media (max-width:760px){.layout{grid-template-columns:minmax(0,1fr)}.wire{position:static;max-height:50vh}}body:has(>.split){display:flex;overflow:hidden;flex-direction:column;height:100dvh;padding:0}body>header.whatson{display:flex;background:var(--surface);border-bottom:1px solid var(--line);align-items: center;gap:18px;max-width:none;margin:0;padding:8px 16px}header.whatson h1{margin-right:auto;font-size:18px}header.whatson details{position:relative;overflow:visible;background:0 0;border:0;max-height:none;margin:0;padding:0;top:auto}header.whatson summary{cursor:pointer;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:13px}header.whatson details>:not(summary){position:absolute;z-index:30;overflow:auto;background:var(--surface);border:1px solid var(--line);border-radius:10px;width:min(420px,90vw);max-height:60vh;margin:0;padding:10px 12px;top:calc(100% + 8px);right:0;box-shadow:0 4px 18px #0003}.layout.split{--calendar:.5;--bar:10px;display:flex;-webkit-user-select:none;user-select:none;flex:1;align-items:stretch;gap:0;max-width:none;min-height:0;margin:0}.layout.split :-webkit-any(input,textarea,select){-webkit-user-select:text;user-select:text}.layout.split :-moz-any(input,textarea,select){-webkit-user-select:text;user-select:text}.layout.split :is(input,textarea,select){-webkit-user-select:text;user-select:text}section.calendar{--hour:44px;--head:30px;width:calc((100% - var(--bar))*var(--calendar));display:flex;overflow:hidden;background:var(--surface);flex-direction:column;flex:none;min-width:0}.split>.bar{width:var(--bar);position:relative;cursor:col-resize;touch-action:none;background:var(--bg);border-inline:1px solid var(--line);flex:none}.split>.bar:after{content:"";position:absolute;background:var(--muted);opacity:.6;border-radius:2px;width:3px;height:36px;top:50%;left:50%;translate:-50% -50%}.split>.bar:hover{outline:none;background:color-mix(in srgb,var(--accent)18%,var(--bg))}.split>.bar:focus-visible{outline:none;background:color-mix(in srgb,var(--accent)18%,var(--bg))}nav.turn{display:flex;border-bottom:1px solid var(--line);white-space:nowrap;overflow:hidden;flex-wrap:wrap;align-items: center;gap:4px;padding:8px 10px}nav.turn button,.zoom button,form.new-event button,.months button{font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--line);cursor:pointer;border-radius:8px;padding:3px 10px}nav.turn button:hover,.zoom button:hover{border-color:var(--accent)}nav.turn .label{overflow:hidden;text-overflow:ellipsis;border-color:#0000;font-weight:600}nav.turn .label:after{content:" ▾";color:var(--muted);font-weight:400}nav.turn .only{border-color:var(--accent);color:var(--accent);overflow:hidden;text-overflow:ellipsis;max-width:100%}nav.turn .only:after{content:" ×"}.months[popover]{position:fixed;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:10px;width:220px;margin:0;padding:10px;inset:auto;box-shadow:0 4px 18px #0003}.months .year{display:flex;justify-content:space-between;align-items: center;margin-bottom:8px;font-weight:600}.months .year button{color:var(--muted);background:0 0;border:0;padding:0 10px;font-size:18px}.months .choose{display:grid;grid-template-columns:repeat(3,1fr);gap:4px}.months .choose button{background:var(--bg);border:0;padding:8px 0}.months .choose button.now{box-shadow:inset 0 0 0 1px var(--accent)}.months .choose button[aria-current]{background:var(--accent);color:#fff}.scroll{overflow:auto;position:relative;flex:1;min-height:0}.weekdays,.hours,day-row h3 .num,day-row h3 .dow{display:none}event-row{border-radius:6px}event-row .when{grid-area:when;color:var(--muted);font-variant-numeric:tabular-nums}event-row .title{grid-area:title;font-weight:600}event-row .where{grid-area:where;color:var(--muted)}event-row .just-me{grid-area:where;color:var(--accent);justify-self:end;font-size:12px}event-row:not([private]) .just-me{display:none}event-row button[data-delete]{grid-area:x}event-row:not([mine]) button[data-delete]{display:none}event-row:hover button[data-delete]{opacity:1}@media (hover:none){event-row button[data-delete]{opacity:1}}event-row[mine]{cursor:grab;touch-action:none}event-row[moving]{pointer-events:none;opacity:.85;background:var(--surface);z-index:5;box-shadow:0 4px 14px #0003}[data-span=day] .days{padding:10px 12px}[data-span=day] day-row h3{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 6px;font-size:13px}[data-span=day] day-row[today] h3{color:var(--accent)}[data-span=day] .events{display:grid;gap:2px}[data-span=day] .events:not(:has(event-row)):after{content:"Nothing on here";color:var(--muted);font-size:13px}[data-span=day] event-row{display:grid;grid-template-columns:6.5em minmax(0,1fr)auto;grid-template-areas:"when title x" "when where x";column-gap:8px;padding:4px 6px;font-size:14px}[data-span=day] event-row:hover{background:color-mix(in srgb,var(--accent)8%,transparent)}[data-span=day] event-row .when,[data-span=day] event-row .where{font-size:13px}[data-span=day] event-row[moving]{position:relative}[data-span=week] .scroll{display:grid;grid-template-columns:46px minmax(0,1fr);align-items: start}[data-span=week] .hours{display:block;position:relative;height:calc(var(--head) + 24*var(--hour))}.hours span{position:absolute;right:6px;top:calc(var(--head) + var(--h)*var(--hour));color:var(--muted);font-variant-numeric:tabular-nums;font-size:11px;translate:0 -50%}[data-span=week] .days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}[data-span=week] day-row{display:block;border-left:1px solid var(--line);min-width:0}[data-span=week] day-row h3{position:sticky;z-index:3;height:var(--head);display:flex;color:var(--muted);background:var(--surface);border-bottom:1px solid var(--line);white-space:nowrap;overflow:hidden;justify-content:center;align-items: center;margin:0;font-size:12px;top:0}[data-span=week] day-row h3 .label{display:none}[data-span=week] day-row h3 .dow,[data-span=week] day-row h3 .num{display:inline;margin:0 2px}[data-span=week] day-row[today] h3{color:var(--accent)}[data-span=week] .events{position:relative;height:calc(24*var(--hour));background-image:linear-gradient(var(--line)1px,transparent 1px);background-size:100% var(--hour)}[data-span=week] day-row[today] .events{background-color:color-mix(in srgb,var(--accent)6%,transparent)}[data-span=week] event-row{position:absolute;top:calc(var(--start)*var(--hour)/60);height:calc(var(--len)*var(--hour)/60 - 2px);left:calc(var(--lane,0)*100%/var(--lanes,1));width:calc(100%/var(--lanes,1) - 2px);display:block;overflow:hidden;border-left:3px solid var(--accent);background:color-mix(in srgb,var(--accent)16%,var(--surface));border-radius:4px;padding:2px 4px;font-size:12px;line-height:1.3}[data-span=week] event-row:hover{z-index:2;background:color-mix(in srgb,var(--accent)28%,var(--surface))}[data-span=week] event-row>*{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}[data-span=week] event-row .when,[data-span=week] event-row .where{font-size:11px}[data-span=week] event-row .just-me{display:none}[data-span=week] event-row button[data-delete]{position:absolute;width:20px;height:20px;top:0;right:0}[data-span=month] .weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-bottom:1px solid var(--line);color:var(--muted);font-size:12px}.weekdays span{padding:3px 6px}[data-span=month] .days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-auto-rows:112px}[data-span=month] day-row{display:flex;overflow:hidden;background:var(--surface);border-right:1px solid var(--line);border-bottom:1px solid var(--line);flex-direction:column;min-width:0;padding:2px 3px}[data-span=month] day-row[odd]{background:var(--bg)}[data-span=month] day-row h3{color:var(--muted);margin:0 0 2px;font-size:12px}[data-span=month] day-row h3 .label{display:none}[data-span=month] day-row h3 .num{display:inline-block;border-radius:9px;padding:0 5px}[data-span=month] day-row[today] h3 .num{background:var(--accent);color:#fff}[data-span=month] .events{display:grid;align-content: start;gap:2px;min-height:0}[data-span=month] event-row{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-left:3px solid var(--accent);background:color-mix(in srgb,var(--accent)16%,var(--surface));border-radius:3px;padding:0 4px;font-size:12px;line-height:18px}[data-span=month] event-row:hover{background:color-mix(in srgb,var(--accent)28%,var(--surface))}[data-span=month] event-row>:not(.title),[data-span=month] event-row[over]{display:none}[data-span=month] day-row[more]:after{content:"+" attr(more)" more";color:var(--muted);padding-left:4px;font-size:11px}event-row[private]{border-left-style:dashed}section.map{position:relative;overflow:hidden;touch-action:none;user-select:none;cursor:grab;background:#dfe6e9;flex:1;min-width:0;min-height:0}section.map:active{cursor:grabbing}.tiles img{position:absolute;display:block;pointer-events:none}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .tiles{filter:brightness(.7)contrast(1.1)saturate(.6)}}.layer{position:absolute;width:0;height:0;top:0;left:0}place-row{position:absolute;left:calc(var(--x)*var(--scale)*1px);top:calc(var(--y)*var(--scale)*1px)}place-row .dot{display:block;background:var(--accent);cursor:pointer;border:2px solid #fff;border-radius:50%;width:12px;height:12px;margin:-6px 0 0 -6px;padding:0;box-shadow:0 1px 3px #00000059}section.map[far] place-row .dot{box-shadow:none;border-width:1px;width:6px;height:6px;margin:-3px 0 0 -3px}place-row .name{position:absolute;white-space:nowrap;background:var(--surface);display:none;pointer-events:none;border-radius:6px;padding:1px 6px;font-size:12px;top:-10px;left:10px;box-shadow:0 1px 4px #0003}place-row:hover .name,place-row[lit] .name{display:block}place-row[lit]{z-index:2}place-row[lit] .dot{background:var(--out);transform:scale(1.5)}.zoom{position:absolute;display:grid;gap:4px;top:10px;right:10px}.zoom button{width:32px;height:32px;padding:0;font-size:18px}.credit{position:absolute;color:#333;background:#fffc;margin:0;padding:1px 6px;font-size:11px;bottom:0;right:0}.credit a{color:inherit}form.find{position:absolute;cursor:auto;width:min(320px,100% - 70px);top:12px;left:12px}form.find input{box-sizing:border-box;font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:8px;width:100%;padding:6px 10px;box-shadow:0 1px 4px #00000026}form.find .found{list-style:none;overflow:auto;background:var(--surface);border:1px solid var(--line);border-radius:8px;max-height:50vh;margin:4px 0 0;padding:4px;box-shadow:0 4px 18px #0003}form.find .found button{display:grid;text-align:left;font:inherit;color:var(--ink);cursor:pointer;background:0 0;border:0;border-radius:6px;width:100%;padding:6px 8px}form.find .found button:hover{background:color-mix(in srgb,var(--accent)10%,transparent)}form.find .found button:focus-visible{background:color-mix(in srgb,var(--accent)10%,transparent)}form.find .found small{color:var(--muted);font-size:12px}form.find .found .none{color:var(--muted);padding:6px 8px;font-size:13px}form.new-event{position:absolute;display:grid;background:var(--surface);border:1px solid var(--line);cursor:auto;border-radius:10px;gap:8px;width:min(340px,100% - 24px);padding:12px;top:12px;left:12px;box-shadow:0 4px 18px #0003}form.new-event h2{margin:0;font-size:15px}form.new-event input[name=title]{border-style:solid}form.new-event .when{display:flex;flex-wrap:wrap;gap:6px}form.new-event select,form.new-event input[type=time],form.new-event input[type=date]{font:inherit;color:inherit;border:1px solid var(--line);background:0 0;border-radius:6px;padding:4px 6px}form.new-event label{display:flex;cursor:pointer;justify-self:start;align-items: center;gap:6px}form.new-event input[type=checkbox]{margin:0}form.new-event .buttons{display:flex;gap:8px}form.new-event button:first-child{background:var(--accent);border-color:var(--accent);color:#fff}dialog.sheet{overflow:auto;box-sizing:border-box;padding:0 16px calc(16px + env(safe-area-inset-bottom));background:var(--surface);color:var(--ink);border:0;border-radius:16px 16px 0 0;width:100%;max-width:none;max-height:75dvh;margin:auto 0 0;box-shadow:0 -4px 18px #0003}dialog.sheet::backdrop{background:#0003}dialog.sheet .grab{display:grid;touch-action:none;cursor:grab;place-items: center;height:24px}dialog.sheet .grab:after{content:"";background:var(--line);border-radius:2px;width:36px;height:4px}dialog.sheet h2{margin:0 0 4px;font-size:18px}dialog.sheet p{color:var(--muted);margin:2px 0}dialog.sheet button{font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--line);cursor:pointer;border-radius:8px;padding:8px 12px}dialog.sheet .go{background:var(--accent);border-color:var(--accent);color:#fff}dialog.sheet .cancel{color:var(--out)}dialog.sheet .move{display:flex;flex-wrap:wrap;align-items: center;gap:8px;margin-top:12px}dialog.sheet .move input{font:inherit;color:inherit;border:1px solid var(--line);background:0 0;border-radius:6px;padding:6px 8px}dialog.sheet .buttons{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}dialog.sheet ul.here{list-style:none;display:grid;gap:2px;margin:10px 0 0;padding:0}dialog.sheet ul.here button{display:grid;text-align:left;border:0;width:100%;padding:6px 8px;font-weight:600}dialog.sheet ul.here small{color:var(--muted);font-size:12px;font-weight:400}@media (max-width:760px){event-row[mine]{cursor:pointer;touch-action:auto}form.new-event{position:fixed;z-index:40;padding-bottom:calc(16px + env(safe-area-inset-bottom));border-radius:16px 16px 0 0;width:auto;inset:auto 0 0}.months[popover]{padding:14px 16px calc(16px + env(safe-area-inset-bottom));border-radius:16px 16px 0 0;width:auto;bottom:0;right:0;top:auto!important;left:0!important}.months[popover]::backdrop{background:#0003}.months .choose button{padding:12px 0}.layout.split{--bar:22px;flex-direction:column}section.calendar{height:calc((100% - var(--bar))*var(--calendar));width:auto}.split>.bar{height:var(--bar);cursor:row-resize;border-inline-start:0;border-inline-end:0;border-block:1px solid var(--line);width:auto}.split>.bar:after{width:36px;height:4px}section.calendar{--head:38px}[data-span=week] .scroll{grid-template-columns:34px minmax(0,1fr)}[data-span=week] day-row h3{flex-direction:column;line-height:1.15}[data-span=week] event-row .where{display:none}}
