@media screen and (max-width: 768px),screen and (pointer: coarse) and (hover: none){#app-container{display:flex;flex-direction:column}#main-content-area{order:2;display:flex;flex-direction:column;flex-grow:1;min-height:0;overflow:hidden;position:relative}canvas#hexGridCanvas{display:block;width:100%;height:100%;flex-grow:1;min-width:0;touch-action:none;position:relative}#top-info-bar{order:1}#bottom-tab-bar{display:flex;order:3;width:100%;height:var(--bottom-tab-bar-height);background-color:#2a2a2a;border-top:1px solid #444;flex-shrink:0;padding-bottom:env(safe-area-inset-bottom)}.tab-bar-button{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;background:none;border:none;color:#aaa;font-size:.7em;gap:2px;cursor:pointer;-webkit-tap-highlight-color:transparent}.tab-bar-button .icon{font-size:1.8em}.tab-bar-button.active{color:#f0c674}.draggable-panel-base{position:fixed;display:none;top:0!important;left:0!important;width:100%!important;height:100%!important;max-width:100vw;max-height:100vh;border-radius:0;border:none;transform:none!important;z-index:5000;background-color:#1e1e1e}.draggable-panel-base.is-mobile-view{display:flex}.draggable-panel-base h3{cursor:default}#worldSetupGrid{grid-template-columns:1fr}.popout-panel{display:none!important}#interaction-mode-toggle{width:60px;height:60px;border-radius:50%;background-color:#282828e6;border:1px solid #666;box-shadow:0 2px 8px #0006;color:#fff;font-size:1em;padding:0;display:flex;flex-direction:column;align-items:center;justify-content:center}#interaction-mode-toggle .icon{font-size:1.8em;line-height:1}#interaction-mode-toggle .label{font-size:.7em;margin-top:2px}.mobile-fab-container{position:absolute;bottom:calc(env(safe-area-inset-bottom,0px) + 10px);z-index:4500;display:flex;flex-direction:column-reverse;align-items:center;gap:15px}#mobile-fab-container-right{right:20px}#mobile-fab-container-left{left:20px}.mobile-fab{width:60px;height:60px;border-radius:50%;border:none;box-shadow:0 4px 12px #0006;color:#fff;font-size:1.8em;display:flex;align-items:center;justify-content:center;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform .15s ease-out,background-color .15s ease-out,box-shadow .15s ease-out}.mobile-fab:hover{transform:translateY(-3px) scale(1.05);box-shadow:0 7px 18px #00000080}.secondary-fab:hover{background-color:#5a5a5a}.primary-fab:hover{background-color:#ffda83}.mobile-fab:active{transform:translateY(1px) scale(.95);transition-duration:.05s;box-shadow:0 2px 8px #0006}.secondary-fab:active{background-color:#3f3f3f}.primary-fab:active{background-color:#d8b05b}.mobile-fab:focus-visible{outline:3px solid #009dff;outline-offset:3px}.primary-fab{background-color:#f0c674;color:#1e1e1e;width:70px;height:70px;font-size:2.2em}.secondary-fab{background-color:#4a4a4a;border:1px solid #666}}:root{--bottom-tab-bar-height: 60px}*,*:before,*:after{box-sizing:border-box}body{margin:0;background-color:#1e1e1e;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;color:#e0e0e0;display:flex;height:100dvh;overflow:hidden;padding-bottom:env(safe-area-inset-bottom,10px);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}*{-webkit-overflow-scrolling:touch}.hidden{display:none!important}.button{padding:6px 12px;cursor:pointer;background-color:#4a4a4a;border:1px solid #666;color:#fff;border-radius:4px;font-size:.9em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:manipulation}.button:hover{background-color:#5a5a5a}.checkbox-input{display:none}.checkbox-label{cursor:pointer;padding:5px 8px;border-radius:3px;transition:background-color .2s ease;border:1px solid #555;display:inline-block;line-height:normal;background-color:#4a4a4a;color:#ddd;font-size:.9em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none}.checkbox-label:hover{background-color:#5a5a5a}.checkbox-input:checked+.checkbox-label{background-color:#0078d4;border-color:#005a9e;color:#fff}#fileInput{display:none}::-webkit-scrollbar{width:3px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#fff5;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#f0f0f0}@media screen and (min-width: 769px){#app-container{display:flex;flex-direction:column;flex-grow:1;width:100%;height:100%;overflow:hidden;padding-bottom:env(safe-area-inset-bottom,0px)}#main-content-area{display:flex;flex-grow:1;overflow:hidden;min-height:0;position:relative}canvas#hexGridCanvas{display:block;flex-grow:1;background-color:#181818;min-width:0;touch-action:none}canvas#hexGridCanvas.placing-pattern-cursor{cursor:crosshair}@media screen and ((hover: none) and (pointer: coarse) and (orientation: portrait) and (max-height: 500px)),(max-width: 480px){#main-content-area{flex-direction:column;padding-bottom:10px}canvas#hexGridCanvas{margin-bottom:10px}}}.cycle-indicator{position:absolute;width:30px;height:30px;background-color:#0009;border-radius:50%;border:1px solid rgba(255,255,255,.5);display:flex;align-items:center;justify-content:center;transition:opacity .3s;z-index:51}.cycle-indicator.hidden{display:none;opacity:0}.cycle-indicator.mini{width:25px;height:25px}#loading-indicator{position:fixed;top:0;left:0;width:100%;height:100%;background:#1e1e1e;display:flex;align-items:center;justify-content:center;z-index:10000;color:#e0e0e0;font-size:1.2em;flex-direction:column}#loading-indicator .loading-content{text-align:center}#loading-title{margin-top:20px;font-size:1.2em;color:#f0f0f0}#loading-status{font-size:.9em;color:#aaa;margin-top:10px;min-height:20px;transition:color .3s}.loader-grid{display:block;position:relative;width:100%;height:100%}.loader-hex{width:50px;height:57.73px;position:absolute;background-color:#333;clip-path:polygon(50% 0%,100% 25%,100% 75%,50% 100%,0% 75%,0% 25%);transition:background-color .5s ease-in-out,transform .3s ease;transform:scale(.95) rotate(90deg) translate(-50%,-50%)}.loader-hex.active{background-color:#f0c674;transform:scale(1) rotate(90deg) translate(-50%,-50%)}#loader-hex-0{left:0%;top:40%}#loader-hex-1{left:16%;top:70%}#loader-hex-2{left:16%;top:12%}#loader-hex-3{left:32%;top:-18%}#loader-hex-4{left:32%;top:40%}#loader-hex-5{left:32%;top:98%}#loader-hex-6{left:48%;top:70%}#loader-hex-7{left:48%;top:12%}#loader-hex-8{left:64%;top:40%}#top-info-bar{display:flex;align-items:center;justify-content:space-between;background-color:#2a2a2a;border-bottom:1px solid #444;padding:0 10px;gap:15px;flex-shrink:0;font-size:.85em;box-sizing:border-box;height:2.5rem;padding-top:env(safe-area-inset-top)}#appMenuButton{display:flex;align-items:center;gap:8px;font-weight:700;color:#f0f0f0;cursor:pointer;padding:5px 10px;border-radius:4px;transition:background-color .2s}#appMenuButton:hover{background-color:#3f3f3f}#appLogo{font-size:1.5rem;color:#ff0}#appTitle{font-size:1em;color:#f0f0f0;white-space:nowrap}#rulesetDisplayContainer{display:flex;align-items:center;background-color:#3c3c3c;border-radius:4px;padding:2px 5px;border:1px solid #555;font-family:monospace;font-size:.9rem;min-width:0}@media screen and (min-width: 769px){#rulesetDisplayContainer{flex-grow:1;justify-content:center}}.ruleset-display-toggle{position:relative;display:grid;place-items:center;text-align:center;min-width:250px}#rulesetDisplayName,#rulesetDisplayCode{grid-area:1 / 1;transition:opacity .2s ease-in-out}#rulesetDisplayName{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-weight:700;font-size:1.1em;color:#f0f0f0;cursor:pointer}#rulesetDisplayCode{font-family:monospace;font-size:.9rem;padding:4px 5px;background-color:transparent;border:none;font-weight:700}.ruleset-display-toggle.has-name #rulesetDisplayName{opacity:1}.ruleset-display-toggle.has-name #rulesetDisplayCode,.ruleset-display-toggle.has-name:hover #rulesetDisplayName{opacity:0;pointer-events:none}.ruleset-display-toggle.has-name:hover #rulesetDisplayCode{opacity:1}.ruleset-display-toggle:not(.has-name) #rulesetDisplayName{opacity:0;pointer-events:none}.ruleset-display-toggle:not(.has-name) #rulesetDisplayCode{opacity:1}#statsDisplayContainer{display:flex;gap:15px;align-items:center;justify-content:flex-end}#statsDisplayContainer>span{min-width:35px;display:inline-block;text-align:left}#statsDisplayContainer span span{font-weight:700;color:#f0f0f0;display:inline-block;text-align:right}#statsDisplayContainer>span:first-child{min-width:60px}#appMenuPopout{z-index:1100}@media screen and (max-width: 768px),screen and (pointer: coarse) and (hover: none){#top-info-bar{flex-direction:column;height:auto;padding:8px;gap:8px}#appMenuButton{display:none}#rulesetDisplayContainer{order:1;width:100%;justify-content:center}#statsDisplayContainer{order:2;width:100%;justify-content:space-around;flex-wrap:wrap;gap:10px}.ruleset-display-toggle{min-width:200px}@media (max-width: 360px){#statsDisplayContainer>span:nth-child(3){display:none}#statsDisplayContainer>span:nth-child(4){display:none}}}.history-item{padding:5px 10px;cursor:pointer;border-radius:3px;border-bottom:1px solid #4a4a4a;transition:background-color .2s;display:flex;align-items:center;gap:10px}.history-item .viz-placeholder,.history-item .ruleset-viz-svg{width:24px;height:48px;flex-shrink:0;background-color:#111;border:1px solid #555}.history-item-hex{flex-grow:1}.ruleset-history-controls{display:flex;align-items:center;flex-direction:row}.ruleset-history-controls .button-icon,.save-ruleset-button{width:32px;height:32px;padding:0;background-color:#4a4a4a;border:1px solid #555;color:#fff;border-radius:4px;font-size:1.2em;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background-color .2s ease,transform .1s ease;-webkit-user-select:none;user-select:none;margin:0 4px}.ruleset-history-controls .button-icon:hover:not(:disabled),.save-ruleset-button:hover:not([style*="cursor: not-allowed"]){background-color:#5a5a5a;transform:scale(1.05)}.ruleset-history-controls .button-icon:active:not(:disabled),.save-ruleset-button:active:not([style*="cursor: not-allowed"]){background-color:#3f3f3f;transform:scale(.98)}.ruleset-history-controls .button-icon:disabled{color:#666;background-color:#404040;cursor:not-allowed}.save-ruleset-button{font-size:1.4em;transition:filter .2s ease,opacity .2s ease,color .2s ease,text-shadow .2s ease,transform .1s ease}.save-ruleset-button.not-saved{background-color:#4a4a4a;color:#999}.save-ruleset-button.not-saved:hover{color:gold;background-color:#5a5a5a}.save-ruleset-button.is-public{background-color:#4a4a4a;color:#87ceeb;text-shadow:0 0 4px #87CEEB;cursor:not-allowed}.save-ruleset-button.is-public:hover{background-color:#4a4a4a;transform:none}.save-ruleset-button.is-personal{background-color:#4a4a4a;color:gold;text-shadow:0 0 5px #FFD700}@media screen and (min-width: 769px){#vertical-toolbar{width:50px;background-color:#2f2f2f;border-right:1px solid #444;display:flex;flex-direction:column;align-items:center;padding:10px 0;gap:5px;flex-shrink:0;overflow-y:auto;touch-action:pan-x}.toolbar-button{width:40px;height:40px;padding:0;background-color:#4a4a4a;border:1px solid #555;color:#fff;border-radius:4px;font-size:1.2em;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background-color .2s ease;-webkit-user-select:none;user-select:none}.toolbar-button:hover{background-color:#5a5a5a}.toolbar-button:active,.toolbar-button.active{background-color:#0078d4;border-color:#005a9e}.toolbar-separator{height:1px;width:80%;background-color:#444;margin:8px 0}@media screen and ((hover: none) and (pointer: coarse) and (orientation: portrait) and (max-height: 900px)),(max-width: 768px){#vertical-toolbar{width:45px}.toolbar-button{width:35px;height:35px;font-size:1em}}@media screen and ((hover: none) and (pointer: coarse) and (orientation: portrait) and (max-height: 500px)),(max-width: 480px){#vertical-toolbar{width:100%;height:50px;flex-direction:row;justify-content:space-around;border-right:none;border-bottom:1px solid #444;border-top:none;padding:0 5px;overflow-x:auto;overflow-y:hidden;order:-1;touch-action:pan-x}.toolbar-button{margin:5px 2px}.toolbar-separator{display:none}}}@keyframes pulse-highlight{0%{box-shadow:0 0 8px #ffffffb3}50%{box-shadow:0 0 16px 4px #ffffffe6}to{box-shadow:0 0 8px #ffffffb3}}#onboarding-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background-color:#000000b3;z-index:2000;pointer-events:none;transition:all .3s ease-in-out;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}#onboarding-overlay.interactive{pointer-events:auto}.onboarding-highlight{z-index:5001!important;box-shadow:0 0 8px #ffffffb3;animation:pulse-highlight 2s infinite;pointer-events:auto!important;border-radius:4px;transition:all .3s ease-in-out}.onboarding-highlight.onboarding-highlight-no-filter{animation:none;box-shadow:0 0 10px 3px #fff096d9;border:1px solid rgba(255,240,150,.9)}.onboarding-canvas-highlight{display:block!important;box-shadow:0 0 0 500vmax #000000b3;border:2px solid #f0c674;z-index:2000;animation:pulse-highlight 2s infinite}#onboarding-tooltip{position:fixed;background:linear-gradient(145deg,#4a4a4a,#383838);border:1px solid #777;border-radius:8px;padding:0;z-index:6001;width:320px;max-width:90vw;box-shadow:0 8px 25px #00000080;transition:opacity .3s ease-in-out;overflow:hidden}#onboarding-progress-container{width:100%;height:4px;background-color:#0000004d}#onboarding-progress-bar{width:0%;height:100%;background-color:#f0c674;transition:width .5s ease}#onboarding-tooltip-title{font-size:1.1em;color:#f0c674;margin:15px 15px 10px;padding-bottom:10px;border-bottom:1px solid #555}#onboarding-tooltip-content{color:#e0e0e0;line-height:1.5;margin:0 15px 15px}.onboarding-highlight-text{font-weight:700;color:#f0c674}#onboarding-tooltip-actions{display:flex;justify-content:space-between;align-items:center;background-color:#0003;padding:10px 15px}#onboarding-tooltip .button{background-color:#f0c674;color:#1e1e1e;border:none;font-weight:700}#onboarding-tooltip .button:hover{background-color:#fff2a8}.button-link{background:none;border:none;color:#ccc;cursor:pointer;text-decoration:underline;font-size:.9em}.button-link:hover{color:#fff}.button-help-trigger{background:#555;color:#fff;border:1px solid #777;border-radius:50%;width:20px;height:20px;font-size:13px;font-weight:700;cursor:pointer;margin-left:8px;vertical-align:middle;line-height:18px;padding:0;transition:background-color .2s,transform .2s}.button-help-trigger:hover{background:#0078d4;transform:scale(1.1)}.slider-component-container{display:flex;align-items:center;gap:5px}.slider-component-container label{margin-right:3px;-webkit-user-select:none;user-select:none;font-size:.9em}.slider-wrapper{position:relative;display:inline-flex;align-items:center;width:100%}.slider-component-container input[type=range]{vertical-align:middle;min-width:100px;width:100%;color:#2b2d42;--track-color: rgba(0, 0, 0, .4);--brightness-hover: 180%;--brightness-down: 80%;--thumb-height: 2.1rem;--thumb-width: 1px;--clip-edges: .0125em;position:relative;background:#fff0;overflow:hidden}.slider-wrapper span.value-display{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);color:#fff;font-size:.8rem;font-family:Arial,sans-serif;pointer-events:none;z-index:2;text-shadow:0px 0px 3px rgba(0,0,0,.9);padding:1px 3px;white-space:nowrap}.slider-component-container span.unit-display{font-size:.9em;color:#ccc;margin-left:2px;-webkit-user-select:none;user-select:none}.slider-component-container input[type=range]:active{cursor:grabbing}.slider-component-container input[type=range]:disabled{filter:grayscale(1);opacity:.3;cursor:not-allowed}.slider-component-container input[type=range],.slider-component-container input[type=range]::-webkit-slider-runnable-track,.slider-component-container input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;transition:all ease .1s;height:var(--thumb-height)}.slider-component-container input[type=range]::-webkit-slider-runnable-track,.slider-component-container input[type=range]::-webkit-slider-thumb{position:relative}.slider-component-container input[type=range]::-webkit-slider-thumb{--thumb-radius: calc((var(--thumb-height) * .5) - 1px);--clip-top: calc((var(--thumb-height) - var(--track-height, .5rem)) * .5 - .5px);--clip-bottom: calc(var(--thumb-height) - var(--clip-top));--clip-further: calc(100% + 1px) ;--box-fill: calc(-100vmax - var(--thumb-width, var(--thumb-height))) 0 0 100vmax currentColor;width:var(--thumb-width, var(--thumb-height));background:linear-gradient(currentColor 0 0) scroll no-repeat left center / 50% calc(var(--track-height, .5rem) + 1px);background-color:currentColor;box-shadow:var(--box-fill);border-radius:var(--thumb-width, var(--thumb-height));filter:brightness(100%);clip-path:polygon(100% -1px,var(--clip-edges) -1px,0 var(--clip-top),-100vmax var(--clip-top),-100vmax var(--clip-bottom),0 var(--clip-bottom),var(--clip-edges) 100%,var(--clip-further) var(--clip-further))}.slider-component-container input[type=range]:hover::-webkit-slider-thumb{filter:brightness(var(--brightness-hover));cursor:grab}.slider-component-container input[type=range]:active::-webkit-slider-thumb{filter:brightness(var(--brightness-down));cursor:grabbing}.slider-component-container input[type=range]::-webkit-slider-runnable-track{background:linear-gradient(var(--track-color) 0 0) scroll no-repeat center / 100% calc(var(--track-height, .5rem) + 1px)}.slider-component-container input[type=range]:disabled::-webkit-slider-thumb{cursor:not-allowed}@supports (-webkit-overflow-scrolling: touch){input[type=range]{font-size:16px!important}}.slider-tooltip{position:fixed;background-color:#2a2a2a;color:#f0c674;padding:8px 12px;border-radius:6px;border:1px solid #777;box-shadow:0 4px 12px #0006;font-size:1.2em;font-weight:700;pointer-events:none;z-index:9999;opacity:0;transform:translate(-50%,-10px) scale(.8);transition:opacity .15s ease-out,transform .15s ease-out;white-space:nowrap}.slider-tooltip.visible{opacity:1;transform:translate(-50%,-15px) scale(1)}.slider-tooltip:not(.hidden){opacity:1;transform:translate(-50%,-15px) scale(1)}.slider-tooltip.hidden{opacity:0;transform:translate(-50%,-10px) scale(.8)}.slider-tooltip-granularity{display:block;font-size:.7em;color:#ccc;text-align:center;margin-top:2px;font-weight:400}.slider-component-container.is-scrubbing input[type=range]::-webkit-slider-thumb{transform:scale(1.2);box-shadow:0 0 10px #f0c674b3}.slider-component-container.is-scrubbing input[type=range]::-moz-range-thumb{transform:scale(1.2);box-shadow:0 0 10px #f0c674b3}.switch-component-container{display:flex;flex-direction:column;gap:0px}.switch-component-label{font-size:.9em;color:#ccc;margin-bottom:2px}.switch-group{display:inline-flex;border-radius:4px;overflow:hidden;border:1px solid #555}.switch-item{display:contents}.switch-input{display:none}.switch-label{padding:6px 12px;cursor:pointer;background-color:#4a4a4a;color:#ccc;font-size:.9em;-webkit-user-select:none;user-select:none;transition:background-color .2s,color .2s;border-right:1px solid #555;text-align:center;flex-grow:1}.switch-group .switch-item:last-child .switch-label{border-right:none}.switch-label:hover{background-color:#5a5a5a}.switch-input:checked+.switch-label{background-color:#0078d4;color:#fff;font-weight:400}.switch-input:checked+.switch-label:hover{background-color:#006ac1}.type-checkbox .switch-group{border:none}.type-checkbox .switch-label{border:1px solid #555;border-radius:4px}.controls-component-content,.controls-component-content .tool-group{display:flex;flex-direction:column}.controls-component-content .tool-group h5{margin:0;font-size:1em;color:#f0c674;border-bottom:1px solid #444}.controls-component-content .slider-component-container{padding:0 4px}@media screen and (min-width: 769px){.draggable-panel-base{position:fixed;max-width:90vw;max-height:90vh;min-width:35vw;background-color:#1e1e1ef7;border:1px solid #555;border-radius:8px;padding:15px;box-sizing:border-box;z-index:1000;color:#eee;display:flex;flex-direction:column;overflow:hidden}.draggable-panel-base.hidden{display:none!important}.draggable-panel-base h3{margin-top:0;margin-bottom:10px;text-align:center;border-bottom:1px solid #444;padding-bottom:8px;-webkit-user-select:none;user-select:none;font-size:1.1em;cursor:move}.close-panel-button{position:absolute;top:8px;right:12px;background:none;border:none;color:#aaa;font-size:1.8em;font-weight:700;cursor:pointer;padding:0 5px;line-height:1}.close-panel-button:hover{color:#fff}.panel-content-area{flex-grow:1;overflow-y:auto;padding-right:5px}.panel-actions{border-top:1px solid #444;display:flex;justify-content:center;gap:10px}.panel-actions .button{-webkit-user-select:none;user-select:none;transition:background-color .2s ease}.panel-actions .button:hover{background-color:#5a5a5a}@media screen and ((hover: none) and (pointer: coarse) and (orientation: portrait) and (max-height: 900px)),(max-width: 768px){.draggable-panel-base{max-width:95vw;min-width:35vw;max-height:85vh}}@media screen and ((hover: none) and (pointer: coarse) and (orientation: portrait) and (max-height: 500px)),(max-width: 480px){.draggable-panel-base{left:0!important;top:0!important;width:100%!important;height:100%!important;max-width:100vw;min-width:35vw;max-height:100vh;border-radius:0;transform:none!important}}}@media screen and (min-width: 769px){.popout-panel{position:absolute;background-color:#383838cc;border:1px solid #555;border-radius:6px;box-shadow:0 4px 12px #0000004d;padding:15px;min-width:200px;color:#e0e0e0;z-index:1010}.popout-panel.hidden{display:none!important}.popout-panel h4{margin-top:0;margin-bottom:0;font-size:1em;border-bottom:1px solid #4f4f4f;padding-bottom:5px;color:#f0f0f0}.popout-panel .form-group{margin-bottom:2px;display:flex;flex-direction:column;gap:0px}.popout-panel .form-group label:not(.checkbox-label):not(.radio-switch-label){font-size:.9em;color:#ccc;margin-bottom:0}.popout-panel .form-group-buttons{display:flex;gap:10px;margin-top:15px;justify-content:flex-end}.popout-panel .hex-input{padding:6px 8px;border:1px solid #555;background-color:#2c2c2c;color:#fff;border-radius:3px;font-size:.9em;font-family:monospace;width:100%;box-sizing:border-box}.popout-panel .popout-separator{height:1px;background-color:#4f4f4f;margin:12px 0}.radio-switch-input{display:none}.three-way-switch{display:inline-flex;border-radius:4px}.radio-switch-label{padding:6px 10px;cursor:pointer;color:#ccc;background-color:#4a4a4a;font-size:.85em;transition:background-color .2s ease,color .2s ease;border-right:1px solid #555;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none}.three-way-switch .radio-switch-label:last-of-type{border-right:none}.radio-switch-input:checked+.radio-switch-label{background-color:#0078d4;color:#fff;font-weight:700}.radio-switch-label:hover{background-color:#5a5a5a}#historyPopout .history-list-container{max-height:300px;overflow-y:auto;font-family:monospace}.history-item{padding:8px 10px;cursor:pointer;border-radius:3px;border-bottom:1px solid #4a4a4a;transition:background-color .2s;display:flex;justify-content:space-between;align-items:center}.history-item:last-child{border-bottom:none}.history-item:hover{background-color:#0078d4}.history-item.is-current{font-weight:700;color:#f0c674;background-color:#28282880;cursor:default}.history-item .tag{font-size:.8em;color:#999;margin-left:10px}.popout-tabs{display:flex;border-bottom:1px solid #555;margin:-15px -15px 10px}.tab-button{flex:1;padding:10px;cursor:pointer;background-color:transparent;border:none;color:#aaa;font-size:.9em;border-bottom:2px solid transparent;transition:all .2s ease}.tab-button:hover{background-color:#ffffff0d}.tab-button.active{color:#fff;font-weight:700;border-bottom-color:#0078d4}.tab-content{max-height:40vh;overflow-y:auto}.library-item{display:flex;align-items:center;padding:8px 5px;border-bottom:1px solid #4f4f4f}.library-item:last-child{border-bottom:none}.library-item-info{flex-grow:1}.library-item-name{font-weight:700;color:#e0e0e0}.library-item-desc{font-size:.85em;color:#b0b0b0;margin-top:2px}.library-item .button{flex-shrink:0;margin-left:10px}@media screen and ((hover: none) and (pointer: coarse) and (orientation: portrait) and (max-height: 900px)),(max-width: 768px){.popout-panel{min-width:200px;padding:10px}}@media screen and ((hover: none) and (pointer: coarse) and (orientation: portrait) and (max-height: 500px)),(max-width: 480px){.popout-panel{left:5%!important;width:90%!important;max-width:90vw;box-sizing:border-box}}.popout-panel.popout-menu{padding:5px;min-width:180px}.popout-link-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.popout-link-list li a{display:flex;align-items:center;gap:10px;padding:10px 15px;color:#e0e0e0;text-decoration:none;border-radius:4px;transition:background-color .2s,color .2s;font-size:.95em}.popout-link-list li a:hover{background-color:#0078d4;color:#fff}.popout-link-list li a .icon{display:inline-flex;align-items:center;justify-content:center}.popout-link-list li a .icon svg{width:16px;height:16px;fill:currentColor}}.bottom-sheet-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#00000080;z-index:6000;display:flex;justify-content:center;align-items:flex-end;opacity:1;transition:opacity .3s ease;padding-bottom:var(--bottom-tab-bar-height)}.bottom-sheet-overlay.hidden{display:none;opacity:0}.bottom-sheet-panel{width:100%;max-width:600px;background-color:#2c2c2c;border-top-left-radius:12px;border-top-right-radius:12px;box-shadow:0 -4px 15px #0000004d;transform:translateY(100%);transition:transform .3s ease-out;display:flex;flex-direction:column;max-height:80vh}.bottom-sheet-panel.visible{transform:translateY(0)}.bottom-sheet-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid #444;flex-shrink:0}.bottom-sheet-title{margin:0;font-size:1.1em;font-weight:700;color:#eee}.bottom-sheet-close-button{background:none;border:none;color:#aaa;font-size:2em;font-weight:400;cursor:pointer;line-height:1;padding:0}.bottom-sheet-content{padding:16px;overflow-y:auto}.learning-component-content{height:100%;display:flex;flex-direction:column}.learning-component-content .info-text{margin-bottom:10px;flex-shrink:0}.learning-center-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:5px;overflow-y:auto;flex-grow:1}.learning-center-item{display:flex;align-items:center;background-color:#0003;padding:10px 12px;border-radius:4px;border:1px solid #333;transition:background-color .2s}.learning-center-item:hover{background-color:#ffffff0d}.learning-center-item .status-icon{font-size:1.2em;margin-right:12px;flex-shrink:0}.learning-center-item .tour-name{flex-grow:1;font-size:.9em;color:#ddd}.learning-center-item .tour-start-button{flex-shrink:0;padding:6px 12px;font-size:.9em}.ruleset-actions-container{display:flex;flex-direction:column;height:100%}.ruleset-actions-header{display:flex;justify-content:stretch;background-color:#2a2a2a;flex-shrink:0}.ruleset-actions-segment{flex-grow:1;padding:12px 5px;font-size:.9em;text-align:center;background-color:#3a3a3a;color:#ccc;border:none;border-right:1px solid #555;cursor:pointer;transition:background-color .2s}.ruleset-actions-segment:last-child{border-right:none}.ruleset-actions-segment.active{background-color:#f0c674;color:#1e1e1e;font-weight:700}.ruleset-actions-segment:hover:not(.active){background-color:#4a4a4a}.ruleset-actions-content{flex-grow:1;overflow-y:auto}.ruleset-pane{display:flex;flex-direction:column}.ruleset-pane.hidden{display:none}.ruleset-pane .form-group{display:flex;flex-direction:column;gap:10px}.ruleset-pane .form-group label:not(.switch-label):not(.checkbox-label){font-weight:700;color:#ccc}.ruleset-pane .bias-controls{display:flex;flex-direction:row;gap:3px}.ruleset-pane .checkbox-input{margin-right:8px}.ruleset-pane .checkbox-label{display:flex;align-items:center;color:#ccc;font-weight:700}.ruleset-pane .hex-input{padding:6px 8px;border:1px solid #555;background-color:#2c2c2c;color:#fff;border-radius:3px;font-size:.9em;font-family:monospace;width:100%;box-sizing:border-box}.ruleset-pane .action-button,.ruleset-pane .form-group-buttons{display:flex;gap:10px;margin-top:10px}.ruleset-pane .action-button,.ruleset-pane .form-group-buttons .button{flex:1;padding:15px;font-size:1.1em;font-weight:700;background-color:#f0c674;color:#1e1e1e;border:none;border-radius:5px;cursor:pointer;transition:background-color .2s}.ruleset-pane .action-button:hover,.ruleset-pane .form-group-buttons .button:hover{background-color:#f4d03f}.library-filter-tabs{display:flex;justify-content:stretch;border-radius:4px;overflow:hidden;border:1px solid #555;margin-bottom:15px;flex-shrink:0}.library-filter-tabs .sub-tab-button{flex-grow:1;padding:8px;background-color:#4a4a4a;color:#ccc;border:none;cursor:pointer;border-right:1px solid #555;transition:background-color .2s}.library-filter-tabs .sub-tab-button:last-child{border-right:none}.library-filter-tabs .sub-tab-button.active{background-color:#0078d4;color:#fff}.library-filter-tabs .sub-tab-button:hover:not(.active){background-color:#5a5a5a}.library-list{display:flex;flex-direction:column;gap:2px;max-height:70vh;overflow-y:auto}.library-item{background-color:#2a2a2a;padding:8px 10px;border-radius:5px;border:1px solid #444;display:flex;justify-content:space-between;align-items:center;margin-bottom:5px}.library-item .viz-placeholder,.library-item .ruleset-viz-svg{width:24px;height:48px;flex-shrink:0;margin-right:10px;background-color:#111;border:1px solid #555;border-radius:2px}.library-item-info{flex-grow:1;margin-right:10px}.library-item .name{font-size:1em;font-weight:700;color:#f0f0f0}.library-item .description{font-size:.9em;color:#aaa;line-height:1.4}.library-item-actions{display:flex;gap:5px;flex-shrink:0}.library-item .button-icon{background:none;border:1px solid #666;color:#ccc;font-size:1.2em;font-weight:700;cursor:pointer;padding:5px 10px;border-radius:4px}.library-item .button-icon:hover{background-color:#555}.empty-state-text{color:#aaa;font-style:italic;text-align:center;padding:20px;line-height:1.5}@media (max-width: 768px){.ruleset-actions-segment{padding:10px 4px;font-size:.8em}.library-list{max-height:70vh}}.chroma-lab-component-content{display:flex;flex-direction:column;height:100%;gap:5px}.chroma-lab-content{display:flex;flex-direction:column;height:100%;overflow:hidden}.chroma-mode-section{display:flex;align-items:center;gap:10px;padding-bottom:10px;border-bottom:1px solid #444;flex-shrink:0}.chroma-mode-section h4{margin:0;color:#ccc}#chroma-mode-select{flex-grow:1;padding:8px;background-color:#333;color:#fff;border:1px solid #555;border-radius:4px;font-size:.9em}.chroma-section{flex-grow:1;overflow-y:auto;display:flex;flex-direction:column;gap:10px}.chroma-section h4{margin:0 0 5px;color:#f0c674;border-bottom:1px solid #444;padding-bottom:5px}.preset-visualizations{display:grid;grid-template-columns:repeat(4,150px);gap:12px}.preset-vis-container{display:flex;flex-direction:column;align-items:center;gap:6px;padding:8px;border:2px solid #555;background-color:#3a3a3a;border-radius:4px;cursor:pointer;transition:all .2s ease}.preset-vis-container:hover{border-color:#f0c674;transform:translateY(-2px)}.preset-vis-container.active{border-color:#f0c674;background-color:#4a4a4a;font-weight:700;box-shadow:0 0 8px #f0c67466}.preset-vis-container img{width:100%;height:40px;object-fit:fill;image-rendering:pixelated;border:1px solid #777}.preset-vis-container span{font-size:.85em;color:#eee}.color-group-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px;overflow-y:auto;flex-grow:1;padding-right:5px}.color-group-column{display:flex;flex-direction:column}.color-group-column h5{text-align:center;margin:0 0 5px;color:#ddd;display:flex;flex-direction:column;align-items:center;gap:4px}.column-actions{display:flex;align-items:center;justify-content:center;gap:4px;font-size:.8em;font-weight:400}.select-all-swatches{font-size:.75em;padding:2px 6px;border:1px solid #555;background-color:#3a3a3a;color:#87ceeb;border-radius:3px;cursor:pointer;transition:all .2s ease}.select-all-swatches:hover{background-color:#4a4a4a;border-color:#f0c674}.color-group{border:1px solid #444;border-radius:4px;background-color:#2c2c2c;display:flex;flex-direction:column}.color-group.selected{box-shadow:0 0 0 2px #f0c674}.group-label-container{display:flex;align-items:center;justify-content:center;color:#ccc;font-size:.9em;min-height:40px}.group-label-container .r-sym-rule-viz{transform:scale(.6)!important;margin:-15px -20px}.color-swatch-pair{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid #444}.color-swatch-wrapper{position:relative;display:flex;flex-direction:column;align-items:center;gap:4px;cursor:pointer;padding:4px;border-radius:3px;border:1px solid transparent}.color-swatch-wrapper.selected{border-color:#f0c674;background-color:#f0c67433}.color-swatch-wrapper .swatch-label{font-size:.75em;font-weight:700;color:#aaa}.color-swatch-wrapper .color-swatch{width:100%;height:20px;border:1px solid #777;border-radius:3px}#color-palette-modal{position:fixed;z-index:9999;left:0;top:0;width:100%;height:100%;background-color:#0009;display:flex;justify-content:center;align-items:center}.color-palette-content{background:#2c2c2c;padding:20px;border-radius:8px;border:1px solid #666;display:grid;grid-template-columns:repeat(7,1fr);gap:10px;max-width:400px}.palette-color{width:35px;height:35px;border-radius:50%;cursor:pointer;border:2px solid transparent;transition:transform .2s ease}.palette-color:hover{transform:scale(1.15);border-color:#fff}#chroma-batch-action-bar{display:flex;justify-content:space-between;align-items:center;padding:10px;background-color:#2a2a2a;border:1px solid #555;border-radius:4px;margin-bottom:10px;flex-shrink:0}#chroma-batch-action-bar span{font-weight:700;color:#f0c674}.batch-swatch{padding:5px 10px;width:auto;text-align:center;white-space:nowrap;background-color:#555;border:2px dashed #f0c674;cursor:pointer}.button-link{color:#87ceeb;text-decoration:underline;cursor:pointer;background:none;border:none}.selection-order-marker{position:absolute;top:2px;left:2px;width:16px;height:16px;background-color:#f0c674e6;color:#1e1e1e;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;box-shadow:0 0 4px #000;pointer-events:none}#gradient-creator-modal{position:fixed;z-index:9999;left:0;top:0;width:100%;height:100%;background-color:#0009;display:flex;justify-content:center;align-items:center}#gradient-preview-strip{height:30px;border:1px solid #555;border-radius:4px;margin-bottom:15px;background-color:#222;transition:background .3s ease}.reset-column-defaults{font-size:.75em;padding:2px 6px;border:1px solid #7c3a3a;background-color:#4a3a3a;color:#fca5a5;border-radius:3px;cursor:pointer;transition:all .2s ease;margin-left:8px}.reset-column-defaults:hover{background-color:#5a4a4a;border-color:#ef4444;color:#fecaca}.modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#0009;display:flex;justify-content:center;align-items:center;z-index:9999;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.modal-content{background-color:#2c2c2c;padding:20px;border-radius:8px;border:1px solid #555;box-shadow:0 5px 25px #00000080;width:90%;max-width:450px;position:relative}.modal-close-button{position:absolute;top:10px;right:15px;background:none;border:none;font-size:1.8em;color:#aaa;cursor:pointer}.modal-content h3{margin-top:0;color:#f0c674}.modal-content .form-group{margin-bottom:15px}.modal-content label{display:block;margin-bottom:5px;font-size:.9em;color:#ccc}.modal-content input[type=text],.modal-content textarea{width:100%;padding:8px;background-color:#1e1e1e;border:1px solid #555;border-radius:4px;color:#eee;font-size:1em;box-sizing:border-box}.modal-content code{display:block;padding:8px;background-color:#1e1e1e;border:1px solid #555;border-radius:4px;font-family:monospace;word-break:break-all}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.modal-actions .button{padding:8px 16px;border:none;border-radius:4px;cursor:pointer;font-size:.9em}.modal-actions .button:disabled{opacity:.5;cursor:not-allowed}.modal-content h4{margin:0 0 10px;color:#f0c674}.modal-content p{margin:0 0 15px;color:#ccc;font-size:.9em}#initial-state-config-modal .modal-content{max-width:500px;z-index:9999}#initial-state-config-modal .params-container{display:flex;flex-direction:column;gap:5px;margin-top:15px;border-top:1px solid #444;padding-top:15px}#initial-state-config-modal .slider-component-container{display:grid;grid-template-columns:120px 1fr 50px;align-items:center}.actions-popover{position:fixed;background-color:#3a3a3a;border:1px solid #666;border-radius:4px;box-shadow:0 3px 10px #0006;z-index:2100;opacity:0;transform:translateY(-10px);transition:opacity .15s ease-out,transform .15s ease-out;pointer-events:none}.actions-popover.visible{opacity:1;transform:translateY(0);pointer-events:auto}.actions-popover ul{list-style:none;margin:0;padding:5px}.actions-popover li{padding:8px 15px;cursor:pointer;border-radius:3px;color:#eee;font-size:.9em}.actions-popover li:hover{background-color:#0078d4;color:#fff}#toast-container{position:fixed;bottom:20px;right:20px;z-index:9999;display:flex;flex-direction:column-reverse;gap:10px;pointer-events:none}.toast-notification{background-color:#282828e6;color:#f0f0f0;padding:12px 20px;border-radius:6px;border:1px solid #666;box-shadow:0 4px 12px #0006;font-size:.9em;opacity:0;transform:translate(100%);transition:opacity .3s ease-out,transform .3s ease-out;pointer-events:all}.toast-notification.show{opacity:1;transform:translate(0)}.toast-notification.fade-out{opacity:0}.toast-notification.info{border-left:4px solid #3498db}.toast-notification.success{border-left:4px solid #2ecc71}.toast-notification.error{border-left:4px solid #e74c3c}@media screen and (max-width: 768px),screen and (pointer: coarse) and (hover: none){#toast-container{bottom:calc(var(--bottom-tab-bar-height) + 15px);left:50%;right:auto;transform:translate(-50%);width:90%;align-items:center}}.editor-controls{display:flex;justify-content:space-around;align-items:center;gap:10px;flex-wrap:wrap;border-bottom:1px solid #333}.editor-controls .editor-hex-input{font-family:monospace;font-size:1.2em;background-color:#222;color:#eee;border:1px solid #444;border-radius:4px;padding:6px 8px;width:280px;text-align:center;flex-grow:1;min-width:200px}.editor-controls .editor-hex-input::placeholder{color:#666}.editor-controls #rulesetEditorMode{padding:7px;background-color:#333;color:#fff;border:1px solid #555;border-radius:4px;font-size:.85em}.editor-controls #clearRulesButton.button{min-width:80px;height:auto}.editor-apply-scope-controls{display:flex;align-items:flex-end;justify-content:flex-start;gap:10px;padding-bottom:15px;border-bottom:1px solid #333}.editor-apply-scope-controls label{font-size:.9em;color:#ccc}.editor-apply-scope-controls .radio-group{display:inline-flex;border-radius:4px;overflow:hidden;border:1px solid #555;margin-right:auto}.editor-apply-scope-controls .radio-group .radio-switch-label{padding:6px 12px;background-color:#4a4a4a;color:#ccc;border-right:1px solid #555;font-size:.9em}.editor-apply-scope-controls .radio-group .radio-switch-label:last-of-type{border-right:none}.editor-apply-scope-controls .radio-group .radio-switch-input:checked+.radio-switch-label{background-color:#0078d4;color:#fff;font-weight:400}.editor-apply-scope-controls .radio-group .radio-switch-label:hover{background-color:#5a5a5a}.editor-apply-scope-controls .radio-group .radio-switch-input:checked+.radio-switch-label:hover{background-color:#006ac1}.editor-auto-reset-control{display:inline-flex;align-items:center;gap:5px}.editor-auto-reset-control .checkbox-label{padding:6px 10px;font-size:.9em}#rulesetEditorGrid,#neighborCountRulesetEditorGrid,#rotationalSymmetryRulesetEditorGrid{display:grid;margin:0 auto 10px;gap:2px;padding:5px;border:1px solid #333;background-color:#1a1a1a;border-radius:4px}#rulesetEditorGrid{grid-template-columns:repeat(16,5.9%);grid-template-rows:repeat(8,55px);max-width:712px}#neighborCountRulesetEditorGrid{grid-template-columns:repeat(7,13.6%);width:98%;gap:5px}#rotationalSymmetryRulesetEditorGrid{grid-template-columns:repeat(7,14.3%);max-width:900px;gap:0px;padding:10px;background-color:#1c1c1c}.editor-text{font-size:.85em;color:#ccc;margin:0 auto 10px;text-align:left;line-height:1.3;padding:0 5px}.editor-text.info-text{text-align:center;margin-bottom:15px;font-style:italic;color:#aaa}.editor-text-rules{display:grid;grid-template-columns:repeat(2,minmax(180px,1fr));gap:5px;margin-top:5px}.editor-text-rules>p,.editor-text>p{margin:0}.rule-viz{position:relative;width:100px;height:110px;margin:auto;transform:scale(.4) translate(-70px,-65px);cursor:pointer}.rule-viz:hover .inner-hex{border-color:#fff}.hexagon{position:absolute;width:40px;height:46.18804px;clip-path:polygon(0% 50%,25% 0%,75% 0%,100% 50%,75% 100%,25% 100%);background-color:#555;box-sizing:border-box}.hexagon:not([style*=background-color]).state-0{background-color:#404040}.hexagon:not([style*=background-color]).state-1{background-color:#fff}.hexagon:not([style*=background-color]).state-2{background:linear-gradient(45deg,#633030,#306330)}.center-hex{top:50%;left:50%;transform:translate(-50%,-50%) scale(1);z-index:1}.inner-hex{width:60%;height:69.28206%;top:50%;left:50%;transform:translate(-50%,-50%) scale(.8);border:1px solid #CCCCCC;z-index:2;transition:background-color .2s ease,border-color .2s ease}.inner-hex:not([style*=background-color]).state-0{background-color:#900!important}.inner-hex:not([style*=background-color]).state-1{background-color:#0b0!important}.inner-hex:not([style*=background-color]).state-2{background:linear-gradient(45deg,#700000,#005000)!important;border-color:#888!important}.neighbor-hex{transform-origin:center center;transform:translate(-50%,-50%) scale(.9)}.neighbor-0{top:70%;left:23%}.neighbor-1{top:31%;left:23%}.neighbor-2{top:12%;left:50%}.neighbor-3{top:31%;left:78%}.neighbor-4{top:70%;left:78%}.neighbor-5{top:88%;left:50%}.neighbor-count-rule-viz{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:8px 5px;border:1px solid #444;border-radius:4px;cursor:pointer;background-color:#282828;transition:background-color .2s ease;min-height:80px;box-sizing:border-box}.neighbor-count-rule-viz:hover{background-color:#3a3a3a}.neighbor-count-rule-viz .hexagon.center-hex{position:relative;transform:scale(.8) translate(-46px,-53px);margin-bottom:5px;width:40px;height:46.18804px}.neighbor-count-label{font-size:.75em;text-align:center;color:#ccc;margin-top:3px;line-height:1.2}.r-sym-rule-viz{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:5px;border:1px solid #444;border-radius:4px;background-color:#282828;cursor:pointer;transition:background-color .2s ease;min-height:100px}.r-sym-rule-viz:hover{background-color:#3a3a3a}.r-sym-rule-viz .rule-viz-hex-display{position:relative;width:100px;height:110px;transform:scale(.45) translateY(-45px);margin-bottom:-25px}.r-sym-rule-viz .orbit-size-display{font-size:.7em;color:#b0b0b0;margin-top:2px;background-color:#0000004d;padding:1px 4px;border-radius:2px;text-align:center;position:absolute;bottom:3px;left:50%;transform:translate(-50%);white-space:nowrap}.r-sym-rule-viz .rule-label{font-size:.7em;color:#ccc;text-align:center;margin-bottom:0;width:100%}.inline-hex{display:inline-block;width:1em;height:calc(1em * 1.154701);clip-path:polygon(0% 50%,25% 0%,75% 0%,100% 50%,75% 100%,25% 100%);vertical-align:middle;margin:0 2px;position:relative;box-sizing:border-box}.inline-hex-inner{position:absolute;display:inline-block;width:60%;height:69.28206%;clip-path:polygon(0% 50%,25% 0%,75% 0%,100% 50%,75% 100%,25% 100%);top:50%;left:50%;transform:translate(-50%,-50%);border:1px solid #CCCCCC;box-sizing:border-box}.inline-hex.state-0{background-color:#404040}.inline-hex.state-1{background-color:#ff0}.inline-hex-inner.state-0{background-color:#900!important}.inline-hex-inner.state-1{background-color:#0b0!important}@media screen and ((hover: none) and (pointer: coarse) and (orientation: portrait) and (max-height: 900px)),(max-width: 768px){.neighbor-count-rule-viz .hexagon.center-hex{transform:scale(.8) translate(-23px,-53px)}#rulesetEditorGrid{grid-template-columns:repeat(8,42px);grid-template-rows:repeat(16,56px)}.editor-controls .editor-hex-input{font-size:1.2em;width:250px}#neighborCountRulesetEditorGrid{grid-template-columns:repeat(7,13.6%)}}@media screen and ((hover: none) and (pointer: coarse) and (orientation: portrait) and (max-height: 700px)),(max-width: 600px){#rotationalSymmetryRulesetEditorGrid{grid-template-columns:repeat(4,1fr);gap:0px}.r-sym-rule-viz .rule-viz-hex-display{transform:scale(.45) translateY(-35px);margin-bottom:-30px}}@media screen and ((hover: none) and (pointer: coarse) and (orientation: portrait) and (max-height: 600px)),(max-width: 500px){#rotationalSymmetryRulesetEditorGrid{grid-template-columns:repeat(3,1fr);gap:0px}.r-sym-rule-viz .rule-viz-hex-display{transform:scale(.45) translateY(-40px);margin-bottom:-35px}.r-sym-rule-viz{min-height:85px}}@media screen and ((hover: none) and (pointer: coarse) and (orientation: portrait) and (max-height: 500px)),(max-width: 480px){.editor-controls{flex-direction:row;align-items:stretch}#rotationalSymmetryRulesetEditorGrid{grid-template-columns:repeat(2,1fr)}}.ruleset-editor-component-content.mobile-context{padding-right:0}.world-setup-component-content{display:flex;flex-direction:column;gap:10px;height:100%}.panel-header-controls{display:flex;justify-content:space-between;align-items:center;padding-bottom:10px;border-bottom:1px solid #444;margin-bottom:10px}.panel-header-controls .info-text{margin:0;flex-grow:1}.state-control{grid-column:span 2;display:flex;justify-content:space-between;align-items:center;background-color:#0003;padding:5px 8px;border-radius:4px}.state-mode-label{font-size:.9em}.state-mode-value{color:#f0c674}.world-config-grid{display:grid;gap:10px;padding:10px 0;grid-template-columns:repeat(3,1fr);overflow-y:auto;flex-grow:1}.world-config-cell>:nth-child(3){grid-column:span 2}.world-config-cell{border:1px solid #333;border-radius:6px;padding:5px;background-color:#ffffff08;display:grid;grid-template-columns:.5fr .5fr;align-items:center}.world-label{font-weight:700;font-size:.9em;color:#bbb}.world-config-cell .ruleset-viz-container{display:flex;justify-content:center;align-items:center}.world-config-cell .ruleset-hex{font-family:monospace;font-size:.9em;background-color:#3a3a3a;padding:3px 6px;border-radius:4px}.setting-control{width:100%;display:flex;flex-direction:column;align-items:stretch;gap:5px}.setting-control label{font-size:.8em;color:#aaa;text-align:center}.density-control .slider-component-container{width:100%}.density-control .slider-component-container input[type=range]{width:100%;min-width:0}.enable-control label.checkbox-label{padding:6px 12px;font-size:.85em;text-align:center;width:100%;box-sizing:border-box}.world-config-cell .button.set-ruleset-button{height:auto;padding:6px 10px;font-size:.8em;min-width:0;width:100%;margin-top:5px}.panel-actions{border-top:1px solid #444;padding-top:10px;display:flex;flex-direction:row;gap:10px;flex-shrink:0}.panel-actions .button{width:100%;padding:12px;font-size:1em}@media (max-width: 768px){.world-config-grid{grid-template-columns:repeat(2,1fr);gap:8px}.world-config-cell{padding:8px;gap:6px}.world-label{font-size:.85em}.panel-actions{flex-direction:column;gap:8px}.panel-actions .button{padding:10px;font-size:.9em}}@media (max-width: 480px){.world-config-grid{grid-template-columns:1fr}}.analysis-component-content{display:flex;flex-direction:column;gap:15px;height:100%}.plugins-mount-area{display:flex;flex-direction:column;gap:15px}.analysis-plugin-container{border:1px solid #383838;border-radius:4px;padding:10px;background-color:#0000001a}.analysis-plugin-container .plugin-canvas{display:block;width:100%;height:100px;background-color:#2a2a2a;border-radius:2px}.analyze-view-header{display:flex;justify-content:stretch;background-color:#2a2a2a;padding:10px;flex-shrink:0}.analyze-view-segment{flex-grow:1;padding:12px 5px;font-size:.9em;text-align:center;background-color:#3a3a3a;color:#ccc;border:none;border-right:1px solid #555}.analyze-view-segment:last-child{border-right:none}.analyze-view-segment.active{background-color:#f0c674;color:#1e1e1e;font-weight:700}.analyze-pane{display:flex;flex-direction:column;gap:20px}.analyze-pane .plugin-canvas{width:100%;height:auto;max-height:150px}.mobile-rank-list{display:flex;flex-direction:column;gap:8px}.mobile-rank-item{display:grid;grid-template-columns:20px 50px 1fr 60px;align-items:center;gap:10px;background-color:#2a2a2a;padding:8px;border-radius:4px}.mobile-rank-item .rank{font-weight:700;color:#888}.mobile-rank-item .viz{transform:scale(.3) translate(-80px,-85px);height:35px}.mobile-rank-item .usage{text-align:right;font-family:monospace;font-size:.9em}.entropy-plugin-container{display:flex;flex-direction:column;gap:10px}.entropy-controls-section{display:flex;flex-direction:column;gap:8px;padding:8px;background-color:#0000001a;border-radius:4px;border:1px solid #333}.entropy-display-section{display:flex;align-items:center;justify-content:space-between;font-size:.9em}.entropy-display-section label{color:#ccc}.entropy-value-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.entropy-value-row:last-child{margin-bottom:0}.entropy-value{font-weight:700;padding:2px 6px;background-color:#0000004d;border-radius:3px;color:#fff;min-width:60px;text-align:right}.entropy-sampling-controls{display:flex;flex-direction:column;gap:6px}.sampling-enable-control{display:flex;align-items:center;gap:6px}.sampling-enable-control .checkbox-label{font-size:.85em;color:#bbb}#ranks-pane>h4{margin:0}.analysis-component-content.mobile-context{padding:0}#ruleRankPanel{width:600px;max-height:70vh}#ruleRankPanel .panel-content-area{padding:0}#ruleRankContent .empty-state-text{text-align:center;color:#888;padding-top:20px;font-style:italic}.dual-rank-container{display:flex;justify-content:space-between;gap:10px;padding:10px;height:100%}.rank-column{flex:1;min-width:0;background-color:#0003;border:1px solid #333;border-radius:4px;display:flex;flex-direction:column;overflow:hidden}.rank-column-header{font-weight:700;text-align:center;padding:8px;background-color:#ffffff14;border-bottom:1px solid #444;font-size:.9em;color:#ddd;flex-shrink:0}.rank-list-content{overflow-y:auto;flex-grow:1}.rank-list-header,.rank-list-item{display:grid;grid-template-columns:50px 1fr 120px;align-items:center;padding:8px 10px;border-bottom:1px solid #333;font-size:.9em;position:relative}.rank-list-header{font-weight:700;color:#ccc;background-color:#282828f2;position:sticky;top:0;z-index:10}.rank-list-item:hover{background-color:#ffffff0d}.rank-list-item .rank-list-rank{font-weight:700;font-size:1.1em;color:#aaa;text-align:center;z-index:1}.rank-list-item .rank-list-viz-container{z-index:1}.rank-list-item .rank-list-viz{transform:scale(.45) translate(-10px);margin:-30px 0}.rank-list-item .rank-list-usage{font-family:monospace;text-align:right;font-weight:700;font-size:.9em;z-index:1}.rank-list-item .usage-percent{font-size:1.1em;color:#fff}.rank-list-item .usage-count{font-size:.8em;color:#aaa;margin-top:2px}.usage-background-bar{position:absolute;left:0;top:0;height:100%;z-index:0;pointer-events:none;transition:width .3s ease-out}#activation-rank .usage-background-bar{background-color:#3b82f640}#deactivation-rank .usage-background-bar{background-color:#ef444440}@media screen and ((hover: none) and (pointer: coarse) and (orientation: portrait) and (max-height: 900px)),(max-width: 768px){#ruleRankPanel{width:clamp(300px,85vw,400px);max-height:80vh}.rank-list-header,.rank-list-item{grid-template-columns:40px 1fr 100px;padding:6px 8px;font-size:.85em}}@media screen and ((hover: none) and (pointer: coarse) and (orientation: portrait) and (max-height: 500px)),(max-width: 480px){#ruleRankPanel{width:100%;max-height:100vh}.rank-list-header,.rank-list-item{grid-template-columns:35px 1fr 90px;padding:5px 6px;font-size:.8em}}#settingsPopout .form-group{display:flex;flex-direction:column;gap:8px}#settingsPopout .radio-group{display:flex;flex-direction:column;gap:5px}.ruleset-viz-container{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle}.ruleset-viz-svg{border:1px solid #555;border-radius:2px;width:24px;height:48px;background-color:#111}#minimap-overlays-container{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:50}.minimap-ruleset-overlay{position:absolute;width:32px;height:64px;opacity:.85;box-sizing:border-box;transition:opacity .2s ease;transform-origin:top left}.minimap-ruleset-overlay.mini{transform:scale(.5);opacity:.9}.minimap-ruleset-overlay svg{width:100%;height:100%}#rulesetDisplayContainer .ruleset-viz-container{width:24px;height:24px;margin-right:8px}.world-card .ruleset-viz-container{width:24px;height:48px;margin-left:10px}.world-card-header{display:flex;justify-content:space-between;align-items:center}.tools-bottom-sheet-content{display:flex;flex-direction:column;gap:10px;padding:10px}.tool-group{display:flex;flex-direction:column}.tool-group h5{margin:0;font-size:1em;color:#f0c674;border-bottom:1px solid #444;padding-bottom:0}.tool-group .slider-component-container{padding:0 4px}.reset-clear-buttons{display:grid;grid-template-columns:1fr 1fr;gap:10px}.bottom-sheet-tabs{display:flex;justify-content:stretch;background-color:#2a2a2a;padding:0;flex-shrink:0}.bottom-sheet-tabs .tab-button{flex-grow:1;padding:12px 5px;font-size:.9em;text-align:center;background-color:#3a3a3a;color:#ccc;border:none;border-right:1px solid #555;transition:background-color .2s}.bottom-sheet-tabs .tab-button:last-child{border-right:none}.bottom-sheet-tabs .tab-button.active{background-color:#f0c674;color:#1e1e1e;font-weight:700}.bottom-sheet-panes .pane.hidden{display:none}.fab-custom-toggle{display:flex;justify-content:space-between;align-items:center;background-color:#0000001a;padding:10px;border-radius:4px}.fab-action-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column}.fab-action-list li{display:flex;align-items:center;background-color:#0003;padding:8px 12px;border-radius:4px;border:1px solid #333}.fab-action-list li .icon{font-size:1.5em}.fab-action-list li .text{flex-grow:1;color:#ddd}.keyboard-shortcuts-component-content{display:flex;flex-direction:column;gap:15px;height:100%}.shortcut-category{margin-bottom:10px}.shortcut-category h4{margin:0 0 10px;color:#f0c674;border-bottom:1px solid #444;padding-bottom:5px}.shortcut-category ul{list-style:none;padding:0;margin:0}.shortcut-category li{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid #333}.shortcut-category li:last-child{border-bottom:none}.keys{display:flex;gap:4px;align-items:center}kbd{background-color:#4a4a4a;border:1px solid #666;border-radius:3px;padding:4px 8px;font-family:monospace;font-size:.9em;color:#eee;white-space:nowrap}.description{color:#ccc;font-size:.9em;text-align:right}.mobile-view{position:fixed;top:0;left:0;right:0;bottom:var(--bottom-tab-bar-height);background-color:#1e1e1e;z-index:4501;display:flex;flex-direction:column;overflow:hidden}.mobile-view.hidden{display:none}.mobile-view-header{display:flex;justify-content:space-between;align-items:center;padding:15px;border-bottom:1px solid #444;background-color:#2a2a2a;flex-shrink:0}.mobile-view-title{font-size:1.5em;color:#f0c674;margin:0}.mobile-view-close-button{background:none;border:none;color:#ccc;font-size:2em;cursor:pointer;padding:0;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:4px}.mobile-view-close-button:hover{background-color:#444;color:#fff}.mobile-view-content{flex:1;overflow-y:auto;padding:15px}.mobile-view-content .world-setup-component-content{height:100%}#rules-view .mobile-view-content-area,#worlds-view .worlds-list,#analyze-view .analyze-view-content,#more-view #more-view-content{overflow-y:auto;flex-grow:1}#editor-view .ruleset-editor-component-content{height:100%;overflow-y:auto}#more-view{background-color:#1e1e1e;padding:20px;display:flex;flex-direction:column;gap:15px}#more-view .more-view-title{font-size:1.5em;color:#f0c674;text-align:center;margin-bottom:20px}#more-view .button,#more-view .file-input-label{display:block;width:100%;text-align:center;padding:15px;font-size:1.1em;background-color:#3a3a3a;border:1px solid #555;box-sizing:border-box}#more-view .file-input-label{cursor:pointer}
