/* DollHub shared visual language: loaded by Angular and legacy. */
:root,body[data-theme="pink"]{
 --font-body:"DM Sans","Segoe UI",sans-serif;--font-display:"Bodoni Moda",Georgia,serif;
 --bg:#fff9fa;--surface:#fff;--surface2:#fcf3f6;--surface-warm:#fcf3f6;
 --ink:#392c34;--muted:#68515e;--primary:#ac4e70;--rose:#ac4e70;--rose-deep:#913b5a;
 --line:#eddfe5;--shadow:0 8px 28px #5d304909;--shadow-soft:var(--shadow);
 --dh-radius:18px;--dh-control-radius:11px;--dh-gap:24px;
}
body[data-theme="dark"]{
 color-scheme:dark;--bg:#191217;--surface:#271d24;--surface2:#33242e;--surface-warm:#33242e;
 --ink:#f8edf2;--muted:#c5acb9;--primary:#d896af;--rose:#d896af;--rose-deep:#bb748f;--line:#49323f;--shadow:0 8px 28px #00000018;
}
body{font-family:var(--font-body);font-size:14px;line-height:1.6;background:var(--bg);color:var(--ink)}
body h1,body h2{font-family:var(--font-display);font-weight:500;letter-spacing:-.025em;line-height:1.18}
body h1{font-size:clamp(30px,3vw,42px)}body h2{font-size:clamp(23px,2vw,28px)}
body .page-head{gap:24px;align-items:center;margin-bottom:28px}body .page-head p{max-width:700px;line-height:1.7}
body .card,body .product-card,body .launch-discovery-card{border:1px solid var(--line);border-radius:var(--dh-radius);background:var(--surface);box-shadow:var(--shadow)}
body .card-body{padding:22px}body .grid{gap:var(--dh-gap)}
body .btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:10px 18px;border:1px solid var(--line);border-radius:var(--dh-control-radius);background:var(--surface);color:var(--ink);font:600 13px/1.3 var(--font-body);text-decoration:none;transition:background .16s,border-color .16s;box-shadow:none;transform:none}
body .btn.primary{background:var(--primary);border-color:var(--primary);color:#fff}
body[data-theme="dark"] .btn.primary{color:#21141b}
body .btn.soft{background:var(--surface2);color:var(--primary)}body .btn.danger{background:transparent;color:var(--primary);border-color:color-mix(in srgb,var(--primary) 35%,var(--line))}
body .btn.small,body .btn.tiny{min-height:36px;font-size:12px;padding:8px 13px}
body .btn:hover{border-color:var(--primary);background:var(--surface2)}body .btn.primary:hover{background:var(--rose-deep);color:white}
body .btn:disabled{opacity:.5;cursor:not-allowed}body :is(button,input,select,textarea,a,summary):focus-visible{outline:2px solid var(--primary);outline-offset:3px}
body .head-actions,body .form-actions,body .dh-participant-actions,body .dh-chat-toolbar{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
body .card-body>.btn+.btn{margin-left:10px}body :is(.head-actions,.form-actions)>.btn{margin:0}
body .field{display:grid;gap:8px;min-width:0;font:500 13px/1.5 var(--font-body)}
body .field :is(input:not([type=checkbox]):not([type=radio]):not([type=color]),select,textarea){width:100%;min-height:44px;border:1px solid var(--line);border-radius:var(--dh-control-radius);padding:11px 13px;background:var(--surface);color:var(--ink);font:400 14px/1.5 var(--font-body)}
body .field textarea{min-height:96px;resize:vertical}body input::placeholder,body textarea::placeholder{color:var(--muted);opacity:.85}
body .field input[type=file]{font-size:12px}body input::file-selector-button{border:0;border-radius:8px;background:var(--surface2);color:var(--primary);padding:8px 12px;margin-right:10px;font:500 12px var(--font-body);cursor:pointer}
body .form-grid{gap:18px}body .badge{font-family:var(--font-body);border-radius:20px;padding:5px 10px;font-size:12px;line-height:1.4}
body .modal{border-radius:22px;border:1px solid var(--line);box-shadow:0 24px 80px #24101b30;background:var(--surface);scrollbar-width:thin}
body .modal-head{padding:20px 24px;border-color:var(--line)}body .modal-head h2{font:500 26px/1.2 var(--font-display)}body .modal-content{padding:24px}
body .modal-backdrop{background:#24141e66;backdrop-filter:blur(5px)}body .modal-x{color:var(--muted);background:var(--surface2);border-radius:50%;width:36px;height:36px;flex:none}
body:has(.modal-backdrop){overflow:hidden}
body .table-wrap{border:1px solid var(--line);border-radius:14px;box-shadow:none}body th{background:var(--surface2);color:var(--muted);font-weight:600}body td,body th{padding:14px 16px;border-color:var(--line)}
html{scrollbar-width:thin;scrollbar-color:#cba9b6 transparent;scrollbar-gutter:stable}body[data-theme=dark]{scrollbar-color:#79566b transparent}
*::-webkit-scrollbar{width:7px;height:7px}*::-webkit-scrollbar-thumb{background:#cba9b6;border-radius:20px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-button{display:none}
body .sidebar{scrollbar-width:none}body .sidebar::-webkit-scrollbar{width:0}body .sidebar:is(:hover,:focus-within){scrollbar-width:thin}
@media(max-width:650px){:root{--dh-gap:16px}body .card-body{padding:18px}body .page-head{align-items:flex-start;gap:16px}body .form-actions{gap:10px}body .modal-content,body .modal-head{padding:18px}body .modal-backdrop{padding:12px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}
/* Quiet blush surfaces shared by the Angular and legacy interfaces. */
:root{--pearl-fill:#f7eff2;--metal-fill:#a34d6b;--metal-hover:#873d58;--metal-ink:#fff;--metal-edge:#a34d6b;--metal-glow:transparent}
body[data-theme=dark]{--pearl-fill:#30242c;--metal-fill:#d69ab0;--metal-hover:#e3b2c4;--metal-ink:#291923}
body :is(.btn,.primary-button,.hero-cta,.primary-action,.sample-button-primary,.detail-save-button,.dh-theme-toggle,.dh-account-trigger){background-image:none;box-shadow:none;text-shadow:none}
body :is(.btn.primary,.primary-button,.hero-cta,.primary-action,.sample-button-primary,.detail-save-button){background:var(--metal-fill);color:var(--metal-ink);border-color:transparent}
body :is(.btn.primary,.primary-button,.hero-cta,.primary-action,.sample-button-primary,.detail-save-button):hover{background:var(--metal-hover);color:var(--metal-ink);box-shadow:none}
body :is(.btn.primary,.primary-button,.hero-cta,.primary-action,.sample-button-primary,.detail-save-button)::after{content:none}
body :is(.btn:not(.primary),.dh-theme-toggle,.dh-account-trigger){background:var(--surface);box-shadow:none}
body .btn.soft{background:var(--surface2)}body .card :is(.tiny,.muted){opacity:1}

