:root{--navy:#0f1f3d;--navy-80:#0f1f3dcc;--navy-40:#0f1f3d66;--navy-10:#0f1f3d14;--navy-05:#0f1f3d0a;--blue:#1e6fbf;--blue-mid:#2e8bc0;--blue-light:#e8f2fc;--gold:#c9a84c;--gold-light:#fdf6e3;--green:#1a7a4a;--green-light:#eaf5ee;--red:#a32d2d;--red-light:#fdeeee;--amber:#854f0b;--amber-light:#fdf3e3;--teal:#0e7490;--teal-light:#e0f7fa;--white:#fff;--ink:#1a1a2e;--bg:#f4f6f9;--shadow:0 1px 3px #00000014, 0 1px 2px #0000000f;--shadow-md:0 4px 12px #0000001a;--radius:8px;--radius-lg:12px;--font:"Inter", system-ui, -apple-system, sans-serif;--sidebar-w:240px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font);background:var(--bg);color:var(--navy);-webkit-font-smoothing:antialiased;font-size:14px;line-height:1.5}.app-shell{min-height:100vh;display:flex}.main-content{margin-left:var(--sidebar-w);flex-direction:column;flex:1;min-height:100vh;display:flex}.sidebar{width:var(--sidebar-w);background:var(--navy);z-index:100;flex-direction:column;display:flex;position:fixed;top:0;bottom:0;left:0;overflow-y:auto}.sidebar-brand{border-bottom:1px solid #ffffff14;padding:20px 16px 12px}.sidebar-brand-logo{color:#fff;font-size:20px;font-weight:800}.sidebar-brand-logo span:first-child{color:var(--blue-mid)}.sidebar-brand-sub{color:#fff6;letter-spacing:.5px;text-transform:uppercase;margin-top:2px;font-size:11px}.sidebar-nav{flex:1;padding:12px 8px}.nav-section-label{color:#ffffff4d;text-transform:uppercase;letter-spacing:1px;padding:8px 8px 4px;font-size:10px;font-weight:700}.nav-item{cursor:pointer;color:#ffffffa6;-webkit-user-select:none;user-select:none;border-radius:6px;align-items:center;gap:10px;margin-bottom:1px;padding:8px 10px;font-size:13px;font-weight:500;transition:all .15s;display:flex}.nav-item:hover{color:#fff;background:#ffffff14}.nav-item.active{background:var(--blue);color:#fff}.nav-icon{flex-shrink:0;width:18px;height:18px}.nav-badge{background:var(--gold);color:var(--navy);border-radius:99px;margin-left:auto;padding:1px 6px;font-size:10px;font-weight:700}.sidebar-footer{border-top:1px solid #ffffff14;padding:12px 8px}.user-chip{border-radius:6px;align-items:center;gap:10px;padding:8px 10px;display:flex}.user-avatar{background:var(--blue);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:12px;font-weight:700;display:flex}.user-info{flex:1;min-width:0}.user-name{color:#fff;white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:600;overflow:hidden}.user-role{color:#fff6;text-transform:capitalize;font-size:11px}.btn-signout{cursor:pointer;color:#fff6;background:0 0;border:none;border-radius:4px;align-items:center;padding:4px;display:flex}.btn-signout:hover{color:#fff;background:#ffffff1a}.topbar{border-bottom:1px solid var(--navy-10);z-index:50;background:#fff;align-items:center;gap:16px;height:56px;padding:0 24px;display:flex;position:sticky;top:0}.topbar-title{color:var(--navy);flex:1;font-size:15px;font-weight:700}.topbar-actions{align-items:center;gap:12px;display:flex}.notif-btn{cursor:pointer;color:var(--navy-40);background:0 0;border:none;border-radius:6px;padding:6px;display:flex;position:relative}.notif-btn:hover{background:var(--navy-10);color:var(--navy)}.notif-dot{background:var(--red);border:2px solid #fff;border-radius:50%;width:8px;height:8px;position:absolute;top:4px;right:4px}.page{flex:1;padding:24px}.page-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.page-title{color:var(--navy);font-size:20px;font-weight:800}.page-sub{color:var(--navy-40);margin-top:2px;font-size:13px}.card{border-radius:var(--radius-lg);border:1px solid var(--navy-10);box-shadow:var(--shadow);background:#fff;padding:20px}.card-title{color:var(--navy);margin-bottom:12px;font-size:14px;font-weight:700}.stat-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;margin-bottom:20px;display:grid}.stat-card{border-radius:var(--radius-lg);border:1px solid var(--navy-10);box-shadow:var(--shadow);background:#fff;padding:16px}.stat-label{color:var(--navy-40);text-transform:uppercase;letter-spacing:.5px;font-size:11px;font-weight:600}.stat-value{color:var(--navy);margin:4px 0;font-size:28px;font-weight:800}.stat-sub{color:var(--navy-40);font-size:11px}.table-wrap{border-radius:var(--radius);border:1px solid var(--navy-10);background:#fff;overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:13px}thead{background:var(--navy-05)}th{text-align:left;color:var(--navy-40);text-transform:uppercase;letter-spacing:.5px;white-space:nowrap;border-bottom:1px solid var(--navy-10);padding:10px 14px;font-size:11px;font-weight:700}td{border-bottom:1px solid var(--navy-05);color:var(--navy);vertical-align:middle;padding:12px 14px}tr:last-child td{border-bottom:none}tr:hover td{background:var(--navy-05)}.clickable-row{cursor:pointer}.badge{white-space:nowrap;border-radius:99px;align-items:center;padding:2px 10px;font-size:11px;font-weight:600;display:inline-flex}.badge-submitted{color:#3730a3;background:#eef2ff}.badge-in_progress{background:var(--blue-light);color:var(--blue)}.badge-approved{background:var(--green-light);color:var(--green)}.badge-rejected{background:var(--red-light);color:var(--red)}.badge-completed{color:#15803d;background:#f0fdf4}.badge-cancelled,.badge-draft{background:var(--navy-05);color:var(--navy-40)}.badge-pending_resubmission,.badge-pending{background:var(--amber-light);color:var(--amber)}.btn{border-radius:var(--radius);cursor:pointer;white-space:nowrap;border:none;align-items:center;gap:6px;padding:8px 16px;font-size:13px;font-weight:600;transition:all .15s;display:inline-flex}.btn-primary{background:var(--blue);color:#fff}.btn-primary:hover{background:#1558a0}.btn-secondary{color:var(--navy);border:1.5px solid var(--navy-10);background:#fff}.btn-secondary:hover{background:var(--navy-05);border-color:var(--navy-40)}.btn-danger{background:var(--red);color:#fff}.btn-danger:hover{background:#8b2020}.btn-success{background:var(--green);color:#fff}.btn-success:hover{background:#156037}.btn-sm{padding:5px 10px;font-size:12px}.btn-lg{padding:10px 20px;font-size:14px}.btn:disabled{opacity:.4;cursor:not-allowed}.form-group{margin-bottom:16px}.form-label{color:var(--navy-80);margin-bottom:6px;font-size:12px;font-weight:600;display:block}.form-label .req{color:var(--red);margin-left:2px}.form-control{border:1.5px solid var(--navy-10);border-radius:var(--radius);width:100%;color:var(--navy);font-size:13px;font-family:var(--font);background:#fff;outline:none;padding:8px 12px;transition:border-color .15s}.form-control:focus{border-color:var(--blue)}.form-control::placeholder{color:var(--navy-40)}select.form-control{cursor:pointer}textarea.form-control{resize:vertical;min-height:80px}.form-hint{color:var(--navy-40);margin-top:4px;font-size:11px}.form-error{color:var(--red);margin-top:4px;font-size:11px}.form-row{grid-template-columns:1fr 1fr;gap:16px;display:grid}.form-row-3{grid-template-columns:1fr 1fr 1fr;gap:16px;display:grid}.modal-overlay{z-index:1000;background:#0006;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal{border-radius:var(--radius-lg);background:#fff;width:100%;max-width:600px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #0003}.modal-lg{max-width:800px}.modal-header{border-bottom:1px solid var(--navy-10);justify-content:space-between;align-items:center;padding:20px 24px 16px;display:flex}.modal-title{color:var(--navy);font-size:16px;font-weight:700}.modal-close{cursor:pointer;color:var(--navy-40);background:0 0;border:none;border-radius:4px;padding:4px;display:flex}.modal-close:hover{color:var(--navy);background:var(--navy-10)}.modal-body{padding:20px 24px}.modal-footer{border-top:1px solid var(--navy-10);justify-content:flex-end;gap:10px;padding:16px 24px;display:flex}.filter-bar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px;display:flex}.filter-bar .form-control{width:auto;min-width:140px}.search-input{position:relative}.search-input input{padding-left:32px}.search-icon{color:var(--navy-40);position:absolute;top:50%;left:10px;transform:translateY(-50%)}.timeline{flex-direction:column;gap:12px;display:flex}.timeline-item{align-items:flex-start;gap:12px;display:flex}.timeline-dot{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;font-size:12px;display:flex}.timeline-dot.approved{background:var(--green-light);color:var(--green)}.timeline-dot.rejected{background:var(--red-light);color:var(--red)}.timeline-dot.pending{background:var(--amber-light);color:var(--amber)}.timeline-content{flex:1}.timeline-name{color:var(--navy);font-size:13px;font-weight:600}.timeline-meta{color:var(--navy-40);font-size:11px}.timeline-comment{color:var(--navy-80);margin-top:2px;font-size:12px;font-style:italic}.amount{font-weight:700}.amount-inr:before{content:"₹"}.empty-state{text-align:center;color:var(--navy-40);padding:48px 24px}.empty-state-icon{margin-bottom:12px;font-size:40px}.empty-state-title{color:var(--navy-80);margin-bottom:4px;font-size:15px;font-weight:700}.empty-state-sub{font-size:13px}.loading-screen{background:var(--bg);flex-direction:column;justify-content:center;align-items:center;gap:12px;height:100vh;display:flex}.loading-brand{color:var(--navy);font-size:28px;font-weight:800}.loading-brand span{color:var(--blue-mid)}.spinner{border:3px solid var(--navy-10);border-top-color:var(--blue);border-radius:50%;width:24px;height:24px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.tabs{border-bottom:2px solid var(--navy-10);gap:0;margin-bottom:20px;display:flex}.tab-btn{color:var(--navy-40);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-2px;padding:10px 16px;font-size:13px;font-weight:600;transition:all .15s}.tab-btn.active{color:var(--blue);border-bottom-color:var(--blue)}.tab-btn:hover:not(.active){color:var(--navy)}.priority-low{color:#15803d;background:#f0fdf4}.priority-medium{background:var(--blue-light);color:var(--blue)}.priority-high{background:var(--amber-light);color:var(--amber)}.priority-urgent{background:var(--red-light);color:var(--red)}@media (width<=768px){:root{--sidebar-w:0px}.sidebar{display:none}.main-content{margin-left:0}.form-row,.form-row-3{grid-template-columns:1fr}}
