#root{font-family:Arial,Helvetica,sans-serif;background:#444}.calendar{background:#222;border-radius:8px;padding:1rem;border:1px solid #333;width:100%;max-width:800px;box-sizing:border-box;overflow:hidden}.calendar-header{display:flex;justify-content:space-between;align-items:center;gap:.25rem;margin-bottom:1rem}.calendar-title{background:none;border:none;color:#fff;font-size:1rem;font-weight:600;cursor:pointer;padding:.25rem .5rem;border-radius:4px}.calendar-title:hover{background:#333}.calendar-weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.25rem;margin-bottom:.5rem}.calendar-weekday{text-align:center;font-size:.75rem;color:#888;padding:.25rem}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.25rem}.calendar-cell{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border:none;border-radius:4px;background:transparent;color:#555;font-size:.85rem;cursor:pointer;transition:background .1s ease-in}.calendar-cell.in-month{color:#fff}.calendar-cell.in-month:hover{background:#333}.calendar-cell.is-today{background:#333;font-weight:600}.calendar-cell.is-selected{background:#4a9eff;color:#fff}.calendar-cell.is-selected:hover{background:#3a8eef}.input-container{display:grid;gap:.5rem;padding:1rem}.btn{padding:.5rem 1rem;border:none;border-radius:4px;font-size:.9rem;cursor:pointer;transition:background .1s ease-in,transform 80ms ease-in;display:inline-flex;align-items:center;gap:.4rem}.btn:hover{transform:scale(1.02)}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-primary{background:#4a9eff;color:#fff}.btn-primary:hover:not(:disabled){background:#3a8eef}.btn-secondary{background:#555;color:#fff}.btn-secondary:hover:not(:disabled){background:#666}.btn-danger{background:#e74c3c;color:#fff}.btn-danger:hover:not(:disabled){background:#c0392b}.card{background:#222;border-radius:12px;padding:.5rem;border:1px solid #333}.modal-backdrop{position:fixed;top:0;left:0;width:100%;height:100%;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000}.modal{background:#222;border-radius:8px;min-width:300px;max-width:90%;max-height:90%;overflow:auto;border:1px solid #333}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1rem;border-bottom:1px solid #333}.modal-title{margin:0;font-size:1.1rem;color:#fff}.modal-close{background:none;border:none;color:#999;font-size:1.5rem;cursor:pointer;padding:0;line-height:1}.modal-close:hover{color:#fff}.modal-content{padding:1rem}.checkbox{display:inline-flex;align-items:center;gap:.5rem;cursor:pointer;-webkit-user-select:none;user-select:none}.checkbox-disabled{opacity:.5;cursor:not-allowed}.checkbox-input{position:absolute;opacity:0;width:0;height:0}.checkbox-box{width:20px;height:20px;border:2px solid #555;border-radius:4px;display:flex;align-items:center;justify-content:center;transition:background .1s ease-in,border-color .1s ease-in}.checkbox-checked{background:#4a9eff;border-color:#4a9eff}.checkbox-icon{width:14px;height:14px;fill:#fff}.checkbox-label{color:#fff;font-size:.9rem}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:none;border-radius:4px;cursor:pointer;transition:background .1s ease-in}.icon-btn:disabled{opacity:.5;cursor:not-allowed}.icon-btn-default{background:transparent;color:#999}.icon-btn-default:hover:not(:disabled){background:#333;color:#fff}.icon-btn-danger{background:transparent;color:#999}.icon-btn-danger:hover:not(:disabled){background:#e74c3c;color:#fff}.badge{display:inline-block;padding:.2rem .5rem;font-size:.75rem;border-radius:4px;font-weight:500}.badge-default{background:#555;color:#fff}.badge-primary{background:#4a9eff;color:#fff}.badge-success{background:#27ae60;color:#fff}.badge-warning{background:#f39c12;color:#111}.badge-danger{background:#e74c3c;color:#fff}.list{list-style:none;margin:0;padding:0}.list-item{padding:.75rem;border-bottom:1px solid #333}.list-item:last-child{border-bottom:none}.list-empty{padding:1rem;text-align:center;color:#666}.app{min-height:100vh;padding:1rem;padding-bottom:70px;color:#fff}.app-header{margin-bottom:.5rem;max-width:600px;margin-left:auto;margin-right:auto}.app-main{max-width:600px;margin:0 auto}.app-title-section{position:relative}.app-title-row{display:flex;justify-content:space-between;align-items:flex-start}.app-title-clickable{cursor:pointer;display:flex;flex-direction:column;justify-content:center;height:52px}.app-title-clickable:hover .app-title{color:#4a9eff}.app-title{margin:0;font-size:1.75rem;font-weight:700;line-height:1}.app-title.app-title-small{font-size:1.4rem}.app-title-date{font-size:.8rem;color:#888;font-weight:400;margin-top:.15rem}.add-task-btn{width:36px;height:36px;background:#4a9eff!important;color:#fff!important;border-radius:50%}.add-task-btn:hover{background:#3a8eef!important}.floating-datepicker{position:absolute;top:100%;left:0;z-index:100;margin-top:.5rem;box-shadow:0 8px 24px #0006;border-radius:8px;overflow:hidden}.calendar-carousel{display:flex;align-items:center;gap:.25rem;padding:.5rem 0;margin-bottom:.75rem}.carousel-days{display:flex;flex:1;justify-content:space-around}.carousel-day{display:flex;flex-direction:column;align-items:center;gap:.15rem;cursor:pointer;padding:.4rem .5rem;border-radius:12px;transition:background .1s ease-in;border:none;background:transparent;color:#888}.carousel-day:hover{background:#333}.carousel-day-name{font-size:.65rem;text-transform:uppercase;letter-spacing:.05em;font-weight:500}.carousel-day-number{font-size:.95rem;font-weight:600;width:34px;height:34px;display:flex;align-items:center;justify-content:center;border-radius:50%;box-sizing:border-box;border:2px solid transparent;transition:background .1s ease-in,color .1s ease-in}.carousel-day.carousel-selected{color:#fff}.carousel-day.carousel-selected .carousel-day-number{background:#4a9eff;color:#fff}.carousel-day.carousel-today:not(.carousel-selected) .carousel-day-number{border:2px solid #4a9eff;color:#4a9eff}.carousel-day.carousel-center{transform:scale(1.05)}.todo-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem;-webkit-user-select:none;user-select:none}.empty-message{color:#666;text-align:center;padding:1.5rem 0;margin:0}.task-card{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:#2a2a2a;border-radius:12px;border:1px solid #333;transition:background .1s ease-in;position:relative}.task-card:hover{background:#333}.task-card-completed{opacity:.5}.task-card-icon{width:40px;height:40px;border-radius:50%;background:#4a9eff26;color:#4a9eff;display:flex;align-items:center;justify-content:center;flex-shrink:0}.task-card-content{flex:1;display:flex;flex-direction:column;gap:.15rem;min-width:0}.task-card-name{font-size:.95rem;font-weight:600;color:#fff}.task-card-name-completed{text-decoration:line-through;color:#888}.task-card-time{font-size:.85rem;color:#4a9eff;font-weight:600;white-space:nowrap;flex-shrink:0}.task-card-actions{display:flex;align-items:center;gap:.15rem;flex-shrink:0}.drag-handle{display:flex;align-items:center;cursor:grab;color:#555;padding:.25rem;margin:-.25rem;margin-right:0;touch-action:none;-webkit-user-select:none;user-select:none}.drag-handle:hover{color:#888}.drag-handle:active{cursor:grabbing}body.is-dragging{cursor:grabbing!important;-webkit-user-select:none;user-select:none}.task-card.dragging{opacity:.4;background:#333}.task-card.dragging *{pointer-events:none}.task-card.drag-over{border-top:2px solid #4a9eff;padding-top:calc(.75rem - 2px)}.todo-reminder-btn{color:#555}.todo-reminder-btn.has-reminder{color:#f39c12}.todo-reminder-btn.has-reminder:hover{color:#e67e22}.modal-form{display:flex;flex-direction:column;gap:1rem}.modal-input{padding:.75rem;border:1px solid #444;border-radius:4px;background:#333;color:#fff;font-size:.95rem}.modal-input:focus{outline:none;border-color:#4a9eff}.modal-actions{display:flex;justify-content:flex-end;gap:.5rem}.modal-field{display:flex;flex-direction:column;gap:.5rem}.modal-label{font-size:.85rem;color:#888}.selected-date{display:flex;align-items:center;justify-content:space-between;padding:.5rem .75rem;background:#2a2a2a;border:1px solid #4a9eff;border-radius:4px;color:#fff;font-size:.9rem}.selected-date .icon-btn{width:24px;height:24px}.icon-picker-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:.5rem}.icon-picker-item{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border:1px solid #444;border-radius:8px;background:#333;color:#999;cursor:pointer;transition:background .1s ease-in,border-color .1s ease-in,color .1s ease-in}.icon-picker-item:hover{background:#444;color:#fff;border-color:#555}.icon-picker-item.icon-picker-selected{background:#4a9eff26;border-color:#4a9eff;color:#4a9eff}.reminder-modal{display:flex;flex-direction:column;gap:1rem;min-width:300px}.reminder-current{display:flex;align-items:center;justify-content:space-between;padding:.75rem;background:#2a2a2a;border-radius:4px;font-size:.9rem}.reminder-section{display:flex;flex-direction:column;gap:.5rem}.reminder-label{font-size:.85rem;color:#888}.reminder-presets{display:flex;flex-wrap:wrap;gap:.5rem}.reminder-preset-btn{padding:.5rem .75rem;border:1px solid #444;border-radius:4px;background:#333;color:#fff;font-size:.8rem;cursor:pointer;transition:background .1s ease-in,border-color .1s ease-in}.reminder-preset-btn:hover{background:#444;border-color:#4a9eff}.reminder-custom{display:flex;gap:.5rem}.reminder-custom .modal-input{flex:1}.reminder-actions{display:flex;justify-content:flex-end;padding-top:.5rem;border-top:1px solid #333}.time-picker{display:flex;align-items:stretch;position:relative;background:#1c1c1c;border-radius:12px;border:1px solid #333;overflow:hidden;-webkit-user-select:none;user-select:none}.time-picker-selection-bar{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);height:44px;background:#4a9eff12;border-top:1px solid rgba(74,158,255,.2);border-bottom:1px solid rgba(74,158,255,.2);pointer-events:none;z-index:10}.dial-column{flex:1;height:220px;box-sizing:border-box;overflow-y:scroll;scroll-snap-type:y mandatory;scrollbar-width:none;padding:88px 0;text-align:center;overscroll-behavior:contain;-webkit-mask-image:linear-gradient(to bottom,transparent 0%,black 22%,black 78%,transparent 100%);mask-image:linear-gradient(to bottom,transparent 0%,black 22%,black 78%,transparent 100%)}.dial-column.dial-narrow{flex:0 0 68px}.dial-column::-webkit-scrollbar{display:none}.dial-item{height:44px;display:flex;align-items:center;justify-content:center;scroll-snap-align:center;font-size:1.15rem;font-variant-numeric:tabular-nums;color:#ccc;cursor:pointer;transition:color .1s}.dial-item-selected{color:#fff;font-weight:600}.time-picker-separator{display:flex;align-items:center;padding:0 2px;font-size:1.4rem;color:#fff;pointer-events:none;z-index:11;flex-shrink:0}.time-add-btn{display:flex;align-items:center;gap:.5rem;padding:.6rem 1rem;border:1px dashed #444;border-radius:8px;background:transparent;color:#888;cursor:pointer;font-size:.9rem;width:100%;transition:border-color .15s,color .15s}.time-add-btn:hover{border-color:#4a9eff;color:#4a9eff}.time-picker-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}.time-picker-value{font-size:.9rem;color:#4a9eff;font-weight:500}.markdown{font-size:.85rem;line-height:1.5;color:#aaa}.markdown code{background:#333;padding:.1rem .3rem;border-radius:3px;font-family:monospace;font-size:.8rem}.markdown pre{background:#333;padding:.5rem;border-radius:4px;overflow-x:auto;margin:.5rem 0}.markdown pre code{background:none;padding:0}.markdown strong{color:#fff;font-weight:600}.markdown em{font-style:italic}.markdown del{text-decoration:line-through;opacity:.7}.markdown a{color:#4a9eff;text-decoration:none}.markdown a:hover{text-decoration:underline}.markdown ul{margin:.25rem 0;padding-left:1.25rem;list-style:disc}.markdown li{margin:.15rem 0}.modal-textarea{padding:.75rem;border:1px solid #444;border-radius:4px;background:#333;color:#fff;font-size:.9rem;font-family:inherit;resize:vertical;min-height:80px}.modal-textarea:focus{outline:none;border-color:#4a9eff}.modal-textarea::placeholder{color:#666}.rich-editor{border:1px solid #444;border-radius:4px;background:#333;overflow:hidden}.rich-editor-toolbar{display:flex;align-items:center;gap:.25rem;padding:.5rem;background:#2a2a2a;border-bottom:1px solid #444;flex-wrap:wrap}.rich-editor-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:none;border-radius:4px;background:transparent;color:#999;cursor:pointer;transition:background .1s ease-in,color .1s ease-in}.rich-editor-btn:hover{background:#444;color:#fff}.rich-editor-btn.active{background:#4a9eff;color:#fff}.rich-editor-btn.active:hover{background:#3a8eef}.rich-editor-select{height:28px;padding:0 .5rem;border:none;border-radius:4px;background:#444;color:#fff;font-size:.75rem;cursor:pointer;outline:none}.rich-editor-select:hover{background:#555}.rich-editor-select:focus{background:#555}.rich-editor-divider{width:1px;height:20px;background:#444;margin:0 .25rem}.rich-editor-content{min-height:80px;max-height:200px;overflow-y:auto;padding:.75rem;color:#fff;font-size:.9rem;line-height:1.5;outline:none}.rich-editor-content:empty:before{content:attr(data-placeholder);color:#666;pointer-events:none}.rich-editor-content:focus{background:#383838}.rich-editor-content code{background:#222;padding:.1rem .3rem;border-radius:3px;font-family:monospace;font-size:.85rem}.rich-editor-content a{color:#4a9eff;text-decoration:underline}.rich-editor-content ul,.rich-editor-content ol{margin:.25rem 0;padding-left:1.5rem}.rich-editor-content li{margin:.15rem 0}.calendar-lunar-toggle{padding:.25rem .6rem;border:1px solid #555;border-radius:12px;background:transparent;color:#ccc;font-size:.75rem;text-transform:uppercase;cursor:pointer;letter-spacing:.05em;transition:background .1s ease-in,color .1s ease-in;flex-shrink:0}.calendar-lunar-toggle:hover{border-color:#888;color:#fff}.calendar-lunar-toggle.active{background:#4a9eff;border-color:#4a9eff;color:#fff}.calendar-lunar-toggle.active:hover{background:#3a8eef;border-color:#3a8eef}.calendar-lunar-day{font-size:.55rem;color:#777;line-height:1;white-space:nowrap}.calendar-cell.in-month .calendar-lunar-day{color:#999}.calendar-cell.is-today .calendar-lunar-day{color:#bbb}.calendar-cell.is-selected .calendar-lunar-day{color:#fffc}.calendar-showcase{max-width:100%}.calendar-showcase .calendar-cell,.calendar-cell.show-lunar{position:relative;flex-direction:column;gap:.15rem}.calendar-day-number{font-size:.85rem}.calendar-task-indicator{position:absolute;bottom:2px;right:2px;font-size:.6rem;background:#4a9eff;color:#fff;border-radius:50%;width:14px;height:14px;display:flex;align-items:center;justify-content:center;font-weight:600}.calendar-cell.has-tasks{background:#4a9eff26}.calendar-cell.has-tasks:hover{background:#4a9eff40}.task-card.proximity-yellow{border-left:3px solid #f39c12}.task-card.proximity-orange{border-left:3px solid #e67e22}.task-card.proximity-red{border-left:3px solid #e74c3c}.task-card.proximity-yellow .task-card-time{color:#f39c12}.task-card.proximity-orange .task-card-time{color:#e67e22}.task-card.proximity-red .task-card-time{color:#e74c3c}.detail-modal{display:flex;flex-direction:column;gap:1rem;min-width:300px}.detail-header-row{display:flex;align-items:center;gap:.75rem}.detail-header-info{flex:1;min-width:0}.detail-title{font-size:1.1rem;font-weight:600;color:#fff}.detail-meta{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.detail-meta-item{display:inline-flex;align-items:center;gap:.35rem;font-size:.85rem;color:#888}.detail-description{padding:.75rem;background:#2a2a2a;border-radius:8px}.detail-actions{display:flex;flex-direction:column;gap:.25rem;padding-top:.5rem;border-top:1px solid #333}.detail-action-btn{display:flex;align-items:center;gap:.75rem;padding:.6rem .75rem;border:none;border-radius:8px;background:transparent;color:#999;font-size:.9rem;cursor:pointer;transition:background .1s ease-in}.detail-action-btn:hover{background:#333;color:#fff}.detail-action-btn.detail-action-active{color:#4a9eff}.detail-action-btn.detail-action-danger:hover{background:#e74c3c26;color:#e74c3c}.tab-bar{position:fixed;bottom:0;left:0;right:0;display:flex;justify-content:space-around;align-items:center;background:#1a1a1a;border-top:1px solid #333;padding:.4rem 0;z-index:900}.tab-bar-btn{display:flex;flex-direction:column;align-items:center;gap:.2rem;background:transparent;border:none;color:#888;font-size:.65rem;cursor:pointer;padding:.25rem 1rem;transition:color .1s ease-in}.tab-bar-btn:hover{color:#bbb}.tab-bar-btn.tab-active{color:#4a9eff}.placeholder-text{text-align:center;color:#666;font-size:1.1rem;padding-top:4rem}.routine-card{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:#2a2a2a;border-radius:12px;border:1px solid #333;cursor:pointer;transition:background .1s ease-in}.routine-card:hover{background:#333}.routine-card-inactive{opacity:.5}.routine-card-content{flex:1;display:flex;flex-direction:column;gap:.15rem;min-width:0}.routine-card-freq{font-size:.8rem;color:#888}.routine-active-btn{color:#4a9eff!important}.routine-inactive-btn{color:#555!important}.freq-selector{display:flex;gap:.5rem}.freq-btn{flex:1;padding:.5rem .75rem;border:1px solid #444;border-radius:8px;background:#333;color:#999;font-size:.85rem;cursor:pointer;transition:background .1s ease-in,border-color .1s ease-in,color .1s ease-in}.freq-btn:hover{background:#444;color:#fff}.freq-btn-active{background:#4a9eff26;border-color:#4a9eff;color:#4a9eff}.dow-picker{display:flex;gap:.35rem}.dow-btn{width:40px;height:40px;border:1px solid #444;border-radius:50%;background:#333;color:#999;font-size:.7rem;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .1s ease-in,border-color .1s ease-in,color .1s ease-in}.dow-btn:hover{background:#444;color:#fff}.dow-btn-active{background:#4a9eff;border-color:#4a9eff;color:#fff}.dow-btn-active:hover{background:#3a8eef;border-color:#3a8eef}.task-card-icon-wrapper{position:relative;flex-shrink:0}.task-card-routine-badge{position:absolute;bottom:-2px;right:-4px;color:#888}@media(min-width:1024px){.tab-bar{position:fixed;top:0;left:0;bottom:0;right:auto;width:220px;flex-direction:column;justify-content:flex-start;align-items:stretch;padding:2rem .75rem;gap:.25rem;border-top:none;border-right:1px solid #333}.tab-bar-btn{flex-direction:row;gap:.75rem;font-size:.85rem;padding:.65rem 1rem;border-radius:8px;justify-content:flex-start;border-left:3px solid transparent}.tab-bar-btn.tab-active{background:#4a9eff1a;border-left-color:#4a9eff}.tab-bar-btn:hover{background:#2a2a2a}.app{margin-left:220px;padding:2rem}.app-header{max-width:700px;margin-left:auto;margin-right:auto}.app-main{max-width:700px;margin:0 auto}.app-title{font-size:2rem}.app-title.app-title-small{font-size:1.6rem}.app-title-date{font-size:.85rem}.carousel-day-name{font-size:.7rem}.carousel-day-number{width:38px;height:38px;font-size:1rem}.carousel-day{padding:.5rem .65rem}.modal{min-width:480px;max-width:600px}.detail-modal,.reminder-modal{min-width:420px}.icon-picker-grid{grid-template-columns:repeat(7,1fr)}.rich-editor-content{max-height:300px}.floating-datepicker{min-width:320px}}
