@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap";
@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2c55a0e60120577a-s.0-dom-5bn10r2.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/9c72aa0f40e4eef8-s.1y4-pdgsjb-pw.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/ad66f9afd8947f86-s.3lvt2whj97whp.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/5476f68d60460930-s.2uwcyprjm3xu3.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2bbe8d2671613f1f-s.0k62hbripvv8p.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/1bffadaabf893a1e-s.3-6t-g6q0vh0a.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/83afe278b6a6bb3c-s.p.2bn3s6zvc0dyp.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter Fallback;src:local(Arial);ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.0%;size-adjust:107.12%}.inter_5901b7c6-module__ec5Qua__className{font-family:Inter,Inter Fallback;font-style:normal}.inter_5901b7c6-module__ec5Qua__variable{--font-inter:"Inter", "Inter Fallback"}
:root{--brand-900:#0a1628;--brand-800:#0f2040;--brand-700:#1a3560;--brand-600:#1e4080;--brand-500:#2563eb;--brand-400:#3b82f6;--brand-300:#93c5fd;--gold-500:#d4a017;--gold-400:#e5b935;--gold-300:#f0d060;--gold-100:#fef9ea;--emerald-700:#065f46;--emerald-600:#059669;--emerald-500:#10b981;--emerald-200:#a7f3d0;--surface-0:#0d1117;--surface-1:#161b22;--surface-2:#1c2333;--surface-3:#21262d;--border:#ffffff14;--border-strong:#ffffff26;--text-primary:#f0f6fc;--text-secondary:#8b949e;--text-muted:#484f58;--status-pending:#d97706;--status-process:#2563eb;--status-done:#059669;--status-rejected:#dc2626;--status-review:#7c3aed;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-xl:24px;--sidebar-width:260px;--header-height:64px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;font-size:15px}body{font-family:var(--font-inter,"Inter"), system-ui, -apple-system, sans-serif;background:var(--surface-0);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.6}a{color:inherit;text-decoration:none}ul,ol{list-style:none}button{cursor:pointer;background:0 0;border:none;font-family:inherit}input,textarea,select{outline:none;font-family:inherit}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--surface-1)}::-webkit-scrollbar-thumb{background:var(--surface-3);border-radius:99px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.app-shell{min-height:100vh;display:flex}.sidebar{width:var(--sidebar-width);background:var(--surface-1);border-right:1px solid var(--border);z-index:100;flex-direction:column;height:100vh;transition:transform .3s;display:flex;position:fixed;top:0;left:0}.sidebar-brand{border-bottom:1px solid var(--border);padding:20px 20px 16px}.sidebar-brand-logo{align-items:center;gap:10px;display:flex}.sidebar-brand-icon{background:linear-gradient(135deg, var(--emerald-600), var(--brand-500));border-radius:var(--radius-md);flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;font-size:18px;display:flex}.sidebar-brand-text h2{color:var(--text-primary);font-size:14px;font-weight:700;line-height:1.2}.sidebar-brand-text span{color:var(--text-secondary);font-size:11px}.sidebar-nav{flex:1;padding:12px 10px;overflow-y:auto}.nav-group-label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);padding:12px 10px 6px;font-size:10px;font-weight:600}.nav-item{border-radius:var(--radius-md);color:var(--text-secondary);align-items:center;gap:10px;margin-bottom:2px;padding:9px 12px;font-size:13.5px;font-weight:500;transition:all .18s;display:flex;position:relative}.nav-item:hover{background:var(--surface-3);color:var(--text-primary)}.nav-item.active{color:var(--text-primary);background:linear-gradient(135deg,#2563eb33,#05966926);border:1px solid #2563eb40}.nav-item.active:before{content:"";background:linear-gradient(to bottom, var(--brand-400), var(--emerald-500));border-radius:0 99px 99px 0;width:3px;height:60%;position:absolute;top:50%;left:0;transform:translateY(-50%)}.nav-item-icon{opacity:.8;flex-shrink:0;width:18px;height:18px}.nav-badge{background:var(--status-pending);color:#fff;text-align:center;border-radius:99px;min-width:18px;margin-left:auto;padding:2px 6px;font-size:10px;font-weight:700}.sidebar-footer{border-top:1px solid var(--border);padding:14px 10px}.sidebar-user{border-radius:var(--radius-md);cursor:pointer;align-items:center;gap:10px;padding:10px 12px;transition:background .18s;display:flex}.sidebar-user:hover{background:var(--surface-3)}.sidebar-avatar{background:linear-gradient(135deg, var(--brand-500), var(--emerald-600));color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;font-size:13px;font-weight:700;display:flex}.sidebar-user-info{flex:1;min-width:0}.sidebar-user-name{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;overflow:hidden}.sidebar-user-role{color:var(--text-secondary);font-size:11px}.main-content{margin-left:var(--sidebar-width);flex-direction:column;flex:1;min-height:100vh;display:flex}.top-header{height:var(--header-height);background:var(--surface-1);border-bottom:1px solid var(--border);z-index:90;align-items:center;gap:16px;padding:0 24px;display:flex;position:sticky;top:0}.header-title{color:var(--text-primary);font-size:16px;font-weight:700}.header-subtitle{color:var(--text-secondary);font-size:12px}.header-spacer{flex:1}.header-actions{align-items:center;gap:10px;display:flex}.page-content{flex:1;padding:24px}.card{background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px;transition:border-color .2s}.card:hover{border-color:var(--border-strong)}.card-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.card-title{color:var(--text-primary);font-size:15px;font-weight:700}.card-subtitle{color:var(--text-secondary);margin-top:2px;font-size:12px}.stat-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px;margin-bottom:24px;display:grid}.stat-card{background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px;transition:all .2s;position:relative;overflow:hidden}.stat-card:before{content:"";height:3px;position:absolute;top:0;left:0;right:0}.stat-card.blue:before{background:linear-gradient(90deg, var(--brand-400), var(--brand-500))}.stat-card.green:before{background:linear-gradient(90deg, var(--emerald-500), var(--emerald-600))}.stat-card.gold:before{background:linear-gradient(90deg, var(--gold-400), var(--gold-500))}.stat-card.purple:before{background:linear-gradient(90deg,#8b5cf6,#7c3aed)}.stat-card.red:before{background:linear-gradient(90deg,#f87171,#dc2626)}.stat-card:hover{border-color:var(--border-strong);transform:translateY(-1px)}.stat-icon{border-radius:var(--radius-md);justify-content:center;align-items:center;width:40px;height:40px;margin-bottom:12px;font-size:18px;display:flex}.stat-icon.blue{color:var(--brand-400);background:#3b82f626}.stat-icon.green{color:var(--emerald-500);background:#10b98126}.stat-icon.gold{color:var(--gold-400);background:#d4a01726}.stat-icon.purple{color:#8b5cf6;background:#8b5cf626}.stat-icon.red{color:#f87171;background:#dc262626}.stat-value{color:var(--text-primary);margin-bottom:4px;font-size:28px;font-weight:800;line-height:1}.stat-label{color:var(--text-secondary);font-size:12px}.stat-change{align-items:center;gap:4px;margin-top:6px;font-size:11px;display:flex}.stat-change.up{color:var(--emerald-500)}.stat-change.down{color:#f87171}.table-wrapper{border-radius:var(--radius-md);overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:13.5px}thead th{background:var(--surface-2);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;padding:10px 16px;font-size:11px;font-weight:600}tbody tr{border-bottom:1px solid var(--border);transition:background .15s}tbody tr:last-child{border-bottom:none}tbody tr:hover{background:var(--surface-2)}tbody td{color:var(--text-primary);vertical-align:middle;padding:12px 16px}.badge{white-space:nowrap;border-radius:99px;align-items:center;gap:5px;padding:3px 10px;font-size:11px;font-weight:600;display:inline-flex}.badge-dot{border-radius:50%;width:6px;height:6px}.badge.diajukan{color:var(--status-pending);background:#d9770626}.badge.diverifikasi{color:var(--status-process);background:#2563eb26}.badge.disetujui{color:var(--status-done);background:#05966926}.badge.dikerjakan{color:var(--status-review);background:#7c3aed26}.badge.selesai{color:var(--status-done);background:#05966926}.badge.ditolak{color:var(--status-rejected);background:#dc262626}.badge.revisi{color:var(--status-pending);background:#d9770626}.badge.aktif{color:var(--emerald-500);background:#10b98126}.badge.nonaktif{color:var(--text-secondary);background:#4b556333}.badge.baik{color:var(--emerald-500);background:#10b98126}.badge.rusak{color:#f87171;background:#dc262626}.btn{border-radius:var(--radius-md);white-space:nowrap;align-items:center;gap:7px;padding:8px 16px;font-size:13.5px;font-weight:600;line-height:1;transition:all .18s;display:inline-flex}.btn-primary{background:linear-gradient(135deg, var(--brand-500), var(--emerald-600));color:#fff;box-shadow:0 4px 14px #2563eb59}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 6px 20px #2563eb73}.btn-secondary{background:var(--surface-3);color:var(--text-primary);border:1px solid var(--border)}.btn-secondary:hover{background:var(--surface-2);border-color:var(--border-strong)}.btn-danger{color:#f87171;background:#dc262626;border:1px solid #dc262633}.btn-danger:hover{background:#dc262640}.btn-sm{padding:5px 10px;font-size:12px}.btn-icon{border-radius:var(--radius-md);background:var(--surface-3);width:34px;height:34px;color:var(--text-secondary);border:1px solid var(--border);justify-content:center;align-items:center;padding:0;transition:all .18s;display:flex}.btn-icon:hover{background:var(--surface-2);color:var(--text-primary)}.notif-btn{position:relative}.notif-dot{background:var(--status-pending);border:2px solid var(--surface-1);border-radius:50%;width:8px;height:8px;position:absolute;top:4px;right:4px}.form-group{margin-bottom:16px}.form-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px;font-size:12.5px;font-weight:600;display:block}.form-control{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-md);width:100%;color:var(--text-primary);padding:10px 14px;font-size:13.5px;transition:border-color .18s,box-shadow .18s}.form-control:focus{border-color:var(--brand-400);box-shadow:0 0 0 3px #3b82f626}.form-control::placeholder{color:var(--text-muted)}select.form-control{appearance:none}textarea.form-control{resize:vertical;min-height:90px}.modal-overlay{z-index:200;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000b3;justify-content:center;align-items:center;padding:20px;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.modal{background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius-xl);width:100%;max-width:560px;max-height:90vh;animation:.25s slideUp;overflow-y:auto}.modal-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:20px 24px 16px;display:flex}.modal-title{font-size:16px;font-weight:700}.modal-body{padding:20px 24px}.modal-footer{border-top:1px solid var(--border);justify-content:flex-end;gap:10px;padding:16px 24px;display:flex}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.progress-bar{background:var(--surface-3);border-radius:99px;height:6px;overflow:hidden}.progress-fill{border-radius:99px;height:100%;transition:width .6s}.progress-fill.blue{background:linear-gradient(90deg, var(--brand-400), var(--brand-500))}.progress-fill.green{background:linear-gradient(90deg, var(--emerald-500), var(--emerald-600))}.progress-fill.gold{background:linear-gradient(90deg, var(--gold-300), var(--gold-500))}.empty-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:60px 24px;display:flex}.empty-icon{opacity:.5;margin-bottom:16px;font-size:48px}.empty-title{color:var(--text-primary);margin-bottom:6px;font-size:16px;font-weight:700}.empty-desc{color:var(--text-secondary);max-width:320px;font-size:13px}@media (max-width:768px){.sidebar{transform:translate(-100%)}.sidebar.open{transform:translate(0)}.main-content{margin-left:0}}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-2{gap:8px}.gap-3{gap:12px}.gap-4{gap:16px}.mt-1{margin-top:4px}.mt-2{margin-top:8px}.mt-4{margin-top:16px}.mt-6{margin-top:24px}.mb-1{margin-bottom:4px}.mb-2{margin-bottom:8px}.mb-4{margin-bottom:16px}.mb-6{margin-bottom:24px}.text-sm{font-size:12px}.text-muted{color:var(--text-secondary)}.font-bold{font-weight:700}.w-full{width:100%}.grid-2{grid-template-columns:1fr 1fr;gap:16px;display:grid}.grid-3{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}
