.sr-only{clip:rect(0,0,0,0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}:focus{outline:2px solid #2563eb;outline-offset:2px}@media (prefers-contrast:high){:focus{outline:3px solid;outline-offset:3px}}:focus:not(:focus-visible){outline:none}:focus-visible{outline:2px solid #2563eb;outline-offset:2px}[role=button],[role=link],a,button,input[type=button],input[type=checkbox],input[type=radio],input[type=reset],input[type=submit]{min-height:44px;min-width:44px}.inline-control,a:not([role=button]),button.inline{min-height:auto;min-width:auto}:root{--color-text-primary:#1f2937;--color-text-secondary:#4b5563;--color-text-muted:#6b7280;--color-link:#1d4ed8;--color-link-hover:#1e40af;--color-error:#dc2626;--color-success:#059669;--color-warning:#d97706;--color-focus:#2563eb;--color-bg-primary:#fff;--color-bg-secondary:#f9fafb;--color-bg-muted:#f3f4f6;--color-border:#d1d5db;--color-border-focus:var(--color-focus);--color-border-error:var(--color-error)}@media (prefers-contrast:high){:root{--color-text-primary:#000;--color-text-secondary:#000;--color-link:#00e;--color-border:#000}[role=button],button,input,select,textarea{border:2px solid #d1d5db!important;border:2px solid var(--color-border)!important}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}body{color:#1f2937;color:var(--color-text-primary)}dd,dt,li,p{line-height:1.5}.text-content{line-height:1.6;max-width:70ch}a{color:#1d4ed8;color:var(--color-link);text-decoration:underline}a:focus,a:hover{color:#1e40af;color:var(--color-link-hover);text-decoration:none}a:not([class]){-webkit-text-decoration-skip:ink;text-decoration-skip-ink:auto}label{cursor:pointer}input,select,textarea{font-family:inherit}.required-indicator,.required:after{color:#dc2626;color:var(--color-error);content:" *";font-weight:700}.error,[aria-invalid=true]{border-color:#dc2626;border-color:var(--color-error)}.error-message,[role=alert]{color:#dc2626;color:var(--color-error);font-weight:500}.success{color:#059669;color:var(--color-success)}.warning{color:#d97706;color:var(--color-warning)}table{border-collapse:collapse}th{font-weight:600;text-align:left}td,th{border:1px solid #d1d5db;border:1px solid var(--color-border);padding:.75rem}caption{font-weight:600;margin-bottom:.5rem;text-align:left}ol,ul{padding-left:2rem}nav ul{list-style:none;padding-left:0}nav a{display:block;padding:.5rem}main{outline:none}[role=alertdialog],[role=dialog]{position:fixed;z-index:1000}[role=tooltip]{background:#1f2937;background:var(--color-text-primary);border-radius:.25rem;color:#fff;color:var(--color-bg-primary);font-size:.875rem;max-width:200px;padding:.5rem;position:absolute;z-index:1001}[role=progressbar]{background-color:#f3f4f6;background-color:var(--color-bg-muted);border-radius:.25rem;overflow:hidden}[role=tablist]{border-bottom:1px solid #d1d5db;border-bottom:1px solid var(--color-border);display:flex}[role=tab]{background:none;border:none;cursor:pointer;padding:.75rem 1rem}[role=tab][aria-selected=true]{background-color:#fff;background-color:var(--color-bg-primary);border-bottom:2px solid #2563eb;border-bottom:2px solid var(--color-focus)}[role=tabpanel]{padding:1rem}[role=menu],[role=menubar]{list-style:none;margin:0;padding:0}[role=menuitem]{cursor:pointer;display:block;padding:.5rem 1rem}[role=menuitem]:focus,[role=menuitem]:hover{background-color:#f3f4f6;background-color:var(--color-bg-muted)}[role=navigation] ol,[role=navigation] ul{display:flex;flex-wrap:wrap;gap:.5rem;list-style:none;padding:0}[role=alert]{background-color:#fef2f2;border:1px solid #fecaca;border-radius:.25rem;color:#dc2626;color:var(--color-error);padding:1rem}[aria-busy=true]{cursor:wait}[aria-disabled=true]{cursor:not-allowed;opacity:.6;pointer-events:none}[aria-expanded=false]+*{display:none}[aria-hidden=true]{display:none!important}@media print{:focus{outline:2px solid #000!important}a[href]:after{content:" (" attr(href) ")";font-size:.8em}.no-print,[aria-hidden=true]{display:none!important}}@media (max-width:768px){a[role=button],button,input[type=button],input[type=reset],input[type=submit]{min-height:48px;min-width:48px}input,select,textarea{font-size:16px}}@media (prefers-color-scheme:dark){:root{--color-text-primary:#f9fafb;--color-text-secondary:#d1d5db;--color-text-muted:#9ca3af;--color-link:#60a5fa;--color-link-hover:#93c5fd;--color-bg-primary:#111827;--color-bg-secondary:#1f2937;--color-bg-muted:#374151;--color-border:#4b5563}body{background-color:#fff;background-color:var(--color-bg-primary);color:#1f2937;color:var(--color-text-primary)}}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f5f5f5;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;line-height:1.5;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}*{box-sizing:border-box}.responsive-video-player{background-color:#000;border-radius:8px;cursor:pointer;overflow:hidden;position:relative;-webkit-user-select:none;user-select:none;width:100%}.responsive-video-player.fullscreen{border-radius:0;height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:9999}.video-element{display:block;height:100%;object-fit:contain;width:100%}.video-loading{align-items:center;background-color:#000c;bottom:0;color:#fff;display:flex;flex-direction:column;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:2}.loading-spinner{border:4px solid #ffffff4d;border-top-color:#fff;margin-bottom:1rem}.loading-text{font-size:1rem;opacity:.8}.video-error{align-items:center;background-color:#000000e6;bottom:0;color:#fff;display:flex;flex-direction:column;justify-content:center;left:0;padding:2rem;position:absolute;right:0;text-align:center;top:0}.error-message{font-size:1.2rem}.retry-button{background-color:#2196f3;background-color:var(--theme-primary,#2196f3)}.retry-button:hover{background-color:#1976d2;background-color:var(--theme-primary,#1976d2);filter:brightness(.9)}.video-controls{background:linear-gradient(180deg,#000000b3 0,#0000 20%,#0000 80%,#000000b3);bottom:0;color:#fff;display:flex;flex-direction:column;justify-content:space-between;left:0;opacity:0;pointer-events:none;position:absolute;right:0;top:0;transition:opacity .3s ease;z-index:3}.responsive-video-player:hover .video-controls,.video-controls.show{opacity:1;pointer-events:auto}.controls-top{display:flex;justify-content:flex-end;padding:1rem}.controls-center{align-items:center;display:flex;flex:1 1;justify-content:center}.controls-bottom{padding:1rem}.control-button{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000080;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;justify-content:center;transition:all .2s ease}.control-button:hover{background:#000c;transform:scale(1.1)}.control-button:active{transform:scale(.95)}.play-button{font-size:1.5rem;height:60px;width:60px}.close-button{font-size:1.2rem;height:40px;width:40px}.fullscreen-button,.volume-button{font-size:1rem;height:36px;width:36px}.progress-container{margin-bottom:.5rem}.progress-bar{-webkit-appearance:none;appearance:none;background:#ffffff4d;cursor:pointer;outline:none}.progress-bar::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background:#2196f3;background:var(--theme-primary,#2196f3);border-radius:50%;cursor:pointer;height:16px;-webkit-transition:transform .2s ease;transition:transform .2s ease;width:16px}.progress-bar::-webkit-slider-thumb:hover{transform:scale(1.2)}.progress-bar::-moz-range-thumb{background:#2196f3;background:var(--theme-primary,#2196f3);border:none;border-radius:50%;cursor:pointer;height:16px;-moz-transition:transform .2s ease;transition:transform .2s ease;width:16px}.progress-bar::-moz-range-thumb:hover{transform:scale(1.2)}.controls-row{align-items:center;display:flex;gap:1rem;justify-content:space-between}.time-display{font-size:.9rem;font-weight:500;white-space:nowrap}.controls-right,.volume-control{align-items:center;display:flex;gap:.5rem}.volume-slider{-webkit-appearance:none;appearance:none;background:#ffffff4d;border-radius:2px;cursor:pointer;height:4px;outline:none;width:80px}.volume-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background:#fff;border-radius:50%;cursor:pointer;height:12px;width:12px}.volume-slider::-moz-range-thumb{background:#fff;border:none;border-radius:50%;cursor:pointer;height:12px;width:12px}@media (max-width:767.98px){.responsive-video-player{border-radius:4px}.video-controls{background:linear-gradient(180deg,#000c 0,#0000 25%,#0000 75%,#000c)}.play-button{font-size:2rem;height:80px;width:80px}.control-button{min-height:44px;min-width:44px}.close-button{font-size:1.5rem;height:44px;width:44px}.fullscreen-button,.volume-button{font-size:1.2rem;height:44px;width:44px}.progress-bar{height:6px}.progress-bar::-webkit-slider-thumb{height:20px;width:20px}.progress-bar::-moz-range-thumb{height:20px;width:20px}.time-display{font-size:1rem}.controls-bottom,.controls-top{padding:.75rem}.volume-control{display:none}}@media (min-width:768px) and (max-width:1023.98px){.play-button{font-size:1.8rem;height:70px;width:70px}.volume-slider{width:60px}}@media (hover:none) and (pointer:coarse){.video-controls{opacity:1;pointer-events:auto}.control-button:hover{background:#00000080;transform:none}.control-button:active{background:#000c;transform:scale(.95)}.progress-bar::-webkit-slider-thumb:hover{transform:none}.progress-bar::-moz-range-thumb:hover{transform:none}}@media (max-width:767.98px) and (orientation:landscape){.controls-bottom,.controls-top{padding:.5rem}.play-button{font-size:1.5rem;height:60px;width:60px}.time-display{font-size:.9rem}}@media (prefers-contrast:high){.video-controls{background:linear-gradient(180deg,#000000e6 0,#0000 20%,#0000 80%,#000000e6)}.control-button{background:#000000e6;border:2px solid #fff}.progress-bar{background:#fffc}}@media (prefers-reduced-motion:reduce){.control-button,.progress-bar::-moz-range-thumb,.progress-bar::-webkit-slider-thumb,.video-controls{-webkit-transition:none;-moz-transition:none;transition:none}.loading-spinner{animation:none}.control-button:active,.control-button:hover{transform:none}}.theme-dark .retry-button{background-color:#64b5f6;background-color:var(--theme-primary,#64b5f6)}.theme-dark .retry-button:hover{background-color:#42a5f5;background-color:var(--theme-primary,#42a5f5)}.responsive-video-player.fullscreen .video-element{object-fit:contain}.responsive-video-player.fullscreen .controls-bottom,.responsive-video-player.fullscreen .controls-top{padding:2rem}@media (max-width:767.98px){.responsive-video-player.fullscreen .controls-bottom,.responsive-video-player.fullscreen .controls-top{padding:1rem}}:root{--theme-primary:#2196f3;--theme-secondary:#ffc107;--theme-background:#fff;--theme-surface:#f5f5f5;--theme-text:#333;--theme-textSecondary:#666;--header-height:64px;--sidebar-width:280px;--sidebar-collapsed-width:60px;--animation-duration:0.3s;--transition-duration:0.2s;--base-font-size:16px;--z-header:1000;--z-sidebar:900;--z-notifications:1100;--z-dropdown:1050}.platform-shell{background-color:#fff;background-color:var(--theme-background);color:#333;color:var(--theme-text);display:flex;flex-direction:column;font-size:16px;font-size:var(--base-font-size);height:100vh;transition:all .2s ease;transition:all var(--transition-duration) ease}.platform-header{background-color:#f5f5f5;background-color:var(--theme-surface);border-bottom:1px solid #0000001a;box-shadow:0 2px 4px #0000001a;height:64px;height:var(--header-height);justify-content:space-between;padding:0 1rem;position:relative;z-index:1000;z-index:var(--z-header)}.header-left,.platform-header{align-items:center;display:flex}.header-left{gap:1rem}.sidebar-toggle{background:none;border:none;border-radius:4px;color:#333;color:var(--theme-text);cursor:pointer;font-size:1.2rem;padding:.5rem;transition:background-color .2s ease;transition:background-color var(--transition-duration) ease}.sidebar-toggle:hover{background-color:#0000001a}.platform-logo h1{color:#2196f3;color:var(--theme-primary);font-size:1.5rem;font-weight:600;margin:0}.current-module{align-items:center;background-color:#0000000d;border-radius:20px;display:flex;font-weight:500;gap:.5rem;padding:.5rem 1rem}.module-icon{font-size:1.1rem}.header-right{align-items:center;display:flex;gap:1rem}.theme-selector{position:relative}.theme-toggle{background:none;border:none;border-radius:4px;cursor:pointer;font-size:1.2rem;padding:.5rem;transition:background-color .2s ease;transition:background-color var(--transition-duration) ease}.theme-toggle:hover{background-color:#0000001a}.theme-menu{background-color:#f5f5f5;background-color:var(--theme-surface);border:1px solid #0000001a;border-radius:8px;box-shadow:0 4px 12px #00000026;margin-top:.5rem;min-width:150px;position:absolute;right:0;top:100%;z-index:1050;z-index:var(--z-dropdown)}.theme-option{background:none;border:none;color:#333;color:var(--theme-text);cursor:pointer;display:block;padding:.75rem 1rem;text-align:left;transition:background-color .2s ease;transition:background-color var(--transition-duration) ease;width:100%}.theme-option:hover{background-color:#0000001a}.theme-option.active{background-color:#2196f3;background-color:var(--theme-primary);color:#fff}.theme-option:first-child{border-radius:8px 8px 0 0}.theme-option:last-child{border-radius:0 0 8px 8px}.user-menu{position:relative}.user-avatar{align-items:center;background-color:#2196f3;background-color:var(--theme-primary);border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:1rem;font-weight:600;height:40px;justify-content:center;transition:transform .2s ease;transition:transform var(--transition-duration) ease;width:40px}.user-avatar:hover{transform:scale(1.05)}.login-btn{border:none;border-radius:4px;color:#fff;cursor:pointer;font-weight:500;padding:.5rem 1rem;transition:background-color .2s ease;transition:background-color var(--transition-duration) ease}.login-btn,.login-btn:hover{background-color:#2196f3;background-color:var(--theme-primary)}.login-btn:hover{filter:brightness(.9)}.user-dropdown{background-color:#f5f5f5;background-color:var(--theme-surface);border:1px solid #0000001a;border-radius:8px;box-shadow:0 4px 12px #00000026;margin-top:.5rem;min-width:200px;position:absolute;right:0;top:100%;z-index:1050;z-index:var(--z-dropdown)}.user-info{padding:1rem}.user-name{font-weight:600;margin-bottom:.25rem}.user-email{color:#666;color:var(--theme-textSecondary);font-size:.9rem}.user-dropdown hr{border:none;border-top:1px solid #0000001a;margin:0}.user-dropdown button{background:none;border:none;color:#333;color:var(--theme-text);cursor:pointer;display:block;padding:.75rem 1rem;text-align:left;transition:background-color .2s ease;transition:background-color var(--transition-duration) ease;width:100%}.user-dropdown button:hover{background-color:#0000001a}.logout-button{align-items:center;display:flex!important;gap:.5rem}.platform-body{display:flex;flex:1 1;overflow:hidden}.platform-sidebar{background-color:#f5f5f5;background-color:var(--theme-surface);border-right:1px solid #0000001a;display:flex;flex-direction:column;transition:width .3s ease;transition:width var(--animation-duration) ease;width:280px;width:var(--sidebar-width);z-index:900;z-index:var(--z-sidebar)}.sidebar-nav{flex:1 1;padding:1rem 0}.nav-list{list-style:none;margin:0;padding:0}.nav-item{margin-bottom:.25rem}.nav-link{align-items:center;background:none;border:none;color:#333;color:var(--theme-text);cursor:pointer;display:flex;gap:.75rem;padding:.75rem 1rem;position:relative;text-align:left;transition:all .2s ease;transition:all var(--transition-duration) ease;width:100%}.nav-link:hover:not(.disabled){background-color:#0000001a}.nav-link.active{background-color:#2196f3;background-color:var(--theme-primary);color:#fff}.nav-link.active:before{background-color:#ffc107;background-color:var(--theme-secondary);bottom:0;content:"";left:0;position:absolute;top:0;width:4px}.nav-link.disabled{cursor:not-allowed;opacity:.5}.nav-icon{font-size:1.2rem;min-width:24px;text-align:center}.nav-text{flex:1 1;font-weight:500}.nav-badge{background-color:#ffc107;background-color:var(--theme-secondary);border-radius:10px;color:#333;color:var(--theme-text);font-size:.7rem;font-weight:600;padding:.2rem .4rem}.sidebar-footer{border-top:1px solid #0000001a;padding:1rem}.connection-status{color:#666;color:var(--theme-textSecondary);font-size:.9rem;gap:.5rem}.status-indicator{animation:pulse 2s infinite;background-color:#4caf50;border-radius:50%;height:8px;width:8px}.platform-main{background-color:#fff;background-color:var(--theme-background);flex:1 1;overflow:auto}.platform-notifications{display:flex;flex-direction:column;gap:.5rem;max-width:400px;position:fixed;right:1rem;top:calc(64px + 1rem);top:calc(var(--header-height) + 1rem);z-index:1100;z-index:var(--z-notifications)}.notification{animation:slideIn .3s ease;animation:slideIn var(--animation-duration) ease;background-color:#f5f5f5;background-color:var(--theme-surface);border:1px solid #0000001a;border-radius:8px;box-shadow:0 4px 12px #00000026}.notification-info{border-left:4px solid #2196f3}.notification-success{border-left:4px solid #4caf50}.notification-warning{border-left:4px solid #ff9800}.notification-error{border-left:4px solid #f44336}.notification-content{align-items:center;display:flex;justify-content:space-between;padding:1rem}.notification-message{flex:1 1;margin-right:.5rem}.notification-close{align-items:center;background:none;border:none;border-radius:50%;color:#666;color:var(--theme-textSecondary);cursor:pointer;display:flex;font-size:1.2rem;height:24px;justify-content:center;padding:0;transition:background-color .2s ease;transition:background-color var(--transition-duration) ease;width:24px}.notification-close:hover{background-color:#0000001a}@keyframes slideIn{0%{opacity:0;transform:translateX(100%)}to{opacity:1;transform:translateX(0)}}.theme-dark{--theme-primary:#64b5f6;--theme-secondary:#ffd54f;--theme-background:#121212;--theme-surface:#1e1e1e;--theme-text:#fff;--theme-textSecondary:#ccc}.theme-highContrast{--theme-primary:#000;--theme-secondary:#ff0;--theme-background:#fff;--theme-surface:#f0f0f0;--theme-text:#000;--theme-textSecondary:#000}@media (max-width:767.98px){:root{--header-height:var(--mobile-header-height,56px)}.platform-shell.mobile{font-size:14px;font-size:var(--font-size-sm,14px)}.platform-header{height:56px;height:var(--mobile-header-height,56px);padding:0 .5rem;padding:0 var(--spacing-sm,.5rem)}.platform-sidebar{box-shadow:2px 0 8px #00000026;height:calc(100vh - 64px);height:calc(100vh - var(--header-height));left:0;position:fixed;top:64px;top:var(--header-height);transform:translateX(-100%);transition:transform .3s ease;transition:transform var(--animation-duration) ease;z-index:900;z-index:var(--z-sidebar)}.platform-sidebar.open{transform:translateX(0)}.platform-main{padding-bottom:calc(60px + 1rem);padding-bottom:calc(var(--mobile-nav-height, 60px) + var(--spacing-md, 1rem));width:100%}.current-module{display:none}.platform-notifications{left:.5rem;left:var(--spacing-sm,.5rem);max-width:none;right:.5rem;right:var(--spacing-sm,.5rem);top:calc(64px + .5rem);top:calc(var(--header-height) + var(--spacing-sm, .5rem))}.platform-logo h1{font-size:1.125rem;font-size:var(--font-size-lg,1.125rem)}.sidebar-toggle{padding:.25rem;padding:var(--spacing-xs,.25rem)}.login-btn,.sidebar-toggle,.theme-toggle,.user-avatar{min-height:44px;min-height:var(--mobile-touch-target,44px);min-width:44px;min-width:var(--mobile-touch-target,44px)}.user-avatar{font-size:.875rem;font-size:var(--font-size-sm,.875rem);height:36px;width:36px}.theme-menu,.user-dropdown{left:.5rem;left:var(--spacing-sm,.5rem);margin-top:.25rem;margin-top:var(--spacing-xs,.25rem);max-width:none;position:fixed;right:.5rem;right:var(--spacing-sm,.5rem);top:64px;top:var(--header-height)}.nav-link{min-height:44px;min-height:var(--mobile-touch-target,44px);padding:1rem;padding:var(--spacing-md,1rem)}.nav-icon{font-size:1.125rem;font-size:var(--font-size-lg,1.125rem)}.nav-text{font-size:.875rem;font-size:var(--font-size-sm,.875rem)}}@media (min-width:768px) and (max-width:1023.98px){.platform-sidebar{width:224px;width:calc(var(--sidebar-width)*.8)}.current-module{font-size:.875rem;font-size:var(--font-size-sm,.875rem);padding:.25rem .5rem;padding:var(--spacing-xs,.25rem) var(--spacing-sm,.5rem)}.platform-notifications{max-width:350px}}@media (max-width:767.98px) and (orientation:landscape){:root{--header-height:48px}.platform-header{height:48px}.platform-logo h1{font-size:1rem;font-size:var(--font-size-base,1rem)}.sidebar-toggle,.theme-toggle,.user-avatar{min-height:40px;min-width:40px}.user-avatar{height:32px;width:32px}}@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.login-btn:focus,.nav-link:focus,.notification-close:focus,.sidebar-toggle:focus,.theme-toggle:focus,.user-avatar:focus{outline:2px solid #2196f3;outline:2px solid var(--theme-primary);outline-offset:2px}@media (prefers-contrast:high){.platform-shell{--theme-primary:#000;--theme-secondary:#ff0;--theme-background:#fff;--theme-surface:#f0f0f0;--theme-text:#000;--theme-textSecondary:#000}}.mobile-nav{background-color:var(--theme-surface);border-top:1px solid #0000001a;bottom:0;box-shadow:0 -2px 8px #0000001a;display:none;height:60px;height:var(--mobile-nav-height,60px);left:0;padding-bottom:0;padding-bottom:var(--mobile-safe-area-bottom,0);position:fixed;right:0;z-index:900;z-index:var(--z-sidebar,900)}.mobile-nav-list{align-items:stretch;display:flex;height:100%;list-style:none;margin:0;padding:0}.mobile-nav-item{display:flex;flex:1 1;min-width:0}.mobile-nav-link{align-items:center;background:none;border:none;color:var(--theme-textSecondary);cursor:pointer;display:flex;flex:1 1;flex-direction:column;font-size:.75rem;font-size:var(--font-size-xs,.75rem);font-weight:500;justify-content:center;min-height:44px;min-height:var(--mobile-touch-target,44px);overflow:hidden;padding:.25rem;padding:var(--spacing-xs,.25rem);position:relative;text-decoration:none;text-overflow:ellipsis;transition:color .2s ease;transition:color var(--transition-duration,.2s) ease}.mobile-nav-link:hover{background-color:#0000000d;color:var(--theme-primary)}.mobile-nav-link.active{background-color:#2196f31a;color:var(--theme-primary)}.mobile-nav-link.active:before{background-color:var(--theme-primary);border-radius:0 0 3px 3px;content:"";height:3px;left:50%;position:absolute;top:0;transform:translateX(-50%);width:24px}.mobile-nav-icon{display:block;font-size:1.2rem;line-height:1;margin-bottom:2px}.mobile-nav-text{font-size:inherit;line-height:1.2;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width:767.98px){.mobile-nav{display:block}.platform-main{padding-bottom:calc(60px + 1rem);padding-bottom:calc(var(--mobile-nav-height, 60px) + var(--spacing-md, 1rem))}}@media (max-width:767.98px) and (orientation:landscape){.mobile-nav{height:48px;height:calc(var(--mobile-nav-height, 60px)*.8)}.mobile-nav-link{padding:.25rem 2px;padding:var(--spacing-xs,.25rem) 2px}.mobile-nav-icon{font-size:1rem;margin-bottom:1px}.mobile-nav-text{font-size:.675rem;font-size:calc(var(--font-size-xs, .75rem)*.9)}}@media (hover:none) and (pointer:coarse){.mobile-nav-link{min-height:44px;min-height:var(--mobile-touch-target,44px);min-width:44px;min-width:var(--mobile-touch-target,44px)}.mobile-nav-link:hover{background-color:initial}.mobile-nav-link:active{background-color:#0000001a;transform:scale(.98)}}.theme-dark .mobile-nav{background-color:var(--theme-surface);border-top-color:#ffffff1a;box-shadow:0 -2px 8px #0000004d}.theme-dark .mobile-nav-link:hover{background-color:#ffffff0d}.theme-dark .mobile-nav-link.active{background-color:#64b5f633}.theme-highContrast .mobile-nav{border-top:2px solid var(--theme-text)}.theme-highContrast .mobile-nav-link{border:1px solid #0000}.theme-highContrast .mobile-nav-link:focus{border-color:var(--theme-primary);outline:none}.theme-highContrast .mobile-nav-link.active{background-color:var(--theme-primary);color:var(--theme-background)}.mobile-nav-link:focus{outline:2px solid var(--theme-primary);outline-offset:-2px;z-index:1}@media (prefers-reduced-motion:reduce){.mobile-nav-link{transition:none}.mobile-nav-link:active{transform:none}}@supports (padding:max(0px)){.mobile-nav{padding-bottom:max(.5rem,0);padding-bottom:max(var(--spacing-sm,.5rem),var(--mobile-safe-area-bottom,0));padding-left:0;padding-left:var(--mobile-safe-area-left,0);padding-right:0;padding-right:var(--mobile-safe-area-right,0)}}@media (max-width:359.98px){.mobile-nav-text{font-size:.6375rem;font-size:calc(var(--font-size-xs, .75rem)*.85)}.mobile-nav-icon{font-size:1.1rem}}@keyframes mobileNavActivate{0%{transform:scale(1)}50%{transform:scale(1.05)}to{transform:scale(1)}}.mobile-nav-link.active .mobile-nav-icon{animation:mobileNavActivate .3s ease-out}@media (prefers-reduced-motion:reduce){.mobile-nav-link.active .mobile-nav-icon{animation:none}}.offline-sync{font-family:inherit;left:1rem;position:fixed;top:calc(64px + 1rem);top:calc(var(--header-height, 64px) + 1rem);z-index:1100;z-index:var(--z-notifications,1100)}.sync-indicator{align-items:center;background-color:#f5f5f5;background-color:var(--theme-surface,#f5f5f5);border:1px solid #0000001a;border-radius:20px;box-shadow:0 2px 8px #0000001a;cursor:pointer;display:flex;font-size:.85rem;gap:.5rem;min-width:120px;padding:.5rem .75rem;transition:all .2s ease}.sync-indicator:hover{box-shadow:0 4px 12px #00000026;transform:translateY(-1px)}.sync-indicator.syncing{background-color:#e3f2fd;border-color:#2196f3;color:#1976d2}.sync-indicator.success{background-color:#e8f5e8;border-color:#4caf50;color:#2e7d32}.sync-indicator.error{background-color:#ffebee;border-color:#f44336;color:#c62828}.sync-indicator.offline{background-color:#fff3e0;border-color:#ff9800;color:#ef6c00}.sync-icon{font-size:1rem;line-height:1}.sync-text{font-weight:500;white-space:nowrap}.pending-count{background-color:#2196f3;background-color:var(--theme-primary,#2196f3);border-radius:10px;color:#fff;font-size:.7rem;font-weight:600;line-height:1;min-width:16px;padding:.2rem .4rem;text-align:center}.sync-details{animation:slideDown .2s ease-out;background-color:#f5f5f5;background-color:var(--theme-surface,#f5f5f5);border:1px solid #0000001a;border-radius:12px;box-shadow:0 8px 24px #00000026;left:0;margin-top:.5rem;max-width:400px;min-width:300px;position:absolute;top:100%;z-index:1}.sync-header{align-items:center;border-bottom:1px solid #0000001a;display:flex;justify-content:space-between;padding:1rem}.sync-header h4{color:#333;color:var(--theme-text,#333);font-size:1rem;font-weight:600;margin:0}.close-details{background:none;border:none;border-radius:4px;color:#666;color:var(--theme-textSecondary,#666);cursor:pointer;font-size:1.2rem;padding:.25rem;transition:background-color .2s ease}.close-details:hover{background-color:#0000001a}.sync-info{padding:1rem}.status-row{align-items:center;display:flex;font-size:.9rem;justify-content:space-between;margin-bottom:.5rem}.status-row:last-child{margin-bottom:0}.status-row span:first-child{color:#666;color:var(--theme-textSecondary,#666);font-weight:500}.status.online{color:#4caf50;font-weight:600}.status.offline{color:#f44336;font-weight:600}.status.syncing{color:#2196f3;font-weight:600}.status.success{color:#4caf50;font-weight:600}.status.error{color:#f44336;font-weight:600}.pending-data{padding:0 1rem 1rem}.pending-data h5{color:#333;color:var(--theme-text,#333);font-size:.9rem;font-weight:600;margin:0 0 .75rem}.pending-data ul{list-style:none;margin:0;padding:0}.pending-item{align-items:center;background-color:#00000005;border-radius:6px;display:flex;font-size:.85rem;gap:.5rem;margin-bottom:.25rem;padding:.5rem}.pending-item:last-child{margin-bottom:0}.pending-item.practice{border-left:3px solid #2196f3}.pending-item.analytics{border-left:3px solid #ff9800}.item-type{font-size:1rem}.item-description{color:#333;color:var(--theme-text,#333);flex:1 1;font-weight:500}.item-time{font-size:.8rem}.item-time,.more-items{color:#666;color:var(--theme-textSecondary,#666)}.more-items{font-size:.85rem;font-style:italic;padding:.5rem;text-align:center}.sync-actions{border-top:1px solid #0000001a;display:flex;gap:.5rem;padding:1rem}.sync-button{background-color:#2196f3;background-color:var(--theme-primary,#2196f3);border:none;border-radius:6px;color:#fff;cursor:pointer;flex:1 1;font-size:.9rem;font-weight:500;padding:.75rem 1rem;transition:background-color .2s ease}.sync-button:hover:not(:disabled){background-color:#1976d2;background-color:var(--theme-primary,#1976d2);filter:brightness(.9)}.sync-button:disabled{cursor:not-allowed;opacity:.6}.clear-button{background-color:initial;border:1px solid #0003;border-radius:6px;color:#666;color:var(--theme-textSecondary,#666);cursor:pointer;font-size:.9rem;font-weight:500;padding:.75rem 1rem;transition:all .2s ease}.clear-button:hover{background-color:#0000000d;border-color:#0000004d}.offline-notice{background-color:#fff3e0;border-radius:0 0 12px 12px;border-top:1px solid #0000001a;padding:1rem}.offline-notice p{color:#ef6c00;font-size:.85rem;line-height:1.4;margin:0}@media (max-width:767.98px){.offline-sync{left:.5rem;right:.5rem;top:calc(56px + .5rem);top:calc(var(--mobile-header-height, 56px) + .5rem)}.sync-indicator{font-size:.9rem;justify-content:center;padding:.75rem 1rem;width:100%}.sync-details{left:.5rem;max-width:none;min-width:auto;position:fixed;right:.5rem;top:calc(56px + 4rem);top:calc(var(--mobile-header-height, 56px) + 4rem)}.sync-header,.sync-info{padding:.75rem}.pending-data{padding:0 .75rem .75rem}.sync-actions{flex-direction:column;padding:.75rem}.clear-button,.sync-button{min-height:44px;min-height:var(--mobile-touch-target,44px);width:100%}.pending-item{padding:.75rem .5rem}}@media (min-width:768px) and (max-width:1023.98px){.sync-details{max-width:350px;min-width:280px}}.theme-dark .sync-indicator{color:#fff;color:var(--theme-text,#fff)}.theme-dark .sync-details,.theme-dark .sync-indicator{background-color:#1e1e1e;background-color:var(--theme-surface,#1e1e1e);border-color:#ffffff1a}.theme-dark .sync-header{border-bottom-color:#ffffff1a}.theme-dark .sync-actions{border-top-color:#ffffff1a}.theme-dark .pending-item{background-color:#ffffff0d}.theme-dark .clear-button{border-color:#fff3;color:#ccc;color:var(--theme-textSecondary,#ccc)}.theme-dark .clear-button:hover{background-color:#ffffff1a;border-color:#ffffff4d}@media (prefers-contrast:high){.clear-button,.sync-button,.sync-details,.sync-indicator{border-width:2px}}@media (prefers-reduced-motion:reduce){.sync-indicator{transition:none}.sync-indicator:hover{transform:none}.sync-details{animation:none}}.branding-manager{margin:0 auto;max-width:1200px;padding:24px}.branding-header{margin-bottom:32px}.branding-header h1{color:#3b82f6;color:var(--primary-color,#3b82f6);font-size:2rem;font-weight:700;margin-bottom:8px}.branding-header p{color:#6b7280;color:var(--secondary-color,#6b7280);font-size:1.1rem}.branding-tabs{border-bottom:2px solid #e5e7eb;display:flex;margin-bottom:32px}.tab{border-bottom:2px solid #0000;color:#6b7280;color:var(--secondary-color,#6b7280);font-size:1rem;font-weight:500;padding:12px 24px}.tab.active,.tab:hover{color:#3b82f6;color:var(--primary-color,#3b82f6)}.tab.active{border-bottom-color:#3b82f6;border-bottom-color:var(--primary-color,#3b82f6)}.branding-content{background:#fff;border-radius:12px;box-shadow:0 4px 6px #0000001a;padding:32px}.branding-config-panel h2{color:#3b82f6;color:var(--primary-color,#3b82f6);font-size:1.5rem;font-weight:600;margin-bottom:24px}.form-grid{grid-gap:24px;display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));margin-bottom:32px}.form-group{display:flex;flex-direction:column}.form-group.full-width{grid-column:1/-1}.form-group label{color:#374151;font-weight:500;margin-bottom:8px}.form-group input,.form-group select,.form-group textarea{border:2px solid #e5e7eb;border-radius:8px;font-size:1rem;padding:12px;transition:border-color .2s ease}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#3b82f6;border-color:var(--primary-color,#3b82f6);outline:none}.form-group input[type=color]{cursor:pointer;height:48px;padding:4px}.save-button{background:#3b82f6;background:var(--primary-color,#3b82f6);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;padding:12px 24px;transition:background-color .2s ease}.save-button:hover{background:#10b981;background:var(--accent-color,#10b981)}.themes-grid{grid-gap:24px;display:grid;gap:24px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.theme-card{background:#f9fafb;border:2px solid #e5e7eb;border-radius:12px;padding:24px;transition:border-color .2s ease}.theme-card:hover{border-color:#3b82f6;border-color:var(--primary-color,#3b82f6)}.theme-card h3{color:#3b82f6;color:var(--primary-color,#3b82f6);font-size:1.25rem;font-weight:600;margin-bottom:16px}.theme-details p{color:#374151;margin-bottom:8px}.default-badge{background:#10b981;background:var(--accent-color,#10b981);border-radius:4px;color:#fff;font-size:.75rem;font-weight:600;padding:4px 8px}.flags-list{display:flex;flex-direction:column;gap:16px}.flag-item{align-items:center;background:#f9fafb;border:2px solid #e5e7eb;border-radius:12px;display:flex;justify-content:space-between;padding:20px}.flag-info h3{color:#3b82f6;color:var(--primary-color,#3b82f6);font-size:1.125rem;font-weight:600;margin-bottom:8px}.flag-info p{color:#6b7280;margin-bottom:8px}.flag-key{background:#e5e7eb;border-radius:4px;font-family:monospace;font-size:.875rem;padding:4px 8px}.toggle-switch{display:inline-block;height:34px;position:relative;width:60px}.toggle-switch input{height:0;opacity:0;width:0}.slider{background-color:#ccc;border-radius:34px;bottom:0;cursor:pointer;left:0;right:0;top:0}.slider,.slider:before{position:absolute;transition:.4s}.slider:before{background-color:#fff;border-radius:50%;bottom:4px;content:"";height:26px;left:4px;width:26px}input:checked+.slider{background-color:#3b82f6;background-color:var(--primary-color,#3b82f6)}input:checked+.slider:before{transform:translateX(26px)}.domains-list{display:flex;flex-direction:column;gap:16px}.domain-item{align-items:center;background:#f9fafb;border:2px solid #e5e7eb;border-radius:12px;display:flex;justify-content:space-between;padding:20px}.domain-info h3{color:#3b82f6;color:var(--primary-color,#3b82f6);font-size:1.125rem;font-weight:600;margin-bottom:8px}.domain-info p{color:#6b7280;margin-bottom:4px}.domain-actions{display:flex;gap:12px}.ssl-button,.verify-button{background:#0000;border:2px solid #3b82f6;border:2px solid var(--primary-color,#3b82f6);border-radius:6px;color:#3b82f6;color:var(--primary-color,#3b82f6);cursor:pointer;font-weight:500;padding:8px 16px;transition:all .2s ease}.ssl-button:hover,.verify-button:hover{background:#3b82f6;background:var(--primary-color,#3b82f6);color:#fff}.error,.loading{font-size:1.125rem;padding:48px;text-align:center}.error{color:#dc2626}.loading{color:#6b7280;color:var(--secondary-color,#6b7280)}.auth-loading-container{align-items:center;display:flex;justify-content:center;min-height:50vh;padding:2rem}.auth-loading-spinner{align-items:center;display:flex;flex-direction:column;gap:1rem;text-align:center}.spinner{animation:spin 1s linear infinite;border:3px solid #f3f4f6;border-radius:50%;border-top-color:#667eea;height:2rem;width:2rem}.auth-loading-spinner p{color:#6b7280;font-size:.875rem;margin:0}.access-denied-container{align-items:center;display:flex;justify-content:center;min-height:50vh;padding:2rem}.access-denied-content{background:#fff;border-radius:12px;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;max-width:400px;padding:2rem;text-align:center}.access-denied-content h2{color:#dc2626;font-size:1.5rem;font-weight:700;margin:0 0 1rem}.access-denied-content p{color:#6b7280;font-size:.875rem;line-height:1.5;margin:.5rem 0}.back-button{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:.875rem;font-weight:600;margin-top:1.5rem;padding:.75rem 1.5rem;transition:all .2s ease-in-out}.back-button:focus,.back-button:hover{box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;outline:2px solid #667eea;outline-offset:2px;transform:translateY(-1px)}@media (max-width:480px){.access-denied-container,.auth-loading-container{min-height:40vh;padding:1rem}.access-denied-content{padding:1.5rem}.access-denied-content h2{font-size:1.25rem}}@media (prefers-reduced-motion:reduce){.spinner{animation:none}.back-button:hover{transform:none}}.loading-screen{background:#fff;background:var(--theme-background,#fff);bottom:0;left:0;position:fixed;right:0;top:0;transition:opacity .3s ease;transition:opacity var(--transition-duration,.3s) ease;z-index:9999}.loading-screen.minimal{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#ffffffe6}.loading-screen.timeout{background:#fff;background:var(--theme-background,#fff)}.loading-content{max-width:400px;padding:2rem;text-align:center}.loading-spinner{height:60px;margin:0 auto 2rem;position:relative;width:60px}.spinner-ring{animation:spin 1.2s linear infinite;border:3px solid #0000;border-radius:50%;border-top-color:#2196f3;border-top:3px solid var(--theme-primary,#2196f3);height:100%;position:absolute;width:100%}.spinner-ring:nth-child(2){animation-delay:-.4s;border-top-color:#ffc107;border-top-color:var(--theme-secondary,#ffc107);height:80%;left:10%;top:10%;width:80%}.spinner-ring:nth-child(3){animation-delay:-.8s;border-top-color:#2196f3;border-top-color:var(--theme-primary,#2196f3);height:60%;left:20%;top:20%;width:60%}@media (prefers-reduced-motion:reduce){.loading-spinner,.spinner-ring{animation:none}.spinner-ring{border-top:3px solid #2196f3;border-top:3px solid var(--theme-primary,#2196f3);opacity:.7}.spinner-ring:nth-child(2){opacity:.5}.spinner-ring:nth-child(3){opacity:.3}}.loading-text{color:#333;color:var(--theme-text,#333);font-size:1.1rem;font-weight:500}.loading-text,.progress-container{margin-bottom:1.5rem}.progress-bar{background:#f5f5f5;background:var(--theme-surface,#f5f5f5);border-radius:2px;height:4px;margin-bottom:.5rem;overflow:hidden;width:100%}.progress-fill{background:linear-gradient(90deg,#2196f3,#ffc107);background:linear-gradient(90deg,var(--theme-primary,#2196f3),var(--theme-secondary,#ffc107));border-radius:2px;height:100%;transition:width .3s ease}.progress-text{color:#666;color:var(--theme-textSecondary,#666);font-size:.9rem}.loading-tips{background:#f5f5f5;background:var(--theme-surface,#f5f5f5);border-left:4px solid #2196f3;border-left:4px solid var(--theme-primary,#2196f3);border-radius:8px;margin-top:2rem;padding:1rem}.loading-tips p{color:#666;color:var(--theme-textSecondary,#666);font-size:.9rem;margin:0}.timeout-icon{font-size:3rem;margin-bottom:1rem}.timeout-message h2{color:#333;color:var(--theme-text,#333);font-size:1.3rem;margin-bottom:.5rem}.timeout-message p{color:#666;color:var(--theme-textSecondary,#666);margin-bottom:2rem}.retry-button{background:#2196f3;background:var(--theme-primary,#2196f3);border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:1rem;padding:.75rem 1.5rem;transition:background-color .2s ease}.retry-button:hover{background:#1976d2;background:var(--theme-primary-dark,#1976d2)}.retry-button:focus{outline:2px solid #2196f3;outline:2px solid var(--theme-primary,#2196f3);outline-offset:2px}.route-transition-loader{background:#0000;height:3px;left:0;position:fixed;right:0;top:0;z-index:9998}.transition-bar{animation:slideProgress .3s ease-out;animation:slideProgress var(--transition-duration,.3s) ease-out;background:linear-gradient(90deg,#2196f3,#ffc107);background:linear-gradient(90deg,var(--theme-primary,#2196f3),var(--theme-secondary,#ffc107));height:100%;transform-origin:left}.transition-info{background:#f5f5f5;background:var(--theme-surface,#f5f5f5);border-radius:0 0 6px 6px;box-shadow:0 2px 4px #0000001a;color:#666;color:var(--theme-textSecondary,#666);font-size:.8rem;padding:.5rem 1rem;position:absolute;right:1rem;top:100%}@keyframes slideProgress{0%{transform:scaleX(0)}50%{transform:scaleX(.7)}to{transform:scaleX(1)}}.route-transition-loader.reduced-motion .transition-bar{animation:none;background:#2196f3;background:var(--theme-primary,#2196f3)}.component-skeleton{animation:pulse 1.5s ease-in-out infinite;padding:1rem}.component-skeleton.reduced-motion{animation:none;opacity:.7}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}.skeleton-line{animation:shimmer 1.5s infinite;background:linear-gradient(90deg,#f5f5f5 25%,#ffffff80 50%,#f5f5f5 75%);background:linear-gradient(90deg,var(--theme-surface,#f5f5f5) 25%,#ffffff80 50%,var(--theme-surface,#f5f5f5) 75%);background-size:200% 100%;border-radius:4px;height:1rem;margin-bottom:.75rem}.skeleton-line.short{width:60%}.skeleton-line.skeleton-title{height:1.5rem;margin-bottom:1rem;width:80%}.skeleton-line.skeleton-subtitle{height:1rem;margin-bottom:1.5rem;width:60%}.skeleton-line.skeleton-button{border-radius:6px;display:inline-block;height:2.5rem;margin-right:1rem;width:120px}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.component-skeleton.reduced-motion .skeleton-line{animation:none;background:#f5f5f5;background:var(--theme-surface,#f5f5f5)}.skeleton-avatar{animation:shimmer 1.5s infinite;background:linear-gradient(90deg,#f5f5f5 25%,#ffffff80 50%,#f5f5f5 75%);background:linear-gradient(90deg,var(--theme-surface,#f5f5f5) 25%,#ffffff80 50%,var(--theme-surface,#f5f5f5) 75%);background-size:200% 100%;border-radius:50%;height:60px;margin:0 auto 1rem;width:60px}.skeleton-dashboard{margin:0 auto;max-width:1200px}.skeleton-header{margin-bottom:2rem}.skeleton-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.skeleton-card{border:1px solid #f5f5f5;border:1px solid var(--theme-surface,#f5f5f5);border-radius:8px;padding:1.5rem}.skeleton-card-title{height:1.2rem;margin-bottom:1rem}.skeleton-card-content{height:.9rem;margin-bottom:.5rem}.skeleton-asl-world{margin:0 auto;max-width:800px}.skeleton-video-area{margin-bottom:2rem}.skeleton-video-placeholder{animation:shimmer 1.5s infinite;background:linear-gradient(90deg,#f5f5f5 25%,#ffffff80 50%,#f5f5f5 75%);background:linear-gradient(90deg,var(--theme-surface,#f5f5f5) 25%,#ffffff80 50%,var(--theme-surface,#f5f5f5) 75%);background-size:200% 100%;border-radius:8px;height:400px;width:100%}.skeleton-controls{display:flex;gap:1rem;justify-content:center}@media (max-width:768px){.loading-content{max-width:300px;padding:1rem}.loading-spinner{height:50px;width:50px}.loading-text{font-size:1rem}.skeleton-grid{grid-template-columns:1fr}.skeleton-video-placeholder{height:250px}}@media (prefers-contrast:high){.loading-screen{background:#fff;border:2px solid #000}.loading-text{color:#000;font-weight:700}.spinner-ring{border-top-color:#000}.progress-fill{background:#000}.skeleton-line{background:#e0e0e0}}.performance-monitor-toggle{background:#2196f3;background:var(--theme-primary,#2196f3);border:none;border-radius:50%;bottom:20px;box-shadow:0 4px 12px #00000026;color:#fff;cursor:pointer;font-size:1.2rem;height:50px;position:fixed;right:20px;transition:all .2s ease;width:50px;z-index:1000}.performance-monitor-toggle:hover{box-shadow:0 6px 16px #0003;transform:scale(1.1)}.performance-monitor{background:#fff;background:var(--theme-background,#fff);border:1px solid #e0e0e0;border:1px solid var(--theme-surface,#e0e0e0);border-radius:8px;bottom:20px;box-shadow:0 8px 32px #00000026;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;max-height:600px;overflow:hidden;position:fixed;right:20px;width:400px;z-index:1001}.performance-monitor-header{align-items:center;background:#2196f3;background:var(--theme-primary,#2196f3);color:#fff;display:flex;justify-content:space-between;padding:1rem}.performance-monitor-header h3{font-size:1rem;font-weight:600;margin:0}.close-button{align-items:center;background:none;border:none;border-radius:4px;color:#fff;cursor:pointer;display:flex;font-size:1.5rem;height:24px;justify-content:center;padding:0;transition:background-color .2s ease;width:24px}.close-button:hover{background:#fff3}.performance-monitor-tabs{background:#f5f5f5;background:var(--theme-surface,#f5f5f5);border-bottom:1px solid #e0e0e0;border-bottom:1px solid var(--theme-surface,#e0e0e0);display:flex}.tab{background:none;border:none;color:#666;color:var(--theme-textSecondary,#666);cursor:pointer;flex:1 1;font-size:.9rem;padding:.75rem 1rem;transition:all .2s ease}.tab:hover{background:#0000000d}.tab.active{background:#fff;background:var(--theme-background,#fff);border-bottom:2px solid #2196f3;border-bottom:2px solid var(--theme-primary,#2196f3);color:#333;color:var(--theme-text,#333);font-weight:600}.performance-monitor-content{max-height:500px;overflow-y:auto;padding:1rem}.performance-status{margin-bottom:1rem;text-align:center}.status-indicator{border-radius:20px;display:inline-block;font-size:.8rem;font-weight:700;letter-spacing:.5px;padding:.5rem 1rem;text-transform:uppercase}.status-indicator.excellent{background:#4caf50;color:#fff}.status-indicator.good{background:#8bc34a;color:#fff}.status-indicator.fair{background:#ff9800;color:#fff}.status-indicator.poor{background:#f44336;color:#fff}.status-indicator.unknown{background:#9e9e9e;color:#fff}.metrics-grid{grid-gap:1rem;gap:1rem;grid-template-columns:1fr 1fr;margin-bottom:1.5rem}.metric-card{background:#f5f5f5;background:var(--theme-surface,#f5f5f5);border-radius:6px;padding:1rem;text-align:center}.metric-card h4{color:#666;color:var(--theme-textSecondary,#666);font-size:.8rem;letter-spacing:.5px;margin:0 0 .5rem;text-transform:uppercase}.metric-value{color:#2196f3;color:var(--theme-primary,#2196f3);font-size:1.5rem;font-weight:700;margin-bottom:.25rem}.metric-label{color:var(--theme-textSecondary,#666);font-size:.75rem}.recent-metrics h4{color:#333;color:var(--theme-text,#333);font-size:.9rem;margin:0 0 1rem}.metrics-list{max-height:200px;overflow-y:auto}.metric-item{border-bottom:1px solid #e0e0e0;border-bottom:1px solid var(--theme-surface,#e0e0e0);padding:.5rem 0}.metric-name{color:#333;color:var(--theme-text,#333);flex:1 1;font-size:.8rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.metric-duration{font-size:.8rem;font-weight:600}.metric-duration,.no-metrics{color:#666;color:var(--theme-textSecondary,#666)}.no-metrics{font-style:italic;padding:2rem 0;text-align:center}.memory-overview h4{color:#333;color:var(--theme-text,#333);font-size:.9rem;margin:0 0 1rem}.memory-stats{background:#f5f5f5;background:var(--theme-surface,#f5f5f5);border-radius:6px;margin-bottom:1rem;padding:1rem}.memory-stat{display:flex;justify-content:space-between;margin-bottom:.5rem}.memory-stat:last-child{margin-bottom:1rem}.memory-stat label{color:#666;color:var(--theme-textSecondary,#666);font-size:.8rem}.memory-stat span{color:#333;color:var(--theme-text,#333);font-size:.8rem;font-weight:600}.memory-usage-bar{background:#fff;background:var(--theme-background,#fff);border-radius:4px;height:8px;overflow:hidden;width:100%}.memory-usage-fill{background:linear-gradient(90deg,#4caf50,#ff9800,#f44336);height:100%;transition:width .3s ease}.no-memory-data{color:#666;color:var(--theme-textSecondary,#666);font-style:italic;padding:2rem 0;text-align:center}.memory-test-results{margin-top:1rem}.memory-test-results h4{color:#333;color:var(--theme-text,#333);font-size:.9rem;margin:0 0 1rem}.memory-test-stats{background:#f5f5f5;background:var(--theme-surface,#f5f5f5);border-radius:6px;padding:1rem}.memory-test-stat{display:flex;justify-content:space-between;margin-bottom:.5rem}.memory-test-stat:last-child{margin-bottom:0}.memory-test-stat label{color:#666;color:var(--theme-textSecondary,#666);font-size:.8rem}.memory-test-stat span{font-size:.8rem;font-weight:600}.memory-test-stat span.good{color:#4caf50}.memory-test-stat span.warning{color:#ff9800}.test-controls{display:flex;gap:.5rem;margin-bottom:1.5rem}.test-button{border:none;border-radius:6px;cursor:pointer;flex:1 1;font-size:.9rem;padding:.75rem 1rem;transition:all .2s ease}.test-button:disabled{cursor:not-allowed;opacity:.6}.test-button.primary{background:#2196f3;background:var(--theme-primary,#2196f3);color:#fff}.test-button.primary:hover:not(:disabled){background:#1976d2;background:var(--theme-primary-dark,#1976d2)}.test-button.secondary{background:#f5f5f5;background:var(--theme-surface,#f5f5f5);border:1px solid #e0e0e0;border:1px solid var(--theme-surface,#e0e0e0);color:#333;color:var(--theme-text,#333)}.test-button.secondary:hover:not(:disabled){background:#fff;background:var(--theme-background,#fff)}.test-results h4{color:#333;color:var(--theme-text,#333);font-size:.9rem;margin:0 0 1rem}.test-section{background:#f5f5f5;background:var(--theme-surface,#f5f5f5);border-radius:6px;margin-bottom:1rem;padding:1rem}.test-section h5{color:#333;color:var(--theme-text,#333);font-size:.8rem;letter-spacing:.5px;margin:0 0 .5rem;text-transform:uppercase}.test-summary{display:flex;flex-wrap:wrap;gap:.5rem}.test-summary span{background:#fff;background:var(--theme-background,#fff);border-radius:4px;color:#666;color:var(--theme-textSecondary,#666);font-size:.75rem;padding:.25rem .5rem}.component-stats{max-height:150px;overflow-y:auto}.component-stat{align-items:center;border-bottom:1px solid #fff;border-bottom:1px solid var(--theme-background,#fff);display:flex;justify-content:space-between;padding:.25rem 0}.component-stat:last-child{border-bottom:none}.component-name{color:#333;color:var(--theme-text,#333);flex:1 1;font-size:.75rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.component-time{color:#666;color:var(--theme-textSecondary,#666);font-size:.75rem;font-weight:600}@media (max-width:768px){.performance-monitor{max-width:400px;width:calc(100vw - 40px)}.metrics-grid{grid-template-columns:1fr}.test-controls{flex-direction:column}}@media (prefers-contrast:high){.performance-monitor{border:2px solid #000}.metric-card{border:1px solid #000}.status-indicator{border:2px solid #000}}:root{--breakpoint-xs:320px;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--breakpoint-xxl:1400px;--spacing-xs:0.25rem;--spacing-sm:0.5rem;--spacing-md:1rem;--spacing-lg:1.5rem;--spacing-xl:2rem;--spacing-xxl:3rem;--font-size-xs:0.75rem;--font-size-sm:0.875rem;--font-size-base:1rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--font-size-3xl:1.875rem;--font-size-4xl:2.25rem;--mobile-header-height:56px;--mobile-nav-height:60px;--mobile-touch-target:44px;--mobile-safe-area-top:env(safe-area-inset-top);--mobile-safe-area-bottom:env(safe-area-inset-bottom);--mobile-safe-area-left:env(safe-area-inset-left);--mobile-safe-area-right:env(safe-area-inset-right);--container-sm:540px;--container-md:720px;--container-lg:960px;--container-xl:1140px;--container-xxl:1320px}.container{margin-left:auto;margin-right:auto}.container,.container-fluid{padding-left:1rem;padding-left:var(--spacing-md);padding-right:1rem;padding-right:var(--spacing-md);width:100%}.row{display:flex;flex-wrap:wrap;margin-left:-.5rem;margin-left:calc(var(--spacing-md)*-.5);margin-right:-.5rem;margin-right:calc(var(--spacing-md)*-.5)}.col{flex:1 0;padding-left:.5rem;padding-left:calc(var(--spacing-md)*.5);padding-right:.5rem;padding-right:calc(var(--spacing-md)*.5)}.d-none{display:none!important}.d-block{display:block!important}.d-flex{display:flex!important}.d-grid{display:grid!important}.text-left{text-align:left!important}.text-center{text-align:center!important}.text-right{text-align:right!important}.m-0{margin:0!important}.m-1{margin:.25rem!important;margin:var(--spacing-xs)!important}.m-2{margin:.5rem!important;margin:var(--spacing-sm)!important}.m-3{margin:1rem!important;margin:var(--spacing-md)!important}.m-4{margin:1.5rem!important;margin:var(--spacing-lg)!important}.m-5{margin:2rem!important;margin:var(--spacing-xl)!important}.p-0{padding:0!important}.p-1{padding:.25rem!important;padding:var(--spacing-xs)!important}.p-2{padding:.5rem!important;padding:var(--spacing-sm)!important}.p-3{padding:1rem!important;padding:var(--spacing-md)!important}.p-4{padding:1.5rem!important;padding:var(--spacing-lg)!important}.p-5{padding:2rem!important;padding:var(--spacing-xl)!important}.touch-target{align-items:center;display:flex;justify-content:center;min-height:44px;min-height:var(--mobile-touch-target);min-width:44px;min-width:var(--mobile-touch-target)}@media (max-width:767.98px){:root{--header-height:var(--mobile-header-height);--base-font-size:14px}.container{padding-left:.5rem;padding-left:var(--spacing-sm);padding-right:.5rem;padding-right:var(--spacing-sm)}.mobile-nav{background-color:var(--theme-surface);border-top:1px solid #0000001a;bottom:0;height:60px;height:var(--mobile-nav-height);left:0;padding-bottom:env(safe-area-inset-bottom);padding-bottom:var(--mobile-safe-area-bottom);position:fixed;right:0;z-index:var(--z-sidebar)}.mobile-nav-list{display:flex;height:100%;list-style:none;margin:0;padding:0}.mobile-nav-item,.mobile-nav-link{display:flex;flex:1 1}.mobile-nav-link{align-items:center;color:var(--theme-textSecondary);flex-direction:column;font-size:.75rem;font-size:var(--font-size-xs);justify-content:center;min-height:44px;min-height:var(--mobile-touch-target);padding:.25rem;padding:var(--spacing-xs);text-decoration:none;transition:color var(--transition-duration) ease}.mobile-nav-link.active{color:var(--theme-primary)}.mobile-nav-icon{font-size:1.2rem;margin-bottom:2px}.d-sm-none{display:none!important}.d-sm-block{display:block!important}.d-sm-flex{display:flex!important}.text-sm-left{text-align:left!important}.text-sm-center{text-align:center!important}.text-sm-right{text-align:right!important}.m-sm-0{margin:0!important}.m-sm-1{margin:.25rem!important;margin:var(--spacing-xs)!important}.m-sm-2{margin:.5rem!important;margin:var(--spacing-sm)!important}.m-sm-3{margin:1rem!important;margin:var(--spacing-md)!important}.p-sm-0{padding:0!important}.p-sm-1{padding:.25rem!important;padding:var(--spacing-xs)!important}.p-sm-2{padding:.5rem!important;padding:var(--spacing-sm)!important}.p-sm-3{padding:1rem!important;padding:var(--spacing-md)!important}}@media (min-width:768px) and (max-width:991.98px){.container{max-width:720px;max-width:var(--container-md)}.d-md-none{display:none!important}.d-md-block{display:block!important}.d-md-flex{display:flex!important}.text-md-left{text-align:left!important}.text-md-center{text-align:center!important}.text-md-right{text-align:right!important}}@media (min-width:992px){.container{max-width:960px;max-width:var(--container-lg)}.d-lg-none{display:none!important}.d-lg-block{display:block!important}.d-lg-flex{display:flex!important}.text-lg-left{text-align:left!important}.text-lg-center{text-align:center!important}.text-lg-right{text-align:right!important}}@media (min-width:1200px){.container{max-width:1140px;max-width:var(--container-xl)}.d-xl-none{display:none!important}.d-xl-block{display:block!important}.d-xl-flex{display:flex!important}}@media (min-width:1400px){.container{max-width:1320px;max-width:var(--container-xxl)}.d-xxl-none{display:none!important}.d-xxl-block{display:block!important}.d-xxl-flex{display:flex!important}}@media (hover:none) and (pointer:coarse){.btn,.nav-link,.touch-target,button{min-height:44px;min-height:var(--mobile-touch-target);min-width:44px;min-width:var(--mobile-touch-target)}.btn:hover,.nav-link:hover,button:hover{background-color:initial;transform:none}.btn:active,.nav-link:active,button:active{opacity:.8;transform:scale(.98)}}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){.icon,.logo{image-rendering:-webkit-optimize-contrast;image-rendering:crisp-edges}}@media (max-width:767.98px) and (orientation:landscape){:root{--mobile-header-height:48px;--mobile-nav-height:48px}.mobile-nav-link{font-size:.75rem;font-size:var(--font-size-xs)}.mobile-nav-icon{font-size:1rem}}@media print{.mobile-nav,.platform-header,.platform-notifications,.platform-sidebar{display:none!important}.platform-main{margin:0!important;padding:0!important}*{background:#0000!important;box-shadow:none!important;color:#000!important}}@media (max-width:767.98px){.accessibility-large-text{font-size:1.1em;line-height:1.5}.nav-link:focus,button:focus,input:focus,select:focus,textarea:focus{outline:3px solid var(--theme-primary);outline-offset:2px}.skip-link{background:var(--theme-primary);border-radius:4px;color:#fff;left:6px;padding:8px;position:absolute;text-decoration:none;top:-40px;z-index:9999}.skip-link:focus{top:6px}}@media (prefers-color-scheme:dark){@media (max-width:767.98px){.mobile-nav{background-color:var(--theme-surface);border-top-color:#ffffff1a}}}@media (prefers-reduced-motion:reduce){.btn,.mobile-nav-link,button{animation:none!important;transition:none!important}}@supports (padding:max(0px)){.platform-header{padding-left:max(1rem,env(safe-area-inset-left));padding-left:max(1rem,var(--mobile-safe-area-left));padding-right:max(1rem,env(safe-area-inset-right));padding-right:max(1rem,var(--mobile-safe-area-right));padding-top:env(safe-area-inset-top);padding-top:var(--mobile-safe-area-top)}.mobile-nav{padding-bottom:max(.5rem,env(safe-area-inset-bottom));padding-bottom:max(var(--spacing-sm),var(--mobile-safe-area-bottom));padding-left:env(safe-area-inset-left);padding-left:var(--mobile-safe-area-left);padding-right:env(safe-area-inset-right);padding-right:var(--mobile-safe-area-right)}.platform-main{padding-bottom:max(60px,env(safe-area-inset-bottom));padding-bottom:max(var(--mobile-nav-height),var(--mobile-safe-area-bottom))}}.loading-screen{align-items:center;background-color:#f5f5f5;color:#333;display:flex;flex-direction:column;justify-content:center;min-height:100vh}.loading-screen p{color:#666;font-size:1.1rem;margin-top:1rem}.App{background-color:#f5f5f5;display:flex;flex-direction:column;min-height:100vh;text-align:center}.App-header{background-color:#282c34;color:#fff;padding:20px}.App-header h1{font-size:2.5rem;margin:0 0 10px}.App-header p{font-size:1.2rem;margin:0;opacity:.8}.App-main{align-items:center;display:flex;flex:1 1;flex-direction:column;padding:20px}.control-panel{grid-gap:30px;border-radius:12px;box-shadow:0 4px 20px #0000001a;display:grid;gap:30px;grid-template-columns:1fr 1fr;grid-template-rows:auto auto;max-width:800px;padding:30px;width:100%}.connection-section{text-align:left}.connection-section h2{color:#333;font-size:1.4rem;margin:0 0 15px}.status-indicator{align-items:center;display:flex;gap:10px;margin-bottom:15px}.status-dot{border-radius:50%;display:inline-block;height:12px;width:12px}.status-text{color:#666}.test-backend-btn{background-color:#2196f3;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:1rem;font-weight:500;padding:12px 24px;transition:background-color .2s}.test-backend-btn:hover:not(:disabled){background-color:#1976d2}.test-backend-btn:disabled{background-color:#ccc;cursor:not-allowed}.message-area{text-align:left}.message-area h3{color:#333;font-size:1.2rem;margin:0 0 15px}.message-display{align-items:center;background-color:#f8f9fa;border:1px solid #e9ecef;border-radius:6px;display:flex;min-height:60px;padding:15px}.message{font-size:.95rem;line-height:1.4;margin:0}.message.connected{color:#4caf50;font-weight:500}.message.error{color:#f44336;font-weight:500}.message.placeholder{color:#999;font-style:italic}.video-area{grid-column:1/-1;text-align:left}.video-area h3{color:#333;font-size:1.2rem;margin:0 0 15px}.video-placeholder p{color:#666;font-style:italic;margin:0}.video-controls{margin-bottom:15px}.webcam-toggle-btn{background-color:#4caf50;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:1rem;font-weight:500;padding:12px 24px;transition:background-color .2s}.webcam-toggle-btn:hover{background-color:#45a049}.webcam-error{background-color:#ffebee;border:1px solid #ffcdd2;border-radius:6px;margin-bottom:15px;padding:10px}.error-text{color:#d32f2f;font-size:.9rem;margin:0}.webcam-capture{background-color:#fafafa;border:1px solid #ddd;border-radius:8px;padding:15px}.webcam-status{align-items:center;display:flex;gap:10px;margin-bottom:15px}.video-container{align-items:center;background-color:#000;border-radius:6px;display:flex;justify-content:center;min-height:300px}.video-placeholder{background-color:#f0f0f0;border:2px dashed #ccc;border-radius:8px;box-sizing:border-box;padding:40px;width:100%}.video-placeholder.error{background-color:#ffebee;border-color:#ffcdd2}.video-placeholder.error p{color:#d32f2f}.error-message{background-color:#ffebee;border:1px solid #ffcdd2;border-radius:6px;margin-bottom:15px;padding:10px}.error-message p{color:#d32f2f;font-size:.9rem;margin:0}.troubleshooting-panel{background-color:#fff3e0;border:1px solid #ffcc02;border-radius:6px;margin-top:15px;padding:15px}.troubleshooting-panel h4{color:#e65100;font-size:1rem;margin:0 0 10px}.troubleshooting-panel ul{margin:10px 0;padding-left:20px;text-align:left}.troubleshooting-panel li{color:#bf360c;font-size:.9rem;margin:5px 0}.troubleshooting-panel code{background-color:#f5f5f5;border-radius:3px;font-family:Courier New,monospace;font-size:.85rem;padding:2px 4px}.retry-btn{background-color:#ff9800;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:.9rem;font-weight:500;margin-top:10px;padding:8px 16px;transition:background-color .2s}.retry-btn:hover:not(:disabled){background-color:#f57c00}.retry-btn:disabled{background-color:#ccc;cursor:not-allowed}.error-actions,.error-help{margin-top:10px}.error-help{background-color:#f8f9fa;border-left:3px solid #ff9800;border-radius:4px;padding:10px}.error-help p{color:#333;font-size:.9rem;font-weight:500;margin:0 0 8px}.error-help ul{margin:0;padding-left:20px}.error-help li{color:#666;font-size:.85rem;margin:4px 0}.streaming-error{background-color:#ffebee;border:1px solid #ffcdd2;border-radius:6px;margin-bottom:15px;padding:15px}.streaming-error .error-text{color:#d32f2f;font-size:.95rem;font-weight:500;margin:0 0 10px}.loading-state{align-items:center;background-color:#f0f8ff;border:2px dashed #2196f3;border-radius:8px;display:flex;flex-direction:column;justify-content:center;margin:15px 0;padding:40px}.loading-state p{color:#1976d2;font-style:italic;margin:10px 0 0}.loading-spinner{animation:spin 1s linear infinite;border:4px solid #e3f2fd;border-radius:50%;border-top-color:#2196f3;height:40px;width:40px}.streaming-toggle-btn{background-color:#ff9800;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:1rem;font-weight:500;margin-left:10px;padding:12px 24px;transition:background-color .2s}.streaming-toggle-btn:hover:not(:disabled){background-color:#f57c00}.streaming-toggle-btn:disabled{background-color:#ccc;cursor:not-allowed}.streaming-area{border-top:1px solid #eee;grid-column:1/-1;margin-top:20px;padding-top:20px;text-align:left}.streaming-area h3{color:#333;font-size:1.2rem;margin:0 0 15px}.video-streaming-client{background-color:#fafafa;border:1px solid #ddd;border-radius:8px;padding:15px}.streaming-status{align-items:center;display:flex;gap:10px;margin-bottom:15px}.streaming-stats{display:flex;gap:20px;margin-top:10px}.stat{align-items:center;background-color:#f0f0f0;border-radius:6px;display:flex;flex-direction:column;min-width:80px;padding:8px 12px}.stat-label{color:#666;font-size:.8rem;margin-bottom:4px}.stat-value{color:#333;font-size:1.1rem;font-weight:600}.processed-frame-info{background-color:#e8f5e8;border:1px solid #c8e6c9;border-radius:6px;margin-top:15px;padding:15px}.processed-frame-info h4{color:#2e7d32;font-size:1rem;margin:0 0 10px}.processed-frame-info p{color:#1b5e20;font-size:.9rem;margin:5px 0}.performance-stats{background-color:#e3f2fd;border:1px solid #bbdefb;border-radius:6px;margin-top:15px;padding:15px}.performance-stats h4{color:#1565c0;font-size:1rem;margin:0 0 10px}.stats-grid{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.stat-item{align-items:center;background-color:#f5f5f5;border-left:3px solid #2196f3;border-radius:4px;display:flex;justify-content:space-between;padding:8px 12px}.stat-item .stat-label{color:#666;font-size:.85rem;font-weight:500}.stat-item .stat-value{color:#333;font-size:.9rem;font-weight:600}.processed-video-display{background:#fff;border-radius:12px;box-shadow:0 4px 20px #0000001a;margin-top:20px;overflow:hidden}.video-display-header{align-items:center;background-color:#f8f9fa;border-bottom:1px solid #e9ecef;display:flex;justify-content:space-between;padding:20px}.connection-status{align-items:center;display:flex;gap:12px}.status-info{align-items:flex-start;display:flex;flex-direction:column}.status-text{color:#333;font-size:1rem;font-weight:600}.status-description{color:#666;font-size:.85rem;margin-top:2px}.retry-connection-btn{background-color:#ff9800;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.9rem;font-weight:500;padding:8px 16px;transition:background-color .2s}.retry-connection-btn:hover{background-color:#f57c00}.video-display-container{align-items:center;background-color:#000;display:flex;justify-content:center;min-height:400px;padding:20px;position:relative}.video-canvas-container{max-width:100%;position:relative}.processed-video-canvas{display:block;height:auto;max-width:100%}.video-overlay-controls{display:flex;gap:8px;position:absolute;right:10px;top:10px}.toggle-overlay-btn{background-color:#000000b3;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:1rem;padding:8px;transition:background-color .2s}.toggle-overlay-btn:hover{background-color:#000000e6}.video-placeholder{color:#fff;padding:60px 20px;text-align:center}.video-placeholder.waiting{background:linear-gradient(135deg,#1e3c72,#2a5298);border-radius:12px}.video-placeholder.connecting{background:linear-gradient(135deg,#ff9800,#f57c00);border-radius:12px}.video-placeholder.disconnected{background:linear-gradient(135deg,#666,#999);border-radius:12px}.placeholder-icon{font-size:3rem;margin-bottom:16px}.video-placeholder p{font-size:1.2rem;font-weight:500;margin:0 0 8px}.video-placeholder small{font-size:.9rem;opacity:.8}.performance-dashboard{background-color:#f8f9fa;border-top:1px solid #e9ecef;padding:20px}.performance-dashboard h4{color:#333;font-size:1.3rem;margin:0 0 20px;text-align:center}.metrics-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin-bottom:20px}.metric-group{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;padding:16px}.metric-group h5{border-bottom:2px solid #e9ecef;color:#333;font-size:1rem;font-weight:600;margin:0 0 12px;padding-bottom:8px}.metric-item{align-items:center;border-bottom:1px solid #f0f0f0;display:flex;justify-content:space-between;padding:8px 0}.metric-item:last-child{border-bottom:none}.metric-label{color:#666;font-size:.9rem;font-weight:500}.metric-value{border-radius:4px;font-size:.95rem;font-weight:600;padding:4px 8px}.metric-value.good{background-color:#e8f5e8;color:#2e7d32}.metric-value.warning{background-color:#fff3e0;color:#ef6c00}.metric-value.poor{background-color:#ffebee;color:#c62828}.landmarks-status{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;margin-bottom:20px;padding:16px}.landmarks-status h5{border-bottom:2px solid #e9ecef;color:#333;font-size:1rem;font-weight:600;margin:0 0 12px;padding-bottom:8px}.landmarks-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}.landmark-status{align-items:center;border-radius:8px;display:flex;flex-direction:column;padding:12px;transition:all .2s}.landmark-status.detected{background-color:#e8f5e8;border:2px solid #4caf50}.landmark-status.not-detected{background-color:#ffebee;border:2px solid #f44336}.landmark-icon{font-size:1.5rem;margin-bottom:8px}.landmark-name{color:#333;font-size:.85rem;font-weight:500;margin-bottom:4px}.landmark-indicator{font-size:1.2rem;font-weight:700}.landmark-indicator.active{color:#4caf50}.landmark-indicator.inactive{color:#f44336}.system-health{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;padding:16px}.system-health h5{border-bottom:2px solid #e9ecef;color:#333;font-size:1rem;font-weight:600;margin:0 0 12px;padding-bottom:8px}.health-indicators{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.health-indicator{align-items:center;border-radius:8px;display:flex;flex-direction:column;padding:12px;transition:all .2s}.health-indicator.healthy{background-color:#e8f5e8;border:2px solid #4caf50}.health-indicator.unhealthy{background-color:#ffebee;border:2px solid #f44336}.health-icon{font-size:1.5rem;margin-bottom:8px}.health-label{color:#333;font-size:.85rem;font-weight:500;margin-bottom:4px}.health-status{border-radius:4px;font-size:.8rem;font-weight:600;padding:2px 6px}.health-indicator.healthy .health-status{background-color:#4caf50;color:#fff}.health-indicator.unhealthy .health-status{background-color:#f44336;color:#fff}.performance-section{border-top:1px solid #eee;grid-column:1/-1;margin-top:20px;padding-top:20px}.section-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:15px}.section-header h3{color:#333;font-size:1.2rem;margin:0}.toggle-monitor-btn{background-color:#2196f3;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.9rem;font-weight:500;padding:8px 16px;transition:background-color .2s}.toggle-monitor-btn:hover{background-color:#1976d2}.App{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}.App-header{background:linear-gradient(135deg,#667eea,#764ba2);box-shadow:0 4px 20px #0000001a}.control-panel{background:#fff;border:1px solid #e0e0e0;transition:box-shadow .3s ease}.control-panel:hover{box-shadow:0 8px 30px #0000001f}button{border:none;cursor:pointer;font-family:inherit;transition:all .2s ease}button:hover{box-shadow:0 4px 12px #00000026;transform:translateY(-1px)}button:active{transform:translateY(0)}button:disabled{box-shadow:none;cursor:not-allowed;opacity:.6;transform:none}.status-dot{box-shadow:0 0 0 3px #ffffff4d;transition:all .3s ease}.status-indicator:hover .status-dot{transform:scale(1.2)}.message-display{overflow:hidden;position:relative;transition:all .3s ease}.message-display:before{background:linear-gradient(90deg,#0000,#fff6,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .5s;width:100%}.message-display:hover:before{left:100%}.video-container{overflow:hidden;position:relative;transition:all .3s ease}.video-container:after{background:linear-gradient(45deg,#0000 49%,#ffffff1a 50%,#0000 51%);bottom:0;content:"";left:0;opacity:0;pointer-events:none;position:absolute;right:0;top:0;transition:opacity .3s ease}.video-container:hover:after{opacity:1}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.control-panel>*{animation:fadeIn .6s ease-out}.control-panel>:first-child{animation-delay:.1s}.control-panel>:nth-child(2){animation-delay:.2s}.control-panel>:nth-child(3){animation-delay:.3s}.control-panel>:nth-child(4){animation-delay:.4s}@media (max-width:1024px){.control-panel{grid-template-columns:1fr;max-width:600px}.section-header{align-items:flex-start;flex-direction:column;gap:10px}}@media (max-width:768px){.App-main{padding:15px}.control-panel{gap:20px;padding:20px}.App-header h1{font-size:2rem}.App-header p{font-size:1rem}}@media (prefers-color-scheme:dark){.App{background-color:#121212;color:#fff}.control-panel{background-color:#1e1e1e;border-color:#333}.message-display{background-color:#2d2d2d;border-color:#444}.video-container{background-color:#000}}button:focus,input:focus,select:focus{outline:2px solid #2196f3;outline-offset:2px}.status-text{font-weight:500}@media (prefers-contrast:high){.control-panel,.status-dot,button{border:2px solid #000}}@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.loading-spinner{animation:none}}.performance-monitor-simple{background:#fff;border:1px solid #e0e0e0;border-radius:8px;margin-top:15px;padding:20px}.performance-monitor-simple h4{color:#333;font-size:1.2rem;margin:0 0 15px}.simple-metrics{margin-bottom:20px}.metric-row{align-items:center;border-bottom:1px solid #f0f0f0;display:flex;justify-content:space-between;padding:8px 0}.metric-row:last-child{border-bottom:none}.metric-row span:first-child{color:#666;font-weight:500}.metric-row span:last-child{color:#333;font-weight:600}.status.connected{color:#4caf50}.status.disconnected{color:#f44336}.status.connecting{color:#ff9800}.performance-tips{background:#f8f9fa;border-left:4px solid #2196f3;border-radius:6px;padding:15px}.performance-tips h5{color:#1565c0;font-size:1rem;margin:0 0 10px}.performance-tips ul{margin:0;padding-left:20px}.performance-tips li{color:#666;font-size:.9rem;margin:5px 0}.asl-world-container{background:#fff;border-radius:12px;box-shadow:0 4px 20px #0000001a;max-width:1200px;min-height:600px;padding:20px;width:100%}.asl-world-header{display:flex;justify-content:flex-start;margin-bottom:20px}.back-to-main-btn{background-color:#6c757d;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;padding:10px 20px;transition:background-color .3s ease}.back-to-main-btn:hover{background-color:#5a6268}.asl-world-toggle{margin-top:30px;text-align:center}.asl-world-toggle-btn{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;box-shadow:0 4px 15px #667eea4d;color:#fff;cursor:pointer;font-size:16px;font-weight:600;padding:15px 30px;transition:all .3s ease}.asl-world-toggle-btn:hover:not(:disabled){box-shadow:0 6px 20px #667eea66;transform:translateY(-2px)}.asl-world-toggle-btn:disabled{background:#ccc;box-shadow:none;cursor:not-allowed;transform:none}.toggle-help{color:#666;font-size:14px;font-style:italic;margin-top:10px}.story-generation-error{background-color:#f8d7da;border:1px solid #f5c6cb;border-radius:8px;color:#721c24;margin-top:20px;padding:15px;text-align:left}.story-generation-error .error-text{font-weight:500;margin:0 0 10px}.story-generation-error .retry-btn{background-color:#dc3545;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;padding:8px 16px}.story-generation-error .retry-btn:hover{background-color:#c82333}.ai-processing-indicator{align-items:center;background-color:#e3f2fd;border:1px solid #bbdefb;border-radius:6px;color:#1565c0;display:flex;font-size:14px;gap:10px;padding:10px}.ai-processing-indicator .loading-spinner{animation:spin 1s linear infinite;border:2px solid #bbdefb;border-radius:50%;border-top-color:#1565c0;height:16px;width:16px}@media (max-width:767.98px){.asl-world-container{border-radius:8px;margin:0 var(--spacing-sm);padding:var(--spacing-sm)}.asl-world-toggle-btn{font-size:var(--font-size-sm);min-height:var(--mobile-touch-target);padding:var(--spacing-sm) var(--spacing-lg)}.control-panel{gap:var(--spacing-md);grid-template-columns:1fr;padding:var(--spacing-md)}.App-header h1{font-size:var(--font-size-2xl)}.App-header p{font-size:var(--font-size-base)}.App-main{padding:var(--spacing-sm)}.video-container{border-radius:8px;min-height:200px}.video-placeholder{padding:var(--spacing-lg)}.streaming-toggle-btn,.test-backend-btn,.webcam-toggle-btn{font-size:var(--font-size-base);min-height:var(--mobile-touch-target);padding:var(--spacing-sm) var(--spacing-lg)}.platform-main{padding-bottom:calc(var(--mobile-nav-height, 60px) + var(--spacing-md))}}@media (min-width:768px) and (max-width:1023.98px){.control-panel{grid-template-columns:1fr 1fr}.asl-world-container,.control-panel{max-width:var(--container-md)}}@media (min-width:1200px){.asl-world-container,.control-panel{max-width:var(--container-lg)}}.platform-demo-section{background-color:#e3f2fd;border-left:4px solid #2196f3;border-radius:8px;grid-column:1/-1;padding:20px;text-align:left}.platform-demo-section h3{color:#1976d2;margin-top:0}.platform-demo-section ul{margin:15px 0;padding-left:20px}.platform-demo-section li{line-height:1.4;margin:8px 0}.platform-demo-section p{line-height:1.5;margin:12px 0}.platform-demo-section strong{color:#1976d2}.network-status-offline{animation:slideDown .3s ease-out;background:#dc3545;box-shadow:0 2px 4px #0000001a;color:#fff;font-size:.875rem;font-weight:500;left:0;padding:.5rem 1rem;position:fixed;right:0;text-align:center;top:0;z-index:9999}.network-status-offline span{align-items:center;display:inline-flex;gap:.5rem}@keyframes slideDown{0%{transform:translateY(-100%)}to{transform:translateY(0)}}.network-status-offline~*{margin-top:2.5rem}.app-error-fallback{align-items:center;background:linear-gradient(135deg,#f8f9fa,#e9ecef);display:flex;justify-content:center;min-height:100vh;padding:2rem}.app-error-fallback .error-content{background:#fff;border-radius:8px;box-shadow:0 4px 6px #0000001a;max-width:600px;padding:2rem;text-align:center}.app-error-fallback h1{color:#dc3545;margin-bottom:1rem}.app-error-fallback p{color:#6c757d;margin-bottom:1.5rem}.app-error-fallback button{background:#007bff;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:.875rem;margin:.5rem;padding:.75rem 1.5rem}.app-error-fallback button:hover{background:#0056b3}.app-error-fallback button:last-child{background:#6c757d}.app-error-fallback button:last-child:hover{background:#545b62}@media (max-width:768px){.network-status-offline{font-size:.75rem;padding:.375rem .75rem}.network-status-offline~*{margin-top:2rem}}.error-boundary-fallback{align-items:center;background:linear-gradient(135deg,#f8f9fa,#e9ecef);border-radius:12px;box-shadow:0 4px 6px #0000001a;display:flex;justify-content:center;margin:1rem;min-height:400px;padding:2rem}.error-content{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;max-width:600px;padding:2rem;text-align:center}.error-header{margin-bottom:1.5rem}.error-icon{display:block;font-size:3rem;margin-bottom:1rem}.error-title{color:#dc3545;font-size:1.5rem;font-weight:600;margin:0 0 1rem}.error-message{color:#6c757d;font-size:1rem;line-height:1.5;margin-bottom:1.5rem}.retry-info{background:#fff3cd;border:1px solid #ffeaa7;border-radius:4px;color:#856404;font-size:.875rem;margin-bottom:1rem;padding:.5rem 1rem}.error-actions{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center;margin-bottom:1.5rem}.error-button{border:none;border-radius:6px;cursor:pointer;font-size:.875rem;font-weight:500;min-width:120px;padding:.75rem 1.5rem;transition:all .2s ease}.error-button:disabled{cursor:not-allowed;opacity:.6}.error-button.primary{background:#007bff;color:#fff}.error-button.primary:hover:not(:disabled){background:#0056b3;transform:translateY(-1px)}.error-button.secondary{background:#6c757d;color:#fff}.error-button.secondary:hover:not(:disabled){background:#545b62;transform:translateY(-1px)}.error-button.tertiary{background:#0000;border:1px solid #dee2e6;color:#6c757d}.error-button.tertiary:hover:not(:disabled){background:#f8f9fa;border-color:#adb5bd}.error-button.disabled{background:#e9ecef;color:#6c757d;cursor:not-allowed}.error-details{border:1px solid #dee2e6;border-radius:4px;margin-bottom:1.5rem;overflow:hidden;text-align:left}.error-details summary{background:#f8f9fa;border-bottom:1px solid #dee2e6;cursor:pointer;font-weight:500;padding:.75rem 1rem}.error-details summary:hover{background:#e9ecef}.error-info{padding:1rem}.error-section{margin-bottom:1rem}.error-section:last-child{margin-bottom:0}.error-section h4{color:#495057;font-size:.875rem;font-weight:600;letter-spacing:.5px;margin:0 0 .5rem;text-transform:uppercase}.error-stack,.error-text{background:#f8f9fa;border:1px solid #dee2e6;border-radius:4px;color:#495057;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:.75rem;line-height:1.4;margin:0;overflow-x:auto;padding:.75rem;white-space:pre-wrap;word-break:break-word}.error-stack{max-height:200px;overflow-y:auto}.error-suggestions{background:#f8f9fa;border-radius:6px;padding:1rem;text-align:left}.error-suggestions h3{color:#495057;font-size:1rem;font-weight:600;margin:0 0 .75rem}.error-suggestions ul{color:#6c757d;margin:0;padding-left:1.25rem}.error-suggestions li{line-height:1.4;margin-bottom:.25rem}.error-boundary-fallback[data-error-type=network] .error-icon{color:#17a2b8}.error-boundary-fallback[data-error-type=authentication] .error-icon{color:#ffc107}.error-boundary-fallback[data-error-type=component] .error-icon{color:#fd7e14}.error-boundary-fallback[data-error-type=chunk] .error-icon{color:#6f42c1}@media (max-width:768px){.error-boundary-fallback{margin:.5rem;padding:1rem}.error-content{padding:1.5rem}.error-actions{align-items:center;flex-direction:column}.error-button{max-width:200px;width:100%}.error-icon{font-size:2.5rem}.error-title{font-size:1.25rem}}@media (prefers-reduced-motion:reduce){.error-button{transition:none}.error-button:hover:not(:disabled){transform:none}}@media (prefers-contrast:high){.error-boundary-fallback{border:2px solid #000}.error-button,.error-content{border:1px solid #000}}.error-button:focus,.error-details summary:focus{outline:2px solid #007bff;outline-offset:2px}.error-button.loading{color:#0000;position:relative}.error-button.loading:after{animation:spin 1s linear infinite;border:2px solid #0000;border-radius:50%;border-top-color:currentcolor;content:"";height:16px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:16px}@keyframes spin{0%{transform:translate(-50%,-50%) rotate(0deg)}to{transform:translate(-50%,-50%) rotate(1turn)}}