diff --git a/index.js b/index.js index 94efcb6..7d7247d 100644 --- a/index.js +++ b/index.js @@ -620,8 +620,8 @@ async function sendPlotProgression(type) { // This will be used by onMessageReceived to clear the prompt after generation completes isPlotProgression = true; - console.log('[RPG Companion] Calling Generate with continuation and plot prompt'); - console.log('[RPG Companion] Full prompt:', prompt); + // console.log('[RPG Companion] Calling Generate with continuation and plot prompt'); + // console.log('[RPG Companion] Full prompt:', prompt); // Pass the prompt via options with the correct property name // Based on /continue slash command implementation, it uses quiet_prompt (underscore, not camelCase) @@ -3457,8 +3457,18 @@ async function ensureHtmlCleaningRegex() { return; } + // Generate a UUID for the script + const uuidv4 = () => { + return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) { + const r = Math.random() * 16 | 0; + const v = c === 'x' ? r : (r & 0x3 | 0x8); + return v.toString(16); + }); + }; + // Create the regex script object based on the attached file const regexScript = { + id: uuidv4(), scriptName: scriptName, findRegex: '/\\s?<(?!\\!--)(?:\"[^\"]*\"|\'[^\']*\'|[^\'\">])*>/g', replaceString: '', @@ -3473,17 +3483,6 @@ async function ensureHtmlCleaningRegex() { maxDepth: null }; - // Generate a UUID for the script - const uuidv4 = () => { - return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) { - const r = Math.random() * 16 | 0; - const v = c === 'x' ? r : (r & 0x3 | 0x8); - return v.toString(16); - }); - }; - - regexScript.id = uuidv4(); - // Add to global regex scripts if (!Array.isArray(st_extension_settings.regex)) { st_extension_settings.regex = []; diff --git a/style.css b/style.css index 807702f..08e70a3 100644 --- a/style.css +++ b/style.css @@ -42,8 +42,8 @@ body:has(.rpg-panel.rpg-position-left) #sheld { /* Collapsed state - fixed width for collapse */ .rpg-panel.rpg-collapsed { - max-width: 40px !important; - min-width: 40px !important; + max-width: 2.5rem !important; + min-width: 2.5rem !important; left: auto !important; right: auto !important; } @@ -77,8 +77,8 @@ body:has(.rpg-panel.rpg-position-left) #sheld { position: absolute; top: 50%; transform: translateY(-50%); - width: 30px; - height: 80px; + width: 1.875rem; + height: 5rem; background: var(--rpg-accent); border: 2px solid var(--rpg-border); color: var(--rpg-highlight); @@ -88,7 +88,7 @@ body:has(.rpg-panel.rpg-position-left) #sheld { justify-content: center; z-index: 10001; transition: all 0.3s ease; - font-size: 16px; + font-size: 1rem; box-shadow: 0 0 10px var(--rpg-shadow); pointer-events: auto; } @@ -101,14 +101,14 @@ body:has(.rpg-panel.rpg-position-left) #sheld { /* Position collapse button on the left side for right panel */ .rpg-panel.rpg-position-right .rpg-collapse-toggle { - left: -32px; - border-radius: 8px 0 0 8px; + left: -2rem; + border-radius: 0.5em 0 0 0.5em; } /* Position collapse button on the right side for left panel */ .rpg-panel.rpg-position-left .rpg-collapse-toggle { - right: -32px; - border-radius: 0 8px 8px 0; + right: -2rem; + border-radius: 0 0.5em 0.5em 0; } /* Hide collapse button for top position */ @@ -140,7 +140,7 @@ body:has(.rpg-panel.rpg-position-left) #sheld { width: 100%; max-width: 100%; height: auto; - max-height: 300px; + max-height: 18.75rem; border-bottom: 3px solid var(--rpg-border); box-shadow: 0 5px 20px var(--rpg-shadow); } @@ -149,7 +149,7 @@ body:has(.rpg-panel.rpg-position-left) #sheld { .rpg-panel.rpg-position-top .rpg-content-box { display: flex; flex-direction: row; - gap: 15px; + gap: 0.938em; } .rpg-panel.rpg-position-top .rpg-section { @@ -162,27 +162,27 @@ body:has(.rpg-panel.rpg-position-left) #sheld { } .rpg-panel.rpg-position-top .rpg-stats-grid { - gap: 8px; + gap: 0.5em; } .rpg-panel.rpg-position-top .rpg-stat-row { - gap: 8px; + gap: 0.5em; } .rpg-panel.rpg-position-top .rpg-stat-label { - min-width: 90px; + min-width: 5.625rem; } .rpg-panel.rpg-position-top .rpg-stat-bar { - height: 18px; + height: 1.125rem; } /* Mobile Responsiveness */ @media (max-width: 1024px) { .rpg-panel { - width: 320px; + width: 20rem; max-width: 35vw; - min-width: 260px; + min-width: 16.25rem; } } @@ -209,38 +209,38 @@ body:has(.rpg-panel.rpg-position-left) #sheld { } .rpg-panel.rpg-position-top .rpg-stats-title { - font-size: 14px; + font-size: 0.875rem; } .rpg-panel.rpg-position-top .rpg-mood { - font-size: 11px; - padding: 6px; + font-size: 0.688rem; + padding: 0.375em; } .rpg-panel.rpg-position-top .rpg-classic-stats { - margin-top: 8px; - padding: 8px; + margin-top: 0.5em; + padding: 0.5em; } .rpg-panel.rpg-position-top .rpg-classic-stats-title { - font-size: 11px; - margin-bottom: 8px; + font-size: 0.688rem; + margin-bottom: 0.5em; } .rpg-panel.rpg-position-top .rpg-classic-stats-grid { - gap: 6px; + gap: 0.375em; } .rpg-panel.rpg-position-top .rpg-classic-stat { - padding: 4px; + padding: 0.25em; } .rpg-panel.rpg-position-top .rpg-classic-stat-label { - font-size: 9px; + font-size: 0.562rem; } .rpg-panel.rpg-position-top .rpg-classic-stat-value { - font-size: 14px; + font-size: 0.875rem; } /* ============================================ @@ -294,7 +294,7 @@ body:has(.rpg-panel.rpg-position-left) #sheld { @keyframes slideInFromLeft { from { opacity: 0; - transform: translateX(-20px); + transform: translateX(-1.25rem); } to { opacity: 1; @@ -328,21 +328,21 @@ body:has(.rpg-panel.rpg-position-left) #sheld { } .rpg-panel.rpg-position-top .rpg-classic-stat-btn { - padding: 2px; - font-size: 12px; + padding: 0.125em; + font-size: 0.75rem; } .rpg-panel.rpg-position-top .rpg-info-content, .rpg-panel.rpg-position-top .rpg-thoughts-content { - font-size: 12px; - max-height: 150px; + font-size: 0.75rem; + max-height: 9.375rem; } /* Custom Scrollbar */ .rpg-panel::-webkit-scrollbar, #rpg-panel-content::-webkit-scrollbar, .rpg-content-box::-webkit-scrollbar { - width: 8px; + width: 0.5rem; } .rpg-panel::-webkit-scrollbar-track, @@ -355,7 +355,7 @@ body:has(.rpg-panel.rpg-position-left) #sheld { #rpg-panel-content::-webkit-scrollbar-thumb, .rpg-content-box::-webkit-scrollbar-thumb { background: var(--rpg-highlight); - border-radius: 4px; + border-radius: 0.25em; } .rpg-panel::-webkit-scrollbar-thumb:hover, @@ -366,7 +366,7 @@ body:has(.rpg-panel.rpg-position-left) #sheld { /* Game Container - Full height flex container */ .rpg-game-container { - padding: 12px; + padding: 0.75em; display: flex; flex-direction: column; height: 100%; @@ -379,7 +379,7 @@ body:has(.rpg-panel.rpg-position-left) #sheld { flex: 1; display: flex; flex-direction: column; - gap: 6px; + gap: 0.375em; overflow-y: hidden; overflow-x: hidden; min-height: 0; @@ -391,7 +391,7 @@ body:has(.rpg-panel.rpg-position-left) #sheld { justify-content: space-between; align-items: center; margin: 0; - margin-bottom: 8px; + margin-bottom: 0.5em; padding: 0; border-bottom: 2px solid var(--rpg-border); flex-shrink: 0; @@ -399,21 +399,21 @@ body:has(.rpg-panel.rpg-position-left) #sheld { .rpg-panel-header h3 { margin: 0; - font-size: 18px; + font-size: 1.125rem; font-weight: bold; display: flex; align-items: center; - gap: 8px; + gap: 0.5em; color: var(--rpg-highlight); text-shadow: 0 0 8px var(--rpg-highlight); - letter-spacing: 0.5px; + letter-spacing: 0.031em; } .rpg-btn-icon { - padding: 8px 12px; + padding: 0.5em 0.75em; background: var(--rpg-accent); border: 2px solid var(--rpg-border); - border-radius: 8px; + border-radius: 0.5em; cursor: pointer; color: var(--rpg-text); transition: all 0.3s ease; @@ -428,11 +428,11 @@ body:has(.rpg-panel.rpg-position-left) #sheld { /* Loading Indicator - Fixed size */ .rpg-loading { text-align: center; - padding: 15px; + padding: 0.938em; background: var(--rpg-accent); - border-radius: 12px; + border-radius: 0.75em; color: var(--rpg-highlight); - font-size: 14px; + font-size: 0.875rem; font-weight: bold; animation: pulseGlow 1.5s ease-in-out infinite; flex-shrink: 0; @@ -454,12 +454,12 @@ body:has(.rpg-panel.rpg-position-left) #sheld { display: flex; align-items: center; justify-content: center; - gap: 8px; - padding: 8px; + gap: 0.5em; + padding: 0.5em; background: rgba(0, 0, 0, 0.3); - border-radius: 8px; + border-radius: 0.5em; border: 2px solid var(--rpg-border); - font-size: 11px; + font-size: 0.688rem; font-weight: bold; color: var(--rpg-text); cursor: pointer; @@ -475,19 +475,19 @@ body:has(.rpg-panel.rpg-position-left) #sheld { .rpg-dice-display i { color: var(--rpg-highlight); - font-size: 14px; + font-size: 0.875rem; } /* Clear dice roll button */ .rpg-clear-dice-btn { background: rgba(255, 0, 0, 0.2); border: 1px solid rgba(255, 0, 0, 0.4); - border-radius: 4px; + border-radius: 0.25em; color: #ff6b6b; - font-size: 16px; + font-size: 1rem; font-weight: bold; - width: 20px; - height: 20px; + width: 1.25rem; + height: 1.25rem; display: flex; align-items: center; justify-content: center; @@ -512,12 +512,12 @@ body:has(.rpg-panel.rpg-position-left) #sheld { .rpg-content-box { background: linear-gradient(135deg, var(--rpg-accent) 0%, var(--rpg-bg) 100%); border: 2px solid var(--rpg-border); - border-radius: 10px; - padding: 8px; + border-radius: 0.625em; + padding: 0.5em; box-shadow: 0 4px 18px var(--rpg-shadow), inset 0 0 12px rgba(0, 0, 0, 0.3); display: flex; flex-direction: column; - gap: 6px; + gap: 0.375em; flex: 1; min-height: 0; overflow: hidden; @@ -542,9 +542,9 @@ body:has(.rpg-panel.rpg-position-left) #sheld { /* Divider - More compact */ .rpg-divider { width: 100%; - height: 1px; + height: 0.062rem; background: linear-gradient(to right, transparent, var(--rpg-highlight), transparent); - margin: 8px 0; + margin: 0.5em 0; position: relative; flex-shrink: 0; } @@ -614,7 +614,7 @@ body:has(.rpg-panel.rpg-position-left) #sheld { border: 2px solid var(--rpg-highlight); border-radius: clamp(4px, 0.8vh, 8px); padding: clamp(4px, 0.8vh, 8px); - max-width: 200px; + max-width: 12.5rem; max-height: clamp(60px, 8vh, 80px); min-height: clamp(50px, 6vh, 60px); box-shadow: @@ -632,7 +632,7 @@ body:has(.rpg-panel.rpg-position-left) #sheld { left: 50%; transform: translateX(-50%); width: 60%; - height: 2px; + height: 0.125rem; background: var(--rpg-highlight); opacity: 0.5; } @@ -644,7 +644,7 @@ body:has(.rpg-panel.rpg-position-left) #sheld { left: 50%; transform: translateX(-50%); width: 80%; - height: 1px; + height: 0.062rem; background: var(--rpg-highlight); opacity: 0.3; } @@ -660,7 +660,7 @@ body:has(.rpg-panel.rpg-position-left) #sheld { } .rpg-inventory-items::-webkit-scrollbar { - width: 3px; + width: 0.188rem; } .rpg-inventory-items::-webkit-scrollbar-track { @@ -715,28 +715,28 @@ body:has(.rpg-panel.rpg-position-left) #sheld { .rpg-stat-row { display: flex; align-items: center; - gap: 4px; + gap: 0.25em; flex: 1; min-height: 0; } .rpg-stat-label { - min-width: 65px; + min-width: 4.062rem; font-size: clamp(7px, 1.4vh, 9px); font-weight: 600; text-align: left; color: var(--rpg-text); text-transform: uppercase; - letter-spacing: 0.3px; + letter-spacing: 0.019em; } .rpg-stat-bar { flex: 1; - height: 12px; - min-height: 8px; - max-height: 16px; + height: 0.75rem; + min-height: 0.5rem; + max-height: 1rem; position: relative; - border-radius: 6px; + border-radius: 0.375em; overflow: hidden; box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.5); border: 1px solid rgba(255, 255, 255, 0.1); @@ -753,9 +753,9 @@ body:has(.rpg-panel.rpg-position-left) #sheld { .rpg-stat-value { color: #fff; - font-size: 9px; + font-size: 0.562rem; font-weight: bold; - min-width: 30px; + min-width: 1.875rem; text-align: right; text-shadow: 0 1px 2px rgba(0, 0, 0, 0.8); } @@ -765,17 +765,17 @@ body:has(.rpg-panel.rpg-position-left) #sheld { margin-top: 0 !important; display: flex; align-items: center; - gap: 6px; - font-size: 9px; - padding: 4px 6px; + gap: 0.375em; + font-size: 0.562rem; + padding: 0.25em 0.375em; background: rgba(0, 0, 0, 0.3); - border-radius: 4px; + border-radius: 0.25em; border: 1px solid var(--rpg-border); flex-shrink: 0; } .rpg-mood-emoji { - font-size: 16px; + font-size: 1rem; flex-shrink: 0; filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.5)); } @@ -798,12 +798,12 @@ body:has(.rpg-panel.rpg-position-left) #sheld { .rpg-classic-stats-title { text-align: center; - font-size: 9px; + font-size: 0.562rem; font-weight: bold; text-transform: uppercase; - letter-spacing: 0.6px; + letter-spacing: 0.037em; color: var(--rpg-highlight); - margin-bottom: 4px; + margin-bottom: 0.25em; flex-shrink: 0; } @@ -824,7 +824,7 @@ body:has(.rpg-panel.rpg-position-left) #sheld { gap: clamp(1px, 0.2vh, 2px); padding: clamp(4px, 0.6vh, 6px); background: rgba(0, 0, 0, 0.3); - border-radius: 4px; + border-radius: 0.25em; border: 1px solid var(--rpg-border); box-sizing: border-box; min-height: 0; @@ -835,7 +835,7 @@ body:has(.rpg-panel.rpg-position-left) #sheld { font-size: clamp(7px, 0.9vh, 8px); font-weight: bold; text-transform: uppercase; - letter-spacing: 0.1px; + letter-spacing: 0.006em; color: var(--rpg-text); line-height: 1; flex-shrink: 0; @@ -894,16 +894,16 @@ body:has(.rpg-panel.rpg-position-left) #sheld { ============================================ */ .rpg-info-header { - font-size: 14px; + font-size: 0.875rem; font-weight: bold; - margin-bottom: 10px; + margin-bottom: 0.625em; color: var(--rpg-highlight); text-shadow: 0 0 8px var(--rpg-highlight); flex-shrink: 0; } .rpg-info-content { - font-size: 12px; + font-size: 0.75rem; line-height: 1.5; text-align: left; flex: 1; @@ -917,14 +917,14 @@ body:has(.rpg-panel.rpg-position-left) #sheld { .rpg-info-section { background: rgba(0, 0, 0, 0.2); border: 2px solid var(--rpg-border); - border-radius: 12px; - padding: 6px; + border-radius: 0.75em; + padding: 0.375em; margin-bottom: 0; flex: 1; min-height: 0; display: flex; flex-direction: column; - gap: 4px; + gap: 0.25em; align-items: stretch; width: 100%; overflow-y: auto; @@ -933,7 +933,7 @@ body:has(.rpg-panel.rpg-position-left) #sheld { .rpg-dashboard { display: flex; - gap: 4px; + gap: 0.25em; flex: 1; min-height: 0; } @@ -965,8 +965,8 @@ body:has(.rpg-panel.rpg-position-left) #sheld { .rpg-dashboard-widget { background: rgba(0, 0, 0, 0.5); border: 2px solid var(--rpg-border); - border-radius: 6px; - padding: 4px; + border-radius: 0.375em; + padding: 0.25em; transition: transform 0.2s ease, box-shadow 0.2s ease; display: flex; flex-direction: column; @@ -976,7 +976,7 @@ body:has(.rpg-panel.rpg-position-left) #sheld { } .rpg-dashboard-widget:hover { - transform: translateY(-2px); + transform: translateY(-0.125rem); box-shadow: 0 4px 12px var(--rpg-shadow); } @@ -987,7 +987,7 @@ body:has(.rpg-panel.rpg-position-left) #sheld { /* Calendar Widget */ .rpg-calendar-widget { - padding: 3px; + padding: 0.188em; } .rpg-calendar-top { @@ -995,7 +995,7 @@ body:has(.rpg-panel.rpg-position-left) #sheld { color: var(--rpg-bg); font-size: clamp(6px, 1.2vh, 8px); font-weight: bold; - padding: 2px 6px; + padding: 0.125em 0.375em; border-radius: 3px 3px 0 0; width: 100%; text-align: center; @@ -1006,7 +1006,7 @@ body:has(.rpg-panel.rpg-position-left) #sheld { color: var(--rpg-text); font-size: clamp(8px, 1.5vw, 14px); font-weight: bold; - padding: 6px; + padding: 0.375em; width: 100%; text-align: center; border: 2px solid var(--rpg-highlight); @@ -1018,10 +1018,10 @@ body:has(.rpg-panel.rpg-position-left) #sheld { } .rpg-calendar-year { - font-size: 7px; + font-size: 0.438rem; color: var(--rpg-text); opacity: 0.7; - margin-top: 1px; + margin-top: 0.062em; } /* Weather Widget Icon */ @@ -1031,12 +1031,12 @@ body:has(.rpg-panel.rpg-position-left) #sheld { } .rpg-weather-forecast { - font-size: 7px; + font-size: 0.438rem; text-align: center; margin: 0; font-weight: 600; text-transform: uppercase; - letter-spacing: 0.2px; + letter-spacing: 0.013em; opacity: 0.85; line-height: 1; word-wrap: break-word; @@ -1049,13 +1049,13 @@ body:has(.rpg-panel.rpg-position-left) #sheld { /* Temperature Widget - Thermometer */ .rpg-temp-widget { - gap: 3px; + gap: 0.188em; } .rpg-thermometer { position: relative; - width: 20px; - height: 40px; + width: 1.25rem; + height: 2.5rem; display: flex; flex-direction: column; align-items: center; @@ -1063,11 +1063,11 @@ body:has(.rpg-panel.rpg-position-left) #sheld { .rpg-thermometer-tube { position: relative; - width: 8px; - height: 28px; + width: 0.5rem; + height: 1.75rem; background: rgba(255, 255, 255, 0.1); border: 2px solid var(--rpg-border); - border-radius: 10px 10px 0 0; + border-radius: 0.625em 0.625em 0 0; overflow: hidden; display: flex; align-items: flex-end; @@ -1077,14 +1077,14 @@ body:has(.rpg-panel.rpg-position-left) #sheld { width: 100%; background: linear-gradient(to top, #e94560, #ff6b6b); transition: height 0.5s ease; - border-radius: 8px 8px 0 0; + border-radius: 0.5em 0.5em 0 0; } .rpg-thermometer-bulb { position: absolute; bottom: 0; - width: 14px; - height: 14px; + width: 0.875rem; + height: 0.875rem; background: var(--rpg-highlight); border: 2px solid var(--rpg-border); border-radius: 50%; @@ -1100,12 +1100,12 @@ body:has(.rpg-panel.rpg-position-left) #sheld { /* Clock Widget */ .rpg-clock-widget { - gap: 3px; + gap: 0.188em; } .rpg-clock { - width: 42px; - height: 42px; + width: 2.625rem; + height: 2.625rem; border-radius: 50%; background: rgba(0, 0, 0, 0.4); border: 3px solid var(--rpg-border); @@ -1130,22 +1130,22 @@ body:has(.rpg-panel.rpg-position-left) #sheld { } .rpg-clock-hour { - width: 3px; - height: 12px; - margin-left: -1.5px; + width: 0.188rem; + height: 0.75rem; + margin-left: -0.094em; opacity: 0.9; } .rpg-clock-minute { - width: 2px; - height: 16px; - margin-left: -1px; + width: 0.125rem; + height: 1rem; + margin-left: -0.062em; } .rpg-clock-center { position: absolute; - width: 5px; - height: 5px; + width: 0.312rem; + height: 0.312rem; background: var(--rpg-highlight); border-radius: 50%; top: 50%; @@ -1155,7 +1155,7 @@ body:has(.rpg-panel.rpg-position-left) #sheld { } .rpg-time-value { - font-size: 8px; + font-size: 0.5rem; font-weight: bold; color: var(--rpg-text); } @@ -1163,7 +1163,7 @@ body:has(.rpg-panel.rpg-position-left) #sheld { /* Location Widget - Map */ .rpg-map-bg { width: 100%; - height: 30px; + height: 1.875rem; margin: 0; margin-bottom: 0 !important; background: @@ -1175,18 +1175,18 @@ body:has(.rpg-panel.rpg-position-left) #sheld { background-position: 0 0, 0 3px, 3px -3px, -3px 0px; background-color: rgba(0, 0, 0, 0.3); border: 2px solid var(--rpg-border); - border-radius: 4px; + border-radius: 0.25em; display: flex; align-items: center; justify-content: center; position: relative; overflow: hidden; flex-shrink: 0; - margin-bottom: 3px; + margin-bottom: 0.188em; } .rpg-map-marker { - font-size: 16px; + font-size: 1rem; filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.8)); animation: markerPulse 2s ease-in-out infinite; } @@ -1202,7 +1202,7 @@ body:has(.rpg-panel.rpg-position-left) #sheld { color: var(--rpg-text); text-align: center; line-height: 1.2; - padding: 2px 4px; + padding: 0.125em 0.25em; margin: 0; word-wrap: break-word; overflow-wrap: break-word; @@ -1213,7 +1213,7 @@ body:has(.rpg-panel.rpg-position-left) #sheld { .rpg-character-status { display: flex; flex-direction: column; - gap: 4px; + gap: 0.25em; margin: 0; padding: 0; flex-shrink: 0; @@ -1222,17 +1222,17 @@ body:has(.rpg-panel.rpg-position-left) #sheld { .rpg-character-status-card { display: flex; align-items: center; - gap: 8px; - padding: 4px 6px; + gap: 0.5em; + padding: 0.25em 0.375em; background: rgba(0, 0, 0, 0.3); border-left: 3px solid var(--rpg-highlight); - border-radius: 4px; + border-radius: 0.25em; transition: all 0.2s ease; } .rpg-character-status-card:hover { background: rgba(0, 0, 0, 0.5); - transform: translateX(3px); + transform: translateX(0.188rem); } .rpg-char-emoji { @@ -1250,7 +1250,7 @@ body:has(.rpg-panel.rpg-position-left) #sheld { font-size: clamp(8px, 1.5vh, 10px); font-weight: bold; color: var(--rpg-highlight); - margin-bottom: 1px; + margin-bottom: 0.062em; } .rpg-char-traits { @@ -1260,17 +1260,17 @@ body:has(.rpg-panel.rpg-position-left) #sheld { line-height: 1.2; }/* Old info line styles (legacy) */ .rpg-info-line { - margin: 6px 0; - padding: 6px 10px; + margin: 0.375em 0; + padding: 0.375em 0.625em; background: rgba(0, 0, 0, 0.2); border-left: 2px solid var(--rpg-highlight); - border-radius: 4px; + border-radius: 0.25em; transition: all 0.3s ease; } .rpg-info-line:hover { background: rgba(0, 0, 0, 0.4); - transform: translateX(5px); + transform: translateX(0.312rem); } /* ============================================ @@ -1287,9 +1287,9 @@ body:has(.rpg-panel.rpg-position-left) #sheld { } .rpg-thoughts-header { - font-size: 14px; + font-size: 0.875rem; font-weight: bold; - margin-bottom: 10px; + margin-bottom: 0.625em; color: var(--rpg-highlight); text-shadow: 0 0 8px var(--rpg-highlight); flex-shrink: 0; @@ -1297,8 +1297,8 @@ body:has(.rpg-panel.rpg-position-left) #sheld { .rpg-thoughts-content { position: relative; - padding: 8px; - border-radius: 8px; + padding: 0.5em; + border-radius: 0.5em; border-left: 3px solid var(--rpg-highlight); box-shadow: inset 0 0 8px rgba(0, 0, 0, 0.3); text-align: left; @@ -1316,11 +1316,11 @@ body:has(.rpg-panel.rpg-position-left) #sheld { .rpg-thought-item { display: flex; align-items: flex-start; - gap: 10px; - padding: 8px; - margin-bottom: 8px; + gap: 0.625em; + padding: 0.5em; + margin-bottom: 0.5em; background: rgba(0, 0, 0, 0.3); - border-radius: 6px; + border-radius: 0.375em; width: 100%; /* Ensure items take full width */ box-sizing: border-box; /* Include padding in width calculation */ } @@ -1346,11 +1346,11 @@ body:has(.rpg-panel.rpg-position-left) #sheld { /* Thought bubbles - Left side, ascending size from bottom-left to top-right */ .rpg-thought-bubbles { position: absolute; - bottom: -4px; - left: -8px; + bottom: -0.25rem; + left: -0.5rem; display: flex; flex-direction: column; - gap: 2px; + gap: 0.125em; align-items: flex-start; } @@ -1361,14 +1361,14 @@ body:has(.rpg-panel.rpg-position-left) #sheld { } .rpg-bubble-1 { - width: 8px; - height: 8px; + width: 0.5rem; + height: 0.5rem; } .rpg-bubble-2 { - width: 6px; - height: 6px; - margin-left: 2px; + width: 0.375rem; + height: 0.375rem; + margin-left: 0.125em; } /* Thought content */ @@ -1381,9 +1381,9 @@ body:has(.rpg-panel.rpg-position-left) #sheld { font-weight: bold; color: var(--rpg-highlight); font-size: clamp(8px, 1.5vh, 10px); - margin-bottom: 3px; + margin-bottom: 0.188em; text-transform: uppercase; - letter-spacing: 0.5px; + letter-spacing: 0.031em; } .rpg-thought-name::before, @@ -1427,8 +1427,8 @@ body:has(.rpg-panel.rpg-position-left) #sheld { z-index: 2; display: flex; align-items: flex-start; - gap: 8px; - font-size: 12px; + gap: 0.5em; + font-size: 0.75rem; font-style: italic; line-height: 1.4; } @@ -1471,8 +1471,8 @@ body:has(.rpg-panel.rpg-position-left) #sheld { /* Relationship badge in top-right corner */ .rpg-relationship-badge { position: absolute; - top: -2px; - right: -2px; + top: -0.125rem; + right: -0.125rem; background: var(--rpg-bg); border: 1px solid var(--rpg-highlight); border-radius: 50%; @@ -1513,7 +1513,7 @@ body:has(.rpg-panel.rpg-position-left) #sheld { color: var(--rpg-highlight); font-size: clamp(9px, 1.5vh, 12px); text-transform: uppercase; - letter-spacing: 0.5px; + letter-spacing: 0.031em; white-space: nowrap; /* Prevent name from wrapping */ overflow: hidden; text-overflow: ellipsis; @@ -1561,7 +1561,7 @@ body:has(.rpg-panel.rpg-position-left) #sheld { cursor: text; transition: all 0.2s ease; border-radius: 2px; - padding: 1px 2px; + padding: 0.062em 0.125em; } .rpg-editable:hover, @@ -1602,7 +1602,7 @@ body:has(.rpg-panel.rpg-position-left) #sheld { .rpg-edit-button:hover { background: var(--rpg-highlight); color: var(--rpg-bg); - transform: translateY(-1px); + transform: translateY(-0.062rem); box-shadow: 0 2px 8px var(--rpg-highlight); } @@ -1618,22 +1618,22 @@ body:has(.rpg-panel.rpg-position-left) #sheld { /* Settings Styling */ .rpg-settings { - margin-top: 10px; - padding-top: 8px; + margin-top: 0.625em; + padding-top: 0.5em; border-top: 1px solid #444; } .rpg-settings summary { cursor: pointer; font-weight: bold; - padding: 6px; + padding: 0.375em; background: rgba(0, 0, 0, 0.2); - border-radius: 4px; - margin-bottom: 8px; + border-radius: 0.25em; + margin-bottom: 0.5em; display: flex; align-items: center; - gap: 6px; - font-size: 12px; + gap: 0.375em; + font-size: 0.75rem; } .rpg-settings summary:hover { @@ -1641,50 +1641,50 @@ body:has(.rpg-panel.rpg-position-left) #sheld { } .rpg-settings-content { - padding: 8px; + padding: 0.5em; } .rpg-settings-content label { display: block; - margin: 6px 0; + margin: 0.375em 0; } .rpg-setting-row { - margin: 8px 0; + margin: 0.5em 0; } .rpg-setting-row label { display: block; - margin-bottom: 3px; - font-size: 11px; + margin-bottom: 0.188em; + font-size: 0.688rem; } .rpg-setting-row input[type="number"] { width: 100%; - padding: 4px; + padding: 0.25em; border: 1px solid #444; border-radius: 3px; background: rgba(0, 0, 0, 0.3); color: inherit; - font-size: 11px; + font-size: 0.688rem; } .rpg-setting-row small { display: block; - margin-top: 3px; + margin-top: 0.188em; color: #888; - font-size: 10px; + font-size: 0.625rem; } #rpg-manual-update { width: 100%; - margin-top: 8px; - padding: 6px; + margin-top: 0.5em; + padding: 0.375em; display: flex; align-items: center; justify-content: center; - gap: 6px; - font-size: 12px; + gap: 0.375em; + font-size: 0.75rem; } /* Responsive adjustments */ @@ -1694,8 +1694,8 @@ body:has(.rpg-panel.rpg-position-left) #sheld { } .rpg-stat-label { - min-width: 80px; - font-size: 12px; + min-width: 5rem; + font-size: 0.75rem; } } @@ -1716,40 +1716,40 @@ body:has(.rpg-panel.rpg-position-left) #sheld { SETTINGS SECTION ============================================ */ .rpg-settings { - margin-top: 15px; - padding-top: 15px; + margin-top: 0.938em; + padding-top: 0.938em; border-top: 2px solid var(--rpg-border); } .rpg-settings summary { cursor: pointer; font-weight: bold; - padding: 12px; + padding: 0.75em; background: var(--rpg-accent); border: 2px solid var(--rpg-border); - border-radius: 10px; - margin-bottom: 15px; + border-radius: 0.625em; + margin-bottom: 0.938em; display: flex; align-items: center; - gap: 10px; + gap: 0.625em; transition: all 0.3s ease; } .rpg-settings summary:hover { background: var(--rpg-highlight); border-color: var(--rpg-highlight); - transform: translateX(5px); + transform: translateX(0.312rem); } .rpg-settings-content { - padding: 15px; + padding: 0.938em; background: var(--rpg-accent); - border-radius: 10px; + border-radius: 0.625em; } .rpg-settings-group { - margin-bottom: 20px; - padding-bottom: 15px; + margin-bottom: 1.25em; + padding-bottom: 0.938em; border-bottom: 1px solid var(--rpg-border); } @@ -1758,34 +1758,34 @@ body:has(.rpg-panel.rpg-position-left) #sheld { } .rpg-settings-group h4 { - margin: 0 0 12px 0; - font-size: 16px; + margin: 0 0 0.75em 0; + font-size: 1rem; color: var(--rpg-highlight); display: flex; align-items: center; - gap: 8px; + gap: 0.5em; } .rpg-setting-row { - margin: 12px 0; + margin: 0.75em 0; } .rpg-setting-row label { display: block; - margin-bottom: 6px; - font-size: 13px; + margin-bottom: 0.375em; + font-size: 0.812rem; font-weight: 600; } .rpg-select, .rpg-input { width: 100%; - padding: 8px; + padding: 0.5em; border: 2px solid var(--rpg-border); - border-radius: 6px; + border-radius: 0.375em; background: var(--rpg-bg); color: var(--rpg-text); - font-size: 14px; + font-size: 0.875rem; transition: all 0.3s ease; } @@ -1798,10 +1798,10 @@ body:has(.rpg-panel.rpg-position-left) #sheld { .rpg-setting-row input[type="color"] { width: 100%; - height: 40px; - padding: 4px; + height: 2.5rem; + padding: 0.25em; border: 2px solid var(--rpg-border); - border-radius: 6px; + border-radius: 0.375em; background: var(--rpg-bg); cursor: pointer; transition: all 0.3s ease; @@ -1813,25 +1813,25 @@ body:has(.rpg-panel.rpg-position-left) #sheld { .rpg-setting-row small { display: block; - margin-top: 4px; + margin-top: 0.25em; color: #999; - font-size: 11px; + font-size: 0.688rem; font-style: italic; } .rpg-custom-colors { - margin-top: 10px; - padding: 15px; + margin-top: 0.625em; + padding: 0.938em; background: rgba(0, 0, 0, 0.2); - border-radius: 8px; + border-radius: 0.5em; border: 1px solid var(--rpg-border); } .checkbox_label { display: flex; align-items: center; - gap: 8px; - margin: 10px 0; + gap: 0.5em; + margin: 0.625em 0; cursor: pointer; transition: all 0.3s ease; } @@ -1842,18 +1842,18 @@ body:has(.rpg-panel.rpg-position-left) #sheld { .rpg-btn-primary { width: 100%; - padding: 12px; + padding: 0.75em; background: var(--rpg-accent); border: 2px solid var(--rpg-border); - border-radius: 10px; + border-radius: 0.625em; color: var(--rpg-text); - font-size: 15px; + font-size: 0.938rem; font-weight: bold; cursor: pointer; display: flex; align-items: center; justify-content: center; - gap: 10px; + gap: 0.625em; transition: all 0.3s ease; box-shadow: 0 4px 15px var(--rpg-shadow); } @@ -1861,7 +1861,7 @@ body:has(.rpg-panel.rpg-position-left) #sheld { .rpg-btn-primary:hover { background: var(--rpg-highlight); border-color: var(--rpg-highlight); - transform: translateY(-2px); + transform: translateY(-0.125rem); box-shadow: 0 6px 20px var(--rpg-shadow); } @@ -1872,18 +1872,18 @@ body:has(.rpg-panel.rpg-position-left) #sheld { /* Clear Cache Button - Danger style */ .rpg-btn-clear-cache { width: 100%; - padding: 10px; + padding: 0.625em; background: rgba(220, 53, 69, 0.2); border: 2px solid rgba(220, 53, 69, 0.5); - border-radius: 8px; + border-radius: 0.5em; color: #ff6b6b; - font-size: 13px; + font-size: 0.812rem; font-weight: 600; cursor: pointer; display: flex; align-items: center; justify-content: center; - gap: 8px; + gap: 0.5em; transition: all 0.3s ease; } @@ -1891,7 +1891,7 @@ body:has(.rpg-panel.rpg-position-left) #sheld { background: rgba(220, 53, 69, 0.3); border-color: rgba(220, 53, 69, 0.8); color: #ff8787; - transform: translateY(-1px); + transform: translateY(-0.062rem); } .rpg-btn-clear-cache:active { @@ -1993,7 +1993,7 @@ body:has(.rpg-panel.rpg-position-left) #sheld { .rpg-panel[data-theme="fantasy"] .rpg-divider::after { content: '❦'; - font-size: 16px; + font-size: 1rem; } .rpg-panel[data-theme="fantasy"] .rpg-thoughts-content::before { @@ -2045,12 +2045,12 @@ body:has(.rpg-panel.rpg-position-left) #sheld { .rpg-panel[data-theme="cyberpunk"] .rpg-thoughts-header { text-shadow: 0 0 10px #ff2a6d, 0 0 20px #05d9e8, 0 0 30px #ff2a6d; font-family: 'Courier New', monospace; - letter-spacing: 2px; + letter-spacing: 0.125em; } .rpg-panel[data-theme="cyberpunk"] .rpg-divider { background: linear-gradient(to right, transparent, #05d9e8, #ff2a6d, #05d9e8, transparent); - height: 3px; + height: 0.188rem; } .rpg-panel[data-theme="cyberpunk"] .rpg-thoughts-content::before { @@ -2076,12 +2076,12 @@ body:has(.rpg-panel.rpg-position-left) #sheld { } .rpg-user-portrait { - width: 60px; - height: 60px; + width: 3.75rem; + height: 3.75rem; } .rpg-stats-title { - font-size: 16px; + font-size: 1rem; } } @@ -2091,7 +2091,7 @@ body:has(.rpg-panel.rpg-position-left) #sheld { @keyframes fadeIn { from { opacity: 0; - transform: translateY(10px); + transform: translateY(0.625rem); } to { opacity: 1; @@ -2142,10 +2142,10 @@ body:has(.rpg-panel.rpg-position-left) #sheld { .rpg-dice-popup-content { position: relative; width: 90%; - max-width: 500px; + max-width: 31.25rem; background: var(--rpg-bg); border: 3px solid var(--rpg-border); - border-radius: 15px; + border-radius: 0.938em; box-shadow: 0 10px 50px rgba(0, 0, 0, 0.9); overflow: hidden; animation: popupSlideIn 0.3s ease-out; @@ -2155,7 +2155,7 @@ body:has(.rpg-panel.rpg-position-left) #sheld { @keyframes popupSlideIn { from { opacity: 0; - transform: translateY(-50px) scale(0.9); + transform: translateY(-3.125rem) scale(0.9); } to { opacity: 1; @@ -2167,36 +2167,36 @@ body:has(.rpg-panel.rpg-position-left) #sheld { display: flex; justify-content: space-between; align-items: center; - padding: 20px; + padding: 1.25em; background: var(--rpg-accent); border-bottom: 2px solid var(--rpg-border); } .rpg-dice-popup-header h3 { margin: 0; - font-size: 20px; + font-size: 1.25rem; color: var(--rpg-highlight); display: flex; align-items: center; - gap: 10px; + gap: 0.625em; } .rpg-dice-popup-body { - padding: 25px; + padding: 1.562em; } .rpg-dice-selector-container { - padding: 20px; + padding: 1.25em; background: rgba(0, 0, 0, 0.3); - border-radius: 12px; + border-radius: 0.75em; border: 2px solid var(--rpg-border); - margin-bottom: 20px; + margin-bottom: 1.25em; } .rpg-dice-selector { display: flex; - gap: 15px; - margin-bottom: 15px; + gap: 0.938em; + margin-bottom: 0.938em; } .rpg-dice-input-group { @@ -2205,8 +2205,8 @@ body:has(.rpg-panel.rpg-position-left) #sheld { .rpg-dice-input-group label { display: block; - margin-bottom: 8px; - font-size: 13px; + margin-bottom: 0.5em; + font-size: 0.812rem; font-weight: bold; color: var(--rpg-text); } @@ -2214,12 +2214,12 @@ body:has(.rpg-panel.rpg-position-left) #sheld { .rpg-dice-input-group input, .rpg-dice-input-group select { width: 100%; - padding: 10px; + padding: 0.625em; border: 2px solid var(--rpg-border); - border-radius: 8px; + border-radius: 0.5em; background: var(--rpg-accent); color: var(--rpg-text); - font-size: 16px; + font-size: 1rem; font-weight: bold; text-align: center; transition: all 0.3s ease; @@ -2235,12 +2235,12 @@ body:has(.rpg-panel.rpg-position-left) #sheld { #rpg-dice-roll-btn { width: 100%; - padding: 12px 20px; + padding: 0.75em 1.25em; background: linear-gradient(135deg, var(--rpg-highlight), var(--rpg-accent)); border: 2px solid var(--rpg-highlight); - border-radius: 10px; + border-radius: 0.625em; color: var(--rpg-text); - font-size: 16px; + font-size: 1rem; font-weight: bold; cursor: pointer; transition: all 0.3s ease; @@ -2248,11 +2248,11 @@ body:has(.rpg-panel.rpg-position-left) #sheld { display: flex; align-items: center; justify-content: center; - gap: 10px; + gap: 0.625em; } #rpg-dice-roll-btn:hover { - transform: translateY(-2px); + transform: translateY(-0.125rem); box-shadow: 0 6px 20px var(--rpg-highlight); background: var(--rpg-highlight); } @@ -2264,11 +2264,11 @@ body:has(.rpg-panel.rpg-position-left) #sheld { .rpg-dice-animation { text-align: center; - padding: 40px 20px; + padding: 2.5em 1.25em; } .rpg-dice-rolling i { - font-size: 80px; + font-size: 5rem; color: var(--rpg-highlight); animation: diceRoll 0.8s ease-in-out infinite; } @@ -2289,8 +2289,8 @@ body:has(.rpg-panel.rpg-position-left) #sheld { } .rpg-dice-rolling-text { - margin-top: 20px; - font-size: 18px; + margin-top: 1.25em; + font-size: 1.125rem; font-weight: bold; color: var(--rpg-highlight); animation: pulseGlow 1s ease-in-out infinite; @@ -2298,22 +2298,22 @@ body:has(.rpg-panel.rpg-position-left) #sheld { .rpg-dice-result { text-align: center; - padding: 30px 20px; + padding: 1.875em 1.25em; background: rgba(0, 0, 0, 0.3); - border-radius: 12px; + border-radius: 0.75em; border: 2px solid var(--rpg-border); } .rpg-dice-result-label { - font-size: 14px; + font-size: 0.875rem; color: var(--rpg-text); - margin-bottom: 10px; + margin-bottom: 0.625em; text-transform: uppercase; - letter-spacing: 1px; + letter-spacing: 0.062em; } .rpg-dice-result-value { - font-size: 60px; + font-size: 3.75rem; font-weight: bold; color: var(--rpg-highlight); text-shadow: 0 0 20px var(--rpg-highlight); @@ -2335,22 +2335,22 @@ body:has(.rpg-panel.rpg-position-left) #sheld { } .rpg-dice-result-details { - margin-top: 15px; - font-size: 14px; + margin-top: 0.938em; + font-size: 0.875rem; color: var(--rpg-text); opacity: 0.8; } .rpg-dice-save-btn { - margin-top: 20px; + margin-top: 1.25em; width: 100%; - max-width: 200px; - padding: 10px 20px; + max-width: 12.5rem; + padding: 0.625em 1.25em; background: linear-gradient(135deg, #28a745, #20c997); border: 2px solid #28a745; - border-radius: 10px; + border-radius: 0.625em; color: white; - font-size: 15px; + font-size: 0.938rem; font-weight: bold; cursor: pointer; transition: all 0.3s ease; @@ -2358,11 +2358,11 @@ body:has(.rpg-panel.rpg-position-left) #sheld { display: inline-flex; align-items: center; justify-content: center; - gap: 8px; + gap: 0.5em; } .rpg-dice-save-btn:hover { - transform: translateY(-2px); + transform: translateY(-0.125rem); box-shadow: 0 6px 20px rgba(40, 167, 69, 0.6); background: #28a745; } @@ -2401,9 +2401,9 @@ body:has(.rpg-panel.rpg-position-left) #sheld { HTML PROMPT TOGGLE ============================================ */ .rpg-toggle-container { - padding: 8px; + padding: 0.5em; background: rgba(0, 0, 0, 0.2); - border-radius: 5px; + border-radius: 0.312em; margin: 0; } @@ -2415,43 +2415,43 @@ body:has(.rpg-panel.rpg-position-left) #sheld { } .rpg-toggle-label input[type="checkbox"] { - margin: 0 8px 0 0; + margin: 0 0.5em 0 0; cursor: pointer; } .rpg-toggle-label i { - margin-right: 6px; + margin-right: 0.375em; } /* ============================================ MANUAL UPDATE BUTTON ============================================ */ .rpg-manual-update-btn { - width: 353px; - height: 33px; + width: 100%; + height: 2.5rem; margin: 0 !important; margin-top: 0 !important; margin-bottom: 0 !important; padding: 0; background: linear-gradient(135deg, var(--rpg-highlight), var(--rpg-accent)); border: 2px solid var(--rpg-highlight); - border-radius: 8px; + border-radius: 0.5em; color: var(--rpg-text); - font-size: 12px; + font-size: 0.75rem; font-weight: 600; cursor: pointer; transition: all 0.3s ease; display: flex; align-items: center; justify-content: center; - gap: 6px; + gap: 0.375em; box-shadow: 0 4px 15px rgba(0, 0, 0, 0.3); flex-shrink: 0; box-sizing: border-box; } .rpg-manual-update-btn:hover { - transform: translateY(-2px); + transform: translateY(-0.125rem); box-shadow: 0 6px 20px var(--rpg-highlight); background: var(--rpg-highlight); } @@ -2465,22 +2465,22 @@ body:has(.rpg-panel.rpg-position-left) #sheld { SETTINGS BUTTON ============================================ */ .rpg-btn-settings { - width: 353px; - height: 33px; + width: 100%; + height: 2.5rem; margin: 0; padding: 0; background: var(--rpg-accent); border: 2px solid var(--rpg-border); - border-radius: 8px; + border-radius: 0.5em; color: var(--rpg-text); - font-size: 12px; + font-size: 0.75rem; font-weight: 600; cursor: pointer; transition: all 0.3s ease; display: flex; align-items: center; justify-content: center; - gap: 6px; + gap: 0.375em; flex-shrink: 0; box-shadow: 0 4px 15px rgba(0, 0, 0, 0.3); box-sizing: border-box; @@ -2489,7 +2489,7 @@ body:has(.rpg-panel.rpg-position-left) #sheld { .rpg-btn-settings:hover { background: var(--rpg-highlight); border-color: var(--rpg-highlight); - transform: translateY(-2px); + transform: translateY(-0.125rem); box-shadow: 0 4px 12px rgba(0, 0, 0, 0.4); } @@ -2526,8 +2526,8 @@ body:has(.rpg-panel.rpg-position-left) #sheld { position: relative; background: var(--rpg-bg); border: 3px solid var(--rpg-border); - border-radius: 15px; - max-width: 500px; + border-radius: 0.938em; + max-width: 31.25rem; width: 90%; max-height: 80vh; overflow: hidden; @@ -2542,33 +2542,33 @@ body:has(.rpg-panel.rpg-position-left) #sheld { display: flex; align-items: center; justify-content: space-between; - padding: 15px 20px; + padding: 0.938em 1.25em; background: var(--rpg-accent); border-bottom: 1px solid var(--rpg-border); } .rpg-settings-popup-header h3 { margin: 0; - font-size: 18px; + font-size: 1.125rem; color: var(--rpg-highlight); display: flex; align-items: center; - gap: 10px; + gap: 0.625em; } .rpg-popup-close { background: transparent; border: none; color: var(--rpg-text); - font-size: 24px; + font-size: 1.5rem; cursor: pointer; padding: 0; - width: 30px; - height: 30px; + width: 1.875rem; + height: 1.875rem; display: flex; align-items: center; justify-content: center; - border-radius: 4px; + border-radius: 0.25em; transition: all 0.2s ease; } @@ -2578,14 +2578,14 @@ body:has(.rpg-panel.rpg-position-left) #sheld { } .rpg-settings-popup-body { - padding: 20px; + padding: 1.25em; overflow-y: auto; flex: 1; } .rpg-settings-group { - margin-bottom: 20px; - padding-bottom: 20px; + margin-bottom: 1.25em; + padding-bottom: 1.25em; border-bottom: 1px solid var(--rpg-border); } @@ -2594,12 +2594,12 @@ body:has(.rpg-panel.rpg-position-left) #sheld { } .rpg-settings-group h4 { - margin: 0 0 15px 0; - font-size: 15px; + margin: 0 0 0.938em 0; + font-size: 0.938rem; color: var(--rpg-highlight); display: flex; align-items: center; - gap: 8px; + gap: 0.5em; } /* Apply theme to settings popup */ @@ -2637,7 +2637,7 @@ body:has(.rpg-panel.rpg-position-left) #sheld { position: fixed; z-index: 1000; /* Lower z-index to stay below dropdown menus */ pointer-events: auto; - max-width: 350px; + max-width: 21.875rem; transform: translateY(-50%); animation: thoughtPanelFadeIn 0.4s ease-out; } @@ -2645,15 +2645,15 @@ body:has(.rpg-panel.rpg-position-left) #sheld { /* Close button */ .rpg-thought-close { position: absolute; - top: -8px; - right: -8px; - width: 24px; - height: 24px; + top: -0.5rem; + right: -0.5rem; + width: 1.5rem; + height: 1.5rem; border-radius: 50%; background: var(--rpg-highlight, #e94560); color: white; border: 2px solid var(--rpg-bg, rgba(30, 30, 50, 0.95)); - font-size: 18px; + font-size: 1.125rem; line-height: 1; cursor: pointer; display: flex; @@ -2673,15 +2673,15 @@ body:has(.rpg-panel.rpg-position-left) #sheld { #rpg-thought-icon { position: fixed; z-index: 1000; /* Lower z-index to stay below dropdown menus */ - width: 36px; - height: 36px; + width: 2.25rem; + height: 2.25rem; border-radius: 50%; background: var(--rpg-bg, rgba(30, 30, 50, 0.95)); border: 2px solid var(--rpg-highlight, #e94560); display: flex; align-items: center; justify-content: center; - font-size: 20px; + font-size: 1.25rem; cursor: pointer; animation: thoughtIconPulse 2s ease-in-out infinite; box-shadow: 0 4px 16px rgba(0, 0, 0, 0.5); @@ -2710,7 +2710,7 @@ body:has(.rpg-panel.rpg-position-left) #sheld { display: flex; flex-direction: column-reverse; /* Reverse so circles go upward */ align-items: flex-end; /* Align to the right side */ - gap: 12px; + gap: 0.75em; z-index: 1; } @@ -2722,23 +2722,23 @@ body:has(.rpg-panel.rpg-position-left) #sheld { } .rpg-circle-1 { - width: 8px; - height: 8px; + width: 0.5rem; + height: 0.5rem; animation-delay: 0s; align-self: flex-end; /* Circle 1 on the far right (at avatar) */ } .rpg-circle-2 { - width: 12px; - height: 12px; + width: 0.75rem; + height: 0.75rem; animation-delay: 0.2s; align-self: flex-end; margin-right: 4px; /* Move slightly left from circle 1 */ } .rpg-circle-3 { - width: 16px; - height: 16px; + width: 1rem; + height: 1rem; animation-delay: 0.4s; align-self: flex-end; margin-right: 8px; /* Move more left from circle 1 */ @@ -2760,7 +2760,7 @@ body:has(.rpg-panel.rpg-position-left) #sheld { /* Custom scrollbar for thought bubble */ .rpg-thought-bubble::-webkit-scrollbar { - width: 6px; + width: 0.375rem; } .rpg-thought-bubble::-webkit-scrollbar-track { @@ -2815,7 +2815,7 @@ body:has(.rpg-panel.rpg-position-left) #sheld { /* Divider between multiple thoughts */ .rpg-thought-divider { - height: 1px; + height: 0.062rem; background: linear-gradient(to right, transparent, var(--rpg-highlight, #e94560), transparent); margin: clamp(8px, 1vh, 10px) 0; opacity: 0.5; @@ -2826,7 +2826,7 @@ body:has(.rpg-panel.rpg-position-left) #sheld { content: ''; position: absolute; top: 50%; - right: -12px; + right: -0.75rem; transform: translateY(-50%); width: 0; height: 0; @@ -2839,12 +2839,12 @@ body:has(.rpg-panel.rpg-position-left) #sheld { content: ''; position: absolute; top: 50%; - right: -9px; + right: -0.562rem; transform: translateY(-50%); width: 0; height: 0; border-style: solid; - border-width: 8px 0 8px 10px; + border-width: 0.5rem 0 0.5rem 0.625rem; border-color: transparent transparent transparent var(--rpg-bg, rgba(30, 30, 50, 0.95)); z-index: 1; } @@ -2854,7 +2854,7 @@ body:has(.rpg-panel.rpg-position-left) #sheld { content: ''; position: absolute; top: 50%; - left: -12px; + left: -0.75rem; transform: translateY(-50%); width: 0; height: 0; @@ -2867,12 +2867,12 @@ body:has(.rpg-panel.rpg-position-left) #sheld { content: ''; position: absolute; top: 50%; - left: -9px; + left: -0.562rem; transform: translateY(-50%); width: 0; height: 0; border-style: solid; - border-width: 8px 10px 8px 0; + border-width: 0.5rem 0.625rem 0.5rem 0; border-color: transparent var(--rpg-bg, rgba(30, 30, 50, 0.95)) transparent transparent; z-index: 1; } @@ -2932,15 +2932,15 @@ body:has(.rpg-panel.rpg-position-left) #sheld { .rpg-mobile-toggle { display: none; position: fixed; - bottom: 80px; - right: 20px; - width: 56px; - height: 56px; + bottom: 5rem; + right: 1.25rem; + width: 3.5rem; + height: 3.5rem; border-radius: 50%; background: var(--rpg-accent, #2c3e50); border: 3px solid var(--rpg-border, #34495e); color: var(--rpg-text, #ecf0f1); - font-size: 24px; + font-size: 1.5rem; cursor: pointer; z-index: 999; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3); @@ -3011,7 +3011,7 @@ body:has(.rpg-panel.rpg-position-left) #sheld { right: 0; width: 100%; max-width: 100%; - border-radius: 20px 20px 0 0; + border-radius: 1.25em 1.25em 0 0; overflow-y: scroll; -webkit-overflow-scrolling: touch; } @@ -3020,11 +3020,11 @@ body:has(.rpg-panel.rpg-position-left) #sheld { /* Extra small screens - adjust FAB position */ @media (max-width: 480px) { .rpg-mobile-toggle { - bottom: 70px; - right: 15px; - width: 52px; - height: 52px; - font-size: 22px; + bottom: 4.375rem; + right: 0.938rem; + width: 3.25rem; + height: 3.25rem; + font-size: 1.375rem; } } @@ -3032,21 +3032,21 @@ body:has(.rpg-panel.rpg-position-left) #sheld { @media (max-width: 768px) { /* Larger touch targets for buttons */ .rpg-classic-stat-btn { - min-width: 44px; - min-height: 44px; - font-size: 18px; + min-width: 2.75rem; + min-height: 2.75rem; + font-size: 1.125rem; } /* More padding for editable fields */ .rpg-editable { - padding: 8px; - min-height: 44px; + padding: 0.5em; + min-height: 2.75rem; } /* Larger close buttons */ .rpg-thought-close { - min-width: 44px; - min-height: 44px; - font-size: 24px; + min-width: 2.75rem; + min-height: 2.75rem; + font-size: 1.5rem; } }