:root{--bg:#0d0f14;--bg-soft:#141821;--surface:#181d28;--surface-hi:#1f2532;--border:#272e3d;--border-hi:#37415a;--text:#e8ecf5;--text-dim:#99a3b8;--text-faint:#646e84;--accent:#7dd3a0;--accent-hot:#ffd166;--accent-deep:#0f3d2a;--danger:#ff6b6b;--doing:#7cc4ff;--late:#ff9f6b;--radius:14px;--radius-sm:9px;--shadow:0 10px 30px #00000059;--font:"Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%}body{background:radial-gradient(1100px 600px at 12% -10%, #1b2a24 0%, transparent 60%), radial-gradient(900px 500px at 100% 0%, #241f1a 0%, transparent 55%), var(--bg);color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;background-attachment:fixed;margin:0;font-size:15px;line-height:1.5}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}.app{max-width:1080px;margin:0 auto;padding:32px 20px 96px}.topbar{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:22px;display:flex}.brand h1{letter-spacing:-.03em;margin:0;font-size:28px;font-weight:700}.brand .sub{color:var(--text-dim);margin:4px 0 0;font-size:14px}.backend-tag{border:1px solid var(--border);background:var(--bg-soft);color:var(--text-dim);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:5px 10px;font-size:12px;display:inline-flex}.backend-tag .dot{background:var(--accent);border-radius:50%;width:7px;height:7px}.backend-tag.is-local .dot{background:var(--accent-hot)}.backend-tag.is-broken{color:var(--danger);border-color:#52302f}.backend-tag.is-broken .dot{background:var(--danger)}.account{align-items:center;gap:8px;display:flex}.account .who{color:var(--text-dim);text-overflow:ellipsis;white-space:nowrap;max-width:180px;font-size:13px;overflow:hidden}.boot,.signin{min-height:100dvh;color:var(--text-dim);place-items:center;padding:24px;display:grid}.signin-card{text-align:center;background:var(--surface);border:1px solid var(--border);max-width:420px;box-shadow:var(--shadow);border-radius:20px;padding:40px 32px 30px}.signin-emoji{margin-bottom:14px;font-size:46px;line-height:1}.signin-card h1{letter-spacing:-.03em;color:var(--text);margin:0 0 10px;font-size:30px}.signin-card .sub{color:var(--text-dim);margin:0 0 26px;font-size:14.5px}.signin-card .sub strong{color:var(--accent);font-weight:600}.btn.big{width:100%;padding:12px 26px;font-size:15px}.signin-error{color:var(--late);text-align:left;margin:16px 0 0;font-size:13px;line-height:1.45}.signin-foot{color:var(--text-faint);border-top:1px solid var(--border);margin:24px 0 0;padding-top:18px;font-size:12px;line-height:1.5}.signin-foot a{color:var(--accent);white-space:nowrap;border-bottom:1px solid #7dd3a059;text-decoration:none}.signin-foot a:hover{border-bottom-color:var(--accent)}.signin-foot code{color:var(--text-dim);background:var(--bg-soft);border-radius:4px;padding:1px 5px;font-size:11.5px}.stats{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin-bottom:14px;display:grid}.stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:13px 15px}.stat .n{letter-spacing:-.02em;font-size:26px;font-weight:700;line-height:1.1}.stat .lbl{color:var(--text-dim);margin-top:2px;font-size:12px}.stat.is-streak{background:linear-gradient(140deg, #241f12, var(--surface));border-color:#4a3c1c}.stat.is-streak .n{color:var(--accent-hot)}.nudge{border-radius:var(--radius);border:1px solid var(--border);background:linear-gradient(120deg, var(--accent-deep), var(--surface) 65%);color:var(--text);align-items:center;gap:10px;margin-bottom:22px;padding:13px 16px;font-size:14px;display:flex}.nudge.is-error{background:linear-gradient(120deg, #3a1f1f, var(--surface) 65%);border-color:#52302f;flex-direction:column;align-items:flex-start;gap:8px}.nudge.is-warn{background:linear-gradient(120deg, #3a3018, var(--surface) 65%);border-color:#4a3c1c;flex-direction:column;align-items:flex-start;gap:8px}.nudge.is-error code,.nudge.is-warn code{color:var(--accent-hot);-webkit-user-select:all;user-select:all;background:#00000059;border-radius:7px;max-width:100%;padding:6px 10px;font-size:12.5px;overflow-x:auto}.composer{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:22px;padding:14px;transition:border-color .15s}.composer:focus-within{border-color:var(--border-hi)}.field{resize:vertical;background:0 0;border:none;width:100%;padding:6px 4px}.field::placeholder{color:var(--text-faint)}.field:focus{outline:none}.field.title{font-size:17px;font-weight:600}.composer-extra{border-top:1px solid var(--border);gap:6px;margin-top:8px;padding-top:8px;display:grid}.composer-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:10px;display:flex}.date-input{background:var(--bg-soft);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-dim);align-items:center;gap:8px;padding:6px 8px 6px 10px;font-size:13px;display:inline-flex}.dt{background:var(--surface-hi);border:1px solid var(--border-hi);color:var(--text);font-variant-numeric:tabular-nums;border-radius:7px;padding:5px 8px;font-size:13px}.dt:hover{border-color:var(--accent)}.dt.vacio{color:var(--text-faint);border-style:dashed}.dt::-webkit-calendar-picker-indicator{filter:invert(.75);cursor:pointer}.btn{border:1px solid var(--border);background:var(--surface-hi);color:var(--text);border-radius:var(--radius-sm);padding:8px 14px;font-size:13px;font-weight:600;transition:background .14s,border-color .14s,transform 80ms}.btn:hover{border-color:var(--border-hi);background:#262d3d}.btn:active{transform:translateY(1px)}.btn.primary{background:linear-gradient(135deg, var(--accent), #5fc38c);color:#08281a;border-color:#0000}.btn.primary:hover{filter:brightness(1.07)}.btn.primary:disabled{opacity:.4;cursor:not-allowed;filter:none}.btn.ghost{color:var(--text-dim);background:0 0;border-color:#0000;padding:6px 9px}.btn.ghost:hover{background:var(--surface-hi);color:var(--text)}.btn.danger:hover{color:var(--danger);background:#2a1a1a;border-color:#4a2626}.btn.sm{padding:5px 10px;font-size:12px}.filters{flex-wrap:wrap;gap:6px;margin-bottom:14px;display:flex}.chip{border:1px solid var(--border);color:var(--text-dim);background:0 0;border-radius:999px;padding:6px 13px;font-size:13px;font-weight:500}.chip:hover{border-color:var(--border-hi);color:var(--text)}.chip[aria-pressed=true]{background:var(--text);color:var(--bg);border-color:var(--text)}.chip .count{opacity:.6;font-variant-numeric:tabular-nums;margin-left:5px}.list{gap:10px;display:grid}.card{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--border);border-radius:var(--radius);grid-template-columns:auto 1fr auto;align-items:start;gap:14px;padding:14px 16px;transition:border-color .15s,background .15s;animation:.22s both pop-in;display:grid}.card:hover{background:var(--surface-hi);border-color:var(--border-hi)}.card.is-doing{border-left-color:var(--doing)}.card.is-done{border-left-color:var(--accent);opacity:.62}.card.is-late{border-left-color:var(--late)}@keyframes pop-in{0%{opacity:0;transform:translateY(6px)}}.tick{border:2px solid var(--border-hi);color:#0000;background:0 0;border-radius:50%;flex-shrink:0;place-items:center;width:24px;height:24px;margin-top:2px;font-size:13px;transition:all .16s;display:grid}.tick:hover{border-color:var(--accent);color:var(--accent)}.tick.on{background:var(--accent);border-color:var(--accent);color:#08281a}.card-body{min-width:0}.card-title{letter-spacing:-.01em;word-break:break-word;font-size:15.5px;font-weight:600}.card.is-done .card-title{text-decoration:line-through;-webkit-text-decoration-color:var(--text-faint);text-decoration-color:var(--text-faint)}.card-desc{color:var(--text-dim);-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;margin-top:3px;font-size:13.5px;display:-webkit-box;overflow:hidden}.meta{flex-wrap:wrap;gap:6px;margin-top:9px;display:flex}.pill{background:var(--bg-soft);border:1px solid var(--border);color:var(--text-dim);white-space:nowrap;border-radius:999px;padding:3px 8px;font-size:11.5px}.pill.hot{color:var(--accent-hot);border-color:#4a3c1c}.pill.late{color:var(--late);border-color:#4a301c}.pill.ok{color:var(--accent);border-color:#23452f}.card-actions{align-items:center;gap:4px;display:flex}.empty{text-align:center;color:var(--text-dim);border:1px dashed var(--border);border-radius:var(--radius);padding:56px 20px}.empty .big{margin-bottom:10px;font-size:34px}.overlay{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:20;background:#04060a99;animation:.18s both fade;position:fixed;inset:0}@keyframes fade{0%{opacity:0}}.panel{background:var(--bg-soft);border-left:1px solid var(--border);width:min(460px,100%);box-shadow:var(--shadow);z-index:21;flex-direction:column;animation:.24s cubic-bezier(.22,1,.36,1) both slide-in;display:flex;position:fixed;top:0;bottom:0;right:0}@keyframes slide-in{0%{opacity:0;transform:translate(24px)}}.panel-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:12px;padding:18px 20px 14px;display:flex}.panel-body{flex:1;padding:18px 20px;overflow-y:auto}.panel-title{letter-spacing:-.02em;resize:none;background:0 0;border:none;width:100%;padding:0;font-size:19px;font-weight:700}.panel-title:focus{outline:none}.section{margin-bottom:22px}.section h3{text-transform:uppercase;letter-spacing:.09em;color:var(--text-faint);margin:0 0 9px;font-size:11px;font-weight:700}.desc-edit{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);resize:vertical;width:100%;min-height:78px;padding:10px 12px;font-size:14px}.desc-edit:focus{border-color:var(--border-hi);outline:none}.timeline{background:var(--border);border:1px solid var(--border);border-radius:var(--radius-sm);gap:1px;display:grid;overflow:hidden}.tl-row{background:var(--surface);justify-content:space-between;gap:12px;padding:10px 12px;font-size:13.5px;display:flex}.tl-row .k{color:var(--text-dim)}.tl-row .v{font-variant-numeric:tabular-nums;text-align:right}.tl-row.total{background:var(--accent-deep)}.tl-row.total .v{color:var(--accent);font-weight:600}.notes{gap:8px;margin-bottom:10px;display:grid}.note{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);justify-content:space-between;align-items:flex-start;gap:10px;padding:10px 12px;animation:.2s both pop-in;display:flex}.note p{white-space:pre-wrap;word-break:break-word;margin:0;font-size:14px}.note .when{color:var(--text-faint);margin-top:5px;font-size:11.5px}.note-form{align-items:flex-end;gap:8px;display:flex}.note-form textarea{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);resize:vertical;flex:1;min-height:42px;padding:9px 11px;font-size:14px}.note-form textarea:focus{border-color:var(--border-hi);outline:none}.panel-foot{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:8px;padding:14px 20px;display:flex}.toast{background:linear-gradient(135deg, var(--accent), #5fc38c);color:#08281a;box-shadow:var(--shadow);z-index:40;text-align:center;border-radius:999px;max-width:min(92vw,460px);padding:12px 20px;font-weight:650;animation:.3s cubic-bezier(.22,1,.36,1) both toast-in;position:fixed;bottom:28px;left:50%;transform:translate(-50%)}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,14px)scale(.95)}}.confetti{pointer-events:none;z-index:39;position:fixed;inset:0;overflow:hidden}.confetti i{border-radius:2px;width:8px;height:13px;animation:linear forwards fall;position:absolute;top:-12px}@keyframes fall{to{opacity:.1;transform:translateY(105vh)rotate(680deg)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important}.confetti{display:none}}@media (width<=620px){.app{padding:20px 14px 80px}.card{grid-template-columns:auto 1fr}.card-actions{grid-column:2;justify-content:flex-end}}
