@font-face{font-family:Soehne;src:url(/fonts/Soehne-Buch.otf)format("opentype");font-weight:400;font-display:swap}@font-face{font-family:Soehne;src:url(/fonts/Soehne-Halbfett.otf)format("opentype");font-weight:600;font-display:swap}@font-face{font-family:Soehne;src:url(/fonts/Soehne-Fett.otf)format("opentype");font-weight:700;font-display:swap}@font-face{font-family:Source Serif Pro;src:url(/fonts/SourceSerifPro-Regular.ttf)format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Source Serif Pro;src:url(/fonts/SourceSerifPro-Italic.ttf)format("truetype");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:Source Serif Pro;src:url(/fonts/SourceSerifPro-SemiBold.ttf)format("truetype");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:Source Serif Pro;src:url(/fonts/SourceSerifPro-BoldItalic.ttf)format("truetype");font-weight:700;font-style:italic;font-display:swap}:root{--surface-sunken:#323b970a;--track-bg:#323b971a;--indigo:#323b97;--indigo-light:#5b629f;--indigo-subtle:#d6d8e7;--blue:#479dd4;--blue-light:#91c4e5;--red:#ee2356;--red-light:#f8a7b5;--green:#15803d;--green-light:#dcfce7;--amber:#b45309;--amber-light:#fef3c7;--black:#000;--text-main:#1f2937;--red-ink:#ca1e49;--indigo-fill:#323b97;--text-muted:#6b7280;--bg-color:#f8f8f8;--bg-gradient-start:#daebf6;--bg-gradient-end:#f8f8f8;--glass-bg:#ffffffb8;--glass-border:#ffffff80;--border-line:#323b978f;--border-line-soft:#323b9729;--glass-shadow:0 8px 32px #323b9714;--font-sans:"Soehne", "Inter", -apple-system, BlinkMacSystemFont, sans-serif;--font-serif:"Source Serif Pro", Georgia, serif;--sidebar-width:240px;--topbar-height:80px;--radius-sm:8px;--radius-md:12px;--radius-lg:20px;--sb-band:#e9ecf8;--sb-band-ink:#323b97;--sb-band-rule:#323b9740;--sb-wave-alpha:.45;--sb-tile-bg:#fff;--sb-tile-border:#323b9714;--sb-seg-bg:#323b970f;--sb-seg-on-bg:#fff;--sb-seg-on-ink:#323b97;--brand-mark-ring:#323b97;--brand-mark-route:#479dd4;--brand-mark-milestone:#ee2356;--sidebar-bg:#fbfbfe;--sidebar-border:#323b971a;--sidebar-shadow:1px 0 0 #323b970a, 8px 0 24px -12px #323b971a}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background:var(--bg-color);background-image:linear-gradient(135deg, var(--bg-gradient-start) 0%, var(--bg-gradient-end) 50%);min-height:100vh;color:var(--text-main);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-attachment:fixed}.app-container{min-height:100vh;display:flex}.sidebar{width:var(--sidebar-width);z-index:30;border-right:1px solid var(--border-line);flex-direction:column;padding:20px 12px;display:flex;position:fixed;top:0;bottom:0;left:0;overflow-y:auto}@media (min-width:769px){.sidebar.glass-panel{background:var(--sidebar-bg);border:0;border-right:1px solid var(--sidebar-border);box-shadow:var(--sidebar-shadow)}}.main-content{margin-left:var(--sidebar-width);border-radius:0;flex-direction:column;flex:1;height:100vh;display:flex;overflow:hidden}.content-scroll{flex:1;padding:0 32px 32px;overflow:hidden auto}.content-scroll-gantt{flex-direction:column;display:flex;overflow:hidden!important}.gantt-label-scroll::-webkit-scrollbar{display:none}.gantt-label-scroll{scrollbar-width:none;-ms-overflow-style:none}.glass-panel{background:var(--glass-bg);-webkit-backdrop-filter:blur(20px);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow)}.glass-card{background:var(--glass-bg);-webkit-backdrop-filter:blur(16px);border:1px solid var(--glass-border);border-radius:var(--radius-lg);box-shadow:var(--glass-shadow);padding:24px;transition:transform .2s,box-shadow .2s}.glass-card:hover{transform:translateY(-1px);box-shadow:0 12px 40px #323b971f}.sb-systems{flex-direction:column;display:flex}.sb-sys-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:0 2px;display:grid}.sb-sys-icon{color:#fff;border-radius:9px;flex-shrink:0;place-items:center;width:32px;height:32px;transition:box-shadow .15s,transform .15s;display:grid;box-shadow:0 2px 6px #323b9738}.sb-sys-icon--fullmonte{background:linear-gradient(135deg,#479dd4 0%,#323b97 100%)}.sb-sys-icon--p3sap{background:linear-gradient(135deg,#323b97 0%,#ee2356 135%)}.sb-sys-icon--inventory{background:#323b97}body.dark .sb-sys-icon--inventory{box-shadow:0 0 0 1px #ffffff1f}.sb-item.sb-sys-tile{background:var(--sb-tile-bg);border:1px solid var(--sb-tile-border);text-align:center;border-radius:10px;flex-direction:column;gap:6px;padding:13px 2px 8px;font-size:10.5px;font-weight:500;position:relative}.sb-item.sb-sys-tile:hover{background:var(--sb-tile-bg);border-color:#323b9733}.sb-sys-label{text-overflow:ellipsis;white-space:nowrap;max-width:100%;line-height:1.1;overflow:hidden}.sb-sys-ext{color:var(--text-muted);opacity:.6;position:absolute;top:4px;right:4px}.sb-system:hover .sb-sys-icon{transform:translateY(-1px);box-shadow:0 3px 11px #323b9757}.sb-system:hover .sb-sys-ext{opacity:.95}body.dark .sb-sys-ext{color:#ffffff80}.sb-top{background:linear-gradient(180deg, var(--sb-band), transparent);flex-shrink:0;align-items:center;height:78px;margin:-20px -12px 4px;padding:0 16px;display:flex;position:relative}.sb-wave{width:100%;height:16px;opacity:var(--sb-wave-alpha);pointer-events:none;position:absolute;bottom:0;left:0}.sb-wave path{fill:none;stroke:var(--blue);stroke-width:1.25px}.sb-wave path+path{stroke-width:1px;stroke-opacity:.5}.sb-brand{min-width:0;color:var(--sb-band-ink);align-items:center;gap:10px;display:flex;position:relative}.sb-brand:focus-visible{outline:2px solid var(--indigo);outline-offset:4px;border-radius:6px}.sb-mark{flex-shrink:0}.sb-brand-text{align-items:center;gap:10px;min-width:0;display:flex}.sb-wordmark{width:66px;height:auto;margin-top:-2px;display:block}.sb-wordmark--dark,body.dark .sb-wordmark--light{display:none}body.dark .sb-wordmark--dark{display:block}.sb-rule{background:var(--sb-band-rule);flex-shrink:0;width:1px;height:24px}.sb-app{white-space:nowrap;color:var(--sb-band-ink);font-size:13px;font-weight:600}.projects-mark__medium{fill:var(--brand-mark-route)}.projects-mark__route{stroke:var(--brand-mark-route)}.projects-mark__milestone{fill:var(--brand-mark-milestone)}.projects-mark__ring{stroke:var(--brand-mark-ring)}.sb-sec{color:var(--text-muted);text-transform:uppercase;letter-spacing:1.2px;padding:14px 12px 6px;font-size:10px;font-weight:700}.sb-item{border-radius:var(--radius-sm);color:var(--text-main);cursor:pointer;align-items:center;gap:10px;padding:8px 12px;font-size:13px;font-weight:500;transition:all .15s;display:flex}.sb-item:hover{background:#323b970f}.sb-item.active{color:var(--indigo);background:#323b971f;font-weight:600}.sb-div{background:#323b9714;height:1px;margin:8px 0}.sb-footer{margin-top:auto;padding-top:12px}.sb-theme-row{align-items:center;gap:6px;display:flex}.sb-theme-seg{background:var(--sb-seg-bg);border-radius:10px;flex:1;grid-template-columns:1fr 1fr;padding:3px;display:grid}.sb-theme-seg button{cursor:pointer;height:28px;font:inherit;color:var(--text-muted);background:0 0;border:none;border-radius:7px;justify-content:center;align-items:center;gap:6px;font-size:12px;transition:background .13s,color .13s;display:inline-flex}.sb-theme-seg button:hover{color:var(--text-main)}.sb-theme-seg button[aria-pressed=true]{background:var(--sb-seg-on-bg);color:var(--sb-seg-on-ink);font-weight:600;box-shadow:0 1px 2px #323b9724}.sb-theme-seg button:focus-visible{outline:2px solid var(--indigo);outline-offset:1px}.sb-icon-btn{cursor:pointer;width:32px;height:32px;color:var(--text-muted);background:0 0;border:none;border-radius:8px;flex-shrink:0;place-items:center;transition:background .13s,color .13s;display:inline-grid}.sb-icon-btn:hover{color:var(--indigo);background:#323b9714}.sb-icon-btn:focus-visible{outline:2px solid var(--indigo);outline-offset:1px}.sb-theme-toggle{display:none}.sb-user{align-items:center;gap:10px;padding:2px 6px 0;display:flex}.sb-avatar{background:var(--indigo-fill);color:#fff;border-radius:50%;flex-shrink:0;place-items:center;width:30px;height:30px;font-size:11px;font-weight:600;display:grid;box-shadow:0 0 0 2px #479dd44d}.sb-who{flex:1;min-width:0;font-size:12.5px;line-height:1.25}.sb-who strong{color:var(--text-main);text-overflow:ellipsis;white-space:nowrap;font-weight:600;display:block;overflow:hidden}.sb-who span{color:var(--text-muted);margin-top:2px;font-size:11px;display:block}.sb-signout{cursor:pointer;border:1px solid var(--border-line-soft);width:32px;height:32px;color:var(--text-muted);background:0 0;border-radius:8px;flex-shrink:0;place-items:center;transition:background .13s,color .13s;display:grid}.sb-signout:hover{color:var(--indigo);background:#323b970f}.sb-signout:focus-visible{outline:2px solid var(--indigo);outline-offset:1px}@media (min-width:769px) and (max-width:1024px){.sb-top{padding:0 14px}.sb-brand,.sb-brand-text{gap:8px}.sb-wordmark{width:56px}.sb-app{font-size:12.5px}}@media (min-width:769px){body.sb-compact{--sidebar-width:68px}body.sb-compact .sidebar{padding-left:8px;padding-right:8px}body.sb-compact .sb-label,body.sb-compact .sb-sec,body.sb-compact .sb-who,body.sb-compact .sb-avatar,body.sb-compact .sb-sys-ext,body.sb-compact .sb-theme-seg,body.sb-compact .sb-brand-text{display:none}body.sb-compact .sb-item{justify-content:center;gap:0;padding-left:0;padding-right:0}body.sb-compact .sb-item>svg{flex-shrink:0}body.sb-compact .sb-top{justify-content:center;margin-left:-8px;margin-right:-8px;padding:0}body.sb-compact .sb-group+.sb-group>.sb-sec,body.sb-compact .sb-systems>.sb-sec{background:var(--border-line-soft);height:1px;margin:8px;padding:0;font-size:0;display:block;overflow:hidden}body.sb-compact .sb-sys-grid{flex-direction:column;align-items:stretch;gap:4px;padding:0;display:flex}body.sb-compact .sb-item.sb-sys-tile{background:0 0;border-color:#0000;padding:4px 0}body.sb-compact .sb-theme-row,body.sb-compact .sb-user{flex-direction:column;gap:4px;padding:0}body.sb-compact .sb-theme-toggle{display:inline-grid}}@media (prefers-reduced-motion:reduce){.sb-icon-btn,.sb-theme-seg button,.sb-signout{transition:none}}.topbar{min-height:var(--topbar-height);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:24px 32px;display:flex}.topbar h1{font-family:var(--font-sans);color:var(--indigo);font-size:22px;font-weight:700;line-height:1.3}.tb-sub{font-family:var(--font-serif);color:var(--text-muted);margin-top:2px;font-size:13px;font-style:italic}.tb-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}h1,h2,h3,h4,h5{font-family:var(--font-sans)}.text-muted{color:var(--text-muted);font-size:12px}.dash-grid{grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:24px;display:grid}.stat-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;font-size:12px;font-weight:600}.stat-value{color:var(--indigo);margin-top:4px;font-size:32px;font-weight:700;line-height:1.1}.btn{border-radius:var(--radius-sm);font-family:var(--font-sans);cursor:pointer;white-space:nowrap;border:none;align-items:center;gap:6px;padding:8px 16px;font-size:13px;font-weight:600;transition:all .2s;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:linear-gradient(135deg, var(--indigo), #4b52b5);color:#fff;box-shadow:0 2px 8px #323b9740}.btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 16px #323b9759}.btn-secondary{color:var(--indigo);background:#323b970f;border:1px solid #323b971f}.btn-secondary:hover:not(:disabled){background:#323b971a}.btn-icon{cursor:pointer;color:var(--text-muted);border-radius:var(--radius-sm);background:0 0;border:none;align-items:center;padding:8px;transition:all .2s;display:flex}.btn-icon:hover{color:var(--indigo);background:#323b970f}.btn-danger{background:var(--red-ink);color:#fff;border-radius:var(--radius-sm);cursor:pointer;border:none;align-items:center;gap:6px;padding:8px 16px;font-size:13px;font-weight:600;transition:all .2s;display:flex}.btn-danger:hover{opacity:.85}.table-responsive{-webkit-overflow-scrolling:touch;width:100%;overflow-x:auto}.glass-table{border-collapse:collapse;width:100%;font-size:13px}.glass-table thead th{text-align:left;color:var(--indigo);text-transform:uppercase;letter-spacing:.8px;background:#323b970a;border-bottom:2px solid #323b9714;padding:12px 16px;font-size:11px;font-weight:700}.glass-table tbody tr{border-bottom:1px solid #323b970d;transition:background .15s}.glass-table tbody tr:hover{background:#323b9708}.glass-table tbody td{vertical-align:middle;padding:12px 16px}.admin-users-layout{align-items:flex-start;gap:24px;display:flex}.admin-users-form{flex-shrink:0;width:340px}.modal-form-grid{grid-template-columns:1fr 1fr;gap:14px;display:grid}.badge{white-space:nowrap;border-radius:6px;align-items:center;padding:3px 10px;font-size:11px;font-weight:600;display:inline-flex}.badge.status-not-started{color:#374151;background:#f3f4f6}.badge.status-in-progress{color:#1d4ed8;background:#dbeafe}.badge.status-review{color:#92400e;background:#fef3c7}.badge.status-approved{color:#4338ca;background:#e0e7ff}.badge.status-complete{color:#047857;background:#d1fae5}.badge.status-blocked{color:#b91c1c;background:#fee2e2}.form-group{margin-bottom:16px}.form-group label{text-transform:uppercase;letter-spacing:.5px;color:var(--indigo);margin-bottom:6px;font-size:11px;font-weight:700;display:block}.form-control{border-radius:var(--radius-sm);width:100%;font-family:var(--font-sans);color:var(--text-main);background:#fff9;border:1px solid #323b9726;padding:10px 14px;font-size:14px;transition:border-color .2s,box-shadow .2s}.form-control:focus{border-color:var(--indigo);outline:none;box-shadow:0 0 0 3px #323b971a}select.form-control{cursor:pointer}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100;background:#0f111773;justify-content:center;align-items:center;padding:16px;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.modal-content{-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);border:1px solid var(--glass-border);border-radius:var(--radius-lg);background:#fffffff2;width:100%;max-width:600px;max-height:90dvh;padding:32px;animation:.25s scaleIn;overflow-y:auto;box-shadow:0 24px 64px #323b9726}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.gantt-grid{border-radius:var(--radius-lg);border:1px solid var(--glass-border);background:var(--glass-bg);overflow:hidden}.gantt-row:hover{background:#323b9708}.gantt-bar{border-radius:5px;transition:transform .1s,box-shadow .15s;box-shadow:0 1px 3px #323b9733}.gantt-bar:hover{transform:scaleY(1.15);box-shadow:0 3px 10px #323b974d}.gantt-bar.complete{background:linear-gradient(90deg,#10b981,#059669)}.gantt-bar.progress{background:linear-gradient(90deg, var(--blue), var(--indigo))}.risk-overview-card:hover{box-shadow:var(--glass-shadow)!important;transform:none!important}.risk-overview-grid{grid-template-columns:auto 1fr;min-height:280px;display:grid}.risk-table-scroll{-webkit-overflow-scrolling:touch;overflow-x:auto}.risk-table-scroll::-webkit-scrollbar{height:6px}.risk-table-scroll::-webkit-scrollbar-track{background:#323b9708}.risk-table-scroll::-webkit-scrollbar-thumb{background:#323b971f;border-radius:3px}.risk-table-row{grid-template-columns:70px 110px 1fr 90px 90px 70px 80px 100px 80px 50px;align-items:center;gap:8px;min-width:900px;padding:12px 16px;display:grid}.risk-table-header{color:var(--text-muted);text-transform:uppercase;letter-spacing:.6px;z-index:2;background:#323b9704;border-bottom:2px solid #323b971a;font-size:10px;font-weight:700;position:sticky;top:0}.risk-table-body-row{cursor:pointer;border-bottom:1px solid #323b970f;transition:background .15s}.risk-detail-panel{background:#323b9705;border-bottom:1px solid #323b9714;grid-template-columns:1fr 1fr;gap:16px;padding:16px 24px 20px 86px;font-size:13px;display:grid}body.dark .risk-overview-card{border-color:#ffffff1a}body.dark .risk-overview-grid>div:first-child{border-right-color:#ffffff14}body.dark .risk-table-header{background:#818cf814;border-bottom-color:#ffffff1f}body.dark .risk-table-body-row{border-bottom-color:#ffffff0f}body.dark .risk-table-body-row:hover{background:#818cf80f!important}body.dark .risk-detail-panel{background:#818cf80a;border-bottom-color:#ffffff14}body.dark .risk-table-scroll select,body.dark .risk-table-scroll input{color:#fff;background:0 0}body.dark select option{color:#fff;background:#1f2937}@media (max-width:1024px){.risk-overview-grid{min-height:auto}.risk-detail-panel{padding-left:24px}}@media (max-width:768px){.risk-overview-grid{grid-template-columns:1fr;min-height:auto}.risk-overview-grid>div:first-child{border-bottom:1px solid #323b9714;border-right:none!important;padding:20px!important}.risk-overview-grid>div:last-child{padding:20px!important}.risk-detail-panel{grid-template-columns:1fr;padding:12px 16px}.risk-table-row{min-width:900px}}div[style*="overflowX: auto"]::-webkit-scrollbar{height:8px}div[style*="overflowX: auto"]::-webkit-scrollbar-track{background:#323b970a;border-radius:4px}div[style*="overflowX: auto"]::-webkit-scrollbar-thumb{background:#323b9726;border-radius:4px}div[style*="overflowX: auto"]::-webkit-scrollbar-thumb:hover{background:#323b9740}kbd{min-width:20px;height:20px;font-size:11px;font-family:var(--font-sans);color:var(--text-muted);background:#323b970f;border:1px solid #323b971f;border-radius:4px;justify-content:center;align-items:center;padding:0 5px;font-weight:600;display:inline-flex}.notif-panel{animation:.2s slideDown}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}body.dark{--surface-sunken:#ffffff0d;--track-bg:#ffffff1f;--text-main:#fff;--indigo-fill:#4f46e5;--text-muted:#d1d5db;--bg-color:#0b0e14;--bg-gradient-start:#111827;--bg-gradient-end:#0b0e14;--glass-bg:#111827e6;--glass-border:#ffffff1f;--border-line:#e2e8f05e;--border-line-soft:#e2e8f026;--glass-shadow:0 8px 32px #0006;--indigo-subtle:#374151;--indigo:#818cf8;--blue:#60a5fa;--green:#4ade80;--green-light:#4ade8024;--amber:#fbbf24;--amber-light:#fbbf2424;--sb-band:#323b9773;--sb-band-ink:#c7d2fe;--sb-band-rule:#ffffff40;--sb-wave-alpha:.5;--sb-tile-bg:#ffffff0a;--sb-tile-border:#ffffff12;--sb-seg-bg:#ffffff0f;--sb-seg-on-bg:#323b97;--sb-seg-on-ink:#fff;--brand-mark-ring:#fff;--brand-mark-route:#60a5fa;--brand-mark-milestone:#f4587a;--sidebar-bg:var(--glass-bg);--sidebar-border:var(--glass-border);--sidebar-shadow:var(--glass-shadow)}body.dark .form-control{color:var(--text-main);background:#ffffff14;border-color:#ffffff26}body.dark .glass-table thead th{color:var(--text-main);background:#818cf826}body.dark .glass-table tbody tr{border-bottom-color:#ffffff14}body.dark .glass-table tbody tr:hover{background:#818cf81a}body.dark .modal-content{background:#111827fa;border-color:#ffffff26}body.dark .modal-overlay{background:#000000b3}body.dark kbd{color:#fff;background:#ffffff1a;border-color:#fff3}body.dark .notif-panel{border:1px solid #ffffff26;background:#111827fa!important}body.dark .sb-item.active{color:#fff;background:#818cf840}body.dark .btn-secondary{color:#fff;background:#ffffff1a;border-color:#ffffff26}body.dark .btn-secondary:hover{background:#ffffff26}body.dark input::placeholder,body.dark textarea::placeholder{color:#fff6}body.dark .gantt-grid{background:#111827e6;border-color:#ffffff1f}@media (max-width:1024px){:root{--sidebar-width:200px}.topbar h1{font-size:18px}.content-scroll{padding:0 20px 20px}.dash-grid{grid-template-columns:repeat(3,1fr);gap:12px}.stat-value{font-size:26px}.glass-card{padding:16px}.kbd-hints{display:none!important}}@media (min-width:769px){.show-on-mobile{display:none!important}}.mobile-menu-overlay{-webkit-backdrop-filter:blur(4px);z-index:100;background:#00000080;justify-content:flex-end;display:flex;position:fixed;inset:0}.mobile-menu-drawer{background:var(--glass-bg);border-left:1px solid var(--border-line);width:80%;max-width:320px;height:100%;padding:24px;animation:.3s forwards slideInRight;overflow-y:auto}@keyframes slideInRight{0%{transform:translate(100%)}to{transform:translate(0)}}.mobile-menu-header{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}@media (max-width:768px){.app-container{flex-direction:column}.sidebar{width:100%;height:auto;padding:4px 8px calc(4px + env(safe-area-inset-bottom));border-right:none;border-top:1px solid var(--border-line);z-index:40;-webkit-backdrop-filter:blur(24px);background:#ffffffeb;flex-direction:row;justify-content:space-around;gap:0;position:fixed;top:auto;bottom:0;left:0;overflow:auto hidden}body.dark .sidebar{background:#0f1117eb}.sb-top,.sb-sec,.sb-div{display:none}.sidebar .sb-group{display:contents}.sidebar>div:last-child,.sidebar .sb-systems{display:none}.sidebar .sb-item{text-align:center;-webkit-tap-highlight-color:transparent;border-radius:8px;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;min-width:48px;max-width:72px;padding:6px 4px 4px;font-size:10px}.sidebar .sb-item svg{width:20px;height:20px}.sidebar .sb-item span:not(.sb-label){display:none}.sidebar .sb-item .sb-label{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:10.5px;line-height:1.15;display:block;overflow:hidden}.sidebar .sb-fold{display:none}.sidebar.has-more{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 28px),#0000);mask-image:linear-gradient(90deg,#000 calc(100% - 28px),#0000)}.sidebar .sb-item{min-width:44px}.sidebar .sb-item.active{background:#323b971a}.hide-on-mobile{display:none!important}.show-on-mobile{display:flex!important}.main-content{padding-bottom:calc(64px + env(safe-area-inset-bottom));margin-left:0}.topbar{flex-direction:column;align-items:stretch;gap:10px;min-height:auto;padding:16px}.topbar h1{font-size:17px}.tb-sub{font-size:12px}.tb-actions{flex-wrap:wrap;justify-content:flex-start;gap:6px}.tb-actions .btn{min-height:36px;padding:8px 12px;font-size:12px}.kbd-hints{display:none!important}.content-scroll{padding:0 12px 12px}.dash-grid{grid-template-columns:repeat(2,1fr);gap:10px}.stat-value{font-size:22px}.stat-label{font-size:10px}.glass-card{border-radius:var(--radius-md);padding:14px}.glass-card:hover{transform:none}.dash-flex-row{flex-direction:column!important}.dash-activity-sidebar{width:100%!important;max-height:200px!important}.module-grid{grid-template-columns:repeat(2,1fr)!important;gap:10px!important}.admin-users-layout{flex-direction:column;gap:16px}.admin-users-form{width:100%}.modal-form-grid{grid-template-columns:1fr}.glass-table{font-size:12px}.glass-table thead th{letter-spacing:.3px;padding:8px;font-size:10px}.glass-table tbody td{padding:10px 8px;font-size:12px}.dash-table th:nth-child(5),.dash-table td:nth-child(5),.dash-table th:nth-child(6),.dash-table td:nth-child(6){display:none}.modal-overlay{padding:8px 8px calc(8px + env(safe-area-inset-bottom));align-items:flex-end}.modal-content{border-radius:16px 16px 0 0;width:100%;max-width:100%;max-height:92dvh;padding:20px;animation:.3s slideUp}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.form-control{min-height:44px;padding:12px 14px;font-size:16px}select.form-control{min-height:44px}.gantt-grid{-webkit-overflow-scrolling:touch;overflow-x:auto}.gantt-row>div:first-child{flex:0 0 160px!important;font-size:12px!important}.gantt-row>div:last-child,.gantt-header>div:last-child{min-width:400px}.glass-panel input{font-size:16px}.readiness-content{flex-direction:column!important;align-items:center!important;gap:16px!important}.readiness-modules{justify-content:center!important}.notif-panel-wrap{width:auto!important;left:8px!important;right:8px!important}}@media (max-width:480px){.dash-grid{grid-template-columns:1fr;gap:8px}.stat-value{font-size:20px}.module-grid{grid-template-columns:1fr 1fr!important}.gantt-row>div:first-child{flex:0 0 120px!important;font-size:11px!important}.modal-content{padding:16px}.topbar{padding:12px}.topbar h1{font-size:15px}.content-scroll{padding:0 8px 8px}.tb-actions .btn{padding:6px 10px;font-size:11px}}@media (min-width:1600px){.content-scroll{padding:0 48px 48px}.topbar{padding:28px 48px}.dash-grid{grid-template-columns:repeat(3,1fr)}}@media (min-width:1920px){.content-scroll{padding:0 max(48px, calc((100vw - var(--sidebar-width) - 1680px) / 2)) 48px}.topbar{padding:28px max(48px, calc((100vw - var(--sidebar-width) - 1680px) / 2))}}@media (hover:none){.glass-card:hover{box-shadow:var(--glass-shadow);transform:none}.btn-primary:hover:not(:disabled){transform:none}.sb-item:hover{background:0 0}.sb-item.active:hover{background:#323b971f}}@media (pointer:coarse){.bui-tab,.bui-chip{min-height:32px}.btn-icon,.icon-btn,button.icon-btn{justify-content:center;align-items:center;min-width:34px;min-height:34px;display:inline-flex}input[type=checkbox],input[type=radio]{width:24px;min-width:24px;height:24px;min-height:24px}input[type=range],.tm-range{height:28px;min-height:28px}.gsearch-input,input.form-control,select.form-control,textarea.form-control,.dock-picker-search input,.dock-search input{min-height:40px}.btn,.settings-nav-link,.wbs-name,.gantt-zoom-btn,.settings-disclosure{align-items:center;min-height:32px;display:inline-flex}input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]),select,textarea{min-height:36px}.subtask-twist,.wbs-twist{justify-content:center;align-items:center;min-width:30px;min-height:30px;margin:-6px;display:inline-flex}}@keyframes skeleton-pulse{0%{background-color:#323b970f}50%{background-color:#323b971f}to{background-color:#323b970f}}.skeleton-pulse{border-radius:4px;animation:1.5s ease-in-out infinite skeleton-pulse}body.dark .skeleton-pulse{animation-name:skeleton-pulse-dark}@keyframes skeleton-pulse-dark{0%{background-color:#ffffff0f}50%{background-color:#ffffff1f}to{background-color:#ffffff0f}}.topics-layout{min-height:calc(100vh - var(--topbar-height) - 80px);align-items:flex-start;gap:24px;display:flex}.topics-list-panel{flex-direction:column;flex-shrink:0;gap:12px;width:380px;min-width:0;display:flex}.topics-filter-bar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:4px;display:flex}.topics-filter-bar .filter-tabs{border-radius:var(--radius-sm);background:#323b970a;gap:2px;padding:3px;display:flex}.topics-filter-bar .filter-tab{cursor:pointer;color:var(--text-muted);font-size:12px;font-weight:600;font-family:var(--font-sans);background:0 0;border:none;border-radius:6px;padding:6px 14px;transition:all .15s}.topics-filter-bar .filter-tab:hover{color:var(--indigo)}.topics-filter-bar .filter-tab.active{color:var(--indigo);background:#fff;box-shadow:0 1px 4px #323b971f}body.dark .topics-filter-bar .filter-tab.active{color:#fff;background:#818cf833}.topics-search{border-radius:var(--radius-sm);min-width:160px;font-size:13px;font-family:var(--font-sans);color:var(--text-main);background:#ffffff80;border:1px solid #323b971f;flex:1;padding:7px 12px;transition:all .2s}.topics-search:focus{border-color:var(--indigo);outline:none;box-shadow:0 0 0 3px #323b9714}body.dark .topics-search{background:#ffffff0f;border-color:#ffffff1f}.topic-card{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-md);cursor:pointer;padding:18px 20px;transition:all .2s;position:relative}.topic-card:hover{border-color:#323b9740;box-shadow:0 4px 16px #323b9714}.topic-card.selected{border-color:var(--indigo);box-shadow:0 0 0 2px #323b9726}.topic-card.pinned{border-left:3px solid var(--indigo)}.topic-card-header{align-items:flex-start;gap:10px;margin-bottom:6px;display:flex}.topic-card-title{color:var(--text-main);flex:1;font-size:15px;font-weight:600;line-height:1.35}.topic-card-snippet{color:var(--text-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-bottom:10px;font-size:13px;line-height:1.45;display:-webkit-box;overflow:hidden}.topic-card-meta{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:12px;font-size:12px;display:flex}.topic-card-meta .author-pill{align-items:center;gap:6px;display:flex}.topic-avatar{color:#fff;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;font-size:10px;font-weight:700;display:flex}.topic-reply-count{color:var(--text-muted);align-items:center;gap:4px;font-size:12px;display:inline-flex}.status-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.status-dot.open{background:#10b981}.status-dot.resolved{background:var(--blue)}.status-dot.closed{background:#9ca3af}.priority-badge{text-transform:uppercase;letter-spacing:.5px;border-radius:4px;align-items:center;padding:2px 8px;font-size:10px;font-weight:700;display:inline-flex}.priority-badge.low{color:#6b7280;background:#f3f4f6}.priority-badge.normal{color:#1d4ed8;background:#dbeafe}.priority-badge.high{color:#b45309;background:#fef3c7}.priority-badge.critical{color:#b91c1c;background:#fee2e2}.tag-badge{color:var(--indigo);background:#323b9714;border-radius:4px;align-items:center;padding:2px 8px;font-size:10px;font-weight:600;display:inline-flex}.topic-detail-panel{min-width:0;max-height:calc(100vh - var(--topbar-height) - 48px);background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-lg);box-shadow:var(--glass-shadow);flex-direction:column;flex:1;display:flex;position:sticky;top:0;overflow-y:auto}.topic-detail-header{border-bottom:1px solid #323b970f;padding:24px 24px 16px}.topic-detail-title{color:var(--text-main);margin-bottom:8px;font-size:20px;font-weight:700;line-height:1.3}.topic-detail-meta{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:12px;font-size:12px;display:flex}.topic-detail-body{color:var(--text-main);white-space:pre-wrap;word-wrap:break-word;border-bottom:1px solid #323b970f;padding:20px 24px;font-size:14px;line-height:1.65}.topic-detail-actions{flex-wrap:wrap;gap:8px;display:flex}.attachments-grid{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.attachment-thumb{border:1px solid var(--glass-border);cursor:pointer;border-radius:8px;width:80px;height:80px;transition:transform .2s;position:relative;overflow:hidden}.attachment-thumb:hover{transform:scale(1.05)}.attachment-thumb img,.attachment-thumb video{object-fit:cover;width:100%;height:100%}.attachment-file{color:var(--indigo);cursor:pointer;background:#323b970a;border:1px solid #323b9714;border-radius:6px;align-items:center;gap:6px;padding:6px 10px;font-size:11px;text-decoration:none;transition:background .15s;display:flex}.attachment-file:hover{background:#323b9714}.replies-section{flex:1;padding:16px 24px;overflow-y:auto}.replies-section-title{text-transform:uppercase;letter-spacing:.8px;color:var(--indigo);margin-bottom:16px;font-size:12px;font-weight:700}.reply-card{border-bottom:1px solid #323b970d;padding:14px 0}.reply-card:last-child{border-bottom:none}.reply-header{align-items:center;gap:8px;margin-bottom:6px;display:flex}.reply-author{color:var(--text-main);font-size:13px;font-weight:600}.reply-time{color:var(--text-muted);font-size:11px}.reply-body{color:var(--text-main);white-space:pre-wrap;word-wrap:break-word;font-size:14px;line-height:1.6}.reply-composer{border-top:1px solid #323b9714;flex-direction:column;gap:10px;padding:16px 24px;display:flex}.reply-composer textarea{border-radius:var(--radius-sm);width:100%;min-height:80px;font-family:var(--font-sans);resize:vertical;color:var(--text-main);background:#ffffff80;border:1px solid #323b971f;padding:12px;font-size:14px;transition:border-color .2s}.reply-composer textarea:focus{border-color:var(--indigo);outline:none;box-shadow:0 0 0 3px #323b9714}.reply-composer-actions{justify-content:space-between;align-items:center;display:flex}.file-drop-zone{border-radius:var(--radius-sm);text-align:center;color:var(--text-muted);cursor:pointer;border:2px dashed #323b9733;padding:20px;font-size:13px;transition:all .2s}.file-drop-zone:hover,.file-drop-zone.drag-over{border-color:var(--indigo);color:var(--indigo);background:#323b9708}.file-preview-row{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.file-preview-item{color:var(--indigo);background:#323b970f;border-radius:4px;align-items:center;gap:4px;padding:4px 8px;font-size:11px;display:flex}button.remove-file{font:inherit;background:0 0;border:none;padding:0}.file-preview-item .remove-file{cursor:pointer;color:var(--red);margin-left:2px;font-weight:700}.topics-empty{text-align:center;color:var(--text-muted);padding:60px 24px}.topics-empty-icon{opacity:.4;margin-bottom:16px;font-size:48px}.topics-empty h3{color:var(--text-main);margin-bottom:8px;font-size:18px;font-weight:600}.topics-empty p{max-width:360px;margin:0 auto;font-size:14px;line-height:1.5}.topic-detail-empty{height:300px;color:var(--text-muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:24px;display:flex}.topic-detail-empty p{margin-top:8px;font-size:14px}.related-task-link{color:var(--indigo);cursor:pointer;background:#323b970f;border-radius:6px;align-items:center;gap:4px;padding:3px 10px;font-size:11px;font-weight:600;text-decoration:none;transition:background .15s;display:inline-flex}.related-task-link:hover{background:#323b971f}body.dark .topic-card{background:#111827e6;border-color:#ffffff1a}body.dark .topic-card:hover{border-color:#818cf84d}body.dark .topic-card.selected{border-color:var(--indigo);box-shadow:0 0 0 2px #818cf833}body.dark .topic-detail-panel{background:#111827f2;border-color:#ffffff1a}body.dark .reply-composer textarea{background:#ffffff0f;border-color:#ffffff1f}body.dark .file-drop-zone{border-color:#ffffff26}body.dark .file-drop-zone:hover{border-color:var(--indigo);background:#818cf80d}body.dark .attachment-file{background:#ffffff0f;border-color:#ffffff1a}body.dark .topics-filter-bar .filter-tabs{background:#ffffff0f}@media (max-width:1024px){.topics-layout{flex-direction:column}.topics-list-panel{width:100%}.topic-detail-panel{width:100%;max-height:none;position:static}}.topic-status-select{appearance:none;border:1px solid var(--glass-border);color:var(--text-main);cursor:pointer;background:url(data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2212%22%20height%3D%2212%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23323B97%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpolyline%20points%3D%226%209%2012%2015%2018%209%22%3E%3C%2Fpolyline%3E%3C%2Fsvg%3E) right 6px center no-repeat;border-radius:12px;padding:2px 24px 2px 8px;font-family:inherit;font-size:13px;font-weight:600;transition:all .2s}.topic-status-select:focus{border-color:var(--indigo);background-color:#ffffff80;outline:none}body.dark .topic-status-select:focus{background-color:#0003}@media (max-width:768px){.topics-layout{gap:12px}.topics-filter-bar{gap:6px}.topics-filter-bar .filter-tab{padding:5px 10px;font-size:11px}.topic-card{padding:14px 16px}.topic-card-title{font-size:14px}.topic-detail-panel{z-index:90;width:100%;max-height:100vh;padding-bottom:calc(64px + env(safe-area-inset-bottom));border-radius:0;position:fixed;inset:0}.topic-detail-header{padding:16px}.topic-detail-body,.replies-section,.reply-composer{padding:12px 16px}.topic-back-btn{display:flex}}.topic-back-btn{color:var(--indigo);cursor:pointer;font-size:13px;font-weight:600;font-family:var(--font-sans);background:0 0;border:none;align-items:center;gap:4px;margin-bottom:8px;padding:4px 0;display:none}.topic-back-btn:hover{opacity:.8}@keyframes toast-slide-in{0%{opacity:0;transform:translate(120%)}to{opacity:1;transform:translate(0)}}@keyframes toast-progress{0%{transform-origin:100%;transform:scaleX(1)}to{transform-origin:100%;transform:scaleX(0)}}.form-control:disabled,.form-control[disabled]{opacity:.55;cursor:not-allowed;background:#00000008}body.dark .form-control:disabled,body.dark .form-control[disabled]{background:#ffffff0a}.sb-item:focus-visible{outline:2px solid var(--indigo);outline-offset:2px;border-radius:8px}.glass-table th[style*=cursor]{transition:color .15s}.glass-table th[style*=cursor]:hover{color:var(--indigo)}.modal-content::-webkit-scrollbar{width:6px}.modal-content::-webkit-scrollbar-track{background:0 0}.modal-content::-webkit-scrollbar-thumb{background:#323b9726;border-radius:3px}.modal-content::-webkit-scrollbar-thumb:hover{background:#323b974d}body.dark .modal-content::-webkit-scrollbar-thumb{background:#ffffff26}@keyframes csv-loading{0%{transform:translate(-100%)}50%{transform:translate(150%)}to{transform:translate(350%)}}@media print{.sidebar,.topbar,.bulk-bar,.bot-dock,.bot-dock-launcher,.mobile-menu-overlay,.kbd-hints,.no-print{display:none!important}.main-content{margin-left:0!important;padding:0!important}.content-scroll{padding:0!important;overflow:visible!important}.app-container{display:block!important}.glass-card{break-inside:avoid;box-shadow:none}a[href]:after{content:""}}
