:root{--react-pdf-annotation-layer: 1;--annotation-unfocused-field-background: url("data:image/svg+xml;charset=UTF-8,<svg width='1px' height='1px' xmlns='http://www.w3.org/2000/svg'><rect width='100%' height='100%' style='fill:rgba(0, 54, 255, 0.13);'/></svg>");--input-focus-border-color: Highlight;--input-focus-outline: 1px solid Canvas;--input-unfocused-border-color: transparent;--input-disabled-border-color: transparent;--input-hover-border-color: black;--link-outline: none}@media screen and (forced-colors: active){:root{--input-focus-border-color: CanvasText;--input-unfocused-border-color: ActiveText;--input-disabled-border-color: GrayText;--input-hover-border-color: Highlight;--link-outline: 1.5px solid LinkText}.annotationLayer .textWidgetAnnotation :is(input,textarea):required,.annotationLayer .choiceWidgetAnnotation select:required,.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input:required{outline:1.5px solid selectedItem}.annotationLayer .linkAnnotation:hover{-webkit-backdrop-filter:invert(100%);backdrop-filter:invert(100%)}}.annotationLayer{position:absolute;top:0;left:0;pointer-events:none;transform-origin:0 0;z-index:3}.annotationLayer[data-main-rotation="90"] .norotate{transform:rotate(270deg) translate(-100%)}.annotationLayer[data-main-rotation="180"] .norotate{transform:rotate(180deg) translate(-100%,-100%)}.annotationLayer[data-main-rotation="270"] .norotate{transform:rotate(90deg) translateY(-100%)}.annotationLayer canvas{position:absolute;width:100%;height:100%}.annotationLayer section{position:absolute;text-align:initial;pointer-events:auto;box-sizing:border-box;margin:0;transform-origin:0 0}.annotationLayer .linkAnnotation{outline:var(--link-outline)}.annotationLayer :is(.linkAnnotation,.buttonWidgetAnnotation.pushButton)>a{position:absolute;font-size:1em;top:0;left:0;width:100%;height:100%}.annotationLayer :is(.linkAnnotation,.buttonWidgetAnnotation.pushButton)>a:hover{opacity:.2;background:#ff0;box-shadow:0 2px 10px #ff0}.annotationLayer .textAnnotation img{position:absolute;cursor:pointer;width:100%;height:100%;top:0;left:0}.annotationLayer .textWidgetAnnotation :is(input,textarea),.annotationLayer .choiceWidgetAnnotation select,.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input{background-image:var(--annotation-unfocused-field-background);border:2px solid var(--input-unfocused-border-color);box-sizing:border-box;font:calc(9px * var(--scale-factor)) sans-serif;height:100%;margin:0;vertical-align:top;width:100%}.annotationLayer .textWidgetAnnotation :is(input,textarea):required,.annotationLayer .choiceWidgetAnnotation select:required,.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input:required{outline:1.5px solid red}.annotationLayer .choiceWidgetAnnotation select option{padding:0}.annotationLayer .buttonWidgetAnnotation.radioButton input{border-radius:50%}.annotationLayer .textWidgetAnnotation textarea{resize:none}.annotationLayer .textWidgetAnnotation :is(input,textarea)[disabled],.annotationLayer .choiceWidgetAnnotation select[disabled],.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input[disabled]{background:none;border:2px solid var(--input-disabled-border-color);cursor:not-allowed}.annotationLayer .textWidgetAnnotation :is(input,textarea):hover,.annotationLayer .choiceWidgetAnnotation select:hover,.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input:hover{border:2px solid var(--input-hover-border-color)}.annotationLayer .textWidgetAnnotation :is(input,textarea):hover,.annotationLayer .choiceWidgetAnnotation select:hover,.annotationLayer .buttonWidgetAnnotation.checkBox input:hover{border-radius:2px}.annotationLayer .textWidgetAnnotation :is(input,textarea):focus,.annotationLayer .choiceWidgetAnnotation select:focus{background:none;border:2px solid var(--input-focus-border-color);border-radius:2px;outline:var(--input-focus-outline)}.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) :focus{background-image:none;background-color:transparent}.annotationLayer .buttonWidgetAnnotation.checkBox :focus{border:2px solid var(--input-focus-border-color);border-radius:2px;outline:var(--input-focus-outline)}.annotationLayer .buttonWidgetAnnotation.radioButton :focus{border:2px solid var(--input-focus-border-color);outline:var(--input-focus-outline)}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before,.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after,.annotationLayer .buttonWidgetAnnotation.radioButton input:checked:before{background-color:CanvasText;content:"";display:block;position:absolute}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before,.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after{height:80%;left:45%;width:1px}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before{transform:rotate(45deg)}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after{transform:rotate(-45deg)}.annotationLayer .buttonWidgetAnnotation.radioButton input:checked:before{border-radius:50%;height:50%;left:30%;top:20%;width:50%}.annotationLayer .textWidgetAnnotation input.comb{font-family:monospace;padding-left:2px;padding-right:0}.annotationLayer .textWidgetAnnotation input.comb:focus{width:103%}.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input{-webkit-appearance:none;-moz-appearance:none;appearance:none}.annotationLayer .popupTriggerArea{height:100%;width:100%}.annotationLayer .fileAttachmentAnnotation .popupTriggerArea{position:absolute}.annotationLayer .popupWrapper{position:absolute;font-size:calc(9px * var(--scale-factor));width:100%;min-width:calc(180px * var(--scale-factor));pointer-events:none}.annotationLayer .popup{position:absolute;max-width:calc(180px * var(--scale-factor));background-color:#ff9;box-shadow:0 calc(2px * var(--scale-factor)) calc(5px * var(--scale-factor)) #888;border-radius:calc(2px * var(--scale-factor));padding:calc(6px * var(--scale-factor));margin-left:calc(5px * var(--scale-factor));cursor:pointer;font:message-box;white-space:normal;word-wrap:break-word;pointer-events:auto}.annotationLayer .popup>*{font-size:calc(9px * var(--scale-factor))}.annotationLayer .popup h1{display:inline-block}.annotationLayer .popupDate{display:inline-block;margin-left:calc(5px * var(--scale-factor))}.annotationLayer .popupContent{border-top:1px solid rgba(51,51,51,1);margin-top:calc(2px * var(--scale-factor));padding-top:calc(2px * var(--scale-factor))}.annotationLayer .richText>*{white-space:pre-wrap;font-size:calc(9px * var(--scale-factor))}.annotationLayer .highlightAnnotation,.annotationLayer .underlineAnnotation,.annotationLayer .squigglyAnnotation,.annotationLayer .strikeoutAnnotation,.annotationLayer .freeTextAnnotation,.annotationLayer .lineAnnotation svg line,.annotationLayer .squareAnnotation svg rect,.annotationLayer .circleAnnotation svg ellipse,.annotationLayer .polylineAnnotation svg polyline,.annotationLayer .polygonAnnotation svg polygon,.annotationLayer .caretAnnotation,.annotationLayer .inkAnnotation svg polyline,.annotationLayer .stampAnnotation,.annotationLayer .fileAttachmentAnnotation{cursor:pointer}.annotationLayer section svg{position:absolute;width:100%;height:100%;top:0;left:0}.annotationLayer .annotationTextContent{position:absolute;width:100%;height:100%;opacity:0;color:transparent;-webkit-user-select:none;user-select:none;pointer-events:none}.annotationLayer .annotationTextContent span{width:100%;display:inline-block}:root{--react-pdf-text-layer: 1;--highlight-bg-color: rgba(180, 0, 170, 1);--highlight-selected-bg-color: rgba(0, 100, 0, 1)}@media screen and (forced-colors: active){:root{--highlight-bg-color: Highlight;--highlight-selected-bg-color: ButtonText}}[data-main-rotation="90"]{transform:rotate(90deg) translateY(-100%)}[data-main-rotation="180"]{transform:rotate(180deg) translate(-100%,-100%)}[data-main-rotation="270"]{transform:rotate(270deg) translate(-100%)}.textLayer{position:absolute;text-align:initial;top:0;right:0;bottom:0;left:0;overflow:hidden;line-height:1;text-size-adjust:none;forced-color-adjust:none;transform-origin:0 0;z-index:2}.textLayer :is(span,br){color:transparent;position:absolute;white-space:pre;cursor:text;margin:0;transform-origin:0 0}.textLayer span.markedContent{top:0;height:0}.textLayer .highlight{margin:-1px;padding:1px;background-color:var(--highlight-bg-color);border-radius:4px}.textLayer .highlight.appended{position:initial}.textLayer .highlight.begin{border-radius:4px 0 0 4px}.textLayer .highlight.end{border-radius:0 4px 4px 0}.textLayer .highlight.middle{border-radius:0}.textLayer .highlight.selected{background-color:var(--highlight-selected-bg-color)}.textLayer br::selection{background:transparent}.textLayer .endOfContent{display:block;position:absolute;top:100%;right:0;bottom:0;left:0;z-index:-1;cursor:default;-webkit-user-select:none;user-select:none}.textLayer .endOfContent.active{top:0}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--primary: #6366f1;--primary-dark: #4f46e5;--success: #10b981;--danger: #ef4444;--bg: #f8fafc;--card: #ffffff;--border: #e2e8f0;--text: #1e293b;--muted: #64748b;--radius: 12px;--shadow: 0 4px 24px rgba(0,0,0,.08)}body{font-family:Inter,sans-serif;background:var(--bg);color:var(--text);min-height:100vh}.home-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#eef2ff,#f8fafc);padding:1rem}.home-card{background:var(--card);border-radius:20px;box-shadow:var(--shadow);padding:2.5rem 2rem;width:100%;max-width:420px;display:flex;flex-direction:column;gap:1.25rem}.logo{font-size:1.75rem;font-weight:700;color:var(--primary);display:flex;align-items:center;gap:.4rem}.logo.small{font-size:1.2rem}.logo-dot{width:10px;height:10px;border-radius:50%;background:var(--primary);display:inline-block;animation:pulse-dot 1.8s infinite}@keyframes pulse-dot{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.4);opacity:.6}}.tagline{color:var(--muted);font-size:.95rem}.join-form{display:flex;flex-direction:column;gap:.75rem}.input{width:100%;padding:.75rem 1rem;border:1.5px solid var(--border);border-radius:var(--radius);font-size:1rem;font-family:inherit;outline:none;transition:border-color .2s}.input:focus{border-color:var(--primary)}.divider{display:flex;align-items:center;gap:.75rem;color:var(--muted);font-size:.85rem}.divider:before,.divider:after{content:"";flex:1;height:1px;background:var(--border)}.home-footer{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--border);text-align:center;display:flex;flex-direction:column;gap:.5rem}.home-footer .copyright{font-size:.85rem;color:var(--muted);margin:0}.home-footer .visit-link{font-size:.9rem;color:var(--primary);text-decoration:none;font-weight:500;transition:color .2s}.home-footer .visit-link:hover{color:var(--primary-dark);text-decoration:underline}.btn{padding:.75rem 1.5rem;border-radius:var(--radius);font-size:.95rem;font-weight:600;font-family:inherit;cursor:pointer;border:none;transition:all .18s}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.small{padding:.45rem 1rem;font-size:.85rem}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--primary-dark)}.btn-secondary{background:#f1f5f9;color:var(--text);border:1.5px solid var(--border)}.btn-secondary:hover:not(:disabled){background:#e2e8f0}.btn-success{background:var(--success);color:#fff}.btn-success:hover:not(:disabled){background:#059669}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover:not(:disabled){background:#dc2626}.btn-warning{background:#f59e0b;color:#fff}.btn-warning:hover:not(:disabled){background:#d97706}.btn-ghost{background:transparent;color:var(--muted);border:1.5px solid var(--border)}.btn-ghost:hover:not(:disabled){background:#f1f5f9}.error-msg{color:var(--danger);font-size:.875rem}.dashboard{min-height:100vh;display:flex;flex-direction:column}.dashboard-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 2rem;background:var(--card);border-bottom:1px solid var(--border);box-shadow:0 1px 4px #0000000a}.session-badge{background:#eef2ff;color:var(--primary);padding:.4rem 1rem;border-radius:999px;font-size:.9rem;letter-spacing:.05em}.tabs{display:flex;background:var(--card);border-bottom:1px solid var(--border);padding:0 2rem}.tab-btn{padding:.85rem 1.5rem;font-size:.9rem;font-weight:600;font-family:inherit;background:none;border:none;border-bottom:2.5px solid transparent;cursor:pointer;color:var(--muted);transition:all .18s}.tab-btn.active{color:var(--primary);border-bottom-color:var(--primary)}.dashboard-body{padding:2rem;flex:1;max-width:860px;margin:0 auto;width:100%}.panel-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem}.panel-header h2{font-size:1.25rem;font-weight:600}.question-list{display:flex;flex-direction:column;gap:1rem;margin-top:1.5rem}.question-card{background:var(--card);border:1.5px solid var(--border);border-radius:var(--radius);padding:1.25rem;transition:border-color .2s}.question-card.live{border-color:var(--primary)}.question-meta{display:flex;align-items:center;gap:.5rem;margin-bottom:.6rem}.q-num{font-size:.75rem;font-weight:700;color:var(--muted);background:#f1f5f9;padding:.15rem .5rem;border-radius:6px}.q-type{font-size:.7rem;font-weight:700;text-transform:uppercase;padding:.15rem .5rem;border-radius:6px}.q-type.mcq{background:#eef2ff;color:var(--primary)}.q-type.yesno{background:#ecfdf5;color:var(--success)}.q-type.qa{background:#fef9c3;color:#92400e}.live-badge{font-size:.7rem;font-weight:700;background:var(--primary);color:#fff;padding:.15rem .6rem;border-radius:999px;letter-spacing:.05em;animation:blink 1.2s infinite}@keyframes blink{0%,to{opacity:1}50%{opacity:.5}}.q-text{font-size:1rem;font-weight:500;margin-bottom:.75rem}.q-options{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.75rem}.option-chip{font-size:.8rem;background:#f1f5f9;color:var(--muted);padding:.2rem .65rem;border-radius:999px}.q-actions{display:flex;gap:.5rem}.empty-state{text-align:center;color:var(--muted);padding:3rem 1rem;font-size:.95rem}.question-form{background:#f8fafc;border:1.5px dashed var(--border);border-radius:var(--radius);padding:1.5rem;display:flex;flex-direction:column;gap:.75rem;margin-bottom:1rem}.question-form h3{font-size:1rem;font-weight:600}.question-form label{font-size:.85rem;font-weight:600;color:var(--muted)}.type-toggle{display:flex;gap:.5rem}.toggle-btn{padding:.45rem 1rem;border-radius:8px;font-size:.85rem;font-weight:600;font-family:inherit;border:1.5px solid var(--border);background:var(--card);cursor:pointer;color:var(--muted);transition:all .18s}.toggle-btn.active{background:var(--primary);color:#fff;border-color:var(--primary)}.options-builder{display:flex;flex-direction:column;gap:.5rem}.option-row{display:flex;gap:.5rem;align-items:center}.option-row .input{flex:1}.remove-btn{background:none;border:none;font-size:1.2rem;color:var(--danger);cursor:pointer;line-height:1;padding:0 .25rem}.yesno-preview{display:flex;gap:.5rem}.form-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:.5rem}.results-panel h2{font-size:1.25rem;font-weight:600;margin-bottom:1.5rem}.live-result-block,.past-result-block{background:var(--card);border:1.5px solid var(--border);border-radius:var(--radius);padding:1.5rem;margin-bottom:1.25rem}.live-result-block h3,.past-result-block h4{font-size:1rem;font-weight:600;margin-bottom:1rem}.chart-wrapper{position:relative}.total-votes{text-align:center;font-size:.85rem;color:var(--muted);margin-top:.5rem}.waiting{color:var(--muted);font-size:.9rem;text-align:center;padding:1.5rem}.student-container{min-height:100vh;background:linear-gradient(160deg,#eef2ff,#f0fdf4,#fdf4ff);display:flex;flex-direction:column}.student-loading{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;color:var(--muted)}.student-header{display:flex;align-items:center;justify-content:space-between;padding:.85rem 1.5rem;background:#ffffffd9;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:10}.student-card{flex:1;display:flex;align-items:center;justify-content:center;padding:2rem 1rem}.s-focus-warning{background:#fef3c7;border-bottom:2px solid #f59e0b;padding:.65rem 1.5rem;text-align:center;color:#92400e;font-weight:600;font-size:.9rem}.s-state-card{text-align:center;max-width:420px;width:100%;background:var(--card);border-radius:24px;padding:2.5rem 2rem;box-shadow:0 4px 24px #6366f114;display:flex;flex-direction:column;align-items:center;gap:.85rem;animation:s-fade-in .35s ease}.s-state-card h2{font-size:1.4rem;font-weight:700;margin:0}.s-state-card p{color:var(--muted);font-size:.95rem;margin:0;line-height:1.5}.s-state-icon{font-size:3rem;line-height:1}.s-waiting-animation{position:relative;width:56px;height:56px;display:flex;align-items:center;justify-content:center;margin-bottom:.25rem}.s-pulse-ring{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;border:3px solid var(--primary);opacity:.4;animation:s-pulse-ring 1.6s ease-out infinite}.s-pulse-dot{width:22px;height:22px;border-radius:50%;background:var(--primary);animation:s-pulse-dot 1.6s ease-in-out infinite}@keyframes s-pulse-ring{0%{transform:scale(.5);opacity:.6}to{transform:scale(1.4);opacity:0}}@keyframes s-pulse-dot{0%,to{transform:scale(1)}50%{transform:scale(1.15)}}.s-session-chip{margin-top:.5rem;padding:.35rem 1rem;background:#eef2ff;color:var(--primary);border-radius:99px;font-size:.82rem;font-weight:600;letter-spacing:.05em}.s-sub-note{font-size:.85rem;color:var(--muted)}.s-answer-pill{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:#eef2ff;border-radius:99px;font-weight:600;color:var(--primary);font-size:.95rem}.s-question-card{background:var(--card);border-radius:24px;box-shadow:0 4px 32px #6366f11a;padding:2rem;width:100%;max-width:520px;display:flex;flex-direction:column;gap:1.25rem;animation:s-fade-in .3s ease}.s-question-header{display:flex;align-items:center;gap:.75rem}.s-q-badge{padding:.3rem .85rem;border-radius:99px;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;background:#eef2ff;color:var(--primary)}.s-q-badge-qa{background:#ecfdf5;color:#059669}.s-q-badge-quiz{background:#fef3c7;color:#d97706}.s-q-badge-results{background:#f3e8ff;color:#7c3aed}.s-question-text{font-size:1.3rem;font-weight:700;line-height:1.45;color:var(--text);margin:0}.s-options-list{display:flex;flex-direction:column;gap:.65rem}.s-option-btn{width:100%;display:flex;align-items:center;gap:.9rem;padding:.9rem 1rem;background:#f8fafc;border:2px solid var(--border);border-radius:14px;font-size:.97rem;font-weight:500;font-family:inherit;cursor:pointer;transition:all .18s;color:var(--text);text-align:left}.s-option-btn:hover:not(:disabled){border-color:var(--primary);background:#eef2ff;transform:translate(3px)}.s-option-btn.selected{border-color:var(--primary);background:#eef2ff;color:var(--primary);font-weight:600}.s-option-btn:disabled{cursor:not-allowed;opacity:.7}.s-option-label{width:30px;height:30px;min-width:30px;border-radius:8px;background:var(--border);color:#475569;font-size:.8rem;font-weight:700;display:flex;align-items:center;justify-content:center;transition:all .18s}.s-option-btn.selected .s-option-label{background:var(--primary);color:#fff}.s-option-text{flex:1}.s-option-check{font-size:1rem;color:var(--primary);font-weight:700;margin-left:auto}.s-submit-btn{margin-top:.25rem;width:100%}.s-error{color:#ef4444;font-size:.875rem;margin:0}.s-qa-textarea{width:100%;padding:.9rem 1rem;border:2px solid var(--border);border-radius:14px;font-size:.95rem;font-family:inherit;resize:vertical;transition:border-color .2s;background:#f8fafc;color:var(--text);box-sizing:border-box}.s-qa-textarea:focus{outline:none;border-color:var(--primary);background:#fff}.s-qa-textarea:disabled{opacity:.6}.s-quiz-waiting{text-align:center;padding:1.5rem;background:#f0fdf4;border-radius:14px;display:flex;flex-direction:column;align-items:center;gap:.5rem;color:#166534;font-weight:500}.s-quiz-results{display:flex;flex-direction:column;gap:.85rem}.s-result-row{display:flex;flex-direction:column;gap:.4rem}.s-result-row.correct .s-result-text{color:#166534;font-weight:600}.s-result-header{display:flex;align-items:center;justify-content:space-between}.s-result-label{display:flex;align-items:center;gap:.6rem}.s-result-text{font-size:.95rem;color:var(--text)}.s-correct-badge{padding:.15rem .6rem;background:#dcfce7;color:#166534;border-radius:99px;font-size:.72rem;font-weight:700}.s-result-pct{font-size:.85rem;font-weight:600;color:var(--muted)}.s-result-bar-track{height:8px;background:#e2e8f0;border-radius:99px;overflow:hidden}.s-result-bar-fill{height:100%;border-radius:99px;transition:width .6s cubic-bezier(.34,1.56,.64,1)}.s-result-total{text-align:center;font-size:.8rem;color:var(--muted);margin:0}@keyframes s-fade-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.pulse-dot{width:18px;height:18px;border-radius:50%;background:var(--primary);animation:pulse-dot 1.4s infinite}.check-icon{font-size:2.5rem;color:var(--success);font-weight:700}.sub-note{font-size:.85rem}.question-view{background:var(--card);border-radius:20px;box-shadow:var(--shadow);padding:2rem;width:100%;max-width:480px;display:flex;flex-direction:column;gap:1rem}.question-label{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--primary)}.question-title{font-size:1.25rem;font-weight:700;line-height:1.4}.options-grid{display:flex;flex-direction:column;gap:.6rem}.option-btn{width:100%;padding:.85rem 1.25rem;text-align:left;background:#f8fafc;border:2px solid var(--border);border-radius:var(--radius);font-size:.95rem;font-weight:500;font-family:inherit;cursor:pointer;transition:all .18s;color:var(--text)}.option-btn:hover{border-color:var(--primary);background:#eef2ff}.option-btn.selected{border-color:var(--primary);background:#eef2ff;color:var(--primary);font-weight:600}.submit-btn{margin-top:.5rem}.spinner{width:36px;height:36px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite;margin:0 auto 1rem}.name-input-row{display:flex;gap:.5rem;align-items:center}.name-input-row .input{flex:1}.random-name-btn{font-size:1.3rem;background:#f1f5f9;border:1.5px solid var(--border);border-radius:var(--radius);padding:.65rem .8rem;cursor:pointer;line-height:1;transition:background .15s}.random-name-btn:hover{background:#e2e8f0}.name-hint{font-size:.8rem;color:var(--muted)}.btn-qr{background:#f0fdf4;color:#15803d;border:1.5px solid #bbf7d0;font-weight:600}.btn-qr:hover{background:#dcfce7;border-color:#4ade80}.qr-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a8c;display:flex;align-items:center;justify-content:center;z-index:999;animation:fadeIn .15s ease}.qr-modal{background:#fff;border-radius:16px;padding:2rem 2.25rem;display:flex;flex-direction:column;align-items:center;gap:.85rem;box-shadow:0 20px 60px #0000002e;max-width:320px;width:90%;text-align:center}.qr-modal h3{font-size:1.2rem;font-weight:700}.qr-hint{font-size:.82rem;color:var(--muted)}.qr-code-wrapper{background:#fff;padding:1rem;border-radius:12px;border:2px solid var(--border)}.qr-session-code{font-size:2.2rem;font-weight:800;letter-spacing:.2em;color:var(--primary);background:#eef2ff;padding:.4rem 1.25rem;border-radius:10px}.qr-url{font-size:.75rem;color:var(--muted);word-break:break-all}.btn-end-session{background:#fff1f2;color:var(--danger);border:1.5px solid #fecdd3;font-weight:700}.btn-end-session:hover:not(:disabled){background:#ffe4e6;border-color:var(--danger)}.qa-answers-list{display:flex;flex-direction:column;gap:.5rem;margin-top:.5rem;max-height:320px;overflow-y:auto}.qa-answer-chip{background:#f8fafc;border:1.5px solid var(--border);border-radius:var(--radius);padding:.65rem 1rem;font-size:.9rem;line-height:1.5;animation:fadeIn .2s ease}.qa-type-preview{background:#f8fafc;border:1.5px dashed var(--border);border-radius:var(--radius);padding:.75rem 1rem}.qa-preview-label{font-size:.85rem;color:var(--muted)}.qa-textarea{width:100%;padding:.75rem 1rem;border:1.5px solid var(--border);border-radius:var(--radius);font-size:.95rem;font-family:inherit;outline:none;resize:vertical;transition:border-color .2s;line-height:1.6}.qa-textarea:focus{border-color:var(--primary)}.qa-textarea:disabled{opacity:.6}.student-header-right{display:flex;align-items:center;gap:.5rem}.participant-name-badge{font-size:.8rem;font-weight:600;color:var(--primary);background:#eef2ff;padding:.3rem .75rem;border-radius:999px;max-width:130px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.exit-btn{color:var(--danger)!important;border-color:#fecdd3!important}.exit-btn:hover:not(:disabled){background:#fff1f2!important}.session-ended-view{text-align:center;display:flex;flex-direction:column;align-items:center;gap:.75rem;padding:1rem}.ended-icon{font-size:3rem}.session-ended-view h2{font-size:1.4rem;font-weight:700}.session-ended-view p{color:var(--muted);font-size:.95rem}.header-right{display:flex;align-items:center;gap:.75rem}.participant-count{display:flex;align-items:center;gap:.35rem;font-size:.85rem;font-weight:600;color:var(--success);background:#ecfdf5;padding:.35rem .85rem;border-radius:999px}.count-icon{font-size:.9rem}.active-poll-banner{background:linear-gradient(90deg,#eef2ff,#e0e7ff);border-bottom:1.5px solid #c7d2fe;padding:.65rem 2rem;font-size:.875rem;color:var(--primary-dark);display:flex;align-items:center;gap:.5rem}.live-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--danger);animation:blink 1.2s infinite;flex-shrink:0}.status-toast{background:#1e293b;color:#f8fafc;font-size:.85rem;font-weight:500;padding:.5rem 1.5rem;text-align:center;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}.tab-live-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--danger);margin-left:5px;vertical-align:middle;animation:blink 1.2s infinite}.results-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem}.results-header h2{font-size:1.25rem;font-weight:600}.results-live-indicator{display:flex;align-items:center;gap:.4rem;font-size:.8rem;font-weight:600;color:var(--danger)}.result-question-header{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem}.result-question-header h3{font-size:1rem;font-weight:600;flex:1}.option-btn:disabled{opacity:.7;cursor:not-allowed}.option-btn:disabled:hover{border-color:var(--border);background:#f8fafc}.btn-pres{background:#fdf4ff;color:#7e22ce;border:1.5px solid #e9d5ff;font-weight:600;width:100%}.btn-pres:hover{background:#f3e8ff;border-color:#a855f7}.pres-badge{font-size:.68rem;font-weight:700;background:#7e22ce;color:#fff;padding:.15rem .5rem;border-radius:6px;margin-left:.4rem;letter-spacing:.03em;text-transform:uppercase}.pres-setup-card{max-width:480px}.pres-setup-form{display:flex;flex-direction:column;gap:.6rem;width:100%;margin-top:.5rem}.pres-label{font-size:.82rem;font-weight:600;color:var(--text);margin-bottom:-.2rem}.pres-hint{font-weight:400;color:var(--muted);font-size:.78rem}.pres-file-drop{display:flex;align-items:center;gap:.75rem}.pres-file-btn{display:inline-block;padding:.55rem 1rem;background:#f8fafc;border:1.5px dashed var(--border);border-radius:var(--radius);cursor:pointer;font-size:.88rem;color:var(--text);transition:background .15s,border-color .15s}.pres-file-btn:hover{background:#eef2ff;border-color:var(--primary)}.pres-file-name{font-size:.78rem;color:var(--muted)}.pres-teacher-layout,.pres-student-layout{display:flex;flex-direction:column;height:100vh;background:#f8fafc;overflow:hidden}.pres-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1.5rem;background:#fff;border-bottom:1px solid var(--border);box-shadow:0 1px 4px #0000000d;z-index:10}.pres-header-left{display:flex;align-items:center;gap:.5rem;font-weight:700;font-size:1.1rem}.pres-header-right{display:flex;align-items:center;gap:.75rem}.pres-code-badge{font-size:.8rem;font-weight:700;background:#eef2ff;color:var(--primary);padding:.2rem .6rem;border-radius:6px;letter-spacing:.05em}.pres-page-info{font-size:.85rem;color:var(--muted);font-weight:600}.pres-main{display:flex;flex:1;overflow:hidden}.pres-viewer-col{flex:1;display:flex;flex-direction:column;align-items:center;padding:1.5rem;overflow-y:auto;background:#1e293b}.pres-pdf-wrapper{border-radius:10px;overflow:hidden;box-shadow:0 8px 32px #00000059;max-width:100%}.pres-pdf-wrapper .react-pdf__Page canvas{max-width:100%;height:auto!important}.pres-nav-controls{display:flex;align-items:center;gap:1rem;margin-top:1.25rem}.pres-nav-controls .pres-page-info{color:#94a3b8}.pres-sync-note{font-size:.78rem;color:#64748b;margin-top:1rem}.pres-questions-col{width:320px;min-width:280px;background:#fff;border-left:1px solid var(--border);display:flex;flex-direction:column;padding:1.25rem;overflow-y:auto;gap:.75rem}.pres-q-heading{font-size:1rem;font-weight:700;display:flex;align-items:center;gap:.5rem;margin:0}.pres-q-badge{font-size:.72rem;font-weight:700;background:#ef4444;color:#fff;padding:.15rem .45rem;border-radius:10px}.pres-no-questions{font-size:.85rem;color:var(--muted)}.pres-q-section-label{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);margin:0}.pres-question-card{border-radius:10px;padding:.85rem 1rem;border:1.5px solid var(--border);background:#f8fafc;display:flex;flex-direction:column;gap:.4rem}.pres-question-card.pending{border-color:#fbbf24;background:#fffbeb}.pres-question-card.approved{border-color:#4ade80;background:#f0fdf4}.pres-q-meta{display:flex;justify-content:space-between;align-items:center}.pres-q-name{font-size:.78rem;font-weight:700;color:var(--primary)}.pres-q-slide{font-size:.72rem;color:var(--muted)}.pres-q-text{font-size:.88rem;color:var(--text);line-height:1.5;margin:0}.pres-q-actions{display:flex;gap:.5rem;margin-top:.25rem}.btn-approve{flex:1;padding:.4rem .5rem;border-radius:var(--radius);border:1.5px solid #4ade80;background:#f0fdf4;color:#15803d;font-size:.8rem;font-weight:700;cursor:pointer;transition:background .15s}.btn-approve:hover{background:#dcfce7}.btn-dismiss{flex:1;padding:.4rem .5rem;border-radius:var(--radius);border:1.5px solid #fca5a5;background:#fff1f2;color:var(--danger);font-size:.8rem;font-weight:700;cursor:pointer;transition:background .15s}.btn-dismiss:hover{background:#ffe4e6}.pres-ask-form{display:flex;flex-direction:column;gap:.65rem}.pres-loading,.pres-error-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;font-size:1rem;color:var(--muted);gap:1rem}@media (hover: none) and (pointer: coarse){.btn,.input{min-height:44px}.option-btn{min-height:48px}.tab-btn{min-height:44px}.toggle-btn{min-height:40px}.remove-btn{min-width:44px;min-height:44px}.btn:hover:not(:disabled){transform:none}.option-btn:hover{border-color:var(--border);background:#f8fafc}.option-btn.selected{border-color:var(--primary);background:#eef2ff}.btn:active{transform:scale(.98)}.option-btn:active{background:#e0e7ff}}.btn,.option-btn,.tab-btn,.toggle-btn{-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}@media (max-width: 768px){.home-card{padding:1.5rem;margin:1rem;max-width:100%}.logo{font-size:1.5rem}.logo.small{font-size:1rem}.dashboard-header{padding:.75rem 1rem;flex-wrap:wrap;gap:.5rem}.dashboard-body{padding:1rem}.tabs{padding:0 1rem;overflow-x:auto}.tab-btn{padding:.75rem 1rem;font-size:.85rem;white-space:nowrap}.header-right{gap:.4rem;flex-wrap:wrap}.session-badge{font-size:.8rem;padding:.3rem .6rem}.participant-count{font-size:.75rem;padding:.25rem .6rem}.question-card{padding:1rem}.q-text{font-size:.95rem}.q-actions{flex-wrap:wrap}.q-actions .btn{flex:1;min-width:100px}.student-header{padding:.75rem 1rem;flex-wrap:wrap;gap:.5rem}.student-card{padding:1rem .75rem}.question-view{padding:1.5rem;max-width:100%}.option-btn{padding:.75rem 1rem;font-size:.9rem}.participant-name-badge{font-size:.75rem;max-width:100px}.s-question-card{padding:1.5rem;max-width:100%;border-radius:18px}.s-state-card{padding:2rem 1.5rem;border-radius:18px}.s-question-text{font-size:1.1rem}.s-option-btn{padding:.8rem .85rem;font-size:.92rem}.s-option-label{width:26px;height:26px;min-width:26px;font-size:.75rem}.pres-header{padding:.5rem 1rem}.pres-header-left{font-size:.95rem}.pres-questions-col{width:100%;min-width:auto;border-left:none;border-top:1px solid var(--border)}.pres-main{flex-direction:column}.pres-viewer-col{padding:.75rem}.pres-quiz-section{margin:1rem 0;padding:.75rem}.name-input-row{flex-direction:column}.name-input-row .input{width:100%}.form-actions{flex-direction:column}.form-actions .btn{width:100%}.live-result-block,.past-result-block{padding:1rem}}@media (max-width: 480px){.home-card{padding:1.25rem}.btn{padding:.65rem 1rem;font-size:.9rem}.input{padding:.65rem .75rem;font-size:.95rem}.question-title{font-size:1.1rem}.student-header-right{flex-wrap:wrap;justify-content:flex-end}}.qb-progress-wrap{display:flex;flex-direction:column;gap:.4rem}.qb-progress-label{display:flex;justify-content:space-between;font-size:.85rem;color:#64748b}.qb-progress-track{height:8px;background:#e2e8f0;border-radius:99px;overflow:hidden}.qb-progress-fill{height:100%;background:linear-gradient(90deg,#6366f1,#8b5cf6);border-radius:99px;transition:width .5s ease}.qb-answer-track{height:6px;background:#e2e8f0;border-radius:99px;overflow:hidden;margin-top:4px}.qb-answer-fill{height:100%;background:linear-gradient(90deg,#10b981,#34d399);border-radius:99px;transition:width .4s ease}.qb-answer-badge{font-size:.85rem;color:#10b981;font-weight:600}.qb-all-done{color:#059669;font-weight:700}.qb-student-progress-list{margin-top:1rem;padding:1rem;background:#f8fafc;border-radius:12px;border:1px solid #e2e8f0}.qb-student-progress-title{margin:0 0 .75rem;font-size:.85rem;font-weight:700;color:#475569;text-transform:uppercase;letter-spacing:.5px}.qb-student-bars{display:flex;flex-direction:column;gap:.6rem;max-height:200px;overflow-y:auto}.qb-student-row{display:flex;align-items:center;gap:.75rem;font-size:.8rem}.qb-student-name{width:70px;color:#64748b;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.qb-student-bar-wrap{flex:1;height:10px;background:#e2e8f0;border-radius:99px;overflow:hidden}.qb-student-bar{height:100%;background:linear-gradient(90deg,#6366f1,#8b5cf6);border-radius:99px;transition:width .3s ease}.qb-student-bar.completed{background:linear-gradient(90deg,#10b981,#34d399)}.qb-student-count{width:55px;text-align:right;color:#475569;font-weight:600;font-size:.75rem}.qb-toast{margin:.75rem 0;padding:.75rem 1rem;background:#dcfce7;border:1px solid #86efac;border-radius:10px;color:#166534;font-weight:600;font-size:.9rem;text-align:center;animation:s-fade-in .3s ease}.qb-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a8c;display:flex;align-items:center;justify-content:center;z-index:200;padding:1rem;animation:s-fade-in .2s ease}.qb-modal{background:var(--card);border-radius:20px;box-shadow:0 8px 48px #0003;width:100%;max-width:600px;max-height:90vh;display:flex;flex-direction:column;overflow:hidden}.qb-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;border-bottom:1px solid var(--border)}.qb-modal-header h3{margin:0;font-size:1.1rem}.qb-modal-close{background:none;border:none;font-size:1.1rem;cursor:pointer;color:var(--muted);padding:.25rem .5rem;border-radius:6px;transition:background .15s}.qb-modal-close:hover{background:#f1f5f9;color:var(--text)}.qb-modal-body{flex:1;overflow-y:auto;padding:1.25rem 1.5rem;display:flex;flex-direction:column;gap:1rem}.qb-modal-footer{display:flex;gap:.75rem;justify-content:flex-end;padding:1rem 1.5rem;border-top:1px solid var(--border)}.qb-format-info{background:#f8fafc;border:1px solid var(--border);border-radius:10px;padding:1rem;font-size:.875rem;color:#475569;display:flex;flex-direction:column;gap:.4rem}.qb-format-info p{margin:0;line-height:1.6}.qb-format-info code{background:#e2e8f0;padding:.1rem .35rem;border-radius:4px;font-size:.8rem;color:#1e293b}.qb-file-label{display:inline-block;cursor:pointer}.qb-file-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.65rem 1.25rem;background:#eef2ff;color:var(--primary);border:2px dashed var(--primary);border-radius:10px;font-weight:600;font-size:.9rem;transition:background .15s}.qb-file-btn:hover{background:#e0e7ff}.qb-parse-error{padding:.75rem 1rem;background:#fef2f2;border:1px solid #fca5a5;border-radius:8px;color:#dc2626;font-size:.875rem}.qb-preview{border:1px solid var(--border);border-radius:12px;overflow:hidden}.qb-preview-header{display:flex;align-items:center;padding:.65rem 1rem;background:#f0fdf4;border-bottom:1px solid #bbf7d0}.qb-preview-count{font-size:.85rem;font-weight:600;color:#166534}.qb-preview-list{max-height:260px;overflow-y:auto}.qb-preview-item{display:flex;gap:.75rem;align-items:flex-start;padding:.75rem 1rem;border-bottom:1px solid var(--border);font-size:.875rem}.qb-preview-item:last-child{border-bottom:none}.qb-preview-num{min-width:32px;height:24px;background:#eef2ff;color:var(--primary);border-radius:6px;font-size:.75rem;font-weight:700;display:flex;align-items:center;justify-content:center}.qb-preview-content{flex:1;display:flex;flex-direction:column;gap:.35rem}.qb-preview-question{font-weight:600;color:var(--text)}.qb-preview-options{display:flex;flex-wrap:wrap;gap:.35rem}.qb-preview-opt{padding:.15rem .55rem;background:#f1f5f9;border-radius:99px;font-size:.75rem;color:#475569;border:1px solid #e2e8f0}.qb-preview-opt.correct{background:#dcfce7;color:#166534;border-color:#86efac;font-weight:700}.qb-summary-question{border:1px solid var(--border);border-radius:12px;overflow:hidden;margin-bottom:.75rem}.qb-summary-q-header{display:flex;align-items:center;gap:.75rem;padding:.65rem 1rem;background:#f8fafc;border-bottom:1px solid var(--border);flex-wrap:wrap}.qb-summary-q-text{flex:1;font-weight:600;font-size:.9rem;color:var(--text)}.qb-summary-respondents{font-size:.78rem;color:var(--muted);white-space:nowrap}.qb-summary-bars{padding:.65rem 1rem;display:flex;flex-direction:column;gap:.4rem}.qb-summary-bar-row{display:flex;align-items:center;gap:.5rem;font-size:.82rem}.qb-summary-opt-label{min-width:20px;font-weight:700;color:var(--muted)}.qb-summary-opt-label.correct{color:#16a34a}.qb-summary-bar-wrap{flex:1;height:14px;background:#e2e8f0;border-radius:99px;overflow:hidden}.qb-summary-bar-fill{height:100%;background:#6366f1;border-radius:99px;transition:width .4s ease}.qb-summary-bar-fill.correct{background:#22c55e}.qb-summary-bar-stat{min-width:130px;color:var(--muted);font-size:.78rem;text-align:right}.qb-student-summary{display:flex;flex-direction:column;align-items:center;gap:1rem;width:100%;max-width:480px;animation:s-fade-in .35s ease}.qbs-header{text-align:center;display:flex;flex-direction:column;align-items:center;gap:.4rem}.qbs-trophy{font-size:3rem;line-height:1}.qbs-header h2{margin:0;font-size:1.4rem;color:var(--text)}.qbs-header p{margin:0;font-size:.9rem;color:var(--muted)}.qbs-score-chip{margin-top:.35rem;padding:.4rem 1.25rem;background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;border-radius:99px;font-size:1rem;font-weight:700;box-shadow:0 2px 12px #6366f14d}.qbs-list{width:100%;display:flex;flex-direction:column;gap:.5rem}.qbs-item{border-radius:12px;border:1.5px solid #e2e8f0;overflow:hidden}.qbs-item.correct{border-color:#86efac}.qbs-item.wrong{border-color:#fca5a5}.qbs-item-header{display:flex;align-items:center;gap:.6rem;padding:.6rem .85rem;background:#f8fafc}.qbs-item.correct .qbs-item-header{background:#f0fdf4}.qbs-item.wrong .qbs-item-header{background:#fef2f2}.qbs-q-num{min-width:28px;height:22px;background:#eef2ff;color:var(--primary);border-radius:6px;font-size:.7rem;font-weight:700;display:flex;align-items:center;justify-content:center}.qbs-q-text{flex:1;font-size:.85rem;font-weight:600;color:var(--text)}.qbs-badge{font-weight:800;font-size:1rem}.qbs-badge.correct{color:#16a34a}.qbs-badge.wrong{color:#dc2626}.qbs-answers{display:flex;gap:1rem;padding:.45rem .85rem;font-size:.8rem;flex-wrap:wrap}.qbs-your-answer{color:#475569}.qbs-correct-answer{color:#16a34a;font-weight:600}.qb-student-progress{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem;padding:.75rem 1rem;background:#f8fafc;border-radius:12px}.qb-progress-bar{width:100%;height:8px;background:#e2e8f0;border-radius:99px;overflow:hidden}.qb-progress-fill{height:100%;background:linear-gradient(90deg,#6366f1,#8b5cf6);border-radius:99px;transition:width .3s ease}.qb-progress-text{font-size:.85rem;font-weight:600;color:#475569;text-align:center}.qb-next-loading{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:2rem;text-align:center;color:var(--muted)}.qb-loading-spinner{width:40px;height:40px;border:3px solid #e2e8f0;border-top-color:#6366f1;border-radius:50%;animation:spin .8s linear infinite}.admin-panel{min-height:100vh;background:var(--bg);padding:1.5rem 2rem}.admin-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;padding-bottom:1rem;border-bottom:2px solid var(--border)}.admin-header h1{font-size:1.75rem;color:var(--text);margin:0}.header-actions{display:flex;gap:1rem;align-items:center}.days-selector{padding:.5rem 1rem;border:1.5px solid var(--border);border-radius:var(--radius);font-size:.9rem;background:var(--card);color:var(--text);cursor:pointer}.refresh-btn{padding:.5rem 1rem;background:var(--primary);color:#fff;border:none;border-radius:var(--radius);cursor:pointer;font-weight:500;transition:background .2s}.refresh-btn:hover{background:var(--primary-dark)}.admin-tabs{display:flex;gap:.5rem;margin-bottom:2rem;border-bottom:2px solid var(--border)}.admin-tabs button{padding:.75rem 1.5rem;background:transparent;border:none;border-bottom:2px solid transparent;font-size:.95rem;color:var(--muted);cursor:pointer;transition:all .2s}.admin-tabs button:hover{color:var(--primary)}.admin-tabs button.active{color:var(--primary);border-bottom-color:var(--primary);font-weight:600}.summary-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.5rem;margin-bottom:2rem}.summary-card{background:var(--card);border-radius:var(--radius);padding:1.5rem;display:flex;align-items:center;gap:1rem;box-shadow:var(--shadow);transition:transform .2s}.summary-card:hover{transform:translateY(-2px)}.summary-card.blue{border-left:4px solid #6366f1}.summary-card.green{border-left:4px solid #10b981}.summary-card.orange{border-left:4px solid #f59e0b}.summary-card.purple{border-left:4px solid #8b5cf6}.card-icon{font-size:2rem;width:50px;height:50px;display:flex;align-items:center;justify-content:center;background:var(--bg);border-radius:12px}.card-content h3{font-size:.85rem;color:var(--muted);margin:0 0 .25rem;text-transform:uppercase;letter-spacing:.5px}.card-content .number{font-size:2rem;font-weight:700;color:var(--text);margin:0}.card-content small{color:var(--success);font-size:.85rem}.chart-section{background:var(--card);border-radius:var(--radius);padding:1.5rem;margin-bottom:2rem;box-shadow:var(--shadow)}.chart-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.chart-header h2{margin:0;color:var(--text);font-size:1.25rem}.chart-totals{display:flex;gap:1.5rem;font-size:.85rem;color:var(--muted)}.chart-totals span{background:var(--bg);padding:.35rem .75rem;border-radius:20px}.chart-container{padding:1rem 0}.chart{display:flex;align-items:flex-end;justify-content:space-around;height:250px;padding:1rem;background:var(--bg);border-radius:var(--radius);gap:1rem;overflow-x:auto}.bar-group{display:flex;flex-direction:column;align-items:center;min-width:60px}.bar-wrapper{display:flex;align-items:flex-end;gap:.25rem;height:200px}.bar{width:24px;border-radius:4px 4px 0 0;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;position:relative;transition:opacity .2s;min-height:4px}.bar:hover{opacity:.8}.bar[title]:hover:after{content:attr(title);position:absolute;bottom:calc(100% + 25px);left:50%;transform:translate(-50%);background:var(--text);color:#fff;padding:.5rem .75rem;border-radius:6px;font-size:.75rem;white-space:nowrap;z-index:100;pointer-events:none}.bar[title]:hover:before{content:"";position:absolute;bottom:calc(100% + 15px);left:50%;transform:translate(-50%);border:6px solid transparent;border-top-color:var(--text);z-index:100}.bar.sessions{background:linear-gradient(to top,#6366f1,#818cf8)}.bar.participants{background:linear-gradient(to top,#10b981,#34d399)}.bar-value{position:absolute;top:-20px;font-size:.7rem;font-weight:600;color:var(--text)}.bar-label{margin-top:.5rem;font-size:.75rem;color:var(--muted);text-align:center}.legend{display:flex;justify-content:center;gap:2rem;margin-top:1.5rem}.legend-item{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:var(--muted)}.dot{width:12px;height:12px;border-radius:50%}.dot.sessions{background:#6366f1}.dot.participants{background:#10b981}.activity-breakdown{display:flex;flex-direction:column;gap:.75rem}.breakdown-item{display:flex;flex-direction:column;gap:.35rem}.breakdown-bar-container{height:8px;background:var(--bg);border-radius:4px;overflow:hidden}.breakdown-bar{height:100%;border-radius:4px;transition:width .3s ease}.breakdown-info{display:flex;justify-content:space-between;align-items:center;font-size:.85rem}.breakdown-label{color:var(--text);font-weight:500}.breakdown-count{color:var(--muted)}.locations-section{background:var(--card);border-radius:var(--radius);padding:1.5rem;box-shadow:var(--shadow)}.locations-section h2{margin:0 0 1.5rem;color:var(--text)}.table-container{overflow-x:auto}.locations-table{width:100%;border-collapse:collapse}.locations-table th,.locations-table td{padding:1rem;text-align:left;border-bottom:1px solid var(--border)}.locations-table th{font-weight:600;color:var(--muted);font-size:.85rem;text-transform:uppercase;letter-spacing:.5px}.locations-table td{color:var(--text)}.count-badge{background:var(--primary);color:#fff;padding:.25rem .75rem;border-radius:20px;font-size:.85rem;font-weight:600}.location-name{display:flex;align-items:center;gap:.5rem}.percentage-bar{display:flex;align-items:center;gap:.5rem;min-width:100px}.percentage-fill{height:8px;background:linear-gradient(to right,var(--primary),var(--primary-light));border-radius:4px;transition:width .3s ease}.percentage-text{font-size:.8rem;color:var(--muted);min-width:40px;text-align:right}.activity-section{background:var(--card);border-radius:var(--radius);padding:1.5rem;box-shadow:var(--shadow)}.activity-section h2{margin:0 0 1.5rem;color:var(--text)}.activity-list{display:flex;flex-direction:column;gap:.75rem}.activity-item{display:flex;align-items:center;gap:1rem;padding:1rem;background:var(--bg);border-radius:var(--radius);border-left:3px solid var(--border)}.activity-item.session_created{border-left-color:#6366f1}.activity-item.participant_joined{border-left-color:#10b981}.activity-item.presentation_created{border-left-color:#f59e0b}.activity-item.question_asked{border-left-color:#8b5cf6}.activity-icon{font-size:1.5rem;width:48px;height:48px;display:flex;align-items:center;justify-content:center;border-radius:12px;flex-shrink:0}.activity-type-badge{padding:.2rem .6rem;border-radius:20px;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.activity-item{display:flex;align-items:center;gap:1rem;padding:1rem;background:var(--bg);border-radius:var(--radius);border-left:3px solid transparent;transition:transform .2s,box-shadow .2s}.activity-item:hover{transform:translate(4px);box-shadow:var(--shadow)}.activity-details{flex:1}.activity-title{font-weight:600;color:var(--text);margin-bottom:.25rem}.activity-meta{display:flex;gap:1rem;font-size:.85rem;color:var(--muted)}.session-code{background:var(--card);padding:.15rem .5rem;border-radius:4px;font-family:monospace}.admin-loading{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;color:var(--muted)}.spinner{width:40px;height:40px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.no-data{text-align:center;padding:3rem;color:var(--muted);font-style:italic}.sessions-table{width:100%;border-collapse:collapse;font-size:.85rem}.sessions-table th{background:#f1f5f9;color:#475569;font-weight:700;text-align:left;padding:.65rem .9rem;border-bottom:2px solid #e2e8f0;white-space:nowrap}.sessions-table td{padding:.6rem .9rem;border-bottom:1px solid #f1f5f9;vertical-align:middle;color:var(--text)}.session-row{cursor:pointer;transition:background .15s}.session-row:hover{background:#f8fafc}.session-row.expanded{background:#f0f4ff}.session-code-cell{background:#eef2ff;color:#4338ca;border-radius:5px;padding:.15rem .45rem;font-size:.82rem;font-weight:700;letter-spacing:.5px}.session-date{color:var(--muted);font-size:.8rem}.location-cell{color:var(--muted);font-size:.82rem}.duration-chip{background:#dcfce7;color:#166534;border-radius:99px;padding:.2rem .6rem;font-size:.78rem;font-weight:600}.participant-chip{background:#e0e7ff;color:#4338ca;border-radius:99px;padding:.2rem .6rem;font-size:.78rem;font-weight:600}.activity-chips{display:flex;gap:.3rem;flex-wrap:wrap}.act-chip{border-radius:99px;padding:.15rem .5rem;font-size:.75rem;font-weight:600}.act-chip.poll{background:#ede9fe;color:#5b21b6}.act-chip.pres{background:#fef3c7;color:#92400e}.act-chip.quiz{background:#dcfce7;color:#166534}.act-chip.bank{background:#f3e8ff;color:#7c3aed}.act-chip.qa{background:#fce7f3;color:#9d174d}.act-chip.none{color:#94a3b8}.session-detail-row td{padding:0;background:#f8fafc}.session-detail{padding:1rem 1.5rem;border-top:1px dashed #e2e8f0;border-bottom:2px solid #e2e8f0}.session-detail-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.75rem}.sd-item{display:flex;flex-direction:column;gap:.2rem}.sd-label{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:#94a3b8}.sd-value{font-size:.88rem;font-weight:600;color:var(--text)}.logout-btn{background:#fef2f2!important;color:#dc2626!important;border-color:#fecaca!important}.logout-btn:hover{background:#fee2e2!important}.admin-login-bg{min-height:100vh;background:linear-gradient(135deg,#1e1b4b,#312e81,#1e3a5f);display:flex;align-items:center;justify-content:center;padding:1.5rem}.admin-login-card{background:#fff;border-radius:1.25rem;box-shadow:0 25px 60px #00000059;padding:2.5rem 2rem;width:100%;max-width:400px;display:flex;flex-direction:column;gap:1.5rem}.admin-login-logo{text-align:center;display:flex;flex-direction:column;align-items:center;gap:.35rem}.admin-login-icon{font-size:2.5rem;line-height:1}.admin-login-title{font-size:1.5rem;font-weight:800;color:#1e1b4b;margin:0}.admin-login-subtitle{font-size:.82rem;color:#6b7280;margin:0}.admin-login-form{display:flex;flex-direction:column;gap:1rem}.admin-login-field{display:flex;flex-direction:column;gap:.4rem}.admin-login-field label{font-size:.82rem;font-weight:700;color:#374151;text-transform:uppercase;letter-spacing:.5px}.admin-login-field input{padding:.65rem .9rem;border:1.5px solid #d1d5db;border-radius:.6rem;font-size:.95rem;color:#111827;background:#f9fafb;outline:none;transition:border-color .2s,box-shadow .2s;width:100%;box-sizing:border-box}.admin-login-field input:focus{border-color:#4338ca;box-shadow:0 0 0 3px #4338ca26;background:#fff}.admin-login-field input:disabled{opacity:.6;cursor:not-allowed}.admin-login-pass-wrap{position:relative;display:flex;align-items:center}.admin-login-pass-wrap input{padding-right:2.8rem}.admin-login-toggle-pass{position:absolute;right:.7rem;background:none;border:none;cursor:pointer;font-size:1rem;padding:0;line-height:1;opacity:.6;transition:opacity .2s}.admin-login-toggle-pass:hover{opacity:1}.admin-login-error{background:#fef2f2;border:1.5px solid #fecaca;border-radius:.6rem;padding:.65rem .9rem;font-size:.85rem;color:#dc2626;display:flex;flex-direction:column;gap:.25rem}.admin-login-attempts{font-size:.78rem;color:#b91c1c;font-weight:600}.admin-login-btn{padding:.75rem;background:linear-gradient(135deg,#4338ca,#6366f1);color:#fff;border:none;border-radius:.6rem;font-size:1rem;font-weight:700;cursor:pointer;transition:opacity .2s,transform .1s;display:flex;align-items:center;justify-content:center;min-height:2.75rem}.admin-login-btn:hover:not(:disabled){opacity:.9;transform:translateY(-1px)}.admin-login-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.admin-login-spinner{width:1.1rem;height:1.1rem;border:2.5px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite;display:inline-block}.admin-login-footer{text-align:center;font-size:.75rem;color:#9ca3af;margin:0}@media (max-width: 768px){.admin-panel{padding:1rem}.admin-header{flex-direction:column;align-items:flex-start;gap:1rem}.summary-cards{grid-template-columns:repeat(2,1fr)}.chart{height:200px}}
