#root,body,html{height:100%;margin:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;overflow-x:hidden;overflow-y:auto}body.game-no-scroll{overflow:hidden}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.main-layout{background:linear-gradient(135deg,#f5f7fa,#c3cfe2);display:flex;min-height:100vh}.side-menu{background:#fffffff2;box-shadow:2px 0 12px #00000014;display:flex;flex-direction:column;min-width:220px;padding:1rem 0;width:220px}.menu-header{border-bottom:1px solid #eee;padding:0 1rem 1rem}.user-name{color:#2c3e50;font-size:.95rem;font-weight:600}.menu-nav{flex:1 1;padding:.5rem 0}.menu-item{background:none;border:none;box-sizing:border-box;color:#555;cursor:pointer;display:block;font-size:1rem;padding:.75rem 1.25rem;text-align:left;text-decoration:none;transition:background .2s,color .2s;width:100%}.menu-item:hover{background:#f0f0f0;color:#2c3e50}.menu-item.active{background:#27ae60;color:#fff;font-weight:600}.logout-btn{color:#7f8c8d}.logout-btn:hover{background:#fee;color:#c0392b}.menu-footer{border-top:1px solid #eee;padding-top:.5rem}.main-content{flex:1 1;overflow:auto;padding:1.5rem}.game-layout{display:flex;flex-direction:column;min-height:100vh;position:relative}.game-top-bar{left:10px;position:absolute;top:10px;z-index:100}.back-to-menu-btn{background:#ffffffe6;border:2px solid #333;border-radius:8px;box-shadow:0 2px 8px #0003;cursor:pointer;font-size:1rem;font-weight:600;padding:.5rem 1rem}.back-to-menu-btn:hover{background:#fff}.game-outlet{flex:1 1}.login-page{align-items:center;background:linear-gradient(135deg,#f5f7fa,#c3cfe2);display:flex;justify-content:center;min-height:100vh}.login-container{background:#fffffff2;border-radius:12px;box-shadow:0 4px 20px #0000001a;max-width:400px;padding:2.5rem;width:90%}.login-container h1{color:#2c3e50;margin-bottom:1.5rem;text-align:center}.login-form .input-group{margin-bottom:1.25rem;text-align:left}.login-form .input-group label{color:#2c3e50;display:block;font-weight:600;margin-bottom:.5rem}.login-form input{border:2px solid #e1e8ed;border-radius:8px;box-sizing:border-box;font-size:1rem;padding:.9rem;width:100%}.login-form input:focus{border-color:#3498db;outline:none}.login-form .login-btn{background:#3498db;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1.1rem;font-weight:600;margin-top:.5rem;padding:1rem;width:100%}.login-form .login-btn:hover{background:#2980b9}.login-form .error-message{background:#fdf2f2;border-radius:6px;color:#e74c3c;font-size:.95rem;margin-bottom:1rem;padding:.8rem}.game-setup-page{margin:0 auto;max-width:480px}.game-setup-card{background:#fffffff2;border-radius:12px;box-shadow:0 4px 20px #0000001a;padding:2rem}.game-setup-card h1{color:#2c3e50;font-size:1.5rem;margin:0 0 .5rem}.subtitle{color:#7f8c8d;font-size:.95rem;margin-bottom:1.5rem}.form-group{margin-bottom:1.25rem}.form-group label{color:#2c3e50;display:block;font-weight:600;margin-bottom:.35rem}.form-group input[type=number],.form-group input[type=text],.form-group select{background:#fff;border:1px solid #ddd;border-radius:8px;font-size:1rem;padding:.7rem;width:100%}.launch-btn{background:#27ae60;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1.1rem;font-weight:600;margin-top:.5rem;padding:1rem 1.5rem;width:100%}.launch-btn:hover{background:#219a52}.history-page{margin:0 auto;max-width:900px}.history-card{background:#fffffff2;border-radius:12px;box-shadow:0 4px 20px #0000001a;padding:2rem}.history-card h1{color:#2c3e50;margin:0 0 1.5rem}.sessions-table,.teams-table{border-collapse:collapse;width:100%}.sessions-table td,.sessions-table th,.teams-table td,.teams-table th{border-bottom:1px solid #eee;padding:.75rem;text-align:left}.sessions-table th,.teams-table th{background:#f8f9fa;color:#2c3e50;font-weight:600}.sessions-table tr.clickable:hover{background:#f5f5f5;cursor:pointer}.detail-view h2{font-size:1.25rem;margin:0 0 .5rem}.meta{margin-bottom:1.5rem}.detail-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:.5rem}.delete-session-btn{background:#e74c3c;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.9rem;padding:.4rem .8rem}.delete-session-btn:hover:not(:disabled){background:#c0392b}.delete-session-btn:disabled{cursor:not-allowed;opacity:.6}.delete-session-btn.small{font-size:.85rem;padding:.2rem .5rem}.delete-session-btn.small:hover{background:#c0392b}.count-link{background:none;border:none;color:#1d4ed8;cursor:pointer;font:inherit;padding:0;text-decoration:underline}.count-link:hover{color:#1e40af}.history-tasks-page{margin:0 auto;max-width:980px}.history-tasks-card{background:#fffffff2;border-radius:12px;box-shadow:0 4px 20px #0000001a;padding:2rem}.history-tasks-card h1{color:#2c3e50;margin:0 0 .75rem}.header-row{margin-bottom:.75rem}.back-link{padding:0}.back-link:hover{text-decoration:underline}.meta{margin:0 0 1.2rem}.tasks-table{border-collapse:collapse;width:100%}.tasks-table td,.tasks-table th{border-bottom:1px solid #eee;padding:.75rem;text-align:left;vertical-align:top}.tasks-table th{background:#f8f9fa;color:#2c3e50;font-weight:600}.empty{padding:1rem 0}.tasks-page{margin:0 auto;max-width:900px}.tasks-card{background:#fffffff2;border-radius:12px;box-shadow:0 4px 20px #0000001a;padding:2rem}.tasks-card h1{color:#2c3e50;margin:0 0 1.5rem}.error-msg{background:#fee;border-radius:8px;color:#c0392b;margin-bottom:1rem;padding:.75rem}.create-btn{font-size:1rem;margin-bottom:1rem;padding:.6rem 1.2rem}.packs-table,.tasks-table{border-collapse:collapse;width:100%}.packs-table td,.packs-table th,.tasks-table td,.tasks-table th{border-bottom:1px solid #eee;padding:.75rem;text-align:left}.text-cell{max-width:400px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.btn-delete,.btn-view{border:none;border-radius:6px;cursor:pointer;font-size:.9rem;margin-right:.5rem;padding:.35rem .75rem}.btn-view{background:#3498db;color:#fff}.pack-detail h2{margin:0 0 .5rem}.back-link{background:none;border:none;color:#27ae60;cursor:pointer;font-size:1rem}.back-link,.meta{margin-bottom:1rem}.meta{color:#7f8c8d}.excel-form{align-items:center;display:flex;gap:.5rem;margin-bottom:1rem}.hint{color:#7f8c8d;font-size:.85rem;margin:-.5rem 0 1rem}.task-thumb{max-height:40px;max-width:60px;object-fit:contain}.upload-label{color:#3498db;cursor:pointer;font-size:.9rem}.upload-label:hover{text-decoration:underline}.empty{color:#7f8c8d;padding:1rem}.modal-overlay{background:#0006}.modal{min-width:320px}.modal-wide{min-width:420px}.modal h3{margin:0 0 1rem}.form-row label{margin-bottom:.25rem}.form-row input,.form-row select{padding:.5rem}.modal-btns{display:flex;gap:.5rem;margin-top:1rem}.accounts-page{background:linear-gradient(135deg,#f5f7fa,#c3cfe2);min-height:100vh;padding:2rem}.accounts-container{background:#fff;border-radius:12px;box-shadow:0 4px 20px #0000001a;margin:0 auto;max-width:640px;padding:2rem}.accounts-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1.5rem}.accounts-header h1{color:#2c3e50;margin:0}.back-btn{background:#95a5a6;border:none;border-radius:6px;color:#fff;cursor:pointer;font-weight:600;padding:.6rem 1rem}.back-btn:hover{background:#7f8c8d}.create-btn{background:#27ae60;border:none;border-radius:8px;color:#fff;cursor:pointer;font-weight:600;margin-bottom:1.5rem;padding:.9rem 1.5rem}.create-btn:hover{background:#219a52}.users-list{display:flex;flex-direction:column;gap:.75rem}.user-card{background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;justify-content:space-between;padding:1rem}.user-card,.user-info{align-items:center;display:flex}.user-info{gap:1rem}.user-login{color:#2c3e50;font-weight:600}.user-role{background:#ecf3ff;border-radius:6px;color:#1f4b8c;font-size:.85rem;padding:.25rem .6rem}.user-actions{display:flex;gap:.5rem}.btn-delete,.btn-edit{border:none;border-radius:6px;cursor:pointer;font-size:.9rem;padding:.5rem 1rem}.btn-edit{background:#3498db;color:#fff}.btn-edit:hover{background:#2980b9}.btn-delete{background:#e74c3c;color:#fff}.btn-delete:hover{background:#c0392b}.error-message{margin-bottom:1rem}.modal-overlay{align-items:center;background:#00000080;display:flex;inset:0;justify-content:center;position:fixed;z-index:1000}.modal{background:#fff;border-radius:12px;max-width:400px;padding:2rem;width:90%}.modal h2{color:#2c3e50;margin-bottom:1.5rem;margin-top:0}.form-row{margin-bottom:1rem;text-align:left}.form-row label{color:#34495e;display:block;font-weight:500;margin-bottom:.4rem}.form-row input,.form-row select{border:2px solid #e1e8ed;border-radius:6px;box-sizing:border-box;font-size:1rem;padding:.8rem;width:100%}.form-row input:focus,.form-row select:focus{border-color:#3498db;outline:none}.permissions-list{display:flex;flex-direction:column;gap:.45rem}.permissions-list label{align-items:center;display:flex;font-weight:400;gap:.5rem;margin-bottom:0}.permissions-list input[type=checkbox]{width:auto}.form-row small{color:#5d6d7e;display:block;margin-top:.5rem}.modal-buttons{display:flex;gap:.75rem;justify-content:flex-end;margin-top:1.5rem}.modal-buttons button{border:none;border-radius:6px;cursor:pointer;font-weight:600;padding:.7rem 1.2rem}.modal-buttons button[type=button]{background:#bdc3c7;color:#2c3e50}.modal-buttons button[type=submit]{background:#3498db;color:#fff}.modal-buttons button[type=submit]:hover{background:#2980b9}*{box-sizing:border-box;margin:0;padding:0}.App{align-items:center;background:linear-gradient(135deg,#f5f7fa,#c3cfe2);display:flex;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;justify-content:center;min-height:100vh}.container{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2;border-radius:12px;box-shadow:0 4px 20px #0000001a,0 0 0 1px #fffc;max-width:480px;padding:2.5rem;text-align:center;width:90%}h1{color:#2c3e50;font-size:1.8rem;font-weight:600}h1,h2{margin-bottom:1.5rem}h2{color:#34495e;font-weight:500}.login-section{display:block}.input-group{margin-bottom:1.5rem;text-align:left}.input-group label{color:#2c3e50;display:block;font-size:.95rem;font-weight:600;margin-bottom:.5rem}.form-input{background:#fafbfc;border:2px solid #e1e8ed;border-radius:8px;font-size:1rem;padding:1rem;transition:all .3s ease;width:100%}.form-input:focus{background:#fff;border-color:#3498db;box-shadow:0 0 0 3px #3498db1a;outline:none}.login-btn{background:#3498db;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1.1rem;font-weight:600;margin-bottom:1.5rem;padding:1rem 2rem;transition:all .3s ease;width:100%}.login-btn:hover{background:#2980b9;box-shadow:0 4px 12px #3498db4d;transform:translateY(-1px)}.user-hints{background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;margin-bottom:1.5rem;padding:1.2rem;text-align:left}.user-hints p{color:#555;font-size:.9rem;margin:.4rem 0}.user-hints code{background:#e9ecef;border-radius:4px;color:#2c3e50;font-family:Courier New,monospace;font-weight:700;padding:.2rem .4rem}.admin-panel{display:block}.welcome-text{color:#7f8c8d;font-size:1.1rem;font-style:italic;margin-bottom:2rem}.action-buttons{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr;margin-bottom:2rem}.action-btn{border:none;border-radius:8px;box-shadow:0 2px 8px #00000026;color:#fff;cursor:pointer;font-size:1.1rem;font-weight:600;padding:1.2rem;transition:all .3s ease}.redirect-btn{background:#e67e22}.redirect-btn:hover{background:#d35400;box-shadow:0 4px 12px #e67e224d;transform:translateY(-2px)}.function-btn-1{background:#9b59b6}.function-btn-1:hover{background:#8e44ad;box-shadow:0 4px 12px #9b59b64d;transform:translateY(-2px)}.function-btn-2{background:#3498db}.function-btn-2:hover{background:#2980b9;box-shadow:0 4px 12px #3498db4d;transform:translateY(-2px)}.logout-btn{background:#95a5a6;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;padding:.8rem 1.5rem;transition:all .3s ease}.logout-btn:hover{background:#7f8c8d;transform:translateY(-1px)}.error-message{background:#fdf2f2;border-left:4px solid #e74c3c;border-radius:6px;color:#e74c3c;font-weight:500;margin-top:1rem;padding:.8rem}@media (max-width:480px){.container{margin:1rem;padding:2rem 1.5rem}h1{font-size:1.5rem}.action-btn{font-size:1rem;padding:1rem}}