*,:before,:after{box-sizing:border-box}html,body,#root{height:100%}html{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root,[data-theme=dark]{--bg:#05070b;--bg-accent:#3d9eff1f;--header-bg:#000;--text:#eef3f8;--text-muted:#8a9bb0;--text-subtle:#6f8298;--border:#5a8cc824;--border-strong:#5a8cc82e;--card-bg:#0c1018eb;--cell-bg:#0b0f16;--cell-hover:#121a27;--cell-selected:#132033;--cell-selected-border:#3d9eff;--accent:#3d9eff;--nav-bg:#10151e;--nav-hover:#182233;--progress-track:#24364c;--progress-red:#f87171;--progress-orange:#fb923c;--progress-yellow:#facc15;--progress-green-soft:#86efac;--progress-green:#4ade80;--input-bg:#10151ee6;--input-border:#5a8cc838;--shadow:0 18px 50px #00000047}[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f3f6fb;--bg-accent:#3d9eff14;--header-bg:#fff;--text:#152033;--text-muted:#5f7088;--text-subtle:#8a9bb0;--border:#5a78a02e;--border-strong:#5a78a047;--card-bg:#fffffff5;--cell-bg:#f8fafd;--cell-hover:#eef3fa;--cell-selected:#e8f3ff;--cell-selected-border:#3d9eff;--accent:#2563eb;--nav-bg:#f1f5fb;--nav-hover:#e6edf8;--progress-track:#d7e2ef;--progress-red:#dc2626;--progress-orange:#ea580c;--progress-yellow:#ca8a04;--progress-green-soft:#65a30d;--progress-green:#16a34a;--input-bg:#f8fafd;--input-border:#5a78a047;--shadow:0 12px 32px #0f172a14}body{background:var(--bg);min-width:320px;color:var(--text);-webkit-font-smoothing:antialiased;margin:0;font-family:Outfit,system-ui,sans-serif;overflow:hidden}button,input{font:inherit}button{cursor:pointer}h1,h2,p{margin:0}#root{width:100%}.app{background:radial-gradient(1200px 480px at 50% -120px, var(--bg-accent), transparent 70%), var(--bg);flex-direction:column;height:100svh;display:flex;overflow:hidden}.app-header{border-bottom:1px solid var(--border);background:var(--header-bg);flex-shrink:0;justify-content:center;align-items:center;height:72px;display:flex;position:relative}.brand{align-items:center;gap:10px;display:flex}.brand-logo{object-fit:contain;width:42px;height:42px}.brand h1{letter-spacing:.04em;color:var(--text);font-size:1.55rem;font-weight:600}.header-actions{align-items:center;gap:10px;display:flex;position:absolute;right:20px}.header-user{box-sizing:border-box;border:2.5px solid var(--border-strong);background:var(--nav-bg);border-radius:999px;align-items:center;gap:8px;max-width:min(260px,42vw);height:40px;padding:0 12px 0 6px;display:flex}.header-user-avatar{object-fit:cover;border-radius:50%;flex-shrink:0;width:24px;height:24px}.header-user-name{text-overflow:ellipsis;white-space:nowrap;color:var(--text);font-size:.84rem;font-weight:500;line-height:1.2;overflow:hidden}.icon-btn{box-sizing:border-box;border:2.5px solid var(--border-strong);background:var(--nav-bg);width:40px;height:40px;color:var(--text);border-radius:12px;flex-shrink:0;place-items:center;transition:background .15s,border-color .15s,color .15s;display:grid}.icon-btn:hover{background:var(--nav-hover);border-color:var(--accent)}.theme-toggle:hover{border-color:var(--accent)}.sign-out-btn{color:#ef4444;border-color:#ef444473}.sign-out-btn:hover{color:#dc2626;background:#ef44441a;border-color:#ef4444}.sign-out-icon{width:18px;height:18px;display:block}.boot-screen{color:var(--text-muted);flex:1;place-items:center;font-size:.95rem;display:grid}.sync-banner{color:#fecaca;background:#f871711f;border-bottom:1px solid #f8717159;flex-shrink:0;justify-content:center;align-items:center;gap:12px;padding:8px 16px;font-size:.85rem;display:flex}[data-theme=light] .sync-banner{color:#991b1b;background:#dc262614}.sync-banner button{height:28px;color:inherit;background:0 0;border:2.5px solid;border-radius:8px;padding:0 10px;font-size:.8rem}.auth-screen{flex:1;place-items:center;padding:24px 16px;display:grid}.auth-card{border:1px solid var(--border);background:var(--card-bg);width:min(400px,100%);box-shadow:var(--shadow);border-radius:18px;padding:28px 24px}.auth-card h2{font-size:1.35rem;font-weight:600}.auth-lead,.auth-card>p{color:var(--text-muted);margin-top:8px;font-size:.92rem;line-height:1.45}.auth-card code{color:var(--accent);font-size:.85em}.auth-form{flex-direction:column;gap:14px;margin-top:22px;display:flex}.auth-field{flex-direction:column;gap:6px;display:flex}.auth-field span{color:var(--text-muted);font-size:.82rem}.auth-field input{border:1px solid var(--input-border);background:var(--input-bg);height:42px;color:var(--text);border-radius:10px;outline:none;padding:0 12px}.auth-field input:focus{border-color:var(--accent)}.auth-password-wrap{align-items:center;display:flex;position:relative}.auth-password-wrap input{width:100%;padding-right:44px}.auth-password-wrap>.tooltip-anchor{position:absolute;top:50%;right:6px;transform:translateY(-50%)}.auth-eye{width:32px;height:32px;color:var(--text-muted);background:0 0;border:0;border-radius:8px;place-items:center;transition:color .15s,background .15s;display:grid}.auth-eye:hover{color:var(--text);background:var(--nav-hover)}.auth-eye svg{width:18px;height:18px;display:block}.auth-remember{color:var(--text-muted);-webkit-user-select:none;user-select:none;align-items:center;gap:10px;font-size:.88rem;display:flex}.auth-remember input{width:16px;height:16px;accent-color:var(--accent);cursor:pointer}.auth-error,.auth-message{margin:0;font-size:.85rem;line-height:1.4}.auth-error{color:#f87171}.auth-message{color:var(--progress-green)}.auth-submit{background:var(--accent);color:#fff;border:0;border-radius:10px;height:42px;margin-top:4px;font-weight:600;transition:opacity .15s}.auth-submit:disabled{opacity:.7;cursor:default}.auth-switch{width:100%;color:var(--text-muted);text-align:center;background:0 0;border:0;margin-top:16px;font-size:.88rem;display:block}.auth-switch:hover{color:var(--accent)}.theme-toggle svg,.theme-toggle-icon{width:20px;height:20px}.icon-mask{width:18px;height:18px;-webkit-mask-image:var(--icon);mask-image:var(--icon);-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-image:var(--icon);background-color:currentColor;display:block;-webkit-mask-position:50%;-webkit-mask-size:contain;-webkit-mask-repeat:no-repeat}.app-main{flex:1;width:min(1280px,100% - 32px);min-height:0;margin:0 auto;padding:16px 0}.workspace{align-items:stretch;gap:0;height:100%;min-height:0;display:flex}.calendar-card,.tasks-card{background:var(--card-bg);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:20px}.calendar-card{flex-direction:column;flex:1;min-width:0;min-height:0;padding:16px 16px 14px;transition:flex .35s;display:flex}.month-nav{flex-shrink:0;grid-template-columns:40px 1fr 40px;align-items:center;margin-bottom:12px;display:grid}.month-nav>.tooltip-anchor{width:40px;height:40px}.month-nav h2,.calendar-title{text-align:center;letter-spacing:.02em;font-size:1.1rem;font-weight:600}.calendar-title-btn{width:fit-content;max-width:100%;color:var(--text);letter-spacing:.02em;background:0 0;border:0;border-radius:10px;justify-self:center;padding:6px 12px;font-size:1.1rem;font-weight:600;transition:background .15s,color .15s}.calendar-title-btn:hover{background:var(--nav-hover);color:var(--accent)}.month-nav>.tooltip-anchor:has(.calendar-title-btn){justify-self:center;width:auto;height:auto}.nav-btn{border:2.5px solid var(--border-strong);background:var(--nav-bg);width:40px;height:40px;color:var(--text);border-radius:12px;place-items:center;transition:background .15s,border-color .15s;display:grid}.nav-btn:hover{background:var(--nav-hover);border-color:var(--accent)}.nav-btn svg{width:20px;height:20px}.weekday-row,.day-grid{grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.weekday-row{flex-shrink:0}.weekday{text-align:center;color:var(--text-muted);letter-spacing:.06em;text-transform:uppercase;padding:0 4px 8px;font-size:.72rem;font-weight:500}.weekday-short{display:none}.day-grid{grid-template-rows:repeat(var(--week-rows,6), minmax(0, 1fr));border:1px solid var(--border-strong);border-radius:14px;flex:1;min-height:0;overflow:hidden}.year-grid{flex:1;grid-template-rows:repeat(4,minmax(0,1fr));grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;min-height:0;padding:4px;display:grid}.year-month-cell{border:2.5px solid var(--border);background:var(--cell-bg);min-height:0;color:var(--text);border-radius:14px;place-items:center;transition:background .15s,border-color .15s,color .15s;display:grid}.year-month-cell:hover{background:var(--cell-hover);border-color:var(--accent)}.year-month-cell.is-current{color:var(--accent)}.year-month-cell.is-selected{background:var(--cell-selected);border-color:var(--cell-selected-border)}.year-month-name{letter-spacing:.02em;font-size:clamp(.85rem,1.6vw,1.05rem);font-weight:600}.day-cell{min-height:0;color:inherit;background:var(--cell-bg);border:0;border-right:1px solid var(--border);border-bottom:1px solid var(--border);flex-direction:column;justify-content:center;align-items:center;padding:4px;transition:background .15s;display:flex;position:relative}.day-cell:nth-child(7n){border-right:0}.day-cell:nth-last-child(-n+7){border-bottom:0}.day-cell:first-child{border-top-left-radius:13px}.day-cell:nth-child(7){border-top-right-radius:13px}.day-cell:nth-last-child(7){border-bottom-left-radius:13px}.day-cell:last-child{border-bottom-right-radius:13px}.day-cell:focus-visible,.nav-btn:focus-visible,.icon-btn:focus-visible,.theme-toggle:focus-visible,.sign-out-btn:focus-visible,.task-check:focus-visible,.tasks-close:focus-visible,.tasks-clear:focus-visible,.task-action:focus-visible,.auth-eye:focus-visible,.calendar-title-btn:focus-visible,.year-month-cell:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.task-form input,.task-form input:focus,.task-form input:focus-visible,.task-edit-input,.task-edit-input:focus,.task-edit-input:focus-visible{box-shadow:none;outline:none}.day-cell:hover{background:var(--cell-hover)}.day-cell.is-outside{opacity:.38}.day-cell.is-selected{z-index:1;background:var(--cell-selected)}.day-cell.is-selected:after{content:"";border:2px solid var(--cell-selected-border);border-radius:inherit;pointer-events:none;position:absolute;inset:0}.day-cell.is-today .day-number{color:var(--accent)}.day-number{letter-spacing:.04em;color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:.68rem;font-weight:600;position:absolute;top:6px;right:7px}.progress-ring{aspect-ratio:1;width:min(72%,72px);margin:0;position:relative}.progress-ring svg{width:100%;height:100%;transform:rotate(-90deg)}.progress-ring circle{fill:none;stroke-width:2.7px}.progress-track{stroke:var(--progress-track)}.progress-value{stroke-linecap:round;transition:stroke-dashoffset .4s,stroke .3s}.progress-label{letter-spacing:.01em;font-variant-numeric:tabular-nums;color:var(--text);place-items:center;font-size:clamp(.58rem,1.2vw,.82rem);font-weight:600;display:grid;position:absolute;inset:0}.progress-tick{color:var(--progress-green)}.progress-tick svg{width:52%;height:52%;transform:none}.progress-ring.is-complete .progress-value{stroke:var(--progress-green)}.tasks-panel{opacity:0;flex:0 0 0;width:0;min-width:0;transition:flex-basis .35s,width .35s,opacity .35s,transform .35s;overflow:hidden;transform:translate(16px)}.tasks-panel.is-open{opacity:1;flex:0 0 min(360px,34vw);width:min(360px,34vw);margin-left:16px;overflow:visible;transform:translate(0)}.tasks-card{isolation:isolate;flex-direction:column;height:100%;min-height:0;padding:18px 18px 16px;display:flex;overflow:hidden}.tasks-heading{flex-shrink:0;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px;display:flex}.tasks-heading h2{font-size:1rem;font-weight:600;line-height:1.3}.tasks-heading p,.empty-hint{color:var(--text-muted);font-size:.88rem}.tasks-heading p{margin-top:4px}.tasks-heading-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.tasks-clear{color:#ef4444;white-space:nowrap;background:#ef444414;border:2.5px solid #ef444466;border-radius:10px;height:34px;padding:0 12px;font-size:.8rem;font-weight:500;transition:background .15s,border-color .15s,color .15s}.tasks-clear:hover{color:#dc2626;background:#ef444424;border-color:#ef4444}.tasks-close{border:2.5px solid var(--border-strong);background:var(--nav-bg);width:34px;height:34px;color:var(--text-muted);border-radius:10px;flex-shrink:0;place-items:center;transition:background .15s,color .15s,border-color .15s;display:grid}.tasks-close:hover{color:var(--text);background:var(--nav-hover);border-color:var(--accent)}.tasks-close svg{width:18px;height:18px}.tasks-body{flex:1;min-height:0;overflow:hidden}.empty-hint{margin-top:8px}.task-list{scrollbar-width:thin;flex-direction:column;height:100%;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.task-list li{border-bottom:1px solid var(--border);flex-shrink:0;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;min-height:48px;display:grid}.task-check{border:2.5px solid var(--text-muted);width:20px;height:20px;color:var(--accent);background:0 0;border-radius:50%;flex-shrink:0;place-items:center;padding:0;transition:border-color .18s;display:grid}.task-check-tick{opacity:0;width:12px;height:12px;transition:opacity .18s,transform .18s;transform:scale(.6)}.task-text{min-width:0;font-size:.95rem;line-height:1.35}.task-list li.is-done .task-check{border-color:var(--accent)}.task-list li.is-done .task-check-tick{opacity:1;transform:scale(1)}.task-list li.is-done .task-text{color:var(--text-muted);text-decoration:line-through;text-decoration-thickness:1.5px}.task-edit-input{border:1px solid var(--input-border);background:var(--input-bg);width:100%;min-width:0;height:32px;color:var(--text);border-radius:8px;padding:0 8px}.task-actions{flex-shrink:0;align-items:center;gap:2px;display:flex}.task-action{width:28px;height:28px;color:var(--text-muted);background:0 0;border:0;border-radius:8px;place-items:center;font-size:1.25rem;line-height:1;transition:color .15s,background .15s;display:grid}.task-action:hover{color:var(--text);background:var(--nav-hover)}.task-delete:hover{color:#ff8a96;background:#ff5a6e14}.task-form{border:1px solid var(--input-border);background:var(--input-bg);border-radius:12px;flex-shrink:0;align-items:center;gap:10px;margin-top:12px;padding:8px 12px;display:flex}.task-form-icon{width:18px;height:18px;color:var(--text-subtle);flex-shrink:0}.task-form input{min-width:0;height:34px;color:var(--text);background:0 0;border:0;outline:none;flex:1}.task-form input::placeholder{color:var(--text-subtle)}.tooltip-anchor{align-items:center;line-height:normal;display:inline-flex}:is(.tooltip-anchor:has(>.icon-btn),.tooltip-anchor:has(>.nav-btn),.tooltip-anchor:has(>.tasks-close),.tooltip-anchor:has(>.task-action),.tooltip-anchor:has(>.auth-eye)){line-height:0}.app-tooltip{z-index:10000;color:#f8fafc;letter-spacing:.01em;pointer-events:none;word-break:break-word;background:#0f172a;border-radius:8px;max-width:min(280px,100vw - 16px);padding:7px 10px;font-size:.78rem;font-weight:500;line-height:1.35;box-shadow:0 10px 28px #0f172a47}[data-theme=light] .app-tooltip{color:#f8fafc;background:#152033}.app-tooltip-arrow{fill:#0f172a}[data-theme=light] .app-tooltip-arrow{fill:#152033}.modal-root{z-index:20000;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal-backdrop{cursor:pointer;background:#05070b9e;border:0;position:absolute;inset:0}.modal-card{z-index:1;border:1px solid var(--border);background:var(--card-bg);width:min(400px,100%);box-shadow:var(--shadow);border-radius:18px;padding:24px;position:relative}.modal-title{color:var(--text);margin:0;font-size:1.15rem;font-weight:600}.modal-description{color:var(--text-muted);margin:10px 0 0;font-size:.92rem;line-height:1.45}.modal-actions{justify-content:flex-end;gap:10px;margin-top:22px;display:flex}.modal-btn{border-radius:10px;height:40px;padding:0 16px;font-size:.9rem;font-weight:600;transition:background .15s,border-color .15s,color .15s}.modal-btn-secondary{border:2.5px solid var(--border-strong);background:var(--nav-bg);color:var(--text)}.modal-btn-secondary:hover{background:var(--nav-hover);border-color:var(--accent)}.modal-btn-primary{border:2.5px solid var(--accent);background:var(--accent);color:#fff}.modal-btn-primary:hover{filter:brightness(1.06)}.modal-btn-primary.is-danger{background:#ef4444;border-color:#ef4444}.modal-btn-primary.is-danger:hover{background:#dc2626;border-color:#dc2626}@media (width<=900px){.app-main{width:calc(100% - 20px);padding-top:12px}.tasks-panel.is-open{flex-basis:min(320px,42vw);width:min(320px,42vw);margin-left:12px}.weekday-full{display:none}.weekday-short{display:inline}.day-number{font-size:.62rem;top:4px;right:5px}.progress-ring{width:min(78%,58px)}}@media (width<=640px){.brand h1{font-size:1.3rem}.header-actions{right:12px}.header-actions>.tooltip-anchor:has(.header-user){display:none}.tasks-panel.is-open{flex-basis:min(280px,46vw);width:min(280px,46vw)}}
