.tl-header-sticky{position:sticky;top:0;background:var(--bg-primary);z-index:10}.tl-header{display:flex;align-items:center;gap:.5rem;padding:.6rem 0}.tl-header-avatar{width:28px;height:28px;border-radius:50%;flex-shrink:0}.tl-header-nav{flex:1;display:flex;align-items:center;justify-content:center;gap:.25rem}.tl-nav-chevron{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:50%;background:transparent;color:var(--text-secondary);cursor:pointer;flex-shrink:0;transition:background .15s}.tl-nav-chevron:hover{background:var(--bg-hover);color:var(--text-primary)}.tl-date-label{font-size:1rem;font-weight:600;border:none;background:none;color:var(--text-primary);cursor:pointer;padding:.25rem .5rem;border-radius:6px}.tl-date-label:hover{background:var(--bg-hover)}.tl-reload-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:50%;background:transparent;color:var(--text-secondary);cursor:pointer;flex-shrink:0;transition:background .15s,transform .3s}.tl-reload-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.tl-reload-btn:disabled{opacity:.5;cursor:default}.tl-reload-spin{animation:tl-spin .8s linear infinite}@keyframes tl-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.tl-info-bar{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;padding:.5rem .75rem;margin:0 -.5rem .4rem;background:var(--bg-secondary);border-radius:8px}.tl-badge{display:inline-flex;align-items:center;padding:.2rem .6rem;border-radius:4px;font-size:.75rem;font-weight:500}.tl-badge-weekend{background:#e53e3e1f;color:#e53e3e}.tl-badge-home{background:#1a3a2a;color:#6bbd7b}.tl-badge-office{background:#2a2a3a;color:#7b9bdd}.tl-badge-allday{background:#1e3a5f;color:#e8edf3}.tl-badge-due{background:#f59e0b26;color:#f59e0b}.tl-badge-today{border:none;cursor:pointer;background:var(--bg-hover);color:var(--accent-blue)}.tl-badge-today:hover{background:var(--accent-blue-bg)}.tl-scroll{flex:1;overflow-y:auto;position:relative}.tl-grid{position:relative;margin-left:50px}.tl-offhours{position:absolute;left:-50px;right:0;background:#80808014;border-top:1px dashed rgba(128,128,128,.15);border-bottom:1px dashed rgba(128,128,128,.15);pointer-events:none;z-index:0}.tl-hour{position:absolute;left:0;right:0;border-top:1px solid var(--border-primary);height:0}.tl-hour-label{position:absolute;left:-50px;top:-.6em;width:42px;text-align:right;font-size:.75rem;color:var(--text-sub);font-variant-numeric:tabular-nums}.tl-past{position:absolute;top:0;left:0;right:0;background:#ffffff05;pointer-events:none;z-index:1}.tl-event{position:absolute;background:#1e3a5f;border-left:3px solid var(--accent-blue);border-top:1px solid rgba(255,255,255,.06);border-radius:4px;padding:4px 8px;overflow:hidden;z-index:3;cursor:default;box-sizing:border-box;color:#e8edf3}.tl-event-personal{background:#1a4a4a;border-left-color:#3a9a8a}.tl-event-meal{background:#2a2a3a;border-left-color:#7b7b9b}.tl-event-other{background:#2a2a5f;border-left-color:#6b7bbb}.tl-event-title{font-size:.85rem;font-weight:600;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#fff}.tl-event-meet{display:inline-flex;align-items:center;justify-content:center;background:#2a7de1;color:#fff;font-size:.6rem;font-weight:700;padding:1px 4px;border-radius:3px;margin-right:5px;text-decoration:none;vertical-align:middle;letter-spacing:.02em}.tl-event-meet:hover{background:#3a8df1}.tl-event-meta{display:block;font-size:.7rem;color:#8ba8c8;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tl-event-location:after{content:" · "}.tl-event-location:last-child:after{content:""}.tl-free{position:absolute;left:8px;right:8px;display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:2}.tl-free-label{font-size:.75rem;color:#5a9b6a;background:#5a9b6a1a;padding:2px 8px;border-radius:4px}.tl-now{position:absolute;left:-8px;right:0;z-index:5;pointer-events:none}.tl-now-dot{position:absolute;left:0;top:-5px;width:10px;height:10px;border-radius:50%;background:#e53e3e}.tl-now-line{position:absolute;left:10px;right:0;top:0;height:2px;background:#e53e3e}.tl-next-badge{position:absolute;left:8px;right:8px;z-index:4;font-size:.8rem;color:#e5a33e;background:#e5a33e1a;padding:4px 10px;border-radius:4px;pointer-events:none}.tl-session{position:absolute;border-radius:4px;padding:4px 8px;overflow:hidden;z-index:2;display:flex;align-items:center;gap:.4rem;opacity:.85;box-sizing:border-box}.tl-session-pomodoro{background:#e74c3c26;border-left:3px solid #E74C3C}.tl-session-routine{background:#f39c1226;border-left:3px solid #F39C12}.tl-session-icon{flex-shrink:0;font-size:.8rem}.tl-session-label{font-size:.8rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tl-session-meta{font-size:.7rem;color:var(--text-sub);flex-shrink:0}.tl-session-live{opacity:1;border:1px dashed #E74C3C;background:#e74c3c14;animation:tl-live-pulse 2s ease-in-out infinite}@keyframes tl-live-pulse{0%,to{border-color:#e74c3c}50%{border-color:#e74c3c4d}}.tl-session-expanded{z-index:6;overflow:visible;flex-wrap:wrap}.tl-session-detail{width:100%;padding-top:4px}.tl-session-task{display:flex;align-items:center;gap:.3rem;font-size:.7rem;padding:2px 0}.tl-session-task-status{flex-shrink:0;width:1rem;text-align:center;font-size:.65rem}.tl-session-task-text{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tl-session-task-dur{flex-shrink:0;font-size:.65rem;color:var(--text-sub);font-variant-numeric:tabular-nums}.tl-session-delete-btn{margin-top:4px;background:transparent;color:var(--accent-red);border:1px solid var(--accent-red-border);border-radius:4px;padding:2px 10px;font-size:.7rem;cursor:pointer}.tl-skeleton{position:absolute;left:8px;right:8px;background:linear-gradient(90deg,var(--bg-tertiary) 25%,#252525 50%,var(--bg-tertiary) 75%);background-size:200% 100%;border-radius:4px;border-left:3px solid var(--border-primary);z-index:3;animation:tl-shimmer 1.5s ease-in-out infinite}@keyframes tl-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.tl-next-badge-pulse{animation:tl-badge-pulse 1.5s ease-in-out infinite}@keyframes tl-badge-pulse{0%,to{opacity:1}50%{opacity:.5}}@media(max-width:480px){.tl-hour-label{font-size:.65rem;left:-40px;width:32px}.tl-grid{margin-left:40px}.tl-offhours{left:-40px}.tl-date-label{font-size:.9rem}.tl-nav-chevron{width:28px;height:28px}}.notif-banner{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.6rem 1rem;background:#2a1a00;border:1px solid #FF6B35;border-radius:8px;margin-bottom:.5rem;animation:notif-slide-down .3s ease-out}.notif-banner-content{display:flex;align-items:center;gap:.5rem;flex:1;min-width:0}.notif-banner-icon{font-size:1.2rem;flex-shrink:0}.notif-banner-text{font-size:.85rem;color:#f0c040;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.notif-banner-text strong{color:var(--text-primary)}.notif-banner-location{color:var(--text-secondary)}.notif-banner-actions{display:flex;gap:.4rem;flex-shrink:0}.notif-btn-snooze{padding:.25rem .6rem;border:1px solid var(--text-muted);border-radius:4px;background:transparent;color:var(--text-secondary);font-size:.75rem;cursor:pointer}.notif-btn-snooze:hover{background:var(--bg-hover);color:var(--text-primary)}.notif-btn-dismiss{padding:.25rem .6rem;border:1px solid #FF6B35;border-radius:4px;background:#ff6b35;color:#fff;font-size:.75rem;font-weight:600;cursor:pointer}.notif-btn-dismiss:hover{background:#e65a2a}@keyframes notif-slide-down{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}.notif-overlay{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;background:#000000d9;animation:notif-fade-in .3s ease-out}.notif-overlay-card{display:flex;flex-direction:column;align-items:center;gap:.75rem;padding:2.5rem 2rem;max-width:320px;width:90%;text-align:center}.notif-overlay-dot{width:20px;height:20px;border-radius:50%;background:#ff2d2d;animation:notif-pulse 1.5s ease-in-out infinite}.notif-overlay-title{font-size:1.5rem;font-weight:700;margin:0;color:var(--text-primary)}.notif-overlay-time{font-size:1.2rem;color:#ff6b35;margin:0;font-weight:600}.notif-overdue{color:#ff2d2d;animation:notif-pulse-text 1s ease-in-out infinite}.notif-overlay-range{font-size:1rem;color:var(--text-sub);margin:0}.notif-overlay-location{font-size:.9rem;color:var(--text-tertiary);margin:0}.notif-btn-confirm{margin-top:.5rem;padding:.75rem 2rem;border:none;border-radius:8px;background:#ff2d2d;color:#fff;font-size:1.1rem;font-weight:700;cursor:pointer;min-width:120px;min-height:48px}.notif-btn-confirm:hover{background:#e02020}@keyframes notif-fade-in{0%{opacity:0}to{opacity:1}}@keyframes notif-pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.4);opacity:.6}}@keyframes notif-pulse-text{0%,to{opacity:1}50%{opacity:.5}}.notif-onboarding{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.6rem 1rem;background:#1a1a2e;border:1px solid var(--border-secondary);border-radius:8px;margin-bottom:.5rem}.notif-onboarding-text{font-size:.85rem;color:var(--text-secondary);margin:0}.notif-onboarding-actions{display:flex;gap:.4rem;flex-shrink:0}.notif-btn-enable{padding:.3rem .75rem;border:none;border-radius:4px;background:var(--accent-blue);color:#fff;font-size:.8rem;font-weight:600;cursor:pointer}.notif-btn-enable:hover{background:var(--accent-blue-hover)}.notif-btn-later{padding:.3rem .75rem;border:1px solid var(--border-secondary);border-radius:4px;background:transparent;color:var(--text-sub);font-size:.8rem;cursor:pointer}.notif-btn-later:hover{background:var(--bg-hover);color:var(--text-primary)}@media(max-width:480px){.notif-banner{flex-direction:column;align-items:stretch;gap:.4rem;padding:.5rem .75rem}.notif-banner-actions{justify-content:flex-end}.notif-onboarding{flex-direction:column;gap:.4rem;text-align:center}}.cal-page{max-width:700px;margin:0 auto;padding:.75rem 1rem 80px;min-height:100dvh}.cal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.cal-nav{display:flex;align-items:center;gap:.5rem}.cal-nav-btn{border:none;background:transparent;color:var(--text-sub);font-size:1.1rem;cursor:pointer;padding:.25rem .5rem;border-radius:6px;line-height:1}.cal-nav-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.cal-title{margin:0;font-size:1.2rem;font-weight:700;color:var(--text-heading);cursor:pointer}.cal-title:hover{color:var(--accent-blue)}.cal-view-toggle{display:flex;border:1px solid var(--border-primary);border-radius:8px;overflow:hidden}.cal-toggle-btn{padding:.3rem .6rem;border:none;background:transparent;color:var(--text-muted);font-size:.75rem;font-weight:500;cursor:pointer;transition:background .15s,color .15s}.cal-toggle-btn:first-child{border-right:1px solid var(--border-primary)}.cal-toggle-btn.active{background:var(--accent-blue);color:#fff}.cal-toggle-btn:hover:not(.active){background:var(--bg-hover);color:var(--text-primary)}.cal-day-names{display:grid;grid-template-columns:repeat(7,1fr);margin-bottom:.25rem}.cal-day-name{text-align:center;font-size:.7rem;font-weight:600;color:var(--text-muted);padding:.25rem 0;text-transform:uppercase;letter-spacing:.03em}.cal-day-name.sun{color:var(--accent-red)}.cal-day-name.sat{color:var(--accent-blue)}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;margin-bottom:1rem}.cal-cell{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;min-height:44px;padding:.3rem 0;cursor:pointer;border-radius:8px;transition:background .15s;gap:.2rem;position:relative}.cal-cell:hover{background:var(--bg-hover)}.cal-cell.other-month{opacity:.3}.cal-cell.selected{background:transparent}.cal-cell.selected .cal-date-num{outline:2px solid var(--accent-blue);outline-offset:1px;border-radius:50%}.cal-date-num{display:flex;align-items:center;justify-content:center;width:28px;height:28px;font-size:.8rem;font-weight:500;color:var(--text-primary);border-radius:50%;line-height:1}.cal-date-num.today-num{background:var(--accent-blue);color:#fff;font-weight:700}.cal-dot{width:4px;height:4px;border-radius:50%;background:var(--accent-blue);flex-shrink:0}.cal-week-view{margin-bottom:1rem;border:1px solid var(--border-primary);border-radius:8px;overflow:hidden}.cal-week-header{display:grid;grid-template-columns:36px repeat(7,1fr);border-bottom:1px solid var(--border-primary)}.cal-week-day-header{display:flex;flex-direction:column;align-items:center;padding:.4rem 0;cursor:pointer;transition:background .15s;gap:.1rem}.cal-week-day-header:hover{background:var(--bg-hover)}.cal-week-day-header.selected{background:var(--accent-blue-bg)}.cal-week-day-name{font-size:.65rem;color:var(--text-muted);text-transform:uppercase}.cal-week-day-num{display:flex;align-items:center;justify-content:center;width:24px;height:24px;font-size:.75rem;font-weight:500;color:var(--text-primary);border-radius:50%}.cal-week-day-num.today-num{background:var(--accent-blue);color:#fff;font-weight:700}.cal-week-body{max-height:300px;overflow-y:auto;scrollbar-width:thin}.cal-week-row{display:grid;grid-template-columns:36px repeat(7,1fr);min-height:36px;border-bottom:1px solid var(--border-primary)}.cal-week-row:last-child{border-bottom:none}.cal-week-time{display:flex;align-items:flex-start;justify-content:center;font-size:.6rem;color:var(--text-muted);padding-top:.15rem;font-variant-numeric:tabular-nums}.cal-week-cell{border-left:1px solid var(--border-primary);padding:.1rem;cursor:pointer;min-height:36px}.cal-week-cell:hover{background:var(--bg-hover)}.cal-week-event{background:var(--accent-blue-bg);border-left:2px solid var(--accent-blue);border-radius:3px;padding:.1rem .2rem;margin-bottom:1px;overflow:hidden}.cal-week-event-time{font-size:.55rem;color:var(--accent-blue);font-weight:600}.cal-week-event-title{display:block;font-size:.55rem;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-detail{padding-top:.5rem;border-top:1px solid var(--border-primary)}.cal-detail-title{margin:0 0 .75rem;font-size:1rem;font-weight:600;color:var(--text-heading)}.cal-status{font-size:.8rem;color:var(--text-muted);text-align:center;padding:.5rem 0}.cal-empty{font-size:.85rem;color:var(--text-muted);text-align:center;padding:1.5rem 0}.cal-event-list{display:flex;flex-direction:column;gap:.4rem;margin-bottom:1rem}.cal-event-card{display:flex;align-items:flex-start;gap:.6rem;padding:.6rem .75rem;background:var(--bg-secondary);border-radius:8px;border-left:3px solid var(--accent-blue);transition:background .15s}.cal-event-card:hover{background:var(--bg-hover)}.cal-event-left{flex-shrink:0;min-width:40px}.cal-event-time{font-size:.8rem;font-weight:600;color:var(--text-primary);font-variant-numeric:tabular-nums}.cal-event-badge{display:inline-block;font-size:.65rem;font-weight:600;padding:.1rem .35rem;border-radius:4px}.cal-event-badge.all-day{background:var(--accent-blue-bg);color:var(--accent-blue)}.cal-event-body{flex:1;display:flex;flex-direction:column;gap:.2rem;min-width:0}.cal-event-title{font-size:.85rem;font-weight:500;color:var(--text-primary);line-height:1.3}.cal-recurring-icon{margin-right:.25rem;font-size:.75rem}.cal-event-meta{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.cal-event-duration{font-size:.7rem;color:var(--text-sub)}.cal-event-location{font-size:.7rem;color:var(--text-muted)}.cal-event-source{font-size:.6rem;color:var(--text-muted);background:var(--bg-primary);padding:.05rem .3rem;border-radius:3px}.cal-section-title{margin:.75rem 0 .5rem;font-size:.85rem;font-weight:600;color:var(--text-sub)}.cal-task-list{display:flex;flex-direction:column;gap:.3rem}.cal-task-card{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:var(--bg-secondary);border-radius:8px;transition:background .15s}.cal-task-card:hover{background:var(--bg-hover)}.cal-task-status{font-size:.85rem;color:var(--text-sub);flex-shrink:0;line-height:1}.cal-task-status.done{color:#22c55e}.cal-task-title{flex:1;font-size:.85rem;color:var(--text-primary);font-weight:500}.cal-task-title.done{text-decoration:line-through;color:var(--text-muted)}.cal-task-due{font-size:.7rem;color:var(--text-muted);flex-shrink:0}@media(max-width:768px){.cal-page{padding:.5rem .75rem 80px}.cal-cell{min-height:40px}.cal-date-num{width:26px;height:26px;font-size:.75rem}.cal-week-body{max-height:250px}}@media(max-width:480px){.cal-header{flex-wrap:wrap;gap:.5rem}.cal-event-left{min-width:36px}.cal-event-time{font-size:.75rem}.cal-event-title{font-size:.8rem}}.settings-page{max-width:600px;margin:0 auto;padding:1.5rem 1rem;padding-bottom:80px}.settings-page h2{font-size:1.3rem;margin:0 0 1.5rem}.settings-section{margin-bottom:2rem}.settings-section h3{font-size:1rem;color:var(--text-sub);margin:0 0 .75rem;text-transform:uppercase;font-size:.75rem;letter-spacing:.05em}.settings-profile{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem}.settings-avatar{width:48px;height:48px;border-radius:50%}.settings-name{font-weight:500}.settings-email{font-size:.85rem;color:var(--text-sub)}.settings-logout{width:100%;padding:.6rem;border:1px solid var(--accent-red-border);border-radius:6px;background:transparent;color:var(--accent-red);cursor:pointer;font-size:.9rem}.settings-logout:hover{background:var(--accent-red-bg)}.settings-hint{font-size:.85rem;color:var(--text-tertiary);margin:0 0 .75rem}.settings-cal-item{display:flex;justify-content:space-between;align-items:center;padding:.6rem 0;border-bottom:1px solid var(--border-primary);font-size:.9rem}.settings-cal-remove{padding:.2rem .6rem;border:1px solid var(--accent-red-border);border-radius:4px;background:transparent;color:var(--accent-red);font-size:.75rem;cursor:pointer}.settings-cal-add{width:100%;margin-top:.75rem;padding:.6rem;border:1px dashed var(--border-secondary);border-radius:6px;background:transparent;color:var(--accent-blue);cursor:pointer;font-size:.9rem}.settings-cal-add:hover{border-color:var(--accent-blue);background:var(--accent-blue-bg)}.settings-work-hours{display:flex;flex-direction:column;gap:0}.settings-work-hours-row{display:flex;justify-content:space-between;align-items:center;padding:.6rem 0;border-bottom:1px solid var(--border-primary);font-size:.9rem}.settings-select{padding:.3rem .5rem;border:1px solid var(--border-secondary);border-radius:6px;background:var(--bg-secondary);color:var(--text-primary);font-size:.85rem;cursor:pointer}.settings-toggle-row{display:flex;justify-content:space-between;align-items:center;padding:.6rem 0;border-bottom:1px solid var(--border-primary);font-size:.9rem}.settings-toggle{position:relative;display:inline-block;width:44px;height:24px}.settings-toggle input{opacity:0;width:0;height:0}.settings-toggle-slider{position:absolute;cursor:pointer;inset:0;background:var(--toggle-bg);border-radius:12px;transition:.2s}.settings-toggle-slider:before{content:"";position:absolute;width:18px;height:18px;left:3px;bottom:3px;background:var(--toggle-knob);border-radius:50%;transition:.2s}.settings-toggle input:checked+.settings-toggle-slider{background:var(--accent-blue)}.settings-toggle input:checked+.settings-toggle-slider:before{transform:translate(20px);background:#fff}.settings-status-ok{font-size:.8rem;color:#6bbd7b}.settings-status-denied{font-size:.75rem;color:var(--accent-red)}.settings-btn-small{padding:.25rem .6rem;border:1px solid var(--border-secondary);border-radius:4px;background:transparent;color:var(--accent-blue);font-size:.8rem;cursor:pointer}.settings-btn-small:hover{background:var(--bg-tertiary)}.settings-theme-selector{display:flex;gap:0;border:1px solid var(--border-secondary);border-radius:8px;overflow:hidden}.settings-theme-btn{flex:1;padding:.5rem;border:none;background:transparent;color:var(--text-secondary);font-size:.85rem;cursor:pointer;transition:background .15s,color .15s}.settings-theme-btn:not(:last-child){border-right:1px solid var(--border-secondary)}.settings-theme-btn.active{background:var(--accent-blue);color:#fff}.settings-theme-btn:hover:not(.active){background:var(--bg-hover)}.focus-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg-primary);padding:1rem;position:relative}.focus-page-with-strip{flex-direction:column;justify-content:flex-start;padding-top:.5rem}.focus-strip{display:flex;gap:.5rem;padding:.5rem 1rem;overflow-x:auto;width:100%;align-items:center;flex-shrink:0;-webkit-overflow-scrolling:touch}.focus-strip::-webkit-scrollbar{display:none}.strip-item{display:flex;align-items:center;gap:.35rem;padding:.4rem .75rem;border-radius:20px;border:1px solid var(--border-input);background:var(--bg-secondary);color:var(--text-secondary);font-size:.8rem;cursor:pointer;white-space:nowrap;flex-shrink:0;transition:all .2s}.strip-item-active{border-color:#e74c3c;background:#e74c3c1a;color:var(--text-primary)}.strip-item-focus{border-color:#e74c3c}.strip-item-break{border-color:#2ecc71}.strip-item-paused{opacity:.6}.strip-item-done{border-color:var(--accent-green);opacity:.8}.strip-icon{font-size:.85rem;line-height:1}.strip-label{max-width:80px;overflow:hidden;text-overflow:ellipsis;font-variant-numeric:tabular-nums}.strip-time{font-size:.75rem;font-variant-numeric:tabular-nums;opacity:.7}.strip-close{font-size:.9rem;color:var(--text-muted);cursor:pointer;padding:0 2px;opacity:0;transition:opacity .15s;line-height:1}.strip-item:hover .strip-close{opacity:1}.strip-close:hover{color:#e74c3c}.strip-add{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;border:1px dashed var(--border-input);background:transparent;color:var(--text-muted);font-size:1.1rem;cursor:pointer;flex-shrink:0;transition:all .2s}.strip-add:hover{border-color:var(--text-secondary);color:var(--text-primary);background:var(--bg-secondary)}.focus-add-first{position:absolute;top:1rem;right:1rem;width:36px;height:36px;border-radius:50%;border:1px dashed var(--border-input);background:var(--bg-secondary);color:var(--text-muted);font-size:1.2rem;cursor:pointer;z-index:10;transition:all .2s;display:flex;align-items:center;justify-content:center}.focus-add-first:hover{border-color:var(--text-secondary);color:var(--text-primary)}.focus-instance-panel{display:flex;align-items:center;justify-content:center;flex:1;width:100%}.focus-view{display:flex;flex-direction:column;align-items:center;gap:1.25rem;max-width:400px;width:100%;text-align:center;animation:view-enter .3s ease}@keyframes view-enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.focus-current-label{font-size:1.1rem;font-weight:600;color:var(--text-primary);margin:0}.focus-label-input{width:100%;max-width:280px;padding:.5rem .75rem;border:1px solid var(--border-input);border-radius:8px;background:transparent;color:var(--text-primary);font-size:1rem;text-align:center;outline:none}.focus-label-input::placeholder{color:var(--text-muted)}.focus-label-input:focus{border-color:#e74c3c}.round-indicator{display:flex;gap:10px;justify-content:center;align-items:center}.round-dot{width:10px;height:10px;border-radius:50%;background:#444;transition:background .3s,box-shadow .3s}.round-dot-done{background:#e74c3c}.round-dot-active{background:#e74c3c;box-shadow:0 0 8px #e74c3c;animation:dot-pulse 1.5s ease-in-out infinite}.round-dot-break{background:#2ecc71;box-shadow:0 0 8px #2ecc71;animation:dot-pulse 1.5s ease-in-out infinite}@keyframes dot-pulse{0%,to{box-shadow:0 0 4px currentColor;transform:scale(1)}50%{box-shadow:0 0 12px currentColor;transform:scale(1.2)}}.focus-phase-label{font-size:.9rem;color:var(--text-sub);margin:0}.focus-break-title{font-size:1.5rem;font-weight:600;margin:0}.focus-break-stats{font-size:.9rem;color:var(--text-secondary);margin:0}.focus-stretch-hint{font-size:.85rem;color:var(--text-sub);margin:0;padding:.5rem 1rem;background:var(--bg-secondary);border-radius:8px;max-width:280px}.focus-controls{display:flex;gap:.75rem}.focus-btn{padding:.6rem 1.5rem;border-radius:8px;font-size:.95rem;font-weight:600;cursor:pointer;min-height:48px;min-width:100px;border:none}.focus-btn-pause{background:var(--toggle-bg);color:var(--text-primary)}.focus-btn-pause:hover{background:#444}.focus-btn-resume{background:#e74c3c;color:#fff}.focus-btn-resume:hover{background:#c0392b}.focus-btn-stop{background:transparent;border:1px solid var(--text-muted);color:var(--text-secondary)}.focus-btn-stop:hover{background:var(--bg-hover);color:var(--text-primary)}.focus-btn-skip{background:var(--accent-green);color:#fff}.focus-btn-skip:hover{background:var(--accent-green-hover)}.focus-btn-done{background:var(--accent-blue);color:#fff;padding:.75rem 2rem}.focus-btn-done:hover{background:var(--accent-blue-hover)}.transition-overlay{justify-content:center;gap:.5rem}.transition-count{font-size:5rem;font-weight:800;margin:0;font-family:monospace;animation:transition-count-pop .4s ease}.transition-message{font-size:1.2rem;color:var(--text-secondary);margin:0;font-weight:500}@keyframes transition-count-pop{0%{transform:scale(1.5);opacity:0}60%{transform:scale(.95);opacity:1}to{transform:scale(1);opacity:1}}.focus-timer-pulse{animation:timer-pulse 1s ease-in-out infinite}@keyframes timer-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.03)}}.focus-cal-alert{width:100%;max-width:320px;padding:.5rem .75rem;border-radius:8px;font-size:.85rem;color:var(--text-sub);background:var(--bg-secondary)}.focus-cal-warning{color:orange;background:#ffa5001a;border:1px solid rgba(255,165,0,.3)}.focus-cal-urgent{color:#ff2d2d;background:#ff2d2d1a;border:1px solid rgba(255,45,45,.3);animation:focus-pulse 1.5s ease-in-out infinite}@keyframes focus-pulse{0%,to{opacity:1}50%{opacity:.6}}.focus-done-icon{font-size:3rem;margin:0}.focus-done-title{font-size:1.5rem;font-weight:700;margin:0}.focus-done-label{font-size:1rem;color:var(--text-secondary);margin:0}.focus-done-stats{display:flex;gap:2rem}.focus-stat{display:flex;flex-direction:column;align-items:center}.focus-stat-value{font-size:2rem;font-weight:700;color:#e74c3c}.focus-stat-label{font-size:.8rem;color:var(--text-sub)}.routine-header{font-size:1.2rem;font-weight:600;margin:0}.routine-current-task{font-size:1rem;color:var(--text-secondary);margin:0}.routine-next{font-size:.85rem;color:var(--text-tertiary);margin:0;padding:.4rem .75rem;background:var(--bg-secondary);border-radius:6px;width:100%;max-width:280px}.routine-completed-list{width:100%;max-width:280px;text-align:left}.routine-completed-item{font-size:.8rem;color:var(--text-muted);padding:.2rem 0}.routine-controls{display:flex;gap:.5rem}.focus-btn-complete{background:var(--accent-green);color:#fff}.focus-btn-complete:hover{background:var(--accent-green-hover)}.focus-idle-emoji{font-size:4rem;margin:0}.focus-idle-settings{font-size:.9rem;color:var(--text-tertiary);margin:0}.focus-idle-adjusted{color:orange}.focus-idle-blocked{color:var(--text-muted)}.focus-idle-upcoming{font-size:.8rem;color:var(--text-sub);margin:0;padding:.4rem .75rem;background:var(--bg-secondary);border-radius:6px}.focus-btn-start:disabled{opacity:.4;cursor:not-allowed}.focus-btn-start{background:#e74c3c;color:#fff;padding:.75rem 2rem}.focus-btn-start:hover{background:#c0392b}.tasklog{width:100%;max-width:320px}.tasklog-list{max-height:160px;overflow-y:auto;margin-bottom:.5rem}.tasklog-item{display:flex;align-items:center;gap:.4rem;padding:.35rem .5rem;border-radius:6px;font-size:.8rem;color:var(--text-muted)}.tasklog-item-active{color:var(--text-primary);background:var(--bg-secondary);cursor:pointer}.tasklog-status{flex-shrink:0;width:1rem;text-align:center;font-size:.7rem}.tasklog-item-active .tasklog-status{color:#e74c3c}.tasklog-text{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:left}.tasklog-duration{flex-shrink:0;font-size:.7rem;font-variant-numeric:tabular-nums;color:var(--text-sub)}.tasklog-item-active .tasklog-duration{color:#e74c3c}.tasklog-delete{flex-shrink:0;width:20px;height:20px;border:none;border-radius:50%;background:transparent;color:var(--text-muted);font-size:.85rem;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s}.tasklog-item:hover .tasklog-delete{opacity:1}.tasklog-delete:hover{background:var(--accent-red-bg);color:var(--accent-red)}.tasklog-input-row{display:flex}.tasklog-input{flex:1;padding:.4rem .6rem;border:1px solid var(--border-input);border-radius:8px;background:transparent;color:var(--text-primary);font-size:.85rem;outline:none}.tasklog-input::placeholder{color:var(--text-muted)}.tasklog-input:focus{border-color:#e74c3c}.task-summary{width:100%;max-width:320px;text-align:left}.task-summary-row{display:flex;align-items:center;gap:.4rem;padding:.3rem .5rem;font-size:.8rem}.task-summary-status{flex-shrink:0;width:1rem;text-align:center;font-size:.7rem;color:var(--accent-green)}.task-summary-text{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text-primary)}.task-summary-time{flex-shrink:0;font-size:.7rem;font-variant-numeric:tabular-nums;color:var(--text-sub)}@media(max-width:480px){.focus-page{padding:.75rem}.focus-btn{min-width:80px;padding:.5rem 1rem;font-size:.85rem}}.routine-list-page{max-width:600px;margin:0 auto;padding:1.5rem 1rem;padding-bottom:80px}.routine-list-page h2{font-size:1.3rem;margin:0 0 1.5rem}.routine-empty{color:var(--text-tertiary);text-align:center;padding:2rem 0}.routine-card{display:flex;justify-content:space-between;align-items:center;padding:.75rem 0;border-bottom:1px solid var(--border-primary)}.routine-card-info{display:flex;align-items:center;gap:.75rem}.routine-card-icon{font-size:1.5rem}.routine-card-name{font-weight:500}.routine-card-meta{font-size:.8rem;color:var(--text-sub)}.routine-card-actions{display:flex;gap:.3rem;flex-shrink:0}.routine-btn-start{padding:.3rem .6rem;border:none;border-radius:4px;background:var(--accent-green);color:#fff;font-size:.8rem;font-weight:600;cursor:pointer}.routine-btn-edit,.routine-btn-del{padding:.3rem .5rem;border:1px solid var(--border-secondary);border-radius:4px;background:transparent;color:var(--text-sub);font-size:.75rem;cursor:pointer}.routine-btn-del{border-color:var(--accent-red-border);color:var(--accent-red)}.routine-btn-new{width:100%;margin-top:1rem;padding:.75rem;border:1px dashed var(--border-secondary);border-radius:8px;background:transparent;color:var(--accent-blue);font-size:.9rem;cursor:pointer}.routine-btn-new:hover{border-color:var(--accent-blue);background:var(--accent-blue-bg)}.routine-editor{display:flex;flex-direction:column;gap:1rem}.routine-editor-row{display:flex;gap:.5rem;align-items:center}.routine-input-icon{width:40px;text-align:center;font-size:1.5rem;padding:.25rem;border:1px solid var(--border-input);border-radius:6px;background:transparent;color:var(--text-primary)}.routine-input-name{flex:1;padding:.5rem;border:1px solid var(--border-input);border-radius:6px;background:transparent;color:var(--text-primary);font-size:1rem}.routine-input-label{font-size:.85rem;color:var(--text-sub);white-space:nowrap}.routine-input-time{padding:.4rem;border:1px solid var(--border-input);border-radius:6px;background:transparent;color:var(--text-primary);font-size:.9rem}.routine-task-list{display:flex;flex-direction:column;gap:.4rem}.routine-task-row{display:flex;align-items:center;gap:.4rem}.routine-task-num{width:20px;font-size:.8rem;color:var(--text-tertiary);text-align:right}.routine-task-name{flex:1;padding:.35rem .5rem;border:1px solid var(--border-subtle);border-radius:4px;background:transparent;color:var(--text-primary);font-size:.85rem}.routine-task-dur{width:50px;padding:.35rem .4rem;border:1px solid var(--border-subtle);border-radius:4px;background:transparent;color:var(--text-primary);font-size:.85rem;text-align:center}.routine-task-min{font-size:.75rem;color:var(--text-tertiary)}.routine-task-del{padding:.2rem .4rem;border:none;background:transparent;color:var(--accent-red);cursor:pointer;font-size:.8rem}.routine-btn-add-task{padding:.5rem;border:1px dashed var(--border-secondary);border-radius:6px;background:transparent;color:var(--text-sub);font-size:.85rem;cursor:pointer}.routine-editor-actions{display:flex;gap:.5rem;justify-content:center}.board-status-icon{display:inline-flex;align-items:center;justify-content:center;width:1rem;font-size:.85rem;flex-shrink:0;margin-right:.3rem}.status-backlog{color:var(--text-muted)}.status-todo{color:var(--text-secondary)}.status-progress{color:#f59e0b}.status-done{color:#22c55e}.board-page{padding:.75rem 1rem 80px;height:100dvh;display:flex;flex-direction:column;overflow:hidden}.board-title{margin:0 0 .75rem;font-size:1.2rem;font-weight:700;color:var(--text-heading)}.board-error{color:var(--accent-red);text-align:center;font-size:.85rem;margin:0 0 .5rem}.board-status{color:var(--text-tertiary);text-align:center;padding:2rem 0;font-size:.85rem}.board-filter-chips{display:flex;gap:.4rem;margin-bottom:.75rem;flex-wrap:wrap}.board-filter-chip{padding:.25rem .6rem;border:1px solid var(--border-secondary);border-radius:16px;background:transparent;color:var(--text-muted);font-size:.75rem;cursor:pointer;transition:border-color .15s,color .15s}.board-filter-chip:hover{border-color:var(--text-sub);color:var(--text-sub)}.board-filter-chip.active{border-color:var(--accent-blue);color:var(--accent-blue);font-weight:600}.board-columns{display:flex;gap:.75rem;flex:1;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:.5rem}.board-columns::-webkit-scrollbar{display:none}.board-column{flex:0 0 260px;display:flex;flex-direction:column;background:var(--bg-secondary);border-radius:10px;padding:.75rem;min-height:0;max-height:100%}.board-column-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem;padding-bottom:.5rem;border-bottom:1px solid var(--border-primary)}.board-column-label{font-size:.8rem;font-weight:600;color:var(--text-sub);text-transform:uppercase;letter-spacing:.03em}.board-column-count{font-size:.7rem;color:var(--text-muted);background:var(--bg-tertiary);padding:.1rem .4rem;border-radius:8px}.board-column-cards{flex:1;overflow-y:auto;scrollbar-width:thin;display:flex;flex-direction:column;gap:.5rem;min-height:2rem;border-radius:6px;transition:background .15s}.board-column-cards.drop-target{background:#3b82f614}.board-card{position:relative;padding:.6rem .75rem;background:var(--bg-card);border:1px solid var(--border-primary);border-radius:8px;cursor:pointer;transition:border-color .15s,box-shadow .15s,opacity .15s;touch-action:manipulation}.board-card:hover{border-color:var(--border-secondary)}.board-card.dragging{opacity:.3}.board-card.drag-overlay{box-shadow:0 8px 24px #0000004d;transform:scale(1.02);cursor:grabbing;opacity:1;background:var(--bg-card);border:1px solid var(--border-secondary);border-radius:8px;padding:.6rem .75rem}.board-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.25rem}.board-card-meta{display:flex;align-items:center;gap:.25rem}.board-card-emoji{font-size:.7rem;line-height:1}.board-card-number{font-size:.65rem;color:var(--text-muted);font-weight:600;cursor:pointer;padding:.1rem .3rem;border-radius:4px;transition:color .15s,background .15s;-webkit-user-select:none;user-select:none}.board-card-number:hover{color:var(--accent-blue);background:var(--bg-tertiary)}.board-card-number.copied{color:var(--accent-green, #34d399)}.board-card-priority{font-size:.7rem;line-height:1}.board-card-title{margin:0;font-size:.85rem;font-weight:500;color:var(--text-primary);line-height:1.4;display:flex;align-items:baseline;gap:.2rem}.board-status-clickable{cursor:pointer;position:relative;border-radius:3px;transition:background .15s}.board-status-clickable:hover{background:var(--bg-tertiary)}.board-status-dropdown{position:absolute;top:calc(100% + 4px);left:-4px;z-index:30;background:var(--bg-secondary);border:1px solid var(--border-secondary);border-radius:8px;padding:.25rem;min-width:140px;box-shadow:0 6px 20px #0000004d;animation:ctx-fade-in .1s ease-out;display:flex;flex-direction:column}.board-status-option{display:flex;align-items:center;gap:.4rem;padding:.35rem .5rem;border-radius:6px;font-size:.8rem;font-weight:400;color:var(--text-primary);cursor:pointer;white-space:nowrap;transition:background .1s}.board-status-option:hover{background:var(--bg-hover)}.board-status-option.current{color:var(--accent-blue);font-weight:600}.board-inline-edit{width:100%;padding:.2rem .4rem;border:1px solid var(--accent-blue);border-radius:4px;background:var(--bg-input);color:var(--text-primary);font-size:.85rem;font-weight:500;outline:none;box-sizing:border-box}.board-tag-due{color:var(--accent-blue);border-color:var(--accent-blue);background:var(--accent-blue-bg)}.board-tag-due.overdue{color:var(--accent-red);border-color:var(--accent-red-border);background:var(--accent-red-bg)}.board-tag-loc{color:var(--text-sub)}.board-card-checklist{font-size:.7rem;color:var(--text-sub);margin-top:.25rem}.board-card-tags{display:flex;gap:.3rem;flex-wrap:wrap;margin-top:.4rem}.board-card-tag{font-size:.65rem;color:var(--text-tertiary);background:var(--bg-tertiary);padding:.1rem .35rem;border-radius:4px}.board-context-menu{position:fixed;z-index:100;background:var(--bg-secondary);border:1px solid var(--border-secondary);border-radius:10px;padding:.35rem;min-width:180px;box-shadow:0 8px 24px #00000059;animation:ctx-fade-in .1s ease-out}@keyframes ctx-fade-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.ctx-section{display:flex;flex-direction:column}.ctx-label{font-size:.65rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;padding:.3rem .6rem .15rem}.ctx-option{display:flex;align-items:center;gap:.4rem;padding:.35rem .6rem;border:none;border-radius:6px;background:transparent;color:var(--text-primary);font-size:.8rem;text-align:left;cursor:pointer;width:100%}.ctx-option:hover{background:var(--bg-hover)}.ctx-option.current{color:var(--accent-blue);font-weight:600}.ctx-icon{font-size:.75rem}.ctx-projects{display:flex;gap:.25rem;padding:.2rem .4rem}.ctx-divider{height:1px;background:var(--border-primary);margin:.2rem .4rem}.ctx-danger{color:var(--accent-red)}.ctx-danger:hover{background:#ef44441a}.board-panel-backdrop{position:fixed;inset:0;z-index:50;background:#0000004d;display:flex;justify-content:flex-end;align-items:stretch;animation:panel-backdrop-in .2s ease-out}@keyframes panel-backdrop-in{0%{opacity:0}to{opacity:1}}.board-panel{width:400px;max-width:100%;background:var(--bg-primary);border-left:1px solid var(--border-primary);padding:1.25rem;overflow-y:auto;display:flex;flex-direction:column;gap:1rem;animation:panel-slide-in .25s ease-out}@keyframes panel-slide-in{0%{transform:translate(100%)}to{transform:translate(0)}}.panel-header{display:flex;align-items:center;justify-content:space-between}.panel-ticket{font-size:.8rem;color:var(--text-muted);font-weight:600}.panel-close{border:none;background:transparent;color:var(--text-muted);font-size:1.2rem;cursor:pointer;padding:.2rem .4rem;border-radius:4px}.panel-close:hover{background:var(--bg-tertiary);color:var(--text-primary)}.panel-title{width:100%;padding:.4rem 0;border:none;border-bottom:1px solid transparent;background:transparent;color:var(--text-primary);font-size:1.1rem;font-weight:600;outline:none;box-sizing:border-box;transition:border-color .15s}.panel-title:focus{border-bottom-color:var(--accent-blue)}.panel-fields{display:flex;flex-direction:column;gap:.6rem}.panel-field{display:flex;align-items:center;gap:.5rem}.panel-field>label{font-size:.75rem;color:var(--text-muted);width:60px;flex-shrink:0}.panel-field select,.panel-field input[type=date]{flex:1;padding:.3rem .5rem;border:1px solid var(--border-secondary);border-radius:6px;background:var(--bg-secondary);color:var(--text-primary);font-size:.8rem;outline:none}.panel-field select:focus,.panel-field input[type=date]:focus{border-color:var(--accent-blue)}.panel-project-chips{display:flex;gap:.3rem}.panel-section{display:flex;flex-direction:column;gap:.3rem}.panel-section>label{font-size:.75rem;color:var(--text-muted)}.panel-body{width:100%;min-height:80px;padding:.5rem;border:1px solid var(--border-secondary);border-radius:6px;background:var(--bg-secondary);color:var(--text-primary);font-size:.8rem;line-height:1.5;resize:vertical;outline:none;box-sizing:border-box;font-family:inherit}.panel-body:focus{border-color:var(--accent-blue)}.panel-checklist{display:flex;flex-direction:column;gap:.25rem}.panel-check-item{display:flex;align-items:center;gap:.4rem;font-size:.8rem;color:var(--text-primary);cursor:pointer;padding:.2rem 0}.panel-check-item.done{color:var(--text-muted);text-decoration:line-through}.panel-check-item input[type=checkbox]{accent-color:var(--accent-blue)}.panel-meta{display:flex;flex-direction:column;gap:.15rem;font-size:.7rem;color:var(--text-muted);margin-top:auto;padding-top:.75rem;border-top:1px solid var(--border-primary)}.board-column-add{margin-top:.5rem}.board-add-btn{width:100%;padding:.4rem;border:1px dashed var(--border-secondary);border-radius:8px;background:transparent;color:var(--text-muted);font-size:.8rem;cursor:pointer}.board-add-btn:hover{border-color:var(--accent-blue);color:var(--accent-blue)}.board-add-form{display:flex;flex-direction:column;gap:.4rem}.board-add-input{width:100%;padding:.45rem .6rem;border:1px solid var(--border-secondary);border-radius:6px;background:var(--bg-input);color:var(--text-primary);font-size:.8rem;outline:none;box-sizing:border-box}.board-add-input::placeholder{color:var(--text-muted)}.board-add-input:focus{border-color:var(--accent-blue)}.board-add-projects{display:flex;gap:.3rem}.board-project-chip{width:1.8rem;height:1.8rem;display:flex;align-items:center;justify-content:center;border:1.5px solid var(--border-secondary);border-radius:6px;background:transparent;font-size:.8rem;cursor:pointer;transition:border-color .15s}.board-project-chip:hover{border-color:var(--text-sub)}.board-project-chip.active{border-width:2px;background:var(--bg-tertiary)}.board-add-actions{display:flex;gap:.3rem}.board-add-submit{flex:1;padding:.35rem;border:none;border-radius:6px;background:var(--accent-blue);color:#fff;font-size:.75rem;font-weight:600;cursor:pointer}.board-add-submit:hover{background:var(--accent-blue-hover)}.board-add-cancel{padding:.35rem .6rem;border:1px solid var(--border-secondary);border-radius:6px;background:transparent;color:var(--text-muted);font-size:.75rem;cursor:pointer}.board-add-cancel:hover{border-color:var(--text-sub);color:var(--text-sub)}@media(max-width:768px){.board-page{padding:.5rem .5rem 80px}.board-column{flex:0 0 220px}.board-panel{width:100%}}@media(hover:none){.board-card{-webkit-touch-callout:none}}.board-header-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.board-header-row .board-title{margin:0}.board-view-toggle{display:flex;gap:0;border:1px solid var(--border-secondary);border-radius:8px;overflow:hidden}.board-view-btn{padding:.3rem .7rem;border:none;background:transparent;color:var(--text-muted);font-size:.75rem;cursor:pointer;transition:all .15s}.board-view-btn.active{background:var(--accent-blue);color:#fff}.board-notes-view{flex:1;overflow-y:auto;position:relative}.board-notes-tags{display:flex;gap:6px;overflow-x:auto;padding-bottom:.5rem;scrollbar-width:none}.board-notes-tags::-webkit-scrollbar{display:none}.board-notes-list{display:flex;flex-direction:column}.board-notes-row{padding:.65rem .5rem;border-bottom:1px solid var(--border-primary);cursor:pointer;transition:background .15s}.board-notes-row:hover{background:var(--bg-hover)}.board-notes-title{display:block;font-size:.9rem;font-weight:500;color:var(--text-primary);line-height:1.4;margin-bottom:.2rem}.board-notes-meta{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.board-notes-tag{font-size:.7rem;color:var(--accent-blue)}.board-notes-time{font-size:.7rem;color:var(--text-muted);margin-left:auto}.board-notes-edit-form{width:100%}.board-notes-edit-input{width:100%;padding:.4rem .6rem;border:1px solid var(--accent-blue);border-radius:6px;background:var(--bg-input);color:var(--text-primary);font-size:.85rem;outline:none;box-sizing:border-box}.board-notes-new-input{position:fixed;bottom:70px;left:50%;transform:translate(-50%);width:calc(100% - 2rem);max-width:668px;z-index:15}.board-notes-new-field{width:100%;padding:.6rem .8rem;border:1px solid var(--accent-blue);border-radius:10px;background:var(--bg-secondary);color:var(--text-primary);font-size:.85rem;outline:none;box-sizing:border-box}.board-notes-new-field::placeholder{color:var(--text-muted)}.board-notes-fab{position:fixed;bottom:80px;right:1.25rem;width:48px;height:48px;border:none;border-radius:50%;background:var(--accent-blue);color:#fff;font-size:1.5rem;font-weight:300;line-height:1;cursor:pointer;box-shadow:0 2px 8px #0000004d;z-index:15;display:flex;align-items:center;justify-content:center}.board-notes-fab:hover{background:var(--accent-blue-hover)}.reports-page{max-width:600px;margin:0 auto;padding:1rem 1rem 80px}.reports-title{font-size:1.3rem;font-weight:700;margin:0 0 .75rem;color:var(--text-heading)}.reports-filter-chips{display:flex;gap:.35rem;flex-wrap:wrap;margin-bottom:1rem}.reports-chip{flex-shrink:0;padding:.3rem .7rem;border:1px solid var(--border-secondary);border-radius:16px;background:transparent;color:var(--text-sub);font-size:.8rem;cursor:pointer;white-space:nowrap;transition:border-color .15s,color .15s,background .15s}.reports-chip:hover{background:var(--bg-hover)}.reports-chip--active{border-color:var(--accent-blue);color:var(--accent-blue);background:var(--accent-blue-bg)}.reports-error{color:var(--accent-red);text-align:center;padding:1rem 0;font-size:.85rem}.reports-empty{color:var(--text-tertiary);text-align:center;padding:3rem 0;font-size:.9rem}.reports-list{display:flex;flex-direction:column;gap:.5rem}.report-card{display:block;width:100%;padding:.85rem 1rem;border:none;border-radius:10px;background:var(--bg-secondary);cursor:pointer;text-align:left;transition:background .15s}.report-card:hover{background:var(--bg-hover)}.report-card:active{background:var(--bg-active)}.report-card-header{display:flex;align-items:center;gap:.4rem;margin-bottom:.3rem;font-size:.75rem}.report-card-icon{font-size:.9rem;line-height:1}.report-card-topic{color:var(--text-secondary);font-weight:500}.report-card-time{color:var(--text-muted);margin-left:auto}.report-card-title{margin:0 0 .25rem;font-size:1rem;font-weight:600;line-height:1.4;color:var(--text-heading)}.report-card-preview{margin:0;font-size:.8rem;color:var(--text-faint);line-height:1.4;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.reports-load-more{display:block;width:100%;margin-top:1rem;padding:.6rem;border:1px solid var(--border-secondary);border-radius:8px;background:transparent;color:var(--text-sub);font-size:.85rem;cursor:pointer;text-align:center}.reports-load-more:hover{background:var(--bg-hover);border-color:var(--accent-blue);color:var(--accent-blue)}.reports-loading{display:flex;align-items:center;justify-content:center;padding:1rem 0;color:var(--text-tertiary);font-size:.85rem}.reports-skeleton{display:flex;flex-direction:column;gap:.5rem}.reports-skeleton-card{padding:.85rem 1rem;border-radius:10px;background:var(--bg-secondary)}@media(max-width:480px){.reports-page{padding:.75rem .75rem 80px}.reports-title{font-size:1.15rem}}.articles-page{max-width:600px;margin:0 auto;padding:1rem 1rem 80px}.articles-title{font-size:1.3rem;font-weight:700;margin:0 0 .75rem;color:var(--text-heading)}.articles-filter-chips{display:flex;gap:.35rem;flex-wrap:wrap;margin-bottom:1rem}.articles-chip{flex-shrink:0;padding:.3rem .7rem;border:1px solid var(--border-secondary);border-radius:16px;background:transparent;color:var(--text-sub);font-size:.8rem;cursor:pointer;white-space:nowrap;transition:border-color .15s,color .15s,background .15s}.articles-chip:hover{background:var(--bg-hover)}.articles-chip--active{border-color:var(--accent-blue);color:var(--accent-blue);background:var(--accent-blue-bg)}.articles-error{color:var(--accent-red);text-align:center;padding:1rem 0;font-size:.85rem}.articles-empty{color:var(--text-tertiary);text-align:center;padding:3rem 0;font-size:.9rem}.articles-list{display:flex;flex-direction:column;gap:.5rem}.article-card{display:block;width:100%;padding:.85rem 1rem;border:none;border-radius:10px;background:var(--bg-secondary);cursor:pointer;text-align:left;transition:background .15s}.article-card:hover{background:var(--bg-hover)}.article-card:active{background:var(--bg-active)}.article-card--read{opacity:.6}.article-card-header{display:flex;align-items:center;gap:.4rem;margin-bottom:.3rem;font-size:.75rem}.article-card-source{color:var(--text-secondary);font-weight:500}.article-card-time{color:var(--text-muted);margin-left:auto}.article-card-title{margin:0 0 .25rem;font-size:1rem;font-weight:600;line-height:1.4;color:var(--text-heading)}.article-card-preview{margin:0 0 .35rem;font-size:.8rem;color:var(--text-faint);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.article-card-labels{display:flex;gap:.25rem;flex-wrap:wrap}.article-card-label{padding:.15rem .45rem;border-radius:10px;background:var(--bg-tertiary, rgba(255, 255, 255, .06));color:var(--text-muted);font-size:.7rem}.articles-load-older{display:block;width:100%;margin-bottom:.75rem;padding:.5rem;border:1px dashed var(--border-secondary);border-radius:8px;background:transparent;color:var(--text-muted);font-size:.8rem;cursor:pointer;text-align:center}.articles-load-older:hover{background:var(--bg-hover);border-color:var(--text-muted)}.articles-load-more{display:block;width:100%;margin-top:1rem;padding:.6rem;border:1px solid var(--border-secondary);border-radius:8px;background:transparent;color:var(--text-sub);font-size:.85rem;cursor:pointer;text-align:center}.articles-load-more:hover{background:var(--bg-hover);border-color:var(--accent-blue);color:var(--accent-blue)}.articles-loading{display:flex;align-items:center;justify-content:center;padding:1rem 0;color:var(--text-tertiary);font-size:.85rem}.articles-skeleton{display:flex;flex-direction:column;gap:.5rem}.articles-skeleton-card{padding:.85rem 1rem;border-radius:10px;background:var(--bg-secondary)}@media(max-width:480px){.articles-page{padding:.75rem .75rem 80px}.articles-title{font-size:1.15rem}}.inv-page{padding:.75rem 1rem 80px;max-width:600px;margin:0 auto}.inv-title{margin:0 0 .75rem;font-size:1.2rem;font-weight:700;color:var(--text-heading)}.inv-status{color:var(--text-tertiary);text-align:center;padding:2rem 0;font-size:.85rem}.inv-empty{color:var(--text-muted);text-align:center;padding:1.5rem 0;font-size:.85rem}.inv-tabs{display:flex;gap:.25rem;margin-bottom:1rem;border-bottom:1px solid var(--border-primary)}.inv-tab{flex:1;padding:.5rem 0;border:none;background:transparent;color:var(--text-muted);font-size:.85rem;font-weight:500;cursor:pointer;border-bottom:2px solid transparent;transition:color .15s,border-color .15s}.inv-tab:hover{color:var(--text-sub)}.inv-tab.active{color:var(--accent-blue);border-bottom-color:var(--accent-blue);font-weight:600}.inv-summary-cards{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin-bottom:1rem}.inv-summary-card{background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:10px;padding:.75rem;display:flex;flex-direction:column;gap:.25rem}.inv-summary-label{font-size:.7rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em}.inv-summary-value{font-size:1.1rem;font-weight:700;color:var(--text-primary)}.inv-summary-value.positive{color:var(--accent-green, #34d399)}.inv-summary-value.negative{color:var(--accent-red)}.inv-summary-krw{font-size:.7rem;color:var(--text-muted);font-weight:400}.inv-summary-sub{font-size:.7rem;font-weight:500}.inv-summary-sub.positive{color:var(--accent-green, #34d399)}.inv-summary-sub.negative{color:var(--accent-red)}.inv-allocation{margin-bottom:1rem}.inv-allocation-bar{display:flex;height:8px;border-radius:4px;overflow:hidden;background:var(--bg-tertiary)}.inv-allocation-cash{background:var(--text-muted);transition:width .3s}.inv-allocation-position{background:var(--accent-blue);transition:width .3s}.inv-allocation-legend{display:flex;justify-content:space-between;margin-top:.3rem}.inv-allocation-legend-item{font-size:.65rem;font-weight:500}.inv-allocation-legend-item.cash{color:var(--text-muted)}.inv-allocation-legend-item.position{color:var(--accent-blue)}.inv-section-title{font-size:.85rem;font-weight:600;color:var(--text-sub);margin:0 0 .5rem}.inv-positions-list{display:flex;flex-direction:column;gap:.4rem}.inv-position-row{display:flex;justify-content:space-between;align-items:center;padding:.6rem .75rem;background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:8px}.inv-position-left,.inv-position-right{display:flex;flex-direction:column;gap:.15rem}.inv-position-right{align-items:flex-end}.inv-position-symbol{font-size:.9rem;font-weight:600;color:var(--text-primary)}.inv-position-qty{font-size:.7rem;color:var(--text-muted)}.inv-position-price{font-size:.9rem;font-weight:600;color:var(--text-primary)}.inv-position-pnl{font-size:.7rem;font-weight:500}.inv-position-pnl.positive{color:var(--accent-green, #34d399)}.inv-position-pnl.negative{color:var(--accent-red)}.inv-snapshot-time{margin-top:1rem;font-size:.7rem;color:var(--text-muted);text-align:center}.inv-trades{display:flex;flex-direction:column;gap:.75rem}.inv-trades-date{font-size:.8rem;font-weight:600;color:var(--text-sub);margin:0 0 .4rem;padding-bottom:.3rem;border-bottom:1px solid var(--border-primary)}.inv-trade-row{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:8px}.inv-trade-left{display:flex;flex-direction:column;gap:.1rem;min-width:50px}.inv-trade-side{font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em}.inv-trade-side.buy{color:var(--accent-green, #34d399)}.inv-trade-side.sell{color:var(--accent-red)}.inv-trade-symbol{font-size:.85rem;font-weight:600;color:var(--text-primary)}.inv-trade-center{flex:1;display:flex;flex-direction:column;gap:.1rem}.inv-trade-detail{font-size:.75rem;color:var(--text-sub)}.inv-trade-memo{font-size:.7rem;color:var(--text-muted);font-style:italic}.inv-trade-right{text-align:right}.inv-trade-total{font-size:.85rem;font-weight:600;color:var(--text-primary)}.inv-notes{display:flex;flex-direction:column;gap:.5rem}.inv-notes-add-btn{width:100%;padding:.5rem;border:1px dashed var(--border-secondary);border-radius:8px;background:transparent;color:var(--text-muted);font-size:.8rem;cursor:pointer;transition:border-color .15s,color .15s}.inv-notes-add-btn:hover{border-color:var(--accent-blue);color:var(--accent-blue)}.inv-note-form{display:flex;flex-direction:column;gap:.4rem;padding:.75rem;background:var(--bg-secondary);border:1px solid var(--border-secondary);border-radius:10px;margin-bottom:.5rem}.inv-note-form-row{display:flex;gap:.4rem}.inv-note-input{width:100%;padding:.45rem .6rem;border:1px solid var(--border-secondary);border-radius:6px;background:var(--bg-input);color:var(--text-primary);font-size:.8rem;outline:none;box-sizing:border-box}.inv-note-input::placeholder{color:var(--text-muted)}.inv-note-input:focus{border-color:var(--accent-blue)}.inv-note-input-symbol{width:80px;flex-shrink:0}.inv-note-input-title{flex:1}.inv-note-textarea{width:100%;padding:.45rem .6rem;border:1px solid var(--border-secondary);border-radius:6px;background:var(--bg-input);color:var(--text-primary);font-size:.8rem;outline:none;box-sizing:border-box;resize:vertical;font-family:inherit}.inv-note-textarea::placeholder{color:var(--text-muted)}.inv-note-textarea:focus{border-color:var(--accent-blue)}.inv-note-form-actions{display:flex;gap:.3rem}.inv-note-submit{flex:1;padding:.35rem;border:none;border-radius:6px;background:var(--accent-blue);color:#fff;font-size:.75rem;font-weight:600;cursor:pointer}.inv-note-submit:hover{background:var(--accent-blue-hover)}.inv-note-cancel{padding:.35rem .6rem;border:1px solid var(--border-secondary);border-radius:6px;background:transparent;color:var(--text-muted);font-size:.75rem;cursor:pointer}.inv-note-cancel:hover{border-color:var(--text-sub);color:var(--text-sub)}.inv-note-card{padding:.75rem;background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:10px}.inv-note-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.3rem}.inv-note-meta{display:flex;align-items:center;gap:.4rem}.inv-note-symbol{font-size:.7rem;font-weight:700;color:var(--accent-blue);background:var(--bg-tertiary);padding:.1rem .4rem;border-radius:4px}.inv-note-date{font-size:.7rem;color:var(--text-muted)}.inv-note-actions{display:flex;gap:.2rem;opacity:0;transition:opacity .15s}.inv-note-card:hover .inv-note-actions{opacity:1}.inv-note-edit-btn,.inv-note-delete-btn{border:none;background:transparent;color:var(--text-muted);font-size:.75rem;cursor:pointer;padding:.1rem .3rem;border-radius:4px}.inv-note-edit-btn:hover{color:var(--accent-blue);background:var(--bg-tertiary)}.inv-note-delete-btn:hover{color:var(--accent-red);background:var(--bg-tertiary)}.inv-note-title{margin:0 0 .25rem;font-size:.9rem;font-weight:600;color:var(--text-primary)}.inv-note-body{margin:0 0 .4rem;font-size:.8rem;color:var(--text-sub);line-height:1.5;white-space:pre-wrap}.inv-note-tags{display:flex;gap:.3rem;flex-wrap:wrap}.inv-note-tag{font-size:.65rem;color:var(--text-tertiary);background:var(--bg-tertiary);padding:.1rem .35rem;border-radius:4px}@media(max-width:480px){.inv-page{padding:.5rem .75rem 80px}.inv-summary-cards{grid-template-columns:1fr 1fr;gap:.4rem}.inv-summary-value{font-size:.95rem}}@media(hover:none){.inv-note-actions{opacity:.5}}.more-page{max-width:700px;margin:0 auto;padding:1rem 1rem 80px}.more-profile{display:flex;align-items:center;gap:.75rem;padding:1rem 0;border-bottom:1px solid var(--border-primary);margin-bottom:1rem}.more-avatar{width:48px;height:48px;border-radius:50%}.more-name{font-size:1rem;font-weight:600;color:var(--text-heading)}.more-email{font-size:.8rem;color:var(--text-muted)}.more-menu{display:flex;flex-direction:column;gap:2px}.more-menu-item{display:flex;align-items:center;gap:.75rem;padding:.85rem .5rem;border:none;background:transparent;cursor:pointer;width:100%;text-align:left;border-radius:8px;transition:background .15s}.more-menu-item:hover{background:var(--bg-hover)}.more-menu-icon{width:24px;height:24px;object-fit:contain;opacity:.6}.more-menu-text{flex:1;display:flex;flex-direction:column;gap:2px}.more-menu-label{font-size:.95rem;font-weight:500;color:var(--text-primary)}.more-menu-desc{font-size:.75rem;color:var(--text-muted)}.more-menu-arrow{font-size:1.2rem;color:var(--text-muted)}.more-logout{display:block;width:100%;margin-top:2rem;padding:.75rem;border:1px solid var(--accent-red);border-radius:8px;background:transparent;color:var(--accent-red);font-size:.9rem;cursor:pointer}.more-logout:hover{background:#ef44441a}.bottom-nav{position:fixed;bottom:0;left:0;right:0;display:flex;background:var(--bg-primary);border-top:1px solid var(--border-primary);z-index:100;padding-bottom:env(safe-area-inset-bottom,0)}.bottom-nav-tab{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 0;border:none;background:transparent;color:var(--text-muted);cursor:pointer;font-size:.7rem;-webkit-tap-highlight-color:transparent}.bottom-nav-tab.active{color:var(--accent-blue)}.bottom-nav-icon{width:22px;height:22px;object-fit:contain;opacity:.5}.bottom-nav-tab.active .bottom-nav-icon{opacity:1;filter:brightness(0) saturate(100%) invert(42%) sepia(93%) saturate(1352%) hue-rotate(196deg) brightness(100%) contrast(101%)}.bottom-nav-label{font-size:.65rem}.container{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem}h1{font-size:2rem;font-weight:700;margin:0}.subtitle{color:var(--text-sub);margin:0}.login-box{margin-top:1rem}.error{color:var(--accent-red);margin:0;font-size:.9rem;padding:0 1rem}.tl-page{display:flex;flex-direction:column;height:100vh;max-width:600px;margin:0 auto;padding:0 1rem;padding-bottom:56px}@media(max-width:480px){.tl-page{padding:0 .75rem;padding-bottom:56px}}:root{--bg-primary: #0a0a0a;--bg-secondary: #111;--bg-tertiary: #1a1a1a;--bg-card: #0f0f0f;--bg-hover: #111;--bg-active: #1a1a1a;--bg-toolbar: #0a0a0a;--bg-input: #111;--text-primary: #efefef;--text-secondary: #aaa;--text-tertiary: #666;--text-muted: #555;--text-heading: #ddd;--text-sub: #888;--text-faint: #777;--border-primary: #1a1a1a;--border-secondary: #333;--border-input: #333;--border-subtle: #222;--toggle-bg: #333;--toggle-knob: #888;--code-bg: #161b22;--accent-blue: #4a90d9;--accent-blue-hover: #3a7fc8;--accent-blue-bg: #4a90d910;--accent-red: #e53e3e;--accent-red-bg: #e53e3e15;--accent-red-border: #e53e3e40;--accent-green: #2ECC71;--accent-green-hover: #27ae60;--accent-orange: #FF6B35;--accent-gold: #f0c040}[data-theme=light]{--bg-primary: #ffffff;--bg-secondary: #f5f5f5;--bg-tertiary: #ebebeb;--bg-card: #fafafa;--bg-hover: #f0f0f0;--bg-active: #e8e8e8;--bg-toolbar: #ffffff;--bg-input: #f5f5f5;--text-primary: #1a1a1a;--text-secondary: #555;--text-tertiary: #888;--text-muted: #aaa;--text-heading: #222;--text-sub: #666;--text-faint: #999;--border-primary: #e0e0e0;--border-secondary: #ccc;--border-input: #ccc;--border-subtle: #ddd;--toggle-bg: #ccc;--toggle-knob: #fff;--code-bg: #f6f8fa;--accent-blue-bg: #4a90d915;--accent-red-bg: #e53e3e10;--accent-red-border: #e53e3e30}:root{transition:background-color .15s ease,color .15s ease}:root{font-family:system-ui,-apple-system,sans-serif;line-height:1.5;font-weight:400;color:var(--text-primary);background-color:var(--bg-primary);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{margin:0}
