.theme-switcher{display:flex;align-items:center;gap:var(--spacing-sm)}.theme-switcher label{font-weight:700;color:var(--color-text-primary)}.theme-select{background-color:var(--color-secondary);color:var(--color-text-primary);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);padding:var(--spacing-sm);font-family:var(--font-family-primary);font-size:var(--font-size-sm)}.theme-select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--color-primary),transparent 50%)}.murmur-feed-container{background-color:var(--color-secondary);border:1px solid var(--color-border);border-radius:var(--border-radius-md);padding:var(--spacing-lg);margin-top:var(--spacing-xl);box-shadow:var(--shadow-md)}.murmur-feed-container h3{color:var(--color-warning);margin-top:0;margin-bottom:var(--spacing-lg);font-family:var(--font-family-primary);text-align:center;border-bottom:1px solid var(--color-border);padding-bottom:var(--spacing-sm)}.murmur-list{max-height:300px;overflow-y:auto}.murmur-item{margin-bottom:var(--spacing-md);padding:var(--spacing-md);background-color:var(--color-background);border-radius:var(--border-radius-sm);border-left:3px solid var(--color-warning);transition:background-color .2s}.murmur-item:hover{background-color:var(--color-border)}.murmur-message{font-style:italic;color:var(--color-text-primary);margin:0 0 var(--spacing-sm) 0;font-size:.95em;line-height:1.4}.murmur-meta{font-size:var(--font-size-xs);color:var(--color-text-secondary);text-align:right;margin:0}.murmur-list::-webkit-scrollbar{width:8px}.murmur-list::-webkit-scrollbar-track{background:var(--color-secondary);border-radius:var(--border-radius-sm)}.murmur-list::-webkit-scrollbar-thumb{background:var(--color-warning);border-radius:var(--border-radius-sm)}.murmur-list::-webkit-scrollbar-thumb:hover{background:var(--color-accent-hover)}.context-menu-loading{width:200px;background:linear-gradient(135deg,var(--color-secondary) 0%,#2a2a2a 100%);padding:var(--spacing-lg);border-radius:var(--border-radius-md);border:2px solid var(--color-accent);box-shadow:0 0 20px #8a4a8a4d,0 8px 32px #0006,inset 0 1px #ffffff1a;position:relative;animation:contextMenuGlow .2s ease-in-out infinite alternate}.context-menu{position:absolute;min-width:200px;background:linear-gradient(135deg,var(--color-secondary) 0%,#2a2a2a 100%),radial-gradient(circle at 30% 30%,rgba(138,74,138,.1) 0%,transparent 50%);border:2px solid var(--color-accent);border-radius:var(--border-radius-md);padding:var(--spacing-sm);max-height:400px;display:flex;flex-direction:column;box-shadow:0 0 30px #8a4a8a66,0 12px 40px #00000080,inset 0 1px #ffffff1a,inset 0 -1px #0003;animation:contextMenuAppear .3s ease-out,contextMenuGlow .3s ease-in-out infinite alternate;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.context-menu ul{list-style:none;margin:0;padding:0;overflow-y:auto;flex-grow:1;overflow-x:hidden}.context-menu-heading{padding:var(--spacing-lg) var(--spacing-lg);color:var(--color-background);font-family:var(--font-family-primary);font-size:var(--font-size-lg);font-weight:700;text-align:center;border-bottom:2px solid var(--color-accent);background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-accent) 100%);text-shadow:1px 1px 3px rgba(0,0,0,.8);margin-bottom:var(--spacing-sm);border-radius:var(--border-radius-sm) var(--border-radius-sm) 0 0;box-shadow:inset 0 1px #ffffff4d;white-space:nowrap}.context-menu li{position:relative;padding:var(--spacing-md) var(--spacing-lg);cursor:pointer;color:var(--color-text-primary);font-family:var(--font-family-primary);font-size:var(--font-size-sm);font-weight:500;border-radius:var(--border-radius-sm);margin-bottom:2px;transition:all .2s ease;text-shadow:1px 1px 2px rgba(0,0,0,.5);border:1px solid transparent;background:#ffffff0d}.context-menu li.separator{height:2px;background:linear-gradient(90deg,transparent 0%,var(--color-accent) 50%,transparent 100%);margin:var(--spacing-md) 0;padding:0;border-radius:1px}.context-menu li:hover{background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-hover) 100%);color:var(--color-background);text-shadow:1px 1px 2px rgba(0,0,0,.7);box-shadow:0 4px 12px #4caf504d,inset 0 1px #fff3;border-color:#ffffff4d}.context-menu li.has-submenu:after{content:"▶";position:absolute;right:var(--spacing-sm);top:50%;transform:translateY(-50%);font-size:var(--font-size-xs)}@keyframes contextMenuAppear{0%{opacity:0;transform:scale(.8) translateY(-10px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes contextMenuGlow{0%{box-shadow:0 0 30px #8a4a8a66,0 12px 40px #00000080,inset 0 1px #ffffff1a,inset 0 -1px #0003}to{box-shadow:0 0 40px #8a4a8a99,0 16px 50px #0009,inset 0 1px #ffffff26,inset 0 -1px #0000004d}}.context-menu.submenu-portal{min-width:200px;background:linear-gradient(135deg,var(--color-secondary) 0%,#2a2a2a 100%),radial-gradient(circle at 30% 30%,rgba(138,74,138,.1) 0%,transparent 50%);border:2px solid var(--color-accent);border-radius:var(--border-radius-md);padding:var(--spacing-sm);max-height:400px;box-shadow:0 0 25px #8a4a8a59,0 10px 35px #0006,inset 0 1px #ffffff1a,inset 0 -1px #0003;z-index:calc(var(--z-index-dropdown) + 10);animation:contextMenuAppear .3s ease-out,contextMenuGlow .3s ease-in-out infinite alternate;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.context-menu.submenu-portal ul{list-style:none;margin:0;padding:0;overflow-y:auto}.context-menu.submenu-portal li{position:relative;padding:var(--spacing-md) var(--spacing-lg);cursor:pointer;color:var(--color-text-primary);font-family:var(--font-family-primary);font-size:var(--font-size-sm);font-weight:500;border-radius:var(--border-radius-sm);margin-bottom:2px;transition:all .2s ease;text-shadow:1px 1px 2px rgba(0,0,0,.5);border:1px solid transparent;background:#ffffff0d}.context-menu.submenu-portal li.has-submenu:after{content:"▶";position:absolute;right:var(--spacing-md);top:50%;transform:translateY(-50%);font-size:var(--font-size-sm);color:var(--color-accent);text-shadow:1px 1px 2px rgba(0,0,0,.7)}.context-menu.submenu-portal li.separator{height:2px;background:linear-gradient(90deg,transparent 0%,var(--color-accent) 50%,transparent 100%);margin:var(--spacing-md) 0;padding:0;border-radius:1px}.context-menu.submenu-portal li:hover{background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-hover) 100%);color:var(--color-background);text-shadow:1px 1px 2px rgba(0,0,0,.7);box-shadow:0 4px 12px #4caf504d,inset 0 1px #fff3;border-color:#ffffff4d}.context-menu li.action-combat,.context-menu.submenu-portal li.action-combat{border-left:3px solid var(--color-error);background:linear-gradient(90deg,#f443361a,#ffffff0d)}.context-menu li.action-combat:hover,.context-menu.submenu-portal li.action-combat:hover{background:linear-gradient(135deg,var(--color-error) 0%,#d32f2f 100%);box-shadow:0 4px 12px #f4433666,inset 0 1px #fff3}.context-menu li.action-item,.context-menu.submenu-portal li.action-item{border-left:3px solid var(--color-interactive-item);background:linear-gradient(90deg,#8a8a4a1a,#ffffff0d)}.context-menu li.action-item:hover,.context-menu.submenu-portal li.action-item:hover{background:linear-gradient(135deg,var(--color-interactive-item) 0%,#6a6a3a 100%);box-shadow:0 4px 12px #8a8a4a66,inset 0 1px #fff3}.context-menu li.action-creature,.context-menu.submenu-portal li.action-creature{border-left:3px solid var(--color-interactive-creature);background:linear-gradient(90deg,#4a4a8a1a,#ffffff0d)}.context-menu li.action-creature:hover,.context-menu.submenu-portal li.action-creature:hover{background:linear-gradient(135deg,var(--color-interactive-creature) 0%,#3a3a6a 100%);box-shadow:0 4px 12px #4a4a8a66,inset 0 1px #fff3}.context-menu li.action-portal,.context-menu.submenu-portal li.action-portal{border-left:3px solid var(--color-interactive-portal);background:linear-gradient(90deg,#8a4a8a1a,#ffffff0d)}.context-menu li.action-portal:hover,.context-menu.submenu-portal li.action-portal:hover{background:linear-gradient(135deg,var(--color-interactive-portal) 0%,#6a3a6a 100%);box-shadow:0 4px 12px #8a4a8a66,inset 0 1px #fff3}.context-menu li.action-skill,.context-menu.submenu-portal li.action-skill{border-left:3px solid var(--color-interactive-skill);background:linear-gradient(90deg,#4a8a8a1a,#ffffff0d)}.context-menu li.action-skill:hover,.context-menu.submenu-portal li.action-skill:hover{background:linear-gradient(135deg,var(--color-interactive-skill) 0%,#3a6a6a 100%);box-shadow:0 4px 12px #4a8a8a66,inset 0 1px #fff3}.scroll-arrow{height:20px;min-height:20px;cursor:pointer;display:flex;align-items:center;justify-content:center;position:relative;border-radius:var(--border-radius-sm);margin:2px 0;transition:all .2s ease;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);opacity:.3}.scroll-arrow:hover{background:#4caf5033;border-color:var(--color-primary);box-shadow:0 2px 8px #4caf504d}.scroll-arrow.up:before,.scroll-arrow.down:before{content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;transition:all .2s ease}.scroll-arrow.up:before{border-bottom:8px solid var(--color-accent);border-top:none}.scroll-arrow.down:before{border-top:8px solid var(--color-accent);border-bottom:none}.scroll-arrow:hover:before{border-bottom-color:var(--color-primary)}.scroll-arrow:hover.down:before{border-top-color:var(--color-primary)}.weather-display{position:absolute;bottom:1.5em;left:3em}.weather-icons{display:flex;flex-direction:row;gap:var(--spacing-sm)}.weather-icon{position:relative;display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:var(--border-radius-sm);background-color:color-mix(in srgb,var(--color-background) 80%,var(--color-secondary));border:1px solid var(--color-border);transition:all .2s ease;cursor:pointer}.weather-icon:hover{background-color:color-mix(in srgb,var(--color-background) 60%,var(--color-secondary));border-color:var(--color-primary);transform:scale(1.05);box-shadow:var(--shadow-sm)}.weather-icon:active{transform:scale(.95)}.weather-icon-image{width:20px;height:20px;filter:var(--weather-icon-filter);transition:all .3s ease;mix-blend-mode:var(--weather-icon-blend-mode, normal)}.weather-icon:hover .weather-icon-image{filter:var(--weather-icon-hover-filter);transform:scale(1.1)}.weather-icon-image{filter:var(--weather-icon-filter);transition:all .3s ease;mix-blend-mode:var(--weather-icon-blend-mode, normal)}.weather-icon{position:relative;overflow:hidden}.weather-icon:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:var(--weather-icon-overlay, transparent);mix-blend-mode:var(--weather-icon-overlay-blend, normal);pointer-events:none;transition:background .3s ease}.weather-icon:hover:before{background:var(--weather-icon-overlay-hover, transparent)}:root{--weather-icon-filter: brightness(.9) contrast(1.1) invert(.1) sepia(.2) saturate(1.5) hue-rotate(15deg);--weather-icon-hover-filter: brightness(1.1) contrast(1.2) invert(.05) sepia(.1) saturate(2) hue-rotate(15deg);--weather-icon-blend-mode: multiply;--weather-icon-overlay: rgba(0, 0, 0, .05);--weather-icon-overlay-hover: rgba(0, 0, 0, .1);--weather-icon-overlay-blend: multiply}[data-theme=clean-dark]{--weather-icon-filter: brightness(1.8) contrast(1.5) invert(.9) sepia(.1) saturate(.8) hue-rotate(200deg);--weather-icon-hover-filter: brightness(2.2) contrast(1.8) invert(.95) sepia(.05) saturate(1) hue-rotate(200deg);--weather-icon-blend-mode: screen;--weather-icon-overlay: rgba(100, 181, 246, .1);--weather-icon-overlay-hover: rgba(100, 181, 246, .2);--weather-icon-overlay-blend: color}[data-theme=deep-fantasy]{--weather-icon-filter: brightness(1.3) contrast(1.4) invert(.7) sepia(.3) saturate(1.2) hue-rotate(260deg);--weather-icon-hover-filter: brightness(1.6) contrast(1.7) invert(.75) sepia(.2) saturate(1.5) hue-rotate(260deg);--weather-icon-blend-mode: color-dodge;--weather-icon-overlay: rgba(138, 74, 138, .1);--weather-icon-overlay-hover: rgba(138, 74, 138, .2);--weather-icon-overlay-blend: color}[data-theme=old-book]{--weather-icon-filter: sepia(.6) brightness(.8) contrast(1.2) saturate(.5) hue-rotate(25deg);--weather-icon-hover-filter: sepia(.4) brightness(1) contrast(1.4) saturate(.7) hue-rotate(25deg);--weather-icon-blend-mode: overlay;--weather-icon-overlay: rgba(139, 107, 61, .1);--weather-icon-overlay-hover: rgba(139, 107, 61, .2);--weather-icon-overlay-blend: multiply}[data-theme=old-book] .weather-icon{background-color:color-mix(in srgb,var(--color-secondary) 70%,var(--color-background) 30%);border-color:var(--color-primary)}[data-theme=old-book] .weather-icon:hover{background-color:color-mix(in srgb,var(--color-secondary) 50%,var(--color-background) 50%);border-color:var(--color-accent)}[data-theme=old-school]{--weather-icon-filter: brightness(3) contrast(2) saturate(0) invert(1);--weather-icon-hover-filter: brightness(4) contrast(2.5) saturate(0) invert(1);--weather-icon-blend-mode: normal;--weather-icon-overlay: rgba(0, 255, 0, .05);--weather-icon-overlay-hover: rgba(0, 255, 0, .1);--weather-icon-overlay-blend: screen}.room-image-container{width:100%;height:100%;display:flex;flex-direction:column;justify-content:flex-start;background-color:var(--color-secondary);border:1px solid var(--color-border);border-radius:var(--border-radius-md);overflow:hidden;margin:0;padding:.5em}.room-image{margin-top:.5em;display:flex;width:100%;object-fit:contain;border-radius:var(--border-radius-sm);border:1px solid var(--color-border)}.room-details-overlay{display:flex;flex-direction:column;background-color:color-mix(in srgb,var(--color-background),transparent 80%);padding:var(--spacing-md);border-radius:var(--border-radius-sm);color:var(--color-text-primary);text-shadow:1px 1px 2px var(--color-background);border:1px solid var(--color-border)}.area-name{font-size:var(--font-size-sm);color:var(--color-success);margin:0 0 var(--spacing-sm) 0}.room-name{font-size:var(--font-size-md);color:var(--color-text-primary);margin:0}.room-status{width:100%;padding:var(--spacing-sm);text-align:center;background-color:color-mix(in srgb,var(--color-background),transparent 50%);color:var(--color-text-primary);font-size:var(--font-size-xs);margin-top:var(--spacing-sm)}.room-effects,.room-affections{margin:0;padding:2px 0}.play-page{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:calc(100vh - var(--header-height));padding:var(--spacing-xl);background-color:var(--color-background);color:var(--color-text-primary);font-family:var(--font-family-primary);overflow-y:auto}.play-page h1{color:var(--color-primary);margin-bottom:var(--spacing-xl);text-align:center}.character-list{display:flex;flex-direction:column;gap:var(--spacing-lg);width:100%;max-width:600px;max-height:60vh;overflow-y:auto;padding:var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--border-radius-md);background-color:var(--color-secondary)}.character-card{background-color:var(--color-background);border:1px solid var(--color-border);border-radius:var(--border-radius-md);padding:var(--spacing-lg);box-shadow:var(--shadow-md);transition:transform .2s ease,box-shadow .2s ease}.character-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.character-card h2{color:var(--color-primary);margin-top:0;margin-bottom:var(--spacing-sm);font-size:var(--font-size-xl)}.character-card p{margin:var(--spacing-xs) 0;color:var(--color-text-primary)}.character-card button{background-color:var(--color-primary);color:var(--color-secondary);border:none;padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--border-radius-sm);cursor:pointer;font-size:var(--font-size-md);font-weight:700;transition:background-color .3s ease;margin-top:var(--spacing-md);width:100%}.character-card button:hover{background-color:var(--color-primary-hover)}.new-character-button{background-color:var(--color-accent);color:var(--color-secondary);border:none;padding:var(--spacing-md) var(--spacing-xl);border-radius:var(--border-radius-sm);cursor:pointer;font-size:var(--font-size-lg);font-weight:700;transition:background-color .3s ease;margin-top:var(--spacing-xl);width:100%;max-width:300px}.new-character-button:hover{background-color:var(--color-accent-hover)}.character-list::-webkit-scrollbar{width:8px}.character-list::-webkit-scrollbar-track{background:transparent}.character-list::-webkit-scrollbar-thumb{background:var(--color-text-secondary);border-radius:4px}.character-list{scrollbar-width:thin;scrollbar-color:var(--color-text-secondary) transparent}.character-creation-page{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:calc(100vh - var(--header-height));max-height:calc(100vh - var(--header-height));padding:var(--spacing-xl);background-color:var(--color-background);color:var(--color-text-primary);font-family:var(--font-family-primary);overflow-y:auto}.character-creation-page h1{color:var(--color-primary);margin-bottom:var(--spacing-xl);text-align:center}.character-creation-form{background-color:var(--color-secondary);padding:var(--spacing-xl);border-radius:var(--border-radius-md);box-shadow:var(--shadow-md);display:flex;flex-direction:column;gap:var(--spacing-xl);width:100%;max-width:500px;max-height:730px;overflow-y:auto}.form-section{background-color:var(--color-background);border:1px solid var(--color-border);padding:var(--spacing-xl);border-radius:var(--border-radius-sm)}.form-section h2{color:var(--color-primary);margin-top:0;margin-bottom:var(--spacing-lg);font-size:var(--font-size-xl);text-align:center}.form-group{display:flex;flex-direction:column;margin-bottom:var(--spacing-lg)}.form-group label{margin-bottom:var(--spacing-sm);font-weight:700;color:var(--color-text-primary)}.form-group input,.form-group select,.form-group textarea{padding:var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);background-color:var(--color-background);color:var(--color-text-primary);font-size:var(--font-size-md)}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--color-primary),transparent 50%)}.customize-button{background-color:var(--color-secondary);color:var(--color-text-primary);border:none;padding:var(--spacing-md) var(--spacing-xl);border-radius:var(--border-radius-sm);cursor:pointer;font-size:var(--font-size-md);font-weight:700;transition:background-color .3s ease;text-align:center;margin:var(--spacing-md) 0}.customize-button:hover{background-color:var(--color-border)}.submit-button{background-color:var(--color-primary);color:var(--color-background);border:none;padding:var(--spacing-md) var(--spacing-xl);border-radius:var(--border-radius-sm);cursor:pointer;font-size:var(--font-size-lg);font-weight:700;transition:background-color .3s ease;margin-top:var(--spacing-md)}.submit-button:hover{background-color:var(--color-primary-hover)}.submit-button:disabled{background-color:var(--color-border);cursor:not-allowed}.spinner{border:4px solid color-mix(in srgb,var(--color-text-primary),transparent 70%);border-radius:50%;border-top:4px solid var(--color-text-primary);width:30px;height:30px;animation:spin 1s linear infinite;margin:0 auto}.spinner-container{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-lg);padding:var(--spacing-xl)}.spinner-text{color:var(--color-text-primary);font-size:var(--font-size-lg)}.error-message{color:var(--color-error)}.top-bar{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-md) var(--spacing-xl);background-color:var(--color-secondary);border-bottom:1px solid var(--color-border);color:var(--color-text-primary);font-size:var(--font-size-sm)}.player-info,.player-name-container{display:flex;align-items:center;gap:var(--spacing-sm)}.player-name{font-weight:700;color:var(--color-success)}.player-stance{font-style:italic;color:var(--color-text-secondary);font-size:var(--font-size-sm)}.affections,.effects{color:var(--color-error)}.game-time{display:flex;font-style:italic;color:var(--color-text-secondary)}.quit-button{background-color:var(--color-error);color:var(color-secondary);border:none;padding:var(--spacing-sm) var(--spacing-lg);cursor:pointer;border-radius:var(--border-radius-sm);font-size:var(--font-size-sm);font-family:var(--font-family-primary);font-weight:700}.quit-button:hover{background-color:var(--color-accent-hover)}.room-description-container{background-color:var(--color-secondary);padding:var(--spacing-lg);border-radius:var(--border-radius-md);border:1px solid var(--color-border);overflow-y:auto;flex:1}.room-description{font-size:.95em;line-height:1.6;margin-bottom:var(--spacing-lg);color:var(--color-text-primary)}.room-description p{margin-bottom:var(--spacing-md)}.room-description h3{font-size:var(--font-size-md);color:var(--color-text-secondary);margin-top:var(--spacing-lg);margin-bottom:var(--spacing-sm)}.room-description ul{list-style:none;padding:0;margin:0}.room-description li{margin-bottom:3px;color:var(--color-text-secondary)}.room-description a{color:var(--color-success);text-decoration:none}.room-description a:hover{text-decoration:underline}.map-area-container{padding:0;display:flex;flex-direction:column;align-items:center;justify-content:space-around;height:100%}.minimap-placeholder,.compass-placeholder{width:100%;text-align:center;margin-bottom:var(--spacing-md)}.minimap-placeholder img,.compass-placeholder img{max-width:100%;height:auto;border-radius:var(--border-radius-sm);border:1px solid var(--color-border)}.map-controls{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-sm);width:100%;margin-top:var(--spacing-md)}.map-controls button{background-color:var(--color-secondary);color:var(--color-text-primary);border:none;padding:var(--spacing-sm) 0;cursor:pointer;border-radius:var(--border-radius-sm);font-size:var(--font-size-sm);font-family:var(--font-family-primary);font-weight:700}.map-controls button:hover{background-color:var(--color-border)}.mid-section{display:flex;flex-grow:1;gap:var(--spacing-lg);padding:var(--spacing-lg);position:relative;height:100vh;max-height:100vh;min-height:100vh}.mid-section-left,.mid-section-center,.mid-section-right{flex:1;display:flex;flex-direction:column;gap:var(--spacing-lg)}.mid-section-center{position:relative}.travel-progress-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background-color:color-mix(in srgb,var(--color-background),transparent 30%);display:flex;flex-direction:column;justify-content:center;align-items:center;z-index:var(--z-index-modal);color:var(--color-text-primary);font-size:var(--font-size-xl);font-weight:700;text-shadow:1px 1px 2px var(--color-background)}.travel-progress-bar{width:0%;height:20px;background-color:var(--color-primary);border-radius:var(--border-radius-sm);transition:width .5s ease-out;margin-top:var(--spacing-md);box-shadow:0 0 5px color-mix(in srgb,var(--color-background),transparent 50%)}.travel-progress-text{margin-top:var(--spacing-md);color:var(--color-text-primary)}.game-log-container{background-color:var(--color-background);border-radius:var(--border-radius-md);border:1px solid var(--color-border);height:100%;overflow-y:auto;font-size:var(--font-size-md);line-height:1.6;color:var(--color-text-primary);display:flex;flex-direction:column}.log-entries-wrapper{flex:1;overflow-y:auto;padding:var(--spacing-md)}.log-entry{margin-bottom:2px;white-space:pre-wrap}.log-entry.player-action{color:var(--color-success)}.log-entry.npc-dialogue{color:var(--color-info)}.log-entry.system-message{color:var(--color-error)}.log-entry.emote{color:var(--color-warning)}.log-entry h1,.log-entry h2,.log-entry h3,.log-entry h4,.log-entry h5,.log-entry h6{font-size:var(--font-size-md);font-weight:700;margin:.6em 0 .2em;color:var(--color-text-primary)}.log-entry p{margin:0 0 .2em}.log-entry ul,.log-entry ol{margin:.2em 0;padding-left:var(--spacing-md)}.log-entry li{margin:0}.game-log-container p{line-height:1;margin:0 0 1em}.interactive{border-radius:var(--border-radius-sm);padding:2px 6px;margin:0 2px;cursor:pointer;display:inline-block;font-weight:700;text-shadow:var(--interactive-text-shadow);transition:all .2s ease}.interactive:hover{filter:brightness(1.3);text-shadow:var(--interactive-text-shadow);transform:scale(1.05)}.interactive[data-type=item]{background-color:var(--color-interactive-item);border:1px solid var(--color-interactive-item-border)}.interactive[data-type=creature]{background-color:var(--color-interactive-creature);border:1px solid var(--color-interactive-creature-border)}.interactive[data-type=resourceGenerator]{background-color:var(--color-interactive-resource);border:1px solid var(--color-interactive-resource-border)}.interactive[data-type=room]{background-color:var(--color-interactive-room);border:1px solid var(--color-interactive-room-border)}.interactive[data-type=portal]{background-color:var(--color-interactive-portal);border:1px solid var(--color-interactive-portal-border)}.interactive[data-type=skill]{background-color:var(--color-interactive-skill);border:1px solid var(--color-interactive-skill-border)}.interactive[data-type=exit]{background-color:var(--color-interactive-exit);border:1px solid var(--color-interactive-exit-border)}.interactive[data-type=scenery]{background-color:var(--color-interactive-scenery);border:1px solid var(--color-interactive-scenery-border)}.interactive[data-type=bodyPart]{background-color:var(--color-interactive-body);border:1px solid var(--color-interactive-body-border)}.interactive[data-type=lore]{background-color:var(--color-interactive-lore);border:1px solid var(--color-interactive-lore-border)}.interactive[data-type=recipe]{background-color:var(--color-interactive-recipe);border:1px solid var(--color-interactive-recipe-border)}.interactive[data-type=creatureProperty],.interactive[data-type=area],.interactive[data-type=other]{background-color:var(--color-interactive-other);border:1px solid var(--color-interactive-other-border)}.log-entry-combat,.log-entry-error{color:var(--color-error)}.log-entry-movement{color:var(--color-info)}.log-entry-communication{color:var(--color-success)}.log-entry-info{color:var(--color-info)}.log-entry-own-action{color:var(--color-warning)}.log-entry-other-action{color:var(--color-text-secondary)}.log-entry-time{color:var(--color-accent)}.log-entry-progress,.log-entry-quest{color:var(--color-warning)}.log-entry-system{color:var(--color-error)}.log-entry-weather{color:var(--color-weather)}.log-entry-default{color:var(--color-text-primary)}.quick-actions-settings-container{background-color:var(--color-secondary);padding:var(--spacing-lg);border-radius:var(--border-radius-md);border:1px solid var(--color-border);display:flex;flex-direction:column;justify-content:space-between;height:100%}.quick-actions{display:flex;flex-wrap:wrap;gap:var(--spacing-md);margin-bottom:var(--spacing-xl)}.quick-action-item{border-radius:var(--border-radius-sm);padding:var(--spacing-xs) var(--spacing-md);margin:0;cursor:pointer;display:inline-block;font-weight:700;text-shadow:var(--interactive-text-shadow);color:var(--color-text-primary);text-decoration:none;transition:filter .2s ease-in-out,background-color .2s ease-in-out;background-color:var(--color-interactive-item);border:1px solid var(--color-interactive-item-border)}.quick-action-item:hover{filter:brightness(1.2);text-decoration:none}.settings{display:flex;flex-direction:column;gap:var(--spacing-md);font-size:var(--font-size-sm)}.setting-item{display:flex;align-items:center;gap:var(--spacing-sm)}.setting-item input[type=checkbox]{margin-right:var(--spacing-sm)}.setting-item input[type=number]{width:60px;padding:3px 5px;border:1px solid var(--color-border);background-color:var(--color-background);color:var(--color-text-primary);border-radius:var(--border-radius-sm)}.bottom-area{display:flex;flex:1;padding:var(--spacing-md) var(--spacing-xl);gap:var(--spacing-xl);border-top:1px solid var(--color-border);height:100%;min-height:0}.game-log-section{flex:0 0 70%;overflow-y:hidden;padding-right:var(--spacing-md);display:flex;flex-direction:column}.game-session-page{display:flex;flex-direction:column;background-color:var(--color-background);color:var(--color-text-primary);font-family:var(--font-family-primary);height:calc(100vh - var(--header-height));width:100%}.top-bar{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-md) var(--spacing-xl);background-color:var(--color-secondary);border-bottom:1px solid var(--color-border);height:50px;position:sticky;top:0;z-index:var(--z-index-sticky)}.mid-section{display:flex;height:33vh;max-height:33vh;min-height:450px;padding:var(--spacing-md) var(--spacing-xl);gap:var(--spacing-xl)}.mid-section-container{position:relative;height:33vh;max-height:33vh;min-height:470px}.mid-section-left{flex:0 0 350px;display:flex;flex-direction:column;gap:var(--spacing-md)}.mid-section-center{flex:1;overflow-y:auto;display:flex;flex-direction:column}.mid-section-right{flex:0 0 240px;display:flex;flex-direction:column;gap:var(--spacing-md);height:100%}.bottom-area{display:flex;flex:1;padding:var(--spacing-md) var(--spacing-xl);gap:var(--spacing-xl);border-top:1px solid var(--color-border)}.game-log-section{flex:0 0 70%;overflow-y:auto;padding:0}.quick-actions-settings-section{flex:1;display:flex;flex-direction:column;justify-content:space-between}.modal-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background-color:color-mix(in srgb,var(--color-background),transparent 50%);display:flex;justify-content:center;align-items:center;z-index:var(--z-index-modal-backdrop)}.game-session-page .modal-overlay{top:50px}.modal-content{background-color:var(--color-secondary);padding:var(--spacing-xl);border-radius:var(--border-radius-md);box-shadow:var(--shadow-lg);color:var(--color-text-primary)}.spinner{border:4px solid color-mix(in srgb,var(--color-text-primary),transparent 70%);border-radius:50%;border-top:4px solid var(--color-text-primary);width:40px;height:40px;animation:spin 1s linear infinite;margin:0 auto}.spinner-small{width:20px;height:20px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.reconnecting-overlay{z-index:20000;background-color:color-mix(in srgb,var(--color-background),transparent 30%)}.reconnecting-content{padding:var(--spacing-xl);text-align:center}.reconnecting-spinner{margin-top:var(--spacing-md)}.quantity-modal{background-color:var(--color-secondary);border:1px solid var(--color-border);border-radius:var(--border-radius-md);padding:var(--spacing-xl);width:300px;box-shadow:var(--shadow-md);color:var(--color-text-primary)}.quantity-modal h3{margin-top:0;text-align:center;color:var(--color-primary)}.slider-container{margin-bottom:var(--spacing-xl)}.slider-container label{display:block;text-align:center;margin-bottom:var(--spacing-md);color:var(--color-text-primary)}.quantity-slider{width:100%;height:8px;border-radius:var(--border-radius-sm);background:var(--color-border);outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.quantity-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:20px;height:20px;border-radius:50%;background:var(--color-primary);cursor:pointer}.quantity-slider::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:var(--color-primary);cursor:pointer}.modal-buttons{display:flex;justify-content:space-between}.banking-modal{position:absolute;background-color:var(--color-secondary);border:1px solid var(--color-border);border-radius:var(--border-radius-md);padding:var(--spacing-xl);width:400px;box-shadow:var(--shadow-lg);color:var(--color-text-primary);z-index:var(--z-index-modal)}.banking-modal h2{margin-top:0;text-align:center;color:var(--color-primary)}.modal-description{text-align:center;margin-bottom:var(--spacing-xl);color:var(--color-text-secondary)}.currency-inputs{display:flex;flex-direction:column;gap:var(--spacing-lg);margin-bottom:var(--spacing-xl)}.currency-input{display:flex;flex-direction:column}.currency-input label{display:flex;justify-content:space-between;margin-bottom:var(--spacing-sm);color:var(--color-text-primary)}.currency-slider{width:100%;height:8px;border-radius:var(--border-radius-sm);background:var(--color-border);outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.currency-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:20px;height:20px;border-radius:50%;background:var(--color-primary);cursor:pointer}.currency-slider::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:var(--color-primary);cursor:pointer}.slider-labels{display:flex;justify-content:space-between;margin-top:var(--spacing-sm);color:var(--color-text-secondary)}.btn-confirm{background-color:var(--color-primary);color:var(--color-background)}.btn-confirm:hover{background-color:var(--color-primary-hover)}.btn-balance{background-color:var(--color-info);color:var(--color-background)}.btn-balance:hover{background-color:var(--color-accent-hover)}.modal-header{display:flex;justify-content:space-between;align-items:center;padding-bottom:var(--spacing-md);margin-bottom:var(--spacing-lg);cursor:grab;color:var(--color-text-primary)}.modal-header button{background-color:var(--color-error);color:var(--color-background);border:none;border-radius:var(--border-radius-sm);padding:var(--spacing-xs) var(--spacing-sm);cursor:pointer;font-weight:700}.shop-trading-modal{position:absolute;background-color:var(--color-secondary);border:1px solid var(--color-border);border-radius:var(--border-radius-md);padding:var(--spacing-xl);width:600px;max-width:90vw;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lg);color:var(--color-text-primary);z-index:var(--z-index-modal)}.shop-trading-modal h2{margin-top:0;text-align:center;color:var(--color-primary)}.transaction-summary{display:flex;justify-content:space-between;margin-bottom:var(--spacing-xl);padding:var(--spacing-md);background-color:var(--color-background);border-radius:var(--border-radius-sm)}.transaction-summary div{text-align:center}.transaction-summary span{display:block;font-weight:700;font-size:var(--font-size-xl);color:var(--color-primary)}.inventory-table-container{max-height:400px;overflow-y:auto;margin-bottom:var(--spacing-xl);border:1px solid var(--color-border);border-radius:var(--border-radius-sm)}.inventory-table{width:100%;border-collapse:collapse;color:var(--color-text-primary)}.inventory-table thead{position:sticky;top:0;background-color:var(--color-background);z-index:1}.inventory-table th,.inventory-table td{padding:var(--spacing-md);text-align:left;border-bottom:1px solid var(--color-border)}.inventory-table th{font-weight:700}.inventory-table tbody tr:hover{background-color:var(--color-background)}.item-name{color:var(--color-primary);cursor:pointer;text-decoration:underline}.item-name:hover{color:var(--color-primary-hover)}.item-counts{display:flex;flex-direction:column;font-size:var(--font-size-xs);margin-top:var(--spacing-sm)}.buy-count{color:var(--color-info)}.sell-count{color:var(--color-warning)}.quantity-info{text-align:center;font-size:var(--font-size-sm)}.buy-button,.sell-button{padding:var(--spacing-xs) var(--spacing-md);border:none;border-radius:var(--border-radius-sm);cursor:pointer;font-weight:700;min-width:120px;text-align:center;font-family:var(--font-family-primary);font-size:var(--font-size-sm)}.buy-button{background-color:var(--color-info);color:var(--color-text-primary)}.buy-button:hover{background-color:var(--color-accent-hover)}.buy-button:disabled{background-color:var(--color-border);cursor:not-allowed}.sell-button{background-color:var(--color-warning);color:var(--color-background)}.sell-button:hover{background-color:var(--color-accent-hover)}.sell-button:disabled{background-color:var(--color-border);cursor:not-allowed}.btn-commit{background-color:var(--color-primary);color:var(--color-background)}.btn-commit:hover{background-color:var(--color-primary-hover)}.btn-commit:disabled{background-color:var(--color-border);cursor:not-allowed}.error-message{color:var(--color-error);background-color:color-mix(in srgb,var(--color-error),transparent 90%);border:1px solid var(--color-error);border-radius:var(--border-radius-sm);padding:var(--spacing-md);margin-bottom:var(--spacing-lg);text-align:center}.communications-modal{position:absolute;background-color:var(--color-secondary);border:1px solid var(--color-border);border-radius:var(--border-radius-md);padding:var(--spacing-xl);width:400px;box-shadow:var(--shadow-lg);color:var(--color-text-primary);z-index:var(--z-index-modal)}.communications-modal h2{margin-top:0;text-align:center;color:var(--color-primary)}.form-group{margin-bottom:var(--spacing-lg)}.form-group label{display:block;margin-bottom:var(--spacing-sm);color:var(--color-text-secondary)}.form-group select,.form-group input{width:100%;padding:var(--spacing-sm);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);background-color:var(--color-background);color:var(--color-text-primary);box-sizing:border-box;font-family:var(--font-family-primary)}.form-group input{margin-bottom:var(--spacing-md)}.modal-buttons{display:flex;justify-content:space-between;margin-top:var(--spacing-xl)}.btn-cancel{background-color:var(--color-border);color:var(--color-text-primary)}.btn-cancel:hover{background-color:var(--color-text-secondary)}.btn-send{background-color:var(--color-primary);color:var(--color-background)}.btn-send:hover{background-color:var(--color-primary-hover)}.modal-header button{background-color:var(--color-error);color:var(--color-text-primary);border:none;border-radius:var(--border-radius-sm);padding:var(--spacing-xs) var(--spacing-sm);cursor:pointer;font-weight:700}.character-sheet-modal{position:absolute;background-color:var(--color-secondary);border:1px solid var(--color-border);border-radius:var(--border-radius-md);padding:var(--spacing-xl);width:720px;max-width:90vw;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lg);color:var(--color-text-primary);z-index:var(--z-index-modal)}.character-sheet-modal h2{margin-top:0;text-align:center;color:var(--color-primary)}.character-sheet-modal h3{margin-top:0;color:var(--color-primary);border-bottom:1px solid var(--color-border);padding-bottom:var(--spacing-sm)}.modal-tabs{display:flex;flex-wrap:wrap;gap:var(--spacing-sm);margin-bottom:var(--spacing-xl);border-bottom:1px solid var(--color-border);padding-bottom:var(--spacing-md)}.tab-button{padding:var(--spacing-sm) var(--spacing-lg);border:none;border-radius:var(--border-radius-sm);cursor:pointer;font-weight:700;background-color:var(--color-secondary);color:var(--color-text-secondary);font-family:var(--font-family-primary);font-size:var(--font-size-sm)}.tab-button:hover{background-color:var(--color-border)}.tab-button.active{background-color:var(--color-primary);color:var(--color-secondary)}.modal-content{margin-bottom:var(--spacing-xl)}.tab-content{min-height:300px;width:100%}.tab-content h3{padding:var(--spacing-md)}.stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-lg)}.stat-item{display:flex;justify-content:space-between;padding:var(--spacing-sm);background-color:var(--color-background);border-radius:var(--border-radius-sm)}.stat-label{font-weight:700;color:var(--color-text-secondary)}.stat-value{color:var(--color-primary)}.inventory-list,.knowledge-list,.recipes-list,.equipment-list,.skills-list,.combat-info{display:flex;flex-direction:column;gap:var(--spacing-md)}.inventory-item,.knowledge-item,.recipe-item,.equipment-item,.skill-item,.combat-slot{display:flex;justify-content:space-between;padding:var(--spacing-md);background-color:var(--color-background);border-radius:var(--border-radius-sm);cursor:pointer}.inventory-item:hover,.knowledge-item:hover,.recipe-item:hover,.equipment-item:hover,.skill-item:hover,.combat-slot:hover{background-color:var(--color-border)}.item-name,.knowledge-name,.recipe-name,.equipment-name,.skill-name,.slot-name{color:var(--color-primary)}.item-quantity,.knowledge-proficiency,.skill-level,.slot-value{color:var(--color-info)}.item-equipped{margin-left:var(--spacing-xs);font-style:italic}.bodypart-hp{margin-left:var(--spacing-xs);font-size:var(--font-size-sm)}.modal-buttons{display:flex;justify-content:center;margin-top:var(--spacing-xl)}.modal-buttons button{padding:var(--spacing-sm) var(--spacing-lg);border:none;border-radius:var(--border-radius-sm);cursor:pointer;font-weight:700;font-family:var(--font-family-primary);font-size:var(--font-size-sm)}.btn-close{background-color:var(--color-border);color:var(--color-text-primary)}.btn-close:hover{background-color:var(--color-text-secondary)}.modal-header{display:flex;justify-content:space-between;align-items:center;padding-bottom:var(--spacing-md);margin-bottom:var(--spacing-lg);cursor:grab}.modal-header button{background-color:var(--color-error);color:var(--color-secondary);border:none;border-radius:var(--border-radius-sm);padding:var(--spacing-xs) var(--spacing-sm);cursor:pointer;font-weight:700}.modal-header button:hover{background-color:var(--color-accent-hover)}.combat-columns{display:flex;gap:var(--spacing-xl)}.combat-slots,.combat-skills{flex:1;display:flex;flex-direction:column;gap:var(--spacing-md)}.combat-slot{position:relative}.clear-button{position:absolute;top:2px;right:2px;background:none;border:none;color:var(--color-error);cursor:pointer;display:none}.combat-slot:hover .clear-button{display:block}.status-bar-container{display:flex;align-items:center;margin-bottom:var(--spacing-xs);width:100%}.status-bar-label{width:80px;font-size:var(--font-size-sm);color:var(--color-text-secondary);text-align:right;padding-right:var(--spacing-sm)}.status-bar{flex-grow:1;height:20px;background-color:var(--color-background);border-radius:var(--border-radius-sm);position:relative;border:1px solid var(--color-border);overflow:hidden}.status-bar-fill{height:100%;border-radius:var(--border-radius-sm);transition:width .3s ease-in-out}.status-bar-text{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;justify-content:center;align-items:center;color:var(--color-text-primary);font-size:var(--font-size-xs);font-weight:700;text-shadow:1px 1px 2px var(--color-background)}.combatant-list-item{background-color:color-mix(in srgb,var(--color-background),transparent 70%);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);padding:var(--spacing-md);margin-bottom:var(--spacing-md);transition:all .3s ease}.combatant-list-item.active-participant{background-color:color-mix(in srgb,var(--color-success),transparent 80%);border:2px solid var(--color-success);box-shadow:0 0 10px color-mix(in srgb,var(--color-success),transparent 50%);animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{box-shadow:0 0 10px color-mix(in srgb,var(--color-success),transparent 50%)}50%{box-shadow:0 0 20px color-mix(in srgb,var(--color-success),transparent 30%)}}.combatant-name{font-size:var(--font-size-lg);font-weight:700;color:var(--color-warning);margin-bottom:var(--spacing-sm);text-align:center}.combatant-list-item.active-participant .combatant-name{color:var(--color-success);text-shadow:0 0 5px color-mix(in srgb,var(--color-success),transparent 50%)}.combatant-stats{display:flex;flex-direction:column}.combatant-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--spacing-md);padding:var(--spacing-md);max-height:400px;overflow-y:auto}.combat-action-bar{display:flex;justify-content:center;align-items:center;padding:var(--spacing-md);background:color-mix(in srgb,var(--color-background),transparent 50%);border-top:1px solid var(--color-border)}.combat-action-bar-loading{text-align:center;padding:var(--spacing-xl);color:var(--color-text-secondary)}.combat-action-button{background:var(--color-secondary);border:1px solid var(--color-border);color:var(--color-text-primary);padding:var(--spacing-md) var(--spacing-lg);margin:0 var(--spacing-sm);cursor:pointer;position:relative;min-width:100px;text-align:center;font-family:var(--font-family-primary);font-size:var(--font-size-sm)}.combat-action-button:hover:not(:disabled){background:var(--color-border);border-color:var(--color-text-secondary)}.combat-action-button:disabled{background:var(--color-background);color:var(--color-text-secondary);cursor:not-allowed}.combat-action-button .skill-name{font-size:14px}.combat-action-button .momentum-cost{position:absolute;top:-5px;right:-5px;background:var(--color-error);color:var(--color-text-primary);border-radius:50%;width:20px;height:20px;line-height:20px;font-size:12px;font-weight:700;text-align:center}.combat-modal-overlay{position:fixed;top:var(--header-height);left:0;width:100%;height:calc(100% - var(--header-height));background-color:color-mix(in srgb,var(--color-background),transparent 25%);display:flex;justify-content:center;align-items:center;z-index:var(--z-index-modal-backdrop)}.combat-modal{width:95%;max-width:1000px;height:80vh;background-color:var(--color-background);border:2px solid var(--color-warning);border-radius:var(--border-radius-lg);box-shadow:0 0 20px color-mix(in srgb,var(--color-warning),transparent 50%);display:flex;flex-direction:column}.combat-modal-header{padding:var(--spacing-lg);background-color:var(--color-secondary);border-bottom:2px solid var(--color-warning);border-top-left-radius:var(--border-radius-md);border-top-right-radius:var(--border-radius-md)}.combat-modal-header h2{margin:0;color:var(--color-warning);text-align:center;font-family:var(--font-family-primary)}.combat-modal-content{padding:var(--spacing-lg);flex-grow:1;display:flex;flex-direction:column;overflow:hidden}.combat-modal-content>div:first-child{flex-grow:1;overflow-y:auto}.combat-modal-log{padding:0;background-color:var(--color-background);border-top:1px solid var(--color-border);min-height:150px;max-height:30%;overflow-y:hidden}.roleplay-modal{position:fixed;z-index:var(--z-index-modal);background-color:var(--color-secondary);border:1px solid var(--color-border);border-radius:var(--border-radius-md);box-shadow:var(--shadow-lg);width:400px;max-width:90vw;padding:var(--spacing-xl)}.roleplay-modal .modal-header{display:flex;justify-content:space-between;align-items:center;padding-bottom:var(--spacing-md);margin-bottom:var(--spacing-lg);cursor:grab}.roleplay-modal .modal-header h2{margin-top:0;text-align:center;color:var(--color-primary)}.roleplay-modal .modal-header button{background-color:var(--color-error);color:var(--color-secondary);border:none;border-radius:var(--border-radius-sm);padding:var(--spacing-xs) var(--spacing-sm);cursor:pointer;font-weight:700}.roleplay-modal .modal-header button:hover{background-color:var(--color-accent-hover)}.roleplay-modal .form-group{margin-bottom:var(--spacing-lg);position:relative}.roleplay-modal .form-group label{display:block;margin-bottom:var(--spacing-sm);color:var(--color-text-secondary)}.roleplay-modal .form-group input{width:100%;padding:var(--spacing-sm);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);background-color:var(--color-background);color:var(--color-text-primary);box-sizing:border-box;font-family:var(--font-family-primary)}.roleplay-modal .form-group input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px #007bff40}.roleplay-modal .modal-buttons{display:flex;justify-content:space-between;margin-top:var(--spacing-xl)}.roleplay-modal .btn-cancel,.roleplay-modal .btn-send{padding:var(--spacing-sm) var(--spacing-lg);border:none;border-radius:var(--border-radius-sm);cursor:pointer;font-weight:700;font-family:var(--font-family-primary);font-size:var(--font-size-sm)}.roleplay-modal .btn-cancel{background-color:var(--color-border);color:var(--color-text-primary)}.roleplay-modal .btn-cancel:hover{background-color:var(--color-text-secondary)}.roleplay-modal .btn-send{background-color:var(--color-primary);color:var(--color-background)}.roleplay-modal .btn-send:hover{background-color:var(--color-primary-hover)}.roleplay-modal .autocomplete-dropdown{position:absolute;z-index:var(--z-index-dropdown);background-color:var(--color-secondary);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);max-height:200px;overflow-y:auto;width:calc(100% - 2 * var(--spacing-md));box-shadow:var(--shadow-md);top:100%;left:var(--spacing-md);right:var(--spacing-md);margin-top:var(--spacing-xs);padding:var(--spacing-xs)}.roleplay-modal .autocomplete-item{padding:var(--spacing-sm) var(--spacing-md);cursor:pointer;color:var(--color-text-primary);font-family:var(--font-family-primary);font-size:var(--font-size-sm)}.roleplay-modal .autocomplete-item:last-child{border-bottom:none}.roleplay-modal .autocomplete-item:hover,.roleplay-modal .autocomplete-item.selected{background-color:var(--color-primary);color:var(--color-background)}.roleplay-modal .special-target{font-style:italic}:root{--color-background: #1a1a1a;--color-text-primary: #e0e0e0;--color-text-secondary: #b0b0b0;--color-primary: #4CAF50;--color-primary-hover: #45a049;--color-secondary: #333;--color-border: #444;--color-accent: #8a4a8a;--color-accent-hover: #a05aa0;--color-success: #4CAF50;--color-warning: #ff9800;--color-error: #f44336;--color-info: #2196F3;--color-weather: #1e3a8a;--color-interactive-item: #8a8a4a;--color-interactive-creature: #4a4a8a;--color-interactive-resource: #4a8a4a;--color-interactive-room: #8a8a4a;--color-interactive-portal: #8a4a8a;--color-interactive-skill: #4a8a8a;--color-interactive-exit: #6a6a6a;--color-interactive-scenery: #6a6a6a;--color-interactive-body: #8a6a4a;--color-interactive-lore: #4a6a8a;--color-interactive-recipe: #8a4a6a;--color-interactive-other: #6a6a6a;--color-interactive-item-border: #ffff6a;--color-interactive-creature-border: #6a6aff;--color-interactive-resource-border: #6aff6a;--color-interactive-room-border: #ffff6a;--color-interactive-portal-border: #ff6aff;--color-interactive-skill-border: #6affff;--color-interactive-exit-border: #8c8c8c;--color-interactive-scenery-border: #8c8c8c;--color-interactive-body-border: #ffb36a;--color-interactive-lore-border: #6aaaff;--color-interactive-recipe-border: #ff6aaa;--color-interactive-other-border: #8c8c8c;--interactive-text-shadow: 1px 1px 1px #000;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 12px;--spacing-lg: 16px;--spacing-xl: 24px;--spacing-xxl: 32px;--border-radius-sm: 4px;--border-radius-md: 8px;--border-radius-lg: 12px;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-md: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-xxl: 1.5rem;--header-height: 60px;--sidebar-width: 20%;--central-width: 60%;--shadow-sm: 0 2px 4px rgba(0, 0, 0, .2);--shadow-md: 0 4px 8px rgba(0, 0, 0, .2);--shadow-lg: 0 8px 16px rgba(0, 0, 0, .2);--font-family-primary: "Lato", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;--font-family-mono: source-code-pro, Menlo, Monaco, Consolas, "Courier New", monospace;--z-index-dropdown: 100000;--z-index-sticky: 1020;--z-index-fixed: 1030;--z-index-modal-backdrop: 1040;--z-index-modal: 1050;--z-index-popover: 1060;--z-index-tooltip: 1070}body{margin:0;padding:0;font-family:var(--font-family-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--color-background);color:var(--color-text-primary);overflow:hidden}code{font-family:var(--font-family-mono)}.content-block{background-color:var(--color-secondary);border:1px solid var(--color-border);padding:var(--spacing-lg);margin-bottom:var(--spacing-lg);border-radius:var(--border-radius-md)}.content-block h2{color:var(--color-primary);margin-top:0;margin-bottom:var(--spacing-md);font-size:var(--font-size-xl)}.app-container{display:flex;flex-direction:column;min-height:100vh;overflow:hidden}.app-header{display:flex;justify-content:space-between;align-items:center;background-color:var(--color-secondary);padding:0 var(--spacing-xl);height:var(--header-height);border-bottom:1px solid var(--color-border);position:sticky;top:0;z-index:var(--z-index-sticky)}.game-name{color:var(--color-primary);font-size:var(--font-size-xxl);font-weight:700;text-decoration:none}.header-center ul{list-style:none;padding:0;margin:0;display:flex;gap:var(--spacing-xl)}.header-center a{color:var(--color-text-primary);text-decoration:none;font-weight:700;transition:color .3s ease}.header-center a:hover{color:var(--color-primary)}.header-right{display:flex}.logout-button,.login-button,.register-button{background-color:var(--color-primary);color:var(--color-secondary)}.header-right button{background-color:var(--color-primary);color:var(--color-secondary);border:none;padding:var(--spacing-sm) var(--spacing-lg);margin-left:var(--spacing-md);border-radius:var(--border-radius-sm);cursor:pointer;transition:background-color .3s ease}.header-right button:hover{background-color:var(--color-primary-hover)}.main-content-area{flex-grow:1;padding:0;display:flex;justify-content:center;overflow:hidden}.main-content-grid{display:grid;grid-template-columns:var(--sidebar-width) var(--central-width) var(--sidebar-width);gap:var(--spacing-xl);max-width:1200px;width:100%}.sidebar-left,.sidebar-right,.central-content{padding:var(--spacing-md)}.news-feed{max-height:80vh;overflow-y:auto}.news-article{margin-bottom:var(--spacing-xl);padding-bottom:var(--spacing-lg);border-bottom:1px dashed var(--color-border)}.news-article:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.news-article h3{color:var(--color-primary);margin-top:0;margin-bottom:var(--spacing-sm);font-size:var(--font-size-lg)}.news-date{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-bottom:var(--spacing-md)}.news-article{cursor:pointer;transition:background-color .3s ease}.news-article:hover{background-color:color-mix(in srgb,var(--color-primary),transparent 90%)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:color-mix(in srgb,var(--color-background),transparent 20%);display:flex;justify-content:center;align-items:center;z-index:var(--z-index-modal-backdrop)}.modal-content{background-color:var(--color-secondary);border:1px solid var(--color-border);border-radius:var(--border-radius-md);max-width:800px;max-height:50vh;overflow-y:auto;position:relative}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-xl);border-bottom:1px solid var(--color-border)}.modal-header h2{margin:0;color:var(--color-primary)}.close-button{background:none;border:none;color:var(--color-text-primary);font-size:24px;cursor:pointer;padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center}.close-button:hover{color:var(--color-primary)}.modal-body{padding:var(--spacing-xl)}.modal-body .news-date{margin-top:0;margin-bottom:var(--spacing-xl)}.article-content{line-height:1.6}.article-content h3{color:var(--color-primary);margin-top:var(--spacing-xl);margin-bottom:var(--spacing-md)}.article-content ul,.article-content ol{padding-left:var(--spacing-xl)}.article-content li{margin-bottom:var(--spacing-sm)}.modal-footer{padding:var(--spacing-xl);border-top:1px solid var(--color-border);text-align:right}.modal-footer button{background-color:var(--color-primary);color:var(--color-secondary);border:none;padding:var(--spacing-md) var(--spacing-xl);border-radius:var(--border-radius-sm);cursor:pointer;transition:background-color .3s ease}.modal-footer button:hover{background-color:var(--color-primary-hover)}.login-page,.register-page{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:calc(100vh - var(--header-height));padding:var(--spacing-xl)}.login-page h1,.register-page h1{color:var(--color-primary);margin-bottom:var(--spacing-xl)}.login-page form,.register-page form{background-color:var(--color-secondary);padding:var(--spacing-xl);border-radius:var(--border-radius-md);box-shadow:var(--shadow-md);display:flex;flex-direction:column;gap:var(--spacing-lg);width:100%;max-width:400px}.login-page form div,.register-page form div{display:flex;flex-direction:column}.login-page label,.register-page label{margin-bottom:var(--spacing-sm);font-weight:700;color:var(--color-text-primary)}.login-page input,.register-page input{padding:var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);background-color:var(--color-background);color:var(--color-text-primary);font-size:var(--font-size-md)}.login-page input:focus,.register-page input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--color-primary),transparent 50%)}.login-page button,.register-page button{background-color:var(--color-primary);color:var(--color-secondary);border:none;padding:var(--spacing-md) var(--spacing-xl);border-radius:var(--border-radius-sm);cursor:pointer;font-size:var(--font-size-lg);font-weight:700;transition:background-color .3s ease}.login-page button:hover,.register-page button:hover{background-color:var(--color-primary-hover)}.log-entry .interactive{color:var(--color-primary);cursor:pointer;text-shadow:var(--interactive-text-shadow);white-space:nowrap}.log-entry-max-size{height:100%;width:100%;display:flex;align-items:center;justify-content:center;background-color:transparent!important;border:0px!important}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-text-secondary);border-radius:4px}*{scrollbar-width:thin;scrollbar-color:var(--color-text-secondary) transparent}.room-name-container{text-align:center;margin-bottom:var(--spacing-md)}
