*{margin:0;padding:0;box-sizing:border-box}body{font-family:'Pretendard',-apple-system,sans-serif;background:#f0f2f5;min-height:100vh}.app-header{background:linear-gradient(135deg,#667eea,#764ba2);color:white;padding:16px 24px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px}.header-left{display:flex;align-items:center;gap:12px}.header-left h1{font-size:1.4rem}.version{background:rgba(255,255,255,0.2);padding:4px 10px;border-radius:12px;font-size:0.75rem}.header-right{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.header-right select,.header-right input{padding:8px 12px;border:none;border-radius:8px;font-size:0.9rem}.btn{display:inline-flex;align-items:center;gap:6px;padding:10px 16px;border:none;border-radius:10px;font-size:0.9rem;font-weight:600;cursor:pointer;background:white;color:#333;transition:all 0.2s;box-shadow:0 2px 6px rgba(0,0,0,0.08)}.btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,0.12)}.btn:disabled{opacity:0.5;cursor:not-allowed;transform:none}.btn.primary{background:linear-gradient(135deg,#667eea,#764ba2);color:white}.btn.large{padding:14px 28px;font-size:1rem}.btn.full-width{width:100%;justify-content:center}.btn-row{display:flex;gap:8px;margin-top:10px}.action-bar{background:white;padding:12px 24px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;border-bottom:1px solid #e0e0e0}.action-left,.action-right{display:flex;gap:8px;flex-wrap:wrap}.wizard{display:flex;gap:40px;padding:30px 40px;background:white;margin:30px auto;border-radius:16px;box-shadow:0 4px 20px rgba(0,0,0,0.08);max-width:900px;justify-content:center}.wizard.hidden{display:none}.mode-screen-hidden{display:none !important}.wizard-content{flex:0 1 480px}.step{margin-bottom:28px}.step h3{font-size:1.05rem;margin-bottom:14px;color:#333}.desk-count-input{display:flex;align-items:center;gap:12px}.count-btn{width:44px;height:44px;border:none;border-radius:10px;font-size:1.4rem;cursor:pointer;background:#f0f0f0}.desk-count-input input{width:80px;height:44px;text-align:center;font-size:1.2rem;font-weight:600;border:2px solid #ddd;border-radius:10px}.column-options{display:flex;gap:10px;flex-wrap:wrap}.option-btn{padding:12px 20px;border:2px solid #ddd;border-radius:10px;cursor:pointer;font-weight:600;background:white;font-size:1rem}.option-btn:hover{border-color:#667eea}.option-btn.active{background:linear-gradient(135deg,#667eea,#764ba2);color:white;border-color:transparent}.seat-type-options{display:flex;gap:14px;flex-wrap:wrap}.type-card{padding:18px 20px;border:2px solid #ddd;border-radius:12px;cursor:pointer;text-align:center;min-width:110px;background:white}.type-card:hover{border-color:#667eea}.type-card.active{border-color:#667eea;background:rgba(102,126,234,0.1)}.type-card .preview{display:flex;gap:4px;justify-content:center;margin-bottom:10px}.type-card .seat{width:22px;height:22px;background:#667eea;border-radius:4px}.type-card p{font-weight:600;font-size:0.95rem}.layout-options{display:flex;gap:12px;flex-wrap:wrap}.layout-btn{padding:14px;border:2px solid #ddd;border-radius:10px;cursor:pointer;text-align:center;background:white}.layout-btn:hover{border-color:#667eea}.layout-btn.active{border-color:#667eea;background:rgba(102,126,234,0.1)}.layout-preview{display:flex;gap:8px;margin-bottom:8px}.layout-group{display:flex;gap:3px}.mini-seat{width:16px;height:16px;background:#667eea;border-radius:3px}.layout-text{font-size:0.85rem;font-weight:600;color:#666}.student-count-section{background:#f8f9fa;padding:18px;border-radius:12px}.count-display{display:flex;align-items:center;justify-content:center;gap:14px;font-size:1.05rem}.count-display input{width:70px;font-size:1.15rem;font-weight:600;text-align:center;border:2px solid #667eea;border-radius:8px;padding:8px}.empty-seat-info{text-align:center;margin-top:14px;padding:10px;border-radius:8px;font-size:0.95rem}.preview-panel{width:280px;background:#f8f9fa;padding:20px;border-radius:12px;flex-shrink:0}.preview-panel h3{font-size:1rem;margin-bottom:14px;text-align:center}.preview-desk{background:linear-gradient(135deg,#667eea,#764ba2);color:white;padding:8px;text-align:center;border-radius:6px;font-size:0.85rem;margin-bottom:14px}.preview-grid{display:flex;flex-direction:column;gap:5px}.preview-row{display:flex;gap:10px;justify-content:center}.preview-group{display:flex;gap:3px}.preview-seat{width:18px;height:18px;background:#667eea;border-radius:3px}.preview-info{text-align:center;margin-top:14px;font-size:0.85rem;color:#666}main{padding:30px;max-width:1200px;margin:0 auto}.desk{background:linear-gradient(135deg,#667eea,#764ba2);color:white;padding:16px 48px;text-align:center;border-radius:12px;font-weight:600;font-size:1.1rem;margin:0 auto 24px;max-width:200px}.seating-area{display:flex;flex-direction:column;gap:12px}.seat-row{display:flex;gap:24px;justify-content:center}.seat-group{display:flex;gap:6px}.seat-card{width:110px;min-height:88px;background:white;border-radius:12px;padding:12px 8px;text-align:center;cursor:pointer;transition:all 0.2s;box-shadow:0 2px 8px rgba(0,0,0,0.08);position:relative;display:flex;flex-direction:column;justify-content:center;align-items:center;border:2px solid transparent}.seat-card:hover{transform:translateY(-3px);box-shadow:0 6px 16px rgba(0,0,0,0.12)}.seat-card.male{background:linear-gradient(135deg,#e3f2fd,#bbdefb);border-color:#64b5f6}.seat-card.female{background:linear-gradient(135deg,#fce4ec,#f8bbd9);border-color:#f06292}.seat-card.empty{background:#f5f5f5;border:2px dashed #ccc}.seat-card.locked{box-shadow:0 0 0 3px #ff9800}.seat-card.waiting{animation:pulse 1s infinite}.seat-card.just-assigned{animation:pop 0.5s ease-out}.seat-card.dragging{opacity:0.5}.seat-card.drag-over{border:2px dashed #667eea;background:rgba(102,126,234,0.1)}.seat-card.selectable-seat{border:2px dashed #4caf50 !important;cursor:crosshair}@keyframes pulse{0%,100%{opacity:1}50%{opacity:0.5}}@keyframes pop{0%{transform:scale(0.8)}50%{transform:scale(1.1)}100%{transform:scale(1)}}.student-id{font-size:0.75rem;color:#888}.student-name{font-size:1rem;font-weight:600;margin:4px 0}.seat-number{font-size:0.7rem;color:#aaa}.empty-text{color:#999;font-size:0.85rem}.lock-btn{position:absolute;top:4px;right:4px;background:none;border:none;cursor:pointer;font-size:0.9rem;opacity:0.5}.lock-btn:hover{opacity:1}.lottery-panel{position:fixed;bottom:0;left:0;right:0;background:linear-gradient(to top,rgba(0,0,0,0.95),rgba(0,0,0,0.8));display:none;flex-direction:row;justify-content:center;align-items:center;z-index:1000;padding:20px 30px;gap:30px;box-shadow:0 -4px 20px rgba(0,0,0,0.3)}.lottery-panel.show{display:flex}.lottery-box{display:flex;gap:30px;align-items:center;margin-bottom:20px}.lottery-machine{width:200px;height:120px;background:linear-gradient(180deg,#333,#1a1a1a);border-radius:20px 20px 50px 50px;position:relative;overflow:hidden;border:3px solid #444}.balls-area{width:100%;height:70px;position:relative}.ball-exit{position:absolute;bottom:0;left:50%;transform:translateX(-50%);width:50px;height:28px;background:#111;border-radius:0 0 25px 25px}.bouncing-ball{position:absolute;width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:0.75rem;font-weight:700;color:#333;box-shadow:inset -2px -2px 4px rgba(0,0,0,0.3)}.bouncing-ball.falling{animation:fallOut 0.7s ease-in forwards}@keyframes fallOut{to{transform:translateY(100px);opacity:0}}.lottery-info{color:white;text-align:center}.current-ball{width:100px;height:100px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;margin:0 auto 18px;opacity:0;transform:scale(0);transition:all 0.3s;box-shadow:0 6px 28px rgba(0,0,0,0.4)}.current-ball.show{opacity:1;transform:scale(1)}.ball-number{font-size:1rem;font-weight:700}.ball-name{font-size:1.2rem;font-weight:700}.progress-section{font-size:1.1rem}.progress-bar{width:200px;height:8px;background:#444;border-radius:4px;overflow:hidden;margin-top:10px}.progress-fill{height:100%;background:linear-gradient(90deg,#667eea,#764ba2);width:0;transition:width 0.3s}.skip-btn{background:rgba(255,255,255,0.1);color:white;border:1px solid rgba(255,255,255,0.3);padding:12px 24px;border-radius:8px;cursor:pointer;font-size:1rem}.modal{position:fixed;inset:0;background:rgba(0,0,0,0.5);display:none;justify-content:center;align-items:center;z-index:1100;padding:16px}.modal.show{display:flex}.modal-content{background:white;border-radius:14px;width:100%;max-width:420px;max-height:85vh;overflow-y:auto}.modal-content.small{max-width:320px}.modal-content.wide{max-width:560px}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:16px 18px;border-bottom:1px solid #eee}.modal-header h3{font-size:1.05rem}.close-btn{background:none;border:none;font-size:1.4rem;cursor:pointer;color:#999}.modal-body{padding:18px}.modal-body label{display:block;margin-bottom:6px;font-weight:600;font-size:0.9rem}.modal-body input[type="text"],.modal-body textarea{width:100%;padding:10px;border:1px solid #ddd;border-radius:8px;font-size:0.9rem;margin-bottom:12px}.modal-footer{padding:14px 18px;border-top:1px solid #eee;display:flex;justify-content:flex-end;gap:10px}.hint{font-size:0.8rem;color:#888;margin:6px 0}.tab-menu{display:flex;gap:6px;margin-bottom:16px;border-bottom:1px solid #eee;padding-bottom:10px}.tab-btn{padding:8px 14px;border:none;background:none;cursor:pointer;font-size:0.85rem;color:#666;border-radius:6px}.tab-btn:hover{background:#f5f5f5}.tab-btn.active{background:linear-gradient(135deg,#667eea,#764ba2);color:white}.tab-content{display:none}.tab-content.active{display:block}.seat-section{background:#f8f9fa;padding:14px;border-radius:10px;margin-bottom:16px}.seat-section p{margin-bottom:10px}.seat-actions{display:flex;flex-wrap:wrap;gap:8px}.seat-actions .btn.praise-quick{flex:1 1 calc(62% - 4px);color:#fff;border-color:transparent;background:linear-gradient(135deg,#667eea,#764ba2);box-shadow:0 4px 14px rgba(102,126,234,.28)}.seat-actions .btn.praise-quick:hover{filter:brightness(1.06)}.seat-actions .btn.praise-minus-quick{flex:1 1 calc(38% - 4px);justify-content:center;color:#725d8d;border-color:#ddd4ef;background:#f6f1fc}.seat-actions .btn.praise-minus-quick:hover:not(:disabled){color:#c92a2a;border-color:#ffc9c9;background:#fff0f0}.seat-actions .btn.praise-minus-quick:disabled{opacity:.48;cursor:not-allowed}.seat-actions .btn{flex:1;justify-content:center}.relation-section{margin-bottom:16px}.relation-section h4{font-size:0.9rem;margin-bottom:8px}.chips{display:flex;flex-wrap:wrap;gap:6px;min-height:32px;margin-bottom:8px}.chip{display:inline-flex;align-items:center;gap:4px;padding:5px 10px;border-radius:16px;font-size:0.8rem}.chip.close{background:#e8f5e9;color:#2e7d32}.chip.far{background:#ffebee;color:#c62828}.chip .remove{background:none;border:none;cursor:pointer;opacity:0.6}.add-btn{padding:6px 12px;border:1px dashed #ccc;border-radius:16px;background:none;cursor:pointer;font-size:0.8rem;color:#666}.history-list{max-height:240px;overflow-y:auto}.history-item{padding:10px;background:#f8f9fa;border-radius:8px;margin-bottom:6px;font-size:0.85rem}.settings-menu{display:flex;flex-direction:column;gap:10px}.settings-item{display:flex;align-items:center;gap:12px;padding:14px;background:#f8f9fa;border:none;border-radius:10px;cursor:pointer;font-size:0.95rem;text-align:left;width:100%}.settings-item:hover{background:#f0f0f0}.settings-item.danger{color:#c62828}.class-tabs{display:flex;gap:6px;margin-bottom:14px;overflow-x:auto;padding-bottom:6px}.class-tab{padding:6px 14px;border:1px solid #ddd;border-radius:16px;background:white;cursor:pointer;font-size:0.8rem;white-space:nowrap}.class-tab:hover{border-color:#667eea}.class-tab.active{background:linear-gradient(135deg,#667eea,#764ba2);color:white;border-color:transparent}.class-tab.has-data::after{content:'●';margin-left:4px;color:#4caf50;font-size:0.6rem}.roster-name-row{display:flex;align-items:center;gap:10px;margin-bottom:10px}.roster-name-row label{font-weight:600}.roster-name-row input{flex:1;padding:8px;border:1px solid #ddd;border-radius:6px}.backup-section{margin-bottom:16px}.backup-section h4{margin-bottom:8px}.backup-section textarea{width:100%;height:80px;font-family:monospace;font-size:0.75rem;padding:8px;border:1px solid #ddd;border-radius:6px}hr{border:none;border-top:1px solid #eee;margin:16px 0}.section-divider{margin:14px 0}.excel-upload-section{background:#f0f4ff;padding:14px;border-radius:10px;margin-bottom:10px}.excel-buttons{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}.roster-download-hint{margin:9px 0 0;text-align:center}.drop-zone{border:2px dashed #ccc;border-radius:12px;padding:30px;text-align:center;cursor:pointer;transition:all 0.2s;margin-bottom:16px}.drop-zone:hover,.drop-zone.dragover{border-color:#667eea;background:rgba(102,126,234,0.05)}.drop-icon{font-size:2.5rem;margin-bottom:8px}.format-info{margin-bottom:16px}.format-info h4{font-size:0.9rem;margin-bottom:10px}.format-list{display:flex;flex-direction:column;gap:6px}.format-item{font-size:0.85rem;color:#555}.excel-preview{background:#f8f9fa;padding:14px;border-radius:10px}.excel-preview h4{margin-bottom:10px}.preview-class{background:white;padding:10px;border-radius:8px;margin-bottom:8px}.preview-class strong{color:#667eea}.preview-students{font-size:0.8rem;color:#666;margin-top:6px}.history-records{max-height:350px;overflow-y:auto}.record{display:flex;justify-content:space-between;align-items:center;padding:10px;background:#f8f9fa;border-radius:8px;margin-bottom:6px}.record-info{display:flex;flex-direction:column;gap:2px}.record-date{font-size:0.75rem;color:#888}.record-memo{font-weight:600}.record-count{font-size:0.8rem;color:#666}.record-actions{display:flex;gap:6px}.record-actions button{display:inline-flex;align-items:center;gap:4px;background:none;border:none;cursor:pointer;font-size:.78rem;padding:7px 8px;border-radius:7px;white-space:nowrap}.record-actions button:hover{background:#e8e8e8}.picker-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.5);display:none;justify-content:center;align-items:center;z-index:1200}.picker-overlay.show{display:flex}.picker-content{background:white;border-radius:14px;width:90%;max-width:280px;max-height:70vh;overflow:hidden}.picker-header{display:flex;justify-content:space-between;align-items:center;padding:14px;border-bottom:1px solid #eee}.picker-content>input{width:calc(100% - 24px);margin:10px 12px;padding:8px;border:1px solid #ddd;border-radius:6px}.picker-list{max-height:260px;overflow-y:auto}.picker-item{display:flex;justify-content:space-between;padding:10px 14px;cursor:pointer}.picker-item:hover{background:#f5f5f5}.toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%) translateY(80px);background:#333;color:white;padding:10px 20px;border-radius:8px;font-size:0.9rem;opacity:0;transition:all 0.3s;z-index:2000}.toast.show{transform:translateX(-50%) translateY(0);opacity:1}.toast.error{background:#c62828}.print-only{display:none}@media print{body *{visibility:hidden}.print-only,.print-only *{visibility:visible}.print-only{display:block;position:absolute;left:0;top:0;width:100%;padding:20px;-webkit-print-color-adjust:exact !important;print-color-adjust:exact !important;color-adjust:exact !important}.print-header{text-align:center;margin-bottom:20px}.print-header h1{font-size:1.8rem;margin-bottom:8px}.print-header p{font-size:1rem;color:#555 !important}.print-seating{display:flex;flex-direction:column;gap:8px;margin:20px 0}.print-row{display:flex;gap:18px;justify-content:center}.print-group{display:flex;gap:4px}.print-seat{width:80px;height:56px;border:1.5px solid #333;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:0.9rem;border-radius:4px;-webkit-print-color-adjust:exact !important;print-color-adjust:exact !important}.print-seat.male{background:#e3f2fd !important;background-color:#e3f2fd !important}.print-seat.female{background:#fce4ec !important;background-color:#fce4ec !important}.print-seat.empty{background:#f5f5f5 !important;background-color:#f5f5f5 !important}.print-seat.locked{border:2.5px solid #ff9800 !important}.print-seat-id{font-size:0.75rem;color:#666 !important}.print-seat-name{font-weight:600;font-size:1rem}.print-desk{text-align:center;padding:10px 20px;background:#667eea !important;background-color:#667eea !important;color:white !important;max-width:160px;margin:16px auto;border-radius:6px;font-size:1rem;font-weight:600;-webkit-print-color-adjust:exact !important;print-color-adjust:exact !important}.print-desk-gap{height:16px}.print-legend{display:flex;justify-content:center;gap:20px;margin-top:20px;font-size:0.9rem}.print-legend-item{display:flex;align-items:center;gap:8px}.print-legend-box{width:22px;height:22px;border:1px solid #333;border-radius:3px;-webkit-print-color-adjust:exact !important;print-color-adjust:exact !important}.print-legend-box.male{background:#e3f2fd !important;background-color:#e3f2fd !important}.print-legend-box.female{background:#fce4ec !important;background-color:#fce4ec !important}.print-footer{display:flex;justify-content:space-between;margin-top:30px;font-size:0.85rem;color:#666 !important;padding:0 20px}}@media (max-width:900px){.wizard{flex-direction:column;margin:16px;padding:20px;max-width:none}.wizard-content{flex:1}.preview-panel{width:100%}}@media (max-width:768px){main{padding:16px}.seat-card{width:85px;min-height:72px}.student-name{font-size:0.9rem}.seat-row{gap:14px}.action-bar{justify-content:center}.modal-content{margin:10px}}.lottery-panel{flex-direction:column !important;gap:14px !important;padding:18px 24px 20px !important}.lottery-stage{display:flex;flex-direction:column;align-items:center;gap:10px}.lottery-headline{color:#fff;font-size:1.15rem;font-weight:800;letter-spacing:0.04em;text-shadow:0 2px 12px rgba(102,126,234,0.8)}.lottery-headline.final{color:#ffd54f;animation:headlinePulse 0.7s ease-in-out infinite}@keyframes headlinePulse{0%,100%{transform:scale(1)}50%{transform:scale(1.09)}}.lottery-box{margin-bottom:0 !important}.lottery-machine{box-shadow:0 0 0 0 rgba(102,126,234,0.6)}.lottery-machine.shake{animation:machineShake 0.32s ease-in-out}@keyframes machineShake{0%,100%{transform:translate(0,0) rotate(0)}25%{transform:translate(-3px,1px) rotate(-1.2deg)}50%{transform:translate(3px,-1px) rotate(1.2deg)}75%{transform:translate(-2px,0) rotate(-0.6deg)}}.lottery-seat-label{color:#ffd54f;font-weight:700;font-size:0.95rem;height:1.2em;margin:-8px 0 10px;opacity:0;transition:opacity 0.25s}.lottery-seat-label.show{opacity:1}.lottery-remain{color:rgba(255,255,255,0.75);font-size:0.85rem;margin-top:8px}.lottery-remain strong{color:#fff;font-size:1.05rem}.progress-fill{background:linear-gradient(90deg,#667eea,#764ba2,#f093fb) !important;background-size:200% 100% !important;animation:progressShine 2s linear infinite}@keyframes progressShine{to{background-position:-200% 0}}.lottery-controls{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:center}.speed-group{display:flex;background:rgba(255,255,255,0.08);border:1px solid rgba(255,255,255,0.2);border-radius:10px;overflow:hidden}.speed-btn{background:none;border:none;color:rgba(255,255,255,0.65);padding:9px 14px;cursor:pointer;font-size:0.85rem;transition:all 0.18s}.speed-btn:hover{background:rgba(255,255,255,0.1);color:#fff}.speed-btn.active{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;font-weight:700}.sound-btn{background:rgba(255,255,255,0.08);color:rgba(255,255,255,0.85);border:1px solid rgba(255,255,255,0.2);padding:9px 14px;border-radius:10px;cursor:pointer;font-size:0.85rem}.sound-btn.muted{color:rgba(255,255,255,0.4)}.skip-btn{padding:9px 18px !important;font-size:0.9rem !important}.flying-ball{position:fixed;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:0.75rem;font-weight:700;color:#333;z-index:1050;pointer-events:none;box-shadow:0 4px 18px rgba(0,0,0,0.35);transition:transform 0.5s cubic-bezier(.34,1.3,.64,1),opacity 0.5s ease-in}.seat-card.just-assigned{animation:seatPop 0.55s cubic-bezier(.34,1.56,.64,1);z-index:5}@keyframes seatPop{0%{transform:scale(0.72) rotate(-5deg);box-shadow:0 0 0 0 rgba(102,126,234,0.75)}55%{transform:scale(1.14) rotate(2deg);box-shadow:0 0 0 14px rgba(102,126,234,0)}100%{transform:scale(1) rotate(0)}}.seat-card.final-reveal{animation:finalReveal 1.1s cubic-bezier(.34,1.56,.64,1);z-index:6}@keyframes finalReveal{0%{transform:scale(0.5);filter:brightness(2.2)}40%{transform:scale(1.3);filter:brightness(1.6)}70%{transform:scale(0.96)}100%{transform:scale(1);filter:brightness(1)}}.confetti-canvas{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:1600;display:none}.confetti-canvas.show{display:block}.guide-cta{background:linear-gradient(135deg,#667eea,#764ba2) !important;color:#fff !important;border-color:transparent !important;font-weight:700}.guide-modal{z-index:1400}.guide-content{max-width:880px !important;max-height:92vh !important;display:flex;flex-direction:column;overflow:hidden !important}.guide-head{flex-shrink:0}.guide-viewport{position:relative;overflow:hidden;flex:1;min-height:0;background:#f7f8fb}.guide-track{display:flex;transition:transform 0.38s cubic-bezier(.4,0,.2,1);height:100%}.guide-slide{min-width:100%;padding:18px 22px 22px;display:flex;flex-direction:column;gap:14px;overflow-y:auto}.guide-step{font-size:0.75rem;font-weight:700;color:#667eea;letter-spacing:0.08em}.guide-slide h4{font-size:1.15rem;margin:0}.guide-shot{width:100%;border:1px solid #e2e5ee;border-radius:10px;background:#fff;box-shadow:0 4px 18px rgba(20,26,60,0.09);display:block}.guide-desc{font-size:0.9rem;line-height:1.65;color:#444}.guide-desc ul{margin:6px 0 0 18px}.guide-desc li{margin-bottom:5px}.guide-desc strong{color:#4a4fd0}.guide-callout{background:#fff8e6;border:1px solid #ffe0a3;border-left:4px solid #f0a500;border-radius:8px;padding:11px 13px;font-size:0.87rem;line-height:1.6;color:#6b4c00}.guide-callout.danger{background:#fff0f0;border-color:#ffc9c9;border-left-color:#e03131;color:#8b2020}.guide-callout.good{background:#eefbf3;border-color:#b7e8cc;border-left-color:#12b76a;color:#0d5c39}.guide-nav{position:absolute;top:50%;transform:translateY(-50%);width:42px;height:42px;border-radius:50%;border:none;background:rgba(255,255,255,0.94);box-shadow:0 3px 14px rgba(0,0,0,0.18);color:#333;font-size:1.5rem;line-height:1;cursor:pointer;z-index:3;transition:all 0.18s}.guide-nav:hover{background:#fff;transform:translateY(-50%) scale(1.08)}.guide-nav[disabled]{opacity:0.25;cursor:default}.guide-nav.prev{left:10px}.guide-nav.next{right:10px}.guide-foot{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 18px;border-top:1px solid #eee;background:#fff;flex-wrap:wrap}.guide-dots{display:flex;gap:7px;flex-wrap:wrap}.guide-dot{width:9px;height:9px;border-radius:50%;border:none;background:#d6d9e3;cursor:pointer;padding:0;transition:all 0.18s}.guide-dot.active{background:#667eea;width:24px;border-radius:5px}.guide-foot-right{display:flex;align-items:center;gap:12px}.guide-skip{font-size:0.82rem;color:#777;display:flex;align-items:center;gap:5px;cursor:pointer}.app-footer{margin-top:32px;padding:22px 16px 28px;border-top:1px solid #e3e6ef;background:#fafbfd;text-align:center}.footer-links{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}.footer-links a,.footer-link-btn{color:#4a6cf7;text-decoration:none;font-size:0.88rem;font-weight:600;background:none;border:none;cursor:pointer;padding:0;font-family:inherit}.footer-links a:hover,.footer-link-btn:hover{text-decoration:underline}.footer-sep{color:#c3c7d4}.footer-copy{font-size:0.82rem;color:#8b8fa3;margin-bottom:8px}.footer-note{font-size:0.78rem;color:#9aa0b4;line-height:1.6;max-width:620px;margin:0 auto}.footer-note strong{color:#6a708a}.footer-note em{font-style:normal;color:#6a708a;font-weight:600}@media (max-width:700px){.guide-content{max-height:96vh !important}.guide-slide{padding:14px 16px 18px}.guide-nav{width:34px;height:34px;font-size:1.2rem}.lottery-controls{gap:8px}.speed-btn,.sound-btn,.skip-btn{padding:8px 11px !important;font-size:0.78rem !important}}@media (prefers-reduced-motion:reduce){.lottery-headline.final,.progress-fill{animation:none}.seat-card.just-assigned,.seat-card.final-reveal,.lottery-machine.shake{animation:none}.flying-ball{transition:none}}body.lottery-active main{padding-bottom:330px}body.lottery-active .app-footer{display:none}.guide-shot{max-height:42vh;width:auto;max-width:100%;object-fit:contain;margin:0 auto}.guide-slide{gap:12px}.guide-slide h4{font-size:1.08rem}.guide-desc{font-size:0.88rem;line-height:1.6}@media (max-width:700px){.guide-shot{max-height:32vh}}html,body{height:100%}body{display:flex;flex-direction:column;overflow:hidden}.app-header,.action-bar{flex:0 0 auto}.wizard,main{flex:1 1 auto;min-height:0}.app-footer{flex:0 0 auto;margin-top:0}.wizard{padding:18px 24px;margin:14px auto;gap:24px;align-items:stretch;max-width:940px;width:calc(100% - 32px)}.wizard-content{flex:1 1 auto;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"desks students" "columns columns" "seattype layout" "apply apply";gap:12px 20px;align-content:start}.wizard-content>.step{margin-bottom:0;min-width:0}.wizard-content>.step:nth-of-type(1){grid-area:desks}.wizard-content>.step:nth-of-type(2){grid-area:columns}.wizard-content>.step:nth-of-type(3){grid-area:seattype}.wizard-content>#layoutStep{grid-area:layout}.wizard-content>.step:nth-of-type(5){grid-area:students}.wizard-content>#applyConfigBtn{grid-area:apply;margin-top:2px}.wizard-content .step h3{font-size:0.92rem;margin-bottom:8px}.wizard-content .type-card p{font-size:0.82rem}.preview-panel{width:220px;padding:14px}.preview-panel h3{font-size:0.92rem;margin-bottom:10px}main{padding:18px 20px;display:flex;flex-direction:column;overflow:hidden}.desk{margin:0 auto 14px;padding:10px 40px;font-size:1rem}.seating-area{transform-origin:top center;will-change:transform}body.lottery-active main{padding-bottom:18px}.app-footer{padding:10px 18px;display:flex;align-items:center;justify-content:center;gap:8px 18px;flex-wrap:wrap;text-align:center}.footer-links{margin-bottom:0;gap:8px}.footer-copy{margin-bottom:0;font-size:0.78rem}.footer-note{font-size:0.75rem;max-width:none}.guide-content{max-height:94vh !important;height:94vh}.guide-viewport{display:flex}.guide-track{align-items:stretch}.guide-slide{display:grid;grid-template-columns:minmax(0,1.32fr) minmax(0,1fr);grid-template-rows:auto auto minmax(0,1fr);grid-template-areas:"step step" "title title" "shot side";gap:6px 18px;padding:14px 20px 16px;overflow:hidden}.guide-step{grid-area:step}.guide-slide h4{grid-area:title;margin-bottom:4px}.guide-shot{grid-area:shot;width:100%;height:100%;max-height:none;object-fit:contain;object-position:top center;align-self:start}.guide-side{grid-area:side;display:flex;flex-direction:column;gap:10px;min-height:0;overflow:hidden}.guide-desc{font-size:0.83rem;line-height:1.55}.guide-desc p{margin-bottom:6px}.guide-desc ul{margin:4px 0 0 16px}.guide-desc li{margin-bottom:4px}.guide-callout{padding:9px 11px;font-size:0.78rem;line-height:1.5}@media (max-width:860px){.wizard{flex-direction:column}.wizard-content{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.preview-panel{width:100%}.guide-slide{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto minmax(0,1.1fr) minmax(0,1fr);grid-template-areas:"step" "title" "shot" "side"}}@media print{html,body{height:auto;overflow:visible;display:block}main{display:block;overflow:visible}.seating-area{transform:none !important;margin-bottom:0 !important}}.wizard{padding:14px 20px;margin:8px auto}.wizard-content{gap:8px 18px}.wizard-content .step h3{margin-bottom:6px}.wizard-content .type-card{padding:8px 10px}.wizard-content .layout-options .layout-card,.wizard-content .layout-options>div{padding:8px 10px}.wizard-content #applyConfigBtn{padding:10px 18px;font-size:0.95rem}.desk-count-input input,.student-count-section input{padding:8px 10px}.lottery-panel{flex-direction:row !important;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px 20px !important;padding:10px 18px !important}.lottery-stage{flex-direction:row !important;align-items:center;gap:16px}.lottery-headline{font-size:0.92rem;white-space:nowrap}.lottery-box{gap:16px !important;align-items:center}.lottery-machine{width:164px;height:92px;border-radius:16px 16px 40px 40px}.balls-area{height:56px}.ball-exit{width:42px;height:22px}.bouncing-ball{width:26px;height:26px;font-size:0.68rem}.lottery-info{display:grid;grid-template-columns:auto minmax(150px,auto);grid-template-areas:"ball label" "ball prog" "ball remain";align-items:center;gap:2px 14px;text-align:left}.current-ball{grid-area:ball;width:72px;height:72px;margin:0 !important}.ball-number{font-size:0.8rem}.ball-name{font-size:0.95rem}.lottery-seat-label{grid-area:label;margin:0 !important;font-size:0.85rem}.progress-section{grid-area:prog;font-size:0.9rem;display:flex;align-items:center;gap:10px}.progress-bar{width:150px;margin-top:0 !important}.lottery-remain{grid-area:remain;margin-top:0 !important;font-size:0.8rem}.lottery-controls{gap:8px}.speed-btn{padding:7px 11px;font-size:0.8rem}.sound-btn,.skip-btn{padding:7px 12px !important;font-size:0.8rem !important}@media (max-width:1100px){.lottery-headline{display:none}.lottery-machine{width:130px;height:78px}.balls-area{height:46px}}.stage{flex:1 1 auto;min-height:0;display:flex;gap:16px;padding:14px 18px 16px;overflow:hidden}.stage main,main#mainArea{flex:1 1 auto;min-width:0;padding:0 !important;display:flex;flex-direction:column;overflow:hidden}.classroom{flex:1 1 auto;min-height:0;display:flex;align-items:stretch;justify-content:center;gap:12px;border:2px dashed #dfe3ee;border-radius:20px;padding:14px 16px;background:radial-gradient(circle at 50% 0%,rgba(102,126,234,0.07),transparent 60%),#fbfcff}.cr-side{writing-mode:vertical-rl;text-orientation:upright;letter-spacing:5px;font-weight:700;font-size:0.76rem;color:#8a90a6;background:#eef0f7;border:1px dashed #d3d7e6;border-radius:10px;padding:8px 3px;display:flex;align-items:center;justify-content:center;min-width:26px;flex-shrink:0}.cr-side.window{background:#eaf4ff;color:#5b87c7;border-color:#c6ddf5}.desk{width:min(520px,62%);max-width:none !important;margin:0 auto 12px !important;padding:11px 36px !important;border-radius:0 0 18px 18px;letter-spacing:10px;box-shadow:0 6px 20px rgba(102,126,234,0.34)}.seating-area{align-self:center}.dock{width:236px;flex-shrink:0;display:flex;flex-direction:column;gap:12px;overflow:hidden}.dock-card{background:#fff;border:1px solid #e8eaf2;border-radius:16px;padding:12px;box-shadow:0 3px 14px rgba(20,26,60,0.06)}.dock-title{font-size:0.8rem;font-weight:800;color:#6b7189;margin-bottom:8px;letter-spacing:0.02em}.timer-card{text-align:center}.timer-display{font-size:2.5rem;font-weight:800;letter-spacing:0.02em;color:#2f3550;font-variant-numeric:tabular-nums;line-height:1.05;margin-bottom:8px;text-shadow:0 2px 10px rgba(102,126,234,0.16);transition:color 0.2s,transform 0.2s}.timer-display.warning{color:#e8590c;animation:timerPulse 1s ease-in-out infinite}.timer-display.done{color:#e03131}@keyframes timerPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.09)}}.timer-presets{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin-bottom:9px}.chip{background:#f1f3fa;border:1px solid transparent;border-radius:8px;padding:6px 0;font-size:0.76rem;font-weight:600;color:#6b7189;cursor:pointer;font-family:inherit;transition:all 0.15s}.chip:hover{background:#e6eaff;color:#4a4fd0}.chip.active{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-color:transparent}.timer-presets .chip.custom{font-size:0.7rem;letter-spacing:-0.03em;white-space:nowrap}.timer-controls{display:flex;gap:6px}.tbtn{flex:1;border:none;border-radius:10px;padding:9px 0;font-size:0.85rem;font-weight:700;cursor:pointer;font-family:inherit;color:#fff;background:linear-gradient(135deg,#12b76a,#0e9f5b);transition:all 0.15s}.tbtn.pause{background:linear-gradient(135deg,#f59f00,#e8850c)}.tbtn.ghost{flex:0 0 42px;background:#f1f3fa;color:#6b7189;font-size:1rem}.tbtn:hover{transform:translateY(-1px);filter:brightness(1.06)}.tools-card{display:grid;grid-template-columns:1fr 1fr;gap:8px}.tool-tile{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:12px 6px;border:none;border-radius:14px;cursor:pointer;text-decoration:none;font-family:inherit;color:#4a4f6b;background:linear-gradient(145deg,#f5f7ff,#e9edff);box-shadow:0 2px 0 #d7ddf5,0 4px 12px rgba(102,126,234,0.13);transition:all 0.16s}.tool-tile:hover{transform:translateY(-3px);box-shadow:0 5px 0 #d7ddf5,0 10px 22px rgba(102,126,234,0.24)}.tool-tile:active{transform:translateY(1px);box-shadow:0 1px 0 #d7ddf5,0 3px 8px rgba(102,126,234,0.18)}.tt-icon{font-size:1.4rem;line-height:1}.tt-label{font-size:0.76rem;font-weight:700}.book-card{display:flex;gap:10px;align-items:center;text-decoration:none;background:#fff;border:1px solid #e8eaf2;border-radius:16px;padding:10px;box-shadow:0 3px 14px rgba(20,26,60,0.06);transition:all 0.16s;margin-top:auto}.book-card:hover{transform:translateY(-2px);box-shadow:0 8px 22px rgba(20,26,60,0.13);border-color:#c9d0f0}.book-card img{width:52px;border-radius:4px;flex-shrink:0;box-shadow:0 2px 8px rgba(0,0,0,0.18)}.book-text{min-width:0}.book-text strong{display:block;font-size:0.76rem;color:#2f3550;line-height:1.35}.book-text span{display:block;font-size:0.68rem;color:#8a90a6;margin-top:3px}.splash{position:fixed;inset:0;z-index:1500;display:none;align-items:center;justify-content:center;background:radial-gradient(circle at 50% 45%,#2b3170,#0d1030 70%);overflow:hidden}.splash.show{display:flex}.splash-rays{position:absolute;inset:-50%;background:repeating-conic-gradient(from 0deg,rgba(255,255,255,0.075) 0deg 8deg,transparent 8deg 16deg);animation:raySpin 14s linear infinite}@keyframes raySpin{to{transform:rotate(360deg)}}.splash-inner{position:relative;text-align:center;color:#fff}.splash-class{font-size:2rem;font-weight:800;letter-spacing:0.02em;text-shadow:0 4px 24px rgba(118,75,162,0.9)}.splash-sub{font-size:1rem;color:rgba(255,255,255,0.72);margin-top:6px}.splash-count{font-size:8rem;font-weight:900;line-height:1;margin:18px 0 8px;background:linear-gradient(135deg,#ffd54f,#ff8a65,#f093fb);-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:0 0 60px rgba(255,213,79,0.5)}.splash-count.pulse{animation:countPop 0.85s cubic-bezier(.34,1.56,.64,1)}.splash-count.go{font-size:6rem}@keyframes countPop{0%{transform:scale(2.1);opacity:0}45%{transform:scale(0.92);opacity:1}100%{transform:scale(1)}}.splash-hint{color:rgba(255,255,255,0.5);font-size:0.9rem;letter-spacing:0.2em}.splash-skip{position:absolute;bottom:28px;right:28px;background:rgba(255,255,255,0.1);color:#fff;border:1px solid rgba(255,255,255,0.3);padding:9px 16px;border-radius:10px;cursor:pointer;font-size:0.85rem}.pick-result{background:linear-gradient(145deg,#f5f7ff,#e9edff);border-radius:16px;padding:22px 12px;text-align:center;margin-bottom:10px;border:2px solid transparent;transition:all 0.2s}.pick-result.settled{border-color:#667eea;box-shadow:0 0 0 5px rgba(102,126,234,0.14)}.pick-no{display:block;font-size:0.85rem;color:#8a90a6;font-weight:700;min-height:1.1em}.pick-name{display:block;font-size:2rem;font-weight:800;color:#2f3550;line-height:1.2}.pick-result.settled .pick-name{animation:countPop 0.5s cubic-bezier(.34,1.56,.64,1)}.pick-opt{display:flex;align-items:center;gap:6px;font-size:0.84rem;color:#6b7189;margin:8px 0;cursor:pointer}.pick-picked{display:flex;flex-wrap:wrap;gap:5px;max-height:76px;overflow:hidden}.picked-chip{background:#eef0f7;color:#7b8199;border-radius:999px;padding:3px 9px;font-size:0.72rem}@media (max-width:1080px){.stage{flex-direction:column;gap:10px}.dock{width:100%;flex-direction:row;align-items:stretch;gap:10px}.timer-card{flex:0 0 190px}.tools-card{flex:1 1 auto;grid-template-columns:repeat(4,1fr)}.book-card{flex:0 0 210px;margin-top:0}.cr-side{display:none}}@media (max-width:720px){.dock{flex-direction:column}.timer-card,.book-card{flex:1 1 auto}}@media print{.stage{display:block !important}.dock,.splash,.classroom{display:none !important}}.guide-content{max-width:min(1280px,96vw) !important;width:min(1280px,96vw);max-height:95vh !important;height:95vh}.guide-slide{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:8px 22px;padding:16px 24px 18px}.guide-slide h4{font-size:1.24rem}.guide-step{font-size:0.78rem}.guide-desc{font-size:0.9rem;line-height:1.62}.guide-desc li{margin-bottom:6px}.guide-callout{font-size:0.84rem;padding:10px 12px}.guide-nav{width:46px;height:46px;font-size:1.6rem}.guide-head h3{font-size:1.1rem}@media (max-width:1000px){.guide-slide{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto minmax(0,1.05fr) minmax(0,1fr);grid-template-areas:"step" "title" "shot" "side"}.guide-slide h4{font-size:1.05rem}.guide-desc{font-size:0.82rem}}.settings-cta{background:linear-gradient(135deg,#5c6270,#444a58) !important;color:#fff !important;border-color:transparent !important;font-weight:700}#blogBtn{text-decoration:none;display:inline-flex;align-items:center}.type-card .preview.cluster{display:grid;grid-template-columns:repeat(2,auto);gap:3px;justify-content:center}.group-size-preview{display:grid;grid-template-columns:repeat(2,auto);gap:3px;justify-content:center;margin-bottom:5px}.group-size-card .mini-seat{width:11px;height:11px}.seat-group.cluster{display:grid;grid-template-columns:repeat(2,auto);gap:4px;position:relative;padding:16px 8px 8px;background:#f4f6fd;border:1.5px dashed #ccd3ee;border-radius:14px}.seat-group.cluster::before{content:attr(data-group-label);position:absolute;top:3px;left:50%;transform:translateX(-50%);font-size:0.66rem;font-weight:800;color:#7b81a8;letter-spacing:0.04em}.seat-group.cluster-5{grid-template-columns:repeat(3,auto)}.seat-group.cluster-6{grid-template-columns:repeat(3,auto)}.seat-group.cluster .seat-card{width:92px;min-height:74px}.seat-row:has(.cluster){gap:20px}.praise-badge{position:absolute;top:4px;left:5px;background:linear-gradient(135deg,#ffd54f,#ffb300);color:#6b4c00;font-size:0.62rem;font-weight:800;padding:2px 5px;border-radius:999px;box-shadow:0 1px 4px rgba(0,0,0,0.16)}.praise-list{display:flex;flex-direction:column;gap:5px;max-height:46vh;overflow:hidden}.praise-row{display:flex;gap:6px}.praise-name{flex:1;display:flex;align-items:center;gap:8px;text-align:left;background:#f7f8fc;border:1px solid transparent;border-radius:10px;padding:8px 11px;cursor:pointer;font-family:inherit;font-size:0.88rem;color:#3a3f57;transition:all 0.15s}.praise-name:hover{background:#eef1ff;border-color:#c9d0f0}.praise-row.has .praise-name{background:#fffaf0;border-color:#ffe0a3}.pr-no{display:inline-block;min-width:22px;font-size:0.75rem;color:#9aa0b4;font-weight:700}.pr-score{margin-left:auto;font-weight:800;color:#b07a00;font-size:0.82rem}.praise-minus{width:36px;border:none;border-radius:10px;background:#f1f3fa;color:#8a90a6;font-size:1.05rem;cursor:pointer;font-family:inherit}.praise-minus:hover{background:#ffe3e3;color:#e03131}.danger-text{color:#e03131 !important}.notice-card{cursor:pointer;flex:1 1 auto;min-height:0;display:flex;flex-direction:column}.notice-preview{font-size:0.8rem;line-height:1.6;color:#4a4f6b;white-space:pre-wrap;overflow:hidden;flex:1 1 auto;min-height:0}.notice-preview.empty{color:#b3b8cc;font-style:italic}.notice-modal-content textarea{width:100%;padding:11px;border:1px solid #ddd;border-radius:10px;font-size:0.92rem;line-height:1.7;font-family:inherit;resize:none}.notice-board{position:fixed;inset:0;z-index:1550;display:none;background:linear-gradient(160deg,#1b2050,#0d1030);color:#fff;padding:5vh 6vw}.notice-board.show{display:flex;flex-direction:column}.nb-inner{flex:1;min-height:0;display:flex;flex-direction:column}.nb-head{display:flex;justify-content:space-between;align-items:baseline;border-bottom:2px solid rgba(255,255,255,0.2);padding-bottom:14px;margin-bottom:22px}.nb-head span:first-child{font-size:2.1rem;font-weight:800}.nb-head span:last-child{font-size:1.1rem;color:rgba(255,255,255,0.6)}.nb-body{flex:1;min-height:0;overflow:hidden;display:flex;flex-direction:column;justify-content:center;gap:14px}.nb-body p{font-size:clamp(1.3rem,3.2vw,2.6rem);font-weight:600;line-height:1.45}.nb-close{position:absolute;top:22px;right:26px;background:rgba(255,255,255,0.12);color:#fff;border:1px solid rgba(255,255,255,0.3);padding:9px 16px;border-radius:10px;cursor:pointer;font-size:0.9rem}.app-footer{gap:6px 16px}.book-mini{display:inline-flex;align-items:center;gap:7px;text-decoration:none}.book-mini img{width:24px;border-radius:2px;box-shadow:0 1px 4px rgba(0,0,0,0.25)}.book-mini span{font-size:0.72rem;color:#9aa0b4}.book-mini b{color:#6a708a;font-weight:700}.book-mini:hover span{color:#4a6cf7}.book-mini:hover b{color:#4a6cf7}@media (max-width:1080px){.notice-card{flex:1 1 200px}}.wizard{flex-direction:column !important;gap:0 !important;padding:0 !important;overflow:hidden;background:#fff}.wizard-hero{background:linear-gradient(135deg,#667eea 0%,#764ba2 60%,#8e5bb5 100%);color:#fff;padding:18px 26px 14px;position:relative;overflow:hidden;flex-shrink:0}.wizard-hero::before{content:'';position:absolute;inset:-60%;background:repeating-conic-gradient(from 0deg,rgba(255,255,255,0.05) 0deg 9deg,transparent 9deg 18deg)}.hero-badge{position:relative;display:inline-block;background:rgba(255,255,255,0.18);border:1px solid rgba(255,255,255,0.32);padding:5px 13px;border-radius:999px;font-size:0.76rem;font-weight:700;margin-bottom:8px}.wizard-hero h2{position:relative;font-size:1.5rem;font-weight:900;letter-spacing:-0.01em;margin-bottom:14px}.wizard-hero h2 em{font-style:normal;color:#ffd54f}.step-tabs{position:relative;display:flex;align-items:center;gap:8px}.step-tab{display:flex;align-items:center;gap:8px;background:rgba(255,255,255,0.12);border:1px solid rgba(255,255,255,0.24);color:rgba(255,255,255,0.78);border-radius:999px;padding:7px 15px 7px 7px;cursor:pointer;font-family:inherit;font-size:0.86rem;font-weight:700;transition:all 0.18s}.step-tab:hover{background:rgba(255,255,255,0.22);color:#fff}.step-tab .st-no{width:24px;height:24px;border-radius:50%;background:rgba(255,255,255,0.25);display:flex;align-items:center;justify-content:center;font-size:0.8rem;font-weight:800}.step-tab.active{background:#fff;color:#4a4fd0;border-color:#fff;box-shadow:0 4px 16px rgba(0,0,0,0.22)}.step-tab.active .st-no{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.step-tab.done .st-no{background:#4ade80;color:#0d5c39}.step-tab.done .st-no::before{content:'✓'}.step-tab.done .st-no{font-size:0}.step-tab.done .st-no::before{font-size:0.82rem}.step-line{flex:0 0 22px;height:2px;background:rgba(255,255,255,0.28);border-radius:2px}.step-progress{position:relative;height:4px;background:rgba(255,255,255,0.2);border-radius:3px;margin-top:12px;overflow:hidden}.step-progress>div{height:100%;width:33%;border-radius:3px;background:linear-gradient(90deg,#ffd54f,#ff8a65);transition:width 0.32s cubic-bezier(.4,0,.2,1)}.wizard-body{display:flex}.wizard-content{flex:1 1 auto;grid-template-areas:none !important;display:block !important;padding:20px 26px;overflow:hidden}.wizard-content>.step{margin-bottom:18px !important}.wizard-content .step h3{font-size:1.02rem !important;margin-bottom:11px !important}.wizard-nav{display:flex;gap:10px;align-items:center;margin-top:4px}.wizard-nav .btn{padding:11px 22px;font-size:0.95rem}.wizard-nav .btn.primary.large{flex:1}.column-options .option-btn,.seat-type-options .type-card,.layout-options .layout-btn{transition:transform 0.15s,box-shadow 0.15s,border-color 0.15s}.column-options .option-btn:hover,.layout-options .layout-btn:hover{transform:translateY(-2px)}.seat-type-options .type-card:hover{transform:translateY(-3px);box-shadow:0 8px 20px rgba(102,126,234,0.2)}.seat-type-options .type-card.active{box-shadow:0 6px 18px rgba(102,126,234,0.28)}.preview-panel{width:100%;background:#f8f9fc;border-top:1px solid #eef0f6;border-radius:0;padding:12px 26px 14px;display:flex;align-items:center;justify-content:center;gap:18px;flex-shrink:0}.preview-panel h3{margin:0 !important;font-size:0.85rem !important}.preview-panel .preview-desk{margin:0}.preview-grid{flex-direction:row !important;gap:8px !important}.preview-info{margin:0;font-size:0.82rem;color:#8a90a6}.timer-stage{position:fixed;inset:0;z-index:1560;display:none;background:radial-gradient(circle at 50% 40%,#2b3170,#0b0e26 72%);overflow:auto}.timer-stage.show{display:flex;align-items:center;justify-content:center}.ts-rays{position:absolute;inset:-50%;background:repeating-conic-gradient(from 0deg,rgba(255,255,255,0.05) 0deg 10deg,transparent 10deg 20deg);animation:raySpin 26s linear infinite}.ts-inner{position:relative;text-align:center;color:#fff}.ts-label{font-size:1.1rem;color:rgba(255,255,255,0.62);letter-spacing:0.1em;margin-bottom:20px}.ts-main{display:flex;align-items:center;justify-content:center;gap:clamp(24px,6vw,70px)}.hourglass{width:clamp(90px,13vw,150px);height:auto}.hg-glass{fill:rgba(255,255,255,0.06);stroke:rgba(255,255,255,0.45);stroke-width:3;stroke-linejoin:round}.hg-frame{stroke:rgba(255,255,255,0.6);stroke-width:5;stroke-linecap:round}.hg-sand{fill:url(#none);fill:#ffd54f}.hg-stream{stroke:#ffd54f;stroke-width:3;opacity:0;transition:opacity 0.3s}.hourglass.flowing .hg-stream{animation:sandFlow 0.55s linear infinite}@keyframes sandFlow{0%{stroke-dasharray:4 7;stroke-dashoffset:0}100%{stroke-dasharray:4 7;stroke-dashoffset:-11}}.ts-ring-wrap{position:relative;width:clamp(200px,34vw,330px);aspect-ratio:1}.ts-ring{width:100%;height:100%;transform:rotate(-90deg)}.ring-bg{fill:none;stroke:rgba(255,255,255,0.12);stroke-width:12}.ring-fill{fill:none;stroke:url(#none);stroke:#667eea;stroke-width:12;stroke-linecap:round;transition:stroke-dashoffset 0.95s linear,stroke 0.3s}.ring-fill.warning{stroke:#ff6b6b}.ts-time{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:clamp(3rem,9vw,6rem);font-weight:900;font-variant-numeric:tabular-nums;letter-spacing:-0.02em;text-shadow:0 6px 40px rgba(102,126,234,0.7)}.ts-time.warning{color:#ff8787;animation:timerPulse 1s ease-in-out infinite}.ts-time.done{color:#ff6b6b}.ts-options{width:min(460px,calc(100vw - 32px));margin:18px auto 0}.ts-presets{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.ts-preset{min-width:0;border:1px solid rgba(255,255,255,0.24);border-radius:10px;padding:9px 6px;background:rgba(255,255,255,0.1);color:rgba(255,255,255,0.82);font-family:inherit;font-size:0.86rem;font-weight:800;cursor:pointer;white-space:nowrap}.ts-preset:hover{background:rgba(255,255,255,0.18);color:#fff}.ts-preset.active{border-color:transparent;color:#fff;background:linear-gradient(135deg,#667eea,#8b5bb7);box-shadow:0 5px 18px rgba(102,126,234,.38)}.ts-preset.custom{font-size:0.78rem;letter-spacing:-0.03em}.ts-manual{display:flex;align-items:center;justify-content:center;gap:7px;margin-top:10px;color:rgba(255,255,255,.78);font-size:0.82rem}.ts-manual input{width:62px;min-width:0;padding:8px 7px;border:1px solid rgba(255,255,255,.28);border-radius:9px;background:rgba(255,255,255,.12);color:#fff;text-align:center;font:700 0.9rem inherit;outline:none}.ts-manual input:focus{border-color:#9caeff;box-shadow:0 0 0 3px rgba(102,126,234,.28)}.ts-manual input::placeholder{color:rgba(255,255,255,.48)}.ts-set{border:0;border-radius:9px;padding:9px 15px;color:#fff;font-family:inherit;font-size:0.82rem;font-weight:800;cursor:pointer;background:linear-gradient(135deg,#667eea,#764ba2)}@media (max-height:650px) and (min-width:861px){.ts-label{margin-bottom:8px;font-size:0.92rem}.ts-ring-wrap{width:min(30vw,40vh,250px)}.hourglass{width:min(11vw,22vh,110px)}.ts-options{margin-top:10px}.ts-preset{padding:7px 5px}.ts-manual{margin-top:7px}.ts-controls{margin-top:10px}}.ts-controls{display:flex;gap:10px;justify-content:center;margin-top:26px}.ts-controls .tbtn{min-width:130px;padding:12px 22px;font-size:0.98rem}.ts-controls .tbtn.ghost{background:rgba(255,255,255,0.12);color:#fff;flex:0 0 auto;min-width:110px}.ts-close{position:absolute;top:24px;right:26px;background:rgba(255,255,255,0.12);color:#fff;border:1px solid rgba(255,255,255,0.3);padding:9px 16px;border-radius:10px;cursor:pointer;font-size:0.88rem}.timer-display{cursor:pointer}.settings-guide{font-size:0.8rem;color:#8a90a6;margin-bottom:10px}.settings-menu{display:flex;flex-direction:column;gap:7px}.settings-item{display:flex !important;align-items:center;gap:11px;text-align:left;padding:11px 13px !important;border-radius:12px}.settings-item.sub{margin-left:22px;opacity:0.88}.si-step{flex:0 0 28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:0.85rem;font-weight:800;color:#fff;background:linear-gradient(135deg,#667eea,#764ba2)}.si-step.alt{background:linear-gradient(135deg,#4dabf7,#3b8fd4)}.si-step.ghost{background:#eef0f7;color:#8a90a6;font-size:0.9rem}.si-step.warn{background:linear-gradient(135deg,#ff6b6b,#e03131)}.si-body{min-width:0}.si-body b{display:block;font-size:0.9rem;color:#2f3550}.si-body small{display:block;font-size:0.75rem;color:#9aa0b4;margin-top:2px}@media (max-width:860px){.wizard-hero h2{font-size:1.2rem}.step-tab .st-label{display:none}.ts-main{flex-direction:column;gap:18px}.hourglass{width:80px}}.wizard{display:grid !important;grid-template-columns:minmax(0,1fr) 250px;grid-template-rows:auto minmax(0,1fr);grid-template-areas:"hero hero" "content preview";max-width:940px;width:calc(100% - 32px);margin:12px auto !important}.wizard-hero{grid-area:hero}.wizard-content{grid-area:content;overflow:hidden;padding:18px 22px !important}.preview-panel{grid-area:preview;width:auto !important;border-top:1px solid #eef0f6;border-left:1px solid #eef0f6;flex-direction:column !important;justify-content:flex-start !important;align-items:stretch !important;gap:10px !important;padding:16px 16px 18px !important}.preview-panel h3{text-align:center;font-size:0.85rem !important}.preview-panel .preview-desk{margin:0 auto}.preview-grid{flex-direction:column !important;gap:5px !important;align-items:center}.preview-info{text-align:center}.wizard-nav{justify-content:flex-end;margin-top:18px}.wizard-nav .btn.primary.large{flex:0 0 auto;min-width:150px}#stepPrevBtn{margin-right:auto}@media (max-width:860px){.wizard{grid-template-columns:minmax(0,1fr);grid-template-areas:"hero" "content"}.preview-panel{display:none !important}}.si-group{border:1px solid #eef0f6;border-radius:14px;padding:11px;margin-bottom:11px;background:#fcfdff}.si-head{display:flex;align-items:center;gap:8px;font-size:0.9rem;font-weight:800;color:#2f3550;margin-bottom:9px}.si-head .si-num{width:22px;height:22px;border-radius:7px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;font-size:0.76rem;display:flex;align-items:center;justify-content:center}.si-head em{font-style:normal;font-size:0.72rem;font-weight:600;color:#9aa0b4;margin-left:auto}.si-step{flex:0 0 auto !important;min-width:34px;height:26px;border-radius:8px !important;font-size:0.74rem !important;padding:0 7px}.si-tip{font-size:0.76rem;color:#7b8199;line-height:1.55;background:#f4f6fd;border-radius:9px;padding:8px 10px;margin:8px 0 6px}.si-tip b{color:#4a4fd0}.si-tips{margin:0;padding-left:0;list-style:none}.si-tips li{font-size:0.75rem;color:#7b8199;line-height:1.55;padding:5px 0 5px 10px;border-left:2px solid #e3e7f5;margin-bottom:3px}.si-tips b{color:#4a4fd0}.head-sub{font-size:0.78rem;color:#9aa0b4;font-weight:500;margin-left:6px}.attend-summary{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:9px}.as-chip{font-size:0.78rem;padding:5px 11px;border-radius:999px;background:#f1f3fa;color:#6b7189;font-weight:600}.as-chip b{font-weight:800;margin-left:2px}.as-chip.ok{background:#e7f8ef;color:#0d7a45}.as-chip.ab{background:#ffe9e9;color:#c92a2a}.as-chip.la{background:#fff4e0;color:#b06800}.as-chip.ea{background:#eef0ff;color:#4a4fd0}.attend-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:6px;max-height:44vh;overflow:hidden}.attend-item{display:flex;align-items:center;gap:7px;padding:8px 10px;border-radius:10px;border:1px solid #e8eaf2;background:#fff;cursor:pointer;font-family:inherit;font-size:0.84rem;text-align:left}.attend-item:hover{border-color:#c9d0f0}.at-no{font-size:0.72rem;color:#9aa0b4;font-weight:700;min-width:18px}.at-name{flex:1;color:#2f3550;font-weight:600}.at-state{font-size:0.72rem;font-weight:700;color:#9aa0b4}.attend-item.state-결석{background:#ffe9e9;border-color:#ffc9c9}.attend-item.state-결석 .at-state{color:#c92a2a}.attend-item.state-지각{background:#fff4e0;border-color:#ffe0a3}.attend-item.state-지각 .at-state{color:#b06800}.attend-item.state-조퇴{background:#eef0ff;border-color:#c9d0f0}.attend-item.state-조퇴 .at-state{color:#4a4fd0}.attend-badge{position:absolute;top:4px;right:26px;width:17px;height:17px;border-radius:50%;font-size:0.6rem;font-weight:800;color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 1px 4px rgba(0,0,0,0.2)}.attend-badge.s결석{background:#e03131}.attend-badge.s지각{background:#f59f00}.attend-badge.s조퇴{background:#4a4fd0}.duty-content textarea{width:100%;padding:10px;border:1px solid #ddd;border-radius:10px;font-size:0.88rem;line-height:1.6;font-family:inherit;resize:none;margin-bottom:10px}.hint-inline{font-size:0.74rem;color:#9aa0b4;font-weight:500;margin-left:6px}.duty-actions{display:flex;gap:8px;margin-bottom:12px}.duty-result{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px;max-height:34vh;overflow:hidden}.duty-card{border:1px solid #e8eaf2;border-radius:12px;padding:9px 11px;background:#fcfdff}.dc-role{display:flex;align-items:center;font-size:0.84rem;font-weight:800;color:#2f3550;margin-bottom:6px}.dc-count{margin-left:auto;font-size:0.7rem;font-weight:700;color:#fff;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:999px;padding:2px 8px}.dc-names{display:flex;flex-wrap:wrap;gap:4px}.dc-names span{font-size:0.74rem;background:#f1f3fa;color:#6b7189;border-radius:6px;padding:3px 7px}@media print{.print-duty{width:100%;border-collapse:collapse;margin-top:18px}.print-duty th,.print-duty td{border:1px solid #333;padding:9px 12px;font-size:1rem;text-align:left}.print-duty th{background:#eef0f7 !important;-webkit-print-color-adjust:exact !important}}.set-tabs{display:flex;gap:6px;margin-bottom:12px}.set-tab{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;background:#f1f3fa;border:1px solid transparent;border-radius:10px;padding:9px 6px;cursor:pointer;font-family:inherit;font-size:0.82rem;font-weight:700;color:#7b8199;transition:all 0.16s}.set-tab:hover{background:#e6eaff;color:#4a4fd0}.set-tab b{width:20px;height:20px;border-radius:6px;background:#d9dded;color:#fff;font-size:0.72rem;display:flex;align-items:center;justify-content:center}.set-tab.active{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.set-tab.active b{background:rgba(255,255,255,0.3)}.si-group{margin-bottom:0 !important}.duty-result{max-height:30vh}:root{--app-h:100vh}@supports (height:100dvh){:root{--app-h:100dvh}}html,body{height:var(--app-h)}@media (max-width:900px),(max-height:620px){html,body{height:auto !important;min-height:100%;overflow:visible !important}body{display:block !important}.stage{display:block !important;overflow:visible !important;padding:12px}main#mainArea{display:block !important;overflow:visible !important}.classroom{display:block !important;padding:10px}.cr-side{display:none !important}.seating-area{transform:none !important;margin-bottom:0 !important;overflow-x:auto;padding-bottom:6px}.seat-row{justify-content:flex-start}.dock{width:100% !important;flex-direction:column !important;margin-top:12px}.timer-card,.book-card,.notice-card{flex:1 1 auto !important}.tools-card{grid-template-columns:repeat(3,1fr) !important}.wizard{display:block !important;max-width:none;width:auto;margin:10px !important}.preview-panel{display:none !important}.wizard-content{padding:16px !important}.modal{align-items:flex-start;padding:10px;overflow-y:auto}.modal-content{max-height:none !important;height:auto !important}.guide-content{height:auto !important;max-height:none !important}.guide-viewport{min-height:62vh}.guide-slide{overflow-y:auto}.attend-list,.praise-list,.duty-result{max-height:none !important;overflow:visible !important}.app-footer{position:static}.action-bar{overflow-x:auto}.action-right{flex-wrap:nowrap}}@media (max-width:520px){.app-header{padding:12px 14px}.app-header h1{font-size:1.05rem}.header-right{width:100%}.tools-card{grid-template-columns:repeat(2,1fr) !important}.attend-list{grid-template-columns:repeat(auto-fill,minmax(120px,1fr)) !important}.ts-main{flex-direction:column}}.attend-reason{display:flex;gap:8px;align-items:center;padding:12px 18px;border-top:1px solid #eee;background:#fbfcff}.attend-reason label{flex:0 0 auto;font-size:0.82rem;font-weight:700;color:#4a4f6b;margin:0 !important}.attend-reason input{flex:1;padding:9px 11px;border:1px solid #ddd;border-radius:9px;font-size:0.88rem;font-family:inherit;margin:0 !important}.at-reason{display:block;font-style:normal;font-size:0.68rem;color:#9aa0b4;margin-top:1px}.at-reason-btn{position:absolute;right:8px;bottom:4px;font-size:0.64rem;padding:2px 7px;border:none;border-radius:6px;background:rgba(0,0,0,0.06);color:#6b7189;cursor:pointer;font-family:inherit}.attend-item{position:relative;padding-bottom:20px !important}.attend-foot{flex-wrap:wrap}.attend-foot .btn{font-size:0.82rem;padding:8px 12px}.stu-summary{display:flex;flex-direction:column;gap:2px}.ss-head{display:flex;align-items:center;gap:8px;padding:10px 12px;margin-bottom:8px;background:linear-gradient(135deg,#f5f7ff,#e9edff);border-radius:12px}.ss-no{font-size:0.76rem;color:#8a90a6;font-weight:700}.ss-name{font-size:1.1rem;font-weight:800;color:#2f3550}.ss-gender{font-size:0.7rem;font-weight:700;padding:2px 7px;border-radius:999px}.ss-gender.m{background:#dbeafe;color:#1d4ed8}.ss-gender.f{background:#fce7f3;color:#be185d}.ss-pts{margin-left:auto;font-size:0.78rem;font-weight:800;color:#b07a00}.ss-row{display:flex;gap:8px;align-items:flex-start;padding:7px 10px;border-radius:9px;font-size:0.84rem}.ss-row:nth-child(even){background:#fafbfe}.ss-ic{flex:0 0 18px}.ss-lb{flex:0 0 74px;color:#8a90a6;font-weight:600;font-size:0.79rem}.ss-vl{flex:1;color:#2f3550;min-width:0;word-break:break-word}.ss-vl em{font-style:normal;color:#9aa0b4}.ss-row.warn .ss-vl{color:#c92a2a;font-weight:700}.ss-row.ok .ss-vl{color:#0d7a45;font-weight:600}.ss-list{display:flex;flex-wrap:wrap;gap:4px;padding:4px 10px 8px 100px}.ss-list span{font-size:0.72rem;background:#fff0f0;color:#a04040;border-radius:6px;padding:2px 7px}.mode-tabs{display:flex;gap:5px;margin-left:14px}.mode-tab{background:rgba(255,255,255,0.14);border:1px solid rgba(255,255,255,0.26);color:rgba(255,255,255,0.8);border-radius:999px;padding:7px 15px;cursor:pointer;font-family:inherit;font-size:0.84rem;font-weight:700;transition:all 0.16s;white-space:nowrap}.mode-tab:hover{background:rgba(255,255,255,0.24);color:#fff}.mode-tab.active{background:#fff;color:#4a4fd0;border-color:#fff;box-shadow:0 3px 12px rgba(0,0,0,0.18)}.attend-view{flex:1 1 auto;min-height:0;flex-direction:column;padding:16px 22px 18px;overflow:hidden}.av-head{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:8px}.av-title{font-size:1.15rem;font-weight:800;color:#2f3550}.av-actions{margin-left:auto;display:flex;gap:7px;flex-wrap:wrap}.av-actions .btn{font-size:0.82rem;padding:8px 13px}.av-hint{margin-bottom:10px}.av-hint b{color:#4a4fd0}.av-list{flex:1 1 auto;min-height:0;max-height:none !important;grid-template-columns:repeat(auto-fill,minmax(165px,1fr)) !important;align-content:start}.av-list .attend-item{padding:12px 12px 22px !important;font-size:0.92rem}.av-list .at-name{font-size:0.95rem}@media (max-width:900px),(max-height:620px){.attend-view{display:block !important;overflow:visible !important}.mode-tabs{margin-left:0;width:100%}.mode-tab{flex:1}.av-actions{margin-left:0;width:100%}}.wizard.hidden{display:none !important}.av-list{grid-template-columns:repeat(auto-fill,minmax(148px,1fr)) !important;gap:5px !important}.av-list .attend-item{padding:8px 10px 18px !important;font-size:0.86rem}.av-list .at-name{font-size:0.88rem}.av-list .at-reason-btn{bottom:3px;font-size:0.6rem}.attend-view{padding:12px 18px 14px}.av-head{margin-bottom:6px}.av-title{font-size:1.05rem}.av-hint{margin-bottom:7px;font-size:0.78rem}.timer-manual{display:flex;align-items:center;gap:4px;margin-bottom:9px}.timer-manual input{width:46px;padding:6px 4px;border:1px solid #dde1ee;border-radius:8px;font-size:0.82rem;font-family:inherit;text-align:center}.timer-manual span{font-size:0.76rem;color:#8a90a6}.timer-manual .tbtn.ghost{flex:1;min-width:0;padding:6px 0;font-size:0.78rem}.attend-item{display:grid !important;grid-template-columns:minmax(0,1fr) 74px 78px minmax(0,1fr);gap:5px;align-items:center;padding:7px 9px !important;cursor:default}.at-who{display:flex;align-items:center;gap:6px;min-width:0}.attend-student-link{width:100%;border:0;padding:4px 5px;border-radius:7px;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}.attend-student-link:hover{background:rgba(99,102,241,0.10);color:#4f46c7}.attend-student-link:focus-visible{outline:2px solid #6670d9;outline-offset:1px}.at-sel{border:1px solid #dde1ee;border-radius:7px;padding:5px 4px;font-size:0.76rem;font-family:inherit;background:#fff;color:#2f3550;cursor:pointer}.at-sel:disabled{background:#f6f7fb;color:#c3c7d4;cursor:default}.at-sel.state{font-weight:700}.at-memo{border:1px solid #dde1ee;border-radius:7px;padding:5px 7px;font-size:0.76rem;font-family:inherit;min-width:0}.at-memo:disabled{background:#f6f7fb}.attend-item.state-결과{background:#f3f0ff;border-color:#d0bfff}.attend-item.state-결과 .at-sel.state{color:#6741d9}.as-chip.rs{background:#f3f0ff;color:#6741d9}.attend-badge.s결과{background:#7048e8}.av-list{grid-template-columns:repeat(auto-fill,minmax(330px,1fr)) !important}.attend-list{grid-template-columns:repeat(auto-fill,minmax(320px,1fr)) !important}.app-footer{justify-content:space-between;text-align:left}.footer-copy{margin-left:auto}.app-footer{justify-content:space-between;align-items:center;gap:14px;text-align:left}.book-mini{order:1;flex:0 0 auto}.footer-note{order:2;flex:1 1 auto;text-align:center;margin:0 auto}.footer-copy{order:3;flex:0 0 auto;margin-left:0;text-align:right}@media (max-width:900px){.app-footer{flex-wrap:wrap;justify-content:center}.footer-note{order:3;flex:1 1 100%}.footer-copy{order:2}}.ladder-content .lp-row{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:10px}.ladder-content .lp-row label{margin:0 !important;font-size:0.84rem}.lp-count{display:flex;align-items:center;gap:4px}.lp-count input{width:52px;text-align:center;padding:6px;border:1px solid #dde1ee;border-radius:8px;font-family:inherit}.lp-cols{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:10px}.lp-cols label{font-size:0.82rem;margin-bottom:4px !important}.lp-cols textarea{width:100%;padding:8px 10px;border:1px solid #ddd;border-radius:9px;font-size:0.82rem;line-height:1.5;font-family:inherit;resize:none}.ladder-canvas{width:100%;height:auto;background:#fbfcff;border:1px solid #e8eaf2;border-radius:12px;cursor:pointer;display:block}.ladder-result{margin-top:9px;display:flex;flex-wrap:wrap;gap:5px}.lr-hit{flex:1 1 100%;text-align:center;font-size:1.02rem;padding:8px;background:linear-gradient(145deg,#f5f7ff,#e9edff);border-radius:10px}.lr-hit b{color:#2f3550}.lr-hit span{color:#4a4fd0;font-weight:800}.lr-row{display:flex;gap:6px;align-items:center;background:#f7f8fc;border-radius:8px;padding:5px 10px;font-size:0.8rem}.lr-row b{color:#2f3550}.lr-row span{color:#4a4fd0;font-weight:700}.lr-row::before{content:'→';color:#b3b8cc;order:1}.lr-row span{order:2}.fav-links{display:flex;flex-direction:column;gap:6px}.fav-link{display:flex;align-items:center;gap:10px;padding:11px 13px;border-radius:11px;background:#f7f8fc;border:1px solid transparent;text-decoration:none;color:#2f3550;font-size:0.9rem;font-weight:600;transition:all 0.15s}.fav-link:hover{background:#eef1ff;border-color:#c9d0f0;transform:translateY(-1px)}.fav-link span{font-size:1.15rem}.fav-link.report{background:#fff8e6;border-color:#ffe0a3;color:#6b4c00}.fav-link.report:hover{background:#fff2d0}.records-content{max-width:min(1240px,96vw) !important;width:min(1240px,96vw)}.rec-actions{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}.rec-table-wrap{overflow:auto;max-height:56vh;border:1px solid #e8eaf2;border-radius:10px}.rec-table{border-collapse:collapse;width:100%;font-size:0.76rem;white-space:nowrap}.rec-table th,.rec-table td{border:1px solid #eef0f6;padding:6px 9px;text-align:left}.rec-table thead th{position:sticky;top:0;background:#f1f3fa;color:#4a4f6b;font-weight:700;z-index:1}.rec-table tbody tr:nth-child(even){background:#fafbfe}.rec-table td:nth-child(2){font-weight:700;color:#2f3550}@media (max-width:900px){.rec-table-wrap{max-height:none}}.av-period{padding:8px 10px;border:1px solid #dde1ee;border-radius:9px;font-size:0.82rem;font-family:inherit;background:#fff;cursor:pointer}.attend-view{display:flex;flex-direction:column}.av-list{flex:1 1 auto;min-height:0;align-content:start;overflow-y:auto !important;overflow-x:hidden;max-height:none !important;padding-right:4px;scrollbar-width:thin}.av-list::-webkit-scrollbar{width:9px}.av-list::-webkit-scrollbar-thumb{background:#cdd3e8;border-radius:5px}.av-list::-webkit-scrollbar-track{background:#f4f6fd;border-radius:5px}#attendModal .attend-list{overflow-y:auto !important;max-height:46vh !important}.av-list .attend-item{padding:6px 9px !important}.av-list .at-name{font-size:0.85rem}.attend-item{grid-template-columns:minmax(0,1fr) 70px 74px minmax(0,1fr)}.mode-tabs .more-wrap{position:relative}.mode-tabs .more-menu{display:none;position:absolute;left:0;top:calc(100%+8px);background:#fff;border-radius:12px;box-shadow:0 10px 32px rgba(20,26,60,0.2);border:1px solid #e8eaf2;padding:6px;min-width:190px;z-index:200}.mode-tabs .more-menu.open{display:block}.mode-tabs .more-menu button{display:block;width:100%;text-align:left;background:none;border:none;padding:10px 12px;border-radius:8px;cursor:pointer;font-size:0.87rem;font-family:inherit;color:#2f3550}.mode-tabs .more-menu button:hover{background:#f2f4fb}.seat-panel{width:214px;flex-shrink:0;display:flex;flex-direction:column;gap:9px;background:#fff;border:1px solid #e8eaf2;border-radius:16px;padding:13px;box-shadow:0 3px 14px rgba(20,26,60,0.06);min-height:0;overflow-x:hidden;overflow-y:auto;scrollbar-width:thin;-webkit-overflow-scrolling:touch}.seat-panel>*{flex-shrink:0}.sp-head{font-size:0.84rem;font-weight:800;color:#6b7189}.sp-body{display:flex;flex-direction:column;gap:3px}.sp-row{display:flex;justify-content:space-between;align-items:baseline;font-size:0.78rem;padding:4px 7px;border-radius:7px}.sp-row:nth-child(odd){background:#f8f9fd}.sp-row span{color:#9aa0b4}.sp-row b{color:#2f3550;font-weight:700}.sp-edit{width:100%;padding:9px 0 !important;font-size:0.85rem !important}.sp-tips{margin-top:auto;display:flex;flex-direction:column;gap:6px;border-top:1px dashed #e3e7f5;padding-top:9px}.sp-tips p{font-size:0.7rem;line-height:1.4;color:#9aa0b4}.sp-tips b{display:block;color:#6b7189;font-size:0.73rem}.av-date{display:flex;align-items:center;gap:5px}.av-date input[type="date"]{padding:7px 9px;border:1px solid #dde1ee;border-radius:9px;font-size:0.84rem;font-family:inherit}.day-nav{width:30px;height:30px;border:1px solid #dde1ee;border-radius:8px;background:#fff;color:#6b7189;font-size:1.05rem;cursor:pointer;line-height:1}.day-nav:hover{background:#eef1ff;color:#4a4fd0}.day-today{padding:6px 11px !important;font-size:0.78rem !important}.day-today.is-today{background:linear-gradient(135deg,#667eea,#764ba2) !important;color:#fff !important;border-color:transparent !important}@media (max-width:1080px){.seat-panel{width:100%}.sp-tips{display:none}}@media (max-width:900px){.seat-panel{order:3}.mode-tabs .more-menu{left:auto;right:0}}.av-list{grid-template-columns:repeat(auto-fill,minmax(360px,1fr)) !important}.attend-list{grid-template-columns:repeat(auto-fill,minmax(350px,1fr)) !important}.attend-item{grid-template-columns:minmax(72px,1fr) 76px 82px minmax(70px,1.1fr) !important;gap:6px !important}.at-sel{padding:6px 5px;font-size:0.78rem}.at-memo{padding:6px 8px;font-size:0.78rem}.at-sel.reason:disabled,.at-memo:disabled{opacity:0.55}@media (max-width:700px){.av-list,.attend-list{grid-template-columns:1fr !important}.attend-item{grid-template-columns:minmax(0,1fr) 76px 82px !important;grid-template-areas:"who state reason" "memo memo memo" !important;row-gap:5px !important}.at-who{grid-area:who}.at-sel.state{grid-area:state}.at-sel.reason{grid-area:reason}.at-memo{grid-area:memo}}.classroom{overflow-y:auto;overflow-x:hidden;scrollbar-width:thin}.classroom::-webkit-scrollbar{width:9px}.classroom::-webkit-scrollbar-thumb{background:#cdd3e8;border-radius:5px}.classroom::-webkit-scrollbar-track{background:#f4f6fd;border-radius:5px}.pick-count{display:flex;align-items:center;gap:6px;margin:10px 0}.pick-count label{margin:0 !important;font-size:0.84rem;color:#6b7189;flex:1}.pick-count input{width:52px;text-align:center;padding:6px;border:1px solid #dde1ee;border-radius:8px;font-family:inherit}.pick-count span{font-size:0.82rem;color:#8a90a6}.pick-name{font-size:1.5rem;line-height:1.35;word-break:keep-all}.mode-tabs .more-menu a{display:block;width:100%;text-align:left;padding:10px 12px;border-radius:8px;text-decoration:none;font-size:0.87rem;color:#2f3550}.mode-tabs .more-menu a:hover{background:#f2f4fb}.wizard-hero h2{font-size:1.75rem !important;margin-bottom:6px !important;letter-spacing:-0.02em}.hero-sub{position:relative;font-size:0.95rem;color:rgba(255,255,255,0.88);margin-bottom:12px}.hero-tags{position:relative;display:flex;flex-wrap:wrap;gap:7px;margin-bottom:8px}.hero-tag{background:rgba(255,255,255,0.17);border:1px solid rgba(255,255,255,0.3);color:#fff;border-radius:9px;padding:7px 13px;font-size:0.83rem;font-weight:700;font-family:inherit;cursor:pointer;transition:all 0.16s}.hero-tag:hover{background:#fff;color:#4a4fd0;border-color:#fff;transform:translateY(-2px);box-shadow:0 5px 16px rgba(0,0,0,0.22)}.hero-hint{position:relative;font-size:0.75rem;color:rgba(255,255,255,0.6);margin-bottom:12px}@media (max-width:860px){.wizard-hero h2{font-size:1.3rem !important}.hero-sub,.hero-hint{display:none}.hero-tag{font-size:0.75rem;padding:6px 10px}}.side-rail{flex:0 0 auto;width:52px;display:flex;flex-direction:column;gap:5px;background:#fff;border:1px solid #e8eaf2;border-radius:16px;padding:8px 7px;box-shadow:0 3px 14px rgba(20,26,60,0.06);overflow:hidden;transition:width 0.22s cubic-bezier(.4,0,.2,1)}.side-rail.open{width:176px}.rail-toggle,.rail-item{display:flex;align-items:center;gap:10px;width:100%;background:none;border:none;border-radius:10px;padding:10px 8px;cursor:pointer;font-family:inherit;font-size:0.84rem;font-weight:600;color:#4a4f6b;text-align:left;white-space:nowrap;transition:background 0.15s}.rail-toggle:hover,.rail-item:hover{background:#f2f4fb;color:#4a4fd0}.rail-toggle{color:#9aa0b4;border-bottom:1px solid #eef0f6;border-radius:10px 10px 0 0;margin-bottom:3px;padding-bottom:12px}.rail-ic{flex:0 0 22px;font-size:1.1rem;text-align:center;line-height:1}.rail-tx{opacity:0;transition:opacity 0.16s}.side-rail.open .rail-tx{opacity:1}@media (max-width:1080px){.side-rail{width:100%;flex-direction:row;flex-wrap:wrap}.side-rail.open{width:100%}.rail-toggle{display:none}.rail-item{width:auto;flex:1 1 auto;justify-content:center}.rail-tx{opacity:1}}@media print{.side-rail{display:none !important}}[hidden]{display:none !important}.side-rail.open{width:176px !important}.duty-hint{margin-bottom:10px;line-height:1.55}.duty-hint b{color:#4a4fd0}.duty-actions{flex-wrap:wrap}.duty-actions .btn{font-size:0.83rem;padding:8px 13px}.sp-actions{display:flex;flex-direction:column;gap:6px;margin-top:2px}.sp-btn{width:100%;border:1px solid #e2e6f3;border-radius:10px;padding:9px 10px;background:#f7f8fc;color:#3a3f5c;font-family:inherit;font-size:0.85rem;font-weight:700;cursor:pointer;text-align:left;transition:all 0.15s}.sp-btn:hover{background:#eef1ff;border-color:#c9d0f0;color:#4a4fd0}.sp-btn.go{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-color:transparent;text-align:center;font-size:0.92rem;padding:11px 10px;box-shadow:0 4px 14px rgba(102,126,234,.34)}.sp-btn.go:hover{filter:brightness(1.07);color:#fff}.sp-drop{position:relative}.sp-menu{display:none;position:absolute;left:0;right:0;top:calc(100%+5px);background:#fff;border:1px solid #e8eaf2;border-radius:11px;padding:5px;box-shadow:0 10px 28px rgba(20,26,60,.18);z-index:60}.sp-menu.open{display:block}.sp-menu button{display:block;width:100%;text-align:left;background:none;border:none;padding:9px 10px;border-radius:8px;cursor:pointer;font-family:inherit;font-size:0.82rem;color:#2f3550;white-space:nowrap}.sp-menu button:hover{background:#f2f4fb}.rail-drop{position:relative}.rail-menu{display:none;position:absolute;left:calc(100%+6px);top:0;min-width:176px;background:#fff;border:1px solid #e8eaf2;border-radius:11px;padding:5px;box-shadow:0 10px 28px rgba(20,26,60,.18);z-index:120}.rail-menu.open{display:block}.rail-menu button{display:block;width:100%;text-align:left;background:none;border:none;padding:9px 11px;border-radius:8px;cursor:pointer;font-family:inherit;font-size:0.83rem;color:#2f3550;white-space:nowrap}.rail-menu button:hover{background:#f2f4fb}.sp-head{display:flex;align-items:center;justify-content:space-between;cursor:pointer}.sp-head::after{content:'▾';font-size:0.8rem;color:#b3b8cc;transition:transform 0.2s}.seat-panel.sp-collapsed .sp-head::after{transform:rotate(-90deg)}.seat-panel.sp-collapsed .sp-body,.seat-panel.sp-collapsed .sp-edit,.seat-panel.sp-collapsed .sp-tips{display:none}@media (max-width:1080px){.rail-menu{left:0;top:calc(100%+6px)}.sp-actions{flex-direction:row;flex-wrap:wrap}.sp-btn{width:auto;flex:1 1 120px}}.sp-roster{margin-bottom:2px}.roster-cta{background:linear-gradient(135deg,#12b76a,#0e9f5b) !important;color:#fff !important;border-color:transparent !important;text-align:center !important;font-size:0.88rem !important;box-shadow:0 3px 12px rgba(18,183,106,.3)}.roster-cta:hover{filter:brightness(1.07);color:#fff !important}.sp-roster .sp-menu{z-index:80}.seat-panel.sp-collapsed .sp-roster{display:block}.fav-report{border-top:1px solid #eef0f6;margin-top:4px;padding-top:10px !important;color:#b06800 !important}.hero-onboarding{position:relative;display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px;margin-bottom:7px}.hero-onboarding span{font-size:0.74rem;color:rgba(255,255,255,0.72)}.hero-guide-btn{border:1px solid rgba(255,255,255,0.8);background:#fff;color:#4a4fd0;border-radius:10px;padding:8px 14px;font-family:inherit;font-size:0.82rem;font-weight:800;cursor:pointer;box-shadow:0 4px 14px rgba(23,25,65,.18);transition:transform .16s,box-shadow .16s}.hero-guide-btn:hover{transform:translateY(-2px);box-shadow:0 7px 18px rgba(23,25,65,.26)}.guide-progress-wrap{display:flex;align-items:center;gap:10px;min-width:0;flex:1}.guide-status{flex:0 0 auto;color:#4a4fd0;font-size:0.78rem;font-weight:800;background:#eef1ff;border-radius:999px;padding:5px 9px;font-variant-numeric:tabular-nums}.guide-dots{flex-wrap:nowrap;overflow-x:auto;max-width:420px;padding:5px 2px;scrollbar-width:none;scroll-behavior:smooth}.guide-dots::-webkit-scrollbar{display:none}.guide-dot{flex:0 0 auto}.seat-panel .sp-btn,.seat-panel .sp-edit{width:100%;min-height:42px;padding:10px 12px !important;display:flex !important;align-items:center;justify-content:center;box-sizing:border-box;border:1px solid transparent !important;border-radius:10px;text-align:center !important;background:linear-gradient(135deg,#667eea,#764ba2) !important;color:#fff !important;font-size:0.88rem !important;font-weight:800 !important;line-height:1.25;box-shadow:0 3px 12px rgba(102,126,234,.25)}.seat-panel .sp-btn:hover,.seat-panel .sp-edit:hover{color:#fff !important;filter:brightness(1.07);transform:translateY(-1px)}.seat-panel .sp-menu button{min-height:0;padding:9px 10px !important;text-align:left !important;background:transparent !important;color:#2f3550 !important;border:none !important;font-size:0.82rem !important;font-weight:500 !important;box-shadow:none !important;transform:none !important}.seat-panel .sp-menu button:hover{background:#f2f4fb !important;color:#4a4fd0 !important;filter:none}html,body{height:auto !important;min-height:100%;overflow-x:hidden;overflow-y:auto !important}body{display:block !important}.stage{min-height:calc(100vh - 150px);overflow:visible;align-items:stretch}.stage main,main#mainArea{min-height:640px;overflow:visible}.classroom{min-height:560px}.attend-view{min-height:calc(100vh - 150px);overflow:visible}.wizard{min-height:min(650px,calc(100vh - 130px))}@media (max-width:1080px){.seat-panel .sp-actions{align-items:stretch}.seat-panel .sp-btn{flex:1 1 150px;width:auto}.seat-panel .sp-roster .sp-btn{width:100%}.guide-dots{max-width:280px}}@media (max-width:700px){.hero-onboarding span{width:100%}.guide-foot{align-items:flex-start;flex-direction:column}.guide-progress-wrap,.guide-foot-right{width:100%}.guide-dots{max-width:none;flex:1}.guide-foot-right{justify-content:space-between}.stage main,main#mainArea,.classroom{min-height:0}}#setupWizard.wizard{grid-template-columns:minmax(0,1.22fr) minmax(340px,.78fr);grid-template-rows:auto auto;grid-template-areas:"hero preview" "content content";max-width:1120px;width:calc(100% - 36px);min-height:0;margin:18px auto !important;border-radius:24px;background:linear-gradient(135deg,#5368da 0%,#7654bd 58%,#8d56b1 100%);box-shadow:0 18px 48px rgba(44,38,103,.20)}#setupWizard .wizard-hero{min-height:382px;padding:30px 34px 24px;background:transparent;display:flex;flex-direction:column;justify-content:center}#setupWizard .wizard-hero::before{inset:-85%;opacity:.8}#setupWizard .hero-badge{align-self:flex-start;margin-bottom:13px;padding:6px 13px}#setupWizard .wizard-hero h2{font-size:clamp(2rem,3.5vw,2.75rem) !important;line-height:1.08;margin-bottom:8px !important}#setupWizard .hero-sub{font-size:1.03rem;line-height:1.6;margin-bottom:17px}#setupWizard .hero-tags{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-bottom:14px}#setupWizard .hero-feature-card{display:flex;align-items:center;gap:10px;min-width:0;padding:10px 12px;border-radius:12px;text-align:left;background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.24);color:#fff;box-shadow:none}#setupWizard .hero-feature-card:hover{transform:translateY(-2px);background:rgba(255,255,255,.22);color:#fff;border-color:rgba(255,255,255,.55);box-shadow:0 7px 18px rgba(32,25,83,.18)}.hero-feature-ic{flex:0 0 30px;width:30px;height:30px;display:grid;place-items:center;border-radius:9px;background:rgba(255,255,255,.18);font-size:1.05rem}.hero-feature-card>span:last-child{min-width:0}.hero-feature-card b{display:block;font-size:.84rem;line-height:1.2}.hero-feature-card small{display:block;margin-top:3px;color:rgba(255,255,255,.68);font-size:.68rem;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#setupWizard .hero-onboarding{margin-bottom:5px}#setupWizard .hero-onboarding span{color:rgba(255,255,255,.76)}#setupWizard .hero-hint{margin:0 0 14px;color:rgba(255,255,255,.58)}#setupWizard .step-tabs{margin-top:auto}#setupWizard .preview-panel{grid-area:preview;width:auto !important;align-self:stretch;margin:28px 28px 28px 0;padding:23px 24px !important;border:1px solid rgba(255,255,255,.72);border-radius:20px;background:rgba(255,255,255,.96);box-shadow:0 16px 36px rgba(32,25,83,.22);justify-content:center !important;overflow:hidden}#setupWizard .preview-panel h3{font-size:.95rem !important;color:#3a3f62}#setupWizard .preview-panel .preview-desk{color:#fff;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;padding:6px 28px;box-shadow:0 4px 10px rgba(102,126,234,.22)}#setupWizard .preview-grid{gap:7px !important;transform:scale(1.08);margin:8px 0}#setupWizard .preview-info{color:#717792;font-weight:700}#setupWizard .wizard-content{grid-area:content;display:grid !important;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 24px;padding:22px 30px 27px !important;overflow:visible;background:#fff;border-radius:0 0 24px 24px}.wizard-form-head{grid-column:1 / -1;display:flex;align-items:baseline;gap:10px;padding-bottom:13px;border-bottom:1px solid #edf0f7}.wizard-form-head strong{color:#2f3550;font-size:1rem}.wizard-form-head span{color:#9298ad;font-size:.78rem}#setupWizard .wizard-content>.step{margin-bottom:0 !important;padding:14px 16px;border:1px solid #eceef6;border-radius:14px;background:#fafbfe}#setupWizard .wizard-content>.step[data-step="3"]{grid-column:1 / -1}#setupWizard .wizard-nav{grid-column:1 / -1;margin-top:0}#setupWizard .wizard-nav .btn.primary.large{min-width:180px}.seat-panel .sp-head{position:relative;justify-content:center;min-height:42px;padding:10px 34px 10px 12px;border-radius:10px;text-align:center;color:#fff;font-size:.88rem;font-weight:800;background:linear-gradient(135deg,#667eea,#764ba2);box-shadow:0 3px 12px rgba(102,126,234,.25);transition:transform .15s,filter .15s}.seat-panel .sp-head:hover{filter:brightness(1.07);transform:translateY(-1px)}.seat-panel .sp-head::after{position:absolute;right:13px;color:rgba(255,255,255,.85)}@media (max-width:860px){#setupWizard.wizard{grid-template-columns:minmax(0,1fr);grid-template-areas:"hero" "content";width:calc(100% - 20px);margin:10px auto !important}#setupWizard .wizard-hero{min-height:0;padding:24px 22px 20px}#setupWizard .preview-panel{display:none !important}#setupWizard .hero-sub{display:block}}@media (max-width:640px){#setupWizard .hero-tags{grid-template-columns:1fr}#setupWizard .hero-feature-card:nth-child(n+4){display:none}#setupWizard .wizard-content{grid-template-columns:1fr;padding:18px 16px 22px !important}#setupWizard .wizard-content>.step{grid-column:1}.wizard-form-head{display:block}.wizard-form-head span{display:block;margin-top:4px}}.guide-track{min-width:0}.guide-slide{height:100%;max-height:100%;min-width:100%;min-height:0;grid-template-rows:auto auto auto !important;align-content:start;overflow-x:hidden !important;overflow-y:auto !important;scrollbar-gutter:stable;word-break:keep-all;overflow-wrap:anywhere}.guide-shot{height:auto !important;max-height:62vh !important;min-width:0;object-fit:contain;object-position:top center}.guide-side{min-width:0;min-height:auto;align-self:start;overflow:visible !important;word-break:keep-all;overflow-wrap:anywhere}.guide-desc,.guide-callout,.guide-desc p,.guide-desc li{min-width:0;white-space:normal;word-break:keep-all;overflow-wrap:anywhere}.guide-desc ul{padding-right:10px}.guide-desc code{white-space:normal;overflow-wrap:anywhere}.guide-slide::-webkit-scrollbar{width:9px}.guide-slide::-webkit-scrollbar-thumb{background:#cdd3e8;border-radius:6px}.guide-slide::-webkit-scrollbar-track{background:#f2f4f9}@media (max-width:1000px){.guide-slide{grid-template-rows:auto auto auto auto !important;grid-template-areas:"step" "title" "shot" "side" !important}.guide-shot{max-height:44vh !important}}@media (max-width:700px){.guide-content{height:94vh !important;max-height:94vh !important}.guide-viewport{min-height:0 !important}.guide-slide{padding:14px 14px 22px}.guide-shot{max-height:34vh !important}.guide-side{padding-bottom:8px}}.guide-link{display:inline-flex;align-items:center;justify-content:center;max-width:100%;margin-top:3px;padding:9px 13px;border-radius:9px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff !important;font-weight:800;text-decoration:none;line-height:1.35;text-align:center}.guide-link:hover{filter:brightness(1.07)}.hero-device-note{position:relative;margin:-7px 0 12px;color:rgba(255,255,255,.66);font-size:.7rem;line-height:1.35;letter-spacing:-.01em}.seat-panel .sp-head,.seat-panel .sp-btn,.seat-panel .sp-edit,.seat-panel .roster-cta{display:flex !important;align-items:center !important;justify-content:center !important;width:100% !important;min-height:42px;box-sizing:border-box;padding:10px 12px !important;border:1px solid transparent !important;border-radius:10px;text-align:center !important;background:linear-gradient(135deg,#667eea,#764ba2) !important;color:#fff !important;font-size:.88rem !important;font-weight:800 !important;line-height:1.25;box-shadow:0 3px 12px rgba(102,126,234,.25)}.seat-panel .sp-head{padding-right:34px !important}.seat-panel .sp-actions>.sp-drop{width:100%}.seat-panel .sp-menu button{display:block !important;width:100% !important;min-height:0 !important;padding:9px 10px !important;justify-content:flex-start !important;text-align:left !important;background:transparent !important;color:#2f3550 !important;border:none !important;font-size:.82rem !important;font-weight:500 !important;box-shadow:none !important}@media (max-width:1080px){.seat-panel .sp-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.seat-panel .sp-actions .sp-btn,.seat-panel .sp-actions>.sp-drop{width:100% !important;min-width:0}}@media (min-width:1081px) and (max-height:700px){.app-footer{display:none}.stage{display:flex !important;flex-direction:row !important;height:calc(var(--seat-viewport-height,100dvh) - var(--seat-header-height,92px));min-height:160px;overflow:hidden !important}.seat-panel{overscroll-behavior-y:contain;touch-action:pan-y pinch-zoom}.stage main,main#mainArea{display:flex !important;flex-direction:column !important;height:100%;max-height:100%;min-height:0 !important;overflow:hidden !important}.classroom{display:flex !important;height:100%;max-height:100%;min-height:0 !important;overflow-y:auto !important}}@media (max-width:1200px),(max-height:720px){.guide-modal{padding:6px !important}.guide-content{width:calc(100vw - 12px) !important;max-width:calc(100vw - 12px) !important;height:calc(100dvh - 12px) !important;max-height:calc(100dvh - 12px) !important;min-height:0 !important;overflow:hidden !important}.guide-head{padding:10px 14px}.guide-viewport{min-height:0 !important}.guide-slide{display:grid !important;grid-template-columns:minmax(0,1fr) !important;grid-template-rows:auto auto auto auto !important;grid-template-areas:"step" "title" "shot" "side" !important;align-content:start !important;gap:8px !important;padding:12px 18px 24px !important;overflow-x:hidden !important;overflow-y:auto !important;overscroll-behavior:contain}.guide-shot{width:100% !important;height:auto !important;max-height:min(38vh,300px) !important;object-fit:contain !important;object-position:top center}.guide-side{min-height:0 !important;overflow:visible !important;padding:2px 4px 12px}.guide-desc,.guide-callout{font-size:.86rem;line-height:1.58}.guide-foot{padding:8px 12px}}@media (max-width:700px){.seat-panel .sp-actions{grid-template-columns:1fr}.guide-content{height:calc(100dvh - 8px) !important;max-height:calc(100dvh - 8px) !important}.guide-slide{padding:10px 12px 22px !important}.guide-shot{max-height:31vh !important}.guide-foot{flex-direction:row;align-items:center}.guide-progress-wrap{width:auto;flex:1}.guide-foot-right{width:auto}.guide-skip{display:none}}@media (max-height:560px){.guide-head{padding:7px 12px}.guide-head h3{font-size:.95rem}.guide-shot{max-height:130px !important}.guide-desc,.guide-callout{font-size:.8rem;line-height:1.48}.guide-foot{padding:6px 10px;flex-wrap:nowrap}.guide-skip{display:none}}.version{padding:2px 7px !important;font-size:.62rem !important;opacity:.82}.home-tab{flex:0 0 36px !important;width:36px;min-width:36px;padding:7px 0 !important;display:inline-flex;align-items:center;justify-content:center;font-size:1rem}.header-report{display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:7px 11px;border:1px solid rgba(255,255,255,.34);border-radius:9px;color:#fff;background:rgba(255,255,255,.14);text-decoration:none;white-space:nowrap;font-size:.76rem;font-weight:750}.header-report:hover{background:rgba(255,255,255,.24)}.mode-tabs .fav-menu.open{display:grid;grid-template-columns:repeat(2,minmax(150px,1fr));min-width:360px;left:auto;right:0;gap:3px}.mode-tabs .fav-menu a{min-height:42px;display:flex;align-items:center;line-height:1.25}.online-count{color:#667085;font-weight:750;white-space:nowrap}.footer-divider{margin:0 6px;color:#bcc1d0}.guide-sections{flex:0 0 auto;display:flex;align-items:center;justify-content:center;gap:7px;padding:8px 14px;overflow-x:auto;background:#fff;border-bottom:1px solid #e8eaf2;scrollbar-width:thin}.guide-section-btn{flex:0 0 auto;border:1px solid #dfe3f1;border-radius:999px;padding:7px 14px;background:#f8f9fd;color:#626a84;font-family:inherit;font-size:.8rem;font-weight:750;cursor:pointer}.guide-section-btn:hover{border-color:#aeb9ed;color:#4a4fd0}.guide-section-btn.active{color:#fff;border-color:transparent;background:linear-gradient(135deg,#667eea,#764ba2);box-shadow:0 3px 10px rgba(102,126,234,.24)}.calendar-content{width:min(1120px,calc(100vw - 28px));max-width:1120px !important;height:min(92vh,820px);max-height:92vh !important;overflow:hidden !important;display:flex;flex-direction:column}.calendar-body{flex:1 1 auto;min-height:0;overflow-y:auto;padding:14px 18px 18px}.cal-help{display:flex;gap:10px;align-items:flex-start;margin-bottom:12px;padding:10px 12px;border-radius:11px;background:#f3f5ff;color:#545d79;font-size:.82rem;line-height:1.5}.cal-help strong{color:#3f47b8;white-space:nowrap}.cal-toolbar{display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:10px}.cal-toolbar h4{min-width:140px;text-align:center;color:#2f3550;font-size:1.08rem}.cal-nav{width:34px;height:34px;border:1px solid #dfe3f1;border-radius:9px;background:#fff;color:#515a78;font-size:1.2rem;cursor:pointer}.cal-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.75fr);gap:14px;align-items:stretch}.cal-month-pane,.cal-side{min-width:0;border:1px solid #e4e7f1;border-radius:14px;background:#fff}.cal-weekdays,.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.cal-weekdays{border-bottom:1px solid #e4e7f1}.cal-weekdays span{padding:7px 2px;text-align:center;font-size:.72rem;font-weight:750;color:#8a90a6}.cal-weekdays span:first-child{color:#e05260}.cal-weekdays span:last-child{color:#4776d0}.cal-day{min-width:0;min-height:76px;padding:6px;border:0;border-right:1px solid #edf0f6;border-bottom:1px solid #edf0f6;background:#fff;text-align:left;cursor:pointer;overflow:hidden}.cal-day:nth-child(7n){border-right:0}.cal-day:hover{background:#f7f8ff}.cal-day.other-month{background:#fafbfc;color:#bdc1cd}.cal-day.today .cal-day-no{display:inline-flex;width:23px;height:23px;align-items:center;justify-content:center;color:#fff;background:#667eea;border-radius:50%}.cal-day.selected{position:relative;z-index:1;box-shadow:inset 0 0 0 2px #764ba2;background:#f5f2ff}.cal-day-no{display:block;font-size:.76rem;font-weight:800;color:#4b5268}.cal-day-events{display:flex;flex-direction:column;gap:2px;margin-top:4px;min-width:0}.cal-day-events em{display:block;padding:2px 4px;border-radius:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.64rem;font-style:normal;color:#334155;background:#e9edff}.cal-day-events small{font-size:.6rem;color:#767d92}.cal-day-events .type-1,.cal-event-item.type-1{background:#e8f7ef}.cal-day-events .type-2,.cal-event-item.type-2{background:#fff3df}.cal-day-events .type-3,.cal-event-item.type-3{background:#f3eafe}.cal-side{padding:13px;display:flex;flex-direction:column;gap:10px}.cal-side h4{font-size:.96rem;color:#2f3550}.cal-event-list{display:flex;flex-direction:column;gap:6px;max-height:180px;overflow-y:auto}.cal-empty{padding:14px;text-align:center;color:#9aa0b4;font-size:.8rem;background:#f8f9fc;border-radius:9px}.cal-event-item{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;padding:9px;border-left:4px solid #667eea;border-radius:9px;background:#f2f4ff}.cal-event-item>div:first-child{min-width:0}.cal-event-item b,.cal-event-item span,.cal-event-item small{display:block;overflow-wrap:anywhere}.cal-event-item b{color:#2f3550;font-size:.82rem}.cal-event-item span,.cal-event-item small{margin-top:2px;color:#747b91;font-size:.68rem}.cal-event-actions{flex:0 0 auto;display:flex;gap:3px}.cal-event-actions button{border:0;border-radius:6px;padding:4px 6px;background:rgba(255,255,255,.78);color:#687089;font-size:.66rem;cursor:pointer}.cal-form{padding-top:8px;border-top:1px dashed #dfe3ee}.cal-form>label,.cal-form-row label{display:block;margin-bottom:7px;color:#6d748a;font-size:.72rem;font-weight:750}.cal-form input,.cal-form select,.cal-import-box textarea{width:100%;margin-top:4px;padding:8px 9px;border:1px solid #dfe3ec;border-radius:8px;font-family:inherit;font-size:.78rem;background:#fff}.cal-form-row{display:grid;grid-template-columns:1fr 1fr;gap:7px}.cal-form-actions,.cal-import-actions{display:flex;gap:7px;flex-wrap:wrap}.cal-form-actions .btn{flex:1;justify-content:center;padding:8px 10px;font-size:.78rem}.cal-form-actions .cal-delete-event-btn{flex:1 1 100%;border-color:#f0b8bd;background:#fff1f2;color:#b4232d}.cal-form-actions .cal-delete-event-btn:hover{border-color:#e48f98;background:#ffe4e7}.cal-delete-event-btn[hidden]{display:none !important}.cal-import-box{margin-top:12px;border:1px solid #e2e5ef;border-radius:12px;background:#fbfcff}.cal-import-box summary{padding:11px 13px;color:#444c68;font-size:.84rem;font-weight:800;cursor:pointer}.cal-import-box[open]{padding:0 13px 13px}.cal-import-box[open] summary{margin:0 -13px 8px;border-bottom:1px solid #e7eaf2}.cal-template{display:inline-block;margin:4px 0 6px;padding:5px 8px;border-radius:7px;background:#eef1ff;color:#5964a8;font-size:.72rem}.cal-import-box textarea{resize:vertical;min-height:82px;line-height:1.45}.cal-import-actions .btn{padding:8px 11px;font-size:.76rem}.cal-import-preview{margin-top:8px;max-height:155px;overflow-y:auto}.cal-import-preview>div{display:grid;grid-template-columns:92px minmax(0,1fr) 70px;gap:8px;padding:5px 7px;border-bottom:1px solid #eceef4;font-size:.72rem}.cal-import-preview em{color:#737a91;font-style:normal;text-align:right}.cal-import-ok{color:#19704b;font-size:.78rem;margin-bottom:5px}.cal-import-error,.cal-import-errors{color:#c23b48;font-size:.76rem}@media (max-width:1100px){.app-header{align-items:flex-start}.header-left{flex:1 1 100%;flex-wrap:wrap}.header-right{flex:1 1 100%;justify-content:flex-end}.mode-tabs{flex:1 1 auto}}@media (max-width:900px){.header-left h1{font-size:1.16rem}.mode-tabs{overflow-x:auto;padding-bottom:3px}.mode-tab{flex:0 0 auto !important}.mode-tabs .fav-menu.open{position:fixed;left:10px;right:10px;top:112px;min-width:0;grid-template-columns:repeat(2,minmax(0,1fr))}.header-right{justify-content:flex-start;overflow-x:auto;flex-wrap:nowrap;padding-bottom:2px}.header-right select,.header-right input{flex:0 0 auto}.calendar-content{width:calc(100vw - 12px);height:calc(100dvh - 12px);max-height:calc(100dvh - 12px) !important}.calendar-body{padding:10px}.cal-layout{grid-template-columns:minmax(0,1fr)}.cal-day{min-height:66px}.cal-event-list{max-height:150px}.guide-sections{justify-content:flex-start}}@media (max-width:560px){.mode-tabs .fav-menu.open{grid-template-columns:1fr;max-height:calc(100dvh - 130px);overflow-y:auto}.cal-help{display:block}.cal-help strong{display:block;margin-bottom:3px}.cal-day{min-height:52px;padding:4px}.cal-day-events em{font-size:0;height:5px;padding:0}.cal-form-row{grid-template-columns:1fr}.cal-import-preview>div{grid-template-columns:78px minmax(0,1fr)}.cal-import-preview em{display:none}}.sr-only{position:absolute !important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.brand-home{flex:0 0 42px;width:42px;height:42px;display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.34);border-radius:13px;background:rgba(255,255,255,.16);color:#fff;font-size:1.25rem;cursor:pointer;box-shadow:0 3px 12px rgba(25,28,90,.18);transition:.16s}.brand-home:hover{background:#fff;transform:translateY(-1px)}.header-left{min-width:0}.header-left .mode-tabs{margin-left:2px;min-width:0}.header-help-wrap{position:relative;flex:0 0 auto}.header-help{min-height:34px;padding:7px 11px;border:1px solid rgba(255,255,255,.34);border-radius:9px;background:rgba(255,255,255,.14);color:#fff;font-family:inherit;font-size:.78rem;font-weight:750;cursor:pointer;white-space:nowrap}.header-help:hover{background:rgba(255,255,255,.24)}.help-menu{display:none;position:absolute;top:calc(100%+8px);right:0;z-index:260;width:260px;padding:7px;border:1px solid #e3e6ef;border-radius:13px;background:#fff;color:#2f3550;box-shadow:0 12px 34px rgba(20,26,60,.24)}.help-menu.open{display:block}.help-menu button,.help-menu>a{width:100%;min-height:39px;display:flex;align-items:center;gap:7px;padding:9px 10px;border:0;border-radius:8px;background:transparent;color:#2f3550;text-decoration:none;text-align:left;font-family:inherit;font-size:.82rem;cursor:pointer}.help-menu button:hover,.help-menu>a:hover{background:#f1f3fb}.help-menu button small{margin-left:auto;color:#8c93a9;font-size:.62rem}.help-users{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 8px;margin-top:5px;padding:10px;border-top:1px solid #eceef5;color:#596079;font-size:.8rem}.help-users b{color:#667eea}.help-users small{grid-column:1/-1;color:#999fb0;font-size:.64rem;line-height:1.35}.help-version{display:flex;flex-direction:column;gap:4px;padding:16px;border-radius:13px;background:linear-gradient(145deg,#f3f5ff,#ece9fa)}.help-version b{color:#424ab5;font-size:1.05rem}.help-version span{color:#6d748a;font-size:.8rem}.help-version-message{margin:8px 0 0;padding-top:10px;border-top:1px solid rgba(102,126,234,.16);color:#505778;font-size:.88rem;font-weight:700;line-height:1.55}.help-info-body ul{margin:14px 0 0 20px;color:#545b72;line-height:1.65;font-size:.86rem}.help-update-list{list-style:none;margin-left:0 !important;display:flex;flex-direction:column;gap:8px}.help-update-list li{display:flex;flex-direction:column;gap:3px;padding:10px 12px;border-radius:10px;background:#f7f8fc}.help-update-list b{color:#3f4660}.help-update-list span{color:#777e94;font-size:.78rem}.support-message{padding:15px;border-radius:13px;background:linear-gradient(145deg,#fff7fc,#f1edff)}.support-message b{color:#6a43a5;font-size:.95rem;line-height:1.5}.support-message p{margin:7px 0 0;color:#626980;font-size:.84rem;line-height:1.55}.support-link{width:100%;justify-content:center;margin-top:12px;text-decoration:none}.support-note{margin:9px 2px 0;color:#8a90a4;font-size:.73rem;line-height:1.5}.mode-tabs .fav-menu.open{display:block;width:min(440px,calc(100vw - 20px));min-width:360px;max-height:min(72vh,620px);overflow-y:auto;left:auto;right:0;padding:9px}.fav-menu-label{display:flex;align-items:center;gap:6px;padding:5px 7px;color:#777e94;font-size:.7rem;font-weight:800}.fav-menu-label.custom{margin-top:7px;padding-top:10px;border-top:1px solid #eceef5}.fav-menu-label small{margin-left:auto;color:#a3a8b7;font-size:.58rem;font-weight:500}.fav-default-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:3px}.mode-tabs .fav-default-grid a{min-height:40px;display:flex;align-items:center;padding:8px 10px;border-radius:8px;color:#2f3550;text-decoration:none;font-size:.8rem;line-height:1.25}.mode-tabs .fav-default-grid a:hover{background:#f1f3fb}.custom-fav-list{display:flex;flex-direction:column;gap:4px}.custom-fav-empty{padding:9px 10px;color:#9aa0b2;font-size:.73rem;text-align:center}.custom-fav-item{display:flex;align-items:stretch;min-width:0;border-radius:8px;background:#f7f8fc}.custom-fav-item a{flex:1 1 auto;min-width:0;display:flex !important;align-items:center;padding:9px 10px !important;color:#303750 !important;text-decoration:none;font-size:.8rem !important;white-space:normal;overflow-wrap:anywhere}.custom-fav-item button{flex:0 0 36px;width:36px !important;min-height:36px;padding:0 !important;display:inline-flex !important;align-items:center;justify-content:center;color:#757d93 !important;background:transparent !important}.custom-fav-item button:hover{background:#e9ecf8 !important;color:#4a4fd0 !important}.custom-fav-add{width:100%;margin-top:5px;padding:9px;border:1px dashed #bfc6df;border-radius:9px;background:#fff;color:#5964a8;font-family:inherit;font-size:.78rem;font-weight:750;cursor:pointer}.custom-fav-add:hover{background:#f1f3ff}.favorite-edit-actions{display:flex;justify-content:flex-end;gap:7px;margin-top:6px}.favorite-edit-actions #customFavDeleteBtn{margin-right:auto}.fav-modal-custom-head{display:flex;justify-content:space-between;align-items:center;margin:14px 0 7px;padding-top:12px;border-top:1px solid #eceef4;color:#555c75;font-size:.8rem}.fav-modal-custom-head small{color:#9da3b4;font-size:.62rem}.custom-fav-list.modal-list{margin-bottom:7px}#calendarModal{padding:5px !important}.calendar-content{width:calc(100vw - 10px) !important;max-width:none !important;height:calc(100dvh - 10px) !important;max-height:calc(100dvh - 10px) !important;border-radius:14px;overflow:hidden !important}.calendar-head{flex:0 0 auto;gap:12px;padding:10px 14px}.calendar-head h3{white-space:nowrap}.cal-head-actions{margin-left:auto;display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}.cal-head-actions .btn{padding:8px 11px;font-size:.77rem}.calendar-body{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;overflow-y:auto;padding:10px 14px 14px}.calendar-help[hidden],.cal-consult-fields[hidden]{display:none !important}.calendar-help{flex:0 0 auto;display:grid;grid-template-columns:auto repeat(4,minmax(0,1fr));gap:8px 12px;align-items:start;margin-bottom:8px;padding:9px 11px;border-radius:10px;background:#f2f4ff;color:#5b637d;font-size:.72rem;line-height:1.45}.calendar-help b{color:#4149b5;white-space:nowrap}.cal-toolbar{flex:0 0 auto;margin-bottom:7px}.calendar-layout{flex:1 0 560px;min-height:560px;grid-template-columns:minmax(0,1fr) minmax(310px,360px);gap:10px}.cal-month-pane{min-height:0;display:flex;flex-direction:column;overflow:hidden}.cal-grid{flex:1 1 auto;min-height:0;grid-template-rows:repeat(6,minmax(76px,1fr))}.cal-day{min-height:0}.cal-side{min-height:0;overflow-y:auto;padding:11px}.cal-event-list{flex:0 0 auto;max-height:170px}.cal-form{flex:0 0 auto}.cal-consult-fields{margin:7px 0;padding:9px;border:1px solid #dfd9f3;border-radius:10px;background:#faf8ff}.cal-consult-title{margin-bottom:7px;color:#7252a8;font-size:.75rem;font-weight:800}.cal-consult-fields label{display:block;margin-bottom:6px;color:#6d748a;font-size:.72rem;font-weight:750}.cal-consult-fields input,.cal-consult-fields select,.cal-form select{width:100%;margin-top:4px;padding:8px 9px;border:1px solid #dfe3ec;border-radius:8px;background:#fff;font-family:inherit;font-size:.78rem}.cal-import-box{flex:0 0 auto;scroll-margin-top:8px}.cal-day-events .type-3,.cal-event-item.type-3{background:#f7e8ff;border-left-color:#9c5bc4}.cal-day-events .type-4,.cal-event-item.type-4{background:#edf0f7}@media (max-width:1180px){.app-header{align-items:flex-start}.header-left{flex:1 1 100%}.header-right{flex:1 1 100%;justify-content:flex-end}}@media (max-width:900px){.brand-home{flex-basis:38px;width:38px;height:38px}.header-left{flex-wrap:nowrap;align-items:flex-start}.mode-tabs{flex-wrap:nowrap;overflow-x:auto}.mode-tabs .fav-menu.open{position:fixed;top:104px;left:8px;right:8px;width:auto;min-width:0}.calendar-layout{grid-template-columns:minmax(0,1fr);flex-basis:auto;min-height:0}.cal-month-pane{min-height:560px}.cal-side{max-height:none;overflow:visible}.calendar-help{grid-template-columns:1fr 1fr}.calendar-help b{grid-column:1/-1}}@media (max-width:620px){.fav-default-grid{grid-template-columns:1fr}.calendar-head{align-items:flex-start}.calendar-head h3{font-size:.94rem}.local-only-badge{display:none}.cal-head-actions{gap:4px}.cal-head-actions .btn{padding:7px;font-size:.68rem}.calendar-help{grid-template-columns:1fr}.calendar-help b{grid-column:auto}}.home-wrap{position:relative;flex:0 0 auto}.home-menu{display:none;position:absolute;top:calc(100%+8px);left:0;z-index:270;width:170px;padding:6px;border:1px solid #e2e5ef;border-radius:12px;background:#fff;box-shadow:0 12px 34px rgba(20,26,60,.24)}.home-menu.open{display:block}.home-menu button{display:flex;align-items:center;width:100%;min-height:40px;padding:9px 11px;border:0;border-radius:8px;background:transparent;color:#303750;text-align:left;font-family:inherit;font-size:.82rem;font-weight:700;cursor:pointer}.home-menu button:hover{background:#f1f3fb;color:#4a4fd0}.cal-property-control{display:grid;grid-template-columns:minmax(0,1fr) 36px;gap:5px;margin-top:4px}.cal-property-control select{margin-top:0 !important}.cal-property-control button{border:1px solid #cbd1e4;border-radius:8px;background:#f3f5ff;color:#4f59ab;font-size:1rem;font-weight:800;cursor:pointer}.cal-property-control button:hover{background:#e7eaff}.cal-day-events em b{font-size:.58rem;color:#4f5770}.cal-prop-badge{display:inline-flex;margin-right:6px;padding:2px 6px;border-radius:999px;background:rgba(255,255,255,.72);color:#5d6480;font-size:.62rem;vertical-align:1px}.calendar-layout.collapsed{display:block;flex-basis:auto;min-height:0}.calendar-layout.collapsed .cal-month-pane{display:none}.calendar-layout.collapsed .cal-side{width:min(760px,100%);max-width:760px;max-height:none;margin:0 auto;overflow:visible;box-shadow:0 8px 28px rgba(40,46,90,.08)}.calendar-layout.collapsed .cal-event-list{max-height:130px}.cal-import-actions #calConsultExcelBtn,.cal-import-actions #calConsultCopyBtn{background:#eef7f1;color:#176b47}@media (max-width:900px){.home-menu{position:fixed;top:54px;left:8px}.calendar-layout.collapsed .cal-side{width:100%}}.help-users{display:flex;flex-direction:column;gap:8px;margin-top:5px;padding:10px;border-top:1px solid #eceef5;color:#596079;font-size:.8rem}.help-user-count{display:flex;align-items:center;justify-content:space-between;gap:12px}.help-user-count b{flex:0 0 auto;color:#667eea}.usage-stats-consent{display:flex;align-items:center;gap:7px;width:100%;min-width:0;padding:8px 9px;border-radius:8px;background:#f7f8fc;color:#3f4660;font-size:.76rem;font-weight:700;line-height:1.4;cursor:pointer}.usage-stats-consent input{flex:0 0 auto;margin:0;accent-color:#667eea}.help-users>small{display:block;color:#8f96aa;font-size:.64rem;line-height:1.45;overflow-wrap:anywhere;word-break:keep-all}.fav-category-list{display:flex;flex-direction:column;gap:5px}.fav-category{border:1px solid #e6e9f3;border-radius:10px;background:#fff;overflow:hidden}.fav-category>summary{list-style:none;display:flex;align-items:center;gap:7px;min-height:39px;padding:8px 10px;color:#3e465f;font-size:.8rem;font-weight:800;cursor:pointer;user-select:none}.fav-category>summary::-webkit-details-marker{display:none}.fav-category>summary small{margin-left:auto;color:#989fb3;font-size:.6rem;font-weight:600}.fav-category>summary::after{content:'▾';margin-left:2px;color:#8b92a8;font-size:.68rem;transition:transform .18s ease}.fav-category[open]>summary{background:#f4f5fc;color:#4c55ad}.fav-category[open]>summary::after{transform:rotate(180deg)}.fav-category-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:3px;padding:5px;border-top:1px solid #edf0f6}.mode-tabs .fav-category-grid a,.fav-category-grid a{min-width:0;min-height:37px;display:flex;align-items:center;padding:8px 9px;border-radius:7px;color:#303750;text-decoration:none;font-size:.77rem;line-height:1.25;overflow-wrap:anywhere;word-break:keep-all}.mode-tabs .fav-category-grid a:hover,.fav-category-grid a:hover{background:#eef1fb;color:#4650af}.fav-custom-body{padding:6px;border-top:1px solid #edf0f6}.modal-categories .fav-category-grid{grid-template-columns:repeat(2,minmax(0,1fr))}@media (max-width:560px){.fav-category-grid,.modal-categories .fav-category-grid{grid-template-columns:1fr}}.textbook-custom{border-top:1px dashed #dfe3ee;background:#fbfcff}.fav-sub-label{padding:2px 3px 7px;color:#737b92;font-size:.68rem;font-weight:800}.cal-property-add{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:5px;margin-top:6px}.cal-property-add[hidden]{display:none !important}.cal-property-add input{margin-top:0 !important;min-width:0}.cal-property-add button{min-width:46px;padding:7px 8px;border:1px solid #cbd1e4;border-radius:8px;background:#f3f5ff;color:#4f59ab;font-family:inherit;font-size:.7rem;font-weight:800;cursor:pointer}.cal-property-add button:hover{background:#e7eaff}.cal-side.input-collapsed{align-self:start;overflow:visible}.cal-side.input-collapsed .cal-form{display:none}@media (max-width:520px){.cal-property-add{grid-template-columns:minmax(0,1fr) auto}.cal-property-add button:last-child{grid-column:1/-1}}#setupWizard .wizard-hero{background-image:linear-gradient(100deg,rgba(60,54,155,.96) 0%,rgba(92,70,170,.90) 54%,rgba(70,55,145,.64) 100%),url('/assets/teacher-notebook-photo.png');background-size:cover;background-position:center}#setupWizard .wizard-hero::before{opacity:.25}#setupWizard .wizard-hero h2 em{color:#ffe082}.help-users .help-user-count+.help-user-count{padding-top:7px;border-top:1px dashed #e3e6f0}.cal-day-events .type-none,.cal-event-item.type-none{background:#f6f7fa;border-left-color:#aeb4c3}.cal-side{max-height:100%;scrollbar-gutter:stable;overscroll-behavior:contain}.cal-form{padding-bottom:1px}.cal-form-actions{position:sticky;bottom:-1px;z-index:12;margin:8px -2px -1px;padding:10px 2px 9px;background:linear-gradient(to bottom,rgba(255,255,255,.92),#fff 35%);box-shadow:0 -8px 14px rgba(44,51,90,.06)}.cal-consult-fields{scroll-margin-bottom:72px}@media (max-width:900px){.cal-side{max-height:none}.cal-form-actions{bottom:0}}#setupWizard.wizard{grid-template-columns:minmax(0,1fr);grid-template-areas:"hero" "content"}#setupWizard .wizard-hero{min-height:430px;padding:38px 42px 30px;background-image:linear-gradient(90deg,rgba(29,31,72,.88) 0%,rgba(49,48,111,.68) 45%,rgba(31,34,71,.18) 76%,rgba(20,23,48,.04) 100%),url('/assets/teacher-notebook-photo.png');background-position:center 56%;background-size:cover}#setupWizard .wizard-hero::before{display:none}#setupWizard .wizard-hero>*{max-width:620px}#setupWizard .preview-panel{display:none !important}#setupWizard .hero-feature-card{backdrop-filter:blur(5px);background:rgba(53,48,115,.40)}.calendar-content{position:relative}.calendar-layout{display:block}.cal-side{margin-top:10px;max-height:170px;overflow-y:auto}.cal-editor-overlay{position:absolute;inset:0;z-index:80;display:grid;place-items:center;padding:18px;background:rgba(25,29,58,.48);backdrop-filter:blur(2px)}.cal-editor-overlay[hidden]{display:none !important}.cal-editor-card{width:min(570px,calc(100vw - 36px));max-height:min(84vh,730px);overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;border:1px solid rgba(255,255,255,.8);border-radius:16px;background:#fff;box-shadow:0 24px 70px rgba(19,23,55,.34)}.cal-editor-head{position:sticky;top:0;z-index:15;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:13px 16px;border-bottom:1px solid #e6e9f1;background:rgba(255,255,255,.97)}.cal-editor-head h4{color:#303750;font-size:.95rem}.cal-editor-card .cal-form{padding:14px 16px 0;border-top:0}.cal-editor-card .cal-form-actions{margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px}@media (max-width:900px){#setupWizard .wizard-hero{min-height:390px;padding:30px 26px 24px;background-position:58% center}.calendar-layout{grid-template-columns:minmax(0,1fr)}.cal-side{max-height:none}}@media (max-width:560px){#setupWizard .wizard-hero{min-height:420px;padding:25px 20px 22px;background-image:linear-gradient(90deg,rgba(29,31,72,.90),rgba(42,40,91,.58)),url('/assets/teacher-notebook-photo.png')}.cal-editor-overlay{padding:7px}.cal-editor-card{width:calc(100vw - 14px);max-height:calc(100dvh - 28px)}}@keyframes guide-button-bounce{0%,68%,100%{transform:translateY(0) scale(1)}74%{transform:translateY(-9px) scale(1.035)}79%{transform:translateY(0) scale(.99)}84%{transform:translateY(-5px) scale(1.02)}90%{transform:translateY(0) scale(1)}}#setupWizard .hero-guide-btn{animation:guide-button-bounce 2.35s ease-in-out infinite;box-shadow:0 5px 18px rgba(255,255,255,.22),0 7px 20px rgba(23,25,65,.28)}#setupWizard .hero-guide-btn:hover,#setupWizard .hero-guide-btn:focus-visible{animation-play-state:paused;transform:translateY(-2px) scale(1.025)}.admission-custom{border-top:1px dashed #eadfca;background:#fffaf2}.personal-favorites>summary{min-height:45px;background:linear-gradient(90deg,#fafaff,#f4f2ff)}@media (prefers-reduced-motion:reduce){#setupWizard .hero-guide-btn{animation:none}}#setupWizard .tong-title{display:flex;align-items:flex-end;gap:12px;margin-bottom:4px !important}#setupWizard .tong-word{color:#ffd85e;font-style:normal;letter-spacing:-.045em;text-shadow:0 4px 18px rgba(15,15,45,.24)}#setupWizard .tong-title small{padding-bottom:.42em;color:rgba(255,255,255,.86);font-size:clamp(.72rem,.31em,.88rem);font-weight:800;letter-spacing:.08em;white-space:nowrap}#setupWizard .hero-tagline{position:relative;margin:0 0 7px;color:#fff;font-size:clamp(.96rem,1.5vw,1.13rem);font-weight:750;letter-spacing:-.02em}#setupWizard .hero-tagline strong{color:#ffe57f;font-weight:900}#setupWizard .hero-home-prompt{display:none;position:relative;margin:9px 0 0;padding:10px 13px;width:max-content;max-width:100%;border:1px solid rgba(255,255,255,.24);border-radius:10px;background:rgba(24,24,72,.24);color:rgba(255,255,255,.86);font-size:.76rem;line-height:1.45}#setupWizard.home-only{grid-template-columns:minmax(0,1fr) !important;grid-template-rows:minmax(500px,calc(100dvh - 120px)) !important;grid-template-areas:'hero' !important}#setupWizard.home-only .wizard-content,#setupWizard.home-only .preview-panel,#setupWizard.home-only .step-tabs,#setupWizard.home-only .step-progress{display:none !important}#setupWizard.home-only .wizard-hero{min-height:100%;justify-content:center}#setupWizard.home-only .hero-home-prompt{display:block}#setupWizard:not(.hidden)~#stage{display:none !important}@media (max-width:900px){#setupWizard.home-only{display:grid !important;grid-template-rows:minmax(520px,calc(100dvh - 120px)) !important}}@media (max-width:560px){#setupWizard .tong-title{gap:8px}#setupWizard .hero-home-prompt{width:auto}}.school-today-card{display:none;grid-area:school;min-width:0;margin:0;padding:18px 20px;border:1px solid #e1e5f0;border-radius:18px;background:#fff;box-shadow:0 10px 34px rgba(35,42,86,.09)}#setupWizard.home-only{grid-template-rows:minmax(500px,calc(100dvh - 120px)) auto !important;grid-template-areas:'hero' 'school' !important;gap:14px}#setupWizard.home-only .school-today-card{display:block}.school-today-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.school-today-kicker{margin-bottom:5px;color:#7c65bd;font-size:.66rem;font-weight:850;letter-spacing:.05em}.school-today-head h3{display:flex;align-items:center;gap:8px;margin:0;color:#303750;font-size:1.08rem}.school-today-head p{margin:6px 0 0;color:#747b91;font-size:.78rem;line-height:1.45;word-break:keep-all}.experimental-badge{display:inline-flex;align-items:center;min-height:21px;padding:2px 8px;border-radius:999px;background:#eee9ff;color:#6f50b9;font-size:.61rem;font-weight:850;vertical-align:middle}.school-today-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}.school-today-actions input{min-height:38px;padding:7px 10px;border:1px solid #dce0eb;border-radius:9px;background:#f9faff;color:#3e455e;font-family:inherit;font-size:.76rem}.school-today-actions .btn{min-height:38px;padding:8px 12px;font-size:.75rem;white-space:nowrap}.school-today-empty{min-height:135px;display:flex;align-items:center;justify-content:center;gap:14px;margin-top:14px;padding:20px;border:1px dashed #cfd4e5;border-radius:14px;background:linear-gradient(135deg,#fafbff,#f6f3ff)}.school-today-empty[hidden],.school-today-grid[hidden]{display:none !important}.school-today-empty>span{font-size:2rem}.school-today-empty p{display:flex;flex-direction:column;gap:4px;margin:0;color:#3e455e;font-size:.87rem}.school-today-empty small{color:#858ca0;font-size:.7rem;font-weight:500}.school-today-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;margin-top:14px}.school-today-pane{min-width:0;padding:13px;border:1px solid #e3e6ef;border-radius:13px;background:#fafbfe}.timetable-pane{background:linear-gradient(145deg,#f8f9ff,#f4f5ff)}.meal-pane{background:linear-gradient(145deg,#fffaf5,#fff8ef)}.school-pane-title{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:9px}.school-pane-title h4{margin:0;color:#3b425a;font-size:.86rem}.school-pane-title span{color:#8b91a3;font-size:.67rem;font-weight:700}.school-today-list{min-height:82px}.school-list-row{display:grid;grid-template-columns:43px minmax(0,1fr);align-items:center;gap:9px;min-height:35px;padding:5px 7px;border-bottom:1px solid rgba(214,218,231,.75)}.school-list-row:last-child{border-bottom:0}.school-list-row>b{display:flex;align-items:baseline;gap:2px;color:#6069bb;font-size:.87rem}.school-list-row>b small{font-size:.55rem}.school-list-row>span{min-width:0;color:#3e455c;font-size:.78rem;overflow-wrap:anywhere}.meal-dishes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px 12px;margin:0;padding:0;list-style:none}.meal-dishes li{position:relative;padding-left:10px;color:#4a4651;font-size:.76rem;line-height:1.45;overflow-wrap:anywhere}.meal-dishes li::before{content:'·';position:absolute;left:1px;color:#d17a58;font-weight:900}.meal-calorie{margin-top:8px;padding-top:7px;border-top:1px dashed #eadfd4;color:#a17260;font-size:.65rem;text-align:right}.school-data-loading,.school-data-empty{min-height:82px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:7px;color:#8b91a4;font-size:.72rem;line-height:1.5;text-align:center}.school-data-empty small{display:block;max-width:300px;color:#a2a7b5;font-size:.64rem}.school-data-loading i{width:20px;height:20px;border:2px solid #d9ddef;border-top-color:#6974d6;border-radius:50%;animation:school-spin .8s linear infinite}@keyframes school-spin{to{transform:rotate(360deg)}}.school-today-status{min-height:18px;margin-top:9px;color:#8e94a5;font-size:.65rem;text-align:right}.school-today-status.ok{color:#46806a}.school-today-status.error{color:#b06b63}.school-today-status.cached{color:#7c729a}.school-data-content{width:min(700px,calc(100vw - 24px));max-height:min(88dvh,790px);overflow:hidden}.school-data-content .modal-header{align-items:flex-start}.school-data-content .modal-header h3{display:flex;align-items:center;gap:7px;margin:0}.school-data-content .modal-header p{margin:5px 0 0;color:#858b9e;font-size:.7rem;line-height:1.4}.school-data-body{overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}.school-setting-section{padding:13px;border:1px solid #e5e8f1;border-radius:12px;background:#fafbfe}.school-setting-section+.school-setting-section{margin-top:10px}.school-setting-section h4{margin:0 0 9px;color:#414860;font-size:.84rem}.school-search-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px}.school-search-row input,.school-class-fields input,.comcigan-body input{width:100%;min-width:0;padding:10px 11px;border:1px solid #d9deea;border-radius:9px;background:#fff;color:#353b52;font-family:inherit;font-size:.8rem}.school-search-status{min-height:20px;padding:7px 2px 3px;color:#8a90a2;font-size:.68rem}.school-search-results{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;max-height:190px;overflow-y:auto}.school-search-result{min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:9px 10px;border:1px solid #e0e4ef;border-radius:9px;background:#fff;color:#3d445b;text-align:left;font-family:inherit;cursor:pointer}.school-search-result:hover,.school-search-result.active{border-color:#858bdc;background:#f2f2ff;box-shadow:0 0 0 1px rgba(103,109,202,.16)}.school-search-result b{font-size:.77rem}.school-search-result span{color:#8a90a2;font-size:.62rem;line-height:1.35;overflow-wrap:anywhere}.school-selected-info{display:flex;flex-direction:column;gap:3px;margin-top:8px;padding:9px 11px;border-radius:9px;background:#f0f1f5;color:#858b9c;font-size:.72rem}.school-selected-info.selected{background:#eceefe;color:#4851a4}.school-selected-info span{color:#7f8599;font-size:.64rem}.school-class-fields{display:grid;grid-template-columns:repeat(2,minmax(0,160px));gap:10px}.school-class-fields label,.comcigan-body label{display:flex;flex-direction:column;gap:5px;color:#656d83;font-size:.7rem;font-weight:750}.school-setting-hint{margin:8px 0 0;color:#9298aa;font-size:.65rem;line-height:1.45}.comcigan-experiment{margin-top:10px;border:1px solid #e5dff0;border-radius:12px;background:#fcfaff;overflow:hidden}.comcigan-experiment summary{padding:11px 13px;color:#674f91;font-size:.78rem;font-weight:800;cursor:pointer}.comcigan-body{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:end;padding:0 13px 13px}.comcigan-body p{grid-column:1/-1;margin:2px 0 0;color:#8e859d;font-size:.64rem;line-height:1.5}.school-data-notice{margin-top:10px;padding:10px 12px;border-radius:10px;background:#eef7f3;color:#4e7667;font-size:.67rem;line-height:1.45}@media (max-width:900px){#setupWizard.home-only{grid-template-rows:minmax(520px,calc(100dvh - 120px)) auto !important}.school-today-card{padding:16px}.school-today-head{flex-direction:column}.school-today-actions{width:100%;justify-content:flex-start}}@media (max-width:620px){.school-today-grid{grid-template-columns:minmax(0,1fr)}.school-today-actions input{flex:1 1 150px}.school-today-empty{flex-wrap:wrap;justify-content:flex-start}.meal-dishes,.school-search-results{grid-template-columns:minmax(0,1fr)}.comcigan-body{grid-template-columns:minmax(0,1fr)}.school-class-fields{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (prefers-reduced-motion:reduce){.school-data-loading i{animation:none}}.header-class-tools{display:flex;align-items:center;gap:6px;flex:0 0 auto}.header-class-tools select{min-width:116px;max-width:180px;min-height:36px}.header-roster-btn{min-height:36px;padding:7px 11px;border:1px solid rgba(255,255,255,.42);border-radius:9px;background:rgba(255,255,255,.17);color:#fff;font-family:inherit;font-size:.74rem;font-weight:800;white-space:nowrap;cursor:pointer}.header-roster-btn:hover{background:#fff;color:#5058bd}.header-visit-stats{display:flex;align-items:center;gap:5px;flex:0 0 auto}.header-visit-stats span{display:inline-flex;align-items:center;gap:4px;min-height:32px;padding:5px 8px;border:1px solid rgba(255,255,255,.25);border-radius:999px;background:rgba(28,27,83,.18);color:rgba(255,255,255,.78);font-size:.63rem;white-space:nowrap}.header-visit-stats b{color:#fff4a8;font-size:.68rem;font-variant-numeric:tabular-nums}.help-data-notice{margin-top:5px;padding:11px;border-top:1px solid #eceef5;border-radius:0 0 9px 9px;background:#f8fafc}.help-data-notice b{display:block;margin-bottom:5px;color:#46506b;font-size:.78rem}.help-data-notice p{margin:0;color:#6f778c;font-size:.68rem;line-height:1.5;word-break:keep-all}.help-data-notice small{display:block;margin-top:6px;color:#9299aa;font-size:.61rem;line-height:1.4}.sp-period{margin-bottom:0}.period-cta{justify-content:space-between !important}.period-cta #spPeriodSummary{margin-left:auto;padding:2px 6px;border-radius:999px;background:rgba(255,255,255,.18);font-size:.62rem;font-weight:750}.seat-panel .sp-period-menu{left:auto;right:0;width:250px;padding:10px}.sp-period-menu>strong{display:block;margin-bottom:8px;color:#3e455e;font-size:.77rem}.sp-period-menu label{display:grid;grid-template-columns:48px minmax(0,1fr);align-items:center;gap:7px;margin-bottom:7px;color:#70778c;font-size:.68rem;font-weight:750}.sp-period-menu input{width:100%;min-width:0;padding:7px 8px;border:1px solid #dce1ed;border-radius:8px;background:#fff;color:#3b4259;font-family:inherit;font-size:.72rem}.sp-period-menu>small{display:block;padding-top:3px;color:#9aa0b1;font-size:.61rem;line-height:1.4}.seat-panel.sp-collapsed .sp-period,.seat-panel.sp-collapsed .sp-roster{display:block}.av-class-tools{display:flex;align-items:center;gap:6px}.av-class-tools select{min-width:130px;max-width:210px;min-height:36px;padding:7px 10px;border:1px solid #dce1ed;border-radius:9px;background:#fff;color:#353c55;font-family:inherit;font-size:.78rem;font-weight:750}.av-roster-btn{min-height:36px;padding:7px 11px !important;border-color:#d8dcef !important;background:#f2f3ff !important;color:#4f58ad !important;font-size:.75rem !important;font-weight:800 !important;white-space:nowrap}.av-roster-btn:hover{background:#e8eaff !important}#setupWizard:not(.home-only) .wizard-content{display:flex !important;flex-direction:column;min-height:380px}#setupWizard:not(.home-only) .wizard-nav{margin-top:auto}#setupWizard:not(.home-only) #layoutStep{min-height:132px}@media (max-width:1180px){.header-right{justify-content:flex-start}}@media (max-width:900px){.header-right{align-items:center}.header-class-tools,.header-visit-stats{flex:0 0 auto}.header-roster-btn{min-height:34px}.av-head{align-items:flex-start}.av-class-tools{order:1}.av-date{order:2}.attend-summary{order:3}.av-actions{order:4}#setupWizard:not(.home-only) .wizard-content{min-height:400px}}@media (max-width:560px){.header-class-tools select{min-width:105px;max-width:140px}.header-roster-btn{padding:6px 8px;font-size:.68rem}.header-visit-stats span{padding:4px 7px}.av-class-tools{width:100%}.av-class-tools select{flex:1 1 auto;min-width:0}.av-roster-btn{flex:0 0 auto}.seat-panel .sp-period-menu{position:fixed;left:8px;right:8px;top:auto;bottom:10px;width:auto}}.my-timetable-btn{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}#setupWizard.home-only{grid-template-rows:minmax(500px,calc(100dvh - 120px)) !important;grid-template-areas:'hero' !important;gap:0}.neis-meal-query{margin-top:10px}.neis-meal-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:9px}.neis-meal-head h4{margin:0}.neis-meal-head span{color:#98705f;font-size:.68rem;font-weight:800}.neis-meal-actions{display:flex;align-items:center;gap:7px;margin-bottom:9px}.neis-meal-actions input{flex:1 1 auto;min-width:0;min-height:38px;padding:8px 10px;border:1px solid #dce1ed;border-radius:9px;background:#fff;color:#3c435b;font-family:inherit;font-size:.77rem}.neis-meal-actions .btn{flex:0 0 auto;min-height:38px;padding:8px 12px;font-size:.74rem}.neis-meal-result{min-height:92px;padding:10px 11px;border:1px solid #eee4d8;border-radius:10px;background:#fffaf4}.neis-meal-result .school-data-loading,.neis-meal-result .school-data-empty{min-height:70px}.school-data-content .modal-footer{flex:0 0 auto}@media(max-width:900px){#setupWizard.home-only{grid-template-rows:minmax(520px,calc(100dvh - 120px)) !important}}@media(max-width:520px){.my-timetable-btn{padding-left:12px;padding-right:12px}.neis-meal-actions{align-items:stretch;flex-direction:column}.neis-meal-actions input,.neis-meal-actions .btn{width:100%}}#setupWizard.home-only{grid-template-rows:minmax(500px,calc(100dvh - 120px)) auto !important;grid-template-areas:'hero' 'school' !important;gap:14px}#setupWizard.home-only .school-today-card{display:block}@media(max-width:900px){#setupWizard.home-only{grid-template-rows:minmax(520px,calc(100dvh - 120px)) auto !important}}#setupWizard.home-only{grid-template-rows:minmax(500px,calc(100dvh - 120px)) !important;grid-template-areas:'hero' !important;gap:0}.help-visit-stats{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:9px}.help-visit-stats span{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0;padding:7px 8px;border:1px solid #e5e8f2;border-radius:8px;background:#fff;color:#687087;font-size:.66rem;font-weight:700}.help-visit-stats b{display:inline;margin:0;color:#5966c5;font-size:.72rem;font-variant-numeric:tabular-nums}.help-data-notice small:empty{display:none}.footer-visit-stats{order:3;display:inline-flex;align-items:center;gap:9px;margin:0;padding:5px 9px;border:1px solid #e2e5ee;border-radius:999px;background:#fff;color:#747b90;font-size:.68rem;white-space:nowrap}.footer-visit-stats b{color:#5962ad;font-size:.72rem;font-variant-numeric:tabular-nums}.footer-copy{order:4}@media(max-width:900px){#setupWizard.home-only{grid-template-rows:minmax(520px,calc(100dvh - 120px)) !important}.footer-visit-stats{order:2}.footer-copy{order:3}.footer-note{order:4}}#studentModal .modal-content{max-width:760px}#studentModal .tab-menu{flex-wrap:wrap}.seat-actions{flex-wrap:wrap}.special-quick{border-color:#cfc6f3 !important;background:#f5f1ff !important;color:#654cac !important}.special-note-form{padding:12px;border:1px solid #e2def3;border-radius:12px;background:#faf9ff}.special-note-fields{display:grid;grid-template-columns:145px minmax(150px,1fr) minmax(150px,1fr);gap:9px}.special-note-fields label,.special-note-content-label{display:flex;flex-direction:column;gap:5px;color:#5e6477;font-size:.72rem;font-weight:800}.special-note-fields input,.special-note-fields select,.special-note-content-label textarea{width:100%;min-width:0;padding:9px 10px;border:1px solid #d8dbe8;border-radius:9px;background:#fff;color:#34394d;font:inherit}.special-note-content-label{margin-top:9px}.special-note-content-label textarea{resize:vertical;min-height:92px;line-height:1.55}.special-note-form-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:9px}.special-note-form-foot small{color:#8a90a2;font-size:.66rem;line-height:1.4;word-break:keep-all}.special-note-form-foot>div{display:flex;gap:6px;flex:0 0 auto}.special-note-history-head{display:flex;align-items:center;justify-content:space-between;margin:13px 2px 7px;color:#4e5367;font-size:.78rem}.special-note-history-head span{color:#7058b5;font-weight:800}.special-note-list{display:flex;flex-direction:column;gap:7px;max-height:230px;overflow:auto;padding-right:3px}.special-note-empty{margin:0;padding:22px 12px;border:1px dashed #d9dce7;border-radius:10px;color:#9398a8;font-size:.76rem;text-align:center}.special-note-item{position:relative;padding:10px 82px 10px 11px;border:1px solid #e3e5ee;border-radius:10px;background:#fff}.special-note-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:6px}.special-note-meta span{color:#777f95;font-size:.68rem;font-variant-numeric:tabular-nums}.special-note-meta b{color:#4f58a4;font-size:.72rem}.special-note-meta em{padding:2px 6px;border-radius:999px;background:#f0edff;color:#7058ae;font-size:.62rem;font-style:normal;font-weight:800}.special-note-item p{margin:0;color:#3e4355;font-size:.75rem;line-height:1.55;white-space:pre-wrap;word-break:break-word}.special-note-actions{position:absolute;top:9px;right:9px;display:flex;gap:4px}.special-note-actions button{padding:4px 6px;border:1px solid #dfe2eb;border-radius:6px;background:#f8f9fc;color:#71788c;font-family:inherit;font-size:.62rem;cursor:pointer}.special-note-actions button:last-child{color:#b45d68}.rec-table td{white-space:pre-wrap}@media(max-width:620px){.special-note-fields{grid-template-columns:1fr}.special-note-form-foot{align-items:stretch;flex-direction:column}.special-note-form-foot>div{justify-content:flex-end}.special-note-item{padding-right:70px}}#studentModal{overflow-y:auto}#studentModal .modal-content{display:flex;flex-direction:column;max-height:calc(100dvh - 24px) !important;overflow:hidden}#studentModal .modal-header,#studentModal .modal-footer{flex:0 0 auto}#studentModal .modal-body{min-height:0;overflow-y:auto;overscroll-behavior:contain}@media(max-width:900px){#studentModal{align-items:flex-start;padding:8px}#studentModal .modal-content{margin:0;max-height:calc(100dvh - 16px) !important}}.cal-view-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.cal-view-tabs{display:inline-flex;align-items:center;padding:3px;border:1px solid #dfe3ef;border-radius:11px;background:#f6f7fb}.cal-view-tab{min-height:34px;padding:7px 14px;border:0;border-radius:8px;background:transparent;color:#747b91;font-family:inherit;font-size:.76rem;font-weight:800;cursor:pointer}.cal-view-tab.active{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;box-shadow:0 3px 9px rgba(92,78,173,.22)}.cal-gesture-hint{color:#9299aa;font-size:.65rem;word-break:keep-all}#calMonthPane,#calWeekPane,#calTodayPane{touch-action:pan-y;cursor:grab}#calMonthPane:active,#calWeekPane:active,#calTodayPane:active{cursor:grabbing}.cal-week-pane,.cal-today-pane{min-height:0;overflow:hidden;border:1px solid #e4e7f1;border-radius:14px;background:#fff}.cal-week-pane[hidden],.cal-today-pane[hidden],.calendar-layout[hidden]{display:none !important}.cal-week-grid{display:grid;grid-template-columns:repeat(7,minmax(138px,1fr));min-width:966px;min-height:510px}.cal-week-pane{overflow-x:auto;overscroll-behavior-x:contain;scrollbar-gutter:stable}.cal-week-day{min-width:0;border-right:1px solid #e9ebf2;background:#fff}.cal-week-day:last-child{border-right:0}.cal-week-day.today{background:#f8f7ff}.cal-week-day.selected{box-shadow:inset 0 0 0 2px #8060bb}.cal-week-day-head{position:sticky;top:0;z-index:3;display:flex;align-items:center;justify-content:center;gap:6px;width:100%;min-height:48px;border:0;border-bottom:1px solid #e8eaf2;background:rgba(250,251,254,.96);color:#656c82;font-family:inherit;cursor:pointer}.cal-week-day-head span{font-size:.67rem;font-weight:700}.cal-week-day-head b{font-size:.82rem}.cal-week-day:first-child .cal-week-day-head{color:#d84c5d}.cal-week-day:last-child .cal-week-day-head{color:#3e6fc5}.cal-week-events{display:flex;flex-direction:column;gap:6px;padding:7px}.cal-week-events .cal-event-item{display:block;padding:7px}.cal-week-events .cal-event-actions{margin-top:6px;justify-content:flex-end}.cal-week-events .cal-empty{padding:18px 4px;background:transparent;font-size:.67rem}.cal-today-pane{min-height:500px;padding:14px;overflow-y:auto}.cal-today-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-bottom:11px;border-bottom:1px solid #e8eaf2}.cal-today-head strong{color:#343a54;font-size:1rem}.cal-today-list{display:flex;flex-direction:column;gap:8px;padding-top:11px}.cal-today-list .cal-event-item{padding:12px}.cal-today-empty{padding:70px 15px}.cal-today-empty small{display:block;margin-top:6px;font-size:.68rem}.cal-slide-next{animation:calSlideNext .24s ease both}.cal-slide-prev{animation:calSlidePrev .24s ease both}@keyframes calSlideNext{from{opacity:.35;transform:translateX(24px)}to{opacity:1;transform:none}}@keyframes calSlidePrev{from{opacity:.35;transform:translateX(-24px)}to{opacity:1;transform:none}}@media(max-width:700px){.cal-view-bar{align-items:stretch;flex-direction:column;gap:5px}.cal-view-tabs{display:grid;grid-template-columns:repeat(3,1fr);width:100%}.cal-view-tab{padding:7px 5px}.cal-gesture-hint{text-align:center}.cal-week-grid{grid-template-columns:repeat(7,minmax(128px,1fr));min-width:896px}.cal-today-pane{min-height:430px}}.period-cta{min-height:58px;flex-direction:column;align-items:stretch !important;justify-content:center !important;gap:3px;text-align:center;line-height:1.15}.sp-period-title{display:block;font-size:.78rem;font-weight:850}.sp-period-date{display:flex;align-items:center;justify-content:center;gap:5px;min-width:0}.period-cta #spPeriodSummary{margin:0;padding:2px 7px;font-size:.63rem;font-variant-numeric:tabular-nums}.sp-period-arrow{flex:0 0 auto;color:rgba(255,255,255,.86);font-size:.67rem}#calSide{display:none !important}.calendar-layout{display:block;min-height:0}.cal-month-pane{min-height:clamp(610px,calc(100dvh - 155px),860px)}.cal-grid{flex:1 1 auto;min-height:0;grid-template-rows:repeat(6,minmax(88px,1fr))}.cal-property-control{grid-template-columns:minmax(0,1fr) 34px 34px 34px}.cal-property-control button{min-width:0;padding:0}.cal-property-control button:disabled{background:#f2f3f6;color:#bdc1cb;border-color:#e1e4ea;cursor:not-allowed}#calGeneralTargetLabel[hidden]{display:none !important}@media (max-width:900px){.cal-month-pane{min-height:max(580px,calc(100dvh - 155px))}.cal-grid{grid-template-rows:repeat(6,minmax(82px,1fr))}}@media (max-width:620px){.cal-month-pane{min-height:max(520px,calc(100dvh - 185px))}.cal-property-control{grid-template-columns:minmax(0,1fr) 32px 32px 32px}}.sheet-copy-help-pair{display:inline-flex;align-items:stretch;min-width:0}.sheet-copy-help-pair #calConsultCopyBtn{border-radius:8px 0 0 8px}.sheet-copy-help-btn{width:34px;min-width:34px;border:1px solid #bcd8c9;border-left:0;border-radius:0 8px 8px 0;background:#e2f4e8;color:#176b47;font-family:inherit;font-size:.88rem;font-weight:900;cursor:pointer}.sheet-copy-help-btn:hover{background:#d2eddc;color:#0c5537}.sheet-copy-help-btn:focus-visible{outline:2px solid #25845a;outline-offset:2px}.sheet-copy-help-content{width:min(1040px,calc(100vw - 24px));max-width:1040px !important;max-height:min(92dvh,850px) !important}.sheet-copy-help-body{overflow-y:auto;padding:16px 18px 20px}.sheet-copy-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:12px}.sheet-copy-steps span{display:flex;align-items:center;gap:8px;min-width:0;padding:10px 12px;border:1px solid #e0e4ed;border-radius:10px;background:#f8fafc;color:#60687e;font-size:.76rem;line-height:1.45;word-break:keep-all}.sheet-copy-steps b{display:inline-flex;flex:0 0 25px;width:25px;height:25px;align-items:center;justify-content:center;border-radius:50%;background:#1f8f5f;color:#fff;font-size:.72rem}.sheet-copy-steps em{color:#265f48;font-style:normal;font-weight:850}.sheet-copy-example{margin:0;padding:10px;border:1px solid #dfe4eb;border-radius:12px;background:#eef1f5;overflow-x:auto}.sheet-copy-example img{display:block;width:100%;min-width:720px;height:auto;border-radius:8px;box-shadow:0 7px 20px rgba(33,42,63,.13)}.sheet-copy-example figcaption{margin-top:9px;color:#71798c;text-align:center;font-size:.71rem;line-height:1.5;word-break:keep-all}.sheet-copy-note{margin:11px 2px 0;padding:10px 12px;border-radius:9px;background:#f1f4ff;color:#59627c;font-size:.73rem;line-height:1.55;word-break:keep-all}@media(max-width:700px){.sheet-copy-steps{grid-template-columns:1fr}.sheet-copy-help-body{padding:12px}.sheet-copy-example{padding:7px}.sheet-copy-example img{min-width:680px}}.school-data-content{width:min(1120px,calc(100vw - 24px));max-width:1120px !important;max-height:min(94dvh,900px) !important;overflow:hidden}.school-modal-head{align-items:flex-start}.school-modal-head h3{display:flex;align-items:center;gap:7px;margin:3px 0 0}.school-modal-head p{margin:5px 0 0;color:#858b9e;font-size:.72rem}.school-data-content .school-today-card{display:block !important;margin:0;padding:2px;border:0;border-radius:0;box-shadow:none}.school-settings-panel[hidden],#schoolTodayEmpty[hidden],#schoolTodayGrid[hidden]{display:none !important}.school-settings-panel{display:grid;grid-template-columns:1.25fr .75fr;gap:10px;margin-top:14px;padding:12px;border:1px solid #dddff0;border-radius:14px;background:#f8f8ff}.school-settings-panel .school-setting-section{margin:0}.school-setting-actions{display:flex;justify-content:flex-end;gap:7px;margin-top:12px}.school-today-card .school-today-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.school-today-card .school-today-empty{min-height:210px}.school-today-card .school-today-pane{min-height:210px}.school-today-card .school-today-list{min-height:145px;max-height:300px;overflow-y:auto}@media(max-width:900px){.school-data-content{width:calc(100vw - 12px);max-height:calc(100dvh - 12px)!important}.school-settings-panel{grid-template-columns:1fr}.school-today-head{gap:10px}.school-today-card .school-today-grid{grid-template-columns:1fr 1fr}}@media(max-width:650px){.school-today-card .school-today-grid{grid-template-columns:1fr}.school-today-actions{display:grid;grid-template-columns:1fr 1fr}.school-today-actions input{grid-column:1/-1}.school-search-results{grid-template-columns:1fr}}.fav-category-grid{grid-auto-rows:minmax(42px,auto)}.mode-tabs .fav-category-grid a,.fav-category-grid a{height:100%;align-content:center}.mode-tabs .game-menu.open{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:min(330px,calc(100vw - 20px));min-width:300px;left:auto;right:0;gap:3px;padding:9px}.mode-tabs .game-menu a,.mode-tabs .game-menu-disabled{min-width:0;min-height:42px;display:flex;align-items:center;gap:6px;padding:9px 10px;border-radius:8px;color:#303750;text-decoration:none;text-align:left;font-size:.8rem;line-height:1.25;word-break:keep-all}.mode-tabs .game-menu a:hover{background:#eef1fb;color:#4650af}.mode-tabs .game-menu-disabled{color:#9aa0b2;background:#f7f8fb;cursor:not-allowed}.mode-tabs .game-menu-disabled small{margin-left:auto;color:#b0b5c3;font-size:.62rem;white-space:nowrap}@media (max-width:900px){.mode-tabs .game-menu.open{position:fixed;top:104px;left:8px;right:8px;width:auto;min-width:0;max-height:calc(100dvh - 122px);overflow-y:auto}}@media (max-width:560px){.mode-tabs .game-menu.open{grid-template-columns:1fr}}.footer-copy a{color:inherit;font-weight:800;text-decoration:none}.footer-copy a:hover{color:#4a4fd0;text-decoration:underline}.guide-slide{overflow-x:hidden !important;overflow-y:auto !important;overscroll-behavior:contain;scrollbar-gutter:stable}.guide-side{min-width:0;overflow:visible !important}.guide-desc,.guide-desc p,.guide-desc li,.guide-callout{white-space:normal !important;word-break:keep-all !important;overflow-wrap:anywhere !important}.guide-desc li{padding-right:5px}.guide-shot{flex:0 0 auto}@media (max-width:1200px),(max-height:720px){.guide-slide{padding-bottom:34px !important}.guide-side{padding-bottom:18px !important}}.mode-tabs .fav-featured-link,.modal-categories+.fav-featured-link,.fav-featured-link{min-height:44px;display:flex !important;align-items:center;justify-content:space-between;gap:10px;margin-bottom:6px;padding:9px 11px !important;border:1px solid #cbc7ef;border-radius:10px;background:linear-gradient(135deg,#f1f3ff,#f7f2ff);color:#484fa4 !important;text-decoration:none;font-size:.8rem;font-weight:850}.fav-featured-link:hover{background:linear-gradient(135deg,#e8ebff,#f0e8ff) !important}.fav-featured-link small{flex:0 0 auto;color:#898fa9;font-size:.61rem;font-weight:650;white-space:nowrap}.stage.mode-screen-hidden,.attend-view.mode-screen-hidden,.action-bar.mode-screen-hidden{display:none !important}html[data-theme="classic"]{--tong-bg:#f0f2f5;--tong-surface:#fff;--tong-soft:#f8f9fa;--tong-text:#33384a;--tong-muted:#747b90;--tong-border:#e0e3ec;--tong-primary:#667eea;--tong-secondary:#764ba2;--tong-primary-soft:#eef0ff;--tong-header:linear-gradient(135deg,#667eea,#764ba2);--tong-header-text:#fff;--tong-shadow:rgba(45,47,86,.12)}html[data-theme="romance"]{--tong-bg:#fff7fb;--tong-surface:#fffdfd;--tong-soft:#fcecf3;--tong-text:#594354;--tong-muted:#8d7082;--tong-border:#eccbd7;--tong-primary:#d97d9f;--tong-secondary:#9db7e4;--tong-primary-soft:#fbe6ee;--tong-header:linear-gradient(135deg,#d97d9f,#a9bfe8);--tong-header-text:#fff;--tong-shadow:rgba(142,82,112,.14)}html[data-theme="cute"]{--tong-bg:#fffaf0;--tong-surface:#fffefa;--tong-soft:#fff3cf;--tong-text:#4d4540;--tong-muted:#806f60;--tong-border:#ebcc91;--tong-primary:#f09b4d;--tong-secondary:#78cbbb;--tong-primary-soft:#fff0cf;--tong-header:linear-gradient(135deg,#f3a454,#ef899c 52%,#76cabb);--tong-header-text:#4f393b;--tong-shadow:rgba(133,92,46,.14)}html[data-theme="waterblue"]{--tong-bg:#f8f5e9;--tong-surface:#fffdf5;--tong-soft:#e7f0ec;--tong-text:#435964;--tong-muted:#708188;--tong-border:#c0d1d0;--tong-primary:#78aabd;--tong-secondary:#88a978;--tong-primary-soft:#e3eff1;--tong-header:linear-gradient(135deg,#7fb4cd,#a8c9cf 58%,#8fae7d);--tong-header-text:#fff;--tong-shadow:rgba(65,101,107,.14)}html[data-theme="forestletter"]{--tong-bg:#f5f6e8;--tong-surface:#fffdf1;--tong-soft:#e6ecd8;--tong-text:#45513f;--tong-muted:#77816e;--tong-border:#c8d0b6;--tong-primary:#819c6c;--tong-secondary:#b0a36c;--tong-primary-soft:#e5ecd7;--tong-header:linear-gradient(135deg,#829d70,#aeba8b 58%,#b4a877);--tong-header-text:#fff;--tong-shadow:rgba(76,95,63,.14)}html[data-theme="night"]{--tong-bg:#1d223b;--tong-surface:#282e4b;--tong-soft:#303756;--tong-text:#e8eaff;--tong-muted:#aeb6d3;--tong-border:#4a5376;--tong-primary:#aebcff;--tong-secondary:#7887c4;--tong-primary-soft:#343d65;--tong-header:linear-gradient(135deg,#252c4d,#465484);--tong-header-text:#f3f5ff;--tong-shadow:rgba(5,8,22,.34)}html[data-theme] body{background-color:var(--tong-bg);color:var(--tong-text);transition:background-color .22s ease,color .22s ease}html[data-theme="waterblue"] body{background-image:radial-gradient(circle at 2% 13%,rgba(126,183,211,.24),transparent 22%),radial-gradient(circle at 98% 88%,rgba(113,154,100,.20),transparent 23%);background-attachment:fixed}html[data-theme="forestletter"] body{background-image:radial-gradient(circle at 3% 14%,rgba(159,183,125,.20),transparent 21%),radial-gradient(circle at 97% 84%,rgba(125,158,99,.18),transparent 23%);background-attachment:fixed}html[data-theme] .app-header{background:var(--tong-header);color:var(--tong-header-text)}html[data-theme] .btn.primary,html[data-theme] .option-btn.active,html[data-theme] .tab-btn.active,html[data-theme] .class-tab.active,html[data-theme] .set-tab.active,html[data-theme] .step-tab.active .st-no,html[data-theme] .cal-view-tab.active,html[data-theme] .sp-btn.go,html[data-theme] .day-today.is-today,html[data-theme] .seat-actions .btn.praise-quick,html[data-theme] .preview-desk,html[data-theme] .desk{background:linear-gradient(135deg,var(--tong-primary),var(--tong-secondary)) !important;color:var(--tong-header-text) !important}html[data-theme] .mode-tab.active{background:var(--tong-surface);color:var(--tong-primary);border-color:var(--tong-surface)}html[data-theme] .mode-tab:hover,html[data-theme] .header-theme:hover,html[data-theme] .header-help:hover,html[data-theme] .header-roster-btn:hover{background:var(--tong-surface);color:var(--tong-primary)}html[data-theme] .action-bar,html[data-theme] .wizard,html[data-theme] .modal-content,html[data-theme] .picker-content,html[data-theme] .dock-card,html[data-theme] .book-card,html[data-theme] .school-today-card,html[data-theme] .cal-month-pane,html[data-theme] .cal-side,html[data-theme] .cal-week-pane,html[data-theme] .cal-today-pane,html[data-theme] .cal-week-day,html[data-theme] .cal-day,html[data-theme] .cal-editor-card,html[data-theme] .fav-category,html[data-theme] .special-note-item,html[data-theme] .theme-menu,html[data-theme] .more-menu,html[data-theme] .help-menu,html[data-theme] .home-menu{background:var(--tong-surface);color:var(--tong-text);border-color:var(--tong-border);box-shadow:0 10px 30px var(--tong-shadow)}html[data-theme] .preview-panel,html[data-theme] .student-count-section,html[data-theme] .seat-section,html[data-theme] .history-item,html[data-theme] .settings-item,html[data-theme] .excel-preview,html[data-theme] .record,html[data-theme] .help-data-notice,html[data-theme] .cal-view-tabs,html[data-theme] .cal-empty,html[data-theme] .school-settings-panel,html[data-theme] .sheet-copy-steps span{background:var(--tong-soft);color:var(--tong-text);border-color:var(--tong-border)}html[data-theme] .btn:not(.primary),html[data-theme] .option-btn,html[data-theme] .type-card,html[data-theme] .layout-btn,html[data-theme] .class-tab,html[data-theme] .day-nav,html[data-theme] .cal-nav,html[data-theme] .theme-choice,html[data-theme] .special-note-actions button{background:var(--tong-surface);color:var(--tong-text);border-color:var(--tong-border)}html[data-theme] input,html[data-theme] textarea,html[data-theme] select{background-color:var(--tong-surface);color:var(--tong-text);border-color:var(--tong-border)}html[data-theme] .cal-day,html[data-theme] .cal-week-day,html[data-theme] .cal-week-day-head,html[data-theme] .cal-today-head,html[data-theme] .modal-header,html[data-theme] .modal-footer,html[data-theme] .action-bar{border-color:var(--tong-border)}html[data-theme] .cal-week-day.today,html[data-theme] .cal-day.today{background:var(--tong-primary-soft)}html[data-theme] .cal-week-day.selected{box-shadow:inset 0 0 0 2px var(--tong-primary)}html[data-theme] .option-btn:hover,html[data-theme] .type-card:hover,html[data-theme] .layout-btn:hover,html[data-theme] .class-tab:hover{border-color:var(--tong-primary)}html[data-theme] .type-card.active,html[data-theme] .layout-btn.active{border-color:var(--tong-primary);background:var(--tong-primary-soft)}html[data-theme] .type-card .seat,html[data-theme] .mini-seat,html[data-theme] .preview-seat{background:var(--tong-primary)}html[data-theme] .fav-featured-link{background:var(--tong-primary-soft) !important;color:var(--tong-primary) !important;border-color:var(--tong-border)}html[data-theme] .footer-copy a,html[data-theme] .special-note-meta b{color:var(--tong-primary)}html[data-theme] .footer-visit-stats,html[data-theme] .help-visit-stats span{background:var(--tong-surface);color:var(--tong-muted);border-color:var(--tong-border)}html[data-theme] .student-id,html[data-theme] .seat-number,html[data-theme] .hint,html[data-theme] .settings-guide,html[data-theme] .cal-gesture-hint{color:var(--tong-muted)}html[data-theme="romance"] #setupWizard .wizard-hero{background-image:linear-gradient(90deg,rgba(112,55,83,.90),rgba(184,109,145,.62),rgba(129,157,203,.18)),url('/assets/teacher-notebook-photo.png')}html[data-theme="cute"] #setupWizard .wizard-hero{background-image:linear-gradient(90deg,rgba(124,75,34,.88),rgba(210,126,71,.58),rgba(103,170,156,.16)),url('/assets/teacher-notebook-photo.png')}html[data-theme="waterblue"] #setupWizard .wizard-hero{background-image:linear-gradient(90deg,rgba(48,87,103,.90),rgba(91,145,164,.58),rgba(103,137,88,.18)),url('/assets/teacher-notebook-photo.png')}html[data-theme="forestletter"] #setupWizard .wizard-hero{background-image:linear-gradient(90deg,rgba(51,76,48,.91),rgba(100,131,85,.58),rgba(143,134,85,.18)),url('/assets/teacher-notebook-photo.png')}html[data-theme="night"] #setupWizard .wizard-hero{background-image:linear-gradient(90deg,rgba(17,21,43,.95),rgba(43,52,91,.74),rgba(40,48,80,.26)),url('/assets/teacher-notebook-photo.png')}html[data-theme="romance"] .tong-title,html[data-theme="romance"] .modal-header h3,html[data-theme="waterblue"] .tong-title,html[data-theme="forestletter"] .tong-title{font-family:'Batang','Times New Roman',serif;letter-spacing:.01em}.header-theme-wrap{position:relative}.header-theme{min-height:36px;padding:7px 11px;border:1px solid rgba(255,255,255,.34);border-radius:9px;background:rgba(255,255,255,.12);color:#fff;font-family:inherit;font-size:.76rem;font-weight:800;cursor:pointer;white-space:nowrap}.theme-menu{position:absolute;z-index:1450;top:calc(100%+8px);right:0;display:none;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;width:min(390px,calc(100vw - 20px));padding:10px;border:1px solid #e3e6ef;border-radius:14px}.theme-menu.open{display:grid}.theme-choice{display:flex;align-items:center;gap:9px;min-width:0;padding:9px;border:1px solid #e4e7ef;border-radius:11px;text-align:left;font-family:inherit;cursor:pointer}.theme-choice:hover{transform:translateY(-1px);border-color:var(--tong-primary) !important}.theme-choice[aria-pressed="true"]{background:var(--tong-primary-soft) !important;border-color:var(--tong-primary) !important;box-shadow:0 0 0 2px color-mix(in srgb,var(--tong-primary) 28%,transparent)}.theme-choice>span:last-child{min-width:0}.theme-choice b,.theme-choice small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.theme-choice b{font-size:.74rem}.theme-choice small{margin-top:2px;color:var(--tong-muted);font-size:.61rem}.theme-swatch{flex:0 0 28px;width:28px;height:28px;border:2px solid rgba(255,255,255,.8);border-radius:50%;box-shadow:0 0 0 1px rgba(45,50,70,.18)}.theme-swatch.classic{background:linear-gradient(135deg,#667eea 0 50%,#f4f0ff 50%)}.theme-swatch.romance{background:linear-gradient(135deg,#e48dad 0 50%,#dbe8ff 50%)}.theme-swatch.cute{background:linear-gradient(135deg,#ffba58 0 33%,#8bd8c8 33% 66%,#ff9caa 66%)}.theme-swatch.waterblue{background:linear-gradient(135deg,#9bc9e5 0 38%,#f7f1df 38% 68%,#86ac78 68%)}.theme-swatch.forestletter{background:linear-gradient(135deg,#dfe9c9 0 44%,#fbf8e9 44% 70%,#91ad73 70%)}.theme-swatch.night{background:linear-gradient(135deg,#242b4d 0 50%,#aebcff 50%)}@media(max-width:900px){.theme-menu.open{position:fixed;top:104px;left:8px;right:8px;width:auto;max-height:calc(100dvh - 122px);overflow-y:auto}.header-theme{min-height:34px}}@media(max-width:520px){.theme-menu{grid-template-columns:1fr}.theme-choice{min-height:48px}}@media print{html[data-theme] body{background:#fff!important;background-image:none!important;color:#111!important}}.cal-month-pane{min-height:clamp(520px,calc(100dvh - 235px),720px)}.cal-grid{grid-template-rows:repeat(5,minmax(82px,20%));grid-auto-rows:minmax(82px,20%);overflow-y:hidden;overscroll-behavior:contain}.cal-grid.has-sixth-week{grid-template-rows:repeat(6,minmax(82px,20%));overflow-y:auto;scrollbar-gutter:stable;scrollbar-color:var(--tong-border,#dfe3ee) transparent}.cal-grid.has-sixth-week .cal-day{scroll-snap-align:start}@media(max-width:900px){.cal-month-pane{min-height:clamp(500px,calc(100dvh - 220px),720px)}.cal-grid,.cal-grid.has-sixth-week{grid-auto-rows:minmax(76px,20%)}.cal-grid{grid-template-rows:repeat(5,minmax(76px,20%))}.cal-grid.has-sixth-week{grid-template-rows:repeat(6,minmax(76px,20%))}}@media(max-width:620px){.cal-month-pane{min-height:clamp(460px,calc(100dvh - 210px),650px)}.cal-grid,.cal-grid.has-sixth-week{grid-auto-rows:minmax(68px,20%)}.cal-grid{grid-template-rows:repeat(5,minmax(68px,20%))}.cal-grid.has-sixth-week{grid-template-rows:repeat(6,minmax(68px,20%))}}.cal-grid{grid-template-rows:repeat(5,20%);grid-auto-rows:20%}.cal-grid.has-sixth-week{grid-template-rows:repeat(6,20%)}@media(max-width:900px){.cal-grid{grid-template-rows:repeat(5,20%);grid-auto-rows:20%}.cal-grid.has-sixth-week{grid-template-rows:repeat(6,20%)}}@media(max-width:620px){.cal-grid{grid-template-rows:repeat(5,20%);grid-auto-rows:20%}.cal-grid.has-sixth-week{grid-template-rows:repeat(6,20%)}}.side-rail{position:relative;z-index:130;overflow:visible}.rail-menu{z-index:180}@media(max-width:1080px){.side-rail.open{width:100% !important}.rail-menu{left:auto;right:0;top:calc(100%+6px);min-width:210px}}html[data-theme="campus"]{--tong-bg:#edf5f4;--tong-surface:rgba(255,255,255,.93);--tong-soft:rgba(236,245,242,.94);--tong-text:#344b55;--tong-muted:#6d7f86;--tong-border:#bfd2d3;--tong-primary:#5e91a9;--tong-secondary:#7e9f70;--tong-primary-soft:#dfecef;--tong-header:linear-gradient(135deg,#588aa3,#82a998);--tong-header-text:#fff;--tong-shadow:rgba(54,89,96,.16)}html[data-theme="botanical"]{--tong-bg:#eef1df;--tong-surface:rgba(255,254,244,.93);--tong-soft:rgba(235,240,218,.94);--tong-text:#3e4b38;--tong-muted:#707c68;--tong-border:#bdc8a9;--tong-primary:#6f8a60;--tong-secondary:#a18a61;--tong-primary-soft:#dfe7cf;--tong-header:linear-gradient(135deg,#627b57,#91a67a 58%,#aa8e66);--tong-header-text:#fff;--tong-shadow:rgba(66,82,54,.16)}html[data-theme="teacherdesk"]{--tong-bg:#f5eadb;--tong-surface:rgba(255,252,246,.94);--tong-soft:rgba(247,233,216,.95);--tong-text:#52453e;--tong-muted:#81726a;--tong-border:#dbc4ae;--tong-primary:#a57859;--tong-secondary:#6f9292;--tong-primary-soft:#f0dfcf;--tong-header:linear-gradient(135deg,#9a6e52,#bd9471 56%,#728f8f);--tong-header-text:#fff;--tong-shadow:rgba(91,65,48,.16)}html[data-theme="campus"] body{background-image:linear-gradient(rgba(244,250,249,.66),rgba(244,250,249,.72)),url('/assets/theme-clear-campus.png')}html[data-theme="botanical"] body{background-image:linear-gradient(rgba(248,248,235,.67),rgba(248,248,235,.75)),url('/assets/theme-botanical-paper.png')}html[data-theme="teacherdesk"] body{background-image:linear-gradient(rgba(255,249,240,.65),rgba(255,249,240,.74)),url('/assets/theme-teacher-desk.png')}html[data-theme="campus"] body,html[data-theme="botanical"] body,html[data-theme="teacherdesk"] body{background-size:cover;background-position:center;background-repeat:no-repeat;background-attachment:fixed}html[data-theme="campus"] #setupWizard .wizard-hero{background-image:linear-gradient(90deg,rgba(38,73,88,.88),rgba(77,118,130,.56) 43%,rgba(255,255,255,.04) 76%),url('/assets/theme-clear-campus.png');background-position:center}html[data-theme="botanical"] #setupWizard .wizard-hero{background-image:linear-gradient(90deg,rgba(49,70,41,.89),rgba(91,111,72,.56) 43%,rgba(255,255,255,.03) 76%),url('/assets/theme-botanical-paper.png');background-position:center}html[data-theme="teacherdesk"] #setupWizard .wizard-hero{background-image:linear-gradient(90deg,rgba(75,49,35,.90),rgba(138,93,64,.55) 43%,rgba(255,255,255,.03) 76%),url('/assets/theme-teacher-desk.png');background-position:center}html[data-theme="campus"] .stage,html[data-theme="campus"] .attend-view{background:linear-gradient(rgba(239,247,246,.68),rgba(239,247,246,.78)),url('/assets/theme-clear-campus.png') center/cover fixed}html[data-theme="botanical"] .stage,html[data-theme="botanical"] .attend-view{background:linear-gradient(rgba(244,246,231,.69),rgba(244,246,231,.79)),url('/assets/theme-botanical-paper.png') center/cover fixed}html[data-theme="teacherdesk"] .stage,html[data-theme="teacherdesk"] .attend-view{background:linear-gradient(rgba(251,243,233,.68),rgba(251,243,233,.80)),url('/assets/theme-teacher-desk.png') center/cover fixed}html[data-theme="campus"] .side-rail,html[data-theme="campus"] .seat-panel,html[data-theme="campus"] .classroom,html[data-theme="botanical"] .side-rail,html[data-theme="botanical"] .seat-panel,html[data-theme="botanical"] .classroom,html[data-theme="teacherdesk"] .side-rail,html[data-theme="teacherdesk"] .seat-panel,html[data-theme="teacherdesk"] .classroom{background:var(--tong-surface);border-color:var(--tong-border);backdrop-filter:blur(7px)}html[data-theme="campus"] .tong-title,html[data-theme="botanical"] .tong-title{font-family:'Batang','Times New Roman',serif}.theme-swatch.campus{background:linear-gradient(135deg,#83c7ec 0 38%,#f8f1df 38% 64%,#8baa75 64%)}.theme-swatch.botanical{background:linear-gradient(135deg,#55784e 0 34%,#eef0d9 34% 68%,#c59a6b 68%)}.theme-swatch.teacherdesk{background:linear-gradient(135deg,#9d684a 0 34%,#f4e1c7 34% 67%,#708f91 67%)}html[data-theme="night"] .more-menu button,html[data-theme="night"] .more-menu a,html[data-theme="night"] .help-menu button,html[data-theme="night"] .help-menu>a,html[data-theme="night"] .home-menu button,html[data-theme="night"] .rail-menu button,html[data-theme="night"] .sp-menu button,html[data-theme="night"] .fav-category>summary,html[data-theme="night"] .fav-category-grid a,html[data-theme="night"] .fav-menu-label,html[data-theme="night"] .custom-fav-add{color:var(--tong-text) !important}html[data-theme="night"] .more-menu button:hover,html[data-theme="night"] .more-menu a:hover,html[data-theme="night"] .help-menu button:hover,html[data-theme="night"] .help-menu>a:hover,html[data-theme="night"] .home-menu button:hover,html[data-theme="night"] .rail-menu button:hover,html[data-theme="night"] .sp-menu button:hover,html[data-theme="night"] .fav-category-grid a:hover,html[data-theme="night"] .fav-category[open]>summary{background:var(--tong-soft) !important;color:var(--tong-primary) !important}html[data-theme="night"] .fav-category-grid,html[data-theme="night"] .fav-menu-label.custom{border-color:var(--tong-border)}html[data-theme="night"] .fav-category>summary small,html[data-theme="night"] .help-menu button small,html[data-theme="night"] .game-menu-disabled,html[data-theme="night"] .game-menu-disabled small{color:var(--tong-muted) !important}html[data-theme="night"] .game-menu-disabled,html[data-theme="night"] .custom-fav-item{background:var(--tong-soft) !important}@media(max-width:900px){html[data-theme="campus"] body,html[data-theme="botanical"] body,html[data-theme="teacherdesk"] body{background-attachment:scroll}}html[data-theme="night"] .rail-menu,html[data-theme="night"] .sp-menu{background:var(--tong-surface) !important;color:var(--tong-text) !important;border-color:var(--tong-border) !important}@media print{.print-only.print-group-mode .print-seating{width:100%}.print-only.print-group-mode .print-row{display:grid;grid-template-columns:repeat(var(--print-group-count),minmax(0,1fr));align-items:stretch;gap:12px;width:100%}.print-only.print-group-mode .print-group{min-width:0}.print-only.print-group-mode .print-cluster{position:relative;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;padding:19px 7px 7px;border:1.5px dashed #9da7c8;border-radius:10px;background:#f4f6fd !important;-webkit-print-color-adjust:exact !important;print-color-adjust:exact !important}.print-only.print-group-mode .print-cluster-5,.print-only.print-group-mode .print-cluster-6{grid-template-columns:repeat(3,minmax(0,1fr))}.print-only.print-group-mode .print-cluster::before{content:attr(data-group-label);position:absolute;top:3px;left:50%;transform:translateX(-50%);color:#545d82 !important;font-size:.66rem;font-weight:800;letter-spacing:.04em;white-space:nowrap}.print-only.print-group-mode .print-seat{width:auto;min-width:0;height:50px;padding:2px;box-sizing:border-box}.print-only.print-group-mode .print-seat-id{font-size:.68rem}.print-only.print-group-mode .print-seat-name{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.86rem}}@media print{body:has(#printArea.print-group-mode){height:auto !important;min-height:0 !important;overflow:visible !important;margin:0 !important}body:has(#printArea.print-group-mode)>:not(#printArea){display:none !important}#printArea.print-group-mode{position:static !important;width:auto !important;min-height:0 !important;padding:8mm !important;box-sizing:border-box}}@media print{.print-only.print-group-mode .print-seat-id{font-size:.58rem;line-height:1.05}.print-only.print-group-mode .print-seat-name{font-size:.72rem;line-height:1.05;letter-spacing:-.045em}}@media (max-width:900px){.app-header{position:relative;z-index:1000;overflow:visible}.header-help-wrap{position:static}html[data-theme]:not([data-theme="night"]) .help-menu.open{background:#fffef8 !important;backdrop-filter:none}html[data-theme="night"] .help-menu.open{background:#282e4b !important;backdrop-filter:none}.help-menu.open{position:fixed;top:var(--mobile-help-top,112px);left:8px;right:8px;width:auto;max-height:calc(100dvh - var(--mobile-help-top,112px) - 12px);overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;z-index:1800}#helpInfoModal{align-items:flex-start;padding:8px;overflow:hidden;z-index:1900}#helpInfoModal .help-info-content{display:flex;flex-direction:column;height:auto !important;max-height:calc(100dvh - 16px) !important;margin:0;overflow:hidden}#helpInfoModal .modal-header{flex:0 0 auto}#helpInfoModal .help-info-body{min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain}}.google-cal-head-btn{border-color:#cfd7f8 !important;background:#f7f9ff !important;color:#3658b8 !important}.google-cal-head-btn span,.google-mark{display:inline-grid;place-items:center;width:20px;height:20px;margin-right:3px;border-radius:50%;background:conic-gradient(from -45deg,#4285f4 0 25%,#34a853 0 50%,#fbbc05 0 75%,#ea4335 0);color:#fff;font-family:Arial,sans-serif;font-size:.73rem;font-weight:900}.google-sync-panel{border-color:#dbe2fa;background:linear-gradient(145deg,#fbfcff,#f5f8ff)}.google-sync-panel summary{display:flex;align-items:center;gap:5px}.google-sync-panel summary small{margin-left:auto;padding:3px 8px;border-radius:999px;background:#e8edff;color:#5268b0;font-size:.62rem}.google-sync-body{display:flex;flex-direction:column;gap:10px}.google-sync-intro{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px;border:1px solid #e0e5f5;border-radius:11px;background:#fff}.google-sync-intro>div{display:flex;flex-direction:column;gap:4px;min-width:0}.google-sync-intro strong{color:#303c66;font-size:.82rem}.google-sync-intro span:not(.google-sync-badge){color:#78829e;font-size:.68rem;line-height:1.4;word-break:keep-all}.google-sync-badge{flex:0 0 auto;padding:5px 9px;border-radius:999px;background:#eef0f6;color:#737b91;font-size:.65rem;font-weight:850}.google-sync-badge[data-state="ok"]{background:#e6f6ec;color:#1d7b4b}.google-sync-badge[data-state="busy"]{background:#fff4d9;color:#986c13}.google-sync-badge[data-state="error"]{background:#ffebed;color:#b34652}.google-sync-actions{display:flex;flex-wrap:wrap;gap:7px}.google-full-sync-btn{color:#405aa8;border-color:#cbd6fa;background:#f5f7ff}.google-connect-btn{border-color:#cbd6fa !important;background:#fff !important;color:#3154b5 !important}.google-sync-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.google-sync-options label{display:grid;grid-template-columns:auto 1fr;align-items:start;gap:2px 7px;min-width:0;padding:9px 10px;border:1px solid #e0e5f2;border-radius:10px;background:#fff;color:#4d5876;font-size:.72rem;font-weight:800;line-height:1.35;cursor:pointer}.google-sync-options input{grid-row:1/3;width:16px !important;height:16px;margin:1px 0 0 !important;accent-color:#4f6bd8}.google-sync-options small{grid-column:2;color:#8a92a8;font-size:.61rem;font-weight:650}.google-sync-privacy{margin:0;padding:10px 11px;border-left:4px solid #55a273;border-radius:8px;background:#eef8f1;color:#526b5b;font-size:.68rem;line-height:1.55;word-break:keep-all}.google-sync-privacy b{color:#267047}.google-dev-settings{border-top:1px dashed #dce1ee;padding-top:7px}.google-dev-settings>summary{padding:4px 0;color:#7b8297;font-size:.66rem;cursor:pointer}.google-dev-settings p{margin:5px 0 7px;color:#7d8497;font-size:.67rem;line-height:1.45}.google-dev-settings>div{display:flex;gap:6px}.google-dev-settings input{flex:1 1 auto;min-width:0;padding:8px 9px;border:1px solid #d8ddeb;border-radius:8px;font:inherit;font-size:.7rem}.google-dev-settings>small{display:block;margin-top:5px;color:#9298a9;font-size:.6rem}.google-last-sync{margin:0;color:#8a91a4;font-size:.63rem;text-align:right}html[data-theme] .google-sync-panel,html[data-theme] .google-sync-intro,html[data-theme] .google-sync-options label,html[data-theme] .google-dev-settings input{background:var(--tong-surface);color:var(--tong-text);border-color:var(--tong-border)}html[data-theme] .google-sync-intro strong{color:var(--tong-text)}html[data-theme] .google-sync-intro span:not(.google-sync-badge),html[data-theme] .google-dev-settings p,html[data-theme] .google-dev-settings>summary,html[data-theme] .google-dev-settings>small,html[data-theme] .google-last-sync{color:var(--tong-muted)}html[data-theme="night"] .google-sync-privacy{background:#20382f;color:#c2ddcf;border-left-color:#65b98a}html[data-theme="night"] .google-cal-head-btn,html[data-theme="night"] .google-connect-btn{background:#252d4d !important;color:#dbe4ff !important;border-color:#46547e !important}@media(max-width:760px){.google-sync-options{grid-template-columns:1fr}.google-sync-intro{align-items:flex-start}.google-sync-actions .btn{flex:1 1 140px}.google-dev-settings>div{align-items:stretch;flex-direction:column}.google-dev-settings .btn{width:100%}}@media(max-width:560px){.google-cal-head-btn{font-size:0 !important;min-width:38px}.google-cal-head-btn span{margin:0;font-size:.73rem}.google-sync-panel[open]{padding-left:9px;padding-right:9px}.google-sync-panel[open] summary{margin-left:-9px;margin-right:-9px}.google-sync-intro{flex-direction:column}.google-sync-badge{align-self:flex-start}.google-sync-actions{display:grid;grid-template-columns:1fr 1fr}.google-sync-actions .google-connect-btn,.google-sync-actions .google-full-sync-btn{grid-column:1/-1}}.google-dev-settings>div{align-items:stretch}.google-oauth-help-btn{flex:0 0 36px;width:36px;min-width:36px;border:1px solid #b7c8ef;border-radius:8px;background:#e9f0ff;color:#315bb0;font-family:inherit;font-size:.9rem;font-weight:950;cursor:pointer}.google-oauth-help-btn:hover{background:#dce7ff;color:#16479f}.google-oauth-help-btn:focus-visible{outline:2px solid #3e68c6;outline-offset:2px}.oauth-help-modal{z-index:2100}.oauth-help-content{display:flex;flex-direction:column;width:min(1120px,calc(100vw - 24px));max-width:1120px !important;height:min(94dvh,900px);max-height:min(94dvh,900px) !important;overflow:hidden}.oauth-help-head{flex:0 0 auto;align-items:flex-start}.oauth-help-head>div{min-width:0}.oauth-help-head h3{display:flex;align-items:center;gap:5px;margin:0}.oauth-help-head p{margin:5px 0 0;color:#7d8599;font-size:.7rem;line-height:1.45;word-break:keep-all}.oauth-help-body{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:15px 18px 20px}.oauth-help-topnote{display:flex;align-items:flex-start;gap:9px;margin-bottom:13px;padding:10px 12px;border:1px solid #d9e3f7;border-radius:10px;background:#f2f6ff;color:#5c6881;font-size:.71rem;line-height:1.5}.oauth-help-topnote b{flex:0 0 auto;color:#3158a5}.oauth-help-steps{display:flex;flex-direction:column;gap:14px;margin:0;padding:0;list-style:none}.oauth-help-steps>li{display:grid;grid-template-columns:minmax(260px,.72fr) minmax(430px,1.28fr);gap:14px;padding:14px;border:1px solid #e0e4ed;border-radius:14px;background:#fff;box-shadow:0 5px 16px rgba(39,50,80,.06)}.oauth-step-copy{display:flex;align-items:flex-start;gap:10px;min-width:0}.oauth-step-no{display:grid;place-items:center;flex:0 0 30px;width:30px;height:30px;border-radius:50%;background:linear-gradient(135deg,#4285f4,#5e62ce);color:#fff;font-size:.78rem;font-weight:900}.oauth-step-copy h4{margin:3px 0 7px;color:#35405d;font-size:.86rem}.oauth-step-copy p{margin:0 0 8px;color:#626c82;font-size:.71rem;line-height:1.55;word-break:keep-all}.oauth-step-copy em{color:#315cad;font-style:normal;font-weight:850}.oauth-step-copy a{display:inline-flex;padding:6px 9px;border-radius:7px;background:#edf3ff;color:#2858ad;text-decoration:none;font-size:.67rem;font-weight:850}.oauth-shot-link{display:block;align-self:start;overflow:hidden;border:1px solid #d9dee8;border-radius:10px;background:#edf0f5;box-shadow:0 6px 18px rgba(38,49,73,.1)}.oauth-shot-link img{display:block;width:100%;height:auto}.oauth-origin-list{display:flex;flex-direction:column;gap:5px;margin:7px 0}.oauth-origin-list code,.oauth-step-copy code{padding:3px 6px;border-radius:5px;background:#f0f2f7;color:#344463;font-family:Consolas,monospace;font-size:.67rem;overflow-wrap:anywhere}.oauth-step-copy .oauth-warning{padding:7px 8px;border-radius:7px;background:#fff5e3;color:#805c1c}.oauth-help-finish{margin-top:14px;padding:13px 15px;border:1px solid #ecd9bd;border-radius:12px;background:#fffaf1}.oauth-help-finish h4{margin:0 0 7px;color:#74511d;font-size:.82rem}.oauth-help-finish ul{margin:0;padding-left:19px;color:#71644f;font-size:.7rem;line-height:1.65}.oauth-help-footer{flex:0 0 auto;justify-content:space-between}.oauth-help-footer span{color:#8a91a3;font-size:.66rem}html[data-theme] .oauth-help-steps>li,html[data-theme] .oauth-help-content{background:var(--tong-surface);color:var(--tong-text);border-color:var(--tong-border)}html[data-theme] .oauth-step-copy h4{color:var(--tong-text)}html[data-theme] .oauth-step-copy p,html[data-theme] .oauth-help-head p{color:var(--tong-muted)}html[data-theme="night"] .oauth-help-topnote{background:#222d4c;border-color:#44517a;color:#c3cde6}html[data-theme="night"] .oauth-help-finish{background:#392f21;border-color:#665337;color:#ebd9bd}html[data-theme="night"] .oauth-help-finish h4,html[data-theme="night"] .oauth-help-finish ul{color:#ebd9bd}html[data-theme="night"] .google-oauth-help-btn{background:#293657;border-color:#50608d;color:#dce6ff}@media(max-width:820px){.oauth-help-content{width:calc(100vw - 12px);height:calc(100dvh - 12px);max-height:calc(100dvh - 12px)!important}.oauth-help-body{padding:11px}.oauth-help-steps>li{grid-template-columns:1fr;gap:10px;padding:11px}.oauth-shot-link{width:100%}.oauth-help-head p{font-size:.65rem}}@media(max-width:560px){.google-dev-settings>div{display:grid;grid-template-columns:minmax(0,1fr) 36px}.google-dev-settings>div .btn{grid-column:1/-1}.google-oauth-help-btn{grid-column:2;grid-row:1}.oauth-help-modal{padding:6px}.oauth-help-head{padding:11px 12px}.oauth-help-head h3{font-size:.88rem}.oauth-help-head .google-mark{flex:0 0 20px}.oauth-help-topnote{flex-direction:column;gap:3px}.oauth-help-footer{gap:8px}.oauth-help-footer span{max-width:65%}.oauth-help-footer .btn{flex:0 0 auto}}@media (max-width:900px){.mode-tabs #extraMenu.open{position:fixed;top:var(--mobile-extra-top,104px);left:8px;right:8px;width:auto;min-width:0;max-height:calc(100dvh - var(--mobile-extra-top,104px) - 12px);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;z-index:1800}.mode-tabs #extraMenu.open a,.mode-tabs #extraMenu.open button{min-width:0;min-height:44px}}@media (max-width:560px){.mode-tabs #extraMenu.open{grid-template-columns:1fr}}.teacher-screen-btn[aria-pressed="true"]{background:linear-gradient(135deg,#0f8d72,#176f9d) !important}main#mainArea.teacher-screen-view .desk{margin-top:14px !important;margin-bottom:0 !important}main#mainArea.teacher-screen-view .classroom{order:1}main#mainArea.teacher-screen-view .desk{order:2}@media (max-width:700px){.rail-menu.open{position:fixed;left:8px !important;right:8px !important;top:auto !important;bottom:12px;width:auto;min-width:0;max-height:calc(100dvh - 24px);overflow-y:auto;z-index:1850}#backupModal{align-items:stretch;padding:8px;overflow:hidden}#backupModal .modal-content{display:flex;flex-direction:column;width:100%;max-width:none;max-height:calc(100dvh - 16px) !important;height:auto !important;margin:0;overflow:hidden}#backupModal .modal-header{flex:0 0 auto}#backupModal .modal-body{min-height:0;padding:14px;overflow-y:auto;overscroll-behavior:contain}#backupModal .backup-section textarea{min-width:0;height:104px;resize:vertical}#backupModal .btn-row{display:grid;grid-template-columns:1fr 1fr}#backupModal .btn-row .btn,#backupModal #importBtn{width:100%;justify-content:center;min-height:44px}.record{align-items:flex-start;gap:8px}.record-info{min-width:0}.record-actions{flex-direction:column;flex:0 0 auto}}.sp-gender-option{display:flex;align-items:flex-start;gap:9px;padding:10px 11px;border:1px solid #dfe3f2;border-radius:10px;background:#f8f9ff;color:#30344f;cursor:pointer;line-height:1.25}.sp-gender-option:hover{border-color:#9ca6ed;background:#f2f4ff}.sp-gender-option input{width:18px;height:18px;margin:1px 0 0;flex:0 0 auto;accent-color:#5b61dc}.sp-gender-option span{display:flex;min-width:0;flex-direction:column;gap:3px}.sp-gender-option b{font-size:.88rem}.sp-gender-option small{color:#6f748b;font-size:.72rem;line-height:1.35;word-break:keep-all}html[data-theme] .sp-gender-option{background:var(--tong-surface-soft,#f8f9ff);border-color:var(--tong-border,#dfe3f2);color:var(--tong-text,#30344f)}html[data-theme] .sp-gender-option small{color:var(--tong-muted,#6f748b)}@media (max-width:700px){.sp-gender-option{min-height:48px;padding:11px 12px}.sp-gender-option b{font-size:.92rem}}.toast{display:flex;align-items:center;justify-content:center;gap:12px;max-width:min(92vw,620px)}.toast>span{min-width:0;overflow-wrap:anywhere}.toast-action{flex:0 0 auto;min-height:32px;padding:5px 10px;border:1px solid rgba(255,255,255,.5);border-radius:7px;background:#fff;color:#343a54;font-family:inherit;font-size:.76rem;font-weight:850;cursor:pointer}.toast-action:hover{background:#eef0ff}.cal-event-drag{cursor:grab !important;user-select:none;-webkit-user-select:none;touch-action:none}.cal-event-drag:active,.cal-event-drag.is-dragging{cursor:grabbing !important}.cal-event-drag.is-dragging{opacity:.36;filter:saturate(.65)}.cal-day.cal-drop-target,.cal-week-day.cal-drop-target{position:relative;z-index:4;background:#ebe9ff !important;box-shadow:inset 0 0 0 3px #6f56c8,0 0 0 2px rgba(111,86,200,.15)}.cal-day.cal-drop-target::after,.cal-week-day.cal-drop-target::after{content:'여기로 이동';position:absolute;left:50%;top:50%;z-index:7;transform:translate(-50%,-50%);padding:4px 7px;border-radius:999px;background:#5f49b5;color:#fff;font-size:.58rem;font-weight:850;white-space:nowrap;pointer-events:none;box-shadow:0 3px 10px rgba(62,45,135,.24)}.cal-drag-ghost{position:fixed;left:0;top:0;z-index:2400;max-width:190px;padding:7px 10px;border:1px solid rgba(255,255,255,.75);border-radius:9px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;font-size:.72rem;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;pointer-events:none;box-shadow:0 8px 24px rgba(45,37,105,.32);will-change:transform}body.calendar-event-dragging{user-select:none;-webkit-user-select:none}body.calendar-event-dragging #calMonthPane,body.calendar-event-dragging #calWeekPane{cursor:grabbing}@media(max-width:560px){.cal-day-events{gap:2px;margin-top:2px}.cal-day-events em.cal-event-drag{height:auto;min-height:18px;padding:2px 3px;font-size:.52rem;line-height:1.35}.cal-day-events em.cal-event-drag b{display:none}.cal-day.cal-drop-target::after{padding:3px 5px;font-size:.5rem}.toast{width:calc(100vw - 20px);box-sizing:border-box;padding:10px 12px;font-size:.78rem}}.student-attendance-quick{margin:10px 0 12px;padding:12px;border:1px solid #d8e4dc;border-radius:13px;background:linear-gradient(135deg,#f5fbf7,#f7f7ff)}.saq-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.saq-head>div{display:flex;min-width:0;flex-direction:column;gap:2px}.saq-head strong{color:#374454;font-size:.82rem}.saq-head small{color:#7d8794;font-size:.65rem;font-variant-numeric:tabular-nums}.saq-badge{flex:0 0 auto;min-width:52px;padding:5px 10px;border-radius:999px;background:#e4f5ea;color:#22733f;font-size:.7rem;font-weight:850;text-align:center}.saq-state-buttons{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;margin-top:10px}.saq-state-btn{min-width:0;min-height:44px;padding:8px 6px;border:1px solid #d6dce5;border-radius:9px;background:#fff;color:#4c5564;font-family:inherit;font-size:.75rem;font-weight:800;cursor:pointer;transition:transform .12s ease,border-color .12s ease,box-shadow .12s ease,background .12s ease}.saq-state-btn:hover{transform:translateY(-1px);border-color:#93a0b2}.saq-state-btn:focus-visible{outline:3px solid rgba(77,111,201,.24);outline-offset:2px}.saq-state-btn.active::after{content:" ✓"}.saq-state-btn[data-attendance-state="출석"].active,.saq-badge[data-state="출석"]{border-color:#7fc494;background:#e3f5e9;color:#21713d;box-shadow:0 0 0 2px rgba(60,153,91,.10)}.saq-state-btn[data-attendance-state="결석"].active,.saq-badge[data-state="결석"]{border-color:#e49aa1;background:#fde9eb;color:#a33944;box-shadow:0 0 0 2px rgba(193,68,81,.09)}.saq-state-btn[data-attendance-state="지각"].active,.saq-badge[data-state="지각"]{border-color:#e0bc68;background:#fff3d5;color:#916714;box-shadow:0 0 0 2px rgba(199,145,31,.09)}.saq-state-btn[data-attendance-state="조퇴"].active,.saq-badge[data-state="조퇴"]{border-color:#87b3df;background:#e9f3fd;color:#2e679f;box-shadow:0 0 0 2px rgba(51,116,180,.09)}.saq-state-btn[data-attendance-state="결과"].active,.saq-badge[data-state="결과"]{border-color:#b7a0df;background:#f0eafa;color:#67479d;box-shadow:0 0 0 2px rgba(105,72,163,.09)}.saq-details{display:grid;grid-template-columns:minmax(130px,.72fr) minmax(190px,1.28fr);gap:8px;margin-top:9px}.saq-details label{display:flex;min-width:0;flex-direction:column;gap:4px;color:#697281;font-size:.68rem;font-weight:800}.saq-details select,.saq-details input{width:100%;min-width:0;min-height:42px;box-sizing:border-box;padding:8px 10px;border:1px solid #d6dce5;border-radius:9px;background:#fff;color:#343b49;font:inherit}.saq-details select:disabled,.saq-details input:disabled{cursor:not-allowed;opacity:.52}.saq-note{margin:8px 0 0;color:#738078;font-size:.65rem;font-weight:700;text-align:right}html[data-theme] .student-attendance-quick{background:var(--tong-soft);color:var(--tong-text);border-color:var(--tong-border)}html[data-theme] .saq-head strong,html[data-theme] .saq-details label{color:var(--tong-text)}html[data-theme] .saq-head small,html[data-theme] .saq-note{color:var(--tong-muted)}html[data-theme] .saq-state-btn{background:var(--tong-surface);color:var(--tong-text);border-color:var(--tong-border)}@media(max-width:520px){.student-attendance-quick{padding:11px 10px}.saq-state-buttons{grid-template-columns:repeat(3,minmax(0,1fr))}.saq-details{grid-template-columns:1fr}.saq-note{text-align:left}}.praise-growth-legend{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin:9px 0 12px}.praise-growth-legend span{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:1px 6px;min-width:0;padding:7px 8px;border:1px solid #e5dfcf;border-radius:10px;background:#fffdf7;color:#555b66;font-size:.69rem;font-weight:800}.praise-growth-legend b{grid-row:1 / span 2;font-size:1.25rem;line-height:1}.praise-growth-legend small{color:#8b8f98;font-size:.58rem;font-weight:700}.praise-badge{display:inline-flex;align-items:center;gap:3px;min-width:34px;justify-content:center;border:1px solid rgba(116,88,22,.13);background:#fff5c6;color:#705311;font-size:.75rem;line-height:1}.praise-badge span{font-size:.92rem}.praise-badge b{min-width:12px;font-size:.58rem;font-variant-numeric:tabular-nums;text-align:center}.praise-badge.stage-egg{background:#f4efe5;color:#725f43}.praise-badge.stage-hatching{background:#fff0c9;color:#8a620b}.praise-badge.stage-chick{background:#fff7ad;color:#7c5a00}.praise-badge.stage-chicken{background:#ffe0cf;color:#9b4328}.pr-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pr-score{display:flex;align-items:center;gap:6px;min-width:96px;justify-content:flex-end}.pr-stage-icon{flex:0 0 auto;font-size:1.3rem;line-height:1}.pr-stage-text{display:flex;min-width:54px;flex-direction:column;color:#6e5b2a;font-size:.72rem;line-height:1.2}.pr-stage-text small{color:#9b885d;font-size:.6rem;font-weight:750;font-variant-numeric:tabular-nums}.praise-row.stage-egg .praise-name{background:#f8f6f1;border-color:#e5dfd3}.praise-row.stage-hatching .praise-name{background:#fffaf0;border-color:#ffe0a3}.praise-row.stage-chick .praise-name{background:#fffde4;border-color:#efe08b}.praise-row.stage-chicken .praise-name{background:#fff2ea;border-color:#f4c5ad}.praise-minus:disabled{cursor:not-allowed;opacity:.38}html[data-theme] .praise-growth-legend span,html[data-theme] .praise-name{color:var(--tong-text);border-color:var(--tong-border)}html[data-theme] .praise-growth-legend span{background:var(--tong-soft)}html[data-theme] .praise-growth-legend small,html[data-theme] .pr-stage-text small{color:var(--tong-muted)}@media(max-width:560px){.praise-growth-legend{grid-template-columns:repeat(2,minmax(0,1fr))}.pr-score{min-width:88px}}@media(prefers-reduced-motion:no-preference){.praise-badge,.pr-stage-icon{animation:praise-growth-pop .28s ease-out both}}@keyframes praise-growth-pop{from{transform:scale(.82);opacity:.5}to{transform:scale(1);opacity:1}}.sp-order-options{min-width:0;margin:0;padding:9px 10px 10px;border:1px solid #cfd8f6;border-radius:10px;background:#f4f7ff;color:#30344f}.sp-order-options legend{padding:0 5px;font-size:.78rem;font-weight:850}.sp-order-choices{display:grid;grid-template-columns:minmax(0,1fr);gap:6px}.sp-order-choices label{display:flex;min-width:0;min-height:44px;align-items:center;justify-content:flex-start;gap:8px;padding:9px 10px;border:1px solid #d8dff2;border-radius:8px;background:#fff;cursor:pointer;font-size:.78rem;font-weight:800;white-space:normal}.sp-order-choices label:has(input:checked){border-color:#536bd0;background:#e5eaff;color:#344ba7;box-shadow:0 0 0 1px rgba(83,107,208,.1)}.sp-order-choices input{width:18px;height:18px;margin:0;flex:0 0 auto;accent-color:#4f67c8}.sp-order-options>small{display:block;margin-top:7px;color:#6f748b;font-size:.65rem;line-height:1.35;word-break:keep-all}.sp-seat-option-inactive{opacity:.55;cursor:not-allowed}.sp-seat-option-inactive:hover{background:#f8f9ff;border-color:#dfe3f2}html[data-theme] .sp-order-options{background:var(--tong-soft);border-color:var(--tong-border);color:var(--tong-text)}html[data-theme] .sp-order-choices label{background:var(--tong-surface);border-color:var(--tong-border);color:var(--tong-text)}html[data-theme] .sp-order-choices label:has(input:checked){border-color:var(--tong-accent);color:var(--tong-accent)}html[data-theme] .sp-order-options>small{color:var(--tong-muted)}.sp-settings{display:flex;flex-direction:column;gap:9px;min-width:0}.sp-settings>*{flex-shrink:0}.seat-panel.sp-collapsed .sp-settings{display:none !important}#numberOrderSummary{font-size:.65rem;font-weight:750;color:var(--tong-muted,#6f748b)}.seat-panel .sp-head:focus-visible{outline:3px solid var(--tong-accent,#536bd0);outline-offset:2px}.seat-panel.sp-collapsed .sp-edit{display:none !important}.seat-panel .sp-menu.open{position:static;width:100%;margin-top:6px}.seat-panel .sp-menu button{white-space:normal;overflow-wrap:anywhere}.tools-card .ai-tile{grid-column:1 / -1;flex-direction:row;gap:8px;padding:10px 6px}.ai-backdrop{position:fixed;inset:0;background:rgba(20,24,44,0.28);opacity:0;pointer-events:none;transition:opacity 0.2s;z-index:1040}.ai-backdrop.show{opacity:1;pointer-events:auto}.ai-drawer{position:fixed;top:0;right:0;bottom:0;width:min(380px,100vw);display:flex;flex-direction:column;background:var(--tong-surface,#fff);color:var(--tong-text,#33384a);border-left:1px solid var(--tong-border,#e0e3ec);box-shadow:-8px 0 30px var(--tong-shadow,rgba(45,47,86,.16));transform:translateX(100%);visibility:hidden;transition:transform 0.24s cubic-bezier(.4,0,.2,1),visibility 0.24s;z-index:1050}.ai-drawer.show{transform:none;visibility:visible}.ai-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--tong-border,#e0e3ec);font-size:1rem}.ai-close{background:none;border:none;font-size:1.1rem;cursor:pointer;color:var(--tong-muted,#747b90);padding:4px 8px;border-radius:8px}.ai-close:hover{background:var(--tong-soft,#f8f9fa)}.ai-body{flex:1;overflow-y:auto;padding:14px 16px 24px;display:flex;flex-direction:column;gap:10px}.ai-intro,.ai-hint{font-size:0.78rem;color:var(--tong-muted,#747b90);line-height:1.5}.ai-label{font-size:0.8rem;font-weight:800;color:var(--tong-muted,#6b7189);margin-top:4px}.ai-seg{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;background:var(--tong-soft,#f1f3fa);padding:4px;border-radius:12px}.ai-seg button{border:none;background:none;border-radius:9px;padding:8px 0;font:inherit;font-size:0.85rem;font-weight:700;color:var(--tong-muted,#6b7189);cursor:pointer}.ai-seg button.active{background:var(--tong-surface,#fff);color:var(--tong-primary,#667eea);box-shadow:0 1px 4px var(--tong-shadow,rgba(45,47,86,.12))}.ai-tasks{display:flex;flex-wrap:wrap;gap:6px}.ai-tasks button{border:1px solid var(--tong-border,#e0e3ec);background:var(--tong-surface,#fff);color:var(--tong-text,#33384a);border-radius:999px;padding:6px 11px;font:inherit;font-size:0.8rem;cursor:pointer}.ai-tasks button.active{border-color:var(--tong-primary,#667eea);background:var(--tong-primary-soft,#eef0ff);color:var(--tong-primary,#667eea);font-weight:700}.ai-body textarea{width:100%;border:1px solid var(--tong-border,#e0e3ec);border-radius:12px;padding:10px 12px;font:inherit;font-size:0.9rem;resize:vertical;background:var(--tong-soft,#fafbff);color:var(--tong-text,#33384a)}.ai-check{display:flex;align-items:center;gap:6px;font-size:0.84rem;flex-wrap:wrap}.ai-check small{color:var(--tong-muted,#747b90);font-size:0.74rem}.ai-divider{height:1px;background:var(--tong-border,#e0e3ec);margin:6px 0}.ai-row{display:grid;grid-template-columns:1fr 1.4fr;gap:8px}.ai-row .btn{justify-content:center}@media print{.ai-drawer,.ai-backdrop{display:none !important}}.mode-tabs .ai-menu{min-width:200px}.mode-tabs .ai-menu small{color:var(--tong-muted,#8a90a6);font-size:0.72rem;margin-left:4px}.ai-guide-content{max-width:720px}.ai-guide-tabs{display:flex;gap:4px;padding:0 20px;border-bottom:1px solid var(--tong-border,#e0e3ec);overflow-x:auto}.ai-guide-tabs button{border:none;background:none;padding:10px 12px;font:inherit;font-size:0.88rem;font-weight:700;color:var(--tong-muted,#747b90);border-bottom:2px solid transparent;cursor:pointer;white-space:nowrap}.ai-guide-tabs button.active{color:var(--tong-primary,#667eea);border-bottom-color:var(--tong-primary,#667eea)}.ai-guide-body{max-height:min(62vh,560px);overflow-y:auto;line-height:1.65;font-size:0.9rem}.ai-guide-body h4{margin:16px 0 6px;font-size:0.95rem}.ai-guide-body h4:first-child{margin-top:0}.ai-guide-body ul,.ai-guide-body ol{padding-left:20px;display:flex;flex-direction:column;gap:4px}.ai-guide-prompt{background:var(--tong-soft,#f6f7fb);border-left:3px solid var(--tong-primary,#667eea);border-radius:8px;padding:8px 12px}.ai-guide-note{margin-top:14px;background:var(--tong-primary-soft,#eef0ff);border-radius:10px;padding:10px 12px;font-size:0.85rem}.ai-guide-links a{color:var(--tong-primary,#667eea);font-weight:700}.sp-fold,.sp-mini{display:none}@media (min-width:1081px){.seat-panel{transition:width 0.22s cubic-bezier(.4,0,.2,1)}.sp-fold{display:flex;align-items:center;gap:8px;width:100%;background:none;border:none;border-bottom:1px solid var(--tong-border,#eef0f6);padding:4px 6px 10px;font:inherit;font-size:0.82rem;font-weight:600;color:var(--tong-muted,#9aa0b4);cursor:pointer;white-space:nowrap}.sp-fold:hover{color:var(--tong-primary,#4a4fd0)}.sp-fold-ic{flex:0 0 22px;text-align:center}.seat-panel.sp-folded{width:52px;padding:8px 7px;overflow:hidden}.seat-panel.sp-folded>:not(.sp-fold):not(.sp-mini){display:none !important}.seat-panel.sp-folded .sp-fold{justify-content:center;padding:6px 0 10px}.seat-panel.sp-folded .sp-mini{display:flex;flex-direction:column;gap:6px}.sp-mini button{background:none;border:none;border-radius:10px;padding:9px 0;font-size:1.1rem;cursor:pointer}.sp-mini button:hover{background:var(--tong-soft,#f2f4fb)}}.ai-head-actions{display:flex;gap:2px}.ai-icon-btn{background:none;border:none;border-radius:8px;padding:5px 8px;font-size:1rem;cursor:pointer;color:var(--tong-muted,#747b90)}.ai-icon-btn:hover{background:var(--tong-soft,#f3f4f8)}.ai-settings,.ai-setup{padding:12px 16px;border-bottom:1px solid var(--tong-border,#e0e3ec);display:flex;flex-direction:column;gap:8px;background:var(--tong-soft,#f8f9fc)}.ai-settings[hidden],.ai-setup[hidden]{display:none}.ai-setup p{font-size:0.82rem;color:var(--tong-muted,#747b90)}.ai-key-row{display:flex;gap:6px}.ai-key-row input,.ai-settings select{flex:1;min-width:0;border:1px solid var(--tong-border,#e0e3ec);border-radius:10px;padding:8px 10px;font:inherit;font-size:0.85rem;background:var(--tong-surface,#fff);color:var(--tong-text,#33384a)}.ai-chat{flex:1;overflow-y:auto;padding:14px 16px;display:flex;flex-direction:column;gap:10px}.ai-msg{max-width:90%;padding:9px 12px;border-radius:14px;font-size:0.9rem;line-height:1.55;white-space:pre-wrap;word-break:break-word}.ai-msg-ai{align-self:flex-start;background:var(--tong-primary-soft,#eef0ff);color:var(--tong-text,#33384a);border-bottom-left-radius:4px}.ai-msg-me{align-self:flex-end;background:var(--tong-primary,#667eea);color:#fff;border-bottom-right-radius:4px}.ai-msg-ai.pending{color:var(--tong-muted,#747b90);animation:aiPulse 1.2s ease-in-out infinite}.ai-msg-ai.error{background:#fff1f0;color:#b42318}.ai-msg-tool{align-self:flex-start;padding:2px 4px;font-size:0.76rem;color:var(--tong-muted,#747b90)}@keyframes aiPulse{50%{opacity:0.45}}.ai-confirm{align-self:stretch;border:1px solid var(--tong-primary,#667eea);border-radius:12px;padding:10px 12px;background:var(--tong-surface,#fff);display:flex;flex-direction:column;gap:8px}.ai-confirm pre{margin:0;white-space:pre-wrap;font:inherit;font-size:0.86rem;background:var(--tong-soft,#f6f7fb);border-radius:8px;padding:8px 10px}.ai-confirm-row{display:flex;justify-content:flex-end;gap:6px;font-size:0.82rem;color:var(--tong-muted,#747b90)}.ai-confirm.done{border-color:#12b76a}.ai-confirm.cancelled{border-color:var(--tong-border,#e0e3ec);opacity:0.75}.ai-quick{display:flex;gap:6px;padding:8px 16px 0;overflow-x:auto}.ai-quick button{flex:0 0 auto;border:1px solid var(--tong-border,#e0e3ec);background:var(--tong-surface,#fff);color:var(--tong-text,#33384a);border-radius:999px;padding:5px 10px;font:inherit;font-size:0.78rem;cursor:pointer}.ai-input{display:flex;gap:6px;padding:10px 16px 14px;align-items:flex-end}.ai-input textarea{flex:1;resize:none;border:1px solid var(--tong-border,#e0e3ec);border-radius:12px;padding:9px 11px;font:inherit;font-size:0.9rem;background:var(--tong-soft,#fafbff);color:var(--tong-text,#33384a);max-height:140px}.ai-input .btn{flex:0 0 auto}.ai-input .btn.stop{background:#e8590c}.ai-guide-body code{background:var(--tong-soft,#f3f4f8);border-radius:4px;padding:1px 5px;font-size:0.85em}