diff --git a/ui/index.html b/ui/index.html index 2befe795a..0a1463b94 100644 --- a/ui/index.html +++ b/ui/index.html @@ -734,6 +734,132 @@ font-size: 10px; } + /* World URL Bar */ + .world-url-bar { + background: linear-gradient(180deg, #f5f5f5 0%, #e8e8e8 100%); + border-bottom: 1px solid #aaa; + padding: 8px; + } + + .url-bar-inner { + display: flex; + align-items: center; + gap: 5px; + margin-bottom: 5px; + } + + .url-label { + font-weight: bold; + color: #333; + white-space: nowrap; + } + + .url-input { + flex: 1; + padding: 4px 8px; + font-size: 11px; + } + + .url-presets { + display: flex; + align-items: center; + gap: 10px; + font-size: 10px; + padding-top: 5px; + border-top: 1px solid #ddd; + margin-top: 5px; + } + + .preset-label { + color: #666; + } + + .url-presets a { + color: #0066cc; + text-decoration: none; + } + + .url-presets a:hover { + text-decoration: underline; + } + + /* Iframe Container */ + .world-iframe-container { + width: 100%; + height: calc(100% - 70px); + position: relative; + background: #1a1a2e; + } + + .world-iframe-container iframe { + width: 100%; + height: 100%; + border: none; + background: #fff; + } + + .iframe-loading { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + background: linear-gradient(135deg, #1a1a2e 0%, #16213e 100%); + color: #e2e8f0; + z-index: 10; + } + + .iframe-loading.hidden { + display: none; + } + + .loading-spinner { + width: 50px; + height: 50px; + border: 4px solid rgba(255, 255, 255, 0.1); + border-top-color: #00ff88; + border-radius: 50%; + animation: spin 1s linear infinite; + margin-bottom: 15px; + } + + @keyframes spin { + to { transform: rotate(360deg); } + } + + .loading-hint { + font-size: 10px; + color: #888; + margin-top: 10px; + } + + /* Iframe Error State */ + .iframe-error { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + text-align: center; + color: #ff6b6b; + background: rgba(0, 0, 0, 0.8); + padding: 20px 30px; + border-radius: 8px; + border: 1px solid #ff6b6b; + } + + .iframe-error h3 { + margin-bottom: 10px; + } + + .iframe-error p { + font-size: 11px; + color: #ccc; + } + .stat-row { display: flex; justify-content: space-between; @@ -864,14 +990,14 @@ -