@import "https://fonts.googleapis.com/css2?family=Montserrat:wght@300;400;500;600;700&display=swap";:root{--font-sans:"Montserrat", system-ui, -apple-system, sans-serif;--bg-main:#090e17;--bg-card:#0e1624d9;--bg-card-hover:#162236e6;--border-color:#ffffff14;--border-color-hover:#ffffff2e;--text-primary:#f8fafc;--text-secondary:#bdbfc1;--text-muted:#838d99;--color-primary:#304f7e;--color-secondary:#eaa239;--accent-gradient:linear-gradient(135deg, #304f7e 0%, #172a47 100%);--btn-cta-gradient:linear-gradient(135deg, #eaa239 0%, #c98425 100%);--accent-glow:#eaa2391f;--color-success:#10b981;--color-danger:#ef4444;--bg-danger-light:#ef44441a;--border-danger:#ef444433;--shadow-lg:0 10px 25px -5px #0000004d, 0 8px 10px -6px #0000004d;--shadow-glow:0 0 20px #eaa23940}*{box-sizing:border-box;margin:0;padding:0}html{width:100%;min-height:100%;font-family:var(--font-sans);background-color:var(--bg-main);color:var(--text-primary);scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;padding:0;overflow:clip auto}body{width:100%;min-height:100vh;font-family:var(--font-sans);background-color:var(--bg-main);color:var(--text-primary);touch-action:pan-y;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;padding:0;overflow:clip visible}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--bg-main)}::-webkit-scrollbar-thumb{border:2px solid var(--bg-main);background:#fff3;border-radius:5px}::-webkit-scrollbar-thumb:hover{background:var(--color-secondary)}#root{flex-direction:column;width:100%;min-height:100vh;display:flex}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulse-glow{0%,to{opacity:.6}50%{opacity:1}}.fade-in{animation:.5s cubic-bezier(.16,1,.3,1) forwards fadeIn}.container-global{flex-direction:column;min-height:100vh;padding:24px;display:flex}.container-center{justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.navbar{-webkit-backdrop-filter:blur(16px);z-index:100;background:#0b101cd9;border-bottom:1px solid #ffffff14;border-radius:0 0 16px 16px;justify-content:space-between;align-items:center;padding:12px 24px;transition:all .3s;display:flex;position:sticky;top:0;box-shadow:0 4px 20px #00000059}.navbar-brand{white-space:nowrap;align-items:center;gap:12px;display:flex}.navbar-brand-logo{object-fit:contain;filter:drop-shadow(0 2px 4px #0000004d);width:auto;height:26px}.navbar-brand-divider{background:linear-gradient(#ffffff0d 0%,#ffffff40 50%,#ffffff0d 100%);width:1px;height:18px}.navbar-brand-title{letter-spacing:1.2px;color:var(--text-primary);text-transform:uppercase;background:linear-gradient(135deg,#fff 0%,#cbd5e1 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;font-size:13px;font-weight:700}.navbar-actions{white-space:nowrap;align-items:center;gap:12px;display:flex}.navbar-btn{white-space:nowrap;border-radius:8px;height:38px;padding:0 16px;font-size:13px;font-weight:600}.navbar-btn-logout{color:#f87171;background:#ef44440f;border:1px solid #ef444440}.navbar-btn-logout:hover{color:#fff;background:#ef444429;border-color:#ef444480;box-shadow:0 0 12px #ef444440}.navbar-user{white-space:nowrap;background:#ffffff0a;border:1px solid #ffffff14;border-radius:9999px;align-items:center;gap:10px;height:38px;padding:4px 14px 4px 6px;transition:all .25s;display:flex}.navbar-user:hover{background:#ffffff12;border-color:#ffffff26}.navbar-user-avatar{background:linear-gradient(135deg, var(--color-secondary) 0%, #d97706 100%);color:#0b101c;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:13px;font-weight:800;display:flex;box-shadow:0 2px 6px #eaa2394d}.navbar-user-avatar.large{flex-shrink:0;width:42px;height:42px;font-size:18px}.navbar-user-info{flex-direction:column;flex:1;min-width:0;line-height:1.15;display:flex;overflow:hidden}.navbar-user-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;font-size:10px;font-weight:500}.navbar-user-name{color:var(--text-primary);letter-spacing:.2px;white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:700;display:block;overflow:hidden}.navbar-toggle{color:var(--text-primary);cursor:pointer;background:#ffffff0a;border:1px solid #ffffff1a;border-radius:8px;outline:none;justify-content:center;align-items:center;width:40px;height:40px;transition:all .25s cubic-bezier(.4,0,.2,1);display:none}.navbar-toggle:hover,.navbar-toggle.active{border-color:var(--color-secondary);color:var(--color-secondary);background:#ffffff1a}.navbar-mobile-backdrop{z-index:9998;background:#000000a6;animation:.15s forwards fadeIn;position:fixed;inset:0}.navbar-mobile-menu{top:calc(64px + var(--safe-area-top,0px));right:max(16px, calc(16px + var(--safe-area-right,0px)));z-index:9999;background:#0d1526;border:1px solid #ffffff24;border-radius:16px;flex-direction:column;gap:14px;width:min(340px,100vw - 32px);max-width:calc(100vw - 32px);padding:16px;animation:.25s cubic-bezier(.16,1,.3,1) forwards slideDown;display:none;position:fixed;box-shadow:0 20px 40px -10px #000c,0 0 0 1px #ffffff0f}.navbar-mobile-user-card{box-sizing:border-box;background:#ffffff0a;border:1px solid #ffffff17;border-radius:12px;align-items:center;gap:12px;width:100%;padding:12px 14px;display:flex;overflow:hidden}.navbar-role-badge{text-transform:uppercase;color:var(--color-secondary);white-space:nowrap;background:#eaa23926;border:1px solid #eaa23959;border-radius:6px;flex-shrink:0;margin-left:auto;padding:3px 8px;font-size:10px;font-weight:700}.navbar-mobile-row{background:#ffffff05;border:1px solid #ffffff0f;border-radius:10px;justify-content:space-between;align-items:center;padding:10px 14px;display:flex}.navbar-mobile-row-label{color:var(--text-secondary);font-size:13px;font-weight:600}.navbar-mobile-btn{border-radius:10px;justify-content:center;width:100%;height:44px;font-size:14px}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@media (width<=980px){.navbar-actions{display:none}.navbar-toggle,.navbar-mobile-menu.open{display:flex}}.btn{font-family:var(--font-sans);cursor:pointer;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:10px 20px;font-size:14px;font-weight:600;transition:all .25s cubic-bezier(.4,0,.2,1);display:inline-flex}.btn-primary{background:var(--btn-cta-gradient);color:#090e17;box-shadow:0 4px 12px #eaa23933}.btn-primary:hover{box-shadow:0 6px 18px #eaa23959, var(--shadow-glow);transform:translateY(-1px)}.btn-primary:active{transform:translateY(0)}.btn-primary:disabled{opacity:.6;cursor:not-allowed;box-shadow:none;transform:none}.btn-secondary{color:var(--text-primary);border:1px solid var(--border-color);background:#ffffff0a}.btn-secondary:hover{border-color:var(--border-color-hover);background:#ffffff14}.btn-danger{color:var(--color-danger);background:0 0;border:1px solid #ef444433}.btn-danger:hover{background:var(--bg-danger-light);border-color:var(--color-danger)}.login-card{background:var(--bg-card);-webkit-backdrop-filter:blur(16px);border:1px solid var(--border-color);width:100%;max-width:420px;box-shadow:var(--shadow-lg);border-radius:16px;padding:40px}.login-header{text-align:center;margin-bottom:32px}.login-header h2{color:var(--text-primary);letter-spacing:-.5px;margin-bottom:8px;font-size:26px;font-weight:700}.login-header p{color:var(--text-secondary);font-size:13px}.form-group{margin-bottom:20px}.form-group label{color:var(--text-secondary);margin-bottom:8px;font-size:13px;font-weight:500;display:block}.input-field{border:1px solid var(--border-color);width:100%;color:var(--text-primary);font-family:var(--font-sans);background:#090d1699;border-radius:8px;outline:none;padding:12px 16px;font-size:15px;transition:all .2s}.input-field:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--accent-glow);background:#090d16e6}.modal-overlay{-webkit-backdrop-filter:blur(4px);z-index:2000;background:#0009;justify-content:center;align-items:center;padding:24px;animation:.2s forwards fadeIn;display:flex;position:fixed;inset:0}.modal-content{border:1px solid var(--border-color-hover);box-sizing:border-box;background:#0d121f;border-radius:14px;width:90%;max-width:520px;max-height:90vh;padding:24px;animation:.25s cubic-bezier(.16,1,.3,1) forwards fadeIn;overflow-y:auto;box-shadow:0 20px 50px #00000080}@media (width<=640px){.modal-overlay{padding:12px}.modal-content{border-radius:12px;width:96%;max-height:92vh;padding:16px}}.modal-content h3{color:var(--text-primary);margin-bottom:12px;font-size:17px;font-weight:600}.modal-content p{color:var(--text-secondary);margin-bottom:24px;font-size:14px;line-height:1.5}.modal-actions{justify-content:flex-end;gap:12px;display:flex}.modal-actions .btn{flex:1}.workspace-container{width:100%;max-width:1200px;margin:0 auto;padding:32px 16px}.workspace-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;margin-bottom:32px;padding-bottom:24px;display:flex}.workspace-title h1{letter-spacing:-.5px;font-size:28px;font-weight:700}.workspace-title p{color:var(--text-secondary);margin-top:6px;font-size:14px}.search-wrapper{justify-content:center;margin-bottom:40px;display:flex}.search-input{background:var(--bg-card);border:1px solid var(--border-color);width:100%;max-width:500px;color:var(--text-primary);box-shadow:var(--shadow-lg);border-radius:30px;outline:none;padding:14px 20px;font-size:15px;transition:all .25s}.search-input:focus{border-color:var(--color-primary);box-shadow:var(--shadow-lg), var(--shadow-glow);max-width:540px}.grid-layouts{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:24px;display:grid}.card-item{background:var(--bg-card);border:1px solid var(--border-color);min-height:180px;box-shadow:var(--shadow-lg);border-radius:16px;flex-direction:column;justify-content:space-between;padding:22px 24px;transition:all .3s cubic-bezier(.16,1,.3,1);display:flex;position:relative;overflow:hidden}.card-item:before{content:"";background:linear-gradient(90deg, var(--color-primary), var(--color-secondary));opacity:.4;height:3px;transition:opacity .3s;position:absolute;top:0;left:0;right:0}.card-item:hover{background:var(--bg-card-hover);border-color:#eaa23959;transform:translateY(-4px);box-shadow:0 16px 36px #00000080,0 0 20px #eaa23914}.card-item:hover:before{opacity:1}.card-info h3{color:var(--text-primary);word-break:break-word;margin-bottom:10px;font-size:17px;font-weight:600;line-height:1.35}.card-info span{color:var(--text-muted);word-break:break-all;background:#ffffff0a;border:1px solid #ffffff0f;border-radius:6px;padding:3px 8px;font-family:monospace;font-size:11px;display:inline-block}.report-list-container{width:100%;max-width:1000px;margin:0 auto;padding:32px 16px}.report-item{background:var(--bg-card);border:1px solid var(--border-color);border-radius:12px;justify-content:space-between;align-items:center;margin-bottom:16px;padding:20px 24px;transition:all .2s;display:flex}.report-item:hover{border-color:var(--border-color-hover);background:var(--bg-card-hover)}@keyframes skeletonPulse{0%{opacity:.4}50%{opacity:.8}to{opacity:.4}}.skeleton-pulse{animation:1.4s ease-in-out infinite skeletonPulse}.report-info h4{color:var(--text-primary);font-size:17px;font-weight:600}.report-info span{color:var(--text-muted);margin-top:4px;font-family:monospace;font-size:11px;display:block}.viewer-container{background-color:var(--bg-main);flex-direction:column;width:100%;max-width:100%;height:100dvh;padding:16px;display:flex;overflow:hidden}@media (width<=900px) and (orientation:landscape){.viewer-container{padding:6px 12px}.viewer-header{margin-bottom:6px}.viewer-title{gap:10px}.viewer-title button{padding:4px 10px!important;font-size:12px!important}.viewer-title h2{font-size:13.5px}}.error-banner{color:var(--color-danger);background:var(--bg-danger-light);border:1px solid var(--border-danger);text-align:center;border-radius:8px;margin-top:24px;padding:12px;font-size:13.5px;line-height:1.4}.success-banner{color:var(--color-success);text-align:center;background:#10b9811a;border:1px solid #10b98133;border-radius:8px;margin-top:24px;padding:12px;font-size:13.5px;line-height:1.4}.viewer-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.viewer-controls{align-items:center;gap:8px;display:flex}.btn-fullscreen-toggle{color:var(--text-primary);border:1px solid var(--border-color);cursor:pointer;background:#ffffff0f;border-radius:8px;align-items:center;gap:6px;padding:8px 14px;font-size:13px;font-weight:500;transition:all .2s;display:inline-flex}.btn-fullscreen-toggle:hover{border-color:var(--border-color-hover);color:#fff;background:#ffffff1f;transform:translateY(-1px)}.viewer-container.is-fullscreen{z-index:999999!important;background-color:var(--bg-main)!important;border-radius:0!important;width:100vw!important;height:100dvh!important;margin:0!important;padding:0!important;position:fixed!important;inset:0!important}.viewer-container.is-fullscreen .viewer-header{display:none!important}.viewer-container.is-fullscreen .iframe-wrapper-relative{border-radius:0!important;width:100%!important;height:100%!important}.btn-exit-fullscreen-floating{z-index:1000000;color:#fff;-webkit-backdrop-filter:blur(12px);cursor:pointer;opacity:.85;background:#0e1624d9;border:1px solid #fff3;border-radius:20px;align-items:center;gap:8px;padding:8px 16px;font-size:12.5px;font-weight:600;transition:all .25s;display:inline-flex;position:absolute;top:12px;right:16px;box-shadow:0 4px 20px #00000080,0 0 10px #eaa23933}.btn-exit-fullscreen-floating:hover,.btn-exit-fullscreen-floating:active{opacity:1;border-color:var(--color-secondary);box-shadow:0 6px 24px #0009, var(--shadow-glow);background:#0e1624f2;transform:scale(1.03)}@media (width<=600px){.btn-fullscreen-toggle span{display:none}.btn-fullscreen-toggle{padding:8px 10px}.btn-exit-fullscreen-floating{padding:6px 12px;font-size:11.5px;top:8px;right:8px}}.viewer-title{align-items:center;gap:16px;display:flex}.viewer-title h2{color:var(--text-secondary);font-size:18px;font-weight:500}.viewer-title h2 span{color:var(--text-primary);font-weight:600}.iframe-wrapper-relative{border-radius:12px;flex-direction:column;flex:1;width:100%;height:100%;display:flex;position:relative;overflow:hidden}.iframe-wrapper{border:1px solid var(--border-color);width:100%;height:100%;box-shadow:var(--shadow-lg);background-color:#0b0f19;border-radius:12px;flex:1;overflow:hidden}.report-loading-overlay{z-index:20;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--border-color);background:#090e17f0;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;padding:24px;display:flex;position:absolute;inset:0}.report-spinner-card{text-align:center;background:var(--bg-card);border:1px solid var(--border-color);width:100%;max-width:380px;box-shadow:var(--shadow-lg), 0 0 30px #00000080;border-radius:16px;flex-direction:column;justify-content:center;align-items:center;padding:32px 24px;display:flex}.report-loading-text h3{color:var(--text-primary);margin-bottom:6px;font-size:16px;font-weight:600}.report-loading-text p{color:var(--text-secondary);margin-bottom:20px;font-size:12.5px;line-height:1.4}.report-loading-progress-bar{background:#ffffff14;border-radius:4px;width:100%;height:4px;position:relative;overflow:hidden}@keyframes reportProgressAnim{0%{width:40%;left:-40%}50%{width:60%;left:20%}to{width:30%;left:100%}}.report-loading-progress-fill{background:linear-gradient(90deg, var(--color-primary) 0%, var(--color-secondary) 100%);border-radius:4px;height:100%;animation:1.6s ease-in-out infinite reportProgressAnim;position:absolute}.iframe-wrapper iframe{border:none!important}.spinner-container{flex-direction:column;justify-content:center;align-items:center;min-height:100vh;display:flex}.inpasa-loader-container{flex-direction:column;justify-content:center;align-items:center;margin-bottom:20px;display:flex}.inpasa-loader-drop{filter:drop-shadow(0 0 15px #eaa23999);justify-content:center;align-items:center;animation:1.5s ease-in-out infinite drop-pulse-glow;display:flex}@keyframes drop-pulse-glow{0%{filter:drop-shadow(0 0 8px #eaa23973);opacity:.85;transform:scale(.85)}50%{filter:drop-shadow(0 0 25px #eaa239f2);opacity:1;transform:scale(1.12)}to{filter:drop-shadow(0 0 8px #eaa23973);opacity:.85;transform:scale(.85)}}.pulse-circle{justify-content:center;align-items:center;animation:1.5s ease-in-out infinite drop-pulse-glow;display:flex}.spinner-text{color:var(--text-secondary);font-size:15px;font-weight:500}.admin-container{width:100%;max-width:1200px;margin:0 auto;padding:32px 16px}.admin-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;margin-bottom:32px;padding-bottom:20px;display:flex}.admin-header h1{letter-spacing:-.5px;font-size:26px;font-weight:700}.admin-card{background:var(--bg-card);border:1px solid var(--border-color);box-shadow:var(--shadow-lg);border-radius:12px;margin-bottom:24px;padding:24px}.admin-card h3{color:var(--text-primary);margin-bottom:16px;font-size:18px;font-weight:600}.admin-grid{grid-template-columns:1fr 1.5fr;gap:24px;display:grid}@media (width<=768px){.admin-grid{grid-template-columns:1fr}}.list-selectable{flex-direction:column;gap:10px;max-height:540px;padding-right:4px;display:flex;overflow-y:auto}.list-selectable-item{box-sizing:border-box;border:1px solid var(--border-color);cursor:pointer;text-align:left;background:#ffffff08;border-radius:12px;flex-direction:column;justify-content:flex-start;align-items:stretch;gap:8px;width:100%;height:auto;min-height:66px;padding:14px 16px;transition:all .2s;display:flex;position:relative;overflow:hidden}.list-selectable-item:hover{border-color:var(--border-color-hover);background:#ffffff12;transform:translateY(-1px)}.list-selectable-item.active{background:var(--accent-gradient);color:#fff;box-shadow:var(--shadow-glow);border-color:#60a5fa99}.workspace-item-content{flex-direction:column;gap:8px;width:100%;min-width:0;height:auto;display:flex}.workspace-item-top{justify-content:space-between;align-items:flex-start;gap:10px;width:100%;display:flex}.workspace-item-title{color:var(--text-primary);letter-spacing:-.01em;white-space:normal;word-break:break-word;overflow-wrap:anywhere;flex:1;min-width:0;margin:0;font-size:13.5px;font-weight:600;line-height:1.4}.list-selectable-item.active .workspace-item-title{color:#fff}.workspace-item-meta{flex-shrink:0;align-items:center;gap:8px;width:100%;min-width:0;margin-top:2px;display:flex}.workspace-item-id{color:var(--text-muted);white-space:normal;word-break:break-all;overflow-wrap:anywhere;opacity:.85;letter-spacing:.2px;width:100%;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:10.5px;line-height:1.3;display:block}.list-selectable-item.active .workspace-item-id{color:#ffffffbf}.table-wrapper{border:1px solid var(--border-color);border-radius:8px;overflow-x:auto}.admin-table{border-collapse:collapse;text-align:left;width:100%;font-size:14px}.admin-table th{color:var(--text-secondary);border-bottom:1px solid var(--border-color);background:#0003;padding:12px 16px;font-weight:600}.admin-table td{border-bottom:1px solid var(--border-color);color:var(--text-primary);vertical-align:middle;padding:12px 16px}.admin-table tr:last-child td{border-bottom:none}.admin-table tr:hover td{background:#ffffff03}.badge-id{border:1px solid var(--border-color);color:var(--text-secondary);background:#ffffff0d;border-radius:4px;padding:2px 6px;font-family:monospace;font-size:11px}.list-selectable::-webkit-scrollbar{width:6px}.list-selectable::-webkit-scrollbar-track{background:0 0}.list-selectable::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:3px}.list-selectable::-webkit-scrollbar-thumb:hover{background:var(--border-color-hover)}.lang-selector{border:1px solid var(--border-color);color:var(--text-primary);cursor:pointer;font-size:13px;font-weight:500;font-family:var(--font-sans);background:#ffffff0d;border-radius:6px;outline:none;padding:6px 10px;transition:all .25s cubic-bezier(.4,0,.2,1)}.lang-selector:hover{border-color:var(--border-color-hover);background:#ffffff14}.lang-selector option{color:var(--text-primary);background:#090e17}:root{--safe-area-top:env(safe-area-inset-top,0px);--safe-area-bottom:env(safe-area-inset-bottom,0px);--safe-area-left:env(safe-area-inset-left,0px);--safe-area-right:env(safe-area-inset-right,0px)}html,body{overscroll-behavior-y:auto;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none}button,a,select,input{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button:active,.card-workspace:active,.card-report:active{transition:transform .15s cubic-bezier(.175,.885,.32,1.275);transform:scale(.97)}.navbar{padding-top:calc(16px + var(--safe-area-top));padding-left:calc(24px + var(--safe-area-left));padding-right:calc(24px + var(--safe-area-right))}.container-global{padding-bottom:calc(24px + var(--safe-area-bottom));padding-left:calc(24px + var(--safe-area-left));padding-right:calc(24px + var(--safe-area-right))}@media (width<=768px){.container-global{padding-left:calc(16px + var(--safe-area-left));padding-right:calc(16px + var(--safe-area-right));padding-top:14px;padding-bottom:calc(20px + var(--safe-area-bottom))}}.pwa-install-banner{bottom:max(16px, calc(16px + var(--safe-area-bottom)));box-sizing:border-box;-webkit-backdrop-filter:blur(24px)saturate(180%);z-index:99999;background:#0e1624f5;border:1px solid #eaa23966;border-radius:18px;flex-direction:column;gap:10px;width:auto;max-width:440px;margin:0 auto;padding:14px 44px 14px 14px;animation:.4s cubic-bezier(.16,1,.3,1) forwards pwaBannerSlideIn;display:flex;position:fixed;left:16px;right:16px;box-shadow:0 16px 40px #000000a6,0 0 24px #eaa2392e}@keyframes pwaBannerSlideIn{0%{opacity:0;transform:translateY(24px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.pwa-close-btn{width:26px;height:26px;color:var(--text-secondary);cursor:pointer;background:#ffffff14;border:1px solid #ffffff26;border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:13px;font-weight:700;line-height:1;transition:all .2s;display:flex;position:absolute;top:10px;right:10px}.pwa-close-btn:hover,.pwa-close-btn:active{color:#fff;background:#ef444440;border-color:#ef444480;transform:scale(1.08)}.pwa-install-body{align-items:flex-start;gap:12px;width:100%;display:flex}.pwa-install-icon{background:#ffffff0d;border:1px solid #ffffff1f;border-radius:11px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex;overflow:hidden;box-shadow:0 4px 10px #0000004d}.pwa-install-icon img{object-fit:cover;width:100%;height:100%}.pwa-install-content{flex:1;min-width:0}.pwa-install-content h4{color:var(--text-primary);white-space:normal;word-break:break-word;margin:0 0 3px;font-size:14px;font-weight:600;line-height:1.3}.pwa-install-content p{color:var(--text-secondary);white-space:normal;word-break:break-word;margin:0;font-size:12px;line-height:1.4}.pwa-ios-guide{word-break:break-word;display:inline}.pwa-share-svg{vertical-align:-2px;color:var(--color-primary);margin:0 2px;display:inline-block}.pwa-install-actions{justify-content:flex-end;align-items:center;gap:8px;width:100%;margin-top:2px;display:flex}.btn-pwa-primary{background:var(--btn-cta-gradient);color:#fff;cursor:pointer;white-space:nowrap;border:none;border-radius:8px;padding:8px 16px;font-size:12px;font-weight:600;transition:all .2s;box-shadow:0 4px 12px #eaa2394d}.btn-pwa-primary:hover{filter:brightness(1.1);transform:translateY(-1px)}.btn-pwa-dismiss-text{color:var(--text-primary);cursor:pointer;white-space:nowrap;background:#ffffff14;border:1px solid #ffffff26;border-radius:8px;padding:7px 12px;font-size:11.5px;font-weight:500;transition:all .2s}.btn-pwa-dismiss-text:hover{background:#ffffff26}@media (width<=480px){.pwa-install-banner{bottom:max(12px, calc(12px + var(--safe-area-bottom)));border-radius:16px;padding:12px 38px 12px 12px;left:12px;right:12px}.pwa-install-icon{width:38px;height:38px}.pwa-install-content h4{font-size:13px}.pwa-install-content p{font-size:11px}}@media (height<=500px){.pwa-install-banner{border-radius:12px;padding:8px 36px 8px 10px;bottom:8px}.pwa-close-btn{width:22px;height:22px;font-size:11px;top:6px;right:6px}.pwa-install-icon{width:34px;height:34px}.pwa-install-content h4{font-size:12.5px}.pwa-install-content p{font-size:10.5px}}.custom-select-popover{animation:.18s cubic-bezier(.16,1,.3,1) selectFadeIn}@keyframes selectFadeIn{0%{opacity:0;transform:translateY(-4px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.custom-select-popover::-webkit-scrollbar{width:6px}.custom-select-popover::-webkit-scrollbar-track{background:#0f172a66;border-radius:4px}.custom-select-popover::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:4px}.custom-select-popover::-webkit-scrollbar-thumb:hover{background:#60a5fa66}.workspace-account-badge{color:#93c5fd;white-space:nowrap;text-overflow:ellipsis;background:#1e3a8a59;border:1px solid #93c5fd40;border-radius:6px;align-items:center;gap:4px;max-width:180px;padding:2px 7px;font-size:10.5px;font-weight:500;line-height:1.3;display:inline-flex;overflow:hidden}.list-selectable-item.active .workspace-account-badge{color:#fff;background:#fff3;border-color:#fff6}.workspace-account-detail-card{background:#1e3a8a40;border:1px solid #93c5fd40;border-radius:10px;align-items:center;gap:10px;max-width:100%;padding:8px 14px;display:flex}.workspace-account-detail-icon{flex-shrink:0;font-size:18px}.workspace-account-detail-text{flex-direction:column;line-height:1.25;display:flex}.app-layout{background:var(--bg-dark);width:100%;min-height:100vh;display:flex}.main-content{flex-direction:column;flex:1;min-width:0;padding:24px;transition:all .3s cubic-bezier(.16,1,.3,1);display:flex}.sidebar-desktop{-webkit-backdrop-filter:blur(20px);z-index:90;box-sizing:border-box;background:linear-gradient(#0b101cfa 0%,#0d1527f5 100%);border-right:1px solid #ffffff12;flex-direction:column;flex-shrink:0;align-self:flex-start;width:260px;height:100vh;max-height:100vh;padding:18px 12px;transition:width .3s cubic-bezier(.16,1,.3,1),padding .3s cubic-bezier(.16,1,.3,1);display:flex;position:sticky;top:0}.sidebar-desktop.is-collapsed{width:72px;padding:18px 10px}.sidebar-brand{border-bottom:1px solid #ffffff0f;justify-content:space-between;align-items:center;margin-bottom:16px;padding:2px 4px 14px;transition:all .25s;display:flex}.sidebar-desktop.is-collapsed .sidebar-brand{flex-direction:column;justify-content:center;align-items:center;gap:12px;padding-bottom:14px}.sidebar-brand-content{align-items:center;gap:10px;transition:all .2s;display:flex;overflow:hidden}.sidebar-desktop.is-collapsed .sidebar-brand-content{justify-content:center;gap:0;width:100%}.sidebar-logo{object-fit:contain;filter:drop-shadow(0 2px 4px #0006);flex-shrink:0;width:auto;height:25px;transition:all .25s}.sidebar-desktop.is-collapsed .sidebar-logo,.sidebar-logo.is-icon{object-fit:contain;filter:drop-shadow(0 2px 6px #0006);border-radius:0;width:32px;height:32px}.sidebar-title{letter-spacing:1.4px;color:#60a5fa;white-space:nowrap;background:#2563eb1f;border:1px solid #3b82f640;border-radius:6px;padding:3px 8px;font-size:10.5px;font-weight:700;box-shadow:0 0 10px #2563eb26}.sidebar-collapse-btn{color:#94a3b8;cursor:pointer;background:#ffffff0a;border:1px solid #ffffff14;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;transition:all .2s cubic-bezier(.16,1,.3,1);display:flex}.sidebar-desktop.is-collapsed .sidebar-collapse-btn{margin:0 auto}.sidebar-collapse-btn:hover{color:#fff;background:#ffffff1a;border-color:#ffffff29;transform:scale(1.05)}.collapse-icon{transition:transform .3s cubic-bezier(.16,1,.3,1)}.collapse-icon.rotated{transform:rotate(180deg)}.sidebar-user-capsule{background:#ffffff08;border:1px solid #ffffff0f;border-radius:12px;align-items:center;gap:12px;margin-bottom:16px;padding:8px 10px;transition:all .25s;display:flex;overflow:hidden}.sidebar-desktop.is-collapsed .sidebar-user-capsule{background:0 0;border:none;justify-content:center;width:44px;height:44px;margin:0 auto 16px;padding:0}.sidebar-avatar{color:#fff;background:linear-gradient(135deg,#2563eb,#1d4ed8);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;font-size:13.5px;font-weight:700;display:flex;box-shadow:0 2px 8px #2563eb4d,inset 0 1px #fff3}.sidebar-user-details{flex-direction:column;line-height:1.2;display:flex;overflow:hidden}.sidebar-user-name{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;overflow:hidden}.sidebar-role-tag{color:#60a5fa;white-space:nowrap;font-size:10.5px;font-weight:500}.sidebar-nav{flex-direction:column;flex:1;gap:16px;display:flex;overflow-y:auto}.sidebar-nav-section{flex-direction:column;gap:3px;display:flex}.sidebar-section-title{letter-spacing:1.2px;color:#475569;text-transform:uppercase;margin-bottom:4px;padding-left:8px;font-size:10px;font-weight:700}.sidebar-nav-item{color:#94a3b8;cursor:pointer;text-align:left;box-sizing:border-box;background:0 0;border:1px solid #0000;border-radius:10px;align-items:center;gap:12px;width:100%;height:40px;padding:0 12px;font-size:13.5px;font-weight:500;transition:all .2s cubic-bezier(.16,1,.3,1);display:flex;position:relative}.sidebar-desktop.is-collapsed .sidebar-nav-item{border-radius:12px;justify-content:center;width:44px;height:44px;margin:0 auto;padding:0}.sidebar-nav-item:hover{color:#f8fafc;background:#ffffff0d;border-color:#ffffff0d}.sidebar-nav-item.is-active{color:#fff;background:linear-gradient(135deg,#2563eb33 0%,#1d4ed81a 100%);border:1px solid #60a5fa4d;font-weight:600;box-shadow:0 4px 14px #2563eb24,inset 0 1px #ffffff0f}.sidebar-desktop.is-collapsed .sidebar-nav-item.is-active{background:linear-gradient(135deg,#2563eb4d 0%,#1d4ed82e 100%);border:1px solid #60a5fa66;box-shadow:0 0 16px #3b82f640,inset 0 1px #ffffff1a}.sidebar-nav-icon{flex-shrink:0;justify-content:center;align-items:center;transition:color .2s,transform .2s;display:flex}.sidebar-nav-item.is-active .sidebar-nav-icon{color:#60a5fa;transform:scale(1.05)}.active-indicator{background:#3b82f6;border-radius:0 3px 3px 0;width:3px;position:absolute;top:8px;bottom:8px;left:-1px;box-shadow:0 0 10px #3b82f6e6}.sidebar-desktop.is-collapsed .active-indicator{display:none!important}.sidebar-footer{border-top:1px solid #ffffff14;flex-direction:column;gap:10px;padding-top:14px;display:flex}.sidebar-logout-btn{color:#f87171;cursor:pointer;background:#ef44441f;border:1px solid #ef444440;border-radius:10px;justify-content:center;align-items:center;gap:10px;width:100%;padding:10px 12px;font-size:12.5px;font-weight:600;transition:all .2s;display:flex}.sidebar-desktop.is-collapsed .sidebar-logout-btn{border-radius:12px;width:44px;height:44px;margin:0 auto;padding:0}.sidebar-desktop.is-collapsed .sidebar-lang-wrapper,.sidebar-desktop.is-collapsed .sidebar-lang-wrapper .custom-dropdown{justify-content:center;width:100%;display:flex}.sidebar-desktop.is-collapsed .sidebar-lang-wrapper .custom-dropdown-btn{border-radius:12px;justify-content:center;width:44px;min-width:44px;height:44px;margin:0 auto;padding:0}.sidebar-desktop.is-collapsed .sidebar-lang-wrapper .custom-dropdown-btn span{display:none!important}.sidebar-desktop.is-collapsed .sidebar-lang-wrapper .custom-dropdown-menu{min-width:130px;left:50%;transform:translate(-50%)}.sidebar-logout-btn:hover{color:#fff;background:#ef444438}.workspace-account-detail-label{text-transform:uppercase;letter-spacing:.5px;color:#93c5fd;font-size:9.5px;font-weight:600}.workspace-account-detail-name{color:#fff;font-size:12.5px;font-weight:600}.workspace-account-detail-email{color:#cbd5e1;font-size:11px}.mobile-header{z-index:100;background:#0b101cf2;border-bottom:1px solid #ffffff14;justify-content:space-between;align-items:center;padding:12px 16px;display:none;position:sticky;top:0}.mobile-header-brand{align-items:center;gap:8px;display:flex}.mobile-brand-logo{width:auto;height:24px}.mobile-brand-title{letter-spacing:1px;color:var(--text-primary);font-size:13px;font-weight:700}.mobile-header-hamburger{color:var(--text-primary);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;display:flex}.mobile-drawer-backdrop{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:200;background:#000000a6;display:flex;position:fixed;inset:0}.mobile-drawer-content{box-sizing:border-box;background:#0f172a;border-right:1px solid #ffffff1a;flex-direction:column;gap:16px;width:280px;max-width:85vw;height:100%;padding:20px;display:flex}.mobile-drawer-header{border-bottom:1px solid #ffffff14;justify-content:space-between;align-items:center;padding-bottom:12px;display:flex}.mobile-brand-wrapper{align-items:center;gap:8px;display:flex}.mobile-drawer-close{color:#94a3b8;cursor:pointer;background:0 0;border:none}.mobile-drawer-user{background:#ffffff0a;border-radius:10px;align-items:center;gap:10px;padding:10px;display:flex}.mobile-drawer-nav{flex-direction:column;flex:1;gap:6px;display:flex;overflow-y:auto}.mobile-nav-item{color:#cbd5e1;cursor:pointer;text-align:left;background:0 0;border:none;border-radius:10px;align-items:center;gap:12px;width:100%;padding:12px;font-size:13.5px;font-weight:500;display:flex}.mobile-nav-item.is-active{color:#fff;background:linear-gradient(135deg,#2563eb,#1d4ed8);font-weight:600}@media (width<=980px){.app-layout{width:100%;min-height:100vh;flex-direction:column!important}.sidebar-desktop{display:none!important}.mobile-header{box-sizing:border-box;z-index:100;width:100%;position:sticky;top:0;display:flex!important}.main-content{box-sizing:border-box;flex:1;width:100%;max-width:100%;padding:16px 12px;overflow-x:hidden}}@media (width<=640px){.grid-layouts,.modules-grid{grid-template-columns:1fr;gap:14px}.workspace-header h1,.modules-title{font-size:20px}.report-item{flex-direction:column;align-items:stretch;gap:12px}.report-item .btn{width:100%}}.modules-view-container{width:100%;max-width:1280px;margin:0 auto}.modules-view-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:28px;display:flex}.modules-title{color:var(--text-primary);margin-bottom:6px;font-size:24px;font-weight:800}.modules-subtitle{color:var(--text-secondary);font-size:13.5px}.role-capsule-card{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:14px;align-items:center;gap:12px;padding:10px 18px;display:flex}.role-capsule-card.role-admin{color:#34d399;background:#10b9811f;border:1px solid #10b9814d}.role-capsule-card.role-user{color:#60a5fa;background:#3b82f61f;border:1px solid #3b82f64d}.role-capsule-icon{justify-content:center;align-items:center;display:flex}.role-user-label{color:#94a3b8;font-size:11px;font-weight:500}.role-name{font-size:13px;font-weight:700}.modules-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px;display:grid}.module-card{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#0f172abf;border:1px solid #ffffff14;border-radius:16px;flex-direction:column;padding:22px;transition:all .25s cubic-bezier(.16,1,.3,1);display:flex}.module-card:hover:not(.is-disabled){border-color:#60a5fa66;transform:translateY(-4px);box-shadow:0 12px 24px #0000004d}.module-card.is-disabled{opacity:.65;filter:grayscale(.2)}.module-card-top{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.module-icon-box{border-radius:12px;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.icon-emerald{color:#34d399;background:#10b98126}.icon-blue{color:#60a5fa;background:#3b82f626}.icon-amber{color:#fbbf24;background:#f59e0b26}.module-badge{border-radius:20px;padding:4px 10px;font-size:11px;font-weight:600}.badge-emerald{color:#34d399;background:#10b98133;border:1px solid #10b9814d}.badge-blue{color:#60a5fa;background:#3b82f633;border:1px solid #3b82f64d}.badge-amber{color:#fbbf24;background:#f59e0b33;border:1px solid #f59e0b4d}.module-card-title{color:var(--text-primary);margin-bottom:8px;font-size:16px;font-weight:700}.module-card-desc{color:var(--text-secondary);flex:1;margin-bottom:20px;font-size:13px;line-height:1.5}.module-card-footer{border-top:1px solid #ffffff0f;justify-content:space-between;align-items:center;padding-top:14px;display:flex}.module-stat{color:#94a3b8;font-size:12px;font-weight:500}.module-btn{border-radius:8px;align-items:center;gap:6px;padding:8px 14px;font-size:12.5px;font-weight:600;display:inline-flex}.module-lock-tag{color:#f59e0b;align-items:center;gap:6px;font-size:12px;font-weight:600;display:inline-flex}
