*{box-sizing:border-box}body{margin:0;padding:0;font-family:system-ui,-apple-system,sans-serif;color:#000;background-color:#fff}h1,h2,h3,h4,h5,h6{margin:0;padding:0}button{font-family:inherit;cursor:pointer}input,select{font-family:inherit}.admin-login{padding:2rem;max-width:400px;margin:2rem auto}.admin-login form{display:flex;flex-direction:column;gap:1rem}.admin-login input{padding:.5rem;border:1px solid #ccc}.admin-login button{padding:.5rem;border:1px solid #ccc;background:#000;color:#fff}.admin-login .error{padding:.5rem;border:1px solid #f00;background:#fee;color:#000}.session-list{padding:1rem}.create-session{display:flex;gap:1rem;margin-bottom:1rem}.create-session input{flex:1;padding:.5rem;border:1px solid #ccc}.create-session button{padding:.5rem 1rem;border:1px solid #ccc;background:#000;color:#fff}.sessions{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1rem}.session-card{padding:1rem;border:1px solid #ccc}.session-card h2{margin-bottom:.5rem}.session-card p{margin:.25rem 0}.create-session-message{margin-top:.5rem;padding:.5rem;border:1px solid #f00;background:#fee;color:#000;font-size:.9rem}.create-session input:disabled,.create-session button:disabled{opacity:.5;cursor:not-allowed}.session-detail{padding:1rem}.back-button{margin-bottom:1rem;padding:.5rem 1rem;border:1px solid #ccc;background:#fff}.session-actions{margin-bottom:1rem}.start-button,.end-button{padding:.5rem 1rem;border:1px solid #ccc;background:#000;color:#fff}.teams-list{margin-top:1rem}.click-hint{color:#666;font-style:italic;margin-bottom:1rem}.team-card{padding:1rem;margin-bottom:1rem;border:1px solid #ccc;transition:background-color .2s,border-color .2s}.team-card[style*=pointer]{cursor:pointer}.team-card[style*=pointer]:hover{background-color:#f5f5f5;border-color:#000}.team-card h3{margin-bottom:.5rem}.team-card p{margin:.25rem 0}.target-section{margin-top:1rem;padding-top:1rem;border-top:1px solid #eee;display:flex;gap:.5rem;align-items:center}.target-section select{flex:1;padding:.5rem;border:1px solid #ccc}.target-section button{padding:.5rem 1rem;border:1px solid #ccc;background:#fff}.target-section button:disabled{opacity:.5}.team-detail{padding:1rem;max-width:1200px;margin:0 auto}.team-detail-header{display:flex;align-items:center;gap:1rem;margin-bottom:2rem}.team-detail-header h1{margin:0}.back-button{padding:.5rem 1rem;border:1px solid #ccc;background:#fff;color:#000;cursor:pointer;text-decoration:none}.back-button:hover{background:#f0f0f0}.team-info{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1rem;margin-bottom:2rem}.info-section,.target-section,.targets-section{padding:1rem;border:1px solid #ccc;background:#fff}.info-section h2,.target-section h2,.targets-section h2{margin-top:0;margin-bottom:1rem}.target-description{color:#666;font-style:italic;margin-top:.5rem}.targets-list{list-style:none;padding:0;margin:0}.targets-list li{padding:.5rem;margin-bottom:.5rem;border:1px solid #eee}.targets-list li.found{background:#efe;border-color:#0a0}.targets-list li.current{background:#eef;border-color:#00a;font-weight:700}.activity-section{padding:1rem;border:1px solid #ccc;background:#fff}.activity-section h2{margin-top:0;margin-bottom:1rem}.messages-container{max-height:600px;overflow-y:auto;padding:1rem;border:1px solid #eee;display:flex;flex-direction:column;gap:1rem}.message-header{display:flex;justify-content:space-between;margin-bottom:.5rem;font-size:.9em;color:#666}.message-role{font-weight:700;text-transform:uppercase}.message-time{font-size:.85em}.message-image{max-width:100%;margin-bottom:.5rem;border:1px solid #ccc}.message-content{color:#000;margin-bottom:.5rem}.correct-badge{display:inline-block;margin-top:.5rem;padding:.25rem .5rem;border:1px solid #0a0;background:#efe;color:#000;font-weight:700}.admin-nav{display:flex;justify-content:flex-end;padding:1rem;gap:.5rem}.admin-nav__link{padding:.5rem 1rem;border:1px solid #ccc;background:#000;color:#fff;text-decoration:none;cursor:pointer;transition:background .2s ease,color .2s ease}.admin-nav__link:hover{background:#111}.admin-nav__link:focus-visible{outline:2px solid #2563eb;outline-offset:2px}.team-registration{padding:2rem;max-width:400px;margin:2rem auto}.team-registration form{display:flex;flex-direction:column;gap:1rem}.team-registration select,.team-registration input{padding:.5rem;border:1px solid #ccc}.team-registration button{padding:.5rem;border:1px solid #ccc;background:#000;color:#fff}.team-registration .error{padding:.5rem;border:1px solid #f00;background:#fee;color:#000}.team-registration .no-session-message{padding:1rem;margin-bottom:1rem;border:1px solid #ccc;background:#fff;color:#000;text-align:center}.team-registration .no-session-message p{margin:.5rem 0}.team-registration input:disabled,.team-registration button:disabled{opacity:.5;cursor:not-allowed}.team-registration .session-info{margin-bottom:1rem;padding:.75rem;border:1px solid #ccc;background:#f9f9f9}.team-registration .join-session-text{margin:0;font-size:1.1rem}.hunt-interface{display:flex;flex-direction:column;height:calc(100vh - 100px);padding:1rem}.hunt-header{margin-bottom:1rem;padding:1rem;border:1px solid #ccc}.status-waiting,.status-searching,.status-completed{margin-top:.5rem;padding:.5rem;border:1px solid #ccc;background:#fff;color:#000}.messages-container{flex:1;overflow-y:auto;padding:1rem;border:1px solid #ccc;margin-bottom:1rem;display:flex;flex-direction:column;gap:1rem}.message{padding:1rem;border:1px solid #ccc;max-width:80%}.message.user{align-self:flex-end;background:#f0f0f0}.message.assistant{align-self:flex-start;background:#fff}.message-image{max-width:100%;margin-bottom:.5rem}.message-content{color:#000}.correct-badge{display:block;margin-top:.5rem;padding:.25rem .5rem;border:1px solid #0a0;background:#efe;color:#000}.photo-upload{padding:1rem;border:1px solid #ccc;text-align:center}.camera-button{padding:1rem 2rem;border:1px solid #ccc;background:#000;color:#fff}.image-preview{max-width:100%;max-height:300px;margin-top:1rem;border:1px solid #ccc}.lobby-teams{margin-bottom:1rem;padding:1rem;border:1px solid #ccc;background:#f9f9f9}.lobby-teams h2{margin-top:0;margin-bottom:1rem}.lobby-teams .teams-list{display:flex;flex-wrap:wrap;gap:.5rem}.lobby-teams .team-card{padding:.5rem 1rem;border:1px solid #ccc;background:#fff;color:#000}.lobby-teams .team-card.current-team{border-color:#000;background:#000;color:#fff}.lobby-teams .you-badge{margin-left:.5rem;font-size:.9em;opacity:.8}.connection-banner{position:fixed;top:0;left:0;right:0;background-color:#f44;color:#fff;padding:.75rem 1rem;z-index:1000;box-shadow:0 2px 4px #0003}.connection-banner-content{display:flex;align-items:center;justify-content:center;gap:.5rem;max-width:1200px;margin:0 auto}.connection-banner-icon{font-size:1.2rem}.connection-banner-text{font-weight:500}.display-ai-image-generator{display:flex;flex-direction:column;justify-content:center;align-items:center}.ai-image-generator{display:flex;flex-direction:column;justify-content:flex-start;align-items:center;min-height:100vh;padding:2rem;background-color:#000}.ai-image-generator .card{background-color:#fff;border:1px solid #e5e7eb;border-radius:1rem;padding:2rem;box-shadow:0 10px 15px #0000001a;max-width:400px;width:100%;display:flex;flex-direction:column;align-items:center}.ai-image-generator .card h2{font-size:1.75rem;font-weight:700;color:#1f2937;margin-bottom:1.5rem;text-align:center}.ai-image-generator .card input[type=text],.ai-image-generator .card input[type=file]{width:100%;padding:.75rem 1rem;border:1px solid #d1d5db;border-radius:.5rem;margin-bottom:1rem;font-size:1rem;outline:none;transition:border-color .2s,box-shadow .2s}.ai-image-generator .card input[type=text]:focus,.ai-image-generator .card input[type=file]:focus{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f64d}.ai-image-generator .card button{width:100%;padding:.75rem 1rem;font-size:1rem;font-weight:500;border-radius:.5rem;border:none;cursor:pointer;transition:background-color .2s;margin-bottom:1rem}.ai-image-generator .card .generate-btn{background-color:#2563eb;color:#fff}.ai-image-generator .card .generate-btn:hover{background-color:#1d4ed8}.ai-image-generator .card .generate-btn:disabled{background-color:#93c5fd;cursor:not-allowed}.ai-image-generator .card .print-btn{background-color:#16a34a;color:#fff}.ai-image-generator .card .print-btn:hover{background-color:#15803d}.ai-image-generator .card .loading{color:#6b7280;text-align:center;margin-bottom:1rem}.ai-image-generator .card .error{color:#dc2626;margin-bottom:1rem;text-align:center}.ai-image-generator .card .preview-image{width:100%;border-radius:.75rem;margin-bottom:1rem;border:1px solid #d1d5db;box-shadow:0 4px 8px #00000014}.ai-image-generator .card .generated-image{width:100%;border-radius:.75rem;box-shadow:0 5px 10px #0000001a;border:1px solid #d1d5db;margin-bottom:1rem}.app{min-height:100vh;padding-top:0}.app-nav{display:flex;gap:1rem;padding:1rem;border-bottom:1px solid #ccc}.app-nav button{padding:.5rem 1rem;border:1px solid #ccc;background:#fff}.app-nav button.active{background:#000;color:#fff}
