@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap";:root{--bg-primary:#f5f7fb;--bg-secondary:#fff;--bg-tertiary:#f0f4f9;--bg-card:#fff;--bg-card-hover:#fff;--border-subtle:#e2e8f0;--border-focus:#3b82f6;--text-primary:#1e293b;--text-secondary:#475569;--text-muted:#64748b;--accent-primary:#2563eb;--accent-primary-hover:#1d4ed8;--accent-gradient:linear-gradient(135deg, #2563eb 0%, #3b82f6 100%);--accent-glow:0 4px 14px #2563eb40;--status-draft:#64748b;--status-review:#2563eb;--status-qa:#ea580c;--status-implemented:#16a34a;--status-rejected:#dc2626;--font-sans:"Inter", system-ui, -apple-system, sans-serif;--font-mono:"JetBrains Mono", monospace;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--shadow-card:0 1px 3px 0 #0000000d, 0 1px 2px -1px #0000000d;--shadow-modal:0 20px 25px -5px #0000001a, 0 8px 10px -6px #0000001a;--transition-fast:all .15s cubic-bezier(.4, 0, .2, 1);--transition-smooth:all .25s cubic-bezier(.4, 0, .2, 1)}[data-theme=dark]{--bg-primary:#0f172a;--bg-secondary:#1e293b;--bg-tertiary:#334155;--bg-card:#1e293b;--bg-card-hover:#243046;--border-subtle:#334155;--border-focus:#3b82f6;--text-primary:#f8fafc;--text-secondary:#cbd5e1;--text-muted:#94a3b8;--accent-primary:#3b82f6;--accent-primary-hover:#60a5fa;--accent-gradient:linear-gradient(135deg, #2563eb 0%, #3b82f6 100%);--accent-glow:0 0 20px #3b82f64d;--shadow-card:0 4px 20px -4px #00000080;--shadow-modal:0 25px 50px -12px #000000b3}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background-color:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;line-height:1.5;transition:background-color .3s,color .25s;overflow-x:hidden}.app-container{background:var(--bg-primary);min-height:100vh;display:flex}.main-content{flex-direction:column;flex:1;min-width:0;height:100vh;display:flex;overflow-y:auto}.page-wrapper{width:100%;max-width:1600px;margin:0 auto;padding:2rem}.glass-card{background:var(--bg-card);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);transition:var(--transition-smooth)}.glass-card:hover{border-color:var(--border-focus);box-shadow:var(--shadow-card)}.sidebar{background:var(--bg-secondary);border-right:1px solid var(--border-subtle);z-index:40;flex-direction:column;flex-shrink:0;justify-content:space-between;width:260px;transition:width .22s cubic-bezier(.4,0,.2,1);display:flex;padding:0!important}.sidebar.collapsed{width:72px!important;padding:0!important}.sidebar.collapsed nav{scrollbar-width:none;-ms-overflow-style:none}.sidebar.collapsed nav::-webkit-scrollbar{display:none}.sidebar.collapsed .sidebar-nav-label,.sidebar.collapsed .sidebar-category-title,.sidebar.collapsed .sidebar-count-badge,.sidebar.collapsed .sidebar-logo-text,.sidebar.collapsed .sidebar-user-name,.sidebar.collapsed .sidebar-status-text{display:none}.sidebar.collapsed .sidebar-logo{justify-content:center}.sidebar-collapse-btn{color:var(--text-secondary);cursor:pointer;transition:var(--transition-fast);background:0 0;border:1px solid #ffffff14;border-radius:6px;justify-content:center;align-items:center;padding:.3rem;display:flex}.sidebar-collapse-btn:hover{color:var(--text-primary);background:#ffffff0f}.sidebar-logo{align-items:center;gap:.75rem;margin-bottom:2rem;padding:.5rem .75rem;display:flex}.logo-badge{border-radius:var(--radius-md);background:var(--accent-gradient);color:#fff;width:36px;height:36px;box-shadow:var(--accent-glow);justify-content:center;align-items:center;display:flex}.logo-title{letter-spacing:-.02em;background:linear-gradient(#fff 0%,#cbd5e1 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;font-size:1.25rem;font-weight:700}.nav-menu{flex-direction:column;gap:.5rem;display:flex}.nav-item{border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;transition:var(--transition-fast);border:1px solid #0000;align-items:center;gap:.75rem;padding:.75rem 1rem;font-size:.925rem;font-weight:500;display:flex}.nav-item:hover{color:var(--text-primary);background:#ffffff0d}.nav-item.active{color:#818cf8;background:#6366f126;border-color:#6366f14d}.top-header{background:var(--bg-card);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border-subtle);z-index:30;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;height:auto;min-height:70px;padding:.6rem 2rem;display:flex;position:sticky;top:0}.role-switcher-container{background:var(--bg-tertiary);border-radius:var(--radius-md);border:1px solid var(--border-subtle);align-items:center;gap:.75rem;padding:.4rem .8rem;display:flex}.role-select{color:var(--text-primary);cursor:pointer;background:0 0;border:none;outline:none;font-size:.875rem;font-weight:600}.role-select option{background:var(--bg-secondary);color:var(--text-primary)}.badge{text-transform:uppercase;letter-spacing:.04em;border-radius:9999px;align-items:center;gap:.4rem;padding:.25rem .65rem;font-size:.75rem;font-weight:600;display:inline-flex}.badge-draft{color:#d1d5db;background:#9ca3af26;border:1px solid #9ca3af4d}.badge-review{color:#60a5fa;background:#3b82f626;border:1px solid #3b82f64d}.badge-qa{color:#fbbf24;background:#f59e0b26;border:1px solid #f59e0b4d}.badge-implemented{color:#34d399;background:#10b98126;border:1px solid #10b9814d}.badge-rejected{color:#f87171;background:#ef444426;border:1px solid #ef44444d}.btn{border-radius:var(--radius-md);cursor:pointer;transition:var(--transition-fast);border:1px solid #0000;align-items:center;gap:.5rem;padding:.6rem 1.2rem;font-size:.875rem;font-weight:600;display:inline-flex}.btn-primary{background:var(--accent-gradient);color:#fff;box-shadow:var(--accent-glow)}.btn-primary:hover{opacity:.92;transform:translateY(-1px)}.btn-secondary{background:var(--bg-tertiary);color:var(--text-primary);border-color:var(--border-subtle)}.btn-secondary:hover{background:var(--bg-card-hover)}.btn-danger{color:#f87171;background:#ef444433;border-color:#ef444466}.btn-danger:hover{background:#ef44444d}.table-container{border-radius:var(--radius-md);width:100%;overflow-x:auto}.custom-table{border-collapse:separate;border-spacing:0;width:100%;font-size:.875rem}.custom-table th{background:var(--bg-tertiary);color:var(--text-secondary);text-align:left;border-bottom:1px solid var(--border-subtle);padding:1rem 1.25rem;font-weight:600}.custom-table td{border-bottom:1px solid var(--border-subtle);color:var(--text-primary);padding:1rem 1.25rem}.custom-table tr:hover td{background:#6366f10a;transition:background .1s}.modal-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:100;background:#000000bf;justify-content:center;align-items:center;padding:1.5rem;display:flex;position:fixed;inset:0}.modal-content{background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);width:100%;max-width:750px;max-height:90vh;box-shadow:var(--shadow-modal);animation:.2s cubic-bezier(0,0,.2,1) modalIn;overflow-y:auto}@keyframes modalIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.modal-header{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;padding:1.5rem;display:flex}.modal-body{flex:1;padding:1.5rem;overflow-y:auto}.modal-footer{border-top:1px solid var(--border-subtle);background:var(--bg-tertiary);border-radius:0 0 var(--radius-xl) var(--radius-xl);justify-content:flex-end;gap:.75rem;padding:1.25rem 1.5rem;display:flex}.form-group{flex-direction:column;gap:.4rem;margin-bottom:1.25rem;display:flex}.form-label{color:var(--text-secondary);font-size:.85rem;font-weight:600}.form-input,.form-select,.form-textarea{background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);width:100%;color:var(--text-primary);transition:var(--transition-fast);outline:none;padding:.65rem .9rem;font-family:inherit;font-size:.9rem}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--accent-primary);background:var(--bg-secondary);box-shadow:0 0 0 3px #6366f12e}.pipeline-stepper{background:var(--bg-tertiary);border-radius:var(--radius-lg);border:1px solid var(--border-subtle);justify-content:space-between;align-items:center;margin-bottom:2rem;padding:1.5rem;display:flex;position:relative}.step-item{z-index:2;flex-direction:column;flex:1;align-items:center;gap:.5rem;display:flex;position:relative}.step-circle{background:var(--bg-secondary);border:2px solid var(--border-subtle);width:40px;height:40px;color:var(--text-muted);transition:var(--transition-smooth);border-radius:50%;justify-content:center;align-items:center;font-size:.9rem;font-weight:700;display:flex}.step-item.active .step-circle{border-color:var(--accent-primary);background:var(--accent-primary);color:#fff;box-shadow:var(--accent-glow)}.step-item.completed .step-circle{border-color:var(--status-implemented);background:var(--status-implemented);color:#fff}.step-label{color:var(--text-secondary);font-size:.8rem;font-weight:600}.step-item.active .step-label{color:var(--text-primary)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--bg-tertiary);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#334155}[data-theme=light] ::-webkit-scrollbar-track{background:var(--bg-secondary)}[data-theme=light] ::-webkit-scrollbar-thumb{background:#c1cfe0}[data-theme=light] ::-webkit-scrollbar-thumb:hover{background:#94a3b8}[data-theme=light] .skeleton{background:linear-gradient(90deg,#0000000a 25%,#00000017 50%,#0000000a 75%) 0 0/800px 100%}[data-theme=light] .modal-overlay{background:#0f172a80}:focus-visible{outline-offset:2px;border-radius:4px;outline:2px solid #6366f1d9}:focus:not(:focus-visible){outline:none}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse-fade{0%,to{opacity:.4}50%{opacity:1}}.spinner{border:3px solid #6366f133;border-top-color:#6366f1;border-radius:50%;width:40px;height:40px;animation:.75s linear infinite spin}@keyframes shimmer{0%{background-position:-400px 0}to{background-position:400px 0}}.skeleton{border-radius:var(--radius-md);background:linear-gradient(90deg,#ffffff0a 25%,#ffffff17 50%,#ffffff0a 75%) 0 0/800px 100%;animation:1.4s linear infinite shimmer}.skeleton-card{border-radius:var(--radius-lg);height:110px}.skeleton-row{border-radius:4px;height:20px;margin-bottom:.5rem}.skeleton-row.short{width:60%}.skeleton-row.medium{width:80%}.skeleton-row.full{width:100%}.module-card{cursor:pointer;border-radius:var(--radius-lg);border:1px solid #ffffff14;transition:transform .25s,border-color .25s,box-shadow .25s}.module-card:hover{transform:translateY(-3px)}.module-card:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}.dashboard-bottom-grid{grid-template-columns:2fr 1fr;gap:1.5rem;display:grid}@media (width<=960px){.dashboard-bottom-grid{grid-template-columns:1fr}}.mobile-bottom-nav,.sidebar-mobile-backdrop,.mobile-menu-btn,.mobile-close-btn{display:none!important}@media (width<=900px){.app-container{flex-direction:column;overflow-x:hidden}.sidebar{z-index:1000!important;width:285px!important;max-width:85vw!important;height:100vh!important;max-height:100vh!important;transition:transform .28s cubic-bezier(.32,.72,0,1)!important;display:flex!important;position:fixed!important;top:0!important;bottom:0!important;left:0!important;transform:translate(-100%)!important;box-shadow:4px 0 25px #0006!important}.sidebar.mobile-open{transform:translate(0)!important}.sidebar-mobile-backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:999;background:#0f172a99;animation:.2s fadeIn;position:fixed;inset:0;display:block!important}.mobile-menu-btn,.mobile-close-btn{display:flex!important}.desktop-collapse-btn{display:none!important}.main-content{width:100%!important;min-width:0!important;padding-bottom:74px!important}.mobile-bottom-nav{display:flex!important}.top-header{height:54px!important;min-height:54px!important;padding:0 .85rem!important}.header-crumb-sub,.header-quick-actions,.header-btn-text,.header-user-text{display:none!important}.page-wrapper{padding:.75rem!important}.cc-header-card{flex-direction:column!important;align-items:stretch!important;gap:.85rem!important;padding:1rem!important}.cc-header-actions{gap:.5rem!important;width:100%!important;display:flex!important}.cc-header-actions .btn{flex:1!important;justify-content:center!important}.cc-filter-toolbar{flex-direction:column!important;align-items:stretch!important;gap:.75rem!important;padding:.85rem!important}.cc-filter-toolbar>div{width:100%!important;min-width:0!important}.cc-filter-toolbar select{width:100%!important}.glass-card{-webkit-overflow-scrolling:touch;overflow-x:auto!important}.custom-table{min-width:600px}.modal-overlay{align-items:flex-end!important;padding:.4rem!important}.modal-content{border-radius:14px 14px 0 0!important;width:100%!important;max-width:100%!important;max-height:92vh!important;margin:0!important}.modal-body{padding:.85rem!important}.modal-footer{flex-wrap:wrap;padding:.75rem .85rem!important}}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.page-fadein{animation:.25s both fadeIn}.custom-table th:first-child{border-radius:var(--radius-sm) 0 0 0}.custom-table th:last-child{border-radius:0 var(--radius-sm) 0 0}.custom-table tr:last-child td{border-bottom:none}.login-page-wrapper{background:#fff;width:100%;min-height:100vh;margin:0;padding:0;font-family:Inter,system-ui,-apple-system,sans-serif;display:flex;overflow-x:hidden}.login-left-banner{justifyContent:center;color:#fff;text-align:center;background:#00549b;flex-direction:column;flex:50%;align-items:center;padding:3rem 4rem;display:flex;position:relative}.login-right-container{justifyContent:center;background:#fff;flex-direction:column;flex:50%;align-items:center;width:100%;padding:2.5rem 2rem;display:flex;position:relative;overflow-y:auto}.login-form-inner{width:100%;max-width:420px}.login-mobile-brand{display:none}@media (width<=1024px){.login-page-wrapper{background:#fff!important;flex-direction:column!important;width:100%!important;min-height:100vh!important}.login-left-banner{display:none!important}.login-right-container{box-sizing:border-box!important;flex:100%!important;justify-content:center!important;width:100%!important;max-width:100vw!important;min-height:100vh!important;padding:2.5rem 1.25rem 2rem!important}.login-form-inner{width:100%!important;max-width:100%!important}.login-mobile-brand{text-align:center;flex-direction:column;align-items:center;margin-bottom:2rem;display:flex!important}}
