:root{--color-primary: #e74c3c;--color-background: #1a1a2e;--color-surface: #16213e;--color-surface-alt: #0f3460;--color-text: #eaeaea;--color-text-secondary: #a0a0b0;--color-accent: #e94560;--color-success: #2ecc71;--color-warning: #f39c12;--color-danger: #e74c3c;--color-border: #2a2a4a;--radius: 10px;--radius-sm: 6px;--shadow: 0 2px 12px rgba(0, 0, 0, .25)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans TC,sans-serif;background:var(--color-background);color:var(--color-text);line-height:1.5;min-height:100vh}#root,#focus-timer-root{min-height:100vh}.app{display:flex;flex-direction:column;min-height:100vh}.app-header{display:flex;align-items:center;justify-content:space-between;padding:12px 24px;background:var(--color-surface);border-bottom:1px solid var(--color-border)}.app-logo{display:flex;align-items:center;gap:10px}.app-logo h1{font-size:1.25rem;font-weight:700;letter-spacing:-.02em}.header-right{display:flex;align-items:center;gap:12px}.active-task-badge{font-size:.85rem;color:var(--color-text-secondary);background:var(--color-surface-alt);padding:4px 12px;border-radius:20px}.dashboard{display:grid;grid-template-columns:1fr 1fr 1fr;gap:20px;padding:20px 24px;flex:1;overflow-y:auto}.dashboard-left,.dashboard-center,.dashboard-right{display:flex;flex-direction:column}.panel-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.panel-header h2{font-size:1.1rem;font-weight:600}.badge{font-size:.75rem;color:var(--color-text-secondary);background:var(--color-surface-alt);padding:2px 10px;border-radius:12px}.timer-display{display:flex;flex-direction:column;align-items:center;gap:20px;padding:20px;background:var(--color-surface);border-radius:var(--radius);border:1px solid var(--color-border)}.phase-tabs{display:flex;gap:4px;background:var(--color-surface-alt);border-radius:8px;padding:3px}.phase-tab{background:transparent;border:none;color:var(--color-text-secondary);padding:6px 16px;border-radius:6px;cursor:pointer;font-size:.85rem;transition:all .2s}.phase-tab:hover:not(:disabled){color:var(--color-text)}.phase-tab.active{background:var(--color-primary);color:#fff}.phase-tab:disabled{opacity:.5;cursor:not-allowed}.timer-ring-container{position:relative;width:260px;height:260px}.timer-ring{width:100%;height:100%}.timer-ring-bg{stroke:var(--color-border)}.timer-ring-progress{stroke:var(--color-primary);transition:stroke-dashoffset .5s ease}.timer-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center}.timer-time{font-size:3rem;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:.02em;line-height:1}.timer-phase-label{font-size:.9rem;color:var(--color-text-secondary);margin-top:6px}.timer-session{font-size:.75rem;color:var(--color-text-secondary);margin-top:4px}.timer-controls{display:flex;gap:10px;align-items:center}.btn{display:inline-flex;align-items:center;justify-content:center;padding:8px 20px;border:none;border-radius:var(--radius-sm);font-size:.9rem;font-weight:500;cursor:pointer;transition:all .15s ease}.btn:hover{filter:brightness(1.1)}.btn:active{transform:scale(.97)}.btn-primary{background:var(--color-primary);color:#fff}.btn-warning{background:var(--color-warning);color:#1a1a2e}.btn-ghost{background:transparent;color:var(--color-text-secondary);border:1px solid var(--color-border)}.btn-ghost:hover{background:var(--color-surface-alt);color:var(--color-text)}.btn-lg{padding:12px 36px;font-size:1.05rem;border-radius:var(--radius)}.btn-sm{padding:4px 12px;font-size:.8rem}.btn-icon{background:transparent;border:none;color:var(--color-text-secondary);font-size:1.2rem;cursor:pointer;padding:4px 8px;border-radius:4px;line-height:1}.btn-icon:hover{color:var(--color-text);background:var(--color-surface-alt)}.input{background:var(--color-surface-alt);border:1px solid var(--color-border);color:var(--color-text);padding:8px 12px;border-radius:var(--radius-sm);font-size:.9rem;outline:none;transition:border-color .2s}.input:focus{border-color:var(--color-primary)}.input-sm{width:64px;padding:6px 8px;text-align:center}.input-xs{width:80px;padding:4px 6px;font-size:.8rem;font-family:monospace}.input-inline{background:transparent;border:none;border-bottom:1px solid var(--color-primary);border-radius:0;padding:2px 0;width:100%}.task-list{background:var(--color-surface);border-radius:var(--radius);border:1px solid var(--color-border);padding:20px;display:flex;flex-direction:column;gap:12px;flex:1}.task-input-row{display:flex;gap:8px}.task-input-row .input:first-child{flex:1}.task-items{display:flex;flex-direction:column;gap:4px;overflow-y:auto;flex:1;max-height:calc(100vh - 340px)}.task-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--radius-sm);cursor:pointer;transition:background .15s;border:1px solid transparent}.task-item:hover{background:var(--color-surface-alt)}.task-item.active{border-color:var(--color-primary);background:#e74c3c14}.task-item.completed{opacity:.5}.task-item.completed .task-title{text-decoration:line-through}.task-check{background:none;border:none;color:var(--color-text-secondary);font-size:1.1rem;cursor:pointer;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center}.task-item.completed .task-check{color:var(--color-success)}.task-content{flex:1;display:flex;align-items:center;gap:8px;min-width:0}.task-title{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.9rem}.task-pomo-count{font-size:.75rem;color:var(--color-text-secondary);background:var(--color-surface-alt);padding:2px 8px;border-radius:10px;white-space:nowrap}.task-actions{display:flex;opacity:0;transition:opacity .15s}.task-item:hover .task-actions{opacity:1}.task-empty{text-align:center;color:var(--color-text-secondary);padding:24px;font-size:.9rem}.task-clear{align-self:flex-start}.stats-panel{background:var(--color-surface);border-radius:var(--radius);border:1px solid var(--color-border);padding:20px;display:flex;flex-direction:column;gap:16px;flex:1;overflow-y:auto;max-height:calc(100vh - 100px)}.stats-today{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.stat-card{background:var(--color-surface-alt);border-radius:var(--radius-sm);padding:14px 10px;text-align:center}.stat-value{font-size:1.6rem;font-weight:700;color:var(--color-primary)}.stat-label{font-size:.75rem;color:var(--color-text-secondary);margin-top:2px}.stats-section h3{font-size:.9rem;font-weight:600;margin-bottom:10px;color:var(--color-text-secondary)}.bar-chart{display:flex;gap:6px;height:120px;align-items:flex-end}.bar-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;height:100%}.bar-value{font-size:.7rem;color:var(--color-text-secondary);height:16px}.bar-track{flex:1;width:100%;display:flex;align-items:flex-end;background:var(--color-surface-alt);border-radius:3px;overflow:hidden}.bar-fill{width:100%;background:var(--color-primary);border-radius:3px;min-height:2px;transition:height .3s ease}.bar-label{font-size:.65rem;color:var(--color-text-secondary)}.heatmap{display:grid;grid-template-columns:repeat(10,1fr);gap:3px}.heatmap-cell{aspect-ratio:1;background:var(--color-primary);border-radius:3px;position:relative;cursor:default}.heatmap-label{display:none}.heatmap-cell:hover .heatmap-label{display:block;position:absolute;bottom:110%;left:50%;transform:translate(-50%);background:var(--color-surface);border:1px solid var(--color-border);padding:2px 6px;border-radius:4px;font-size:.65rem;white-space:nowrap;z-index:10}.recent-list{display:flex;flex-direction:column;gap:4px}.recent-item{display:flex;align-items:center;gap:8px;padding:6px 0;font-size:.85rem}.recent-badge{font-size:.7rem;padding:2px 8px;border-radius:10px;font-weight:500}.recent-badge.work{background:#e74c3c26;color:var(--color-primary)}.recent-badge.shortBreak{background:#2ecc7126;color:var(--color-success)}.recent-badge.longBreak{background:#3498db26;color:var(--color-accent)}.recent-duration{flex:1;color:var(--color-text-secondary)}.recent-time{color:var(--color-text-secondary);font-size:.8rem}.settings-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.settings-modal{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);width:90%;max-width:520px;max-height:85vh;display:flex;flex-direction:column;box-shadow:var(--shadow)}.settings-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--color-border)}.settings-header h2{font-size:1.1rem}.settings-tabs{display:flex;border-bottom:1px solid var(--color-border)}.settings-tab{flex:1;background:transparent;border:none;color:var(--color-text-secondary);padding:10px;cursor:pointer;font-size:.9rem;border-bottom:2px solid transparent;transition:all .15s}.settings-tab:hover{color:var(--color-text)}.settings-tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.settings-body{padding:20px;overflow-y:auto;flex:1}.settings-section{display:flex;flex-direction:column;gap:14px}.settings-section h3{font-size:.95rem;font-weight:600;margin-top:8px}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.setting-row span{font-size:.9rem}.preset-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.preset-card{background:var(--color-surface-alt);border:2px solid transparent;border-radius:var(--radius-sm);padding:10px;cursor:pointer;text-align:center;transition:all .15s}.preset-card:hover{border-color:var(--color-text-secondary)}.preset-card.active{border-color:var(--color-primary)}.preset-colors{display:flex;gap:3px;margin-bottom:6px;justify-content:center}.preset-colors span{width:18px;height:18px;border-radius:50%}.preset-name{font-size:.75rem;color:var(--color-text-secondary)}.color-grid{display:flex;flex-direction:column;gap:8px}.color-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.color-row span{font-size:.85rem;min-width:80px}.color-input-group{display:flex;gap:6px;align-items:center}.color-input-group input[type=color]{width:32px;height:32px;border:none;border-radius:4px;cursor:pointer;padding:0;background:none}.data-actions{display:flex;gap:10px}.text-secondary{color:var(--color-text-secondary);font-size:.85rem}code{background:var(--color-surface-alt);padding:1px 5px;border-radius:3px;font-size:.85em}.task-source-tabs{display:flex;gap:4px;background:var(--color-surface-alt);border-radius:8px;padding:3px;margin-bottom:12px}.task-source-tab{flex:1;background:transparent;border:none;color:var(--color-text-secondary);padding:6px 12px;border-radius:6px;cursor:pointer;font-size:.85rem;transition:all .2s}.task-source-tab:hover{color:var(--color-text)}.task-source-tab.active{background:var(--color-primary);color:#fff}.notion-db-switcher{display:flex;gap:4px;align-items:center;margin-bottom:12px}.notion-db-tab{flex:1;background:var(--color-surface-alt);border:1px solid var(--color-border);color:var(--color-text-secondary);padding:6px 12px;border-radius:var(--radius-sm);cursor:pointer;font-size:.8rem;transition:all .15s}.notion-db-tab:hover{color:var(--color-text)}.notion-db-tab.active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.notion-error{color:var(--color-danger);font-size:.85rem;padding:8px 12px;background:#e74c3c1a;border-radius:var(--radius-sm)}.notion-loading{color:var(--color-text-secondary);text-align:center;padding:20px;font-size:.9rem}.notion-status{font-size:.7rem;padding:2px 8px;border-radius:10px;background:var(--color-surface-alt);color:var(--color-text-secondary);white-space:nowrap}.notion-status.running{background:#3498db26;color:#3498db}@media(max-width:1024px){.dashboard{grid-template-columns:1fr 1fr}.dashboard-right{grid-column:1 / -1}}@media(max-width:680px){.dashboard{grid-template-columns:1fr;padding:12px;gap:12px}.app-header{padding:10px 16px}.active-task-badge{display:none}.timer-ring-container{width:220px;height:220px}.timer-time{font-size:2.4rem}.stats-today{grid-template-columns:repeat(3,1fr)}.preset-grid{grid-template-columns:repeat(2,1fr)}.heatmap{grid-template-columns:repeat(6,1fr)}}.app.compact{min-height:auto}.app.compact .app-header{padding:8px 16px}.app.compact .app-logo h1{font-size:1rem}.app.compact .dashboard{padding:12px;gap:12px}.app.compact .timer-ring-container{width:180px;height:180px}.app.compact .timer-time{font-size:2rem}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--color-text-secondary)}
