:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;min-width:320px;min-height:100vh;width:100%}#root{width:100%;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--color-bg-primary),var(--color-bg-secondary));padding:var(--space-lg)}.login-container{width:100%;max-width:420px}.login-header{text-align:center;margin-bottom:var(--space-2xl)}.login-logo{font-size:2.5rem;font-weight:700;background:linear-gradient(135deg,var(--color-accent-light),var(--color-gold));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:var(--space-sm)}.login-subtitle{color:var(--color-text-secondary);font-size:.875rem}.login-form{background:var(--color-bg-card);padding:var(--space-xl);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);border:1px solid rgba(255,255,255,.05)}.login-form h2{text-align:center;margin-bottom:var(--space-xl)}.login-btn{width:100%;padding:var(--space-md);font-size:1rem;margin-top:var(--space-md)}.login-footer{text-align:center;margin-top:var(--space-lg);color:var(--color-text-secondary)}.error-message{background:#ef44441a;border:1px solid var(--color-error);color:var(--color-error);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);margin-bottom:var(--space-lg);text-align:center}@keyframes slideIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.login-form{animation:slideIn .4s ease-out}.navigation{position:sticky;top:0;z-index:100;background:linear-gradient(180deg,var(--color-bg-card) 0%,rgba(26,34,52,.95) 100%);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid rgba(255,255,255,.08);box-shadow:0 4px 20px #0000004d}.nav-container{max-width:1400px;margin:0 auto;padding:0 var(--space-xl);display:flex;align-items:center;justify-content:space-between;height:70px}.nav-left{flex:0 0 auto}.nav-logo{font-size:1.5rem;font-weight:700;background:linear-gradient(135deg,var(--color-accent-light),var(--color-gold));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;text-decoration:none;transition:opacity var(--transition-fast)}.nav-logo:hover{opacity:.8}.nav-center{display:flex;align-items:center;gap:var(--space-xs)}.nav-link{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-lg);border-radius:var(--radius-lg);color:var(--color-text-secondary);text-decoration:none;font-weight:500;font-size:.95rem;transition:all var(--transition-fast);position:relative}.nav-link:hover{color:var(--color-text-primary);background:#ffffff0d}.nav-link.active{color:var(--color-accent-light);background:#3b82f626}.nav-link.active:after{content:"";position:absolute;bottom:-1px;left:50%;transform:translate(-50%);width:30px;height:3px;background:linear-gradient(90deg,var(--color-accent),var(--color-accent-light));border-radius:3px}.nav-icon{font-size:1.1rem}.nav-right{display:flex;align-items:center;gap:var(--space-md)}.nav-user{display:flex;align-items:center;gap:var(--space-sm);color:var(--color-text-secondary);font-size:.875rem}.nav-badge{padding:2px 8px;font-size:.7rem;background:linear-gradient(135deg,var(--color-gold),var(--color-gold-light));color:#000;border-radius:var(--radius-full);font-weight:600}.nav-btn{padding:var(--space-xs) var(--space-md);border-radius:var(--radius-md);font-size:.875rem;font-weight:500;cursor:pointer;transition:all var(--transition-fast);border:none}.nav-btn-admin{background:var(--color-bg-elevated);color:var(--color-text-primary);border:1px solid var(--color-text-muted)}.nav-btn-admin:hover{border-color:var(--color-accent);background:var(--color-bg-card)}.nav-btn-logout{background:transparent;color:var(--color-text-muted)}.nav-btn-logout:hover{color:var(--color-error)}@media(max-width:1024px){.nav-container{padding:0 var(--space-md)}.nav-link{padding:var(--space-sm) var(--space-md);font-size:.875rem}.nav-user{display:none}}@media(max-width:768px){.nav-container{flex-wrap:wrap;height:auto;padding:var(--space-sm) var(--space-md);gap:var(--space-sm)}.nav-center{order:3;width:100%;justify-content:center;padding-top:var(--space-sm);border-top:1px solid rgba(255,255,255,.05)}.nav-link span:not(.nav-icon){display:none}.nav-link{padding:var(--space-sm)}}.dashboard-page{min-height:100vh;width:100%;background:radial-gradient(circle at top right,#1a237e,#000 60%);color:#fff;padding-top:70px}.dashboard-content{max-width:1200px;margin:0 auto;padding:60px 20px;display:flex;flex-direction:column;align-items:center;gap:60px;width:100%}.hero-section{text-align:center;animation:fadeInDown 1s ease-out}.hero-title{font-size:4rem;font-weight:800;margin:0 0 16px;background:linear-gradient(135deg,#fff,#64b5f6);-webkit-background-clip:text;-webkit-text-fill-color:transparent;letter-spacing:-.02em;text-shadow:0 10px 30px rgba(33,150,243,.3)}.hero-subtitle{font-size:1.25rem;color:#b0bec5;line-height:1.6;margin:0}.subtitle-ja{display:block;font-size:.9rem;color:#78909c;margin-top:8px;font-weight:400}.dashboard-grid{display:grid;grid-template-columns:minmax(300px,480px);gap:30px;width:100%;justify-content:center}.glass-panel{background:#ffffff0d;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.1);border-radius:24px;padding:32px;box-shadow:0 20px 40px #0006;transition:transform .3s ease,box-shadow .3s ease}.glass-panel:hover{transform:translateY(-5px);box-shadow:0 30px 60px #00000080;border-color:#fff3}.card-header{text-align:center;margin-bottom:32px}.card-header h2{font-size:1.5rem;margin:0 0 8px;color:#fff;font-weight:600}.card-header p{color:#90a4ae;font-size:.9rem;margin:0}.form-group{margin-bottom:24px}.form-label{display:block;margin-bottom:8px;color:#cfd8dc;font-size:.85rem;font-weight:500;text-transform:uppercase;letter-spacing:.05em}.select-wrapper{position:relative;width:100%}.modern-select{width:100%;background:#0000004d;border:1px solid rgba(255,255,255,.15);color:#fff;padding:14px 16px;border-radius:12px;font-size:1rem;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;transition:all .2s}.modern-select:focus{outline:none;border-color:#42a5f5;background:#00000080;box-shadow:0 0 0 3px #2196f333}.select-wrapper:after{content:"▼";position:absolute;right:16px;top:50%;transform:translateY(-50%);color:#90a4ae;font-size:.8rem;pointer-events:none}.mode-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.mode-card{background:#ffffff08;border:1px solid rgba(255,255,255,.1);border-radius:16px;padding:16px;cursor:pointer;text-align:left;transition:all .2s;display:flex;flex-direction:column;gap:12px;color:#fff;position:relative;overflow:hidden}.mode-card:hover{background:#ffffff14}.mode-card.active{background:#2196f326;border-color:#42a5f5}.mode-card.disabled{opacity:.5;cursor:not-allowed;background:#0003}.mode-icon{font-size:1.5rem}.mode-info{display:flex;flex-direction:column}.mode-name{font-weight:600;font-size:1rem}.mode-desc{font-size:.75rem;color:#90a4ae;margin-top:2px}.btn-start{width:100%;background:linear-gradient(135deg,#1e88e5,#1565c0);color:#fff;border:none;padding:16px;border-radius:12px;font-size:1.1rem;font-weight:600;cursor:pointer;transition:all .3s;box-shadow:0 8px 16px #1565c04d;display:flex;justify-content:center;align-items:center;gap:10px;margin-top:10px}.btn-start:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 12px 24px #1565c066;filter:brightness(1.1)}.btn-start:disabled{background:#37474f;color:#78909c;cursor:not-allowed;box-shadow:none}.btn-start.loading{opacity:.8}.instructor-panel{align-self:start}.instructor-panel h3{margin:0 0 20px;font-size:.9rem;text-transform:uppercase;letter-spacing:.1em;color:#90a4ae;text-align:center}.quick-actions{display:flex;gap:12px;justify-content:center}.action-btn{flex:1;background:#ffffff08;border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:12px;color:#eceff1;cursor:pointer;transition:all .2s;display:flex;flex-direction:column;align-items:center;gap:8px;border:none}.action-btn:hover{background:#ffffff1a;transform:translateY(-2px)}.action-icon{font-size:1.2rem}.action-label{font-size:.75rem;font-weight:500}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.loading-skeleton{width:100%;height:50px;background:#ffffff1a;border-radius:12px;display:flex;align-items:center;justify-content:center;color:#90a4ae;font-size:.9rem}.spinner{width:20px;height:20px;border:2px solid rgba(255,255,255,.3);border-radius:50%;border-top-color:#fff;animation:spin .8s linear infinite}@media(max-width:768px){.dashboard-content{padding:40px 16px;gap:40px}.hero-title{font-size:2.5rem}.dashboard-grid{grid-template-columns:1fr;max-width:480px}}.session-image-uploader{margin-top:var(--space-xl);padding-top:var(--space-xl);border-top:1px solid rgba(255,255,255,.1)}.session-image-uploader h3{margin-bottom:var(--space-sm);color:var(--color-text-primary)}.uploader-desc{color:var(--color-text-secondary);margin-bottom:var(--space-lg);font-size:.9rem}.upload-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-lg)}@media(max-width:768px){.upload-grid{grid-template-columns:1fr}}.stage-upload-card{background:var(--color-bg-secondary);padding:var(--space-lg);border-radius:var(--radius-lg)}.stage-upload-card h4{margin-bottom:var(--space-md);font-size:1rem;color:var(--color-text-secondary)}.upload-dropzone{border:2px dashed rgba(255,255,255,.2);border-radius:var(--radius-md);padding:var(--space-lg);text-align:center;cursor:pointer;transition:all .2s ease;background:#ffffff05;margin-bottom:var(--space-md)}.upload-dropzone:hover{border-color:var(--color-accent);background:#ffffff0d}.upload-dropzone.disabled{pointer-events:none;opacity:.5}.dropzone-content{display:flex;flex-direction:column;align-items:center;gap:var(--space-sm);color:var(--color-text-muted);font-size:.8rem}.upload-icon{font-size:1.5rem}.uploaded-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:var(--space-sm)}.gallery-item{position:relative}.gallery-item img{width:100%;height:80px;-o-object-fit:cover;object-fit:cover;border-radius:var(--radius-sm);cursor:pointer;transition:transform .2s;border:1px solid rgba(255,255,255,.1)}.gallery-item img:hover{transform:scale(1.05)}.gallery-item .delete-btn{position:absolute;top:-8px;right:-8px;width:24px;height:24px;border-radius:50%;background:#dc3545;color:#fff;border:2px solid #1a1a2e;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;opacity:1;transition:all .2s;z-index:10;box-shadow:0 2px 4px #0000004d}.gallery-item .delete-btn:hover{background:#ff4757;transform:scale(1.15);box-shadow:0 3px 8px #dc354580}.session-page{min-height:100vh;display:flex;flex-direction:column}.back-btn{background:none;border:none;color:var(--color-text-secondary);cursor:pointer;font-size:.875rem;transition:color var(--transition-fast)}.back-btn:hover{color:var(--color-text-primary)}.session-main{flex:1;padding:var(--space-xl);display:flex;flex-direction:column;max-width:900px;margin:0 auto;width:100%}.chat-section{flex:1;display:flex;flex-direction:column;gap:var(--space-lg)}.chat-container{flex:1;display:flex;flex-direction:column;background:var(--color-bg-secondary);border-radius:var(--radius-lg);overflow:hidden;min-height:300px}.chat-messages{flex:1;overflow-y:auto;padding:var(--space-lg)}.chat-message{margin-bottom:var(--space-md);padding:var(--space-md);border-radius:var(--radius-lg);max-width:85%;animation:fadeIn .3s ease-out}.chat-message.monitor{background:var(--color-bg-elevated);margin-right:auto;border-left:3px solid var(--color-accent)}.chat-message.viewer{background:var(--color-accent);margin-left:auto;border-right:3px solid var(--color-accent-dark)}.message-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-xs);font-size:.75rem}.message-role{font-weight:600}.message-time{color:var(--color-text-muted)}.message-content{line-height:1.6;white-space:pre-wrap}.chat-input-area{display:flex;gap:var(--space-sm);padding:var(--space-md);border-top:1px solid rgba(255,255,255,.1);background:var(--color-bg-card)}.chat-input{flex:1;resize:none}.send-btn{align-self:flex-end}.chat-buttons{display:flex;flex-direction:column;gap:var(--space-xs)}.next-btn{white-space:nowrap;font-weight:600}.reveal-section{text-align:center;animation:fadeIn .5s ease-out}.modal-overlay{position:fixed;inset:0;background:#000000b3;display:flex;justify-content:center;align-items:center;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:fadeIn .3s ease-out}.upload-modal{background:var(--color-bg-card);padding:var(--space-xl);border-radius:var(--radius-xl);width:90%;max-width:500px;box-shadow:var(--shadow-xl);border:1px solid rgba(255,255,255,.1)}.upload-modal h3{margin-bottom:var(--space-md);color:var(--color-text-primary);text-align:center}.upload-modal p{color:var(--color-text-secondary);margin-bottom:var(--space-lg);text-align:center;line-height:1.6}.file-drop-area{border:2px dashed rgba(255,255,255,.2);border-radius:var(--radius-lg);padding:var(--space-xl);text-align:center;cursor:pointer;transition:all .2s ease;margin-bottom:var(--space-lg);background:#ffffff05}.file-drop-area:hover{border-color:var(--color-accent);background:#ffffff0d}.file-preview{max-width:100%;max-height:200px;border-radius:var(--radius-md);margin-bottom:var(--space-md)}.upload-actions{display:flex;gap:var(--space-md);justify-content:flex-end}.btn-text{background:none;border:none;color:var(--color-text-secondary);cursor:pointer;padding:var(--space-sm) var(--space-md)}.btn-text:hover{color:var(--color-text-primary)}.timeline-section{background:var(--color-bg-card);padding:var(--space-xl);border-radius:var(--radius-xl);margin-bottom:var(--space-xl);text-align:left;border:1px solid rgba(255,255,255,.05)}.timeline-section h3{margin-bottom:var(--space-lg);color:var(--color-text-primary);border-bottom:1px solid rgba(255,255,255,.1);padding-bottom:var(--space-md)}.timeline-container{display:flex;flex-direction:column;gap:var(--space-sm);max-height:400px;overflow-y:auto;padding-right:var(--space-sm)}.timeline-item{display:flex;gap:var(--space-md);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);background:#ffffff05;align-items:flex-start}.timeline-item.monitor{border-left:2px solid var(--color-accent)}.timeline-item.viewer{border-left:2px solid var(--color-gold)}.timeline-time{font-family:var(--font-mono);font-size:.75rem;color:var(--color-text-muted);white-space:nowrap;margin-top:4px}.timeline-content{display:flex;gap:var(--space-sm);flex:1}.timeline-role{font-size:1.2rem}.timeline-text{line-height:1.5;color:var(--color-text-secondary);white-space:pre-wrap}.final-uploader-section{margin-top:var(--space-xl)}.ideogram-pad{background:var(--color-bg-card);border-radius:var(--radius-xl);padding:var(--space-lg)}.ideogram-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-md)}.ideogram-header h3{margin:0;font-size:1.25rem}.timer-display{font-family:var(--font-mono)}.timer{font-size:1.5rem;font-weight:700;color:var(--color-accent-light)}.timer.warning{color:var(--color-error);animation:pulse .3s infinite}.completed-badge{background:var(--color-success);color:#fff;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-full);font-size:.875rem}.ideogram-canvas{display:block;width:100%;height:200px;cursor:crosshair;touch-action:none}.ideogram-canvas.completed{cursor:default;opacity:.9}.canvas-hint small{color:#bbb}.reset-btn{margin-top:var(--space-md);width:100%}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.sketch-pad{background:var(--color-bg-card);border-radius:var(--radius-xl);padding:var(--space-lg)}.sketch-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-md)}.sketch-header h3{margin:0;font-size:1.25rem}.sketch-actions{display:flex;gap:var(--space-sm)}.btn-sm{padding:var(--space-xs) var(--space-sm);font-size:.75rem}.canvas-wrapper{position:relative;background:#fff;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-md)}.sketch-canvas{display:block;width:100%;height:300px;cursor:crosshair;touch-action:none}.canvas-hint{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;color:#999;pointer-events:none}.save-btn{margin-top:var(--space-md);width:100%}.sensory-form{background:var(--color-bg-card);border-radius:var(--radius-xl);padding:var(--space-lg)}.form-section{margin-bottom:var(--space-xl)}.form-section h3{font-size:1.1rem;margin-bottom:var(--space-md);color:var(--color-accent-light)}.input-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-md)}.vf-input{font-size:1.1rem}.aol-section{background:var(--color-bg-secondary);padding:var(--space-lg);border-radius:var(--radius-lg)}.aol-hint{font-size:.875rem;color:var(--color-text-secondary);margin-bottom:var(--space-md)}.aol-input-row{display:flex;gap:var(--space-sm)}.aol-input{flex:1}.aol-input.releasing{animation:aolRelease 1s forwards}@keyframes aolRelease{0%{opacity:1;transform:translateY(0)}50%{opacity:.5;transform:translateY(-10px)}to{opacity:0;transform:translateY(-30px) scale(.8)}}.aol-btn{white-space:nowrap}.aol-log{margin-top:var(--space-md);display:flex;flex-wrap:wrap;gap:var(--space-xs);align-items:center}.aol-log small{color:var(--color-text-muted);margin-right:var(--space-sm)}.aol-tag{background:#ef444433;color:var(--color-error);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);font-size:.75rem;text-decoration:line-through}@media(max-width:768px){.input-grid{grid-template-columns:repeat(2,1fr)}}.stage4-matrix{background:var(--color-bg-card);border-radius:var(--radius-xl);padding:var(--space-lg)}.matrix-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-lg)}.matrix-header h3{margin:0;font-size:1.25rem}.item-count{background:var(--color-bg-elevated);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-full);font-size:.875rem;color:var(--color-text-secondary)}.matrix-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:var(--space-sm);margin-bottom:var(--space-lg)}.matrix-column{background:var(--color-bg-secondary);border-radius:var(--radius-md);padding:var(--space-md);min-height:250px;display:flex;flex-direction:column;border-top:3px solid}.column-header{text-align:center;padding-bottom:var(--space-sm);border-bottom:1px solid rgba(255,255,255,.1);margin-bottom:var(--space-sm)}.column-label{font-size:1.5rem;font-weight:700;display:block}.column-name{font-size:.7rem;color:var(--color-text-muted)}.column-items{flex:1;display:flex;flex-direction:column;gap:var(--space-xs);overflow-y:auto;max-height:150px}.matrix-item{background:var(--color-bg-elevated);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);font-size:.8rem;cursor:pointer;transition:all var(--transition-fast);animation:fadeIn .2s ease-out}.matrix-item:hover{background:var(--color-bg-card);text-decoration:line-through;opacity:.7}.matrix-item.aol-item{background:#ef444433;text-decoration:line-through;color:var(--color-text-muted)}.column-input{display:flex;gap:var(--space-xs);margin-top:auto;padding-top:var(--space-sm)}.item-input{flex:1;padding:var(--space-xs);font-size:.75rem}.add-btn{width:28px;height:28px;border:none;border-radius:var(--radius-sm);color:#fff;font-size:1rem;font-weight:700;cursor:pointer;transition:transform var(--transition-fast)}.add-btn:hover:not(:disabled){transform:scale(1.1)}.add-btn:disabled{opacity:.5;cursor:not-allowed}.submit-btn{width:100%;padding:var(--space-md)}@media(max-width:1024px){.matrix-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:640px){.matrix-grid{grid-template-columns:repeat(2,1fr)}}.probing-timer{background:var(--color-bg-card);border-radius:var(--radius-lg);padding:var(--space-lg);border:2px solid transparent;transition:all var(--transition-normal)}.probing-timer.active{border-color:var(--color-accent);box-shadow:var(--shadow-glow)}.probing-timer.completed{border-color:var(--color-success)}.probing-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-md)}.probing-header h4{margin:0;font-size:1rem}.target-label{background:var(--color-bg-elevated);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);font-size:.75rem;color:var(--color-text-secondary)}.probing-instruction{color:var(--color-text-secondary);font-size:.875rem;text-align:center;line-height:1.6;margin-bottom:var(--space-md)}.start-btn{width:100%}.probing-countdown{text-align:center;padding:var(--space-lg)}.timer-circle{position:relative;width:120px;height:120px;margin:0 auto var(--space-md)}.timer-circle svg{width:100%;height:100%}.timer-circle circle{transition:stroke-dasharray .1s linear}.timer-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:2rem;font-weight:700;font-family:var(--font-mono);color:var(--color-accent-light)}.hold-instruction{color:var(--color-text-secondary);animation:pulse 1s infinite}.probing-input{animation:fadeIn .3s ease-out}.input-prompt{margin-bottom:var(--space-md);color:var(--color-text-secondary)}.probing-textarea{width:100%;margin-bottom:var(--space-md);resize:vertical}.input-actions{display:flex;gap:var(--space-sm);justify-content:flex-end}.probing-result{text-align:center}.result-badge{display:inline-block;background:#10b98133;color:var(--color-success);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-full);font-size:.875rem;margin-bottom:var(--space-md)}.recorded-result{background:var(--color-bg-secondary);padding:var(--space-md);border-radius:var(--radius-md);margin-bottom:var(--space-md);font-style:italic}.session-digital-page{min-height:100vh;display:flex;flex-direction:column}.session-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-md) var(--space-xl);background:var(--color-bg-card);border-bottom:1px solid rgba(255,255,255,.1)}.mode-badge{background:var(--color-bg-elevated);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-full);font-size:.75rem}.session-content{flex:1;display:grid;grid-template-columns:300px 1fr;gap:var(--space-lg);padding:var(--space-lg)}.monitor-panel{background:var(--color-bg-card);border-radius:var(--radius-xl);padding:var(--space-lg);height:-moz-fit-content;height:fit-content;position:sticky;top:var(--space-lg)}.monitor-panel h3{margin-bottom:var(--space-md);font-size:1rem}.monitor-messages{display:flex;flex-direction:column;gap:var(--space-md);max-height:400px;overflow-y:auto}.monitor-message{background:var(--color-bg-secondary);padding:var(--space-md);border-radius:var(--radius-md);border-left:3px solid var(--color-accent)}.monitor-message .message-content{font-size:.9rem;line-height:1.5}.monitor-message .message-time{font-size:.7rem;color:var(--color-text-muted);margin-top:var(--space-xs)}.stage-panel{background:var(--color-bg-secondary);border-radius:var(--radius-xl);padding:var(--space-xl)}.stage-content h2{margin-bottom:var(--space-sm)}.stage-instruction{color:var(--color-text-secondary);margin-bottom:var(--space-xl)}.stage-instruction strong{color:var(--color-accent-light)}.summary-stage .form-group{margin-bottom:var(--space-lg)}.summary-textarea,.impression-textarea{resize:vertical;min-height:100px}.complete-btn{width:100%;padding:var(--space-md);font-size:1.1rem}.reveal-section{text-align:center}.reveal-section h2{font-size:2rem;margin-bottom:var(--space-xl)}.reveal-content{background:var(--color-bg-card);padding:var(--space-xl);border-radius:var(--radius-xl);margin-bottom:var(--space-xl)}.reveal-image{max-width:100%;max-height:400px;border-radius:var(--radius-lg);margin-bottom:var(--space-lg);box-shadow:var(--shadow-lg)}.reveal-description{font-size:1.25rem;color:var(--color-gold)}.ai-report{background:var(--color-bg-card);padding:var(--space-xl);border-radius:var(--radius-xl);text-align:left}.ai-report h3{margin-bottom:var(--space-lg)}.report-content{white-space:pre-wrap;line-height:1.8;color:var(--color-text-secondary)}.session-loading,.session-error{display:flex;align-items:center;justify-content:center;min-height:100vh;font-size:1.25rem;color:var(--color-text-secondary)}@media(max-width:1024px){.session-content{grid-template-columns:1fr}.monitor-panel{position:static}}.stage1-content{max-width:700px;margin:0 auto}.stage1-header-form{background:var(--color-bg-card);border-radius:var(--radius-xl);padding:var(--space-xl)}.header-fields{display:grid;gap:var(--space-lg);margin-bottom:var(--space-xl)}.header-info{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-md)}.info-item{background:var(--color-bg-secondary);padding:var(--space-md);border-radius:var(--radius-md);text-align:center}.info-label{display:block;font-size:.75rem;color:var(--color-text-muted);margin-bottom:var(--space-xs)}.info-value{font-weight:600;font-size:1.1rem}.coordinate-display{font-family:var(--font-mono);color:var(--color-accent-light)}.start-stage1-btn{width:100%;padding:var(--space-md)}.ideogram-phase,.probing-phase{background:var(--color-bg-card);border-radius:var(--radius-xl);padding:var(--space-xl)}.round-indicator{display:inline-block;background:var(--color-accent);color:#fff;padding:var(--space-xs) var(--space-md);border-radius:var(--radius-full);font-size:.875rem;font-weight:600;margin-bottom:var(--space-md)}.ideogram-preview{background:var(--color-bg-secondary);border-radius:var(--radius-lg);padding:var(--space-lg);margin-bottom:var(--space-xl);min-height:100px;display:flex;align-items:center;justify-content:center}.probing-layout{display:grid;grid-template-columns:1fr;gap:var(--space-lg)}@media(min-width:768px){.probing-layout{grid-template-columns:320px 1fr;align-items:start}.probing-visual{position:sticky;top:20px;z-index:10;height:-moz-fit-content;height:fit-content}}.preview-label{color:var(--color-text-muted);font-size:.875rem;margin-bottom:var(--space-md)}.preview-canvas-container{background:#fff;border-radius:var(--radius-lg);overflow:hidden;padding:var(--space-xs);display:flex;justify-content:center;border:1px solid rgba(0,0,0,.1)}.impressions-form{display:flex;flex-direction:column;gap:var(--space-md);margin-bottom:var(--space-xl)}.impression-row{display:flex;flex-direction:column;gap:var(--space-sm)}.recorded-impression{background:#10b9811a;color:var(--color-success);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);font-size:.875rem}.next-btn{width:100%;padding:var(--space-md)}.stage1-progress{display:flex;gap:var(--space-xs);margin-top:var(--space-xl);padding-top:var(--space-lg);border-top:1px solid rgba(255,255,255,.1);flex-wrap:wrap;justify-content:center}.progress-step{background:var(--color-bg-elevated);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);font-size:.7rem;color:var(--color-text-muted);transition:all var(--transition-fast)}.progress-step.active{background:var(--color-accent);color:#fff}.progress-step.completed{background:#10b98133;color:var(--color-success)}.records-page{min-height:100vh;background:var(--color-bg-primary)}.records-main{padding:var(--space-xl) var(--space-lg)}.records-container{max-width:1200px;margin:0 auto}.records-header{margin-bottom:var(--space-xl)}.records-header h1{font-size:2rem;background:linear-gradient(135deg,var(--color-text-primary),var(--color-accent-light));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:var(--space-xs)}.records-subtitle{color:var(--color-text-secondary);margin:0}.records-filters{display:flex;gap:var(--space-sm);margin-bottom:var(--space-xl)}.filter-btn{padding:var(--space-sm) var(--space-lg);background:var(--color-bg-card);border:1px solid transparent;border-radius:var(--radius-full);color:var(--color-text-secondary);font-size:.875rem;cursor:pointer;transition:all var(--transition-fast)}.filter-btn:hover{background:var(--color-bg-elevated);color:var(--color-text-primary)}.filter-btn.active{background:var(--color-accent);color:#fff}.records-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-2xl);color:var(--color-text-secondary)}.loading-spinner{width:40px;height:40px;border:3px solid var(--color-bg-elevated);border-top-color:var(--color-accent);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:var(--space-md)}@keyframes spin{to{transform:rotate(360deg)}}.records-empty{text-align:center;padding:var(--space-2xl);background:var(--color-bg-card);border-radius:var(--radius-xl)}.empty-icon{font-size:3rem;display:block;margin-bottom:var(--space-md)}.records-empty h3{color:var(--color-text-primary);margin-bottom:var(--space-xs)}.records-empty p{color:var(--color-text-secondary);margin-bottom:var(--space-lg)}.records-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:var(--space-lg)}.record-card{background:var(--color-bg-card);border-radius:var(--radius-lg);padding:var(--space-lg);cursor:pointer;transition:all var(--transition-fast);border:1px solid transparent}.record-card:hover{background:var(--color-bg-elevated);border-color:var(--color-accent);transform:translateY(-2px);box-shadow:var(--shadow-lg)}.record-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-md)}.record-coordinate{font-family:var(--font-mono);font-size:1.25rem;font-weight:600;color:var(--color-accent-light)}.record-status{padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);font-size:.75rem;font-weight:600}.record-status.status-in_progress{background:#f59e0b33;color:var(--color-gold)}.record-status.status-completed{background:#10b98133;color:var(--color-success)}.record-status.status-abandoned{background:#ef444433;color:var(--color-error)}.record-body{display:flex;justify-content:space-between;align-items:flex-end}.record-info{display:flex;flex-direction:column;gap:var(--space-xs)}.record-stage{color:var(--color-text-primary);font-weight:500}.record-mode{color:var(--color-text-secondary);font-size:.875rem}.record-date{color:var(--color-text-muted);font-size:.75rem}@media(max-width:768px){.records-main{padding:var(--space-lg) var(--space-md)}.records-grid{grid-template-columns:1fr}}.videos-page{min-height:100vh;background:var(--color-bg-primary)}.videos-main{padding:var(--space-xl) var(--space-lg)}.videos-container{max-width:1200px;margin:0 auto}.videos-header{margin-bottom:var(--space-xl)}.videos-header h1{font-size:2rem;background:linear-gradient(135deg,var(--color-text-primary),var(--color-gold));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:var(--space-xs)}.videos-subtitle{color:var(--color-text-secondary);margin:0}.videos-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-2xl);color:var(--color-text-secondary)}.videos-empty{text-align:center;padding:var(--space-2xl);background:var(--color-bg-card);border-radius:var(--radius-xl)}.videos-empty .empty-icon{font-size:3rem;display:block;margin-bottom:var(--space-md)}.videos-empty h3{color:var(--color-text-primary);margin-bottom:var(--space-xs)}.videos-empty p{color:var(--color-text-secondary);margin:0}.video-player-section{background:var(--color-bg-card);border-radius:var(--radius-xl);overflow:hidden;margin-bottom:var(--space-xl);box-shadow:var(--shadow-lg)}.video-player-wrapper{position:relative;padding-bottom:56.25%;height:0;overflow:hidden}.video-player-wrapper iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:none}.video-player-info{padding:var(--space-lg)}.video-player-info h2{font-size:1.5rem;margin-bottom:var(--space-sm);color:var(--color-text-primary)}.video-description{color:var(--color-text-secondary);line-height:1.7;margin:0;white-space:pre-wrap}.videos-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--space-lg)}.video-card{background:var(--color-bg-card);border-radius:var(--radius-lg);overflow:hidden;cursor:pointer;transition:all var(--transition-fast);border:2px solid transparent}.video-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:var(--color-accent)}.video-card.active{border-color:var(--color-gold);box-shadow:0 0 20px #f59e0b4d}.video-thumbnail{position:relative;aspect-ratio:16 / 9;background:var(--color-bg-secondary);overflow:hidden}.video-thumbnail img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;transition:transform var(--transition-normal)}.video-card:hover .video-thumbnail img{transform:scale(1.05)}.video-placeholder{display:flex;align-items:center;justify-content:center;width:100%;height:100%;font-size:3rem;color:var(--color-text-muted)}.video-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#0000004d;opacity:0;transition:opacity var(--transition-fast)}.video-card:hover .video-overlay{opacity:1}.play-icon{width:60px;height:60px;display:flex;align-items:center;justify-content:center;background:#ffffffe6;border-radius:50%;font-size:1.5rem;color:var(--color-bg-primary);padding-left:5px}.video-info{padding:var(--space-md)}.video-title{font-size:1rem;font-weight:600;color:var(--color-text-primary);margin-bottom:var(--space-xs);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.video-desc-preview{font-size:.875rem;color:var(--color-text-muted);margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}@media(max-width:768px){.videos-main{padding:var(--space-lg) var(--space-md)}.videos-grid{grid-template-columns:1fr}}.instructor-page{min-height:100vh;display:flex;flex-direction:column}.instructor-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-md) var(--space-xl);background:linear-gradient(135deg,var(--color-bg-card),var(--color-bg-elevated));border-bottom:1px solid rgba(255,255,255,.1)}.header-left{display:flex;align-items:center;gap:var(--space-md)}.logo{font-size:1.5rem;font-weight:700;background:linear-gradient(135deg,var(--color-accent-light),var(--color-gold));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin:0}.badge{background:var(--color-gold);color:#000;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-full);font-size:.75rem;font-weight:600}.header-nav{display:flex;gap:var(--space-xs)}.nav-btn{background:transparent;border:none;color:var(--color-text-secondary);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.nav-btn:hover{color:var(--color-text-primary);background:var(--color-bg-secondary)}.header-right{display:flex;gap:var(--space-sm)}.instructor-main{flex:1;padding:var(--space-xl);max-width:1400px;margin:0 auto;width:100%}.stats-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:var(--space-md);margin-bottom:var(--space-xl)}.stat-card{background:var(--color-bg-card);padding:var(--space-lg);border-radius:var(--radius-lg);text-align:center;border:1px solid rgba(255,255,255,.05)}.stat-value{display:block;font-size:2.5rem;font-weight:700;color:var(--color-text-primary);margin-bottom:var(--space-xs)}.stat-label{font-size:.875rem;color:var(--color-text-secondary)}.stat-card.completed .stat-value{color:var(--color-success)}.stat-card.in-progress .stat-value{color:var(--color-gold)}.stat-card.rate .stat-value{color:var(--color-accent-light)}.recent-section h2{margin-bottom:var(--space-lg)}.sessions-list{display:flex;flex-direction:column}.session-row{display:grid;grid-template-columns:1fr 1fr 100px 1fr;gap:var(--space-md);padding:var(--space-md);border-bottom:1px solid rgba(255,255,255,.05);cursor:pointer;transition:background var(--transition-fast)}.session-row:hover{background:var(--color-bg-elevated)}.session-student{font-weight:500}.session-coord{font-family:var(--font-mono);color:var(--color-accent-light)}.session-status{text-align:center;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);font-size:.75rem}.session-status.status-completed{background:#10b98133;color:var(--color-success)}.session-status.status-in_progress{background:#f59e0b33;color:var(--color-gold)}.session-date{color:var(--color-text-muted);font-size:.875rem;text-align:right}.data-table{width:100%;border-collapse:collapse}.data-table th,.data-table td{padding:var(--space-md);text-align:left;border-bottom:1px solid rgba(255,255,255,.05)}.data-table th{color:var(--color-text-secondary);font-weight:500;font-size:.875rem}.data-table td.coord{font-family:var(--font-mono);color:var(--color-accent-light)}.status-badge{display:inline-block;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);font-size:.75rem}.add-target-btn{margin-bottom:var(--space-lg)}.targets-info{color:var(--color-text-secondary)}.targets-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-lg)}.targets-header h2{margin:0}.targets-actions{display:flex;gap:var(--space-sm)}.btn-ai{background:linear-gradient(135deg,#00d4ff,#7c3aed);color:#fff;border:none;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);cursor:pointer;font-weight:600;transition:all var(--transition-fast)}.btn-ai:hover{transform:translateY(-2px);box-shadow:0 4px 15px #00d4ff66}.create-target-form{background:var(--color-bg-elevated);padding:var(--space-lg);border-radius:var(--radius-md);margin-bottom:var(--space-lg)}.create-target-form .form-row{display:grid;grid-template-columns:2fr 1fr;gap:var(--space-md);margin-bottom:var(--space-md)}.create-target-form .form-group label{display:block;margin-bottom:var(--space-xs);color:var(--color-text-secondary);font-size:.875rem}.create-target-form .form-group input{width:100%;padding:var(--space-sm) var(--space-md);border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-sm);background:var(--color-bg-card);color:var(--color-text-primary);font-size:1rem}.create-target-form .form-group input:focus{outline:none;border-color:var(--color-accent)}.no-data{text-align:center;color:var(--color-text-muted);padding:var(--space-xl)}.loading{text-align:center;padding:var(--space-2xl);color:var(--color-text-secondary)}@media(max-width:1200px){.stats-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:768px){.stats-grid{grid-template-columns:repeat(2,1fr)}.header-nav{display:none}}.session-review-page{min-height:100vh;display:flex;flex-direction:column}.review-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-md) var(--space-xl);background:var(--color-bg-card);border-bottom:1px solid rgba(255,255,255,.1)}.back-btn{background:none;border:none;color:var(--color-text-secondary);cursor:pointer;font-size:.875rem}.session-info{display:flex;align-items:center;gap:var(--space-md)}.coordinate{font-family:var(--font-mono);font-size:1.5rem;font-weight:700;color:var(--color-accent-light)}.student-name{color:var(--color-text-secondary)}.status-badge{padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-full);font-size:.75rem}.status-badge.status-completed{background:#10b98133;color:var(--color-success)}.status-badge.status-in_progress{background:#f59e0b33;color:var(--color-gold)}.review-nav{display:flex;gap:var(--space-sm);padding:var(--space-md) var(--space-xl);background:var(--color-bg-secondary);border-bottom:1px solid rgba(255,255,255,.05)}.nav-btn{background:transparent;border:none;color:var(--color-text-secondary);padding:var(--space-sm) var(--space-lg);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.nav-btn:hover{color:var(--color-text-primary);background:var(--color-bg-card)}.nav-btn.active{color:var(--color-text-primary);background:var(--color-accent)}.review-main{flex:1;padding:var(--space-xl);max-width:1200px;margin:0 auto;width:100%}.info-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-lg)}.info-card{background:var(--color-bg-card);border-radius:var(--radius-xl);padding:var(--space-lg)}.info-card h3{margin-bottom:var(--space-md);font-size:1rem;color:var(--color-text-secondary)}.info-card dl{display:grid;grid-template-columns:120px 1fr;gap:var(--space-sm)}.info-card dt{color:var(--color-text-muted);font-size:.875rem}.info-card dd{margin:0}.coord{font-family:var(--font-mono);color:var(--color-accent-light)}.target-card{grid-column:span 2;background:linear-gradient(135deg,var(--color-bg-card),var(--color-bg-elevated));border:1px solid var(--color-gold)}.target-description{font-size:1.25rem;color:var(--color-gold);margin-bottom:var(--space-md)}.target-category{background:var(--color-bg-secondary);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);font-size:.875rem}.summary-card{grid-column:span 2}.final-impression{margin-top:var(--space-md);padding-top:var(--space-md);border-top:1px solid rgba(255,255,255,.1)}.stage-data-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-lg);margin-top:var(--space-md);padding:var(--space-lg);background:var(--color-bg-secondary);border-radius:var(--radius-lg)}.stage-card{background:var(--color-bg-card);border-radius:var(--radius-lg);padding:var(--space-lg)}.stage-card h3{margin-bottom:var(--space-md);font-size:1rem}.stage-card pre{background:var(--color-bg-secondary);padding:var(--space-md);border-radius:var(--radius-md);font-size:.75rem;overflow-x:auto;max-height:200px;overflow-y:auto}.no-data{color:var(--color-text-muted);font-style:italic}.aol-log-section{margin-top:var(--space-lg)}.aol-list{list-style:none;padding:0}.aol-item{padding:var(--space-sm);background:#ef44441a;border-radius:var(--radius-sm);margin-bottom:var(--space-xs);font-size:.875rem;text-decoration:line-through;color:var(--color-text-muted)}.chat-log{display:flex;flex-direction:column;gap:var(--space-md);max-height:600px;overflow-y:auto}.chat-msg{padding:var(--space-md);border-radius:var(--radius-lg);max-width:80%}.chat-msg.monitor{background:var(--color-bg-elevated);margin-right:auto;border-left:3px solid var(--color-accent)}.chat-msg.viewer{background:var(--color-accent);margin-left:auto;border-right:3px solid var(--color-accent-dark)}.msg-header{display:flex;gap:var(--space-md);margin-bottom:var(--space-xs);font-size:.75rem}.msg-role{font-weight:600}.msg-stage{color:var(--color-text-muted)}.msg-time{color:var(--color-text-muted);margin-left:auto}.msg-content{line-height:1.6;white-space:pre-wrap}.report-content pre{background:var(--color-bg-secondary);padding:var(--space-lg);border-radius:var(--radius-lg);white-space:pre-wrap;line-height:1.8}.review-loading,.review-error{display:flex;align-items:center;justify-content:center;min-height:100vh;font-size:1.25rem;color:var(--color-text-secondary)}.stage-image-preview{margin-bottom:var(--space-md);text-align:center}.stage-image-preview img{max-width:100%;max-height:300px;border-radius:var(--radius-md);cursor:pointer;transition:transform .2s ease;box-shadow:var(--shadow-md)}.stage-image-preview img:hover{transform:scale(1.02)}.google-map-btn{display:inline-flex;align-items:center;gap:8px;background-color:#4285f4;color:#fff;padding:8px 16px;border-radius:4px;border:none;cursor:pointer;font-size:.9rem;margin-top:10px;transition:background-color .2s;text-decoration:none;font-weight:500}.google-map-btn:hover{background-color:#3367d6}.target-edit-page{min-height:100vh;background:var(--background)}.target-edit-header{display:flex;align-items:center;gap:1rem;padding:1rem 2rem;background:var(--surface);border-bottom:1px solid var(--border)}.target-edit-header h1{flex:1;margin:0;font-size:1.5rem}.coordinate-badge{background:var(--primary);color:#fff;padding:.25rem .75rem;border-radius:4px;font-family:monospace}.back-btn{background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:.5rem}.back-btn:hover{color:var(--primary)}.target-edit-main{max-width:800px;margin:0 auto;padding:2rem}.error-message{background:#ef44441a;border:1px solid rgba(239,68,68,.3);color:#ef4444;padding:1rem;border-radius:8px;margin-bottom:1.5rem}.edit-section{background:var(--surface);border-radius:8px;padding:1.5rem;margin-bottom:1.5rem}.edit-section h2{margin:0 0 .5rem;font-size:1.25rem;color:var(--text)}.section-desc{color:var(--text-secondary);font-size:.9rem;margin:0 0 1rem}.form-group{margin-bottom:1rem}.form-group label{display:block;margin-bottom:.5rem;font-weight:500;color:var(--text)}.form-group input,.form-group textarea{width:100%;padding:.75rem;border:1px solid var(--border);border-radius:6px;background:var(--background);color:var(--text);font-size:1rem}.form-group textarea{resize:vertical}.shift-focus-list{margin-bottom:1rem}.shift-focus-item{display:flex;align-items:center;gap:.75rem;padding:.75rem;background:var(--background);border-radius:6px;margin-bottom:.5rem}.sf-number{width:28px;height:28px;background:var(--primary);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;flex-shrink:0}.sf-input{flex:1;padding:.5rem .75rem;border:1px solid var(--border);border-radius:4px;background:var(--background);color:var(--text);font-size:.95rem;min-width:0}.sf-actions button{width:28px;height:28px;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:4px;cursor:pointer;font-size:1rem}.sf-actions button:hover:not(:disabled){background:var(--primary);color:#fff;border-color:var(--primary)}.sf-actions .remove-btn:hover{background:#ef4444;border-color:#ef4444}.add-shift-focus{display:flex;gap:.5rem;margin-bottom:1rem}.add-shift-focus input{flex:1;padding:.75rem;border:1px solid var(--border);border-radius:6px;background:var(--background);color:var(--text)}.add-shift-focus button{padding:.75rem 1.5rem;background:var(--primary);color:#fff;border:none;border-radius:6px;cursor:pointer}.preset-buttons{display:flex;flex-direction:column;gap:.75rem;margin-top:1rem;padding:1rem;background:#0000001a;border-radius:6px}.preset-group{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.preset-group span{color:var(--text-secondary);font-size:.85rem;font-weight:700;min-width:70px}.preset-buttons button{padding:.5rem .75rem;background:var(--surface);border:1px solid var(--border);border-radius:4px;color:var(--text);cursor:pointer;font-size:.85rem}.preset-buttons button:hover{background:var(--primary);color:#fff;border-color:var(--primary)}.image-note{color:var(--success);font-size:.9rem;margin-top:.5rem}.image-preview{margin-bottom:1rem;border-radius:8px;overflow:hidden;border:1px solid var(--border)}.target-image-preview{max-width:100%;max-height:300px;display:block;-o-object-fit:contain;object-fit:contain;background:var(--background)}.action-buttons{display:flex;gap:1rem;justify-content:flex-end;margin-top:2rem}.action-buttons .btn{padding:.75rem 2rem;border-radius:6px;font-size:1rem;cursor:pointer}.action-buttons .btn-secondary{background:var(--surface);border:1px solid var(--border);color:var(--text)}.action-buttons .btn-primary{background:var(--primary);border:none;color:#fff}.action-buttons .btn:disabled{opacity:.5;cursor:not-allowed}.target-edit-loading,.target-edit-error{display:flex;align-items:center;justify-content:center;min-height:100vh;color:var(--text-secondary)}.event-generator-page{min-height:100vh;background:linear-gradient(135deg,#1a1a2e,#16213e);color:#e0e0e0}.event-generator-header{display:flex;align-items:center;gap:1rem;padding:1rem 2rem;background:#0000004d;border-bottom:1px solid rgba(255,255,255,.1)}.event-generator-header h1{font-size:1.5rem;margin:0;background:linear-gradient(135deg,#00d4ff,#7c3aed);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.back-btn{background:#ffffff1a;border:1px solid rgba(255,255,255,.2);color:#e0e0e0;padding:.5rem 1rem;border-radius:8px;cursor:pointer;transition:all .3s ease}.back-btn:hover{background:#fff3}.event-generator-main{max-width:1200px;margin:0 auto;padding:2rem 3rem;width:100%}.error-message{background:#dc262633;border:1px solid rgba(220,38,38,.5);color:#fca5a5;padding:1rem;border-radius:8px;margin-bottom:1.5rem}.generation-section,.preview-section,.shift-focus-section{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:1.5rem;margin-bottom:1.5rem}.generation-section h2,.preview-section h2,.shift-focus-section h2{font-size:1.2rem;margin:0 0 1rem;color:#00d4ff}.section-desc{color:#a0a0a0;font-size:.9rem;margin-bottom:1rem}.mode-selector{display:flex;gap:1rem;margin-bottom:1.5rem}.mode-selector label{flex:1;padding:1.25rem 1.5rem;background:#ffffff0d;border:2px solid rgba(255,255,255,.1);border-radius:12px;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;justify-content:center;gap:.75rem;font-size:1.1rem}.mode-selector label:hover{background:#ffffff1a}.mode-selector label.active{border-color:#00d4ff;background:#00d4ff1a}.mode-selector input[type=radio]{display:none}.manual-input label,.random-input label{display:block;margin-bottom:.5rem;color:#a0a0a0;font-size:.9rem}.input-row{display:flex;gap:1rem}.input-row input,.input-row select{flex:1;padding:.75rem 1rem;background:#0000004d;border:1px solid rgba(255,255,255,.2);border-radius:8px;color:#e0e0e0;font-size:1rem}.input-row input:focus,.input-row select:focus{outline:none;border-color:#00d4ff}.generate-btn{padding:.75rem 1.5rem;background:linear-gradient(135deg,#00d4ff,#7c3aed);border:none;border-radius:8px;color:#fff;font-weight:600;cursor:pointer;transition:all .3s ease;white-space:nowrap}.generate-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 15px #00d4ff66}.generate-btn:disabled{opacity:.5;cursor:not-allowed}.generate-btn.random{background:linear-gradient(135deg,#f59e0b,#ef4444)}.event-info-card{background:#0003;border-radius:12px;padding:1.5rem}.event-info-card h3{margin:0 0 1rem;font-size:1.3rem;color:#fff}.event-meta{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:1rem}.meta-item{background:#ffffff1a;padding:.5rem 1rem;border-radius:20px;font-size:.9rem}.meta-item.category{background:#7c3aed4d;color:#c4b5fd}.event-description{line-height:1.6;margin-bottom:1rem}.event-context{color:#a0a0a0;font-size:.95rem;line-height:1.5;padding:1rem;background:#ffffff0d;border-radius:8px;margin-bottom:.5rem}.event-sources{color:#666;font-size:.85rem}.shift-focus-list{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}.shift-focus-item{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:#0003;border-radius:8px}.sf-number{width:28px;height:28px;background:linear-gradient(135deg,#00d4ff,#7c3aed);border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:.9rem;flex-shrink:0}.sf-input{flex:1;padding:.5rem .75rem;background:#0000004d;border:1px solid rgba(255,255,255,.2);border-radius:6px;color:#e0e0e0;font-size:.95rem;min-width:0}.sf-input:focus{outline:none;border-color:#00d4ff}.sf-actions{display:flex;gap:.25rem}.sf-actions button{width:28px;height:28px;border:1px solid rgba(255,255,255,.2);background:#ffffff0d;color:#a0a0a0;border-radius:4px;cursor:pointer;transition:all .2s}.sf-actions button:hover:not(:disabled){background:#ffffff1a;color:#fff}.sf-actions button:disabled{opacity:.3;cursor:not-allowed}.sf-actions .remove-btn:hover{background:#dc26264d;border-color:#dc2626;color:#fca5a5}.add-shift-focus{display:flex;gap:.5rem}.add-shift-focus input{flex:1;padding:.75rem 1rem;background:#0000004d;border:1px solid rgba(255,255,255,.2);border-radius:8px;color:#e0e0e0}.add-shift-focus button{padding:.75rem 1.5rem;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:8px;color:#e0e0e0;cursor:pointer;transition:all .2s}.add-shift-focus button:hover{background:#fff3}.action-buttons{display:flex;justify-content:flex-end;gap:1rem;margin-top:2rem}.btn{padding:.75rem 2rem;border-radius:8px;font-weight:600;cursor:pointer;transition:all .3s ease}.btn-secondary{background:#ffffff1a;border:1px solid rgba(255,255,255,.2);color:#e0e0e0}.btn-secondary:hover{background:#fff3}.btn-primary{background:linear-gradient(135deg,#10b981,#059669);border:none;color:#fff}.btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 15px #10b98166}.btn-primary:disabled{opacity:.5;cursor:not-allowed}@media(max-width:768px){.event-generator-main{padding:1rem}.mode-selector,.input-row{flex-direction:column}.event-meta{flex-direction:column;gap:.5rem}.action-buttons{flex-direction:column}}.trend-page{min-height:100vh;display:flex;flex-direction:column;background:var(--color-bg-base)}.trend-main{flex:1;padding:var(--space-xl);display:flex;justify-content:center}.trend-container{max-width:900px;width:100%;margin:0 auto}.trend-header{text-align:center;margin-bottom:var(--space-xl)}.trend-header h1{font-size:2.5rem;margin-bottom:var(--space-md);background:linear-gradient(135deg,#fff,#a5b4fc);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.trend-subtitle{color:var(--color-text-secondary);font-size:1.1rem}.trend-content{background:var(--color-bg-elevated);padding:var(--space-xl);border-radius:var(--radius-xl);margin-bottom:var(--space-xl);box-shadow:var(--shadow-xl);border:1px solid rgba(255,255,255,.05)}.markdown-body{line-height:1.8;color:var(--color-text-primary)}.markdown-body h1{font-size:1.8rem;margin-bottom:1em}.markdown-body h2{font-size:1.5rem;margin-top:1.5em;margin-bottom:.8em;color:var(--color-accent-light);border-bottom:1px solid rgba(255,255,255,.1);padding-bottom:.5em}.markdown-body h3{font-size:1.2rem;margin-top:1.2em;margin-bottom:.6em;color:var(--color-text-primary)}.markdown-body ul,.markdown-body ol{margin-left:1.5em;margin-bottom:1em;color:var(--color-text-secondary)}.markdown-body li{margin-bottom:.5em}.markdown-body strong{color:var(--color-gold);font-weight:600}.trend-meta{margin-top:var(--space-xl);padding-top:var(--space-lg);border-top:1px solid rgba(255,255,255,.1);color:var(--color-text-muted);font-size:.9rem;text-align:right}.trend-actions{display:flex;justify-content:center;gap:var(--space-lg);margin-bottom:var(--space-xxl)}.regenerate-btn{min-width:200px}.loading-state,.empty-state{text-align:center;padding:var(--space-xl);color:var(--color-text-secondary);font-size:1.2rem}@layer properties{@supports ((-webkit-hyphens:none) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--shadow-md:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--shadow-xl:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::-moz-placeholder{opacity:1}::placeholder{opacity:1}@supports (not (-webkit-appearance:-apple-pay-button)) or (contain-intrinsic-size:1px){::-moz-placeholder{color:currentColor}::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::-moz-placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.static{position:static}.flex{display:flex}.grid{display:grid}.inline-flex{display:inline-flex}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.border{border-style:var(--tw-border-style);border-width:1px}}:root{--color-bg-primary:#0a0e17;--color-bg-secondary:#111827;--color-bg-card:#1a2234;--color-bg-elevated:#243044;--color-text-primary:#f8fafc;--color-text-secondary:#94a3b8;--color-text-muted:#64748b;--color-accent:#3b82f6;--color-accent-light:#60a5fa;--color-accent-dark:#2563eb;--color-gold:#f59e0b;--color-gold-light:#fbbf24;--color-success:#10b981;--color-warning:#f59e0b;--color-error:#ef4444;--space-xs:.25rem;--space-sm:.5rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2rem;--space-2xl:3rem;--radius-sm:.375rem;--radius-md:.5rem;--radius-lg:.75rem;--radius-xl:1rem;--radius-full:9999px;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 4px 6px #0006;--shadow-lg:0 10px 15px #00000080;--shadow-glow:0 0 20px #3b82f64d;--font-sans:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,sans-serif;--font-mono:"JetBrains Mono","Fira Code",monospace;--transition-fast:.15s ease;--transition-normal:.25s ease;--transition-slow:.4s ease}*{box-sizing:border-box;margin:0;padding:0}html{font-size:16px}body{font-family:var(--font-sans);background-color:var(--color-bg-primary);color:var(--color-text-primary);-webkit-font-smoothing:antialiased;min-height:100vh;line-height:1.6}#root{flex-direction:column;min-height:100vh;display:flex}h1,h2,h3,h4,h5,h6{margin-bottom:var(--space-md);font-weight:600;line-height:1.3}h1{font-size:2.5rem}h2{font-size:2rem}h3{font-size:1.5rem}h4{font-size:1.25rem}p{margin-bottom:var(--space-md)}a{color:var(--color-accent-light);transition:color var(--transition-fast);text-decoration:none}a:hover{color:var(--color-accent)}.btn{justify-content:center;align-items:center;gap:var(--space-sm);padding:var(--space-sm)var(--space-lg);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);border:none;font-size:1rem;font-weight:500;display:inline-flex}.btn-primary{background:linear-gradient(135deg,var(--color-accent),var(--color-accent-dark));color:#fff;box-shadow:var(--shadow-md)}.btn-primary:hover{box-shadow:var(--shadow-lg),var(--shadow-glow);transform:translateY(-2px)}.btn-secondary{background:var(--color-bg-elevated);color:var(--color-text-primary);border:1px solid var(--color-text-muted)}.btn-secondary:hover{background:var(--color-bg-card);border-color:var(--color-accent)}.btn-gold{background:linear-gradient(135deg,var(--color-gold),var(--color-gold-light));color:#000}.btn-danger{background:var(--color-error);color:#fff}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.form-group{margin-bottom:var(--space-lg)}.form-label{margin-bottom:var(--space-xs);color:var(--color-text-secondary);font-size:.875rem;font-weight:500;display:block}.form-input{width:100%;padding:var(--space-sm)var(--space-md);background:var(--color-bg-secondary);color:var(--color-text-primary);border:1px solid var(--color-text-muted);border-radius:var(--radius-md);transition:border-color var(--transition-fast),box-shadow var(--transition-fast);font-size:1rem}.form-input:focus{border-color:var(--color-accent);outline:none;box-shadow:0 0 0 3px #3b82f633}.form-input::-moz-placeholder{color:var(--color-text-muted)}.form-input::placeholder{color:var(--color-text-muted)}.card{background:var(--color-bg-card);border-radius:var(--radius-lg);padding:var(--space-lg);box-shadow:var(--shadow-md);border:1px solid #ffffff0d}.card-header{margin-bottom:var(--space-lg);padding-bottom:var(--space-md);border-bottom:1px solid #ffffff1a}.container{max-width:1200px;padding:var(--space-lg);margin:0 auto}.page{padding:var(--space-xl);flex:1}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{50%{opacity:.5}}@keyframes glow{0%,to{box-shadow:0 0 5px var(--color-accent)}50%{box-shadow:0 0 20px var(--color-accent),0 0 30px var(--color-accent-light)}}.animate-fade-in{animation:.3s ease-out fadeIn}.animate-pulse{animation:2s infinite pulse}.stage-indicator{gap:var(--space-sm);margin-bottom:var(--space-xl);display:flex}.stage-dot{border-radius:var(--radius-full);background:var(--color-bg-elevated);border:2px solid var(--color-text-muted);width:40px;height:40px;transition:all var(--transition-normal);justify-content:center;align-items:center;font-weight:600;display:flex}.stage-dot.active{background:var(--color-accent);border-color:var(--color-accent);animation:2s infinite glow}.stage-dot.completed{background:var(--color-success);border-color:var(--color-success)}.canvas-container{border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);background:#fff;overflow:hidden}.chat-container{background:var(--color-bg-secondary);border-radius:var(--radius-lg);flex-direction:column;height:400px;display:flex;overflow:hidden}.chat-messages{padding:var(--space-md);flex:1;overflow-y:auto}.chat-message{margin-bottom:var(--space-md);padding:var(--space-sm)var(--space-md);border-radius:var(--radius-md);max-width:80%}.chat-message.monitor{background:var(--color-bg-elevated);margin-right:auto}.chat-message.viewer{background:var(--color-accent);margin-left:auto}.chat-input-area{gap:var(--space-sm);padding:var(--space-md);border-top:1px solid #ffffff1a;display:flex}.matrix-grid{gap:var(--space-sm);grid-template-columns:repeat(6,1fr);display:grid}.matrix-column{background:var(--color-bg-secondary);border-radius:var(--radius-md);padding:var(--space-md);min-height:200px}.matrix-column-header{text-align:center;padding-bottom:var(--space-sm);border-bottom:1px solid var(--color-text-muted);margin-bottom:var(--space-sm);font-weight:600}.aol-release{animation:1s forwards fadeOut}@keyframes fadeOut{0%{opacity:1;transform:translateY(0)scale(1)}50%{opacity:.5;transform:translateY(-20px)scale(.9)}to{opacity:0;transform:translateY(-50px)scale(.5)}}@media(max-width:768px){html{font-size:14px}.container{padding:var(--space-md)}.matrix-grid{grid-template-columns:repeat(3,1fr)}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}
