:root{--bg-primary: #f5f7fa;--bg-secondary: #ffffff;--bg-tertiary: #f0f2f5;--bg-card: #ffffff;--bg-glass: rgba(0, 0, 0, .02);--bg-glass-hover: rgba(0, 0, 0, .04);--bg-input: #ffffff;--bg-sidebar: #ffffff;--text-primary: #1a202c;--text-secondary: #64748b;--text-muted: #94a3b8;--text-inverse: #ffffff;--accent-primary: #3b82f6;--accent-primary-hover: #2563eb;--accent-success: #10b981;--accent-warning: #f59e0b;--accent-danger: #ef4444;--accent-info: #06b6d4;--accent-purple: #8b5cf6;--border-default: #e2e8f0;--border-hover: #cbd5e1;--border-focus: var(--accent-primary);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 4px 12px rgba(0, 0, 0, .08);--shadow-lg: 0 8px 30px rgba(0, 0, 0, .12);--shadow-glow: 0 0 20px rgba(59, 130, 246, .1);--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--radius-xl: 24px;--font-family: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;--transition-fast: .15s cubic-bezier(.4, 0, .2, 1);--transition-normal: .25s cubic-bezier(.4, 0, .2, 1)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:14px;scroll-behavior:smooth}body{font-family:var(--font-family);background:var(--bg-primary);color:var(--text-primary);line-height:1.6;-webkit-font-smoothing:antialiased}a{color:var(--accent-primary);text-decoration:none}a:hover{color:var(--accent-primary-hover)}.app-layout-top{display:flex;flex-direction:column;min-height:100vh}.topnav{height:56px;background:var(--bg-sidebar);border-bottom:1px solid var(--border-default);display:flex;align-items:center;padding:0 20px;position:sticky;top:0;z-index:200;gap:8px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.topnav-brand{display:flex;align-items:center;gap:8px;text-decoration:none;margin-right:16px;flex-shrink:0}.topnav-logo-img{height:34px;width:auto;object-fit:contain}.topnav-logo-text{font-size:1.15rem;font-weight:800;color:var(--accent-primary);letter-spacing:-.5px;white-space:nowrap}.topnav-links{display:flex;align-items:center;gap:2px;flex:1}.topnav-link{display:flex;align-items:center;gap:6px;padding:8px 14px;border-radius:var(--radius-sm);color:var(--text-secondary);font-size:.85rem;font-weight:500;white-space:nowrap;transition:all var(--transition-fast);cursor:pointer;text-decoration:none;background:none;border:none;font-family:inherit}.topnav-link:hover{background:var(--bg-glass-hover);color:var(--text-primary)}.topnav-link.active{background:#3b82f61a;color:var(--accent-primary);font-weight:600}.topnav-dropdown-wrapper{position:relative}.topnav-dropdown{position:absolute;top:calc(100% + 6px);left:0;min-width:180px;background:var(--bg-card);border:1px solid var(--border-default);border-radius:var(--radius-md);box-shadow:0 8px 24px #0000001f;padding:6px;display:flex;flex-direction:column;z-index:300;animation:dropdownFade .15s ease}@keyframes dropdownFade{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.topnav-dropdown .topnav-link{padding:9px 14px;border-radius:var(--radius-sm);width:100%}.topnav-user{display:flex;align-items:center;gap:10px;margin-left:auto;flex-shrink:0;padding-left:16px;border-left:1px solid var(--border-default)}.topnav-user-avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));color:#fff;display:flex;align-items:center;justify-content:center;font-size:.72rem;font-weight:700;flex-shrink:0}.topnav-user-info{display:flex;flex-direction:column}.topnav-user-name{font-size:.82rem;font-weight:600;color:var(--text-primary);white-space:nowrap}.topnav-user-role{font-size:.68rem;color:var(--text-muted)}.main-content-top{flex:1}.page-content{padding:24px}.card{background:var(--bg-card);border:1px solid var(--border-default);border-radius:var(--radius-md);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transition:all var(--transition-normal)}.card:hover{border-color:var(--border-hover);box-shadow:var(--shadow-glow)}.card-header{padding:16px 20px;border-bottom:1px solid var(--border-default);display:flex;align-items:center;justify-content:space-between}.card-title{font-size:1rem;font-weight:600}.card-body{padding:20px}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-bottom:24px}.stat-card{background:var(--bg-card);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:20px;position:relative;overflow:hidden;transition:all var(--transition-normal)}.stat-card:before{content:"";position:absolute;top:0;left:0;width:4px;height:100%;border-radius:4px 0 0 4px}.stat-card.blue:before{background:var(--accent-primary)}.stat-card.green:before{background:var(--accent-success)}.stat-card.amber:before{background:var(--accent-warning)}.stat-card.purple:before{background:var(--accent-purple)}.stat-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.stat-label{font-size:.78rem;font-weight:500;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.stat-value{font-size:1.8rem;font-weight:700;margin-top:6px;line-height:1.2}.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:var(--radius-sm);font-size:.85rem;font-weight:600;cursor:pointer;border:none;transition:all var(--transition-fast);font-family:var(--font-family)}.btn-primary{background:var(--accent-primary);color:#fff}.btn-primary:hover{background:var(--accent-primary-hover);box-shadow:var(--shadow-glow)}.btn-success{background:var(--accent-success);color:#fff}.btn-success:hover{background:#059669}.btn-danger{background:var(--accent-danger);color:#fff}.btn-danger:hover{background:#dc2626}.btn-ghost{background:transparent;color:var(--text-secondary);border:1px solid var(--border-default)}.btn-ghost:hover{background:var(--bg-glass-hover);color:var(--text-primary)}.btn-sm{padding:5px 10px;font-size:.78rem}.btn:disabled{opacity:.6;cursor:not-allowed}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.form-group{margin-bottom:16px}.form-label{display:block;font-size:.78rem;font-weight:600;color:var(--text-secondary);margin-bottom:6px;text-transform:uppercase;letter-spacing:.3px}.form-input,.form-select,.form-textarea{width:100%;padding:10px 12px;background:var(--bg-input);border:1px solid var(--border-default);border-radius:var(--radius-sm);color:var(--text-primary);font-size:.9rem;font-family:var(--font-family);transition:all var(--transition-fast)}.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:var(--border-focus);box-shadow:0 0 0 3px #3b82f626}.form-textarea{resize:vertical;min-height:80px}.form-input-error{border-color:var(--accent-danger)!important}.form-input-error:focus{box-shadow:0 0 0 3px #ef444426!important}.form-error{display:block;font-size:.75rem;color:var(--accent-danger);margin-top:4px}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}.data-table-wrapper{overflow-x:auto;border-radius:var(--radius-md);border:1px solid var(--border-default)}.data-table{width:100%;border-collapse:collapse;font-size:.85rem}.data-table thead{background:var(--bg-tertiary);position:sticky;top:0;z-index:5}.data-table th{padding:10px 14px;text-align:left;font-weight:600;font-size:.75rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border-default);white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;transition:color var(--transition-fast)}.data-table th:hover{color:var(--text-primary)}.data-table th.sorted{color:var(--accent-primary)}.data-table td{padding:10px 14px;border-bottom:1px solid var(--border-default);white-space:nowrap;max-width:250px;overflow:hidden;text-overflow:ellipsis}.data-table tbody tr{transition:background var(--transition-fast)}.data-table tbody tr:hover{background:var(--bg-glass-hover)}.data-table.sticky-first-col th:first-child,.data-table.sticky-first-col td:first-child{position:sticky;left:0;z-index:2;background:var(--bg-card);border-right:1px solid var(--border-default)}.data-table.sticky-first-col thead th:first-child{background:var(--bg-tertiary);z-index:6}.data-table.sticky-first-col tbody tr:hover td:first-child{background:#eef0f4}.data-table .unit-row-discipline td{background:#eaf1fb;border-bottom:1px solid #d6e4f7}.data-table.sticky-first-col .unit-row-discipline td:first-child{background:#eaf1fb}.data-table.sticky-first-col .unit-row-discipline:hover td:first-child{background:#e2ecfa}.data-table .unit-row-subcat td,.data-table.sticky-first-col .unit-row-subcat td:first-child{background:#f6f8fb}.data-table.sticky-first-col .unit-row-subcat:hover td:first-child{background:#eef2f7}.data-table .unit-row-desc td,.data-table.sticky-first-col .unit-row-desc td:first-child{background:#fbfcfe}.tree-disclose{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border:0;background:transparent;color:var(--text-secondary);cursor:pointer;border-radius:4px;padding:0}.tree-disclose:hover{background:var(--bg-glass-hover);color:var(--text-primary)}.tree-disclose:focus-visible{outline:2px solid var(--accent-primary);outline-offset:1px}.tree-count{background:#64748b1f;color:var(--text-secondary);border-radius:50px;padding:1px 8px;font-size:.68rem;font-weight:700;margin-left:8px}.badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:50px;font-size:.72rem;font-weight:600;letter-spacing:.3px}.badge-ntp{background:#10b9811a;color:#059669}.badge-awarded{background:#3b82f61a;color:#2563eb}.badge-submitted{background:#f59e0b1a;color:#d97706}.badge-lost{background:#ef44441a;color:#dc2626}.badge-interview{background:#8b5cf61a;color:#7c3aed}.badge-inactive{background:#6b72801a;color:#6b7280}.pagination{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-top:1px solid var(--border-default)}.pagination-info{font-size:.82rem;color:var(--text-secondary)}.pagination-buttons{display:flex;gap:4px}.pagination-btn{padding:6px 12px;border:1px solid var(--border-default);background:transparent;color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;font-size:.82rem;transition:all var(--transition-fast)}.pagination-btn:hover:not(:disabled){background:var(--bg-glass-hover);color:var(--text-primary)}.pagination-btn:disabled{opacity:.4;cursor:not-allowed}.pagination-btn.active{background:var(--accent-primary);color:#fff;border-color:var(--accent-primary)}.search-bar{position:relative;max-width:320px}.search-bar input{padding-left:36px}.search-bar .search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--text-muted);font-size:.9rem}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px;flex-wrap:wrap}.toolbar-left,.toolbar-right{display:flex;align-items:center;gap:10px}.login-page{min-height:100vh;display:flex;flex-direction:column;align-items:center;background:linear-gradient(135deg,#eef2ff,#e0e7ff,#f0f4ff);position:relative;overflow:hidden}.login-page:before{content:"";position:absolute;width:500px;height:500px;background:radial-gradient(circle,rgba(59,130,246,.12),transparent);top:-100px;right:-100px;border-radius:50%}.login-page:after{content:"";position:absolute;width:400px;height:400px;background:radial-gradient(circle,rgba(139,92,246,.08),transparent);bottom:-100px;left:-100px;border-radius:50%}.login-card{width:100%;max-width:420px;padding:40px;margin:auto 0;background:#fff;border:1px solid var(--border-default);border-radius:var(--radius-lg);box-shadow:0 20px 60px #0000001a;z-index:1}.login-title{font-size:1.6rem;font-weight:800;text-align:center;margin-bottom:6px;color:var(--accent-primary)}.login-subtitle{text-align:center;color:var(--text-muted);font-size:.88rem;margin-bottom:32px}.login-btn{width:100%;padding:12px;font-size:1rem;margin-top:8px}.login-error{background:#ef444414;border:1px solid rgba(239,68,68,.2);color:#dc2626;padding:10px 14px;border-radius:var(--radius-sm);font-size:.85rem;margin-bottom:16px}.login-logo-container{text-align:center;margin-bottom:16px}.login-logo{height:72px;width:auto;object-fit:contain;filter:drop-shadow(0 2px 8px rgba(59,130,246,.15))}.login-footer{text-align:center;margin-top:20px;padding-top:16px;border-top:1px solid var(--border-default)}.login-forgot-link{display:inline-flex;align-items:center;gap:4px;font-size:.85rem;color:var(--accent-primary);font-weight:500;text-decoration:none;transition:color var(--transition-fast)}.login-forgot-link:hover{color:var(--accent-primary-hover);text-decoration:underline}.reset-success-card{text-align:center;padding:8px 0}.reset-success-icon{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:50%;background:#3b82f61a;color:var(--accent-primary);margin-bottom:4px}.user-avatar{width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,var(--accent-primary),var(--accent-purple));display:flex;align-items:center;justify-content:center;font-size:.82rem;font-weight:700;color:#fff;cursor:pointer}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:200;animation:fadeIn .2s ease}.modal{width:100%;max-width:640px;max-height:85vh;overflow-y:auto;background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);animation:slideUp .25s ease}.modal-header{padding:16px 24px;border-bottom:1px solid var(--border-default);display:flex;align-items:center;justify-content:space-between}.modal-body{padding:24px}.modal-footer{padding:16px 24px;border-top:1px solid var(--border-default);display:flex;justify-content:flex-end;gap:8px}.chart-container{padding:20px;min-height:300px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.skeleton{background:linear-gradient(90deg,#e2e8f0 25%,#f1f5f9,#e2e8f0 75%);background-size:200% 100%;animation:pulse 1.5s ease-in-out infinite;border-radius:var(--radius-sm)}@media(max-width:768px){.sidebar{transform:translate(-100%)}.sidebar.open{transform:translate(0)}.main-content{margin-left:0}.stats-grid{grid-template-columns:repeat(2,1fr)}.form-grid{grid-template-columns:1fr}}.rs-container .rs__control{background:var(--bg-input)!important;border-color:var(--border-default)!important;min-height:38px}.rs-container .rs__control:hover{border-color:var(--border-hover)!important}.rs-container .rs__control--is-focused{border-color:var(--border-focus)!important;box-shadow:0 0 0 3px #3b82f626!important}.rs-container .rs__menu{background:#fff!important;border:1px solid var(--border-default)!important;box-shadow:var(--shadow-md)!important}.rs-container .rs__option{color:var(--text-primary)!important}.rs-container .rs__option--is-focused{background:#f1f5f9!important}.rs-container .rs__option--is-selected{background:var(--accent-primary)!important;color:#fff!important}.rs-container .rs__single-value,.rs-container .rs__input-container{color:var(--text-primary)!important}.rs-container .rs__placeholder{color:var(--text-muted)!important}.rs-container .rs__indicator-separator{background:var(--border-default)!important}.rs-container .rs__dropdown-indicator{color:var(--text-muted)!important}.badge-active{background:#10b9811a;color:#059669}.badge-inactive-tenant{background:#f59e0b1a;color:#d97706}.toggle-switch{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:50px;border:1px solid var(--border-default);background:transparent;cursor:pointer;font-size:.78rem;font-weight:600;font-family:var(--font-family);color:var(--text-muted);transition:all var(--transition-fast)}.toggle-switch:hover:not(:disabled){border-color:var(--border-hover);background:var(--bg-glass-hover)}.toggle-switch.active{color:#059669;border-color:#10b9814d}.toggle-switch.active svg{color:#059669}.toggle-switch:not(.active) svg{color:var(--text-muted)}.toggle-switch:disabled{opacity:.5;cursor:not-allowed}.toggle-label{font-size:.72rem;letter-spacing:.3px}.app-footer{padding:14px 24px;text-align:center;font-size:.78rem;color:var(--text-muted);border-top:1px solid var(--border-default);width:100%;background:var(--bg-secondary);letter-spacing:.2px;flex-shrink:0}.login-page .app-footer{margin-top:auto;background:transparent;border-top:none}
