/* Nygui V30: tactile finish, legibility, spacing and custom vector cursors. */
@media (hover:hover) and (pointer:fine){
 html:not([data-nvg-cursor="system"]) body, html:not([data-nvg-cursor="system"]) button,
 html:not([data-nvg-cursor="system"]) a, html:not([data-nvg-cursor="system"]) select,
 html:not([data-nvg-cursor="system"]) [role="button"]{cursor:var(--nygui-cursor,auto)!important}
 html:not([data-nvg-cursor="system"]) textarea,html:not([data-nvg-cursor="system"]) input:not([type=button]):not([type=submit]){cursor:text!important}
}
.nvg-personal-touch{margin-top:18px}.nvg-personal-touch select{max-width:350px}
.nvg-effect-preference{display:flex;gap:11px;align-items:center;margin:17px 0;font-size:.94rem}
.nvg-effect-preference input{width:20px;height:20px;accent-color:var(--primary)}
.ng-stage .ng-actions{display:flex;flex-wrap:wrap;gap:16px 18px!important;margin-top:26px!important;align-items:center}
.ng-stage .ng-actions button{min-height:46px!important;padding:11px 18px!important;flex:0 0 auto}
.ng-stage .ng-actions.pp-centre{gap:17px!important;justify-content:center}
.ng-done{color:var(--ink)!important;background:color-mix(in srgb,var(--surface) 84%,var(--tint))!important;border:1px solid var(--line);padding:24px 22px!important;border-radius:22px;min-height:245px}
.ng-done h3{color:var(--ink)!important;font-size:clamp(1.45rem,3vw,2rem)!important;opacity:1!important}
.ng-done p,.ng-done .pp-completion{color:var(--muted)!important;opacity:1!important}
.ng-done-emblem{color:var(--primary)!important;filter:drop-shadow(0 2px 4px color-mix(in srgb,var(--primary) 30%, transparent))}
.ng-calm .ng-game-info,.ng-calm .ng-feedback-line{color:var(--ink)}
.pp-root .ng-primary,.pp-root .ng-secondary{border-radius:13px!important}
.nyugi-popup-emojis{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;padding:10px 2px;max-height:152px;overflow-y:auto}
.nyugi-popup-emojis[hidden]{display:none!important}
.nyugi-popup-emojis button{font-size:20px;min-width:0;min-height:38px;padding:4px!important}
.nyugi-chat-conversation form .button-row{justify-content:flex-start;gap:12px!important;margin-top:8px}
.nyugi-chat-conversation form .button-row [type=submit]{margin-left:auto}
.nyugi-profile-overlay.nygui-custom-profile-bg{background-position:center top!important;background-size:cover!important;background-repeat:no-repeat!important;background-attachment:fixed}
.nygui-custom-profile-bg .nyugi-profile-hero,.nygui-custom-profile-bg .nyugi-profile-layout>.card,.nygui-custom-profile-bg .nyugi-profile-layout>.stack>.card{background:color-mix(in srgb,var(--surface) 90%,transparent);backdrop-filter:blur(9px)}
.cc-music{margin:12px 0;display:flex;flex-wrap:wrap;align-items:center;gap:9px}
.cc-music .soft-btn{min-height:40px}
.cc-music-dock iframe{width:100%;min-height:230px;border:0;border-radius:12px}
#paintCanvas,#gardenCanvas{touch-action:none!important;user-select:none!important;-webkit-user-select:none!important}
.nvg-witching-toast{border-color:var(--primary)!important;box-shadow:0 0 20px color-mix(in srgb,var(--primary) 48%, transparent);font-style:italic}
.pp-root .pp-cafe-kitchen,.pp-root .pp-cafe-counter{background:color-mix(in srgb,var(--surface) 75%,#e1c8c4)!important;border-radius:20px}
@media(max-width:650px){.ng-stage .ng-actions{gap:13px!important}.ng-stage .ng-actions button{min-height:46px!important;flex:1 1 135px}.ng-stage .ng-actions.pp-centre{gap:13px!important}.nyugi-popup-emojis{grid-template-columns:repeat(6,minmax(0,1fr))}}
@media(prefers-reduced-motion:reduce){.ng-done-emblem{filter:none}}

/* Make cafe controls comfortable to tap and legible in illustrated light AND dark themes. */
.pp-cafe-panels>section{background:var(--surface)!important;border:1px solid var(--line)!important;color:var(--ink)!important}
.pp-cafe-panels h3{color:var(--ink)!important}.pp-cafe-panels p{color:var(--muted)!important}
.pp-cafe-panels button,.pp-cafe-guests button{min-height:44px!important}
.pp-cafe-panels .ng-actions,.pp-cafe-panels .button-row{gap:13px!important}
.ng-done .ng-primary,.ng-done .ng-secondary{margin:0!important;min-width:138px}
#ccMusicDock{max-width:min(460px,96vw);max-height:80dvh;overflow:auto}
@media(max-width:540px){.pp-cafe-panels button,.pp-cafe-guests button{min-height:46px!important}.ng-done{padding:18px!important}}

/* V30.1 registration: typed birth date, with calendar as an optional alternative. */
.nvg-birth-fieldset{border:1px solid var(--line);border-radius:15px;padding:14px 16px 16px;margin:18px 0 10px;min-width:0}
.nvg-birth-fieldset legend{font-size:.93rem;font-weight:750;padding:0 7px;color:var(--ink)}
.nvg-birth-fieldset .helper{line-height:1.5;margin:4px 0 12px}
.nvg-birth-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.25fr);gap:12px;align-items:end}
.nvg-birth-grid label{font-weight:600;font-size:.84rem;min-width:0}
.nvg-birth-grid .field{display:block;margin-top:6px;min-width:0;width:100%;box-sizing:border-box;font-size:16px;min-height:49px}
.nvg-birth-calendar{margin-top:13px}
.nvg-birth-calendar summary{color:var(--primary);text-decoration:underline;text-underline-offset:3px;cursor:pointer;font-weight:600;font-size:.86rem;min-height:40px;padding:10px 0}
.nvg-birth-calendar label{font-weight:600;font-size:.83rem;display:block}
.nvg-birth-calendar input{margin-top:6px;max-width:320px;font-size:16px}
.nvg-birth-error{color:#be3559!important;line-height:1.5;margin:10px 0 0;font-weight:650;font-size:.85rem}
.nvg-birth-error[hidden]{display:none!important}
@media(max-width:390px){.nvg-birth-fieldset{padding:13px 11px}.nvg-birth-grid{gap:7px}.nvg-birth-grid .field{padding:9px 7px}}
