:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:block;min-width:320px;min-height:100vh}@media(min-width:768px){body{display:flex;place-items:center;justify-content:center}}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}.scanner-info{max-width:800px;margin:3rem auto 0;padding:0 2rem}.info-card{background:#f8f9fa;border:2px solid #e9ecef;border-radius:12px;padding:2rem;text-align:center}.info-card h3{color:#2c3e50;font-size:1.5rem;margin-bottom:1.5rem}.info-card ul{list-style:none;padding:0;text-align:left;max-width:500px;margin:0 auto}.info-card li{background:#fff;margin-bottom:.75rem;padding:1rem;border-radius:8px;border-left:4px solid #3498db;box-shadow:0 2px 4px #0000001a}.info-card li:last-child{margin-bottom:0}.import-mode-selection{display:flex;gap:1rem;margin-top:.5rem}.radio-option{flex:1;padding:1rem;border:2px solid #e9ecef;border-radius:8px;cursor:pointer;transition:all .3s ease;display:flex;flex-direction:column;gap:.5rem}.radio-option:hover{border-color:#3498db;background:#f8f9fa}.radio-option input[type=radio]{margin:0}.radio-option input[type=radio]:checked+span{color:#3498db;font-weight:600}.radio-option small{color:#6c757d;font-size:.85rem;line-height:1.3}.mode-instructions{margin-bottom:1.5rem;padding:1rem;background:#f8f9fa;border-radius:8px}.mode-instructions h5{color:#2c3e50;margin-bottom:.75rem;font-size:1.1rem}.format-example{margin-top:1rem;padding:1rem;background:#fff;border-radius:6px;border:1px solid #e9ecef}.format-example table{width:100%;border-collapse:collapse;margin-bottom:.5rem}.format-example th,.format-example td{padding:.5rem;border:1px solid #dee2e6;text-align:left}.format-example th{background:#f8f9fa;font-weight:600;color:#495057}.format-example td{color:#6c757d}.general-instructions{margin-top:1.5rem;padding:1rem;background:#e8f4fd;border-radius:8px;border-left:4px solid #3498db}.general-instructions h5{color:#2c3e50;margin-bottom:.75rem;font-size:1.1rem}.created-groups{margin-top:1rem;padding:1rem;background:#d4edda;border-radius:8px;border-left:4px solid #28a745}.created-groups h5{color:#155724;margin-bottom:.75rem}.created-groups ul{margin:0;padding-left:1.5rem}.created-groups li{margin-bottom:.5rem;color:#155724}.group-errors{margin-top:.25rem;padding-left:1rem}.error-text{display:block;color:#721c24;margin-top:.25rem}@media(max-width:768px){.import-mode-selection{flex-direction:column;gap:.75rem}.radio-option{padding:.75rem}.format-example{overflow-x:auto}.format-example table{min-width:300px}}.group-guest-display{max-width:1200px;margin:0 auto;padding:2rem;background:#fff;min-height:calc(100vh - 120px);width:100%;box-sizing:border-box;overflow-x:hidden}*{box-sizing:border-box}.header-section{margin-bottom:2rem}.back-button{background:#6c757d;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:8px;cursor:pointer;font-size:1rem;margin-bottom:1.5rem;transition:all .3s ease;display:inline-block}.back-button:hover{background:#5a6268;transform:translateY(-2px)}.group-header{text-align:center;padding:2rem 0;border-bottom:3px solid #e9ecef;margin-bottom:2rem}.group-header h1{color:#2c3e50;font-size:2.5rem;margin-bottom:.5rem}.group-header h2{color:#34495e;font-size:2rem;margin-bottom:1rem;word-wrap:break-word;display:flex;align-items:center;justify-content:center;gap:1rem;flex-wrap:wrap}.status-badge{display:inline-block;padding:.4rem 1rem;border-radius:20px;font-size:.9rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.completed-badge{background:#27ae60;color:#fff;box-shadow:0 2px 8px #27ae604d}.not-completed-badge{background:#e74c3c;color:#fff;box-shadow:0 2px 8px #e74c3c4d}.header-action-buttons{margin-top:1.5rem;display:flex;justify-content:center;gap:1rem}.mark-complete-btn{min-width:200px;font-size:1.1rem;padding:.9rem 2rem}.school-name-header{display:flex;align-items:center;justify-content:center;gap:1rem;margin:1.5rem 0;padding:1.5rem 2rem;background:linear-gradient(135deg,#3498db,#2980b9);border-radius:12px;box-shadow:0 4px 12px #3498db4d}.school-icon{font-size:2.5rem;filter:drop-shadow(0 2px 4px rgba(0,0,0,.2))}.school-text{color:#fff;font-size:1.8rem;font-weight:700;letter-spacing:.5px;text-shadow:0 2px 4px rgba(0,0,0,.2)}.school-name-display{color:#3498db;font-size:1.2rem;font-weight:600;margin:.5rem 0;padding:.5rem 1rem;background:#3498db1a;border-radius:8px;display:inline-block}.scan-info{color:#6c757d;font-size:1rem;font-style:italic}.guests-container{margin-bottom:3rem}.guest-count{text-align:center;margin-bottom:2rem;padding:1.5rem;background:linear-gradient(135deg,#3498db,#2980b9);color:#fff;border-radius:12px;box-shadow:0 4px 12px #3498db4d}.guest-count h3{font-size:1.5rem;margin:0;color:#000;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:.5rem}.school-name-inline{display:inline-flex;align-items:center;gap:.5rem;color:#000;font-size:1.5rem;font-weight:700;background:#fff3;padding:.3rem 1rem;border-radius:8px;margin-left:1rem}.separator{color:#fff9;font-size:1.2rem;margin:0 .5rem}.school-icon-small{font-size:1.3rem}.guests-grid{display:grid;gap:1.5rem;margin-top:2rem;justify-items:center}.guest-item{width:100%;max-width:100%;margin:0 auto}@media(min-width:600px){.guest-item{max-width:520px}}@media(min-width:900px){.guest-item{max-width:100%}.guests-grid{justify-content:center}}@media(min-width:1200px){.guest-item{max-width:100%}}.guest-item{background:#fff;border:2px solid #e9ecef;border-radius:12px;padding:1.5rem;display:flex;align-items:center;gap:1rem;transition:all .3s ease;box-shadow:0 2px 8px #0000001a}.guest-item:hover{border-color:#3498db;transform:translateY(-2px);box-shadow:0 4px 16px #3498db33}.guest-number{background:#3498db;color:#fff;width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.1rem;flex-shrink:0}.guest-info{flex:1}.guest-info h4{color:#2c3e50;font-size:1.3rem;margin-bottom:.5rem}.guest-score{color:#f39c12;font-weight:700;margin-bottom:.25rem;font-size:1.1rem}.guest-seat{color:#3498db;font-weight:700;margin-bottom:.25rem;font-size:1rem}.guest-id{color:#34495e;font-weight:600;margin-bottom:.25rem}.guest-date{color:#6c757d;font-size:.9rem;margin:0}.guest-image-thumb{flex-shrink:0}.thumb-image{width:60px;height:60px;object-fit:cover;border-radius:8px;border:2px solid #e9ecef}.no-guests-message{text-align:center;padding:4rem 2rem;background:#f8f9fa;border-radius:12px;margin:2rem 0}.no-guests-message h3{color:#6c757d;font-size:1.8rem;margin-bottom:1rem}.no-guests-message p{color:#6c757d;font-size:1.1rem;margin-bottom:2rem}.observer-section{margin-top:2.5rem;padding:2rem;background:linear-gradient(135deg,#9b59b6,#8e44ad);border-radius:12px;box-shadow:0 4px 12px #9b59b64d}.observer-info{display:flex;align-items:center;justify-content:center;gap:1rem;color:#fff}.observer-icon{font-size:2rem}.observer-label{font-size:1.3rem;font-weight:600;text-transform:uppercase;letter-spacing:1px}.observer-name{font-size:1.5rem;font-weight:700;padding:.5rem 1.5rem;background:#fff3;border-radius:8px}.action-section{margin-top:3rem;padding-top:2rem;border-top:3px solid #e9ecef}.action-buttons{display:flex;justify-content:center;gap:1rem;flex-wrap:wrap}.action-buttons button{min-height:44px;touch-action:manipulation}.btn-primary{background:#3498db;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:8px;cursor:pointer;font-size:1rem;transition:all .3s ease;font-weight:600}.btn-primary:hover{background:#2980b9;transform:translateY(-2px);box-shadow:0 4px 12px #3498db4d}.btn-secondary{background:#2ecc71;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:8px;cursor:pointer;font-size:1rem;transition:all .3s ease;font-weight:600}.btn-secondary:hover{background:#27ae60;transform:translateY(-2px);box-shadow:0 4px 12px #2ecc714d}.btn-outline{background:#fff;color:#3498db;border:2px solid #3498db;padding:.75rem 1.5rem;border-radius:8px;cursor:pointer;font-size:1rem;transition:all .3s ease;font-weight:600}.btn-outline:hover{background:#3498db;color:#fff;transform:translateY(-2px);box-shadow:0 4px 12px #3498db4d}.btn-mark-complete{background:#27ae60;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:8px;cursor:pointer;font-size:1rem;transition:all .3s ease;font-weight:600}.btn-mark-complete:hover:not(:disabled){background:#229954;transform:translateY(-2px);box-shadow:0 4px 12px #27ae6066}.btn-mark-not-complete{background:#e74c3c;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:8px;cursor:pointer;font-size:1rem;transition:all .3s ease;font-weight:600}.btn-mark-not-complete:hover:not(:disabled){background:#c0392b;transform:translateY(-2px);box-shadow:0 4px 12px #e74c3c66}.btn-mark-complete:disabled,.btn-mark-not-complete:disabled{opacity:.6;cursor:not-allowed;transform:none}.loading-spinner{text-align:center;padding:4rem 2rem;min-height:300px;display:flex;flex-direction:column;justify-content:center;align-items:center}.loading-spinner p{color:#3498db;font-size:1.2rem;margin-top:1rem}.error-message{text-align:center;padding:3rem 2rem;background:#fee;border:2px solid #fcc;border-radius:12px;margin:2rem auto;max-width:500px}.error-message h2{color:#c0392b;margin-bottom:1rem}.error-message p{color:#e74c3c;margin-bottom:1.5rem;font-size:1.1rem}@media print{.group-guest-display{padding:1rem}.back-button,.action-section{display:none}.guest-item{break-inside:avoid;margin-bottom:1rem}.guests-grid{display:block}.guest-image-thumb{display:none}}@media(max-width:768px){.group-guest-display{padding:1rem;min-height:100vh}.back-button{padding:.6rem 1rem;font-size:.9rem;width:100%;text-align:center}.group-header{padding:1rem 0}.group-header h1{font-size:1.8rem}.group-header h2{font-size:1.4rem;padding:0 .5rem}.scan-info{font-size:.85rem;padding:0 .5rem}.guest-count h3{font-size:1.2rem}.guests-grid{grid-template-columns:1fr;gap:1rem}.guest-item{padding:1rem;flex-wrap:wrap}.guest-info h4{font-size:1.1rem}.guest-id,.guest-date{font-size:.85rem}.action-buttons{flex-direction:column;align-items:stretch;gap:.75rem}.action-buttons button{width:100%;padding:.9rem 1rem;font-size:1rem}.no-guests-message{padding:2rem 1rem}.no-guests-message h3{font-size:1.4rem}.no-guests-message p{font-size:1rem}.loading-spinner{padding:3rem 1rem;min-height:200px}.loading-spinner p{font-size:1rem}.error-message{padding:2rem 1rem;margin:1rem}.error-message h2{font-size:1.5rem}.error-message p{font-size:1rem}}@media(max-width:567px){.group-guest-display{padding:.5rem;min-height:100vh}.header-section{margin-bottom:1rem}.back-button{padding:.6rem 1rem;font-size:.85rem;margin-bottom:1rem}.group-header{padding:.75rem 0;margin-bottom:1rem}.group-header h1{font-size:1.4rem;margin-bottom:.5rem}.group-header h2{font-size:1.1rem;padding:0 .5rem;margin-bottom:.5rem}.scan-info{font-size:.75rem;padding:0 .5rem}.guests-container{margin-bottom:1.5rem}.guest-count{margin-bottom:1rem;padding:.75rem}.guest-count h3{font-size:1rem}.guests-grid{gap:.75rem;margin-top:1rem;grid-template-columns:1fr;min-width:0}.guest-item{padding:.5rem;gap:.5rem;flex-direction:column;align-items:flex-start;width:80%;min-width:0}.guest-item{align-items:flex-start}.guest-image-thumb{flex-shrink:1;max-width:48px;margin-left:.25rem;order:3}.guest-number{flex:0 0 32px;margin-right:.5rem}.guest-info{order:2;min-width:0}.guest-number{width:28px;height:28px;font-size:.85rem;flex-shrink:0}.guest-info{flex:1;min-width:0;overflow-wrap:break-word;font-size:.92rem}.guest-info h4{font-size:.95rem;margin-bottom:.3rem;word-break:break-word}.guest-id,.guest-date{font-size:.75rem;word-break:break-all}.thumb-image{width:40px;height:40px}.action-section{margin-top:1.5rem;padding-top:1rem}.action-buttons{gap:.6rem}.action-buttons button{font-size:.9rem;padding:.75rem;min-height:44px}.no-guests-message{padding:1.5rem .75rem}.no-guests-message h3{font-size:1.2rem}.no-guests-message p{font-size:.9rem;margin-bottom:1.5rem}.loading-spinner{padding:2rem .5rem;min-height:150px}.loading-spinner p{font-size:.9rem}.error-message{padding:1.5rem .75rem;margin:.5rem}.error-message h2{font-size:1.3rem}.error-message p{font-size:.9rem}}@media(max-width:360px){.group-guest-display{padding:.25rem}.group-header h1{font-size:1.2rem}.group-header h2{font-size:1rem}.guest-number{width:24px;height:24px;font-size:.75rem}.guest-item{flex-direction:column;align-items:flex-start;gap:.35rem;padding:.4rem}.guest-item{align-items:flex-start;gap:.35rem;padding:.4rem}.guest-image-thumb{max-width:40px;order:3;margin-left:.25rem;flex-shrink:1}.guest-info h4{font-size:.85rem}.guest-id,.guest-date{font-size:.7rem}.thumb-image{width:36px;height:36px}.action-buttons button{font-size:.85rem;padding:.7rem .6rem}}.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);padding:20px}.login-box{background:#fff;border-radius:12px;box-shadow:0 10px 40px #0003;padding:40px;width:100%;max-width:420px;animation:slideUp .4s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.login-header{text-align:center;margin-bottom:32px}.login-logo{width:80px;height:80px;object-fit:contain;margin-bottom:16px}.login-header h1{margin:0 0 8px;font-size:28px;color:#333;font-weight:600}.login-header p{margin:0;color:#666;font-size:14px}.login-form,.form-group{margin-bottom:20px}.form-group label{display:block;margin-bottom:8px;color:#333;font-weight:500;font-size:14px}.form-group input{width:100%;padding:12px 16px;border:2px solid #e0e0e0;border-radius:8px;font-size:15px;transition:all .3s ease;box-sizing:border-box}.form-group input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.form-group input:disabled{background-color:#f5f5f5;cursor:not-allowed}.error-message{background-color:#fee;border:1px solid #fcc;color:#c33;padding:12px 16px;border-radius:8px;margin-bottom:20px;font-size:14px}.login-button{width:100%;padding:14px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 12px #667eea4d}.login-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 16px #667eea66}.login-button:active:not(:disabled){transform:translateY(0)}.login-button:disabled{opacity:.6;cursor:not-allowed;transform:none}.login-footer{text-align:center;padding-top:20px;border-top:1px solid #e0e0e0}.default-credentials{margin:0;color:#999;font-size:13px;font-style:italic}@media(max-width:480px){.login-box{padding:30px 24px}.login-header h1{font-size:24px}.login-logo{width:60px;height:60px}}@media(max-width:567px){.login-container{padding:28px 12px;background:linear-gradient(135deg,#6b7ff2,#7b59b8);align-items:flex-start}.login-box{padding:22px;max-width:95vw;width:100%;border-radius:10px}.login-header h1{font-size:20px}.login-header p{font-size:13px}.login-logo{width:56px;height:56px}.form-group input{padding:12px 14px;font-size:15px}.login-button{padding:13px;font-size:15px;min-height:44px}}@media(max-width:360px){.login-container{padding:10px}.login-box{padding:16px;border-radius:8px}.login-header h1{font-size:18px}.login-logo{width:48px;height:48px}.form-group label{font-size:13px}.form-group input{padding:10px 12px;font-size:14px}.error-message{font-size:13px;padding:10px 12px}.login-button{padding:12px;font-size:15px}}.user-management-container{max-width:1400px;margin:0 auto;padding:20px}.user-management-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px;flex-wrap:wrap;gap:15px}.user-management-header h2{margin:0;color:#333;font-size:28px}.loading{text-align:center;padding:40px;font-size:18px;color:#666}.alert{padding:15px 20px;border-radius:8px;margin-bottom:20px;animation:slideDown .3s ease-out}.alert-error{background-color:#fee;border:1px solid #fcc;color:#c33}.alert-success{background-color:#efe;border:1px solid #cfc;color:#3c3}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.add-user-form,.edit-user-form{background:#fff;padding:30px;border-radius:12px;box-shadow:0 2px 8px #0000001a;margin-bottom:30px}.add-user-form h3,.edit-user-form h3{margin-top:0;margin-bottom:25px;color:#333;font-size:22px}.edit-user-form{border-left:4px solid #f39c12;background:linear-gradient(135deg,#fff9e6,#fff)}.form-group{margin-bottom:20px}.form-group label{display:block;margin-bottom:8px;font-weight:600;color:#444;font-size:14px}.form-group input,.form-group select{width:100%;padding:12px 15px;border:2px solid #ddd;border-radius:8px;font-size:15px;transition:border-color .3s;box-sizing:border-box}.form-group input:focus,.form-group select:focus{outline:none;border-color:#4caf50}.form-group small{display:block;margin-top:8px;color:#666;font-size:13px;line-height:1.6}.form-actions{display:flex;gap:15px;margin-top:25px}.users-list{background:#fff;padding:30px;border-radius:12px;box-shadow:0 2px 8px #0000001a;margin-bottom:30px}.users-list h3{margin-top:0;margin-bottom:25px;color:#333;font-size:22px}.no-users{text-align:center;padding:40px;color:#999;font-size:16px}.users-table{overflow-x:auto}.users-table table{width:100%;border-collapse:collapse}.users-table th{background-color:#f8f9fa;padding:15px;text-align:left;font-weight:600;color:#555;font-size:14px;border-bottom:2px solid #dee2e6;white-space:nowrap}.users-table td{padding:15px;border-bottom:1px solid #dee2e6;font-size:14px}.users-table tr:hover{background-color:#f8f9fa}.users-table tr:last-child td{border-bottom:none}.role-badge{display:inline-block;padding:6px 12px;border-radius:20px;font-size:13px;font-weight:600;white-space:nowrap}.role-badge.admin{background-color:#fff3cd;color:#856404;border:1px solid #ffeaa7}.role-badge.user{background-color:#d1ecf1;color:#0c5460;border:1px solid #bee5eb}.btn-primary{background-color:#4caf50;color:#fff;border:none;padding:12px 24px;border-radius:8px;cursor:pointer;font-size:15px;font-weight:600;transition:background-color .3s,transform .1s}.btn-primary:hover{background-color:#45a049;transform:translateY(-1px)}.btn-primary:active{transform:translateY(0)}.btn-secondary{background-color:#6c757d;color:#fff;border:none;padding:12px 24px;border-radius:8px;cursor:pointer;font-size:15px;font-weight:600;transition:background-color .3s}.btn-secondary:hover{background-color:#5a6268}.btn-delete{background-color:#dc3545;color:#fff;border:none;padding:8px 16px;border-radius:6px;cursor:pointer;font-size:13px;font-weight:500;transition:background-color .3s}.btn-delete:hover:not(:disabled){background-color:#c82333}.btn-delete:disabled{background-color:#ccc;cursor:not-allowed;opacity:.6}.btn-edit{background-color:#f39c12;color:#fff;border:none;padding:8px 16px;border-radius:6px;cursor:pointer;font-size:13px;font-weight:500;transition:background-color .3s}.btn-edit:hover{background-color:#e67e22}.action-buttons{display:flex;gap:10px;flex-wrap:wrap}.user-management-info{background:#fff;padding:30px;border-radius:12px;box-shadow:0 2px 8px #0000001a}.user-management-info h3{margin-top:0;margin-bottom:25px;color:#333;font-size:22px}.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px}.info-card{background-color:#f8f9fa;padding:20px;border-radius:8px;border-left:4px solid #4CAF50}.info-card h4{margin-top:0;margin-bottom:15px;color:#333;font-size:18px}.info-card ul{margin:0;padding-left:20px}.info-card li{margin-bottom:8px;color:#555;line-height:1.5}@media(max-width:768px){.user-management-header{flex-direction:column;align-items:stretch}.user-management-header button{width:100%}.add-user-form,.users-list,.user-management-info{padding:20px}.form-actions{flex-direction:column}.form-actions button{width:100%}.users-table{font-size:12px}.users-table th,.users-table td{padding:10px 8px}.action-buttons{flex-direction:column;gap:5px}.btn-edit,.btn-delete{width:100%}.info-grid{grid-template-columns:1fr}}@media(max-width:480px){.user-management-header h2{font-size:22px}.users-table th,.users-table td{padding:8px 5px;font-size:11px}.role-badge{font-size:11px;padding:4px 8px}.btn-delete,.btn-edit{padding:6px 12px;font-size:12px}}.public-file-qr-container{max-width:1400px;margin:0 auto;padding:20px}.public-file-qr-container h1{color:#2c3e50;margin-bottom:10px;font-size:2rem}.subtitle{color:#7f8c8d;margin-bottom:30px;font-size:1.1rem}.tabs-container{display:flex;gap:0;margin-bottom:30px;border-bottom:2px solid #e0e0e0}.tab-btn{padding:14px 30px;border:none;background:transparent;font-size:1.1rem;font-weight:600;cursor:pointer;color:#7f8c8d;transition:all .3s;border-bottom:3px solid transparent;margin-bottom:-2px}.tab-btn:hover{color:#3498db;background:#3498db0d}.tab-btn.active{color:#3498db;border-bottom-color:#3498db;background:#3498db14}.alert{padding:15px 40px 15px 15px;margin-bottom:20px;border-radius:8px;position:relative;animation:slideIn .3s ease-out}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.alert-error{background-color:#fee;color:#c33;border:1px solid #fcc}.alert-success{background-color:#efe;color:#3c3;border:1px solid #cfc}.alert-close{position:absolute;right:15px;top:50%;transform:translateY(-50%);background:none;border:none;font-size:24px;cursor:pointer;color:inherit;opacity:.6;transition:opacity .2s}.alert-close:hover{opacity:1}.upload-section{background:#fff;padding:30px;border-radius:12px;box-shadow:0 2px 10px #0000001a;margin-bottom:40px}.upload-section h2{color:#34495e;margin-bottom:20px;font-size:1.5rem}.upload-form{display:flex;flex-direction:column;gap:20px}.form-group{display:flex;flex-direction:column;gap:8px}.form-group label{font-weight:600;color:#2c3e50;font-size:.95rem}.form-group input[type=text],.form-group textarea{padding:12px;border:2px solid #e0e0e0;border-radius:8px;font-size:1rem;transition:border-color .3s;font-family:inherit}.form-group input[type=text]:focus,.form-group textarea:focus{outline:none;border-color:#3498db}.form-group input[type=file]{padding:10px;border:2px dashed #e0e0e0;border-radius:8px;cursor:pointer;transition:border-color .3s}.form-group input[type=file]:hover{border-color:#3498db}.form-group small{color:#7f8c8d;font-size:.85rem}.preview-container{margin-top:10px}.preview-container label{display:block;margin-bottom:10px;font-weight:600;color:#2c3e50}.preview-image{max-width:300px;max-height:300px;border-radius:8px;box-shadow:0 2px 8px #0000001a}.file-info{padding:12px;background-color:#f8f9fa;border-radius:8px;border-left:4px solid #3498db}.btn{padding:12px 24px;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s;display:inline-flex;align-items:center;justify-content:center;gap:8px}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:linear-gradient(135deg,#3498db,#2980b9);color:#fff}.btn-primary:hover:not(:disabled){background:linear-gradient(135deg,#2980b9,#21618c);transform:translateY(-2px);box-shadow:0 4px 12px #3498db66}.btn-secondary{background-color:#95a5a6;color:#fff}.btn-secondary:hover{background-color:#7f8c8d}.btn-success{background-color:#27ae60;color:#fff}.btn-success:hover{background-color:#229954}.btn-danger{background-color:#e74c3c;color:#fff}.btn-danger:hover{background-color:#c0392b}.btn-info{background-color:#3498db;color:#fff}.btn-info:hover{background-color:#2980b9}.btn-sm{padding:8px 16px;font-size:.9rem}.files-section{margin-top:40px}.files-section h2{color:#34495e;margin-bottom:20px;font-size:1.5rem}.loading,.empty-state{text-align:center;padding:60px 20px;color:#7f8c8d;font-size:1.1rem}.empty-state p{margin:0}.files-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:24px;margin-top:20px}.file-card{background:#fff;border-radius:12px;padding:24px;box-shadow:0 2px 10px #0000001a;transition:transform .3s,box-shadow .3s;display:flex;flex-direction:column;gap:16px}.file-card:hover{transform:translateY(-4px);box-shadow:0 6px 20px #00000026}.file-card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.file-card-header h3{margin:0;color:#2c3e50;font-size:1.2rem;flex:1;word-break:break-word}.file-type-badge{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:4px 12px;border-radius:20px;font-size:.75rem;font-weight:600;white-space:nowrap}.view-only-badge{background:linear-gradient(135deg,#27ae60,#229954);color:#fff;padding:3px 10px;border-radius:12px;font-size:.85rem;font-weight:600;white-space:nowrap;display:inline-block}.file-description{color:#7f8c8d;font-size:.95rem;margin:0;line-height:1.5}.file-details{display:flex;flex-direction:column;gap:8px;padding:12px;background-color:#f8f9fa;border-radius:8px;font-size:.9rem}.detail-item{display:flex;gap:8px}.detail-item strong{color:#2c3e50;min-width:90px}.qr-code-container{display:flex;justify-content:center;padding:16px;background:linear-gradient(135deg,#f5f7fa,#c3cfe2);border-radius:12px}.qr-code-image{width:200px;height:200px;border-radius:8px;box-shadow:0 4px 12px #00000026;background:#fff;padding:8px}.public-url{display:flex;flex-direction:column;gap:8px}.public-url label{font-weight:600;color:#2c3e50;font-size:.9rem}.url-display{display:flex;gap:8px}.url-input{flex:1;padding:10px;border:2px solid #e0e0e0;border-radius:6px;font-size:.85rem;font-family:Courier New,monospace;background-color:#f8f9fa}.file-actions{display:flex;gap:8px;flex-wrap:wrap}.file-actions .btn{flex:1;min-width:100px}@media(max-width:768px){.public-file-qr-container{padding:15px}.public-file-qr-container h1{font-size:1.5rem}.upload-section,.file-card{padding:20px}.files-grid{grid-template-columns:1fr}.file-actions{flex-direction:column}.file-actions .btn{width:100%}.url-display{flex-direction:column}.url-input{font-size:.75rem}}@media(max-width:480px){.public-file-qr-container h1{font-size:1.3rem}.subtitle{font-size:1rem}.qr-code-image{width:150px;height:150px}.preview-image{max-width:100%}.tabs-container{flex-direction:column}.tab-btn{width:100%;text-align:center;border-bottom:none;border-left:3px solid transparent;margin-bottom:0;margin-left:-2px}.tab-btn.active{border-bottom:none;border-left-color:#3498db}}.link-type-badge{padding:4px 12px;border-radius:20px;font-size:.75rem;font-weight:600;white-space:nowrap}.link-type-badge.active{background:linear-gradient(135deg,#27ae60,#229954);color:#fff}.link-type-badge.inactive{background:linear-gradient(135deg,#e74c3c,#c0392b);color:#fff}.target-url-link{color:#3498db;text-decoration:none;word-break:break-all}.target-url-link:hover{text-decoration:underline;color:#2980b9}.card-disabled{opacity:.7;border:2px dashed #e74c3c}.card-disabled .qr-code-container{filter:grayscale(50%)}.btn-warning{background-color:#f39c12;color:#fff}.btn-warning:hover{background-color:#e67e22}.form-group input[type=url]{padding:12px;border:2px solid #e0e0e0;border-radius:8px;font-size:1rem;transition:border-color .3s;font-family:inherit}.form-group input[type=url]:focus{outline:none;border-color:#3498db}.form-group input[type=url]::placeholder{color:#95a5a6}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background-color:#f5f5f5;font-size:16px;line-height:1.6;width:100%;overflow-x:hidden;margin:0;padding:0}body.modal-open{overflow:hidden;position:fixed;width:100%}.App{min-height:100vh;width:100%}.navbar{background:linear-gradient(135deg,#2c3e50,#34495e);color:#fff;padding:1.5rem 0;box-shadow:0 4px 6px #0000001a;position:sticky;top:0;z-index:100;width:100vw;margin:0;box-sizing:border-box}.nav-container{width:100%;margin:0;padding:0 2rem;box-sizing:border-box;display:block}.nav-container h1{font-size:2rem;font-weight:700;letter-spacing:-.5px;display:inline-block;margin-bottom:1rem}.nav-links{display:block;width:100%;display:flex;align-items:center;justify-content:space-between}.nav-links a{color:#fff;text-decoration:none;padding:1rem 1.5rem;border-radius:8px;transition:all .3s ease;font-weight:500;font-size:1.1rem;min-height:48px;display:inline-block;margin-right:1rem;margin-bottom:.5rem}.nav-links a:hover{background-color:#ffffff26;transform:translateY(-2px)}.admin-link{background:#ffd70033;border:2px solid rgba(255,215,0,.3)}.admin-link:hover{background:#ffd7004d!important;border-color:#ffd70080}.user-info{display:flex;align-items:center;gap:1rem;margin-left:auto}.username{color:#fff;font-size:1rem;font-weight:500;padding:.5rem 1rem;background:#ffffff1a;border-radius:6px}.logout-btn{background:#e74c3ce6;color:#fff;border:2px solid rgba(255,255,255,.3);padding:.75rem 1.5rem;border-radius:8px;cursor:pointer;font-size:1rem;font-weight:600;transition:all .3s ease;min-height:40px}.logout-btn:hover{background:#c0392b;border-color:#ffffff80;transform:translateY(-2px);box-shadow:0 4px 8px #0003}.main-content{width:100vw;margin:0;padding:3rem 2rem;box-sizing:border-box;min-height:calc(100vh - 120px)}.btn-primary{background:linear-gradient(135deg,#3498db,#2980b9);color:#fff;border:none;padding:1rem 2rem;border-radius:8px;cursor:pointer;font-size:1.1rem;font-weight:600;transition:all .3s ease;min-height:48px;box-shadow:0 2px 4px #0000001a}.btn-primary:hover:not(:disabled){background:linear-gradient(135deg,#2980b9,#1e6fa3);transform:translateY(-2px);box-shadow:0 4px 8px #00000026}.btn-secondary{background:linear-gradient(135deg,#95a5a6,#7f8c8d);color:#fff;border:none;padding:1rem 2rem;border-radius:8px;cursor:pointer;font-size:1.1rem;font-weight:600;transition:all .3s ease;min-height:48px;box-shadow:0 2px 4px #0000001a}.btn-secondary:hover:not(:disabled){background:linear-gradient(135deg,#7f8c8d,#6c7a7b);transform:translateY(-2px);box-shadow:0 4px 8px #00000026}.btn-outline{background:transparent;color:#3498db;border:2px solid #3498db;padding:1rem 2rem;border-radius:8px;cursor:pointer;font-size:1.1rem;font-weight:600;transition:all .3s ease;min-height:48px}.btn-outline:hover:not(:disabled){background:#3498db;color:#fff;transform:translateY(-2px);box-shadow:0 4px 8px #3498db4d}button:disabled{opacity:.6;cursor:not-allowed;transform:none!important}.qr-scanner-container{text-align:center;margin-bottom:3rem;background:#fff;border-radius:12px;padding:2rem;box-shadow:0 4px 6px #0000001a;width:100%;box-sizing:border-box}.qr-scanner-container h2{font-size:2rem;margin-bottom:2rem;color:#2c3e50}.scanner-wrapper{position:relative;max-width:500px;margin:2rem auto;border-radius:12px;overflow:hidden;box-shadow:0 8px 16px #00000026}.scanner-video{width:100%;height:400px;object-fit:cover;background:#000}.scanner-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}.scanner-frame{width:250px;height:250px;border:4px solid #3498db;border-radius:12px;background:transparent;position:relative}.scanner-frame:before,.scanner-frame:after{content:"";position:absolute;width:30px;height:30px;border:4px solid #e74c3c}.scanner-frame:before{top:-4px;left:-4px;border-right:none;border-bottom:none}.scanner-frame:after{bottom:-4px;right:-4px;border-left:none;border-top:none}.scanner-controls{margin:2rem 0;display:flex;gap:1rem;justify-content:center}.scanner-instructions{color:#666;font-size:1.1rem;margin-top:1rem}.camera-error{background:#fff3cd;border:2px solid #ffeaa7;border-radius:12px;padding:3rem;text-align:center;color:#856404;font-size:1.1rem}.data-display{background:#fff;border-radius:12px;padding:3rem 2rem;box-shadow:0 4px 6px #0000001a;margin-top:3rem;width:100%;box-sizing:border-box}.scan-result-header{border-bottom:2px solid #eee;padding-bottom:2rem;margin-bottom:3rem;text-align:center}.scan-result-header h2{font-size:2.5rem;color:#2c3e50;margin-bottom:1rem}.scan-timestamp{color:#666;font-size:1.1rem;background:#f8f9fa;padding:.5rem 1rem;border-radius:6px;display:inline-block}.group-info h3{color:#2c3e50;margin-bottom:1rem;font-size:2rem}.guests-section{margin-top:3rem}.guests-section h4{font-size:1.5rem;margin-bottom:2rem;color:#34495e}.guests-display{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:2rem;margin-top:2rem}.guest-card{background:linear-gradient(135deg,#f8f9fa,#e9ecef);border-radius:12px;padding:2rem;display:flex;justify-content:space-between;align-items:center;box-shadow:0 2px 4px #0000001a;transition:transform .3s ease}.guest-card:hover{transform:translateY(-4px);box-shadow:0 8px 16px #00000026}.guest-details h5{color:#2c3e50;margin-bottom:.5rem;font-size:1.3rem;font-weight:600}.guest-details p{margin:.5rem 0;font-size:1rem;color:#666}.id-image{width:80px;height:80px;object-fit:cover;border-radius:8px;border:2px solid #ddd}.action-buttons{margin-top:3rem;display:flex;gap:2rem;justify-content:center;flex-wrap:wrap}.group-management>*+*{margin-top:3rem}.create-group-section{background:#fff;border-radius:12px;padding:3rem 2rem;box-shadow:0 4px 6px #0000001a;margin-bottom:3rem;width:100%;box-sizing:border-box}.create-group-section h3{font-size:1.8rem;margin-bottom:2rem;color:#2c3e50}.group-form{display:block;width:100%;box-sizing:border-box}.form-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1.5rem;margin-bottom:1.5rem}.form-row .form-input{width:100%;margin:0}.group-form input{width:60%;margin-bottom:1rem;margin-right:2rem;display:inline-block}.group-form button{width:100%;display:block}.groups-list-section{background:#fff;border-radius:12px;padding:3rem 2rem;box-shadow:0 4px 6px #0000001a;width:100%;box-sizing:border-box}.groups-list-section h3{font-size:1.8rem;margin-bottom:2rem;color:#2c3e50}.groups-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(400px,1fr));gap:2rem;margin-top:2rem}.group-card{background:linear-gradient(135deg,#fff,#f8f9fa);border-radius:12px;padding:2rem;text-align:center;box-shadow:0 4px 8px #0000001a;transition:all .3s ease;border:1px solid #e9ecef;position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;min-height:400px}.group-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(135deg,#3498db,#2980b9)}.group-card:hover{transform:translateY(-4px);box-shadow:0 8px 16px #00000026}.group-card-content{flex:1;display:flex;flex-direction:column}.btn-view-details{margin-top:auto;width:100%}.group-card-header{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.5rem;flex-wrap:wrap}.group-card h4{color:#2c3e50;margin:0;font-size:1.5rem;font-weight:600;flex:1}.status-badge{display:inline-block;padding:.4rem .9rem;border-radius:20px;font-size:.85rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;white-space:nowrap}.status-badge.completed{background:#27ae60;color:#fff;box-shadow:0 2px 8px #27ae604d}.status-badge.not-attended{background:#95a5a6;color:#fff;box-shadow:0 2px 8px #95a5a64d}.groups-stats-section{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:2rem;margin-bottom:3rem;padding:2rem;background:#fff;border-radius:12px;box-shadow:0 4px 6px #0000001a}.stat-card-group{display:flex;align-items:center;gap:1.5rem;padding:2rem;background:linear-gradient(135deg,#f8f9fa,#fff);border-radius:12px;border:2px solid #e9ecef;transition:all .3s ease;box-shadow:0 2px 4px #0000001a}.stat-card-group:hover{transform:translateY(-4px);box-shadow:0 8px 16px #00000026}.stat-card-group.attended{border-color:#27ae60;background:linear-gradient(135deg,#e8f8f0,#fff)}.stat-card-group.not-attended{border-color:#95a5a6;background:linear-gradient(135deg,#f5f6f7,#fff)}.stat-icon{font-size:3rem;width:70px;height:70px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#3498db,#2980b9);border-radius:50%;color:#fff;font-weight:700;box-shadow:0 4px 8px #3498db4d}.stat-card-group.attended .stat-icon{background:linear-gradient(135deg,#27ae60,#229954);box-shadow:0 4px 8px #27ae604d}.stat-card-group.not-attended .stat-icon{background:linear-gradient(135deg,#95a5a6,#7f8c8d);box-shadow:0 4px 8px #95a5a64d}.stat-content{flex:1}.stat-card-group .stat-number{font-size:3rem;font-weight:700;color:#2c3e50;line-height:1;margin-bottom:.5rem}.stat-card-group .stat-label{font-size:1.1rem;color:#666;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.group-card p{color:#666;margin-bottom:2rem;font-size:1rem}.school-name{color:#3498db!important;font-weight:600!important;font-size:1.1rem!important;margin-bottom:.5rem!important;padding:.5rem 0;border-bottom:1px solid #e9ecef}.qr-code-section{margin:2rem 0 0;padding:2rem 1.5rem 1.5rem;background:linear-gradient(135deg,#f8f9fa,#fff);border-radius:12px;border:2px solid #e9ecef;text-align:center;position:relative}.qr-code-section:before{content:"";position:absolute;top:0;left:50%;transform:translate(-50%);width:60px;height:3px;background:linear-gradient(135deg,#27ae60,#2ecc71);border-radius:2px}.qr-code-image{width:180px;height:180px;border:3px solid #ddd;border-radius:12px;margin:0 auto 1.5rem;box-shadow:0 4px 8px #00000026;display:block;transition:transform .3s ease}.qr-code-image:hover{transform:scale(1.05)}.qr-status{color:#27ae60;font-size:1.1rem;font-weight:600;background:linear-gradient(135deg,#27ae601a,#2ecc711a);padding:.75rem 1.5rem;border-radius:8px;display:inline-block;margin-bottom:1rem;border:2px solid rgba(39,174,96,.2);box-shadow:0 2px 4px #27ae601a}.qr-status:before{content:"✓ ";font-weight:700;font-size:1.2rem}.excel-import-section{background:linear-gradient(135deg,#e8f4fd,#fff);border:2px dashed #3498db;border-radius:12px;padding:3rem;margin:2rem 0;text-align:center}.excel-import-section h3{color:#2c3e50;margin-bottom:1.5rem;font-size:1.8rem}.excel-upload-area{border:2px dashed #bdc3c7;border-radius:8px;padding:3rem;margin:2rem 0;background:#fff;transition:all .3s ease;cursor:pointer}.excel-upload-area:hover{border-color:#3498db;background:#f8f9fa}.excel-upload-area.dragover{border-color:#2980b9;background:#e8f4fd}.upload-icon{font-size:3rem;color:#3498db;margin-bottom:1rem}.upload-text{font-size:1.2rem;color:#666;margin-bottom:1rem}.upload-subtext{font-size:1rem;color:#999}.template-download{margin:2rem 0}.import-results{background:#d4edda;border:1px solid #c3e6cb;border-radius:8px;padding:2rem;margin:2rem 0}.import-results.error{background:#f8d7da;border-color:#f5c6cb}.import-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem;margin:1rem 0}.stat-item{text-align:center;padding:1rem;background:#ffffffb3;border-radius:6px}.stat-number{font-size:2rem;font-weight:700;color:#2c3e50}.stat-label{font-size:.9rem;color:#666}.modal-overlay{position:fixed;inset:0;width:100vw;height:100vh;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:9999;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);margin:0;padding:0}.modal-content{background:#fff;border-radius:12px;max-width:90vw;max-height:85vh;width:90%;overflow-y:auto;box-shadow:0 20px 40px #0000004d;margin:0 auto}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:2rem;border-bottom:2px solid #eee;background:linear-gradient(135deg,#f8f9fa,#fff)}.modal-header h3{font-size:1.8rem;color:#2c3e50}.close-button{background:none;border:none;font-size:2rem;cursor:pointer;color:#666;width:48px;height:48px;border-radius:50%;transition:all .3s ease;display:flex;align-items:center;justify-content:center}.close-button:hover{background:#f1f2f6;color:#e74c3c}.modal-body{padding:2rem}.modal-observer-info{display:flex;align-items:center;gap:.75rem;padding:1rem 1.5rem;background:linear-gradient(135deg,#9b59b6,#8e44ad);border-radius:8px;margin-bottom:1.5rem;color:#fff}.modal-observer-icon{font-size:1.5rem}.modal-observer-label{font-weight:600;font-size:1rem}.modal-observer-name{font-size:1.1rem;font-weight:700;padding:.25rem 1rem;background:#fff3;border-radius:6px}.modal-body h4{font-size:1.5rem;margin-bottom:1.5rem;color:#34495e}.guests-list>*+*{margin-top:1rem}.guest-item{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;background:linear-gradient(135deg,#f8f9fa,#fff);border-radius:8px;border:1px solid #e9ecef;transition:all .3s ease}.guest-item:hover{box-shadow:0 4px 8px #0000001a;transform:translateY(-2px)}.guest-info{display:flex;flex-direction:column;gap:.5rem}.guest-info strong{font-size:1.2rem;color:#2c3e50}.guest-info span{color:#666;font-size:1rem}.guest-id-image{width:60px;height:60px;object-fit:cover;border-radius:8px;border:2px solid #ddd}.guest-item-detailed{display:flex;justify-content:space-between;align-items:flex-start;padding:2rem;background:linear-gradient(135deg,#f8f9fa,#fff);border-radius:12px;border:1px solid #e9ecef;transition:all .3s ease;margin-bottom:1.5rem}.guest-item-detailed:hover{box-shadow:0 8px 16px #0000001a;transform:translateY(-2px)}.guest-info-detailed{display:flex;flex-direction:column;gap:1rem;flex:1}.guest-main-info{display:flex;flex-direction:column;gap:.5rem}.guest-main-info .score-info{color:#f39c12;font-weight:700;font-size:1.1rem}.guest-main-info .seat-info{color:#3498db;font-weight:700;font-size:1.05rem}.guest-actions{display:flex;gap:1rem;margin-top:1rem}.file-upload-btn{position:relative;cursor:pointer;display:inline-block;text-align:center;transition:all .3s ease}.file-upload-btn:hover{background:#3498db;color:#fff;transform:translateY(-2px)}.guest-image-container{margin-left:2rem;flex-shrink:0}.guest-id-image-large{width:120px;height:120px;object-fit:cover;border-radius:12px;border:3px solid #ddd;box-shadow:0 4px 8px #0000001a;transition:transform .3s ease}.guest-id-image-large:hover{transform:scale(1.05);cursor:pointer}.image-modal{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#000000e6;display:flex;justify-content:center;align-items:center;z-index:10000;cursor:pointer;margin:0;padding:0}.image-modal img{max-width:90%;max-height:90%;border-radius:12px;box-shadow:0 8px 32px #00000080}.image-modal-close{position:absolute;top:20px;right:20px;background:#ffffffe6;border:none;border-radius:50%;width:50px;height:50px;font-size:24px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s ease}.image-modal-close:hover{background:#fff;transform:scale(1.1)}.guest-id-image,.guest-id-image-large{cursor:pointer;transition:all .3s ease}.guest-id-image:hover,.guest-id-image-large:hover{opacity:.8}.qr-download-btn{background:linear-gradient(135deg,#27ae60,#2ecc71);color:#fff;border:none;padding:.75rem 1.5rem;border-radius:8px;cursor:pointer;font-size:1rem;font-weight:600;transition:all .3s ease;margin-top:1rem;display:inline-block;text-align:center;min-width:180px;box-shadow:0 3px 6px #27ae6033}.qr-download-btn:hover{background:linear-gradient(135deg,#229954,#27ae60);transform:translateY(-2px);box-shadow:0 6px 12px #27ae604d}.qr-download-btn:before{content:"📥 ";margin-right:.5rem}.guest-item-detailed{background:linear-gradient(135deg,#f8f9fa,#fff);border-radius:12px;padding:2rem;border:1px solid #e9ecef;transition:all .3s ease;display:flex;flex-direction:column;gap:1.5rem}.guest-item-detailed:hover{box-shadow:0 4px 8px #0000001a;transform:translateY(-2px)}.guest-info-detailed{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.guest-main-info{display:flex;flex-direction:column;gap:.5rem;flex:1}.guest-main-info strong{font-size:1.3rem;color:#2c3e50;font-weight:600}.guest-main-info span{color:#666;font-size:1rem}.guest-actions{display:flex;flex-direction:column;gap:.5rem}.btn-small{padding:.5rem 1rem;font-size:.9rem;min-height:40px}.guest-image-container{display:flex;justify-content:center;padding:1rem;background:#f8f9fa;border-radius:8px;border:2px dashed #dee2e6}.guest-id-image-large{max-width:200px;max-height:200px;object-fit:cover;border-radius:8px;border:2px solid #ddd;box-shadow:0 2px 4px #0000001a}.guest-form-container{background:#fff;border-radius:12px;padding:3rem 2rem;box-shadow:0 4px 6px #0000001a;width:100%;margin:0;box-sizing:border-box}.guest-form-container h2{font-size:2.5rem;margin-bottom:3rem;color:#2c3e50;text-align:center}.guest-form{width:100%;margin:0;box-sizing:border-box}.form-group{margin-bottom:2rem}.form-group label{display:block;margin-bottom:.75rem;font-weight:600;color:#2c3e50;font-size:1.1rem}.form-input,.form-select{width:100%;padding:1rem 1.25rem;border:2px solid #ddd;border-radius:8px;font-size:1.1rem;transition:all .3s ease;min-height:48px}.form-input:focus,.form-select:focus{outline:none;border-color:#3498db;box-shadow:0 0 0 3px #3498db1a;transform:translateY(-2px)}.form-file-input{width:100%;padding:1rem;border:2px dashed #ddd;border-radius:8px;background:#f8f9fa;font-size:1rem;transition:all .3s ease;min-height:48px}.form-file-input:hover{border-color:#3498db;background:#e8f4fd}.image-preview{margin-top:1.5rem;text-align:center;padding:2rem;background:#f8f9fa;border-radius:8px}.preview-image{max-width:250px;max-height:250px;border-radius:8px;border:2px solid #ddd;box-shadow:0 4px 8px #0000001a}.remove-image-btn{display:block;margin:1rem auto 0;padding:.5rem 1rem;background:#e74c3c;color:#fff;border:none;border-radius:6px;font-size:.9rem;cursor:pointer;transition:all .3s ease;min-height:40px}.remove-image-btn:hover{background:#c0392b;transform:translateY(-2px)}.form-actions{display:flex;gap:2rem;margin-top:3rem;justify-content:center}.no-groups-warning{background:linear-gradient(135deg,#fff3cd,#fffbf0);border:2px solid #ffeaa7;border-radius:12px;padding:2rem;margin-top:2rem;text-align:center;color:#856404;font-size:1.1rem}.import-actions{display:flex;gap:2rem;justify-content:center;margin:2rem 0}.file-info{background:#f8f9fa;border-radius:8px;padding:1.5rem;margin:1rem 0;border:1px solid #e9ecef}.file-info p{margin:.5rem 0;color:#495057}.import-instructions{background:#e8f4fd;border-radius:8px;padding:2rem;margin:2rem 0;border-left:4px solid #3498db}.import-instructions h4{color:#2c3e50;margin-bottom:1rem}.import-instructions ul{margin-left:1.5rem;color:#495057}.import-instructions li{margin:.5rem 0;line-height:1.6}.import-errors{background:#fff5f5;border:1px solid #fed7d7;border-radius:8px;padding:1.5rem;margin:1rem 0}.import-errors h5{color:#c53030;margin-bottom:1rem}.import-errors ul{margin-left:1.5rem;color:#742a2a}.import-errors li{margin:.25rem 0}.error-message{color:#c53030;font-weight:600;padding:1rem;background:#fff5f5;border-radius:6px;border:1px solid #fed7d7}@media(max-width:1200px){.nav-container{padding:0 1.5rem}.main-content{padding:2rem 1.5rem}.groups-grid{grid-template-columns:repeat(auto-fill,minmax(350px,1fr))}}@media(max-width:768px){.nav-container{padding:1rem;text-align:center}.nav-container h1{font-size:1.8rem;display:block;margin-bottom:1rem}.nav-links{text-align:center}.nav-links a{display:inline-block;margin:.25rem;padding:.75rem 1rem;font-size:1rem}.main-content{padding:1.5rem 1rem}.form-row{grid-template-columns:1fr;gap:1rem}.group-form input{width:100%;margin-right:0;margin-bottom:1rem}.group-form button{width:100%}.action-buttons{display:block;text-align:center}.action-buttons button{width:100%;margin-bottom:1rem}.guests-display,.groups-grid{grid-template-columns:1fr}.scanner-wrapper{max-width:100%}.scanner-video{height:300px}.scanner-frame{width:200px;height:200px}.modal-content{width:95%;margin:1rem}.modal-header,.modal-body{padding:1.5rem}.guest-item{flex-direction:column;gap:1rem;text-align:center}.import-stats{grid-template-columns:repeat(2,1fr)}}@media(max-width:567px){*{box-sizing:border-box}body{font-size:14px;overflow-x:hidden;width:100%}.App{overflow-x:hidden;width:100%}.navbar{padding:1rem 0}.nav-container{padding:.5rem}.nav-container h1{font-size:1.3rem;margin-bottom:.75rem}.nav-links{flex-direction:column;gap:.5rem;align-items:stretch}.nav-links a{display:block;padding:.7rem 1rem;font-size:.9rem;margin:0;margin-bottom:.25rem;min-height:44px;width:100%;text-align:center}.user-info{flex-direction:column;width:100%;gap:.5rem;margin-left:0}.username{font-size:.85rem;padding:.5rem;width:100%;text-align:center}.logout-btn{padding:.6rem 1rem;font-size:.9rem;width:100%}.main-content{padding:1rem .5rem;width:100%;overflow-x:hidden}.btn-primary,.btn-secondary,.btn-outline{padding:.75rem 1rem;font-size:.9rem;width:100%;margin-bottom:.5rem}.qr-scanner-container{padding:1rem .5rem;margin-bottom:1.5rem}.qr-scanner-container h2{font-size:1.4rem;margin-bottom:1rem}.scanner-wrapper{margin:1rem 0}.scanner-video{height:250px}.scanner-frame{width:150px;height:150px}.scanner-controls{flex-direction:column;gap:.5rem;margin:1rem 0}.scanner-controls button{width:100%}.scanner-instructions{font-size:.9rem}.camera-error{padding:1.5rem;font-size:.9rem}.data-display{padding:1.5rem .75rem;margin-top:1.5rem}.scan-result-header{padding-bottom:1rem;margin-bottom:1.5rem}.scan-result-header h2{font-size:1.6rem}.scan-timestamp{font-size:.85rem;padding:.4rem .75rem}.group-info h3{font-size:1.4rem}.guests-section h4{font-size:1.2rem;margin-bottom:1rem}.guests-display{grid-template-columns:1fr;gap:1rem}.guest-card{padding:1rem;flex-direction:column;text-align:center}.guest-details h5{font-size:1.1rem}.guest-details p{font-size:.9rem}.id-image{width:60px;height:60px;margin:0 auto}.action-buttons{gap:.75rem;margin-top:1.5rem;flex-direction:column}.create-group-section,.groups-list-section{padding:1.5rem .75rem;margin-bottom:1.5rem}.create-group-section h3,.groups-list-section h3{font-size:1.4rem;margin-bottom:1rem}.group-form input{width:100%;padding:.75rem;font-size:.9rem}.groups-stats-section{grid-template-columns:1fr;gap:1rem;padding:1rem;margin-bottom:1.5rem}.stat-card-group{padding:1rem;gap:1rem}.stat-icon{font-size:2rem;width:50px;height:50px}.stat-card-group .stat-number{font-size:2rem}.stat-card-group .stat-label{font-size:.9rem}.groups-grid{grid-template-columns:1fr;gap:1rem}.group-card{padding:1.25rem}.group-card h4{font-size:1.2rem}.group-card p{font-size:.9rem;margin-bottom:1rem}.qr-code-section{padding:1rem;margin:1rem 0 0}.qr-code-image{width:140px;height:140px}.qr-status{font-size:.9rem;padding:.5rem 1rem}.qr-download-btn{padding:.6rem 1rem;font-size:.85rem;min-width:120px}.excel-import-section{padding:1.5rem .75rem;margin:1rem 0}.excel-import-section h3{font-size:1.3rem;margin-bottom:1rem}.excel-upload-area{padding:1.5rem .75rem;margin:1rem 0}.upload-icon{font-size:2rem}.upload-text{font-size:1rem}.upload-subtext{font-size:.85rem}.import-stats{grid-template-columns:1fr;gap:.75rem}.stat-number{font-size:1.5rem}.modal-content{width:98%;max-width:none;margin:.5rem;max-height:95vh}.modal-header{padding:1rem}.modal-header h3{font-size:1.3rem}.close-button{width:40px;height:40px;font-size:1.5rem}.modal-body{padding:1rem}.modal-body h4{font-size:1.2rem;margin-bottom:1rem}.guest-item{padding:1rem;flex-direction:column;text-align:center}.guest-info strong{font-size:1rem}.guest-info span{font-size:.85rem}.guest-id-image{width:50px;height:50px;margin:0 auto}.guest-item-detailed{padding:1rem}.guest-main-info strong{font-size:1.1rem}.guest-actions{flex-direction:column;width:100%}.btn-small{width:100%;padding:.6rem;font-size:.85rem}.guest-image-container{padding:.75rem}.guest-id-image-large{max-width:100%;width:100%;height:auto}.guest-form-container{padding:1.5rem .75rem}.guest-form-container h2{font-size:1.6rem;margin-bottom:1.5rem}.form-group{margin-bottom:1.25rem}.form-group label{font-size:.95rem;margin-bottom:.5rem}.form-input,.form-select{padding:.75rem;font-size:.9rem}.image-preview{padding:1rem;margin-top:1rem}.preview-image{max-width:100%;width:100%;height:auto}.form-actions{flex-direction:column;gap:.75rem;margin-top:1.5rem}.no-groups-warning{padding:1rem;font-size:.9rem}.import-actions{flex-direction:column;gap:1rem}.import-instructions{padding:1rem}.import-instructions h4{font-size:1.1rem}.import-instructions ul{margin-left:1rem;font-size:.85rem}.guest-list-container{padding:1.5rem .75rem}.guest-list-header{flex-direction:column;gap:1rem;padding-bottom:1rem;margin-bottom:1.5rem}.guest-list-header h2{font-size:1.6rem}.guest-stats{flex-direction:column;gap:.75rem;width:100%}.stat-card{padding:1rem}.stat-card .stat-number{font-size:1.8rem}.stat-card .stat-label{font-size:.85rem}.group-section{margin-bottom:1rem}.group-header{padding:1rem;flex-wrap:wrap}.group-info h3{font-size:1.3rem}.guest-count{font-size:.85rem;padding:.2rem .5rem}.qr-actions{flex-wrap:wrap;gap:.25rem;margin-top:.5rem}.btn-qr-view,.btn-qr-download{font-size:.75rem;padding:.4rem .6rem;min-width:70px;height:36px}.guests-container{padding:1rem .5rem}.guests-grid{grid-template-columns:1fr;gap:.75rem}.guest-card-detailed{padding:1rem}.guest-main-content{flex-direction:column;text-align:center}.guest-info-section h4{font-size:1.1rem}.guest-info-section p{font-size:.85rem}.guest-image-section{align-self:center;margin-top:.75rem}.guest-id-image-small{width:70px;height:70px}.search-section{margin:1rem 0 1.5rem;padding:1rem}.search-input{padding:.75rem 3rem .75rem .75rem;font-size:.9rem}.clear-search-btn{width:26px;height:26px;font-size:.85rem}.search-results{font-size:.85rem;padding:.5rem}.image-modal img{max-width:95%;max-height:80%}.image-modal-close{width:40px;height:40px;font-size:20px;top:10px;right:10px}.qr-modal-content{padding:1.25rem;max-width:95%}.qr-modal-content h3{font-size:1.2rem;margin-bottom:1rem}.qr-modal-image{width:180px;height:180px;margin-bottom:1rem}.no-data-message h3{font-size:1.4rem}.no-data-message p{font-size:1rem}.loading-message h2,.error-message h2{font-size:1.4rem}.error-message p{font-size:.9rem}}@media(max-width:768px){.guest-image-section{align-self:center}.guest-list-header{flex-direction:column;gap:2rem;text-align:center}.guest-stats{justify-content:center}.guests-grid{grid-template-columns:1fr}.guest-main-content{flex-direction:column;text-align:center}.qr-actions{flex-direction:column;gap:.5rem;margin-bottom:1rem}.btn-qr-view,.btn-qr-download{min-width:100px;font-size:.8rem}}.qr-available{font-size:.9rem;background:#2ecc7133;color:#fff;padding:.25rem .5rem;border-radius:4px;margin-left:.5rem;border:1px solid rgba(46,204,113,.3)}.qr-actions{display:flex;gap:.5rem;align-items:center}.btn-qr-view,.btn-qr-download{background:#fff3;border:2px solid rgba(255,255,255,.3);color:#fff;border-radius:6px;padding:.5rem 1rem;cursor:pointer;transition:all .3s ease;font-size:.9rem;font-weight:500;min-width:80px;height:40px;display:flex;align-items:center;justify-content:center;white-space:nowrap}.btn-qr-view:hover,.btn-qr-download:hover{background:#ffffff4d;border-color:#ffffff80;transform:scale(1.1)}.btn-qr-download:disabled{opacity:.6;cursor:not-allowed;transform:none}.qr-modal-content{background:#fff;border-radius:12px;padding:2rem;text-align:center;max-width:400px;box-shadow:0 8px 32px #00000080}.qr-modal-content h3{color:#2c3e50;margin-bottom:1.5rem;font-size:1.5rem}.qr-modal-image{width:250px;height:250px;border-radius:8px;border:2px solid #ddd;margin-bottom:1.5rem;box-shadow:0 4px 8px #0000001a}.qr-modal-actions{margin-top:1rem}.search-section{margin:2rem 0 3rem;padding:2rem;background:linear-gradient(135deg,#f8f9fa,#e9ecef);border-radius:12px;border:1px solid #dee2e6}.search-container{position:relative;max-width:500px;margin:0 auto}.search-input{width:100%;padding:1rem 3rem 1rem 1.5rem;border:2px solid #ddd;border-radius:8px;font-size:1.1rem;transition:all .3s ease;background:#fff;box-sizing:border-box}.search-input:focus{outline:none;border-color:#3498db;box-shadow:0 0 0 3px #3498db1a;transform:translateY(-2px)}.clear-search-btn{position:absolute;right:1rem;top:50%;transform:translateY(-50%);background:#e74c3c;color:#fff;border:none;border-radius:50%;width:30px;height:30px;cursor:pointer;font-size:1rem;display:flex;align-items:center;justify-content:center;transition:all .3s ease}.clear-search-btn:hover{background:#c0392b;transform:translateY(-50%) scale(1.1)}.search-results{text-align:center;margin:1rem 0 0;background:#3498db1a;padding:.75rem 1rem;border-radius:6px;border:1px solid rgba(52,152,219,.2);color:#2980b9;font-weight:500}.nav-container h1{font-size:1.5rem}.data-display,.create-group-section,.groups-list-section,.guest-form-container{padding:1.5rem}.scan-result-header h2{font-size:2rem}.group-card h4{font-size:1.3rem}.qr-code-image{width:150px;height:150px}.guest-form-container h2{font-size:2rem}.form-actions{gap:.75rem}.import-stats{grid-template-columns:1fr}.guest-list-container{background:#fff;border-radius:12px;padding:3rem 2rem;box-shadow:0 4px 6px #0000001a;width:100%;box-sizing:border-box}.guest-list-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:3rem;padding-bottom:2rem;border-bottom:2px solid #e9ecef}.guest-list-header h2{font-size:2.5rem;color:#2c3e50;margin:0}.guest-stats{display:flex;gap:2rem}.stat-card{background:linear-gradient(135deg,#f8f9fa,#e9ecef);padding:1.5rem 2rem;border-radius:12px;text-align:center;box-shadow:0 2px 4px #0000001a;border:1px solid #dee2e6}.stat-card .stat-number{display:block;font-size:2.5rem;font-weight:700;color:#3498db;margin-bottom:.5rem}.stat-card .stat-label{font-size:1rem;color:#666;font-weight:500}.groups-guest-list{display:flex;flex-direction:column;gap:2rem}.group-section{background:linear-gradient(135deg,#fff,#f8f9fa);border-radius:12px;box-shadow:0 4px 8px #0000001a;border:1px solid #e9ecef;overflow:hidden;transition:all .3s ease}.group-section:hover{box-shadow:0 8px 16px #00000026}.group-header{display:flex;justify-content:space-between;align-items:center;padding:2rem;cursor:pointer;background:linear-gradient(135deg,#3498db,#2980b9);color:#fff;transition:all .3s ease}.group-header:hover{background:linear-gradient(135deg,#2980b9,#1e6fa3)}.group-info h3{margin:0 0 .5rem;font-size:1.8rem;font-weight:600}.guest-count{font-size:1rem;opacity:.9;background:#fff3;padding:.25rem .75rem;border-radius:6px;display:inline-block}.expand-icon{font-size:1.5rem;font-weight:700;transition:transform .3s ease}.guests-container{padding:2rem;background:#f8f9fa}.guests-grid{display:grid;gap:1.5rem}.guest-card-detailed{background:#fff;border-radius:8px;padding:1.5rem;box-shadow:0 2px 4px #0000001a;border:1px solid #e9ecef;transition:all .3s ease}.guest-card-detailed:hover{transform:translateY(-2px);box-shadow:0 4px 8px #00000026}.guest-main-content{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.guest-info-section{flex:1}.guest-info-section h4{margin:0 0 .75rem;font-size:1.3rem;color:#2c3e50;font-weight:600}.guest-info-section p{margin:.5rem 0;color:#666;font-size:1rem}.guest-image-section{flex-shrink:0}.guest-id-image-small{width:80px;height:80px;object-fit:cover;border-radius:8px;border:2px solid #ddd;cursor:pointer;transition:all .3s ease}.guest-id-image-small:hover{transform:scale(1.05);opacity:.8}.no-guests-message{text-align:center;padding:3rem;color:#666}.no-guests-message p{font-size:1.1rem;margin:0}.no-data-message{text-align:center;padding:4rem 2rem;color:#666}.no-data-message h3{font-size:2rem;color:#2c3e50;margin-bottom:1rem}.no-data-message p{font-size:1.2rem}.loading-message,.error-message{text-align:center;padding:4rem 2rem}.loading-message h2{color:#3498db;font-size:2rem}.error-message h2{color:#e74c3c;font-size:2rem;margin-bottom:1rem}.error-message p{color:#666;font-size:1.1rem;margin-bottom:2rem}.refresh-section{text-align:center;margin-top:3rem;padding-top:2rem;border-top:2px solid #e9ecef}
