@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap";
@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/fef07dbb0973bf53-s.12tyk43_3sh9u.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:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/8a480f0b521d4e75-s.0jzbimsg8vl84.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/53b9e256198e5412-s.0-wfv7uh4i7h9.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:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7178b3e590c64307-s.0nx0ww8fni_q3.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:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/caa3a2e1cccd8315-s.p.09~u27dqhyhd6.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:Geist Fallback;src:local(Arial);ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.0%;size-adjust:104.76%}.geist_a71539c9-module__T19VSG__className{font-family:Geist,Geist Fallback;font-style:normal}.geist_a71539c9-module__T19VSG__variable{--font-geist-sans:"Geist", "Geist Fallback"}
@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/5ce348bf30bf5439-s.0ee55_hj9qcer.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:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/4fa387ec64143e14-s.0.qu-9752pffj.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/6306c77e7c8268e4-s.0mao5jbfbduzp.woff2)format("woff2");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7d817b4c03b0c5f1-s.0uzt.a6d44yda.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:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/bbc41e54d2fcbd21-s.0mvwgmnhv29no.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:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/797e433ab948586e-s.p.09zddjkbdep5a.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:Geist Mono Fallback;src:local(Arial);ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.0%;size-adjust:134.59%}.geist_mono_8d43a2aa-module__8Li5zG__className{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.geist_mono_8d43a2aa-module__8Li5zG__variable{--font-geist-mono:"Geist Mono", "Geist Mono Fallback"}
*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--sidebar-bg:#0f2040;--sidebar-hover:#162c52;--sidebar-active:#1e5799;--sidebar-text:#d6e8f7;--sidebar-text-dim:#7aaac8;--sidebar-width:220px;--blue:#1e5799;--blue-light:#eaf2fb;--green:#22c55e;--red:#ef4444;--orange:#f97316;--border:#d0e4f3;--border-dark:#a8ccec;--bg:#f2f6fb;--surface:#fff;--text:#111827;--text-sm:#6b7280;--pending-bg:#fee2e2;--pending-text:#dc2626;--font:"Inter", sans-serif;--header-h:36px}html,body{height:100%;font-family:var(--font);color:var(--text);background:var(--bg);font-size:13px;overflow:hidden}.app{height:100vh;display:flex;overflow:hidden}.sidebar{width:var(--sidebar-width);background:var(--sidebar-bg);z-index:50;flex-direction:column;flex-shrink:0;align-self:flex-start;height:100vh;transition:width .25s cubic-bezier(.4,0,.2,1);display:flex;position:sticky;top:0;overflow:hidden}.sidebar-scroll{scrollbar-width:none;flex:1;position:sticky;top:0;overflow:hidden auto}.sidebar-scroll::-webkit-scrollbar{width:0}.sidebar:hover .sidebar-scroll{scrollbar-width:thin;scrollbar-color:#abb7d266 transparent}.sidebar:hover .sidebar-scroll::-webkit-scrollbar{width:4px}.sidebar:hover .sidebar-scroll::-webkit-scrollbar-track{background:0 0}.sidebar:hover .sidebar-scroll::-webkit-scrollbar-thumb{background:#abb7d266;border-radius:999px}.sidebar:hover .sidebar-scroll::-webkit-scrollbar-thumb:hover{background:#abb7d2b3}.sidebar-user-info{min-width:0;overflow:hidden}.sidebar.collapsed:not(:hover) .sidebar-user-info{display:none}.sidebar.collapsed{width:64px}.sidebar.collapsed:hover{width:var(--sidebar-width);box-shadow:4px 0 20px #00000040}.sidebar.collapsed:not(:hover) .logo-version,.sidebar.collapsed:not(:hover) .sidebar-user span,.sidebar.collapsed:not(:hover) .nav-item-text,.sidebar.collapsed:not(:hover) .nav-badge,.sidebar.collapsed:not(:hover) .nav-arrow,.sidebar.collapsed:not(:hover) .section-title,.sidebar.collapsed:not(:hover) .sub-nav{display:none}.sidebar.collapsed:not(:hover) .sidebar-scroll{overflow:hidden}.sidebar.collapsed:not(:hover) .nav-item{justify-content:center;gap:0;padding:10px 0}.sidebar.collapsed:not(:hover) .sidebar-user{border-bottom:none;justify-content:center;gap:0;padding:10px 0}.sidebar.collapsed:not(:hover) .sidebar-logo{border-bottom:none;justify-content:center;padding:14px 0 10px}.sidebar.collapsed:not(:hover) .logo-box{justify-content:center}.sidebar.collapsed:not(:hover) .toggle-btn{display:none}.sidebar.collapsed:not(:hover) .logo-qs{border-radius:12px;width:48px;height:48px}.sidebar.collapsed:not(:hover) .nav-item svg,.sidebar.collapsed:not(:hover) .sidebar-user svg{color:#8892a4;width:20px;height:20px}.sidebar.collapsed:not(:hover) .nav-item.active{background:#1e57994d;border-radius:8px;width:calc(100% - 16px);margin:2px 8px;padding:9px 0}.sidebar.collapsed:not(:hover) .nav-item.active svg{color:var(--blue)}.toggle-btn{border:1.5px solid var(--sidebar-text-dim);cursor:pointer;width:22px;height:22px;color:var(--sidebar-text-dim);background:0 0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;transition:border-color .15s,color .15s;display:flex}.toggle-btn:hover{color:#fff;border-color:#fff}.toggle-btn svg{width:10px;height:10px;transition:transform .25s}.sidebar.collapsed .toggle-btn svg{transform:rotate(180deg)}.sidebar-logo{border-bottom:1px solid #ffffff0f;flex-shrink:0;justify-content:space-between;align-items:center;min-height:62px;padding:10px 14px;display:flex;overflow:hidden}.logo-box{flex:1;align-items:center;gap:8px;min-width:0;display:flex;overflow:hidden}.logo-qs{background:var(--sidebar-bg);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;display:flex;overflow:hidden}.logo-qs img{object-fit:contain;filter:brightness(0)invert();width:44px;height:44px}.logo-version{color:var(--sidebar-text-dim);white-space:nowrap;font-size:10px;line-height:1.3;overflow:hidden}.logo-version strong{color:var(--sidebar-text);font-size:11px;display:block}.sidebar-user{color:var(--sidebar-text);white-space:nowrap;border-bottom:1px solid #ffffff0d;align-items:center;gap:9px;padding:10px 14px;font-size:11.5px;display:flex;overflow:hidden}.sidebar-user svg{width:14px;height:14px;color:var(--sidebar-text-dim);flex-shrink:0}.sidebar-user span{text-overflow:ellipsis;overflow:hidden}.sidebar-nav{padding:6px 0}.nav-item{color:var(--sidebar-text);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;align-items:center;gap:9px;padding:8px 14px;font-size:12px;transition:background .12s;display:flex;position:relative;overflow:hidden}.nav-item:hover{background:var(--sidebar-hover)}.nav-item.active{background:var(--sidebar-active);color:#fff}.nav-item svg{width:15px;height:15px;color:var(--sidebar-text-dim);flex-shrink:0}.nav-item.active svg{color:#fff}.nav-item-text{transition:opacity .2s}.nav-badge{background:var(--blue);color:#fff;border-radius:8px;flex-shrink:0;margin-left:auto;padding:1px 5px;font-size:9px;font-weight:600}.nav-arrow{color:var(--sidebar-text-dim);flex-shrink:0;align-items:center;margin-left:auto;transition:transform .2s;display:flex}.nav-arrow svg{width:12px;height:12px}.nav-item.open .nav-arrow{transform:rotate(90deg)}.section-title{letter-spacing:.08em;text-transform:uppercase;color:var(--sidebar-text-dim);white-space:nowrap;padding:10px 14px 4px;font-size:9.5px;font-weight:600;overflow:hidden}.sub-nav{max-height:0;transition:max-height .25s;overflow:hidden}.nav-item.open+.sub-nav{max-height:600px}.sub-item{color:var(--sidebar-text-dim);cursor:pointer;white-space:nowrap;align-items:center;gap:8px;padding:6px 14px 6px 30px;font-size:11.5px;transition:background .12s,color .12s;display:flex;overflow:hidden}.sub-item:hover{background:var(--sidebar-hover);color:var(--sidebar-text)}.sub-item.active{color:#fff;background:#1e57994d}.sub-item:before{content:"»";color:var(--sidebar-text-dim);flex-shrink:0;font-size:11px}.sub-item.active:before{color:#fff}.main{background:#f0f2f5;flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;overflow:hidden}.content{flex-direction:column;flex:1;gap:10px;min-height:0;padding:12px 16px;display:flex;overflow:hidden auto}.main-content-scroll{flex:1;min-height:0;overflow:hidden auto}.page-header{flex-shrink:0;justify-content:space-between;align-items:center;gap:10px;display:flex}.page-title{color:var(--blue);white-space:nowrap;align-items:center;gap:8px;font-size:13.5px;font-weight:600;display:flex}.page-title svg{width:16px;height:16px}.page-actions{align-items:center;gap:5px;display:flex}.search-box{font-family:var(--font);color:var(--text);background:#fff;border:1px solid #d1d5db;border-radius:6px;outline:none;width:170px;padding:5px 10px;font-size:12px;transition:border-color .15s}.search-box::placeholder{color:#9ca3af}.search-box:focus{border-color:var(--blue)}.icon-btn{cursor:pointer;color:#6b7280;background:#fff;border:1.5px solid #d1d5db;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;transition:all .15s;display:flex}.icon-btn:hover{color:#374151;background:#f9fafb;border-color:#9ca3af}.icon-btn:disabled{opacity:.4;cursor:not-allowed}.icon-btn svg{width:14px;height:14px}.icon-btn.active{background:var(--blue);border-color:var(--blue);color:#fff}.icon-btn.green{color:#16a34a;background:#fff;border-color:#16a34a}.icon-btn.green:hover{background:#f0fdf4}.icon-btn.blue{border-color:var(--blue);color:var(--blue);background:#fff}.icon-btn.blue-fill{background:var(--blue);border-color:var(--blue);color:#fff;border-radius:50%;width:34px;height:34px}.icon-btn.blue-fill:hover{background:#1a3a6b;border-color:#1a3a6b}.icon-btn.red{color:#ef4444;background:#fff;border-color:#ef4444}.icon-btn.red:hover{background:#fef2f2}.icon-btn.red:disabled{opacity:.4;cursor:not-allowed}.table-card{background:#fff;border:1px solid #e5e7eb;border-radius:8px;flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.table-scroll{flex:1;min-height:0;overflow:scroll auto}.table-scroll::-webkit-scrollbar{width:6px;height:6px}.table-scroll::-webkit-scrollbar-track{background:#f1f1f1;border-radius:3px}.table-scroll::-webkit-scrollbar-thumb{background:var(--border-dark);border-radius:3px}.table-scroll::-webkit-scrollbar-thumb:hover{background:var(--blue)}table{border-collapse:collapse;width:100%}thead{z-index:2;background:#fff;position:sticky;top:0}th{text-align:left;color:#374151;vertical-align:bottom;background:#fff;border-bottom:1px solid #e5e7eb;padding:0;font-size:12px;font-weight:600}.th-top{color:#374151;white-space:nowrap;padding:8px 10px 6px;font-size:12px;font-weight:600}td{vertical-align:middle;color:#374151;white-space:nowrap;text-overflow:ellipsis;border-bottom:1px solid #f3f4f6;max-width:280px;padding:8px 10px;font-size:12px;overflow:hidden}tr:last-child td{border-bottom:none}tbody tr:hover{background:var(--blue-light)}td.center{text-align:center}.cbx{cursor:pointer;accent-color:var(--blue)}.badge{white-space:nowrap;border-radius:20px;align-items:center;padding:3px 10px;font-size:11px;font-weight:500;display:inline-flex}.firma-btn{border:1.5px solid var(--blue);cursor:pointer;width:32px;height:32px;color:var(--blue);background:#fff;border-radius:8px;justify-content:center;align-items:center;transition:background .15s;display:inline-flex}.firma-btn svg{width:15px;height:15px}.pagination-bar{color:#6b7280;background:#fff;border-top:1px solid #e5e7eb;flex-shrink:0;justify-content:space-between;align-items:center;padding:7px 14px;font-size:12px;display:flex}.module-status{color:#6b7280;background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:16px 20px;font-size:13px}.module-status.error{color:#dc2626;background:#fef2f2;border-color:#fecaca}.modal-overlay{z-index:200;background:#0f172a6b;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.modal-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;flex-direction:column;width:100%;max-width:680px;display:flex;overflow:hidden;box-shadow:0 20px 50px #0f172a33}.modal-header{border-bottom:1px solid #f3f4f6;flex-shrink:0;justify-content:space-between;align-items:center;padding:14px 18px;display:flex}.modal-close-btn{cursor:pointer;color:#6b7280;background:#fff;border:1.5px solid #e5e7eb;border-radius:6px;justify-content:center;align-items:center;width:28px;height:28px;transition:all .12s;display:flex}.modal-close-btn:hover{color:#ef4444;border-color:#ef4444}.modal-close-btn svg{width:13px;height:13px}.modal-error{color:#dc2626;background:#fef2f2;border:1px solid #fecaca;border-radius:6px;margin:10px 18px 0;padding:8px 12px;font-size:12px}.modal-body{flex-direction:column;gap:12px;padding:16px 18px;display:flex;overflow-y:auto}.form-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.form-field{flex-direction:column;gap:5px;display:flex}.form-field label{color:#374151;font-size:11.5px;font-weight:600}.form-field input,.form-field select{height:36px;font-family:var(--font);color:var(--text);background:#fff;border:1px solid #d1d5db;border-radius:6px;outline:none;padding:0 10px;font-size:12px;transition:border-color .15s}.form-field input:focus,.form-field select:focus{border-color:var(--blue)}.form-field input::placeholder{color:#9ca3af}.modal-actions{border-top:1px solid #f3f4f6;flex-shrink:0;justify-content:flex-end;gap:8px;padding:12px 18px;display:flex}.modal-btn-cancel{color:#374151;height:34px;font-family:var(--font);cursor:pointer;background:#fff;border:1.5px solid #d1d5db;border-radius:6px;padding:0 16px;font-size:12px;font-weight:500;transition:all .12s}.modal-btn-cancel:hover{border-color:#9ca3af}.modal-btn-cancel:disabled{opacity:.5;cursor:not-allowed}.modal-btn-save{background:var(--blue);color:#fff;height:34px;font-family:var(--font);cursor:pointer;border:none;border-radius:6px;padding:0 18px;font-size:12px;font-weight:600;transition:background .12s}.modal-btn-save:hover{background:#1a3a6b}.modal-btn-save:disabled{opacity:.6;cursor:not-allowed}.pages{align-items:center;gap:2px;display:flex}.page-btn{cursor:pointer;min-width:26px;height:26px;font-size:11.5px;font-family:var(--font);color:#6b7280;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;padding:0 5px;transition:all .12s;display:flex}.page-btn:hover:not(:disabled){color:#111827;background:#f3f4f6}.page-btn:disabled{opacity:.35;cursor:not-allowed}.page-btn.active{background:var(--blue);color:#fff;font-weight:600}.login-page{background:#eaf2fb;justify-content:center;align-items:center;min-height:100vh;padding:32px 20px;display:flex;position:relative;overflow:hidden}.login-deco{pointer-events:none;border:18px solid #1a5ea824;border-color:#1a5ea824 #1a5ea824 #0000 #0000;border-radius:50%;width:240px;height:240px;position:absolute}.login-deco-tl{top:-85px;left:-85px}.login-deco-br{bottom:-85px;right:-85px;transform:rotate(180deg)}.login-card{z-index:1;background:#fff;border:1px solid #e2eaf4;border-radius:16px;width:100%;max-width:330px;padding:28px 24px 20px;position:relative;box-shadow:0 8px 30px #0d2d5e14}.login-brand{text-align:center;margin-bottom:20px}.login-logo{object-fit:contain;width:80px;height:80px;margin:0 auto 10px;display:block}.login-title{color:#0d2d5e;letter-spacing:.03em;margin:0 0 4px;font-size:16px;font-weight:800}.login-subtitle{color:#6b7280;margin:0;font-size:11.5px}.login-error{color:#c62828;background:#fee2e2;border:1px solid #fecaca;border-radius:8px;margin-bottom:14px;padding:8px 12px;font-size:12px}.login-form{flex-direction:column;gap:12px;display:flex}.login-field{flex-direction:column;gap:5px;display:flex}.login-label{color:#374151;font-size:12px;font-weight:600}.login-input{width:100%;height:44px;font-family:var(--font);color:#0d2d5e;background:#f7faff;border:1px solid #d7e0ea;border-radius:10px;outline:none;padding:0 14px;font-size:13px;transition:border-color .15s,box-shadow .15s}.login-input:focus{border-color:var(--blue);box-shadow:0 0 0 3px #1e57991a}.login-input::placeholder{color:#9ca3af}.login-input-pass{padding-right:46px}.login-pass-wrap{position:relative}.login-eye{cursor:pointer;color:var(--blue);background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;width:28px;height:28px;padding:0;transition:color .12s;display:flex;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.login-eye:hover{color:#1a3a6b}.login-eye svg{width:16px;height:16px}.login-btn{background:var(--blue);color:#fff;width:100%;height:46px;font-family:var(--font);cursor:pointer;border:none;border-radius:10px;margin-top:4px;font-size:13px;font-weight:700;transition:background .15s,transform .1s}.login-btn:hover:not(:disabled){background:#1a3a6b}.login-btn:active:not(:disabled){transform:translateY(1px)}.login-btn:disabled{opacity:.7;cursor:not-allowed}.login-footer{text-align:center;color:#9ca3af;margin-top:20px;font-size:11px}.login-footer strong{color:var(--blue);font-weight:600}.main-content-scroll{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden auto}
