:root{--paper: #faf5ec;--paper-deep: #f3ebdc;--card: #fffdf8;--ink: #3a3030;--ink-soft: #8a7d72;--line: #e7dcc9;--accent: #c2552e;--accent-deep: #a84522;--danger: #b3362c;--shadow: 0 1px 2px rgba(58, 48, 48, .06), 0 6px 18px -8px rgba(58, 48, 48, .18);--font-display: "Fraunces", Georgia, serif;--font-body: "Nunito Sans", system-ui, sans-serif}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--font-body);color:var(--ink);background:radial-gradient(1200px 500px at 80% -10%,rgba(194,85,46,.07),transparent 60%),radial-gradient(900px 500px at -10% 30%,rgba(18,165,148,.05),transparent 60%),var(--paper);min-height:100dvh;-webkit-font-smoothing:antialiased}button{font-family:inherit;font-size:inherit;cursor:pointer}input,textarea,select{font-family:inherit;font-size:1rem;color:var(--ink);background:var(--card);border:1.5px solid var(--line);border-radius:10px;padding:.6rem .7rem;width:100%}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #c2552e26}.app{max-width:640px;margin:0 auto;padding:calc(env(safe-area-inset-top) + 1.25rem) 1rem calc(env(safe-area-inset-bottom) + 8.5rem)}.header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:1.25rem}.header h1{font-family:var(--font-display);font-weight:900;font-size:2.1rem;margin:0;letter-spacing:-.02em}.header-date{margin:.15rem 0 0;color:var(--ink-soft);font-size:.9rem}.me-chip{width:42px;height:42px;border-radius:50%;border:2px solid var(--ink);background:var(--card);font-family:var(--font-display);font-weight:700;font-size:1.1rem;color:var(--ink);box-shadow:var(--shadow)}.filters{display:flex;gap:.6rem;align-items:center;margin-bottom:1rem}.tabs{display:flex;background:var(--paper-deep);border-radius:999px;padding:.25rem;flex:1}.tabs button{flex:1;border:none;background:transparent;border-radius:999px;padding:.45rem .5rem;font-weight:700;color:var(--ink-soft);white-space:nowrap}.tabs button.selected{background:var(--ink);color:var(--paper);box-shadow:var(--shadow)}.who{width:auto;border-radius:999px;padding:.45rem .8rem;font-weight:600}.sort-bar{display:flex;align-items:center;gap:.55rem;margin-bottom:.75rem;flex-wrap:wrap}.sort-label{font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);white-space:nowrap}.sort-tabs{display:flex;gap:.3rem;flex-wrap:wrap}.sort-tabs button{border:1.5px solid var(--line);background:transparent;color:var(--ink-soft);font-size:.75rem;font-weight:700;border-radius:999px;padding:.22rem .65rem;white-space:nowrap;transition:background .12s,color .12s,border-color .12s}.sort-tabs button.selected{background:var(--ink);border-color:var(--ink);color:var(--paper)}.color-filter{margin-left:auto}.task-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.6rem}.task{display:flex;align-items:flex-start;gap:.7rem;background:var(--card);border-radius:14px;padding:.85rem .6rem .85rem 1rem;box-shadow:var(--shadow);position:relative;animation:task-in .25s ease}@keyframes task-in{0%{opacity:0;transform:translateY(6px)}}.task:before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:var(--task-color);border-radius:14px 0 0 14px}.task.dragging{opacity:.5}.task.done{opacity:.65}.task.done .task-name{text-decoration:line-through;text-decoration-color:var(--ink-soft)}.task-check{flex-shrink:0;width:28px;height:28px;margin-top:.1rem;border-radius:50%;border:2px solid var(--task-color);background:transparent;color:#fff;font-size:.95rem;line-height:1;transition:background .15s ease}.task-check:hover{background:color-mix(in srgb,var(--task-color) 25%,transparent)}.task.done .task-check{background:var(--task-color)}.task-body{flex:1;min-width:0;cursor:pointer}.task-name{font-weight:800;font-size:1.02rem;line-height:1.3;overflow-wrap:break-word}.priority-badge{border-radius:999px;padding:.05rem .45rem;font-size:.72rem;font-weight:800;text-transform:capitalize}.priority-badge.p-high{background:#b3362c1f;color:var(--danger)}.priority-badge.p-medium{background:var(--paper-deep);color:var(--ink-soft);opacity:.7}.priority-badge.p-low{background:var(--paper-deep);color:var(--ink-soft)}.recurring{color:var(--ink-soft);margin-left:.35rem;font-weight:400}.task-desc{color:var(--ink-soft);font-size:.88rem;margin-top:.15rem;white-space:pre-wrap;overflow-wrap:break-word}.task-meta{display:flex;align-items:center;gap:.5rem;margin-top:.35rem;font-size:.8rem}.due{color:var(--ink-soft);font-weight:700}.due.overdue{color:var(--danger)}.avatar{width:20px;height:20px;border-radius:50%;background:var(--ink);color:var(--paper);display:inline-flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:800;margin-left:auto}.task-actions{position:relative;flex-shrink:0}.icon-btn{border:none;background:transparent;color:var(--ink-soft);font-size:1.3rem;line-height:1;padding:.2rem .4rem;border-radius:8px}.icon-btn:hover{background:var(--paper-deep)}.menu-backdrop{position:fixed;inset:0;z-index:5}.menu{position:absolute;right:0;top:100%;z-index:6;background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);min-width:170px;overflow:hidden}.menu button{display:block;width:100%;text-align:left;border:none;background:transparent;padding:.65rem .9rem;font-weight:600}.menu button:hover{background:var(--paper-deep)}.menu button.danger{color:var(--danger)}.empty{text-align:center;color:var(--ink-soft);padding:3.5rem 1rem}.empty-big{font-family:var(--font-display);font-size:1.6rem;font-weight:700;color:var(--ink);margin:0 0 .3rem}.fab{position:fixed;right:max(1.25rem,calc(50vw - 320px + 1.25rem));bottom:calc(env(safe-area-inset-bottom) + 4.5rem);width:60px;height:60px;border-radius:50%;border:none;background:var(--accent);color:#fff;font-size:2rem;line-height:1;box-shadow:0 8px 24px -6px #c2552e8c;transition:transform .15s ease,background .15s ease}.fab:hover{background:var(--accent-deep);transform:scale(1.06)}.sheet-backdrop{position:fixed;inset:0;background:#3a303066;display:flex;align-items:flex-end;justify-content:center;z-index:10;animation:fade-in .15s ease}@keyframes fade-in{0%{opacity:0}}.sheet{background:var(--paper);border-radius:20px 20px 0 0;padding:.75rem 1.25rem calc(env(safe-area-inset-bottom) + 1.25rem);width:100%;max-width:560px;max-height:90dvh;overflow-y:auto;animation:sheet-up .22s ease}@keyframes sheet-up{0%{transform:translateY(40px);opacity:0}}.sheet-handle{width:40px;height:4px;border-radius:2px;background:var(--line);margin:0 auto .5rem}.sheet h2{font-family:var(--font-display);font-weight:700;margin:0 0 .9rem}.field{display:block;margin-bottom:.85rem;flex:1}.field>span{display:block;font-size:.8rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);margin-bottom:.3rem}.field-row{display:flex;gap:.8rem}.swatches{display:grid;grid-template-columns:repeat(6,1fr);gap:.5rem}.swatch{aspect-ratio:1;border-radius:50%;border:3px solid transparent;padding:0;transition:transform .1s ease}.swatch:hover{transform:scale(1.1)}.swatch.selected{border-color:var(--ink);box-shadow:0 0 0 2px var(--paper),inset 0 0 0 2px var(--paper)}.segmented{display:flex;background:var(--paper-deep);border-radius:10px;padding:.2rem}.segmented button{flex:1;border:none;background:transparent;border-radius:8px;padding:.5rem .3rem;font-weight:700;color:var(--ink-soft);text-transform:capitalize}.segmented button.selected{background:var(--card);color:var(--ink);box-shadow:var(--shadow)}.sheet-actions{display:flex;justify-content:flex-end;gap:.6rem;margin-top:1rem}.form-message{color:var(--danger);font-weight:600;margin:.25rem 0 0}.settings-email{color:var(--ink-soft);margin:-.4rem 0 .9rem}.btn-primary{border:none;background:var(--accent);color:#fff;font-weight:800;border-radius:12px;padding:.7rem 1.4rem;transition:background .15s ease}.btn-primary:hover{background:var(--accent-deep)}.btn-primary:disabled{opacity:.6;cursor:default}.btn-ghost{border:1.5px solid var(--line);background:transparent;color:var(--ink);font-weight:700;border-radius:12px;padding:.7rem 1.2rem}.btn-ghost:hover{background:var(--paper-deep)}.btn-ghost.danger{color:var(--danger)}.btn-link{border:none;background:transparent;color:var(--accent);font-weight:700;padding:.6rem 0;display:block}.toast{position:fixed;left:50%;transform:translate(-50%);bottom:calc(env(safe-area-inset-bottom) + 6rem);background:var(--ink);color:var(--paper);padding:.7rem 1.2rem;border-radius:999px;font-weight:700;box-shadow:var(--shadow);z-index:20;max-width:min(90vw,480px);text-align:center;animation:task-in .2s ease}.login{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:1.5rem}.login-card{width:100%;max-width:380px;background:var(--card);border-radius:20px;box-shadow:var(--shadow);padding:2rem 1.75rem;text-align:center}.login-mark{width:64px;height:64px;margin:0 auto .9rem;border-radius:18px;border:3px solid var(--ink);background:var(--paper);color:var(--accent);font-size:2.2rem;font-weight:900;display:flex;align-items:center;justify-content:center}.login-title{font-family:var(--font-display);font-weight:900;font-size:2rem;margin:0;letter-spacing:-.02em}.login-sub{color:var(--ink-soft);margin:.3rem 0 1.5rem}.login-card form .field{text-align:left}.login-card .btn-primary{width:100%;margin-top:.25rem}.login-card .btn-link{margin:.5rem auto 0}.login-message{color:var(--ink);background:var(--paper-deep);border-radius:10px;padding:.6rem .8rem;font-weight:600;margin:1rem 0 0}.dev-login{margin-top:1.5rem;border-top:1px dashed var(--line);padding-top:1rem}.dev-login p{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft);margin:0 0 .5rem}.dev-login .btn-ghost{display:block;width:100%;margin-bottom:.4rem;font-size:.85rem}.bottom-nav{position:fixed;left:50%;transform:translate(-50%);bottom:0;width:100%;max-width:640px;display:flex;background:var(--card);border-top:1.5px solid var(--line);padding-bottom:env(safe-area-inset-bottom);z-index:8}.bottom-nav button{flex:1;border:none;background:transparent;padding:.55rem 0 .65rem;display:flex;flex-direction:column;align-items:center;gap:.15rem;font-size:.75rem;font-weight:800;color:var(--ink-soft)}.bottom-nav button.selected{color:var(--accent)}.nav-icon{font-size:1.25rem;line-height:1;position:relative}.nav-badge{position:absolute;top:-6px;right:-12px;background:var(--danger);color:#fff;font-size:.65rem;font-weight:800;border-radius:999px;min-width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center;padding:0 4px}.cal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.4rem}.cal-title{font-family:var(--font-display);font-weight:700;font-size:1.2rem;margin:0}.cal-header .icon-btn{font-size:1.6rem;padding:0 .7rem}.cal-weekdays{display:grid;grid-template-columns:repeat(7,1fr);font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft);text-align:center;margin-bottom:.25rem}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;margin-bottom:1rem}.cal-cell{aspect-ratio:1 / .95;border:1.5px solid transparent;background:var(--card);border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:.25rem .1rem .15rem;gap:.2rem;box-shadow:var(--shadow)}.cal-cell.outside{opacity:.4;box-shadow:none;background:transparent}.cal-cell.today .cal-daynum{background:var(--ink);color:var(--paper)}.cal-cell.selected{border-color:var(--accent)}.cal-daynum{font-size:.8rem;font-weight:700;width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center}.cal-dots{display:flex;flex-wrap:wrap;justify-content:center;gap:2px;max-width:90%}.cal-dot{width:6px;height:6px;border-radius:50%}.cal-more{font-size:.6rem;font-weight:800;color:var(--ink-soft)}.day-panel{margin-bottom:1rem}.day-title{font-family:var(--font-display);font-weight:700;font-size:1.05rem;margin:0 0 .5rem}.empty-small{color:var(--ink-soft);margin:0}.event-list{list-style:none;margin:0 0 1rem;padding:0;display:flex;flex-direction:column;gap:.5rem}.event-card{display:flex;gap:.7rem;background:var(--card);border-radius:12px;padding:.7rem .85rem .7rem 1rem;box-shadow:var(--shadow);position:relative;cursor:pointer}.event-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:var(--task-color);border-radius:12px 0 0 12px}.event-time{flex-shrink:0;width:5.5rem;font-size:.78rem;font-weight:800;color:var(--ink-soft);padding-top:.1rem}.event-main{min-width:0}.event-title{font-weight:800;line-height:1.3;overflow-wrap:break-word}.event-loc{color:var(--ink-soft);font-size:.85rem;margin-top:.1rem}.agenda section{margin-bottom:.75rem}.agenda section.past{opacity:.6}.earlier-btn{display:block;margin:0 auto .8rem;border:1.5px solid var(--line);background:transparent;color:var(--ink-soft);font-weight:700;font-size:.8rem;border-radius:999px;padding:.4rem .9rem}.earlier-btn:hover{color:var(--accent);border-color:var(--accent)}.share-compose{background:var(--card);border-radius:14px;box-shadow:var(--shadow);padding:.8rem;margin-bottom:1rem;display:flex;flex-direction:column;gap:.6rem}.share-compose textarea,.share-compose input{border-color:var(--paper-deep)}.share-compose-row{display:flex;align-items:center;justify-content:space-between;gap:.6rem}.share-to{display:flex;align-items:center;gap:.5rem;font-size:.8rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft)}.share-to select{width:auto;font-weight:600;text-transform:none;letter-spacing:normal}.share-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.6rem}.share-card{background:var(--card);border-radius:14px;border:1.5px solid transparent;box-shadow:var(--shadow);padding:.75rem .9rem}.share-card.incoming{background:color-mix(in srgb,var(--accent) 11%,var(--card));border-color:color-mix(in srgb,var(--accent) 30%,transparent)}.share-card.unviewed{border-color:var(--accent)}.share-card.viewed{filter:saturate(.75);opacity:.78}.share-top{display:flex;align-items:center;gap:.5rem;margin-bottom:.4rem}.share-top .avatar{margin-left:0}.share-who{font-weight:800;font-size:.85rem}.share-when{color:var(--ink-soft);font-size:.78rem;margin-left:auto}.share-content{overflow-wrap:anywhere;white-space:pre-wrap}.share-content a{color:var(--accent);font-weight:700}.share-note{color:var(--ink-soft);font-size:.88rem;margin-top:.3rem;white-space:pre-wrap}.share-foot{margin-top:.5rem}.viewed-toggle{border:1.5px solid var(--accent);background:transparent;color:var(--accent);font-weight:800;font-size:.8rem;border-radius:999px;padding:.3rem .85rem}.viewed-toggle.is-viewed{border-color:var(--line);color:var(--ink-soft)}.viewed-status{font-size:.8rem;font-weight:700;color:var(--ink-soft)}.viewed-status.is-viewed{color:var(--accent)}.thread{display:flex;flex-direction:column;gap:.4rem}.share-reply{margin-left:1.4rem;position:relative}.share-reply:before{content:"";position:absolute;left:-.85rem;top:-.45rem;width:.6rem;height:1.4rem;border-left:2px solid var(--line);border-bottom:2px solid var(--line);border-bottom-left-radius:8px}.reply-btn{border:none;background:transparent;color:var(--ink-soft);font-weight:700;font-size:.8rem;padding:.3rem .2rem;margin-left:auto}.reply-btn:hover{color:var(--accent)}.reply-box{margin-top:.4rem;background:var(--card);border-radius:12px;box-shadow:var(--shadow);padding:.6rem;display:flex;flex-direction:column;gap:.5rem}.reply-box-actions{display:flex;justify-content:flex-end;gap:.5rem}.reply-box-actions .btn-ghost,.reply-box-actions .btn-primary{padding:.45rem .9rem;font-size:.85rem}.share-foot{display:flex;align-items:center;justify-content:space-between;gap:.6rem}.viewed-filter{border:1.5px solid var(--line);background:transparent;color:var(--ink-soft);font-weight:700;font-size:.8rem;border-radius:999px;padding:.45rem .8rem;white-space:nowrap}.viewed-filter.active{background:var(--ink);border-color:var(--ink);color:var(--paper)}.app-links{position:fixed;left:50%;transform:translate(-50%);bottom:calc(env(safe-area-inset-bottom) + 3.7rem);width:100%;max-width:640px;display:flex;justify-content:center;gap:1.5rem;padding:.4rem 0;background:linear-gradient(to top,var(--paper) 65%,transparent);pointer-events:none;z-index:7}.app-links a{pointer-events:auto;color:var(--ink-soft);font-weight:700;font-size:.85rem;text-decoration:none;border-bottom:1.5px dashed var(--line)}.app-links a:hover{color:var(--accent);border-bottom-color:var(--accent)}.task-groups{display:flex;flex-direction:column;gap:1.25rem}.task-group .task-list{margin-top:.5rem}.cat-header{display:flex;align-items:center;gap:.45rem;padding-bottom:.35rem;font-size:.75rem;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:var(--ink-soft);border-bottom:1.5px solid var(--line)}.cat-header-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.cat-count{margin-left:auto;background:var(--paper-deep);border-radius:999px;padding:.05rem .45rem;font-size:.7rem;font-weight:700;color:var(--ink-soft)}.cat-editor{display:grid;grid-template-columns:1fr 1fr;gap:.4rem}.cat-editor-row{display:flex;align-items:center;gap:.4rem}.cat-editor-row input{padding:.32rem .5rem;font-size:.82rem}.cat-editor-dot{width:12px;height:12px;border-radius:50%;flex-shrink:0}@media(min-width:600px){.sheet-backdrop{align-items:center}.sheet{border-radius:20px}.sheet-handle{display:none}.swatches{grid-template-columns:repeat(12,1fr)}}
