@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap";:root{--sidebar-bg: #0e1117;--sidebar-text: #8b919e;--sidebar-text-hover: #dde1ea;--sidebar-text-active: #ffffff;--sidebar-item-hover: rgba(255, 255, 255, .055);--sidebar-item-active: rgba(99, 102, 241, .18);--sidebar-border: rgba(255, 255, 255, .07);--sidebar-width: 238px;--bg: #f3f5f9;--surface: #ffffff;--surface-muted: #f8f9fb;--text: #111827;--text-muted: #6b7280;--border: #e5e7eb;--accent: #6366f1;--accent-strong: #4f46e5;--accent-soft: rgba(99, 102, 241, .1);--success: #10b981;--success-strong: #059669;--success-soft: rgba(16, 185, 129, .1);--warning: #f59e0b;--danger: #ef4444;--danger-soft: rgba(239, 68, 68, .09);--shadow-xs: 0 1px 2px rgba(0, 0, 0, .05);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .07), 0 1px 2px rgba(0, 0, 0, .04);--shadow-md: 0 4px 16px rgba(0, 0, 0, .09);--shadow-lg: 0 20px 45px rgba(0, 0, 0, .14);--radius: 12px;--radius-sm: 8px;--radius-xs: 5px}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0;font-family:Inter,system-ui,-apple-system,sans-serif;font-size:14px;line-height:1.5;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}[hidden]{display:none!important}::selection{background:#6366f12e;color:var(--text)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#0000001f;border-radius:999px}::-webkit-scrollbar-thumb:hover{background:#00000038}.sidebar ::-webkit-scrollbar-thumb{background:#ffffff14}.sidebar ::-webkit-scrollbar-thumb:hover{background:#ffffff29}*{scrollbar-width:thin;scrollbar-color:rgba(0,0,0,.12) transparent}.sidebar *{scrollbar-color:rgba(255,255,255,.08) transparent}@keyframes fadeInUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes shimmer{0%{background-position:-200% center}to{background-position:200% center}}@keyframes gentlePulse{0%,to{box-shadow:0 0 #6366f100}50%{box-shadow:0 0 0 6px #6366f10f}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.app-shell{display:flex;min-height:100vh;width:100%;overflow-x:hidden}.sidebar{position:fixed;left:0;top:0;bottom:0;width:var(--sidebar-width);background:var(--sidebar-bg);display:flex;flex-direction:column;z-index:200;overflow:hidden}.sidebar-brand{display:flex;align-items:center;gap:.75rem;padding:1.1rem 1rem 1rem;border-bottom:1px solid var(--sidebar-border);flex-shrink:0}.sidebar-brand-logo{width:32px;height:32px;border-radius:9px;overflow:hidden;display:flex;align-items:center;justify-content:center;flex-shrink:0}.sidebar-brand-logo img{width:100%;height:100%;transform:scale(1.68);object-fit:cover}.sidebar-brand-name{font-size:.95rem;font-weight:700;color:#fff;letter-spacing:-.025em;line-height:1.2}.sidebar-brand-tagline{font-size:.65rem;color:#ffffff59;letter-spacing:.01em;display:block;margin-top:1px}.sidebar-nav{flex:1;overflow-y:auto;padding:.65rem .6rem;scrollbar-width:none}.sidebar-nav::-webkit-scrollbar{display:none}.sidebar-section-label{display:block;font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.11em;color:#ffffff40;padding:.85rem .65rem .3rem}.sidebar-link{display:flex;align-items:center;gap:.65rem;width:100%;padding:.55rem .65rem;border-radius:7px;color:var(--sidebar-text);font-size:.845rem;font-weight:500;cursor:pointer;transition:background .14s ease,color .14s ease;border:none;background:transparent;text-align:left;text-decoration:none;font-family:inherit;line-height:1.4}.sidebar-link:hover{background:var(--sidebar-item-hover);color:var(--sidebar-text-hover)}.sidebar-link.is-active{background:var(--sidebar-item-active);color:var(--sidebar-text-active)}.sidebar-link-icon{width:17px;height:17px;flex-shrink:0;stroke:currentColor;fill:none;opacity:.65}.sidebar-link.is-active .sidebar-link-icon{opacity:1;stroke:var(--accent);filter:drop-shadow(0 0 4px rgba(99,102,241,.35))}.sidebar-link-text{flex:1;min-width:0}.sidebar-link-badge{display:inline-flex;align-items:center;justify-content:center;min-width:1.3rem;padding:.05rem .35rem;border-radius:999px;background:#ffffff17;color:#ffffff8c;font-size:.68rem;font-weight:700;flex-shrink:0}.sidebar-link.is-active .sidebar-link-badge{background:var(--accent);color:#fff}.sidebar-divider{height:1px;background:var(--sidebar-border);margin:.4rem .6rem}.sidebar-footer{padding:.7rem .6rem .85rem;border-top:1px solid var(--sidebar-border);flex-shrink:0}.sidebar-user{display:flex;align-items:center;gap:.6rem;padding:.45rem .65rem;margin-bottom:.25rem}.sidebar-avatar{width:28px;height:28px;border-radius:50%;background:linear-gradient(135deg,var(--accent),#8b5cf6);display:flex;align-items:center;justify-content:center;color:#fff;font-size:.78rem;font-weight:700;flex-shrink:0}.sidebar-user-name{font-size:.785rem;font-weight:600;color:var(--sidebar-text-hover);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-logout-btn{display:flex;align-items:center;gap:.6rem;width:100%;padding:.5rem .65rem;border-radius:7px;color:#ffffff4d;font-size:.8rem;font-weight:500;cursor:pointer;border:none;background:transparent;font-family:inherit;transition:color .14s,background .14s;text-align:left}.sidebar-logout-btn:hover{color:#ffffffa6;background:#ffffff0d}.sidebar-logout-icon{width:15px;height:15px;flex-shrink:0;stroke:currentColor;fill:none}.sidebar-user-menu{padding:.7rem .6rem .85rem;border-top:1px solid var(--sidebar-border);flex-shrink:0;position:relative}.sidebar-user-trigger{display:flex;align-items:center;gap:.6rem;width:100%;padding:.45rem .65rem;border:none;background:transparent;color:var(--sidebar-text-hover);font-family:inherit;font-size:.785rem;font-weight:600;cursor:pointer;border-radius:7px;transition:background .14s,color .14s}.sidebar-user-trigger:hover{background:#ffffff0d}.sidebar-chevron{margin-left:auto;stroke:#ffffff4d;fill:none;transition:transform .2s ease}.sidebar-chevron.is-open{transform:rotate(180deg)}.sidebar-user-dropdown{position:absolute;bottom:calc(100% + .35rem);left:.6rem;right:.6rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius, 12px);box-shadow:0 8px 32px #00000040,0 2px 8px #00000026;overflow:hidden;z-index:100;animation:dropdownSlideUp .15s ease-out}@keyframes dropdownSlideUp{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.sidebar-dropdown-header{display:flex;align-items:center;gap:.75rem;padding:.85rem .9rem}.sidebar-dropdown-user-info{display:flex;flex-direction:column;min-width:0;flex:1}.sidebar-dropdown-user-name{font-size:.85rem;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-dropdown-user-email{font-size:.78rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-dropdown-divider{height:1px;background:var(--border)}.sidebar-dropdown-item{display:flex;align-items:center;gap:.65rem;width:100%;padding:.65rem .9rem;font-size:.84rem;font-weight:500;color:var(--text);text-decoration:none;cursor:pointer;border:none;background:transparent;font-family:inherit;transition:background .12s,color .12s}.sidebar-dropdown-item:hover{background:#ffffff0a}.sidebar-dropdown-item--danger{color:#ef4444}.sidebar-dropdown-item--danger:hover{background:#ef44440f}.sidebar-dropdown-icon{width:16px;height:16px;flex-shrink:0;stroke:currentColor;fill:none}.main-content{flex:1;margin-left:var(--sidebar-width);min-height:100vh;display:flex;flex-direction:column;min-width:0;width:100%}.main-inner{flex:1;display:flex;flex-direction:column;padding:1.65rem 1.85rem 0;max-width:1180px;width:100%;min-width:0}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.5rem;padding-bottom:1.25rem;border-bottom:1px solid var(--border);flex-wrap:wrap}.page-header-title{margin:0;font-size:1.45rem;font-weight:800;letter-spacing:-.03em;color:var(--text);line-height:1.2}.page-header-sub{margin:.2rem 0 0;font-size:.845rem;color:var(--text-muted)}.page-header-actions{display:flex;align-items:center;gap:.65rem;flex-shrink:0}.live-pill{display:inline-flex;align-items:center;gap:.45rem;padding:.4rem .8rem;border-radius:999px;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-xs);color:var(--text-muted);font-size:.78rem;white-space:nowrap}.live-pill.hover-refresh-btn{font-family:inherit}.live-pill.hover-refresh-btn:hover:not(:disabled){background:#f1f5f9;border-color:#cbd5e1;color:var(--text)}.live-pill.hover-refresh-btn:disabled{opacity:.75;cursor:not-allowed}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spinning{animation:spin 1s linear infinite;transform-origin:center}.live-dot{width:.42rem;height:.42rem;border-radius:50%;background:var(--success);box-shadow:0 0 0 3px #10b98133;animation:pulse 2s ease-in-out infinite}.live-dot.is-unhealthy{background:var(--danger, #EF4444);box-shadow:0 0 0 3px #ef444433}.live-dot.is-checking{background:#f59e0b;box-shadow:0 0 0 3px #f59e0b33}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.sync-days-select-wrapper{display:inline-flex;align-items:center;gap:.5rem}.sync-days-label{font-size:.8rem;color:var(--text-muted);font-weight:500}.sync-days-select{padding:.45rem 2rem .45rem .75rem;border-radius:var(--radius-sm, 6px);border:1px solid var(--border);background-color:var(--surface);color:var(--text);font-size:.8rem;font-weight:600;cursor:pointer;appearance:none;background-image:url(data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22%252394a3b8%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E);background-repeat:no-repeat;background-position:right .75rem center;background-size:.65rem auto;transition:border-color .15s ease,box-shadow .15s ease}.sync-days-select:hover{border-color:#c7d2fe}.sync-days-select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px #6366f126}.update-agenda-status{margin-top:.6rem;padding:.5rem .75rem;border-radius:var(--radius-sm);font-size:.8rem;font-weight:600;background:#6366f114;color:#6366f1;border:1px solid rgba(99,102,241,.15)}.update-agenda-status.is-success{background:var(--success-soft);color:var(--success);border-color:#10b98133}.update-agenda-status.is-error{background:#ef444414;color:var(--danger);border-color:#ef444433}.update-agenda-summary{margin-top:.4rem;font-size:.78rem;color:var(--text-muted)}.stats-row{display:flex;gap:.6rem;margin-bottom:1.15rem;flex-wrap:wrap}.stat-pill{display:inline-flex;align-items:center;gap:.45rem;padding:.38rem .85rem;background:var(--surface);border:1px solid var(--border);border-radius:999px;font-size:.8rem;font-weight:500;color:var(--text-muted);box-shadow:var(--shadow-xs);cursor:pointer;transition:all .15s ease;font-family:inherit;white-space:nowrap}.stat-pill:hover{border-color:#c7d2fe;color:var(--text);transform:translateY(-1px)}.stat-pill:active{transform:scale(.96);transition-duration:.08s}.stat-pill.is-active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-strong);font-weight:600}.stat-pill.is-overdue.is-active{border-color:var(--danger);background:var(--danger-soft);color:var(--danger)}.stat-pill-count{background:#0000000f;border-radius:999px;padding:.05rem .38rem;font-size:.7rem;font-weight:700}.stat-pill.is-active .stat-pill-count{background:#6366f129}.stat-pill.is-overdue.is-active .stat-pill-count{background:#ef444429}.spotlight-section{margin-bottom:1.15rem}.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.section-title{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.09em;color:var(--text-muted);margin:0}.spotlight-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.9rem;width:100%}.spotlight-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem;box-shadow:var(--shadow-sm);transition:box-shadow .2s cubic-bezier(.4,0,.2,1),transform .2s cubic-bezier(.4,0,.2,1);animation:fadeInUp .4s cubic-bezier(.4,0,.2,1) both;min-width:0}.spotlight-card:nth-child(2){animation-delay:.08s}.spotlight-card:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.spotlight-today{border-top:3px solid var(--accent)}.spotlight-tomorrow{border-top:3px solid var(--success)}.spotlight-card-header{display:flex;align-items:center;gap:.45rem;margin-bottom:.8rem}.spotlight-card-header h3{margin:0;font-size:.875rem;font-weight:700;letter-spacing:-.01em}.spotlight-date{color:var(--text-muted);font-size:.775rem}.spotlight-count{margin-left:auto;display:inline-flex;align-items:center;justify-content:center;min-width:1.35rem;padding:.08rem .38rem;border-radius:999px;font-size:.7rem;font-weight:700}.spotlight-today .spotlight-count{background:var(--accent-soft);color:var(--accent-strong)}.spotlight-tomorrow .spotlight-count{background:var(--success-soft);color:var(--success)}.spotlight-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.45rem;min-width:0}.spotlight-item{padding:.6rem .7rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-muted);transition:background .14s ease;cursor:pointer;min-width:0}.spotlight-item:hover{background:#f0f2f8}.spotlight-task{margin:0 0 .3rem;font-size:.845rem;font-weight:500;line-height:1.4;overflow-wrap:anywhere;word-break:break-word}.spotlight-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem}.spotlight-when{color:var(--text-muted);font-size:.75rem}.spotlight-empty{padding:.6rem .7rem;border-radius:var(--radius-sm);background:var(--surface-muted);color:var(--text-muted);font-size:.8rem;font-style:italic}.backlog-toggle-wrapper{display:flex;justify-content:center;margin:1.1rem 0}.btn-toggle-backlog{display:inline-flex;align-items:center;gap:.65rem;background:var(--surface);border:1px solid var(--border);color:var(--text);font-family:inherit;font-weight:600;font-size:.875rem;padding:.6rem 1.25rem;border-radius:var(--radius);cursor:pointer;box-shadow:var(--shadow-sm);transition:all .2s ease}.btn-toggle-backlog:hover{border-color:var(--accent);color:var(--accent-strong);box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-toggle-backlog:active{transform:translateY(0)}.backlog-count-badge{background:var(--accent-soft);color:var(--accent-strong);padding:.1rem .5rem;border-radius:999px;font-size:.73rem;font-weight:700}.btn-toggle-backlog .chevron-icon{font-size:.62rem;transition:transform .2s ease}.collapsible-content{max-height:0;overflow:hidden;transition:max-height .3s cubic-bezier(.4,0,.2,1),opacity .25s ease,margin-top .3s ease;opacity:0;margin-top:0}.collapsible-content.is-expanded{max-height:50000px;opacity:1;margin-top:.75rem}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);overflow:hidden}.panel-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.8rem 1rem;border-bottom:1px solid var(--border);background:var(--surface-muted);flex-wrap:wrap}.panel-header h2{margin:0;font-size:.875rem;font-weight:700;letter-spacing:-.01em}.panel-meta{color:var(--text-muted);font-size:.775rem}.table-wrap{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}table{width:100%;border-collapse:collapse;table-layout:fixed}col.col-task{width:50%}col.col-due,col.col-category{width:20%}col.col-actions{width:10%}th,td{padding:.65rem .95rem;text-align:left;vertical-align:middle;border-bottom:1px solid var(--border)}th{position:sticky;top:0;z-index:1;background:var(--surface-muted);color:var(--text-muted);font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;font-weight:700}th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;color:var(--text)}th.sortable:hover{background:#eef2ff}tbody tr{transition:background .15s cubic-bezier(.4,0,.2,1),box-shadow .15s ease;cursor:pointer}tbody tr:hover{background:var(--surface-muted);box-shadow:inset 3px 0 0 var(--accent)}tbody tr:last-child td{border-bottom:none}tbody tr.overdue{background:var(--danger-soft)}tbody tr.overdue:hover{background:#ef444421}tbody tr.overdue td:first-child{box-shadow:inset 3px 0 0 var(--danger)}.task-cell{font-weight:500;font-size:.845rem;line-height:1.4;overflow:hidden;overflow-wrap:anywhere;word-break:break-word}.task-cell-inner{display:block;max-width:100%;overflow-wrap:anywhere;word-break:break-word}.due-cell,.category-cell{white-space:nowrap}.muted{color:var(--text-muted);font-size:.8rem;line-height:1.4;overflow-wrap:anywhere;word-break:break-word}.due-badge{display:inline-flex;align-items:center;padding:.45rem .75rem;margin:.3rem 0;border-radius:var(--radius-sm);background:var(--accent-soft);color:var(--accent-strong);font-size:.75rem;font-weight:600;white-space:nowrap;border:1px solid transparent}.due-badge.overdue{background:#ef44441c;color:var(--danger);border:1px solid transparent}.due-badge.empty-date{background:#fffbeb;border:1px solid #fde68a;color:#92400e}.actions-cell{text-align:right;vertical-align:middle}.actions-dropdown-wrapper{position:relative;display:inline-flex}.actions-dropdown-trigger{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;border:none;background:transparent;color:var(--text-muted);cursor:pointer;transition:background .15s ease,color .15s ease}.actions-dropdown-trigger:hover{background:var(--surface-muted);color:var(--text)}.actions-dropdown-panel{position:absolute;right:0;top:100%;z-index:400;margin-top:4px;min-width:140px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);padding:4px;display:flex;flex-direction:column;gap:2px;animation:actionsDropdownFadeIn .15s ease forwards}@keyframes actionsDropdownFadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.actions-dropdown-item{display:flex;align-items:center;width:100%;padding:.5rem .75rem;border:none;background:transparent;color:var(--text);font-size:.8rem;font-weight:500;text-align:left;cursor:pointer;border-radius:var(--radius-xs);transition:background .15s ease,color .15s ease;font-family:inherit;white-space:nowrap}.actions-dropdown-item:hover{background:var(--surface-muted);color:var(--accent)}.category-chip{display:inline-block;padding:.2rem .6rem;border-radius:999px;background:#eef2ff;color:#4338ca;font-size:.73rem;font-weight:600;white-space:nowrap}.subject-chip{display:inline-block;max-width:100%;padding:.2rem .55rem;border-radius:var(--radius-xs);background:var(--surface-muted);border:1px solid var(--border);color:#374151;font-size:.73rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;vertical-align:top}.empty{margin:1rem;padding:.8rem .95rem;border-radius:var(--radius-sm);background:#fffbeb;border:1px solid #fde68a;color:#92400e;font-size:.845rem}.error{margin:1rem;padding:.8rem .95rem;border-radius:var(--radius-sm);background:var(--danger-soft);border:1px solid #fecaca;color:#991b1b;font-size:.845rem}.btn-primary{background:var(--accent);color:#fff;border:none;padding:.575rem 1.05rem;border-radius:var(--radius-sm);font-weight:600;font-size:.845rem;cursor:pointer;font-family:inherit;transition:background .14s,transform .1s,box-shadow .14s;display:inline-flex;align-items:center;justify-content:center;gap:.4rem;white-space:nowrap}.btn-primary:hover{background:var(--accent-strong);box-shadow:0 3px 10px #6366f159}.btn-primary:active{transform:scale(.98)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{background:var(--surface);color:var(--text);border:1px solid var(--border);padding:.575rem 1.05rem;border-radius:var(--radius-sm);font-weight:600;font-size:.845rem;cursor:pointer;font-family:inherit;transition:all .14s;display:inline-flex;align-items:center;gap:.4rem;white-space:nowrap}.btn-secondary:hover{border-color:#c4c9d8;background:var(--surface-muted);box-shadow:var(--shadow-xs)}.btn-teal{background:linear-gradient(135deg,#06b6d4,#0891b2);color:#fff;border:none;padding:.575rem 1.05rem;border-radius:var(--radius-sm);font-weight:600;font-size:.845rem;cursor:pointer;font-family:inherit;transition:all .14s ease,transform .1s;display:inline-flex;align-items:center;justify-content:center;gap:.4rem;white-space:nowrap}.btn-teal:hover{background:linear-gradient(135deg,#0891b2,#0369a1);box-shadow:0 3px 10px #06b6d459}.btn-teal:active{transform:scale(.98)}.btn-teal:disabled{opacity:.5;cursor:not-allowed}.btn-icon{font-size:.875rem}.form-group{display:flex;flex-direction:column;gap:.28rem}.form-group label{font-size:.76rem;font-weight:600;color:var(--text)}.form-input,.form-select{padding:.52rem .72rem;border:1px solid var(--border);border-radius:var(--radius-sm);font-family:inherit;font-size:.845rem;color:var(--text);background:var(--surface);transition:border-color .15s,box-shadow .15s}.form-input:focus,.form-select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.form-error{color:var(--danger);font-size:.76rem;font-weight:500;margin-top:.15rem}.modal-backdrop{position:fixed;inset:0;background:#0f172a6b;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);z-index:1000;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .2s ease}.modal-backdrop.is-active{opacity:1;pointer-events:auto}.modal-dialog{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg);width:92%;max-width:520px;max-height:88vh;display:flex;flex-direction:column;transform:scale(.95) translateY(10px);transition:transform .22s cubic-bezier(.34,1.56,.64,1)}.modal-backdrop.is-active .modal-dialog{transform:scale(1) translateY(0)}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--border)}.modal-header h2{margin:0;font-size:.95rem;font-weight:700;letter-spacing:-.02em}.modal-close-btn{background:none;border:none;font-size:1.35rem;cursor:pointer;color:var(--text-muted);display:inline-flex;align-items:center;justify-content:center;width:1.9rem;height:1.9rem;border-radius:50%;transition:background .14s,color .14s;flex-shrink:0}.modal-close-btn:hover{background:var(--surface-muted);color:var(--text)}.modal-body{padding:1.15rem 1.25rem;overflow-y:auto;display:flex;flex-direction:column;gap:1.15rem}.modal-section-title{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.09em;color:var(--text-muted);margin:0 0 .55rem}.sources-note{margin:0;padding:.6rem .8rem;border-radius:var(--radius-sm);background:var(--surface-muted);border:1px solid var(--border);color:var(--text-muted);font-size:.8rem;line-height:1.5}.manage-sources-list{list-style:none;margin:0;padding:.35rem;display:flex;flex-direction:column;gap:.35rem;flex:1;overflow-y:auto;scrollbar-width:thin;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-muted)}app-dashboard{display:flex;flex-direction:column;flex:1}app-sources-view{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}app-sources-view .view-header{flex-shrink:0}.manage-source-item{display:flex;align-items:center;justify-content:space-between;padding:.5rem .7rem;border-radius:var(--radius-xs);background:var(--surface);border:1px solid var(--border);transition:all .12s}.manage-source-item:hover{border-color:#c4c9d8;box-shadow:var(--shadow-xs)}.manage-source-info{display:flex;flex-direction:column;gap:.1rem;min-width:0}.manage-source-label{font-weight:600;font-size:.845rem}.manage-source-address{font-family:ui-monospace,Cascadia Code,monospace;font-size:.7rem;color:var(--text-muted)}.delete-source-btn{background:none;border:none;cursor:pointer;color:var(--text-muted);padding:.32rem;border-radius:var(--radius-xs);display:inline-flex;align-items:center;justify-content:center;transition:background .12s,color .12s;flex-shrink:0}.delete-source-btn:hover{background:var(--danger-soft);color:var(--danger)}.add-source-form{display:flex;flex-direction:column;gap:.8rem;padding:.9rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-muted)}.subscription-grid{display:flex;gap:1.25rem;flex-wrap:wrap}.subscription-card{flex:1;min-width:240px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem 1.1rem 1.1rem;display:flex;flex-direction:column;position:relative;transition:transform .2s,box-shadow .2s}.subscription-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.subscription-card.premium{border:2px solid var(--accent);background:linear-gradient(180deg,#fff,#fafbff)}.subscription-badge{position:absolute;top:-11px;right:1.1rem;background:linear-gradient(135deg,var(--accent),var(--accent-strong));color:#fff;font-size:.65rem;font-weight:700;padding:.18rem .55rem;border-radius:999px;text-transform:uppercase;letter-spacing:.06em}.subscription-card h3{margin:0 0 .3rem;font-size:.95rem;font-weight:700}.subscription-card .price{font-size:1.6rem;font-weight:800;margin-bottom:.35rem;color:var(--text);letter-spacing:-.04em}.subscription-card .price span{font-size:.8rem;color:var(--text-muted);font-weight:500}.subscription-card .purpose{font-size:.72rem;color:var(--text-muted);margin-bottom:.9rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.subscription-card .list-title{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted);margin-bottom:.55rem}.subscription-card ul{list-style:none;padding:0;margin:0 0 1.1rem;display:flex;flex-direction:column;gap:.5rem;flex-grow:1}.subscription-card li{font-size:.8rem;line-height:1.4;color:var(--text)}.subscription-card li.limit{color:var(--text-muted)}.subscription-card .quote-bubble{background:var(--surface-muted);border-radius:var(--radius-sm);padding:.6rem .8rem;font-size:.78rem;font-style:italic;color:var(--text-muted);margin-bottom:.9rem;border:1px solid var(--border);line-height:1.4}.subscription-card button{width:100%;padding:.6rem;border-radius:var(--radius-sm);font-weight:700;font-size:.845rem;cursor:pointer;transition:all .2s;font-family:inherit}.subscription-card .btn-current{background:var(--surface-muted);border:1px solid var(--border);color:var(--text-muted);cursor:not-allowed}.subscription-card .btn-upgrade{background:linear-gradient(135deg,var(--accent),var(--accent-strong));border:none;color:#fff}.subscription-card .btn-upgrade:hover{opacity:.9;transform:translateY(-1px)}.site-footer{padding:.75rem 1.85rem;text-align:center;color:var(--text-muted);font-size:.76rem;border-top:1px solid var(--border);background:linear-gradient(180deg,var(--surface-muted),var(--bg));display:flex;align-items:center;justify-content:center;gap:1rem;flex-wrap:wrap;flex-shrink:0}.site-footer p{margin:0}.bottom-filter-bar,.mobile-header,.sidebar-backdrop{display:none}.main-content.unauthenticated{height:auto;min-height:100vh;overflow:visible}.main-content.unauthenticated .main-inner{overflow:visible;flex:none}.page{width:100%;max-width:100%;margin:0 auto;padding:1.75rem clamp(1rem,2.5vw,2.5rem) 3rem}.topbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:2rem}.brand{display:flex;align-items:center;gap:.875rem}.brand-mark{width:3rem;height:3rem;border-radius:10px;overflow:hidden;display:flex;align-items:center;justify-content:center;flex-shrink:0}.brand-mark img{width:100%;height:100%;transform:scale(1.68);object-fit:cover}.brand-copy h1{margin:0;font-size:1.5rem;letter-spacing:-.03em;font-weight:800}.brand-copy p{margin:.15rem 0 0;color:var(--text-muted);font-size:.9rem}.landing-grid{display:grid;grid-template-columns:1fr;gap:2.5rem;max-width:1260px;margin:1.5rem auto 3.5rem;align-items:flex-start}@media(min-width:960px){.landing-grid{grid-template-columns:1.15fr .85fr;gap:4rem;margin-top:3rem}}.landing-hero{display:flex;flex-direction:column;text-align:left}.landing-hero h2{font-size:clamp(2rem,4vw,2.75rem);font-weight:800;line-height:1.15;letter-spacing:-.04em;margin:0 0 1rem;background:linear-gradient(90deg,var(--accent-strong) 0%,#8b5cf6 25%,#d946ef 50%,#8b5cf6 75%,var(--accent-strong) 100%);background-size:200% auto;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:shimmer 6s linear infinite}.landing-hero .subtitle{font-size:clamp(.95rem,2vw,1.15rem);color:var(--text-muted);line-height:1.5;margin:0 0 1.5rem;font-weight:500}.landing-testimonial{background:#fff9;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-left:4px solid var(--accent);padding:.95rem 1.15rem;border-radius:0 12px 12px 0;margin-bottom:2rem;box-shadow:var(--shadow-sm);border-top:1px solid rgba(255,255,255,.5);border-right:1px solid rgba(255,255,255,.3);border-bottom:1px solid rgba(255,255,255,.3);transition:transform .2s}.landing-testimonial:hover{transform:translate(3px)}.landing-testimonial p{margin:0;font-style:italic;font-weight:500;color:var(--text);line-height:1.45}.landing-steps-title{font-size:.73rem;text-transform:uppercase;letter-spacing:.09em;color:var(--accent-strong);font-weight:700;margin:0 0 1rem}.landing-steps{display:flex;flex-direction:column;gap:.95rem;margin-bottom:2.25rem;padding:0;list-style:none}.landing-step{display:flex;gap:.8rem;align-items:flex-start;position:relative}.landing-step:not(:last-child):after{content:"";position:absolute;left:.95rem;top:1.9rem;width:2px;height:calc(100% - .95rem);background:linear-gradient(180deg,var(--accent-soft),rgba(99,102,241,.04))}.landing-step-num{display:inline-flex;align-items:center;justify-content:center;width:1.9rem;height:1.9rem;border-radius:50%;background:var(--accent-soft);color:var(--accent-strong);font-weight:700;font-size:.845rem;flex-shrink:0}.landing-step-content{flex:1}.landing-step-content strong{display:block;font-size:.875rem;font-weight:700;color:var(--text);margin-bottom:.08rem}.landing-step-content p{margin:0;font-size:.8rem;color:var(--text-muted);line-height:1.45}.notification-examples-title{font-size:.73rem;font-weight:700;text-transform:uppercase;letter-spacing:.09em;color:var(--text-muted);margin:0 0 .8rem}.notification-examples-grid{display:flex;flex-wrap:wrap;gap:.6rem;margin-bottom:1.35rem}.notification-chip{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem .8rem;border-radius:10px;font-size:.78rem;font-weight:600;box-shadow:var(--shadow-xs);transition:transform .2s cubic-bezier(.4,0,.2,1),box-shadow .2s ease;cursor:default;border:1px solid var(--border);animation:fadeInUp .45s cubic-bezier(.4,0,.2,1) both}.notification-chip:nth-child(1){animation-delay:.1s}.notification-chip:nth-child(2){animation-delay:.18s}.notification-chip:nth-child(3){animation-delay:.26s}.notification-chip:nth-child(4){animation-delay:.34s}.notification-chip:nth-child(5){animation-delay:.42s}.notification-chip:nth-child(6){animation-delay:.5s}.notification-chip:nth-child(7){animation-delay:.58s}.notification-chip:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.notification-chip.blue-yellow{background:#f0f7ff;border-left:4px solid #3B82F6;color:#1e3a8a}.notification-chip.early-dismissal{background:#fffbeb;border-left:4px solid var(--warning);color:#78350f}.notification-chip.photo-day{background:#faf5ff;border-left:4px solid #A855F7;color:#581c87}.notification-chip.library-book{background:#f0fdf4;border-left:4px solid var(--success);color:#14532d}.notification-chip.toy-day{background:#fdf2f8;border-left:4px solid #EC4899;color:#9d174d}.notification-chip.soccer-practice{background:#ecfdf5;border-left:4px solid #10B981;color:#064e3b}.notification-chip.art-lesson{background:#f0fdfa;border-left:4px solid #14B8A6;color:#115e59}.notification-icon{font-size:1rem}.landing-card-wrapper{width:100%}@media(min-width:960px){.landing-card-wrapper{position:sticky;top:2rem}}.login-card{width:100%;padding:2.15rem;background:var(--surface);border:1px solid rgba(99,102,241,.15);border-radius:var(--radius);box-shadow:var(--shadow-md),0 0 0 1px #6366f10d,0 8px 40px #6366f114;animation:scaleIn .35s cubic-bezier(.4,0,.2,1) both}.sidebar-upgrade-card{display:flex;align-items:center;gap:.65rem;margin:.4rem .6rem;padding:.65rem .75rem;border-radius:10px;background:linear-gradient(135deg,#f59e0b1f,#d9770614);border:1px solid rgba(245,158,11,.25);cursor:pointer;transition:all .2s ease;text-decoration:none}.sidebar-upgrade-card:hover{background:linear-gradient(135deg,#f59e0b33,#d9770624);border-color:#f59e0b73;transform:translateY(-1px);box-shadow:0 4px 12px #f59e0b26}.sidebar-upgrade-icon{font-size:1.15rem;line-height:1;flex-shrink:0}.sidebar-upgrade-text{flex:1;min-width:0;display:flex;flex-direction:column}.sidebar-upgrade-title{font-size:.78rem;font-weight:700;color:#f59e0b;line-height:1.2}.sidebar-upgrade-sub{font-size:.65rem;color:#f59e0bb3;line-height:1.2}.sidebar-upgrade-arrow{stroke:#f59e0b99;flex-shrink:0}.settings-tabs{display:flex;gap:.35rem;margin-bottom:1.75rem;border-bottom:2px solid var(--border);padding-bottom:0;overflow-x:auto;scrollbar-width:none}.settings-tabs::-webkit-scrollbar{display:none}.settings-tab{display:inline-flex;align-items:center;gap:.45rem;padding:.6rem 1rem;font-size:.845rem;font-weight:600;color:var(--text-muted);text-decoration:none;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;cursor:pointer;transition:all .15s ease;white-space:nowrap;font-family:inherit;background:transparent}.settings-tab:hover{color:var(--text);border-bottom-color:#c7d2fe}.settings-tab.is-active{color:var(--accent-strong);border-bottom-color:var(--accent)}.settings-tab-icon{width:16px;height:16px;stroke:currentColor;fill:none;flex-shrink:0}.settings-tab.is-active .settings-tab-icon{stroke:var(--accent-strong)}.subscription-inline-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem;margin-top:1.25rem}@media(max-width:768px){.subscription-inline-grid{grid-template-columns:1fr}}.subscription-inline-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem;display:flex;flex-direction:column;position:relative;transition:transform .2s,box-shadow .2s}.subscription-inline-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.subscription-inline-card.premium{border:2px solid var(--accent);background:linear-gradient(180deg,#fff,#fafbff)}.subscription-inline-card .card-badge{position:absolute;top:-11px;right:1.25rem;background:linear-gradient(135deg,var(--accent),var(--accent-strong));color:#fff;font-size:.65rem;font-weight:700;padding:.18rem .55rem;border-radius:999px;text-transform:uppercase;letter-spacing:.06em}.subscription-inline-card h3{margin:0 0 .3rem;font-size:1.05rem;font-weight:700}.subscription-inline-card .price{font-size:1.8rem;font-weight:800;margin-bottom:.35rem;color:var(--text);letter-spacing:-.04em}.subscription-inline-card .price span{font-size:.85rem;color:var(--text-muted);font-weight:500}.subscription-inline-card .purpose{font-size:.72rem;color:var(--text-muted);margin-bottom:1rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.subscription-inline-card ul{list-style:none;padding:0;margin:0 0 1.25rem;display:flex;flex-direction:column;gap:.5rem;flex-grow:1}.subscription-inline-card li{font-size:.845rem;line-height:1.5;color:var(--text)}.subscription-inline-card li.limit{color:var(--text-muted)}.subscription-inline-card .quote-bubble{background:var(--surface-muted);border-radius:var(--radius-sm);padding:.65rem .85rem;font-size:.82rem;font-style:italic;color:var(--text-muted);margin-bottom:1rem;border:1px solid var(--border);line-height:1.45}.premium-gate-wrapper{position:relative;min-height:400px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:3rem 2rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.premium-gate-icon{width:80px;height:80px;border-radius:50%;background:linear-gradient(135deg,#f59e0b1f,#d977060f);border:2px solid rgba(245,158,11,.2);display:flex;align-items:center;justify-content:center;font-size:2rem;margin-bottom:1.25rem}.premium-gate-title{font-size:1.3rem;font-weight:800;letter-spacing:-.03em;color:var(--text);margin:0 0 .5rem}.premium-gate-desc{font-size:.9rem;color:var(--text-muted);line-height:1.6;max-width:420px;margin:0 0 1.75rem}.premium-gate-features{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;margin-bottom:1.75rem}.premium-gate-feature-chip{display:inline-flex;align-items:center;gap:.35rem;padding:.35rem .75rem;border-radius:999px;background:var(--accent-soft);border:1px solid rgba(99,102,241,.15);font-size:.78rem;font-weight:600;color:var(--accent-strong)}@media(max-width:900px){.sidebar{display:flex!important;position:fixed;top:0;bottom:0;left:0;width:var(--sidebar-width);transform:translate(-100%);transition:transform .25s cubic-bezier(.4,0,.2,1);z-index:400}.sidebar.is-mobile-active{transform:translate(0);box-shadow:var(--shadow-lg)}.sidebar-backdrop{display:block;position:fixed;inset:0;background:#0f172a6b;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:390;opacity:0;transition:opacity .25s ease;pointer-events:none}.sidebar-backdrop.is-active{opacity:1;pointer-events:auto}.mobile-header{display:flex;align-items:center;gap:1rem;height:56px;background:#0e1117;color:#fff;padding:0 1rem;position:sticky;top:0;z-index:150;border-bottom:1px solid rgba(255,255,255,.08)}.hamburger-btn{background:none;border:none;color:#ffffffd9;cursor:pointer;padding:.45rem;display:flex;align-items:center;justify-content:center;border-radius:6px;transition:background .15s,color .15s}.hamburger-btn:hover{background:#ffffff14;color:#fff}.hamburger-btn svg{display:block}.mobile-brand-name{font-size:1.1rem;font-weight:700;letter-spacing:-.025em}.main-content{margin-left:0;height:auto;min-height:100vh;overflow:visible}.main-inner{padding:1.15rem .95rem 8rem;overflow:visible;flex:none}.page-header-title{font-size:1.2rem}.spotlight-grid{grid-template-columns:1fr}.stats-row{display:none!important}.panel-header{flex-direction:column;align-items:flex-start;gap:.4rem}.table-wrap{overflow-x:hidden}table{table-layout:fixed!important;width:100%!important;min-width:100%!important}th,td{padding:.65rem .5rem!important}th:nth-child(3),td:nth-child(3){display:none!important}col.col-task{width:55%!important}col.col-due{width:30%!important}col.col-category{width:0%!important}col.col-actions{width:15%!important}th:nth-child(2),td:nth-child(2){text-align:right!important;padding-right:.35rem!important}.due-cell{text-align:right!important}.due-badge{font-size:.68rem!important;padding:.3rem .55rem!important;margin:.2rem 0!important}.bottom-filter-bar{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:300;background:#0e1117f7;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-top:1px solid rgba(255,255,255,.08);padding:.55rem .5rem calc(.55rem + env(safe-area-inset-bottom));justify-content:space-around}.filter-btn-mobile{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;border:none;background:transparent;padding:.55rem .2rem;border-radius:9px;font-size:.72rem;font-weight:600;color:#ffffff61;cursor:pointer;font-family:inherit;transition:all .18s ease;gap:.28rem;letter-spacing:.025em;text-transform:uppercase}.tab-icon-wrapper{position:relative;display:inline-flex}.tab-badge{position:absolute;top:-4px;right:-8px;background:#ffffff2e;color:#fffffff2;font-size:.65rem;font-weight:700;min-width:15px;height:15px;border-radius:999px;display:flex;align-items:center;justify-content:center;padding:0 4px;box-shadow:0 0 0 1.5px #0e1117;line-height:1;transition:all .18s ease;text-transform:none}.filter-btn-mobile.is-active .tab-badge{background:var(--accent);color:#fff;box-shadow:0 0 0 1.5px #0e1117,0 0 6px #6366f166}.tab-icon{width:24px;height:24px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:transform .18s ease,stroke .18s}.filter-btn-mobile.is-active{color:#fffffff2}.filter-btn-mobile.is-active .tab-icon{stroke:var(--accent);transform:scale(1.12);filter:drop-shadow(0 0 5px rgba(99,102,241,.55))}.site-footer{padding-bottom:calc(5.5rem + env(safe-area-inset-bottom))}}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.15rem;box-shadow:var(--shadow-sm)}.card:has(.manage-sources-list){flex:1;display:flex;flex-direction:column;min-height:0;overflow:hidden}.view-header{margin-bottom:1.5rem}.view-title{margin:0;font-size:1.45rem;font-weight:800;letter-spacing:-.03em;color:var(--text);line-height:1.2}.view-sub{margin:.2rem 0 0;font-size:.845rem;color:var(--text-muted)}.view-content-grid{display:grid;grid-template-columns:1fr 1.25fr;gap:1.5rem;align-items:start}@media(max-width:768px){.view-content-grid{grid-template-columns:1fr}}.panel-scanner{transition:box-shadow .2s ease,transform .2s ease}.panel-scanner:hover{box-shadow:var(--shadow-md)}.suggestions-table-wrapper{max-height:480px;overflow-y:auto;scrollbar-width:thin}.suggestions-table tbody tr:hover{background:#f8fafc!important}.suggestions-table input.form-input{transition:all .15s ease-in-out}.suggestions-table input.form-input:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}@media(max-width:768px){.suggestions-table-wrapper{border:none}.suggestions-table thead{display:none}.suggestions-table tr{display:block;border:1px solid var(--border);border-radius:var(--radius-sm);margin-bottom:.8rem;padding:.75rem;background:var(--surface)}.suggestions-table td{display:block;width:100%!important;text-align:left!important;padding:.4rem 0!important;border:none!important}.suggestions-table td:last-child{border-top:1px dashed var(--border)!important;margin-top:.4rem;padding-top:.6rem!important}}.duplicate{opacity:.55;background:var(--surface-muted)!important;text-decoration:line-through;text-decoration-color:var(--text-muted);transition:opacity .2s ease,background .2s ease}.duplicate:hover{background:var(--surface-muted)!important}.duplicate td,.duplicate .spotlight-task,.duplicate .muted{color:var(--text-muted)!important}.duplicate-badge{display:inline-flex;align-items:center;justify-content:center;font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;background:#e2e8f0;color:#475569;padding:.15rem .45rem;border-radius:4px;margin-right:.45rem;vertical-align:middle;text-decoration:none!important;display:inline-block;line-height:1.3}.calendar-page{padding:1.5rem 2rem;max-width:1200px;margin:0 auto}.calendar-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.25rem;padding-bottom:1rem;border-bottom:1px solid var(--border);flex-wrap:wrap;gap:.75rem}.calendar-header-left,.calendar-header-right{display:flex;align-items:center;gap:.5rem}.calendar-title{font-size:1.3rem;font-weight:700;color:var(--text);margin:0 0 0 .5rem;white-space:nowrap}.calendar-nav-btn{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);cursor:pointer;transition:background .15s,border-color .15s;padding:0}.calendar-nav-btn:hover{background:var(--surface-muted);border-color:var(--accent)}.calendar-today-btn{padding:.35rem .85rem;font-size:.82rem;font-weight:600;color:var(--accent);background:var(--accent-soft);border:1px solid transparent;border-radius:var(--radius-sm);cursor:pointer;transition:background .15s}.calendar-today-btn:hover{background:#6366f12e}.calendar-view-switcher{display:flex;border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden}.calendar-view-btn{padding:.4rem .9rem;font-size:.8rem;font-weight:500;color:var(--text-muted);background:var(--surface);border:none;cursor:pointer;transition:background .15s,color .15s;border-right:1px solid var(--border)}.calendar-view-btn:last-child{border-right:none}.calendar-view-btn:hover{background:var(--surface-muted);color:var(--text)}.calendar-view-btn.is-active{background:var(--accent);color:#fff}.calendar-view-btn.is-active:hover{background:var(--accent-strong);color:#fff}.calendar-month{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-xs);overflow:hidden}.calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);border-bottom:1px solid var(--border);background:var(--surface-muted)}.calendar-weekday{padding:.55rem 0;text-align:center;font-size:.75rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);grid-template-rows:repeat(6,minmax(100px,1fr))}.calendar-cell{border-right:1px solid var(--border);border-bottom:1px solid var(--border);padding:.25rem;min-height:90px;min-width:0;overflow:hidden;transition:background .12s}.calendar-cell:nth-child(7n){border-right:none}.calendar-cell:hover{background:var(--surface-muted)}.calendar-cell.is-today{background:#6366f10a;box-shadow:inset 0 0 0 1px #6366f11f}.calendar-cell.is-today .calendar-cell-date{background:var(--accent);color:#fff;border-radius:50%;width:26px;height:26px;display:flex;align-items:center;justify-content:center}.calendar-cell.is-other-month{background:#00000004}.calendar-cell.is-other-month .calendar-cell-date{color:var(--text-muted);opacity:.55}.calendar-cell-date{font-size:.8rem;font-weight:600;color:var(--text);padding:.2rem .3rem;margin-bottom:.15rem}.calendar-cell-events{display:flex;flex-direction:column;gap:.15rem;overflow:hidden}.calendar-event-chip{display:flex;align-items:center;gap:.3rem;padding:.15rem .35rem;border-radius:var(--radius-xs);background:color-mix(in srgb,var(--chip-color) 12%,transparent);cursor:pointer;transition:background .15s,transform .15s cubic-bezier(.4,0,.2,1);overflow:hidden;min-width:0}.calendar-event-chip:hover{background:color-mix(in srgb,var(--chip-color) 22%,transparent);transform:scale(1.03)}.calendar-event-dot{width:6px;height:6px;min-width:6px;border-radius:50%;background:var(--chip-color)}.calendar-event-text{font-size:.7rem;font-weight:500;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-event-more{font-size:.65rem;font-weight:600;color:var(--text-muted);padding:.1rem .35rem}.calendar-week-view{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-xs);overflow:hidden}.calendar-week-header{display:grid;grid-template-columns:repeat(7,1fr);border-bottom:1px solid var(--border);background:var(--surface-muted)}.calendar-week-day-header{padding:.75rem .5rem;text-align:center;border-right:1px solid var(--border)}.calendar-week-day-header:last-child{border-right:none}.calendar-week-day-header.is-today .calendar-week-day-num{background:var(--accent);color:#fff;border-radius:50%;width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center}.calendar-week-day-name{display:block;font-size:.7rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.calendar-week-day-num{display:block;font-size:1.15rem;font-weight:700;color:var(--text);margin-top:.15rem}.calendar-week-columns{display:grid;grid-template-columns:repeat(7,1fr);min-height:400px}.calendar-week-column{border-right:1px solid var(--border);padding:.5rem}.calendar-week-column:last-child{border-right:none}.calendar-week-column:nth-child(2n){background:#00000003}.calendar-week-column.is-today{background:#6366f10a}.calendar-week-column-content{display:flex;flex-direction:column;gap:.5rem}.calendar-week-event{padding:.5rem;background:var(--surface-muted);border-left:3px solid;border-radius:var(--radius-xs);cursor:pointer;transition:background .12s,box-shadow .12s}.calendar-week-event:hover{background:var(--surface);box-shadow:var(--shadow-xs)}.calendar-week-event-title{font-size:.78rem;font-weight:600;color:var(--text);margin-bottom:.2rem}.calendar-week-event-meta{font-size:.68rem;color:var(--text-muted)}.calendar-week-empty{font-size:.72rem;color:var(--text-muted);text-align:center;padding:1rem .5rem;opacity:.6}.calendar-day-view{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-xs);overflow:hidden}.calendar-day-header-info{padding:1.25rem 1.5rem;border-bottom:1px solid var(--border);background:var(--surface-muted);display:flex;align-items:baseline;gap:.75rem}.calendar-day-name{font-size:.85rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.calendar-day-num{font-size:1.75rem;font-weight:800;color:var(--text)}.calendar-day-events{padding:1rem 1.5rem;display:flex;flex-direction:column;gap:.75rem}.calendar-day-event{padding:.85rem 1rem;background:var(--surface-muted);border-left:4px solid;border-radius:var(--radius-sm);cursor:pointer;transition:background .12s,box-shadow .12s}.calendar-day-event:hover{background:var(--surface);box-shadow:var(--shadow-sm)}.calendar-day-event-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.3rem}.calendar-day-event-category{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.calendar-day-event-overdue{font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:#fff;background:var(--danger);padding:.1rem .45rem;border-radius:4px}.calendar-day-event-title{font-size:.92rem;font-weight:600;color:var(--text);margin-bottom:.2rem}.calendar-day-event-due{font-size:.78rem;color:var(--text-muted)}.calendar-day-empty{text-align:center;padding:3rem 1.5rem;color:var(--text-muted)}.calendar-day-empty-icon{font-size:2.5rem;display:block;margin-bottom:.75rem}.calendar-day-empty p{font-size:.88rem;margin:0}.calendar-ics-section{margin-top:1.5rem}.calendar-ics-toggle-btn{padding:.6rem 1.3rem;font-size:.85rem;font-weight:600;background:var(--surface);border:1px solid var(--border);color:var(--text);border-radius:var(--radius-sm);cursor:pointer;transition:background .15s,border-color .15s}.calendar-ics-toggle-btn:hover{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.calendar-ics-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem;box-shadow:var(--shadow-sm);max-width:560px}.calendar-ics-title{font-size:.95rem;font-weight:700;color:var(--text);margin:0 0 .4rem}.calendar-ics-desc{font-size:.82rem;color:var(--text-muted);line-height:1.5;margin:0 0 1rem}.calendar-ics-url-row{display:flex;gap:.5rem;margin-bottom:.75rem}.calendar-ics-url-input{flex:1;padding:.5rem .7rem;font-size:.78rem;font-family:SF Mono,Fira Code,monospace;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-xs);color:var(--text);outline:none}.calendar-ics-url-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.calendar-ics-copy-btn{padding:.5rem .9rem;font-size:.8rem;font-weight:600;background:var(--accent);color:#fff;border:none;border-radius:var(--radius-xs);cursor:pointer;transition:background .15s;white-space:nowrap}.calendar-ics-copy-btn:hover{background:var(--accent-strong)}.calendar-ics-actions{display:flex;gap:.5rem}.calendar-ics-regen-btn{padding:.4rem .8rem;font-size:.78rem;font-weight:500;background:transparent;border:1px solid var(--border);color:var(--text-muted);border-radius:var(--radius-xs);cursor:pointer;transition:background .15s,border-color .15s}.calendar-ics-regen-btn:hover{background:var(--danger-soft);border-color:var(--danger);color:var(--danger)}.calendar-ics-close-btn{padding:.4rem .8rem;font-size:.78rem;font-weight:500;background:transparent;border:1px solid var(--border);color:var(--text-muted);border-radius:var(--radius-xs);cursor:pointer;transition:background .15s}.calendar-ics-close-btn:hover{background:var(--surface-muted);color:var(--text)}@media(max-width:768px){.calendar-page{padding:1rem}.calendar-header{flex-direction:column;align-items:flex-start}.calendar-title{font-size:1.1rem}.calendar-grid{grid-template-rows:repeat(6,minmax(70px,1fr))}.calendar-cell{min-height:65px;padding:.15rem}.calendar-cell-date{font-size:.72rem}.calendar-event-text{font-size:.62rem}.calendar-week-columns{min-height:300px}.calendar-week-event-title{font-size:.72rem}.calendar-day-header-info{padding:1rem}.calendar-day-num{font-size:1.4rem}}.todo-check-btn{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;border:2px solid var(--border);background:transparent;cursor:pointer;padding:0;margin-right:.75rem;transition:all .2s cubic-bezier(.4,0,.2,1);color:transparent;font-size:.75rem;font-weight:700;flex-shrink:0;line-height:1}.todo-check-btn:hover{border-color:var(--accent);background:var(--accent-soft);color:var(--accent);transform:scale(1.08)}.todo-check-btn.is-completed{background:var(--success);border-color:var(--success);color:#fff}.todo-check-btn.is-completed:hover{background:var(--success-strong);border-color:var(--success-strong);color:#fff}.task-completed-text{text-decoration:line-through;opacity:.65}.stat-pill.is-done.is-active{border-color:var(--success);background:var(--success-soft);color:var(--success-strong)}.stat-pill.is-done.is-active .stat-pill-count{background:#10b98129}.stat-pill.is-done:hover:not(.is-active){border-color:var(--success);background:#10b9810a}
