*{box-sizing:border-box;margin:0;padding:0}:root{--bg: #ffffff;--bg-subtle: #f7f7f5;--border: #e6e4e0;--text: #2b2a28;--text-muted: #8a8782;--accent: #3a6ea5;--accent-soft: #eef3f9;--done: #9a9691}html,body,#root{height:100%}body{font-family:-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:13px;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}button{font:inherit;cursor:pointer}input,textarea{font:inherit;color:inherit}.app{height:100%;overflow-y:auto}.page{max-width:560px;margin:0 auto;padding:14px 12px 24px}.page-header{display:flex;align-items:center;gap:6px;margin-bottom:12px}.logo{font-size:15px;font-weight:600;letter-spacing:.02em}.project-title{font-size:15px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.btn-icon.back{border:none;background:transparent;color:var(--text-muted);font-size:18px;width:26px;height:26px;border-radius:6px;flex-shrink:0;line-height:1}.btn-icon.back:hover{background:var(--bg-subtle);color:var(--text)}.new-project{display:flex;gap:6px;margin-bottom:12px}.new-project input{flex:1;min-width:0;border:1px solid var(--border);border-radius:6px;padding:6px 9px;background:var(--bg);outline:none}.new-project input:focus{border-color:var(--accent)}.project-list{display:flex;flex-direction:column}.project-item{display:flex;align-items:center;justify-content:space-between;padding:8px;border-bottom:1px solid var(--border);cursor:pointer;gap:6px}.project-item:hover{background:var(--bg-subtle)}.project-item.editing input{width:100%;border:1px solid var(--accent);border-radius:6px;padding:5px 8px;outline:none}.project-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-actions{display:inline-flex;align-items:center;gap:2px;flex-shrink:0}.project-actions .btn-icon{visibility:hidden}.project-item:hover .btn-icon{visibility:visible}.chevron{color:var(--text-muted);font-size:15px;padding:0 2px}.btn{border:1px solid var(--border);background:var(--bg);border-radius:6px;padding:4px 10px;color:var(--text)}.btn:hover{background:var(--bg-subtle)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover{opacity:.9}.btn-icon{border:none;background:transparent;border-radius:5px;width:22px;height:22px;line-height:1;color:var(--text-muted)}.btn-icon.subtle:hover{background:#edecea;color:var(--text)}.btn-icon.has-comment{color:var(--accent)}.date-nav{display:flex;align-items:center;gap:6px;margin-bottom:10px;flex-wrap:wrap}.date-label{color:var(--text-muted);font-size:12px;display:inline-flex;align-items:center;gap:5px;white-space:nowrap}.date-label.is-today{color:var(--text);font-weight:500}.today-badge{background:var(--accent-soft);color:var(--accent);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;padding:1px 6px;border-radius:99px}.login-page{height:100%;display:flex;align-items:center;justify-content:center;padding:16px}.login-card{width:100%;max-width:280px;display:flex;flex-direction:column;gap:8px}.login-card .logo{text-align:center;margin-bottom:8px}.login-card input{border:1px solid var(--border);border-radius:6px;padding:7px 10px;outline:none}.login-card input:focus{border-color:var(--accent)}.login-card .btn{padding:7px 10px;margin-top:4px}.login-error{color:#b4443c;font-size:12px;text-align:center}.logout-btn{margin-left:auto;font-size:12px;color:var(--text-muted)}.page.blurred>*:not(.unblur-btn){filter:blur(7px);pointer-events:none;-webkit-user-select:none;user-select:none}.blur-toggle{margin-left:auto;flex-shrink:0}.unblur-btn{position:fixed;top:12px;left:50%;transform:translate(-50%);z-index:10;box-shadow:0 1px 4px #0000001f}.month-nav{display:flex;align-items:center;gap:6px;margin-bottom:10px;flex-wrap:wrap}.month-label{font-size:13px;font-weight:500;white-space:nowrap}.calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}.cal-weekday{text-align:center;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);padding:3px 0}.cal-cell{position:relative;aspect-ratio:1;min-height:34px;border:1px solid var(--border);border-radius:6px;background:var(--bg);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;padding:2px}.cal-cell:hover{background:var(--bg-subtle)}.cal-cell.empty{border:none;background:transparent;cursor:default}.cal-cell.is-today{border-color:var(--accent);background:var(--accent-soft)}.cal-cell.is-today .cal-daynum{color:var(--accent);font-weight:600}.cal-daynum{font-size:12px;line-height:1}.cal-count{font-size:10px;line-height:1;font-weight:600;color:#fff;background:var(--accent);border-radius:99px;min-width:15px;padding:2px 3px;text-align:center}.cal-count.all-done{background:var(--done)}.new-task{display:flex;gap:6px;margin-bottom:12px}.new-task input{flex:1;min-width:0;border:1px solid var(--border);border-radius:6px;padding:6px 9px;outline:none}.new-task input:focus{border-color:var(--accent)}.task-list{list-style:none;display:flex;flex-direction:column}.task{border-bottom:1px solid var(--border);padding:3px 0}.task-row{display:flex;align-items:center;gap:7px}.drag-handle{flex-shrink:0;width:12px;text-align:center;font-size:10px;color:var(--text-muted);cursor:grab;-webkit-user-select:none;user-select:none;visibility:hidden;touch-action:none}.task:hover .drag-handle{visibility:visible}.task.dragging{opacity:.45}.task.dragging .drag-handle{cursor:grabbing}.task-check{width:14px;height:14px;flex-shrink:0;accent-color:var(--accent);cursor:pointer}.task-text{flex:1;min-width:0;border:none;outline:none;background:transparent;padding:5px 3px;border-radius:4px}.task-text:focus{background:var(--bg-subtle)}.task.done .task-text{color:var(--done);text-decoration:line-through}.task-actions{display:inline-flex;gap:1px;flex-shrink:0;opacity:0;transition:opacity .1s}.task:hover .task-actions,.task:focus-within .task-actions{opacity:1}.task-meta{font-size:11px;color:var(--text-muted);padding-left:43px;padding-bottom:3px}.task-comment-preview{font-size:12px;color:var(--text-muted);padding:0 3px 5px 43px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.task-comment-preview:hover{color:var(--text)}.task-comment{display:block;width:calc(100% - 43px);margin:2px 0 6px 43px;border:1px solid var(--border);border-radius:6px;padding:6px 8px;resize:vertical;outline:none;background:var(--bg-subtle);font-size:12px}.task-comment:focus{border-color:var(--accent);background:var(--bg)}.no-tasks{color:var(--text-muted);text-align:center;padding:24px 0;font-size:12px}@media (hover: none){.task-actions{opacity:1}.drag-handle,.project-actions .btn-icon{visibility:visible}}
