@import "https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500&family=Manrope:wght@400;500;600;700;800&display=swap";body{-webkit-user-select:none;user-select:none;margin:0}input,textarea{-webkit-user-select:text;user-select:text}:root{--bg:var(--tg-theme-bg-color,#1c1c1e);--bg2:var(--tg-theme-secondary-bg-color,#2c2c2e);--text:var(--tg-theme-text-color,#fff);--hint:var(--tg-theme-hint-color,#8e8e93);--accent:var(--tg-theme-button-color,#2f7afe);--accent-txt:var(--tg-theme-button-text-color,#fff);--high:#ff453a;--medium:#ffd60a;--low:#30d158;--radius:14px;--radius-sm:8px;--nav-h:72px;--font:"Manrope", sans-serif;--mono:"JetBrains Mono", monospace}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{background:var(--bg);height:100%;color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;overscroll-behavior:none;font-size:15px}.app{flex-direction:column;max-width:480px;height:100%;margin:0 auto;display:flex}.page{padding:16px 16px calc(var(--nav-h) + 16px);scrollbar-width:none;flex:1;overflow-y:auto}.page::-webkit-scrollbar{display:none}.nav{width:100%;max-width:480px;height:var(--nav-h);background:var(--bg2);padding:0 8px env(safe-area-inset-bottom,0px);z-index:100;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-top:1px solid #ffffff0f;align-items:center;display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.nav-btn{color:var(--hint);font-family:var(--font);letter-spacing:.4px;text-transform:uppercase;cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;flex-direction:column;flex:1;align-items:center;gap:4px;padding:8px 4px;font-size:10px;font-weight:600;transition:color .18s,background .18s;display:flex}.nav-btn.active{color:var(--accent)}.nav-btn svg{transition:transform .2s cubic-bezier(.34,1.56,.64,1)}.nav-btn.active svg{transform:translateY(-2px)}.page-header{align-items:baseline;gap:10px;margin-bottom:20px;display:flex}.page-title{letter-spacing:-.5px;font-size:26px;font-weight:800;line-height:1}.page-count{font-family:var(--mono);color:var(--hint);font-size:12px}.task-list{flex-direction:column;gap:10px;display:flex}.task-card{background:var(--bg2);border-radius:var(--radius);padding:14px 14px 14px 18px;transition:transform .15s,opacity .15s;animation:.22s both cardIn;position:relative;overflow:hidden}.task-card:before{content:"";border-radius:2px 0 0 2px;width:3px;position:absolute;top:0;bottom:0;left:0}.task-card.high:before{background:var(--high);box-shadow:0 0 8px var(--high)}.task-card.medium:before{background:var(--medium);box-shadow:0 0 8px var(--medium)}.task-card.low:before{background:var(--low);box-shadow:0 0 8px var(--low)}@keyframes cardIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.task-title{word-break:break-word;margin-bottom:6px;font-size:15px;font-weight:700;line-height:1.35}.task-meta{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.priority-badge{font-family:var(--mono);text-transform:lowercase;border-radius:4px;padding:2px 6px;font-size:10px;font-weight:500}.priority-badge.high{color:var(--high);background:#ff453a26}.priority-badge.medium{color:var(--medium);background:#ffd60a1f}.priority-badge.low{color:var(--low);background:#30d1581f}.deadline-badge{font-family:var(--mono);color:var(--hint);font-size:10px}.deadline-badge.overdue{color:var(--high)}.task-desc{color:var(--hint);margin-top:6px;font-size:13px;line-height:1.4}.task-actions{gap:8px;margin-top:12px;display:flex}.btn{border-radius:var(--radius-sm);font-family:var(--font);cursor:pointer;-webkit-tap-highlight-color:transparent;border:none;padding:7px 14px;font-size:13px;font-weight:600;transition:opacity .15s,transform .12s}.btn:active{opacity:.85;transform:scale(.96)}.btn-primary{background:var(--accent);color:var(--accent-txt)}.btn-ghost{color:var(--hint);background:#ffffff12}.btn-danger{color:var(--high);background:#ff453a26}.btn-sm{padding:5px 10px;font-size:12px}.skeleton-list{flex-direction:column;gap:10px;display:flex}.skeleton{border-radius:var(--radius);background:linear-gradient(90deg, var(--bg2) 0%, #ffffff0d 40%, var(--bg2) 100%);background-size:200% 100%;height:90px;animation:1.4s linear infinite shimmer}@keyframes shimmer{0%{background-position:200%}to{background-position:-200%}}.empty{color:var(--hint);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:60px 20px;display:flex}.empty svg{opacity:.3}.empty-text{font-size:15px;font-weight:500}.cal-day{margin-bottom:24px}.cal-day-header{border-bottom:1px solid #ffffff0f;align-items:baseline;gap:8px;margin-bottom:10px;padding-bottom:8px;display:flex}.cal-day-name{text-transform:uppercase;letter-spacing:.8px;color:var(--accent);font-size:12px;font-weight:700}.cal-day-date{font-family:var(--mono);color:var(--hint);font-size:11px}.cal-no-deadline{border-top:1px solid #ffffff0f;margin-top:32px;padding-top:20px}.cal-no-deadline .cal-day-name{color:var(--hint)}.stats-grid{grid-template-columns:1fr 1fr;gap:12px;margin-top:4px;display:grid}.stats-grid .stat-card:first-child{grid-column:1/-1}.stat-card{background:var(--bg2);border-radius:var(--radius);flex-direction:column;gap:6px;padding:20px;animation:.25s both cardIn;display:flex}.stat-card:nth-child(2){animation-delay:60ms}.stat-card:nth-child(3){animation-delay:.12s}.stat-label{letter-spacing:.8px;text-transform:uppercase;color:var(--hint);font-size:11px;font-weight:700}.stat-value{font-family:var(--mono);letter-spacing:-3px;font-size:52px;font-weight:500;line-height:1}.stat-card.open .stat-value{color:var(--accent)}.stat-card.done .stat-value{color:var(--low)}.stat-card.overdue .stat-value{color:var(--high)}.form{flex-direction:column;gap:16px;display:flex}.form-group{flex-direction:column;gap:6px;display:flex}.form-label{letter-spacing:.7px;text-transform:uppercase;color:var(--hint);font-size:11px;font-weight:700}.form-input,.form-textarea{background:var(--bg2);border-radius:var(--radius-sm);color:var(--text);font-family:var(--font);appearance:none;border:1.5px solid #ffffff14;outline:none;width:100%;padding:12px 14px;font-size:15px;transition:border-color .18s}.form-input:focus,.form-textarea:focus{border-color:var(--accent)}.form-textarea{resize:vertical;min-height:80px;line-height:1.5}.form-input[type=date]::-webkit-calendar-picker-indicator{filter:invert(.5)}.form-input[type=time]::-webkit-calendar-picker-indicator{filter:invert(.5)}.form-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.priority-tabs{gap:8px;display:flex}.priority-tab{border-radius:var(--radius-sm);color:var(--hint);font-family:var(--font);cursor:pointer;text-align:center;-webkit-tap-highlight-color:transparent;background:0 0;border:1.5px solid #ffffff14;flex:1;padding:9px;font-size:13px;font-weight:600;transition:all .16s}.priority-tab.active.high{border-color:var(--high);color:var(--high);background:#ff453a1f}.priority-tab.active.medium{border-color:var(--medium);color:var(--medium);background:#ffd60a1a}.priority-tab.active.low{border-color:var(--low);color:var(--low);background:#30d1581a}.form-save-spacer{height:56px}.error-banner{border-radius:var(--radius-sm);color:var(--high);background:#ff453a26;border:1px solid #ff453a4d;padding:10px 14px;font-size:13px}.cal-month-nav{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.cal-month-label{color:var(--text);cursor:pointer;font-size:15px;font-weight:700;font-family:var(--font);border-radius:var(--radius-sm);background:0 0;border:none;padding:4px 8px;transition:background .15s}.cal-month-label:hover{background:#ffffff0f}.cal-nav-btn{width:34px;height:34px;color:var(--text);cursor:pointer;background:#ffffff0f;border:none;border-radius:50%;justify-content:center;align-items:center;transition:background .15s;display:flex}.cal-nav-btn:hover{background:#ffffff1f}.cal-grid{background:var(--bg2);border-radius:var(--radius);margin-bottom:16px;padding:12px}.cal-weekdays{grid-template-columns:repeat(7,1fr);margin-bottom:6px;display:grid}.cal-weekday{text-align:center;text-transform:uppercase;letter-spacing:.5px;color:var(--hint);padding:4px 0;font-size:11px;font-weight:700}.cal-days-row{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.cal-day-btn{border-radius:var(--radius-sm);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;flex-direction:column;align-items:center;gap:3px;padding:6px 2px;transition:background .15s;display:flex}.cal-day-btn:active{background:#ffffff0f}.cal-day-btn.today .cal-day-num{background:var(--accent);color:var(--accent-txt);border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;display:flex}.cal-day-btn.selected:not(.today) .cal-day-num{background:#ffffff1a;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;display:flex}.cal-day-num{color:var(--text);justify-content:center;align-items:center;width:28px;height:28px;font-size:14px;font-weight:600;display:flex}.cal-dots{align-items:center;gap:2px;height:6px;display:flex}.cal-dot{border-radius:50%;flex-shrink:0;width:5px;height:5px}.cal-dot.high{background:var(--high)}.cal-dot.medium{background:var(--medium)}.cal-dot.low{background:var(--low)}.cal-dot.more{background:var(--hint)}.cal-day-tasks{margin-bottom:16px}.cal-day-tasks-header{align-items:baseline;gap:8px;margin-bottom:12px;display:flex}.cal-day-tasks-title{font-size:17px;font-weight:700}.ai-page{flex-direction:column;height:100%;display:flex}.chat-messages{scrollbar-width:none;flex:1;padding-bottom:8px;overflow-y:auto}.chat-messages::-webkit-scrollbar{display:none}.chat-empty{color:var(--hint);text-align:center;margin-top:40px;padding:0 24px;font-size:14px;line-height:1.6}.chat-bubble-wrap{margin-bottom:8px;display:flex}.chat-bubble-wrap.user{justify-content:flex-end}.chat-bubble-wrap.ai{flex-direction:column;justify-content:flex-start;gap:8px}.chat-bubble{border-radius:var(--radius);white-space:pre-wrap;word-break:break-word;max-width:78%;padding:10px 14px;font-size:14px;line-height:1.55}.chat-bubble.user{background:var(--accent);color:var(--accent-txt);border-bottom-right-radius:4px}.chat-bubble.ai{background:var(--bg2);color:var(--text);border-bottom-left-radius:4px}.chat-bubble.typing{align-items:center;gap:5px;padding:14px 18px;display:flex}.chat-bubble.typing span{background:var(--hint);border-radius:50%;width:7px;height:7px;animation:1.2s infinite typingDot;display:block}.chat-bubble.typing span:nth-child(2){animation-delay:.2s}.chat-bubble.typing span:nth-child(3){animation-delay:.4s}@keyframes typingDot{0%,60%,to{opacity:.4;transform:translateY(0)}30%{opacity:1;transform:translateY(-5px)}}.chat-tasks{flex-direction:column;gap:6px;max-width:90%;display:flex}.chat-tasks-label{text-transform:uppercase;letter-spacing:.6px;color:var(--hint);margin-bottom:2px;font-size:12px;font-weight:700}.chat-input-bar{background:var(--bg);align-items:center;gap:8px;padding:10px 0 4px;display:flex;position:sticky;bottom:0}.chat-input{background:var(--bg2);color:var(--text);font-family:var(--font);border:1px solid #ffffff14;border-radius:22px;outline:none;flex:1;padding:10px 16px;font-size:14px}.chat-input:focus{border-color:var(--accent)}.chat-input::placeholder{color:var(--hint)}.chat-input:disabled{opacity:.5}.chat-send-btn,.chat-mic-btn{cursor:pointer;-webkit-tap-highlight-color:transparent;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;transition:opacity .15s,transform .12s,background .15s;display:flex}.chat-send-btn:active,.chat-mic-btn:active{transform:scale(.92)}.chat-send-btn{background:var(--accent);color:var(--accent-txt)}.chat-send-btn:disabled{opacity:.35;cursor:default}.chat-mic-btn{color:var(--hint);background:#ffffff12}.chat-mic-btn.hold-ready{color:var(--accent);background:#2f7afe33;transform:scale(1.1)}.chat-mic-btn.recording{color:var(--high);background:#ff453a2e;animation:1.2s ease-in-out infinite micPulse;transform:scale(1.18)}.chat-mic-btn:disabled{opacity:.35;cursor:default}@keyframes micPulse{0%{box-shadow:0 0 #ff453a80}50%{box-shadow:0 0 0 10px #ff453a00}to{box-shadow:0 0 #ff453a00}}.ai-limit-banner{border-radius:var(--radius-sm);margin-bottom:12px;padding:10px 14px;font-size:13px}.ai-limit-banner.warning{color:var(--medium);background:#ffd60a1a;border:1px solid #ffd60a40}.ai-limit-banner.exhausted{background:#ff453a14;border:1px solid #ff453a33}.ai-limit-title{color:var(--high);margin-bottom:4px;font-size:14px;font-weight:700}.ai-limit-sub{color:var(--hint);font-size:13px;line-height:1.5}.filter-tabs{scrollbar-width:none;gap:6px;margin-bottom:16px;padding-bottom:2px;display:flex;overflow-x:auto}.filter-tabs::-webkit-scrollbar{display:none}.filter-tab{color:var(--hint);font-family:var(--font);cursor:pointer;white-space:nowrap;-webkit-tap-highlight-color:transparent;background:0 0;border:1px solid #ffffff1a;border-radius:20px;flex-shrink:0;padding:6px 14px;font-size:13px;font-weight:600;transition:all .16s}.filter-tab.active{background:var(--accent);border-color:var(--accent);color:var(--accent-txt)}.task-card.clickable{cursor:pointer;transition:transform .15s,box-shadow .15s}.task-card.clickable:active{transform:scale(.98)}.task-card-hint{color:var(--hint);opacity:.5;text-align:right;margin-top:6px;font-size:11px}.detail-sheet{padding-top:12px}.sheet-handle{background:#ffffff26;border-radius:2px;width:36px;height:4px;margin:0 auto 16px}.detail-status-row{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.detail-status-badge{text-transform:uppercase;letter-spacing:.5px;border-radius:20px;padding:4px 10px;font-size:12px;font-weight:700}.detail-status-badge.open{color:var(--accent);background:#2f7afe26}.detail-status-badge.done{color:var(--low);background:#30d15826}.detail-status-badge.overdue{color:var(--high);background:#ff453a26}.detail-created{color:var(--hint);font-size:12px}.detail-field{margin-bottom:16px}.detail-field-label{text-transform:uppercase;letter-spacing:.6px;color:var(--hint);margin-bottom:4px;font-size:11px;font-weight:700}.detail-field-value{color:var(--text);background:var(--bg);border-radius:var(--radius-sm);cursor:pointer;border:1px solid #ffffff0f;justify-content:space-between;align-items:center;gap:8px;min-height:42px;padding:10px 12px;font-size:15px;line-height:1.4;transition:border-color .15s;display:flex}.detail-field-value:hover{border-color:#ffffff26}.detail-field-empty{color:var(--hint);font-style:italic}.detail-edit-icon{opacity:.35;flex-shrink:0}.detail-divider{background:#ffffff0f;height:1px;margin:8px 0 16px}.reminder-add-btn{border-radius:var(--radius-sm);color:var(--hint);font-family:var(--font);cursor:pointer;background:#ffffff0d;border:1px dashed #ffffff1f;align-items:center;gap:8px;width:100%;margin-top:4px;padding:10px 14px;font-size:14px;transition:border-color .15s,color .15s;display:flex}.reminder-add-btn:hover{border-color:var(--accent);color:var(--accent)}.reminder-set-row{border-radius:var(--radius-sm);background:#2f7afe14;border:1px solid #2f7afe33;justify-content:space-between;align-items:center;gap:10px;margin-top:4px;padding:10px 12px;display:flex}.reminder-set-info{color:var(--accent);align-items:center;gap:6px;font-size:14px;display:flex}.reminder-set-actions{flex-shrink:0;gap:6px;display:flex}.reminder-picker{flex-direction:column;gap:10px;margin-top:4px;display:flex}.reminder-presets{grid-template-columns:1fr 1fr;gap:8px;display:grid}.reminder-preset-btn{border-radius:var(--radius-sm);color:var(--text);font-family:var(--font);cursor:pointer;-webkit-tap-highlight-color:transparent;background:#ffffff0f;border:1px solid #ffffff1a;padding:10px 8px;font-size:13px;font-weight:600;transition:background .15s,border-color .15s}.reminder-preset-btn:active{border-color:var(--accent);background:#2f7afe26}.reminder-custom{border-radius:var(--radius-sm);background:#ffffff08;border:1px solid #ffffff12;padding:12px}.reminder-custom-label{text-transform:uppercase;letter-spacing:.6px;color:var(--hint);margin-bottom:8px;font-size:11px;font-weight:700}.modal-overlay{z-index:200;background:#0009;align-items:flex-end;animation:.18s fadeIn;display:flex;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-sheet{background:var(--bg2);border-radius:var(--radius) var(--radius) 0 0;width:100%;max-width:480px;padding:20px 16px calc(env(safe-area-inset-bottom,0px) + 24px);max-height:90dvh;margin:0 auto;animation:.22s cubic-bezier(.34,1.56,.64,1) slideUp;overflow-y:auto}@keyframes slideUp{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}.modal-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.modal-title{font-size:17px;font-weight:700}.modal-close{color:var(--hint);cursor:pointer;background:#ffffff14;border:none;border-radius:50%;justify-content:center;align-items:center;width:30px;height:30px;font-size:13px;display:flex}
