:root{--gmm-navy: #1B2A6B;--gmm-navy-light: #243580;--gmm-royal: #2E4DA7;--gmm-royal-light: #3D5FBF;--gmm-red: #D42027;--gmm-red-light: #E8363D;--gmm-cream: #F8F6F1;--gmm-white: #FFFFFF;--gmm-gray-50: #F9FAFB;--gmm-gray-100: #F3F4F6;--gmm-gray-200: #E5E7EB;--gmm-gray-600: #4B5563;--gmm-gray-800: #1F2937;--lumo-primary-color: var(--gmm-royal);--lumo-primary-color-50pct: rgba(46, 77, 167, .5);--lumo-primary-color-10pct: rgba(46, 77, 167, .1);--lumo-primary-text-color: var(--gmm-royal);--lumo-error-color: var(--gmm-red);--lumo-error-text-color: var(--gmm-red);--lumo-base-color: var(--gmm-white);--lumo-shade-5pct: rgba(27, 42, 107, .04);--lumo-font-family: "Inter", "Segoe UI", system-ui, -apple-system, sans-serif;--lumo-border-radius-m: 8px;--lumo-border-radius-l: 12px}vaadin-app-layout::part(navbar){background:linear-gradient(135deg,var(--gmm-navy) 0%,var(--gmm-royal) 100%);box-shadow:0 2px 8px #1b2a6b4d;min-height:60px}vaadin-app-layout vaadin-drawer-toggle{color:var(--gmm-white)}vaadin-app-layout{--vaadin-app-layout-drawer-width: 220px}vaadin-app-layout::part(drawer){background:var(--gmm-white);border-right:1px solid var(--gmm-gray-200)}vaadin-side-nav{width:100%}vaadin-side-nav-item{--_focus-ring-color: var(--gmm-royal);border-radius:0;margin:0;padding:4px 16px 4px 24px;width:100%;transition:all .2s ease}vaadin-side-nav-item::part(item){gap:8px}vaadin-side-nav-item:hover{background:#3b49df14;color:var(--gmm-royal);--_item-text-color: var(--gmm-royal)}vaadin-side-nav-item[active]{background:var(--gmm-navy);color:var(--gmm-white);--_item-text-color: var(--gmm-white);font-weight:600;padding:6px 16px 6px 24px}.dashboard-card{background:var(--gmm-white);border-radius:12px;padding:24px;box-shadow:0 1px 3px #00000014,0 1px 2px #0000000f;border:1px solid var(--gmm-gray-200);transition:transform .2s ease,box-shadow .2s ease;min-width:160px;text-align:center}.dashboard-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #1b2a6b26}.dashboard-card .card-value{font-size:2.2rem;font-weight:700;color:var(--gmm-navy);line-height:1;margin-bottom:4px}.dashboard-card .card-label{font-size:.85rem;color:var(--gmm-gray-600);font-weight:500;text-transform:uppercase;letter-spacing:.5px}.dashboard-card.card-primary{background:linear-gradient(135deg,var(--gmm-navy) 0%,var(--gmm-royal) 100%);border:none}.dashboard-card.card-primary .card-value,.dashboard-card.card-primary .card-label{color:var(--gmm-white)}.dashboard-card.card-accent{border-top:3px solid var(--gmm-red)}.dashboard-card.card-blue{border-top:3px solid var(--gmm-royal)}.section-title{color:var(--gmm-navy);font-weight:700;font-size:1.1rem;margin-top:24px;margin-bottom:12px;padding-bottom:8px;border-bottom:2px solid var(--gmm-red);display:inline-block}vaadin-grid{border-radius:8px;overflow:hidden;border:1px solid var(--gmm-gray-200)}vaadin-grid::part(header-cell){background:var(--gmm-navy);color:var(--gmm-white);font-weight:600;font-size:.85rem;text-transform:uppercase;letter-spacing:.5px}vaadin-grid::part(row):hover{background:#2e4da70f}vaadin-button[theme~=primary]{background:linear-gradient(135deg,var(--gmm-royal) 0%,var(--gmm-navy) 100%);border-radius:8px;font-weight:600;letter-spacing:.3px;box-shadow:0 2px 4px #1b2a6b4d;transition:all .2s ease}vaadin-button[theme~=primary]:hover{box-shadow:0 4px 8px #1b2a6b66;transform:translateY(-1px)}vaadin-button[theme~=error]{background:var(--gmm-red);color:var(--gmm-white)}.auth-page{min-height:100vh;background:linear-gradient(135deg,var(--gmm-navy) 0%,#0f1a45 50%,var(--gmm-navy) 100%);display:flex;align-items:center;justify-content:center}.auth-card{background:var(--gmm-white);border-radius:16px;padding:48px;box-shadow:0 20px 60px #0000004d;width:100%;max-width:400px;text-align:center}.auth-card .auth-logo{width:100px;height:100px;object-fit:contain;margin-bottom:8px}.auth-card .auth-title{color:var(--gmm-navy);font-size:1.5rem;font-weight:700;margin:0 0 4px}.auth-card .auth-subtitle{color:var(--gmm-gray-600);font-size:.9rem;margin:0 0 8px}.auth-card vaadin-login-form{width:100%;margin-top:0}.auth-card vaadin-login-form-wrapper{width:100%;padding:0;margin-top:0}.auth-card vaadin-text-field,.auth-card vaadin-password-field,.auth-card vaadin-email-field{width:100%;--vaadin-input-field-height: 48px;font-size:1rem}.auth-card .auth-btn{width:100%;margin-top:16px;height:44px;font-size:1rem}.auth-card .auth-link{color:var(--gmm-royal);font-size:.875rem;cursor:pointer;text-decoration:none;font-weight:500}.auth-card .auth-link:hover{color:var(--gmm-navy);text-decoration:underline}.auth-card .auth-divider{margin:20px 0;border:none;border-top:1px solid var(--gmm-gray-200)}.auth-error{background:#d4202714;color:var(--gmm-red);padding:10px 16px;border-radius:8px;font-size:.875rem;margin-bottom:16px;border-left:3px solid var(--gmm-red)}vaadin-form-layout{background:var(--gmm-white);border-radius:12px;padding:24px;box-shadow:0 1px 3px #00000014;border:1px solid var(--gmm-gray-200)}.view-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.view-title{color:var(--gmm-navy);font-size:1.5rem;font-weight:700;margin:0}.toolbar{background:var(--gmm-white);border-radius:12px;padding:16px;box-shadow:0 1px 3px #0000000f;border:1px solid var(--gmm-gray-200);margin-bottom:16px}.sidebar-brand{display:flex;flex-direction:column;align-items:center;padding:20px 0 16px;border-bottom:1px solid var(--gmm-gray-200);margin:0 0 8px;width:100%}.sidebar-brand img{width:64px;height:64px;object-fit:contain;margin-bottom:8px}.sidebar-brand .brand-name{color:var(--gmm-navy);font-size:.8rem;font-weight:700;text-align:center;line-height:1.3;text-transform:uppercase;letter-spacing:.5px}.user-menu{display:flex;align-items:center;gap:8px;color:var(--gmm-white);font-size:.9rem;margin-left:auto;padding-right:8px}.user-menu .user-avatar{width:36px;height:36px;border-radius:50%;background:#fff3;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.85rem;color:var(--gmm-white)}.user-menu vaadin-button{color:var(--gmm-white);--lumo-contrast-5pct: rgba(255, 255, 255, .1)}.analytics-view{max-width:1200px}.chart-container{background:var(--gmm-white);border-radius:12px;padding:24px;box-shadow:0 1px 3px #00000014,0 1px 2px #0000000f;border:1px solid var(--gmm-gray-200);margin-bottom:8px}.chart-title{display:block;color:var(--gmm-navy);font-weight:700;font-size:1rem;margin-bottom:16px;padding-bottom:8px;border-bottom:2px solid var(--gmm-red)}.chart-empty{display:block;color:var(--gmm-gray-600);font-size:.9rem;text-align:center;padding:24px}.bar-chart{display:flex;flex-direction:column;gap:8px}.bar-row{display:flex;align-items:center;gap:12px}.bar-label{min-width:100px;font-size:.95rem;color:var(--gmm-gray-800);font-weight:500;text-align:right;flex-shrink:0}.bar-track{flex:1;background:var(--gmm-gray-100);border-radius:6px;height:36px;overflow:hidden}.bar-fill{height:100%;border-radius:6px;transition:width .6s ease;min-width:4px}.bar-value{min-width:40px;font-size:.85rem;font-weight:700;color:var(--gmm-navy)}.pie-chart-wrapper{display:flex;align-items:center;gap:24px;flex-wrap:wrap;justify-content:center}.pie-circle-container{position:relative;width:240px;height:240px;flex-shrink:0}.pie-chart-circle{width:100%;height:100%;border-radius:50%;box-shadow:0 2px 8px #0000001a}.pie-center-label{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:var(--gmm-white);width:90px;height:90px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.4rem;color:var(--gmm-navy);box-shadow:0 1px 4px #0000001a}.pie-legend{display:flex;flex-direction:column;gap:8px}.pie-legend-item{display:flex;align-items:center;gap:8px;font-size:.95rem;color:var(--gmm-gray-800)}.pie-legend-swatch{width:14px;height:14px;border-radius:3px;flex-shrink:0}.line-chart-wrapper{overflow-x:auto;min-height:350px}.line-chart-svg{width:100%;max-width:100%;min-height:350px;height:auto;display:block;margin:0 auto}.data-line{stroke-linejoin:round;stroke-linecap:round}.data-point{transition:r .2s ease}.data-point:hover{r:6}.rate-good{color:#059669;font-weight:700}.rate-warn{color:#d97706;font-weight:700}.rate-bad{color:var(--gmm-red);font-weight:700}.filter-bar{flex-wrap:wrap;gap:12px;align-items:flex-end}.filter-bar vaadin-text-field,.filter-bar vaadin-combo-box{flex:1 1 180px;min-width:0}.filter-bar vaadin-text-field{flex:2 1 220px}@media(max-width:900px){.member-list-view,.visitor-list-view,.user-list-view{padding:12px!important}.view-title{font-size:1.25rem}.filter-bar{gap:10px}.filter-bar vaadin-text-field{flex:1 1 100%}.filter-bar vaadin-combo-box{flex:1 1 calc(50% - 6px)}.toolbar{padding:12px}}@media(max-width:768px){.auth-card{margin:16px;padding:24px}.dashboard-card .card-value{font-size:1.8rem}.bar-label{min-width:70px;font-size:.75rem}.pie-circle-container{width:180px;height:180px}.pie-center-label{width:55px;height:55px;font-size:1rem}.chart-container{padding:16px}.view-header{gap:8px}.view-header vaadin-button{font-size:.8rem;padding:0 10px}}@media(max-width:600px){.member-list-view,.visitor-list-view,.user-list-view{padding:8px!important}.view-header{flex-direction:column;align-items:stretch!important;gap:10px}.view-header vaadin-button{width:100%;font-size:.85rem;padding:0 12px}.toolbar{padding:10px;margin-bottom:10px}.filter-bar{flex-direction:column;gap:8px}.filter-bar vaadin-text-field,.filter-bar vaadin-combo-box{flex:none;width:100%!important}vaadin-grid::part(header-cell){font-size:.75rem;letter-spacing:0;padding:8px}vaadin-grid::part(cell){font-size:.8rem;padding:8px}.user-form-dialog{width:100vw!important;max-width:100vw!important}.pagination vaadin-button{font-size:.8rem}}
