@import"https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@300;400;500;600;700&display=swap";.planner-board{background:var(--surface-1);color:var(--text);border:1px solid var(--border);border-radius:8px;overflow:hidden;-webkit-user-select:none;user-select:none}.planner-toolbar{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--border);background:var(--surface-1);flex-wrap:wrap}.planner-toolbar-group{display:flex;align-items:center;gap:6px}.planner-toolbar label{font-size:.8rem;color:var(--text);opacity:.7}.planner-toolbar select,.planner-toolbar input{padding:4px 8px;border:1px solid var(--border);border-radius:4px;background:var(--surface-1);color:var(--text);font-size:.8rem}.planner-month-nav{display:flex;align-items:center;gap:8px;font-weight:600;font-size:.95rem}.planner-month-nav button{background:none;border:1px solid var(--border);border-radius:4px;color:var(--text);cursor:pointer;padding:4px 8px;font-size:.8rem}.planner-month-nav button:hover{background:var(--surface-2, rgba(0,0,0,.05))}.planner-scroll-area{overflow-x:auto;overflow-y:auto;max-height:calc(100vh - 220px)}.planner-grid{display:grid;min-width:100%}.planner-header-cell{text-align:center;font-size:.7rem;padding:4px 0;border-bottom:1px solid var(--border);border-right:1px solid var(--border);background:var(--surface-1);position:sticky;top:0;z-index:2}.planner-header-cell.planner-weekend{background:var(--surface-2, rgba(0,0,0,.04))}.planner-header-cell.planner-today{background:var(--primary);color:#fff;font-weight:700}.planner-header-day{display:block;font-size:.65rem;opacity:.6}.planner-resource-label{position:sticky;left:0;z-index:3;background:var(--surface-1);border-bottom:1px solid var(--border);border-right:1px solid var(--border);padding:6px 10px;display:flex;align-items:center;gap:8px;min-width:180px}.planner-avatar{width:28px;height:28px;border-radius:50%;object-fit:cover;flex-shrink:0}.planner-avatar-placeholder{width:28px;height:28px;border-radius:50%;background:var(--primary);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:600;flex-shrink:0}.planner-resource-name{font-size:.82rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.planner-team-badge{font-size:.65rem;opacity:.6}.planner-resource-meta{font-size:.7rem;opacity:.7;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.planner-row-cells{display:contents}.planner-cell{border-bottom:1px solid var(--border);border-right:1px solid var(--border);min-height:36px;position:relative}.planner-cell.planner-weekend{background:var(--surface-2, rgba(0,0,0,.04))}.planner-cell.planner-today{border-left:2px solid var(--primary)}.planner-cell.planner-drag-preview{background:var(--primary);opacity:.15}.planner-bar-container{position:relative;min-height:36px}.planner-bar.moving{opacity:.85;box-shadow:0 8px 20px #00000059,0 2px 4px #00000040;transform:scale(1.02);pointer-events:none;cursor:grabbing}.planner-bar.resizing{outline:2px dashed rgba(255,255,255,.8);outline-offset:-2px;box-shadow:0 4px 12px #00000040;transition:width 60ms ease-out,left 60ms ease-out;cursor:ew-resize}.planner-bar{position:absolute;top:2px;height:28px;border-radius:4px;display:flex;align-items:center;padding:0 6px;font-size:.7rem;color:#fff;cursor:grab;overflow:hidden;white-space:nowrap;z-index:1;box-shadow:0 1px 3px #00000026;transition:box-shadow .1s}.planner-bar:hover{box-shadow:0 2px 6px #00000040;z-index:5}.planner-bar:active{cursor:grabbing}.planner-bar-label{overflow:hidden;text-overflow:ellipsis;flex:1;font-weight:500}.planner-bar-hours{font-size:.6rem;opacity:.85;margin-left:4px;flex-shrink:0}.planner-resize-handle{position:absolute;top:0;bottom:0;width:6px;cursor:ew-resize;z-index:2}.planner-resize-handle.left{left:0}.planner-resize-handle.right{right:0}.planner-bar-delete{position:absolute;top:1px;right:2px;background:none;border:none;color:#fff;cursor:pointer;font-size:.6rem;opacity:0;padding:2px;line-height:1}.planner-bar:hover .planner-bar-delete{opacity:.7}.planner-bar-delete:hover{opacity:1!important}.planner-bar-tooltip{position:absolute;bottom:100%;left:50%;transform:translate(-50%);background:var(--surface-1);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:8px 10px;font-size:.75rem;white-space:nowrap;z-index:100;box-shadow:0 4px 12px #00000026;pointer-events:none}.planner-capacity-row{display:contents}.planner-capacity-cell{border-bottom:2px solid var(--border);border-right:1px solid var(--border);height:6px;min-height:6px}.planner-capacity-under{background:var(--warning, #fb923c)}.planner-capacity-optimal{background:#86efac}.planner-capacity-full{background:#22c55e}.planner-capacity-over{background:var(--danger, #ef4444)}.planner-sidebar-toggle{background:none;border:1px solid var(--border);border-radius:4px;color:var(--text);cursor:pointer;padding:4px 10px;font-size:.8rem}.planner-sidebar{position:fixed;top:0;right:0;width:320px;height:100vh;background:var(--surface-1);border-left:1px solid var(--border);z-index:50;display:flex;flex-direction:column;box-shadow:-4px 0 12px #0000001a}.planner-sidebar-header{padding:12px 16px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;font-weight:600;font-size:.9rem}.planner-sidebar-close{background:none;border:none;color:var(--text);cursor:pointer;font-size:1.1rem}.planner-sidebar-search{margin:8px 12px;padding:6px 10px;border:1px solid var(--border);border-radius:4px;background:var(--surface-1);color:var(--text);font-size:.8rem;width:calc(100% - 24px)}.planner-sidebar-list{flex:1;overflow-y:auto;padding:0 12px 12px}.planner-sidebar-project{margin-top:12px;border:1px solid var(--border);border-radius:6px;background:var(--surface-1);overflow:hidden}.planner-sidebar-project-title{font-size:.75rem;font-weight:600;text-transform:uppercase;opacity:.6;margin-bottom:4px}.planner-sidebar-project-header{display:flex;align-items:center;gap:8px;width:100%;padding:8px 10px;background:var(--surface-2, transparent);border:none;border-radius:0;cursor:pointer;color:var(--text);text-align:left;font-size:.82rem;font-weight:600}.planner-sidebar-project-header:hover{background:var(--hover-bg, rgba(0,0,0,.04))}.planner-sidebar-project-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.planner-sidebar-project-count{flex-shrink:0;font-size:.7rem;font-weight:600;opacity:.7;background:var(--surface-1);border:1px solid var(--border);border-radius:10px;padding:1px 8px}.planner-sidebar-project-body{padding:6px 8px 8px;border-top:1px solid var(--border)}.planner-sidebar-issue{padding:6px 8px;border:1px solid var(--border);border-radius:4px;margin-bottom:4px;cursor:grab;font-size:.78rem;background:var(--surface-1);display:flex;align-items:center;gap:6px}.planner-sidebar-issue:hover{background:var(--surface-2, rgba(0,0,0,.03))}.planner-sidebar-issue:active{cursor:grabbing}.planner-sidebar-issue-key{font-weight:600;color:var(--primary);flex-shrink:0}.planner-sidebar-issue-summary{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.planner-sidebar-issue-estimate{font-size:.65rem;opacity:.6;flex-shrink:0}.planner-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:200;display:flex;align-items:center;justify-content:center}.planner-modal{background:var(--surface-1);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:0;min-width:400px;max-width:500px;box-shadow:0 8px 24px #0003}.planner-modal-header{padding:14px 18px;border-bottom:1px solid var(--border);font-weight:600;font-size:.95rem;display:flex;align-items:center;justify-content:space-between}.planner-modal-body{padding:16px 18px}.planner-modal-body label{display:block;font-size:.78rem;font-weight:500;margin-bottom:4px;margin-top:10px}.planner-modal-body label:first-child{margin-top:0}.planner-modal-body input,.planner-modal-body select,.planner-modal-body textarea{width:100%;padding:6px 10px;border:1px solid var(--border);border-radius:4px;background:var(--surface-1);color:var(--text);font-size:.82rem;box-sizing:border-box}.planner-modal-body textarea{min-height:60px;resize:vertical}.planner-modal-actions{padding:12px 18px;border-top:1px solid var(--border);display:flex;gap:8px;justify-content:flex-end}.planner-modal-actions button{padding:6px 14px;border-radius:4px;border:1px solid var(--border);cursor:pointer;font-size:.8rem;background:var(--surface-1);color:var(--text)}.planner-modal-actions button.primary{background:var(--primary);color:#fff;border-color:var(--primary)}.planner-modal-actions button.danger{background:var(--danger, #f44336);color:#fff;border-color:var(--danger, #f44336)}.planner-info-row{display:flex;gap:8px;font-size:.8rem;margin-bottom:4px}.planner-info-label{font-weight:500;min-width:80px;opacity:.7}.planner-loading{display:flex;align-items:center;justify-content:center;padding:40px;opacity:.5;font-size:.9rem}.planner-empty{text-align:center;padding:40px;opacity:.5;font-size:.85rem}:root{--bg: #20304C;--surface-1: #0C1A32;--surface-2: #20304C;--surface-3: #2a3b5c;--text: #e6ecf7;--text-muted: #8a98b8;--border: rgba(255,255,255,.08);--primary: #3b82f6;--primary-600: #2563eb;--accent: #10b981;--accent-2: #06b6d4;--warning: #f59e0b;--danger: #ef4444;--pink: #ec4899;--violet: #8b5cf6;--shadow: 0 4px 20px rgba(0,0,0,.25);--hover-bg: rgba(255,255,255,.04);--sidebar-bg: #0C1A32;--sidebar-surface: #0C1A32;--sidebar-text: #e6ecf7;--sidebar-text-muted: #8a98b8;--sidebar-border: rgba(255,255,255,.06);--sidebar-hover: rgba(255,255,255,.05)}@media (prefers-color-scheme: dark){:root{--bg: #20304C;--surface-1: #0C1A32;--surface-2: #20304C;--surface-3: #2a3b5c;--text: #e6ecf7;--text-muted: #8a98b8;--border: rgba(255,255,255,.08);--primary: #3b82f6;--primary-600: #2563eb;--accent: #10b981;--accent-2: #06b6d4;--warning: #f59e0b;--danger: #f43f5e;--pink: #f472b6;--violet: #a78bfa;--shadow: 0 4px 24px rgba(0,0,0,.35);--hover-bg: rgba(255,255,255,.04)}}[data-theme=light]{--bg: #F2F4F4;--surface-1: #ffffff;--surface-2: #f4f6fa;--surface-3: #e7ebf2;--text: #1a2440;--text-muted: #6b7693;--border: rgba(12,26,50,.1);--primary: #3b82f6;--primary-600: #2563eb;--accent: #10b981;--accent-2: #06b6d4;--warning: #f59e0b;--danger: #ef4444;--pink: #ec4899;--violet: #8b5cf6;--shadow: 0 4px 20px rgba(12,26,50,.08);--hover-bg: rgba(12,26,50,.04)}[data-theme=light] .nav-item,[data-theme=light] .nav-item .nav-icon{color:#b5b5c3}[data-theme=light] .nav-item:hover,[data-theme=light] .nav-item:hover .nav-icon{color:#fff}[data-theme=light] .nav-item.active,[data-theme=light] .nav-item.active .nav-icon{color:#5a8dee}[data-theme=dark]{--bg: #20304C;--surface-1: #0C1A32;--surface-2: #20304C;--surface-3: #2a3b5c;--text: #e6ecf7;--text-muted: #8a98b8;--border: rgba(255,255,255,.08);--primary: #3b82f6;--primary-600: #2563eb;--accent: #10b981;--accent-2: #06b6d4;--warning: #f59e0b;--danger: #f43f5e;--pink: #f472b6;--violet: #a78bfa;--shadow: 0 4px 24px rgba(0,0,0,.35);--hover-bg: rgba(255,255,255,.04)}*{box-sizing:border-box}.logout-btn{position:relative;overflow:hidden;isolation:isolate;transition:color .3s ease}.logout-btn:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--danger,#e53935);transform:scaleX(0);transform-origin:left center;transition:transform .5s ease;z-index:-1}.logout-btn:hover:before{transform:scaleX(1)}.logout-btn:hover{color:#fff}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:IBM Plex Sans,sans-serif;overflow:hidden;transition:background .35s ease,color .35s ease}.app{display:flex;height:100vh;overflow:hidden;position:relative}.main-container{flex:1;display:flex;flex-direction:column;height:100vh;overflow:hidden}.sidebar{width:270px;background:var(--sidebar-bg, #0b1836);color:var(--sidebar-text,#e6ecf7);padding:16px 0;display:flex;flex-direction:column;gap:12px;border-right:none;position:relative;transition:width .28s ease-in-out,padding .28s ease-in-out;flex:0 0 auto;height:100vh;overflow:visible}.sidebar .brand{color:var(--sidebar-text,#e6ecf7)}.sidebar-profile{background:transparent;border:none;border-radius:0;padding:12px;margin:4px 0 8px;display:flex;align-items:center;justify-content:center}.sidebar-profile .user-mini{color:var(--sidebar-text,#e6ecf7);flex-direction:column;gap:6px;text-align:center;width:100%;padding:4px 0;background:transparent;border:none}.sidebar-profile .user-mini .avatar{width:125px;height:125px;border-radius:50%;background:transparent;border:5px solid var(--bg);box-sizing:border-box;overflow:hidden;font-size:68px;transition:border-color .35s ease,background .35s ease}.sidebar-profile .user-mini .user-meta{text-align:center}.sidebar-profile .user-mini .user-name{font-size:14px;color:var(--sidebar-text,#e6ecf7)}.sidebar-profile .user-mini .user-role{color:var(--sidebar-text-muted,#8a98b8)}.sidebar-profile .notif-panel{left:50%;right:auto;transform:translate(-50%);color:var(--text)}.sidebar.collapsed .sidebar-profile{padding:6px}.sidebar.collapsed .sidebar-profile .user-mini .user-meta{display:none}.sidebar.collapsed .sidebar-profile .user-mini .avatar{width:40px;height:40px;font-size:18px}.sidebar-top{display:flex;align-items:center;justify-content:flex-start;gap:6px;padding-right:16px}.sidebar.collapsed .sidebar-top{justify-content:center}.brand{font-weight:800;font-size:32px;letter-spacing:.5px;text-align:center;width:100%}.collapse-btn{border:1px solid var(--border);background:var(--surface-1);border-radius:999px;width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;box-shadow:var(--shadow);color:var(--text)}.collapse-btn.edge{position:absolute;top:14px;right:-16px;z-index:25;cursor:pointer}.nav-group{position:relative}.nav-flyout{position:fixed;min-width:200px;background:var(--sidebar-bg,#0b1836);color:var(--sidebar-text,#e6ecf7);border:1px solid var(--sidebar-border,rgba(255,255,255,.08));border-radius:8px;box-shadow:0 8px 24px #00000040;padding:6px;z-index:1000;display:flex;flex-direction:column}.nav-flyout-title{padding:8px 10px 6px;font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--sidebar-text-muted,#8a98b8);font-weight:700}.nav-flyout-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:6px;color:var(--sidebar-text,#e6ecf7);text-decoration:none;font-size:13px}.nav-flyout-item:hover{background:var(--sidebar-hover,rgba(255,255,255,.06));color:#fff}.nav-flyout-item.active{background:var(--sidebar-hover,rgba(255,255,255,.08));color:#fff;font-weight:600}.nav-flyout-item .nav-icon{color:inherit}.collapse-btn svg{transition:transform .28s ease-in-out}.theme-toggle{align-self:flex-start}.nav{margin-top:6px;padding-top:25px;margin-right:0;margin-left:12px;flex:1 1 auto;min-height:0;overflow-y:auto;overflow-y:overlay;overflow-x:hidden;scrollbar-gutter:auto;scrollbar-width:none;scrollbar-color:transparent transparent;transition:scrollbar-color .2s ease}.nav:hover{scrollbar-color:var(--sidebar-text-muted,#8a98b8) transparent}.nav::-webkit-scrollbar{width:4px;height:4px;-webkit-appearance:none;-moz-appearance:none;appearance:none}.nav::-webkit-scrollbar-track{background:transparent}.nav::-webkit-scrollbar-thumb{background:transparent;border-radius:2px;transition:background .2s ease}.nav::-webkit-scrollbar-button,.nav::-webkit-scrollbar-button:start,.nav::-webkit-scrollbar-button:end,.nav::-webkit-scrollbar-button:vertical:start,.nav::-webkit-scrollbar-button:vertical:end,.nav::-webkit-scrollbar-button:horizontal:start,.nav::-webkit-scrollbar-button:horizontal:end,.nav::-webkit-scrollbar-button:vertical:decrement,.nav::-webkit-scrollbar-button:vertical:increment,.nav::-webkit-scrollbar-button:horizontal:decrement,.nav::-webkit-scrollbar-button:horizontal:increment{display:none!important;width:0!important;height:0!important;background:transparent!important}*::-webkit-scrollbar-button{display:none!important;width:0!important;height:0!important;background:transparent!important;-webkit-appearance:none!important;-moz-appearance:none!important;appearance:none!important}*::-webkit-scrollbar-button:single-button,*::-webkit-scrollbar-button:double-button,*::-webkit-scrollbar-button:start:decrement,*::-webkit-scrollbar-button:end:increment{display:none!important;width:0!important;height:0!important;background:transparent!important;-webkit-appearance:none!important;-moz-appearance:none!important;appearance:none!important}.nav:hover::-webkit-scrollbar-thumb{background:var(--sidebar-text-muted,#8a98b8)}.nav-item{display:flex;align-items:center;gap:10px;padding:14px;margin:0;border-radius:26px 0 0 26px;color:#b5b5c3;text-decoration:none;border:none;font-size:14px;font-weight:500;line-height:25px;transition:transform .35s ease,color .35s ease,background .35s ease,padding .35s ease}.nav-item .nav-icon{color:#b5b5c3;transition:color .35s ease}.nav-item:hover{background:transparent;color:#fff;padding-left:20px}.nav-item.active:hover{background:var(--bg);padding-left:14px}.nav-item:hover .nav-icon{color:#fff}.nav-item{position:relative}.nav-item.active{background:var(--bg);color:#fff;font-weight:700;border-radius:26px 0 0 26px;margin-right:0}.nav-item.active .nav-icon{color:#fff}.nav-item:before{content:"";position:absolute;top:-26px;right:0;width:26px;height:26px;background:transparent;pointer-events:none;-webkit-mask-image:radial-gradient(circle 26px at 0 0,transparent 26px,#000 27px);mask-image:radial-gradient(circle 26px at 0 0,transparent 26px,#000 27px);transition:background .35s ease}.nav-item:after{content:"";position:absolute;bottom:-26px;right:0;width:26px;height:26px;background:transparent;pointer-events:none;-webkit-mask-image:radial-gradient(circle 26px at 0 100%,transparent 26px,#000 27px);mask-image:radial-gradient(circle 26px at 0 100%,transparent 26px,#000 27px);transition:background .35s ease}.nav-item.active:before{background:var(--bg)}.nav-item.active:after{background:var(--bg)}.nav-icon{width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;color:inherit}.nav-label{white-space:nowrap}.nav-group-toggle{background:transparent;border:none;cursor:pointer;text-align:left;font-family:inherit;width:100%}.nav-group-toggle .nav-label{flex:1}.nav-caret{display:inline-flex;align-items:center;justify-content:center;margin-left:auto;margin-right:4px;transition:transform .25s ease;font-size:12px;opacity:.8}.nav-caret.open{transform:rotate(90deg)}.nav-group-children{display:grid;grid-template-rows:0fr;transition:grid-template-rows .28s ease-in-out;overflow:hidden}.nav-group-children.open{grid-template-rows:1fr}.nav-group-children-inner{display:flex;flex-direction:column;min-height:0;overflow:hidden;opacity:0;transform:translateY(-4px);transition:opacity .25s ease-in-out,transform .28s ease-in-out}.nav-group-children.open .nav-group-children-inner{opacity:1;transform:translateY(0)}.nav-item.nav-child{padding-left:38px;font-size:13px}.nav-item.nav-child:hover{padding-left:44px}.nav-item.nav-child.active{background:transparent;color:#fff;font-weight:500}.nav-item.nav-child.active:before,.nav-item.nav-child.active:after{background:transparent}.sidebar-bottom{margin-top:auto}.sidebar.collapsed{width:76px;padding:16px 0}.sidebar.collapsed .brand{font-size:30px;width:100%;text-align:center}.sidebar.collapsed .theme-toggle{font-size:10px}.sidebar.collapsed .nav-item{justify-content:center;padding-left:0;padding-right:0}.sidebar.collapsed .nav-label{display:none}.sidebar.collapsed .collapse-btn svg{transform:none}.sidebar.collapsed .nav-item.active{background:transparent;border-radius:0;color:#fff;margin-right:0}.sidebar.collapsed .nav-item.active:before,.sidebar.collapsed .nav-item.active:after{background:transparent;display:none}.sidebar.collapsed .nav-item:hover{padding-left:0}.sidebar.collapsed .nav-caret{display:none}.sidebar.collapsed .nav{margin-left:0}.sidebar.collapsed .collapse-btn.edge{right:-16px}.user-name{font-weight:600;margin-top:1rem;margin-bottom:.25rem}.user-role{font-size:10px;color:var(--text-muted)}.content{flex:1;padding:24px 24px 0;position:relative;z-index:0;overflow:auto;display:flex;flex-direction:column;scrollbar-width:thin;scrollbar-color:var(--text-muted) transparent}.content::-webkit-scrollbar{width:6px;height:6px}.content::-webkit-scrollbar-track{background:transparent}.content::-webkit-scrollbar-thumb{background:var(--text-muted);border-radius:3px}.topbar{position:relative;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 12px;background:var(--bg);border-bottom:none;box-shadow:none;height:60px;width:100%;margin-right:1.5rem;transition:background .35s ease}.topbar:after{content:"";position:absolute;left:1rem;right:1rem;bottom:0;height:1px;background:var(--border)}.topbar-left{display:flex;align-items:center;gap:24px}.topbar-left>.autosave-indicator-wrap:first-child{margin-left:12px}.sync-btn{display:inline-flex;align-items:center;gap:8px;height:36px;padding:0 14px;border-radius:8px;background:var(--accent,#4f46e5);color:#fff;border:1px solid transparent;font-size:13px;font-weight:600;cursor:pointer;transition:background .2s ease,transform .1s ease,opacity .2s ease;box-shadow:var(--shadow)}.sync-btn:hover:not(:disabled){filter:brightness(1.08)}.sync-btn:active:not(:disabled){transform:translateY(1px)}.sync-btn:disabled{opacity:.7;cursor:not-allowed}.sync-btn .sync-btn-icon{width:14px;height:14px}.sync-btn.syncing{background:var(--accent,#4f46e5)}.user-mini{display:flex;align-items:center;gap:12px;color:var(--text);height:100%;padding:0 10px}.avatar{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:transparent}.user-meta .user-name{font-weight:700;line-height:1;font-size:12px;color:var(--text)}.user-meta .user-role{font-size:10px;color:var(--text-muted);margin-top:2px}.topbar-actions{display:flex;align-items:center;gap:10px}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:8px;background:var(--surface-2);border:1px solid var(--border);color:var(--text-muted)}.icon-btn:hover{background:var(--hover-bg)}.icon-btn svg{width:20px;height:20px;display:block}.user-switch{background:var(--surface-2)}.page{flex:1}.footer{margin-left:16px;padding:16px 0;border-top:1px solid var(--border);margin-top:0;color:var(--text-muted);font-size:12px;display:flex;align-items:center;justify-content:space-between}.page h1{margin-top:0}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}.grid.one{grid-template-columns:1fr}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.grid.full-width{grid-template-columns:1fr;width:100%}.card{background:var(--surface-1);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow);overflow:auto;position:relative;scrollbar-width:thin;scrollbar-color:var(--text-muted) transparent}.card::-webkit-scrollbar{width:6px;height:6px}.card::-webkit-scrollbar-track{background:transparent}.card::-webkit-scrollbar-thumb{background:var(--text-muted);border-radius:3px}.widget-shell-body{scrollbar-width:thin;scrollbar-color:var(--text-muted) transparent}.widget-shell-body::-webkit-scrollbar{width:6px;height:6px}.widget-shell-body::-webkit-scrollbar-track{background:transparent}.widget-shell-body::-webkit-scrollbar-thumb{background:var(--text-muted);border-radius:3px}.card.full-width{width:100%;max-width:none;resize:none}.table.modern th{padding:12px 16px;text-transform:uppercase;font-size:10px;letter-spacing:.5px;color:var(--text-muted);border-bottom:2px solid var(--border)}.table.modern td{padding:12px 16px;vertical-align:middle}.table.modern tr:hover td{background:var(--hover-bg)}.table.modern select,.table.modern input{background:var(--surface-1);border-color:transparent}.table.modern select:hover,.table.modern input:hover{border-color:var(--border)}.card{--card-accent: var(--accent)}.card:after{display:none}.card.accent-primary{--card-accent: var(--primary)}.card.accent-emerald{--card-accent: var(--accent)}.card.accent-cyan{--card-accent: var(--accent-2)}.card.accent-warning{--card-accent: var(--warning)}.card.accent-danger{--card-accent: var(--danger)}.card-title{padding:14px 16px;border-bottom:1px solid var(--border);font-weight:600;background:var(--surface-1)}.card-body{padding:16px}.form label{display:flex;flex-direction:column;gap:6px;margin:8px 0}input,select,textarea,button{padding:10px 12px;border-radius:8px;border:1px solid var(--border);background:var(--surface-2);color:var(--text)}button{cursor:pointer;background:var(--primary);border:1px solid var(--primary);color:#fff;border-radius:8px}button:hover{filter:brightness(1.04)}.button,a.button,button.button{display:inline-flex;align-items:center;justify-content:center;padding:10px 12px;border-radius:8px;background:var(--primary);border:1px solid var(--primary);color:#fff;text-decoration:none;cursor:pointer;font-weight:600}.button:hover{filter:brightness(1.04);text-decoration:none}.button:focus{outline:2px solid var(--primary)}.form-actions{display:flex;gap:10px;margin-top:8px}.form-actions.right{justify-content:flex-end}.auth-switch{margin-top:12px}.auth-switch .link-btn{padding:0 6px}.auth-switch .cta-btn{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:8px;background:var(--surface-2);color:var(--text);border:1px solid var(--border);box-shadow:none;font-weight:700;letter-spacing:.2px;text-decoration:none}.auth-switch .cta-btn .arrow{margin-left:2px;transition:transform .15s ease}.auth-switch .cta-btn:hover{background:var(--primary);border-color:var(--primary);color:#fff}.auth-switch .cta-btn:hover .arrow{transform:translate(2px)}.auth-switch .cta-btn:focus{outline:2px solid var(--primary);outline-offset:2px}.table{width:100%;border-collapse:collapse}.table th,.table td{border-bottom:1px solid var(--border);padding:8px;text-align:left}.progress{position:relative;height:24px;background:var(--surface-2);border-radius:8px;overflow:hidden;border:1px solid var(--border)}.progress-fill{position:absolute;left:0;top:0;bottom:0;background:var(--primary)}.progress-label{position:absolute;width:100%;text-align:center;line-height:24px;font-size:10px;color:var(--surface-2);font-weight:700;text-shadow:0 1px 2px rgba(0,0,0,.2)}.toolbar{display:flex;gap:12px;align-items:end;margin-bottom:12px}.list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:12px}.list-item{display:flex;align-items:center;justify-content:space-between;padding:12px;border:1px solid var(--border);border-radius:8px;background:var(--surface-2);position:relative;overflow:hidden}.list-item:after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:linear-gradient(90deg,var(--accent),var(--accent-2))}.card,.list-item,.tree-row{transition:background .18s ease,box-shadow .18s ease,border-color .18s ease}.card:hover{box-shadow:0 14px 36px #0000001f}.list-item:hover,.tree-row:hover{background:var(--surface-1);box-shadow:0 6px 18px #00000014}@media (prefers-reduced-motion: reduce){.card,.list-item,.tree-row{transition:background .18s ease,box-shadow .18s ease,border-color .18s ease}.card:hover,.list-item:hover,.tree-row:hover{transform:none}}.bold{font-weight:600}@media (max-width: 900px){.grid.two{grid-template-columns:1fr}}.status-pill{display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border-radius:999px;border:1px solid var(--border);background:var(--surface-2);color:var(--text);font-weight:600}.status-pill.connected{border-color:var(--accent);background:#10b9811f;color:var(--accent)}.status-pill.failed{border-color:var(--danger);background:#ef44441f;color:var(--danger)}.ok-icon{display:inline-flex;width:18px;height:18px}.spinner{width:16px;height:16px;border-radius:50%;border:2px solid transparent;border-top-color:var(--accent-2);border-right-color:var(--accent);box-shadow:0 0 0 1px #0000000a inset;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.icon-btn.resync-btn{color:var(--text);border:none;background:transparent}.icon-btn.resync-btn svg{width:24px;height:24px}.topbar .icon-btn.resync-btn{height:100%;min-width:56px;width:56px;border-radius:8px;overflow:visible;display:inline-flex;align-items:center;justify-content:center;position:relative}.icon-btn.resync-btn:hover{background:var(--hover-bg)}.icon-btn.resync-btn:active svg{transform:rotate(-20deg)}.icon-btn.resync-btn svg{transition:transform .2s ease}.icon-btn.resync-btn:focus-visible{outline:2px solid var(--accent-2);outline-offset:2px;border-radius:8px}.jira-sync-icon{width:22px;height:22px;display:inline-block;color:currentColor}.status-pill .jira-sync-icon{width:18px;height:18px}.topbar .icon-btn.resync-btn .sync-label{position:absolute;left:44px;top:50%;transform:translate(6px,-50%);opacity:0;white-space:nowrap;pointer-events:none;transition:opacity .16s ease,transform .16s ease}.topbar .icon-btn.resync-btn .sync-label.show{opacity:1;transform:translateY(-50%)}.topbar-divider{width:1px;height:40px;background:var(--border)}.autosave-indicator{display:inline-flex;align-items:center;gap:8px;color:var(--text-muted)}.autosave-indicator-wrap{display:inline-flex;align-items:center;gap:10px;min-height:40px;margin:8px 8px 8px -16px;color:var(--text-muted);opacity:0;pointer-events:none;transition:opacity .18s ease}.autosave-indicator-wrap.visible{opacity:1}.autosave-square{width:40px;height:40px;border-radius:8px;background:var(--surface-2);border:1px solid var(--border);display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto}.autosave-square.saved{border-color:#16a34a;color:#16a34a;background:#16a34a1a}.autosave-check{font-size:18px;color:#16a34a;animation:autosave-pop .25s ease-out}@keyframes autosave-pop{0%{transform:scale(.6);opacity:0}to{transform:scale(1);opacity:1}}.autosave-square.error{border-color:var(--danger);color:var(--danger)}.autosave-spinner{width:18px;height:18px;border-radius:50%;border:2px solid transparent;border-top-color:var(--accent-2);border-right-color:var(--accent);animation:spin .7s linear infinite}.autosave-square.saved .autosave-spinner{border-top-color:var(--accent);border-right-color:var(--accent);animation:none}.autosave-square.error .autosave-spinner{border-top-color:var(--danger);border-right-color:var(--danger);animation:none}.autosave-message{font-size:12px;white-space:nowrap}.notif-wrap,.notif-bell{position:relative}.notif-bell.open{background:var(--hover-bg)}.badge{position:absolute;top:-4px;right:-4px;min-width:16px;height:16px;padding:0 4px;border-radius:999px;background:var(--danger);color:#fff;font-size:8px;line-height:16px;border:2px solid var(--surface-1)}.notif-panel{position:absolute;right:0;margin-top:8px;width:360px;max-height:420px;display:flex;flex-direction:column;background:var(--surface-1);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow);overflow:hidden;z-index:1000}.notif-header{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;background:var(--surface-1);border-bottom:1px solid var(--border)}.notif-title{font-weight:700}.link-btn{background:transparent;color:var(--primary);border:none;padding:6px 8px;border-radius:6px;cursor:pointer}.link-btn:hover{background:var(--hover-bg)}.link-btn.small{font-size:10px;padding:4px 6px}.notif-list{list-style:none;margin:0;padding:0;overflow:auto;scrollbar-gutter:stable}.notif-item{display:flex;align-items:flex-start;gap:10px;padding:12px;border-bottom:1px solid var(--border);background:var(--surface-1);position:relative}.notif-item:hover{background:var(--hover-bg)}.notif-item.unread .notif-text{font-weight:600}.notif-icon{width:28px;height:28px;border-radius:8px;display:flex;align-items:center;justify-content:center;border:1px solid var(--border);background:var(--surface-2);color:var(--text);flex:0 0 auto}.notif-icon.success{color:var(--accent)}.notif-icon.warning{color:var(--warning)}.notif-icon.info{color:var(--accent-2)}.notif-icon.message{color:var(--violet)}.notif-content{flex:1;min-width:0}.notif-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.notif-meta{font-size:10px;color:var(--text-muted);margin-top:2px}.notif-footer{display:flex;justify-content:center;padding:8px;background:var(--surface-2)}.dot{width:8px;height:8px;border-radius:999px;background:var(--primary);position:absolute;right:10px;top:18px}@media (max-width:520px){.notif-panel{width:88vw}}.app:after{content:"R";position:fixed;right:0;bottom:0;font-weight:900;font-size:min(50vw,760px);line-height:1;color:var(--text);opacity:.03;pointer-events:none;-webkit-user-select:none;user-select:none;z-index:0;letter-spacing:2px}[data-theme=dark] .app:after{opacity:.02}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:2000;padding:16px}.modal{width:min(520px,92vw);background:var(--surface-1);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow);overflow:visible;position:relative;z-index:3000}.modal-header{padding:14px 16px;border-bottom:1px solid var(--border);background:var(--surface-1);display:flex;align-items:center;justify-content:space-between}.modal-title{font-weight:700}.modal-body{padding:16px;color:var(--text)}.modal-actions{display:flex;justify-content:flex-end;gap:10px;padding:12px 16px;background:var(--surface-2);border-top:1px solid var(--border)}.modal .form label{background:var(--surface-2);padding:10px 12px;border-radius:10px;border:1px dashed var(--border)}.modal .form label:hover{background:var(--hover-bg)}.modal .form select,.modal .form input,.modal .form textarea{background:var(--surface-1)}.modal .form select:focus,.modal .form input:focus,.modal .form textarea:focus{outline:2px solid var(--primary);outline-offset:2px;border-color:var(--primary)}.elevate-select{position:relative;z-index:4000}.theme-switch{position:relative;display:inline-flex;align-items:center;width:48px;height:26px;cursor:pointer}.theme-switch input{position:absolute;opacity:0;width:0;height:0}.theme-switch .track{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--surface-3);border:1px solid var(--border);border-radius:999px;transition:background .2s ease,border-color .2s ease}.theme-switch .thumb{position:absolute;top:3px;left:3px;width:20px;height:20px;background:#fff;border-radius:999px;box-shadow:0 1px 3px #0003;transition:left .2s ease,transform .2s ease}.theme-switch:hover .thumb{transform:scale(1.08)}.theme-switch input:focus-visible+.track{outline:2px solid var(--accent)}.theme-switch.on .track{background:#10b981;border-color:#059669}.theme-switch.on .thumb{left:25px}.collapse-wrap{overflow:hidden;transition:max-height .26s ease-in-out,opacity .26s ease-in-out;max-height:1200px;opacity:1}.collapse-wrap.collapsed{max-height:0;opacity:0;pointer-events:none}.scroll-area{overflow:auto;scrollbar-gutter:stable}.scroll-area{scrollbar-width:thin;scrollbar-color:var(--text-muted) transparent}.scroll-area::-webkit-scrollbar{width:10px;height:10px}.scroll-area::-webkit-scrollbar-track{background:transparent;border-radius:10px}.scroll-area::-webkit-scrollbar-thumb{background:linear-gradient(180deg,var(--accent),var(--accent-2));border-radius:10px;border:2px solid rgba(0,0,0,0);background-clip:padding-box}.scroll-area:hover::-webkit-scrollbar-thumb{filter:brightness(.95)}.menu-list{display:flex;flex-direction:column;padding:8px}.menu-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:8px;background:transparent;border:1px solid transparent;color:var(--text);text-align:left;cursor:pointer}.menu-item:hover{background:var(--hover-bg)}.menu-item .mi-icon{width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center;color:inherit}.menu-divider{height:1px;background:var(--border);margin:6px 8px}.menu-header{display:flex;align-items:center;gap:12px;padding:12px 14px;border-bottom:1px solid var(--border);background:var(--surface-1)}.menu-sub{position:absolute;right:100%;top:0;width:220px}.menu-item.danger{color:var(--danger)}.theme-toggle-pill{display:inline-flex;align-items:center;cursor:pointer;position:relative;width:56px;height:28px;background:var(--surface-2);border:1px solid var(--border);border-radius:999px;padding:0;overflow:hidden;flex-shrink:0}.theme-toggle-pill .tt-icon{position:absolute;top:50%;transform:translateY(-50%);font-size:14px;line-height:1;pointer-events:none;z-index:1}.theme-toggle-pill .tt-sun{left:6px}.theme-toggle-pill .tt-moon{right:6px}.theme-toggle-pill .tt-thumb{position:absolute;top:50%;left:3px;width:22px;height:22px;transform:translateY(-50%);background:var(--surface-1);border-radius:999px;box-shadow:var(--shadow);transition:left .22s ease-in-out;z-index:2}.theme-toggle-pill.dark .tt-thumb{left:31px}input[type=number]::-webkit-outer-spin-button,input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}.stepper-input{position:relative;display:inline-flex;align-items:center;height:40px}.stepper-input input{padding-right:44px;height:40px;line-height:40px;text-align:center;width:70px}.stepper-btn{position:absolute;right:4px;width:24px;height:18px;border:none;background:transparent;color:var(--text);border-radius:4px;display:flex;align-items:center;justify-content:center;line-height:1;cursor:pointer;transition:color .15s ease;z-index:2}.stepper-btn.up{top:4px}.stepper-btn.down{bottom:4px}.stepper-btn:hover{color:var(--primary);background:transparent}.stepper-btn:active{filter:brightness(.97)}.stepper-btn:focus{outline:none}.stepper-btn svg{width:16px;height:16px}.table thead th{background:var(--surface-2);font-weight:700}input:focus,select:focus,textarea:focus{outline:2px solid var(--primary);outline-offset:0;border-color:var(--primary);background:var(--surface-1)}.content>.page.auth-full{margin:-24px;height:calc(100vh + 48px)}.planning-fullscreen{margin:0;display:flex;flex-direction:column;flex:1 1 auto;min-height:0;overflow:hidden;width:100%;background:var(--bg)}.planning-fullscreen .planner-board{flex:1 1 auto;display:flex;flex-direction:column;min-height:0;border-radius:0;border:none;width:100%;min-width:0}.planning-fullscreen .planner-scroll-area{flex:1 1 auto;min-height:0;max-height:none;overflow-y:auto;overflow-x:auto;scrollbar-width:thin;scrollbar-color:var(--text-muted) transparent;width:100%;min-width:0}.auth-wrap{display:flex;width:100%;height:100vh;background-size:cover;background-position:center;position:relative}.auth-full{height:100vh;overflow:hidden;margin:0;padding:0}.planning-fullscreen .planner-scroll-area::-webkit-scrollbar{width:6px;height:6px}.planning-fullscreen .planner-scroll-area::-webkit-scrollbar-track{background:transparent}.planning-fullscreen .planner-scroll-area::-webkit-scrollbar-thumb{background:var(--text-muted);border-radius:3px;opacity:.4}.content:has(.planning-fullscreen){padding:0}.content:has(.planning-fullscreen)>.page{display:flex;flex-direction:column;min-height:0}.content:has(.planning-fullscreen) .footer{padding:12px 24px;margin-top:0;flex:0 0 auto}.auth-left,.auth-right{flex:1 1 50%;display:flex;min-width:0}.auth-left{position:relative;padding:32px;align-items:center;justify-content:center;color:#fff;border:none;border-radius:0;box-shadow:none}.auth-left>*{position:relative;z-index:1}.auth-left:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:#0000008c}.auth-hero h1{font-size:34px;line-height:1.1;margin:0 0 12px}.auth-hero p{font-size:14px;color:var(--text-muted);margin:0}.auth-right{display:flex;align-items:center;justify-content:center;padding:32px}.auth-form{width:min(520px,92vw)}.auth-disclaimer{margin-top:12px;font-size:10px;color:var(--text-muted)}.auth-disclaimer a{color:inherit;text-decoration:underline}.auth-divider,.auth-illustration{display:none}.auth-panel{width:min(520px,92vw);padding:24px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#fff}.auth-panel .auth-disclaimer{color:#ffffffd9}.auth-panel label{color:#fff}.auth-panel input,.auth-panel select,.auth-panel textarea{background:#ffffff1f;border:1px solid rgba(255,255,255,.28);color:#fff}.auth-panel input::placeholder{color:#ffffffbf}.auth-panel button{background:var(--primary);border-color:var(--primary);color:#fff}@media (max-width: 900px){.auth-wrap{flex-direction:column}.auth-left{order:2}.auth-right{order:1}}.brand-title{font-size:54px;line-height:1;font-weight:900;margin:0 0 8px;letter-spacing:.5px}.brand-subtitle{font-size:18px;font-weight:700;margin:0 0 8px}.brand-subtext{font-size:14px;color:var(--text-muted);margin:0}.auth-socials{display:flex;gap:10px;margin-top:16px}.social-btn{width:40px;height:40px;border-radius:8px;border:1px solid var(--border);background:var(--surface-2);display:inline-flex;align-items:center;justify-content:center;color:var(--text)}.social-btn:hover{background:var(--hover-bg)}@media (max-width: 600px){.brand-title{font-size:38px}.brand-subtitle{font-size:16px}}.auth-right .brand-title,.auth-right .brand-subtitle,.auth-right .brand-subtext{color:#fff}.auth-right .brand-subtext{opacity:.92}.auth-right .auth-socials{justify-content:center}.auth-right .social-btn{background:#ffffff24;border-color:#ffffff59;color:#fff}.auth-right .social-btn:hover{background:#ffffff38}
