*{box-sizing:border-box;margin:0;padding:0}body{background:var(--tg-theme-bg-color,#f4f4f5);color:var(--tg-theme-text-color,#111827);-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.app{flex-direction:column;max-width:100vw;min-height:100vh;display:flex;overflow-x:hidden}.app-header{background:var(--tg-theme-secondary-bg-color,#fff);border-bottom:1px solid var(--tg-theme-hint-color,#d1d5db);z-index:10;justify-content:space-between;align-items:center;padding:14px 16px;display:flex;position:sticky;top:0}.header-left h1{color:var(--tg-theme-text-color,#111827);font-size:20px;font-weight:700}.header-sub{color:var(--tg-theme-hint-color,#9ca3af);font-size:11px}.header-user{color:var(--tg-theme-hint-color,#6b7280);background:var(--tg-theme-bg-color,#f3f4f6);border-radius:20px;padding:4px 10px;font-size:13px}.header-refresh{margin-left:6px;padding:4px 8px;font-size:18px}.tab-nav{background:var(--tg-theme-secondary-bg-color,#fff);border-bottom:1px solid var(--tg-theme-hint-color,#e5e7eb);z-index:9;-webkit-overflow-scrolling:touch;display:flex;position:sticky;top:56px;overflow-x:auto}.tab-btn{min-width:60px;color:var(--tg-theme-hint-color,#6b7280);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;flex-direction:column;flex:1;align-items:center;gap:3px;padding:10px 6px;font-size:12px;transition:color .15s,border-color .15s;display:flex}.tab-btn.active{color:var(--tg-theme-button-color,#6366f1);border-bottom-color:var(--tg-theme-button-color,#6366f1)}.tab-btn:active{opacity:.7}.tab-icon{font-size:16px}.tab-label{font-size:11px}.tab-content{flex:1;padding:12px}.view{max-width:680px;margin:0 auto}.view-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.view h2{color:var(--tg-theme-text-color,#111827);font-size:18px}.view h3{color:var(--tg-theme-text-color,#111827);margin:14px 0 8px;font-size:15px}.btn{border:1px solid var(--tg-theme-hint-color,#d1d5db);background:var(--tg-theme-secondary-bg-color,#fff);color:var(--tg-theme-text-color,#111827);cursor:pointer;border-radius:10px;padding:8px 16px;font-size:13px;transition:opacity .15s}.btn:active{opacity:.7}.btn-primary{background:var(--tg-theme-button-color,#6366f1);color:var(--tg-theme-button-text-color,#fff);border-color:#0000}.btn-full{width:100%;margin-top:8px;padding:12px;font-size:15px}.btn-icon{cursor:pointer;background:0 0;border:none;border-radius:6px;padding:4px;font-size:16px;line-height:1}.btn-icon:active{opacity:.5}.btn-sm{color:var(--tg-theme-hint-color,#9ca3af);padding:0 4px;font-size:18px}.project-grid{flex-direction:column;gap:10px;display:flex}.project-card{background:var(--tg-theme-secondary-bg-color,#fff);border-left:4px solid #6366f1;border-radius:14px;padding:14px;box-shadow:0 1px 3px #0000000f}.project-card-top{justify-content:space-between;align-items:center;display:flex}.project-name{color:var(--tg-theme-text-color,#111827);font-size:15px;font-weight:600}.project-actions{gap:2px;display:flex}.project-desc{color:var(--tg-theme-hint-color,#6b7280);margin-top:4px;font-size:13px}.project-meta{color:var(--tg-theme-hint-color,#6b7280);align-items:center;gap:10px;margin-top:8px;font-size:12px;display:flex}.task-row{background:var(--tg-theme-secondary-bg-color,#fff);border-left:3px solid #0000;border-radius:12px;align-items:flex-start;gap:10px;margin-bottom:6px;padding:10px 12px;display:flex;box-shadow:0 1px 2px #0000000a}.task-row.status-doing{border-left-color:#f59e0b}.task-row.status-blocked{opacity:.75;border-left-color:#ef4444}.task-row.overdue{background:#fef2f2;border-left-color:#ef4444}.task-check{cursor:pointer;padding-top:2px;font-size:16px}.task-body{flex:1;min-width:0}.task-title{color:var(--tg-theme-text-color,#111827);white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:500;overflow:hidden}.task-meta{color:var(--tg-theme-hint-color,#6b7280);align-items:center;gap:8px;margin-top:3px;font-size:11px;display:flex}.badge{border-radius:8px;padding:2px 8px;font-size:11px;font-weight:500}.overdue-tag{color:#ef4444;font-weight:500}.today-header{margin-bottom:12px}.today-header h2{font-size:17px}.plan-section .recommendation{color:var(--tg-theme-hint-color,#6b7280);background:var(--tg-theme-secondary-bg-color,#f0f4ff);border-radius:10px;margin-bottom:12px;padding:10px 14px;font-size:12px;line-height:1.5}.plan-group{margin-bottom:10px}.plan-label{margin-bottom:5px;font-size:13px;font-weight:600}.plan-item{background:var(--tg-theme-secondary-bg-color,#fff);border-left:3px solid #0000;border-radius:10px;align-items:flex-start;gap:10px;margin-bottom:4px;padding:8px 12px;display:flex;box-shadow:0 1px 2px #0000000a}.plan-item.status-doing{border-left-color:#f59e0b}.plan-item.status-blocked{opacity:.75;border-left-color:#ef4444}.plan-status{cursor:pointer;padding-top:2px;font-size:16px}.plan-body{flex:1;min-width:0}.plan-title{font-size:13px;font-weight:500}.plan-meta{color:var(--tg-theme-hint-color,#6b7280);align-items:center;gap:8px;margin-top:2px;font-size:11px;display:flex}.modal-overlay{z-index:100;background:#0006;justify-content:center;align-items:flex-end;animation:.2s fadeIn;display:flex;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal{background:var(--tg-theme-secondary-bg-color,#fff);border-radius:18px 18px 0 0;width:100%;max-width:500px;max-height:85vh;padding:20px;animation:.25s slideUp;overflow-y:auto}@keyframes slideUp{0%{transform:translateY(30px)}to{transform:translateY(0)}}.modal h3{margin-bottom:14px;font-size:17px}.modal label{color:var(--tg-theme-hint-color,#6b7280);margin-top:10px;margin-bottom:4px;font-size:12px;display:block}.modal input,.modal select,.modal textarea{border:1px solid var(--tg-theme-hint-color,#d1d5db);background:var(--tg-theme-bg-color,#f9fafb);width:100%;color:var(--tg-theme-text-color,#111827);border-radius:10px;padding:10px 12px;font-family:inherit;font-size:14px}.modal input:focus,.modal select:focus,.modal textarea:focus{border-color:var(--tg-theme-button-color,#6366f1);outline:none}.modal-actions{justify-content:flex-end;gap:10px;margin-top:16px;display:flex}.color-picker{gap:8px;margin-top:4px;display:flex}.color-swatch{cursor:pointer;border:3px solid #0000;border-radius:50%;width:28px;height:28px;transition:border-color .15s}.color-swatch.active{border-color:var(--tg-theme-text-color,#111827)}.task-form{background:var(--tg-theme-secondary-bg-color,#fff);border-radius:14px;padding:16px;box-shadow:0 1px 3px #0000000f}.task-form label{color:var(--tg-theme-hint-color,#6b7280);margin-top:10px;margin-bottom:3px;font-size:12px;display:block}.task-form input,.task-form select,.task-form textarea{border:1px solid var(--tg-theme-hint-color,#d1d5db);background:var(--tg-theme-bg-color,#f9fafb);width:100%;color:var(--tg-theme-text-color,#111827);border-radius:10px;padding:10px 12px;font-family:inherit;font-size:14px}.task-form input:focus,.task-form select:focus,.task-form textarea:focus{border-color:var(--tg-theme-button-color,#6366f1);outline:none}.task-form input[type=date]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}.form-row{gap:10px;display:flex}.form-col{flex:1}.message{border-radius:10px;margin-top:10px;padding:10px;font-size:13px}.message-success{color:#065f46;background:#ecfdf5}.message-error{color:#991b1b;background:#fef2f2}.empty{text-align:center;color:var(--tg-theme-hint-color,#9ca3af);padding:40px 20px;font-size:14px}.gantt-view{flex-direction:column;flex:1;max-width:100%;display:flex}.gantt-wrapper{-webkit-overflow-scrolling:touch;background:var(--tg-theme-secondary-bg-color,#fff);touch-action:pan-x pan-y;border-radius:12px;max-height:70vh;overflow:auto;box-shadow:0 1px 3px #0000000f}.gantt-scroll{min-width:600px}.gantt-label-col{flex-shrink:0;align-items:center;gap:4px;width:180px;min-width:180px;padding:4px 8px;font-size:12px;display:flex;overflow:hidden}.gantt-timeline{grid-template-columns:repeat(var(--cols,30), 36px);flex:1;display:grid;position:relative}.gantt-header-row{border-bottom:1px solid var(--tg-theme-hint-color,#e5e7eb);background:var(--tg-theme-secondary-bg-color,#fff);z-index:2;display:flex;position:sticky;top:0}.gantt-month{grid-column:var(--start) / span var(--span);text-align:center;color:var(--tg-theme-text-color,#111827);border-right:1px solid var(--tg-theme-hint-color,#d1d5db);padding:4px 0;font-size:11px;font-weight:600}.gantt-day{text-align:center;color:var(--tg-theme-hint-color,#9ca3af);border-right:1px solid #f3f4f6;padding:2px 0;font-size:9px}.gantt-day.today,.gantt-date.today{background:#6366f114}.gantt-dates{border-bottom:1px solid var(--tg-theme-hint-color,#d1d5db)}.gantt-date{text-align:center;color:var(--tg-theme-hint-color,#6b7280);border-right:1px solid #f3f4f6;padding:1px 0;font-size:10px}.gantt-today-line{z-index:1;height:0;position:relative}.gantt-today-line:after{content:"";left:calc(180px + (var(--today-col,10) - .5) * 28px);opacity:.3;background:#ef4444;width:2px;height:10000px;position:absolute;top:0}.gantt-group{border-bottom:2px solid var(--tg-theme-hint-color,#e5e7eb)}.gantt-group-header{background:var(--tg-theme-bg-color,#f9fafb);border-bottom:1px solid var(--tg-theme-hint-color,#e5e7eb);padding:4px 0;display:flex}.gantt-group-header .gantt-label-col{font-size:13px;font-weight:600}.project-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.gantt-row{border-bottom:1px solid #f3f4f6;align-items:stretch;min-height:32px;display:flex}.gantt-row.status-done .gantt-task-title{opacity:.6;text-decoration:line-through}.gantt-row.overdue{background:#fef2f2}.gantt-task-title{white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:11px;overflow:hidden}.gantt-priority{color:var(--tg-theme-hint-color,#9ca3af);font-size:9px}.gantt-bar{grid-column:var(--start) / span var(--span);opacity:.85;cursor:pointer;border-radius:4px;align-items:center;min-width:0;height:22px;margin:4px 2px;transition:opacity .15s,box-shadow .15s;display:flex;position:relative;overflow:hidden}.gantt-bar:active{opacity:1}.gantt-bar.done{opacity:.5}.gantt-bar.blocked{opacity:.5;background-image:repeating-linear-gradient(45deg,#0000,#0000 3px,#ffffff80 3px 6px)!important}.gantt-bar-label{color:#fff;white-space:nowrap;text-overflow:ellipsis;text-shadow:0 1px 2px #0000004d;cursor:grab;touch-action:none;flex:1;padding:0 4px;font-size:9px;overflow:hidden}.gantt-bar-label:active{cursor:grabbing}.gantt-bar-handle{cursor:col-resize;touch-action:none;opacity:0;background:#ffffff4d;flex-shrink:0;width:8px;height:100%;transition:opacity .15s}.gantt-bar-handle.handle-left{border-radius:4px 0 0 4px}.gantt-bar-handle.handle-right{border-radius:0 4px 4px 0}.gantt-bar:hover .gantt-bar-handle{opacity:.8}.gantt-bar.dragging{z-index:10;box-shadow:0 2px 8px #0000004d;opacity:.6!important}@media (width<=400px){.tab-icon{font-size:14px}.tab-label{font-size:10px}.tab-btn{min-width:50px;padding:8px 4px}.gantt-label-col{width:110px;min-width:110px}.gantt-timeline{grid-template-columns:repeat(var(--cols,30), 28px)}.gantt-bar{cursor:pointer;height:18px;font-size:8px}.gantt-bar-label,.gantt-day{font-size:7px}.gantt-date{font-size:8px}.gantt-wrapper{border-radius:8px;max-height:55vh}.gantt-scroll{min-width:400px}.gantt-header-row{position:sticky;top:0}}.ai-planner-view h2{margin-bottom:12px}.ai-input{border:1px solid var(--tg-theme-hint-color,#d1d5db);background:var(--tg-theme-bg-color,#f9fafb);width:100%;color:var(--tg-theme-text-color,#111827);resize:vertical;border-radius:14px;padding:14px;font-family:inherit;font-size:15px;line-height:1.6}.ai-input:focus{border-color:var(--tg-theme-button-color,#6366f1);outline:none;box-shadow:0 0 0 3px #6366f11a}.ai-input::placeholder{color:var(--tg-theme-hint-color,#9ca3af);font-size:13px}.ai-draft-header{margin-bottom:14px}.ai-warnings{margin-top:8px}.ai-warning{color:#92400e;background:#fef3c7;border-radius:8px;margin:3px 0;padding:6px 10px;font-size:12px}.ai-project-card{background:var(--tg-theme-secondary-bg-color,#fff);border-left:4px solid #6366f1;border-radius:14px;margin-bottom:12px;padding:14px;box-shadow:0 1px 3px #0000000f}.ai-project-header{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.ai-project-name{color:var(--tg-theme-text-color,#111827);font-size:16px;font-weight:600}.ai-project-desc{color:var(--tg-theme-hint-color,#6b7280);margin-bottom:10px;font-size:12px}.ai-task-row{background:var(--tg-theme-bg-color,#f9fafb);border-radius:10px;margin:4px 0;padding:8px 10px}.ai-task-title{font-size:13px;font-weight:500}.ai-task-meta{color:var(--tg-theme-hint-color,#6b7280);flex-wrap:wrap;gap:10px;margin-top:3px;font-size:11px;display:flex}.ai-reasoning{color:#6366f1;flex-basis:100%;font-style:italic}.ai-actions{gap:8px;display:flex}.ai-edit-input{border:1px solid var(--tg-theme-hint-color,#d1d5db);background:var(--tg-theme-bg-color,#f9fafb);width:100%;color:var(--tg-theme-text-color,#111827);border-radius:8px;margin-bottom:6px;padding:8px 10px;font-family:inherit;font-size:13px}.ai-edit-name{font-size:15px;font-weight:600}.ai-edit-task{background:var(--tg-theme-bg-color,#f3f4f6);border-radius:10px;margin:8px 0;padding:10px}.ai-project-edit select,.ai-project-edit input[type=date],.ai-edit-task select,.ai-edit-task input[type=date]{border:1px solid var(--tg-theme-hint-color,#d1d5db);background:var(--tg-theme-secondary-bg-color,#fff);width:100%;color:var(--tg-theme-text-color,#111827);border-radius:8px;padding:6px 8px;font-size:12px}.daily-grid{flex-direction:column;gap:8px;display:flex}.daily-card{background:var(--tg-theme-secondary-bg-color,#fff);border-left:3px solid var(--tg-theme-button-color,#6366f1);border-radius:12px;padding:12px;box-shadow:0 1px 2px #0000000a}.daily-card.daily-warn{background:#fffbeb;border-left-color:#f59e0b}.daily-card-header{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.daily-card-header strong{color:var(--tg-theme-text-color,#111827);font-size:14px}.daily-date{color:var(--tg-theme-hint-color,#9ca3af);font-size:11px}.daily-focus{color:var(--tg-theme-button-color,#6366f1);margin-bottom:4px;font-size:12px}.daily-hours{color:var(--tg-theme-hint-color,#6b7280);margin-bottom:6px;font-size:11px}.daily-warning-text{color:#d97706;margin-bottom:6px;font-size:11px}.daily-tasks{flex-direction:column;gap:3px;display:flex}.daily-task{align-items:center;gap:6px;padding:3px 0;font-size:12px;display:flex}.daily-task span:nth-child(2){color:var(--tg-theme-text-color,#111827);flex:1}.daily-task-hours{color:var(--tg-theme-hint-color,#9ca3af);background:var(--tg-theme-bg-color,#f3f4f6);border-radius:6px;padding:1px 6px;font-size:10px}.migrate-banner{color:#1e40af;background:#eff6ff;border-bottom:2px solid #3b82f6;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:10px 14px;font-size:13px;display:flex}.migrate-actions{flex-shrink:0;gap:6px;display:flex}.btn-sm{padding:4px 12px;font-size:12px}.gantt-detail{padding:0;overflow:hidden}.gantt-detail-header{background:var(--tg-theme-bg-color,#f9fafb);border-left:4px solid #6366f1;justify-content:space-between;align-items:flex-start;padding:16px 16px 12px;display:flex}.gantt-detail-header h3{margin:0;padding-right:8px;font-size:16px}.gantt-detail-body{flex-direction:column;gap:8px;padding:12px 16px;display:flex}.gantt-detail-row{align-items:flex-start;gap:10px;font-size:14px;display:flex}.gantt-detail-label{min-width:90px;color:var(--tg-theme-hint-color,#6b7280);flex-shrink:0}@media (prefers-color-scheme:dark){:root{--tg-theme-bg-color:#1a1a2e;--tg-theme-text-color:#e5e7eb;--tg-theme-hint-color:#6b7280;--tg-theme-secondary-bg-color:#16213e;--tg-theme-button-color:#6366f1;--tg-theme-button-text-color:#fff}}
