*{box-sizing:border-box}button:focus-visible,a:focus-visible,[role=button]:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--accent,#4f46e5);outline-offset:2px}:root{--bg:#f6f7fb;--surface:#fff;--surface2:#f1f3f9;--surface-tint:#f9fafc;--border:#e3e7f0;--border-soft:#edeff6;--text:#12152b;--text1:#12152b;--text2:#5b6478;--text3:#94a0bd;--text4:#b7bfd6;--accent:#4f46e5;--accent-dark:#4338ca;--accent-soft:#eef0fe;--accent-dim:#eef0fe;--success:#059669;--warning:#92400e;--warning-bg:#fffbeb;--warning-border:#fde7b0;--critical:#dc2626;--critical-bg:#fef2f2;--critical-border:#fbd5d5;--agile:#059669;--safe:#7c3aed;--waterfall:#d97706;--shadow-xs:0 1px 2px #12152b0d;--shadow-sm:0 4px 12px #12152b0f, 0 1px 2px #12152b0a;--shadow-lg:0 24px 64px #12152b47;--shadow-accent:0 4px 14px #4f46e53d;--grad-accent:linear-gradient(135deg,#4f46e5,#4338ca)}html,body{background:var(--bg);color:var(--text1);-webkit-font-smoothing:antialiased;max-width:100vw;margin:0;padding:0;font-family:Inter,system-ui,-apple-system,sans-serif;overflow-x:hidden}#root{min-height:100vh}.app-shell{height:100dvh}.gantt-scroll-height{max-height:calc(100dvh - 200px)}a{color:inherit;text-decoration:none}.page{padding:32px 40px}.page-header{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.page-title{letter-spacing:-.02em;color:var(--text1);font-size:22px;font-weight:800}.sidebar{background:var(--surface);border-right:1px solid var(--border);flex-shrink:0;width:248px;transition:width .18s;position:relative;overflow:hidden}.sidebar.collapsed{width:72px}.sidebar-toggle{background:var(--surface);border:1px solid var(--border);cursor:pointer;width:24px;height:24px;color:var(--text3);z-index:5;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;top:18px;right:-12px;box-shadow:0 1px 3px #12152b1a}.sidebar-toggle:hover{color:var(--text1);border-color:var(--accent)}.sidebar-logo{color:var(--text1);align-items:center;gap:8px;padding:22px 20px 14px;font-size:16px;font-weight:700;display:flex}.sidebar-logo span{color:var(--accent)}.sidebar-section{text-transform:uppercase;letter-spacing:.06em;color:var(--text3);padding:20px 20px 10px;font-size:11px;font-weight:700}.nav-item{color:var(--text2);cursor:pointer;border-radius:8px;align-items:center;gap:10px;margin-bottom:3px;padding:7px 12px;font-size:13px;font-weight:500;display:flex}.nav-item:hover{background:var(--surface2);color:var(--text1)}.nav-item.active{background:var(--accent-dim);color:var(--accent);font-weight:600}.signout-btn{background:var(--surface);border:1px solid var(--border);color:var(--critical);cursor:pointer;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;gap:6px;padding:5px 10px;font-size:12px;font-weight:600;transition:background .15s,border-color .15s;display:flex}.signout-btn:hover{background:var(--critical-bg);border-color:var(--critical)}.mobile-topbar,.sidebar-backdrop,.sidebar-mobile-close{display:none}.plan-limit-wrap{padding:16px 32px 0}@media (width<=860px){.sidebar{z-index:40;max-width:84vw;box-shadow:none;box-sizing:border-box;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);transition:transform .22s;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%);width:268px!important}.sidebar.mobile-open{transform:translate(0);box-shadow:0 24px 64px #12152b59}.sidebar-toggle{display:none}.sidebar-mobile-close{border:1px solid var(--border);background:var(--surface);width:30px;height:30px;color:var(--text2);cursor:pointer;z-index:5;border-radius:8px;justify-content:center;align-items:center;display:flex;position:absolute;top:14px;right:14px}.sidebar-backdrop{z-index:35;background:#12152b6b;display:block;position:fixed;inset:0}.nav-item{padding:11px 14px;font-size:14px}.signout-btn{padding:8px 10px}.mobile-topbar{height:52px;padding:0 14px;padding-top:env(safe-area-inset-top);height:calc(52px + env(safe-area-inset-top));box-sizing:border-box;background:var(--surface);border-bottom:1px solid var(--border);z-index:20;flex-shrink:0;align-items:center;gap:10px;display:flex;position:sticky;top:0}.mobile-menu-btn{border:1px solid var(--border);background:var(--surface);width:36px;height:36px;color:var(--text1);cursor:pointer;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:flex}.mobile-menu-btn:active{background:var(--surface2)}.mobile-topbar-logo{width:20px;height:20px}.mobile-topbar-title{color:var(--text1);font-size:15px;font-weight:700}.plan-limit-wrap{padding:10px 14px 0}}@media (width<=640px){.page{padding:16px 14px 28px}.page-header{flex-direction:column;align-items:flex-start;gap:10px}.page-title{font-size:19px}.btn{min-height:40px}.table-scroll{-webkit-overflow-scrolling:touch;overflow-x:auto}}.btn{cursor:pointer;border:1px solid #0000;border-radius:10px;align-items:center;gap:6px;padding:9px 16px;font-size:13px;font-weight:700;transition:opacity .15s,box-shadow .15s,transform .15s;display:inline-flex}.btn:hover{opacity:.9}.btn:disabled{cursor:not-allowed;opacity:.5}.btn-primary{background:var(--grad-accent);color:#fff;box-shadow:var(--shadow-accent);border:none}.btn-secondary{background:var(--surface);color:var(--accent);border-color:var(--border);box-shadow:var(--shadow-xs)}.btn-ghost{color:var(--text2);border-color:var(--border);background:0 0;font-weight:600}.btn-danger-ghost{background:var(--critical-bg);color:var(--critical);border-color:var(--critical-border)}.tab-bar{background:var(--surface2);border-radius:12px;gap:4px;padding:4px;display:inline-flex}.tab{color:var(--text2);cursor:pointer;border-radius:9px;padding:9px 16px;font-size:13px;font-weight:600}.tab.active{background:var(--surface);color:var(--accent);font-weight:700;box-shadow:0 1px 3px #12152b1a}.chip{letter-spacing:.01em;border-radius:999px;padding:4px 10px;font-size:11px;font-weight:700;display:inline-block}.chip-idea{color:#6b7690;background:#94a0bd18}.chip-seed{color:var(--accent);background:#4f46e518}.chip-growth{color:var(--agile);background:#05966918}.chip-graduated{color:var(--waterfall);background:#d9770618}.chip-active{color:var(--accent);background:#4f46e518}.chip-exited{color:var(--agile);background:#05966918}.chip-expired{background:var(--critical-bg);color:var(--critical)}.card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-xs);border-radius:16px;min-width:0;padding:24px}.data-table{border-collapse:collapse;width:100%;font-size:13px}.data-table th{text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--text3);border-bottom:1px solid var(--border);background:var(--surface-tint);padding:10px 12px;font-size:11px;font-weight:800}.data-table td{border-bottom:1px solid var(--border);color:var(--text1);vertical-align:top;padding:12px}.data-table tr:last-child td{border-bottom:none}.data-table tr:hover{background:var(--surface2)}.data-table--resizable{table-layout:fixed}.data-table--resizable th{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.data-table--resizable td:first-child,.data-table--resizable th:first-child{min-width:220px}.data-table--resizable td:first-child{overflow-wrap:break-word;word-break:break-word}.data-table-scroll{overflow:auto hidden}@media (width<=640px){.data-table--responsive-cards{table-layout:auto}.data-table-scroll:has(.data-table--responsive-cards){overflow-x:visible}.data-table--responsive-cards thead{display:none}.data-table--responsive-cards,.data-table--responsive-cards tbody{width:100%;display:block}.data-table--responsive-cards tr{border:1px solid var(--border);border-radius:12px;width:100%;margin:10px;padding:12px;display:block}.data-table--responsive-cards td{border-bottom:none;width:100%;padding:6px 0;display:block}.data-table--responsive-cards td[data-label]{border-top:1px dashed var(--border-soft);padding-top:8px}.data-table--responsive-cards td[data-label]:before{content:attr(data-label);text-transform:uppercase;letter-spacing:.05em;color:var(--text3);margin-bottom:4px;font-size:10px;font-weight:800;display:block}.data-table--responsive-cards td.pl-card-header{padding-bottom:10px}.data-table--responsive-cards td.pl-card-header .pl-card-description{max-width:none!important}.data-table--responsive-cards td.pl-card-action{padding-top:12px}.data-table--responsive-cards td.pl-card-action a{justify-content:center;width:100%;display:flex}}.stat-card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-xs);border-radius:16px;padding:20px 22px;transition:box-shadow .18s,transform .18s}.stat-card:hover{box-shadow:var(--shadow-sm);transform:translateY(-1px)}.clickable-card{cursor:pointer;transition:box-shadow .18s,transform .18s}.clickable-card:hover{box-shadow:var(--shadow-sm);transform:translateY(-1px)}.clickable-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.stat-label{color:var(--text3);text-transform:uppercase;letter-spacing:.05em;margin-bottom:10px;font-size:11px;font-weight:700}.stat-value{letter-spacing:-.01em;color:var(--text1);font-variant-numeric:tabular-nums;font-size:28px;font-weight:800}.stat-value.good{color:var(--agile)}.stat-value.warn{color:var(--waterfall)}.stat-sub{color:var(--text2);margin-top:2px;font-size:12px}.chart-card{min-width:0;position:relative}.recharts-surface{overflow:visible}.chart-card-header{justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:12px;display:flex}.chart-card-actions{opacity:0;align-items:center;gap:4px;transition:opacity .15s;display:flex}.chart-card:hover .chart-card-actions,.chart-card:focus-within .chart-card-actions{opacity:1}@media (hover:none){.chart-card-actions{opacity:1}}.chart-card-icon-btn{width:26px;height:26px;color:var(--text3);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;padding:0;display:flex}.chart-card-icon-btn:hover{background:var(--surface2);color:var(--text1)}.chart-card-icon-btn:disabled{cursor:not-allowed;opacity:.5}.board{scroll-behavior:auto;gap:10px;padding-bottom:8px;display:flex;overflow-x:auto}.board-col{flex-shrink:0;min-width:208px;max-width:208px}.board-col-header{color:var(--text2);text-transform:uppercase;align-items:center;gap:8px;padding:6px 4px;font-size:12px;font-weight:700;display:flex}.board-col-body{border-radius:10px;flex-direction:column;gap:6px;min-height:60px;padding:4px;transition:background .12s,box-shadow .12s;display:flex}.board-col-body.drag-over-valid{background:#3b82f614;box-shadow:inset 0 0 0 2px #3b82f659}.board-col-body.drag-over-limit{background:#ef444412;box-shadow:inset 0 0 0 2px #ef444466}.board-card{background:var(--surface);border:1px solid var(--border);cursor:pointer;border-radius:8px;padding:8px 10px;transition:opacity .12s,transform .12s}.board-card:hover{border-color:var(--accent)}.board-card.is-draggable{cursor:grab}.board-card.is-dragging{opacity:.4;transform:scale(.98)}.board-card-title{color:var(--text1);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-bottom:4px;font-size:12.5px;font-weight:600;line-height:1.3;display:-webkit-box;overflow:hidden}.board-card-meta{color:var(--text3);justify-content:space-between;align-items:center;font-size:10.5px;display:flex}.wip-badge{background:var(--surface2);color:var(--text2);text-align:center;border-radius:20px;min-width:18px;padding:1px 6px;font-size:10.5px;font-weight:700}.wip-badge.at-limit{background:var(--critical-bg);color:var(--critical)}.wi-row{border-bottom:1px solid var(--border);align-items:center;gap:12px;min-width:0;padding:12px 16px;display:flex}.wi-row-main{flex:1;align-items:center;gap:10px;min-width:0;display:flex}.wi-row-icon{flex-shrink:0;font-size:13px}.wi-row-key{flex-shrink:0;width:70px;font-family:monospace}.wi-row-title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:13px;font-weight:500;overflow:hidden}.wi-row-meta{flex-shrink:0;align-items:center;gap:12px;display:flex}.wi-row-project{text-overflow:ellipsis;white-space:nowrap;max-width:220px;overflow:hidden}.wi-row-date{text-align:right;flex-shrink:0;width:60px}.backlog-tree-scroll{-webkit-overflow-scrolling:touch;overflow-x:auto}@media (width<=640px){.wi-row{flex-wrap:wrap;align-items:flex-start;gap:6px;padding:10px 14px}.wi-row-main{width:100%}.wi-row-meta{flex-wrap:wrap;gap:8px;width:100%;padding-left:23px}.wi-row-project{max-width:140px}.wi-row-date{text-align:left;width:auto}.board{scroll-snap-type:x mandatory;gap:12px}.board-col{scroll-snap-align:start;min-width:86vw;max-width:86vw}.board-card{padding:11px 12px}.board-card-title{font-size:13.5px}}.tag{text-transform:uppercase;border-radius:6px;align-items:center;padding:2px 8px;font-size:11px;font-weight:700;display:inline-flex}.dot{border-radius:50%;flex-shrink:0;width:8px;height:8px;display:inline-block}.avatar{color:#fff;background:var(--accent);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:12px;font-weight:700;display:flex}.avatar-sm{width:22px;height:22px;font-size:10px}.progress-bar{background:var(--surface2);border-radius:3px;height:6px;overflow:hidden}.progress-fill{background:var(--accent);border-radius:3px;height:100%;transition:width .2s}.form-grid{flex-direction:column;gap:16px;margin-bottom:16px;display:flex}.form-row{flex-wrap:wrap;gap:16px;margin-bottom:16px;display:flex}.form-row>*{flex:140px;min-width:0}.form-grid .form-row,.modal-body>.form-row:last-child,.modal-body>.form-grid:last-child{margin-bottom:0}@media (width<=480px){.form-row{flex-direction:column;gap:6px}.form-row>*{flex:auto;width:100%}}.risk-form-modal .form-row{flex-direction:column;align-items:stretch;gap:6px;margin-bottom:18px}.risk-form-modal .form-row>*{flex:auto;width:100%}.risk-form-modal .form-row label{color:var(--text2);font-size:13px;font-weight:600}.risk-form-modal .form-grid{grid-template-columns:1fr 1fr;gap:4px 20px;margin-bottom:18px;display:grid}.risk-form-modal .form-grid .form-row{margin-bottom:0}.risk-form-modal textarea{min-height:72px}@media (width<=560px){.risk-form-modal .form-grid{grid-template-columns:1fr;gap:18px}}input,select,textarea{border:1px solid var(--border);color:var(--text1);background:var(--surface);border-radius:8px;width:100%;padding:9px 12px;font-family:inherit;font-size:max(16px,1rem)}input:focus,select:focus,textarea:focus{border-color:var(--accent);outline:none}.date-field{width:100%;position:relative}.date-field-display{border:1px solid var(--border);color:var(--text1);background:var(--surface);border-radius:8px;justify-content:space-between;align-items:center;gap:8px;padding:9px 12px;font-family:inherit;font-size:max(16px,1rem);line-height:1.3;transition:border-color .12s;display:flex}.date-field-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.date-field-display.is-placeholder .date-field-text{color:var(--text3)}.date-field-icon{color:var(--text3);flex-shrink:0}.date-field-input{opacity:0;cursor:pointer;border:0;width:100%;height:100%;margin:0;padding:0;position:absolute;inset:0}.date-field:focus-within .date-field-display{border-color:var(--accent)}.date-field.is-disabled .date-field-display{opacity:.6}.date-field.is-disabled .date-field-input{cursor:not-allowed}.rich-text-editor{border:1px solid var(--border);background:var(--surface);border-radius:8px;overflow:hidden}.rich-text-toolbar{border-bottom:1px solid var(--border);background:var(--surface2);flex-wrap:wrap;align-items:center;gap:2px;padding:6px 8px;display:flex}.rich-text-toolbar button{width:28px;height:28px;color:var(--text2);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:0;display:flex}.rich-text-toolbar button:hover{background:var(--surface3,#e8ebf5);color:var(--text1)}.rich-text-toolbar-divider{background:var(--border);width:1px;height:18px;margin:0 4px}.rich-text-content{min-height:260px;max-height:60vh;color:var(--text1);padding:16px;font-size:max(15px,.95rem);line-height:1.6;overflow-y:auto}.rich-text-content:focus{outline:none}.rich-text-content[contenteditable]:empty:before{content:attr(data-placeholder);color:var(--text3);pointer-events:none}.rich-text-content h1{margin:.6em 0 .3em;font-size:1.5em;font-weight:700}.rich-text-content h2{margin:.6em 0 .3em;font-size:1.25em;font-weight:700}.rich-text-content h3{margin:.5em 0 .3em;font-size:1.1em;font-weight:700}.rich-text-content p{margin:0 0 .6em}.rich-text-content ul,.rich-text-content ol{margin:0 0 .6em;padding-left:1.4em}.rich-text-content img{border-radius:4px;max-width:100%;margin:.4em 0}.rich-text-content table{border-collapse:collapse;margin:.6em 0}.rich-text-content table td,.rich-text-content table th{border:1px solid var(--border);min-width:60px;padding:6px 8px}.rich-text-content blockquote{border-left:3px solid var(--border);color:var(--text2);margin:0 0 .6em;padding:.2em 0 .2em 1em}.rich-text-content code{background:var(--surface2);border-radius:4px;padding:1px 5px;font-size:.9em}body:has(.modal-overlay){overflow:hidden}@keyframes modalOverlayIn{0%{opacity:0}to{opacity:1}}@keyframes modalIn{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.modal-overlay{z-index:100;background:#12152b73;justify-content:center;align-items:center;animation:.15s ease-out modalOverlayIn;display:flex;position:fixed;inset:0}.modal{background:var(--surface);width:100%;max-width:560px;max-height:85vh;box-shadow:var(--shadow-lg);border-radius:20px;flex-direction:column;animation:.18s cubic-bezier(.2,.8,.2,1) modalIn;display:flex;overflow:hidden}.modal-header{border-bottom:1px solid var(--border);flex:none;justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.modal-body{background:linear-gradient(var(--surface) 30%, #fff0) local, linear-gradient(#fff0, var(--surface) 70%) local, radial-gradient(farthest-side at 50% 0, #12152b14, #12152b00) scroll, radial-gradient(farthest-side at 50% 100%, #12152b14, #12152b00) scroll;background-repeat:no-repeat;background-color:var(--surface);background-position:top,bottom,top,bottom;background-size:100% 24px,100% 24px,100% 10px,100% 10px;flex:auto;min-height:0;padding:24px;overflow-y:auto}.modal-body::-webkit-scrollbar{width:8px}.modal-body::-webkit-scrollbar-track{background:0 0}.modal-body::-webkit-scrollbar-thumb{background:var(--border);border-radius:8px}.modal-body::-webkit-scrollbar-thumb:hover{background:var(--text3)}.modal-footer{border-top:1px solid var(--border);flex:none;justify-content:flex-end;gap:10px;padding:16px 24px;display:flex}@media (width<=640px){.modal-overlay{align-items:flex-end}.modal{border-radius:18px 18px 0 0;max-width:100%;max-height:92dvh}.modal-header{padding:16px 18px}.modal-body{padding:16px 18px;padding-bottom:calc(16px + env(safe-area-inset-bottom))}.modal-footer{padding:12px 18px;padding-bottom:calc(12px + env(safe-area-inset-bottom));flex-wrap:wrap}.modal-footer .btn{flex:auto;justify-content:center}body:has(.modal-overlay) .nabu-launcher:not(.nabu-launcher--positioned){bottom:96px!important}}.wi-modal-grid{grid-template-columns:minmax(0,1fr) 264px;gap:0;display:grid}.wi-modal-left{border-right:1px solid var(--border)}@media (width<=640px){.wi-modal-grid{grid-template-columns:1fr}.wi-modal-left{border-right:none;border-bottom:1px solid var(--border)}}.empty{text-align:center;color:var(--text3);padding:40px 0;font-size:13px}.spinner{border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:20px;height:20px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.spin{animation:.9s linear infinite spin}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.cal-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 16px;margin-bottom:16px;display:flex}.cal-toolbar-controls{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.cal-toolbar-divider{background:var(--border);flex-shrink:0;width:1px;height:22px}@media (width<=640px){.cal-toolbar-divider{display:none}}.cal-nav-group{align-items:center;gap:10px;display:flex}.cal-nav-today{border:1px solid var(--border);background:var(--surface);height:32px;color:var(--text2);cursor:pointer;border-radius:8px;padding:0 13px;font-size:12.5px;font-weight:600;transition:all .12s}.cal-nav-today:hover{border-color:var(--accent);color:var(--accent)}.cal-nav-today:disabled,.cal-nav-btn:disabled{opacity:.35;cursor:default;pointer-events:none}.cal-pager{align-items:center;gap:2px;display:flex}.cal-nav-btn{border:1px solid var(--border);background:var(--surface);width:30px;height:30px;color:var(--text2);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;transition:all .12s;display:flex}.cal-nav-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}.cal-label{color:var(--text1);text-align:center;letter-spacing:-.01em;min-width:168px;padding:0 6px;font-size:15px;font-weight:700}.cal-segment{border:1px solid var(--border);background:var(--surface);border-radius:8px;align-items:center;display:flex;overflow:hidden}.cal-segment-btn{height:32px;color:var(--text2);border:none;border-right:1px solid var(--border);cursor:pointer;background:0 0;align-items:center;gap:5px;padding:0 11px;font-family:inherit;font-size:12px;font-weight:600;transition:all .12s;display:flex}.cal-segment-btn:last-child{border-right:none}.cal-segment-btn:hover{background:var(--surface2);color:var(--text1)}.cal-segment-btn.active{background:var(--accent-dim);color:var(--accent)}.cal-filter-group{align-items:center;gap:8px;display:flex}.cal-select{border:1px solid var(--border);background:var(--surface);height:32px;color:var(--text1);box-sizing:border-box;text-overflow:ellipsis;white-space:nowrap;border-radius:8px;max-width:240px;padding:0 10px;font-size:12.5px;font-weight:500;overflow:hidden}.cal-nav-btn:focus-visible,.cal-nav-today:focus-visible,.cal-segment-btn:focus-visible,.cal-select:focus-visible,.cal-legend-chip:focus-visible,.cal-chip:focus-visible,.cal-more:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.cal-legend{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:16px;display:flex}.cal-legend-chip{border:1px solid var(--border);background:var(--surface);color:var(--text2);cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:4px 10px 4px 8px;font-size:11.5px;font-weight:500;transition:all .12s;display:flex}.cal-legend-chip:hover{border-color:var(--text3)}.cal-legend-chip.dim{opacity:.4}.cal-legend-chip.active{border-width:1.5px;font-weight:700}.cal-legend-clear{color:var(--accent);border-color:var(--accent-dim);background:var(--accent-dim);font-weight:600}.cal-legend-dot{border-radius:50%;flex-shrink:0;width:7px;height:7px}.cal-grid-wrap{background:var(--surface);border:1px solid var(--border);border-radius:14px;overflow:hidden;box-shadow:0 1px 2px #12152b0a}.cal-weekdays{background:var(--surface2);border-bottom:1px solid var(--border);grid-template-columns:repeat(7,1fr);display:grid}.cal-weekday{text-transform:uppercase;letter-spacing:.06em;color:var(--text3);text-align:left;padding:9px 12px;font-size:10.5px;font-weight:700}.cal-weekday .cal-weekday-num{color:var(--text2);margin-left:4px;font-weight:700}.cal-grid{grid-template-columns:repeat(7,1fr);display:grid}.cal-cell{background:var(--surface);border-right:1px solid var(--border);border-bottom:1px solid var(--border);flex-direction:column;min-width:0;min-height:0;padding:6px 7px;transition:background .12s;display:flex;position:relative}.cal-cell:nth-child(7n){border-right:none}.cal-grid .cal-cell:nth-last-child(-n+7){border-bottom:none}.cal-cell:hover,.cal-cell.out{background:var(--surface2)}.cal-cell.out:hover{background:var(--surface2);filter:brightness(.98)}.cal-cell.today{background:var(--accent-dim)}.cal-cell.today:hover{background:var(--accent-dim);filter:brightness(.97)}.cal-date-row{justify-content:flex-start;align-items:center;margin-bottom:4px;display:flex}.cal-date{color:var(--text2);border-radius:6px;padding:3px 6px;font-size:11.5px;font-weight:600;line-height:1}.cal-cell.out .cal-date{color:var(--text3);font-weight:500}.cal-cell.today .cal-date{background:var(--accent);color:#fff;font-weight:700}.cal-entries{flex-direction:column;min-width:0;display:flex}.cal-chip{cursor:pointer;white-space:nowrap;text-overflow:ellipsis;text-align:left;border:1px solid #0000;border-radius:6px;align-items:center;gap:4px;width:100%;min-width:0;margin-bottom:2px;padding:3px 6px;font-family:inherit;font-size:11px;font-weight:500;transition:transform 80ms,box-shadow 80ms;display:flex;overflow:hidden}.cal-chip:hover{transform:translateY(-1px);box-shadow:0 2px 6px #12152b1f}.cal-chip-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.cal-chip-external{color:var(--text2);border-color:var(--border);cursor:default;background:0 0;font-style:normal}.cal-more{color:var(--text3);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:5px;width:100%;padding:1px 6px;font-family:inherit;font-size:10.5px;font-weight:600}.cal-more:hover{background:var(--surface2);color:var(--text2)}.cal-entries-print{display:none}.cal-print-line{color:var(--text1);align-items:flex-start;gap:5px;padding:1px 0;font-size:10.5px;line-height:1.35;display:flex}.cal-print-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px;margin-top:3px}.cal-two-month-wrap{grid-template-columns:1fr 1fr;align-items:start;gap:20px;display:grid}.cal-mini-month-label{color:var(--text1);margin-bottom:8px;font-size:13px;font-weight:700}.cal-grid.mini .cal-chip{padding:1px 4px;font-size:9.5px}.cal-grid.mini .cal-date{padding:2px 4px;font-size:10px}.cal-grid.mini .cal-cell{padding:3px 4px}.cal-grid.mini .cal-date-row{margin-bottom:2px}@media (width<=900px){.cal-two-month-wrap{grid-template-columns:1fr}}@media (width<=640px){.cal-cell{padding:4px 5px;min-height:60px!important}.cal-weekday{padding:6px 4px;font-size:9.5px}.cal-date{padding:2px 4px;font-size:10.5px}.cal-chip{padding:2px 4px;font-size:9.5px}.cal-label{min-width:auto;font-size:13px}.cal-nav-group{justify-content:space-between;width:100%}}.hover-card-wrap{display:inline-flex}.hover-card-wrap.block{display:flex}.hover-card{z-index:80;background:var(--surface);border:1px solid var(--border);min-width:180px;max-width:300px;color:var(--text2);border-radius:10px;padding:10px 12px;font-size:12px;line-height:1.45;animation:.1s ease-out hoverCardIn;position:fixed;box-shadow:0 10px 28px #12152b29}@keyframes hoverCardIn{0%{opacity:0;transform:translateY(2px)}to{opacity:1;transform:translateY(0)}}.hover-card-title{color:var(--text1);margin-bottom:2px;font-size:12.5px;font-weight:700}.hover-card-sub{color:var(--text3);margin-bottom:6px;font-size:11px}.hover-card-list{flex-direction:column;gap:2px;max-height:240px;margin:0 -4px;display:flex;overflow-y:auto}.hover-card-row{cursor:pointer;color:var(--text2);border-radius:6px;align-items:center;gap:7px;padding:5px 6px;font-size:12px;display:flex}.hover-card-row:hover{background:var(--surface2);color:var(--text1)}.hover-card-row .dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.hover-card-divider{border-top:1px solid var(--border);margin:6px -12px}.hover-card-kv{justify-content:space-between;gap:10px;padding:2px 0;display:flex}.hover-card-kv .k{color:var(--text3)}.hover-card-kv .v{color:var(--text1);font-weight:600}.kebab-trigger{padding:6px 8px;line-height:0}.kebab-dropdown{z-index:600;background:var(--surface);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:1px;min-width:210px;max-width:calc(100vw - 16px);padding:6px;display:flex;position:fixed;box-shadow:0 8px 24px #12152b24}.kebab-item{text-align:left;width:100%;color:var(--text1);cursor:pointer;background:0 0;border:none;border-radius:7px;align-items:center;gap:9px;padding:8px 10px;font-family:inherit;font-size:13px;display:flex}.kebab-item:hover:not(:disabled){background:var(--surface2)}.kebab-item:disabled{opacity:.45;cursor:not-allowed}.kebab-item.danger{color:var(--critical)}.kebab-divider{border-top:1px solid var(--border);margin:4px 2px}@media print{@page{size:auto;margin:12mm}.no-print,.sidebar,.kebab-menu,.kebab-dropdown{display:none!important}.app-shell{height:auto!important;display:block!important;overflow:visible!important}.app-main{height:auto!important;overflow:visible!important}html,body{background:#fff!important;width:auto!important;height:auto!important;overflow:visible!important}.page{padding:12px 0!important}.card,.cal-grid-wrap{box-shadow:none!important}.cal-chip,.cal-chip-dot,.cal-print-dot,.cal-legend-dot{-webkit-print-color-adjust:exact;print-color-adjust:exact}.data-table-scroll,.table-scroll,.backlog-tree-scroll,.board{width:auto!important;overflow:visible!important}.data-table--resizable{table-layout:auto!important}.data-table--resizable td:first-child,.data-table--resizable th:first-child{min-width:0!important}table{width:100%!important;min-width:0!important}col{width:auto!important}.dash-main-grid{grid-template-columns:1fr!important}.dash-main-grid-table{grid-column:1!important}.cal-entries{display:none!important}.cal-entries-print{flex-direction:column;display:flex!important}.cal-more{display:none!important}.cal-cell{height:auto!important;min-height:0!important;overflow:visible!important}.cal-grid{break-inside:auto}.cal-grid-wrap,.cal-mini-month{break-inside:avoid;page-break-inside:avoid}.cal-two-month-wrap{grid-template-columns:1fr!important;gap:24px!important}}.cal-grid.compact .cal-cell{padding:3px 5px}.cal-grid.compact .cal-date-row{margin-bottom:2px}.cal-grid.compact .cal-date{padding:1px 5px;font-size:10.5px}.cal-grid.compact .cal-chip{border-radius:5px;margin-bottom:1px;padding:2px 5px;font-size:10px}.cal-activity-day{border-bottom:1px solid var(--border)}.cal-activity-day:last-child{border-bottom:none}@media print{.cal-activity-day{break-inside:avoid;page-break-inside:avoid}}.cal-activity-date{text-transform:uppercase;letter-spacing:.04em;color:var(--text3);margin-bottom:6px;font-size:10.5px;font-weight:700}.cal-activity-row{cursor:pointer;border-radius:6px;align-items:center;gap:8px;padding:4px 0;display:flex}.cal-activity-row:hover{background:var(--surface2)}.flex{display:flex}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-end{justify-content:flex-end}.gap-2{gap:8px}.gap-3{gap:12px}.mb-1{margin-bottom:4px}.mb-2{margin-bottom:8px}.mb-3{margin-bottom:12px}.mb-4{margin-bottom:16px}.mb-5{margin-bottom:20px}.mt-2{margin-top:8px}.mt-3{margin-top:12px}.mt-4{margin-top:16px}.grid-2{grid-template-columns:repeat(2,1fr);gap:16px;display:grid}.grid-4{grid-template-columns:repeat(4,1fr);gap:16px;display:grid}.dash-main-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 320px;gap:16px;display:grid}.dash-main-grid-table{grid-column:1/3}.pd-header,.pd-content{padding:20px 28px}.pd-header-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.pd-tabs{-webkit-overflow-scrolling:touch;scrollbar-width:none;overflow-x:auto}.pd-tabs::-webkit-scrollbar{display:none}.scroll-fade-x,.pd-tabs,.backlog-tree-scroll,.table-scroll,.data-table-scroll{background:linear-gradient(to right, var(--surface) 30%, #fff0) left, linear-gradient(to right, #fff0, var(--surface) 70%) right, linear-gradient(to right, #0000001a, #0000) left, linear-gradient(to left, #0000001a, #0000) right;background-repeat:no-repeat;background-color:var(--surface);background-size:24px 100%,24px 100%,10px 100%,10px 100%;background-attachment:local,local,scroll,scroll}@media (width<=900px){.scroll-fade-x,.pd-tabs,.backlog-tree-scroll,.table-scroll,.data-table-scroll{scrollbar-width:thin;scrollbar-color:var(--border) transparent}.scroll-fade-x::-webkit-scrollbar{height:5px;display:block}.pd-tabs::-webkit-scrollbar{height:5px;display:block}.backlog-tree-scroll::-webkit-scrollbar{height:5px;display:block}.table-scroll::-webkit-scrollbar{height:5px;display:block}.data-table-scroll::-webkit-scrollbar{height:5px;display:block}.scroll-fade-x::-webkit-scrollbar-track{background:0 0}.pd-tabs::-webkit-scrollbar-track{background:0 0}.backlog-tree-scroll::-webkit-scrollbar-track{background:0 0}.table-scroll::-webkit-scrollbar-track{background:0 0}.data-table-scroll::-webkit-scrollbar-track{background:0 0}.scroll-fade-x::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}.pd-tabs::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}.backlog-tree-scroll::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}.table-scroll::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}.data-table-scroll::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}}.pd-tabs--compact .pd-tab-label{display:none}@media (width<=900px){.grid-4{grid-template-columns:repeat(2,1fr)}.dash-main-grid{grid-template-columns:1fr}.dash-main-grid-table{grid-column:1}}@media (width<=640px){.grid-2,.grid-4{grid-template-columns:1fr}.portfolio-widget-grid{grid-template-columns:1fr!important}.pd-header{padding:14px 16px}.pd-content{padding:14px 16px 96px}.pd-metrics{flex-wrap:wrap;gap:14px!important}.app-page-wrapper{padding:16px!important}.app-content-card{padding:18px!important}.auth-card{padding:28px 22px!important}.timesheet-day-strip{gap:6px!important}.timesheet-day-tab{min-width:64px!important;padding:8px 6px!important}.timesheet-day-panel{padding:16px!important}.timesheet-add-form{flex-direction:column!important}.timesheet-field{width:100%!important}.timesheet-entries-table th:nth-child(2),.timesheet-entries-table td:nth-child(2){display:none}.draft-split{flex-direction:column!important}.draft-split-chat{width:100%;min-width:0!important;max-width:100%!important}.methodology-grid,.range-pie-grid{grid-template-columns:1fr!important}.pa-shell{padding:16px!important}.pa-topbar{flex-wrap:wrap;gap:8px;height:auto!important;padding:8px 14px!important}.pa-dash-btn{padding:6px 10px!important;font-size:12px!important}.pa-stats-row{grid-template-columns:repeat(2,1fr)!important}.pa-main-grid{grid-template-columns:1fr!important}}@media (width<=420px){.pa-stats-row{grid-template-columns:1fr!important}}@media (width<=900px){.pd2-topbar{flex-wrap:wrap;row-gap:8px;height:auto!important;padding:10px 14px!important}.pd2-tabs{order:3;flex:100%!important;justify-content:flex-start!important}.pd2-shell{padding:16px!important}.platform-stats-grid{grid-template-columns:repeat(3,1fr)!important}}@media (width<=560px){.platform-stats-grid{grid-template-columns:repeat(2,1fr)!important}}.text-sm{font-size:13px}.text-xs{font-size:11px}.text-muted{color:var(--text3)}.fw-600{font-weight:600}.truncate{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}@keyframes sysmapRadarPulse{0%{opacity:.55;transform:scale(1)}to{opacity:0;transform:scale(2.4)}}.sysmap-pulse-ring{transform-origin:50%;transform-box:fill-box;pointer-events:none;animation:1.6s ease-out infinite sysmapRadarPulse}.timesheet-layout{flex-direction:column;gap:16px;display:flex}.timesheet-day-strip{-webkit-overflow-scrolling:touch;gap:8px;padding-bottom:4px;display:flex;overflow-x:auto}.timesheet-day-tab{border:1px solid var(--border);background:var(--surface);cursor:pointer;border-radius:10px;flex-direction:column;flex-shrink:0;align-items:center;gap:3px;min-width:84px;padding:10px 12px;transition:background .12s,border-color .12s;display:flex}.timesheet-day-tab:hover{background:var(--surface2)}.timesheet-day-tab--active{border-color:var(--accent,#3d52d5);background:var(--surface2);box-shadow:inset 0 0 0 1px var(--accent,#3d52d5)}.timesheet-day-tab--today .timesheet-day-tab-date:after{content:"";background:var(--accent,#3d52d5);vertical-align:middle;border-radius:50%;width:5px;height:5px;margin-left:5px;display:inline-block}.timesheet-day-tab-weekday{text-transform:uppercase;letter-spacing:.04em;color:var(--text3);font-size:11px}.timesheet-day-tab-date{font-size:13px;font-weight:600}.timesheet-day-tab-hours{color:var(--accent,#3d52d5);font-size:12px;font-weight:600}.timesheet-day-tab-hours--empty{color:var(--text3);font-weight:400}.timesheet-day-panel{flex-direction:column;gap:18px;padding:28px;display:flex}.timesheet-day-panel-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.timesheet-day-panel-title{margin:0 0 2px;font-size:20px;font-weight:700}.timesheet-day-panel-total{color:var(--accent,#3d52d5);font-size:28px;font-weight:700;line-height:1}.timesheet-entries-table{font-size:14px}.timesheet-entries-table th:last-child,.timesheet-entries-table td:last-child{width:44px}.timesheet-add-form{background:var(--surface2);border-radius:10px;flex-wrap:wrap;align-items:flex-end;gap:14px;padding:16px;display:flex}.timesheet-field{flex-direction:column;gap:6px;display:flex}.timesheet-field-label{color:var(--text2);font-size:12px;font-weight:600}.timesheet-field select,.timesheet-field input,.timesheet-field textarea{height:auto;padding:10px 12px;font-size:14px}.timesheet-field textarea{resize:vertical;min-height:40px;max-height:140px;font-family:inherit;line-height:1.4}.timesheet-field--task{flex:2 260px}.timesheet-field--hours{flex:0 120px}.timesheet-field--note{flex:2 240px}.timesheet-add-form{align-items:flex-start}.timesheet-add-form-actions{flex:none;align-self:flex-end;gap:8px;display:flex}.timesheet-log-time-btn{align-self:flex-start}.report-panel-layout{grid-template-columns:minmax(280px,360px) 1fr;align-items:start;gap:20px;display:grid}@media (width<=900px){.report-panel-layout{grid-template-columns:1fr}}.report-chat{flex-direction:column;height:560px;padding:16px;display:flex}.report-chat-header{border-bottom:1px solid var(--border);align-items:center;gap:8px;margin-bottom:12px;padding-bottom:12px;display:flex}.report-chat-messages{flex-direction:column;flex:1;gap:10px;padding-right:4px;display:flex;overflow-y:auto}.report-chat-bubble{border-radius:10px;align-items:flex-start;gap:6px;max-width:92%;padding:10px 12px;font-size:13px;line-height:1.5;display:flex}.report-chat-bubble--user{background:var(--accent);color:#fff;align-self:flex-end}.report-chat-bubble--assistant{background:var(--surface2);color:var(--text1);align-self:flex-start}.report-chat-error{color:var(--danger,#c0303c);padding:6px 0;font-size:12px}.report-attachment-chip{color:var(--text2);background:var(--surface2);border-radius:8px;align-self:flex-start;align-items:center;gap:6px;margin-top:8px;padding:5px 8px;font-size:12px;display:inline-flex}.report-attachment-chip button{cursor:pointer;color:var(--text3);background:0 0;border:none;padding:0;display:flex}.report-chat-input-row{align-items:flex-end;gap:8px;margin-top:12px;display:flex}.report-chat-input-row textarea{resize:none;border:1px solid var(--border);border-radius:10px;flex:1;max-height:90px;padding:10px 12px;font-family:inherit;font-size:13px}.report-preview{flex-direction:column;gap:16px;display:flex}.report-preview-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;padding:20px;display:flex}.report-assumptions{background:#fffbeb;border:1px solid #fde68a;padding:16px 20px}.report-assumptions ul{margin:0;padding-left:18px}.report-assumptions li{margin-bottom:4px;font-size:13px}.report-sections{padding:8px 24px 24px}.report-section-preview{border-bottom:1px solid var(--border);padding:16px 0}.report-section-preview:last-child{border-bottom:none}.report-section-preview h3{margin:0 0 8px;font-size:15px}.report-section-preview p{color:var(--text2);margin:0 0 10px;font-size:13px;line-height:1.6}.resizable-chart-handle{cursor:col-resize;border-radius:6px;outline:none;flex:0 0 12px;justify-content:center;align-items:center;display:flex}.resizable-chart-handle:hover,.resizable-chart-handle:focus-visible{background:var(--accent-dim,#eef0fe)}.resizable-chart-handle span{background:var(--border);border-radius:3px;width:3px;height:36px;transition:background .12s}.resizable-chart-handle:hover span,.resizable-chart-handle:focus-visible span{background:var(--accent)}@media (width<=900px){.resizable-chart-row{flex-direction:column!important}.resizable-chart-row>div[style]{flex-basis:auto!important}.resizable-chart-handle{display:none}}
