@import url(https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap);:root{--color-primary:#036;--color-primary-light:#004080;--color-primary-dark:#024;--color-secondary:#06c;--color-success:#2e7d32;--color-error:#c62828;--color-warning:#f57c00;--color-info:#0288d1;--color-background:#f8f9fa;--color-surface:#fff;--color-border:#e0e0e0;--color-text-primary:#212121;--color-text-secondary:#666;--color-text-disabled:#9e9e9e;--spacing-xs:4px;--spacing-sm:8px;--spacing-md:16px;--spacing-lg:24px;--spacing-xl:32px;--spacing-xxl:48px;--font-family:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto",sans-serif;--font-size-xs:12px;--font-size-sm:14px;--font-size-base:16px;--font-size-lg:18px;--font-size-xl:20px;--font-size-2xl:24px;--font-size-3xl:32px;--shadow-sm:0 1px 3px #00000014;--shadow-md:0 4px 6px #0000001a;--shadow-lg:0 10px 20px #0000001f;--shadow-xl:0 20px 40px #00000026;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--transition-fast:150ms ease;--transition-base:250ms ease;--transition-slow:350ms ease}*{box-sizing:border-box}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f8f9fa;background-color:var(--color-background);color:#212121;color:var(--color-text-primary);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-family:var(--font-family);font-size:16px;font-size:var(--font-size-base);line-height:1.6;margin:0;padding:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}::-webkit-scrollbar{height:10px;width:10px}::-webkit-scrollbar-track{background:#f8f9fa;background:var(--color-background)}::-webkit-scrollbar-thumb{background:#e0e0e0;background:var(--color-border);border-radius:4px;border-radius:var(--radius-sm)}::-webkit-scrollbar-thumb:hover{background:#9e9e9e;background:var(--color-text-disabled)}.loading-spinner-container{align-items:center;display:flex;flex-direction:column;gap:1rem;justify-content:center;min-height:60vh}.loading-spinner{animation:spin 1s linear infinite;border:4px solid #f3f3f3;border-radius:50%;border-top-color:#1976d2;height:40px;width:40px}.loading-message{font-size:1rem;margin:0}@media (max-width:480px){.loading-spinner{height:32px;width:32px}.loading-message{font-size:.9rem}}.navbar{background:var(--color-primary);box-shadow:var(--shadow-md);color:#fff;position:-webkit-sticky;position:sticky;top:0;z-index:1000}.navbar-container{align-items:center;display:flex;justify-content:space-between;margin:0 auto;max-width:1400px;min-height:70px;padding:0 var(--spacing-lg)}.navbar-brand{align-items:center;display:flex;gap:var(--spacing-md)}.navbar-logo{height:50px;object-fit:contain;width:auto}.navbar-brand-text{display:flex;flex-direction:column;gap:2px}.navbar-title{color:#fff;font-size:var(--font-size-lg);font-weight:700;letter-spacing:-.3px;margin:0}.navbar-subtitle{color:#ffffffe6;font-size:var(--font-size-sm);font-weight:400;letter-spacing:.2px}.navbar-menu{align-items:center;display:flex;gap:var(--spacing-md)}.navbar-button{background:none;border:none;border-radius:var(--radius-sm);color:#fff;cursor:pointer;font-family:var(--font-family);font-size:var(--font-size-sm);font-weight:500;letter-spacing:.3px;padding:var(--spacing-sm) var(--spacing-md);text-decoration:none;transition:all var(--transition-base)}.navbar-button:hover{background:#ffffff26}.navbar-login-link{border:2px solid #ffffff4d;border-radius:var(--radius-md);color:#fff;font-size:var(--font-size-sm);font-weight:600;letter-spacing:.3px;padding:var(--spacing-sm) var(--spacing-lg);text-decoration:none;transition:all var(--transition-base)}.navbar-login-link:hover{background:#ffffff26;border-color:#ffffff80;transform:translateY(-1px)}.navbar-user{margin-left:var(--spacing-md);position:relative}.user-avatar{align-items:center;background:#fff3;border:2px solid #ffffff4d;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-family:var(--font-family);font-size:var(--font-size-sm);font-weight:600;height:42px;justify-content:center;letter-spacing:.5px;transition:all var(--transition-base);width:42px}.user-avatar:hover{background:#ffffff4d;border-color:#ffffff80;transform:scale(1.05)}.user-dropdown{animation:dropdown-appear .2s ease-out;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);min-width:240px;overflow:hidden;position:absolute;right:0;top:calc(100% + var(--spacing-sm));z-index:1000}@keyframes dropdown-appear{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.user-info{background:var(--color-background);padding:var(--spacing-md)}.user-name{color:var(--color-text-primary);font-size:var(--font-size-base);font-weight:600;margin-bottom:2px}.user-department,.user-email{color:var(--color-text-secondary);font-size:var(--font-size-sm);margin-top:var(--spacing-xs)}.user-department{font-weight:500}.dropdown-divider{background:var(--color-border);height:1px;margin:0}.dropdown-item{background:none;border:none;color:var(--color-text-primary);cursor:pointer;display:block;font-family:var(--font-family);font-size:var(--font-size-sm);font-weight:500;letter-spacing:.2px;padding:var(--spacing-md);text-align:left;text-decoration:none;transition:all var(--transition-fast);width:100%}.dropdown-item:hover{background:var(--color-background);color:var(--color-primary)}.dropdown-item.logout{color:var(--color-error)}.dropdown-item.logout:hover{background:#ffebee;color:var(--color-error)}@media (max-width:768px){.navbar-container{min-height:60px;padding:0 var(--spacing-md)}.navbar-logo{height:40px}.navbar-title{font-size:var(--font-size-base)}.navbar-button,.navbar-subtitle{font-size:var(--font-size-xs)}.navbar-button{padding:var(--spacing-xs) var(--spacing-sm)}.navbar-menu{gap:var(--spacing-sm)}.navbar-user{margin-left:var(--spacing-sm)}}@media (max-width:600px){.navbar-brand-text,.navbar-button{display:none}.user-dropdown{right:-10px}}.login-container{align-items:center;background:linear-gradient(135deg,var(--color-primary) 0,var(--color-primary-dark) 100%);display:flex;justify-content:center;min-height:100vh;padding:var(--spacing-lg)}.login-card{animation:slideUp .5s ease-out;background:var(--color-surface);border:1px solid #ffffff1a;border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);max-width:450px;padding:var(--spacing-xxl);width:100%}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.login-header{border-bottom:2px solid var(--color-border);margin-bottom:var(--spacing-xl);padding-bottom:var(--spacing-lg);text-align:center}.university-logo{margin-bottom:var(--spacing-md);width:100px}.login-title{color:var(--color-primary);font-size:var(--font-size-2xl);font-weight:700;letter-spacing:-.5px;margin:0;margin-bottom:var(--spacing-xs)}.login-description{color:var(--color-text-secondary);font-size:var(--font-size-base);font-weight:500;margin:0}.login-subtitle{color:var(--color-text-primary);font-size:var(--font-size-xl);font-weight:600;letter-spacing:-.3px;margin:0 0 var(--spacing-lg) 0;text-align:center}.login-form{display:flex;flex-direction:column;gap:var(--spacing-lg)}.password-input-container{align-items:center;display:flex;position:relative}.password-input-container .form-input{padding-right:3rem}.password-toggle-btn{align-items:center;background:none;border:none;border-radius:var(--radius-sm);color:var(--color-text-secondary);cursor:pointer;display:flex;font-size:var(--font-size-lg);justify-content:center;padding:var(--spacing-xs);position:absolute;right:var(--spacing-md);transition:all var(--transition-base)}.password-toggle-btn:hover{background-color:var(--color-background);color:var(--color-primary)}.password-toggle-btn:active{transform:scale(.95)}.alert{align-items:center}.login-btn{font-size:var(--font-size-base);margin-bottom:var(--spacing-md);margin-top:var(--spacing-md);padding:var(--spacing-md) var(--spacing-xl)}.login-footer{border-top:1px solid var(--color-border);margin-top:var(--spacing-lg);padding-top:var(--spacing-lg);text-align:center}.login-footer p{color:var(--color-text-secondary);font-size:var(--font-size-sm);margin:0}.link-btn{background:none;border:none;color:var(--color-primary);cursor:pointer;font-family:var(--font-family);font-size:inherit;font-weight:600;text-decoration:underline;transition:color var(--transition-base)}.link-btn:hover{color:var(--color-primary-light)}.link-btn:focus{border-radius:var(--radius-sm);outline:2px solid var(--color-primary);outline-offset:2px}.btn:disabled{position:relative}.btn:disabled:after{animation:spin 1s linear infinite;border:2px solid #0000;border-radius:50%;border-top-color:initial;content:"";height:16px;margin:auto;position:absolute;width:16px}@media (max-width:480px){.login-container{padding:var(--spacing-md)}.login-card{padding:var(--spacing-lg)}.university-logo{width:80px}.login-title{font-size:var(--font-size-xl)}.login-subtitle{font-size:var(--font-size-lg)}}@media (prefers-reduced-motion:reduce){.btn,.form-input,.login-card{animation:none;transition:none}}.btn:focus-visible,.form-input:focus-visible,.link-btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.alert-notification{animation:slideIn .3s ease-out;border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);max-width:500px;min-width:320px;padding:0;position:fixed;right:var(--spacing-lg);top:80px;z-index:1000}.alert-notification.success{background-color:#e8f5e9;border:1px solid var(--color-success);color:var(--color-success)}.alert-notification.error{background-color:#ffebee;border:1px solid var(--color-error);color:var(--color-error)}.alert-content{align-items:center;display:flex;gap:var(--spacing-md);padding:var(--spacing-md)}.alert-icon{flex-shrink:0;font-size:var(--font-size-xl)}.alert-message{flex:1 1;font-size:var(--font-size-sm);font-weight:500;line-height:1.5}.alert-close{align-items:center;background:none;border:none;border-radius:var(--radius-sm);cursor:pointer;display:flex;font-size:var(--font-size-xl);height:28px;justify-content:center;padding:0;transition:background-color var(--transition-base);width:28px}.alert-notification.success .alert-close:hover{background-color:#2e7d321a}.alert-notification.error .alert-close:hover{background-color:#c628281a}@keyframes slideIn{0%{opacity:0;transform:translateX(100%)}to{opacity:1;transform:translateX(0)}}.feedback-form-container{min-height:calc(100vh - 70px);padding:var(--spacing-xxl) 0}.form-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);margin:0 auto;max-width:900px;padding:var(--spacing-xxl)}.form-header{align-items:center;border-bottom:2px solid var(--color-border);display:flex;gap:var(--spacing-lg);margin-bottom:var(--spacing-xxl);padding-bottom:var(--spacing-lg)}.university-logo{flex-shrink:0;height:auto;object-fit:contain;width:80px}.form-header-text{flex:1 1}.form-header-text h1{color:var(--color-primary);font-size:var(--font-size-2xl);font-weight:700;letter-spacing:-.5px;margin:0 0 var(--spacing-xs) 0}.form-title{color:var(--color-text-primary);font-size:var(--font-size-lg);font-weight:600;margin:0 0 var(--spacing-xs) 0}.form-subtitle{color:var(--color-text-secondary);display:block;font-size:var(--font-size-sm);font-weight:400}.form-section{margin-bottom:var(--spacing-xxl)}.form-section h3{border-bottom:1px solid var(--color-border);color:var(--color-text-primary);font-size:var(--font-size-lg);font-weight:600;letter-spacing:-.2px;margin:0 0 var(--spacing-lg) 0;padding-bottom:var(--spacing-sm)}.form-row{grid-gap:var(--spacing-lg);gap:var(--spacing-lg)}.file-upload-area{background-color:var(--color-background);border:2px dashed var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-xl);position:relative;text-align:center;transition:all var(--transition-base)}.file-upload-area:hover{background-color:#00336605;border-color:var(--color-primary)}.file-upload-area.dragging{background-color:#00336614;border-color:var(--color-primary);border-width:3px;transform:scale(1.01)}.file-upload-btn{background-color:var(--color-primary);border:none;border-radius:var(--radius-md);box-shadow:var(--shadow-sm);color:#fff;cursor:pointer;display:inline-block;font-family:var(--font-family);font-size:var(--font-size-base);font-weight:600;margin-bottom:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-xl);text-decoration:none;transition:all var(--transition-base)}.file-upload-btn:hover{background-color:var(--color-primary-light);box-shadow:var(--shadow-md);transform:translateY(-1px)}.drag-drop-text{color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:500;margin:var(--spacing-md) 0 var(--spacing-xs) 0}.file-types-text{color:var(--color-text-disabled);font-size:var(--font-size-xs);font-style:italic;margin:0}.selected-files{margin-top:var(--spacing-md);text-align:left}.file-item{background-color:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-sm);justify-content:space-between;margin-bottom:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md)}.file-item,.remove-file-btn{align-items:center;display:flex}.remove-file-btn{background:none;border:none;border-radius:50%;color:var(--color-error);cursor:pointer;font-size:var(--font-size-lg);height:28px;justify-content:center;padding:var(--spacing-xs);transition:background-color var(--transition-base);width:28px}.remove-file-btn:hover{background-color:#ffebee}.submit-btn{border:none;border-radius:var(--radius-lg);cursor:pointer;font-size:var(--font-size-lg);font-weight:600;margin-top:var(--spacing-xl);padding:var(--spacing-md) var(--spacing-xl);transition:all var(--transition-base);width:100%}.submit-btn:disabled{cursor:not-allowed;opacity:.6}.submit-btn:not(:disabled):hover{transform:translateY(-2px)}.success-container{align-items:center;display:flex;justify-content:center;min-height:100vh;padding:var(--spacing-lg)}.success-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);max-width:500px;padding:var(--spacing-xxl);text-align:center;width:100%}.success-icon{align-items:center;background-color:var(--color-success);border-radius:50%;color:#fff;display:flex;font-size:var(--font-size-3xl);font-weight:700;height:80px;justify-content:center;margin:0 auto var(--spacing-lg);width:80px}.success-title{color:var(--color-success);font-size:var(--font-size-2xl);font-weight:700;margin:0 0 var(--spacing-md) 0}.success-message{color:var(--color-text-secondary);font-size:var(--font-size-base);line-height:1.6;margin-bottom:var(--spacing-xl)}.form-help{color:var(--color-success);display:block;font-size:var(--font-size-xs);font-style:italic;font-weight:500}@media (max-width:768px){.form-row{grid-template-columns:1fr}.form-card{padding:var(--spacing-lg)}.feedback-form-container{padding:var(--spacing-lg) 0}.university-logo{width:60px}.form-header{gap:var(--spacing-md)}}.dashboard-container{margin:0 auto;max-width:1200px;padding:20px}.welcome-section{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;margin-bottom:24px;padding:24px}.welcome-section h2{color:#1976d2;font-size:2rem;margin:0 0 8px}.welcome-section p{color:#666;font-size:1.1rem;margin:0}.stats-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin-bottom:24px}.stat-card{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;padding:20px;transition:transform .2s}.stat-card:hover{transform:translateY(-2px)}.stat-content{align-items:center;display:flex;justify-content:space-between}.stat-text{flex:1 1}.stat-title{color:#666;font-size:.9rem;letter-spacing:.5px;margin:0 0 8px;text-transform:uppercase}.stat-value{color:#333;font-size:2rem;font-weight:700;margin:0}.stat-icon{align-items:center;border-radius:50%;color:#fff;display:flex;font-size:1.5rem;height:50px;justify-content:center;width:50px}.content-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:2fr 1fr}@media (max-width:768px){.content-grid{grid-template-columns:1fr}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}}.content-card{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;padding:24px}.content-card h3{color:#333;font-size:1.25rem;margin:0 0 16px}.content-card p{color:#666;line-height:1.6;margin:0}.feedback-list-container{margin:0 auto;max-width:1400px;padding:20px}.feedback-list-paper{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;padding:24px}.feedback-list-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:24px}.feedback-list-title{color:#1976d2;font-size:24px;font-weight:600;margin:0}.refresh-button{background-color:#1976d2;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:10px 20px;transition:background-color .3s}.refresh-button:hover{background-color:#1565c0}.loading-message{color:#666;font-size:16px;padding:40px;text-align:center}.error-message{color:#f44336;padding:40px;text-align:center}.retry-button{background-color:#f44336;border:none;border-radius:6px;color:#fff;cursor:pointer;margin-top:16px;padding:10px 20px}.retry-button:hover{background-color:#d32f2f}.no-feedback-message{color:#666;padding:40px;text-align:center}.feedback-table-container{overflow-x:auto}.feedback-table{border-collapse:collapse;margin-top:16px;width:100%}.feedback-table th{background-color:#f5f5f5;border-bottom:2px solid #ddd;color:#333;font-weight:600;padding:12px 8px;text-align:left}.feedback-table td{border-bottom:1px solid #eee;padding:12px 8px;vertical-align:middle}.feedback-table tr:hover{background-color:#f9f9f9}.category-badge{background-color:#e3f2fd;color:#1976d2}.category-badge,.priority-badge,.status-badge{border-radius:12px;font-size:12px;font-weight:500;padding:4px 8px}.priority-badge,.status-badge{color:#fff;text-transform:uppercase}.subject-cell{cursor:help;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rating-display{color:#ffa726;font-size:16px}.date-cell{color:#666;font-size:14px;white-space:nowrap}.attachment-count{background-color:#f5f5f5;border-radius:12px;color:#666;display:inline-block;font-size:12px;padding:4px 8px}.details-button{background-color:#1976d2;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:12px;padding:6px 12px;transition:background-color .3s}.details-button:hover{background-color:#1565c0}.modal-overlay{background-color:#00000080;padding:20px}.modal-content{border-radius:8px;box-shadow:0 4px 20px #0000004d;max-height:90vh;max-width:800px;width:100%}.modal-header{align-items:center;border-bottom:1px solid #eee;display:flex;justify-content:space-between;padding:20px}.modal-header h2{color:#1976d2;font-size:20px;margin:0}.close-button{align-items:center;background:none;border:none;border-radius:4px;color:#666;cursor:pointer;display:flex;font-size:24px;height:30px;justify-content:center;padding:0;width:30px}.close-button:hover{background-color:#f5f5f5}.modal-body{padding:20px}.detail-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin-bottom:20px}.detail-item{display:flex;flex-direction:column;gap:4px}.detail-item label{color:#333;font-size:14px;font-weight:600}.detail-item span{color:#666}.detail-section{margin-bottom:20px}.detail-section label{color:#333;display:block;font-size:14px;font-weight:600;margin-bottom:8px}.detail-text{background-color:#f9f9f9;border:1px solid #eee;border-radius:4px;color:#333;line-height:1.5;margin:0;padding:12px}.admin-response{background-color:#e3f2fd;border-color:#bbdefb}.attachments-list{display:flex;flex-direction:column;gap:8px}.attachment-item{align-items:center;background-color:#f9f9f9;border:1px solid #eee;border-radius:4px;display:flex;justify-content:space-between;padding:12px}.attachment-info{align-items:center;display:flex;flex:1 1;gap:12px}.attachment-name{font-weight:500}.attachment-date,.attachment-size{color:#666;font-size:12px}.attachment-actions{display:flex;gap:8px}.view-button{align-items:center;background-color:#4caf50;border-radius:4px;color:#fff;display:inline-flex;font-size:12px;gap:4px;padding:6px 12px;text-decoration:none;transition:background-color .3s}.view-button:hover{background-color:#45a049;color:#fff;text-decoration:none}.download-button{align-items:center;border:none;border-radius:4px;cursor:pointer;display:inline-flex;font-size:12px;gap:4px;padding:6px 12px;transition:background-color .3s}.download-button:hover{background-color:#1976d2}@media (max-width:768px){.feedback-list-container{padding:10px}.feedback-list-header{flex-direction:column;gap:16px}.feedback-table-container{overflow-x:scroll}.feedback-table{min-width:800px}}.wizard-container{margin:0 auto;max-width:1200px;padding:2rem;position:relative}.wizard-progress{display:flex;justify-content:space-between;margin-bottom:3rem;position:relative}.wizard-progress:before{background:linear-gradient(90deg,#e0e0e0 0,#e0e0e0);content:"";height:3px;left:10%;position:absolute;right:10%;top:30px;z-index:0}.wizard-step{flex:1 1;flex-direction:column;position:relative;z-index:1}.step-number,.wizard-step{align-items:center;display:flex;transition:all .3s ease}.step-number{background:#f5f5f5;border:3px solid #e0e0e0;border-radius:50%;color:#999;font-size:1.5rem;font-weight:700;height:60px;justify-content:center;margin-bottom:.75rem;width:60px}.wizard-step.active .step-number{background:linear-gradient(135deg,#667eea,#764ba2);border-color:#667eea;box-shadow:0 4px 15px #667eea66;color:#fff;transform:scale(1.1)}.wizard-step.completed .step-number{background:linear-gradient(135deg,#11998e,#38ef7d);border-color:#11998e;color:#fff}.step-info{text-align:center}.step-title{color:#333;font-size:1rem;font-weight:600;margin-bottom:.25rem}.wizard-step.active .step-title{color:#667eea}.step-description{color:#666;font-size:.875rem}.wizard-breadcrumb{align-items:center;background:linear-gradient(135deg,#f5f7fa,#c3cfe2);border-radius:12px;box-shadow:0 2px 8px #0000000d;display:flex;font-size:1rem;gap:.5rem;margin-bottom:2rem;padding:1rem 1.5rem}.breadcrumb-item{color:#333;font-weight:500}.breadcrumb-separator{color:#999;font-size:1.25rem}.wizard-content{min-height:400px}.step-content h2{color:#333;font-size:1.75rem;font-weight:700;margin-bottom:2rem;text-align:center}.cards-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));margin-bottom:2rem}.location-card{background:#fff;border:2px solid #0000;border-radius:16px;box-shadow:0 4px 12px #00000014;cursor:pointer;overflow:hidden;padding:2rem;position:relative;transition:all .3s ease}.location-card:before{background:linear-gradient(90deg,#667eea,#764ba2);content:"";height:4px;left:0;position:absolute;right:0;top:0;transform:scaleX(0);transition:transform .3s ease}.location-card:hover{border-color:#667eea;box-shadow:0 8px 24px #0000001f;transform:translateY(-4px)}.location-card:hover:before{transform:scaleX(1)}.location-card.create-new{background:linear-gradient(135deg,#f5f7fa,#e8eef5);border:2px dashed #cbd5e0;cursor:default}.location-card.create-new:hover{border-color:#667eea;transform:none}.location-card.department:before{background:linear-gradient(90deg,#4facfe,#00f2fe)}.location-card.floor:before{background:linear-gradient(90deg,#43e97b,#38f9d7)}.card-icon{font-size:3rem;margin-bottom:1rem;text-align:center}.location-card h3{color:#333;font-size:1.25rem;font-weight:600;margin-bottom:.5rem;text-align:center}.card-meta{color:#666;font-size:.875rem;margin-bottom:1rem;text-align:center}.card-input{border:2px solid #e0e0e0;border-radius:8px;font-size:1rem;margin-bottom:1rem;padding:.75rem;transition:all .3s ease;width:100%}.card-input:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.card-button{background:#f5f5f5;border:none;border-radius:8px;cursor:pointer;padding:.75rem 1.5rem;transition:all .3s ease;width:100%}.card-button,.input-group label{color:#333;font-size:1rem;font-weight:600}.input-group label{display:block;margin-bottom:.75rem}.range-inputs{align-items:center;display:flex;gap:1rem}.range-input{border:2px solid #e0e0e0;border-radius:8px;flex:1 1;font-size:1.125rem;padding:.875rem;transition:all .3s ease}.range-input:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.range-separator{color:#999;font-size:1.5rem;font-weight:700}.input-hint{color:#666;font-size:.875rem;font-style:italic;margin-top:.5rem}.create-rooms-button{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:12px;box-shadow:0 4px 15px #667eea4d;color:#fff;cursor:pointer;font-size:1.125rem;font-weight:700;padding:1rem 2rem;transition:all .3s ease;width:100%}.create-rooms-button:hover{box-shadow:0 6px 20px #667eea66;transform:translateY(-2px)}.create-rooms-button:disabled{cursor:not-allowed;opacity:.6}.created-rooms-list{background:linear-gradient(135deg,#f0fff4,#e6fffa);border:2px solid #38ef7d;border-radius:16px;margin-bottom:2rem;padding:2rem}.created-rooms-list h3{color:#11998e;font-size:1.5rem;margin-bottom:1.5rem;text-align:center}.rooms-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));margin-bottom:1.5rem}.room-item{align-items:center;background:#fff;border-radius:8px;box-shadow:0 2px 6px #0000000d;display:flex;gap:.75rem;padding:1rem;transition:all .2s ease}.room-item:hover{box-shadow:0 4px 12px #0000001a;transform:translateX(4px)}.room-icon{font-size:1.5rem}.room-name{color:#333;flex:1 1;font-size:.875rem;font-weight:500}.room-qr{background:#f5f5f5;border-radius:4px;color:#666;font-size:.75rem;padding:.25rem .5rem}.bulk-actions{margin-bottom:2rem;text-align:center}.bulk-download-button{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:12px;box-shadow:0 4px 15px #667eea4d;color:#fff;cursor:pointer;font-size:1.125rem;font-weight:700;padding:1rem 2rem;transition:all .3s ease}.bulk-download-button:hover{box-shadow:0 6px 20px #667eea66;transform:translateY(-2px)}.qr-display-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));margin-bottom:2rem}.qr-display-card{background:#fff;border:2px solid #e0e0e0;border-radius:12px;box-shadow:0 4px 12px #00000014;padding:1.5rem;transition:all .3s ease}.qr-display-card:hover{border-color:#667eea;box-shadow:0 8px 20px #0000001f;transform:translateY(-4px)}.qr-card-header{margin-bottom:1rem;text-align:center}.qr-card-header h4{color:#333;font-size:1rem;font-weight:600;margin:0 0 .5rem}.qr-code-badge{background:linear-gradient(135deg,#f5f7fa,#e8eef5);border-radius:12px;color:#667eea;display:inline-block;font-family:monospace;font-size:.75rem;font-weight:600;padding:.25rem .75rem}.qr-canvas-container{align-items:center;background:#f9f9f9;border-radius:8px;display:flex;justify-content:center;margin-bottom:1rem;min-height:220px;padding:1rem}.qr-canvas-display{background:#fff;border:2px solid #e0e0e0;border-radius:8px;padding:8px}.qr-card-actions{display:flex;gap:.5rem}.qr-action-button{border:none;border-radius:8px;cursor:pointer;flex:1 1;font-size:.875rem;font-weight:600;padding:.75rem;transition:all .3s ease}.qr-action-button.download{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.qr-action-button.download:hover:not(:disabled){box-shadow:0 4px 12px #667eea4d;transform:translateY(-2px)}.qr-action-button.print{background:#fff;border:2px solid #667eea;color:#667eea}.qr-action-button.print:hover:not(:disabled){background:#667eea;color:#fff}.qr-action-button:disabled{cursor:not-allowed;opacity:.5}.success-actions{display:flex;gap:1rem;justify-content:center;margin-top:2rem}.back-button{background:#fff;border:2px solid #667eea;border-radius:8px;color:#667eea;cursor:pointer;font-size:1rem;font-weight:600;margin-top:2rem;padding:.75rem 1.5rem;transition:all .3s ease}.back-button:hover{background:#667eea;color:#fff}.empty-state{color:#666;font-size:1rem;padding:3rem 2rem;text-align:center}.wizard-loading{align-items:center;background:#fffffff2;bottom:0;display:flex;flex-direction:column;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.spinner{animation:spin 1s linear infinite;border:4px solid #f3f3f3;border-radius:50%;border-top-color:#667eea;height:60px;margin-bottom:1rem;width:60px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.wizard-loading p{color:#667eea;font-size:1.125rem;font-weight:600}@media (max-width:768px){.wizard-container{padding:1rem}.wizard-progress{flex-direction:column;gap:1rem}.wizard-progress:before{display:none}.wizard-step{flex-direction:row;justify-content:flex-start}.step-number{margin-bottom:0;margin-right:1rem}.step-info{text-align:left}.cards-grid{grid-template-columns:1fr}.range-inputs,.success-actions{flex-direction:column}.qr-display-grid,.rooms-grid{grid-template-columns:1fr}.qr-card-actions{flex-direction:column}}.qr-code-header{margin-bottom:40px;text-align:center}.qr-code-header h1{color:#1976d2;font-size:28px;margin-bottom:8px}.qr-code-header p{color:#666;font-size:16px}.custom-qr-section{background:#fff;border:1px solid #eee;border-radius:12px;box-shadow:0 4px 12px #0000001a;margin-bottom:30px;padding:25px}.custom-qr-section h2{color:#1976d2;font-size:20px;margin-bottom:20px}.custom-qr-form{align-items:center;display:flex;flex-wrap:wrap;gap:15px}.custom-location-input{border:2px solid #e0e0e0;border-radius:8px;flex:1 1;font-size:16px;min-width:300px;padding:12px 16px;transition:all .3s ease}.custom-location-input:focus{border-color:#1976d2;box-shadow:0 0 0 3px #1976d21a;outline:none}.custom-location-input::placeholder{color:#999}.add-location-button{background:linear-gradient(135deg,#1976d2,#1565c0);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:16px;font-weight:600;padding:12px 20px;transition:all .3s ease;white-space:nowrap}.add-location-button:hover:not(:disabled){background:linear-gradient(135deg,#1565c0,#0d47a1);box-shadow:0 4px 12px #1976d24d;transform:translateY(-2px)}.add-location-button:disabled{background:#ccc;box-shadow:none;cursor:not-allowed;transform:none}.qr-codes-grid{grid-gap:24px;display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));margin-bottom:40px}.qr-code-card{background:#fff;border:1px solid #eee;border-radius:12px;box-shadow:0 4px 12px #0000001a;padding:24px}.qr-code-info{position:relative}.qr-code-info h3{color:#1976d2;font-size:18px;margin:0 0 8px;padding-right:60px}.qr-code-id{color:#666;font-family:monospace;font-size:14px;margin:0 0 20px}.custom-badge{background:linear-gradient(135deg,#4caf50,#388e3c);border-radius:4px;font-size:11px;font-weight:600;letter-spacing:.5px;padding:4px 8px;position:absolute;right:0;top:0}.qr-code-image{margin-bottom:20px;text-align:center}.qr-image{max-width:200px}.qr-canvas,.qr-image{background:#fff;padding:8px}.qr-canvas,.qr-image,.qr-loading{border:2px solid #eee;border-radius:8px}.qr-loading{background:#f9f9f9;font-size:14px;width:200px}.qr-code-url{margin-bottom:16px}.qr-code-url label{color:#333;display:block;font-size:14px;font-weight:600;margin-bottom:8px}.url-display{display:flex;gap:8px}.url-input{background-color:#f9f9f9;border:1px solid #ddd;border-radius:4px;flex:1 1;font-family:monospace}.copy-button,.url-input{font-size:12px;padding:8px 12px}.copy-button{background-color:#4caf50;border:none;border-radius:4px;color:#fff;cursor:pointer;transition:background-color .3s;white-space:nowrap}.copy-button:hover{background-color:#45a049}.qr-code-actions{display:flex;flex-direction:column;gap:12px}.qr-url{align-items:center;background:#f8f9fa;border-radius:6px;display:flex;gap:8px;padding:8px}.qr-url strong{color:#333;font-size:14px;min-width:35px}.url-text{color:#666;flex:1 1;font-family:monospace;font-size:12px;word-break:break-all}.action-buttons{flex-wrap:wrap}.download-button,.print-button,.remove-button{border:none;border-radius:6px;cursor:pointer;flex:1 1;font-size:13px;font-weight:500;min-width:70px;padding:8px 12px;text-align:center;transition:all .3s}.download-button{background-color:#2196f3;color:#fff}.download-button:hover:not(:disabled){background-color:#1976d2;transform:translateY(-1px)}.download-button:disabled{background-color:#ccc;cursor:not-allowed;transform:none}.print-button{background-color:#ff9800;color:#fff}.print-button:hover{background-color:#f57c00;transform:translateY(-1px)}.remove-button{background-color:#f44336;color:#fff}.remove-button:hover{background-color:#d32f2f;transform:translateY(-1px)}.qr-instructions{background:#f9f9f9;border-radius:8px;margin-top:40px;padding:24px}.qr-instructions h2{color:#1976d2;margin-bottom:16px}.qr-instructions ol{margin-bottom:24px}.qr-instructions ol li{line-height:1.5;margin-bottom:8px}.test-section h3{color:#333;margin-bottom:12px}.test-section p{color:#666;margin-bottom:16px}.test-section ul{list-style:none;padding:0}.test-section li{background:#fff;border:1px solid #eee;border-radius:4px;margin-bottom:8px;padding:8px 12px}.test-link{color:#1976d2;font-family:monospace;font-size:12px;text-decoration:none}.test-link:hover{text-decoration:underline}.qr-loading{align-items:center;color:#666;display:flex;font-size:16px;height:200px;justify-content:center}.no-qr-codes,.qr-loading{background:#fff;border-radius:12px;box-shadow:0 4px 12px #0000001a}.no-qr-codes{border:1px solid #eee;padding:40px;text-align:center}.no-qr-codes p{color:#666;font-size:16px;margin:0}@media print{.qr-code-actions,.qr-instructions{display:none}.qr-code-card{border:2px solid #000;break-inside:avoid;margin-bottom:20px;page-break-inside:avoid}.qr-codes-grid{gap:20px;grid-template-columns:repeat(2,1fr)}}@media (max-width:768px){.qr-code-container{padding:10px}.qr-codes-grid{grid-template-columns:1fr}.qr-code-actions,.url-display{flex-direction:column}.copy-button{align-self:flex-start}}.admin-container{margin:2rem auto;max-width:1200px;padding:0 1rem}.admin-paper{background:#fff;border:1px solid #e0e0e0;border-radius:12px;box-shadow:0 4px 20px #0000001a;padding:2rem}.admin-title{color:#333;font-size:2rem;font-weight:600;margin:0 0 1rem}.admin-description{color:#666;font-size:1rem;line-height:1.6;margin:0}@media (max-width:768px){.admin-container{margin:1rem auto;padding:0 .5rem}.admin-paper{padding:1.5rem}.admin-title{font-size:1.5rem}}.user-management-container{background-color:#f8f9fa;margin:0 auto;max-width:1400px;min-height:100vh;padding:20px}.user-management-header{align-items:center;background:#fff;border-radius:12px;box-shadow:0 2px 10px #0000001a;display:flex;justify-content:space-between;margin-bottom:30px;padding:25px}.user-management-header h1{color:#2c3e50;font-size:2rem;margin:0}.create-user-button{background:linear-gradient(135deg,#3498db,#2980b9);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:16px;font-weight:600;padding:12px 24px;transition:all .3s ease}.create-user-button:hover{background:linear-gradient(135deg,#2980b9,#1f618d);box-shadow:0 4px 12px #3498db4d;transform:translateY(-2px)}.loading{background:#fff;border-radius:12px;box-shadow:0 2px 10px #0000001a;color:#666;font-size:18px;height:200px}.loading,.modal-overlay{align-items:center;display:flex;justify-content:center}.modal-overlay{background:#00000080;bottom:0;left:0;position:fixed;right:0;top:0;z-index:1000}.modal-content{background:#fff;border-radius:12px;box-shadow:0 10px 30px #0003;max-height:80vh;max-width:600px;overflow-y:auto;padding:30px;width:90%}.modal-content h2{color:#2c3e50;font-size:1.5rem;margin-bottom:20px}.create-user-form{gap:20px}.create-user-form,.form-group{display:flex;flex-direction:column}.form-group{gap:8px}.form-group label{color:#333;font-size:14px;font-weight:600}.form-group input{border:2px solid #e0e0e0;border-radius:6px;font-size:16px;padding:12px;transition:border-color .3s ease}.form-group input:focus{border-color:#3498db;box-shadow:0 0 0 3px #3498db1a;outline:none}.form-row{grid-gap:15px;display:grid;gap:15px;grid-template-columns:1fr 1fr}.roles-selection{background:#f9f9f9;border:1px solid #e0e0e0;border-radius:6px;max-height:200px;overflow-y:auto;padding:10px}.role-checkbox{align-items:center;border-radius:4px;display:flex;gap:10px;margin-bottom:5px;padding:8px;transition:background-color .2s}.role-checkbox:hover{background-color:#f0f0f0}.role-checkbox input[type=checkbox]{cursor:pointer;height:18px;width:18px}.role-checkbox label{align-items:center;cursor:pointer;display:flex;flex:1 1;font-size:14px;gap:8px;margin:0}.custom-badge{background:#28a745;border-radius:3px;color:#fff;font-size:10px;font-weight:700;padding:2px 6px;text-transform:uppercase}.modal-actions{border-top:1px solid #e0e0e0;display:flex;gap:15px;justify-content:flex-end;margin-top:25px;padding-top:20px}.modal-actions button{border:none;border-radius:6px;cursor:pointer;font-size:14px;font-weight:600;padding:12px 24px;transition:all .3s ease}.modal-actions button:first-child{background:#95a5a6;color:#fff}.modal-actions button:first-child:hover{background:#7f8c8d}.modal-actions button:last-child{background:#3498db;color:#fff}.modal-actions button:last-child:hover{background:#2980b9}.user-info{background:#f8f9fa;border-radius:6px;margin-bottom:20px;padding:15px}.user-info p{color:#555;margin:5px 0}.user-info strong{color:#2c3e50}.users-table-container{background:#fff;border-radius:12px;box-shadow:0 2px 10px #0000001a;overflow:hidden}.users-table{border-collapse:collapse;width:100%}.users-table th{background:#34495e;color:#fff;font-size:14px;font-weight:600;padding:15px;text-align:left}.users-table td{border-bottom:1px solid #e0e0e0;font-size:14px;padding:15px}.users-table tr:hover{background-color:#f8f9fa}.inactive-user{background-color:#ffe6e6!important;opacity:.6}.user-roles{display:flex;flex-wrap:wrap;gap:5px}.role-badge{background:#3498db;border-radius:4px;color:#fff;font-size:11px;font-weight:600;padding:4px 8px}.action-buttons{display:flex;gap:8px}.action-buttons button{border:none;border-radius:4px;cursor:pointer;font-size:14px;padding:6px 10px;transition:all .3s ease}.edit-button{background:#f39c12;color:#fff}.edit-button:hover{background:#e67e22;transform:translateY(-1px)}.delete-button{background:#e74c3c;color:#fff}.delete-button:hover{background:#c0392b;transform:translateY(-1px)}.no-users{color:#666;font-size:16px;padding:40px;text-align:center}@media (max-width:768px){.user-management-header{flex-direction:column;gap:15px;text-align:center}.form-row{grid-template-columns:1fr}.modal-content{padding:20px;width:95%}.users-table-container{overflow-x:auto}.users-table{min-width:800px}}.app{background-color:var(--color-background);display:flex;flex-direction:column;min-height:100vh}.main-content{flex:1 1;padding-top:var(--spacing-lg)}.btn{align-items:center;border:none;border-radius:var(--radius-md);cursor:pointer;display:inline-flex;font-family:var(--font-family);font-size:var(--font-size-base);font-weight:600;gap:var(--spacing-sm);justify-content:center;letter-spacing:.3px;min-height:44px;padding:var(--spacing-md) var(--spacing-lg);text-decoration:none;transition:all var(--transition-base)}.btn:disabled{cursor:not-allowed;opacity:.6}.btn-primary{background-color:var(--color-primary);box-shadow:var(--shadow-sm);color:#fff}.btn-primary:hover:not(:disabled){background-color:var(--color-primary-light);box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-primary:active:not(:disabled){box-shadow:var(--shadow-sm);transform:translateY(0)}.btn-secondary{background-color:var(--color-text-secondary);box-shadow:var(--shadow-sm);color:#fff}.btn-secondary:hover:not(:disabled){background-color:var(--color-text-primary);box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-outline{background-color:initial;border:2px solid var(--color-primary);color:var(--color-primary)}.btn-outline:hover:not(:disabled){background-color:var(--color-primary);color:#fff}.form-group{margin-bottom:var(--spacing-lg)}.form-label{color:var(--color-text-primary);display:block;font-size:var(--font-size-sm);font-weight:600;letter-spacing:.3px;margin-bottom:var(--spacing-sm)}.form-input,.form-select,.form-textarea{background-color:var(--color-surface);border:2px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-primary);font-family:var(--font-family);font-size:var(--font-size-base);padding:var(--spacing-md);transition:all var(--transition-base);width:100%}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #0033661a;outline:none}.form-input.error,.form-select.error,.form-textarea.error{background-color:#fff5f5;border-color:var(--color-error)}.form-input.error:focus,.form-select.error:focus,.form-textarea.error:focus{border-color:var(--color-error);box-shadow:0 0 0 3px #c628281a}.form-input::placeholder,.form-textarea::placeholder{color:var(--color-text-disabled)}.form-error{color:var(--color-error);font-weight:500}.form-error,.form-help{font-size:var(--font-size-sm);margin-top:var(--spacing-xs)}.form-help{color:var(--color-text-secondary)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:var(--spacing-xl)}.card-header{border-bottom:2px solid var(--color-border);margin-bottom:var(--spacing-lg);padding-bottom:var(--spacing-lg)}.card-title{color:var(--color-primary);font-size:var(--font-size-2xl);font-weight:700;letter-spacing:-.5px;margin:0}.card-subtitle{color:var(--color-text-secondary);font-size:var(--font-size-base);margin:var(--spacing-sm) 0 0 0}.container{max-width:1200px}.container,.container-sm{margin:0 auto;padding:0 var(--spacing-lg)}.container-sm{max-width:600px}.container-lg{margin:0 auto;max-width:1400px;padding:0 var(--spacing-lg)}.alert{align-items:flex-start;border-left:4px solid;border-radius:var(--radius-md);display:flex;font-size:var(--font-size-sm);font-weight:500;gap:var(--spacing-sm);margin-bottom:var(--spacing-lg);padding:var(--spacing-md)}.alert-success{background-color:#e8f5e9;border-color:var(--color-success);color:var(--color-success)}.alert-error{background-color:#ffebee;border-color:var(--color-error);color:var(--color-error)}.alert-warning{background-color:#fff3e0;border-color:var(--color-warning);color:var(--color-warning)}.alert-info{background-color:#e3f2fd;border-color:var(--color-info);color:var(--color-info)}.text-center{text-align:center}.text-right{text-align:right}.mt-sm{margin-top:var(--spacing-sm)}.mt-md{margin-top:var(--spacing-md)}.mt-lg{margin-top:var(--spacing-lg)}.mt-xl{margin-top:var(--spacing-xl)}.mb-sm{margin-bottom:var(--spacing-sm)}.mb-md{margin-bottom:var(--spacing-md)}.mb-lg{margin-bottom:var(--spacing-lg)}.mb-xl{margin-bottom:var(--spacing-xl)}@media (max-width:768px){.container,.container-lg,.container-sm{padding:0 var(--spacing-md)}.card{padding:var(--spacing-lg)}}
/*# sourceMappingURL=main.075b3ef2.css.map*/