:root{font-family:Segoe UI,Arial,sans-serif;color:#222;background:#fff;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--ink: #222222;--muted: #666666;--line: #e5e7eb;--surface: #f8f9fa;--primary: #245ea8;--primary-hover: #194b8b;--success: #286744;--error: #a33b3b}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0;background:#fff}button,input,textarea{font:inherit}button{cursor:pointer}button:disabled,input:disabled{cursor:not-allowed;opacity:.6}:focus-visible{outline:3px solid #78a7de;outline-offset:2px}.shell{max-width:980px;margin:0 auto;padding:0 28px}.topbar{min-height:64px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{color:var(--ink);font-size:19px;font-weight:700;text-decoration:none}.topbar-actions{display:flex;align-items:center;gap:10px}.user-email{max-width:250px;overflow:hidden;color:var(--muted);font-size:13px;text-overflow:ellipsis;white-space:nowrap}.page-heading{padding:34px 0 24px}.page-heading h1{margin:0 0 5px;font-size:27px;font-weight:650;letter-spacing:-.4px}.page-heading p{margin:0;color:var(--muted);font-size:14px}.button{min-height:40px;padding:0 14px;border:1px solid transparent;border-radius:5px;font-size:14px;font-weight:600}.button-primary{color:#fff;background:var(--primary)}.button-primary:hover{background:var(--primary-hover)}.button-secondary{border-color:var(--line);color:var(--ink);background:#fff}.button-secondary:hover{background:var(--surface)}.task-panel{border-top:1px solid var(--line)}.panel-heading{min-height:64px;display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--line)}.panel-heading h2{display:flex;align-items:center;gap:9px;margin:0;font-size:17px;font-weight:650}.count-pill{color:var(--muted);font-size:13px;font-weight:400}.search-box{width:min(260px,45%)}.search-box input{width:100%;min-height:38px;padding:7px 10px;border:1px solid var(--line);border-radius:5px;color:var(--ink);background:#fff;font-size:14px}.search-box input::placeholder,.task-dialog input::placeholder,.task-dialog textarea::placeholder{color:#737373}.toolbar{min-height:49px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line)}.filter-tabs{display:flex;align-items:center;gap:5px}.filter-tab{min-height:36px;padding:0 10px;border:0;border-radius:4px;color:var(--muted);background:transparent;font-size:13px}.filter-tab:hover{background:var(--surface)}.filter-tab.active{color:var(--primary);background:#eef4fb;font-weight:600}.page-caption{color:var(--muted);font-size:12px;text-align:right}.feedback:empty{display:none}.notice{margin:12px 0;color:var(--success);font-size:13px}.error-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:12px 0;padding:10px 12px;border:1px solid #eedada;border-radius:4px;color:var(--error);background:snow;font-size:13px}.error-banner button{min-height:36px;border:0;color:inherit;background:transparent;font-weight:600}.loading-state{padding:36px 0;color:var(--muted);font-size:14px;text-align:center}.empty-state{padding:48px 16px;text-align:center}.empty-state h3{margin:0 0 7px;font-size:16px;font-weight:600}.empty-state p{margin:0 0 17px;color:var(--muted);font-size:14px}.task-list{margin:0;padding:0;list-style:none}.task-row{display:grid;grid-template-columns:24px minmax(0,1fr) auto;align-items:start;gap:12px;padding:17px 4px;border-bottom:1px solid var(--line)}.complete-toggle{width:20px;height:20px;margin:1px 0 0;accent-color:var(--primary);cursor:pointer}.task-content{min-width:0}.task-title-line{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.task-title-line h3{overflow-wrap:anywhere;margin:0;font-size:15px;font-weight:600;line-height:1.4}.status-badge{color:var(--muted);font-size:12px}.status-badge.done{color:var(--success)}.is-complete .task-title-line h3{color:#555;text-decoration:line-through}.task-description{margin:5px 0 0;color:#4f4f4f;font-size:13px;line-height:1.5;overflow-wrap:anywhere}.task-date{margin:6px 0 0;color:var(--muted);font-size:12px}.task-actions{display:flex;align-items:center;gap:4px}.task-actions button{min-width:44px;min-height:40px;padding:0 8px;border:0;border-radius:4px;color:#444;background:transparent;font-size:13px}.task-actions button:hover{background:var(--surface)}.task-actions .delete-action{color:var(--error)}.pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 0;color:var(--muted);font-size:13px}.pagination button{min-height:40px;padding:0 11px;border:1px solid var(--line);border-radius:4px;color:var(--ink);background:#fff;font-size:13px}.pagination button:hover:not(:disabled){background:var(--surface)}.pagination button:disabled{cursor:not-allowed;opacity:.55}.footer{padding:22px 0;color:var(--muted);font-size:12px}.dialog-backdrop{position:fixed;z-index:3;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;overflow-y:auto;padding:16px;background:#2226}.task-dialog{position:relative;width:min(100%,440px);max-height:calc(100vh - 32px);overflow-y:auto;padding:26px;border:1px solid var(--line);border-radius:6px;background:#fff}.dialog-close{position:absolute;top:12px;right:12px;width:40px;height:40px;border:0;border-radius:4px;color:#444;background:transparent;font-size:23px}.dialog-close:hover{background:var(--surface)}.task-dialog h2{margin:0 44px 5px 0;font-size:20px;font-weight:650}.dialog-copy{margin:0 0 20px;color:var(--muted);font-size:14px}.task-dialog form{display:flex;flex-direction:column;gap:8px}.task-dialog label{color:var(--ink);font-size:13px;font-weight:600}.task-dialog label>span:first-child{color:var(--error)}.task-dialog label .optional{color:var(--muted);font-weight:400}.field-heading{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.character-count,.field-help{color:var(--muted);font-size:12px}.field-help{margin:-3px 0 6px}.task-dialog input,.task-dialog textarea{width:100%;min-height:42px;padding:9px 10px;border:1px solid #c9cdd3;border-radius:4px;color:var(--ink);background:#fff;font-size:14px}.task-dialog textarea{min-height:104px;resize:vertical}.task-dialog input[aria-invalid=true]{border-color:var(--error)}.form-error{margin:4px 0 0;color:var(--error);font-size:13px}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}.auth-shell{min-height:100vh}.auth-panel{width:min(100%,410px);margin:clamp(36px,9vh,84px) auto 48px;padding:26px;border:1px solid var(--line);border-radius:5px;background:#fff}.auth-panel h1{margin:0 0 6px;font-size:22px;font-weight:650}.auth-intro{margin:0 0 22px;color:var(--muted);font-size:14px}.auth-panel form{display:flex;flex-direction:column;gap:9px}.auth-panel form>label:not(.password-visibility){margin-top:5px;font-size:13px;font-weight:600}.auth-panel form>input{width:100%;min-height:42px;padding:9px 10px;border:1px solid #c9cdd3;border-radius:4px;color:var(--ink);background:#fff;font-size:14px}.password-visibility{display:flex;align-items:center;gap:8px;min-height:36px;color:#444;font-size:13px}.password-visibility input{width:16px;height:16px;accent-color:var(--primary)}.auth-submit{width:100%;margin-top:8px}.auth-switch{margin:20px 0 0;color:var(--muted);font-size:13px;text-align:center}.auth-switch button{padding:5px;border:0;color:var(--primary);background:transparent;font-weight:600}.auth-switch button:hover{text-decoration:underline}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;clip-path:inset(50%)}@media(max-width:600px){.shell{padding:0 16px}.topbar{gap:8px}.topbar-actions{gap:5px}.topbar-actions .button{min-height:40px;padding:0 9px;font-size:12px}.user-email{max-width:100px;font-size:11px}.page-heading{padding:26px 0 20px}.page-heading h1{font-size:24px}.panel-heading{align-items:stretch;flex-direction:column;gap:10px;padding:14px 0}.search-box{width:100%}.toolbar{align-items:flex-start;flex-direction:column;gap:4px;padding:7px 0}.filter-tabs{width:100%}.page-caption{padding:0 10px 4px;text-align:left}.task-row{grid-template-columns:24px minmax(0,1fr);gap:8px 10px;padding:15px 2px}.task-actions{grid-column:2}.task-actions button{min-width:48px}.dialog-backdrop{align-items:start}.task-dialog{margin:auto 0;padding:22px 18px}.auth-panel{margin-top:42px;padding:20px 17px}}
