/* Rift Theme Studio v2 — final owner for Appearance/Accessibility and colour-theme coverage. */
:root{
  --rift-studio-panel-width:372px;
  --rift-custom-colour-1:#5865f2;
  --rift-custom-colour-2:#8f63ff;
  --rift-custom-intensity:74%;
}

/* Colour themes layer over every base theme. Keep user-owned profile surfaces independent. */
html[data-rift-colour-theme='custom-local'],
html[data-rift-colour-theme='custom-preview']{
  --rfs-theme-gradient:linear-gradient(135deg,
    color-mix(in srgb,var(--rift-custom-colour-1) var(--rift-custom-intensity),transparent),
    color-mix(in srgb,var(--rift-custom-colour-2) var(--rift-custom-intensity),transparent));
}
html:not([data-rift-colour-theme='none']) :is(
  body,#app,.app-shell,.desktop-titlebar,
  .server-rail,.channel-panel,.content-panel,.content-header,.server-header,
  .home-navigation,.channel-navigation,.home-view,.home-toolbar,.home-grid,
  .chat-view,.message-list,.composer,.typing-bar,.member-panel,.current-user-panel,
  .voice-view,.voice-bar,.voice-connection-panel,.rift-voice-panel,
  .r021-friends-main,.r021-friends-side,.r021-friends-shell,.r021-active-now,
  .r021-home-main,.r021-home-side,.r021-dm-list,.r021-dm-header,
  #r021-settings,.r021-settings-shell,.r021-settings-nav,.r021-settings-main,
  .r021-settings-section,.rift-unified-section,.modal,.context-menu
){
  background-image:var(--rfs-theme-gradient)!important;
  background-blend-mode:normal!important;
  background-attachment:local!important;
}
html:not([data-rift-colour-theme='none']) :is(
  .home-nav-item.active,.channel-item.active,.channel-item[aria-current='page'],
  .dm-item.active,.friend-row:hover,.member-item:hover,.message:hover,
  .icon-button:hover,.server-button:not(.active),.rift-unified-row:hover,
  .r021-setting-row:hover,.r021-friends-tab.active
){
  background-image:var(--rfs-theme-gradient)!important;
  background-blend-mode:normal!important;
}
/* Profile cards/popouts retain their own user/server customisation and are never colour-theme washed. */
html:not([data-rift-colour-theme='none']) #app :is(
  #r021-ref-profile,.r021-profile-card,.profile-popout,.rift-profile-popout,
  .r021-dm-profile,.r021-profile-sidebar,.ui0212-profile-card,.ui0212-profile-popout,
  [class*='profile-card'],[class*='profile-popout']
){background-image:none!important;background-blend-mode:normal!important}

/* Add the theme panel as a real fifth/right-most surface instead of covering the app. */
body.rift-theme-studio-open{overflow:hidden}
body.rift-theme-studio-open #r021-settings{display:none!important}
body.rift-theme-studio-open #app.app-shell{
  width:calc(100vw - var(--rift-studio-panel-width))!important;
  max-width:calc(100vw - var(--rift-studio-panel-width))!important;
  transition:width .16s ease,max-width .16s ease;
}
.rift-theme-studio-panel{
  position:fixed;z-index:70000;right:0;top:0;bottom:0;width:var(--rift-studio-panel-width);
  display:flex;flex-direction:column;overflow:hidden;
  border-left:1px solid var(--border-strong);background:var(--bg-1);color:var(--text);
  box-shadow:-18px 0 50px rgba(0,0,0,.22)
}
.desktop-titlebar~.rift-theme-studio-panel{top:0}
.rts-head{height:58px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 16px;border-bottom:1px solid var(--border)}
.rts-head>div{display:flex;min-width:0;flex-direction:column;gap:2px}.rts-head strong{font-size:14px}.rts-head small{font-size:10px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rts-close{width:34px;height:34px;display:grid;place-items:center;border:0;border-radius:8px;background:transparent;color:var(--muted);font-size:22px;cursor:pointer}.rts-close:hover{background:var(--bg-3);color:var(--text)}
.rts-body{flex:1;min-height:0;overflow:auto;padding:16px;display:flex;flex-direction:column;gap:20px}
.rts-footer{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:14px 16px;border-top:1px solid var(--border);background:var(--bg-1)}
.rts-footer button{min-height:40px}
.rts-section{display:flex;flex-direction:column;gap:10px}.rts-section>strong{font-size:11px;color:var(--text-soft);text-transform:uppercase;letter-spacing:.055em}
.rts-live{display:grid;grid-template-columns:9px 1fr;gap:9px;align-items:start;padding:10px 11px;border:1px solid var(--border);border-radius:9px;background:var(--bg-2)}
.rts-live>i{width:8px;height:8px;margin-top:4px;border-radius:50%;background:#43b581;box-shadow:0 0 0 4px color-mix(in srgb,#43b581,transparent 84%)}
.rts-live div{display:flex;flex-direction:column;gap:2px}.rts-live strong{font-size:11px}.rts-live small{font-size:10px;line-height:1.35;color:var(--muted)}
.rts-base-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.rts-base-card{padding:5px;border:2px solid transparent;border-radius:10px;background:transparent;color:var(--muted);cursor:pointer}.rts-base-card i{display:block;aspect-ratio:1;border:1px solid var(--border-strong);border-radius:7px}.rts-base-card span{display:block;margin-top:5px;font-size:9px;text-align:center}.rts-base-card.active{border-color:var(--accent);color:var(--text)}
.rts-colour-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:7px}.rts-colour-card{aspect-ratio:1;padding:2px;border:2px solid transparent;border-radius:9px;background:transparent;cursor:pointer}.rts-colour-card i{display:block;width:100%;height:100%;border-radius:6px;border:1px solid rgba(255,255,255,.08)}.rts-colour-card.active{border-color:var(--accent)}
.rts-accent-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:7px}.rts-accent-grid button{aspect-ratio:1;border:2px solid transparent;border-radius:8px;cursor:pointer}.rts-accent-grid button.active{border-color:#fff;box-shadow:0 0 0 2px var(--accent)}
.rts-logo-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.rts-logo-choice{padding:8px 5px;border:1px solid var(--border);border-radius:9px;background:var(--bg-2);color:var(--muted);cursor:pointer}.rts-logo-choice.active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent);color:var(--text)}
.rift-logo-swatch{width:38px;height:38px;display:block;margin:auto}.rift-logo-swatch svg{width:100%;height:100%;display:block}.rts-logo-choice span:last-child{display:block;margin-top:5px;font-size:9px;text-align:center}

/* Theme customiser. */
.rts-mode-toggle{display:grid;grid-template-columns:1fr 1fr;padding:3px;border:1px solid var(--border);border-radius:9px;background:var(--bg-2)}
.rts-mode-toggle button{height:34px;border:0;border-radius:6px;background:transparent;color:var(--muted);cursor:pointer}.rts-mode-toggle button.active{background:var(--bg-4);color:var(--text);box-shadow:0 1px 3px rgba(0,0,0,.16)}
.rts-colour-picker{height:126px;border:1px solid var(--border-strong);border-radius:10px;background:linear-gradient(to top,#000,transparent),linear-gradient(to right,#fff,var(--rts-picker-colour,#5865f2));position:relative;overflow:hidden}
.rts-colour-picker::after{content:'';position:absolute;right:11%;top:10%;width:12px;height:12px;border:2px solid #fff;border-radius:50%;box-shadow:0 0 0 1px rgba(0,0,0,.3)}
.rts-colour-input{display:grid;grid-template-columns:38px 1fr;gap:8px;align-items:center}.rts-colour-input input[type=color]{width:38px;height:38px;padding:2px;border:1px solid var(--border);border-radius:8px;background:var(--bg-2)}.rts-colour-input input[type=text]{height:38px;border:1px solid var(--border);border-radius:8px;background:var(--bg-2);color:var(--text);padding:0 10px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}
.rts-add-colour{width:100%;height:38px;border:1px solid var(--border);border-radius:8px;background:var(--bg-2);color:var(--text-soft);cursor:pointer}.rts-add-colour:hover{background:var(--bg-3);color:var(--text)}
.rts-custom-second{display:grid;grid-template-columns:38px 1fr 34px;gap:8px;align-items:center}.rts-custom-second input[type=color]{width:38px;height:38px;padding:2px;border:1px solid var(--border);border-radius:8px;background:var(--bg-2)}.rts-custom-second input[type=text]{height:38px;border:1px solid var(--border);border-radius:8px;background:var(--bg-2);color:var(--text);padding:0 10px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.rts-custom-second button{height:34px;border:0;border-radius:7px;background:var(--bg-3);color:var(--muted);cursor:pointer}
.rts-intensity{display:grid;grid-template-columns:1fr 42px;gap:9px;align-items:center}.rts-intensity input{width:100%;accent-color:var(--accent)}.rts-intensity output{font-size:11px;text-align:right;color:var(--text-soft)}
.rts-custom-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.rts-custom-actions button{height:38px;border:1px solid var(--border);border-radius:8px;background:var(--bg-2);color:var(--text);cursor:pointer}.rts-custom-actions button:hover{background:var(--bg-3)}

/* Canonical Appearance page. */
#r021-settings .rift-v2-appearance,#r021-settings .rift-v2-accessibility{max-width:860px;padding-bottom:64px}
#r021-settings .rta-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:8px}.rta-heading h1{margin:0 0 6px}.rta-heading p{margin:0;color:var(--muted)}
#r021-settings .rta-preview-button{min-width:128px}
#r021-settings .rta-section{padding:24px 0;border-bottom:1px solid var(--border)}#r021-settings .rta-section:last-child{border-bottom:0}.rta-section>h2{margin:0 0 7px;font-size:20px;font-weight:550}.rta-section>.rta-copy{margin:0 0 15px;color:var(--muted);font-size:12px;line-height:1.45}
#r021-settings .rta-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px;align-items:center;padding:9px 0}.rta-row>div:first-child{display:flex;min-width:0;flex-direction:column;gap:4px}.rta-row strong{font-size:13px}.rta-row small{color:var(--muted);font-size:11px;line-height:1.4}
#r021-settings .rta-base-grid{display:flex;gap:9px;flex-wrap:wrap}.rta-base-card{width:70px;padding:0;border:0;background:transparent;color:var(--muted);cursor:pointer}.rta-base-card i{position:relative;display:block;width:48px;height:48px;border:1px solid var(--border-strong);border-radius:8px}.rta-base-card span{display:block;margin-top:6px;font-size:9px}.rta-base-card.active i{outline:3px solid var(--accent);outline-offset:2px}.rta-base-card.active{color:var(--text)}
#r021-settings .rta-studio-card{display:grid;grid-template-columns:114px minmax(0,1fr) auto;align-items:center;gap:16px;margin-top:22px;padding:15px 17px;border:1px solid var(--border);border-radius:12px;background:linear-gradient(110deg,color-mix(in srgb,var(--accent),transparent 90%),var(--bg-2) 44%)}.rta-studio-art{height:62px;border-radius:9px;background:linear-gradient(135deg,#676eea,#bc57d7 55%,#ff9b5d);position:relative;overflow:hidden}.rta-studio-art::before{content:'';position:absolute;inset:9px 26px 9px 8px;border-radius:6px;background:#17191e;box-shadow:22px 10px 0 -6px #f4f5f7}.rta-studio-art::after{content:'';position:absolute;right:8px;bottom:7px;width:36px;height:25px;border-radius:6px;background:linear-gradient(135deg,#ff73c8,#745cff)}.rta-studio-card>div:nth-child(2){display:flex;flex-direction:column;gap:4px}.rta-studio-card strong{font-size:15px}.rta-studio-card span{color:var(--muted);font-size:11px;line-height:1.4}
#r021-settings .rta-colour-grid{display:grid;grid-template-columns:repeat(8,50px);gap:8px}.rta-colour-card{width:50px;height:50px;padding:3px;border:2px solid transparent;border-radius:10px;background:transparent;cursor:pointer}.rta-colour-card i{display:block;width:100%;height:100%;border-radius:7px;border:1px solid rgba(255,255,255,.08)}.rta-colour-card.active{border-color:var(--accent)}
#r021-settings .rta-logo-row{display:grid;grid-template-columns:repeat(4,minmax(82px,1fr));gap:9px}.rta-logo-choice{padding:10px;border:1px solid var(--border);border-radius:10px;background:var(--bg-2);color:var(--muted);cursor:pointer}.rta-logo-choice:hover{background:var(--bg-3)}.rta-logo-choice.active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent);color:var(--text)}.rta-logo-choice>span:last-child{display:block;margin-top:6px;font-size:9px;text-align:center}
#r021-settings .rta-related{width:100%;min-height:62px;display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:12px;align-items:center;padding:8px 10px;border:0;border-radius:9px;background:transparent;color:var(--text);text-align:left;cursor:pointer}.rta-related:hover{background:var(--bg-3)}.rta-related>i{width:38px;height:38px;display:grid;place-items:center;border-radius:9px;background:var(--bg-3);font-style:normal;font-weight:750}.rta-related>span{display:flex;flex-direction:column;gap:3px}.rta-related strong{font-size:13px}.rta-related small{color:var(--muted);font-size:11px}.rta-related>b{font-size:26px;font-weight:400;color:var(--muted)}

/* Accessibility page and its genuinely live preview. */
#r021-settings .rta-a11y-preview{--a11y-font:16px;--a11y-gap:12px;--a11y-saturation:1;position:relative;margin:16px 0 26px;padding:33px 20px 18px;border:1px solid var(--border-strong);border-radius:12px;background:var(--bg-1);overflow:hidden;transition:border-color .12s,background .12s}
.rta-a11y-preview::before{content:'PREVIEW';position:absolute;left:0;top:0;padding:6px 9px;border-radius:0 0 8px 0;background:var(--bg-3);color:var(--muted);font-size:9px;font-weight:750;letter-spacing:.06em}
.rta-a11y-preview-inner{filter:saturate(var(--a11y-saturation));transition:filter .1s}
.rta-preview-message{display:grid;grid-template-columns:36px minmax(0,1fr) auto;gap:10px;align-items:start;margin-top:var(--a11y-gap);font-size:var(--a11y-font)}.rta-preview-avatar{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:var(--accent);color:#fff;font-size:11px;font-weight:800}.rta-preview-copy>div:first-child{display:flex;align-items:baseline;gap:7px}.rta-preview-name{font-size:.88em;color:color-mix(in srgb,var(--accent),#fff 24%);font-weight:650}.rta-preview-time{font-size:.62em;color:var(--muted)}.rta-preview-copy p{margin:3px 0 0;color:var(--text);font-size:.86em;line-height:1.4}.rta-preview-copy a{color:var(--accent)}.rta-a11y-preview.underline a{text-decoration:underline;text-underline-offset:2px}.rta-a11y-preview.no-name-style .rta-preview-name{color:var(--text);font-family:inherit!important;font-style:normal!important;text-shadow:none!important}.rta-a11y-preview.role-dots .rta-preview-name::after{content:'';display:inline-block;width:7px;height:7px;margin-left:6px;border-radius:50%;background:var(--accent)}.rta-a11y-preview.role-off .rta-preview-name{color:var(--text)}
.rta-preview-reactions{display:flex;gap:5px;margin-top:5px}.rta-preview-reactions button{padding:3px 7px;border:1px solid var(--border);border-radius:6px;background:var(--bg-3);color:var(--text);font-size:9px}.rta-preview-button{align-self:center!important;padding:7px 9px!important;font-size:9px!important}.rta-a11y-preview.high-contrast{border-width:2px;border-color:var(--text)}.rta-a11y-preview.high-contrast :is(.rta-preview-copy p,.rta-preview-name){font-weight:750}.rta-a11y-preview.compact .rta-preview-message{grid-template-columns:28px minmax(0,1fr) auto}.rta-a11y-preview.compact .rta-preview-avatar{width:26px;height:26px}.rta-a11y-preview.spacious{padding-top:38px;padding-bottom:24px}.rta-a11y-preview.reduced-motion *{transition:none!important;animation:none!important}.rta-a11y-preview.toggle-indicators .rta-preview-switch::after{content:'✓';font-size:8px;color:#fff}.rta-preview-statuses{position:absolute;right:12px;top:15px;display:flex;flex-direction:column;gap:5px}.rta-preview-statuses i{width:20px;height:20px;border-radius:50%}.rta-preview-statuses i:nth-child(1){background:#43b581}.rta-preview-statuses i:nth-child(2){background:#f0b232}.rta-preview-statuses i:nth-child(3){background:#f23f43}
.rta-preview-switch{width:34px;height:18px;border-radius:999px;background:var(--accent);display:grid;place-items:center;align-self:center}
#r021-settings .rta-control-range{width:min(370px,40vw);display:grid;grid-template-columns:minmax(130px,1fr) 46px;gap:10px;align-items:center}.rta-control-range input{width:100%;accent-color:var(--accent)}.rta-control-range output{font-size:10px;color:var(--text-soft);text-align:right;font-variant-numeric:tabular-nums}
#r021-settings .rta-radio-stack{display:flex;flex-direction:column;gap:8px;margin-top:8px}.rta-radio{display:flex;align-items:flex-start;gap:9px;color:var(--text);cursor:pointer}.rta-radio input{margin-top:2px;accent-color:var(--accent)}.rta-radio span{display:flex;flex-direction:column;gap:2px}.rta-radio strong{font-size:12px}.rta-radio small{font-size:10px;color:var(--muted)}
#r021-settings .rta-select{min-width:210px;height:38px;border:1px solid var(--border-strong);border-radius:8px;background:var(--bg-2);color:var(--text);padding:0 10px}
#r021-settings .rta-switch{position:relative;width:42px;height:24px;border:1px solid var(--border-strong);border-radius:999px;background:var(--bg-0);cursor:pointer;transition:background .12s,border-color .12s}.rta-switch span{position:absolute;width:16px;height:16px;left:3px;top:3px;border-radius:50%;background:#fff;transition:transform .12s}.rta-switch.on{background:var(--accent);border-color:var(--accent)}.rta-switch.on span{transform:translateX(18px)}.rta-switch[data-indicators='1']::after{content:'×';position:absolute;right:6px;top:4px;font-size:9px;font-weight:800;color:var(--muted)}.rta-switch.on[data-indicators='1']::after{content:'✓';left:6px;right:auto;color:#fff}

html[data-rift-effective-theme='light'] .rift-theme-studio-panel{background:#f8f9fb;color:#20242a;border-color:#d8dde3}.rift-theme-studio-panel .primary-button{color:#fff}
html[data-rift-effective-theme='light'] .rts-footer{background:#f8f9fb;border-color:#d8dde3}html[data-rift-effective-theme='light'] .rts-live,html[data-rift-effective-theme='light'] .rts-logo-choice,html[data-rift-effective-theme='light'] .rts-mode-toggle,html[data-rift-effective-theme='light'] .rts-colour-input input,html[data-rift-effective-theme='light'] .rts-custom-second input{background:#fff;border-color:#d7dce2;color:#20242a}
html[data-rift-effective-theme='light'] #r021-settings .rta-studio-card,html[data-rift-effective-theme='light'] #r021-settings .rta-logo-choice,html[data-rift-effective-theme='light'] #r021-settings .rta-a11y-preview{background:#fff;border-color:#d3d9e0}

@media(max-width:1050px){body.rift-theme-studio-open #app.app-shell{width:100vw!important;max-width:100vw!important}.rift-theme-studio-panel{width:min(380px,92vw);box-shadow:-24px 0 70px rgba(0,0,0,.38)}}
@media(max-width:760px){.rift-theme-studio-panel{width:100vw}.rts-colour-grid{grid-template-columns:repeat(7,1fr)}#r021-settings .rta-heading{flex-direction:column}#r021-settings .rta-preview-button{width:100%}#r021-settings .rta-studio-card{grid-template-columns:82px 1fr}.rta-studio-card>.primary-button{grid-column:1/-1}#r021-settings .rta-colour-grid{grid-template-columns:repeat(6,46px)}#r021-settings .rta-logo-row{grid-template-columns:repeat(2,1fr)}#r021-settings .rta-row{align-items:start}#r021-settings .rta-control-range{width:42vw;grid-template-columns:minmax(90px,1fr) 42px}}
