:root{--border-color:#999;--border-radius:4px;--border:2px solid var(--border-color);--border-transparent:2px solid transparent}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;font-size:18px}body{color:#000;-webkit-font-smoothing:antialiased;background:#fff;font-family:Atkinson Hyperlegible Next,Atkinson Hyperlegible,sans-serif;line-height:1.5}#app{max-width:960px;margin:0 auto;padding:2rem 1rem 4rem}#app-body{grid-template-columns:minmax(0,640px) 260px;gap:2rem;display:grid}#main-col{min-width:0}#goals-col{align-self:start;position:sticky;top:1rem}.header-row{justify-content:space-between;align-items:flex-start;margin-bottom:1.5rem;display:flex}.app-title{letter-spacing:-.02em;font-size:2rem;font-weight:700}.section-heading{text-transform:uppercase;letter-spacing:.05em;color:#555;border-bottom:1px solid #ddd;margin-bottom:.5rem;padding:.5rem 0;font-size:.85rem;font-weight:700}.add-slot{color:#bbb;cursor:text;border:1px dashed #0000;padding:.35rem .25rem;font-size:.85rem}.add-slot:hover{color:#888;border-color:#ddd}.add-slot--selected{color:#888;border:var(--border);border-radius:var(--border-radius)}.inline-edit{flex-direction:column;gap:.25rem;width:100%;display:flex}.inline-edit-row{align-items:center;gap:.5rem;display:flex;position:relative}.inline-edit-row .inline-edit-title{flex:1}.inline-edit-date-btn{border:var(--border-transparent);border-radius:var(--border-radius);cursor:pointer;color:#666;background:0 0;outline:none;flex-shrink:0;align-items:center;padding:.25rem;display:flex}.inline-edit-date-btn:hover{color:#000}.inline-edit-date-btn:focus{border-color:var(--border-color);outline:none}.inline-edit-title{border:var(--border-transparent);border-radius:var(--border-radius);background:0 0;outline:none;width:100%;padding:.35rem .5rem;font-family:inherit;font-size:.95rem;font-weight:400}.inline-edit-title:focus{border-color:var(--border-color);outline:none}.inline-edit-comment{border:var(--border-transparent);border-radius:var(--border-radius);color:#000;background:0 0;outline:none;width:100%;padding:.35rem .5rem;font-family:inherit;font-size:.8rem}.inline-edit-comment:focus{border-color:var(--border-color);outline:none}.to-schedule-section{background:#f5f5f5;border:1px solid #ddd;margin-bottom:1.5rem;padding:.75rem}.day-section{min-height:2.5rem;margin-bottom:1rem;padding:.5rem 0}.day-section--today .day-heading{font-size:1.075rem}.day-heading{color:#000;margin-bottom:.35rem;font-size:.95rem;font-weight:700}.day-section:not(.day-section--today) .day-heading{color:#333}.day-tasks:empty:after{content:""}.task-card{border:var(--border-transparent);border-radius:var(--border-radius);cursor:default;align-items:flex-start;gap:.5rem;min-height:2.25rem;padding:.4rem 2.5rem .4rem .25rem;display:flex;position:relative}.task-card:hover{background:#fafafa}.task-card--selected{border:var(--border)}.task-card--done .task-title{color:#aaa;text-decoration:line-through}.task-card--done .task-comment{color:#ccc;text-decoration:line-through}.task-checkbox{cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;width:1.25rem;height:1.25rem;margin-top:.1rem;display:flex;position:relative}.task-checkbox input[type=checkbox]{appearance:none;border:var(--border);border-radius:var(--border-radius);cursor:pointer;background:#fff;justify-content:center;align-items:center;width:1.25rem;height:1.25rem;display:flex}.task-checkbox input[type=checkbox]:checked{background:#000;border-color:#000}.task-checkbox input[type=checkbox]:checked:after{content:"✓";color:#fff;font-size:.85rem;font-weight:700;line-height:1}.task-content{flex:1;min-width:0}.task-title{word-break:break-word;font-size:.95rem}.task-comment{color:#888;word-break:break-word;margin-top:.1rem;font-size:.8rem}.task-comment a{color:#555;text-decoration:underline}.task-comment a:hover{color:#000}.task-date-btn{opacity:0;cursor:pointer;background:0 0;border:none;padding:.35rem;line-height:1;position:absolute;top:0;right:1.25rem}.task-card:hover .task-date-btn{opacity:1}.task-date-btn:hover{transform:scale(1.2)}.task-delete{opacity:0;color:#999;cursor:pointer;background:0 0;border:none;padding:0 .25rem;font-size:1.1rem;line-height:1;position:absolute;top:.2rem;right:.25rem}.task-card:hover .task-delete{opacity:1}.task-delete:hover{color:#000}.task-card[draggable=true]{cursor:grab}.task-card.dragging{opacity:.4}.day-section.drag-over,.to-schedule-section.drag-over{outline-offset:-2px;outline:2px dashed #000}.drop-indicator{background:#000;height:2px;margin:0 .25rem}.goals-section{margin-top:0}.goals-weekly{margin-bottom:1rem}.goals-quarterly{margin-top:1rem}.task-card:has(.goal-confirm){padding-right:.25rem}.goal-confirm{border:var(--border);border-radius:var(--border-radius);background:#fafafa;flex-direction:column;gap:.5rem;width:100%;padding:.5rem .5rem .6rem;display:flex}.goal-confirm-message{color:#000;font-size:.85rem}.goal-confirm-actions{gap:.4rem;display:flex}.goal-confirm-yes,.goal-confirm-no{border:1px solid var(--border-color);border-radius:var(--border-radius);cursor:pointer;background:#fff;padding:.25rem .6rem;font-family:inherit;font-size:.8rem}.goal-confirm-yes{color:#fff;background:#000;border-color:#000}.goal-confirm-yes:hover{background:#333}.goal-confirm-no:hover{background:#f0f0f0}.done-log-section{margin-top:2rem}.done-group{margin-bottom:.5rem}.done-group summary{color:#888;cursor:pointer;padding:.25rem 0;font-size:.85rem;font-weight:700;list-style:none}.done-group summary:before{content:"▶ ";font-size:.65rem;transition:transform .15s;display:inline-block}.done-group[open] summary:before{transform:rotate(90deg)}.done-tasks{padding-left:.75rem}#week-nav{border-top:1px solid #ddd;justify-content:space-between;margin-top:2rem;padding-top:1rem;display:flex}.nav-link{color:#555;font-size:.85rem;text-decoration:none}.nav-link:hover{color:#000;text-decoration:underline}@media (width<=768px){#app{max-width:640px}#app-body{grid-template-columns:1fr}#goals-col{position:static}.goals-section{margin-top:1.5rem}}@media (width<=480px){#app{padding:1rem .75rem 3rem}.task-delete{opacity:1}}@media (hover:none) and (pointer:coarse){.task-card{min-height:2.75rem;padding:.6rem 2.75rem .6rem .35rem}.day-section{margin-bottom:1.5rem}.add-slot{padding:.6rem .5rem}.inline-edit-title,.inline-edit-comment{padding:.55rem .6rem}.inline-edit{gap:.5rem}.goal-confirm-yes,.goal-confirm-no{padding:.5rem .9rem}.goal-confirm-actions{gap:.6rem}.done-group summary{padding:.6rem 0}.nav-link{padding:.5rem 0;display:inline-block}}:focus-visible{outline:var(--border);outline-offset:2px}button:focus:not(:focus-visible),input:focus:not(:focus-visible){outline:none}.login-screen{text-align:center;padding:4rem 1rem}.login-subtitle{color:#666;margin:.5rem 0 2rem;font-size:.9rem}.login-btn{border:var(--border);border-radius:var(--border-radius);color:#fff;cursor:pointer;background:#000;padding:.75rem 2rem;font-family:inherit;font-size:.95rem}.login-btn:hover{background:#333}.loading-screen{text-align:center;color:#666;padding:4rem 1rem}.sync-error-banner{color:#666;text-align:center;background:#f5f5f5;border-bottom:1px solid #ccc;padding:.5rem;font-size:.8rem;display:none}.sign-out-link{color:#999;font-size:.8rem;text-decoration:none}.sign-out-link:hover{color:#000;text-decoration:underline}.datepicker-popover{z-index:1000;border:var(--border);border-radius:var(--border-radius);-webkit-user-select:none;user-select:none;background:#fff;min-width:15rem;padding:.5rem;font-family:inherit;font-size:.85rem;position:fixed;box-shadow:0 6px 20px #0000001f}.datepicker-header{justify-content:space-between;align-items:center;margin-bottom:.35rem;display:flex}.datepicker-label{color:#000;font-weight:600}.datepicker-nav{border:var(--border-transparent);border-radius:var(--border-radius);cursor:pointer;color:#666;background:0 0;padding:.1rem .4rem;font-size:1rem;line-height:1}.datepicker-nav:hover{color:#000}.datepicker-nav:focus{border-color:var(--border-color);outline:none}.datepicker-weekdays,.datepicker-grid{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.datepicker-weekday{text-align:center;color:#999;padding:.2rem 0;font-size:.7rem}.datepicker-day{border:var(--border-transparent);border-radius:var(--border-radius);cursor:pointer;color:#000;text-align:center;background:0 0;min-width:1.8rem;padding:.3rem 0;font-family:inherit;font-size:.85rem}.datepicker-day:hover{background:#f0f0f0}.datepicker-day--other-month{color:#ccc}.datepicker-day--today{border-color:var(--border-color)}.datepicker-day--selected{color:#fff;background:#000}.datepicker-day--selected:hover{background:#333}.datepicker-day--focused:focus,.datepicker-day:focus{border-color:var(--border-color);outline:none}.datepicker-footer{border-top:1px solid #eee;justify-content:space-between;margin-top:.35rem;padding-top:.35rem;display:flex}.datepicker-action{border:var(--border-transparent);border-radius:var(--border-radius);cursor:pointer;color:#666;background:0 0;padding:.2rem .5rem;font-family:inherit;font-size:.8rem}.datepicker-action:hover{color:#000}.datepicker-action:focus{border-color:var(--border-color);outline:none}
