*{box-sizing:border-box}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:#f7f8fa;color:#17191c}button,input,textarea,select{font:inherit}button{cursor:pointer}.app{width:min(1100px,calc(100% - 32px));margin:0 auto;padding:38px 0 60px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:28px}.topbar h1{margin:0;font-size:32px;letter-spacing:-.04em}.topbar p{margin:7px 0 0;color:#6d7279}.actions{display:flex;gap:8px;align-items:center}.primary,.secondary,.icon-btn,.danger,.filter{border:1px solid #dfe2e6;border-radius:10px;background:#fff;padding:10px 14px;transition:.18s ease}.primary{background:#17191c;color:#fff;border-color:#17191c}.primary:hover,.secondary:hover,.icon-btn:hover,.filter:hover{transform:translateY(-1px)}.icon-btn{width:42px;height:42px;padding:0;font-size:19px}.danger{color:#b42318;border-color:#f0c5c0}.toolbar{display:flex;justify-content:space-between;gap:16px;margin-bottom:16px}.filters{display:flex;gap:5px;flex-wrap:wrap}.filter{padding:8px 11px;background:transparent;border-color:transparent;color:#666}.filter.active{background:#fff;border-color:#dfe2e6;color:#111;box-shadow:0 1px 2px #00000008}#search{width:240px;border:1px solid #dfe2e6;border-radius:10px;padding:10px 12px;background:#fff;outline:none}.task-list{display:grid;gap:10px}.task{background:#fff;border:1px solid #e1e4e8;border-radius:14px;padding:16px;display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:start;box-shadow:0 2px 8px #00000005}.task.done{opacity:.65}.check{width:23px;height:23px;border:1px solid #b9bec5;border-radius:7px;background:#fff;padding:0;margin-top:2px}.done .check{background:#17191c;color:#fff}.task h3{margin:0 0 5px;font-size:16px}.task p{margin:0 0 9px;color:#6d7279;white-space:pre-wrap}.meta{display:flex;gap:8px;flex-wrap:wrap;font-size:12px}.badge{padding:4px 8px;border-radius:999px;background:#f1f2f4;color:#5d6268}.badge.overdue{background:#fff0ef;color:#b42318}.badge.upcoming{background:#eef7ff;color:#1769aa}.task-actions{display:flex;gap:5px}.task-actions button{border:0;background:transparent;padding:7px;border-radius:8px}.task-actions button:hover{background:#f2f3f5}.empty{text-align:center;padding:80px 20px}.empty-icon{margin:auto auto 12px;width:52px;height:52px;border-radius:50%;display:grid;place-items:center;background:#e9eaed;font-size:22px}.empty h2{margin:0 0 7px}.empty p{margin:0 0 18px;color:#70757b}.hidden{display:none!important}.toast{position:fixed;right:20px;bottom:20px;background:#17191c;color:#fff;padding:12px 16px;border-radius:10px;opacity:0;transform:translateY(10px);pointer-events:none;transition:.2s}.toast.show{opacity:1;transform:none}.modal{width:min(560px,calc(100vw - 30px));border:0;border-radius:18px;padding:22px;background:#fff;box-shadow:0 20px 70px #0003}.modal::backdrop{background:#0005}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.modal h2{margin:0}.modal label{display:block;font-size:13px;font-weight:650;margin:14px 0}.modal input,.modal textarea,.modal select{display:block;width:100%;margin-top:7px;border:1px solid #dfe2e6;border-radius:10px;padding:11px 12px;outline:none;background:#fff}.modal textarea{resize:vertical}.modal-actions{display:grid;grid-template-columns:auto 1fr auto auto;gap:8px;margin-top:20px}.inline-control{display:flex;align-items:center;gap:10px}.inline-control input{width:110px;display:inline-block}.inline-control span,.hint{font-size:12px;color:#72777d}.switch-row{display:flex!important;justify-content:space-between;align-items:center}.switch-row input{width:auto!important;margin:0!important}.modal-actions .danger{justify-self:start}@media(max-width:700px){.app{width:min(100% - 20px,650px);padding-top:22px}.topbar{align-items:flex-start;flex-direction:column}.actions{width:100%;flex-wrap:wrap}.toolbar{flex-direction:column}#search{width:100%}.task{grid-template-columns:auto 1fr}.task-actions{grid-column:2}.modal-actions{grid-template-columns:1fr 1fr}.modal-actions span{display:none}.modal-actions .danger{grid-column:1/3}.modal-actions .secondary{grid-column:1}.modal-actions .primary{grid-column:2}}
