
:root{--tt-background:#fff;--tt-foreground:#0a2540;--tt-navy:#0a2540;--tt-navy-light:#1e3a5f;--tt-navy-dark:#061a2d;--tt-navy-50:#f0f4f8;--tt-navy-100:#e2e8f0;--tt-navy-200:#c5d4e4;--tt-navy-300:#9bb3cc;--tt-navy-400:#6b8fb3;--tt-navy-500:#4a6fa5;--tt-navy-600:#2c3e50;--tt-navy-700:#1e3a5f;--tt-navy-800:#0a2540;--tt-navy-900:#061a2d;--tt-gray-50:#f9fafb;--tt-gray-100:#f3f4f6;--tt-gray-200:#e5e7eb;--tt-gray-300:#d1d5db;--tt-gray-500:#6b7280;--tt-gray-600:#4b5563;--tt-gray-700:#374151;--tt-gray-900:#111827;--tt-white:#fff;--tt-red-50:#fef2f2;--tt-red-200:#fecaca;--tt-red-600:#dc2626;--tt-green-50:#f0fdf4;--tt-green-200:#bbf7d0;--tt-green-600:#16a34a;--tt-shadow:0 1px 3px 0 #00000014,0 1px 2px -1px #00000014;--tt-shadow-md:0 4px 6px -1px #00000014,0 2px 4px -2px #00000014;--tt-radius:8px;--tt-radius-md:6px;--tt-sidebar-width:240px;--tt-sidebar-width-collapsed:56px;--tt-space-2:.5rem;--tt-space-4:1rem;--tt-space-6:1.5rem}*{box-sizing:border-box}body{background:var(--tt-background);color:var(--tt-foreground);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-family:Plus Jakarta Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;overflow-x:hidden}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.tt-card{background:var(--tt-white);box-shadow:var(--tt-shadow-md);border:1px solid var(--tt-gray-200);border-radius:12px;padding:1.5rem 2rem;transition:box-shadow .2s,border-color .2s}.tt-card:hover{border-color:var(--tt-navy-200);box-shadow:0 10px 15px -3px #00000014,0 4px 6px -4px #00000014}.tt-btn-primary{background:var(--tt-navy-800);color:var(--tt-white);border-radius:var(--tt-radius-md);cursor:pointer;box-shadow:var(--tt-shadow);border:none;padding:.5rem 1rem;font-size:.875rem;font-weight:500}.tt-btn-primary:hover{background:var(--tt-navy-900)}.tt-btn-primary:focus-visible{outline:2px solid var(--tt-navy-600);outline-offset:2px}.tt-btn-secondary{background:var(--tt-white);color:var(--tt-navy-800);border:1px solid var(--tt-navy-300);border-radius:var(--tt-radius-md);cursor:pointer;box-shadow:var(--tt-shadow);padding:.5rem 1rem;font-size:.875rem;font-weight:500}.tt-btn-secondary:hover{background:var(--tt-navy-50)}.tt-btn-secondary:focus-visible{outline:2px solid var(--tt-navy-600);outline-offset:2px}.tt-input{width:100%;color:var(--tt-gray-900);background:var(--tt-white);border:1px solid var(--tt-gray-300);border-radius:var(--tt-radius-md);box-shadow:var(--tt-shadow);padding:.5rem .75rem;font-size:.875rem;display:block}.tt-input:focus{border-color:var(--tt-navy-600);outline:none;box-shadow:0 0 0 3px #0a25401f}.tt-input::placeholder{color:var(--tt-gray-500)}.tt-link{color:var(--tt-navy-800);font-weight:500;text-decoration:none}.tt-link:hover{color:var(--tt-navy-700)}.tt-tab-active{background:var(--tt-navy-800)!important;color:var(--tt-white)!important}.tt-tab-inactive{background:var(--tt-gray-100);color:var(--tt-gray-700)}.tt-alert-error{background:var(--tt-red-50);border:1px solid var(--tt-red-200);color:var(--tt-red-600);border-radius:var(--tt-radius-md);padding:.75rem 1rem;font-size:.875rem}.tt-alert-success{background:var(--tt-green-50);border:1px solid var(--tt-green-200);color:var(--tt-green-600);border-radius:var(--tt-radius-md);padding:.75rem 1rem;font-size:.875rem}html{scroll-behavior:smooth}:focus-visible{outline:2px solid var(--tt-navy-600);outline-offset:2px}.tt-layout{background:linear-gradient(to bottom,var(--tt-gray-50),var(--tt-white));flex-direction:column;min-height:100vh;display:flex}.tt-layout-header{z-index:50;-webkit-backdrop-filter:blur(8px);border-bottom:1px solid var(--tt-gray-200);background:#ffffffe6;flex-shrink:0;justify-content:center;align-items:stretch;padding:0;display:flex;position:sticky;top:0;box-shadow:0 1px 3px #0000000f,0 1px 2px -1px #0000000f}.tt-layout-header-inner{width:100%;max-width:1280px;padding:var(--tt-space-4)var(--tt-space-6);justify-content:space-between;align-items:center;margin:0 auto;display:flex}.tt-layout-header h1{color:var(--tt-navy-800);margin:0;font-size:1.5rem;font-weight:700}.tt-stat-card-grid{grid-template-columns:repeat(2,1fr);gap:1rem;margin-bottom:1.5rem;display:grid}@media (min-width:640px){.tt-stat-card-grid{grid-template-columns:repeat(3,1fr);gap:1.25rem}}@media (min-width:1024px){.tt-stat-card-grid{grid-template-columns:repeat(4,1fr);gap:1.5rem}}.tt-stat-card{background:var(--tt-white);border:1px solid var(--tt-gray-200);box-shadow:var(--tt-shadow-md);border-radius:12px;align-items:center;gap:.75rem;padding:1rem 1.25rem;transition:box-shadow .2s,border-color .2s;display:flex}@media (min-width:640px){.tt-stat-card{gap:1rem;padding:1.25rem 1.5rem}}.tt-stat-card:hover{border-color:var(--tt-navy-200);box-shadow:0 10px 15px -3px #00000014,0 4px 6px -4px #00000014}.tt-stat-card-icon{background:linear-gradient(135deg,var(--tt-navy-600),var(--tt-navy-800));width:2.5rem;height:2.5rem;color:var(--tt-white);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;display:flex}@media (min-width:640px){.tt-stat-card-icon{width:3rem;height:3rem}}.tt-stat-card-icon svg{width:1.25rem;height:1.25rem}@media (min-width:640px){.tt-stat-card-icon svg{width:1.5rem;height:1.5rem}}.tt-stat-card-content{flex:1;min-width:0}.tt-stat-card-label{color:var(--tt-gray-500);margin:0 0 .125rem;font-size:.75rem;font-weight:500}@media (min-width:640px){.tt-stat-card-label{font-size:.875rem}}.tt-stat-card-value{color:var(--tt-gray-900);margin:0;font-size:1.25rem;font-weight:700}@media (min-width:640px){.tt-stat-card-value{font-size:1.5rem}}.tt-auth-screen{background:linear-gradient(to bottom,var(--tt-gray-50),var(--tt-white));flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:2rem 1rem;display:flex}.tt-auth-card{text-align:center;flex-direction:column;align-items:center;width:100%;max-width:28rem;margin:0 auto;display:flex}.tt-auth-logo{object-fit:contain;object-position:center;background:0 0;width:64px;height:64px;margin-bottom:1.5rem}.tt-auth-heading{color:var(--tt-gray-900);margin:0 0 .5rem;font-size:1.5rem;font-weight:700}.tt-auth-switch-link{color:var(--tt-navy-800);cursor:pointer;background:0 0;border:none;margin-bottom:1.5rem;padding:0;font-size:.875rem;font-weight:500;text-decoration:underline}.tt-auth-switch-link:hover{color:var(--tt-navy-700)}.tt-auth-form-card{background:var(--tt-white);border:1px solid var(--tt-gray-200);text-align:left;border-radius:12px;width:100%;padding:2rem;box-shadow:0 4px 6px -1px #00000012,0 2px 4px -2px #0000000d}.tt-auth-form-card .tt-input{border-radius:8px;padding:.625rem .75rem}.tt-auth-password-wrap{display:block;position:relative}.tt-auth-password-wrap .tt-input{padding-right:2.75rem}.tt-auth-password-toggle{width:1.25rem;height:1.25rem;color:var(--tt-gray-500);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex;position:absolute;top:50%;right:.75rem;transform:translateY(-50%)}.tt-auth-password-toggle:hover{color:var(--tt-gray-700)}.tt-auth-submit{cursor:pointer;background:var(--tt-navy-800);width:100%;color:var(--tt-white);border:none;border-radius:8px;margin-top:1rem;padding:.75rem 1rem;font-size:1rem;font-weight:600;transition:background-color .2s}.tt-auth-submit:hover{background:var(--tt-navy-900)}.tt-auth-submit:focus-visible{outline:2px solid var(--tt-navy-600);outline-offset:2px}.tt-auth-label{color:var(--tt-gray-700);margin-bottom:.375rem;font-size:.875rem;font-weight:500;display:block}.tt-auth-field{margin-bottom:1rem}.tt-auth-field:last-of-type{margin-bottom:0}.tt-auth-hint{color:var(--tt-gray-500);margin-top:.25rem;font-size:.75rem;display:block}.tt-role-badge{text-transform:uppercase;letter-spacing:.03em;color:var(--tt-gray-600);background:var(--tt-gray-100);border-radius:var(--tt-radius-md);border:1px solid var(--tt-gray-200);padding:.2rem .5rem;font-size:.7rem;font-weight:600;display:inline-block}.tt-role-badge-government{background:var(--tt-navy-50);color:var(--tt-navy-800);border-color:var(--tt-navy-200)}.tt-role-badge-nonprofit{background:var(--tt-green-50);color:var(--tt-green-600);border-color:var(--tt-green-200)}.tt-role-badge-forprofit{background:var(--tt-navy-50);color:var(--tt-navy-700);border-color:var(--tt-navy-200)}.tt-role-badge-contractor{background:var(--tt-gray-100);color:var(--tt-gray-700);border-color:var(--tt-gray-300)}.tt-role-badge-citizen{background:var(--tt-navy-50);color:var(--tt-navy-700);border-color:var(--tt-navy-200)}.tt-layout-body{flex:1;min-height:0;display:flex}.tt-sidebar{width:var(--tt-sidebar-width);background:var(--tt-white);border-right:1px solid var(--tt-gray-200);padding:var(--tt-space-4)0;flex-shrink:0;transition:width .2s,transform .2s,box-shadow .2s;position:relative;overflow:hidden auto}@media (prefers-reduced-motion:reduce){.tt-sidebar{transition:none}}.tt-sidebar-nav{margin:0;padding:0;list-style:none}.tt-sidebar-item{cursor:pointer;text-align:left;width:100%;color:var(--tt-gray-700);background:0 0;border:none;border-radius:0 8px 8px 0;align-items:center;gap:.5rem;margin:0 0 2px;padding:.5rem 1rem;font-size:.875rem;font-weight:500;transition:background-color .15s,color .15s;display:flex}.tt-sidebar-item .tt-sidebar-item-icon{color:currentColor;flex-shrink:0;width:1.25rem;height:1.25rem}@media (prefers-reduced-motion:reduce){.tt-sidebar-item{transition:none}}.tt-sidebar-item:hover{background:var(--tt-navy-50);color:var(--tt-navy-800)}.tt-sidebar-item.tt-sidebar-item-active{background:var(--tt-navy-800);color:var(--tt-white)}.tt-sidebar-item.tt-sidebar-item-active:hover{background:var(--tt-navy-900);color:var(--tt-white)}.tt-sidebar-item.tt-sidebar-item-active-red,.tt-sidebar-item.tt-sidebar-item-active-red:hover{background:var(--tt-red-600);color:var(--tt-white)}.tt-sidebar-item-badge{position:relative}.tt-sidebar-item-badge span{background:var(--tt-red-600);color:#fff;border-radius:50%;justify-content:center;align-items:center;min-width:20px;height:20px;font-size:.75rem;font-weight:600;display:flex;position:absolute;top:-4px;right:8px}.tt-sidebar-label{text-transform:uppercase;letter-spacing:.04em;color:var(--tt-gray-500);border-top:1px solid var(--tt-gray-200);margin:0;padding:.75rem 1rem .25rem;font-size:.7rem;font-weight:600;list-style:none}.tt-sidebar-nav .tt-sidebar-label:first-child{border-top:none;padding-top:0}.tt-sidebar-collapse-btn{bottom:var(--tt-space-4);border-radius:var(--tt-radius-md);background:var(--tt-gray-100);width:2rem;height:2rem;color:var(--tt-gray-600);cursor:pointer;border:none;justify-content:center;align-items:center;padding:0;transition:background-color .15s,color .15s;display:none;position:absolute;left:50%;transform:translate(-50%)}.tt-sidebar-collapse-btn:hover{background:var(--tt-gray-200);color:var(--tt-navy-800)}.tt-sidebar-collapse-btn:focus-visible{outline:2px solid var(--tt-navy-600);outline-offset:2px}@media (min-width:768px){.tt-sidebar-collapse-btn{display:flex}.tt-sidebar.tt-sidebar-collapsed{width:var(--tt-sidebar-width-collapsed);padding-left:0;padding-right:0}.tt-sidebar.tt-sidebar-collapsed .tt-sidebar-nav{padding-bottom:3.5rem}.tt-sidebar.tt-sidebar-collapsed .tt-sidebar-label{opacity:0;pointer-events:none;border:none;height:0;margin:0;padding:0;overflow:hidden}.tt-sidebar.tt-sidebar-collapsed .tt-sidebar-item{justify-content:center;padding-left:.75rem;padding-right:.75rem}.tt-sidebar.tt-sidebar-collapsed .tt-sidebar-item-label{opacity:0;pointer-events:none;width:0;height:0;position:absolute;overflow:hidden}.tt-sidebar.tt-sidebar-collapsed .tt-sidebar-item-badge .tt-sidebar-item-badge-num{min-width:16px;height:16px;font-size:.65rem;top:-2px;right:50%;transform:translate(50%)}}.tt-main{min-width:0;padding:var(--tt-space-6)var(--tt-space-6)var(--tt-space-6)0;background:linear-gradient(to bottom,var(--tt-gray-50),var(--tt-white));flex:1;overflow-y:auto}.tt-main-inner{max-width:1200px;margin:0}.tt-header-menu-btn{color:var(--tt-navy-800);cursor:pointer;border-radius:var(--tt-radius-md);background:0 0;border:none;margin-right:.5rem;padding:.5rem;display:none}.tt-header-menu-btn:hover{background:var(--tt-gray-100)}.tt-header-menu-btn:focus-visible{outline:2px solid var(--tt-navy-600);outline-offset:2px}@media (min-width:768px){.tt-sidebar.tt-sidebar-closed,.tt-sidebar.tt-sidebar-open{transform:none}.tt-sidebar-overlay{display:none}}@media (max-width:767px){.tt-header-menu-btn{display:block}.tt-main{padding-bottom:5rem}.tt-sidebar{z-index:100;box-shadow:var(--tt-shadow-md);position:fixed;top:0;bottom:0;left:0}.tt-sidebar.tt-sidebar-closed{transform:translate(-100%)}.tt-sidebar.tt-sidebar-open{transform:translate(0)}.tt-sidebar-overlay{z-index:99;opacity:0;pointer-events:none;background:#0000004d;transition:opacity .2s;position:fixed;inset:0}.tt-sidebar-overlay.tt-sidebar-overlay-visible{opacity:1;pointer-events:auto}}.tt-bottom-nav{z-index:50;background:var(--tt-white);border-top:1px solid var(--tt-gray-200);padding:.5rem 0;padding-bottom:max(.5rem,env(safe-area-inset-bottom));display:none;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -1px 3px #0000000f}@media (max-width:767px){.tt-bottom-nav{justify-content:space-around;align-items:center;min-height:56px;display:flex}}@media (min-width:768px){.tt-bottom-nav{display:none!important}}.tt-bottom-nav-item{border-radius:var(--tt-radius-md);min-width:64px;color:var(--tt-gray-600);cursor:pointer;background:0 0;border:none;flex-direction:column;justify-content:center;align-items:center;gap:.25rem;padding:.25rem .5rem;font-size:.65rem;font-weight:500;transition:background-color .15s,color .15s;display:flex}.tt-bottom-nav-item:hover,.tt-bottom-nav-item.tt-bottom-nav-item-active{background:var(--tt-navy-50);color:var(--tt-navy-800)}.tt-bottom-nav-item .tt-bottom-nav-icon{color:currentColor;width:1.25rem;height:1.25rem}.tt-user-menu-wrapper{position:relative}.tt-user-menu-dropdown{background:var(--tt-white);border:1px solid var(--tt-gray-200);border-radius:var(--tt-radius);min-width:12rem;box-shadow:var(--tt-shadow-md);z-index:100;margin-top:.25rem;padding:.25rem 0;position:absolute;top:100%;right:0}.tt-user-menu-dropdown button,.tt-user-menu-dropdown a{width:100%;color:var(--tt-gray-700);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:0;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.875rem;font-weight:500;text-decoration:none;transition:background-color .15s;display:flex}.tt-user-menu-dropdown button:hover,.tt-user-menu-dropdown a:hover{background:var(--tt-gray-100)}.tt-user-menu-dropdown .tt-user-menu-divider{background:var(--tt-gray-200);height:1px;margin:.25rem 0}.tt-user-menu-dropdown .tt-user-menu-signout{color:var(--tt-red-600)}.tt-user-menu-dropdown .tt-user-menu-signout:hover{background:var(--tt-red-50)}
