:root{--gc-blue: #1C4F9C;--gc-green: #1C5438;--gc-white: #FFFFFF;--gc-light-gray: #F5F5F5;--gc-dark-gray: #333333;--gc-medium-gray: #6B7280;--gc-border: #E5E7EB}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;line-height:1.6;color:var(--gc-dark-gray)}a{color:var(--gc-blue);text-decoration:none}a:hover{text-decoration:underline}.app{min-height:100vh;display:flex;flex-direction:column}.container{max-width:1200px;margin:0 auto;padding:0 20px}.navbar{background:var(--gc-white);color:var(--gc-blue);padding:0;position:sticky;top:0;z-index:100;box-shadow:0 2px 4px #0000001a}.navbar .container{display:flex;justify-content:space-between;align-items:center;padding:8px 20px}.navbar-brand{display:flex;align-items:center;gap:12px;font-size:1.1rem;font-weight:600;color:var(--gc-blue)}.navbar-brand img{height:50px;width:auto}.navbar-brand:hover{text-decoration:none;opacity:.9}.navbar-nav{display:flex;list-style:none;gap:24px;align-items:center}.navbar-nav a{color:var(--gc-blue);font-weight:500;padding:8px 0;border-bottom:2px solid transparent;transition:border-color .2s}.navbar-nav a:hover,.navbar-nav a.active{text-decoration:none;border-bottom-color:var(--gc-green)}.navbar-nav .btn-logout{background:var(--gc-green);color:var(--gc-white);padding:8px 20px;border-radius:4px;border:none;cursor:pointer;font-size:14px}.navbar-nav .btn-logout:hover{background:#154229}.btn{display:inline-block;padding:10px 20px;border-radius:6px;font-weight:600;text-align:center;cursor:pointer;transition:all .2s;border:none;font-size:.9rem}.btn-primary{background:var(--gc-blue);color:var(--gc-white)}.btn-primary:hover{background:#164080;text-decoration:none}.btn-secondary{background:var(--gc-green);color:var(--gc-white)}.btn-secondary:hover{background:#154229;text-decoration:none}.btn-outline{background:transparent;border:2px solid var(--gc-blue);color:var(--gc-blue)}.btn-outline:hover{background:var(--gc-blue);color:var(--gc-white);text-decoration:none}.btn-danger{background:#dc2626;color:var(--gc-white)}.btn-danger:hover{background:#b91c1c}.btn-sm{padding:6px 12px;font-size:.8rem}.auth-layout{background:var(--gc-light-gray);justify-content:center;align-items:center}.auth-header{padding:20px;text-align:center}.auth-brand{font-size:1.5rem;font-weight:700;color:var(--gc-blue)}.auth-brand:hover{text-decoration:none}.auth-main{width:100%;max-width:400px;padding:0 20px}.login-container{background:var(--gc-white);padding:40px;border-radius:12px;box-shadow:0 4px 20px #00000014}.login-container h2{text-align:center;margin-bottom:30px;color:var(--gc-blue)}.login-error{background:#fee2e2;color:#dc2626;padding:12px;border-radius:6px;margin-bottom:20px;text-align:center}.form-group{margin-bottom:20px}.form-group label{display:block;margin-bottom:6px;font-weight:600;color:var(--gc-dark-gray);font-size:.9rem}.form-group input,.form-group select,.form-group textarea{width:100%;padding:10px 14px;border:1px solid var(--gc-border);border-radius:6px;font-size:1rem;transition:border-color .2s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--gc-blue);box-shadow:0 0 0 3px #1c4f9c1a}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.admin-layout{display:flex;flex:1;min-height:calc(100vh - 70px)}.admin-sidebar{width:240px;background:var(--gc-white);border-right:1px solid var(--gc-border);padding:20px 0;flex-shrink:0}.admin-sidebar-nav{list-style:none;padding:0}.admin-sidebar-nav li a{display:block;padding:10px 24px;color:var(--gc-dark-gray);font-weight:500;transition:all .2s;border-left:3px solid transparent}.admin-sidebar-nav li a:hover{background:var(--gc-light-gray);text-decoration:none}.admin-sidebar-nav li a.active{background:#1c4f9c0d;color:var(--gc-blue);border-left-color:var(--gc-blue)}.admin-sidebar-nav .nav-section{padding:8px 24px;font-size:.75rem;font-weight:700;text-transform:uppercase;color:var(--gc-medium-gray);letter-spacing:.05em;margin-top:16px}.admin-content{flex:1;padding:24px 32px;background:var(--gc-light-gray);overflow-y:auto}.admin-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.admin-header h1{font-size:1.75rem;color:var(--gc-blue)}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin-bottom:32px}.stat-card{background:var(--gc-white);padding:20px;border-radius:10px;box-shadow:0 1px 4px #0000000f;text-align:center}.stat-card .stat-value{font-size:2rem;font-weight:700;color:var(--gc-blue)}.stat-card .stat-label{font-size:.85rem;color:var(--gc-medium-gray);margin-top:4px}.stat-card.alert .stat-value{color:#dc2626}.stat-card.warning .stat-value{color:#d97706}.table-container{background:var(--gc-white);border-radius:10px;box-shadow:0 1px 4px #0000000f;overflow:hidden}table{width:100%;border-collapse:collapse}thead th{background:var(--gc-light-gray);padding:12px 16px;text-align:left}.sortable-th{cursor:pointer;-webkit-user-select:none;user-select:none}.sortable-th:hover{background:#e8e8ec}.sort-indicator{font-size:.7rem;color:var(--gc-blue);font-weight:600;font-size:.85rem;color:var(--gc-medium-gray);text-transform:uppercase;letter-spacing:.03em;border-bottom:1px solid var(--gc-border)}tbody td{padding:12px 16px;border-bottom:1px solid var(--gc-border);font-size:.9rem}tbody tr:hover{background:#1c4f9c05}tbody tr:last-child td{border-bottom:none}.badge{display:inline-block;padding:4px 10px;border-radius:20px;font-size:.75rem;font-weight:600}.badge-green{background:#d1fae5;color:#065f46}.badge-blue{background:#dbeafe;color:#1e40af}.badge-yellow{background:#fef3c7;color:#92400e}.badge-red{background:#fee2e2;color:#991b1b}.badge-gray{background:#f3f4f6;color:#4b5563}.tabs{display:flex;border-bottom:2px solid var(--gc-border);margin-bottom:24px}.tab{padding:12px 24px;cursor:pointer;font-weight:500;color:var(--gc-medium-gray);border-bottom:2px solid transparent;margin-bottom:-2px;transition:all .2s;background:none;border-top:none;border-left:none;border-right:none;font-size:.95rem}.tab:hover{color:var(--gc-blue)}.tab.active{color:var(--gc-blue);border-bottom-color:var(--gc-blue)}.filter-bar{display:flex;gap:12px;margin-bottom:20px;flex-wrap:wrap;align-items:center}.filter-bar select,.filter-bar input{padding:8px 12px;border:1px solid var(--gc-border);border-radius:6px;font-size:.9rem}.global-search{position:relative;width:300px}.global-search input{width:100%;padding:8px 14px;border:1px solid var(--gc-border);border-radius:20px;font-size:.9rem;background:var(--gc-light-gray)}.global-search input:focus{outline:none;border-color:var(--gc-blue);background:var(--gc-white)}.search-results{position:absolute;top:100%;left:0;right:0;background:var(--gc-white);border:1px solid var(--gc-border);border-radius:8px;margin-top:4px;max-height:300px;overflow-y:auto;box-shadow:0 4px 12px #0000001a;z-index:200}.search-result-item{padding:10px 16px;cursor:pointer;border-bottom:1px solid var(--gc-border)}.search-result-item:hover{background:var(--gc-light-gray)}.search-result-item:last-child{border-bottom:none}.milestone-list{display:flex;flex-direction:column;gap:12px}.milestone-item{background:var(--gc-white);border-radius:8px;padding:16px 20px;box-shadow:0 1px 4px #0000000f;display:flex;justify-content:space-between;align-items:center;border-left:4px solid var(--gc-border)}.milestone-item.overdue{border-left-color:#dc2626}.milestone-item.upcoming{border-left-color:#d97706}.milestone-item.completed{border-left-color:#059669}.milestone-item.notified{border-left-color:var(--gc-blue)}.detail-card{background:var(--gc-white);border-radius:10px;padding:24px;box-shadow:0 1px 4px #0000000f;margin-bottom:24px}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.detail-field{margin-bottom:8px}.detail-label{font-size:.8rem;font-weight:600;color:var(--gc-medium-gray);text-transform:uppercase;letter-spacing:.03em}.detail-value{font-size:1rem;color:var(--gc-dark-gray);margin-top:2px}.empty-state{text-align:center;padding:40px;color:var(--gc-medium-gray)}@media print{.navbar,.admin-sidebar,.no-print{display:none!important}.admin-content{padding:0}.admin-layout{display:block}}
