@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap";:root{--primary-color: #86B300;--primary-gradient: linear-gradient(135deg, #86B300 0%, #6e9400 100%);--secondary-color: #334155;--bg-color: #F8FAFC;--secondary-bg: #f8fafc;--text-main: #1e293b;--text-muted: #64748b;--border-color: #e2e8f0;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .05), 0 2px 4px -1px rgba(0, 0, 0, .03);--shadow-soft: 0 10px 15px -3px rgba(0, 0, 0, .03), 0 4px 6px -2px rgba(0, 0, 0, .02);--glass-bg: rgba(255, 255, 255, .8);--sidebar-bg: #ffffff;font-family:Inter,-apple-system,sans-serif;scrollbar-gutter:stable}html{overflow-y:scroll}body{font-family:Inter,sans-serif;color:var(--text-main);background-color:var(--bg-color);margin:0;-webkit-font-smoothing:antialiased}h1,h2,h3,h4,h5,h6{color:#0f172a;font-weight:700;letter-spacing:-.02em}.module-container{display:flex;flex-direction:column;width:100%;height:calc(100vh + -0px);gap:0;transition:all .3s ease;overflow:hidden;background-color:var(--secondary-bg)}.module-main{flex:1;padding:24px;overflow-y:auto;width:100%;display:flex;flex-direction:column}.module-container.with-sidebar{flex-direction:column}.module-sidebar{width:100%;height:50vh;min-height:400px;background:#fff;border-left:none;border-top:1px solid #e2e8f0;display:flex;flex-direction:column;box-shadow:0 -4px 12px #0000000d;animation:slideInRight .3s ease-out;z-index:10}@keyframes slideInUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0006;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;animation:fadeIn .2s ease-out}.modal{width:100%;max-width:550px;background:#fff;border-radius:var(--radius-lg);box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;animation:slideInUp .3s ease-out;max-height:90vh;overflow-y:auto;border:1px solid #e2e8f0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideInRight{0%{transform:translate(100%)}to{transform:translate(0)}}@media (max-width: 1024px){.module-container.with-sidebar{flex-direction:column}.module-sidebar{width:100%;height:50vh;border-left:none;border-top:1px solid #e2e8f0}}.sidebar{position:fixed;left:0;top:0;bottom:0;width:220px;background:#fff;display:flex;flex-direction:column;border-right:1px solid #e2e8f0;z-index:100;transition:transform .3s cubic-bezier(.4,0,.2,1)}.sidebar-header{padding:calc(24px + env(safe-area-inset-top,0px)) 24px 24px 24px;border-bottom:1px solid #f1f5f9;display:flex;flex-direction:row;justify-content:space-between;align-items:center;gap:12px}.sidebar-logo{max-width:160px;height:auto}.mobile-close-button{background:transparent;border:none;color:var(--text-main);font-size:24px;cursor:pointer;padding:8px;display:flex;align-items:center;justify-content:center}.sidebar-title{font-size:24px;font-weight:700;color:var(--text-main);margin-bottom:4px}.sidebar-subtitle{font-size:13px;color:var(--text-muted);text-align:center}.sidebar-nav{flex:1;padding:24px 16px;overflow-y:auto}.menu-item{display:flex;align-items:center;gap:12px;width:100%;padding:8px 12px;border:none;background:transparent;color:var(--text-muted);font-size:14px;font-weight:500;letter-spacing:-.01em;text-align:left;cursor:pointer;border-radius:var(--radius-sm);transition:all .15s ease;margin-bottom:2px;position:relative;min-height:44px}.menu-item:hover:not(.disabled){background-color:#f1f5f9;color:var(--text-main)}.menu-item.active{background-color:#f8fafc;color:var(--primary-color);font-weight:700}.menu-item.active:before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:3px;background-color:var(--primary-color);border-radius:0 4px 4px 0}.menu-item.disabled{opacity:.5;cursor:not-allowed}.menu-icon{font-size:20px;width:24px;display:flex;align-items:center;justify-content:center}.menu-label{flex:1}.coming-soon{font-size:10px;padding:2px 6px;background-color:#e2e8f0;color:var(--text-muted);border-radius:4px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.sidebar-footer{padding:16px;border-top:1px solid #f1f5f9}.user-menu-container{position:relative;margin-bottom:12px}.user-menu-button{width:100%;background:#fff;border:1px solid #e2e8f0;border-radius:var(--radius-md);padding:12px;display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;transition:all .2s ease}.user-menu-button:hover{background:#f8fafc;border-color:#cbd5e1}.user-info{display:flex;align-items:center;gap:12px;flex:1;min-width:0}.user-icon{font-size:24px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:#f1f5f9;border-radius:50%;flex-shrink:0}.user-details{display:flex;flex-direction:column;align-items:flex-start;gap:2px;flex:1;min-width:0}.user-name{font-size:14px;font-weight:600;color:var(--text-main);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:100%}.user-role{font-size:11px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:100%}.menu-arrow{font-size:10px;color:var(--text-muted);display:flex;align-items:center;justify-content:center;flex-shrink:0}.user-dropdown{position:absolute;bottom:100%;left:0;right:0;margin-bottom:8px;background:#fff;border:1px solid #e2e8f0;border-radius:var(--radius-md);overflow:hidden;box-shadow:0 -4px 12px #0000001a}.dropdown-info{padding:12px 16px;display:flex;flex-direction:column;gap:4px}.dropdown-info-label{font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;font-weight:600}.dropdown-info-value{font-size:13px;color:var(--text-main);font-weight:500}.dropdown-divider{height:1px;background:#f1f5f9}.dropdown-item{width:100%;background:transparent;border:none;padding:12px 16px;display:flex;align-items:center;gap:12px;color:var(--text-main);font-size:14px;font-weight:500;cursor:pointer;transition:background-color .2s ease;text-align:left}.dropdown-item:hover{background:#f8fafc;color:var(--primary-color)}.dropdown-item.danger{color:#ef4444}.dropdown-item.danger:hover{background:#fef2f2;color:#dc2626}.dropdown-item span{font-size:16px}.version{font-size:12px;color:var(--text-muted);text-align:center}.sidebar-overlay{display:none}@media (max-width: 768px){.sidebar{position:fixed;left:-280px;transition:left .3s ease}.sidebar.mobile-open{left:0}.sidebar-overlay{display:block;position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;z-index:99}}.settings-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a99;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:24px}.card.settings-card{max-width:600px;width:100%;max-height:90vh;overflow-y:auto!important;background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-soft)}.menu-group{margin-bottom:8px}.menu-group-header{display:flex;align-items:center;justify-content:space-between;width:100%;padding:10px 16px;background:transparent;border:none;color:var(--text-muted);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;cursor:pointer;transition:all .2s ease;border-radius:var(--radius-md)}.menu-group-header:hover{background:#f1f5f9;color:var(--primary-color)}.menu-group-arrow{font-size:10px;transition:transform .2s ease}.menu-group-arrow.collapsed{transform:rotate(-90deg)}.menu-group-content{overflow:hidden;transition:max-height .3s ease-out,opacity .3s ease-out}.menu-group-content.collapsed{max-height:0;opacity:0;pointer-events:none}.menu-group-content.expanded{max-height:500px;opacity:1}.menu-group-content .menu-item{padding-left:24px}.measurement-input-field::placeholder{color:#94a3b8;opacity:1}.measurement-input-field::-webkit-inner-spin-button,.measurement-input-field::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.measurement-input-field{-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.auth-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#1a2840,#0f1824);padding:20px}.auth-card{background:#fff;border-radius:16px;padding:48px;max-width:440px;width:100%;box-shadow:0 20px 60px #0000004d;border:1px solid #cbd5e1}.auth-logo-container{display:flex;justify-content:center;margin-bottom:32px}.auth-logo{max-width:280px;height:auto}.auth-form{width:100%}.auth-form-modal{padding:0 24px 24px}.modal-header{padding:24px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #f1f5f9;margin-bottom:24px}.modal-header h2{margin:0;font-size:1.5rem;font-weight:700;color:#1e293b}.auth-title{font-size:28px;font-weight:700;color:#1e293b;margin-bottom:8px;text-align:center}.auth-subtitle{font-size:15px;color:#64748b;text-align:center;margin-bottom:32px}.form-group{margin-bottom:20px}.form-group label{display:block;margin-bottom:8px;font-weight:500;color:#1e293b;font-size:14px}.form-group input{width:100%;padding:12px;border:1px solid #e2e8f0;border-radius:8px;font-size:15px;color:#1e293b;transition:border-color .2s ease,box-shadow .2s ease}.form-group input:focus{outline:none;border-color:#0ea5e9;box-shadow:0 0 0 3px #0ea5e91a}.auth-error{background-color:#fef2f2;border:1px solid #fecaca;color:#dc2626;padding:12px 16px;border-radius:8px;font-size:14px;margin-bottom:20px}.auth-success{background-color:#f0fdf4;border:1px solid #bbf7d0;color:#16a34a;padding:20px;border-radius:8px;font-size:14px;text-align:center}.auth-success h2{font-size:20px;font-weight:600;color:#16a34a;margin-bottom:12px}.auth-success p{color:#15803d;line-height:1.6;margin-bottom:20px}.btn-auth-primary{width:100%;background-color:#ed8844;color:#fff;border:none;padding:14px 24px;border-radius:8px;font-size:15px;font-weight:600;cursor:pointer;transition:background-color .2s ease;margin-top:8px}.btn-auth-primary:hover:not(:disabled){background-color:#d97735}.btn-auth-primary:disabled{background-color:#94a3b8;cursor:not-allowed}.auth-links{display:flex;flex-direction:column;gap:12px;margin-top:24px;padding-top:24px;border-top:1px solid #e2e8f0}.link-button{background:none;border:none;color:#64748b;font-size:14px;cursor:pointer;text-align:center;transition:color .2s ease;padding:4px}.link-button:hover{color:#ed8844}.link-button strong{color:#ed8844;font-weight:600}.no-access-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#f59e0b,#dc2626);padding:20px}.no-access-card{background:#fff;border-radius:16px;padding:48px;max-width:500px;width:100%;text-align:center;box-shadow:0 20px 60px #0000004d}.no-access-icon{font-size:64px;margin-bottom:24px}.no-access-card h2{font-size:24px;font-weight:700;color:#1e293b;margin-bottom:12px}.no-access-card p{font-size:16px;color:#64748b;line-height:1.6;margin-bottom:24px}.no-access-card .btn-auth-primary{background-color:#dc2626}.no-access-card .btn-auth-primary:hover:not(:disabled){background-color:#b91c1c}@media (max-width: 768px){.auth-card,.no-access-card{padding:36px 28px}.auth-logo{max-width:240px}.form-group input{font-size:16px;padding:12px}.btn-auth-primary{padding:14px 24px;font-size:16px;touch-action:manipulation}}@media (max-width: 480px){.auth-container,.no-access-container{padding:16px}.auth-card,.no-access-card{padding:28px 20px;border-radius:12px}.auth-logo{max-width:200px}.auth-logo-container{margin-bottom:24px}.auth-title{font-size:22px}.auth-subtitle{font-size:14px}.no-access-icon{font-size:48px}.no-access-card h2{font-size:20px}.no-access-card p{font-size:15px}}.notification{position:fixed;bottom:32px;left:50%;transform:translate(-50%);padding:16px 20px;border-radius:20px;background:#ffffffe6;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a,0 0 0 1px #0000000d;display:flex;align-items:center;gap:16px;z-index:9999;animation:notification-in .4s cubic-bezier(.16,1,.3,1);min-width:320px;max-width:520px;border:1px solid rgba(255,255,255,.5)}.notification-success{border-top:4px solid #86B300}.notification-success .notification-icon-wrap{color:#86b300;background:#f0fdf4}.notification-error{border-top:4px solid #ef4444}.notification-error .notification-icon-wrap{color:#ef4444;background:#fef2f2}.notification-info{border-top:4px solid #3b82f6}.notification-info .notification-icon-wrap{color:#3b82f6;background:#eff6ff}.notification-icon-wrap{width:40px;height:40px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:inset 0 0 0 1px #0000000d}.notification-message{flex:1;font-size:15px;font-weight:700;color:#0f172a;line-height:1.5;letter-spacing:-.01em}.notification-close{background:#f8fafc;border:1px solid #e2e8f0;cursor:pointer;color:#94a3b8;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:8px;transition:all .2s;flex-shrink:0}.notification-close:hover{color:#1e293b;background:#f1f5f9;transform:scale(1.05)}@keyframes notification-in{0%{bottom:0;opacity:0;transform:translate(-50%) translateY(20px) scale(.9)}to{bottom:32px;opacity:1;transform:translate(-50%) translateY(0) scale(1)}}.no-access-module{padding:2rem;max-width:800px;margin:0 auto}.no-access-header h1{font-size:1.875rem;font-weight:700;color:#1e293b;margin-bottom:2rem}.no-access-content{display:flex;justify-content:center}.info-card{background:#fff;padding:2.5rem;border-radius:12px;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;width:100%;border:1px solid #e2e8f0}.info-icon{font-size:3rem;margin-bottom:1.5rem;text-align:center}.info-card h2{font-size:1.5rem;color:#0f172a;margin-bottom:1rem;text-align:center}.info-card p{color:#64748b;line-height:1.6;margin-bottom:2rem;text-align:center}.account-details{background:#f8fafc;padding:1.5rem;border-radius:8px;margin-bottom:2.5rem;border:1px solid #f1f5f9}.detail-item{display:flex;justify-content:space-between;padding:.75rem 0;border-bottom:1px solid #e2e8f0}.detail-item:last-child{border-bottom:none}.detail-label{font-weight:600;color:#475569}.detail-value{color:#1e293b}.status-pending{color:#f59e0b;font-weight:600}.contact-box{background:#eff6ff;padding:1.5rem;border-radius:8px;border-left:4px solid #3b82f6}.contact-box h3{color:#1e40af;font-size:1.125rem;margin-bottom:.75rem}.contact-box p{text-align:left;margin-bottom:1rem;color:#1e3a8a;font-size:.95rem}.contact-info{font-weight:600;margin-bottom:0!important}.contact-info a{color:#2563eb;text-decoration:none}.contact-info a:hover{text-decoration:underline}*{margin:0;padding:0;box-sizing:border-box}html{height:100%;overflow-x:hidden;-webkit-text-size-adjust:100%}body{font-family:Inter,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--bg-color);overflow-x:hidden;height:100%;position:relative;overscroll-behavior:none;-webkit-tap-highlight-color:transparent;touch-action:pan-x pan-y}#root{height:100%}.app{display:flex;min-height:100vh;background-color:var(--bg-color);overflow-x:hidden;width:100%;max-width:100vw}.main-content{flex:1;margin-left:220px;padding:40px;transition:margin-left .3s ease;overflow-x:hidden;width:100%;max-width:calc(100vw - 220px)}.module-placeholder{background:#fff;border-radius:12px;padding:48px;text-align:center;color:#64748b;font-size:18px;box-shadow:0 1px 3px #0000001a}.loading-screen{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;background-color:#f5f7fa;gap:20px}.loading-spinner{width:48px;height:48px;border:4px solid #e2e8f0;border-top-color:#0ea5e9;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-screen p{color:#64748b;font-size:16px;font-weight:500}.mobile-menu-button{display:none;position:fixed;top:calc(1rem + env(safe-area-inset-top,0px));left:1rem;z-index:1001;width:3rem;height:3rem;background:#1e293b;border:none;border-radius:8px;flex-direction:column;align-items:center;justify-content:center;gap:.375rem;cursor:pointer;box-shadow:0 2px 8px #0003;transition:background-color .2s}.mobile-menu-button:hover{background:#334155}.mobile-menu-button span{width:1.5rem;height:2px;background:#fff;border-radius:2px;transition:all .3s}@media (max-width: 768px){.mobile-menu-button{display:flex}.main-content{margin-left:0;padding:calc(4.5rem + env(safe-area-inset-top,0px)) 1rem 1rem 1rem;max-width:100vw}}@media (max-width: 480px){.main-content{padding:calc(4rem + env(safe-area-inset-top,0px)) .75rem .75rem .75rem}.mobile-menu-button{top:calc(.75rem + env(safe-area-inset-top,0px));left:.75rem;width:2.75rem;height:2.75rem}}
