@import url("https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=Archivo:wght@400;500;600;700;800;900&family=Hanken+Grotesk:wght@400;500;600;700;800&display=swap");*,:after,:before{box-sizing:border-box}:root{--ink:#111218;--bg:#ffffff;--backdrop:#f3f4f0;--muted:#6c7280;--faint:#9ca3af;--hairline:#e8e8e3;--note-yellow:oklch(0.93 0.05 95);--white:#ffffff;--font-default:"Space Grotesk",sans-serif;--desktop-bg:#b0b8c1}body,html{margin:0;padding:0;background:var(--backdrop);min-height:100dvh;font-family:var(--font-default);color:var(--ink);-webkit-font-smoothing:antialiased}button,input,select,textarea{font-family:inherit}input:focus{outline:none}::-webkit-scrollbar{width:0;height:0}.desktop-only{display:none!important}.mobile-only{display:flex!important}@media (min-width:768px){.desktop-only{display:flex!important}.mobile-only{display:none!important}}.os-desktop{width:100vw;height:100dvh;background-color:var(--desktop-bg);background-image:linear-gradient(rgba(176,184,193,.8),rgba(176,184,193,.8)),url(https://res.cloudinary.com/dmukukwp6/image/upload/keyboard_garden_bg_dark_9ab088797a.png);background-size:auto,200px 200px;background-repeat:repeat;display:flex;flex-direction:column;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;user-select:none}.os-menubar{flex:none;height:38px;background:rgba(0,0,0,.45);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border-bottom:1px solid rgba(255,255,255,.08);justify-content:space-between;padding:0 14px}.os-menubar,.os-menubar-brand{display:flex;align-items:center}.os-menubar-brand{font-weight:700;font-size:13px;letter-spacing:-.01em;color:rgba(255,255,255,.88);gap:7px}.os-menubar-user{display:flex;align-items:center;gap:8px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18);border-radius:20px;padding:3px 10px 3px 3px;cursor:pointer;font-family:inherit;transition:background .15s}.os-menubar-user:hover{background:rgba(255,255,255,.2)}.os-menubar-username{font-size:12.5px;font-weight:600;color:rgba(255,255,255,.88)}.os-desktop-area{flex:1 1;display:flex;min-height:0;gap:0}.os-dock{width:88px;flex:none;padding:20px 0 16px;gap:4px;overflow-y:auto;order:-1}.os-dock,.os-icon{display:flex;flex-direction:column;align-items:center}.os-icon{gap:5px;background:none;border:none;cursor:pointer;padding:7px 6px;border-radius:12px;width:80px;font-family:inherit;transition:background .12s}.os-icon:hover{background:rgba(255,255,255,.1)}.os-icon.active{background:rgba(255,255,255,.15)}.os-icon-img{width:56px;height:56px;display:flex;align-items:center;justify-content:center;filter:drop-shadow(0 2px 4px rgba(0,0,0,.3)) drop-shadow(0 1px 2px rgba(0,0,0,.12));transition:transform .12s,filter .12s}.os-icon:hover .os-icon-img{transform:scale(1.07)}.os-icon.active .os-icon-img{filter:drop-shadow(0 0 0 2px rgba(255,255,255,.9)) drop-shadow(0 3px 10px rgba(0,0,0,.28))}.os-icon-label{font-size:10px;font-weight:600;color:rgba(255,255,255,.9);text-align:center;text-shadow:0 1px 3px rgba(0,0,0,.7);line-height:1.25}.os-window-area{flex:1 1;min-width:0;padding:14px 18px 14px 6px;display:flex}@media (max-width:767px){.os-desktop-area{flex-direction:column}.os-dock{order:0;width:100%;height:auto;flex-direction:row;justify-content:space-around;padding:6px 4px calc(8px + env(safe-area-inset-bottom));overflow-y:visible;overflow-x:auto;border-top:1px solid rgba(255,255,255,.1);background:rgba(0,0,0,.35);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}.os-icon{flex:1 1;max-width:80px;width:auto;padding:6px 2px}.os-icon-img{width:44px;height:44px}.os-window-area{flex:1 1;min-height:0;padding:8px 10px 6px}}.os-window{flex:1 1;background:var(--bg);border-radius:12px;box-shadow:0 24px 80px rgba(0,0,0,.3),0 4px 16px rgba(0,0,0,.12);display:flex;flex-direction:column;overflow:hidden}.os-titlebar{flex:none;height:42px;background:#f0efed;border-bottom:1px solid var(--hairline);display:flex;align-items:center;padding:0 14px;gap:0;border-radius:12px 12px 0 0;flex-shrink:0}.os-traffic-lights{display:flex;gap:7px;flex:none;width:52px}.os-dot{width:13px;height:13px;border-radius:50%}.os-window-title{flex:1 1;font-size:12.5px;font-weight:600;color:var(--muted);text-align:center}.os-titlebar-action{width:52px;display:flex;justify-content:flex-end}.os-window-content{flex:1 1;min-height:0;overflow-y:auto;position:relative}.app-main{flex:1 1;min-width:0;display:flex;flex-direction:column;height:100dvh;background:var(--bg);overflow:hidden;position:relative}.mobile-header{flex:none;display:flex;justify-content:space-between;align-items:center;padding:20px 20px 8px}.app-content{flex:1 1;min-height:0;overflow-y:auto}.auth-page{width:100%;max-width:440px;min-height:100dvh;background:var(--bg);margin:0 auto;padding:48px 24px 32px;display:flex;flex-direction:column;box-shadow:0 0 60px rgba(0,0,0,.06)}.chip{flex:none;padding:6px 13px;border-radius:7px;border:1.5px solid var(--hairline);background:var(--white);color:var(--muted);font-weight:600;font-size:12px;white-space:nowrap;cursor:pointer;transition:border-color .1s,background .1s,color .1s}.chip:hover{border-color:var(--ink);color:var(--ink)}.chip.active{background:var(--ink);border-color:var(--ink);color:var(--white)}.tile-event,.tile-note{border-radius:12px;padding:14px;display:flex;flex-direction:column;gap:10px}.tile-note{box-shadow:1px 2px 6px rgba(0,0,0,.1)}.tile-todo{border:1.5px solid var(--hairline);border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:10px}.tag-row{display:flex;align-items:center;gap:5px;flex:none}.tag-dot{width:6px;height:6px;border-radius:50%}.tag-label{font-weight:700;font-size:9px;letter-spacing:.07em;text-transform:uppercase;color:var(--faint)}.tag-label-note{color:#8a7d4e}.checkbox{width:22px;height:22px;border:1.5px solid var(--hairline);border-radius:6px;flex:none;cursor:pointer;display:flex;align-items:center;justify-content:center;background:transparent;padding:0;transition:background .1s,border-color .1s}.checkbox:hover{border-color:var(--muted)}.checkbox.done{background:var(--ink);border-color:var(--ink)}.points-pill{font-weight:700;font-size:12px;background:rgba(0,0,0,.06);padding:2px 8px;border-radius:20px}.btn-primary{text-align:center;background:var(--ink);color:var(--white);border-radius:8px;padding:14px;font-weight:600;font-size:14px;cursor:pointer;border:none;width:100%;transition:opacity .1s}.btn-primary:hover{opacity:.88}.btn-primary:disabled{opacity:.4;cursor:not-allowed}.btn-primary-sm{text-align:center;background:var(--ink);color:var(--white);border-radius:7px;padding:7px 14px;font-weight:600;font-size:12.5px;cursor:pointer;border:none;white-space:nowrap;transition:opacity .1s}.btn-primary-sm:hover{opacity:.88}.btn-outline{text-align:center;background:transparent;color:var(--ink);border-radius:8px;padding:13px;font-weight:600;font-size:14px;cursor:pointer;border:1.5px solid var(--hairline);width:100%;transition:border-color .1s}.btn-outline:hover{border-color:var(--ink)}.input{width:100%;border:1.5px solid var(--hairline);border-radius:8px;padding:12px 14px;font-size:14px;font-weight:500;background:var(--white);color:var(--ink);transition:border-color .1s}.input:focus{border-color:var(--ink)}.input::placeholder{color:var(--faint)}.seg-group{display:flex;gap:6px}.seg{flex:1 1;text-align:center;padding:9px;border-radius:7px;border:1.5px solid var(--hairline);background:var(--white);color:var(--muted);font-weight:600;font-size:13px;cursor:pointer;transition:background .1s,color .1s,border-color .1s}.seg:hover{color:var(--ink)}.seg.active,.seg:hover{border-color:var(--ink)}.seg.active{background:var(--ink);color:var(--white)}.tab-bar{flex:none;border-top:1px solid var(--hairline);display:flex;align-items:center;padding:10px 6px 16px;background:var(--bg)}.tab-item{flex:1 1;flex-direction:column;gap:5px;background:none;border:none;padding:0;color:#aab1bb;font-size:9px;font-weight:700;letter-spacing:.06em}.fab,.tab-item{display:flex;align-items:center;cursor:pointer}.fab{position:absolute;right:18px;bottom:88px;width:52px;height:52px;border-radius:14px;color:var(--white);justify-content:center;font-size:28px;font-weight:400;box-shadow:0 6px 20px rgba(20,24,29,.22);border:none;line-height:1}.sheet-overlay{position:fixed;inset:0;background:rgba(20,24,29,.35);display:flex;align-items:flex-end;z-index:100}.sheet{width:100%;background:var(--bg);border-radius:20px 20px 0 0;padding:20px 20px 24px;max-height:88dvh;overflow-y:auto}.avatar{display:flex;align-items:center;justify-content:center;font-weight:700;flex:none}.avatar-14{font-size:16px}.avatar-13,.avatar-14{width:38px;height:38px;border-radius:10px}.avatar-13{font-size:15px}.avatar-16{width:48px;height:48px;border-radius:13px;font-size:21px}.avatar-sm{width:28px;height:28px;border-radius:7px;font-size:12px}.swatch-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:10px;gap:10px}.swatch{aspect-ratio:1;border-radius:12px;display:flex;align-items:center;justify-content:center;cursor:pointer}.swatch.selected{outline:2.5px solid var(--ink);outline-offset:3px}.progress-track{height:6px;border-radius:20px;background:var(--backdrop);overflow:hidden}.progress-fill{height:100%;border-radius:20px;transition:width .3s ease}.toggle-track{width:42px;height:24px;border-radius:20px;position:relative;transition:background .15s;flex:none}.toggle-thumb{position:absolute;top:3px;width:18px;height:18px;border-radius:50%;transition:left .15s}.card,.toggle-thumb{background:var(--white)}.card{border:1.5px solid var(--hairline);border-radius:12px;padding:12px 14px}.loading{display:flex;align-items:center;justify-content:center;flex:1 1;color:var(--faint);font-weight:600}.error-banner{background:oklch(.96 .02 25);color:oklch(.45 .15 25);border-radius:8px;padding:11px 14px;font-size:13px;font-weight:600;margin-bottom:12px}.board-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px;grid-auto-flow:dense}@media (min-width:768px){.board-grid{grid-template-columns:repeat(4,1fr)}}