.habit-calendar{padding:24px}.habit-toolbar{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-bottom:24px}.habit-month-controls{display:flex;align-items:center;gap:12px}.habit-month-controls input{width:170px;border:0;padding:8px;font-weight:600;background:transparent;color:var(--green)}.habit-filter{display:flex;align-items:center;gap:10px;margin-left:auto;font-size:13px;color:var(--muted)}.habit-filter select{max-width:230px;width:180px}.habit-weekdays,.habit-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}.habit-weekdays{color:var(--muted);font-size:12px;text-align:center;margin-bottom:10px}.habit-day{min-height:78px;border:1px solid var(--line);border-radius:12px;background:#fff;text-align:left;padding:11px;color:var(--green);display:flex;flex-direction:column;gap:9px}.habit-day small{font-size:11px;line-height:1.3}.habit-outside{opacity:.4}.habit-done{background:#e5efdf;border-color:#b5c7a7}.habit-partial{background:#fbefdd;border-color:#dfcfaf}.habit-selected{outline:2px solid var(--green);outline-offset:1px}.habit-day[aria-current=date]>span{font-weight:700;text-decoration:underline;text-underline-offset:4px}.habit-legend{display:flex;gap:18px;flex-wrap:wrap;color:var(--muted);font-size:12px;margin-top:20px}.habit-legend span{display:flex;align-items:center;gap:7px}.habit-legend span:last-child{margin-left:auto}.habit-legend i{width:10px;height:10px;border-radius:50%}.habit-legend-done{background:#a1b78c}.habit-legend-partial{background:#dcbd87}.habit-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.habit-card{padding:24px}.habit-card-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:18px}.habit-card-head h3{font-family:Georgia,serif;font-size:24px;font-weight:400;overflow-wrap:anywhere}.habit-card-head p{color:var(--muted);font-size:12px;margin:0}.habit-card-head button{font-size:11px;flex-shrink:0}.habit-items{list-style:none;padding:0;margin:0 0 20px;display:grid;gap:10px}.habit-item{display:flex;align-items:flex-start;gap:12px;background:#f8f9f4;border-radius:10px;padding:13px;cursor:pointer;font-size:14px;line-height:1.5;overflow-wrap:anywhere}.habit-item input{width:18px;height:18px;flex-shrink:0;margin:2px 0 0;accent-color:var(--green)}.habit-item-done .habit-item-title{text-decoration:line-through;color:var(--muted)}.habit-empty{text-align:center;padding:38px}.habit-empty p{color:var(--muted)}.habit-fireworks{position:fixed;inset:0;z-index:1000;pointer-events:none;overflow:hidden}.habit-fireworks-message{position:absolute;bottom:15%;left:50%;transform:translateX(-50%);background:#244d43;color:white;border-radius:30px;padding:17px 25px;font-size:18px;white-space:nowrap;box-shadow:0 8px 30px #244d4333;animation:habit-message 3.8s both}.habit-burst{position:absolute;left:30%;top:35%}.habit-burst:nth-child(2){left:70%;top:30%}.habit-burst:nth-child(3){left:50%;top:55%}.habit-burst i{position:absolute;width:5px;height:19px;border-radius:4px;background:#e8b45e;animation:habit-spark 1.5s ease-out 2 both;animation-delay:.1s}.habit-burst:nth-child(2) i{animation-delay:.35s}.habit-burst:nth-child(3) i{animation-delay:.6s}.habit-burst i:nth-child(3n){background:#6e9c7e}.habit-burst i:nth-child(3n+1){background:#c07d68}.habit-burst i:nth-child(4n){background:#8d89c1}.habit-burst i:nth-child(1){--angle:0deg}.habit-burst i:nth-child(2){--angle:15deg}.habit-burst i:nth-child(3){--angle:30deg}.habit-burst i:nth-child(4){--angle:45deg}.habit-burst i:nth-child(5){--angle:60deg}.habit-burst i:nth-child(6){--angle:75deg}.habit-burst i:nth-child(7){--angle:90deg}.habit-burst i:nth-child(8){--angle:105deg}.habit-burst i:nth-child(9){--angle:120deg}.habit-burst i:nth-child(10){--angle:135deg}.habit-burst i:nth-child(11){--angle:150deg}.habit-burst i:nth-child(12){--angle:165deg}.habit-burst i:nth-child(13){--angle:180deg}.habit-burst i:nth-child(14){--angle:195deg}.habit-burst i:nth-child(15){--angle:210deg}.habit-burst i:nth-child(16){--angle:225deg}.habit-burst i:nth-child(17){--angle:240deg}.habit-burst i:nth-child(18){--angle:255deg}.habit-burst i:nth-child(19){--angle:270deg}.habit-burst i:nth-child(20){--angle:285deg}.habit-burst i:nth-child(21){--angle:300deg}.habit-burst i:nth-child(22){--angle:315deg}.habit-burst i:nth-child(23){--angle:330deg}.habit-burst i:nth-child(24){--angle:345deg}@keyframes habit-spark{0%{opacity:0;transform:rotate(var(--angle)) translateY(0) scale(.3)}15%{opacity:1}100%{opacity:0;transform:rotate(var(--angle)) translateY(-170px) scale(.2)}}@keyframes habit-message{0%,100%{opacity:0}10%,85%{opacity:1}}@media(prefers-reduced-motion:reduce){.habit-burst{display:none}.habit-fireworks-message{animation:none}}@media(max-width:850px){.habit-list{grid-template-columns:1fr}.habit-calendar{padding:16px}.habit-toolbar{gap:12px}.habit-filter{margin-left:0}.habit-day{min-height:65px;padding:8px}.habit-day small{font-size:10px}}@media(max-width:520px){.habit-toolbar{justify-content:space-between}.habit-filter{order:3;width:100%;justify-content:space-between}.habit-filter select{width:70%;max-width:none}.habit-grid,.habit-weekdays{gap:4px}.habit-day{min-height:60px;padding:6px}.habit-day small{font-size:8px}.habit-legend span:last-child{margin-left:0}.habit-card-head{flex-wrap:wrap}.habit-fireworks-message{font-size:14px;padding:14px 18px}}
.habit-card-actions{display:flex;align-items:center;gap:12px}.habit-delete{color:#a56b50}.habit-delete-description{line-height:1.7;color:var(--muted);overflow-wrap:anywhere}
.habit-card-heading{flex:1;min-width:0}.habit-card-head .habit-card-actions{gap:6px}.habit-card-head .habit-schedule{margin-top:9px;font-size:11px}.habit-item-row{display:flex;align-items:center;gap:6px;background:#f8f9f4;border-radius:10px;padding:5px}.habit-item-row .habit-item{flex:1;min-width:0;padding:10px 4px}.habit-drag-handle{flex:0 0 28px;width:28px;min-height:38px;background:transparent;border:0;border-radius:6px;font-size:25px;line-height:1;color:var(--muted);cursor:grab;touch-action:none;user-select:none}.habit-drag-handle:active{cursor:grabbing}.habit-drag-handle:hover{background:var(--soft)}.habit-dragging{outline:2px dashed var(--green);box-shadow:0 6px 18px #244d4326;opacity:.75}.habit-item-edit svg{width:17px;height:17px}.habit-missed{background:#fbefdd;border-color:#dfbc85}.habit-weekday-picker{display:flex;gap:9px;flex-wrap:wrap;border:1px solid var(--line);border-radius:12px;padding:16px;margin:18px 0}.habit-weekday-picker legend{font-size:13px;padding:0 6px}.habit-weekday-picker label{display:flex;align-items:center;gap:6px;font-size:13px}.habit-weekday-picker input{width:17px;height:17px;accent-color:var(--green)}@media(max-width:520px){.habit-card{padding:18px}.habit-card-head{gap:7px}.habit-card-actions{margin-left:auto}.habit-item-row{gap:2px}.habit-drag-handle{flex-basis:25px;width:25px}}

.habit-item-content{display:grid;gap:4px;min-width:0}.habit-item-schedule{font-size:11px;line-height:1.5;color:var(--muted);text-decoration:none}.habit-item-unscheduled .habit-item{opacity:.65}.habit-inherit-schedule{display:flex;align-items:center;gap:9px;font-size:13px;margin-top:20px}.habit-inherit-schedule input{width:18px;height:18px;margin:0;accent-color:var(--green)}.habit-weekday-picker:disabled{opacity:.6}
