@import"https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&family=Roboto+Mono:wght@400;500&display=swap";.app-shell{display:flex;min-height:100vh;background-color:var(--color-bg-secondary);padding-top:var(--global-topbar-height, 60px)}.global-topbar{position:fixed;top:0;left:0;right:0;height:var(--global-topbar-height, 60px);background:linear-gradient(135deg,var(--dn-blue) 0%,var(--dn-purple) 50%,var(--dn-red) 100%);border-bottom:1px solid rgba(255,255,255,.1);display:flex;align-items:center;justify-content:space-between;padding:0 var(--spacing-md);z-index:calc(var(--z-fixed) + 10);box-shadow:var(--shadow-md)}.global-topbar-left{display:flex;align-items:center;flex:1}.global-topbar-center{display:flex;align-items:center;justify-content:center;flex:1}.global-topbar-right{display:flex;align-items:center;justify-content:flex-end;gap:var(--spacing-md);flex:1}.app-sidebar{width:var(--sidebar-width);background-color:var(--color-surface);border-right:1px solid var(--color-border-light);display:flex;flex-direction:column;position:fixed;top:var(--global-topbar-height, 60px);left:0;bottom:0;z-index:var(--z-fixed);box-shadow:var(--shadow-sm)}.app-logo{display:flex;align-items:center;gap:var(--spacing-md)}.logo-icon{width:40px;height:40px;background:linear-gradient(135deg,var(--dn-blue) 0%,var(--dn-purple) 50%,var(--dn-red) 100%);color:var(--color-text-inverse);display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);font-weight:var(--font-weight-bold);font-size:var(--font-size-lg)}.logo-image{width:36px;height:36px;border-radius:var(--radius-md);object-fit:contain;display:block}.logo-text{display:flex;flex-direction:column;gap:2px}.logo-title{font-size:var(--font-size-base);font-weight:var(--font-weight-bold);color:var(--color-text-inverse);line-height:1.2}.logo-subtitle{font-size:var(--font-size-xs);color:#fffc;line-height:1.2}.sidebar-nav{flex:1;padding:var(--spacing-lg) var(--spacing-md);display:flex;flex-direction:column;gap:var(--spacing-xs);overflow-y:auto;min-height:0}.sidebar-nav-bottom{flex:0 0 auto;padding:var(--spacing-md);padding-top:0;border-top:1px solid var(--color-border-light);margin-top:auto}button.nav-item{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);border-radius:var(--radius-md);background-color:transparent;color:var(--color-text-secondary);font-size:var(--font-size-base);text-align:left;transition:all var(--transition-fast);border:none;cursor:pointer;width:100%}button.nav-item:hover:not(.disabled):not(.active){background-color:var(--color-primary-light);color:var(--color-primary);font-weight:var(--font-weight-medium)}button.nav-item.active{background-color:var(--color-primary);color:var(--color-text-inverse)!important;font-weight:var(--font-weight-medium)}button.nav-item.active:hover{background-color:var(--color-primary);color:var(--color-text-inverse)!important}button.nav-item.active .nav-icon,button.nav-item.active .nav-label{color:var(--color-text-inverse)!important}button.nav-item.disabled{opacity:.4;cursor:not-allowed}.nav-accordion{display:flex;flex-direction:column}button.nav-item.accordion-header{position:relative}.accordion-chevron{font-size:12px;margin-left:auto;transition:transform var(--transition-fast)}.accordion-content{display:flex;flex-direction:column;gap:var(--spacing-xs);margin-top:var(--spacing-xs)}button.nav-item.child-nav-item{padding-left:calc(var(--spacing-md) + var(--spacing-lg));font-size:calc(var(--font-size-base) - 1px)}.nav-icon{font-size:18px;display:flex;align-items:center;justify-content:center;width:28px;flex-shrink:0}.nav-label{flex:1}.sidebar-footer{padding:var(--spacing-md);border-top:1px solid var(--color-border-light);text-align:center}.footer-text{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.app-main{flex:1;margin-left:var(--sidebar-width);display:flex;flex-direction:column;height:calc(100vh - var(--global-topbar-height, 60px));overflow:hidden}.page-topbar{height:var(--page-topbar-height, 40px);background:var(--color-surface);border-bottom:1px solid var(--color-border-light);display:flex;align-items:center;padding:0 var(--spacing-lg);box-shadow:var(--shadow-sm);flex-shrink:0}.page-title{margin:0;font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.app-topbar{height:48px;background:linear-gradient(135deg,var(--color-surface) 0%,#f8f9fc 100%);border-bottom:1px solid var(--color-border-light);display:flex;align-items:center;justify-content:space-between;padding:0 var(--spacing-xl);position:sticky;top:0;z-index:var(--z-sticky);box-shadow:var(--shadow-xs)}.topbar-left{display:flex;align-items:center;gap:var(--spacing-lg)}.page-title{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin:0}.topbar-right{display:flex;align-items:center;gap:var(--spacing-md)}.active-proposal-badge{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background-color:#ffffff26;border-radius:var(--radius-md);border:1px solid rgba(255,255,255,.25);max-width:400px}.proposal-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:#fffc;text-transform:uppercase;letter-spacing:.5px;white-space:nowrap}.proposal-name{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-inverse);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:250px}.btn-clear-proposal{background:transparent;border:none;color:#fffc;cursor:pointer;padding:4px;font-size:14px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);transition:all var(--transition-fast);width:24px;height:24px;flex-shrink:0}.btn-clear-proposal:hover{background-color:#fff3;color:var(--color-text-inverse);transform:scale(1.1)}.app-content{flex:1;padding:var(--spacing-md);max-width:var(--content-max-width);width:100%;margin:0 auto;overflow-y:auto;overflow-x:hidden}.app-content:has(.chat-page){padding:0;max-width:100%;overflow:hidden}.app-content:has(.system-dashboard-page){padding:0;max-width:100%;overflow:hidden;display:flex;flex-direction:column}.system-dashboard-page{flex:1;display:flex;flex-direction:column;height:100%}.system-dashboard-state{justify-content:center;align-items:center;color:#666;font-size:1rem}.system-dashboard-state-inner{display:flex;flex-direction:column;align-items:center;gap:.5rem}.app-content:has(.rfps-page){scrollbar-width:none;-ms-overflow-style:none}.app-content:has(.rfps-page)::-webkit-scrollbar{display:none}.app-content:has(.requirements-list-page){max-width:100%;display:flex;flex-direction:column;overflow:hidden}@media(max-width:1280px){.app-content{padding:var(--spacing-sm)}}@media(max-width:1024px){.app-sidebar{width:var(--sidebar-collapsed-width)}.app-main{margin-left:var(--sidebar-collapsed-width)}.logo-text,.nav-label,.sidebar-context,.footer-text,.accordion-chevron{display:none}.app-logo,.nav-item{justify-content:center}.nav-icon{width:auto}button.nav-item.child-nav-item{padding-left:var(--spacing-md)}.global-topbar{padding:0 var(--spacing-sm)}.proposal-name{max-width:150px}}@media(max-width:768px){:root{--global-topbar-height: 44px;--page-topbar-height: 36px}.app-sidebar{position:fixed;transform:translate(-100%);transition:transform var(--transition-base);width:var(--sidebar-width);z-index:calc(var(--z-fixed) + 5)}.app-sidebar.mobile-open{transform:translate(0)}.app-main{margin-left:0}.app-content{padding:var(--spacing-sm)}.page-title{font-size:var(--font-size-base)}.logo-image{width:28px;height:28px}.logo-text{display:none}.proposal-name{max-width:120px;font-size:var(--font-size-xs)}.proposal-label{font-size:10px}.active-proposal-badge{padding:var(--spacing-xs) var(--spacing-sm)}}@media(max-width:480px){:root{--global-topbar-height: 40px;--page-topbar-height: 32px}.global-topbar{padding:0 var(--spacing-xs)}.page-topbar{padding:0 var(--spacing-sm)}.app-content{padding:var(--spacing-xs)}.page-title{font-size:var(--font-size-sm)}.active-proposal-badge{display:none}.logo-image{width:24px;height:24px}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--radius-md);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);transition:all var(--transition-fast);cursor:pointer;border:none;white-space:nowrap;background-color:transparent}.btn-primary{background-color:var(--color-primary)!important;color:var(--color-text-inverse)!important}.btn-primary:hover:not(:disabled){background-color:var(--color-primary-hover)!important;box-shadow:var(--shadow-md)}.btn-secondary{background-color:var(--color-surface)!important;color:var(--color-text-primary)!important;border:1px solid var(--color-border)}.btn-secondary:hover:not(:disabled){background-color:var(--color-surface-hover)!important;border-color:var(--color-border-dark)}.btn-danger{background-color:var(--color-danger)!important;color:var(--color-text-inverse)!important}.btn-danger:hover:not(:disabled){background-color:var(--color-accent-hover)!important;box-shadow:var(--shadow-md)}.btn-sm{padding:var(--spacing-xs) var(--spacing-md);font-size:var(--font-size-sm)}.btn-lg{padding:var(--spacing-md) var(--spacing-xl);font-size:var(--font-size-lg)}.btn:disabled{opacity:.5;cursor:not-allowed}.card{background-color:var(--color-surface);border:1px solid var(--color-border-light);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--spacing-lg);transition:all var(--transition-fast)}.card:hover{box-shadow:var(--shadow-md)}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-md);border-bottom:1px solid var(--color-border-light)}.card-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin:0}.card-body{padding:0}.badge{display:inline-flex;align-items:center;padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);text-transform:uppercase;letter-spacing:.5px}.badge-primary{background-color:var(--color-primary-light);color:var(--color-primary)}.badge-success{background-color:#e6f7f0;color:var(--color-success)}.badge-warning{background-color:#fff8e6;color:#d97706}.badge-danger{background-color:#fee;color:var(--color-danger)}.badge-secondary{background-color:var(--color-bg-tertiary);color:var(--color-text-secondary)}.loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-3xl);color:var(--color-text-secondary);gap:var(--spacing-md)}.loading-spinner{width:40px;height:40px;border:4px solid var(--color-border-light);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-text{font-size:var(--font-size-lg);font-weight:var(--font-weight-medium)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-3xl);text-align:center;color:var(--color-text-secondary);gap:var(--spacing-md)}.empty-state-icon{font-size:3.5rem;opacity:.3;color:var(--dn-blue)}.empty-state-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.empty-state-description{font-size:var(--font-size-base);max-width:400px}.error{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-2xl);text-align:center;gap:var(--spacing-md)}.error-icon{width:48px;height:48px;background-color:var(--color-danger);color:var(--color-text-inverse);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold)}.error-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-danger);margin:0}.error-message{font-size:var(--font-size-base);color:var(--color-text-secondary);max-width:500px}.alert{padding:var(--spacing-md) var(--spacing-lg);border-radius:var(--radius-md);border-left:4px solid;margin-bottom:var(--spacing-md)}.alert-info{background-color:#e6f4ff;border-color:var(--color-info);color:#004080}.alert-success{background-color:#e6f7f0;border-color:var(--color-success);color:#064}.alert-warning{background-color:#fff8e6;border-color:var(--color-warning);color:#7c5d00}.alert-danger{background-color:#fee;border-color:var(--color-danger);color:#8a1426}.form-group{display:flex;flex-direction:column;gap:var(--spacing-sm);margin-bottom:var(--spacing-lg)}.form-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.form-input,.form-select,.form-textarea{width:100%;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-base);background-color:var(--color-surface);color:var(--color-text-primary);transition:all var(--transition-fast)}.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:var(--color-border-focus);box-shadow:0 0 0 3px var(--color-primary-light)}.form-textarea{min-height:100px;resize:vertical}.form-help{font-size:var(--font-size-sm);color:var(--color-text-tertiary)}.text-primary{color:var(--color-text-primary)}.text-secondary{color:var(--color-text-secondary)}.text-tertiary{color:var(--color-text-tertiary)}.text-danger{color:var(--color-danger)}.text-success{color:var(--color-success)}.text-center{text-align:center}.mt-0{margin-top:0}.mt-sm{margin-top:var(--spacing-sm)}.mt-md{margin-top:var(--spacing-md)}.mt-lg{margin-top:var(--spacing-lg)}.mt-xl{margin-top:var(--spacing-xl)}.mb-0{margin-bottom:0}.mb-sm{margin-bottom:var(--spacing-sm)}.mb-md{margin-bottom:var(--spacing-md)}.mb-lg{margin-bottom:var(--spacing-lg)}.mb-xl{margin-bottom:var(--spacing-xl)}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-sm{gap:var(--spacing-sm)}.gap-md{gap:var(--spacing-md)}.gap-lg{gap:var(--spacing-lg)}.navbar-brand h1{font-size:1.5rem;color:var(--primary-color);margin:0}.navbar-menu{display:flex;gap:.5rem;flex:1}.nav-item{padding:.5rem 1rem;background:none;border:none;cursor:pointer;font-size:1rem;color:var(--text-secondary);border-radius:4px;transition:all .2s}.nav-item:hover:not(:disabled){background-color:var(--background-light);color:var(--text-primary)}.nav-item.active{background-color:var(--primary-color);color:#fff}.nav-item:disabled{opacity:.5;cursor:not-allowed}.navbar-context{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background-color:var(--background-light);border-radius:4px}.context-label{font-size:.875rem;color:var(--text-secondary)}.context-value{font-size:.875rem;font-weight:600;color:var(--primary-color)}.main-content{flex:1;padding:2rem;max-width:1400px;margin:0 auto;width:100%}.footer{background-color:#fff;border-top:1px solid var(--border-color);padding:1rem 2rem;text-align:center;color:var(--text-secondary);font-size:.875rem}.loading{text-align:center;padding:3rem;color:var(--text-secondary)}.error{text-align:center;padding:3rem;color:var(--danger-color)}.error button{margin-top:1rem}.empty-state{text-align:center;padding:3rem}.empty-state h3{color:var(--text-primary);margin-bottom:.5rem}.empty-state p{color:var(--text-secondary);margin-bottom:1.5rem}.auth-page{min-height:100vh;display:flex;flex-direction:column}.auth-header{height:var(--global-topbar-height, 48px);background:linear-gradient(135deg,#036,#6b46c1,#dc2626);border-bottom:1px solid rgba(255,255,255,.1);display:flex;align-items:center;padding:0 32px;box-shadow:0 2px 8px #0000001a;flex-shrink:0}.auth-header-logo{display:flex;align-items:center}.auth-header-logo img{height:36px;margin-right:16px}.auth-header-logo .auth-title{color:#fff;font-size:18px;font-weight:600}.auth-body{flex:1;display:flex;align-items:center;justify-content:center;background-color:#f5f5f5;padding:40px 20px}.auth-card{max-width:420px;width:100%;background-color:#fff;padding:40px;border-radius:8px;box-shadow:0 2px 8px #0000001a}@media(max-width:768px){.auth-header{padding:0 16px}.auth-header-logo .auth-title{font-size:16px}.auth-body{padding:24px 16px}.auth-card{padding:24px}}@media(max-width:480px){.auth-header-logo img{height:28px;margin-right:10px}.auth-header-logo .auth-title{font-size:14px}.auth-body{padding:16px 12px;align-items:flex-start}.auth-card{padding:20px 16px;box-shadow:none;border-radius:0;max-width:100%}}:root{--dn-blue: #004b87;--dn-red: #a6192e;--dn-purple: #470a68;--dn-teal: #00b2a9;--dn-gold: #fcb61a;--dn-orange: #ff7900;--dn-light-blue: #17a7ff;--dn-magenta: #a51f7c;--dn-gray-10: #e6e7e8;--dn-gray-20: #bec0c2;--dn-gray-50: #808285;--dn-white: #ffffff;--dn-black: #000000;--color-primary: var(--dn-blue);--color-primary-hover: #003a66;--color-primary-light: #e6f0f8;--color-accent: var(--dn-red);--color-accent-hover: #8a1426;--color-success: var(--dn-teal);--color-warning: var(--dn-gold);--color-danger: var(--dn-red);--color-info: var(--dn-light-blue);--color-text-primary: #1a1a1a;--color-text-secondary: #595959;--color-text-tertiary: var(--dn-gray-50);--color-text-inverse: var(--dn-white);--color-text-link: var(--dn-blue);--color-text-link-hover: #003a66;--color-bg-primary: var(--dn-white);--color-bg-secondary: #f5f5f5;--color-bg-tertiary: var(--dn-gray-10);--color-bg-dark: #1a1a1a;--color-bg-overlay: rgba(0, 0, 0, .5);--color-surface: var(--dn-white);--color-surface-hover: #f8f9fa;--color-surface-active: var(--dn-gray-10);--color-surface-selected: var(--color-primary-light);--color-border: var(--dn-gray-20);--color-border-light: var(--dn-gray-10);--color-border-dark: var(--dn-gray-50);--color-border-focus: var(--dn-blue);--font-family-base: "Roboto", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Arial, sans-serif;--font-family-heading: "Roboto", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Arial, sans-serif;--font-family-mono: "Roboto Mono", "Consolas", "Monaco", "Courier New", monospace;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--font-size-4xl: 2.25rem;--font-weight-light: 300;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-bold: 700;--line-height-tight: 1.25;--line-height-normal: 1.5;--line-height-relaxed: 1.75;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--spacing-3xl: 4rem;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-full: 9999px;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .05);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .1), 0 1px 2px rgba(0, 0, 0, .06);--shadow-md: 0 4px 6px rgba(0, 0, 0, .07), 0 2px 4px rgba(0, 0, 0, .05);--shadow-lg: 0 10px 15px rgba(0, 0, 0, .1), 0 4px 6px rgba(0, 0, 0, .05);--shadow-xl: 0 20px 25px rgba(0, 0, 0, .1), 0 10px 10px rgba(0, 0, 0, .04);--transition-fast: .15s ease-in-out;--transition-base: .25s ease-in-out;--transition-slow: .35s ease-in-out;--z-dropdown: 1000;--z-sticky: 1020;--z-fixed: 1030;--z-modal-backdrop: 1040;--z-modal: 1050;--z-popover: 1060;--z-tooltip: 1070;--sidebar-width: 260px;--sidebar-collapsed-width: 72px;--topbar-height: 64px;--content-max-width: 1400px;--global-topbar-height: 60px;--page-topbar-height: 40px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-synthesis:none}body{margin:0;font-family:var(--font-family-base);font-size:var(--font-size-base);font-weight:var(--font-weight-regular);line-height:var(--line-height-normal);color:var(--color-text-primary);background-color:var(--color-bg-secondary);min-height:100vh;overflow-x:hidden}#root{min-height:100vh;display:flex;flex-direction:column}h1,h2,h3,h4,h5,h6{font-family:var(--font-family-heading);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);color:var(--color-text-primary);margin:0}h1{font-size:var(--font-size-3xl)}h2{font-size:var(--font-size-2xl)}h3{font-size:var(--font-size-xl)}h4{font-size:var(--font-size-lg)}h5{font-size:var(--font-size-base)}h6{font-size:var(--font-size-sm)}p{margin:0;line-height:var(--line-height-normal)}a{color:var(--color-text-link);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-text-link-hover);text-decoration:underline}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}button{border:none;background:none;cursor:pointer;padding:0;color:inherit;font-weight:var(--font-weight-medium);transition:all var(--transition-fast)}button:disabled{cursor:not-allowed;opacity:.5}input,select,textarea{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--spacing-sm) var(--spacing-md);background-color:var(--color-surface);color:var(--color-text-primary);transition:border-color var(--transition-fast)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--color-border-focus);box-shadow:0 0 0 3px var(--color-primary-light)}input::placeholder{color:var(--color-text-tertiary)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--color-bg-secondary)}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--radius-sm)}::-webkit-scrollbar-thumb:hover{background:var(--color-border-dark)}::selection{background-color:var(--color-primary-light);color:var(--color-text-primary)}:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px}
