/* Interface v2: one radius, one single-line size, two neutral modes. */
:root,html[data-ui-mode=dark] {
 --ui-radius:8px;--ui-bg-rgb:0 0 0;--ui-fg-rgb:238 238 238;--ui-surface-rgb:12 12 12;
 --ui-bg:#000;--ui-fg:#eee;--ui-surface:#0c0c0c;--ui-muted:#aaa;--ui-border:#333;
 --ui-primary:#eee;--ui-primary-ink:#000;--ui-focus:#ddd;
 --ui-tone-50:250 250 250;--ui-tone-100:240 240 240;--ui-tone-200:220 220 220;--ui-tone-300:200 200 200;--ui-tone-400:170 170 170;--ui-tone-500:130 130 130;--ui-tone-600:100 100 100;--ui-tone-700:70 70 70;--ui-tone-800:40 40 40;--ui-tone-900:20 20 20;--ui-tone-950:8 8 8;
 color-scheme:dark;
}
html[data-ui-mode=light] {
 --ui-bg-rgb:255 255 255;--ui-fg-rgb:24 24 24;--ui-surface-rgb:247 247 247;
 --ui-bg:#fff;--ui-fg:#181818;--ui-surface:#f7f7f7;--ui-muted:#666;--ui-border:#ccc;
 --ui-primary:#181818;--ui-primary-ink:#fff;--ui-focus:#333;
 --ui-tone-50:20 20 20;--ui-tone-100:30 30 30;--ui-tone-200:45 45 45;--ui-tone-300:65 65 65;--ui-tone-400:85 85 85;--ui-tone-500:110 110 110;--ui-tone-600:130 130 130;--ui-tone-700:165 165 165;--ui-tone-800:200 200 200;--ui-tone-900:230 230 230;--ui-tone-950:246 246 246;
 color-scheme:light;
}
html[data-ui-mode],html[data-ui-mode].x-theme {
 --ui-control-height:44px;--ui-control-height-sm:44px;--ui-control-height-lg:44px;
 --ui-control-radius:var(--ui-radius);--ui-control-focus:var(--ui-focus);
 --ui-control-accent:var(--ui-primary);--ui-control-accent-end:var(--ui-primary);
 --ui-control-border:var(--ui-border);--ui-control-surface:var(--ui-surface);--ui-control-motion:0s;
}
html[data-ui-mode],html[data-ui-mode] body {background:var(--ui-bg);color:var(--ui-fg);}
html[data-ui-mode] *,html[data-ui-mode] *::before,html[data-ui-mode] *::after {
 animation:none!important;transition:none!important;scroll-behavior:auto!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;
}
html[data-ui-mode] :is(button,input,select,textarea,summary,article,fieldset,details,[role=button],[role=dialog],[role=menu],[role=tab],.glass,.glass-strong,.glass-chip,.dm-panel,.dm-modal,.dm-quota,.dm-alert,.dm-media,.rpg-panel,[class*=rounded]) {border-radius:var(--ui-radius)!important;}
html[data-ui-mode] :is([class*=shadow-glow],[class*=shadow-2xl],[class*=shadow-xl]) {box-shadow:none!important;}
html[data-ui-mode] :is([class*="hover:-translate"],[class*="hover:scale"],[class*="group-hover:scale"]) {transform:none!important;}
html[data-ui-mode] [aria-hidden=true] > [class*=blur-] {display:none!important;}
html[data-ui-mode] div.pointer-events-none[class*=blur-] {display:none!important;}
html[data-ui-mode] body::before {background:none!important;}
html[data-ui-mode] :is([class*=bg-gradient-],.gradient-text,.gradient-text-animated) {background-image:none!important;}
html[data-ui-mode] :is(.gradient-text,.gradient-text-animated) {background:none!important;color:var(--ui-fg)!important;-webkit-text-fill-color:var(--ui-fg);}
html[data-ui-mode] [class*=bg-gradient-]:not(.gradient-text):not(.gradient-text-animated) {background-color:var(--ui-surface);}
html[data-ui-mode] :is(header,.user-menu-panel,.dm-modal,[role=menu]) {background:var(--ui-bg)!important;color:var(--ui-fg);}
html[data-ui-mode] :is(.glass,.glass-strong,.glass-chip) {background:var(--ui-surface);border-color:var(--ui-border);box-shadow:none;}

/* Content cards, multiline choices and rich text have natural height. Ordinary
   single-line controls have exactly the same external box, including selects. */
html[data-ui-mode] button:not(.notification-card):not(:has(img,video,canvas,h2,h3,p)),
html[data-ui-mode] :is(.btn-primary,.btn-ghost,.btn-danger,.btn-icon,.ui-tab,select:not([multiple]),input:not([type=checkbox],[type=radio],[type=range],[type=file],[type=color],[type=hidden])) {
 box-sizing:border-box;height:44px!important;min-height:44px!important;line-height:22px;border-width:1px;
}
html[data-ui-mode] :is(button,[role=button],summary) {font-size:14px;}
html[data-ui-mode] :is(.btn-primary,.btn-ghost,.btn-danger,.btn-icon,.ui-tab,button:not(:has(img,video,canvas,h2,h3,p))) {
 color:var(--ui-fg);border-color:var(--ui-border);background:var(--ui-surface);background-image:none!important;box-shadow:none!important;transform:none!important;
}
html[data-ui-mode] :is(.btn-primary,.player-send,button[aria-pressed=true],button[aria-selected=true]) {background:var(--ui-primary)!important;color:var(--ui-primary-ink)!important;border-color:var(--ui-primary)!important;}
html[data-ui-mode] :is(.btn-ghost,.btn-danger,.btn-icon,.ui-tab):not(:disabled):hover {background:color-mix(in srgb,var(--ui-fg) 8%,var(--ui-bg))!important;color:var(--ui-fg)!important;border-color:var(--ui-focus)!important;}
html[data-ui-mode] :is(button,.btn-primary,.btn-ghost,.btn-danger,.btn-icon):disabled {opacity:.4;cursor:not-allowed;}
html[data-ui-mode] :is(input,select,textarea,.input,.select,.textarea) {color:var(--ui-fg)!important;background-color:var(--ui-surface)!important;border-color:var(--ui-border);font-size:16px!important;}
html[data-ui-mode] :is(input,textarea)::placeholder {color:var(--ui-muted)!important;opacity:1;}
html[data-ui-mode] :is(select,option,optgroup) {color-scheme:inherit;}
html[data-ui-mode] :is(option,optgroup) {background:var(--ui-bg)!important;color:var(--ui-fg)!important;}
html[data-ui-mode] option:checked {background:var(--ui-primary)!important;color:var(--ui-primary-ink)!important;}
html[data-ui-mode] :is(button,a,input,select,textarea,summary):focus-visible {outline:2px solid var(--ui-focus)!important;outline-offset:2px;}
html[data-ui-mode] :is(input[type=checkbox],input[type=radio]) {accent-color:var(--ui-primary);}
html[data-ui-mode] :is(input[type=checkbox],input[type=radio]) {appearance:none;display:inline-grid;place-content:center;width:20px;height:20px;min-width:20px;flex-shrink:0;padding:0!important;border:1px solid var(--ui-border);vertical-align:middle;cursor:pointer;}
html[data-ui-mode] :is(input[type=checkbox],input[type=radio]):checked {background:var(--ui-primary)!important;border-color:var(--ui-primary)!important;}
html[data-ui-mode] input[type=checkbox]:checked::before {content:"";width:10px;height:6px;border:solid var(--ui-primary-ink);border-width:0 0 2px 2px;transform:rotate(-45deg);}
html[data-ui-mode] input[type=radio]:checked::before {content:"";width:7px;height:7px;background:var(--ui-primary-ink);}
html[data-ui-mode] input[type=checkbox]:indeterminate::before {content:"";width:10px;height:2px;background:var(--ui-fg);}
html[data-ui-mode] label:has(>input:is([type=checkbox],[type=radio])) {min-height:44px;display:flex;align-items:center;gap:8px;}
html[data-ui-mode] input:is([type=file],[type=color]) {height:44px;min-height:44px;}
html[data-ui-mode] .interface-mode-picker {margin:16px 0;font-size:13px;color:var(--ui-muted);}
html[data-ui-mode] .interface-mode-toggle {flex-shrink:0;}
html[data-ui-mode] .work-card [class*="bg-black/"] {background:var(--ui-surface)!important;color:var(--ui-fg)!important;}
html[data-ui-mode] :is(.btn-primary,.btn-ghost,.btn-danger,.btn-sm,.btn-lg,.ui-tab) {padding-block:10px!important;}
html[data-ui-mode] .btn-icon {padding:0!important;}
html[data-ui-mode] svg stop {stop-color:currentColor!important;}
html[data-ui-mode] svg [stroke^="#"] {stroke:var(--ui-fg)!important;}
html[data-ui-mode] svg [fill^="#"] {fill:var(--ui-fg)!important;}
html[data-ui-mode] :is(.x-badge-18,.dm-alert,.dm-danger) {background:var(--ui-surface)!important;color:var(--ui-fg)!important;border-color:var(--ui-border)!important;}
html[data-ui-mode] .data-manager {color:var(--ui-fg);--dm-border:var(--ui-border);--dm-primary:var(--ui-primary);--dm-accent:var(--ui-fg);--dm-soft:var(--ui-muted);--dm-check:var(--ui-fg);--dm-tint:128,128,128;}
html[data-ui-mode] .data-manager :is(p,label,.dm-summary,.dm-title span,.dm-trash-file span) {color:var(--ui-muted);}
html[data-ui-mode] .data-manager :is(button,.dm-button) {border-radius:var(--ui-radius);color:var(--ui-fg);}
html[data-ui-mode] .data-manager .dm-primary {background:var(--ui-primary);color:var(--ui-primary-ink);}

/* Keep Appearance API v1, layouts, story assets and stored preferences intact.
   Application day/night mode now owns the palette of the game controls too. */
html[data-ui-mode] [data-player-api] {
 --player-bg:var(--ui-bg)!important;--player-shell:var(--ui-bg)!important;--player-surface:var(--ui-surface)!important;--player-panel:var(--ui-surface)!important;--player-header:var(--ui-bg)!important;
 --player-text:var(--ui-fg)!important;--player-muted:var(--ui-muted)!important;--player-accent:var(--ui-fg)!important;--player-accent-ink:var(--ui-primary-ink)!important;
 --player-border:var(--ui-border)!important;--player-radius:var(--ui-radius)!important;--player-button:var(--ui-primary)!important;--player-button-ink:var(--ui-primary-ink)!important;
 --player-input:var(--ui-surface)!important;--player-choice:var(--ui-surface)!important;--player-scene:var(--ui-bg)!important;--player-color-scheme:inherit!important;
 --player-chat-canvas:var(--ui-bg)!important;--player-chat-ink:var(--ui-fg)!important;--player-chat-muted:var(--ui-muted)!important;--player-chat-other:var(--ui-surface)!important;--player-chat-self:var(--ui-surface)!important;--player-chat-self-ink:var(--ui-fg)!important;--player-chat-name:var(--ui-fg)!important;--player-focus:var(--ui-focus)!important;--player-shadow:none!important;
 color:var(--ui-fg);background:var(--ui-bg);
}
html[data-ui-mode] :is(.player-overlay,.player-control-panel,.player-speaker,.rpg-log,.rpg-panel) {background:var(--ui-surface)!important;color:var(--ui-fg)!important;color-scheme:inherit;}
html[data-ui-mode] :is(.player-shell,.player-reading,.player-choice,.player-speaker,.player-next,.player-chat-bubble,.player-send,.rpg-tabs button) {box-shadow:none!important;border-color:var(--ui-border)!important;border-width:1px;border-style:solid;border-radius:var(--ui-radius)!important;}
html[data-ui-mode] :is(.player-scene,.player-header) {filter:none!important;background-image:none!important;}
html[data-ui-mode] :is(.btn-primary,.btn-ghost,.btn-danger,.player-choice,.player-layout-options button,.rpg-choices button,.rpg-save-list button,.data-manager .dm-title,button.ui-multiline) {height:auto!important;min-height:44px!important;}

/* Native Chromium progress otherwise retains a green platform fill. */
html[data-ui-mode] progress {appearance:none;accent-color:var(--ui-fg);border:0;border-radius:var(--ui-radius);background:var(--ui-border);overflow:hidden;}
html[data-ui-mode] progress::-webkit-progress-bar {background:var(--ui-border);border-radius:var(--ui-radius);}
html[data-ui-mode] progress::-webkit-progress-value {background:var(--ui-fg);border-radius:var(--ui-radius);}
html[data-ui-mode] progress::-moz-progress-bar {background:var(--ui-fg);border-radius:var(--ui-radius);}
html[data-ui-mode] .rpg-error {color:var(--ui-fg);}
html[data-ui-mode] :is(.rich-editor,.rich-editor .ql-toolbar,.rich-editor .ql-picker-options,.rich-editor .ql-tooltip) {border-radius:var(--ui-radius);background:var(--ui-surface);color:var(--ui-fg);border-color:var(--ui-border);}
html[data-ui-mode] .rich-editor .ql-picker {height:44px;min-height:44px;}
html[data-ui-mode] .rich-editor .ql-picker-label {min-height:44px;display:flex;align-items:center;}

/* Quiet, consistent credential screens. */
html[data-ui-mode] .nova-auth-shell{padding:64px 24px;position:relative}
html[data-ui-mode] .nova-auth-card{background:var(--ui-bg);border:1px solid var(--ui-border);border-radius:8px;padding:40px;width:100%;max-width:440px;box-shadow:none}
html[data-ui-mode] .nova-auth-heading{align-items:flex-start;text-align:left;border-bottom:1px solid var(--ui-border);padding-bottom:28px;margin-bottom:28px}
html[data-ui-mode] .nova-auth-heading h1{font-size:30px;letter-spacing:-.6px;font-weight:450;line-height:1.35;margin-top:20px}
html[data-ui-mode] .nova-auth-heading p{font-size:13px;line-height:1.8;color:var(--ui-muted);letter-spacing:0}
html[data-ui-mode] .nova-auth-heading>div:first-child{margin-left:0;background:var(--ui-surface);border:1px solid var(--ui-border)}
html[data-ui-mode] .nova-auth-card label{font-size:13px;font-weight:450;margin-bottom:8px}
html[data-ui-mode] .nova-auth-card input{font-size:16px}
html[data-ui-mode] .nova-auth-card form{gap:20px}
@media(max-width:600px){html[data-ui-mode] .nova-auth-shell{padding:64px 16px 32px}html[data-ui-mode] .nova-auth-card{padding:28px 24px}html[data-ui-mode] .nova-auth-heading h1{font-size:27px}}
