.container{margin-left:auto;margin-right:auto;width:100%}.container-padding{padding-left:var(--spacing-md);padding-right:var(--spacing-md)}.container-sm{max-width:640px}.container-md{max-width:768px}.container-lg{max-width:1024px}.container-xl{max-width:1280px}.container-full{max-width:100%}@media(min-width:768px){.container-padding{padding-left:var(--spacing-lg);padding-right:var(--spacing-lg)}}.stack{display:flex}.stack-vertical{flex-direction:column}.stack-horizontal{flex-direction:row}.stack-gap-small{gap:var(--spacing-sm)}.stack-gap-medium{gap:var(--spacing-md)}.stack-gap-large{gap:var(--spacing-lg)}.stack-align-start{align-items:flex-start}.stack-align-center{align-items:center}.stack-align-end{align-items:flex-end}.stack-align-stretch{align-items:stretch}.card{background-color:var(--color-surface);border-radius:var(--border-radius-lg)}.card-padding-small{padding:var(--spacing-sm)}.card-padding-medium{padding:var(--spacing-md)}.card-padding-large{padding:var(--spacing-lg)}.card-shadow{box-shadow:var(--shadow-md)}.card-border{border:2px solid var(--color-border)}.btn{display:inline-flex;align-items:center;justify-content:center;font-weight:600;text-align:center;text-decoration:none;border:2px solid transparent;cursor:pointer;transition:all .2s ease-in-out;border-radius:var(--border-radius-md);font-family:inherit}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-small{min-height:var(--min-touch-target);padding:var(--spacing-sm) var(--spacing-md);font-size:.875rem}.btn-medium{min-height:var(--min-touch-target);padding:var(--spacing-md) var(--spacing-lg);font-size:1rem}.btn-large{min-height:48px;padding:var(--spacing-md) var(--spacing-xl);font-size:1.125rem}.btn-primary{background-color:var(--color-primary);color:#fff;border-color:var(--color-primary)}.btn-primary:hover:not(:disabled){background-color:var(--color-primary-hover);border-color:var(--color-primary-hover)}.btn-secondary{background-color:var(--color-secondary);color:#fff;border-color:var(--color-secondary)}.btn-secondary:hover:not(:disabled){background-color:var(--color-secondary-hover);border-color:var(--color-secondary-hover)}.btn-danger{background-color:var(--color-danger);color:#fff;border-color:var(--color-danger)}.btn-danger:hover:not(:disabled){background-color:#a52834;border-color:#a52834}.input-wrapper{display:flex;flex-direction:column;gap:var(--spacing-sm)}.input-label{font-weight:600;font-size:1rem;color:var(--color-text)}.input-required{color:var(--color-danger)}.input{min-height:var(--min-touch-target);padding:var(--spacing-md);font-size:1rem;font-family:inherit;color:var(--color-text);background-color:var(--color-background);border:2px solid var(--color-border);border-radius:var(--border-radius-md);transition:border-color .2s ease-in-out}.input:focus{outline:none;border-color:var(--color-primary)}.input:disabled{opacity:.5;cursor:not-allowed}.input-error{border-color:var(--color-danger)}.input-error-message{color:var(--color-danger);font-size:.875rem;margin-top:var(--spacing-xs)}.badge{display:inline-flex;align-items:center;padding:var(--spacing-xs) var(--spacing-sm);font-size:.75rem;font-weight:600;border-radius:var(--border-radius-sm);text-transform:uppercase;letter-spacing:.5px}.badge-primary{background-color:var(--color-primary);color:#fff}.badge-secondary{background-color:var(--color-secondary);color:#fff}.badge-success{background-color:var(--color-success);color:#fff}.badge-warning{background-color:var(--color-warning);color:#fff}.badge-danger{background-color:var(--color-danger);color:#fff}.badge-info{background-color:#3b82f6;color:#fff}.home-page{min-height:100vh;padding:var(--spacing-xl) 0;background:linear-gradient(135deg,#667eea,#764ba2)}.home-header{text-align:center;color:#fff;margin-bottom:var(--spacing-lg)}.home-title{font-size:2.5rem;font-weight:700;margin-bottom:var(--spacing-md);text-shadow:2px 2px 4px rgba(0,0,0,.2)}.home-subtitle{font-size:1.25rem;opacity:.9}.connection-status{margin-top:var(--spacing-md);display:flex;justify-content:center}.error-message{padding:var(--spacing-md);background-color:#ff00001a;border:2px solid var(--color-danger);border-radius:var(--border-radius-md);color:var(--color-danger);font-weight:600;text-align:center}.home-card{width:100%;max-width:500px}.section-description{color:var(--color-text-secondary)}.divider{position:relative;text-align:center;margin:var(--spacing-md) 0}.divider:before{content:"";position:absolute;top:50%;left:0;right:0;height:1px;background-color:var(--color-border)}.divider-text{position:relative;padding:0 var(--spacing-md);background-color:var(--color-surface);color:var(--color-text-secondary);font-size:.875rem;font-weight:600;text-transform:uppercase}.join-section{display:flex;flex-direction:column;gap:var(--spacing-md)}.invite-note{margin:0;font-size:.875rem;color:var(--color-text-secondary)}.home-actions{display:flex;justify-content:center;padding-top:var(--spacing-md);border-top:2px solid var(--color-border)}.home-features{width:100%;max-width:500px;color:#fff}.features-title{font-size:1.25rem;font-weight:600;margin-bottom:var(--spacing-md);text-align:center}.home-features .card{background-color:#fffffff2}.home-features h4{font-size:1.125rem;font-weight:600;margin-bottom:var(--spacing-xs);color:var(--color-text)}.home-features p{color:var(--color-text-secondary);font-size:.875rem}@media(max-width:768px){.home-title{font-size:2rem}.home-subtitle{font-size:1rem}}.toast{position:fixed;top:var(--spacing-lg);right:var(--spacing-lg);min-width:300px;max-width:500px;padding:var(--spacing-md);border-radius:var(--border-radius);box-shadow:var(--shadow-lg);display:flex;align-items:center;gap:var(--spacing-sm);animation:slideIn .3s ease-out;z-index:9999}@keyframes slideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.toast-message{flex:1;margin:0;font-weight:500;color:#fff}.toast-close{background:none;border:none;color:#fff;font-size:1.5rem;line-height:1;cursor:pointer;opacity:.8;transition:opacity .2s;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center}.toast-close:hover{opacity:1}.toast-info{background-color:#3b82f6}.toast-success{background-color:var(--color-success)}.toast-warning{background-color:var(--color-warning)}.toast-danger{background-color:var(--color-danger)}.grid{display:grid;width:100%}.grid-gap-small{gap:var(--spacing-sm)}.grid-gap-medium{gap:var(--spacing-md)}.grid-gap-large{gap:var(--spacing-lg)}.memory-game{width:100%;max-width:800px;margin:0 auto}.memory-setup{max-width:500px;margin:0 auto}.difficulty-selector{width:100%}.difficulty-selector label{display:block;font-weight:600;margin-bottom:var(--spacing-md);color:var(--color-text)}.difficulty-buttons{display:flex;gap:var(--spacing-md);flex-wrap:wrap;justify-content:center}.turn-indicator{display:flex;align-items:center;gap:var(--spacing-md)}.turn-indicator h3{margin:0;font-size:1.125rem;color:var(--color-text)}.scores{display:flex;gap:var(--spacing-lg);flex-wrap:wrap}.player-score{display:flex;align-items:center;gap:var(--spacing-sm)}.memory-card{aspect-ratio:1;min-width:80px;min-height:80px;background:none;border:none;cursor:pointer;perspective:1000px;padding:0}.memory-card:disabled{cursor:not-allowed}.card-inner{position:relative;width:100%;height:100%;transition:transform .6s;transform-style:preserve-3d}.memory-card.flipped .card-inner{transform:rotateY(180deg)}.card-front,.card-back{position:absolute;width:100%;height:100%;backface-visibility:hidden;display:flex;align-items:center;justify-content:center;border-radius:var(--border-radius-lg);font-size:3rem;font-weight:700;border:3px solid var(--color-border)}.card-front{background-color:var(--color-primary);color:#fff}.card-back{background-color:var(--color-surface);transform:rotateY(180deg)}.memory-card.matched .card-back{background-color:var(--color-success);color:#fff}.game-over{background-color:var(--color-success);color:#fff;text-align:center}.winner-text{font-size:1.5rem;font-weight:700;margin:0}.final-scores{display:flex;flex-direction:column;gap:var(--spacing-sm);width:100%}.final-score{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-sm);background-color:#fff3;border-radius:var(--border-radius-md)}@media(max-width:768px){.card-front,.card-back{font-size:2rem}.game-header{flex-direction:column;align-items:flex-start}.difficulty-buttons{flex-direction:column}}.file-upload{width:100%}.file-upload-label{display:block;font-weight:600;margin-bottom:var(--spacing-sm);color:var(--color-text)}.file-upload-hint{display:block;font-size:.875rem;font-weight:400;color:var(--color-text-secondary);margin-top:var(--spacing-xs)}.file-upload-input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.file-upload-area{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-md);padding:var(--spacing-xl);border:2px dashed var(--color-border);border-radius:var(--border-radius-lg);background-color:var(--color-surface);min-height:200px;transition:border-color .2s,background-color .2s,transform .2s}.file-upload-area:hover{border-color:var(--color-primary);background-color:var(--color-background)}.file-upload-area.dragging{border-color:var(--color-primary);background-color:var(--color-primary-background, rgba(59, 130, 246, .1));border-width:3px;transform:scale(1.02)}.upload-icon{font-size:3rem;opacity:.6;transition:transform .2s,opacity .2s}.file-upload-area.dragging .upload-icon{transform:scale(1.2);opacity:.9}.file-upload-area.dragging .upload-text{font-weight:600;color:var(--color-primary)}.upload-text{margin:0;color:var(--color-text-secondary);font-size:.875rem}.upload-text-secondary{margin:0;color:var(--color-text-secondary);font-size:.75rem;opacity:.7}.file-upload-preview{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);border:2px solid var(--color-border);border-radius:var(--border-radius-lg);background-color:var(--color-surface)}.preview-image{max-width:100%;max-height:300px;border-radius:var(--border-radius-md);box-shadow:var(--shadow-sm)}.preview-info{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-xs)}.preview-dimensions{font-size:.875rem;color:var(--color-text-secondary)}.file-upload-error{margin-top:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background-color:var(--color-error-background, rgba(239, 68, 68, .1));border:1px solid var(--color-error, #ef4444);border-radius:var(--border-radius-md);color:var(--color-error, #ef4444);font-size:.875rem}.file-upload button{min-height:44px}@media(prefers-contrast:high){.file-upload-area,.file-upload-preview{border-width:3px}}@media(max-width:768px){.file-upload-area{min-height:160px;padding:var(--spacing-lg)}.upload-icon{font-size:2.5rem}.preview-image{max-height:200px}}.jigsaw-puzzle{width:100%;max-width:1400px;margin:0 auto}.jigsaw-setup{max-width:500px;margin:0 auto}.puzzle-config,.image-selector{width:100%}.puzzle-config label,.image-selector label{display:block;font-weight:600;margin-bottom:var(--spacing-md);color:var(--color-text)}.grid-size-buttons{display:flex;gap:var(--spacing-md);flex-wrap:wrap;justify-content:center}.setup-note{font-size:.875rem;color:var(--color-text-secondary);font-style:italic;text-align:center}.puzzle-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-md);background-color:var(--color-surface);border-radius:var(--border-radius-lg);border:2px solid var(--color-border);flex-wrap:wrap;gap:var(--spacing-md)}.progress-info{flex:1;min-width:200px}.progress-info h3{margin:0 0 var(--spacing-sm) 0;font-size:1.125rem;color:var(--color-text)}.progress-bar{width:100%;height:24px;background-color:var(--color-background);border-radius:var(--border-radius-md);overflow:hidden;border:2px solid var(--color-border)}.progress-fill{height:100%;background-color:var(--color-success);transition:width .3s ease}.reference-image{max-width:400px;margin:0 auto}.reference-image img{width:100%;height:auto;border-radius:var(--border-radius-md)}.puzzle-container{position:relative;width:100%;min-height:700px;background-color:var(--color-surface);border-radius:var(--border-radius-lg);border:2px solid var(--color-border);overflow:visible}.solution-grid{position:absolute;top:20px;left:20px}.grid-cell{position:absolute;width:100px;height:100px;border:1px dashed rgba(0,0,0,.2)}.puzzle-piece{position:absolute;cursor:grab;transition:opacity .2s,filter .2s;-webkit-user-select:none;user-select:none;overflow:visible}.puzzle-piece .piece-image{pointer-events:none}.puzzle-piece.dragging{cursor:grabbing;opacity:.9;z-index:1000;filter:drop-shadow(0 4px 8px rgba(0,0,0,.3))}.puzzle-piece.placed{cursor:default;opacity:1}.puzzle-piece.placed .piece-outline{stroke:#00c80066;stroke-width:2}.puzzle-piece.locked{cursor:not-allowed;opacity:.6;filter:grayscale(30%)}.lock-indicator{position:absolute;top:-8px;right:-8px;background-color:var(--color-warning);color:#fff;font-size:.625rem;padding:2px 6px;border-radius:var(--border-radius-sm);font-weight:600;white-space:nowrap}.puzzle-complete{background-color:var(--color-success);color:#fff;text-align:center}.puzzle-complete h2{margin:0;color:#fff}.puzzle-complete button{background-color:#fff!important;color:var(--color-success)!important;border:2px solid white!important}@media(prefers-contrast:high){.puzzle-piece .piece-outline{stroke:#0009;stroke-width:2}.puzzle-piece.placed .piece-outline{stroke:#00c800;stroke-width:3}}@media(max-width:768px){.puzzle-container{min-height:400px}.grid-cell{width:80px;height:80px}.grid-size-buttons{flex-direction:column}.puzzle-piece{padding:10px;margin:-10px}}.connect4-game{width:100%;max-width:700px;margin:0 auto}.connect4-setup{max-width:500px;margin:0 auto}.player-assignments{display:flex;flex-direction:column;gap:var(--spacing-md);width:100%}.player-assignment{display:flex;align-items:center;justify-content:center;gap:var(--spacing-md);font-size:1.125rem}.color-indicator{width:32px;height:32px;border-radius:50%;border:2px solid var(--color-text)}.color-indicator.red{background-color:#e74c3c}.color-indicator.yellow{background-color:#f1c40f}.game-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-md);background-color:var(--color-surface);border-radius:var(--border-radius-lg);border:2px solid var(--color-border);flex-wrap:wrap;gap:var(--spacing-md)}.player-info{display:flex;gap:var(--spacing-lg);flex-wrap:wrap}.player-status{display:flex;align-items:center;gap:var(--spacing-sm);opacity:.5;transition:opacity .2s}.player-status.active{opacity:1}.player-status span{font-weight:600;color:var(--color-text)}.your-color{display:flex;align-items:center;gap:var(--spacing-sm);font-weight:600;color:var(--color-text)}.connect4-board{background-color:#2c3e50;padding:var(--spacing-md);border-radius:var(--border-radius-lg);display:inline-block}.column-buttons{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:var(--spacing-sm)}.column-button{aspect-ratio:1;background-color:#ffffff1a;border:2px solid transparent;border-radius:var(--border-radius-sm);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;min-height:var(--min-touch-target)}.column-button:hover:not(:disabled){background-color:#fff3;border-color:#ffffff80}.column-button:disabled{cursor:not-allowed;opacity:.3}.preview-piece{width:80%;height:80%;border-radius:50%;opacity:.5}.preview-piece.red{background-color:#e74c3c}.preview-piece.yellow{background-color:#f1c40f}.connect4-grid{display:grid;grid-template-columns:repeat(7,1fr);grid-template-rows:repeat(6,1fr);gap:8px;background-color:#34495e;padding:8px;border-radius:var(--border-radius-md)}.cell{aspect-ratio:1;background-color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;position:relative;min-width:60px}.piece{width:90%;height:90%;border-radius:50%;animation:drop .3s ease-out}.piece.red{background-color:#e74c3c}.piece.yellow{background-color:#f1c40f}.piece.last-move{animation:pulse .5s ease-in-out}@keyframes drop{0%{transform:translateY(-400px)}to{transform:translateY(0)}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.game-over{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;text-align:center}.game-over h2{margin:0;color:#fff}.winner-indicator{width:80px;height:80px;border-radius:50%;border:4px solid white;animation:celebrate 1s ease-in-out infinite}.winner-indicator.red{background-color:#e74c3c}.winner-indicator.yellow{background-color:#f1c40f}@keyframes celebrate{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}@media(max-width:768px){.cell{min-width:40px}.color-indicator{width:24px;height:24px}.game-header{flex-direction:column;align-items:flex-start}}.game-lobby{min-height:100vh;padding:var(--spacing-xl) 0;background-color:var(--color-background)}.lobby-header{text-align:center}.lobby-header h1{font-size:2rem;font-weight:700;margin-bottom:var(--spacing-lg);color:var(--color-text)}.room-code-card{display:inline-block;background-color:var(--color-primary);color:#fff}.room-code-label{font-size:.875rem;opacity:.9;margin-bottom:var(--spacing-xs)}.room-code{font-size:1.5rem;font-weight:700;letter-spacing:2px;font-family:Courier New,monospace}.section-title{font-size:1.5rem;font-weight:600;margin-bottom:var(--spacing-sm);color:var(--color-text)}.section-description{color:var(--color-text-secondary);margin-bottom:var(--spacing-lg)}.games-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--spacing-lg);margin-bottom:var(--spacing-xl)}.game-card{transition:transform .2s,box-shadow .2s}.game-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}.game-name{font-size:1.25rem;font-weight:600;margin-bottom:var(--spacing-xs);color:var(--color-text)}.game-description{color:var(--color-text-secondary);margin-bottom:var(--spacing-xs)}.game-meta{display:flex;align-items:center;gap:var(--spacing-sm);margin-top:var(--spacing-sm)}.game-players{font-size:.875rem;color:var(--color-text-secondary);font-weight:600;margin:0}.players-list{display:flex;flex-direction:column;gap:var(--spacing-sm)}.player-item{padding:var(--spacing-sm);border-radius:var(--border-radius);background-color:var(--color-surface);border:1px solid var(--color-border)}.player-name{font-weight:600;color:var(--color-text);flex:1}.no-players{text-align:center;color:var(--color-text-secondary);font-style:italic;padding:var(--spacing-lg)}.host-message{text-align:center;color:var(--color-text-secondary);font-size:.875rem;margin-top:var(--spacing-sm)}.lobby-actions{display:flex;justify-content:center;padding-top:var(--spacing-lg);border-top:2px solid var(--color-border)}.video-tile{position:relative;width:100%;max-width:480px;aspect-ratio:16 / 9;background-color:#1a1a1a;border-radius:var(--border-radius-md);overflow:hidden;box-shadow:var(--shadow-md);margin:0 auto}.video-element{width:100%;height:100%;object-fit:cover}.video-overlay{position:absolute;bottom:0;left:0;right:0;padding:var(--spacing-sm);background:linear-gradient(to top,rgba(0,0,0,.8),transparent)}.video-info{display:flex;align-items:center;gap:var(--spacing-sm)}.player-name{color:#fff;font-weight:600;font-size:.875rem;text-shadow:1px 1px 2px rgba(0,0,0,.8)}.muted-indicator{font-size:1.25rem}.no-video{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center;color:#ffffff80;font-size:1rem;font-weight:600}.avatar-placeholder{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-sm)}.avatar-icon{font-size:4rem;opacity:.7}.avatar-name{color:#fffc;font-size:1.125rem;font-weight:600}.video-grid-container{width:100%;max-width:1000px;margin:0 auto}.video-grid-container.is-cube{max-width:100%}.video-carousel{display:flex;align-items:center;gap:var(--spacing-sm);width:100%}.video-row{display:flex;gap:var(--spacing-md);overflow-x:auto;padding-bottom:var(--spacing-sm);scroll-snap-type:x proximity;scrollbar-width:thin;flex:1;min-width:0}.video-row .video-tile{flex:0 0 320px;width:320px;scroll-snap-align:start}.carousel-button{width:36px;height:36px;border-radius:999px;border:1px solid var(--color-border);background-color:var(--color-surface);color:var(--color-text);cursor:pointer;flex:0 0 auto}.carousel-button:hover{background-color:var(--color-background)}.carousel-button:disabled{opacity:.5;cursor:not-allowed}.video-cube{position:fixed;top:0;right:0;bottom:0;left:0;width:100vw;height:100vh;z-index:5;pointer-events:none}.video-cube-fallback,.video-cube-note{font-size:.875rem;color:var(--color-text-secondary);margin-bottom:var(--spacing-sm)}@media(max-width:900px){.video-row .video-tile{flex-basis:260px;width:260px}.carousel-button{width:32px;height:32px}.video-cube{height:100vh}}.media-controls{padding:var(--spacing-md);background-color:var(--color-surface);border-radius:var(--border-radius-lg);border:2px solid var(--color-border)}.media-controls-group{display:flex;gap:var(--spacing-md);justify-content:center;flex-wrap:wrap}@media(max-width:768px){.media-controls-group{flex-direction:column}}.game-room{min-height:100vh;padding:var(--spacing-md);background-color:var(--color-background)}.game-room-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-md);background-color:var(--color-surface);border-radius:var(--border-radius-lg);border:2px solid var(--color-border);flex-wrap:wrap;gap:var(--spacing-md)}.room-info{display:flex;align-items:center;gap:var(--spacing-lg);flex-wrap:wrap}.room-info h1{font-size:1.5rem;font-weight:700;color:var(--color-text);margin:0}.game-type{color:var(--color-text-secondary);margin:var(--spacing-xs) 0 0 0;font-size:.875rem}.room-badges{display:flex;gap:var(--spacing-sm);align-items:center}.section-title{font-size:1.25rem;font-weight:600;color:var(--color-text);margin-bottom:var(--spacing-md)}.video-section{padding:var(--spacing-md);background-color:var(--color-surface);border-radius:var(--border-radius-lg);border:2px solid var(--color-border)}.video-section-header{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md);margin-bottom:var(--spacing-md)}.video-layout-toggle{display:flex;gap:var(--spacing-sm);flex-wrap:wrap}.game-area{padding:var(--spacing-md)}.game-container{width:100%;max-width:none;display:flex;justify-content:center;padding:var(--spacing-lg)}.no-game{text-align:center;padding:var(--spacing-xl);color:var(--color-text-secondary)}.game-placeholder{text-align:center;padding:var(--spacing-xl);background-color:var(--color-surface);border-radius:var(--border-radius-lg);border:2px dashed var(--color-border);width:100%;max-width:600px}.game-placeholder h3{font-size:1.5rem;font-weight:600;color:var(--color-text);margin-bottom:var(--spacing-md);text-transform:capitalize}.hint{color:var(--color-text-secondary);font-size:.875rem;font-style:italic;margin-top:var(--spacing-sm)}.players-section{width:100%;max-width:500px;margin-top:var(--spacing-xl)}.players-section h3{font-size:1.125rem;font-weight:600;color:var(--color-text);margin-bottom:var(--spacing-md)}.player-item{background-color:var(--color-background)}.player-info-row{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-md)}.player-name{font-weight:600;color:var(--color-text)}.player-badges{display:flex;gap:var(--spacing-sm);align-items:center}@media(max-width:768px){.game-room-header{flex-direction:column;align-items:flex-start}.room-info{flex-direction:column;align-items:flex-start;gap:var(--spacing-sm)}.player-info-row{flex-direction:column;align-items:flex-start}}.settings-page{min-height:100vh;padding:var(--spacing-xl) 0;background-color:var(--color-background)}.settings-header{text-align:center;margin-bottom:var(--spacing-lg)}.settings-header h1{font-size:2rem;font-weight:700;margin-bottom:var(--spacing-sm);color:var(--color-text)}.settings-header p{color:var(--color-text-secondary)}.setting-group{padding:var(--spacing-md) 0}.setting-group:not(:last-child){border-bottom:2px solid var(--color-border)}.setting-group h2{font-size:1.25rem;font-weight:600;margin-bottom:var(--spacing-md);color:var(--color-text)}.setting-item{margin-bottom:var(--spacing-lg)}.setting-label{font-weight:600;font-size:1rem;color:var(--color-text);display:block;margin-bottom:var(--spacing-sm)}.setting-description{color:var(--color-text-secondary);font-size:.875rem;margin-top:var(--spacing-xs);font-weight:400}.setting-slider{width:100%;min-height:var(--min-touch-target);cursor:pointer}.setting-checkbox{display:flex;flex-direction:column;cursor:pointer}.setting-checkbox input[type=checkbox]{width:var(--min-touch-target);height:var(--min-touch-target);cursor:pointer;margin-bottom:var(--spacing-sm)}.settings-actions{display:flex;justify-content:space-between;gap:var(--spacing-md);padding-top:var(--spacing-lg);border-top:2px solid var(--color-border)}@media(max-width:768px){.settings-actions{flex-direction:column}}:root{--color-primary: #0056b3;--color-primary-hover: #004494;--color-secondary: #6c757d;--color-secondary-hover: #545b62;--color-success: #0f5132;--color-warning: #997404;--color-danger: #842029;--color-background: #ffffff;--color-surface: #f8f9fa;--color-text: #212529;--color-text-secondary: #495057;--color-border: #dee2e6;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--min-touch-target: 44px;--border-radius-sm: .25rem;--border-radius-md: .5rem;--border-radius-lg: .75rem;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .1);--shadow-md: 0 4px 6px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px rgba(0, 0, 0, .1);--focus-outline: 3px solid #0056b3;--focus-outline-offset: 2px}.high-contrast{--color-primary: #0000ff;--color-primary-hover: #0000cc;--color-background: #000000;--color-surface: #1a1a1a;--color-text: #ffffff;--color-text-secondary: #cccccc;--color-border: #ffffff;--color-success: #00ff00;--color-warning: #ffff00;--color-danger: #ff0000}.reduced-motion *,.reduced-motion *:before,.reduced-motion *:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--color-background);color:var(--color-text);min-height:100vh}*:focus{outline:var(--focus-outline);outline-offset:var(--focus-outline-offset)}*:focus:not(:focus-visible){outline:none}*:focus-visible{outline:var(--focus-outline);outline-offset:var(--focus-outline-offset)}.skip-to-main{position:absolute;top:-40px;left:0;background:var(--color-primary);color:#fff;padding:8px;text-decoration:none;z-index:100}.skip-to-main:focus{top:0}.visually-hidden,.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}
