:root{--space-0: 0;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-7: 32px;--space-8: 40px;--space-9: 48px;--space-10: 64px;--text-xs: 11px;--text-sm: 12px;--text-base: 14px;--text-md: 15px;--text-lg: 16px;--text-xl: 20px;--text-2xl: 24px;--weight-normal: 400;--weight-medium: 500;--weight-semibold: 600;--weight-bold: 700;--weight-extrabold: 800;--bg: #f8f8fc;--bg-surface: #ffffff;--bg-raised: #ffffff;--bg-hover: #f0f0f6;--bg-inset: #f3f3f8;--border: #e2e2ec;--border-light: #ececf4;--text: #1a1a2e;--text-secondary: #5c5c7a;--text-muted: #9090a8;--accent: #6c63ff;--accent-hover: #5b52ee;--accent-bg: rgba(108, 99, 255, .08);--accent-ring: rgba(108, 99, 255, .35);--green: #10b981;--green-bg: rgba(16, 185, 129, .1);--yellow: #f59e0b;--yellow-bg: rgba(245, 158, 11, .1);--red: #ef4444;--red-bg: rgba(239, 68, 68, .08);--blue: #3b82f6;--blue-bg: rgba(59, 130, 246, .08);--radius-xs: 4px;--radius-sm: 6px;--radius: 10px;--radius-lg: 14px;--radius-xl: 20px;--radius-full: 999px;--shadow-xs: 0 1px 2px rgba(0,0,0,.04);--shadow-sm: 0 1px 3px rgba(0,0,0,.06), 0 1px 2px rgba(0,0,0,.04);--shadow: 0 4px 12px rgba(0,0,0,.08);--shadow-md: 0 8px 24px rgba(0,0,0,.1);--shadow-lg: 0 12px 40px rgba(0,0,0,.14);--transition-fast: .12s ease;--transition-base: .2s ease;--transition-slow: .3s ease;--sidebar-w: 260px;--topbar-h: 52px;--detail-w: 420px;--focus-ring: 0 0 0 2px var(--bg-surface), 0 0 0 4px var(--accent-ring);--font: "Inter", system-ui, -apple-system, sans-serif}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #0b0b11;--bg-surface: #13131d;--bg-raised: #1a1a28;--bg-hover: #222235;--bg-inset: #101018;--border: #2a2a3d;--border-light: #353550;--text: #e4e4ec;--text-secondary: #9090a8;--text-muted: #5f5f78;--accent-bg: rgba(108, 99, 255, .12);--accent-ring: rgba(108, 99, 255, .45);--green-bg: rgba(16, 185, 129, .12);--yellow-bg: rgba(245, 158, 11, .12);--red-bg: rgba(239, 68, 68, .12);--blue-bg: rgba(59, 130, 246, .12);--shadow-xs: 0 1px 2px rgba(0,0,0,.2);--shadow-sm: 0 1px 3px rgba(0,0,0,.3), 0 1px 2px rgba(0,0,0,.2);--shadow: 0 4px 12px rgba(0,0,0,.4);--shadow-md: 0 8px 24px rgba(0,0,0,.5);--shadow-lg: 0 12px 40px rgba(0,0,0,.6)}}[data-theme=dark]{--bg: #0b0b11;--bg-surface: #13131d;--bg-raised: #1a1a28;--bg-hover: #222235;--bg-inset: #101018;--border: #2a2a3d;--border-light: #353550;--text: #e4e4ec;--text-secondary: #9090a8;--text-muted: #5f5f78;--accent-bg: rgba(108, 99, 255, .12);--accent-ring: rgba(108, 99, 255, .45);--green-bg: rgba(16, 185, 129, .12);--yellow-bg: rgba(245, 158, 11, .12);--red-bg: rgba(239, 68, 68, .12);--blue-bg: rgba(59, 130, 246, .12);--shadow-xs: 0 1px 2px rgba(0,0,0,.2);--shadow-sm: 0 1px 3px rgba(0,0,0,.3), 0 1px 2px rgba(0,0,0,.2);--shadow: 0 4px 12px rgba(0,0,0,.4);--shadow-md: 0 8px 24px rgba(0,0,0,.5);--shadow-lg: 0 12px 40px rgba(0,0,0,.6)}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font);background:var(--bg);color:var(--text);min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.5;font-size:var(--text-base)}::selection{background:var(--accent);color:#fff}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-hover)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.layout{display:flex;min-height:100vh}.layout-main{flex:1;min-width:0;display:flex;flex-direction:column}.layout-content{flex:1;padding:var(--space-6);overflow-y:auto;max-height:calc(100vh - var(--topbar-h))}.layout--detail-open .layout-content{min-width:0}.detail-panel-wrapper{width:var(--detail-w);flex-shrink:0;border-left:1px solid var(--border);background:var(--bg-surface);height:calc(100vh - var(--topbar-h));position:sticky;top:var(--topbar-h);overflow:hidden;animation:slideInRight var(--transition-base)}.detail-overlay{display:none}.sidebar{width:var(--sidebar-w);background:var(--bg-surface);border-right:1px solid var(--border);display:flex;flex-direction:column;height:100vh;position:sticky;top:0;flex-shrink:0;overflow:hidden}.sidebar-header{padding:var(--space-5) var(--space-4) var(--space-3);display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.sidebar-team-name{font-size:var(--text-lg);font-weight:var(--weight-extrabold);letter-spacing:-.03em;background:linear-gradient(135deg,var(--accent),#a78bfa);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.sidebar-close{display:none;background:none;border:none;color:var(--text-muted);font-size:18px;cursor:pointer;padding:var(--space-1);border-radius:var(--radius-sm)}.sidebar-close:hover{background:var(--bg-hover);color:var(--text)}.sidebar-scroll{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch}.sidebar-nav{padding:var(--space-1) var(--space-2)}.sidebar-link{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:var(--text-sm);font-weight:var(--weight-medium);transition:all var(--transition-fast)}.sidebar-link:hover{background:var(--bg-hover);color:var(--text)}.sidebar-link.active{background:var(--accent-bg);color:var(--accent);font-weight:var(--weight-semibold)}.sidebar-icon{font-size:var(--text-base);width:20px;text-align:center;flex-shrink:0}.sidebar-section{padding:var(--space-2) var(--space-2) 0;flex:1}.sidebar-section-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-2) var(--space-3);font-size:var(--text-xs);font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.sidebar-add-btn{background:var(--bg-hover);border:none;color:var(--text-muted);width:22px;height:22px;border-radius:var(--radius-xs);cursor:pointer;font-size:var(--text-base);line-height:1;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.sidebar-add-btn:hover{background:var(--accent-bg);color:var(--accent)}.sidebar-new-form{padding:var(--space-1) var(--space-3)}.sidebar-new-input{width:100%;padding:6px var(--space-2);background:var(--bg-inset);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-size:var(--text-sm);font-family:var(--font);outline:none;transition:border-color var(--transition-fast)}.sidebar-new-input:focus{border-color:var(--accent);box-shadow:var(--focus-ring)}.sidebar-projects{display:flex;flex-direction:column;gap:1px}.sidebar-project{display:flex;align-items:center;gap:var(--space-2);padding:7px var(--space-3);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:var(--text-sm);transition:all var(--transition-fast)}.sidebar-project:hover{background:var(--bg-hover);color:var(--text)}.sidebar-project.active{background:var(--accent-bg);color:var(--accent);font-weight:var(--weight-semibold)}.sidebar-project-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.sidebar-project-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-badge{font-size:10px;padding:1px 6px;background:var(--yellow-bg);color:var(--yellow);border-radius:var(--radius-full);font-weight:var(--weight-semibold)}.sidebar-empty{padding:8px 12px;color:var(--text-muted);font-size:var(--text-sm)}.sidebar-project-group{display:flex;flex-direction:column}.sidebar-project-row{display:flex;align-items:center}.sidebar-fav-btn{background:none;border:none;cursor:pointer;padding:4px 2px 4px 8px;font-size:14px;color:var(--text-muted);opacity:.4;transition:opacity .15s,color .15s;line-height:1;flex-shrink:0}.sidebar-project-row:hover .sidebar-fav-btn{opacity:1}.sidebar-fav-btn--active{opacity:1!important;color:var(--yellow)}.sidebar-fav-btn:hover{color:var(--yellow);opacity:1}.sidebar-project-row .sidebar-project{flex:1;min-width:0}.sidebar-phases{padding:2px 0 4px var(--space-7);display:flex;flex-direction:column;gap:2px;animation:fadeIn var(--transition-fast)}.sidebar-phase{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:var(--space-2);padding:3px var(--space-3) 3px 0;font-size:var(--text-xs);color:var(--text-muted)}.sidebar-phase-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-phase-counter{font-weight:var(--weight-semibold);font-size:10px;color:var(--text-muted);min-width:28px;text-align:right}.sidebar-phase-bar{width:36px;height:4px;background:var(--bg-hover);border-radius:var(--radius-full);overflow:hidden}.sidebar-phase-bar-fill{height:100%;background:var(--accent);border-radius:var(--radius-full);transition:width var(--transition-base)}.sidebar-footer{padding:var(--space-3) var(--space-4);border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}.sidebar-user{display:flex;align-items:center;gap:var(--space-2)}.sidebar-user-name{font-size:var(--text-sm);font-weight:var(--weight-medium)}.sidebar-logout{background:none;border:none;color:var(--text-muted);font-size:var(--text-sm);cursor:pointer;font-family:var(--font);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);transition:all var(--transition-fast)}.sidebar-logout:hover{color:var(--red);background:var(--red-bg)}.sidebar-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:90}.topbar{height:var(--topbar-h);background:var(--bg-surface);border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 var(--space-6);gap:var(--space-4);flex-shrink:0}.topbar-menu{display:none;background:none;border:none;cursor:pointer;flex-direction:column;gap:4px;padding:var(--space-1)}.topbar-menu span{display:block;width:18px;height:2px;background:var(--text-secondary);border-radius:1px}.topbar-breadcrumb{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--text-secondary);min-width:0}.topbar-breadcrumb-team{font-weight:var(--weight-medium);color:var(--text-muted)}.topbar-breadcrumb-sep{color:var(--text-muted);font-size:var(--text-xs)}.topbar-breadcrumb-page{font-weight:var(--weight-semibold);color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar-title{font-size:var(--text-lg);font-weight:var(--weight-semibold);letter-spacing:-.02em;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar-search{width:220px;padding:7px var(--space-3);background:var(--bg-inset);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-size:var(--text-sm);font-family:var(--font);outline:none;transition:all var(--transition-fast)}.topbar-search::placeholder{color:var(--text-muted)}.topbar-search:focus{border-color:var(--accent);box-shadow:var(--focus-ring);background:var(--bg-surface)}.topbar-actions{display:flex;align-items:center;gap:var(--space-2);margin-left:auto}.topbar-icon-btn{background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:var(--space-2);border-radius:var(--radius-sm);transition:all var(--transition-fast);display:flex;align-items:center;justify-content:center}.topbar-icon-btn:hover{background:var(--bg-hover);color:var(--text)}.topbar-user-wrap{position:relative}.topbar-user-btn{background:none;border:none;cursor:pointer;padding:2px;border-radius:50%;transition:all var(--transition-fast)}.topbar-user-btn:hover{box-shadow:0 0 0 2px var(--accent-bg)}.topbar-user-dropdown{position:absolute;top:calc(100% + 6px);right:0;width:200px;background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-md);z-index:100;overflow:hidden;animation:fadeIn var(--transition-fast)}.topbar-user-info{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border)}.topbar-user-name{font-size:var(--text-sm);font-weight:var(--weight-semibold)}.topbar-user-email{font-size:var(--text-xs);color:var(--text-muted);overflow:hidden;text-overflow:ellipsis}.topbar-user-dropdown-item{display:flex;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-4);background:none;border:none;color:var(--text-secondary);font-size:var(--text-sm);font-family:var(--font);cursor:pointer;transition:all var(--transition-fast)}.topbar-user-dropdown-item:hover{background:var(--bg-hover);color:var(--text)}.topbar-user-dropdown-item--danger:hover{background:var(--red-bg);color:var(--red)}.notif-wrap{position:relative}.notif-bell{background:none;border:none;color:var(--text-secondary);cursor:pointer;position:relative;padding:var(--space-2);border-radius:var(--radius-sm);transition:all var(--transition-fast)}.notif-bell:hover{background:var(--bg-hover);color:var(--text)}.notif-badge{position:absolute;top:2px;right:2px;background:var(--red);color:#fff;font-size:10px;font-weight:var(--weight-bold);min-width:16px;height:16px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;padding:0 4px}.notif-dropdown{position:fixed;top:calc(var(--topbar-h) + 4px);right:var(--space-4);width:360px;max-height:min(420px,calc(100vh - var(--topbar-h) - 20px));background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-md);z-index:150;overflow:hidden;display:flex;flex-direction:column;animation:fadeIn var(--transition-fast),slideDown var(--transition-base)}.notif-dropdown-header{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;font-size:var(--text-sm);font-weight:var(--weight-semibold)}.notif-mark-all{background:none;border:none;color:var(--accent);font-size:var(--text-sm);cursor:pointer;font-family:var(--font)}.notif-mark-all:hover{text-decoration:underline}.notif-list{overflow-y:auto;flex:1}.notif-empty{padding:var(--space-8) var(--space-4);text-align:center;color:var(--text-muted);font-size:var(--text-sm);display:flex;flex-direction:column;align-items:center}.notif-item{display:flex;gap:10px;align-items:flex-start;padding:var(--space-3) var(--space-4);width:100%;background:none;border:none;text-align:left;cursor:pointer;border-bottom:1px solid var(--border-light);transition:background var(--transition-fast);color:var(--text);font-family:var(--font)}.notif-item:hover{background:var(--bg-hover)}.notif-item--unread{background:var(--accent-bg)}.notif-item-dot{width:8px;padding-top:6px;flex-shrink:0}.notif-item-dot span{display:block;width:8px;height:8px;background:var(--accent);border-radius:50%}.notif-item-content{flex:1;min-width:0}.notif-item-msg{font-size:var(--text-sm);line-height:1.4}.notif-item-time{font-size:var(--text-xs);color:var(--text-muted);margin-top:2px}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--space-6);background:var(--bg);background-image:radial-gradient(ellipse 60% 50% at 50% 0%,var(--accent-bg) 0%,transparent 70%)}.auth-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-8) 36px;width:100%;max-width:400px;box-shadow:var(--shadow-md)}.auth-logo{font-size:var(--text-2xl);font-weight:var(--weight-extrabold);letter-spacing:-.04em;background:linear-gradient(135deg,var(--accent),#a78bfa);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;text-align:center;margin-bottom:var(--space-6)}.auth-title{font-size:var(--text-xl);font-weight:var(--weight-bold);text-align:center;margin-bottom:var(--space-5)}.auth-form{display:flex;flex-direction:column;gap:var(--space-3)}.auth-error{background:var(--red-bg);color:var(--red);padding:var(--space-3) var(--space-3);border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:var(--weight-medium)}.auth-switch{text-align:center;margin-top:var(--space-4);font-size:var(--text-sm);color:var(--text-secondary)}.field{display:flex;flex-direction:column;gap:var(--space-1)}.field-label{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--text-secondary)}.field-input{padding:10px var(--space-3);background:var(--bg-inset);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-size:var(--text-base);font-family:var(--font);outline:none;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.field-input:focus{border-color:var(--accent);box-shadow:var(--focus-ring)}.field-input:disabled{opacity:.5;cursor:not-allowed}.field-input--sm{padding:6px 10px;font-size:var(--text-sm)}.field-select{padding:10px var(--space-3);background:var(--bg-inset);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-size:var(--text-base);font-family:var(--font);outline:none;cursor:pointer;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.field-select:focus{border-color:var(--accent);box-shadow:var(--focus-ring)}.field-select:disabled{opacity:.5;cursor:not-allowed}.field-select--sm{padding:6px 10px;font-size:var(--text-sm)}.field-error{font-size:var(--text-xs);color:var(--red);font-weight:var(--weight-medium)}.btn{padding:10px 18px;border:none;border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:var(--weight-semibold);font-family:var(--font);cursor:pointer;transition:all var(--transition-fast);display:inline-flex;align-items:center;justify-content:center;gap:6px}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--sm{padding:6px var(--space-3);font-size:var(--text-sm)}.btn--full{width:100%}.btn--accent{background:var(--accent);color:#fff}.btn--accent:hover:not(:disabled){background:var(--accent-hover);box-shadow:var(--shadow-sm)}.btn--danger{background:var(--red-bg);color:var(--red)}.btn--danger:hover:not(:disabled){background:var(--red);color:#fff}.btn--ghost{background:transparent;color:var(--text-secondary)}.btn--ghost:hover:not(:disabled){background:var(--bg-hover);color:var(--text)}.btn--outline{background:transparent;color:var(--text-secondary);border:1px solid var(--border)}.btn--outline:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.btn--loading{position:relative;color:transparent!important}.btn--loading:after{content:"";position:absolute;width:14px;height:14px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .5s linear infinite}.badge{display:inline-flex;align-items:center;padding:2px var(--space-2);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:.02em}.badge--yellow{background:var(--yellow-bg);color:var(--yellow)}.badge--green{background:var(--green-bg);color:var(--green)}.badge--red{background:var(--red-bg);color:var(--red)}.badge--blue{background:var(--blue-bg);color:var(--blue)}.badge--subtle{background:var(--bg-hover);color:var(--text-secondary)}.avatar{width:32px;height:32px;border-radius:50%;background:var(--accent-bg);color:var(--accent);display:flex;align-items:center;justify-content:center;font-size:var(--text-base);font-weight:var(--weight-bold);flex-shrink:0}.avatar--xs{width:22px;height:22px;font-size:10px}.avatar--sm{width:26px;height:26px;font-size:var(--text-xs)}.board-page{display:flex;flex-direction:column;gap:var(--space-4)}.board-header{display:flex;align-items:center;gap:var(--space-3)}.board-title{font-size:var(--text-xl);font-weight:var(--weight-bold);letter-spacing:-.02em}.board-filters{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center}.phase-groups{display:flex;flex-direction:column;gap:var(--space-4)}.phase-group{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.phase-group-header{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);background:var(--bg-inset);border-bottom:1px solid var(--border)}.phase-group-name{font-size:var(--text-sm);font-weight:var(--weight-bold);flex:1}.phase-group-count{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--text-muted);background:var(--bg-hover);padding:1px 7px;border-radius:var(--radius-full)}.phase-group-progress{font-size:10px;color:var(--text-muted)}.phase-group-tasks{display:flex;flex-direction:column}.phase-group-add{padding:var(--space-2) var(--space-4);border-top:1px solid var(--border-light)}.phase-add-btn{width:100%;padding:6px;border:1px dashed var(--border);border-radius:var(--radius-sm);background:none;color:var(--text-muted);font-size:var(--text-sm);font-family:var(--font);cursor:pointer;transition:all var(--transition-fast)}.phase-add-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-bg)}.phase-add-form{display:flex}.board-columns{display:flex;gap:var(--space-4);overflow-x:auto;padding-bottom:var(--space-4);min-height:300px}.phase-column{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);min-width:280px;width:280px;flex-shrink:0;display:flex;flex-direction:column;max-height:calc(100vh - var(--topbar-h) - 160px)}.phase-header{padding:var(--space-3) var(--space-4) 10px;display:flex;align-items:center;gap:var(--space-2);border-bottom:1px solid var(--border)}.phase-name{font-size:var(--text-sm);font-weight:var(--weight-bold);flex:1}.phase-count{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--text-muted);background:var(--bg-hover);padding:1px 7px;border-radius:var(--radius-full)}.phase-progress{font-size:10px;color:var(--text-muted)}.phase-tasks{flex:1;overflow-y:auto;padding:var(--space-2);display:flex;flex-direction:column;gap:6px}.phase-add{padding:var(--space-2);border-top:1px solid var(--border)}.task-row{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);cursor:pointer;transition:background var(--transition-fast);border-bottom:1px solid var(--border-light);min-height:44px}.task-row:last-child{border-bottom:none}.task-row:hover{background:var(--bg-hover)}.task-row--selected{background:var(--accent-bg)}.task-row--overdue{border-left:3px solid var(--red)}.task-row-priority{width:8px;height:8px;border-radius:50%;flex-shrink:0}.task-row-title{flex:1;font-size:var(--text-sm);font-weight:var(--weight-semibold);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.task-row-status{flex-shrink:0}.task-row-status .badge{font-size:10px;padding:2px 8px}.task-row-assignee{flex-shrink:0}.task-row-due{font-size:var(--text-xs);color:var(--text-muted);flex-shrink:0;white-space:nowrap}.task-row-due--late{color:var(--red);font-weight:var(--weight-semibold)}.task-row-comments{font-size:var(--text-xs);color:var(--text-muted);display:flex;align-items:center;gap:2px;flex-shrink:0}.task-card{background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px var(--space-3);cursor:pointer;transition:all var(--transition-fast)}.task-card:hover{border-color:var(--accent);box-shadow:var(--shadow-sm)}.task-card--overdue{border-left:3px solid var(--red)}.task-card-top{display:flex;align-items:center;gap:var(--space-2);margin-bottom:6px}.task-card-priority{width:6px;height:6px;border-radius:50%;flex-shrink:0}.task-card-title{font-size:var(--text-sm);font-weight:var(--weight-semibold);line-height:1.3;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.task-card-meta{display:flex;gap:6px;margin-bottom:var(--space-1)}.task-card-status,.task-card-assignee{flex:1;padding:3px 6px;background:var(--bg-inset);border:1px solid var(--border);border-radius:var(--radius-xs);color:var(--text-secondary);font-size:var(--text-xs);font-family:var(--font);cursor:pointer;outline:none}.task-card-status[data-status=DONE]{background:var(--green-bg);color:var(--green);border-color:transparent}.task-card-status[data-status=DOING]{background:var(--blue-bg);color:var(--blue);border-color:transparent}.task-card-status[data-status=PAUSED]{background:var(--yellow-bg);color:var(--yellow)}.task-card-status[data-status=REJECTED]{background:var(--red-bg);color:var(--red);border-color:transparent}.task-card-bottom{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--text-muted)}.task-card-due--late{color:var(--red);font-weight:var(--weight-semibold)}.task-card-comments{display:flex;align-items:center;gap:2px}.detail-panel{display:flex;flex-direction:column;height:100%}.detail-panel-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border);flex-shrink:0}.detail-panel-header-title{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--text-secondary)}.detail-panel-close{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:var(--space-1);border-radius:var(--radius-sm);font-size:18px;line-height:1;transition:all var(--transition-fast)}.detail-panel-close:hover{background:var(--bg-hover);color:var(--text)}.detail-panel-body{flex:1;overflow-y:auto;padding:var(--space-5);display:flex;flex-direction:column;gap:var(--space-5)}.detail-panel-title-input{background:none;border:none;font-size:var(--text-lg);font-weight:var(--weight-bold);color:var(--text);padding:0;outline:none;font-family:var(--font);width:100%;letter-spacing:-.01em}.detail-panel-title-input::placeholder{color:var(--text-muted)}.detail-panel-properties{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}.detail-panel-field{display:flex;flex-direction:column;gap:var(--space-1)}.detail-panel-field-label{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.detail-panel-field .field-select,.detail-panel-field .field-input{padding:7px 10px;font-size:var(--text-sm)}.detail-panel-desc{background:var(--bg-inset);border:1px solid var(--border);border-radius:var(--radius-sm);padding:var(--space-3);color:var(--text);font-size:var(--text-sm);font-family:var(--font);resize:vertical;outline:none;min-height:80px;transition:border-color var(--transition-fast);line-height:1.5}.detail-panel-desc:focus{border-color:var(--accent);box-shadow:var(--focus-ring)}.detail-panel-footer{padding:var(--space-4) var(--space-5);border-top:1px solid var(--border);display:flex;gap:var(--space-2);flex-shrink:0}.detail-panel-footer .btn{flex:1}.detail-panel-info{display:flex;flex-direction:column;gap:2px;color:var(--text-muted);font-size:var(--text-xs);padding-top:var(--space-3);border-top:1px solid var(--border-light)}.tabs{display:flex;gap:0;border-bottom:1px solid var(--border);overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.task-modal-tabs,.my-tasks-tabs{display:flex;gap:0;border-bottom:1px solid var(--border)}.tab-btn{padding:var(--space-2) var(--space-4);background:none;border:none;color:var(--text-muted);font-size:var(--text-sm);font-weight:var(--weight-medium);cursor:pointer;border-bottom:2px solid transparent;transition:all var(--transition-fast);font-family:var(--font);margin-bottom:-1px;white-space:nowrap;flex-shrink:0}.tab-btn:hover{color:var(--text)}.tab-btn--active{color:var(--accent);border-bottom-color:var(--accent)}.home-project-group{margin-bottom:var(--space-2)}.home-project-group-header{font-size:var(--text-base);font-weight:var(--weight-bold);color:var(--text);padding:var(--space-3) 0 var(--space-1);border-bottom:2px solid var(--accent);margin-bottom:var(--space-2)}.comment-thread{display:flex;flex-direction:column;gap:var(--space-3)}.comment-item{display:flex;gap:var(--space-3);align-items:flex-start}.comment-body{flex:1;min-width:0}.comment-header{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);margin-bottom:2px}.comment-header strong{font-weight:var(--weight-semibold)}.comment-time{font-size:var(--text-xs);color:var(--text-muted)}.comment-text{font-size:var(--text-sm);color:var(--text-secondary);line-height:1.5}.comment-form{display:flex;gap:var(--space-2);margin-top:var(--space-2)}.comment-input{flex:1;padding:var(--space-2) var(--space-3);background:var(--bg-inset);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-size:var(--text-sm);font-family:var(--font);outline:none;transition:border-color var(--transition-fast)}.comment-input:focus{border-color:var(--accent);box-shadow:var(--focus-ring)}.activity-list{display:flex;flex-direction:column;gap:0}.activity-item{display:flex;align-items:flex-start;gap:var(--space-3);font-size:var(--text-sm);color:var(--text-secondary);padding:var(--space-2) 0;border-bottom:1px solid var(--border-light)}.activity-item:last-child{border-bottom:none}.activity-user{font-weight:var(--weight-semibold);color:var(--text)}.activity-action{background:var(--bg-hover);padding:1px 6px;border-radius:var(--radius-xs);font-size:var(--text-xs);font-weight:var(--weight-medium)}.activity-detail{color:var(--text-muted)}.activity-time{margin-left:auto;color:var(--text-muted);font-size:var(--text-xs);flex-shrink:0;white-space:nowrap}.activity-empty{color:var(--text-muted);font-size:var(--text-sm);padding:var(--space-4) 0;text-align:center}.modal-overlay{position:fixed;top:var(--topbar-h);left:0;right:0;bottom:0;background:#0006;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:200;padding:var(--space-3);animation:fadeIn var(--transition-fast)}.modal-panel{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:440px;max-height:calc(100vh - var(--topbar-h) - var(--space-3) * 2);display:flex;flex-direction:column;overflow:hidden;box-shadow:var(--shadow-lg);outline:none;animation:scaleIn var(--transition-base)}.modal-panel--wide{max-width:800px}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-5) var(--space-3);flex-shrink:0;border-bottom:1px solid var(--border)}.modal-title{font-size:var(--text-lg);font-weight:var(--weight-bold)}.modal-close{background:none;border:none;color:var(--text-muted);font-size:18px;cursor:pointer;padding:var(--space-1);border-radius:var(--radius-sm);transition:all var(--transition-fast)}.modal-close:hover{background:var(--bg-hover);color:var(--text)}.modal-body{padding:var(--space-4) var(--space-5) var(--space-5);overflow-y:auto;flex:1;min-height:0}.quick-add-list{display:flex;flex-direction:column;gap:var(--space-2)}.quick-add-option{display:block;width:100%;text-align:left;padding:var(--space-3) var(--space-4);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font-size:var(--text-base);font-family:var(--font);font-weight:var(--weight-medium);cursor:pointer;transition:border-color var(--transition-fast),background var(--transition-fast)}.quick-add-option:hover{border-color:var(--accent);background:var(--bg-surface)}.quick-add-option:active{transform:scale(.98)}.quick-add-form{display:flex;flex-direction:column;gap:var(--space-3)}.quick-add-context{display:flex;gap:var(--space-2)}.task-modal-grid{display:grid;grid-template-columns:1fr 260px;gap:var(--space-6);min-height:400px}.task-modal-main{display:flex;flex-direction:column;gap:var(--space-4)}.task-modal-title-input{background:none;border:none;font-size:var(--text-xl);font-weight:var(--weight-bold);color:var(--text);padding:0;outline:none;font-family:var(--font)}.task-modal-desc{background:var(--bg-inset);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px var(--space-3);color:var(--text);font-size:var(--text-base);font-family:var(--font);resize:vertical;outline:none;min-height:80px;transition:border-color var(--transition-fast)}.task-modal-desc:focus{border-color:var(--accent)}.task-modal-sidebar{display:flex;flex-direction:column;gap:10px;padding-left:var(--space-6);border-left:1px solid var(--border)}.task-modal-info{display:flex;flex-direction:column;gap:2px;padding-top:var(--space-3);border-top:1px solid var(--border);color:var(--text-muted);font-size:var(--text-xs)}.my-tasks-page{display:flex;flex-direction:column;gap:var(--space-4)}.my-tasks-list{display:flex;flex-direction:column;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.my-task-row{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);cursor:pointer;transition:background var(--transition-fast);border-bottom:1px solid var(--border-light);min-height:44px}.my-task-row:last-child{border-bottom:none}.my-task-row:hover{background:var(--bg-hover)}.my-task-row--selected{background:var(--accent-bg)}.my-task-row--overdue{border-left:3px solid var(--red)}.my-task-title{flex:1;font-size:var(--text-sm);font-weight:var(--weight-semibold);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.my-task-project{font-size:var(--text-xs);color:var(--text-muted);background:var(--bg-hover);padding:2px var(--space-2);border-radius:var(--radius-full)}.settings-page{max-width:700px;display:flex;flex-direction:column;gap:var(--space-6)}.settings-title{font-size:var(--text-xl);font-weight:var(--weight-bold)}.settings-section{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-5)}.settings-section--danger{border-color:var(--red);border-style:dashed}.settings-section h3{font-size:var(--text-base);font-weight:var(--weight-bold);margin-bottom:var(--space-3)}.settings-section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-3)}.settings-section-header h3{margin-bottom:0}.settings-form{display:flex;flex-direction:column;gap:var(--space-3)}.settings-form .field-label{margin-bottom:calc(var(--space-1) * -1)}.settings-form .btn{align-self:flex-start;margin-top:var(--space-1)}.settings-msg{padding:var(--space-3);border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:var(--weight-medium)}.settings-msg--error{background:var(--red-bg);color:var(--red)}.settings-msg--success{background:var(--green-bg);color:var(--green)}.settings-form-row{display:flex;gap:var(--space-2);align-items:center}.settings-form-row .field-input{flex:1}.member-list{display:flex;flex-direction:column;gap:var(--space-2)}.member-row{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) 0;border-bottom:1px solid var(--border-light)}.member-row:last-child{border-bottom:none}.member-info{flex:1}.member-name{font-size:var(--text-sm);font-weight:var(--weight-semibold)}.member-email{font-size:var(--text-sm);color:var(--text-muted)}.invite-list{display:flex;flex-direction:column;gap:var(--space-2)}.invite-row{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) 0;border-bottom:1px solid var(--border-light)}.invite-code{background:var(--bg-inset);padding:var(--space-1) var(--space-3);border-radius:var(--radius-xs);font-size:var(--text-base);font-weight:var(--weight-bold);letter-spacing:.05em;color:var(--accent)}.invite-meta{flex:1;font-size:var(--text-sm);color:var(--text-muted)}.settings-toggle-row{display:flex;align-items:center;justify-content:space-between;font-size:var(--text-sm)}.toggle{width:44px;height:24px;background:var(--bg-hover);border:1px solid var(--border);border-radius:var(--radius-full);cursor:pointer;position:relative;transition:all var(--transition-base)}.toggle--on{background:var(--accent);border-color:var(--accent)}.toggle-knob{position:absolute;top:2px;left:2px;width:18px;height:18px;background:#fff;border-radius:50%;transition:transform var(--transition-base);box-shadow:var(--shadow-xs)}.toggle--on .toggle-knob{transform:translate(20px)}.inline-form{display:flex;gap:var(--space-2);margin-top:var(--space-2)}.phase-list-settings{display:flex;flex-direction:column;gap:var(--space-1);margin-bottom:var(--space-3)}.phase-row{display:flex;align-items:center;gap:var(--space-3);padding:6px 0;font-size:var(--text-sm);border-bottom:1px solid var(--border-light)}.phase-row span:first-child{flex:1;font-weight:var(--weight-medium)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:300px;text-align:center;color:var(--text-secondary);padding:var(--space-8)}.empty-state-icon{color:var(--text-muted);opacity:.4;margin-bottom:var(--space-4)}.empty-state h2{font-size:18px;font-weight:var(--weight-bold);margin-bottom:var(--space-2);color:var(--text)}.empty-state p{font-size:var(--text-sm);max-width:320px;line-height:1.5}.error-state{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;text-align:center;color:var(--text-secondary);padding:var(--space-8)}.error-state-icon{margin-bottom:var(--space-4)}.error-state h2{font-size:var(--text-xl);font-weight:var(--weight-bold);margin-bottom:var(--space-2);color:var(--text)}.error-state p{font-size:var(--text-sm);max-width:360px;line-height:1.5}.page-loader{display:flex;align-items:center;justify-content:center;gap:var(--space-3);min-height:200px;color:var(--text-muted);font-size:var(--text-sm)}.loader-spinner{width:20px;height:20px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .6s linear infinite}.text-muted{color:var(--text-muted);font-size:var(--text-sm)}.skeleton{background:var(--bg-hover);border-radius:var(--radius-sm);animation:pulse 1.5s ease-in-out infinite}.skeleton-header{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4)}.skeleton-filters{display:flex;gap:var(--space-2);margin-bottom:var(--space-4)}.skeleton-phase{display:flex;flex-direction:column;gap:1px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;margin-bottom:var(--space-3)}.phase-group-empty{padding:12px 16px;color:var(--text-muted);font-size:var(--text-sm)}.notifications-page{max-width:700px;display:flex;flex-direction:column;gap:var(--space-4)}.notifications-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.notifications-title{font-size:var(--text-xl);font-weight:var(--weight-bold)}.notifications-list{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.notification-card{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-4);width:100%;background:none;border:none;border-bottom:1px solid var(--border-light);cursor:pointer;transition:background var(--transition-fast);text-align:left;color:var(--text);font-family:var(--font)}.notification-card:last-child{border-bottom:none}.notification-card:hover{background:var(--bg-hover)}.notification-card--unread,.notification-card--unread:hover{background:var(--accent-bg)}.notification-icon{width:36px;height:36px;border-radius:50%;background:var(--bg-hover);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--text-muted)}.notification-icon--unread{background:var(--accent-bg);color:var(--accent)}.notification-body{flex:1;min-width:0}.notification-msg{font-size:var(--text-sm);line-height:1.4}.notification-time{font-size:var(--text-xs);color:var(--text-muted);margin-top:2px}.notification-dot{width:8px;height:8px;border-radius:50%;background:var(--accent);flex-shrink:0;margin-top:6px}.notif-see-all{display:block;width:100%;padding:var(--space-3) var(--space-4);border:none;border-top:1px solid var(--border);background:none;color:var(--accent);font-size:var(--text-sm);font-family:var(--font);font-weight:var(--weight-medium);cursor:pointer;text-align:center;transition:background var(--transition-fast)}.notif-see-all:hover{background:var(--bg-hover)}.my-tasks-header{margin-bottom:var(--space-1)}.my-tasks-title{font-size:var(--text-xl);font-weight:var(--weight-bold)}.activity-dot{width:8px;height:8px;border-radius:50%;background:var(--border);flex-shrink:0;margin-top:5px}.activity-content{flex:1;min-width:0;font-size:var(--text-sm);line-height:1.4}.activity-action-text{color:var(--text-secondary)}@media(max-width:1023px){.detail-panel-wrapper{position:fixed;top:var(--topbar-h);right:0;height:calc(100vh - var(--topbar-h));z-index:150;box-shadow:var(--shadow-lg);animation:slideInRight var(--transition-base)}.detail-overlay{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#0000004d;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:140;animation:fadeIn var(--transition-fast)}}@media(max-width:767px){.sidebar{position:fixed;left:0;top:0;z-index:100;transform:translate(-100%);transition:transform .25s ease;box-shadow:none}.sidebar--open{transform:translate(0);box-shadow:var(--shadow-lg)}.sidebar-close,.sidebar-overlay{display:block}.topbar-menu{display:flex}.layout-content{padding:var(--space-4)}.topbar{padding:0 var(--space-4)}.topbar-search{display:none}.detail-panel-wrapper{position:fixed;top:var(--topbar-h);left:0;right:0;bottom:0;width:100%;height:calc(100vh - var(--topbar-h));z-index:150;border-left:none;border-radius:0;animation:slideUp var(--transition-base)}.board-columns{gap:var(--space-3)}.phase-column{min-width:260px;width:260px}.task-modal-grid{grid-template-columns:1fr}.task-modal-sidebar{padding-left:0;border-left:none;padding-top:var(--space-4);border-top:1px solid var(--border)}.modal-panel{max-height:calc(100vh - var(--topbar-h) - 56px - env(safe-area-inset-bottom,0px) - var(--space-3) * 2);max-width:100%;border-radius:var(--radius)}.modal-panel--wide{max-width:100%}.notif-dropdown{position:fixed;top:calc(var(--topbar-h) + 4px);left:16px;right:16px;width:auto}.member-row{flex-wrap:wrap}.my-task-row{flex-wrap:wrap;gap:6px}.my-task-project{order:10}.task-row{flex-wrap:wrap;gap:var(--space-2)}}@media(max-width:479px){.board-filters{flex-direction:column}.board-filters>*{width:100%}.auth-card{padding:var(--space-6) var(--space-5)}.detail-panel-properties{grid-template-columns:1fr}.inline-form{flex-direction:column}.invite-row{flex-wrap:wrap}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideDown{0%{transform:translateY(-8px)}to{transform:translateY(0)}}@keyframes slideInRight{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes scaleIn{0%{transform:scale(.95);opacity:0}to{transform:scale(1);opacity:1}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}:focus-visible{outline:none;box-shadow:var(--focus-ring)}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible{outline:none;box-shadow:var(--focus-ring)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.bottom-nav{display:none}@media(max-width:767px){.bottom-nav{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:90;background:var(--bg-surface);border-top:1px solid var(--border);padding:var(--space-1) 0;padding-bottom:calc(var(--space-1) + env(safe-area-inset-bottom,0px));justify-content:space-around;align-items:center;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);background:#ffffffeb}.bottom-nav-item{display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 4px;border-radius:var(--radius);color:var(--text-muted);font-size:10px;font-weight:var(--weight-medium);text-decoration:none;transition:color var(--transition-fast);-webkit-tap-highlight-color:transparent;position:relative}.bottom-nav-item svg{transition:transform var(--transition-fast)}.bottom-nav-item.active{color:var(--accent)}.bottom-nav-item.active svg{transform:scale(1.1)}.bottom-nav-item:active{transform:scale(.92)}.bottom-nav-add{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;background:var(--accent);color:#fff;border:none;cursor:pointer;box-shadow:0 2px 8px #0000002e;transition:transform var(--transition-fast),box-shadow var(--transition-fast);-webkit-tap-highlight-color:transparent;margin-top:-12px}.bottom-nav-add:active{transform:scale(.9)}.bottom-nav>*{flex:1;display:flex;justify-content:center}.layout-content{padding-bottom:calc(var(--space-4) + 72px + env(safe-area-inset-bottom,0px));max-height:calc(100vh - var(--topbar-h) - 56px - env(safe-area-inset-bottom,0px))}}[data-theme=dark] .bottom-nav{background:#13131deb}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .bottom-nav{background:#13131deb}}body{padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px)}html{overscroll-behavior:none}body{overscroll-behavior-y:none;-webkit-overflow-scrolling:touch}.sidebar-link,.bottom-nav-item,.topbar-menu,.topbar-icon-btn,.topbar-user-btn,.btn,.task-card{-webkit-user-select:none;user-select:none}a,button,[role=button],.task-card,.sidebar-link,.sidebar-project{-webkit-tap-highlight-color:transparent}@media(display-mode:standalone){.topbar{padding-top:env(safe-area-inset-top,0px);height:calc(var(--topbar-h) + env(safe-area-inset-top,0px))}.sidebar{padding-top:env(safe-area-inset-top,0px)}.layout-content{max-height:calc(100vh - var(--topbar-h) - env(safe-area-inset-top,0px))}.detail-panel-wrapper{top:calc(var(--topbar-h) + env(safe-area-inset-top,0px));height:calc(100vh - var(--topbar-h) - env(safe-area-inset-top,0px))}.auth-wrapper{padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}}@media(max-width:767px){.sidebar-link{padding:var(--space-3) var(--space-3);min-height:44px}.sidebar-project{padding:var(--space-2) var(--space-3);min-height:44px}.task-card{padding:var(--space-3)}.layout-content,.sidebar,.detail-panel-wrapper,.board-columns{-webkit-overflow-scrolling:touch}.layout-content::-webkit-scrollbar,.board-columns::-webkit-scrollbar{display:none}.layout-content,.board-columns{scrollbar-width:none}.layout-content{animation:fadeIn .15s ease}}.install-banner{position:fixed;bottom:80px;left:var(--space-4);right:var(--space-4);z-index:200;background:var(--accent);color:#fff;padding:var(--space-4);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);display:flex;align-items:center;gap:var(--space-3);animation:slideUp var(--transition-base)}.install-banner-text{flex:1}.install-banner-title{font-weight:var(--weight-bold);font-size:var(--text-md)}.install-banner-desc{font-size:var(--text-sm);opacity:.85;margin-top:2px}.install-banner-btn{background:#fff3;color:#fff;border:none;padding:var(--space-2) var(--space-4);border-radius:var(--radius);font-weight:var(--weight-semibold);font-size:var(--text-sm);cursor:pointer;white-space:nowrap;font-family:var(--font);transition:background var(--transition-fast)}.install-banner-btn:hover,.install-banner-btn:active{background:#ffffff59}.install-banner-close{background:none;border:none;color:#ffffffb3;cursor:pointer;font-size:18px;padding:var(--space-1);line-height:1}.push-toggle{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);background:var(--surface-2);border-radius:var(--radius-lg);margin-bottom:var(--space-4)}.push-toggle-text{display:flex;flex-direction:column;gap:2px}.push-toggle-label{font-weight:600;font-size:.95rem;color:var(--text-1)}.push-toggle-desc{font-size:.8rem;color:var(--text-3)}.toggle-switch{position:relative;width:48px;height:28px;border-radius:14px;background:var(--surface-3);border:none;cursor:pointer;padding:0;transition:background var(--transition-fast);flex-shrink:0}.toggle-switch--on{background:var(--accent)}.toggle-switch:disabled{opacity:.5;cursor:not-allowed}.toggle-switch-knob{position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;transition:transform var(--transition-fast);box-shadow:0 1px 3px #0003}.toggle-switch--on .toggle-switch-knob{transform:translate(20px)}.field-textarea{width:100%;padding:var(--space-sm) var(--space-md);border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-surface);color:var(--text);font-family:inherit;font-size:var(--text-sm);resize:vertical;min-height:100px;transition:border-color var(--transition-fast)}.field-textarea:focus{outline:none;border-color:var(--accent)}.layout-content:has(.notes-page){padding:0!important;overflow:hidden}.notes-page{display:flex;flex-direction:row;height:100%;overflow:hidden;position:relative}.notes-sidebar{width:300px;min-width:300px;display:flex;flex-direction:column;background:#ffffffb8;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border-right:1px solid var(--border-light);overflow:hidden}.notes-sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-4) var(--space-2)}.notes-sidebar-title{font-size:var(--text-xl);font-weight:var(--weight-bold);color:var(--text);margin:0}.notes-new-btn{width:34px;height:34px;border-radius:var(--radius-full);border:none;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background var(--transition-fast),transform var(--transition-fast);flex-shrink:0}.notes-new-btn:hover{background:var(--accent-hover);transform:scale(1.05)}.notes-new-btn:active{transform:scale(.95)}.notes-search-wrap{position:relative;padding:var(--space-2) var(--space-4)}.notes-search-icon{position:absolute;left:calc(var(--space-4) + 10px);top:50%;transform:translateY(-50%);color:var(--text-muted);pointer-events:none}.notes-search{width:100%;padding:8px 12px 8px 34px;border:none;border-radius:var(--radius);background:var(--bg-inset);font-size:var(--text-sm);color:var(--text);outline:none;transition:background var(--transition-fast)}.notes-search::placeholder{color:var(--text-muted)}.notes-search:focus{background:var(--bg-hover)}.notes-list{flex:1;overflow-y:auto;padding:var(--space-1) var(--space-2)}.notes-group{margin-bottom:var(--space-2)}.notes-group-label{font-size:var(--text-xs);font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);padding:var(--space-2) var(--space-2) var(--space-1)}.notes-row{display:flex;flex-direction:column;gap:2px;width:100%;text-align:left;padding:var(--space-3);border:none;border-radius:var(--radius-lg);background:transparent;cursor:pointer;transition:background var(--transition-fast);font-family:inherit}.notes-row:hover{background:var(--bg-hover)}.notes-row--active,.notes-row--active:hover{background:var(--accent-bg)}.notes-row-title{font-size:var(--text-base);font-weight:var(--weight-semibold);color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;gap:var(--space-1)}.notes-pin-icon{color:var(--accent);flex-shrink:0}.notes-row-preview{font-size:13px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}.notes-row-meta{font-size:var(--text-xs);color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.notes-empty{text-align:center;color:var(--text-muted);font-size:var(--text-sm);padding:var(--space-8) var(--space-4)}.notes-detail{flex:1;display:flex;flex-direction:column;background:var(--bg-surface);overflow-y:auto;min-width:0}.notes-detail-topbar{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border-light);flex-shrink:0}.notes-back-btn{display:none;align-items:center;gap:var(--space-1);background:none;border:none;color:var(--accent);font-size:var(--text-sm);font-weight:var(--weight-medium);cursor:pointer;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);font-family:inherit}.notes-back-btn:hover{background:var(--accent-bg)}.notes-detail-actions{display:flex;align-items:center;gap:var(--space-2);margin-left:auto}.notes-pin-toggle{cursor:pointer;display:flex;align-items:center}.notes-pin-btn{color:var(--text-muted);transition:color var(--transition-fast),transform var(--transition-fast)}.notes-pin-btn--active{color:var(--accent)}.notes-pin-btn-wrap{background:none;border:none;cursor:pointer;padding:var(--space-1);border-radius:var(--radius-sm);color:var(--text-muted);display:flex;align-items:center;transition:color var(--transition-fast),background var(--transition-fast)}.notes-pin-btn-wrap:hover{background:var(--bg-hover)}.notes-pin-btn-wrap--active{color:var(--accent)}.notes-viewer,.notes-editor{display:flex;flex-direction:column;flex:1;min-height:0}.notes-view-title{font-size:var(--text-2xl);font-weight:var(--weight-bold);color:var(--text);margin:0;padding:var(--space-5) var(--space-6) var(--space-2);line-height:1.2}.notes-view-meta{font-size:var(--text-xs);color:var(--text-muted);padding:0 var(--space-6) var(--space-4)}.notes-view-content{font-size:var(--text-md);color:var(--text);line-height:1.7;padding:0 var(--space-6) var(--space-6);white-space:pre-wrap;max-width:680px;flex:1;overflow-y:auto}.notes-title-input{font-size:var(--text-2xl);font-weight:var(--weight-bold);color:var(--text);border:none;outline:none;background:transparent;padding:var(--space-5) var(--space-6) var(--space-2);font-family:inherit;width:100%}.notes-title-input::placeholder{color:var(--text-muted)}.notes-content-input{flex:1;font-size:var(--text-md);color:var(--text);line-height:1.7;border:none;outline:none;background:transparent;padding:var(--space-2) var(--space-6) var(--space-6);resize:none;font-family:inherit;max-width:680px;min-height:200px}.notes-content-input::placeholder{color:var(--text-muted)}.notes-empty-detail{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);color:var(--text-muted);font-size:var(--text-md)}.notes-empty-detail svg{opacity:.3}[data-theme=dark] .notes-sidebar{background:#13131dc7}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .notes-sidebar{background:#13131dc7}}@media(max-width:767px){.notes-page{flex-direction:column;height:100%}.notes-sidebar{width:100%;min-width:100%;flex:1;border-right:none;display:none}.notes-sidebar--visible{display:flex}.notes-detail{flex:1;display:none;min-height:0}.notes-detail--visible,.notes-back-btn{display:flex}.notes-view-title,.notes-view-meta,.notes-view-content,.notes-title-input{padding-left:var(--space-4);padding-right:var(--space-4)}.notes-content-input{padding-left:var(--space-4);padding-right:var(--space-4);padding-bottom:calc(var(--space-6) + 56px + env(safe-area-inset-bottom,0px))}}.monitor-grid{display:grid;grid-template-columns:1fr;gap:var(--space-4)}@media(min-width:600px){.monitor-grid{grid-template-columns:repeat(2,1fr)}}@media(min-width:960px){.monitor-grid{grid-template-columns:repeat(3,1fr)}}.monitor-card{border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-4);background:var(--bg-surface);cursor:pointer;transition:box-shadow var(--transition-fast),border-color var(--transition-fast)}.monitor-card:hover{box-shadow:var(--shadow-sm)}.monitor-card--up{border-left:3px solid var(--green)}.monitor-card--down{border-left:3px solid var(--red)}.monitor-card--pending{border-left:3px solid var(--yellow)}.monitor-card-top{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-2)}.monitor-card-name{font-weight:var(--weight-semibold);font-size:var(--text-md);color:var(--text);flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.monitor-card-target{font-size:var(--text-xs);color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:var(--space-3)}.monitor-card-stats{display:flex;align-items:center;gap:var(--space-3);font-size:var(--text-xs);color:var(--text-secondary)}.monitor-card-paused{font-size:var(--text-xs);color:var(--yellow);font-weight:var(--weight-medium)}.monitor-card-status-dot{width:10px;height:10px;border-radius:var(--radius-full);flex-shrink:0}.monitor-card-status-dot--up{background:var(--green);animation:pulse-dot 2s infinite}.monitor-card-status-dot--down{background:var(--red)}.monitor-card-status-dot--pending{background:var(--yellow)}@keyframes pulse-dot{0%,to{box-shadow:0 0 #10b98166}50%{box-shadow:0 0 0 6px #10b98100}}.monitor-type-badge{font-size:var(--text-xs);font-weight:var(--weight-semibold);padding:1px 6px;border-radius:var(--radius-xs);flex-shrink:0}.monitor-type-badge--http{background:var(--blue-bg);color:var(--blue)}.monitor-type-badge--ping{background:var(--green-bg);color:var(--green)}.monitor-type-badge--port{background:var(--yellow-bg);color:var(--yellow)}.monitor-type-badge--dns{background:var(--accent-bg);color:var(--accent)}.monitor-type-badge--keyword{background:var(--red-bg);color:var(--red)}.monitor-type-badge--ssl{background:#10b9811a;color:#059669}.monitor-status-badge{font-size:var(--text-xs);font-weight:var(--weight-semibold);padding:2px 8px;border-radius:var(--radius-full)}.monitor-status-badge--up{background:var(--green-bg);color:var(--green)}.monitor-status-badge--down{background:var(--red-bg);color:var(--red)}.monitor-status-badge--pending{background:var(--yellow-bg);color:var(--yellow)}.monitor-detail{border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-5);background:var(--bg-surface)}.monitor-detail-header{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-2);flex-wrap:wrap}.monitor-detail-name{font-size:var(--text-lg);font-weight:var(--weight-bold);color:var(--text);margin:0}.monitor-detail-target{font-size:var(--text-sm);color:var(--text-muted);margin-bottom:var(--space-5)}.monitor-detail-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-3);margin-bottom:var(--space-5)}@media(min-width:600px){.monitor-detail-stats{grid-template-columns:repeat(4,1fr)}}.monitor-stat{display:flex;flex-direction:column;gap:2px;padding:var(--space-3);background:var(--bg-inset);border-radius:var(--radius-sm)}.monitor-stat-label{font-size:var(--text-xs);color:var(--text-muted)}.monitor-stat-value{font-size:var(--text-lg);font-weight:var(--weight-bold);color:var(--text)}.monitor-section-title{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--text-secondary);margin:0 0 var(--space-3) 0}.monitor-chart-section{margin-bottom:var(--space-5)}.monitor-chart{display:flex;align-items:flex-end;gap:2px;height:80px;padding:var(--space-2);background:var(--bg-inset);border-radius:var(--radius-sm)}.monitor-chart-bar{flex:1;min-width:3px;border-radius:2px 2px 0 0;transition:height .2s ease}.monitor-chart-bar--up{background:var(--green)}.monitor-chart-bar--down{background:var(--red)}.monitor-timeline-section{margin-bottom:var(--space-5)}.monitor-timeline{display:flex;gap:3px;flex-wrap:wrap}.monitor-timeline-dot{width:12px;height:12px;border-radius:2px}.monitor-timeline-dot--up{background:var(--green)}.monitor-timeline-dot--down{background:var(--red)}.monitor-alerts-section{margin-bottom:var(--space-5)}.monitor-alert-item{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) 0;font-size:var(--text-sm);border-bottom:1px solid var(--border-light)}.monitor-alert-add{display:flex;gap:var(--space-2);margin-top:var(--space-3)}.monitor-alert-add .field-input{flex:1}.monitor-alert-section{margin-bottom:var(--space-2)}.monitor-alert-label{font-size:var(--text-sm);color:var(--text-secondary);display:block;margin-bottom:var(--space-2)}.monitor-form{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-surface);margin-bottom:var(--space-5)}.monitor-form-row{display:flex;gap:var(--space-3)}.monitor-form-row .field-input{flex:1}.monitor-form-config{display:flex;flex-direction:column;gap:var(--space-3)}.monitor-detail-actions{display:flex;gap:var(--space-3);margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--border-light)}.bottom-nav-item{padding:var(--space-1) 0;min-width:0}.layout:has(.chat-page){height:100vh;height:100dvh;overflow:hidden}.layout-main:has(.chat-page){height:100vh;height:100dvh;overflow:hidden}.layout-content:has(.chat-page){padding:0!important;margin:0!important;overflow:hidden!important;min-height:0;flex:1;height:0}.chat-page{display:flex;height:100%;overflow:hidden;width:100%;position:relative;background:var(--bg)}.chat-sidebar{width:280px;min-width:280px;display:flex;flex-direction:column;background:var(--bg-surface);border-right:1px solid var(--border-light);overflow:hidden}.chat-sidebar-header{padding:var(--space-3);display:flex;flex-direction:column;gap:var(--space-2);border-bottom:1px solid var(--border-light)}.chat-sidebar-actions{display:flex;gap:var(--space-2)}.chat-search{font-size:var(--text-sm)!important}.chat-channel-list{flex:1;overflow-y:auto;padding:var(--space-2) 0}.chat-channel-group-title{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);padding:var(--space-3) var(--space-3) var(--space-1)}.chat-channel-item{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);cursor:pointer;transition:background var(--transition-fast);position:relative}.chat-channel-item:hover{background:var(--bg-hover)}.chat-channel-item--active{background:var(--accent-bg)}.chat-channel-item--unread .chat-channel-name{font-weight:700;color:var(--text)}.chat-channel-icon{font-size:var(--text-lg);color:var(--text-muted);width:24px;text-align:center;flex-shrink:0}.chat-channel-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.chat-channel-name{font-size:var(--text-sm);font-weight:500;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-channel-preview{font-size:11px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-unread-badge{background:var(--accent);color:#fff;font-size:10px;font-weight:700;min-width:18px;height:18px;border-radius:9px;display:flex;align-items:center;justify-content:center;padding:0 5px;flex-shrink:0}.chat-empty{padding:var(--space-4);text-align:center;color:var(--text-muted);font-size:var(--text-sm)}.chat-avatar-wrap{position:relative;flex-shrink:0}.chat-avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,var(--accent) 0%,#8b7dff 100%);color:#fff;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;flex-shrink:0}.chat-avatar--sm{width:28px;height:28px;font-size:10px}.chat-avatar--xs{width:22px;height:22px;font-size:9px}.chat-presence-dot{position:absolute;bottom:0;right:0;width:10px;height:10px;border-radius:50%;background:#34d399;border:2px solid var(--bg-surface)}.chat-main{flex:1;display:flex;flex-direction:column;min-width:0;overflow:hidden}.chat-header{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--bg-surface);border-bottom:1px solid var(--border-light);flex-shrink:0;min-height:52px}.chat-back-btn{display:none;background:none;border:none;padding:var(--space-1);cursor:pointer;color:var(--text-secondary);border-radius:var(--radius-sm)}.chat-header-info{flex:1;min-width:0}.chat-header-top{display:flex;align-items:center;gap:var(--space-2)}.chat-header-name{font-size:var(--text-base);font-weight:600}.chat-header-status{font-size:var(--text-xs);color:var(--text-muted)}.chat-header-status--online{color:#34d399}.chat-header-actions{display:flex;gap:var(--space-2)}.chat-messages{flex:1;overflow-y:auto;padding:var(--space-3) 0;display:flex;flex-direction:column}.chat-loading{padding:var(--space-6);text-align:center;color:var(--text-muted);font-size:var(--text-sm)}.chat-load-more{margin:var(--space-2) auto}.chat-date-separator{display:flex;align-items:center;justify-content:center;margin:var(--space-4) var(--space-4) var(--space-2)}.chat-date-separator span{font-size:11px;font-weight:600;color:var(--text-muted);background:var(--bg);padding:2px var(--space-3);border-radius:var(--radius-full);border:1px solid var(--border-light)}.chat-unread-separator{display:flex;align-items:center;margin:var(--space-2) var(--space-4);gap:var(--space-2)}.chat-unread-separator:before,.chat-unread-separator:after{content:"";flex:1;height:1px;background:var(--red)}.chat-unread-separator span{font-size:11px;font-weight:600;color:var(--red);white-space:nowrap}.chat-message{display:flex;padding:0 var(--space-4);margin-top:2px;position:relative}.chat-message:not(.chat-message--grouped){margin-top:var(--space-3)}.chat-message .chat-avatar-wrap,.chat-message .chat-avatar{display:none}.chat-message-body{position:relative;max-width:520px}.chat-message--own{flex-direction:row-reverse;padding-right:var(--space-4);padding-left:var(--space-8)}.chat-message-content{font-size:var(--text-sm);line-height:1.5;color:var(--text);background:var(--bg-surface);padding:var(--space-2) var(--space-3);border-radius:18px 18px 18px 4px;border:1px solid var(--border-light);word-break:break-word;white-space:pre-wrap}.chat-message--own .chat-message-content{background:var(--accent);color:#fff;border:none;border-radius:18px 18px 4px}.chat-message--flat{padding:var(--space-1) var(--space-4);gap:var(--space-3)}.chat-message--flat .chat-avatar-wrap,.chat-message--flat .chat-avatar{display:flex!important}.chat-message--flat .chat-message-content{background:none;border:none;padding:0;border-radius:0}.chat-message--flat .chat-message-body{max-width:none}.chat-message--flat.chat-message--grouped{padding-left:calc(var(--space-4) + 32px + var(--space-3))}.chat-message--flat:hover{background:var(--bg-hover)}.chat-message-content--flat{background:none!important;border:none!important;padding:0!important;border-radius:0!important}.chat-message-author{display:flex;align-items:baseline;gap:var(--space-2);margin-bottom:2px}.chat-message-name{font-size:var(--text-sm);font-weight:600;color:var(--text)}.chat-message-time{font-size:10px;color:var(--text-muted)}.chat-message--own .chat-message-name,.chat-message--own .chat-message-time{color:var(--text)}.chat-message-edited{font-size:10px;color:var(--text-muted);font-style:italic}.chat-message-time-inline{font-size:10px;color:var(--text-muted);margin-top:0;padding-left:2px;opacity:0;height:0;overflow:hidden;transition:opacity .15s,height .15s,margin-top .15s}.chat-message:hover .chat-message-time-inline{opacity:1;height:auto;margin-top:2px}.chat-message--own .chat-message-time-inline{color:var(--text-muted)}.chat-message-image{margin:var(--space-1) 0}.chat-message-image img{max-width:280px;max-height:300px;border-radius:var(--radius);cursor:pointer;object-fit:cover}.chat-read-receipt{font-size:11px;color:var(--text-muted);margin-top:2px;display:inline-block;text-align:right}.chat-read-receipt--read{color:var(--accent)}.chat-reply-preview{display:flex;flex-direction:column;gap:1px;padding:var(--space-1) var(--space-2);margin-bottom:var(--space-1);border-left:3px solid var(--accent);border-radius:0 var(--radius-sm) var(--radius-sm) 0;background:var(--accent-bg);cursor:pointer;font-size:var(--text-xs)}.chat-reply-preview:hover{background:#6c63ff1f}.chat-reply-author{font-weight:600;color:var(--accent)}.chat-reply-text{color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:250px}.chat-reply-bar{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);background:var(--accent-bg);border-left:3px solid var(--accent);font-size:var(--text-xs);flex-shrink:0}.chat-edit-bar{border-left-color:var(--yellow);background:var(--yellow-bg)}.chat-reply-bar-info{flex:1;display:flex;align-items:center;gap:var(--space-2);min-width:0}.chat-reply-bar-label{color:var(--accent);font-weight:600;white-space:nowrap}.chat-edit-bar .chat-reply-bar-label{color:var(--yellow)}.chat-reply-bar-name{font-weight:600;color:var(--text)}.chat-reply-bar-text{color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-reply-bar-close{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:var(--space-1);font-size:14px;border-radius:var(--radius-full);transition:background var(--transition-fast)}.chat-reply-bar-close:hover{background:var(--bg-hover)}.chat-msg-actions{position:absolute;top:-12px;right:var(--space-2);display:none;gap:2px;background:var(--bg-surface);border:1px solid var(--border-light);border-radius:var(--radius);padding:2px;box-shadow:var(--shadow-sm);z-index:5}.chat-message:hover .chat-msg-actions{display:flex}.chat-msg-action-btn{background:none;border:none;padding:4px 6px;cursor:pointer;color:var(--text-muted);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;transition:background var(--transition-fast),color var(--transition-fast)}.chat-msg-action-btn:hover{background:var(--bg-hover);color:var(--text)}.chat-msg-action-btn--danger:hover{color:var(--red);background:var(--red-bg)}.chat-reactions{display:flex;flex-wrap:wrap;gap:4px;margin-top:var(--space-1)}.chat-reaction-btn{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:var(--radius-full);border:1px solid var(--border-light);background:var(--bg);cursor:pointer;font-size:var(--text-xs);transition:border-color var(--transition-fast)}.chat-reaction-btn:hover{border-color:var(--accent)}.chat-reaction-btn--active{border-color:var(--accent);background:var(--accent-bg)}.chat-reaction-emoji{font-size:14px;line-height:1}.chat-reaction-count{font-size:11px;font-weight:600;color:var(--text-secondary)}.chat-reaction-add-btn{cursor:pointer}.chat-emoji-picker{position:absolute;bottom:100%;left:0;margin-bottom:var(--space-1);display:flex;gap:2px;background:var(--bg-surface);border:1px solid var(--border-light);border-radius:var(--radius);padding:4px;box-shadow:var(--shadow);z-index:10}.chat-emoji-option{background:none;border:none;font-size:18px;cursor:pointer;padding:4px;border-radius:var(--radius-sm);transition:background var(--transition-fast);line-height:1}.chat-emoji-option:hover{background:var(--bg-hover)}.chat-emoji-more{font-size:16px;font-weight:700;color:var(--text-muted)}.chat-thread-count{background:none;border:none;padding:2px var(--space-2);font-size:var(--text-xs);color:var(--accent);cursor:pointer;font-weight:600;display:inline-flex;align-items:center;gap:4px;border-radius:var(--radius-sm);transition:background var(--transition-fast);font-family:inherit}.chat-thread-count:hover{background:var(--accent-bg)}.chat-scroll-bottom{position:absolute;bottom:70px;right:var(--space-4);width:36px;height:36px;border-radius:50%;background:var(--bg-surface);border:1px solid var(--border-light);box-shadow:var(--shadow-sm);cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);transition:transform var(--transition-fast);z-index:10}.chat-scroll-bottom:hover{transform:scale(1.1)}.chat-scroll-badge{position:absolute;top:-6px;right:-6px;background:var(--accent);color:#fff;font-size:10px;font-weight:700;min-width:18px;height:18px;border-radius:9px;display:flex;align-items:center;justify-content:center;padding:0 4px}.chat-mention{color:var(--accent);font-weight:600;background:var(--accent-bg);padding:0 3px;border-radius:3px}.chat-mention-dropdown{position:absolute;bottom:100%;left:0;right:0;margin-bottom:var(--space-1);background:var(--bg-surface);border:1px solid var(--border-light);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;z-index:20}.chat-mention-option{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);width:100%;background:none;border:none;cursor:pointer;font-size:var(--text-sm);color:var(--text);text-align:left;font-family:inherit;transition:background var(--transition-fast)}.chat-mention-option:hover{background:var(--bg-hover)}.chat-typing{padding:var(--space-1) var(--space-4);font-size:var(--text-xs);color:var(--text-muted);font-style:italic;flex-shrink:0}.chat-input-area{display:flex;align-items:flex-end;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--bg-surface);border-top:1px solid var(--border-light);flex-shrink:0}.chat-input{flex:1;resize:none;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);padding:var(--space-2) var(--space-3);font-size:var(--text-sm);font-family:inherit;line-height:1.5;color:var(--text);outline:none;max-height:120px;transition:border-color var(--transition-fast)}.chat-input:focus{border-color:var(--accent)}.chat-input::placeholder{color:var(--text-muted)}.chat-image-btn{background:none;border:none;padding:var(--space-2);cursor:pointer;color:var(--text-muted);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;transition:color var(--transition-fast)}.chat-image-btn:hover{color:var(--text)}.chat-send-btn{padding:var(--space-2)!important;min-width:36px;height:36px;border-radius:var(--radius)!important}.chat-empty-state{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);color:var(--text-muted)}.chat-empty-state p{margin:0;font-size:var(--text-sm)}.chat-emoji-picker-overlay{position:absolute;bottom:60px;right:var(--space-4);z-index:30}.emoji-picker{width:320px;max-height:350px;background:var(--bg-surface);border:1px solid var(--border-light);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);display:flex;flex-direction:column;overflow:hidden}.emoji-picker-header{padding:var(--space-2)}.emoji-picker-search{width:100%;padding:var(--space-2) var(--space-3);border:1px solid var(--border);border-radius:var(--radius-full);background:var(--bg);font-size:var(--text-sm);outline:none;font-family:inherit;color:var(--text)}.emoji-picker-search:focus{border-color:var(--accent)}.emoji-picker-categories{display:flex;gap:2px;padding:0 var(--space-2) var(--space-1);overflow-x:auto;-webkit-overflow-scrolling:touch}.emoji-picker-cat-btn{background:none;border:none;padding:3px 8px;font-size:11px;color:var(--text-muted);cursor:pointer;white-space:nowrap;border-radius:var(--radius-full);transition:background var(--transition-fast),color var(--transition-fast);font-family:inherit}.emoji-picker-cat-btn:hover{background:var(--bg-hover)}.emoji-picker-cat-btn--active{background:var(--accent-bg);color:var(--accent);font-weight:600}.emoji-picker-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:2px;padding:var(--space-1) var(--space-2) var(--space-2);overflow-y:auto;max-height:250px}.emoji-picker-item{background:none;border:none;padding:4px;font-size:22px;cursor:pointer;border-radius:var(--radius);display:flex;align-items:center;justify-content:center;transition:background var(--transition-fast),transform .1s;line-height:1}.emoji-picker-item:hover{background:var(--bg-hover);transform:scale(1.15)}.thread-panel{width:360px;min-width:360px;display:flex;flex-direction:column;background:var(--bg-surface);border-left:1px solid var(--border-light);overflow:hidden;animation:slideInRight .2s ease}@keyframes slideInRight{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.thread-panel-header{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border-light);flex-shrink:0}.thread-panel-header h3{font-size:var(--text-base);font-weight:600;margin:0}.thread-panel-count{font-size:var(--text-xs);color:var(--text-muted);margin-left:auto}.thread-panel-close{background:none;border:none;padding:var(--space-1) var(--space-2);cursor:pointer;color:var(--text-muted);font-size:16px;border-radius:var(--radius);transition:background var(--transition-fast)}.thread-panel-close:hover{background:var(--bg-hover)}.thread-panel-messages{flex:1;overflow-y:auto;padding:var(--space-3)}.thread-panel-loading{padding:var(--space-6);text-align:center;color:var(--text-muted)}.thread-parent-msg{padding:var(--space-3);background:var(--bg-inset);border-radius:var(--radius);margin-bottom:var(--space-3)}.thread-msg-header{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-1)}.thread-msg-name{font-size:var(--text-sm);font-weight:600}.thread-msg-time{font-size:10px;color:var(--text-muted)}.thread-msg-edited{font-size:10px;color:var(--text-muted);font-style:italic}.thread-msg-content{font-size:var(--text-sm);line-height:1.5;word-break:break-word;white-space:pre-wrap}.thread-msg-content--own{color:var(--text)}.thread-msg-image{max-width:100%;border-radius:var(--radius);margin:var(--space-1) 0}.thread-separator{display:flex;align-items:center;justify-content:center;margin:var(--space-2) 0;font-size:var(--text-xs);color:var(--text-muted)}.thread-separator:before,.thread-separator:after{content:"";flex:1;height:1px;background:var(--border-light);margin:0 var(--space-2)}.thread-reply{display:flex;gap:var(--space-2);padding:var(--space-2) 0}.thread-reply-body{flex:1;min-width:0}.thread-panel-input{display:flex;align-items:flex-end;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-top:1px solid var(--border-light);flex-shrink:0}.chat-topic-form{display:flex;flex-direction:column;gap:var(--space-3)}.chat-topic-check{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);cursor:pointer}.chat-member-select{display:flex;flex-direction:column;gap:var(--space-2);max-height:200px;overflow-y:auto}.chat-member-option{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);cursor:pointer}.chat-dm-modal{display:flex;flex-direction:column;gap:var(--space-2)}.chat-dm-desc{font-size:var(--text-sm);color:var(--text-secondary);margin:0 0 var(--space-2)}.chat-dm-user{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);background:none;border:1px solid var(--border-light);border-radius:var(--radius);cursor:pointer;font-size:var(--text-sm);font-family:inherit;color:var(--text);transition:background var(--transition-fast);width:100%;text-align:left}.chat-dm-user:hover{background:var(--bg-hover)}.chat-page:has(.chat-main--visible)~.bottom-nav,body:has(.chat-main--visible) .bottom-nav{display:none!important}@media(max-width:767px){.chat-page{height:100%;width:100%}.chat-sidebar{width:100%;min-width:100%;flex:1;border-right:none;display:none;overflow-y:auto;-webkit-overflow-scrolling:touch;padding-bottom:calc(56px + env(safe-area-inset-bottom,0px))}.chat-sidebar--visible{display:flex}.chat-main{flex:1;display:none;min-height:0;width:100%}.chat-main--visible{display:flex;height:100%}.chat-messages{flex:1;min-height:0;overflow-y:auto!important;-webkit-overflow-scrolling:touch}.chat-back-btn{display:flex}.chat-input-area{padding:var(--space-2);padding-bottom:calc(var(--space-2) + env(safe-area-inset-bottom,0px))}.chat-message{max-width:none}.chat-message-body{max-width:calc(100vw - 80px)}.chat-scroll-bottom{bottom:calc(60px + env(safe-area-inset-bottom,0px));right:var(--space-3)}.chat-emoji-picker-overlay{right:var(--space-2);bottom:calc(60px + env(safe-area-inset-bottom,0px))}.emoji-picker{width:calc(100vw - var(--space-4));max-width:320px}.chat-mention-dropdown{left:var(--space-2);right:var(--space-2)}.thread-panel{position:fixed;top:0;left:0;right:0;bottom:0;width:100%;min-width:100%;z-index:50;border-left:none}.thread-panel-input{padding-bottom:calc(var(--space-2) + env(safe-area-inset-bottom,0px))}}.calendar-page{padding:var(--space-5) var(--space-5);max-width:960px;margin:0 auto;width:100%}.calendar-header{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-5);padding:var(--space-2) var(--space-3);border-radius:var(--radius-xl);background:#ffffff8c;backdrop-filter:blur(24px) saturate(180%);-webkit-backdrop-filter:blur(24px) saturate(180%);border:1px solid rgba(255,255,255,.45);box-shadow:0 2px 16px #0000000a,inset 0 1px #fff9}.calendar-header__title{font-size:var(--text-xl);font-weight:var(--weight-bold);min-width:200px;text-align:center;text-transform:capitalize;color:var(--text);letter-spacing:-.02em}.calendar-header__btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;border-radius:var(--radius-full);background:#78788c14;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:var(--accent);cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);flex-shrink:0}.calendar-header__btn:hover{background:#6c63ff1f;transform:scale(1.08)}.calendar-header__btn:active{transform:scale(.95)}.calendar-header__today{margin-left:auto;padding:var(--space-1) var(--space-4);border:none;border-radius:var(--radius-full);background:#78788c14;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:var(--accent);cursor:pointer;font-size:var(--text-sm);font-weight:var(--weight-semibold);transition:all .2s cubic-bezier(.4,0,.2,1);letter-spacing:.01em}.calendar-header__today:hover{background:#6c63ff1f;transform:scale(1.04)}.calendar-header__today:active{transform:scale(.97)}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);border-radius:var(--radius-xl);overflow:hidden;background:#ffffff73;backdrop-filter:blur(20px) saturate(160%);-webkit-backdrop-filter:blur(20px) saturate(160%);border:1px solid rgba(255,255,255,.4);box-shadow:0 4px 24px #0000000a,0 1px 3px #00000005,inset 0 1px #fff9}.calendar-weekday{padding:var(--space-3) var(--space-2);text-align:center;font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid rgba(0,0,0,.04)}.calendar-cell{min-height:100px;padding:var(--space-2);border-bottom:1px solid rgba(0,0,0,.03);border-right:1px solid rgba(0,0,0,.03);display:flex;flex-direction:column;gap:3px;transition:background .2s ease}.calendar-cell:hover{background:#6c63ff08}.calendar-cell:nth-child(7n){border-right:none}.calendar-grid>.calendar-cell:nth-last-child(-n+7){border-bottom:none}.calendar-cell--muted{opacity:.32}.calendar-cell--muted:hover{background:transparent}.calendar-cell--today{background:#6c63ff0f}.calendar-cell__day{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--text-secondary);margin-bottom:2px;width:26px;height:26px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-full);transition:all .2s ease}.calendar-cell--today .calendar-cell__day{background:var(--accent);color:#fff;font-weight:var(--weight-bold);box-shadow:0 2px 8px #6c63ff59}.calendar-task{display:flex;align-items:center;gap:5px;padding:3px 6px;border-radius:var(--radius-sm);cursor:pointer;transition:all .18s cubic-bezier(.4,0,.2,1);background:#78788c0f;border-left:2.5px solid transparent;min-height:22px}.calendar-task:hover{background:#78788c1f;transform:translateY(-.5px);box-shadow:0 1px 4px #0000000d}.calendar-task:active{transform:scale(.98)}.calendar-task--priority-HIGH{border-left-color:var(--red);background:#ef44440d}.calendar-task--priority-MEDIUM{border-left-color:var(--yellow);background:#f59e0b0d}.calendar-task--priority-LOW{border-left-color:var(--blue);background:#3b82f60d}.calendar-task__dot{width:7px;height:7px;border-radius:var(--radius-full);flex-shrink:0;box-shadow:0 0 0 1.5px #ffffffb3}.calendar-task__dot--TODO{background:var(--text-muted)}.calendar-task__dot--DOING{background:var(--blue)}.calendar-task__dot--DONE{background:var(--green)}.calendar-task__dot--PAUSED{background:var(--yellow)}.calendar-task__dot--REJECTED{background:var(--red)}.calendar-task__title{font-size:var(--text-xs);color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3;font-weight:var(--weight-medium)}.calendar-overflow{font-size:var(--text-xs);color:var(--text-muted);padding:2px 6px;cursor:default;font-weight:var(--weight-medium)}.calendar-loading{display:flex;align-items:center;justify-content:center;padding:var(--space-10);color:var(--text-muted)}.calendar-event{display:flex;align-items:center;gap:4px;padding:3px 6px;border-radius:var(--radius-sm);cursor:pointer;transition:all .18s cubic-bezier(.4,0,.2,1);background:#6c63ff14;border-left:2.5px solid var(--accent);min-height:22px}.calendar-event:hover{background:#6c63ff26;transform:translateY(-.5px);box-shadow:0 1px 4px #6c63ff1f}.calendar-event:active{transform:scale(.98)}.calendar-event__icon{flex-shrink:0;color:var(--accent);display:flex;align-items:center}.calendar-event__title{font-size:var(--text-xs);color:var(--accent);font-weight:var(--weight-semibold);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}.btn--sm{padding:var(--space-1) var(--space-3);font-size:var(--text-sm);height:auto}@media(max-width:768px){.calendar-page{padding:var(--space-3) var(--space-2)}.calendar-header{padding:var(--space-2);gap:var(--space-1);border-radius:var(--radius-lg)}.calendar-header__title{font-size:var(--text-lg);min-width:0;flex:1}.calendar-cell{min-height:56px;padding:var(--space-1)}.calendar-cell__day{width:22px;height:22px;font-size:var(--text-xs)}.calendar-task__title,.calendar-event__title{display:none}.calendar-task,.calendar-event{padding:2px;gap:0;justify-content:center;border-left:none;min-height:14px;background:transparent}.calendar-task__dot{width:6px;height:6px}.calendar-event__icon svg{width:6px;height:6px}.calendar-overflow{font-size:9px;text-align:center}}[data-theme=dark] .calendar-header,:root:not([data-theme=light]) .calendar-header{background:#1e1e3099;border-color:#ffffff0f;box-shadow:0 2px 16px #0003,inset 0 1px #ffffff0a}[data-theme=dark] .calendar-header__btn,:root:not([data-theme=light]) .calendar-header__btn{background:#ffffff0f}[data-theme=dark] .calendar-header__btn:hover,:root:not([data-theme=light]) .calendar-header__btn:hover{background:#6c63ff33}[data-theme=dark] .calendar-header__today,:root:not([data-theme=light]) .calendar-header__today{background:#ffffff0f}[data-theme=dark] .calendar-header__today:hover,:root:not([data-theme=light]) .calendar-header__today:hover{background:#6c63ff33}[data-theme=dark] .calendar-grid,:root:not([data-theme=light]) .calendar-grid{background:#1414208c;border-color:#ffffff0f;box-shadow:0 4px 24px #0003,0 1px 3px #00000026,inset 0 1px #ffffff0a}[data-theme=dark] .calendar-weekday,:root:not([data-theme=light]) .calendar-weekday{border-bottom-color:#ffffff0a}[data-theme=dark] .calendar-cell,:root:not([data-theme=light]) .calendar-cell{border-color:#ffffff08}[data-theme=dark] .calendar-cell:hover,:root:not([data-theme=light]) .calendar-cell:hover{background:#6c63ff0d}[data-theme=dark] .calendar-cell--today,:root:not([data-theme=light]) .calendar-cell--today{background:#6c63ff14}[data-theme=dark] .calendar-task,:root:not([data-theme=light]) .calendar-task{background:#ffffff0a}[data-theme=dark] .calendar-task:hover,:root:not([data-theme=light]) .calendar-task:hover{background:#ffffff14}[data-theme=dark] .calendar-task--priority-HIGH,:root:not([data-theme=light]) .calendar-task--priority-HIGH{background:#ef444414}[data-theme=dark] .calendar-task--priority-MEDIUM,:root:not([data-theme=light]) .calendar-task--priority-MEDIUM{background:#f59e0b14}[data-theme=dark] .calendar-task--priority-LOW,:root:not([data-theme=light]) .calendar-task--priority-LOW{background:#3b82f614}[data-theme=dark] .calendar-task__dot,:root:not([data-theme=light]) .calendar-task__dot{box-shadow:0 0 0 1.5px #0000004d}[data-theme=dark] .calendar-event,:root:not([data-theme=light]) .calendar-event{background:#6c63ff1a}[data-theme=dark] .calendar-event:hover,:root:not([data-theme=light]) .calendar-event:hover{background:#6c63ff2e}.ical-url-row{display:flex;gap:var(--space-2);align-items:center;margin-bottom:var(--space-3)}.ical-url-row .field-input{flex:1;font-size:var(--text-sm);font-family:monospace}.ical-hint{font-size:var(--text-sm);color:var(--text-muted);margin-top:var(--space-2)}.ical-actions{display:flex;gap:var(--space-2);margin-top:var(--space-3)}.upcoming-section{margin-top:var(--space-6)}.upcoming-title{font-size:var(--text-lg);font-weight:var(--weight-bold);color:var(--text);margin-bottom:var(--space-4);letter-spacing:-.01em}.upcoming-empty{color:var(--text-muted);font-size:var(--text-sm);padding:var(--space-6) 0;text-align:center}.upcoming-list{display:flex;flex-direction:column;gap:2px;border-radius:var(--radius-xl);overflow:hidden;background:#ffffff73;backdrop-filter:blur(20px) saturate(160%);-webkit-backdrop-filter:blur(20px) saturate(160%);border:1px solid rgba(255,255,255,.4);box-shadow:0 4px 24px #0000000a,0 1px 3px #00000005,inset 0 1px #fff9}.upcoming-date-header{padding:var(--space-2) var(--space-4);font-size:var(--text-xs);font-weight:var(--weight-bold);color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;background:#00000005}.upcoming-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);cursor:pointer;transition:all .18s cubic-bezier(.4,0,.2,1);border-bottom:1px solid rgba(0,0,0,.03)}.upcoming-item:last-child{border-bottom:none}.upcoming-item:hover{background:#6c63ff0a}.upcoming-item:active{background:#6c63ff12}.upcoming-item__icon{flex-shrink:0;display:flex;align-items:center;justify-content:center}.upcoming-item__icon--event{width:28px;height:28px;border-radius:var(--radius-sm);background:#6c63ff1a;color:var(--accent)}.upcoming-item__dot{width:10px;height:10px;border-radius:var(--radius-full);margin-left:9px;margin-right:6px;box-shadow:0 0 0 2px #ffffffb3}.upcoming-item__dot--TODO{background:var(--text-muted)}.upcoming-item__dot--DOING{background:var(--blue)}.upcoming-item__dot--DONE{background:var(--green)}.upcoming-item__dot--PAUSED{background:var(--yellow)}.upcoming-item__dot--REJECTED{background:var(--red)}.upcoming-item__content{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.upcoming-item__title{font-size:var(--text-base);font-weight:var(--weight-medium);color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.upcoming-item__desc,.upcoming-item__meta{font-size:var(--text-sm);color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.upcoming-item__badge{flex-shrink:0;font-size:var(--text-xs);font-weight:var(--weight-semibold);padding:2px 8px;border-radius:var(--radius-full)}.upcoming-item__badge--TODO{background:#9090a81a;color:var(--text-muted)}.upcoming-item__badge--DOING{background:var(--blue-bg);color:var(--blue)}.upcoming-item__badge--DONE{background:var(--green-bg);color:var(--green)}.upcoming-item__badge--PAUSED{background:var(--yellow-bg);color:var(--yellow)}.upcoming-item__badge--REJECTED{background:var(--red-bg);color:var(--red)}.upcoming-item--HIGH{border-left:3px solid var(--red)}.upcoming-item--MEDIUM{border-left:3px solid var(--yellow)}.upcoming-item--LOW{border-left:3px solid var(--blue)}[data-theme=dark] .upcoming-list,:root:not([data-theme=light]) .upcoming-list{background:#1414208c;border-color:#ffffff0f;box-shadow:0 4px 24px #0003,0 1px 3px #00000026,inset 0 1px #ffffff0a}[data-theme=dark] .upcoming-date-header,:root:not([data-theme=light]) .upcoming-date-header{background:#ffffff05}[data-theme=dark] .upcoming-item,:root:not([data-theme=light]) .upcoming-item{border-bottom-color:#ffffff08}[data-theme=dark] .upcoming-item:hover,:root:not([data-theme=light]) .upcoming-item:hover{background:#6c63ff0f}[data-theme=dark] .upcoming-item__dot,:root:not([data-theme=light]) .upcoming-item__dot{box-shadow:0 0 0 2px #0000004d}[data-theme=dark] .upcoming-item__icon--event,:root:not([data-theme=light]) .upcoming-item__icon--event{background:#6c63ff26}@media(max-width:768px){.upcoming-section{margin-top:var(--space-4)}.upcoming-item{padding:var(--space-2) var(--space-3);gap:var(--space-2)}.upcoming-item__badge{display:none}}.attendee-picker{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-2)}.attendee-picker__empty{font-size:var(--text-sm);color:var(--text-muted)}.attendee-chip{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);border:1.5px solid var(--border);background:var(--bg-surface);cursor:pointer;transition:all .18s cubic-bezier(.4,0,.2,1);font-size:var(--text-sm);color:var(--text)}.attendee-chip:hover{border-color:var(--accent);background:var(--accent-bg)}.attendee-chip--selected{border-color:var(--accent);background:var(--accent-bg);color:var(--accent)}.attendee-chip__initials{width:24px;height:24px;border-radius:var(--radius-full);background:var(--accent);color:#fff;font-size:var(--text-xs);font-weight:var(--weight-bold);display:flex;align-items:center;justify-content:center;flex-shrink:0}.attendee-chip--selected .attendee-chip__initials{background:var(--accent)}.attendee-chip__name{font-weight:var(--weight-medium)}.attendee-chip__check{color:var(--accent);font-weight:var(--weight-bold);font-size:var(--text-sm)}.upcoming-attendees{display:flex;gap:0;margin-top:2px}.upcoming-attendee{width:22px;height:22px;border-radius:var(--radius-full);background:var(--accent);color:#fff;font-size:9px;font-weight:var(--weight-bold);display:flex;align-items:center;justify-content:center;margin-left:-4px;border:2px solid var(--bg-surface);flex-shrink:0}.upcoming-attendee:first-child{margin-left:0}.upcoming-attendee--more{background:var(--text-muted);font-size:8px}[data-theme=dark] .upcoming-attendee,:root:not([data-theme=light]) .upcoming-attendee{border-color:var(--bg-raised)}[data-theme=dark] .attendee-chip,:root:not([data-theme=light]) .attendee-chip{background:var(--bg-raised);border-color:var(--border)}[data-theme=dark] .attendee-chip:hover,[data-theme=dark] .attendee-chip--selected,:root:not([data-theme=light]) .attendee-chip:hover,:root:not([data-theme=light]) .attendee-chip--selected{background:#6c63ff26;border-color:var(--accent)}.calendar-event__time{font-size:9px;font-weight:var(--weight-bold);color:var(--accent);opacity:.7;flex-shrink:0}.event-time-row{display:flex;gap:var(--space-3);align-items:flex-end}.event-time-field{flex:1}.event-time-clear{width:32px;height:32px;border:none;background:var(--red-bg);color:var(--red);border-radius:var(--radius-full);cursor:pointer;font-size:var(--text-sm);display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-bottom:2px;transition:background var(--transition-fast)}.event-time-clear:hover{background:var(--red);color:#fff}.upcoming-item__time{font-size:var(--text-sm);color:var(--accent);font-weight:var(--weight-medium)}.upcoming-item__time-badge{flex-shrink:0;font-size:var(--text-xs);font-weight:var(--weight-semibold);padding:2px 8px;border-radius:var(--radius-full);background:var(--accent-bg);color:var(--accent)}@media(max-width:768px){.calendar-event__time,.upcoming-item__time-badge{display:none}.event-time-row{flex-wrap:wrap}}.recurrence-badge{display:inline-flex;align-items:center;font-size:10px;font-weight:var(--weight-semibold);padding:1px 6px;border-radius:var(--radius-full);background:var(--blue-bg);color:var(--blue);margin-left:var(--space-1);vertical-align:middle;letter-spacing:.02em}.calendar-event--recurring{border-left:2px solid var(--blue)}.calendar-event--recurring .calendar-event__icon{color:var(--blue)}[data-theme=dark] .recurrence-badge,:root:not([data-theme=light]) .recurrence-badge{background:#3884ff26;color:var(--blue)}.event-detail__rsvp{margin-top:var(--space-3)}.rsvp-buttons{display:flex;gap:var(--space-2);margin-top:var(--space-2)}.rsvp-btn{display:flex;align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-3);border-radius:var(--radius);border:1.5px solid var(--border);background:var(--bg-surface);cursor:pointer;font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--text);transition:all .18s cubic-bezier(.4,0,.2,1)}.rsvp-btn:hover{border-color:var(--accent)}.rsvp-btn__icon{font-size:var(--text-base);line-height:1}.rsvp-btn--active.rsvp-btn--accepted{border-color:var(--green);background:var(--green-bg);color:var(--green)}.rsvp-btn--active.rsvp-btn--maybe{border-color:var(--yellow);background:var(--yellow-bg);color:var(--yellow)}.rsvp-btn--active.rsvp-btn--declined{border-color:var(--red);background:var(--red-bg);color:var(--red)}[data-theme=dark] .rsvp-btn,:root:not([data-theme=light]) .rsvp-btn{background:var(--bg-raised);border-color:var(--border)}.upcoming-attendee--rsvp-ACCEPTED{background:var(--green)}.upcoming-attendee--rsvp-MAYBE{background:var(--yellow)}.upcoming-attendee--rsvp-DECLINED{background:var(--red);opacity:.5}.event-detail__attendees{margin-top:var(--space-3)}.attendee-list{display:flex;flex-direction:column;gap:var(--space-2);margin-top:var(--space-2)}.attendee-list__item{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-1) 0}.attendee-list__avatar{width:28px;height:28px;border-radius:var(--radius-full);background:var(--accent);color:#fff;font-size:10px;font-weight:var(--weight-bold);display:flex;align-items:center;justify-content:center;flex-shrink:0}.attendee-list__name{flex:1;font-size:var(--text-sm);font-weight:var(--weight-medium)}.attendee-list__rsvp{font-size:var(--text-xs);font-weight:var(--weight-semibold);padding:2px 8px;border-radius:var(--radius-full)}.attendee-list__rsvp--accepted{background:var(--green-bg);color:var(--green)}.attendee-list__rsvp--maybe{background:var(--yellow-bg);color:var(--yellow)}.attendee-list__rsvp--declined{background:var(--red-bg);color:var(--red)}.attendee-list__rsvp--pending{background:var(--bg-raised);color:var(--text-muted)}.event-detail__tabs{display:flex;gap:0;border-bottom:1px solid var(--border);margin-bottom:var(--space-3)}.event-detail__tab{flex:1;padding:var(--space-2) var(--space-3);border:none;background:none;cursor:pointer;font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--text-muted);border-bottom:2px solid transparent;transition:all .18s ease}.event-detail__tab--active{color:var(--accent);border-bottom-color:var(--accent)}.event-detail__tab:hover{color:var(--text)}.event-detail__info{display:flex;flex-direction:column;gap:var(--space-1)}.event-detail__row{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-1) 0}.event-detail__row--block{flex-direction:column;align-items:flex-start;gap:var(--space-1)}.event-detail__label{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--text-muted);min-width:90px}.event-detail__desc{font-size:var(--text-sm);color:var(--text);line-height:1.5;margin:0;white-space:pre-wrap}.event-detail__comments{display:flex;flex-direction:column;gap:var(--space-3)}.event-comments-empty{font-size:var(--text-sm);color:var(--text-muted);text-align:center;padding:var(--space-4) 0;margin:0}.event-comments-list{display:flex;flex-direction:column;gap:var(--space-3);max-height:300px;overflow-y:auto}.event-comment{display:flex;flex-direction:column;gap:var(--space-1)}.event-comment__header{display:flex;align-items:center;gap:var(--space-2)}.event-comment__avatar{width:24px;height:24px;border-radius:var(--radius-full);background:var(--accent);color:#fff;font-size:9px;font-weight:var(--weight-bold);display:flex;align-items:center;justify-content:center;flex-shrink:0}.event-comment__author{font-size:var(--text-sm);font-weight:var(--weight-semibold)}.event-comment__time{font-size:var(--text-xs);color:var(--text-muted);margin-left:auto}.event-comment__delete{border:none;background:none;color:var(--text-muted);cursor:pointer;font-size:var(--text-xs);padding:2px 4px;border-radius:var(--radius-sm);opacity:0;transition:opacity .15s ease}.event-comment:hover .event-comment__delete{opacity:1}.event-comment__delete:hover{color:var(--red);background:var(--red-bg)}.event-comment__text{font-size:var(--text-sm);line-height:1.5;color:var(--text);margin:0;padding-left:32px;white-space:pre-wrap}.event-comment-form{display:flex;gap:var(--space-2);align-items:center;padding-top:var(--space-2);border-top:1px solid var(--border)}.event-comment-form .field-input{flex:1;margin:0}[data-theme=dark] .event-detail__tab,:root:not([data-theme=light]) .event-detail__tab{color:var(--text-muted)}[data-theme=dark] .event-detail__tab--active,:root:not([data-theme=light]) .event-detail__tab--active{color:var(--accent)}[data-theme=dark] .event-comment__delete:hover,:root:not([data-theme=light]) .event-comment__delete:hover{background:#ff3b3026}[data-theme=dark] .attendee-list__rsvp--pending,:root:not([data-theme=light]) .attendee-list__rsvp--pending{background:var(--bg-surface)}@media(max-width:768px){.rsvp-buttons{flex-wrap:wrap}.rsvp-btn{flex:1;justify-content:center;min-width:80px}.event-detail__row{flex-direction:column;align-items:flex-start;gap:var(--space-1)}.event-detail__label{min-width:auto}.recurrence-badge{font-size:9px}}.cal-subscribe-btn{display:flex;align-items:center;gap:var(--space-1);margin-left:auto;color:var(--text-muted);font-size:var(--text-sm)}.cal-subscribe-btn:hover{color:var(--accent)}.cal-subscribe{display:flex;flex-direction:column;gap:var(--space-4)}.cal-subscribe__desc{font-size:var(--text-sm);color:var(--text-secondary);line-height:1.5;margin:0}.cal-subscribe__generate{text-align:center;padding:var(--space-4) 0}.cal-subscribe__hint{font-size:var(--text-xs);color:var(--text-muted);margin:0}.cal-subscribe__buttons{display:flex;gap:var(--space-3)}.cal-subscribe__option{flex:1;display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:var(--space-4) var(--space-3);border-radius:var(--radius);border:1.5px solid var(--border);background:var(--bg-surface);cursor:pointer;font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--text);transition:all .18s cubic-bezier(.4,0,.2,1)}.cal-subscribe__option:hover{border-color:var(--accent);background:var(--accent-bg);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.cal-subscribe__option--apple{color:var(--text)}.cal-subscribe__option--apple:hover{border-color:#333}.cal-subscribe__option--google svg{color:#4285f4}.cal-subscribe__option--google:hover{border-color:#4285f4}.cal-subscribe__url-section{display:flex;flex-direction:column;gap:var(--space-2)}.cal-subscribe__url-row{display:flex;gap:var(--space-2);align-items:center}.cal-subscribe__url-row .field-input{flex:1;font-size:var(--text-xs);font-family:monospace;margin:0}.cal-subscribe__regen{display:flex;align-items:center;gap:var(--space-2);padding-top:var(--space-2);border-top:1px solid var(--border)}[data-theme=dark] .cal-subscribe__option,:root:not([data-theme=light]) .cal-subscribe__option{background:var(--bg-raised);border-color:var(--border)}[data-theme=dark] .cal-subscribe__option:hover,:root:not([data-theme=light]) .cal-subscribe__option:hover{background:#6c63ff1a}[data-theme=dark] .cal-subscribe__option--apple,:root:not([data-theme=light]) .cal-subscribe__option--apple{color:#fff}[data-theme=dark] .cal-subscribe__option--apple:hover,:root:not([data-theme=light]) .cal-subscribe__option--apple:hover{border-color:#ccc}@media(max-width:768px){.cal-subscribe-btn__label{display:none}.cal-subscribe__buttons{flex-direction:column}}.task-assignee-picker{display:flex;flex-direction:column;gap:var(--space-2)}.task-assignee-all{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);font-weight:var(--weight-medium);cursor:pointer}.task-assignee-all input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent)}.task-assignee-chips{display:flex;flex-wrap:wrap;gap:var(--space-1)}.task-assignee-chips .attendee-chip{padding:2px var(--space-2);font-size:var(--text-xs)}.task-assignee-chips .attendee-chip__initials{width:20px;height:20px;font-size:9px}.task-row-assignee--multi{display:flex;gap:0}.task-row-assignee--multi .avatar{margin-left:-6px;border:2px solid var(--bg-surface)}.task-row-assignee--multi .avatar:first-child{margin-left:0}.avatar--more{background:var(--text-muted)!important;font-size:9px!important}.calendar-event-modal-actions{display:flex;gap:var(--space-2);margin-top:var(--space-3)}.settings-form .field-label{margin-top:var(--space-2);margin-bottom:2px}.settings-form .field-input,.settings-form .field-select{margin-bottom:0}.settings-form .attendee-picker{max-height:120px;overflow-y:auto}.modal-panel .settings-form{gap:0}.modal-panel .ical-hint{margin-top:2px;margin-bottom:var(--space-1)}.attendee-tags{display:flex;flex-wrap:wrap;gap:var(--space-1);margin-bottom:var(--space-1)}.attendee-tag{display:inline-flex;align-items:center;gap:var(--space-1);padding:2px 4px 2px 8px;border-radius:var(--radius-full);background:var(--accent-bg);color:var(--accent);font-size:var(--text-xs);font-weight:var(--weight-semibold)}.attendee-tag__remove{border:none;background:none;color:var(--accent);cursor:pointer;font-size:14px;line-height:1;padding:0 2px;border-radius:var(--radius-full);opacity:.6}.attendee-tag__remove:hover{opacity:1;background:var(--accent);color:#fff}[data-theme=dark] .attendee-tag,:root:not([data-theme=light]) .attendee-tag{background:#6c63ff26}.event-datetime-date{margin-bottom:var(--space-1)}.event-datetime-time{display:flex;gap:var(--space-2);align-items:end}.event-datetime-time .event-datetime-field{flex:1;min-width:0}.event-datetime-field .field-input{width:100%;min-width:0;box-sizing:border-box}.event-time-clear{flex-shrink:0;margin-bottom:2px}.mention-dropdown{position:absolute;bottom:100%;left:0;right:0;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg);z-index:20;max-height:180px;overflow-y:auto;margin-bottom:4px}.mention-option{display:flex;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-3);border:none;background:none;cursor:pointer;font-size:var(--text-sm);color:var(--text);text-align:left}.mention-option:hover,.mention-option--active{background:var(--bg-hover)}.mention-tag{color:var(--accent);font-weight:var(--weight-semibold);background:rgba(var(--accent-rgb, 59, 130, 246),.1);padding:1px 4px;border-radius:var(--radius-sm)}[data-theme=dark] .mention-dropdown,:root:not([data-theme=light]) .mention-dropdown{background:var(--bg-raised);border-color:var(--border)}.bottom-nav-notes-wrap{position:relative;flex:1;display:flex;justify-content:center}.bottom-nav-notes-wrap .bottom-nav-item{background:none;border:none;cursor:pointer}.bottom-nav-notes-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:89}.bottom-nav-notes-popup{position:fixed;bottom:calc(64px + env(safe-area-inset-bottom,0px));left:8px;right:8px;display:flex;gap:8px;z-index:91;animation:notes-popup-in .22s cubic-bezier(.2,.9,.3,1.1)}@keyframes notes-popup-in{0%{opacity:0;transform:translateY(8px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.bottom-nav-notes-option{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:16px 12px;font-size:13px;font-weight:600;color:var(--text);text-decoration:none;white-space:nowrap;letter-spacing:-.01em;background:#ffffffa6;backdrop-filter:blur(40px) saturate(1.8);-webkit-backdrop-filter:blur(40px) saturate(1.8);border:1px solid rgba(255,255,255,.45);border-radius:16px;box-shadow:0 8px 32px #00000014,0 1px 3px #0000000a,inset 0 1px #fff9;transition:transform .15s ease,background .15s ease}.bottom-nav-notes-option svg{opacity:.65;width:22px;height:22px}.bottom-nav-notes-option:active{transform:scale(.96);background:#fffc}.bottom-nav-notes-option+.bottom-nav-notes-option{border-top:none}[data-theme=dark] .bottom-nav-notes-option,:root:not([data-theme=light]) .bottom-nav-notes-option{background:#1e1e208c;border-color:#ffffff1f;box-shadow:0 8px 32px #00000059,0 1px 3px #0003,inset 0 1px #ffffff14}[data-theme=dark] .bottom-nav-notes-option:active,:root:not([data-theme=light]) .bottom-nav-notes-option:active{background:#323236b3}.history-filters{display:flex;gap:var(--space-2);margin-bottom:var(--space-4);flex-wrap:wrap}.history-list{display:flex;flex-direction:column;gap:1px;background:var(--border);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.history-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--bg-surface);cursor:pointer;transition:background .15s ease}.history-item:hover{background:var(--bg-hover)}.history-item__check{width:28px;height:28px;border-radius:var(--radius-full);background:var(--green-bg);color:var(--green);display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:var(--weight-bold);flex-shrink:0}.history-item__content{flex:1;min-width:0}.history-item__title{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--text);text-decoration:line-through;opacity:.75;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.history-item__meta{display:flex;align-items:center;gap:var(--space-1);font-size:var(--text-xs);color:var(--text-muted);margin-top:2px}.history-item__sep{opacity:.4}.history-item__project{font-weight:var(--weight-medium)}.history-item__priority{font-size:var(--text-xs);font-weight:var(--weight-semibold);flex-shrink:0}[data-theme=dark] .history-item,:root:not([data-theme=light]) .history-item{background:var(--bg-raised)}@media(max-width:768px){.history-item{padding:var(--space-2) var(--space-3)}.history-item__priority{display:none}}@media(max-width:767px){.sidebar-link--hide-mobile{display:none!important}}.security-block{padding:var(--space-4) 0;border-bottom:1px solid var(--border)}.security-block:last-child{border-bottom:none}.security-block__header{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-3)}.security-block__icon{width:40px;height:40px;border-radius:var(--radius);background:var(--bg-inset);display:flex;align-items:center;justify-content:center;color:var(--text-muted);flex-shrink:0}.security-block__title{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--text)}.security-block__desc{font-size:var(--text-xs);color:var(--text-muted);margin-top:2px}.security-block__actions{margin-top:var(--space-3)}.security-badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--weight-semibold)}.security-badge--on{background:var(--green-bg);color:var(--green)}.security-badge--off{background:var(--bg-inset);color:var(--text-muted)}.totp-setup{margin-top:var(--space-3)}.totp-setup__hint{font-size:var(--text-sm);color:var(--text-muted);margin:0 0 var(--space-3);line-height:1.5}.totp-setup__qr{display:flex;justify-content:center;padding:var(--space-3);background:#fff;border-radius:var(--radius);margin-bottom:var(--space-3);width:fit-content}.totp-setup__secret{margin-bottom:var(--space-3)}.totp-secret-code{display:block;padding:var(--space-2) var(--space-3);background:var(--bg-inset);border-radius:var(--radius-sm);font-family:monospace;font-size:var(--text-sm);letter-spacing:.05em;word-break:break-all;-webkit-user-select:all;user-select:all;margin-top:var(--space-1)}.totp-setup__verify{margin-bottom:var(--space-2)}.totp-verify-row{display:flex;gap:var(--space-2);align-items:center;margin-top:var(--space-1)}.totp-verify-row .field-input{max-width:140px;text-align:center;font-size:var(--text-lg);font-weight:var(--weight-bold);letter-spacing:.15em}.passkey-list{display:flex;flex-direction:column;gap:1px;background:var(--border);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;margin-bottom:var(--space-3)}.passkey-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);background:var(--bg-surface)}.passkey-item__icon{color:var(--text-muted)}.passkey-item__info{flex:1}.passkey-item__name{font-size:var(--text-sm);font-weight:var(--weight-semibold)}.passkey-item__date{font-size:var(--text-xs);color:var(--text-muted)}.btn--danger-ghost{background:none;border:1px solid var(--red);color:var(--red);cursor:pointer;padding:var(--space-1) var(--space-3);border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:var(--weight-medium);transition:background .15s ease}.btn--danger-ghost:hover{background:var(--red-bg)}[data-theme=dark] .passkey-item,:root:not([data-theme=light]) .passkey-item{background:var(--bg-raised)}[data-theme=dark] .totp-setup__qr,:root:not([data-theme=light]) .totp-setup__qr{background:#fff}.bottom-nav-chat-wrap{position:relative}.bottom-nav-badge{position:absolute;top:2px;right:50%;transform:translate(12px);min-width:18px;height:18px;padding:0 5px;display:flex;align-items:center;justify-content:center;background:#ff3b30;color:#fff;font-size:.688rem;font-weight:700;border-radius:999px;line-height:1;pointer-events:none;box-shadow:0 1px 4px #ff3b3066;z-index:1}.dashboard{padding:var(--space-4);max-width:1200px}.dashboard-header{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4)}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:var(--space-3);margin-bottom:var(--space-4)}.dash-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-1)}.dash-card--accent{background:var(--accent);color:#fff;border-color:var(--accent)}.dash-card--accent .dash-card-label{opacity:.85}.dash-card-value{font-size:1.75rem;font-weight:700;line-height:1}.dash-card-label{font-size:.8rem;color:var(--text-muted)}.dash-card--accent .dash-card-label{color:#fffc}.dash-card-bar{height:4px;background:#ffffff4d;border-radius:2px;margin-top:var(--space-2)}.dash-card-bar-fill{height:100%;background:#fff;border-radius:2px;transition:width .3s}.dash-card-sub{font-size:.75rem;opacity:.8}.dashboard-section-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4);margin-bottom:var(--space-4)}.dashboard-col{display:flex;flex-direction:column;gap:var(--space-4)}.dashboard-section-row--full{grid-template-columns:1fr}@media(max-width:768px){.dashboard-section-row{grid-template-columns:1fr}}.dashboard-section{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-4)}.dashboard-section-title{font-size:.9rem;font-weight:600;margin:0 0 var(--space-3)}.my-stats-row{display:flex;gap:var(--space-4)}.my-stat{display:flex;flex-direction:column;align-items:center}.my-stat-val{font-size:1.5rem;font-weight:700}.my-stat-label{font-size:.75rem;color:var(--text-muted)}.project-bars{display:flex;flex-direction:column;gap:var(--space-3)}.project-bar-item{text-decoration:none;color:inherit;display:block}.project-bar-item:hover{opacity:.85}.project-bar-header{display:flex;justify-content:space-between;margin-bottom:4px}.project-bar-name{font-size:.85rem;font-weight:500}.project-bar-pct{font-size:.8rem;font-weight:600;color:var(--accent)}.project-bar-track{height:6px;background:var(--border);border-radius:3px;overflow:hidden}.project-bar-fill{height:100%;background:var(--accent);border-radius:3px;transition:width .3s}.project-bar-counts{display:flex;gap:var(--space-3);font-size:.7rem;color:var(--text-muted);margin-top:4px}.upcoming-list{display:flex;flex-direction:column;gap:var(--space-1)}.upcoming-item{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2);border-radius:var(--radius);text-decoration:none;color:inherit}.upcoming-item:hover{background:var(--bg-hover)}.upcoming-item-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.upcoming-item-title{flex:1;font-size:.85rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.upcoming-item-date{font-size:.75rem;color:var(--text-muted);flex-shrink:0}.search-bar-wrap{position:relative;flex:1;max-width:320px;margin:0 var(--space-2)}.search-bar{display:flex;align-items:center;background:var(--bg-hover);border-radius:var(--radius);padding:0 var(--space-2);height:32px}.search-bar-icon{opacity:.5;flex-shrink:0}.search-bar-input{border:none;background:none;outline:none;font-size:.85rem;padding:0 var(--space-2);width:100%;color:var(--text)}.search-results{position:absolute;top:100%;left:0;right:0;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);max-height:400px;overflow-y:auto;z-index:100;margin-top:4px}.search-empty{padding:var(--space-3);text-align:center;color:var(--text-muted);font-size:.85rem}.search-group{padding:var(--space-2)}.search-group-title{font-size:.7rem;font-weight:600;text-transform:uppercase;color:var(--text-muted);padding:var(--space-1) var(--space-2)}.search-result-item{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2);border:none;background:none;width:100%;text-align:left;cursor:pointer;border-radius:var(--radius);font-size:.85rem;color:var(--text)}.search-result-item:hover{background:var(--bg-hover)}@media(max-width:640px){.search-bar-wrap{display:none}}.phase-group--drop-target{outline:2px dashed var(--accent);outline-offset:-2px;background:color-mix(in srgb,var(--accent) 5%,transparent)}[draggable=true]{cursor:grab}[draggable=true]:active{cursor:grabbing}.board-header-actions{display:flex;align-items:center;gap:var(--space-2);flex:1}.board-header-spacer{flex:1}.export-wrap{position:relative}.export-dropdown{position:absolute;top:100%;right:0;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg);min-width:140px;z-index:50;margin-top:4px}.export-option{display:block;padding:var(--space-2) var(--space-3);font-size:.85rem;color:var(--text);text-decoration:none;border:none;background:none;width:100%;text-align:left;cursor:pointer}.export-option:hover{background:var(--bg-hover)}.attachments-tab{display:flex;flex-direction:column;gap:var(--space-2)}.attachments-upload{margin-bottom:var(--space-2)}.attachment-item{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2);border-radius:var(--radius);background:var(--bg-hover)}.attachment-icon{opacity:.5;flex-shrink:0}.attachment-info{flex:1;min-width:0}.attachment-name{font-size:.85rem;color:var(--accent);text-decoration:none;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attachment-name:hover{text-decoration:underline}.attachment-meta{font-size:.7rem;color:var(--text-muted)}.time-tab{display:flex;flex-direction:column;gap:var(--space-2)}.time-form{display:flex;gap:var(--space-2);align-items:center;margin-bottom:var(--space-2)}.time-total{font-size:.85rem;padding:var(--space-2);background:var(--bg-hover);border-radius:var(--radius);margin-bottom:var(--space-2)}.time-entry{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2);font-size:.8rem;border-bottom:1px solid var(--border)}.time-entry-minutes{font-weight:600;min-width:60px}.time-entry-desc{flex:1;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.time-entry-user,.time-entry-date{font-size:.75rem;color:var(--text-muted)}.deps-tab{display:flex;flex-direction:column;gap:var(--space-2)}.deps-search{position:relative;margin-bottom:var(--space-2)}.deps-results{position:absolute;top:100%;left:0;right:0;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg);max-height:200px;overflow-y:auto;z-index:50}.deps-result-item{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2);border:none;background:none;width:100%;text-align:left;cursor:pointer;font-size:.85rem;color:var(--text)}.deps-result-item:hover{background:var(--bg-hover)}.deps-section{margin-bottom:var(--space-2)}.deps-section-title{font-size:.75rem;font-weight:600;text-transform:uppercase;color:var(--text-muted);margin-bottom:var(--space-1)}.dep-item{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2);border-radius:var(--radius);background:var(--bg-hover);margin-bottom:var(--space-1)}.dep-item-title{flex:1;font-size:.85rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.toggle-switch{position:relative;display:inline-block;width:44px;height:24px}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;cursor:pointer;top:0;right:0;bottom:0;left:0;background:var(--border);border-radius:24px;transition:.2s}.toggle-slider:before{content:"";position:absolute;height:18px;width:18px;left:3px;bottom:3px;background:#fff;border-radius:50%;transition:.2s}.toggle-switch input:checked+.toggle-slider{background:var(--accent)}.toggle-switch input:checked+.toggle-slider:before{transform:translate(20px)}@media(max-width:640px){.dashboard{padding:var(--space-2) var(--space-3)}.dashboard-header{margin-bottom:var(--space-2)}.dashboard-header .page-title{font-size:1.1rem}.dashboard-grid{grid-template-columns:repeat(2,1fr);gap:var(--space-2);margin-bottom:var(--space-3)}.dash-card{padding:var(--space-2) var(--space-3);border-radius:var(--radius)}.dash-card-value{font-size:1.25rem}.dash-card-label{font-size:.7rem}.dashboard-section-row{gap:var(--space-2);margin-bottom:var(--space-2)}.dashboard-section{padding:var(--space-3);border-radius:var(--radius)}.dashboard-section-title{font-size:.8rem;margin-bottom:var(--space-2)}.my-stats-row{gap:var(--space-3);justify-content:space-around}.my-stat-val{font-size:1.15rem}.my-stat-label{font-size:.65rem}.project-bar-name{font-size:.8rem}.project-bar-counts{font-size:.65rem;gap:var(--space-2)}.upcoming-item{padding:var(--space-1) var(--space-2)}.upcoming-item-title{font-size:.8rem}.upcoming-item-date{font-size:.7rem}.activity-item{font-size:.8rem}.activity-time{font-size:.65rem}}.reports-page{padding:var(--space-4);max-width:1200px}.reports-header{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4);flex-wrap:wrap}.reports-header h2{margin:0;font-size:1.25rem}.reports-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:var(--space-4);margin-bottom:var(--space-4)}.report-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-4)}.report-card-title{font-size:.9rem;font-weight:600;margin:0 0 var(--space-3)}.report-chart{display:flex;flex-direction:column;gap:var(--space-2)}.report-bar{display:flex;align-items:center;gap:var(--space-2)}.report-bar-label{font-size:.8rem;min-width:80px;color:var(--text-muted)}.report-bar-track{flex:1;height:8px;background:var(--border);border-radius:4px;overflow:hidden}.report-bar-fill{height:100%;border-radius:4px;transition:width .3s}.report-bar-value{font-size:.75rem;font-weight:600;min-width:30px;text-align:right}.report-row{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) 0;border-bottom:1px solid var(--border)}.report-row:last-child{border-bottom:none}.report-list-item{font-size:.85rem;flex:1}.report-workload-item{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) 0}.report-workload-item .avatar{flex-shrink:0}.report-completion-chart{display:flex;align-items:flex-end;gap:2px;height:100px}.report-completion-bar{flex:1;background:var(--accent);border-radius:2px 2px 0 0;min-width:6px;transition:height .3s}.sprints-page{padding:var(--space-4);max-width:1000px}.sprints-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-4);flex-wrap:wrap;gap:var(--space-2)}.sprints-header h2{margin:0;font-size:1.25rem}.sprint-list{display:flex;flex-direction:column;gap:var(--space-3)}.sprint-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-4)}.sprint-card-header{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-2)}.sprint-card-header h3{margin:0;font-size:1rem;flex:1}.sprint-card-status{font-size:.75rem;font-weight:600;padding:2px 8px;border-radius:999px}.sprint-card-status--PLANNING{background:var(--border);color:var(--text-muted)}.sprint-card-status--ACTIVE{background:color-mix(in srgb,var(--accent) 15%,transparent);color:var(--accent)}.sprint-card-status--COMPLETED{background:color-mix(in srgb,var(--green) 15%,transparent);color:var(--green)}.sprint-card-dates{font-size:.8rem;color:var(--text-muted);margin-bottom:var(--space-2)}.sprint-card-goal{font-size:.85rem;color:var(--text-muted);margin-bottom:var(--space-2);font-style:italic}.sprint-card-progress{margin-bottom:var(--space-2)}.sprint-card-progress-header{display:flex;justify-content:space-between;font-size:.8rem;margin-bottom:4px}.sprint-card-bar{height:6px;background:var(--border);border-radius:3px;overflow:hidden}.sprint-card-bar-fill{height:100%;background:var(--accent);border-radius:3px;transition:width .3s}.sprint-card-actions{display:flex;gap:var(--space-2);margin-top:var(--space-2)}.sprint-form{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-4);margin-bottom:var(--space-4);display:flex;flex-direction:column;gap:var(--space-2)}.sprint-form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2)}@media(max-width:640px){.sprint-form-row{grid-template-columns:1fr}}.sprint-empty{text-align:center;padding:var(--space-4);color:var(--text-muted)}.subtasks-tab{padding:var(--space-2) 0}.subtask-progress{margin-bottom:var(--space-2)}.subtask-progress-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px;font-size:.85rem}.subtask-progress-bar{width:100%;height:6px;background:var(--border);border-radius:3px;overflow:hidden}.subtask-progress-fill{height:100%;border-radius:3px;transition:width .3s}.subtask-list{display:flex;flex-direction:column}.subtask-item{display:flex;align-items:center;gap:8px;padding:6px 0;border-bottom:1px solid var(--border)}.subtask-item:last-child{border-bottom:none}.subtask-checkbox{accent-color:var(--accent)}.subtask-form{display:flex;gap:8px;margin-top:var(--space-2)}.labels-tab{padding:var(--space-2) 0}.labels-chips{display:flex;flex-wrap:wrap;gap:6px}.label-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:999px;font-size:.82rem;font-weight:500}.labels-add{margin-top:var(--space-3);position:relative}.labels-picker{margin-top:8px;border:1px solid var(--border);border-radius:var(--radius-lg);padding:8px;background:var(--bg-surface);max-height:200px;overflow-y:auto}.labels-picker-item{display:flex;align-items:center;gap:8px;width:100%;padding:6px 10px;border:none;background:none;cursor:pointer;border-radius:var(--radius);font-size:.85rem;text-align:left}.labels-picker-item:hover{background:var(--bg-hover)}.bulk-toolbar{position:fixed;bottom:-60px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:var(--space-3);background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-2) var(--space-4);box-shadow:var(--shadow-lg);z-index:50;transition:bottom .25s ease}.bulk-toolbar--visible{bottom:24px}.bulk-count{font-size:.85rem;font-weight:600;white-space:nowrap}.bulk-checkbox{accent-color:var(--accent);width:16px;height:16px;cursor:pointer;flex-shrink:0}.sort-controls{display:flex;align-items:center;gap:var(--space-1);margin-left:auto;flex-wrap:wrap}.sort-btn{font-size:.75rem;padding:3px 8px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-surface);cursor:pointer;color:var(--text-muted);transition:all .15s;white-space:nowrap}.sort-btn:hover{border-color:var(--accent);color:var(--text)}.sort-btn--active{background:var(--accent);color:#fff;border-color:var(--accent)}.template-list{display:flex;flex-direction:column;gap:var(--space-2)}.template-item{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-surface)}.template-item:hover{background:var(--bg-hover)}.template-item-title{font-size:.9rem;font-weight:500}.template-item-count{font-size:.75rem;color:var(--text-muted)}.template-apply-btn{white-space:nowrap}.recurrence-select{display:flex;gap:var(--space-2);align-items:center}@media(max-width:640px){.reports-grid{grid-template-columns:1fr}.report-completion-chart{height:60px}.bulk-toolbar{left:8px;right:8px;transform:none}.sort-controls{width:100%;overflow-x:auto;padding:4px 0}}.documents-section{max-width:800px}.documents-list{display:flex;flex-direction:column;gap:var(--space-2)}.document-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg)}.document-item:hover{background:var(--bg-hover)}.document-icon{color:var(--accent);flex-shrink:0}.document-info{flex:1;min-width:0}.document-name{font-size:.9rem;font-weight:500;color:var(--accent);text-decoration:none;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.document-name:hover{text-decoration:underline}.document-meta{font-size:.7rem;color:var(--text-muted);margin-top:2px}.export-project-list{display:flex;flex-direction:column;gap:var(--space-2)}.export-project-row{display:flex;align-items:center;justify-content:space-between;padding:10px var(--space-3);background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md)}.export-project-name{font-size:.9rem;font-weight:500}.export-project-actions{display:flex;gap:var(--space-1)}.notes-back-project-link{display:flex;align-items:center;gap:2px;color:var(--accent);font-size:var(--text-sm);font-weight:var(--weight-semibold);text-decoration:none}.notes-back-project-link:hover{opacity:.8}.avatar--img{object-fit:cover;border-radius:50%;padding:0}
