/* CDVN RP visual standard. New controls inherit this palette automatically.
   Only appearance lives here; viewport, safe areas, sizing and input logic stay
   with each feature. The important layer also covers old/native style overrides. */
:root{
 --ui-bg:#101114;--ui-raised:#1c1c20;--ui-field:#151519;
 --ui-gold:#c7a56a;--ui-gold-soft:#dfc499;--ui-gold-hover:#eed6b0;
 --ui-gold-selected:#bd9659;--ui-ink:#292014;--ui-text:#f5eedf;--ui-muted:#c4b89f;
 --ui-radius-card:18px;--ui-radius-control:12px;--ui-radius-small:8px;
}
@layer rp-theme{
 :root{color-scheme:dark!important}
 /* The original health/stamina frame is an explicit exception to this theme. */
 :where(body *:not(#vitals-hud,#vitals-hud *)){border-color:var(--ui-gold)!important}
 .canvas-wrap{background:var(--ui-bg)!important}
 /* All controls, including controls added after login, share the same states. */
 :is(button,[role="button"],.discord-invite,.download-button,.android-download){
  background:var(--ui-gold-soft)!important;border:1px solid var(--ui-gold)!important;
  border-radius:var(--ui-radius-control)!important;color:var(--ui-ink)!important;
  box-shadow:0 2px 5px #0003,inset 0 1px #fff2!important;text-shadow:none!important;
  -webkit-tap-highlight-color:#dfc49933;
 }
 :is(button,[role="button"],.discord-invite,.download-button,.android-download):hover:not(:disabled):not([aria-disabled="true"]){
  background:var(--ui-gold-hover)!important;border-color:var(--ui-gold)!important;
 }
 :is(button,[role="button"]):is(:active,[aria-pressed="true"],[aria-expanded="true"],.is-active,.is-equipped,.just-used){
  background:var(--ui-gold-selected)!important;box-shadow:inset 0 0 0 1px #fff3!important;
 }
 :is(button,[role="button"]):is(:disabled,[aria-disabled="true"]){
  background:#756345!important;color:#f2dfbd!important;border-color:var(--ui-gold)!important;
  opacity:.65!important;box-shadow:none!important;
 }
 :is(button,[role="button"],a,input,select,textarea):focus-visible{
  outline:2px solid var(--ui-gold-hover)!important;outline-offset:3px!important;
 }
 :is(button,[role="button"],.download-button,.android-download,.discord-invite) :is(span,strong,b,small,svg){color:inherit!important;text-shadow:none!important}
 :is(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),select,textarea){
  background:var(--ui-field)!important;color:var(--ui-text)!important;
  border:1px solid var(--ui-gold)!important;border-radius:var(--ui-radius-control)!important;
  box-shadow:none!important;
 }
 :is(input,textarea)::placeholder{color:var(--ui-muted)!important;opacity:.8!important}
 :is(input,select,textarea){accent-color:var(--ui-gold-soft)!important}
 input:-webkit-autofill{-webkit-text-fill-color:var(--ui-text)!important;box-shadow:inset 0 0 0 1000px var(--ui-field)!important}
 /* Login utility buttons show only the gold icon or label. */
 #auth-overlay :is(#password-visibility,#auth-forgot){
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  color:var(--ui-gold-soft)!important;
 }
 /* Neutralise legacy blue/green sub-panels. Keep transparent layout wrappers. */
 :where(.panel-card,.admin-shell,.gift-redeem-shell,.auth-card,#chat-widget,#online-widget,#settings-menu,#friend-popover,#job-guide-hud,.performance-panel)
 :is(div,section,article,aside,fieldset,form,label,header,footer,li){
  background:transparent!important;border-color:var(--ui-gold)!important;
  border-radius:var(--ui-radius-control)!important;box-shadow:none!important;
 }
 :is(.panel-card,.admin-shell,.gift-redeem-shell,.auth-card) :is(h1,h2,h3,h4,h5,p,label,legend,small,strong,span,code){color:inherit!important}
 :is(.panel-card,.admin-shell,.gift-redeem-shell,.auth-card,.game-loading-card){
  background:var(--ui-bg)!important;color:var(--ui-text)!important;
  border:1px solid var(--ui-gold)!important;border-radius:var(--ui-radius-card)!important;
  box-shadow:0 18px 55px #0008!important;
 }
 :is(.panel,.admin-overlay){background:#070808b8!important}
 :is(.panel-head,.admin-head,.butler-footer,.npc-service-footer,.trade-footer,.performance-heading){border-color:var(--ui-gold)!important;border-radius:0!important}
 :is(.panel-head,.admin-head) h2{color:var(--ui-text)!important}
 :is(.panel-card,.admin-shell,.gift-redeem-shell,.auth-card) :is(a,.butler-eyebrow,.butler-speaker,.npc-service-eyebrow,.npc-service-speaker,.house-tag){color:var(--ui-gold-soft)!important}
 /* Shared inset cards and image holders. */
 :is(.butler-speech,.npc-service-speech,.room-row,.skin-card,.housing-home,.housing-confirm,.housing-current,.housing-list,.trade-column,.trade-warning,.trade-error,.admin-card,.admin-player-row,.gift-result-code,.register-gender,.avatar-options,.gang-summary,.gang-create,.furniture-guide,.garage-impound-notice,.pvp-shop-intro,.skin-job-note,.skin-empty){
  background:var(--ui-raised)!important;border-color:var(--ui-gold)!important;
  border-radius:var(--ui-radius-control)!important;color:var(--ui-text)!important;
 }
 :is(.butler-art,.npc-service-art,.housing-home-art,.skin-preview,.shop-item-image,.avatar-preview,.login-neighbor,.vehicle-shop-preview){
  background:radial-gradient(ellipse at 50% 45%,#4c3d282b,var(--ui-raised) 72%)!important;
  border:1px solid var(--ui-gold)!important;border-radius:var(--ui-radius-control)!important;box-shadow:none!important;
 }
 .npc-service-art::before,.npc-service-art::after{display:none!important}
 :is(.butler-mood,.npc-service-badge,.npc-service-art-status,.trade-badge,.housing-owned,.vehicle-owned-label,.pvp-owned-tag,.skin-owned,.gift-list-status,.gang-tag,.guide-count){
  background:var(--ui-raised)!important;color:var(--ui-gold-soft)!important;
  border-color:var(--ui-gold)!important;border-radius:var(--ui-radius-small)!important;box-shadow:none!important;
 }
 :is(.room-row[data-current="true"],.admin-player-row.is-active){box-shadow:inset 3px 0 var(--ui-gold)!important}
 .room-dot{background:#9be36d!important;box-shadow:none!important}
 .room-row[data-status="busy"] .room-dot{background:#f3d662!important}
 .room-row[data-status="full"] .room-dot{background:#ef7274!important}
 .city-eyebrow i{background:var(--ui-gold)!important;box-shadow:none!important}
 /* Discord keeps its original brand colours on the login screen. */
 .bright-auth .portal-controls .discord-invite{background:#5865f2!important;color:#fff!important;border-color:#ffffffd9!important;box-shadow:0 3px 12px #204a3c20!important}
 .bright-auth .portal-controls .discord-invite:hover{background:#4752c4!important;border-color:#ffffffd9!important}
 .bright-auth .portal-controls .discord-invite:focus-visible{outline-color:#fff!important}
 /* Compact HUD surfaces keep their current anchors and click areas. */
 :is(#chat-widget,#online-widget,#settings-menu,#friend-popover,.house-invite-card,.gang-invite-card,#job-guide-hud,.performance-panel,#pvp-hint,#pvp-down,#police-arrest,#police-jail,#doctor-rescue,#traffic-impound,.farm-seed-hud,#toast,.vehicle-fuel-hud,#touch-furniture-tools,.quest,.hint){
  background:#101114e6!important;color:var(--ui-text)!important;
  border:1px solid var(--ui-gold)!important;border-radius:var(--ui-radius-control)!important;
  box-shadow:0 5px 18px #0004!important;
 }
 #chat-widget{background:#101114a3!important}
 #chat-log{background:transparent!important;border-color:var(--ui-gold)!important;border-radius:var(--ui-radius-small)!important}
 #chat-widget :is(.chat-channels,.android-chat-header,.chat-form,.chat-reply){background:transparent!important;border-color:var(--ui-gold)!important}
 #chat-widget :is(.social-title,.chat-time),.farm-note,.farm-seed-hint,.farm-tap-hint{color:var(--ui-muted)!important}
 :is(#online-widget li,.farm-friend-row,.item-row,.furniture-row,.vehicle-invite-row){border-color:var(--ui-gold)!important}
 :is(.farm-visit-hud,.farm-pen-actions,.farm-friends-list){background:transparent!important}
 :is(.status-hud-money){
  background:#101114e6!important;border:1px solid var(--ui-gold)!important;
  border-radius:var(--ui-radius-control)!important;box-shadow:0 2px 6px #0004!important;
 }
 .status-hud-money::before,.status-hud-money::after{display:none!important}
 :is(#cash,#diamonds,.money-bag-icon,.money-plus){color:var(--ui-gold-soft)!important;text-shadow:none!important}
 .money-plus{right:5px!important;top:3px!important}
 /* Compact HUD buttons: dark surface, gold symbols and rounded corners. */
 :is(.canvas-wrap .hud-icon,#settings-toggle,#fullscreen-btn){
  background:#101114e6!important;border-color:var(--ui-gold)!important;
  border-radius:var(--ui-radius-control)!important;color:var(--ui-gold-soft)!important;
  box-shadow:0 2px 5px #0005!important;
 }
 :is(.canvas-wrap .hud-icon,#settings-toggle,#fullscreen-btn):is(:hover,:active,[aria-expanded="true"],[aria-pressed="true"]){
  background:#242119!important;box-shadow:inset 0 0 0 1px #dfc49955!important;
 }
 #chat-toggle .chat-bubble-icon path[fill]{fill:var(--ui-gold-soft)!important}
 #chat-toggle .chat-bubble-icon path[stroke]{stroke:var(--ui-bg)!important}
 #quickbar .hotbar-slot{
  background:transparent!important;border:0!important;border-radius:0!important;
  box-shadow:none!important;color:var(--ui-gold-soft)!important;
 }
 #quickbar .hotbar-slot::before{
  display:block!important;background:linear-gradient(145deg,#191b1ff7,#080a0df7)!important;
  border-color:var(--ui-gold)!important;border-radius:8px!important;
  box-shadow:0 2px 0 #151515,0 5px 10px #0009,inset 0 0 0 2px #dfc49926!important;
 }
 #quickbar .hotbar-slot:is(:hover,:focus-visible,:active,.just-used,.is-equipped)::before{
  background:linear-gradient(145deg,#30291d,#101114)!important;border-color:var(--ui-gold-hover)!important;
  box-shadow:0 0 10px #dfc49966,inset 0 0 0 2px #dfc49944!important;
 }
 #quickbar .hotbar-slot:focus-visible{outline:none!important}
 #quickbar .hotbar-key{color:var(--ui-gold-soft)!important;text-shadow:1px 2px 1px #000,-1px -1px 1px #000!important}
 #quickbar .hotbar-quantity{background:var(--ui-bg)!important;color:var(--ui-gold-hover)!important;border-radius:5px!important}
 [data-hotbar-slot].is-equipped::after{background:var(--ui-gold-soft)!important;border-radius:3px!important}
 .vehicle-fuel-hud{--fuel-color:var(--ui-gold-soft)!important}
 .vehicle-fuel-track{background:var(--ui-field)!important;border:1px solid var(--ui-gold)!important;border-radius:var(--ui-radius-small)!important;box-shadow:none!important}
 #vehicle-fuel-fill{background:var(--ui-gold-soft)!important;box-shadow:none!important}
 .joystick-ring,.joystick-knob{border-color:var(--ui-gold)!important;background:#10111466!important;box-shadow:inset 0 0 0 1px #dfc49933!important}
 .joystick-ring i,.joystick-knob span{border-color:var(--ui-gold)!important;background:var(--ui-gold-soft)!important}
 .performance-status::before{background:var(--ui-gold)!important;box-shadow:none!important}
 #job-guide-btn.guide-reward-ready::after{background:var(--ui-gold-hover)!important;border-color:var(--ui-gold)!important}
 /* Login, recovery, registration, downloads and loading use the same language. */
 #avatar-overlay{background:#101114f2!important;overflow:auto}
 .avatar-card{max-height:calc(100dvh - 36px);overflow:auto;box-sizing:border-box}
 .auth-card .avatar-choice{background:var(--ui-raised)!important;color:var(--ui-text)!important}
 .auth-card .avatar-choice:has(input:checked){background:var(--ui-gold-soft)!important;color:var(--ui-ink)!important}
 .auth-card .avatar-choice :is(span,b,small){color:inherit!important}
 .auth-card .card-kicker{color:var(--ui-muted)!important}
 #game-loading{background:linear-gradient(#10111440,#10111480),#101114 url('login-coast.png') center/cover no-repeat!important}
 #city-backdrop .city-shade{background:linear-gradient(90deg,#101114a8,#10111465)!important}
 .bright-auth :is(.portal-wordmark,.portal-wordmark small,.auth-intro,.city-eyebrow,.city-logo,.city-logo>span,.city-logo>strong,.city-tagline,.city-tagline strong,.neighbors-caption,.portal-footer){color:var(--ui-text)!important;text-shadow:0 2px 5px #0008!important}
 .bright-auth .city-logo em,.bright-auth .neighbors-caption span{color:var(--ui-gold-soft)!important}
 .bright-auth .portal-mark{background:var(--ui-gold-soft)!important;color:var(--ui-ink)!important;border-color:var(--ui-gold)!important;border-radius:var(--ui-radius-control)!important;box-shadow:none!important}
 .login-neighbor{border-radius:var(--ui-radius-card)!important}
 .login-neighbor figcaption{background:var(--ui-bg)!important;color:var(--ui-text)!important;border-color:var(--ui-gold)!important}
 .bright-auth .city-card::before{background:var(--ui-gold)!important}
 .bright-auth .auth-health-warning{background:var(--ui-raised)!important;border-color:var(--ui-gold)!important;border-radius:var(--ui-radius-control)!important;color:var(--ui-text)!important}
 .bright-auth .auth-health-warning :is(span,strong,small){color:inherit!important}
 .bright-auth .auth-health-warning .auth-age-badge{background:var(--ui-gold-soft)!important;color:var(--ui-ink)!important;border-color:var(--ui-gold)!important;border-radius:var(--ui-radius-small)!important}
 .bright-auth :is(.card-kicker,.auth-description,#auth-message,.field-icon,.auth-options){color:var(--ui-muted)!important}
 .bright-auth .field-wrap>svg,.bright-auth .signup-divider{color:var(--ui-muted)!important}
 .bright-auth .signup-divider::before,.bright-auth .signup-divider::after,.bright-auth .card-dot{background:var(--ui-gold)!important}
 input:is([type="checkbox"],[type="radio"]){background:var(--ui-field)!important}
 .game-loading-spinner{border-color:#c7a56a55!important;border-top-color:var(--ui-gold-hover)!important}
 :is(.panel-card,.admin-shell,#chat-log,.online-list,.farm-friends-list){scrollbar-color:var(--ui-gold) var(--ui-bg)!important}
 ::-webkit-scrollbar-thumb{background:var(--ui-gold)!important;border-radius:8px!important}
 ::-webkit-scrollbar-track{background:var(--ui-bg)!important}
}
