.App{width:100vw;height:100vh;position:relative;background-color:#1a1a1a}canvas{display:block}.faction-panel{position:absolute;top:10px;right:10px;width:350px;max-height:80vh;background-color:#000000e6;color:#fff;border-radius:8px;font-family:Noto Sans KR,sans-serif;font-size:14px;z-index:1000;overflow-y:auto}.faction-header{padding:15px;border-bottom:1px solid #333}.faction-header h3{margin:0 0 5px;color:#4ecdc4}.faction-count{font-size:12px;color:#888}.faction-content{display:flex;flex-direction:column}.faction-list{padding:15px;border-bottom:1px solid #333}.faction-list h4{margin:0 0 10px;color:#4ecdc4}.faction-item{display:flex;align-items:center;padding:8px;margin-bottom:5px;background-color:#ffffff0d;border-radius:4px;cursor:pointer;transition:background-color .2s}.faction-item:hover{background-color:#ffffff1a}.faction-item.selected{background-color:#4ecdc433;border:1px solid #4ecdc4}.faction-color{width:12px;height:12px;border-radius:50%;margin-right:10px}.faction-info{flex:1}.faction-name{font-weight:700;margin-bottom:2px}.faction-stats{font-size:11px;color:#888}.faction-details{padding:15px}.faction-tabs{display:flex;margin-bottom:15px;border-bottom:1px solid #333}.faction-tabs button{background:none;border:none;color:#888;padding:8px 15px;cursor:pointer;border-bottom:2px solid transparent;transition:all .2s}.faction-tabs button:hover{color:#fff}.faction-tabs button.active{color:#4ecdc4;border-bottom-color:#4ecdc4}.tab-content{min-height:200px}.faction-header-info h4{margin:0 0 5px;color:#4ecdc4}.faction-leader{font-size:12px;color:#888;margin-bottom:15px}.faction-culture h5,.faction-resources h5{margin:0 0 10px;color:#4ecdc4}.culture-stats{display:grid;grid-template-columns:1fr 1fr;gap:5px;font-size:12px;margin-bottom:15px}.resource-list{display:grid;grid-template-columns:1fr 1fr;gap:5px;font-size:12px}.resource-item{display:flex;justify-content:space-between}.resource-name{color:#888}.resource-amount{font-weight:700}.member-list{max-height:200px;overflow-y:auto}.member-item{padding:8px;margin-bottom:5px;background-color:#ffffff0d;border-radius:4px}.member-name{font-weight:700;margin-bottom:3px}.member-stats{font-size:11px;color:#888;margin-bottom:3px}.member-status{font-size:10px;padding:2px 6px;border-radius:3px;display:inline-block}.member-status:contains("사망"){background-color:#f44336;color:#fff}.member-status:contains("부상"){background-color:#ff9800;color:#fff}.member-status:contains("피로"){background-color:#ffc107;color:#000}.member-status:contains("정상"){background-color:#4caf50;color:#fff}.relation-list{max-height:200px;overflow-y:auto}.relation-item{display:flex;justify-content:space-between;align-items:center;padding:8px;margin-bottom:5px;background-color:#ffffff0d;border-radius:4px}.relation-faction{display:flex;align-items:center}.relation-color{width:10px;height:10px;border-radius:50%;margin-right:8px}.relation-name{font-size:12px}.relation-value{font-size:11px;font-weight:700}.stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.stat-item{text-align:center;padding:10px;background-color:#ffffff0d;border-radius:4px}.stat-label{font-size:11px;color:#888;margin-bottom:5px}.stat-value{font-size:18px;font-weight:700;color:#4ecdc4}.genetics-panel{position:absolute;top:10px;right:370px;width:350px;max-height:80vh;background-color:#000000e6;color:#fff;border-radius:8px;font-family:Noto Sans KR,sans-serif;font-size:14px;z-index:1000;overflow-y:auto}.genetics-header{padding:15px;border-bottom:1px solid #333}.genetics-header h3{margin:0 0 5px;color:#4ecdc4}.entity-count{font-size:12px;color:#888}.genetics-content{display:flex;flex-direction:column}.entity-list{padding:15px;border-bottom:1px solid #333}.entity-list h4{margin:0 0 10px;color:#4ecdc4}.entity-item{display:flex;justify-content:space-between;align-items:center;padding:8px;margin-bottom:5px;background-color:#ffffff0d;border-radius:4px;cursor:pointer;transition:background-color .2s}.entity-item:hover{background-color:#ffffff1a}.entity-item.selected{background-color:#4ecdc433;border:1px solid #4ecdc4}.entity-info{flex:1}.entity-name{font-weight:700;margin-bottom:2px}.entity-stats{font-size:11px;color:#888}.entity-traits{font-size:11px;color:#4ecdc4}.entity-details{padding:15px}.entity-tabs{display:flex;margin-bottom:15px;border-bottom:1px solid #333}.entity-tabs button{background:none;border:none;color:#888;padding:8px 15px;cursor:pointer;border-bottom:2px solid transparent;transition:all .2s}.entity-tabs button:hover{color:#fff}.entity-tabs button.active{color:#4ecdc4;border-bottom-color:#4ecdc4}.entity-header-info h4{margin:0 0 10px;color:#4ecdc4}.entity-genes{display:grid;grid-template-columns:1fr 1fr;gap:5px;font-size:12px;margin-bottom:15px}.genetic-traits h5,.available-traits h5{margin:0 0 10px;color:#4ecdc4}.trait-list{max-height:200px;overflow-y:auto}.trait-item{padding:8px;margin-bottom:5px;background-color:#ffffff0d;border-radius:4px}.trait-item.available{border-left:3px solid #4ecdc4}.trait-name{font-weight:700;margin-bottom:3px}.trait-description{font-size:11px;color:#888;margin-bottom:3px}.trait-effect{font-size:10px;color:#4ecdc4}.trait-rarity{font-size:10px;color:#ffd93d}.no-traits,.no-experiences,.no-knowledge,.no-sessions{font-size:12px;color:#888;text-align:center;padding:20px}.learning-experiences{max-height:200px;overflow-y:auto;margin-bottom:15px}.experience-item{padding:8px;margin-bottom:5px;background-color:#ffffff0d;border-radius:4px}.experience-type{font-size:10px;color:#4ecdc4;margin-bottom:2px}.experience-target{font-size:11px;color:#888;margin-bottom:2px}.experience-value{font-size:10px;color:#ffd93d;margin-bottom:2px}.experience-description{font-size:10px;color:#ccc}.skill-grid{display:grid;grid-template-columns:1fr;gap:8px}.skill-item{padding:8px;background-color:#ffffff0d;border-radius:4px}.skill-name{font-size:12px;margin-bottom:3px}.skill-level{font-size:11px;color:#4ecdc4;margin-bottom:3px}.skill-bar{width:100%;height:4px;background-color:#333;border-radius:2px;overflow:hidden}.skill-progress{height:100%;background-color:#4ecdc4;transition:width .3s}.knowledge-list{max-height:200px;overflow-y:auto}.knowledge-item{display:flex;justify-content:space-between;padding:8px;margin-bottom:5px;background-color:#ffffff0d;border-radius:4px}.knowledge-id{font-size:11px;color:#888}.knowledge-value{font-size:11px;color:#4ecdc4;font-weight:700}.epigenetics-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.epi-item{display:flex;justify-content:space-between;padding:6px;background-color:#ffffff0d;border-radius:4px}.epi-label{font-size:11px;color:#888}.epi-value{font-size:11px;color:#4ecdc4;font-weight:700}.ecosystem-panel{position:absolute;top:10px;right:730px;width:350px;max-height:80vh;background-color:#000000e6;color:#fff;border-radius:8px;font-family:Noto Sans KR,sans-serif;font-size:14px;z-index:1000;overflow-y:auto}.ecosystem-header{padding:15px;border-bottom:1px solid #333}.ecosystem-header h3{margin:0 0 5px;color:#4ecdc4}.ecosystem-stats{font-size:12px;color:#888}.ecosystem-content{display:flex;flex-direction:column}.ecosystem-tabs{display:flex;margin-bottom:15px;border-bottom:1px solid #333}.ecosystem-tabs button{background:none;border:none;color:#888;padding:8px 15px;cursor:pointer;border-bottom:2px solid transparent;transition:all .2s}.ecosystem-tabs button:hover{color:#fff}.ecosystem-tabs button.active{color:#4ecdc4;border-bottom-color:#4ecdc4}.animal-list,.plant-list{max-height:200px;overflow-y:auto;margin-bottom:15px}.animal-item,.plant-item{display:flex;justify-content:space-between;padding:8px;margin-bottom:5px;background-color:#ffffff0d;border-radius:4px;cursor:pointer;transition:background-color .2s}.animal-item:hover,.plant-item:hover{background-color:#ffffff1a}.animal-item.selected,.plant-item.selected{background-color:#4ecdc433;border:1px solid #4ecdc4}.animal-info,.plant-info{flex:1}.animal-name,.plant-species{font-weight:700;margin-bottom:2px}.animal-species{font-size:11px;color:#888;margin-bottom:2px}.animal-stats,.plant-stats{font-size:11px;color:#888}.animal-traits,.plant-traits{font-size:11px;color:#4ecdc4;text-align:right}.animal-details,.plant-details{padding:15px;background-color:#ffffff0d;border-radius:4px}.animal-details h5,.plant-details h5{margin:0 0 10px;color:#4ecdc4}.detail-item{display:flex;justify-content:space-between;padding:4px;background-color:#ffffff0d;border-radius:3px}.detail-label{font-size:11px;color:#888}.detail-value{font-size:11px;color:#4ecdc4;font-weight:700}.pulse-list{max-height:200px;overflow-y:auto}.pulse-item{padding:8px;margin-bottom:5px;background-color:#ffffff0d;border-radius:4px}.pulse-type{font-weight:700;margin-bottom:2px}.pulse-source{font-size:11px;color:#888;margin-bottom:2px}.pulse-stats{font-size:10px;color:#4ecdc4}.biome-list{max-height:200px;overflow-y:auto}.biome-item{padding:8px;margin-bottom:5px;background-color:#ffffff0d;border-radius:4px}.biome-name{font-weight:700;margin-bottom:5px;color:#4ecdc4}.biome-info{font-size:11px;color:#888;margin-bottom:5px}.biome-species{font-size:10px;color:#4ecdc4}.draggable-panel,.resizable-panel{background-color:#000000e6;color:#fff;border-radius:8px;font-family:Noto Sans KR,sans-serif;font-size:14px;box-shadow:0 4px 20px #00000080;border:1px solid #333;overflow:hidden}.resize-handle{background-color:transparent;transition:background-color .2s}.resize-handle:hover{background-color:#4ecdc44d}.resize-handle-n,.resize-handle-s{cursor:ns-resize}.resize-handle-w,.resize-handle-e{cursor:ew-resize}.resize-handle-nw,.resize-handle-ne,.resize-handle-sw,.resize-handle-se{cursor:nw-resize}.resize-handle-ne,.resize-handle-sw{cursor:ne-resize}.data-editor-panel{height:100%;display:flex;flex-direction:column}.editor-tabs{display:flex;background-color:#000c;border-bottom:1px solid #333;overflow-x:auto}.editor-tab{background:none;border:none;color:#888;padding:10px 15px;cursor:pointer;display:flex;align-items:center;gap:5px;white-space:nowrap;transition:all .2s;border-bottom:2px solid transparent}.editor-tab:hover{color:#fff;background-color:#ffffff1a}.editor-tab.active{color:#4ecdc4;border-bottom-color:#4ecdc4}.tab-icon{font-size:16px}.tab-name{font-size:12px}.tab-count{font-size:10px;color:#666}.editor-content{flex:1;overflow:hidden;display:flex;flex-direction:column}.data-editor-content{height:100%;display:flex;flex-direction:column;padding:15px;overflow:hidden}.editor-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px;flex-shrink:0}.editor-header-actions{display:flex;gap:10px;align-items:center}.editor-header h3{margin:0;color:#4ecdc4}.create-btn{background-color:#4ecdc4;color:#fff;border:none;padding:8px 12px;border-radius:4px;cursor:pointer;font-size:12px;transition:background-color .2s}.create-btn:hover{background-color:#3db8b0}.back-btn{background-color:#666;color:#fff;border:none;padding:8px 12px;border-radius:4px;cursor:pointer;font-size:12px;transition:background-color .2s}.back-btn:hover{background-color:#555}.item-list{flex:1;overflow-y:auto;margin-bottom:15px;min-height:0}.item-item{padding:10px;margin-bottom:5px;background-color:#ffffff0d;border-radius:4px;cursor:pointer;transition:background-color .2s}.item-item:hover{background-color:#ffffff1a}.item-item.selected{background-color:#4ecdc433;border:1px solid #4ecdc4}.item-name{font-weight:700;margin-bottom:5px;color:#4ecdc4}.item-details{display:flex;gap:10px;font-size:11px;color:#888}.item-details span{background-color:#0000004d;padding:2px 6px;border-radius:3px}.editor-form{background-color:#00000080;border:1px solid #333;border-radius:4px;padding:15px;margin-top:10px;overflow-y:auto;max-height:60vh}.editor-form h4{margin:0 0 15px;color:#4ecdc4}.editor-form-content{display:flex;flex-direction:column;gap:10px}.form-group{display:flex;align-items:center;gap:10px}.form-group label{min-width:80px;font-size:12px;color:#ccc}.form-group input,.form-group select{flex:1;background-color:#2a2a2a;border:1px solid #4ecdc4;color:#fff;padding:5px 8px;border-radius:3px;font-size:12px}.form-group input:focus,.form-group select:focus{outline:none;border-color:#3db8b0}.form-actions{display:flex;gap:10px;margin-top:15px}.save-btn,.cancel-btn{padding:8px 16px;border:none;border-radius:4px;cursor:pointer;font-size:12px;transition:background-color .2s}.save-btn{background-color:#4ecdc4;color:#fff}.save-btn:hover{background-color:#3db8b0}.cancel-btn{background-color:#666;color:#fff}.cancel-btn:hover{background-color:#555}.settings-panel{height:100%;display:flex;flex-direction:column}.settings-tabs{display:flex;background-color:#000c;border-bottom:1px solid #333;overflow-x:auto}.settings-tab{background:none;border:none;color:#888;padding:10px 15px;cursor:pointer;display:flex;align-items:center;gap:5px;white-space:nowrap;transition:all .2s;border-bottom:2px solid transparent}.settings-tab:hover{color:#fff;background-color:#ffffff1a}.settings-tab.active{color:#4ecdc4;border-bottom-color:#4ecdc4}.settings-content-wrapper{flex:1;overflow:hidden}.settings-content{height:100%;overflow-y:auto;padding:15px}.settings-section{margin-bottom:20px}.settings-section h3{margin:0 0 15px;color:#4ecdc4;font-size:16px}.settings-group{margin-bottom:15px;padding:10px;background-color:#ffffff0d;border-radius:4px}.settings-group h4{margin:0 0 10px;color:#ccc;font-size:14px}.game-stats,.performance-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px}.stat-item{display:flex;justify-content:space-between;padding:5px 10px;background-color:#0000004d;border-radius:3px}.stat-label{color:#888;font-size:12px}.stat-value{color:#4ecdc4;font-weight:700;font-size:12px}.button-group{display:flex;gap:10px;flex-wrap:wrap}.action-btn{padding:8px 12px;border:none;border-radius:4px;cursor:pointer;font-size:12px;transition:background-color .2s;color:#fff}.new-game-btn{background-color:#4ecdc4}.new-game-btn:hover{background-color:#3db8b0}.save-game-btn{background-color:#28a745}.save-game-btn:hover{background-color:#218838}.load-game-btn{background-color:#007bff}.load-game-btn:hover{background-color:#0056b3}.reset-btn{background-color:#dc3545}.reset-btn:hover{background-color:#c82333}.export-btn{background-color:#6f42c1}.export-btn:hover{background-color:#5a2d91}.import-btn{background-color:#fd7e14}.import-btn:hover{background-color:#e55a00}.setting-item{display:flex;align-items:center;gap:10px;margin-bottom:8px}.setting-item label{display:flex;align-items:center;gap:8px;color:#ccc;font-size:12px;cursor:pointer}.setting-item input[type=checkbox]{margin:0}.setting-item input[type=range]{flex:1;margin:0}.setting-item select{background-color:#2a2a2a;border:1px solid #4ecdc4;color:#fff;padding:4px 8px;border-radius:3px;font-size:12px}.saved-games{max-height:200px;overflow-y:auto}.saved-game-item{display:flex;justify-content:space-between;align-items:center;padding:10px;margin-bottom:5px;background-color:#ffffff0d;border-radius:4px}.game-info{flex:1}.game-name{font-weight:700;color:#4ecdc4;margin-bottom:3px}.game-details{font-size:11px;color:#888}.game-actions{display:flex;gap:5px}.load-btn,.delete-btn{padding:4px 8px;border:none;border-radius:3px;cursor:pointer;font-size:10px;transition:background-color .2s}.load-btn{background-color:#007bff;color:#fff}.load-btn:hover{background-color:#0056b3}.delete-btn{background-color:#dc3545;color:#fff}.delete-btn:hover{background-color:#c82333}.no-saves{text-align:center;color:#888;font-style:italic;padding:20px}.confirm-modal-overlay{position:fixed;inset:0;background-color:#000c;display:flex;align-items:center;justify-content:center;z-index:10000}.confirm-modal{background-color:#000000f2;border:1px solid #333;border-radius:8px;padding:20px;max-width:400px;width:90%}.confirm-modal h3{margin:0 0 15px;color:#4ecdc4}.confirm-modal p{margin:0 0 20px;color:#ccc;line-height:1.5}.modal-actions{display:flex;gap:10px;justify-content:flex-end}.confirm-btn{background-color:#dc3545;color:#fff;border:none;padding:8px 16px;border-radius:4px;cursor:pointer;font-size:12px}.confirm-btn:hover{background-color:#c82333}.panel-header{background-color:#4ecdc433;padding:10px 15px;display:flex;justify-content:space-between;align-items:center;cursor:move;border-bottom:1px solid #333;user-select:none}.panel-title{font-weight:700;color:#4ecdc4;font-size:16px}.panel-close-btn{background:none;border:none;color:#888;font-size:20px;cursor:pointer;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s}.panel-close-btn:hover{color:#ff6b6b;background-color:#ff6b6b1a}.panel-content{padding:15px;height:calc(100% - 50px);overflow-y:auto}.tab-bar{position:fixed;bottom:0;left:0;right:0;height:60px;background-color:#000000e6;border-top:1px solid #333;display:flex;justify-content:center;align-items:center;gap:10px;padding:0 20px;z-index:1000}.tab-button{background:none;border:none;color:#888;padding:8px 16px;border-radius:20px;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:4px;transition:all .2s;min-width:60px;height:50px;justify-content:center}.tab-button:hover{color:#fff;background-color:#ffffff1a}.tab-button.active{color:#4ecdc4;background-color:#4ecdc433;border:1px solid #4ecdc4}.tab-icon{font-size:18px;line-height:1}.tab-name{font-size:11px;font-weight:700;line-height:1}.draggable-panel .unified-panel,.draggable-panel .faction-panel,.draggable-panel .genetics-panel,.draggable-panel .ecosystem-panel,.resizable-panel .unified-panel,.resizable-panel .faction-panel,.resizable-panel .genetics-panel,.resizable-panel .ecosystem-panel{position:static;width:100%;height:100%;background:none;border-radius:0;box-shadow:none;border:none}.draggable-panel .unified-header,.draggable-panel .faction-header,.draggable-panel .genetics-header,.draggable-panel .ecosystem-header,.resizable-panel .unified-header,.resizable-panel .faction-header,.resizable-panel .genetics-header,.resizable-panel .ecosystem-header{display:none}.draggable-panel .unified-content,.draggable-panel .faction-content,.draggable-panel .genetics-content,.draggable-panel .ecosystem-content,.resizable-panel .unified-content,.resizable-panel .faction-content,.resizable-panel .genetics-content,.resizable-panel .ecosystem-content{padding:0;height:100%}.unified-panel,.faction-panel,.genetics-panel,.ecosystem-panel{width:100%;height:100%;overflow-y:auto}.unified-content,.faction-content,.genetics-content,.ecosystem-content{padding:15px;height:100%;overflow-y:auto}.modal-overlay{position:fixed;inset:0;background-color:#000c;display:flex;justify-content:center;align-items:center;z-index:2000}.modal{background-color:#1a1a1a;border-radius:10px;max-width:600px;max-height:80vh;width:90%;overflow:hidden;display:flex;flex-direction:column;border:1px solid #333;box-shadow:0 4px 20px #00000080}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:15px 20px;border-bottom:1px solid #333;background-color:#4ecdc41a}.modal-header h2{margin:0;color:#4ecdc4;font-size:18px}.modal-close-btn{background:none;border:none;color:#888;font-size:20px;cursor:pointer;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s}.modal-close-btn:hover{color:#ff6b6b;background-color:#ff6b6b1a}.modal-content{padding:20px;overflow-y:auto;flex:1}.modal-content h2{margin:0 0 20px;color:#4ecdc4;font-size:24px}.detail-section{margin-bottom:20px}.detail-section h3{margin:0 0 10px;color:#4ecdc4;font-size:16px;border-bottom:1px solid #333;padding-bottom:5px}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.detail-item{display:flex;justify-content:space-between;padding:8px;background-color:#ffffff0d;border-radius:4px}.detail-item .label{font-size:12px;color:#888}.detail-item .value{font-size:12px;color:#4ecdc4;font-weight:700}.data-editor-panel .editor-form .form-section{margin-bottom:20px;padding:15px;background:#f8f9fa;border-radius:8px;border:1px solid #e9ecef}.data-editor-panel .editor-form .form-section h4{margin:0 0 15px;color:#495057;font-size:16px;border-bottom:2px solid #4ecdc4;padding-bottom:5px}.data-editor-panel .editor-form .stats-grid,.data-editor-panel .editor-form .skills-grid,.data-editor-panel .editor-form .genes-grid,.data-editor-panel .editor-form .epigenetics-grid,.data-editor-panel .editor-form .animal-traits-grid,.data-editor-panel .editor-form .plant-traits-grid,.data-editor-panel .editor-form .material-props-grid,.data-editor-panel .editor-form .culture-grid,.data-editor-panel .editor-form .faction-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}.data-editor-panel .editor-form .form-group input[type=checkbox]{width:auto;margin-right:8px}.data-editor-panel .editor-form .form-group input[type=color]{width:60px;height:40px;padding:2px}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Noto Sans KR,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#1a1a1a;color:#fff;overflow:hidden}#root{width:100vw;height:100vh}.App{width:100%;height:100%;position:relative}
