/* QRCode.sn Studio Visuel 4.1.0 — additive, scoped to business cards and studio controls. */
.qvs-inspector{border:1px solid #dbe7eb;border-radius:18px;background:linear-gradient(160deg,#fff,#f8fbfc);margin:12px 0;overflow:hidden}
.qvs-inspector>summary{font-weight:800;color:#132c41;padding:18px;cursor:pointer;letter-spacing:-.015em}
.qvs-inspector-body{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,235px),1fr));gap:14px;padding:16px!important}
.qvs-inspector-body>.qvs-help{grid-column:1/-1}
.qvs-control-group{min-width:0;padding:16px;border:1px solid #dfe9ed;border-radius:14px;background:#fff;box-shadow:0 2px 10px #143f5910}
.qvs-control-group h3{font-size:16px;color:#102a43;margin:0 0 7px;font-weight:800}
.qvs-help{color:#546d7b;font-size:12px;line-height:1.55;margin:6px 0 12px}
.qvs-field{display:flex;flex-direction:column;gap:6px;margin:12px 0;color:#18384a;font-size:12px;font-weight:650;min-width:0}
.qvs-field select,.qvs-field input{width:100%;max-width:100%;min-height:37px;border:1px solid #cbdce3;border-radius:9px;background:#fff;color:#1e3542;padding:6px 10px;font:inherit}
.qvs-field input[type=color]{padding:3px;height:42px;cursor:pointer}
.qvs-field input[type=range]{min-height:unset;padding:0;accent-color:#087b94}
.qvs-range-row{display:flex;align-items:center;gap:10px}.qvs-range-row output{font-size:11px;font-weight:750;white-space:nowrap;min-width:42px;text-align:right}
.qvs-inspector-actions{grid-column:1/-1;display:flex;justify-content:flex-end}
.qvs-quick{padding:15px;margin:18px 0;border-radius:16px;border:1px solid #a9d2da;background:linear-gradient(130deg,#eff9fa,#fff);color:#15344a;display:grid;gap:9px}
.qvs-quick>strong{font-size:12px;letter-spacing:.075em}.qvs-quick button{width:100%;min-height:40px}
.qvs-quick .qvs-selected{font-size:12px;background:#d9f1ec;border-radius:8px;padding:9px;margin:0;line-height:1.5;color:#123f45}
.qvs-editing [data-qrs-edit]{cursor:pointer!important;outline-offset:2px}
.qvs-editing [data-qrs-edit]:hover,.qvs-editing [data-qrs-edit]:focus-visible{outline:2px dashed #009dba!important;outline-offset:3px!important}
.qvs-editing .qvs-target-active{outline:3px solid #0ab1cc!important;outline-offset:4px!important;box-shadow:0 0 0 7px #02add01b!important}
.qvs-field-selected{outline:2px solid #12aec2;outline-offset:5px;border-radius:9px;background:#e6f9fb!important}
.qbc{--vs-background-color:#f3f7fa;--vs-background-accent:#dceef2;--vs-profile-frame-color:#1b5b75;--vs-profile-3d:0px;--vs-profile-shadow:10px;--vs-profile-zoom:100%;--vs-background-opacity:100%;--vs-background-blur:0px;--vs-background-depth:0px;--vs-cover-overlay:0%;--vs-cover-blur:0px;--vs-motion-speed:450ms;--vs-motion-delay:0ms;--vs-motion-intensity:25;position:relative;isolation:isolate}
.qbc[data-vs-bg=solid]{background-color:color-mix(in srgb,var(--vs-background-color) var(--vs-background-opacity),transparent)!important}
.qbc[data-vs-bg=gradient]{background:linear-gradient(145deg,color-mix(in srgb,var(--vs-background-color) var(--vs-background-opacity),transparent),var(--vs-background-accent))!important}
.qbc[data-vs-bg=image]{background:transparent!important;box-shadow:0 var(--vs-background-depth) 32px #102a4312}.qbc[data-vs-bg=image]::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background-image:linear-gradient(180deg,#fffffff0,#ffffffdf),var(--vs-background-image);background-size:cover;background-position:center;filter:blur(var(--vs-background-blur));opacity:var(--vs-background-opacity);border-radius:inherit}.qbc[data-vs-bg=image]>:not(.qbc-welcome){position:relative;z-index:1}
.qbc[data-vs-bg=image] .qbc-body{background:#ffffffdb;border-radius:16px;margin:0 10px 10px;padding-top:14px}
.qbc .qbc-portrait{transition:transform .35s ease,box-shadow .35s ease,border-color .35s ease;transform:translateY(calc(var(--vs-profile-3d) * -.28)) scale(var(--vs-profile-zoom));box-shadow:0 var(--vs-profile-shadow) calc(var(--vs-profile-shadow) * 1.8) #102a4328}
.qbc[data-vs-profile-frame=fine] .qbc-portrait{border:2px solid var(--vs-profile-frame-color)}
.qbc[data-vs-profile-frame=double] .qbc-portrait{border:5px double var(--vs-profile-frame-color)}
.qbc[data-vs-profile-frame=gradient] .qbc-portrait{border:5px solid transparent;background:linear-gradient(var(--card-background),var(--card-background)) padding-box,linear-gradient(125deg,var(--vs-profile-frame-color),#9fd7dd) border-box}
.qbc[data-vs-profile-frame=glass] .qbc-portrait{border:5px solid #ffffffac;box-shadow:0 8px 28px #21455a20,0 0 0 2px #9bd6df50}
.qbc[data-vs-profile-frame=raised] .qbc-portrait{border:5px solid var(--vs-profile-frame-color);box-shadow:0 18px 35px #102a4333,0 0 0 8px #ffffff5b}
.qbc[data-vs-profile-fx=soft] .qbc-portrait{box-shadow:0 12px 24px #102a4325}
.qbc[data-vs-profile-fx=depth] .qbc-portrait{box-shadow:0 22px 28px #102a433a,5px 8px 0 #d2e4e760}
.qbc[data-vs-profile-fx=glass] .qbc-portrait{box-shadow:0 13px 24px #102a431f,0 0 0 8px #ffffff82}
.qbc[data-vs-profile-fx=editorial] .qbc-portrait{box-shadow:12px 12px 0 var(--vs-profile-frame-color),0 15px 26px #102a4325}
.qbc[data-vs-profile-filter=mono] .qbc-portrait{filter:grayscale(1)}
.qbc[data-vs-profile-filter=warm] .qbc-portrait{filter:sepia(.16) saturate(1.12)}
.qbc[data-vs-profile-filter=cool] .qbc-portrait{filter:contrast(1.05) saturate(.82) hue-rotate(5deg)}
.qbc[data-vs-profile-filter=contrast] .qbc-portrait{filter:contrast(1.15) saturate(1.06)}
.qbc[data-vs-cover-fx=soft] .qbc-cover{box-shadow:0 16px 30px #102a431b}
.qbc[data-vs-cover-fx=gradient] .qbc-cover{filter:saturate(.82) contrast(1.06)}
.qbc[data-vs-cover-fx=glass] .qbc-cover{opacity:.78;filter:saturate(.85)}
.qbc[data-vs-cover-fx=depth] .qbc-cover{transform:translateY(calc(var(--vs-background-depth) * -.35));box-shadow:0 14px 26px #102a4329}
.qbc .qbc-cover{filter:blur(var(--vs-cover-blur));transition:filter .3s ease,transform .3s ease}.qbc[data-vs-has-cover=yes]::after{content:"";position:absolute;top:0;left:0;right:0;height:var(--card-cover-height);z-index:2;pointer-events:none;background:color-mix(in srgb,#102a43 var(--vs-cover-overlay),transparent)}
.qbc[data-vs-hover=lift] .qbc-action,.qbc[data-vs-hover=glow] .qbc-action,.qbc[data-vs-hover=tilt] .qbc-action{transition:transform .24s ease,box-shadow .24s ease}
@media(hover:hover){.qbc[data-vs-hover=lift] .qbc-action:hover{transform:translateY(-3px);box-shadow:0 9px 16px #102a432b}.qbc[data-vs-hover=glow] .qbc-action:hover{box-shadow:0 0 0 4px #069faf25,0 8px 22px #102a431d}.qbc[data-vs-hover=tilt] .qbc-action:hover{transform:perspective(700px) rotateX(4deg) translateY(-2px)}}
@keyframes qvs-fade{from{opacity:0}to{opacity:1}}
@keyframes qvs-rise{from{opacity:0;transform:translateY(calc(var(--vs-motion-intensity) * .16px + 4px))}to{opacity:1;transform:translateY(0)}}
@keyframes qvs-scale{from{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}
.qbc:not(.qvs-studio-card)[data-vs-entry=fade]{animation:qvs-fade var(--vs-motion-speed) ease-out var(--vs-motion-delay) both}
.qbc:not(.qvs-studio-card)[data-vs-entry=rise]{animation:qvs-rise var(--vs-motion-speed) ease-out var(--vs-motion-delay) both}
.qbc:not(.qvs-studio-card)[data-vs-entry=scale]{animation:qvs-scale var(--vs-motion-speed) ease-out var(--vs-motion-delay) both}
.qbc:not(.qvs-studio-card)[data-vs-entry=stagger] .qbc-identity{animation:qvs-rise var(--vs-motion-speed) ease-out var(--vs-motion-delay) both}
.qbc:not(.qvs-studio-card)[data-vs-entry=stagger] .qbc-actions{animation:qvs-rise var(--vs-motion-speed) ease-out calc(var(--vs-motion-delay) + 120ms) both}
.qbc:not(.qvs-studio-card)[data-vs-entry=stagger] .qbc-body{animation:qvs-fade var(--vs-motion-speed) ease-out calc(var(--vs-motion-delay) + 200ms) both}
@media(max-width:720px){.qvs-inspector-body{grid-template-columns:1fr}.qvs-inspector-actions{justify-content:stretch}.qvs-inspector-actions button{width:100%}}
@media(prefers-reduced-motion:reduce){.qbc:not(.qvs-studio-card)[data-vs-entry],.qbc:not(.qvs-studio-card)[data-vs-entry] *, .qbc .qbc-portrait,.qbc .qbc-cover,.qbc .qbc-action{animation:none!important;transition:none!important;transform:none!important;scroll-behavior:auto!important}}

.qvs-generic-preview .qrp-page-hero h1,.qvs-generic-preview .qrp-cover,.qvs-generic-preview .qrp-logo,.qvs-generic-preview .qrp-page-item,.qvs-generic-preview .qrp-contact,.qvs-generic-preview .qrp-social-link,.qvs-generic-preview .qrp-page-section{cursor:pointer}
.qvs-generic-preview .qrp-page-hero h1:hover,.qvs-generic-preview .qrp-cover:hover,.qvs-generic-preview .qrp-page-item:hover,.qvs-generic-preview .qrp-page-section:hover{outline:2px dashed #0ab1cc;outline-offset:3px}

.qvs-quality{grid-column:1/-1;border:1px solid #bbd9da;background:#f5fbfa;padding:16px;border-radius:14px}.qvs-quality h3{font-size:14px;color:#163b46;margin:0 0 10px}.qvs-quality ul{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}.qvs-quality li{font-size:12px;padding:7px 10px;border-radius:8px}.qvs-quality-ok{background:#e1f4eb;color:#115c42}.qvs-quality-todo{background:#fff2da;color:#745117}
