*{margin:0;padding:0;box-sizing:border-box}:root{--primary-color: #1e3a5f;--primary-dark: #152a45;--primary-light: #2d4a6f;--primary-50: #f0f4f8;--primary-100: #e2e8f0;--primary-gradient: linear-gradient(135deg, #1e3a5f 0%, #2d4a6f 100%);--primary-gradient-subtle: rgba(30, 58, 95, .06);--accent-color: #3b82f6;--accent-light: #60a5fa;--success-color: #059669;--warning-color: #d97706;--error-color: #dc2626;--text-primary: #1f2937;--text-secondary: #4b5563;--text-tertiary: #6b7280;--text-quaternary: #9ca3af;--text-on-primary: #ffffff;--bg-primary: #ffffff;--bg-secondary: #fafafa;--bg-tertiary: #f5f5f5;--bg-elevated: #ffffff;--bg-overlay: rgba(31, 41, 55, .4);--border-color: #e5e7eb;--border-color-hover: #d1d5db;--border-color-focus: #1e3a5f;--border-subtle: #f3f4f6;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .04);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .06);--shadow-md: 0 2px 4px rgba(0, 0, 0, .06), 0 2px 6px rgba(0, 0, 0, .04);--shadow-lg: 0 4px 12px rgba(0, 0, 0, .06);--shadow-xl: 0 8px 24px rgba(0, 0, 0, .08);--shadow-2xl: 0 16px 48px rgba(0, 0, 0, .1);--shadow-inner: inset 0 1px 2px rgba(0, 0, 0, .04);--radius-xs: 4px;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-2xl: 24px;--radius-full: 9999px;--transition-fast: .18s cubic-bezier(.32, .72, 0, 1);--transition-base: .25s cubic-bezier(.32, .72, 0, 1);--transition-slow: .35s cubic-bezier(.32, .72, 0, 1);--transition-bounce: .4s cubic-bezier(.34, 1.56, .64, 1);--ease-out-expo: cubic-bezier(.16, 1, .3, 1);--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--spacing-2xl: 48px;--spacing-3xl: 64px}body{font-family:"Source Sans 3",-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--bg-secondary);min-height:100vh;min-height:100dvh;padding:var(--spacing-xl);padding-left:max(var(--spacing-xl),env(safe-area-inset-left));padding-right:max(var(--spacing-xl),env(safe-area-inset-right));padding-bottom:max(var(--spacing-xl),env(safe-area-inset-bottom));position:relative;color:var(--text-primary);font-size:16px;line-height:1.6;letter-spacing:-.01em}.background-pattern{display:none}.container{max-width:1200px;margin:0 auto;background:var(--bg-primary);border-radius:var(--radius-xl);overflow:hidden;position:relative;z-index:1;border:1px solid var(--border-color);box-shadow:var(--shadow-sm)}header{background:var(--bg-primary);color:var(--text-primary);padding:var(--spacing-lg) var(--spacing-2xl) var(--spacing-xl);padding-left:max(var(--spacing-2xl),env(safe-area-inset-left));padding-right:max(var(--spacing-2xl),env(safe-area-inset-right));padding-top:max(var(--spacing-lg),calc(env(safe-area-inset-top) + var(--spacing-md)));position:relative;border-bottom:1px solid var(--border-subtle)}header:before{display:none}.header-content{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-md);position:relative;z-index:1}.logo-section{display:flex;align-items:center;gap:var(--spacing-md);min-width:0}.logo-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:44px;height:44px;border-radius:var(--radius-md);background:linear-gradient(135deg,var(--primary-50) 0%,transparent 100%)}.logo-icon .logo-img{display:block;width:32px;height:32px;object-fit:contain}.logo-text{min-width:0}.logo-text h1{font-size:1.5rem;font-weight:600;letter-spacing:-.03em;line-height:1.2;color:var(--text-primary)}.tagline{display:inline-block;font-size:.6875rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--primary-color);opacity:.9;margin-top:4px}.header-description{font-size:.8125rem;color:var(--text-tertiary);line-height:1.65;position:relative;z-index:1;max-width:56ch;margin:0;letter-spacing:.01em}header h1{margin:0;color:var(--text-primary)}main{padding:var(--spacing-2xl) var(--spacing-2xl);padding-bottom:calc(var(--spacing-2xl) + 72px)}.tab-view{display:none}.tab-view.tab-view-active{display:block}.history-container.history-tab-view{display:block;margin-top:0;min-height:400px}.history-tab-view .history-close-btn{display:none}.bottom-tab-bar{display:flex;justify-content:space-around;align-items:center;position:fixed;bottom:0;left:0;right:0;padding:var(--spacing-sm) 0;padding-bottom:max(var(--spacing-sm),env(safe-area-inset-bottom));background:var(--bg-primary);border-top:1px solid var(--border-color);z-index:100;-webkit-tap-highlight-color:transparent}.bottom-tab-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-xs);min-width:64px;min-height:48px;padding:var(--spacing-xs) var(--spacing-sm);background:transparent;border:none;border-radius:var(--radius-md);color:var(--text-tertiary);font-size:.6875rem;font-weight:500;cursor:pointer;transition:color var(--transition-base),background var(--transition-base)}.bottom-tab-item:hover{color:var(--text-secondary);background:var(--bg-tertiary)}.bottom-tab-item.active{color:var(--primary-color)}.bottom-tab-icon{flex-shrink:0}.bottom-tab-label{white-space:nowrap}.section-header{margin-bottom:var(--spacing-xl)}.section-header h2{font-size:1.0625rem;font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-sm)}.section-description{font-size:.875rem;color:var(--text-secondary);line-height:1.6}.section-subtitle{font-size:1.25rem;font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-sm)}.section-hint{font-size:.9375rem;color:var(--text-tertiary);margin-bottom:var(--spacing-lg)}.upload-mode-selector{display:flex;gap:var(--spacing-xs);margin-bottom:var(--spacing-lg)}.mode-btn{flex:1;min-height:44px;padding:var(--spacing-sm) var(--spacing-md);background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-secondary);font-size:.875rem;font-weight:500;cursor:pointer;transition:border-color var(--transition-base),color var(--transition-base),background var(--transition-base);-webkit-tap-highlight-color:transparent}.mode-btn:hover{color:var(--text-primary);border-color:var(--border-color-hover);background:var(--bg-secondary)}.mode-btn.active{background:var(--primary-50);color:var(--primary-color);border-color:var(--primary-color)}.camera-mode-hint{font-size:.75rem;margin-left:var(--spacing-xs);opacity:.7}.analysis-mode-selector{margin-bottom:var(--spacing-lg)}.mode-selector-label{font-size:.875rem;font-weight:500;color:var(--text-secondary);margin-bottom:var(--spacing-sm)}.mode-selector-buttons{display:flex;gap:var(--spacing-xs);flex-wrap:wrap}.mode-selector-btn{flex:1;min-width:120px;min-height:44px;padding:var(--spacing-sm) var(--spacing-md);background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-secondary);font-size:.875rem;font-weight:500;cursor:pointer;transition:border-color var(--transition-base),color var(--transition-base),background var(--transition-base);-webkit-tap-highlight-color:transparent}.mode-selector-btn:hover{color:var(--text-primary);border-color:var(--border-color-hover)}.mode-selector-btn.active{background:var(--primary-50);color:var(--primary-color);border-color:var(--primary-color)}.camera-mode-warning{display:flex;align-items:flex-start;gap:var(--spacing-md);padding:var(--spacing-md);margin-top:var(--spacing-md);background:#d977060f;border-left:3px solid var(--warning-color);border-radius:var(--radius-sm)}.warning-icon{font-size:1.5rem;flex-shrink:0}.warning-text{flex:1}.warning-text strong{display:block;color:var(--warning-color);font-size:.9375rem;font-weight:600;margin-bottom:var(--spacing-xs)}.warning-text p{color:var(--text-secondary);font-size:.875rem;line-height:1.6;margin:0}.camera-section{margin-top:var(--spacing-lg)}.camera-preview-container{position:relative;width:100%;max-width:800px;margin:0 auto;background:var(--bg-secondary);border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--border-color);aspect-ratio:16 / 9}.camera-preview{width:100%;height:100%;display:block;background:#000;object-fit:cover}.composition-guide-canvas{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:2}.level-indicator{position:absolute;top:var(--spacing-md);left:var(--spacing-md);right:var(--spacing-md);z-index:10;background:#0f172ae6;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:var(--radius-md);padding:var(--spacing-sm) var(--spacing-md);max-width:calc(100% - var(--spacing-md) * 2);width:auto;box-sizing:border-box}.level-indicator-content{display:flex;align-items:center;gap:var(--spacing-sm)}.level-icon{font-size:1.25rem;flex-shrink:0}.level-text{color:var(--text-on-primary);font-size:.9375rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.level-indicator.level-ok .level-text{color:var(--success-color)}.level-indicator.level-warning .level-text{color:var(--warning-color)}.level-indicator.level-error .level-text{color:var(--error-color)}.distance-guide-container{position:absolute;bottom:80px;left:var(--spacing-md);right:var(--spacing-md);z-index:10;width:auto;max-width:400px;margin:0 auto;pointer-events:none;box-sizing:border-box}.distance-guide{background:#0f172ae6;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:var(--radius-md);padding:var(--spacing-sm) var(--spacing-md);width:100%;box-sizing:border-box}.distance-guide-content{display:flex;align-items:center;gap:var(--spacing-sm)}.distance-guide-icon{font-size:1.25rem;flex-shrink:0}.distance-guide-text{display:flex;flex-direction:column;gap:var(--spacing-xs);flex:1;min-width:0}.distance-guide-main{color:var(--text-on-primary);font-size:.9375rem;font-weight:500;line-height:1.4}.distance-guide-sub{color:var(--text-quaternary);font-size:.8125rem;line-height:1.4}.distance-status-good .distance-guide-main{color:var(--success-color)}.distance-status-too-close .distance-guide-main,.distance-status-too-far .distance-guide-main{color:var(--warning-color)}.camera-controls{position:absolute;bottom:var(--spacing-md);left:var(--spacing-md);right:var(--spacing-md);display:flex;align-items:center;gap:var(--spacing-md);z-index:10;width:auto;max-width:600px;margin:0 auto;justify-content:center;flex-wrap:wrap;box-sizing:border-box}.camera-control-btn{display:flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-md);background:#0f172ae6;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:none;border-radius:var(--radius-md);color:var(--text-on-primary);font-size:.9375rem;font-weight:500;cursor:pointer;transition:opacity var(--transition-fast);white-space:nowrap;flex-shrink:0}.camera-control-btn:hover{background:#0f172af2;opacity:.95}.camera-record-btn{position:relative;width:70px;height:70px;border-radius:50%;border:4px solid var(--text-on-primary);background:var(--error-color);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:opacity var(--transition-fast);flex-shrink:0}.camera-record-btn:hover{transform:scale(1.05)}.camera-record-btn.recording{background:var(--error-color);animation:pulse 1.5s ease-in-out infinite}.record-button-inner{width:50px;height:50px;border-radius:50%;background:var(--text-on-primary)}.record-button-inner.recording{width:30px;height:30px;border-radius:4px}.record-button-text{position:absolute;bottom:-30px;left:50%;transform:translate(-50%);color:var(--text-on-primary);font-size:.8125rem;font-weight:500;white-space:nowrap;text-shadow:0 2px 4px rgba(0,0,0,.5)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}.recording-timer{position:absolute;top:var(--spacing-md);right:var(--spacing-md);left:auto;z-index:10;background:var(--error-color);color:var(--text-on-primary);padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--radius-md);font-size:.9375rem;font-weight:600;animation:pulse 1.5s ease-in-out infinite;white-space:nowrap;box-sizing:border-box;max-width:calc(100% - var(--spacing-md) * 2)}@media (max-width: 768px){.camera-preview-container{max-width:100%;border-radius:0;margin:calc(-1 * var(--spacing-md)) calc(-1 * var(--spacing-md)) var(--spacing-lg);aspect-ratio:9 / 16}.camera-preview{object-fit:cover}.level-indicator{top:var(--spacing-sm);left:var(--spacing-sm);right:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);max-width:none;width:auto;background:#0f172af2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-sizing:border-box}.level-icon{font-size:1.25rem}.level-text{font-size:1rem;font-weight:600}.distance-guide-container{bottom:160px;left:var(--spacing-sm);right:var(--spacing-sm);width:auto;max-width:none;transform:none;margin:0;box-sizing:border-box}.distance-guide{padding:var(--spacing-sm) var(--spacing-md);background:#0f172af2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);width:100%;box-sizing:border-box}.distance-guide-icon{font-size:1.25rem}.distance-guide-main{font-size:1rem;font-weight:600;color:#fff}.distance-guide-sub{font-size:.875rem;color:#ffffffe6}.camera-controls{bottom:var(--spacing-md);left:var(--spacing-sm);right:var(--spacing-sm);width:auto;max-width:none;gap:var(--spacing-sm);flex-direction:row;justify-content:space-between;align-items:center;transform:none;margin:0;box-sizing:border-box}.camera-control-btn{padding:var(--spacing-sm) var(--spacing-md);font-size:.9375rem;gap:var(--spacing-xs);background:#0f172af2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);font-weight:500}.camera-control-btn span{display:inline}.camera-control-btn svg{width:20px;height:20px}.camera-record-btn{width:70px;height:70px;border-width:4px}.record-button-inner{width:50px;height:50px}.record-button-inner.recording{width:30px;height:30px}.record-button-text{bottom:-32px;font-size:.875rem;font-weight:600;color:#fff;text-shadow:0 2px 6px rgba(0,0,0,.8)}.recording-timer{top:var(--spacing-md);right:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md);font-size:1rem;font-weight:700;background:var(--error-color);color:#fff;text-shadow:0 2px 4px rgba(0,0,0,.5)}}@media (max-width: 375px){.level-indicator{padding:var(--spacing-xs) var(--spacing-sm)}.level-text{font-size:.9375rem}.distance-guide-container{bottom:180px}.distance-guide-main{font-size:.9375rem}.distance-guide-sub{font-size:.8125rem}.camera-controls{flex-direction:column;gap:var(--spacing-sm);bottom:var(--spacing-sm)}.camera-control-btn{width:100%;justify-content:center;padding:var(--spacing-sm);font-size:.9375rem}.camera-record-btn{order:-1;width:65px;height:65px}.record-button-text{font-size:.8125rem}.recording-timer{font-size:.9375rem}}.sample-gallery-modal{position:fixed;top:0;left:0;width:100%;height:100%;z-index:1000;display:flex;align-items:center;justify-content:center;animation:fadeIn .2s ease-out}.sample-gallery-modal-closing{animation:fadeOut .2s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.sample-gallery-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:#1f293780;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.sample-gallery-content{position:relative;background:var(--bg-elevated);border-radius:var(--radius-lg);max-width:600px;width:90%;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lg);border:1px solid var(--border-color);z-index:1001}.sample-gallery-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-lg);border-bottom:1px solid var(--border-color)}.sample-gallery-header h2{font-size:1.5rem;font-weight:700;color:var(--text-primary)}.sample-gallery-close{background:transparent;border:none;color:var(--text-secondary);cursor:pointer;padding:var(--spacing-xs);border-radius:var(--radius-sm);transition:all var(--transition-base)}.sample-gallery-close:hover{background:var(--bg-tertiary);color:var(--text-primary)}.sample-gallery-body{padding:var(--spacing-lg)}.sample-gallery-description{color:var(--text-secondary);font-size:.9375rem;margin-bottom:var(--spacing-lg)}.sample-gallery-tips{margin-bottom:var(--spacing-lg)}.sample-gallery-tips h3{font-size:1.125rem;font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-md)}.sample-gallery-tips ul{list-style:none;padding:0}.sample-gallery-tips li{padding:var(--spacing-sm) 0;padding-left:var(--spacing-lg);position:relative;color:var(--text-secondary);font-size:.9375rem;line-height:1.6}.sample-gallery-tips li:before{content:"✓";position:absolute;left:0;color:var(--success-color);font-weight:600}.sample-gallery-image{width:100%;border-radius:var(--radius-md);margin-top:var(--spacing-md)}.sample-gallery-footer{padding:var(--spacing-lg);border-top:1px solid var(--border-color);display:flex;justify-content:flex-end}.sample-gallery-close-btn{padding:var(--spacing-sm) var(--spacing-lg);background:var(--primary-color);color:var(--text-on-primary);border:none;border-radius:var(--radius-md);font-size:.9375rem;font-weight:500;cursor:pointer;transition:background var(--transition-fast)}.sample-gallery-close-btn:hover{background:var(--primary-dark)}.upload-section{margin-bottom:var(--spacing-2xl)}.upload-area{border:1px dashed var(--border-color);border-radius:var(--radius-lg);padding:var(--spacing-2xl) var(--spacing-xl);text-align:center;cursor:pointer;transition:border-color var(--transition-fast),background var(--transition-fast);background:var(--bg-primary)}.upload-area:hover{border-color:var(--border-color-hover);background:var(--bg-secondary)}.upload-area.dragover{border-color:var(--primary-color);background:var(--primary-50)}.upload-content{position:relative}.upload-icon-wrapper{margin-bottom:var(--spacing-md);display:inline-flex;padding:var(--spacing-md);color:var(--text-tertiary);transition:color var(--transition-fast)}.upload-area:hover .upload-icon-wrapper{color:var(--primary-color)}.upload-content svg{color:var(--primary-color);margin-bottom:20px}.upload-main-text{font-size:1rem;font-weight:500;color:var(--text-primary);margin:0 0 var(--spacing-xs)}.upload-hint{font-size:.875rem;color:var(--text-secondary);margin-bottom:var(--spacing-md)}.upload-specs{display:flex;gap:12px;justify-content:center;margin-top:20px}.spec-badge{padding:var(--spacing-xs) var(--spacing-sm);background:var(--bg-secondary);color:var(--text-tertiary);border-radius:var(--radius-sm);font-size:.75rem;font-weight:500}.video-preview{width:100%;border-radius:var(--radius-md);margin-top:var(--spacing-lg);border:1px solid var(--border-color)}.process-button{width:100%;min-height:52px;padding:var(--spacing-md) var(--spacing-lg);margin-top:var(--spacing-xl);background:var(--primary-color);color:var(--text-on-primary);border:none;border-radius:var(--radius-lg);font-size:.9375rem;font-weight:600;cursor:pointer;transition:background var(--transition-base),opacity var(--transition-base),transform var(--transition-base);position:relative;overflow:hidden;letter-spacing:-.01em;box-shadow:0 2px 8px #1e3a5f33;-webkit-tap-highlight-color:transparent}.process-button:hover:not(:disabled){background:var(--primary-dark)}.process-button:active:not(:disabled){transform:scale(.99)}.process-button:focus-visible{outline:2px solid var(--primary-color);outline-offset:2px}.process-button:disabled{opacity:.5;cursor:not-allowed}.button-content{display:inline-flex;align-items:center;gap:10px;position:relative;z-index:1}.status-section{margin-bottom:var(--spacing-2xl)}.status-text{display:flex;align-items:center;justify-content:center;gap:12px;text-align:center;font-size:1.1em;color:var(--text-primary);margin-bottom:16px;min-height:32px;font-weight:500;transition:all var(--transition-base)}.status-text.processing{color:var(--primary-color);font-weight:600;font-size:1.15em}.status-text svg.status-icon{animation:spin 2s linear infinite}.status-text.processing svg.status-icon{animation:spin 1s linear infinite;color:var(--primary-color)}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.progress-container{width:100%;height:8px;background:var(--bg-tertiary);border-radius:var(--radius-full);overflow:hidden;position:relative;box-shadow:var(--shadow-inner);transition:all var(--transition-base)}.progress-container.processing{height:10px;background:var(--bg-secondary)}.progress-bar{height:100%;background:var(--primary-color);width:0%;transition:width var(--transition-base);position:relative;overflow:hidden;border-radius:var(--radius-full)}.progress-bar.processing{animation:progressPulse 1.5s ease-in-out infinite}.progress-shine{position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.6),transparent);animation:shine 1.5s infinite}.progress-bar.processing .progress-shine{animation:shine .8s infinite;background:linear-gradient(90deg,transparent,rgba(255,255,255,.8),transparent)}@keyframes shine{0%{left:-100%}to{left:100%}}@keyframes progressPulse{0%,to{opacity:1}50%{opacity:.85}}.processing-indicator{display:flex;align-items:center;justify-content:center;gap:var(--spacing-md);margin-top:var(--spacing-md);padding:var(--spacing-md);background:var(--primary-50);border-radius:var(--radius-md);border:1px solid var(--border-color)}.processing-spinner{width:24px;height:24px;border:2px solid var(--primary-100);border-top-color:var(--primary-color);border-radius:var(--radius-full);animation:spin .8s linear infinite}.processing-text{font-size:1rem;font-weight:600;color:var(--primary-color);letter-spacing:.02em}.animation-section{display:flex;flex-direction:column;align-items:center;margin-bottom:var(--spacing-2xl)}.canvas-container{width:100%;max-width:900px;margin-bottom:30px;position:relative}.canvas-wrapper{position:relative;background:#000;border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--border-color)}#poseCanvas{width:100%;height:auto;display:block}.canvas-overlay{position:absolute;top:20px;right:20px;pointer-events:none}.overlay-badge{padding:var(--spacing-xs) var(--spacing-md);background:var(--primary-color);color:var(--text-on-primary);border-radius:var(--radius-full);font-size:.8125rem;font-weight:600;letter-spacing:.01em}.controls{display:flex;gap:15px;align-items:center;flex-wrap:wrap;justify-content:center;width:100%;max-width:900px}.control-button{display:inline-flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background:var(--primary-color);color:var(--text-on-primary);border:none;border-radius:var(--radius-sm);font-size:.875rem;font-weight:500;cursor:pointer;transition:background var(--transition-fast),opacity var(--transition-fast);letter-spacing:-.01em}.control-button:hover:not(:disabled){background:var(--primary-dark)}.control-button:focus-visible{outline:2px solid var(--primary-color);outline-offset:2px}.control-button.secondary{background:var(--bg-primary);color:var(--text-primary);border:1px solid var(--border-color)}.control-button.secondary:hover:not(:disabled){background:var(--bg-secondary);border-color:var(--border-color-hover)}.control-button:disabled{opacity:.5;cursor:not-allowed}.speed-control{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-lg);background:var(--bg-secondary);border-radius:var(--radius-md);border:1px solid var(--border-color)}.speed-control label{display:flex;align-items:center;gap:6px;font-weight:500;color:var(--text-secondary);font-size:.95em}.speed-control svg{color:var(--primary-color)}.speed-control input[type=range]{width:150px;height:6px;border-radius:3px;background:var(--bg-tertiary);outline:none;-webkit-appearance:none;cursor:pointer}.speed-control input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:16px;height:16px;border-radius:var(--radius-full);background:var(--primary-color);cursor:pointer;transition:opacity var(--transition-fast);border:2px solid white}.speed-control input[type=range]::-webkit-slider-thumb:hover{opacity:.9}.speed-control input[type=range]::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:var(--primary-color);cursor:pointer;border:2px solid white;transition:opacity var(--transition-fast)}.speed-control input[type=range]::-moz-range-thumb:hover{opacity:.9}.speed-value{font-weight:600;color:var(--primary-color);min-width:45px;font-size:.95em}.analysis-panel{width:100%;max-width:900px;margin-top:var(--spacing-xl);padding:var(--spacing-lg);background:var(--bg-primary);border-radius:var(--radius-md);border:1px solid var(--border-color)}.analysis-panel h3{font-size:1rem;font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-md)}.light-panel{width:100%}.light-panel-title{font-size:1rem;font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-lg)}.light-score-block{text-align:center;padding:var(--spacing-lg);border-radius:var(--radius-sm);margin-bottom:var(--spacing-lg)}.light-score-high{background:#05966914;color:var(--success-color)}.light-score-mid{background:#d9770614;color:var(--warning-color)}.light-score-low{background:#dc262614;color:var(--error-color)}.light-score-label{display:block;font-size:.8125rem;font-weight:500;margin-bottom:var(--spacing-xs);color:inherit;opacity:.9}.light-score-value{font-size:2rem;font-weight:700;line-height:1.2}.light-score-unit{font-size:.875rem;font-weight:500;margin-left:2px;opacity:.85}.light-stars-section{display:flex;flex-direction:column;gap:var(--spacing-sm);margin-bottom:var(--spacing-lg)}.light-star-item{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-sm)}.light-star-label{font-size:.875rem;font-weight:500;color:var(--text-primary)}.light-stars{font-size:1.125rem;color:var(--text-tertiary);letter-spacing:1px}.light-improvement-block{padding:var(--spacing-md);background:var(--bg-secondary);border-radius:var(--radius-sm);margin-bottom:var(--spacing-lg)}.light-improvement-title{font-size:.8125rem;font-weight:600;color:var(--text-secondary);margin-bottom:var(--spacing-xs)}.light-improvement-text{font-size:.9375rem;color:var(--text-primary);line-height:1.5;margin:0}.light-upsell{padding:var(--spacing-md);background:var(--bg-secondary);border-radius:var(--radius-sm);text-align:center}.light-upsell-text{font-size:.875rem;font-weight:500;color:var(--text-primary);margin:0 0 var(--spacing-xs) 0}.light-upsell-detail{font-size:.8125rem;color:var(--text-secondary);margin:0 0 var(--spacing-sm) 0}.light-upsell-btn{padding:var(--spacing-sm) var(--spacing-md);background:var(--primary-color);color:var(--text-on-primary);border:none;border-radius:var(--radius-sm);font-size:.875rem;font-weight:500;cursor:pointer;transition:opacity var(--transition-fast)}.light-upsell-btn:hover{opacity:.9}.shooting-conditions-banner{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-lg);margin-bottom:var(--spacing-md);border-radius:var(--radius-sm);font-size:.9rem}.shooting-conditions-banner.shooting-confidence-high{background:#0596690f;border-left:3px solid var(--success-color)}.shooting-conditions-banner.shooting-confidence-medium{background:#d977060f;border-left:3px solid var(--warning-color)}.shooting-conditions-banner.shooting-confidence-low{background:#dc26260f;border-left:3px solid var(--error-color)}.shooting-conditions-icon{flex-shrink:0}.shooting-conditions-text{flex:1}.analysis-disclaimer{display:flex;align-items:flex-start;gap:var(--spacing-sm);margin:var(--spacing-md) 0 var(--spacing-lg);padding:var(--spacing-md) var(--spacing-lg);background:#1e3a5f0f;border-left:3px solid var(--primary-color);border-radius:var(--radius-sm)}.disclaimer-icon{font-size:1.125rem;flex-shrink:0}.disclaimer-text{font-size:.875rem;color:var(--text-secondary);line-height:1.6;margin:0}.report-disclaimer{margin-bottom:var(--spacing-lg);padding:var(--spacing-md) var(--spacing-lg);background:#1e3a5f0f;border-left:3px solid var(--primary-color);border-radius:var(--radius-sm)}.report-disclaimer p{font-size:.875rem;color:var(--text-secondary);line-height:1.6;margin:0}.analysis-note{margin-bottom:var(--spacing-lg);padding:var(--spacing-md);background:#d977060f;border-left:3px solid var(--warning-color);border-radius:var(--radius-sm)}.note-text{font-size:.9375rem;color:var(--text-secondary);margin:0;line-height:1.6;font-weight:500}.unsuitable-video-message{display:flex;flex-direction:column;gap:var(--spacing-md);padding:var(--spacing-lg);background:#d977060f;border-left:3px solid var(--warning-color);border-radius:var(--radius-md)}.unsuitable-video-icon{font-size:2rem;line-height:1}.unsuitable-video-title{font-size:1.125rem;font-weight:600;color:var(--warning-color);margin:0}.unsuitable-video-reason{font-size:.9375rem;color:var(--text-secondary);line-height:1.6;margin:0}.unsuitable-video-action{font-size:.9375rem;font-weight:600;color:var(--text-primary);margin:0}.unsuitable-video-tips{margin:0;padding-left:1.25rem;font-size:.875rem;color:var(--text-secondary);line-height:1.7}.unsuitable-video-tips li{margin-bottom:var(--spacing-xs)}.unsuitable-video-tips li:last-child{margin-bottom:0}.analysis-item{display:flex;justify-content:space-between;align-items:flex-start;padding:16px 0;border-bottom:1px solid var(--border-color);flex-wrap:wrap}.analysis-item:last-child{border-bottom:none}.analysis-style-item{flex-direction:column;align-items:flex-start}.style-header{display:flex;justify-content:space-between;align-items:center;width:100%;margin-bottom:12px}.style-description{font-size:.95em;color:var(--text-secondary);line-height:1.6;padding-left:0;margin-top:8px;width:100%}.analysis-score-item{flex-direction:column;align-items:flex-start;padding:16px 0}.score-header{display:flex;justify-content:space-between;align-items:center;width:100%;margin-bottom:12px}.score-detail{width:100%;padding-left:0;margin-top:8px}.score-reason{font-size:.95em;color:var(--text-primary);line-height:1.7;margin-bottom:10px;padding:12px;background:#fff;border-radius:var(--radius-sm);border:1px solid var(--border-color)}.score-hint{font-size:.95em;color:var(--primary-color);line-height:1.7;padding:var(--spacing-md);background:var(--primary-50);border-left:3px solid var(--primary-color);border-radius:var(--radius-sm);font-weight:500}.analysis-label{font-size:1em;color:var(--text-secondary);font-weight:500;flex:0 0 auto}.analysis-value{font-size:1.1em;color:var(--text-primary);font-weight:700;flex:0 0 auto;margin-left:auto;margin-right:8px}.analysis-hint{font-size:.9em;color:var(--text-tertiary);font-weight:400;font-style:italic;flex:0 0 100%;margin-top:6px;margin-left:0}.analysis-messages{padding:16px 0;border-top:2px solid var(--border-color);margin-top:16px}.messages-list{list-style:none;padding:0;margin:0}.message-item{padding:12px 0 12px 24px;position:relative;font-size:.95em;color:var(--text-primary);line-height:1.7}.message-item:before{content:"•";position:absolute;left:0;color:var(--primary-color);font-weight:700;font-size:1.3em}.message-item:not(:last-child){border-bottom:1px solid var(--border-color)}.history-toggle-btn{display:inline-flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background:var(--bg-primary);color:var(--text-secondary);border:1px solid var(--border-color);border-radius:var(--radius-sm);font-size:.875rem;font-weight:500;cursor:pointer;transition:border-color var(--transition-fast),color var(--transition-fast),background var(--transition-fast);position:relative;z-index:1;letter-spacing:-.01em}.history-toggle-btn:hover{background:var(--bg-secondary);color:var(--text-primary);border-color:var(--border-color-hover)}.history-toggle-btn:focus-visible{outline:2px solid var(--primary-color);outline-offset:2px}header{position:relative}.history-container{margin-top:var(--spacing-2xl);padding:var(--spacing-xl);background:var(--bg-secondary);border-radius:var(--radius-lg);border:1px solid var(--border-color)}.history-panel{width:100%}.history-header-section{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-xl);padding-bottom:var(--spacing-lg);border-bottom:1px solid var(--border-color)}.history-header-section h2{font-size:1.8em;color:var(--text-primary);margin:0;font-weight:700}.history-actions{display:flex;gap:12px;align-items:center}.history-clear-btn,.history-close-btn{padding:10px 20px;border:none;border-radius:var(--radius-sm);font-size:.95em;font-weight:500;cursor:pointer;transition:all var(--transition-base)}.history-clear-btn{background:var(--error-color);color:#fff}.history-clear-btn:hover{opacity:.9}.history-close-btn{background:var(--bg-tertiary);color:var(--text-primary);font-size:1.3em;padding:8px 14px;line-height:1}.history-close-btn:hover{background:var(--border-color-hover)}.history-content-section{display:flex;flex-direction:column;gap:30px}.history-chart-section,.history-list-section{background:#fff;padding:30px;border-radius:var(--radius-md);box-shadow:var(--shadow-sm);border:1px solid var(--border-color)}.history-chart-section h3,.history-list-section h3{font-size:1.4em;color:var(--text-primary);margin-bottom:20px;padding-bottom:12px;border-bottom:2px solid var(--border-color);font-weight:600}.history-chart{width:100%;height:auto;max-width:100%}.chart-empty{text-align:center;color:var(--text-tertiary);padding:60px;font-style:italic}.chart-label{font-size:.9em;fill:var(--text-secondary);font-weight:500}.chart-tick{font-size:.85em;fill:var(--text-tertiary)}.chart-line{stroke-width:2;opacity:.8}.chart-point{cursor:pointer;transition:r .2s ease}.chart-point:hover{r:6}.chart-legend{font-size:.85em;fill:var(--text-primary)}.history-list{display:flex;flex-direction:column;gap:20px}.history-item{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:20px;transition:all var(--transition-base)}.history-item:hover{border-color:var(--border-color-hover);background:var(--bg-primary)}.history-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.history-date{display:flex;flex-direction:column;gap:4px}.history-date-text{font-size:1.1em;font-weight:600;color:var(--text-primary)}.history-time-text{font-size:.9em;color:var(--text-secondary)}.history-delete-btn{background:var(--error-color);color:#fff;border:none;border-radius:50%;width:32px;height:32px;font-size:1.2em;line-height:1;cursor:pointer;transition:opacity var(--transition-fast);display:flex;align-items:center;justify-content:center}.history-delete-btn:hover{opacity:.9}.history-content{display:flex;flex-direction:column;gap:12px}.history-style{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.history-label{font-weight:500;color:var(--text-secondary)}.history-value{font-weight:600;color:var(--text-primary);font-size:1.1em}.history-confidence{font-size:.95em;color:var(--primary-color);font-weight:500}.history-scores{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-top:12px;padding:16px;background:#fff;border-radius:var(--radius-sm);border:1px solid var(--border-color)}.history-score-item{display:flex;justify-content:space-between;align-items:center;padding:8px 0}.score-label{font-size:.95em;color:var(--text-secondary)}.score-value{font-weight:600;color:var(--text-primary);font-size:1.05em}.history-improvement{margin-top:var(--spacing-md);padding:var(--spacing-md);background:var(--primary-50);border-left:3px solid var(--primary-color);border-radius:var(--radius-sm)}.history-improvement-text{font-size:1em;color:var(--text-primary);line-height:1.7;margin-top:8px;display:block}.history-empty{text-align:center;padding:80px 20px;color:var(--text-tertiary)}.history-empty p{margin:12px 0;font-size:1.05em}.shooting-tips-details{margin-top:var(--spacing-md);padding:var(--spacing-sm) 0}.shooting-tips-summary{cursor:pointer;font-size:.95em;color:var(--text-secondary);list-style:none}.shooting-tips-summary::-webkit-details-marker{display:none}.shooting-tips-list{margin:var(--spacing-sm) 0 0 var(--spacing-md);padding-left:1.2em;color:var(--text-secondary);font-size:.9em;line-height:1.8}.corner-type-section{margin:var(--spacing-xl) 0;padding:var(--spacing-xl);background:var(--bg-secondary);border-radius:var(--radius-lg);border:1px solid var(--border-color)}.corner-type-prompt{display:flex;align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-lg);padding:var(--spacing-md) var(--spacing-lg);background:var(--primary-50);border:1px solid var(--primary-200);border-radius:var(--radius-md)}.corner-type-prompt-icon{flex-shrink:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:var(--primary-color);color:#fff;border-radius:50%;font-size:.85em;font-weight:700}.corner-type-prompt-text{margin:0;font-size:.95em;color:var(--text-primary)}.corner-type-prompt-text strong{color:var(--primary-700)}.key-improvement-card{margin-bottom:var(--spacing-xl);padding:var(--spacing-lg);background:linear-gradient(135deg,var(--primary-50) 0%,var(--primary-100) 100%);border:1px solid var(--primary-200);border-radius:var(--radius-lg)}.key-improvement-card .key-improvement-label{display:inline-flex;align-items:center;gap:6px;margin-bottom:var(--spacing-sm);font-size:.85em;font-weight:600;color:var(--primary-700)}.key-improvement-card .key-improvement-text{margin:0;font-size:1.05em;line-height:1.7;color:var(--text-primary)}.corner-type-section h3{margin-bottom:var(--spacing-sm);color:var(--text-primary);font-size:1.25rem;font-weight:600}.corner-type-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-md);margin-bottom:var(--spacing-md)}.corner-type-option{display:block;cursor:pointer}.corner-type-option input[type=radio]{display:none}.corner-type-card{padding:var(--spacing-lg);min-height:120px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);transition:border-color var(--transition-base),background var(--transition-base),transform var(--transition-base);text-align:center;position:relative;-webkit-tap-highlight-color:transparent}.corner-type-option:active .corner-type-card{transform:scale(.98)}.corner-type-card:before{display:none}.corner-type-option input[type=radio]:checked+.corner-type-card{border-color:var(--primary-color);background:var(--primary-50)}.corner-type-card:hover{border-color:var(--border-color-hover);background:var(--bg-secondary)}.corner-type-icon{margin-bottom:12px}.corner-type-icon img{display:block;width:48px;height:48px;object-fit:contain;filter:drop-shadow(0 2px 4px rgba(0,0,0,.08))}.corner-type-card strong{display:block;margin-bottom:10px;color:var(--text-primary);font-size:1.15em;font-weight:600}.corner-type-card p{margin:0;color:var(--text-secondary);font-size:.95em;line-height:1.6}.corner-type-hint{margin-top:16px;font-size:.9em;color:var(--text-tertiary);font-style:italic}@media (max-width: 768px){body{padding:var(--spacing-md);padding-left:max(var(--spacing-md),env(safe-area-inset-left));padding-right:max(var(--spacing-md),env(safe-area-inset-right))}.container{border-radius:var(--radius-lg);margin-left:0;margin-right:0}header{padding:var(--spacing-lg);padding-left:max(var(--spacing-lg),env(safe-area-inset-left));padding-right:max(var(--spacing-lg),env(safe-area-inset-right))}.header-content{flex-direction:row;align-items:center;justify-content:space-between;gap:var(--spacing-md);margin-bottom:var(--spacing-sm)}.logo-section{flex:1;min-width:0}.logo-text h1{font-size:1.25rem}.logo-text .tagline{font-size:.625rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header-description{font-size:.8125rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}main{padding:var(--spacing-lg);padding-left:max(var(--spacing-lg),env(safe-area-inset-left));padding-right:max(var(--spacing-lg),env(safe-area-inset-right))}.section-header h2{font-size:1.25rem}.upload-area{padding:var(--spacing-xl) var(--spacing-md);min-height:180px}.upload-main-text{font-size:1rem}.mode-btn,.mode-selector-btn{min-height:48px}.controls{flex-direction:column;width:100%}.control-button{width:100%;justify-content:center}.speed-control{width:100%;justify-content:space-between;flex-wrap:wrap}.speed-control input[type=range]{flex:1;min-width:120px}.analysis-panel{margin-top:var(--spacing-xl);padding:var(--spacing-lg)}.light-score-value{font-size:2rem}.light-stars{font-size:1.1rem}.analysis-item{flex-direction:column;gap:8px}.analysis-style-item,.analysis-score-item{flex-direction:column}.score-header,.style-header{flex-direction:column;align-items:flex-start;gap:8px}.history-toggle-btn{position:static;width:100%;justify-content:center}.history-header-section{flex-direction:column;align-items:flex-start;gap:20px}.history-actions{width:100%;justify-content:space-between}.history-chart-section,.history-list-section{padding:20px}.history-scores{grid-template-columns:1fr}.history-item{padding:16px}.corner-type-options{grid-template-columns:1fr}.corner-type-section{padding:var(--spacing-lg)}}.key-metrics-section{margin:var(--spacing-xl) 0;padding:var(--spacing-lg);background:var(--bg-secondary);border-radius:var(--radius-lg);border:1px solid var(--border-color)}.section-title{font-size:1.1rem;font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-md);letter-spacing:-.01em}.key-metrics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--spacing-md)}.metric-card{padding:var(--spacing-lg);background:var(--bg-elevated);border-radius:var(--radius-md);border:1px solid var(--border-color);transition:border-color var(--transition-fast)}.metric-card:hover{border-color:var(--border-color-hover)}.metric-card-primary{border:2px solid var(--primary-color);background:var(--primary-50)}.metric-label{font-size:.875rem;color:var(--text-secondary);margin-bottom:var(--spacing-xs);font-weight:500}.metric-value{font-size:2rem;font-weight:700;color:var(--text-primary);margin-bottom:var(--spacing-xs);letter-spacing:-.02em}.metric-value.metric-good{color:var(--success-color)}.metric-value.metric-warning{color:var(--warning-color)}.metric-hint{font-size:.8125rem;color:var(--text-tertiary);font-style:italic}.phase-tabs-section{margin:var(--spacing-xl) 0}.phase-tabs{display:flex;gap:var(--spacing-xs);border-bottom:2px solid var(--border-color);margin-bottom:var(--spacing-lg)}.phase-tab{padding:var(--spacing-sm) var(--spacing-lg);background:transparent;border:none;border-bottom:3px solid transparent;color:var(--text-secondary);font-size:.9375rem;font-weight:500;cursor:pointer;transition:all var(--transition-base);position:relative;bottom:-2px}.phase-tab:hover{color:var(--primary-color);background:var(--primary-50)}.phase-tab.active{color:var(--primary-color);border-bottom-color:var(--primary-color);font-weight:600}.phase-content{position:relative;min-height:400px}.phase-tab-panel{display:none;animation:fadeIn .35s var(--ease-out-expo) forwards}.phase-tab-panel.active{display:block}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.chart-container{margin:var(--spacing-lg) 0;padding:var(--spacing-lg);background:var(--bg-elevated);border-radius:var(--radius-md);border:1px solid var(--border-color);overflow-x:auto}.time-series-chart{width:100%;height:auto}.phase-scores-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-md);margin-top:var(--spacing-lg)}.phase-score-card{padding:var(--spacing-lg);background:var(--bg-elevated);border-radius:var(--radius-md);border:1px solid var(--border-color);box-shadow:var(--shadow-sm)}.phase-score-label{font-size:.875rem;color:var(--text-secondary);margin-bottom:var(--spacing-sm);font-weight:500}.phase-score-value{font-size:1.75rem;font-weight:700;color:var(--text-primary);margin-bottom:var(--spacing-sm);letter-spacing:-.02em}.phase-score-bar{width:100%;height:8px;background:var(--bg-tertiary);border-radius:var(--radius-full);overflow:hidden}.phase-score-bar-fill{height:100%;background:var(--primary-color);border-radius:var(--radius-full);transition:width var(--transition-slow)}.phase-detail{padding:var(--spacing-lg);background:var(--bg-secondary);border-radius:var(--radius-md);border:1px solid var(--border-color)}.phase-detail h5{font-size:1.1rem;font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-md)}.phase-detail p{font-size:.9375rem;color:var(--text-secondary);margin-bottom:var(--spacing-sm);line-height:1.6}@media (max-width: 768px){.key-metrics-grid{grid-template-columns:1fr}.phase-tabs{flex-wrap:wrap}.phase-tab{flex:1;min-width:80px;text-align:center}.phase-scores-grid{grid-template-columns:1fr}.chart-container{padding:var(--spacing-sm);overflow-x:auto}.time-series-chart{min-width:600px}}.formatted-report-section{margin-top:var(--spacing-xl)}.report-summary-card,.report-strengths-card,.report-improvements-card,.report-key-action-card{margin-bottom:var(--spacing-lg);padding:var(--spacing-lg);background:var(--bg-elevated);border-radius:var(--radius-lg);border:1px solid var(--border-color);box-shadow:var(--shadow-sm)}.report-summary-card{background:var(--primary-50);border-left:3px solid var(--primary-color)}.report-section-title{font-size:1.1rem;font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-md);letter-spacing:-.01em}.report-summary-text{font-size:1rem;color:var(--text-primary);line-height:1.7;margin:0}.report-list{list-style:none;padding:0;margin:0}.report-list-item{padding:var(--spacing-sm) 0;display:flex;align-items:flex-start;gap:var(--spacing-sm);line-height:1.6}.report-list-item-strength{color:var(--success-color)}.report-icon{font-weight:700;color:var(--success-color);flex-shrink:0}.improvements-list{display:flex;flex-direction:column;gap:var(--spacing-md)}.improvement-item{padding:var(--spacing-lg);background:var(--bg-secondary);border-radius:var(--radius-md);border-left:4px solid var(--border-color);transition:all var(--transition-base)}.improvement-item-high{border-left-color:var(--error-color);background:#ef44440d}.improvement-item-medium{border-left-color:var(--warning-color);background:#f59e0b0d}.improvement-item-low{border-left-color:var(--text-tertiary)}.improvement-item:hover{border-left-color:var(--primary-color)}.improvement-header{display:flex;align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-sm);flex-wrap:wrap}.improvement-priority{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;background:var(--primary-color);color:#fff;border-radius:var(--radius-full);font-size:.875rem;font-weight:600}.improvement-phase{padding:var(--spacing-xs) var(--spacing-sm);background:var(--bg-tertiary);color:var(--text-secondary);border-radius:var(--radius-sm);font-size:.8125rem;font-weight:500}.improvement-impact{padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);font-size:.8125rem;font-weight:600}.improvement-impact-high{background:#ef44441a;color:var(--error-color)}.improvement-impact-medium{background:#f59e0b1a;color:var(--warning-color)}.improvement-impact-low{background:var(--bg-tertiary);color:var(--text-tertiary)}.improvement-title{font-size:1rem;font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-sm)}.improvement-details{display:flex;flex-direction:column;gap:var(--spacing-sm)}.improvement-value{display:flex;align-items:center;gap:var(--spacing-sm);flex-wrap:wrap;padding:var(--spacing-sm);background:#fff;border-radius:var(--radius-sm);border:1px solid var(--border-color)}.improvement-label{font-size:.875rem;color:var(--text-secondary);font-weight:500}.improvement-current{font-size:.9375rem;color:var(--text-primary);font-weight:600;padding:2px 8px;background:var(--bg-tertiary);border-radius:var(--radius-xs)}.improvement-recommended{font-size:.9375rem;color:var(--success-color);font-weight:600;padding:2px 8px;background:#10b9811a;border-radius:var(--radius-xs)}.improvement-explanation{font-size:.9375rem;color:var(--text-secondary);line-height:1.6;padding:var(--spacing-sm);background:#fff;border-radius:var(--radius-sm)}.improvement-action{font-size:.9375rem;color:var(--primary-color);line-height:1.6;padding:var(--spacing-sm);background:var(--primary-50);border-left:3px solid var(--primary-color);border-radius:var(--radius-sm);font-weight:500}.report-key-action-card{background:var(--primary-50);border-left:3px solid var(--primary-color)}.report-key-action-text{font-size:1.1rem;color:var(--primary-color);line-height:1.7;margin:0;font-weight:500}@media (max-width: 768px){.improvement-header,.improvement-value{flex-direction:column;align-items:flex-start}}*:focus-visible{outline:2px solid var(--primary-color);outline-offset:2px;border-radius:var(--radius-xs)}html{scroll-behavior:smooth}::selection{background:var(--primary-100);color:var(--primary-dark)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:var(--border-color-hover);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}.detailed-analysis-page{padding:var(--spacing-lg);padding-bottom:calc(var(--spacing-lg) + 72px);max-width:1600px;margin:0 auto}.detailed-analysis-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-xl);padding-bottom:var(--spacing-lg);border-bottom:2px solid var(--border-color)}.detailed-analysis-header-actions{display:flex;align-items:center;gap:var(--spacing-sm)}.detailed-analysis-header .export-data-btn{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);font-size:.9375rem;cursor:pointer;transition:all var(--transition-base)}.detailed-analysis-header .export-data-btn:hover{background:var(--bg-tertiary);border-color:var(--border-color-hover)}.page-header-content h2{font-size:2rem;font-weight:700;color:var(--text-primary);margin-bottom:var(--spacing-xs)}.page-description{color:var(--text-secondary);font-size:.9375rem}.back-button{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);font-size:.9375rem;cursor:pointer;transition:all var(--transition-base)}.back-button:hover{background:var(--bg-tertiary);border-color:var(--border-color-hover)}.timeline-video-container{position:relative;width:100%;max-width:800px;margin:0 auto var(--spacing-lg);background:var(--bg-secondary);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-lg)}.timeline-video{width:100%;display:block}.video-overlay{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none;display:flex;align-items:flex-end;justify-content:flex-start;padding:var(--spacing-md)}.video-overlay-info{background:#0f172acc;color:#fff;padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);font-size:.8125rem}.timeline-container{position:relative;width:100%;height:80px;background:var(--bg-secondary);border-radius:var(--radius-md);margin-bottom:var(--spacing-lg);overflow-x:auto;overflow-y:hidden;border:1px solid var(--border-color);scrollbar-width:thin;scrollbar-color:var(--border-color-hover) var(--bg-secondary)}.timeline-container::-webkit-scrollbar{height:8px}.timeline-container::-webkit-scrollbar-track{background:var(--bg-secondary);border-radius:var(--radius-sm)}.timeline-container::-webkit-scrollbar-thumb{background:var(--border-color-hover);border-radius:var(--radius-sm)}.timeline-container::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}.timeline-track{position:relative;height:60px;margin-top:10px;min-width:100%}.timeline-frame{position:absolute;cursor:pointer;transition:opacity var(--transition-base)}.timeline-frame:hover{opacity:.7}.timeline-frame.phase-entry{background:var(--primary-color)}.timeline-frame.phase-mid{background:var(--primary-light)}.timeline-frame.phase-exit{background:var(--accent-color)}.timeline-playhead{position:absolute;top:0;left:0;width:2px;height:100%;background:var(--error-color);pointer-events:none;z-index:10;transition:left .1s linear}.timeline-playhead:before{content:"";position:absolute;top:-5px;left:-5px;width:12px;height:12px;background:var(--error-color);border-radius:50%;box-shadow:0 2px 4px #0003}.timeline-controls{display:flex;align-items:center;gap:var(--spacing-md);margin-bottom:var(--spacing-xl);padding:var(--spacing-md);background:var(--bg-secondary);border-radius:var(--radius-md);border:1px solid var(--border-color)}.timeline-control-btn{display:flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-md);background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);font-size:.9375rem;cursor:pointer;transition:all var(--transition-base)}.timeline-control-btn:hover{background:var(--bg-tertiary);border-color:var(--border-color-hover)}.timeline-speed-control{display:flex;align-items:center;gap:var(--spacing-sm);margin-left:auto}.timeline-speed-control label{font-size:.9375rem;color:var(--text-secondary)}.timeline-speed-control input[type=range]{width:150px}.chart-tabs{display:flex;gap:var(--spacing-sm);margin-bottom:var(--spacing-lg);border-bottom:2px solid var(--border-color)}.chart-tab{padding:var(--spacing-sm) var(--spacing-md);background:transparent;border:none;border-bottom:2px solid transparent;color:var(--text-secondary);font-size:.9375rem;cursor:pointer;transition:all var(--transition-base);margin-bottom:-2px}.chart-tab:hover{color:var(--text-primary)}.chart-tab.active{color:var(--primary-color);border-bottom-color:var(--primary-color)}.charts-container{margin-bottom:var(--spacing-xl)}.detailed-chart-container{background:var(--bg-elevated);border-radius:var(--radius-lg);padding:var(--spacing-lg);border:1px solid var(--border-color);overflow-x:auto;overflow-y:hidden;height:500px;scrollbar-width:thin;scrollbar-color:var(--border-color-hover) var(--bg-secondary)}.detailed-chart-container::-webkit-scrollbar{height:8px}.detailed-chart-container::-webkit-scrollbar-track{background:var(--bg-secondary);border-radius:var(--radius-sm)}.detailed-chart-container::-webkit-scrollbar-thumb{background:var(--border-color-hover);border-radius:var(--radius-sm)}.detailed-chart-container::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}.detailed-chart-container svg{display:block;height:100%;min-height:100%}.detailed-statistics-panel{background:var(--bg-elevated);border-radius:var(--radius-lg);padding:var(--spacing-lg);border:1px solid var(--border-color);margin-bottom:var(--spacing-xl)}.statistics-tabs{display:flex;gap:var(--spacing-sm);margin-bottom:var(--spacing-lg);border-bottom:2px solid var(--border-color)}.stat-tab{padding:var(--spacing-sm) var(--spacing-md);background:transparent;border:none;border-bottom:2px solid transparent;color:var(--text-secondary);font-size:.9375rem;cursor:pointer;transition:all var(--transition-base);margin-bottom:-2px}.stat-tab:hover{color:var(--text-primary)}.stat-tab.active{color:var(--primary-color);border-bottom-color:var(--primary-color)}.stat-tab-panels{position:relative}.stat-tab-panel{display:none}.stat-tab-panel.active{display:block}.detailed-statistics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--spacing-lg)}.detailed-stat-item{background:var(--bg-secondary);border-radius:var(--radius-md);padding:var(--spacing-md);border:1px solid var(--border-color)}.detailed-stat-item h5{font-size:1.125rem;font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-md);display:flex;align-items:center;gap:var(--spacing-xs)}.stat-detail-section{margin-bottom:var(--spacing-md)}.stat-detail-section h6{font-size:.9375rem;font-weight:600;color:var(--text-secondary);margin-bottom:var(--spacing-sm);text-transform:uppercase;letter-spacing:.05em}.stat-row{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-xs) 0;font-size:.9375rem}.stat-label-with-tooltip{display:inline-flex;align-items:center;gap:var(--spacing-xs);color:var(--text-secondary);min-width:150px}.stat-value{font-weight:600;color:var(--text-primary)}.stat-interpretation{color:var(--text-tertiary);font-size:.8125rem;font-style:italic}.correlation-matrix{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--spacing-md)}.correlation-item{background:var(--bg-secondary);border-radius:var(--radius-md);padding:var(--spacing-md);border:1px solid var(--border-color)}.correlation-item h6{font-size:1rem;font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-sm)}.correlation-values{display:flex;flex-direction:column;gap:var(--spacing-xs)}.corr-row{display:flex;align-items:center;gap:var(--spacing-sm);font-size:.9375rem}.corr-label{color:var(--text-secondary);min-width:120px;display:inline-flex;align-items:center;gap:var(--spacing-xs)}.corr-value{font-weight:600;color:var(--text-primary)}.corr-value.strong{color:var(--success-color)}.corr-value.moderate{color:var(--warning-color)}.corr-value.weak{color:var(--text-tertiary)}.corr-significance{color:var(--text-tertiary);font-size:.8125rem}.corr-interpretation{margin-top:var(--spacing-xs);padding-top:var(--spacing-xs);border-top:1px solid var(--border-color);color:var(--text-secondary);font-size:.875rem}.phase-comparison-container{display:flex;flex-direction:column;gap:var(--spacing-lg)}.phase-comparison-item{background:var(--bg-secondary);border-radius:var(--radius-md);padding:var(--spacing-md);border:1px solid var(--border-color)}.phase-comparison-item h5{font-size:1.125rem;font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-md)}.phase-stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--spacing-md);margin-bottom:var(--spacing-md)}.phase-stat{background:var(--bg-elevated);border-radius:var(--radius-sm);padding:var(--spacing-sm);border:1px solid var(--border-color)}.phase-stat h6{font-size:.9375rem;font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-xs);display:flex;align-items:center;gap:var(--spacing-xs)}.phase-stat p{font-size:.875rem;color:var(--text-secondary);margin:var(--spacing-xs) 0;display:flex;align-items:center;gap:var(--spacing-xs)}.phase-comparison-results{margin-top:var(--spacing-md);padding-top:var(--spacing-md);border-top:1px solid var(--border-color)}.phase-comparison-results h6{font-size:.9375rem;font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-sm)}.comparison-row{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-xs) 0;font-size:.9375rem;flex-wrap:wrap}.comparison-label{color:var(--text-secondary);min-width:120px}.comparison-value{font-weight:600;color:var(--text-primary);display:inline-flex;align-items:center;gap:var(--spacing-xs)}.comparison-pvalue{color:var(--text-tertiary);display:inline-flex;align-items:center;gap:var(--spacing-xs)}.comparison-interpretation{color:var(--text-tertiary);font-size:.8125rem;font-style:italic}.time-series-analysis-container{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--spacing-md)}.time-series-item{background:var(--bg-secondary);border-radius:var(--radius-md);padding:var(--spacing-md);border:1px solid var(--border-color)}.time-series-item h5{font-size:1rem;font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-md)}.trend-analysis,.change-rate-analysis{margin-bottom:var(--spacing-md)}.trend-analysis h6,.change-rate-analysis h6{font-size:.9375rem;font-weight:600;color:var(--text-secondary);margin-bottom:var(--spacing-sm);display:flex;align-items:center;gap:var(--spacing-xs)}.trend-row{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-xs) 0;font-size:.9375rem}.trend-label{color:var(--text-secondary);min-width:150px;display:inline-flex;align-items:center;gap:var(--spacing-xs)}.trend-value{font-weight:600;color:var(--text-primary)}.trend-interpretation{color:var(--text-tertiary);font-size:.8125rem;font-style:italic}.change-rate-stats{display:flex;flex-direction:column;gap:var(--spacing-xs)}.change-rate-stats p{font-size:.875rem;color:var(--text-secondary)}.frame-detail-panel{background:var(--bg-elevated);border-radius:var(--radius-lg);padding:var(--spacing-lg);border:1px solid var(--border-color)}.frame-detail-panel h3{font-size:1.25rem;font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-md)}.frame-detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-md)}.frame-detail-item{display:flex;flex-direction:column;gap:var(--spacing-xs)}.detail-label{font-size:.875rem;color:var(--text-secondary);display:flex;align-items:center;gap:var(--spacing-xs)}.detail-value{font-size:1rem;font-weight:600;color:var(--text-primary)}.detail-value.phase-entry{color:var(--primary-color)}.detail-value.phase-mid{color:var(--primary-light)}.detail-value.phase-exit{color:var(--accent-color)}.header-actions{display:flex;align-items:center;gap:var(--spacing-sm);position:relative}.hamburger-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a40;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);z-index:999;opacity:0;visibility:hidden;pointer-events:none;transition:opacity var(--transition-base) var(--ease-out-expo),visibility var(--transition-base)}.hamburger-backdrop.is-visible{opacity:1;visibility:visible;pointer-events:auto}body.menu-open{overflow:hidden}body.menu-open .header-content{position:relative;z-index:1002}.hamburger-btn{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;min-width:44px;min-height:44px;width:44px;height:44px;padding:10px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);cursor:pointer;transition:border-color var(--transition-base),background var(--transition-base),transform var(--transition-base);-webkit-tap-highlight-color:transparent}.hamburger-btn:hover{background:var(--bg-secondary);border-color:var(--border-color-hover)}.hamburger-btn:active{transform:scale(.96)}.hamburger-line{display:block;width:18px;height:2px;background:currentColor;border-radius:1px;transform-origin:center;transition:transform var(--transition-slow) var(--ease-out-expo),opacity var(--transition-base)}.hamburger-btn[aria-expanded=true] .hamburger-line:nth-child(1){transform:translateY(7px) rotate(45deg)}.hamburger-btn[aria-expanded=true] .hamburger-line:nth-child(2){opacity:0;transform:scaleX(0)}.hamburger-btn[aria-expanded=true] .hamburger-line:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.hamburger-menu{display:flex;flex-direction:column;gap:var(--spacing-xs);position:absolute;top:calc(100% + var(--spacing-sm));right:0;min-width:260px;padding:var(--spacing-sm);background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:0 12px 40px #0000001f;z-index:1001;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-8px) scale(.96);transform-origin:top right;transition:opacity var(--transition-base) var(--ease-out-expo),visibility var(--transition-base),transform var(--transition-base) var(--ease-out-expo)}.hamburger-menu.is-open{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0) scale(1)}.menu-item{display:flex;align-items:center;gap:var(--spacing-md);width:100%;min-height:48px;padding:var(--spacing-md) var(--spacing-lg);background:transparent;border:none;border-radius:var(--radius-md);color:var(--text-primary);font-size:.9375rem;font-weight:500;text-align:left;cursor:pointer;transition:background var(--transition-base),color var(--transition-base);-webkit-tap-highlight-color:transparent}.menu-item:hover{background:var(--bg-tertiary)}.menu-item:active{background:var(--border-subtle)}.menu-item svg{flex-shrink:0;color:var(--text-tertiary);transition:color var(--transition-base)}.menu-item:hover svg{color:var(--primary-color)}.menu-item-banner{margin-bottom:var(--spacing-xs);padding-bottom:var(--spacing-sm);border-bottom:1px solid var(--border-color)}.restore-analysis-banner{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-xs) var(--spacing-sm);background:var(--primary-50);border:1px solid var(--primary-100);border-radius:var(--radius-md);font-size:.875rem}.restore-banner-text{color:var(--text-secondary)}.restore-analysis-btn{padding:var(--spacing-xs) var(--spacing-sm);background:var(--primary-color);color:var(--text-on-primary);border:none;border-radius:var(--radius-sm);font-size:.8125rem;cursor:pointer;transition:background var(--transition-fast)}.restore-analysis-btn:hover{background:var(--primary-dark)}.dismiss-restore-btn{padding:0 var(--spacing-xs);background:transparent;border:none;color:var(--text-tertiary);font-size:1.125rem;line-height:1;cursor:pointer;transition:color var(--transition-fast)}.dismiss-restore-btn:hover{color:var(--text-primary)}.header-action-btn{display:flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-md);background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:.875rem;cursor:pointer;transition:border-color var(--transition-fast),color var(--transition-fast),background var(--transition-fast)}.header-action-btn:hover{background:var(--bg-secondary);color:var(--text-primary);border-color:var(--border-color-hover)}.tooltip-icon{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;margin-left:var(--spacing-xs);cursor:help;color:var(--primary-color);font-size:.875rem;opacity:.7;transition:opacity var(--transition-base);vertical-align:middle}.tooltip-icon:hover{opacity:1}.stat-label-with-tooltip{display:inline-flex;align-items:center;gap:var(--spacing-xs)}#global-tooltip{position:fixed;background:#0f172af2;color:#fff;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);font-size:.8125rem;line-height:1.6;z-index:10000;pointer-events:none;box-shadow:var(--shadow-lg);max-width:350px;word-wrap:break-word}#global-tooltip:before{content:"";position:absolute;width:0;height:0;border:6px solid transparent;border-top-color:#0f172af2;bottom:-12px;left:50%;transform:translate(-50%)}@media (max-width: 768px){.header-actions{position:static}.hamburger-menu{position:fixed;top:0;right:0;bottom:0;left:auto;width:min(320px,100vw - 48px);min-width:0;max-width:100%;padding:env(safe-area-inset-top) var(--spacing-lg) env(safe-area-inset-bottom);padding-top:max(calc(env(safe-area-inset-top) + 16px),72px);margin:0;border-radius:0;border:none;border-left:1px solid var(--border-color);box-shadow:-8px 0 32px #0000001f;transform:translate(100%);transform-origin:right center;opacity:1;visibility:visible;transition:transform var(--transition-slow) var(--ease-out-expo)}.hamburger-menu:not(.is-open){pointer-events:none}.hamburger-menu.is-open{transform:translate(0);pointer-events:auto}.hamburger-backdrop.is-visible{background:#0f172a59}.menu-item{min-height:52px;padding:var(--spacing-md) var(--spacing-lg);font-size:1rem}.restore-analysis-banner{flex-direction:column;align-items:stretch;gap:var(--spacing-sm);padding:var(--spacing-md)}.restore-analysis-btn{min-height:44px;font-size:.9375rem}.detailed-analysis-header{flex-direction:column;align-items:flex-start;gap:var(--spacing-md)}.phase-stats-grid,.detailed-statistics-grid,.correlation-matrix,.time-series-analysis-container{grid-template-columns:1fr}}.auth-container{padding:var(--spacing-2xl);min-height:400px}.auth-header{margin-bottom:var(--spacing-xl)}.auth-back-link{color:var(--primary-color);text-decoration:none;font-size:.9375rem}.auth-back-link:hover{text-decoration:underline}.auth-card{max-width:400px;margin:0 auto;padding:var(--spacing-xl);background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}.auth-card h2{margin-bottom:var(--spacing-lg);font-size:1.25rem;color:var(--text-primary)}.auth-form{display:flex;flex-direction:column;gap:var(--spacing-md)}.auth-field{display:flex;flex-direction:column;gap:var(--spacing-xs)}.auth-field label{font-size:.875rem;font-weight:500;color:var(--text-secondary)}.auth-field input{padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:1rem}.auth-field input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 2px #1e3a5f33}.auth-error{font-size:.875rem;color:var(--error-color);padding:var(--spacing-sm) 0}.auth-submit{padding:var(--spacing-md) var(--spacing-lg);background:var(--primary-gradient);color:var(--text-on-primary);border:none;border-radius:var(--radius-md);font-size:1rem;font-weight:500;cursor:pointer;margin-top:var(--spacing-sm)}.auth-submit:hover{opacity:.95}.auth-submit-danger{background:var(--error-color);margin-top:var(--spacing-lg)}.auth-link{margin-top:var(--spacing-lg);font-size:.875rem;color:var(--text-secondary)}.auth-link a{color:var(--primary-color);text-decoration:none}.auth-link a:hover{text-decoration:underline}.mypage-section{margin-bottom:var(--spacing-xl)}.mypage-section p{margin-bottom:var(--spacing-sm)}.admin-user-list{display:flex;flex-direction:column;gap:var(--spacing-sm);margin-top:var(--spacing-lg)}.admin-user-row{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md);border:1px solid var(--border-color);border-radius:var(--radius-md)}.admin-user-info{display:flex;align-items:center;gap:var(--spacing-md)}.admin-user-id{font-family:monospace;font-size:.75rem;color:var(--text-tertiary)}.admin-plan-select{padding:var(--spacing-xs) var(--spacing-sm);border:1px solid var(--border-color);border-radius:var(--radius-sm);font-size:.875rem}.admin-delete-btn{padding:var(--spacing-xs) var(--spacing-md);background:transparent;color:var(--error-color);border:1px solid var(--error-color);border-radius:var(--radius-sm);font-size:.875rem;cursor:pointer}.admin-delete-btn:hover{background:var(--error-color);color:#fff}.admin-note{font-size:.875rem;color:var(--text-tertiary);margin-bottom:var(--spacing-md)}
