:root{--ink: #42403e;--ink-dim: #686864;--ink-faint: #9b9b97;--dark: #343432;--chrome: #cdcdcb;--line: #e6e6e5;--canvas: #f3f2f2;--paper: #ffffff;--hour-h: 69px;--gutter: 189px;--pad-top: 14px;--shadow: 0 2px 4px rgb(0 0 0 / .25);--font: "DM Sans", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font);color:var(--ink);background:var(--canvas);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-synthesis:none}button{font:inherit;color:inherit;border:0;background:none;cursor:pointer}input,select{font:inherit;color:inherit}.app{display:flex;flex-direction:column;height:100%;overflow:hidden}.header{display:flex;align-items:center;justify-content:space-between;flex:0 0 97px;padding-inline:16px;background:var(--chrome);border-bottom:1px solid var(--dark)}.brand{display:flex;flex-direction:column;justify-content:center;flex:1 1 420px;min-width:0;text-decoration:none;color:inherit}.brand h1{margin:0;font-size:32px;line-height:40px;font-weight:500;letter-spacing:-.01em}.brand p{margin:0;font-size:14px;line-height:18px;font-weight:500;color:var(--ink)}.tabs{display:flex;align-items:center;align-self:stretch;gap:16px;padding-top:40px;min-height:0}.tab{display:flex;align-items:center;justify-content:center;gap:10px;padding:16px 20px;border-radius:24px 24px 0 0;font-size:20px;line-height:24px;font-weight:500;white-space:nowrap;color:var(--ink);transition:background-color .12s ease,color .12s ease}.tab:hover:not(.tab--on){background:#d8d8d6}.tab--on{background:var(--dark);color:var(--line)}.tab svg{flex:0 0 auto}.tabs__hint{align-self:center;font-size:13px;line-height:16px;color:var(--ink-dim);max-width:190px}.people{display:flex;align-items:center;justify-content:flex-end;gap:24px;flex:1 1 420px;min-width:0}.avatar{position:relative;flex:0 0 auto;width:48px;height:48px;display:grid;place-items:center;border-radius:28px;background:var(--canvas);font-size:15px;font-weight:600;letter-spacing:.02em;color:var(--ink);outline:5px solid transparent;transition:outline-color .14s ease,transform .14s ease}.avatar:hover{transform:translateY(-1px);outline-color:#dcdcda}.avatar--on,.avatar--on:hover{outline-color:var(--ring)}.avatar__tip{position:absolute;top:calc(100% + 10px);left:50%;translate:-50% 0;padding:6px 10px;border-radius:8px;background:var(--dark);color:var(--line);font-size:12px;line-height:15px;font-weight:500;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .12s ease;z-index:20}.avatar:hover .avatar__tip{opacity:1}.avatar__tip b{font-weight:600}.avatar__tip span{color:var(--ink-faint);font-weight:400}.people__add{display:grid;place-items:center;width:48px;height:48px;border-radius:28px;color:var(--ink-dim);border:2px dashed #b4b4b1;text-decoration:none;transition:color .14s ease,border-color .14s ease}.people__add:hover{color:var(--ink);border-color:var(--ink-dim)}.weekbar{display:flex;align-items:center;gap:10px;padding:0 16px 0 0;height:38px;flex:0 0 auto;background:var(--canvas);border-bottom:1px solid var(--line);font-size:13px;color:var(--ink-dim)}.weekbar__nav{display:flex;align-items:center;gap:2px;padding-left:10px}.weekbar__step{display:grid;place-items:center;width:26px;height:26px;border-radius:8px;color:var(--ink-dim)}.weekbar__step:hover{background:var(--line);color:var(--ink)}.weekbar__range{font-weight:500;color:var(--ink);min-width:118px;text-align:center;font-variant-numeric:tabular-nums}.weekbar__today{padding:4px 10px;border-radius:999px;border:1px solid var(--chrome);font-size:12px;font-weight:500;color:var(--ink-dim)}.weekbar__today:hover{border-color:var(--ink-dim);color:var(--ink)}.weekbar__spacer{flex:1}.weekbar__note{display:flex;align-items:center;gap:8px;font-size:12.5px}.weekbar__badge{padding:3px 9px;border-radius:999px;background:var(--dark);color:var(--line);font-size:11.5px;font-weight:500;letter-spacing:.01em}.weekbar__reset{padding:4px 10px;border-radius:999px;border:1px solid var(--chrome);font-size:12px;font-weight:500}.weekbar__reset:hover{border-color:var(--ink-dim);color:var(--ink)}.weekbar__saving{font-size:12px;color:var(--ink-faint);font-variant-numeric:tabular-nums}.gridScroll{flex:1 1 auto;overflow:auto;overscroll-behavior:contain;background:var(--canvas)}.grid{display:grid;grid-template-columns:var(--gutter) repeat(7,minmax(0,1fr));min-width:900px}.grid__corner,.grid__dayhead{position:sticky;top:0;z-index:4;height:52px;display:flex;align-items:center;justify-content:center;background:var(--paper);border-bottom:2px solid var(--chrome);border-right:2px solid var(--chrome);font-size:20px;line-height:24px;font-weight:500}.grid__dayhead{background:var(--canvas);flex-direction:column;gap:1px}.grid__dayhead small{font-size:12px;font-weight:500;color:var(--ink-faint);font-variant-numeric:tabular-nums}.grid__dayhead--today{color:var(--ink)}.grid__dayhead--today small{color:var(--ink-dim)}.grid__dayhead--today:after{content:"";position:absolute;inset:auto 0 -2px;height:2px;background:var(--dark)}.grid__gutter{position:relative;background:var(--paper);border-right:2px solid var(--chrome);padding-top:var(--pad-top);padding-bottom:var(--pad-top)}.grid__gutterInner{position:relative;height:calc(var(--hour-h) * 24)}.grid__hour{position:absolute;right:8px;translate:0 -50%;display:flex;align-items:baseline;gap:4px;color:var(--ink-dim);font-size:20px;line-height:24px;font-weight:500;font-variant-numeric:tabular-nums}.grid__hour span{font-size:15px;line-height:18px;font-weight:400;color:var(--ink-faint)}.grid__col{position:relative;border-right:2px solid var(--chrome);padding-top:var(--pad-top);padding-bottom:var(--pad-top)}.grid__colInner{position:relative;height:calc(var(--hour-h) * 24);background-image:repeating-linear-gradient(to bottom,var(--line) 0,var(--line) 1px,transparent 1px,transparent var(--hour-h))}.grid__col--edit .grid__colInner{cursor:crosshair}.grid__now{position:absolute;left:0;right:0;height:0;border-top:1.5px solid var(--dark);z-index:6;pointer-events:none}.grid__now:before{content:"";position:absolute;left:-4px;top:-4px;width:7px;height:7px;border-radius:50%;background:var(--dark)}.block{position:absolute;right:0;border-radius:8px;box-shadow:var(--shadow);overflow:hidden;z-index:2}.block--view{background:var(--fill-soft)}.block__spine{position:absolute;left:0;top:0;bottom:0;width:8px;background:var(--accent)}.block__name{position:absolute;left:13px;top:2px;right:4px;font-size:12px;line-height:16px;font-weight:500;color:var(--label);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none}.block--edit{left:0;background:var(--fill);display:flex;flex-direction:column;justify-content:space-between;align-items:stretch;cursor:grab;z-index:3;touch-action:none}.block--edit.is-selected{outline:2px solid var(--label);outline-offset:-2px}.block--edit.is-dragging{cursor:grabbing;z-index:8;box-shadow:0 6px 16px #00000040}.block__handle{flex:0 0 20px;display:grid;place-items:center;background:var(--accent);cursor:ns-resize;touch-action:none}.block__handle i{width:5px;height:5px;border-radius:50%;background:var(--grip)}.block__time{align-self:center;padding:2px 8px;border-radius:999px;background:#ffffffb8;color:var(--label);font-size:12px;line-height:16px;font-weight:500;font-variant-numeric:tabular-nums;white-space:nowrap;pointer-events:none}.block__mid{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;overflow:hidden}.block__kill{position:absolute;top:24px;right:4px;width:22px;height:22px;display:grid;place-items:center;border-radius:6px;background:#ffffffbf;color:var(--label);opacity:0;transition:opacity .12s ease;z-index:4}.block--edit:hover .block__kill,.block__kill:focus-visible{opacity:1}.block__kill:hover{background:#fff}.block--ghost{left:0;background:var(--fill);opacity:.75;border:1.5px dashed var(--accent);display:grid;place-items:center;z-index:9;pointer-events:none}.overlap{position:absolute;left:0;right:0;border-radius:8px;border:2px solid var(--dark);z-index:5;pointer-events:none;display:flex;align-items:center;justify-content:center;overflow:hidden}.overlap__pill{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;background:var(--dark);color:var(--line);font-size:11.5px;line-height:16px;font-weight:500;font-variant-numeric:tabular-nums;white-space:nowrap}.overlap__pill b{font-weight:600;color:#fff;opacity:.62}.empty{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none;z-index:7}.empty__card{pointer-events:auto;max-width:420px;padding:28px 32px;border-radius:16px;background:var(--paper);box-shadow:0 10px 30px #0000001a;text-align:center}.empty__card h2{margin:0 0 8px;font-size:20px;line-height:26px;font-weight:500}.empty__card p{margin:0;font-size:14px;line-height:21px;color:var(--ink-dim)}.empty__card a{color:var(--ink)}.toast{position:fixed;left:50%;bottom:24px;translate:-50% 0;padding:10px 18px;border-radius:999px;background:var(--dark);color:var(--line);font-size:13.5px;font-weight:500;box-shadow:0 8px 24px #0003;z-index:50}.add{min-height:100%;display:flex;flex-direction:column}.add__body{flex:1;overflow:auto;padding:40px 16px 80px}.add__inner{max-width:940px;margin:0 auto;display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:40px;align-items:start}@media(max-width:820px){.add__inner{grid-template-columns:minmax(0,1fr)}}.card{background:var(--paper);border-radius:16px;padding:28px;box-shadow:0 1px 2px #0000000f}.card h2{margin:0 0 4px;font-size:22px;line-height:28px;font-weight:500}.card>p.sub{margin:0 0 24px;font-size:13.5px;line-height:20px;color:var(--ink-dim)}.field{margin-bottom:20px}.field>label{display:block;margin-bottom:7px;font-size:13px;font-weight:500;color:var(--ink-dim)}.field input[type=text],.field select{width:100%;padding:11px 13px;border-radius:10px;border:1.5px solid var(--chrome);background:var(--paper);font-size:15px;outline:none;transition:border-color .12s ease}.field input[type=text]:focus,.field select:focus{border-color:var(--ink-dim)}.hueRow{display:flex;align-items:center;gap:14px}.hueRow input[type=color]{flex:0 0 auto;width:52px;height:44px;padding:0;border:1.5px solid var(--chrome);border-radius:10px;background:none;cursor:pointer}.hueRow input[type=range]{flex:1;height:22px;appearance:none;border-radius:999px;outline:none;cursor:pointer;background:linear-gradient(to right,#dd9292,#dddd92,#92dd92,#92dddd,#9292dd,#dd92dd,#dd9292)}.hueRow input[type=range]::-webkit-slider-thumb{appearance:none;width:22px;height:22px;border-radius:50%;background:var(--paper);border:3px solid var(--dark);cursor:grab}.hueRow input[type=range]::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:var(--paper);border:3px solid var(--dark);cursor:grab}.ladder{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin-top:14px}.ladder__swatch{border-radius:8px;height:44px;display:grid;place-items:end center;padding-bottom:4px;font-size:10px;font-weight:500;font-variant-numeric:tabular-nums;color:#00000073}.ladder__swatch--dark{color:#ffffffb3}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 22px;border-radius:999px;background:var(--dark);color:var(--line);font-size:15px;font-weight:500;text-decoration:none;transition:opacity .12s ease}.btn:disabled{opacity:.4;cursor:not-allowed}.btn--ghost{background:none;color:var(--ink);border:1.5px solid var(--chrome)}.btn--ghost:hover{border-color:var(--ink-dim)}.err{margin:0 0 16px;padding:10px 14px;border-radius:10px;background:#f9eced;color:#7f242d;font-size:13.5px}.roster{display:flex;flex-direction:column;gap:10px;margin-top:4px}.roster__row{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:12px;background:var(--fill-soft)}.roster__dot{flex:0 0 auto;width:32px;height:32px;border-radius:999px;display:grid;place-items:center;background:var(--paper);outline:4px solid var(--ring);font-size:11px;font-weight:600}.roster__meta{min-width:0;flex:1}.roster__meta b{display:block;font-size:14px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.roster__meta span{font-size:12px;color:var(--ink-dim)}.roster__kill{flex:0 0 auto;width:28px;height:28px;border-radius:8px;display:grid;place-items:center;color:var(--ink-dim)}.roster__kill:hover{background:#ffffffb3;color:var(--ink)}.previewCard{border-radius:12px;overflow:hidden;box-shadow:var(--shadow);background:var(--fill);height:150px;position:relative;display:flex;flex-direction:column;justify-content:space-between}
