@font-face{font-family:Fredoka;font-style:normal;font-display:swap;font-weight:300 700;src:url(/fonts/fredoka.woff2) format("woff2-variations")}:root{--blue: #2b5ce6;--blue-soft: #5b82ec;--lime: #c6f04c;--ink: #16181d;--paper: #ffffff;--paper-dim: #f1f2f4;--accent: var(--lime);--on-blue: #ffffff;--on-blue-dim: color-mix(in srgb, #fff 65%, var(--blue));--on-lime: var(--ink);--ink-dim: color-mix(in srgb, var(--ink) 55%, #fff);--focus-ring: var(--lime);--radius-card: 26px;--radius-pill: 999px;--radius-input: 14px;--font-display: "Fredoka", system-ui, sans-serif;--font-body: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--shadow-card: 0 2px 14px rgba(22, 24, 29, .08);--ease: cubic-bezier(.25, .8, .35, 1)}*{margin:0;padding:0;box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{font-family:var(--font-body);color:var(--ink);background:var(--paper-dim);line-height:1.45;-webkit-font-smoothing:antialiased}img,svg{max-width:100%;display:block}button,input,select{font:inherit;color:inherit}button{cursor:pointer;border:0;background:none}:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}::selection{background:var(--lime);color:var(--ink)}h1,h2,h3,.display{font-family:var(--font-display);font-weight:600;line-height:1.1;letter-spacing:-.01em}.label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.pill-badge{display:inline-block;padding:6px 14px;border-radius:var(--radius-pill);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.14em;background:var(--lime);color:var(--on-lime);transform:rotate(4deg)}.pill-badge.white{background:var(--paper);color:var(--blue)}.pill-badge.tilt-l{transform:rotate(-4deg)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:16px 24px;border-radius:var(--radius-pill);background:var(--ink);color:#fff;font-family:var(--font-display);font-weight:600;font-size:17px;transition:background .18s var(--ease),transform .15s var(--ease),opacity .15s}.btn:hover{background:color-mix(in srgb,var(--ink) 88%,var(--blue))}.btn:active{background:var(--lime);color:var(--on-lime);transform:scale(.98)}.btn:disabled{opacity:.35;cursor:not-allowed}.btn.ghost{background:transparent;color:var(--on-blue);border:2px solid color-mix(in srgb,#fff 35%,transparent)}.btn.ghost:hover{border-color:#fff;background:color-mix(in srgb,#fff 10%,transparent)}.btn.small{width:auto;padding:10px 18px;font-size:14px}.btn.danger{background:transparent;color:var(--ink);border:2px solid var(--ink)}.btn.danger:hover{background:var(--ink);color:#fff}.card{background:var(--paper);border-radius:var(--radius-card);padding:22px;box-shadow:var(--shadow-card)}.chip{display:inline-flex;align-items:center;justify-content:center;padding:10px 16px;border-radius:var(--radius-pill);background:var(--paper);color:var(--ink);font-weight:600;font-size:15px;border:2px solid transparent;transition:all .16s var(--ease);user-select:none}.chip:hover{border-color:var(--blue-soft)}.chip[aria-pressed=true],.chip.selected{background:var(--lime);color:var(--on-lime);border-color:transparent}.field{display:block;margin-bottom:14px}.field>span{display:block;margin-bottom:6px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--ink-dim)}.field input,.field select{width:100%;padding:13px 16px;border-radius:var(--radius-input);border:2px solid color-mix(in srgb,var(--ink) 12%,transparent);background:var(--paper);font-size:16px;transition:border-color .15s}.field input:focus{outline:none;border-color:var(--blue)}.on-blue .field>span{color:var(--on-blue-dim)}.avatar{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:50%;background:var(--blue);color:#fff;font-family:var(--font-display);font-weight:600;font-size:19px;overflow:hidden;flex-shrink:0}.avatar.lime{background:var(--lime);color:var(--on-lime)}.avatar img{width:100%;height:100%;object-fit:cover}.avatar.big{width:72px;height:72px;font-size:24px}.avatar.small{width:40px;height:40px;font-size:14px}.toggle{position:relative;width:54px;height:32px;border-radius:var(--radius-pill);background:color-mix(in srgb,var(--ink) 18%,#fff);transition:background .2s;flex-shrink:0}.toggle:after{content:"";position:absolute;top:4px;left:4px;width:24px;height:24px;border-radius:50%;background:#fff;transition:transform .2s var(--ease);box-shadow:0 1px 4px #0003}.toggle[aria-checked=true]{background:var(--lime)}.toggle[aria-checked=true]:after{transform:translate(22px)}.tabs{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;padding:4px}.tabs::-webkit-scrollbar{display:none}.tabs button{padding:10px 18px;border-radius:var(--radius-pill);font-weight:600;font-size:14px;color:var(--ink-dim);white-space:nowrap;transition:all .16s}.tabs button[aria-selected=true]{background:var(--ink);color:#fff}.tabs.on-blue button{color:var(--on-blue-dim)}.tabs.on-blue button[aria-selected=true]{background:var(--paper);color:var(--blue)}.sheet-backdrop{position:fixed;inset:0;background:#16181d8c;display:flex;align-items:flex-end;justify-content:center;z-index:50;animation:fade-in .18s var(--ease)}.sheet{background:var(--paper);border-radius:28px 28px 0 0;padding:28px 22px 34px;width:100%;max-width:520px;max-height:92dvh;overflow-y:auto;animation:sheet-up .26s var(--ease)}@media(min-width:700px){.sheet-backdrop{align-items:center}.sheet{border-radius:28px}}@keyframes sheet-up{0%{transform:translateY(40px);opacity:0}}@keyframes fade-in{0%{opacity:0}}.toast{position:fixed;bottom:22px;left:50%;transform:translate(-50%);background:var(--ink);color:#fff;padding:12px 22px;border-radius:var(--radius-pill);font-weight:600;font-size:14px;z-index:100;animation:toast-in .22s var(--ease);max-width:min(92vw,420px);text-align:center}@keyframes toast-in{0%{transform:translate(-50%,16px);opacity:0}}.pillbar{display:flex;flex-direction:column;align-items:center;gap:8px}.pillbar .track{width:44px;height:150px;border-radius:var(--radius-pill);background:var(--blue-soft);position:relative;overflow:hidden}.pillbar .fill{position:absolute;bottom:0;left:0;right:0;border-radius:var(--radius-pill);background:var(--paper);min-height:12px;transform-origin:bottom}.pillbar.top .fill{background:var(--lime)}.pillbar .pct{font-family:var(--font-display);font-weight:600;font-size:17px;color:var(--on-blue)}.pillbar .who{font-size:12px;color:var(--on-blue-dim);max-width:70px;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.circle-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;justify-items:center}.circle-grid .dow{font-size:11px;font-weight:700;letter-spacing:.1em;color:var(--on-blue-dim)}.day-circle{width:38px;height:38px;border-radius:50%;background:var(--blue-soft);display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:600;font-size:15px;color:transparent}.day-circle.active{background:var(--paper);color:var(--blue)}.day-circle.today{background:var(--lime);color:var(--on-lime)}.day-circle.blank{background:transparent}.big-stat{text-align:right}.big-stat .label{color:var(--on-blue-dim)}.big-stat .num{font-family:var(--font-display);font-weight:600;font-size:56px;line-height:1;color:var(--on-blue)}.big-stat .num.lime{color:var(--lime)}.timeline{position:relative;height:22px;border-radius:var(--radius-pill);background:var(--paper-dim);overflow:hidden}.timeline .free{position:absolute;top:0;bottom:0;background:color-mix(in srgb,var(--blue-soft) 28%,#fff);border-radius:var(--radius-pill)}.timeline .busy{position:absolute;top:3px;bottom:3px;background:var(--blue);border-radius:var(--radius-pill);min-width:10px}.timeline .now{position:absolute;top:-3px;bottom:-3px;width:3px;border-radius:2px;background:var(--lime)}.row{display:flex;align-items:center;gap:12px}.spread{display:flex;align-items:center;justify-content:space-between;gap:12px}.stack{display:grid;gap:12px}.muted{color:var(--ink-dim);font-size:14px}.on-blue .muted{color:var(--on-blue-dim)}@keyframes shake{10%,90%{transform:translate(-2px)}20%,80%{transform:translate(4px)}30%,50%,70%{transform:translate(-7px)}40%,60%{transform:translate(7px)}}.shake{animation:shake .5s var(--ease)}
