html:has(.admin-dashboard),html:has(.admin-login){overflow:hidden}body:has(.admin-dashboard),body:has(.admin-login){overflow:hidden;padding:0}.admin-dashboard,.admin-login{position:fixed;top:0;left:0;right:0;bottom:0;width:100vw;max-width:none!important;margin:0!important;padding:0!important}.admin-dashboard{display:flex;flex-direction:column;overflow:hidden}.admin-login{min-height:100vh;display:flex;justify-content:center;align-items:center;background:linear-gradient(135deg,#faf5ff,#f0f9ff 50%,#f5f3ff)}.admin-login-box{background:rgba(255,255,255,.7);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);padding:2.5rem;border-radius:1.5rem;box-shadow:0 8px 32px rgba(0,0,0,.08);width:100%;max-width:400px;border:1px solid rgba(167,139,250,.2)}.admin-login-box h1{margin:0 0 2rem;text-align:center;color:#374155;font-weight:700;font-size:1.5rem}.form-group{margin-bottom:1.25rem}.form-group label{display:block;margin-bottom:.5rem;font-weight:500;color:#64748b;font-size:.875rem}.form-group input{width:100%;padding:.875rem 1rem;border:1px solid rgba(167,139,250,.3);border-radius:.75rem;font-size:1rem;transition:all .2s ease;background:white;outline:none}.form-group input:focus{border-color:#a78bfa;box-shadow:0 0 0 3px rgba(167,139,250,.15)}.error-message{color:#ef4444;font-size:.875rem;margin-bottom:1rem;padding:.75rem 1rem;background:#fef2f2;border:1px solid #fecaca;border-radius:.75rem;text-align:center}.admin-login-box button{width:100%;padding:.875rem;background:linear-gradient(135deg,#a78bfa,#c4b5fd);color:white;border:none;border-radius:.75rem;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s ease;margin-top:.5rem}.admin-login-box button:hover{background:linear-gradient(135deg,#8b5cf6,#a78bfa);box-shadow:0 4px 16px rgba(139,92,246,.3)}.admin-login-box button:disabled{background:#e2e8f0;color:#94a3b8;cursor:not-allowed;box-shadow:none}.admin-dashboard{background:linear-gradient(135deg,#faf5ff,#f0f9ff 50%,#f5f3ff)}.admin-header{background:rgba(255,255,255,.7);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid rgba(167,139,250,.2);padding:0 2rem;height:4rem;justify-content:space-between;flex-shrink:0;z-index:10}.admin-header,.admin-header h1{display:flex;align-items:center}.admin-header h1{margin:0;font-size:1.25rem;color:#374155;font-weight:700;gap:.75rem}.admin-header h1:before{content:"";display:block;width:2.5rem;height:2.5rem;background:linear-gradient(135deg,#a78bfa,#c4b5fd);border-radius:.75rem}.logout-btn{background:transparent;color:#64748b;border:none;padding:.5rem 1rem;border-radius:.5rem;cursor:pointer;font-size:.875rem;font-weight:500;transition:all .2s ease}.logout-btn:hover{background:rgba(167,139,250,.1);color:#374155}.admin-nav{background:rgba(255,255,255,.5);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-bottom:1px solid rgba(167,139,250,.15);display:flex;padding:0 2rem;gap:.25rem;flex-shrink:0;z-index:10}.nav-tab{padding:1rem 1.5rem;background:transparent;border:none;border-bottom:2px solid transparent;cursor:pointer;font-size:.875rem;color:#64748b;font-weight:500;transition:all .2s ease;display:flex;align-items:center;gap:.5rem}.nav-tab:hover{color:#374155;background:rgba(167,139,250,.08)}.nav-tab.active{color:#7c3aed;border-bottom-color:#a78bfa}.admin-content-wrapper{flex:1 1;width:100%;overflow-y:scroll}.admin-content{padding:2rem;width:100%;max-width:1400px;margin:0 auto;box-sizing:border-box}.dashboard-tab h2,.groups-tab h2,.responses-tab h2{margin:0 0 1.5rem;color:#374155;font-weight:700;font-size:1.25rem}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));grid-gap:1.5rem;gap:1.5rem}.stat-card{background:rgba(255,255,255,.6);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);padding:1.5rem;border-radius:1rem;border:1px solid rgba(167,139,250,.2);text-align:center;transition:all .2s ease}.stat-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.08)}.stat-value{font-size:2.5rem;font-weight:700;color:#a78bfa}.stat-label{color:#64748b;margin-top:.5rem;font-size:.875rem}.placeholder-text{color:#64748b;-webkit-backdrop-filter:blur(8px);padding:3rem;border-radius:1rem;text-align:center;border:2px dashed rgba(167,139,250,.3)}.placeholder-text,.responses-table-wrapper{background:rgba(255,255,255,.6);backdrop-filter:blur(8px)}.responses-table-wrapper{-webkit-backdrop-filter:blur(8px);border-radius:1rem;overflow:hidden;border:1px solid rgba(167,139,250,.2)}.responses-table{width:100%;border-collapse:collapse}.responses-table td,.responses-table th{padding:1rem 1.5rem;text-align:left;border-bottom:1px solid rgba(167,139,250,.1)}.responses-table th{background:rgba(167,139,250,.08);font-weight:600;color:#374155;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em}.responses-table tbody tr{transition:all .15s ease}.responses-table tbody tr:hover{background:rgba(167,139,250,.05)}.session-id{font-family:SF Mono,Monaco,Inconsolata,Roboto Mono,monospace;color:#64748b;background:rgba(167,139,250,.1);padding:.25rem .5rem;border-radius:.375rem;font-size:.8rem}.no-data{color:#94a3b8}.expand-btn{padding:.375rem .875rem;font-size:.8rem;background:rgba(167,139,250,.1);border:none;border-radius:.5rem;cursor:pointer;color:#7c3aed;font-weight:500;transition:all .15s ease}.expand-btn:hover{background:rgba(167,139,250,.2)}.expanded-row{background:rgba(167,139,250,.03)!important}.response-details{padding:1.5rem}.detail-table{width:100%;border-collapse:collapse;font-size:.875rem;border-radius:.5rem;overflow:hidden;border:1px solid rgba(167,139,250,.15)}.detail-table td,.detail-table th{padding:.75rem 1rem;border-bottom:1px solid rgba(167,139,250,.1)}.detail-table th{background:rgba(167,139,250,.08);color:#374155;font-weight:600;text-align:left}.detail-table td{background:white}.detail-table tr:last-child td{border-bottom:none}.no-data-message{color:#64748b}.loading,.no-data-message{padding:4rem;text-align:center;font-size:.95rem}.loading{color:#a78bfa}.status-badge{display:inline-flex;align-items:center;padding:.25rem .625rem;border-radius:9999px;font-size:.75rem;font-weight:500}.status-badge.success{background:#dcfce7;color:#166534}.status-badge.pending{background:#fef9c3;color:#854d0e}.groups-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.groups-header h2{margin:0}.add-group-btn{background:linear-gradient(135deg,#a78bfa,#c4b5fd);color:white;border:none;padding:.75rem 1.25rem;border-radius:.75rem;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease}.add-group-btn:hover{background:linear-gradient(135deg,#8b5cf6,#a78bfa);box-shadow:0 4px 16px rgba(139,92,246,.3)}.groups-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));grid-gap:1.25rem;gap:1.25rem}.group-card{background:rgba(255,255,255,.7);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-radius:1rem;padding:1.25rem;border:1px solid rgba(167,139,250,.2);transition:all .2s ease}.group-card:hover{box-shadow:0 8px 24px rgba(0,0,0,.08);transform:translateY(-2px)}.group-card.paused{opacity:.65;background:rgba(248,250,252,.7)}.group-card-header{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem}.group-card-header.clickable{cursor:pointer;padding:.5rem;margin:-.5rem -.5rem .25rem;border-radius:.5rem;transition:all .15s ease}.group-card-header.clickable:hover{background:rgba(167,139,250,.1)}.group-card-header h3{margin:0;font-size:1rem;font-weight:600;color:#374155;flex:1 1}.chevron-icon{width:16px;height:16px;color:#94a3b8;transition:all .15s ease}.group-card-header.clickable:hover .chevron-icon{color:#7c3aed;transform:translateX(2px)}.status-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.status-dot.active{background:#22c55e;box-shadow:0 0 8px rgba(34,197,94,.5)}.status-dot.paused{background:#f59e0b}.stat-item.koss-badge{background:linear-gradient(135deg,#f59e0b,#d97706)}.stat-item.koss-badge,.stat-item.test-badge{color:white;padding:.125rem .5rem;border-radius:.25rem;font-size:.7rem;font-weight:600}.stat-item.test-badge{background:linear-gradient(135deg,#64748b,#475569)}.group-url{display:flex;align-items:center;gap:.5rem;background:rgba(167,139,250,.08);padding:.5rem .75rem;border-radius:.5rem;cursor:pointer;transition:all .15s ease;margin-bottom:.75rem}.group-url:hover{background:rgba(167,139,250,.15)}.url-text{font-family:SF Mono,Monaco,Inconsolata,Roboto Mono,monospace;font-size:.8rem;color:#7c3aed;flex:1 1}.copy-icon{width:16px;height:16px;color:#64748b}.copy-icon.copied{color:#22c55e}.group-stats{display:flex;gap:1rem;margin-bottom:1rem}.stat-item{display:flex;align-items:center;gap:.375rem;font-size:.8rem;color:#64748b}.stat-item.completed{color:#16a34a}.stat-item.in-progress{color:#d97706}.stat-item svg{width:14px;height:14px}.group-actions{display:flex;gap:.5rem}.action-btn{flex:1 1;padding:.5rem;border:none;border-radius:.5rem;font-size:.75rem;font-weight:500;cursor:pointer;transition:all .15s ease}.action-btn.pause{background:rgba(245,158,11,.1);color:#d97706}.action-btn.pause:hover{background:rgba(245,158,11,.2)}.action-btn.resume{background:rgba(34,197,94,.1);color:#16a34a}.action-btn.resume:hover{background:rgba(34,197,94,.2)}.action-btn.edit{background:rgba(167,139,250,.1);color:#7c3aed}.action-btn.edit:hover{background:rgba(167,139,250,.2)}.action-btn.delete{background:rgba(239,68,68,.1);color:#dc2626}.action-btn.delete:hover{background:rgba(239,68,68,.2)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.4);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;justify-content:center;align-items:center;z-index:100}.modal-content{background:white;border-radius:1rem;padding:1.5rem;width:100%;max-width:400px;box-shadow:0 20px 60px rgba(0,0,0,.15)}.modal-content h3{margin:0 0 1.25rem;font-size:1.125rem;font-weight:600;color:#374155}.url-display{font-family:SF Mono,Monaco,Inconsolata,Roboto Mono,monospace;font-size:.875rem;color:#7c3aed;background:rgba(167,139,250,.08);padding:.75rem 1rem;border-radius:.5rem}.modal-actions{display:flex;gap:.75rem;margin-top:1.5rem}.cancel-btn{flex:1 1;padding:.75rem;background:#f1f5f9;color:#64748b;border:none;border-radius:.75rem;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .15s ease}.cancel-btn:hover{background:#e2e8f0;color:#374155}.save-btn{flex:1 1;padding:.75rem;background:linear-gradient(135deg,#a78bfa,#c4b5fd);color:white;border:none;border-radius:.75rem;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .15s ease}.save-btn:hover{background:linear-gradient(135deg,#8b5cf6,#a78bfa);box-shadow:0 4px 16px rgba(139,92,246,.3)}.save-btn:disabled{background:#e2e8f0;color:#94a3b8;cursor:not-allowed;box-shadow:none}.group-detail-page{padding:0}.group-detail-header{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem}.back-btn{background:transparent;border:none;color:#64748b;font-size:.875rem;cursor:pointer;padding:.5rem;border-radius:.5rem;transition:all .15s ease}.back-btn:hover{background:rgba(167,139,250,.1);color:#374155}.group-detail-header h2{margin:0;flex:1 1;color:#374155;font-weight:700;font-size:1.25rem}.status-badge.active{background:#dcfce7;color:#166534}.status-badge.paused{background:#fef3c7;color:#92400e}.group-detail-tabs{display:flex;gap:.5rem;margin-bottom:1.5rem}.tab-btn{padding:.75rem 1.25rem;background:rgba(255,255,255,.6);border:1px solid rgba(167,139,250,.2);border-radius:.75rem;font-size:.875rem;color:#64748b;cursor:pointer;transition:all .15s ease}.tab-btn:hover{background:rgba(167,139,250,.1);color:#374155}.tab-btn.active{background:linear-gradient(135deg,#a78bfa,#c4b5fd);color:white;border-color:transparent}.sessions-table-wrapper{background:rgba(255,255,255,.6);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-radius:1rem;overflow:hidden;border:1px solid rgba(167,139,250,.2)}.sessions-table{width:100%;border-collapse:collapse}.sessions-table td,.sessions-table th{padding:1rem 1.25rem;text-align:left;border-bottom:1px solid rgba(167,139,250,.1)}.sessions-table th{background:rgba(167,139,250,.08);font-weight:600;color:#374155;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em}.sessions-table tbody tr{transition:all .15s ease}.sessions-table tbody tr:hover{background:rgba(167,139,250,.05)}.sessions-table td.agreed{color:#16a34a;font-weight:500}.sessions-table td.not-agreed{color:#dc2626;font-weight:500}.progress-cell{display:flex;flex-direction:column;gap:.375rem}.mini-progress-bar{width:100%;max-width:150px;height:6px;background:rgba(167,139,250,.15);border-radius:3px;overflow:hidden}.mini-progress-fill{height:100%;background:linear-gradient(90deg,#a78bfa,#8b5cf6);border-radius:3px;transition:width .3s ease}.progress-cell .progress-text{font-size:.75rem;color:#64748b}.error{padding:4rem;text-align:center;color:#dc2626;font-size:.95rem}.download-section{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem;padding:1rem;background:rgba(255,255,255,.6);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-radius:.75rem;border:1px solid rgba(167,139,250,.2)}.download-label{font-size:.875rem;font-weight:600;color:#374155;margin-right:.5rem}.download-btn{padding:.5rem 1rem;background:linear-gradient(135deg,#a78bfa,#8b5cf6);color:white;border:none;border-radius:.5rem;font-size:.8125rem;font-weight:500;cursor:pointer;transition:all .15s ease}.download-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px rgba(139,92,246,.3)}.download-btn:disabled{background:#e2e8f0;color:#94a3b8;cursor:not-allowed}.checkbox-group{margin-top:.5rem}.checkbox-group .checkbox-label{display:flex;align-items:center;gap:.75rem;cursor:pointer;padding:.75rem 1rem;background:rgba(167,139,250,.05);border:1px solid rgba(167,139,250,.2);border-radius:.75rem;transition:all .15s ease}.checkbox-group .checkbox-label:hover{background:rgba(167,139,250,.1);border-color:rgba(167,139,250,.3)}.checkbox-group .checkbox-label input[type=checkbox]{width:18px;height:18px;accent-color:#a78bfa;cursor:pointer}.checkbox-group .checkbox-label span{font-size:.875rem;color:#374155}.uuid-cell{font-size:.75rem;max-width:320px;word-break:break-all}.uuid-cell,.uuid-cell-full{font-family:SF Mono,Monaco,Inconsolata,Roboto Mono,monospace}.uuid-cell-full{font-size:.8rem;white-space:nowrap}.uuid-link{color:#64748b;text-decoration:none;background:rgba(167,139,250,.1);padding:.25rem .5rem;border-radius:.375rem;transition:all .15s ease}.uuid-link:hover{background:rgba(167,139,250,.2);color:#7c3aed}.no-uuid{color:#94a3b8}@font-face{font-family:Pretendard;src:url(/PretendardVariable.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap}:root{font-family:Pretendard,-apple-system,BlinkMacSystemFont,system-ui,sans-serif;line-height:1.6;font-weight:400;color:#374151;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{margin:0;min-height:100vh}h1,h2{color:#1f2937;font-weight:600}button{border-radius:12px;border:none;padding:.8em 1.5em;font-size:1em;font-weight:500;font-family:inherit;cursor:pointer;transition:all .2s ease}button:focus,button:focus-visible{outline:3px solid rgba(139,92,246,.4);outline-offset:2px}