:root{color:#1f2937;background:#f9fafb;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}body{margin:0}main{max-width:960px;margin:0 auto;padding:1.5rem 1rem}.navbar{background:#4f46e5;flex-wrap:wrap;align-items:center;gap:1rem;padding:.75rem 1rem;display:flex}.navbar a{color:#e0e7ff;text-decoration:none}.navbar a.active{color:#fff;font-weight:600}.navbar .brand{color:#fff;margin-right:auto;font-weight:700}.auth-card{background:#fff;border:1px solid #e5e7eb;border-radius:8px;max-width:400px;margin:2rem auto;padding:1.5rem}form{flex-direction:column;gap:1rem;display:flex}label{flex-direction:column;gap:.25rem;font-weight:500;display:flex}input,textarea,select{font:inherit;border:1px solid #d1d5db;border-radius:6px;padding:.5rem .75rem}input:focus,textarea:focus,select:focus{outline-offset:1px;outline:2px solid #4f46e5}button{font:inherit;color:#fff;cursor:pointer;background:#4f46e5;border:none;border-radius:6px;padding:.6rem 1rem;font-weight:600}button:disabled{opacity:.6;cursor:not-allowed}.field-error{color:#b91c1c;font-size:.875rem;font-weight:400}.form-error,.form-info{border-radius:6px;padding:.6rem .75rem}.form-error{color:#991b1b;background:#fee2e2}.form-info{color:#1e3a8a;background:#dbeafe}.profile dt{font-weight:600}.profile dd{margin:0 0 1rem}button.secondary{color:#374151;background:#fff;border:1px solid #d1d5db}.link-button{color:#4f46e5;background:0 0;padding:.25rem .4rem;font-weight:500}.link-button.danger{color:#b91c1c}.optional{color:#6b7280;font-weight:400}.planner-header,.day-nav{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.planner-header{justify-content:space-between}.day-title{margin:1.25rem 0 .75rem;font-size:1.15rem}.today-tag{color:#3730a3;vertical-align:middle;background:#e0e7ff;border-radius:999px;margin-left:.5rem;padding:.1rem .5rem;font-size:.75rem}.empty-state{text-align:center;color:#6b7280;background:#fff;border:1px dashed #d1d5db;border-radius:8px;padding:2rem 1rem}.progress{color:#4b5563;flex-direction:column;gap:.35rem;margin-bottom:1rem;font-size:.9rem;display:flex}.progress-track{background:#e5e7eb;border-radius:999px;height:8px;overflow:hidden}.progress-fill{background:#16a34a;height:100%;transition:width .2s}.task-list{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.task-item{background:#fff;border:1px solid #e5e7eb;border-radius:8px;flex-wrap:wrap;align-items:center;gap:.75rem;padding:.75rem 1rem;display:flex}.task-item input[type=checkbox]{accent-color:#16a34a;width:1.15rem;height:1.15rem;margin:0;padding:0}.task-main{flex-direction:column;flex:12rem;min-width:0;display:flex}.task-title{overflow-wrap:anywhere;font-weight:600}.task-desc{color:#6b7280;overflow-wrap:anywhere;font-size:.875rem}.task-item.done .task-title{color:#9ca3af;text-decoration:line-through}.task-time{font-variant-numeric:tabular-nums;color:#4b5563}.badge{text-transform:capitalize;border-radius:999px;padding:.1rem .55rem;font-size:.75rem;font-weight:600}.badge-low{color:#065f46;background:#d1fae5}.badge-medium{color:#92400e;background:#fef3c7}.badge-high{color:#991b1b;background:#fee2e2}.modal{border:none;border-radius:10px;width:min(520px,100vw - 2rem);padding:1.5rem;box-shadow:0 20px 40px #0003}.modal::backdrop{background:#11182773}.modal h2{margin-top:0}.form-row{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:.75rem;display:grid}.modal-actions{justify-content:flex-end;gap:.5rem;display:flex}a.button{color:#fff;background:#4f46e5;border-radius:6px;padding:.6rem 1rem;font-weight:600;text-decoration:none;display:inline-block}a.button.secondary{color:#374151;background:#fff;border:1px solid #d1d5db}.danger-button{background:#b91c1c;margin-right:auto}.note-search{box-sizing:border-box;width:100%;margin:1rem 0 .75rem}.tag-chips{flex-wrap:wrap;gap:.4rem;margin-bottom:1rem;display:flex}.chip{color:#3730a3;background:#eef2ff;border:1px solid #c7d2fe;border-radius:999px;align-items:center;padding:.25rem .75rem;font-size:.875rem;font-weight:500;display:inline-flex}span.chip{padding:0}.chip button{font-size:inherit;font-weight:inherit;color:inherit;background:0 0;border-radius:999px;padding:.25rem .5rem .25rem .75rem}.chip .chip-remove{opacity:.6;padding:.25rem .6rem .25rem .1rem}.chip .chip-remove:hover{opacity:1}.chip.selected{color:#fff;background:#4f46e5;border-color:#4f46e5}.note-list{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.note-card{background:#fff;border:1px solid #e5e7eb;border-radius:8px;flex-direction:column;gap:.5rem;padding:.9rem 1rem;display:flex;position:relative}.note-card:hover{border-color:#a5b4fc}.note-card.pinned{background:#fffbeb;border-color:#fbbf24}.note-card-head{justify-content:space-between;align-items:flex-start;gap:.5rem;display:flex}.note-link{color:inherit;overflow-wrap:anywhere;font-weight:600;text-decoration:none}.note-link:after{content:"";position:absolute;inset:0}.pin-button{z-index:1;filter:grayscale();opacity:.4;background:0 0;padding:.1rem .3rem;font-size:1rem;position:relative}.pin-button[aria-pressed=true]{filter:none;opacity:1}.note-preview{color:#4b5563;white-space:pre-line;overflow-wrap:anywhere;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:.9rem;display:-webkit-box;overflow:hidden}.note-card-foot{flex-wrap:wrap;align-items:center;gap:.35rem;margin-top:auto;display:flex}.tag-badge{color:#3730a3;background:#e0e7ff;border-radius:999px;padding:.1rem .5rem;font-size:.75rem}.note-updated{color:#6b7280;margin-left:auto;font-size:.8rem}.note-editor h1{margin-top:.5rem}.tag-picker{border:1px solid #e5e7eb;border-radius:6px;flex-direction:column;gap:.5rem;margin:0;padding:.75rem 1rem;display:flex}.tag-picker legend{padding:0 .25rem;font-weight:500}.tag-picker .tag-chips{margin-bottom:0}.tag-add{gap:.5rem;display:flex}.tag-add input{flex:1;min-width:0}.checkbox-label{flex-direction:row;align-items:center;gap:.5rem}.calendar{grid-template-columns:repeat(7,1fr);gap:.35rem;display:grid}.calendar-weekday{text-align:center;color:#6b7280;padding:.25rem 0;font-size:.8rem;font-weight:600}.calendar-day{min-height:3.75rem;color:inherit;background:#fff;border:1px solid #e5e7eb;border-radius:8px;flex-direction:column;justify-content:space-between;align-items:center;padding:.35rem .25rem;text-decoration:none;display:flex}a.calendar-day:hover{border-color:#a5b4fc}.calendar-day.has-entry{background:#eef2ff}.calendar-day.today{border:2px solid #4f46e5}.calendar-day.today .calendar-number{color:#4f46e5;font-weight:700}.calendar-day.future{color:#9ca3af;cursor:not-allowed;background:#f3f4f6}.calendar-number{font-variant-numeric:tabular-nums;align-self:flex-start;font-size:.85rem}.calendar-mood{font-size:1.5rem;line-height:1}.journal-average{margin-top:1rem;font-weight:500}.journal-editor h1{margin:.5rem 0 .25rem}.mood-picker{border:1px solid #e5e7eb;border-radius:6px;margin:0;padding:.75rem 1rem}.mood-picker legend{padding:0 .25rem;font-weight:500}.mood-options{grid-template-columns:repeat(5,1fr);gap:.5rem;margin-bottom:.25rem;display:grid}.mood-option{color:#374151;background:#fff;border:2px solid #e5e7eb;border-radius:10px;flex-direction:column;align-items:center;gap:.25rem;padding:.6rem .25rem;font-size:.85rem;font-weight:500;display:flex}.mood-option:hover:not(:disabled){border-color:#a5b4fc}.mood-option.selected{color:#3730a3;background:#eef2ff;border-color:#4f46e5;font-weight:700;box-shadow:0 0 0 2px #c7d2fe}.mood-emoji{font-size:2.25rem;line-height:1}.mood-option:not(.selected) .mood-emoji{filter:grayscale(.6);opacity:.75}.dashboard h1{margin-bottom:.25rem}.dashboard-date{color:#6b7280;margin:0 0 1.25rem}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.75rem;display:grid}.stat-card{background:#fff;border:1px solid #e5e7eb;border-radius:8px;flex-direction:column;gap:.4rem;padding:1rem;display:flex}.stat-card .progress{margin-bottom:0}.stat-title{color:#6b7280;margin:0;font-size:.85rem;font-weight:600}.stat-value{color:#1f2937;margin:0;font-size:1.5rem;font-weight:700}.stat-value-small{font-size:1.1rem}.stat-hint{color:#6b7280;margin:0;font-size:.8rem;font-weight:400}.stat-link{color:#4f46e5;font-weight:600}.dashboard-section{margin-top:2rem}.dashboard-section h2{margin:0 0 .75rem;font-size:1.15rem}.section-header{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem;display:flex}.empty-state p{margin:.25rem 0}.weekly-chart{background:#fff;border:1px solid #e5e7eb;border-radius:8px;margin:0;padding:1rem}.weekly-chart-canvas{width:100%}.weekly-chart svg{display:block;overflow:visible}.chart-panel-title{fill:#374151;font-size:13px;font-weight:600}.chart-axis,.chart-note{fill:#6b7280;font-variant-numeric:tabular-nums;font-size:12px}.chart-note{font-style:italic}.chart-day{fill:#374151;font-size:12px}.chart-day.today{fill:#4f46e5;font-weight:700}.chart-value{fill:#1f2937;font-size:12px;font-weight:600}.chart-emoji{font-size:14px}.chart-hover{fill:#0000}.chart-hover:hover{fill:#4f46e50f}.chart-summary{color:#374151;margin-top:.75rem;font-size:.9rem}.chart-table{margin-top:.5rem;font-size:.9rem}.chart-table summary{color:#4f46e5;cursor:pointer}.chart-table table{border-collapse:collapse;width:100%;margin-top:.5rem}.chart-table th,.chart-table td{text-align:left;border-bottom:1px solid #e5e7eb;padding:.35rem .5rem}.chart-table th[scope=row]{font-weight:500}.task-check{flex-direction:row;justify-content:center;align-items:center}.app-banner{text-align:center;flex-wrap:wrap;justify-content:center;align-items:center;gap:.5rem 1rem;padding:.6rem 1rem;font-weight:500;display:flex}.offline-banner{color:#92400e;background:#fef3c7;border-bottom:1px solid #fcd34d}.update-banner{color:#1e3a8a;background:#dbeafe;border-bottom:1px solid #93c5fd}.update-banner button{padding:.35rem .9rem}.wake-notice{z-index:20;box-sizing:border-box;text-align:center;color:#1e3a8a;pointer-events:none;background:#eff6ff;border:1px solid #93c5fd;border-radius:8px;width:max-content;max-width:calc(100vw - 2rem);margin:0;padding:.6rem 1rem;font-size:.9rem;position:fixed;bottom:1rem;left:50%;transform:translate(-50%);box-shadow:0 4px 12px #0000001f}.bottom-nav{display:none}@media (width<=640px){main{padding:1rem 1rem calc(5.5rem + env(safe-area-inset-bottom))}h1{font-size:1.6rem}.navbar .top-link{display:none}.bottom-nav{z-index:10;padding-bottom:env(safe-area-inset-bottom);background:#fff;border-top:1px solid #e5e7eb;grid-template-columns:repeat(5,1fr);display:grid;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -2px 8px #0000000d}.bottom-nav a{color:#6b7280;flex-direction:column;justify-content:center;align-items:center;gap:.15rem;min-height:56px;font-size:.72rem;text-decoration:none;display:flex}.bottom-nav a.active{color:#4f46e5;font-weight:600}.bottom-nav svg{width:24px;height:24px}button,a.button,input:not([type=checkbox]),select,textarea{box-sizing:border-box;min-height:44px}input,select,textarea{font-size:16px}a.button{justify-content:center;align-items:center;display:inline-flex}.link-button{min-width:44px}.note-editor>a:first-child,.journal-editor>a:first-child{align-items:center;min-height:44px;display:inline-flex}.auth-card{margin:1rem auto;padding:1.25rem 1rem}.profile dd{overflow-wrap:anywhere}.day-nav button{flex:1}.day-nav input[type=date]{flex:100%}.task-item{grid-template-columns:44px auto 1fr auto;grid-template-areas:"check main main main"".time badge actions";align-items:center;gap:.25rem .5rem;padding:.5rem .75rem .5rem .25rem;display:grid}.task-check{grid-area:check;width:44px;height:44px}.task-item input[type=checkbox]{width:1.35rem;height:1.35rem}.task-main{grid-area:main}.task-time{grid-area:time}.task-item .badge{grid-area:badge;justify-self:start}.task-actions{grid-area:actions;display:flex}.modal{box-sizing:border-box;width:100%;max-width:none;height:100%;max-height:none;padding:1.25rem 1rem calc(1.25rem + env(safe-area-inset-bottom));border-radius:0;margin:0}.modal-actions{flex-wrap:wrap}.note-list{grid-template-columns:1fr}.chip .chip-remove{min-width:44px}.pin-button{min-width:44px;margin:-.6rem -.6rem -.6rem 0}.calendar{gap:.2rem}.calendar-weekday{font-size:.7rem}.calendar-day{border-radius:6px;min-width:0;min-height:3rem;padding:.2rem .1rem}.calendar-day.today{padding:calc(.2rem - 1px) calc(.1rem - 1px)}.calendar-number{font-size:.7rem}.calendar-mood{font-size:1.2rem}.mood-picker{padding:.5rem .6rem}.mood-options{gap:.3rem}.mood-option{min-width:0;padding:.5rem .1rem;font-size:.8rem}.mood-emoji{font-size:1.9rem}.weekly-chart{padding:.75rem}.wake-notice{bottom:calc(56px + env(safe-area-inset-bottom) + .5rem)}}
