:root{--fgc-indigo: #2E2D9C;--fgc-soft-indigo: #6E8DE0;--fgc-pale-indigo: #E3E6F7;--fgc-charcoal: #1F2937;--fgc-gray: #6B7280;--fgc-white: #FFFFFF;--color-primary: var(--fgc-indigo);--color-accent: var(--fgc-soft-indigo);--color-surface: var(--fgc-pale-indigo);--color-text: var(--fgc-charcoal);--color-muted: var(--fgc-gray);--color-bg: #F5F6FC;--color-card: var(--fgc-white);--color-border: #D1D5F0;--color-pending: #D97706;--color-pending-bg: #FEF3C7;--color-approved: #059669;--color-approved-bg: #D1FAE5;--color-rejected: #DC2626;--color-rejected-bg: #FEE2E2;--color-cancelled: var(--fgc-gray);--color-cancelled-bg:#F3F4F6;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--shadow-sm: 0 1px 3px rgba(46,45,156,.08), 0 1px 2px rgba(46,45,156,.04);--shadow-md: 0 4px 12px rgba(46,45,156,.12), 0 2px 6px rgba(46,45,156,.06);--shadow-lg: 0 10px 30px rgba(46,45,156,.15), 0 4px 12px rgba(46,45,156,.08);--font-family: "Calibri", "Segoe UI", system-ui, -apple-system, sans-serif;--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}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{font-family:var(--font-family);font-size:var(--font-size-base);color:var(--color-text);background:var(--color-bg);line-height:1.6;-webkit-font-smoothing:antialiased}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--fgc-pale-indigo);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--fgc-soft-indigo)}:focus-visible{outline:2px solid var(--fgc-soft-indigo);outline-offset:2px;border-radius:var(--radius-sm)}.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 18px;border:none;border-radius:var(--radius-md);font-family:var(--font-family);font-size:var(--font-size-sm);font-weight:600;cursor:pointer;transition:all .18s ease;text-decoration:none;white-space:nowrap}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--fgc-indigo);color:var(--fgc-white)}.btn-primary:hover:not(:disabled){background:#231e8c;box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-accent{background:var(--fgc-soft-indigo);color:var(--fgc-white)}.btn-accent:hover:not(:disabled){background:#5a7bd0;box-shadow:var(--shadow-sm)}.btn-success{background:var(--color-approved);color:var(--fgc-white)}.btn-success:hover:not(:disabled){background:#047857;transform:translateY(-1px)}.btn-danger{background:var(--color-rejected);color:var(--fgc-white)}.btn-danger:hover:not(:disabled){background:#b91c1c;transform:translateY(-1px)}.btn-ghost{background:transparent;color:var(--fgc-indigo);border:1.5px solid var(--color-border)}.btn-ghost:hover:not(:disabled){background:var(--fgc-pale-indigo);border-color:var(--fgc-soft-indigo)}.btn-sm{padding:5px 12px;font-size:var(--font-size-xs)}.btn-lg{padding:12px 28px;font-size:var(--font-size-base)}.form-group{display:flex;flex-direction:column;gap:6px;margin-bottom:20px}.form-label{font-size:var(--font-size-sm);font-weight:600;color:var(--fgc-charcoal)}.form-label .required{color:var(--color-rejected);margin-left:3px}.form-input,.form-textarea,.form-select{width:100%;padding:10px 14px;border:1.5px solid var(--color-border);border-radius:var(--radius-md);font-family:var(--font-family);font-size:var(--font-size-sm);color:var(--color-text);background:var(--fgc-white);transition:border-color .15s,box-shadow .15s}.form-input:focus,.form-textarea:focus,.form-select:focus{outline:none;border-color:var(--fgc-soft-indigo);box-shadow:0 0 0 3px #6e8de026}.form-textarea{resize:vertical;min-height:120px;line-height:1.6}.form-hint{font-size:var(--font-size-xs);color:var(--color-muted)}.badge{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:99px;font-size:var(--font-size-xs);font-weight:600;text-transform:uppercase;letter-spacing:.04em}.badge-pending{background:var(--color-pending-bg);color:var(--color-pending)}.badge-approved{background:var(--color-approved-bg);color:var(--color-approved)}.badge-rejected{background:var(--color-rejected-bg);color:var(--color-rejected)}.badge-cancelled{background:var(--color-cancelled-bg);color:var(--color-cancelled)}.card{background:var(--color-card);border-radius:var(--radius-lg);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);overflow:hidden}.card-header{padding:18px 24px;border-bottom:1px solid var(--color-border);display:flex;align-items:center;gap:12px}.card-body{padding:24px}.spinner{display:inline-block;width:20px;height:20px;border:2.5px solid var(--fgc-pale-indigo);border-top-color:var(--fgc-indigo);border-radius:50%;animation:spin .7s linear infinite}.spinner-lg{width:40px;height:40px;border-width:4px}@keyframes spin{to{transform:rotate(360deg)}}.divider{height:1px;background:var(--color-border);margin:24px 0}.avatar{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:var(--fgc-pale-indigo);color:var(--fgc-indigo);font-weight:700;font-size:var(--font-size-sm);flex-shrink:0;text-transform:uppercase}.avatar-sm{width:28px;height:28px;font-size:var(--font-size-xs)}.avatar-lg{width:48px;height:48px;font-size:var(--font-size-lg)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:64px 24px;text-align:center;color:var(--color-muted)}.empty-state-icon{font-size:48px;margin-bottom:16px;opacity:.5}.empty-state-title{font-size:var(--font-size-lg);font-weight:600;margin-bottom:8px;color:var(--fgc-charcoal)}.empty-state-text{font-size:var(--font-size-sm);max-width:320px}.toast-container{position:fixed;top:80px;right:24px;z-index:9999;display:flex;flex-direction:column;gap:10px}.toast{padding:14px 18px;border-radius:var(--radius-md);background:var(--fgc-charcoal);color:#fff;font-size:var(--font-size-sm);box-shadow:var(--shadow-lg);animation:slideIn .25s ease;max-width:340px;display:flex;align-items:center;gap:10px}.toast-success{background:var(--color-approved)}.toast-error{background:var(--color-rejected)}@keyframes slideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.mobile-only-nav{display:none}@media (max-width: 900px){.mobile-only-nav{display:block}.app-header-inner{padding:0 16px!important;gap:12px!important}.app-nav,.app-user-meta,.app-brand-sub{display:none!important}.page-shell{padding:20px 16px!important;gap:16px!important}.stat-card{padding:16px 10px!important}.stat-value{font-size:30px!important}.stat-label{font-size:11px!important}.page-shell>*{min-width:0}.dash-header{flex-direction:column!important;align-items:stretch!important;min-width:0}.dash-tabs{max-width:100%;min-width:0;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.dash-tabs::-webkit-scrollbar{display:none}.dash-tab{padding:14px!important;font-size:13px!important}.dash-header-right{padding:10px 16px 12px!important;min-width:0;max-width:100%}.dash-search{flex:1 1 0;width:auto!important;min-width:0}}@media (max-width: 600px){.stats-row{grid-template-columns:1fr!important}.stat-card{display:flex;align-items:center;gap:14px;text-align:left!important;padding:14px 18px!important}.stat-value{font-size:28px!important;margin-bottom:0!important;min-width:44px}.request-row{padding:14px 16px!important}.request-row-top{flex-direction:column!important;align-items:flex-start!important;gap:6px!important}.request-row-title{max-width:100%!important;white-space:normal!important}.request-row-meta{font-size:12px!important}.request-row-meta .meta-dot{display:none!important}.request-row-meta>span{display:block;width:100%}.app-footer{font-size:10px!important;line-height:1.7;padding:12px 16px!important}.app-footer .footer-sep{display:none}.app-footer .footer-line{display:block}.toast-container{top:auto!important;bottom:16px!important;right:16px!important;left:16px!important}.toast{max-width:none!important}.card-body{padding:18px 16px}.card-header{padding:14px 16px}}@media (pointer: coarse){.btn-sm{padding:9px 14px}.dash-tab{min-height:44px}}
