:root{--background:#f7f7f4;--surface:#fff;--text:#161923;--muted:#697080;--border:#dfe2e8;--accent:#334b9b;--accent-hover:#293e83;--success:#3d9566;--danger:#b43b3b}*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{background:var(--background);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible{outline-offset:2px;outline:3px solid rgba(51,75,155,.25)}a:focus-visible{outline-offset:2px;outline:3px solid rgba(51,75,155,.25)}input:focus-visible{outline-offset:2px;outline:3px solid rgba(51,75,155,.25)}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.login-page{justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.login-card{background:var(--surface);border:1px solid var(--border);text-align:center;border-radius:16px;width:100%;max-width:440px;padding:48px;box-shadow:0 18px 50px rgba(31,35,48,.08)}.login-mark{background:var(--accent);color:#fff;border-radius:12px;justify-content:center;align-items:center;width:44px;height:44px;font-size:22px;display:inline-flex}.login-brand{font-size:18px;font-weight:700;color:var(--text)!important;margin:14px 0 32px!important}.login-card h1{letter-spacing:-.04em;margin:0 0 12px;font-size:max(28px,min(5vw,36px))}.login-card p{color:var(--muted);margin:0;line-height:1.6}.login-button{background:var(--accent);color:#fff;border-radius:8px;margin:28px 0 16px;padding:13px 18px;font-weight:650;text-decoration:none;display:block}.login-button:hover,.primary-button:hover,.small-primary:hover{background:var(--accent-hover)}.login-card small{color:var(--muted);font-size:13px}.app-shell{min-height:100vh}.topbar{border-bottom:1px solid var(--border);background:rgba(255,255,255,.96);justify-content:space-between;align-items:center;height:72px;padding:0 max(24px,50vw - 580px);display:flex}.brand{color:var(--text);letter-spacing:-.03em;font-size:22px;font-weight:750;text-decoration:none}.account-menu{align-items:center;gap:12px;display:flex}.avatar{color:#28396f;background:#e8eaf3;border-radius:50%;justify-content:center;align-items:center;width:34px;height:34px;font-size:12px;font-weight:750;display:inline-flex}.account-name{text-overflow:ellipsis;white-space:nowrap;max-width:220px;font-size:14px;overflow:hidden}.logout-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;border-left:1px solid var(--border);color:var(--muted);cursor:pointer;background:0 0;margin-left:4px;padding:0 0 0 16px;font-family:inherit;font-size:14px;line-height:1.2}.logout-button:hover{color:var(--text)}.dashboard{max-width:1160px;margin:0 auto;padding:48px 24px 72px}.page-heading{justify-content:space-between;align-items:flex-start;min-height:70px;margin-bottom:28px;display:flex}.page-heading h1{letter-spacing:-.045em;margin:0 0 8px;font-size:max(32px,min(5vw,42px))}.page-heading p{color:var(--muted);margin:0}.toast{background:var(--surface);border:1px solid #d7e8dc;border-radius:8px;align-items:center;gap:8px;padding:12px 16px;font-size:14px;display:flex;box-shadow:0 8px 24px rgba(31,35,48,.08)}.toast span{background:var(--success);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;display:inline-flex}.add-form{background:var(--surface);border:1px solid var(--border);border-radius:10px;grid-template-columns:minmax(220px,1.5fr) minmax(180px,1fr) 160px;gap:10px;padding:16px;display:grid}input{color:var(--text);background:#fff;border:1px solid #cfd3dc;border-radius:7px;min-width:0;padding:11px 13px}input::placeholder{color:#858b98}.primary-button,.small-primary{background:var(--accent);color:#fff;cursor:pointer;border:0;border-radius:7px;font-weight:650}button:disabled{cursor:not-allowed;opacity:.55}.list-tools{justify-content:space-between;align-items:center;margin:32px 0 16px;display:flex}.filters{display:flex}.filters button{background:var(--surface);border:1px solid var(--border);color:#343946;cursor:pointer;min-width:92px;padding:10px 16px}.filters button:first-child{border-radius:7px 0 0 7px}.filters button:last-child{border-radius:0 7px 7px 0}.filters button+button{border-left:0}.filters button.selected{background:var(--accent);border-color:var(--accent);color:#fff}.search-box{background:var(--surface);border:1px solid var(--border);border-radius:7px;align-items:center;gap:8px;width:100%;max-width:330px;padding-left:12px;display:flex}.search-box span{color:var(--muted);font-size:22px;line-height:1}.search-box input{border:0;outline:0;width:100%;padding-left:0}.task-list{background:var(--surface);border:1px solid var(--border);border-radius:10px;overflow:hidden}.task-row{grid-template-columns:42px minmax(200px,1fr) 170px auto;align-items:center;gap:18px;min-height:88px;padding:16px 20px;display:grid}.task-row+.task-row{border-top:1px solid var(--border)}.complete-button{color:#fff;cursor:pointer;background:#fff;border:1.5px solid #848b99;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;font-weight:700;display:flex}.is-complete .complete-button{background:var(--success);border-color:var(--success)}.task-copy h2{margin:0;font-size:16px;font-weight:650}.task-copy p{color:var(--muted);margin:5px 0 0;font-size:14px;line-height:1.45}.is-complete .task-copy h2,.is-complete .task-copy p{color:#858b96;text-decoration:line-through}.task-row time{color:var(--muted);font-size:13px}.task-actions,.edit-actions{gap:6px;display:flex}.task-actions button,.edit-actions button{color:#4c5361;cursor:pointer;background:0 0;border:1px solid transparent;border-radius:6px;padding:7px 9px;font-size:13px}.task-actions button:hover,.edit-actions button:hover{background:#f1f2f5}.task-actions .delete-button{color:var(--danger)}.edit-form{grid-column:2/-1;grid-template-columns:minmax(160px,1fr) minmax(160px,1fr) auto;align-items:center;gap:8px 12px;display:grid}.edit-actions .small-primary{background:var(--accent);color:#fff;padding-left:14px;padding-right:14px}.dialog-backdrop{z-index:10;background:rgba(22,25,35,.42);justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.confirm-dialog{background:var(--surface);border-radius:12px;width:100%;max-width:400px;padding:24px;box-shadow:0 20px 60px rgba(22,25,35,.22)}.confirm-dialog h2{letter-spacing:-.02em;margin:0 0 8px;font-size:20px}.confirm-dialog p{color:var(--muted);margin:0;line-height:1.5}.dialog-actions{justify-content:flex-end;gap:10px;margin-top:24px;display:flex}.dialog-actions button{border:1px solid var(--border);color:var(--text);cursor:pointer;background:#fff;border-radius:7px;padding:10px 14px;font-weight:650}.dialog-actions .dialog-confirm{background:var(--accent);border-color:var(--accent);color:#fff}.dialog-actions .dialog-danger{background:var(--danger);border-color:var(--danger);color:#fff}.empty-state{background:var(--surface);border:1px solid var(--border);text-align:center;border-radius:10px;padding:64px 24px}.empty-check{color:var(--success);background:#edf5ef;border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;font-size:22px;display:inline-flex}.empty-state h2{margin:16px 0 6px;font-size:18px}.empty-state p{color:var(--muted);margin:0}.error-message{color:#7f2929;background:#fff4f3;border:1px solid #f0cfcc;border-radius:8px;justify-content:space-between;align-items:center;margin-bottom:12px;padding:11px 14px;display:flex}.error-message button{color:inherit;cursor:pointer;background:0 0;border:0;font-weight:700}.skeleton-row{grid-template-columns:42px 1fr}.skeleton-circle,.skeleton-line{background:#eceef2;animation:1.2s ease-in-out infinite pulse}.skeleton-circle{border-radius:50%;width:28px;height:28px}.skeleton-line{border-radius:5px;max-width:440px;height:15px}.route-loading{flex-direction:column;justify-content:center;align-items:center;gap:12px;min-height:100vh;display:flex}.route-loading p{color:var(--muted)}.spinner{border:3px solid #d8dbe3;border-top-color:var(--accent);border-radius:50%;width:30px;height:30px;animation:.8s linear infinite spin}@keyframes pulse{50%{opacity:.45}}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width:760px){.topbar{height:64px;padding:0 18px}.account-name{display:none}.dashboard{padding:32px 16px 48px}.page-heading{min-height:88px}.toast{padding:10px 12px}.add-form{grid-template-columns:1fr}.primary-button{min-height:44px}.list-tools{flex-direction:column;align-items:stretch;gap:12px;margin-top:24px}.filters button{flex:1;min-width:0}.search-box{max-width:none}.task-row{grid-template-columns:32px 1fr;align-items:start;gap:10px 12px;padding:16px}.complete-button{width:24px;height:24px}.task-row time,.task-actions{grid-column:2}.edit-form{grid-column:2;grid-template-columns:1fr;width:100%}.login-card{padding:36px 24px}}@media (max-width:420px){.account-menu{gap:8px}.logout-button{padding-left:10px}.page-heading{display:block}.toast{width:-moz-fit-content;width:fit-content;margin-top:16px}}
