:root,[data-theme=light]{--primary: #007AFF;--primary-bg: rgba(0, 122, 255, .1);--bg: #F2F2F7;--card: #FFFFFF;--card-hover: #FAFAFA;--text: #1C1C1E;--text-secondary: #3A3A3C;--gray: #8E8E93;--gray-light: #AEAEB2;--border: rgba(0, 0, 0, .05);--border-strong: rgba(0, 0, 0, .1);--hover: rgba(0, 0, 0, .02);--input-bg: #FFFFFF;--toolbar-bg: #F9F9F9;--shadow: rgba(0, 0, 0, .08);--shadow-strong: rgba(0, 0, 0, .15);--tab-bg: rgba(118, 118, 128, .12);--tab-active-bg: white;--tab-active-shadow: rgba(0, 0, 0, .12);--nav-bg: rgba(255, 255, 255, .85);--green: #34C759;--red: #FF3B30;--orange: #FF9500}[data-theme=dark]{--primary: #0A84FF;--primary-bg: rgba(10, 132, 255, .15);--bg: #000000;--card: #1C1C1E;--card-hover: #2C2C2E;--text: #F5F5F7;--text-secondary: #A1A1A6;--gray: #98989D;--gray-light: #636366;--border: rgba(255, 255, 255, .08);--border-strong: rgba(255, 255, 255, .15);--hover: rgba(255, 255, 255, .05);--input-bg: #2C2C2E;--toolbar-bg: #2C2C2E;--shadow: rgba(0, 0, 0, .3);--shadow-strong: rgba(0, 0, 0, .5);--tab-bg: rgba(118, 118, 128, .24);--tab-active-bg: #2C2C2E;--tab-active-shadow: rgba(0, 0, 0, .3);--nav-bg: rgba(28, 28, 30, .9);--green: #30D158;--red: #FF453A;--orange: #FF9F0A}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Helvetica Neue,sans-serif;background-color:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;transition:background-color .3s ease,color .3s ease}.app-container{max-width:600px;margin:0 auto;padding:40px 20px;min-height:100vh;min-height:100dvh;min-height:-webkit-fill-available;box-sizing:border-box}header{margin-bottom:32px}.logo-area{display:flex;align-items:center;gap:12px}header h1{font-size:34px;font-weight:700;margin:0;letter-spacing:-.5px}header p{color:var(--gray);margin:4px 0 0}.header-actions{margin-left:auto;display:flex;gap:8px}.header-icon-btn{width:40px;height:40px;border:none;border-radius:12px;background:var(--tab-bg);color:var(--gray);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1)}.header-icon-btn:hover{background:var(--primary-bg);color:var(--primary);transform:scale(1.05)}.header-icon-btn:active{transform:scale(.95)}.tab-switcher{display:flex;background:var(--tab-bg);padding:2px;border-radius:10px;margin-bottom:24px}.tab-switcher button{flex:1;border:none;background:transparent;padding:8px;border-radius:8px;font-size:14px;font-weight:500;display:flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;color:var(--text-secondary);transition:all .3s cubic-bezier(.4,0,.2,1)}.tab-switcher button.active{background:var(--tab-active-bg);box-shadow:0 3px 8px var(--tab-active-shadow);color:var(--text)}.tab-content{animation:tabFadeIn .3s ease-out}@keyframes tabFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.category-filter-wrapper{display:flex;align-items:center;gap:8px;margin-bottom:16px}.category-filter{display:flex;gap:8px;flex-wrap:wrap;flex:1}.category-filter button{padding:8px 16px;border-radius:20px;border:none;background:var(--tab-bg);color:var(--text-secondary);font-size:14px;font-weight:500;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1)}.category-filter button.active{background:var(--primary);color:#fff;font-weight:600;box-shadow:0 2px 8px #007aff4d;transform:scale(1.05)}.category-filter button:not(.active):hover{background:var(--hover);transform:translateY(-1px)}.todo-tools{display:flex;flex-direction:column;gap:10px;margin-bottom:16px}.todo-search{display:flex;align-items:center;gap:8px;background:var(--card);border-radius:14px;padding:8px 12px;border:1px solid var(--border);box-shadow:0 2px 8px var(--shadow)}.search-input{flex:1;background:transparent;padding:6px 4px;font-size:14px;box-shadow:none}.search-input:focus{box-shadow:none}.search-clear{width:24px;height:24px;border:none;border-radius:8px;background:var(--tab-bg);color:var(--gray);cursor:pointer;display:flex;align-items:center;justify-content:center}.search-clear:hover{background:var(--border-strong);color:var(--text)}.filter-row{display:flex;flex-wrap:wrap;gap:8px}.filter-chip{padding:6px 12px;border-radius:999px;border:none;background:var(--tab-bg);color:var(--text-secondary);font-size:12px;font-weight:600;cursor:pointer;transition:all .2s}.filter-chip:hover{background:var(--hover)}.filter-chip.active{background:var(--primary);color:#fff}.filter-chip:disabled{opacity:.5;cursor:not-allowed}.batch-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;margin-bottom:16px;background:var(--card);border-radius:14px;border:1px solid var(--border);box-shadow:0 2px 8px var(--shadow);flex-wrap:wrap}.batch-left,.batch-right{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.batch-count{font-size:13px;color:var(--gray);font-weight:600}.batch-btn{padding:6px 12px;border-radius:10px;border:none;background:var(--tab-bg);color:var(--text-secondary);font-size:12px;font-weight:600;cursor:pointer;transition:all .2s}.batch-btn:hover:not(:disabled){background:var(--border-strong)}.batch-btn:disabled{opacity:.5;cursor:not-allowed}.batch-btn.danger{background:rgba(255,59,48,.12);color:var(--red)}.batch-select{padding:6px 10px;border-radius:10px;border:1px solid var(--border-strong);background:var(--input-bg);color:var(--text);font-size:12px}.batch-select:disabled{opacity:.6;cursor:not-allowed}.batch-checkbox{width:18px;height:18px;accent-color:var(--primary);cursor:pointer;flex:0 0 auto;padding:0;background:transparent;box-shadow:none}input,textarea{flex:1;border:none;background:var(--input-bg);padding:14px 18px;border-radius:14px;font-size:16px;box-shadow:0 2px 4px #00000005;outline:none;color:var(--text);transition:all .3s ease}input::placeholder,textarea::placeholder{color:var(--gray-light)}input:focus,textarea:focus{box-shadow:0 0 0 3px #007aff26}.input-group{display:flex;gap:12px;margin-bottom:24px}.input-group button{background:var(--primary);color:#fff;border:none;width:48px;height:48px;border-radius:14px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;position:relative}.input-group button:active{transform:scale(.95)}.input-group button:disabled{background:var(--gray-light);cursor:not-allowed;opacity:.6}.input-group button.active{background:var(--green);box-shadow:0 4px 12px #34c7594d}.category-btn{position:relative;background:var(--primary-bg)!important;color:var(--primary)!important;transition:all .2s}.category-btn.active{background:var(--primary)!important;color:#fff!important}.category-indicator{position:absolute;top:-4px;right:-4px;background:var(--orange);color:#fff;font-size:9px;font-weight:600;padding:2px 5px;border-radius:8px;min-width:14px;text-align:center}.ai-extract-btn{background:linear-gradient(135deg,#5856D6 0%,#AF52DE 100%)!important;color:#fff!important}.ai-extract-btn:disabled{background:var(--gray-light)!important;cursor:not-allowed}.ai-extract-btn.loading{background:var(--gray-light)!important}.deadline-btn{background:var(--tab-bg)!important;color:var(--gray)!important}.deadline-btn.active{background:var(--orange)!important;color:#fff!important}.priority-btn{background:var(--tab-bg)!important;color:var(--gray)!important}.priority-btn.active{background:var(--primary-bg)!important}.priority-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.priority-select-popup{background:var(--card);border-radius:12px;padding:12px;margin-bottom:16px;display:flex;gap:10px;box-shadow:0 4px 20px var(--shadow-strong);border:1px solid var(--border);animation:popIn .2s cubic-bezier(.4,0,.2,1)}.priority-select-popup button{padding:10px 20px;border-radius:10px;border:2px solid transparent;background:var(--tab-bg);cursor:pointer;font-size:14px;font-weight:500;color:var(--text-secondary);transition:all .2s;display:flex;align-items:center;gap:6px}.priority-select-popup button:hover{background:var(--primary-bg);color:var(--primary);border-color:#007aff4d}.priority-select-popup button.selected{background:var(--primary);color:#fff!important;border-color:var(--primary);font-weight:600}.deadline-picker-row{display:flex;gap:8px;margin-bottom:16px;align-items:center}.deadline-trigger{flex:1;display:flex;align-items:center;gap:8px;padding:10px 14px;border:none;border-radius:10px;font-size:14px;background:var(--tab-bg);color:var(--gray);cursor:pointer;transition:all .2s}.deadline-trigger.active{background:rgba(255,149,0,.15);color:var(--orange)}.clear-deadline{padding:10px 14px;border:none;background:rgba(255,59,48,.1);color:var(--red);border-radius:10px;font-size:13px;cursor:pointer;transition:all .2s}.custom-date-picker{background:var(--card);border-radius:16px;padding:16px;margin-bottom:16px;box-shadow:0 4px 20px var(--shadow-strong);animation:slideDown .25s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-12px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.picker-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.picker-header button{width:28px;height:28px;border:none;border-radius:8px;background:var(--tab-bg);color:var(--text);cursor:pointer;transition:all .2s}.picker-header button:hover{background:var(--primary-bg);color:var(--primary)}.picker-header span{font-size:14px;font-weight:500;color:var(--text)}.picker-weekdays{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;font-size:12px;color:var(--gray);margin-bottom:8px}.picker-days{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.picker-days .day,.picker-days .empty{width:36px;height:36px;display:flex;align-items:center;justify-content:center;font-size:14px;border-radius:50%;border:none;background:transparent;cursor:pointer;color:var(--text);transition:all .15s ease}.picker-days .day:hover{background:var(--hover)}.picker-days .day.today{border:1px solid var(--primary)}.picker-days .day.selected{background:var(--primary);color:#fff}.picker-time-toggle{display:flex;align-items:center;margin-top:12px;padding-top:12px;border-top:1px solid var(--border)}.picker-time-toggle label{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--text);cursor:pointer}.picker-time-toggle input[type=checkbox]{width:16px;height:16px;accent-color:var(--primary);cursor:pointer}.picker-time-select{display:flex;align-items:center;gap:8px;margin-top:10px}.picker-time-select select{padding:6px 10px;border:1px solid var(--border-strong);border-radius:8px;font-size:14px;background:var(--input-bg);color:var(--text);cursor:pointer}.picker-time-select span{font-size:16px;font-weight:600;color:var(--text)}.picker-actions{margin-top:12px;display:flex;justify-content:flex-end}.picker-confirm{padding:8px 24px;border:none;border-radius:8px;font-size:14px;font-weight:500;background:var(--primary);color:#fff;cursor:pointer;transition:all .2s}.picker-confirm:hover{filter:brightness(1.1)}.category-select-popup{background:var(--card);border-radius:12px;padding:12px;margin-bottom:16px;display:flex;gap:10px;box-shadow:0 4px 20px var(--shadow-strong);border:1px solid var(--border);animation:popIn .2s cubic-bezier(.4,0,.2,1)}@keyframes popIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.category-select-popup button{padding:10px 20px;border-radius:10px;border:2px solid transparent;background:var(--tab-bg);cursor:pointer;font-size:14px;font-weight:500;color:var(--text-secondary);transition:all .2s}.category-select-popup button:hover{background:var(--primary-bg);color:var(--primary);border-color:#007aff4d}.category-select-popup button.selected{background:var(--primary);color:#fff;border-color:var(--primary);font-weight:600}.todo-list{list-style:none;padding:0;margin:0;background:var(--card);border-radius:20px;overflow:hidden;box-shadow:0 4px 12px #00000008;transition:background-color .3s ease}.todo-list li{padding:16px 20px;display:flex;align-items:center;gap:12px;border-bottom:.5px solid var(--border);transition:all .3s cubic-bezier(.4,0,.2,1);animation:todoSlideIn .35s ease-out;position:relative}@keyframes todoSlideIn{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}.todo-list li:last-child{border-bottom:none}.todo-list li:hover{background:var(--hover)}.todo-list li.editing{background:var(--card-hover);flex-direction:column;align-items:stretch;gap:12px}.todo-list li.selected{background:var(--primary-bg);box-shadow:inset 0 0 0 1px #007aff33}.todo-list li.priority-high{border-left:4px solid var(--red)}.todo-list li.priority-medium{border-left:4px solid var(--orange)}.todo-list li.priority-low{border-left:4px solid transparent}.todo-list li.removing{animation:todoSlideOut .3s ease-in forwards}@keyframes todoSlideOut{to{opacity:0;transform:translate(100%);max-height:0;padding-top:0;padding-bottom:0;margin-top:0;margin-bottom:0}}.drag-handle{cursor:grab;color:var(--gray-light);display:flex;align-items:center;padding:4px;border-radius:4px;transition:all .2s;flex-shrink:0;opacity:.4}.todo-list li:hover .drag-handle{opacity:1}.drag-handle:active{cursor:grabbing}.drag-handle:hover{color:var(--primary);background:var(--primary-bg)}.todo-list li.dragging{opacity:.4;background:var(--primary-bg);border:2px dashed var(--primary);border-radius:12px}.todo-list li.drag-over{border-top:3px solid var(--primary);padding-top:13px}.check-btn{background:none!important;border:none;padding:4px;cursor:pointer;transition:transform .2s;flex-shrink:0}.check-btn:active{transform:scale(1.3)}.todo-list li.completed .check-btn{animation:checkBounce .4s ease-out}@keyframes checkBounce{0%{transform:scale(1)}30%{transform:scale(1.3)}50%{transform:scale(.9)}70%{transform:scale(1.1)}to{transform:scale(1)}}.todo-list li.completed .todo-text{position:relative;color:var(--gray)}.todo-list li.completed .todo-text:after{content:"";position:absolute;left:0;top:50%;width:100%;height:1.5px;background:var(--gray);animation:strikeThrough .3s ease-out}@keyframes strikeThrough{0%{width:0}to{width:100%}}.todo-content{flex:1;display:flex;flex-direction:column;gap:4px;cursor:pointer;min-width:0}.todo-content:hover{opacity:.8}.todo-text{word-break:break-all;transition:color .2s}.todo-meta{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.todo-category{font-size:12px;font-weight:600;padding:3px 10px;border-radius:12px;align-self:flex-start;border:1px solid;transition:all .2s}.todo-deadline{font-size:11px;padding:2px 8px;border-radius:10px;font-weight:500}.deadline-overdue{background:rgba(255,59,48,.1);color:var(--red)}.deadline-today{background:rgba(255,149,0,.1);color:var(--orange)}.deadline-tomorrow{background:rgba(255,179,0,.1);color:#ffb300}.deadline-soon{background:rgba(0,122,255,.1);color:var(--primary)}.deadline-normal{background:var(--tab-bg);color:var(--gray)}.deadline-done{background:rgba(52,199,89,.1);color:var(--green)}.delete-btn{background:none;border:none;padding:8px;cursor:pointer;opacity:0;transition:all .2s;color:var(--red);flex-shrink:0;border-radius:8px}.todo-list li:hover .delete-btn{opacity:.5}.delete-btn:hover{opacity:1!important;background:rgba(255,59,48,.1)}.todo-edit-mode{width:100%;display:flex;flex-direction:column;gap:10px;animation:expandIn .25s ease-out}@keyframes expandIn{0%{opacity:0;max-height:0}to{opacity:1;max-height:200px}}.todo-edit-input{width:100%;padding:12px 16px;border:2px solid var(--primary)!important;border-radius:12px;font-size:16px;outline:none;box-sizing:border-box;background:var(--input-bg);color:var(--text);transition:all .2s}.todo-edit-input:focus{box-shadow:0 0 0 4px #007aff26}.todo-edit-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.todo-edit-select,.todo-edit-date{padding:8px 12px;border:1px solid var(--border-strong);border-radius:8px;font-size:14px;background:var(--input-bg);color:var(--text);cursor:pointer}.todo-edit-actions{display:flex;gap:8px;margin-left:auto}.todo-edit-actions button{padding:8px 16px;border-radius:8px;border:none;font-size:14px;cursor:pointer;display:flex;align-items:center;gap:6px;transition:all .2s}.todo-edit-actions .cancel-btn{background:var(--tab-bg);color:var(--gray)}.todo-edit-actions .cancel-btn:hover{background:var(--border-strong)}.todo-edit-actions .save-btn{background:var(--primary);color:#fff}.todo-edit-actions .save-btn:hover{filter:brightness(1.1)}.empty-state{text-align:center;color:var(--gray);padding:60px 20px!important;justify-content:center;flex-direction:column;animation:fadeInUp .5s ease-out}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.empty-illustration{font-size:64px;margin-bottom:16px;animation:gentleFloat 3s ease-in-out infinite}@keyframes gentleFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.empty-title{font-size:18px;font-weight:600;color:var(--text);margin:0 0 4px!important}.empty-hint{font-size:14px;color:var(--gray-light);margin:0!important}.empty-action{margin-top:16px;padding:10px 24px;border:none;border-radius:20px;background:var(--primary-bg);color:var(--primary);font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.empty-action:hover{background:var(--primary);color:#fff}.stats-panel{background:var(--card);border-radius:20px;padding:24px;margin-bottom:24px;box-shadow:0 4px 20px var(--shadow);animation:slideDown .3s ease-out}.stats-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.stats-header h3{margin:0;font-size:18px;font-weight:700}.stats-close{width:32px;height:32px;border:none;border-radius:50%;background:var(--tab-bg);color:var(--gray);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.stats-close:hover{background:rgba(255,59,48,.1);color:var(--red)}.stats-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px}.stat-card{background:var(--tab-bg);border-radius:14px;padding:16px 12px;text-align:center;transition:transform .2s}.stat-card:hover{transform:translateY(-2px)}.stat-number{display:block;font-size:28px;font-weight:700;color:var(--text);line-height:1}.stat-label{display:block;font-size:12px;color:var(--gray);margin-top:6px;font-weight:500}.stat-completed .stat-number{color:var(--green)}.stat-pending .stat-number{color:var(--primary)}.stat-overdue .stat-number{color:var(--red)}.stats-progress{margin-bottom:20px}.progress-header{display:flex;justify-content:space-between;margin-bottom:8px;font-size:14px;font-weight:500}.progress-percent{color:var(--primary);font-weight:700}.progress-bar{height:8px;background:var(--tab-bg);border-radius:4px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,var(--primary),var(--green));border-radius:4px;transition:width .8s cubic-bezier(.4,0,.2,1)}.stats-weekly{margin-bottom:18px}.weekly-header{display:flex;justify-content:space-between;align-items:center;font-size:14px;font-weight:600;margin-bottom:10px}.weekly-rate{color:var(--primary);font-weight:700}.weekly-bars{display:flex;flex-direction:column;gap:8px}.weekly-bar{display:grid;grid-template-columns:44px 1fr 52px;align-items:center;gap:8px;font-size:12px;color:var(--gray)}.weekly-date{font-weight:600;color:var(--text-secondary)}.weekly-track{height:6px;background:var(--tab-bg);border-radius:4px;overflow:hidden}.weekly-fill{height:100%;background:linear-gradient(90deg,var(--primary),var(--green));border-radius:4px;transition:width .6s cubic-bezier(.4,0,.2,1)}.weekly-count{text-align:right;color:var(--gray)}.stats-categories{display:flex;flex-direction:column;gap:12px}.category-stat{display:flex;flex-direction:column;gap:6px}.category-stat-header{display:flex;justify-content:space-between;font-size:13px}.category-stat-name{font-weight:600}.category-stat-count{color:var(--gray)}.category-progress-bar{height:6px;background:var(--tab-bg);border-radius:3px;overflow:hidden}.category-progress-fill{height:100%;border-radius:3px;transition:width .8s cubic-bezier(.4,0,.2,1)}.stats-actions{display:flex;gap:10px;margin-top:20px;padding-top:16px;border-top:.5px solid var(--border)}.export-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:10px 16px;border:none;border-radius:10px;background:var(--primary);color:#fff;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.export-btn:hover{filter:brightness(1.1)}.import-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:10px 16px;border:none;border-radius:10px;background:var(--tab-bg);color:var(--text-secondary);font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.import-btn:hover{background:var(--border-strong)}.undo-toast{position:fixed;bottom:100px;left:50%;transform:translate(-50%);background:var(--text);color:var(--bg);padding:12px 20px;border-radius:14px;display:flex;align-items:center;gap:16px;box-shadow:0 8px 32px #0000004d;z-index:200;animation:toastSlideUp .35s cubic-bezier(.4,0,.2,1);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);max-width:calc(100vw - 40px)}@keyframes toastSlideUp{0%{opacity:0;transform:translate(-50%) translateY(20px) scale(.9)}to{opacity:1;transform:translate(-50%) translateY(0) scale(1)}}.undo-message{font-size:14px;font-weight:500;white-space:nowrap}.undo-btn{background:rgba(255,255,255,.2)!important;border:none;color:var(--primary)!important;padding:6px 14px;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:4px;transition:background .2s;white-space:nowrap}.undo-btn:hover{background:rgba(255,255,255,.3)!important}.toast-close-btn{background:none!important;border:none;color:inherit;opacity:.5;cursor:pointer;padding:4px;display:flex;align-items:center;transition:opacity .2s}.toast-close-btn:hover{opacity:1}.logs-section{display:flex;flex-direction:column;height:calc(100dvh - 200px);min-height:400px;gap:14px}.log-input-area,.log-search{flex-shrink:0}.log-editor{background:var(--card);border-radius:16px;box-shadow:0 2px 8px var(--shadow);overflow:hidden;transition:all .2s}.log-toolbar{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;border-bottom:.5px solid var(--border);background:var(--toolbar-bg)}.toolbar-left{display:flex;gap:4px}.log-toolbar button{background:none;border:none;padding:6px 10px;border-radius:6px;cursor:pointer;color:var(--gray);display:flex;align-items:center;justify-content:center;transition:all .2s}.log-toolbar button:hover{background:var(--hover);color:var(--text)}.clear-history-btn{display:flex;align-items:center;gap:4px;padding:6px 10px;border:none;border-radius:6px;background:rgba(255,59,48,.1);color:var(--red);font-size:12px;cursor:pointer;transition:all .2s}.clear-history-btn:hover{background:rgba(255,59,48,.2)}.log-editor textarea{width:100%;border:none;padding:12px 16px;font-size:15px;line-height:1.6;resize:none;outline:none;font-family:inherit;box-sizing:border-box;min-height:100px;background:var(--card);color:var(--text)}.log-editor textarea:focus{background:var(--card-hover)}.log-actions{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;border-top:.5px solid var(--border)}.log-hint-area{display:flex;align-items:center;gap:12px}.log-hint{font-size:12px;color:var(--gray)}.char-count{font-size:12px;font-weight:500;padding:2px 8px;border-radius:10px;transition:all .2s}.char-count.valid{color:var(--green);background:rgba(52,199,89,.1)}.char-count.invalid{color:var(--orange);background:rgba(255,149,0,.1)}.log-action-buttons{display:flex;align-items:center;gap:8px}.log-clear-btn{background:none;border:none;padding:8px;border-radius:8px;cursor:pointer;color:var(--gray);display:flex;align-items:center;justify-content:center;transition:all .2s}.log-clear-btn:hover{background:var(--tab-bg);color:var(--red)}.log-send-btn{background:var(--primary);color:#fff;border:none;padding:8px 16px;border-radius:8px;display:flex;align-items:center;gap:6px;cursor:pointer;transition:all .2s;font-size:14px;font-weight:500}.log-send-btn:active{transform:scale(.95)}.log-send-btn:disabled{background:var(--gray-light);cursor:not-allowed}.log-send-btn.loading{background:var(--gray-light)}.logs-list{flex:1;overflow-y:auto;padding-bottom:16px}.log-day-group{margin-bottom:20px}.log-date-header{font-size:14px;font-weight:700;color:var(--text);padding:12px 16px;margin-bottom:8px;background:var(--tab-bg);border-radius:12px;display:inline-block}.log-entries{background:var(--card);border-radius:16px;overflow:hidden;box-shadow:0 2px 8px #00000008}.log-entry{display:flex;flex-direction:column;gap:10px;padding:14px 16px;border-bottom:.5px solid var(--border);animation:logFadeIn .3s ease-out}@keyframes logFadeIn{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.log-entry:last-child{border-bottom:none}.log-entry:hover .log-delete-btn{opacity:1}.log-entry-body{display:flex;flex-direction:column;gap:10px}.log-entry-main{display:flex;gap:12px;align-items:flex-start}.log-icon{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:8px;flex-shrink:0}.log-entry-thought .log-icon{background:var(--tab-bg)}.log-entry-ai_chat .log-icon{background:var(--primary-bg);color:var(--primary)}.log-entry-ai_reply .log-icon{background:rgba(88,86,214,.1);color:#5856d6}.log-content{flex:1;min-width:0;cursor:text;border-radius:8px;transition:background .2s}.log-content:hover{background:var(--hover);margin:-4px;padding:4px}.log-content p{margin:0;font-size:15px;line-height:1.5;word-break:break-word;white-space:pre-wrap}.log-time{font-size:11px;color:var(--gray);margin-top:4px;display:block}.log-delete-btn{flex-shrink:0;background:none;border:none;padding:6px;cursor:pointer;opacity:0;transition:opacity .2s;color:var(--red);border-radius:8px;margin-left:auto}.log-delete-btn:hover{background:rgba(255,59,48,.08)}.log-edit-mode{flex:1;min-width:0}.log-edit-mode textarea{width:100%;border:1px solid var(--primary);border-radius:8px;padding:10px;font-size:14px;line-height:1.5;resize:none;outline:none;font-family:inherit;box-sizing:border-box;background:var(--input-bg);color:var(--text)}.log-edit-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}.log-edit-actions button{padding:6px 12px;border-radius:6px;font-size:13px;cursor:pointer;display:flex;align-items:center;gap:4px;border:none}.log-edit-actions .cancel-btn{background:var(--tab-bg);color:var(--gray)}.log-edit-actions .save-btn{background:var(--primary);color:#fff}.log-ai-actions{display:flex;flex-wrap:wrap;gap:8px;margin-left:40px}.log-ai-action-btn{border:none;border-radius:999px;padding:7px 12px;background:var(--tab-bg);color:var(--text-secondary);font-size:12px;font-weight:600;cursor:pointer;transition:all .2s}.log-ai-action-btn:hover:not(:disabled){background:var(--hover);color:var(--text)}.log-ai-action-btn.active{background:var(--primary-bg);color:var(--primary)}.log-ai-action-btn:disabled{cursor:wait;opacity:.7}.log-insight-card{margin-left:40px;background:linear-gradient(180deg,var(--card-hover),var(--card));border:1px solid var(--border);border-radius:14px;padding:12px 14px;display:flex;flex-direction:column;gap:8px}.log-insight-card.error{border-color:#ff3b3033;background:rgba(255,59,48,.05)}.log-insight-header{display:flex;align-items:center;justify-content:space-between;gap:10px}.log-insight-title-group{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.log-insight-meta{display:flex;align-items:center;gap:8px}.log-insight-title{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:700;color:var(--text)}.log-insight-time{font-size:11px;color:var(--gray)}.log-insight-source-badge{display:inline-flex;align-items:center;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:700}.log-insight-source-badge.local{background:var(--tab-bg);color:var(--text-secondary)}.log-insight-source-badge.web{background:rgba(52,199,89,.12);color:#248a3d}.log-insight-secondary-btn{border:none;border-radius:999px;padding:6px 10px;background:var(--tab-bg);color:var(--text-secondary);font-size:12px;font-weight:600;cursor:pointer}.log-insight-secondary-btn:disabled{cursor:wait;opacity:.7}.log-insight-thread{display:flex;flex-direction:column;gap:10px}.log-insight-message{display:flex;flex-direction:column;gap:6px}.log-insight-message.user{align-items:flex-end}.log-insight-message-role{font-size:11px;font-weight:700;color:var(--gray)}.log-insight-message .log-insight-content{max-width:100%;background:var(--card);border-radius:12px;padding:10px 12px;border:1px solid var(--border)}.log-insight-message.user .log-insight-content{background:var(--primary-bg);color:var(--text);border-color:transparent}.log-insight-message.loading .log-insight-content{opacity:.8}.log-insight-content{font-size:14px;line-height:1.65;color:var(--text-secondary);white-space:pre-wrap;word-break:break-word}.log-insight-error{font-size:12px;color:var(--red)}.log-insight-composer{display:flex;gap:10px;align-items:flex-end;padding-top:4px}.log-insight-composer textarea{flex:1;min-height:64px;resize:vertical;border:1px solid var(--border);border-radius:12px;padding:10px 12px;font-size:13px;line-height:1.5;font-family:inherit;outline:none;background:var(--input-bg);color:var(--text);box-sizing:border-box}.log-insight-composer textarea:focus{border-color:var(--primary)}.log-insight-send-btn{border:none;border-radius:10px;padding:10px 12px;background:var(--primary);color:#fff;font-size:13px;font-weight:600;display:inline-flex;align-items:center;gap:6px;cursor:pointer}.log-insight-send-btn:disabled{background:var(--gray-light);cursor:not-allowed}.logs-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;color:var(--gray);text-align:center;animation:fadeInUp .5s ease-out}.logs-empty-icon{font-size:64px;margin-bottom:12px;animation:gentleFloat 3s ease-in-out infinite}.logs-empty p{margin:12px 0 0;font-size:15px}.logs-empty-hint{font-size:13px!important;color:var(--gray-light)}.log-empty-action{margin-top:14px;border:none;border-radius:999px;padding:8px 14px;background:var(--primary-bg);color:var(--primary);font-size:13px;font-weight:600;cursor:pointer}.mobile-nav{display:none;position:fixed;bottom:0;left:0;right:0;background:var(--nav-bg);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-top:.5px solid var(--border-strong);padding:12px 0 calc(12px + env(safe-area-inset-bottom));justify-content:space-around;z-index:100}@media (max-width: 600px){.app-container{padding-top:24px;padding-bottom:calc(100px + env(safe-area-inset-bottom))}.tab-switcher{display:none}.mobile-nav{display:flex}.stats-summary{grid-template-columns:repeat(2,1fr)}}.mobile-nav button{background:none;border:none;color:var(--gray);padding:10px 20px;transition:color .2s}.mobile-nav button.active{color:var(--primary)}.animate-spin{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.ai-icon-pulse{animation:pulse 2s infinite}@keyframes pulse{0%{transform:scale(1);opacity:.8}50%{transform:scale(1.1);opacity:1}to{transform:scale(1);opacity:.8}}button{position:relative;overflow:hidden}button:after{content:"";position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:rgba(255,255,255,.3);transform:translate(-50%,-50%);transition:width .3s,height .3s}button:active:after{width:200%;height:200%}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--gray-light);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--gray)}.calendar-section{animation:tabFadeIn .3s ease-out}.calendar-header{display:flex;align-items:center;gap:12px;margin-bottom:20px}.calendar-nav-btn{width:36px;height:36px;border:none;border-radius:10px;background:var(--tab-bg);color:var(--text);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s}.calendar-nav-btn:hover{background:var(--primary-bg);color:var(--primary)}.calendar-month-year{font-size:18px;font-weight:700;flex:1;text-align:center}.calendar-today-btn{padding:8px 16px;border:none;border-radius:10px;background:var(--primary-bg);color:var(--primary);font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}.calendar-today-btn:hover{background:var(--primary);color:#fff}.calendar-grid{background:var(--card);border-radius:20px;padding:16px;box-shadow:0 4px 12px #00000008}.calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;font-size:13px;font-weight:600;color:var(--gray);margin-bottom:8px;padding-bottom:8px;border-bottom:.5px solid var(--border)}.calendar-days{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.calendar-day{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:12px;cursor:pointer;transition:all .2s;gap:2px;padding:4px 2px;min-height:48px}.calendar-day:hover{background:var(--hover)}.calendar-day.other-month{opacity:.3;cursor:default}.calendar-day.today{background:var(--primary-bg)}.calendar-day.today .day-number{color:var(--primary);font-weight:700}.calendar-day.selected{background:var(--primary)}.calendar-day.selected .day-number{color:#fff}.calendar-day.selected .task-dot-more{color:#fffc}.day-number{font-size:14px;font-weight:500;line-height:1}.day-tasks{display:flex;gap:3px;align-items:center;flex-wrap:wrap;justify-content:center}.task-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.task-dot-more{font-size:9px;font-weight:600;color:var(--gray);line-height:1}.calendar-task-panel{background:var(--card);border-radius:16px;margin-top:16px;box-shadow:0 4px 12px #00000008;overflow:hidden;animation:slideDown .25s ease-out}.calendar-task-panel-header{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;border-bottom:.5px solid var(--border);font-size:15px;font-weight:600}.calendar-task-panel-header button{width:28px;height:28px;border:none;border-radius:50%;background:var(--tab-bg);color:var(--gray);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s}.calendar-task-panel-header button:hover{background:rgba(255,59,48,.1);color:var(--red)}.calendar-task-empty{padding:32px 16px;text-align:center;color:var(--gray);font-size:14px}.calendar-task-item{display:flex;align-items:center;gap:12px;padding:12px 18px;border-bottom:.5px solid var(--border);transition:background .2s}.calendar-task-item:last-child{border-bottom:none}.calendar-task-item:hover{background:var(--hover)}.calendar-task-item.completed .calendar-task-text{color:var(--gray);text-decoration:line-through}.calendar-task-text{flex:1;font-size:15px;min-width:0;word-break:break-all}.calendar-task-category{font-size:12px;font-weight:600;padding:3px 10px;border-radius:12px;flex-shrink:0}.notification-panel{background:var(--card);border-radius:20px;padding:20px 24px;margin-bottom:24px;box-shadow:0 4px 20px var(--shadow);animation:slideDown .3s ease-out}.notification-panel-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.notification-panel-header h3{margin:0;font-size:18px;font-weight:700}.notification-toggle{width:52px;height:32px;border-radius:16px;border:none;background:var(--gray-light);cursor:pointer;position:relative;transition:background .3s;padding:0}.notification-toggle.active{background:var(--green)}.notification-toggle:disabled{opacity:.4;cursor:not-allowed}.toggle-knob{position:absolute;top:3px;left:3px;width:26px;height:26px;border-radius:50%;background:white;box-shadow:0 2px 4px #0003;transition:transform .3s cubic-bezier(.4,0,.2,1)}.notification-toggle.active .toggle-knob{transform:translate(20px)}.notification-denied-hint{font-size:13px;color:var(--red);margin:8px 0 0}.notification-options{display:flex;flex-direction:column;gap:12px;margin-top:16px;padding-top:16px;border-top:.5px solid var(--border)}.notification-option{display:flex;align-items:center;gap:12px;font-size:15px;cursor:pointer;color:var(--text)}.notification-checkbox{width:20px;height:20px;border-radius:6px;accent-color:var(--primary);cursor:pointer;flex-shrink:0}.calendar-view-toggle{display:flex;background:var(--tab-bg);padding:2px;border-radius:8px;margin-left:8px}.calendar-view-toggle button{padding:6px 12px;border:none;border-radius:6px;background:transparent;font-size:13px;font-weight:500;cursor:pointer;color:var(--text-secondary);transition:all .2s}.calendar-view-toggle button.active{background:var(--tab-active-bg);box-shadow:0 2px 6px var(--tab-active-shadow);color:var(--text)}.calendar-week-view{background:var(--card);border-radius:20px;padding:16px;box-shadow:0 4px 12px #00000008}.calendar-week-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.calendar-week-day{min-height:120px;background:var(--tab-bg);border-radius:12px;padding:8px;cursor:pointer;transition:all .2s;display:flex;flex-direction:column}.calendar-week-day:hover{background:var(--hover)}.calendar-week-day.today{background:var(--primary-bg);border:1px solid var(--primary)}.calendar-week-day.selected{background:rgba(0,122,255,.08);border:2px solid var(--primary)}.week-day-header{display:flex;flex-direction:column;align-items:center;gap:2px;margin-bottom:8px;padding-bottom:6px;border-bottom:.5px solid var(--border)}.week-day-name{font-size:12px;font-weight:500;color:var(--gray)}.week-day-number{font-size:16px;font-weight:600;color:var(--text)}.week-day-number.today{color:var(--primary)}.week-day-tasks{flex:1;display:flex;flex-direction:column;gap:4px;overflow-y:auto}.week-task-card{display:flex;align-items:center;gap:4px;padding:4px 6px;border-radius:6px;background:var(--card);cursor:pointer;transition:all .2s;font-size:11px}.week-task-card:hover{background:var(--card-hover);transform:scale(1.02)}.week-task-card.completed{opacity:.5}.week-task-card.completed .week-task-name{text-decoration:line-through}.week-task-category-tag{width:4px;height:12px;border-radius:2px;flex-shrink:0}.week-task-name{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text);font-size:11px;line-height:1.3}.week-no-tasks{text-align:center;color:var(--gray-light);font-size:12px;padding:8px 0}@media (max-width: 600px){.calendar-day{min-height:40px;border-radius:8px;padding:2px 1px}.day-number{font-size:13px}.task-dot{width:5px;height:5px}.calendar-grid{padding:12px;border-radius:16px}.calendar-week-day{min-height:80px;padding:6px}.week-day-name{font-size:10px}.week-day-number{font-size:13px}.week-task-card{padding:3px 4px;font-size:10px}.week-task-name{font-size:10px}.calendar-view-toggle button{padding:4px 8px;font-size:12px}}.auth-container{min-height:100vh;min-height:100dvh;min-height:-webkit-fill-available;display:flex;align-items:center;justify-content:center;background:var(--bg);padding:20px}.auth-card{width:100%;max-width:380px;background:var(--card);border-radius:20px;padding:40px 32px;box-shadow:0 8px 32px var(--shadow)}.auth-header{text-align:center;margin-bottom:32px}.auth-header h1{font-size:28px;font-weight:700;color:var(--text);margin:0 8px 4px 0;display:inline}.auth-header p{color:var(--gray);font-size:14px;margin:8px 0 0}.auth-tabs{display:flex;background:var(--tab-bg);border-radius:10px;padding:3px;margin-bottom:20px}.auth-tabs button{flex:1;padding:8px;border:none;border-radius:8px;background:transparent;color:var(--gray);font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.auth-tabs button.active{background:var(--tab-active-bg);color:var(--text);box-shadow:0 1px 4px var(--tab-active-shadow)}.auth-error{background:rgba(255,59,48,.1);color:var(--red);padding:10px 14px;border-radius:10px;font-size:13px;margin-bottom:16px}.auth-form input{width:100%;padding:12px 16px;border:1.5px solid var(--border-strong);border-radius:12px;background:var(--input-bg);color:var(--text);font-size:15px;margin-bottom:12px;outline:none;transition:border-color .2s;box-sizing:border-box}.auth-form input:focus{border-color:var(--primary)}.auth-form input::placeholder{color:var(--gray-light)}.auth-submit{width:100%;padding:13px;border:none;border-radius:12px;background:var(--primary);color:#fff;font-size:16px;font-weight:600;cursor:pointer;transition:opacity .2s;display:flex;align-items:center;justify-content:center;gap:8px;margin-top:4px}.auth-submit:hover{opacity:.9}.auth-submit:disabled{opacity:.5;cursor:not-allowed}.sync-indicator{display:flex;align-items:center;gap:4px;padding:4px 8px;border-radius:8px;font-size:12px;color:var(--gray);transition:all .3s}.sync-syncing{color:var(--primary)}.sync-synced{color:var(--green)}.sync-offline{color:var(--orange)}.sync-error{color:var(--red)}.tag-manage-btn{width:32px;height:32px;border-radius:50%;border:1.5px dashed var(--gray-light);background:transparent;color:var(--gray);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;flex-shrink:0}.tag-manage-btn:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-bg)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.4);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.tag-manager-modal{background:var(--card);border-radius:20px;padding:24px;width:90%;max-width:420px;max-height:80vh;overflow-y:auto;box-shadow:0 20px 60px #0000004d;animation:slideUp .3s cubic-bezier(.4,0,.2,1)}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.tag-manager-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.tag-manager-header h3{margin:0;font-size:18px;font-weight:600;color:var(--text)}.modal-close-btn{background:none;border:none;color:var(--gray);cursor:pointer;padding:4px;border-radius:8px;transition:all .2s}.modal-close-btn:hover{background:var(--hover);color:var(--text)}.tag-list{display:flex;flex-direction:column;gap:8px;margin-bottom:20px}.tag-item{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:12px;background:var(--hover);transition:background .2s}.tag-item:hover{background:var(--tab-bg)}.tag-color-dot{width:14px;height:14px;border-radius:50%;flex-shrink:0}.tag-name{flex:1;font-size:15px;font-weight:500;color:var(--text)}.tag-actions{display:flex;gap:4px;opacity:0;transition:opacity .2s}.tag-item:hover .tag-actions{opacity:1}.tag-edit-btn,.tag-delete-btn{background:none;border:none;cursor:pointer;padding:6px;border-radius:8px;color:var(--gray);transition:all .2s}.tag-edit-btn:hover{background:var(--primary-bg);color:var(--primary)}.tag-delete-btn:hover{background:rgba(255,59,48,.1);color:var(--red)}.tag-edit-form{display:flex;flex-direction:column;gap:10px;width:100%}.tag-edit-actions{display:flex;gap:8px;justify-content:flex-end}.tag-edit-actions .cancel-btn,.tag-edit-actions .save-btn{font-size:13px;padding:6px 14px;border-radius:8px;border:none;cursor:pointer;font-weight:500;transition:all .2s}.tag-edit-actions .cancel-btn{background:var(--tab-bg);color:var(--text-secondary)}.tag-edit-actions .save-btn{background:var(--primary);color:#fff;display:flex;align-items:center;gap:4px}.tag-name-input{flex:1;padding:10px 14px;border-radius:10px;border:1.5px solid var(--border-strong);background:var(--input-bg);font-size:15px;color:var(--text);outline:none;transition:border-color .2s}.tag-name-input:focus{border-color:var(--primary)}.color-picker{display:flex;gap:8px;flex-wrap:wrap}.color-option{width:28px;height:28px;border-radius:50%;border:2.5px solid transparent;cursor:pointer;transition:all .2s;padding:0}.color-option:hover{transform:scale(1.15)}.color-option.selected{border-color:var(--text);box-shadow:0 0 0 2px var(--card),0 0 0 4px currentColor;transform:scale(1.1)}.tag-add-form{display:flex;flex-direction:column;gap:12px;padding-top:16px;border-top:1px solid var(--border)}.add-tag-btn{display:flex;align-items:center;justify-content:center;gap:6px;padding:10px 18px;border-radius:12px;border:none;background:var(--primary);color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}.add-tag-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #007aff4d}.add-tag-btn:disabled{opacity:.5;cursor:not-allowed}body{margin:0;min-width:320px;min-height:100vh}#root{width:100%}*{box-sizing:border-box}
