:root{--primary: #29407E;--secondary: #2C3C98;--third: #FED9B7;--forth: #F07167;--white: #ffffff;--text: #111827;--muted: #6B7280;--light: #F7FAFC;--sky: #E5EAFF;--border: #E8EDF3;--shadow: 0 18px 50px rgba(17, 24, 39, .1);--status-pending: #B45309;--status-pending-bg: #FEF3C7;--status-approved: #0F766E;--status-approved-bg: #CCFBF1;--status-paid: #166534;--status-paid-bg: #DCFCE7;--status-rejected: #B91C1C;--status-rejected-bg: #FEE2E2}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;color:var(--text);background:var(--light)}.container{width:min(1320px,100% - 32px);margin:0 auto}.brand-gradient{background:radial-gradient(circle at top right,rgba(255,255,255,.16),transparent 30%),linear-gradient(135deg,#151f3e,#29407e 45%,#2c3c98)}.orb{position:absolute;border-radius:999px;background:#ffffff1f;filter:blur(1px);pointer-events:none}.card{background:var(--white);border:1px solid var(--border);border-radius:24px;box-shadow:var(--shadow)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:14px 24px;border-radius:14px;font-weight:800;font-size:15px;text-decoration:none;border:1px solid transparent;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,background .15s ease}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:linear-gradient(135deg,var(--primary),var(--secondary));color:var(--white);box-shadow:0 14px 34px #29407e47}.btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 18px 40px #29407e52}.btn-outline{background:var(--white);color:var(--primary);border-color:var(--border)}.btn-outline:hover:not(:disabled){border-color:var(--primary)}.status-pill{display:inline-flex;align-items:center;padding:6px 12px;border-radius:999px;font-size:13px;font-weight:700}.status-pill.pill-pendingreview{color:var(--status-pending);background:var(--status-pending-bg)}.status-pill.pill-approved{color:var(--status-approved);background:var(--status-approved-bg)}.status-pill.pill-paid{color:var(--status-paid);background:var(--status-paid-bg)}.status-pill.pill-rejected{color:var(--status-rejected);background:var(--status-rejected-bg)}.auth-page{min-height:100vh;background:var(--light);display:flex;flex-direction:column}.auth-content{flex:1;display:flex;align-items:flex-start;justify-content:center;padding:56px 16px}.auth-card{width:100%;max-width:440px;background:var(--white);border:1px solid var(--border);border-radius:28px;box-shadow:var(--shadow);padding:36px}.auth-card--wide{max-width:640px}.auth-title{font-size:26px;letter-spacing:-.8px;color:var(--text);margin-bottom:6px;text-align:center}.auth-subtitle{color:var(--muted);font-size:15px;text-align:center;margin-bottom:28px}.form-group{margin-bottom:18px}.form-group label{display:block;font-weight:700;font-size:14px;color:var(--text);margin-bottom:6px}.form-control{width:100%;padding:12px 14px;border-radius:12px;border:1px solid var(--border);font-size:15px;background:var(--white);color:var(--text)}.form-control:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #29407e1f}.form-control.is-invalid{border-color:var(--forth)}.field-error{color:var(--forth);font-size:13px;margin-top:6px}.form-footer-link{text-align:center;margin-top:18px;font-size:14px;color:var(--muted)}.form-footer-link a{color:var(--primary);font-weight:700;text-decoration:none}.form-footer-link a:hover{text-decoration:underline}.inline-banner{display:flex;gap:10px;align-items:flex-start;padding:14px 16px;border-radius:14px;background:var(--sky);border:1px solid var(--border);color:var(--text);font-size:14px;margin-bottom:20px}.dashboard-shell{min-height:100vh;background:var(--light)}.dashboard-layout{display:flex;flex-direction:column;gap:24px;padding:32px 0 64px}.dashboard-summary{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:24px}.summary-tile{flex:1 1 180px;background:var(--white);border:1px solid var(--border);border-radius:20px;padding:18px 20px}.summary-tile .summary-label{color:var(--muted);font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.4px}.summary-tile .summary-value{font-size:24px;font-weight:900;color:var(--text);margin-top:6px}.dashboard-sidebar{width:100%}.sidebar-header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:4px 10px 14px}.sidebar-eyebrow{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:var(--muted)}.status-chip{display:inline-flex;align-items:center;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:800;color:var(--status-approved);background:var(--status-approved-bg)}.sidebar-nav{display:flex;flex-direction:row;flex-wrap:nowrap;gap:10px;overflow-x:auto}.nav-item{display:flex;align-items:center;justify-content:center;gap:12px;flex:1 0 auto;min-width:200px;padding:14px 16px;background:var(--white);border:1px solid var(--border);border-radius:18px;text-align:left;font-size:14.5px;font-weight:700;color:var(--text);cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease}.nav-item:hover{border-color:var(--primary)}.nav-item.active{background:var(--sky);border-color:var(--primary);color:var(--primary);box-shadow:var(--shadow)}.nav-item.active .nav-icon{color:var(--white);background:linear-gradient(135deg,var(--primary),var(--secondary));box-shadow:0 6px 14px #29407e47}.nav-text{display:flex;flex-direction:column;gap:2px;min-width:0}.nav-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nav-hint{font-size:12px;font-weight:500;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nav-item.active .nav-hint{color:var(--primary);opacity:.75}.nav-icon{flex:none;display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:11px;color:var(--muted);background:var(--light);transition:color .15s ease,background .15s ease,box-shadow .15s ease}.nav-icon svg{width:18px;height:18px}.dashboard-main{flex:1;min-width:0}.panel{padding:24px}@media (max-width: 640px){.panel{padding:18px}}.panel-header{margin-bottom:20px}.panel-title{font-size:20px;font-weight:900;letter-spacing:-.3px;color:var(--text);margin:0 0 4px}.panel-subtitle{font-size:14px;color:var(--muted);margin:0}@media (max-width: 860px){.dashboard-layout{padding:20px 0 48px}}.table-wrap{overflow-x:auto}.data-table{width:100%;border-collapse:collapse;background:var(--white);border:1px solid var(--border);border-radius:18px;overflow:hidden;font-size:14px}.data-table th,.data-table td{padding:14px 16px;text-align:left;white-space:nowrap}.data-table thead th{background:var(--light);color:var(--muted);font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:.3px;border-bottom:1px solid var(--border)}.data-table tbody tr{border-bottom:1px solid var(--border)}.data-table tbody tr:last-child{border-bottom:none}.data-table tfoot td{font-weight:800;background:var(--light);border-top:1px solid var(--border)}.filters-bar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:14px;margin-bottom:18px}.filters-bar .filter-field{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:700;color:var(--text)}.empty-state{text-align:center;padding:48px 16px;color:var(--muted)}.toast-center-center{top:50%;left:50%;transform:translate(-50%,-50%)}.toast-top-center{top:0;right:0;width:100%}.toast-bottom-center{bottom:0;right:0;width:100%}.toast-top-full-width{top:0;right:0;width:100%}.toast-bottom-full-width{bottom:0;right:0;width:100%}.toast-top-left{top:12px;left:12px}.toast-top-right{top:12px;right:12px}.toast-bottom-right{right:12px;bottom:12px}.toast-bottom-left{bottom:12px;left:12px}.toast-title{font-weight:700}.toast-message{word-wrap:break-word}.toast-message a,.toast-message label{color:#fff}.toast-message a:hover{color:#ccc;text-decoration:none}.toast-close-button{position:relative;right:-.3em;top:-.3em;float:right;font-size:20px;font-weight:700;color:#fff;text-shadow:0 1px 0 #ffffff}.toast-close-button:hover,.toast-close-button:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.4}button.toast-close-button{padding:0;cursor:pointer;background:transparent;border:0}.toast-container{pointer-events:none;position:fixed;z-index:999999}.toast-container *{box-sizing:border-box}.toast-container .ngx-toastr{position:relative;overflow:hidden;margin:0 0 6px;padding:15px 15px 15px 50px;width:300px;border-radius:3px;background-position:15px center;background-repeat:no-repeat;background-size:24px;box-shadow:0 0 12px #999;color:#fff}.toast-container .ngx-toastr:hover{box-shadow:0 0 12px #000;opacity:1;cursor:pointer}.toast-info{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCA1MTIgNTEyJyB3aWR0aD0nNTEyJyBoZWlnaHQ9JzUxMic+PHBhdGggZmlsbD0ncmdiKDI1NSwyNTUsMjU1KScgZD0nTTI1NiA4QzExOS4wNDMgOCA4IDExOS4wODMgOCAyNTZjMCAxMzYuOTk3IDExMS4wNDMgMjQ4IDI0OCAyNDhzMjQ4LTExMS4wMDMgMjQ4LTI0OEM1MDQgMTE5LjA4MyAzOTIuOTU3IDggMjU2IDh6bTAgMTEwYzIzLjE5NiAwIDQyIDE4LjgwNCA0MiA0MnMtMTguODA0IDQyLTQyIDQyLTQyLTE4LjgwNC00Mi00MiAxOC44MDQtNDIgNDItNDJ6bTU2IDI1NGMwIDYuNjI3LTUuMzczIDEyLTEyIDEyaC04OGMtNi42MjcgMC0xMi01LjM3My0xMi0xMnYtMjRjMC02LjYyNyA1LjM3My0xMiAxMi0xMmgxMnYtNjRoLTEyYy02LjYyNyAwLTEyLTUuMzczLTEyLTEydi0yNGMwLTYuNjI3IDUuMzczLTEyIDEyLTEyaDY0YzYuNjI3IDAgMTIgNS4zNzMgMTIgMTJ2MTAwaDEyYzYuNjI3IDAgMTIgNS4zNzMgMTIgMTJ2MjR6Jy8+PC9zdmc+)}.toast-error{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCA1MTIgNTEyJyB3aWR0aD0nNTEyJyBoZWlnaHQ9JzUxMic+PHBhdGggZmlsbD0ncmdiKDI1NSwyNTUsMjU1KScgZD0nTTI1NiA4QzExOSA4IDggMTE5IDggMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzkzIDggMjU2IDh6bTEyMS42IDMxMy4xYzQuNyA0LjcgNC43IDEyLjMgMCAxN0wzMzggMzc3LjZjLTQuNyA0LjctMTIuMyA0LjctMTcgMEwyNTYgMzEybC02NS4xIDY1LjZjLTQuNyA0LjctMTIuMyA0LjctMTcgMEwxMzQuNCAzMzhjLTQuNy00LjctNC43LTEyLjMgMC0xN2w2NS42LTY1LTY1LjYtNjUuMWMtNC43LTQuNy00LjctMTIuMyAwLTE3bDM5LjYtMzkuNmM0LjctNC43IDEyLjMtNC43IDE3IDBsNjUgNjUuNyA2NS4xLTY1LjZjNC43LTQuNyAxMi4zLTQuNyAxNyAwbDM5LjYgMzkuNmM0LjcgNC43IDQuNyAxMi4zIDAgMTdMMzEyIDI1Nmw2NS42IDY1LjF6Jy8+PC9zdmc+)}.toast-success{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCA1MTIgNTEyJyB3aWR0aD0nNTEyJyBoZWlnaHQ9JzUxMic+PHBhdGggZmlsbD0ncmdiKDI1NSwyNTUsMjU1KScgZD0nTTE3My44OTggNDM5LjQwNGwtMTY2LjQtMTY2LjRjLTkuOTk3LTkuOTk3LTkuOTk3LTI2LjIwNiAwLTM2LjIwNGwzNi4yMDMtMzYuMjA0YzkuOTk3LTkuOTk4IDI2LjIwNy05Ljk5OCAzNi4yMDQgMEwxOTIgMzEyLjY5IDQzMi4wOTUgNzIuNTk2YzkuOTk3LTkuOTk3IDI2LjIwNy05Ljk5NyAzNi4yMDQgMGwzNi4yMDMgMzYuMjA0YzkuOTk3IDkuOTk3IDkuOTk3IDI2LjIwNiAwIDM2LjIwNGwtMjk0LjQgMjk0LjQwMWMtOS45OTggOS45OTctMjYuMjA3IDkuOTk3LTM2LjIwNC0uMDAxeicvPjwvc3ZnPg==)}.toast-warning{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCA1NzYgNTEyJyB3aWR0aD0nNTc2JyBoZWlnaHQ9JzUxMic+PHBhdGggZmlsbD0ncmdiKDI1NSwyNTUsMjU1KScgZD0nTTU2OS41MTcgNDQwLjAxM0M1ODcuOTc1IDQ3Mi4wMDcgNTY0LjgwNiA1MTIgNTI3Ljk0IDUxMkg0OC4wNTRjLTM2LjkzNyAwLTU5Ljk5OS00MC4wNTUtNDEuNTc3LTcxLjk4N0wyNDYuNDIzIDIzLjk4NWMxOC40NjctMzIuMDA5IDY0LjcyLTMxLjk1MSA4My4xNTQgMGwyMzkuOTQgNDE2LjAyOHpNMjg4IDM1NGMtMjUuNDA1IDAtNDYgMjAuNTk1LTQ2IDQ2czIwLjU5NSA0NiA0NiA0NiA0Ni0yMC41OTUgNDYtNDYtMjAuNTk1LTQ2LTQ2LTQ2em0tNDMuNjczLTE2NS4zNDZsNy40MTggMTM2Yy4zNDcgNi4zNjQgNS42MDkgMTEuMzQ2IDExLjk4MiAxMS4zNDZoNDguNTQ2YzYuMzczIDAgMTEuNjM1LTQuOTgyIDExLjk4Mi0xMS4zNDZsNy40MTgtMTM2Yy4zNzUtNi44NzQtNS4wOTgtMTIuNjU0LTExLjk4Mi0xMi42NTRoLTYzLjM4M2MtNi44ODQgMC0xMi4zNTYgNS43OC0xMS45ODEgMTIuNjU0eicvPjwvc3ZnPg==)}.toast-container.toast-top-center .ngx-toastr,.toast-container.toast-bottom-center .ngx-toastr{width:300px;margin-left:auto;margin-right:auto}.toast-container.toast-top-full-width .ngx-toastr,.toast-container.toast-bottom-full-width .ngx-toastr{width:96%;margin-left:auto;margin-right:auto}.ngx-toastr{background-color:#030303;pointer-events:auto}.toast-success{background-color:#51a351}.toast-error{background-color:#bd362f}.toast-info{background-color:#2f96b4}.toast-warning{background-color:#f89406}.toast-progress{position:absolute;left:0;bottom:0;height:4px;background-color:#000;opacity:.4}@media all and (max-width: 240px){.toast-container .ngx-toastr.div{padding:8px 8px 8px 50px;width:11em}.toast-container .toast-close-button{right:-.2em;top:-.2em}}@media all and (min-width: 241px) and (max-width: 480px){.toast-container .ngx-toastr.div{padding:8px 8px 8px 50px;width:18em}.toast-container .toast-close-button{right:-.2em;top:-.2em}}@media all and (min-width: 481px) and (max-width: 768px){.toast-container .ngx-toastr.div{padding:15px 15px 15px 50px;width:25em}}
