/* Theme-specific styles */
.themeable,
.themeable .container,
.themeable .controls,
.themeable header h1,
.themeable .subtitle,
.themeable textarea,
.themeable .character-creator,
.themeable textarea::placeholder,
.themeable .mode-option,
.themeable .character-item,
.themeable #copy-btn,
.themeable #save-btn,
.themeable #generate-btn:disabled,
.themeable #add-char-btn,
.themeable .char-form-buttons button,
.themeable .result-container,
.themeable #add-char-form,
.themeable #add-char-form input,
.themeable #add-char-form textarea,
.themeable .user-content-area,
.themeable .collapsible-header,
.themeable .log-item,
.themeable .log-item-header p,
.themeable .log-item-content {
    transition: all 0.5s ease-in-out;
}

/* Planet Theme */
body.planet-theme {
    background-color: var(--planet-theme-bg);
    color: var(--planet-theme-text);
}

body.planet-theme .container,
body.planet-theme .user-content-area {
    background-color: var(--planet-theme-surface);
    box-shadow: 0 4px 20px rgba(74, 69, 122, 0.4);
    border-color: var(--planet-theme-border);
}

body.planet-theme .controls,
body.planet-theme .collapsible-header {
    border-top-color: var(--planet-theme-border);
    border-bottom-color: var(--planet-theme-border);
}

body.planet-theme .header-img {
    border-color: var(--planet-theme-border);
}

body.planet-theme header h1 {
    color: var(--planet-theme-primary);
    text-shadow: 2px 2px #1d1a38;
}

body.planet-theme .subtitle,
body.planet-theme .log-item-header p {
    color: var(--planet-theme-secondary);
}

body.planet-theme textarea#prompt,
body.planet-theme .character-creator,
body.planet-theme #add-char-form input,
body.planet-theme #add-char-form textarea,
body.planet-theme .result-container,
body.planet-theme .log-item,
body.planet-theme .log-item-content {
    background-color: var(--planet-theme-bg);
    border-color: var(--planet-theme-border);
    color: var(--planet-theme-text);
}

body.planet-theme textarea#prompt::placeholder {
    color: #9292b3;
}

body.planet-theme textarea#prompt:focus,
body.planet-theme .mode-selector input[type="radio"]:checked + .mode-option {
    border-color: var(--planet-theme-primary);
}

body.planet-theme .mode-option,
body.planet-theme .character-item {
    border-color: var(--planet-theme-border);
}

body.planet-theme #copy-btn,
body.planet-theme #save-btn,
body.planet-theme #generate-btn:disabled,
body.planet-theme #add-char-btn,
body.planet-theme .char-form-buttons button[type="submit"],
body.planet-theme #accept-warning-btn {
    background-color: var(--planet-theme-primary);
}

body.planet-theme #copy-btn:hover,
body.planet-theme #add-char-btn:hover,
body.planet-theme .char-form-buttons button[type="submit"]:hover,
body.planet-theme #accept-warning-btn:hover {
    background-color: #6a5ac0;
}

body.planet-theme pre#script-output {
    color: var(--planet-theme-text);
}

body.planet-theme #add-char-form {
    background-color: var(--planet-theme-surface);
}

body.planet-theme .character-item .delete-char-btn {
    background: #6e2a31;
}

body.planet-theme .log-item summary {
    color: var(--planet-theme-primary);
}

body.planet-theme .collapsible-header:hover {
    background-color: rgba(255,255,255,0.05);
}

/* Elementball Theme */
body.elementball-theme {
    background-color: var(--element-theme-bg);
    color: var(--element-theme-text);
}

body.elementball-theme .container,
body.elementball-theme .user-content-area {
    background-color: var(--element-theme-surface);
    border-color: var(--element-theme-border);
}

body.elementball-theme .controls,
body.elementball-theme .collapsible-header {
    border-top-color: var(--element-theme-border);
    border-bottom-color: var(--element-theme-border);
}

body.elementball-theme .header-img {
    border-color: var(--element-theme-border);
}

body.elementball-theme header h1 {
    color: var(--element-theme-primary);
}

body.elementball-theme .subtitle,
body.elementball-theme .log-item-header p {
    color: var(--element-theme-secondary);
}

body.elementball-theme textarea#prompt,
body.elementball-theme .character-creator,
body.elementball-theme #add-char-form input,
body.elementball-theme #add-char-form textarea,
body.elementball-theme .result-container,
body.elementball-theme .log-item,
body.elementball-theme .log-item-content {
    background-color: var(--element-theme-bg);
    border-color: var(--element-theme-border);
    color: var(--element-theme-text);
}

body.elementball-theme textarea#prompt::placeholder {
    color: var(--element-theme-secondary);
    opacity: 0.8;
}

body.elementball-theme textarea#prompt:focus,
body.elementball-theme .mode-selector input[type="radio"]:checked + .mode-option {
    border-color: var(--element-theme-primary);
}

body.elementball-theme .mode-option,
body.elementball-theme .character-item {
    border-color: var(--element-theme-border);
}

body.elementball-theme #copy-btn,
body.elementball-theme #add-char-btn,
body.elementball-theme .char-form-buttons button[type="submit"],
body.elementball-theme #accept-warning-btn {
    background-color: var(--element-theme-primary);
}

body.elementball-theme pre#script-output {
    color: var(--element-theme-text);
}

body.elementball-theme #add-char-form {
    background-color: var(--element-theme-surface);
}

body.elementball-theme .collapsible-header:hover {
    background-color: rgba(0,0,0,0.03);
}

/* Companyball Theme */
body.companyball-theme {
    background-color: var(--company-theme-bg);
    color: var(--company-theme-text);
}

body.companyball-theme .container,
body.companyball-theme .user-content-area {
    background-color: var(--company-theme-surface);
    border-color: var(--company-theme-border);
}

body.companyball-theme .controls,
body.companyball-theme .collapsible-header {
    border-top-color: var(--company-theme-border);
    border-bottom-color: var(--company-theme-border);
}

body.companyball-theme .header-img {
    border-color: var(--company-theme-border);
}

body.companyball-theme header h1 {
    color: var(--company-theme-primary);
}

body.companyball-theme .subtitle,
body.companyball-theme .log-item-header p {
    color: var(--company-theme-secondary);
}

body.companyball-theme textarea#prompt,
body.companyball-theme .character-creator,
body.companyball-theme #add-char-form input,
body.companyball-theme #add-char-form textarea,
body.companyball-theme .result-container,
body.companyball-theme .log-item,
body.companyball-theme .log-item-content {
    background-color: var(--company-theme-bg);
    border-color: var(--company-theme-border);
    color: var(--company-theme-text);
}

body.companyball-theme textarea#prompt::placeholder {
    color: var(--company-theme-secondary);
    opacity: 0.8;
}

body.companyball-theme textarea#prompt:focus,
body.companyball-theme .mode-selector input[type="radio"]:checked + .mode-option {
    border-color: var(--company-theme-primary);
}

body.companyball-theme .mode-option,
body.companyball-theme .character-item {
    border-color: var(--company-theme-border);
}

body.companyball-theme #copy-btn,
body.companyball-theme #add-char-btn,
body.companyball-theme .char-form-buttons button[type="submit"],
body.companyball-theme #accept-warning-btn {
    background-color: var(--company-theme-primary);
}

body.companyball-theme pre#script-output {
    color: var(--company-theme-text);
}

body.companyball-theme #add-char-form {
    background-color: var(--company-theme-surface);
}

body.companyball-theme .collapsible-header:hover {
    background-color: rgba(0,0,0,0.03);
}

/* LGBTQball Theme */
body.lgbtqball-theme {
    background-color: var(--lgbtq-theme-bg);
    color: var(--lgbtq-theme-text);
}

body.lgbtqball-theme .container,
body.lgbtqball-theme .user-content-area {
    background-color: var(--lgbtq-theme-surface);
    border-color: var(--lgbtq-theme-border);
}

body.lgbtqball-theme .controls,
body.lgbtqball-theme .collapsible-header {
    border-top-color: var(--lgbtq-theme-border);
    border-bottom-color: var(--lgbtq-theme-border);
}

body.lgbtqball-theme .header-img {
    border-color: var(--lgbtq-theme-border);
}

body.lgbtqball-theme header h1 {
    color: var(--lgbtq-theme-primary);
}

body.lgbtqball-theme .subtitle,
body.lgbtqball-theme .log-item-header p {
    color: var(--lgbtq-theme-secondary);
}

body.lgbtqball-theme textarea#prompt,
body.lgbtqball-theme .character-creator,
body.lgbtqball-theme #add-char-form input,
body.lgbtqball-theme #add-char-form textarea,
body.lgbtqball-theme .result-container,
body.lgbtqball-theme .log-item,
body.lgbtqball-theme .log-item-content {
    background-color: var(--lgbtq-theme-bg);
    border-color: var(--lgbtq-theme-border);
    color: var(--lgbtq-theme-text);
}

body.lgbtqball-theme textarea#prompt::placeholder {
    color: var(--lgbtq-theme-secondary);
    opacity: 0.8;
}

body.lgbtqball-theme textarea#prompt:focus,
body.lgbtqball-theme .mode-selector input[type="radio"]:checked + .mode-option {
    border-color: var(--lgbtq-theme-primary);
}

body.lgbtqball-theme .mode-option,
body.lgbtqball-theme .character-item {
    border-color: var(--lgbtq-theme-border);
}

body.lgbtqball-theme #copy-btn,
body.lgbtqball-theme #add-char-btn,
body.lgbtqball-theme .char-form-buttons button[type="submit"],
body.lgbtqball-theme #accept-warning-btn {
    background-color: var(--lgbtq-theme-primary);
}

body.lgbtqball-theme pre#script-output {
    color: var(--lgbtq-theme-text);
}

body.lgbtqball-theme #add-char-form {
    background-color: var(--lgbtq-theme-surface);
}

body.lgbtqball-theme .collapsible-header:hover {
    background-color: rgba(0,0,0,0.03);
}

/* Religionball Theme */
body.religionball-theme {
    background-color: var(--religion-theme-bg);
    color: var(--religion-theme-text);
}

body.religionball-theme .container,
body.religionball-theme .user-content-area {
    background-color: var(--religion-theme-surface);
    border-color: var(--religion-theme-border);
}

body.religionball-theme .controls,
body.religionball-theme .collapsible-header {
    border-top-color: var(--religion-theme-border);
    border-bottom-color: var(--religion-theme-border);
}

body.religionball-theme .header-img {
    border-color: var(--religion-theme-border);
}

body.religionball-theme header h1 {
    color: var(--religion-theme-primary);
}

body.religionball-theme .subtitle,
body.religionball-theme .log-item-header p {
    color: var(--religion-theme-secondary);
}

body.religionball-theme textarea#prompt,
body.religionball-theme .character-creator,
body.religionball-theme #add-char-form input,
body.religionball-theme #add-char-form textarea,
body.religionball-theme .result-container,
body.religionball-theme .log-item,
body.religionball-theme .log-item-content {
    background-color: var(--religion-theme-bg);
    border-color: var(--religion-theme-border);
    color: var(--religion-theme-text);
}

body.religionball-theme textarea#prompt::placeholder {
    color: var(--religion-theme-secondary);
    opacity: 0.8;
}

body.religionball-theme textarea#prompt:focus,
body.religionball-theme .mode-selector input[type="radio"]:checked + .mode-option {
    border-color: var(--religion-theme-primary);
}

body.religionball-theme .mode-option,
body.religionball-theme .character-item {
    border-color: var(--religion-theme-border);
}

body.religionball-theme #copy-btn,
body.religionball-theme #add-char-btn,
body.religionball-theme .char-form-buttons button[type="submit"],
body.religionball-theme #accept-warning-btn {
    background-color: var(--religion-theme-primary);
}

body.religionball-theme pre#script-output {
    color: var(--religion-theme-text);
}

body.religionball-theme #add-char-form {
    background-color: var(--religion-theme-surface);
}

body.religionball-theme .collapsible-header:hover {
    background-color: rgba(0,0,0,0.03);
}

/* Micronationball Theme */
body.micronationball-theme {
    background-color: var(--micro-theme-bg);
    color: var(--micro-theme-text);
}

body.micronationball-theme .container,
body.micronationball-theme .user-content-area {
    background-color: var(--micro-theme-surface);
    border-color: var(--micro-theme-border);
}

body.micronationball-theme .controls,
body.micronationball-theme .collapsible-header {
    border-top-color: var(--micro-theme-border);
    border-bottom-color: var(--micro-theme-border);
}

body.micronationball-theme .header-img {
    border-color: var(--micro-theme-border);
}

body.micronationball-theme header h1 {
    color: var(--micro-theme-primary);
}

body.micronationball-theme .subtitle,
body.micronationball-theme .log-item-header p {
    color: var(--micro-theme-secondary);
}

body.micronationball-theme textarea#prompt,
body.micronationball-theme .character-creator,
body.micronationball-theme #add-char-form input,
body.micronationball-theme #add-char-form textarea,
body.micronationball-theme .result-container,
body.micronationball-theme .log-item,
body.micronationball-theme .log-item-content {
    background-color: var(--micro-theme-bg);
    border-color: var(--micro-theme-border);
    color: var(--micro-theme-text);
}

body.micronationball-theme textarea#prompt::placeholder {
    color: var(--micro-theme-secondary);
    opacity: 0.8;
}

body.micronationball-theme textarea#prompt:focus,
body.micronationball-theme .mode-selector input[type="radio"]:checked + .mode-option {
    border-color: var(--micro-theme-primary);
}

body.micronationball-theme .mode-option,
body.micronationball-theme .character-item {
    border-color: var(--micro-theme-border);
}

body.micronationball-theme #copy-btn,
body.micronationball-theme #add-char-btn,
body.micronationball-theme .char-form-buttons button[type="submit"],
body.micronationball-theme #accept-warning-btn {
    background-color: var(--micro-theme-primary);
}

body.micronationball-theme pre#script-output {
    color: var(--micro-theme-text);
}

body.micronationball-theme #add-char-form {
    background-color: var(--micro-theme-surface);
}

body.micronationball-theme .collapsible-header:hover {
    background-color: rgba(0,0,0,0.03);
}

/* Politicalball Theme */
body.politicalball-theme {
    background-color: var(--political-theme-bg);
    color: var(--political-theme-text);
}

body.politicalball-theme .container,
body.politicalball-theme .user-content-area {
    background-color: var(--political-theme-surface);
    border-color: var(--political-theme-border);
}

body.politicalball-theme .controls,
body.politicalball-theme .collapsible-header {
    border-top-color: var(--political-theme-border);
    border-bottom-color: var(--political-theme-border);
}

body.politicalball-theme .header-img {
    border-color: var(--political-theme-border);
}

body.politicalball-theme header h1 {
    color: var(--political-theme-primary);
}

body.politicalball-theme .subtitle,
body.politicalball-theme .log-item-header p {
    color: var(--political-theme-secondary);
}

body.politicalball-theme textarea#prompt,
body.politicalball-theme .character-creator,
body.politicalball-theme #add-char-form input,
body.politicalball-theme #add-char-form textarea,
body.politicalball-theme .result-container,
body.politicalball-theme .log-item,
body.politicalball-theme .log-item-content {
    background-color: var(--political-theme-bg);
    border-color: var(--political-theme-border);
    color: var(--political-theme-text);
}

body.politicalball-theme textarea#prompt::placeholder {
    color: var(--political-theme-secondary);
    opacity: 0.8;
}

body.politicalball-theme textarea#prompt:focus,
body.politicalball-theme .mode-selector input[type="radio"]:checked + .mode-option {
    border-color: var(--political-theme-primary);
}

body.politicalball-theme .mode-option,
body.politicalball-theme .character-item {
    border-color: var(--political-theme-border);
}

body.politicalball-theme #copy-btn,
body.politicalball-theme #add-char-btn,
body.politicalball-theme .char-form-buttons button[type="submit"],
body.politicalball-theme #accept-warning-btn {
    background-color: var(--political-theme-primary);
}

body.politicalball-theme pre#script-output {
    color: var(--political-theme-text);
}

body.politicalball-theme #add-char-form {
    background-color: var(--political-theme-surface);
}

body.politicalball-theme .collapsible-header:hover {
    background-color: rgba(0,0,0,0.03);
}

/* Countryhumans Theme */
body.countryhumans-theme {
    background-color: var(--countryhumans-theme-bg);
    color: var(--countryhumans-theme-text);
}

body.countryhumans-theme .container,
body.countryhumans-theme .user-content-area {
    background-color: var(--countryhumans-theme-surface);
    border-color: var(--countryhumans-theme-border);
}

body.countryhumans-theme .controls,
body.countryhumans-theme .collapsible-header {
    border-top-color: var(--countryhumans-theme-border);
    border-bottom-color: var(--countryhumans-theme-border);
}

body.countryhumans-theme .header-img {
    border-color: var(--countryhumans-theme-border);
}

body.countryhumans-theme header h1 {
    color: var(--countryhumans-theme-primary);
}

body.countryhumans-theme .subtitle,
body.countryhumans-theme .log-item-header p {
    color: var(--countryhumans-theme-secondary);
}

body.countryhumans-theme textarea#prompt,
body.countryhumans-theme .character-creator,
body.countryhumans-theme #add-char-form input,
body.countryhumans-theme #add-char-form textarea,
body.countryhumans-theme .result-container,
body.countryhumans-theme .log-item,
body.countryhumans-theme .log-item-content {
    background-color: var(--countryhumans-theme-bg);
    border-color: var(--countryhumans-theme-border);
    color: var(--countryhumans-theme-text);
}

body.countryhumans-theme textarea#prompt::placeholder {
    color: var(--countryhumans-theme-secondary);
    opacity: 0.8;
}

body.countryhumans-theme textarea#prompt:focus,
body.countryhumans-theme .mode-selector input[type="radio"]:checked + .mode-option {
    border-color: var(--countryhumans-theme-primary);
}

body.countryhumans-theme .mode-option,
body.countryhumans-theme .character-item {
    border-color: var(--countryhumans-theme-border);
}

body.countryhumans-theme #copy-btn,
body.countryhumans-theme #add-char-btn,
body.countryhumans-theme .char-form-buttons button[type="submit"],
body.countryhumans-theme #accept-warning-btn {
    background-color: var(--countryhumans-theme-primary);
}

body.countryhumans-theme pre#script-output {
    color: var(--countryhumans-theme-text);
}

body.countryhumans-theme #add-char-form {
    background-color: var(--countryhumans-theme-surface);
}

body.countryhumans-theme .collapsible-header:hover {
    background-color: rgba(0,0,0,0.03);
}

/* Planethumans Theme */
body.planethumans-theme {
    background-color: var(--planethumans-theme-bg);
    color: var(--planethumans-theme-text);
}

body.planethumans-theme .container,
body.planethumans-theme .user-content-area {
    background-color: var(--planethumans-theme-surface);
    border-color: var(--planethumans-theme-border);
}

body.planethumans-theme .controls,
body.planethumans-theme .collapsible-header {
    border-top-color: var(--planethumans-theme-border);
    border-bottom-color: var(--planethumans-theme-border);
}

body.planethumans-theme .header-img {
    border-color: var(--planethumans-theme-border);
}

body.planethumans-theme header h1 {
    color: var(--planethumans-theme-primary);
}

body.planethumans-theme .subtitle,
body.planethumans-theme .log-item-header p {
    color: var(--planethumans-theme-secondary);
}

body.planethumans-theme textarea,
body.planethumans-theme .character-creator,
body.planethumans-theme #add-char-form input,
body.planethumans-theme #add-char-form textarea,
body.planethumans-theme .result-container,
body.planethumans-theme .log-item,
body.planethumans-theme .log-item-content {
    background-color: var(--planethumans-theme-bg);
    border-color: var(--planethumans-theme-border);
    color: var(--planethumans-theme-text);
}

body.planethumans-theme textarea::placeholder {
    color: var(--planethumans-theme-secondary);
    opacity: 0.6;
}

body.planethumans-theme textarea:focus,
body.planethumans-theme .mode-selector input[type="radio"]:checked + .mode-option {
    border-color: var(--planethumans-theme-primary);
}

body.planethumans-theme .mode-option,
body.planethumans-theme .character-item {
    border-color: var(--planethumans-theme-border);
}

body.planethumans-theme #copy-btn,
body.planethumans-theme #add-char-btn,
body.planethumans-theme .char-form-buttons button[type="submit"],
body.planethumans-theme #accept-warning-btn {
    background-color: var(--planethumans-theme-primary);
}

body.planethumans-theme pre#script-output {
    color: var(--planethumans-theme-text);
}

body.planethumans-theme #add-char-form {
    background-color: var(--planethumans-theme-surface);
}

body.planethumans-theme .collapsible-header:hover {
    background-color: rgba(255,255,255,0.05);
}

/* Candyball Theme */
body.candyball-theme {
    background-color: var(--candy-theme-bg);
    color: var(--candy-theme-text);
}

body.candyball-theme .container,
body.candyball-theme .user-content-area {
    background-color: var(--candy-theme-surface);
    border-color: var(--candy-theme-border);
}

body.candyball-theme .controls,
body.candyball-theme .collapsible-header {
    border-top-color: var(--candy-theme-border);
    border-bottom-color: var(--candy-theme-border);
}

body.candyball-theme .header-img {
    border-color: var(--candy-theme-border);
}

body.candyball-theme header h1 {
    color: var(--candy-theme-primary);
}

body.candyball-theme .subtitle,
body.candyball-theme .log-item-header p {
    color: var(--candy-theme-secondary);
}

body.candyball-theme textarea,
body.candyball-theme .character-creator,
body.candyball-theme #add-char-form input,
body.candyball-theme #add-char-form textarea,
body.candyball-theme .result-container,
body.candyball-theme .log-item,
body.candyball-theme .log-item-content {
    background-color: var(--candy-theme-bg);
    border-color: var(--candy-theme-border);
    color: var(--candy-theme-text);
}

body.candyball-theme textarea::placeholder {
    color: var(--candy-theme-secondary);
    opacity: 0.6;
}

body.candyball-theme textarea:focus,
body.candyball-theme .mode-selector input[type="radio"]:checked + .mode-option {
    border-color: var(--candy-theme-primary);
}

body.candyball-theme .mode-option,
body.candyball-theme .character-item {
    border-color: var(--candy-theme-border);
}

body.candyball-theme #copy-btn,
body.candyball-theme #add-char-btn,
body.candyball-theme .char-form-buttons button[type="submit"],
body.candyball-theme #accept-warning-btn {
    background-color: var(--candy-theme-primary);
}

body.candyball-theme pre#script-output {
    color: var(--candy-theme-text);
}

body.candyball-theme #add-char-form {
    background-color: var(--candy-theme-surface);
}

body.candyball-theme .collapsible-header:hover {
    background-color: rgba(236, 64, 122, 0.1);
}

/* NASCARballs Theme */
body.nascar-theme {
    background-color: var(--nascar-theme-bg);
    color: var(--nascar-theme-text);
}

body.nascar-theme .container,
body.nascar-theme .user-content-area {
    background-color: var(--nascar-theme-surface);
    border-color: var(--nascar-theme-border);
}

body.nascar-theme .controls,
body.nascar-theme .collapsible-header {
    border-top-color: var(--nascar-theme-border);
    border-bottom-color: var(--nascar-theme-border);
}

body.nascar-theme .header-img {
    border-color: var(--nascar-theme-border);
}

body.nascar-theme header h1 {
    color: var(--nascar-theme-primary);
}

body.nascar-theme .subtitle,
body.nascar-theme .log-item-header p {
    color: var(--nascar-theme-secondary);
}

body.nascar-theme textarea,
body.nascar-theme .character-creator,
body.nascar-theme #add-char-form input,
body.nascar-theme #add-char-form textarea,
body.nascar-theme .result-container,
body.nascar-theme .log-item,
body.nascar-theme .log-item-content {
    background-color: var(--nascar-theme-bg);
    border-color: var(--nascar-theme-border);
    color: var(--nascar-theme-text);
}

body.nascar-theme textarea::placeholder {
    color: var(--nascar-theme-secondary);
    opacity: 0.6;
}

body.nascar-theme textarea:focus,
body.nascar-theme .mode-selector input[type="radio"]:checked + .mode-option {
    border-color: var(--nascar-theme-primary);
}

body.nascar-theme .mode-option,
body.nascar-theme .character-item {
    border-color: var(--nascar-theme-border);
}

body.nascar-theme #copy-btn,
body.nascar-theme #add-char-btn,
body.nascar-theme .char-form-buttons button[type="submit"],
body.nascar-theme #accept-warning-btn {
    background-color: var(--nascar-theme-primary);
}

body.nascar-theme pre#script-output {
    color: var(--nascar-theme-text);
}

body.nascar-theme #add-char-form {
    background-color: var(--nascar-theme-surface);
}

body.nascar-theme .collapsible-header:hover {
    background-color: rgba(220, 53, 69, 0.1);
}

/* Shipballs Theme */
body.shipball-theme {
    background-color: var(--ship-theme-bg);
    color: var(--ship-theme-text);
}

body.shipball-theme .container,
body.shipball-theme .user-content-area {
    background-color: var(--ship-theme-surface);
    border-color: var(--ship-theme-border);
}

body.shipball-theme .controls,
body.shipball-theme .collapsible-header {
    border-top-color: var(--ship-theme-border);
    border-bottom-color: var(--ship-theme-border);
}

body.shipball-theme .header-img {
    border-color: var(--ship-theme-border);
}

body.shipball-theme header h1 {
    color: var(--ship-theme-primary);
}

body.shipball-theme .subtitle,
body.shipball-theme .log-item-header p {
    color: var(--ship-theme-secondary);
}

body.shipball-theme textarea,
body.shipball-theme .character-creator,
body.shipball-theme #add-char-form input,
body.shipball-theme #add-char-form textarea,
body.shipball-theme .result-container,
body.shipball-theme .log-item,
body.shipball-theme .log-item-content {
    background-color: var(--ship-theme-bg);
    border-color: var(--ship-theme-border);
    color: var(--ship-theme-text);
}

body.shipball-theme textarea::placeholder {
    color: var(--ship-theme-secondary);
    opacity: 0.6;
}

body.shipball-theme textarea:focus,
body.shipball-theme .mode-selector input[type="radio"]:checked + .mode-option {
    border-color: var(--ship-theme-primary);
}

body.shipball-theme .mode-option,
body.shipball-theme .character-item {
    border-color: var(--ship-theme-border);
}

body.shipball-theme #copy-btn,
body.shipball-theme #add-char-btn,
body.shipball-theme .char-form-buttons button[type="submit"],
body.shipball-theme #accept-warning-btn {
    background-color: var(--ship-theme-primary);
}

body.shipball-theme pre#script-output {
    color: var(--ship-theme-text);
}

body.shipball-theme #add-char-form {
    background-color: var(--ship-theme-surface);
}

body.shipball-theme .collapsible-header:hover {
    background-color: rgba(0,0,0,0.03);
}

/* Colorballs Theme */
body.colorball-theme {
    background-color: var(--color-theme-bg);
    color: var(--color-theme-text);
}

body.colorball-theme .container,
body.colorball-theme .user-content-area {
    background-color: var(--color-theme-surface);
    border-color: var(--color-theme-border);
}

body.colorball-theme .controls,
body.colorball-theme .collapsible-header {
    border-top-color: var(--color-theme-border);
    border-bottom-color: var(--color-theme-border);
}

body.colorball-theme .header-img {
    border-color: var(--color-theme-border);
}

body.colorball-theme header h1 {
    color: var(--color-theme-primary);
}

body.colorball-theme .subtitle,
body.colorball-theme .log-item-header p {
    color: var(--color-theme-secondary);
}

body.colorball-theme textarea,
body.colorball-theme .character-creator,
body.colorball-theme #add-char-form input,
body.colorball-theme #add-char-form textarea,
body.colorball-theme .result-container,
body.colorball-theme .log-item,
body.colorball-theme .log-item-content {
    background-color: var(--color-theme-bg);
    border-color: var(--color-theme-border);
    color: var(--color-theme-text);
}

body.colorball-theme textarea::placeholder {
    color: var(--color-theme-secondary);
    opacity: 0.6;
}

body.colorball-theme textarea:focus,
body.colorball-theme .mode-selector input[type="radio"]:checked + .mode-option {
    border-color: var(--color-theme-primary);
}

body.colorball-theme .mode-option,
body.colorball-theme .character-item {
    border-color: var(--color-theme-border);
}

body.colorball-theme #copy-btn,
body.colorball-theme #add-char-btn,
body.colorball-theme .char-form-buttons button[type="submit"],
body.colorball-theme #accept-warning-btn {
    background-color: var(--color-theme-primary);
}

body.colorball-theme pre#script-output {
    color: var(--color-theme-text);
}

body.colorball-theme #add-char-form {
    background-color: var(--color-theme-surface);
}

body.colorball-theme .collapsible-header:hover {
    background-color: rgba(255, 140, 0, 0.1);
}

/* SCPballs Theme */
body.scpball-theme {
    background-color: var(--scp-theme-bg);
    color: var(--scp-theme-text);
}

body.scpball-theme .container,
body.scpball-theme .user-content-area {
    background-color: var(--scp-theme-surface);
    border-color: var(--scp-theme-border);
}

body.scpball-theme .controls,
body.scpball-theme .collapsible-header {
    border-top-color: var(--scp-theme-border);
    border-bottom-color: var(--scp-theme-border);
}

body.scpball-theme .header-img {
    border-color: var(--scp-theme-border);
}

body.scpball-theme header h1 {
    color: var(--scp-theme-primary);
}

body.scpball-theme .subtitle,
body.scpball-theme .log-item-header p {
    color: var(--scp-theme-secondary);
}

body.scpball-theme textarea,
body.scpball-theme .character-creator,
body.scpball-theme #add-char-form input,
body.scpball-theme #add-char-form textarea,
body.scpball-theme .result-container,
body.scpball-theme .log-item,
body.scpball-theme .log-item-content {
    background-color: var(--scp-theme-bg);
    border-color: var(--scp-theme-border);
    color: var(--scp-theme-text);
}

body.scpball-theme textarea::placeholder {
    color: var(--scp-theme-secondary);
    opacity: 0.6;
}

body.scpball-theme textarea:focus,
body.scpball-theme .mode-selector input[type="radio"]:checked + .mode-option {
    border-color: var(--scp-theme-primary);
}

body.scpball-theme .mode-option,
body.scpball-theme .character-item {
    border-color: var(--scp-theme-border);
}

body.scpball-theme #copy-btn,
body.scpball-theme #add-char-btn,
body.scpball-theme .char-form-buttons button[type="submit"],
body.scpball-theme #accept-warning-btn {
    background-color: var(--scp-theme-primary);
}

body.scpball-theme pre#script-output {
    color: var(--scp-theme-text);
}

body.scpball-theme #add-char-form {
    background-color: var(--scp-theme-surface);
}

body.scpball-theme .collapsible-header:hover {
    background-color: rgba(255, 165, 0, 0.1);
}