/* Admin-only Form 13 preview. All selectors scoped to the signed preview shell. */
body.vukx-client-project-active{background:#f6f8f8}
#vukx-client-project{padding:54px 20px 85px;color:#23363b}
#vukx-client-project *{box-sizing:border-box}
#vukx-client-project .vukx-client-shell{max-width:920px;margin:0 auto}
#vukx-client-project .vukx-client-intro{text-align:center;margin:0 auto 30px;max-width:680px}
#vukx-client-project .vukx-client-eyebrow{display:block;font-size:11px;letter-spacing:.18em;font-weight:700;color:#42847e;margin-bottom:13px}
#vukx-client-project .vukx-client-intro h1{font-size:clamp(30px,4vw,44px);line-height:1.14;letter-spacing:-.035em;color:#20353a;font-weight:650;margin:0 0 13px;text-shadow:none}
#vukx-client-project .vukx-client-intro p{font-size:16px;line-height:1.65;color:#64777b;margin:0 auto 16px}
#vukx-client-project .vukx-client-preview-badge{display:inline-flex;padding:7px 12px;border-radius:40px;background:#f7ecda;border:1px solid #edd6ad;color:#856333;font-size:12px}
#vukx-client-project .vukx-client-card{border-radius:19px;border:1px solid #dfe9e7;background:#fff;box-shadow:0 16px 54px rgba(39,66,70,.07);padding:38px 43px 32px;overflow:hidden}
#vukx-client-project .vukx-client-step{display:flex;justify-content:space-between;gap:24px;align-items:center}
#vukx-client-project .vukx-client-step-count{font-size:11px;letter-spacing:.12em;color:#53918a;font-weight:750}
#vukx-client-project .vukx-client-step h2{font-size:26px;line-height:1.2;margin:8px 0 7px;font-weight:650;color:#1e3639;letter-spacing:-.025em;text-shadow:none}
#vukx-client-project .vukx-client-step p{font-size:14px;line-height:1.55;margin:0;color:#738185}
#vukx-client-project .vukx-client-step-pct{font-size:24px;font-weight:600;color:#598b86}
#vukx-client-project .vukx-client-progress{height:5px;background:#e9f0ee;border-radius:20px;margin:25px 0 31px;overflow:hidden}
#vukx-client-project .vukx-client-progress>div{height:100%;background:linear-gradient(90deg,#81aea0,#357a79);border-radius:20px;transition:width .28s}
#vukx-client-project .gform_wrapper,#vukx-client-project .gform-theme--foundation{max-width:none!important;margin:0!important}
#vukx-client-project .gform_heading,#vukx-client-project .gf_progressbar_wrapper,#vukx-client-project .gform_page .progress_bar1{display:none!important}
#vukx-client-project .gform_fields{column-gap:20px;row-gap:24px}
#vukx-client-project .gfield_label,#vukx-client-project .gform-field-label{font-family:inherit;font-size:14px;line-height:1.4;font-weight:650;color:#2b4547;margin-bottom:8px}
#vukx-client-project .gfield_description{font-size:12px;line-height:1.55;color:#72868a;padding-top:6px}
#vukx-client-project .gfield_required{color:#c5665d}
#vukx-client-project input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=submit]):not([type=button]),#vukx-client-project select,#vukx-client-project textarea{display:block;width:100%;max-width:100%;min-height:47px;border:1px solid #d5e1e1;border-radius:9px;background:#fbfcfc;color:#284143;font-size:14px;padding:11px 13px;box-shadow:none;transition:border-color .15s,box-shadow .15s}
#vukx-client-project textarea{min-height:142px;resize:vertical}
#vukx-client-project input:focus,#vukx-client-project select:focus,#vukx-client-project textarea:focus{border-color:#458c88;outline:none;box-shadow:0 0 0 3px rgba(69,140,136,.11)}
#vukx-client-project .gfield--type-html{margin:0!important;min-height:0}
#vukx-client-project .gfield--type-html:has(>.gfield_html:empty){display:none}
#vukx-client-project .gform_page_footer{margin-top:30px!important;border-top:1px solid #e8eeee;padding-top:24px!important;display:flex!important;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}
#vukx-client-project .gform_page_footer button,#vukx-client-project .gform_page_footer input[type=button],#vukx-client-project .gform_page_footer input[type=submit]{border:0!important;border-radius:9px!important;padding:12px 23px!important;min-height:44px!important;font-weight:650!important;font-size:14px!important;background:#397f7a!important;color:white!important;cursor:pointer}
#vukx-client-project .gform_page_footer .gform_previous_button{margin-right:auto!important;background:#eaf2f1!important;color:#397873!important}
#vukx-client-project .gform_page_footer input[type=submit]{opacity:.65;cursor:not-allowed}
#vukx-client-project .validation_error,#vukx-client-project .gform_validation_errors{border:1px solid #dfb3a7;background:#fff5f1;color:#a74f42;padding:14px 16px;border-radius:9px}
#vukx-client-project .vukx-client-foot{font-size:12px;color:#839396;text-align:center;margin:18px 0 0}
#vukx-client-project .vukx-client-card .gfield_html br:only-child{display:none}
@media(max-width:700px){#vukx-client-project{padding:30px 12px 45px}#vukx-client-project .vukx-client-card{padding:24px 18px;border-radius:13px}#vukx-client-project .vukx-client-step h2{font-size:22px}#vukx-client-project .vukx-client-step-pct{font-size:19px}#vukx-client-project .gform_fields{row-gap:17px}}

/* v0.112: compact radial progress, with the original linear indicator retained for clarity. */
#vukx-client-project .vukx-client-step-ring{--vukx-client-progress:14;flex:0 0 78px;width:78px;height:78px;aspect-ratio:1;border-radius:50%;background:conic-gradient(#357f79 calc(var(--vukx-client-progress)*1%),#e8efed 0);display:grid;place-items:center;position:relative;isolation:isolate}
#vukx-client-project .vukx-client-step-ring:before{content:"";position:absolute;inset:7px;border-radius:50%;background:#fff;z-index:-1}
#vukx-client-project .vukx-client-step-ring [data-vukx-pct]{font-size:17px;letter-spacing:-.03em;font-weight:700;color:#326f6a;white-space:nowrap}
/* Gravity Forms date picker trigger: no green theme button background. */
#vukx-client-project .gform-datepicker-toggle,#vukx-client-project button[id^="datepicker_toggle_input_"]{display:inline-flex!important;justify-content:center!important;align-items:center!important;flex:0 0 40px!important;width:40px!important;min-width:40px!important;max-width:40px!important;height:40px!important;min-height:40px!important;padding:0!important;margin:0!important;background:#f4f8f7!important;background-image:none!important;color:#387974!important;border:1px solid #d5e1e1!important;border-radius:9px!important;box-shadow:none!important;transform:none!important;line-height:1!important}
#vukx-client-project .gform-datepicker-toggle:hover,#vukx-client-project button[id^="datepicker_toggle_input_"]:hover{background:#e8f3f0!important;border-color:#a4cbc2!important}
#vukx-client-project .gform-datepicker-toggle .dashicons,#vukx-client-project .gform-datepicker-toggle .gform-calendar-icon{display:inline-block!important;color:inherit!important;background:transparent!important;line-height:20px!important;width:20px!important;height:20px!important;margin:0!important;font-size:20px!important}
/* Align the Previous label by neutralising theme-specific padding, text-indent and pseudo content. */
#vukx-client-project .gform_page_footer input.gform_previous_button,#vukx-client-project .gform_page_footer button.gform_previous_button{display:inline-flex!important;align-items:center!important;justify-content:center!important;align-self:center!important;text-align:center!important;text-indent:0!important;letter-spacing:normal!important;line-height:20px!important;min-width:112px!important;padding:12px 23px!important;transform:none!important;box-shadow:none!important}
#vukx-client-project .gform_page_footer .gform_previous_button:before,#vukx-client-project .gform_page_footer .gform_previous_button:after{content:none!important;display:none!important}
@media(max-width:700px){#vukx-client-project .vukx-client-step-ring{flex-basis:64px;width:64px;height:64px}#vukx-client-project .vukx-client-step-ring:before{inset:6px}#vukx-client-project .vukx-client-step-ring [data-vukx-pct]{font-size:15px}}

/* v0.113: Our radial progress replaces the legacy GF Nice Progress Bar. */
#vukx-client-project .gf_nice_progressbar,
#vukx-client-project .gf_nice_progressbar.total-step-7.wrap-style5,
#vukx-client-project .total-step-7.wrap-style5,
#vukx-client-project .gf_nice_progressbar_wrapper{display:none!important}

/* v0.114: align eyebrow with the main shell and add breathing room above. */
#vukx-client-project{padding-top:76px}
#vukx-client-project .vukx-client-intro{max-width:none;text-align:left;margin:0 0 28px}
#vukx-client-project .vukx-client-intro h1,#vukx-client-project .vukx-client-intro p{text-align:left;margin-left:0}
#vukx-client-project .vukx-client-eyebrow{margin:0 0 18px}
#vukx-client-project .vukx-client-progress{display:none!important}
#vukx-client-project .vukx-casting-panel{background:#f4faf8;border:1px solid #c5ded7;border-radius:17px;margin:0 0 24px;padding:25px}
#vukx-client-project .vukx-casting-panel h2{font-size:18px;color:#275c54;margin:0 0 9px}
#vukx-client-project .vukx-casting-panel p{font-size:14px;color:#456a65;line-height:1.5;margin:0 0 18px}
#vukx-client-project .vukx-casting-artists{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:18px 12px}
#vukx-client-project .vukx-casting-artist{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;text-decoration:none!important;min-width:0;color:#254b48}
#vukx-client-project .vukx-casting-artist img,#vukx-client-project .vukx-casting-placeholder{width:67px;height:67px;object-fit:cover;border-radius:50%;background:#e0efeb;display:grid;place-items:center;color:#477c74;font-weight:750}
#vukx-client-project .vukx-casting-artist span:last-child{font-size:12px;font-weight:650;line-height:1.25}
#vukx-client-project .vukx-casting-error{color:#993f35;background:#fff1ee;border:1px solid #ebc7c0;padding:14px;border-radius:8px;margin-bottom:18px}
#vukx-client-project.vukx-has-private-casting [id$="_86"],#vukx-client-project.vukx-has-private-casting [id$="_114"]{display:none!important}
@media(max-width:700px){#vukx-client-project{padding-top:45px}#vukx-client-project .vukx-casting-artists{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px 8px}}
@media(max-width:420px){#vukx-client-project .vukx-casting-artists{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* v0.117: consistent header spacing and form-field polish. */
#vukx-client-project{padding-top:96px}
#vukx-client-project .vukx-client-intro{margin-bottom:36px}
#vukx-client-project .vukx-client-eyebrow{text-align:left;margin-bottom:18px}
#vukx-client-project .vukx-client-step{margin-bottom:22px}
#vukx-client-project .vukx-client-step p{margin-bottom:0}
#vukx-client-project select{padding-right:38px!important;background-position:right 15px center!important}
#vukx-client-project .ginput_container_date{display:flex!important;align-items:center!important;gap:6px!important;min-width:0}
#vukx-client-project .ginput_container_date input{flex:1 1 auto!important;width:auto!important;min-width:0!important}
#vukx-client-project .ginput_container_date .gform-datepicker-toggle,#vukx-client-project .ginput_container_date button[id^="datepicker_toggle_input_"]{width:47px!important;min-width:47px!important;max-width:47px!important;flex:0 0 47px!important;height:47px!important;min-height:47px!important;margin:0!important}
#vukx-client-project .vukx-casting-choice[hidden],#vukx-client-project .vukx-casting-choice-feedback[hidden]{display:none!important}
#vukx-client-project .vukx-casting-choice{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;padding:22px 25px;margin-bottom:24px;background:#f3f9f7;border:1px solid #cbded8;border-radius:16px}
#vukx-client-project .vukx-casting-choice-copy{flex:1 1 290px}
#vukx-client-project .vukx-casting-choice-label{font-size:10px;font-weight:750;letter-spacing:.13em;color:#47857c}
#vukx-client-project .vukx-casting-choice h2{font-size:19px;line-height:1.35;margin:5px 0 4px;color:#264743}
#vukx-client-project .vukx-casting-choice p{font-size:13px;line-height:1.5;color:#56746f;margin:0}
#vukx-client-project .vukx-casting-choice-actions{display:flex;gap:9px;flex-wrap:wrap}
#vukx-client-project .vukx-casting-choice-actions button{border-radius:9px;border:1px solid #3d8179;padding:11px 15px;cursor:pointer;font-size:13px;font-weight:650;white-space:nowrap}
#vukx-client-project .vukx-choice-private{background:#397f7a;color:#fff}
#vukx-client-project .vukx-choice-open{background:transparent;color:#397f7a}
#vukx-client-project .vukx-casting-choice .vukx-casting-choice-feedback{flex-basis:100%;color:#9a4d43}
@media(max-width:700px){#vukx-client-project{padding-top:65px}#vukx-client-project .vukx-casting-choice{padding:18px}#vukx-client-project .vukx-casting-choice-actions{width:100%}#vukx-client-project .vukx-casting-choice-actions button{flex:1 1 140px}}

/* v0.118: private invitation mode-switch controls */
#vukx-client-project .vukx-casting-panel-actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-top:20px}
#vukx-client-project .vukx-casting-panel-actions button{padding:10px 14px;font-size:12px;font-weight:650;border:1px solid #397f7a;border-radius:9px;cursor:pointer;line-height:1.5}
#vukx-client-project .vukx-casting-panel-actions .vukx-casting-clear{background:transparent;color:#397f7a}
#vukx-client-project .vukx-casting-panel-actions .vukx-casting-use-shortlist{background:#397f7a;color:#fff}
#vukx-client-project .vukx-casting-panel-actions button[hidden],#vukx-client-project .vukx-casting-panel-feedback[hidden]{display:none!important}
#vukx-client-project .vukx-casting-panel-feedback{font-size:12px;color:#9a4d43;margin-top:10px}
@media(max-width:520px){#vukx-client-project .vukx-casting-panel-actions{flex-direction:column;align-items:stretch}#vukx-client-project .vukx-casting-panel-actions button{width:100%;white-space:normal}}

/* v0.119: a single invited voice fixes the selected timbre, without disabling the
   actual GF control (field #36 depends on its value and change events). */
#vukx-client-project [id$="_70"].vukx-single-timbre-locked select{pointer-events:none!important;cursor:default!important;background-color:#edf3f1!important;border-color:#d5e3df!important;color:#456663!important;opacity:1!important}
#vukx-client-project [id$="_70"] .vukx-locked-timbre-note{display:block;color:#47736a;font-size:12px;line-height:1.6}

/* v0.122 casting decisions and inline shortlist management */
#vukx-client-project .vukx-casting-artist-wrap{position:relative;min-width:0;text-align:center}
#vukx-client-project .vukx-casting-artists .vukx-casting-remove{position:absolute;top:-5px;right:calc(50% - 43px);display:grid!important;place-items:center!important;border:2px solid #fff!important;background:#385f5b!important;color:white!important;width:25px!important;height:25px!important;min-width:25px!important;min-height:25px!important;padding:0!important;line-height:1!important;border-radius:50%!important;font-size:19px!important;cursor:pointer;box-shadow:0 2px 6px #193b3933}
#vukx-client-project .vukx-casting-panel-actions button{display:inline-flex!important;justify-content:center!important;align-items:center!important;min-height:41px!important;height:auto!important;line-height:1.35!important;white-space:normal!important;box-shadow:none!important;text-align:center!important}
#vukx-client-project .vukx-casting-panel-actions .vukx-casting-clear{color:#345b57!important;background:#fff!important;border:1px solid #b8d3cc!important}
#vukx-client-project .vukx-casting-panel-actions .vukx-casting-use-shortlist{color:#fff!important;background:#397f7a!important;border:1px solid #397f7a!important}
#vukx-client-project .vukx-casting-choice-actions .vukx-choice-private{color:#fff!important;background:#397f7a!important}
#vukx-client-project .vukx-casting-choice-actions .vukx-choice-open{color:#31534d!important;background:#fff!important;border-color:#abcac1!important}
.vukx-casting-modal[hidden]{display:none!important}.vukx-casting-modal{position:fixed;inset:0;z-index:2147483000;display:grid;place-items:center;padding:20px}.vukx-casting-modal-shade{position:absolute;inset:0;background:rgba(21,42,43,.6);backdrop-filter:blur(2px)}.vukx-casting-modal-box{position:relative;width:min(440px,100%);background:#fff;border-radius:18px;padding:30px;box-shadow:0 20px 70px #172d2d44;color:#304946;text-align:center}.vukx-casting-modal-mark{display:grid;margin:0 auto 13px;width:42px;height:42px;border-radius:50%;place-items:center;background:#e9f3f0;color:#397f7a;font-weight:bold;font-size:23px}.vukx-casting-modal-box h2{font-size:21px;margin:0 0 10px;color:#284945}.vukx-casting-modal-box p{font-size:14px;line-height:1.55;margin:0 0 23px;color:#687c77}.vukx-casting-modal-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:10px}.vukx-casting-modal-actions button{min-height:42px;border-radius:9px;padding:10px 17px!important;font-size:13px!important;font-weight:700!important;cursor:pointer;border:1px solid #c9d9d5!important;background:white!important;color:#31534d!important}.vukx-casting-modal-actions .vukx-confirm-accept{background:#397f7a!important;border-color:#397f7a!important;color:#fff!important}body.vukx-casting-modal-open{overflow:hidden}
#vukx-client-project .vukx-recent-voices[hidden],#vukx-client-project .vukx-recent-feedback[hidden]{display:none!important}
#vukx-client-project .vukx-recent-voices{padding:21px 25px;margin:0 0 24px;background:#f4faf8;border:1px solid #cbded8;border-radius:16px}
#vukx-client-project .vukx-recent-voices h2{margin:4px 0 3px;font-size:18px;color:#284b46}
#vukx-client-project .vukx-recent-voices p{margin:0 0 17px;font-size:13px;color:#607c77}
#vukx-client-project .vukx-recent-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
#vukx-client-project .vukx-recent-item{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;min-width:0}
#vukx-client-project .vukx-recent-photo{display:grid;place-items:center;background:#e0efeb;width:64px;height:64px;border-radius:50%;overflow:hidden;color:#397f7a;font-weight:750}
#vukx-client-project .vukx-recent-photo img{width:100%;height:100%;object-fit:cover}
#vukx-client-project .vukx-recent-name{font-size:11px;color:#2c5752;line-height:1.3;text-decoration:none}
#vukx-client-project .vukx-recent-add{position:absolute;top:-4px;left:calc(50% + 13px);background:#397f7a!important;color:white!important;border:2px solid white!important;border-radius:50%!important;width:25px!important;height:25px!important;min-width:25px!important;min-height:25px!important;padding:0!important;font-size:18px!important;line-height:1!important;cursor:pointer}
#vukx-client-project .vukx-recent-actions{display:flex;justify-content:flex-end;margin-top:16px}
#vukx-client-project .vukx-recent-open{padding:9px 16px!important;background:white!important;color:#2a5751!important;border:1px solid #b1d0c6!important;border-radius:9px!important;font-size:12px!important;font-weight:700!important}
@media(max-width:600px){#vukx-client-project .vukx-recent-grid{grid-template-columns:repeat(3,minmax(0,1fr))}#vukx-client-project .vukx-recent-voices{padding:17px}}

/* v0.126: compact recently viewed casting picker and genuine full-width actions. */
#vukx-client-project .vukx-recent-voices{padding:15px 18px!important;margin-bottom:16px!important}
#vukx-client-project .vukx-recent-voices h2{font-size:17px!important}
#vukx-client-project .vukx-recent-voices p{margin-bottom:12px!important}
#vukx-client-project .vukx-recent-grid{gap:8px!important}
#vukx-client-project .vukx-recent-photo{width:52px!important;height:52px!important}
#vukx-client-project .vukx-recent-item{gap:4px!important}
#vukx-client-project .vukx-recent-add{font-family:Arial,sans-serif!important;font-size:17px!important;display:flex!important;justify-content:center!important;align-items:center!important;line-height:1!important;top:-3px!important;left:calc(50% + 9px)!important;text-transform:none!important;letter-spacing:normal!important}
#vukx-client-project .vukx-recent-add.is-selected{background:#215c54!important}
#vukx-client-project .vukx-recent-bottom{display:flex;flex-direction:column;gap:9px;margin-top:12px}
#vukx-client-project .vukx-recent-count{color:#66817b;font-size:12px}
#vukx-client-project .vukx-recent-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px!important;margin-top:0!important}
#vukx-client-project .vukx-recent-actions button{width:auto!important;max-width:100%;min-height:37px!important;font-size:12px!important;font-family:inherit!important;white-space:nowrap!important;line-height:1.3!important;padding:9px 13px!important;border-radius:8px!important;letter-spacing:normal!important;text-transform:none!important}
#vukx-client-project .vukx-recent-start{background:#397f7a!important;color:#fff!important;border:1px solid #397f7a!important;font-weight:700!important}
#vukx-client-project .vukx-recent-start[hidden]{display:none!important}
#vukx-client-project .vukx-recent-open{background:#fff!important;color:#27584f!important;border:1px solid #bdd6d0!important}
@media(max-width:520px){#vukx-client-project .vukx-recent-actions{justify-content:stretch}#vukx-client-project .vukx-recent-actions button{flex:1 1 100%;white-space:normal!important}}

/* v0.127: prevent silent waiting while a new private casting session is generated. */
#vukx-client-project .vukx-casting-panel.vukx-casting-pending{position:relative;pointer-events:none;opacity:.75}
#vukx-client-project .vukx-casting-panel.vukx-casting-pending:after{content:"Updating your invitations…";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-align:center;background:rgba(244,250,248,.86);color:#265f57;font-size:14px;font-weight:700;border-radius:17px;z-index:6}
#vukx-client-project .vukx-casting-panel.vukx-casting-pending:before{content:"";position:absolute;width:23px;height:23px;left:calc(50% - 12px);top:calc(50% - 49px);border:3px solid #bdd9d1;border-top-color:#2e7378;border-radius:50%;animation:vukx-casting-spin .7s linear infinite;z-index:7}
@keyframes vukx-casting-spin{to{transform:rotate(360deg)}}
#vukx-client-project.vukx-has-private-casting .vukx-recent-voices{background:#fff;border-color:#dae8e3}
#vukx-client-project.vukx-has-private-casting .vukx-recent-voices .vukx-recent-open{display:none!important}
#vukx-client-project .vukx-recent-voices .vukx-recent-open[hidden]{display:none!important}

/* v0.134: buttons must accommodate loading copy without text clipping. */
#vukx-client-project .vukx-choice-private,#vukx-client-project .vukx-recent-start,#vukx-client-project .vukx-casting-use-shortlist,#vukx-client-project .vukx-casting-panel-actions button{width:auto!important;min-width:max-content!important;max-width:100%!important;white-space:nowrap!important;padding-inline:18px!important;flex-shrink:0!important;text-overflow:clip!important;overflow:visible!important}
@media(max-width:480px){#vukx-client-project .vukx-choice-private,#vukx-client-project .vukx-recent-start,#vukx-client-project .vukx-casting-use-shortlist{min-width:0!important;white-space:normal!important}}
#vukx-client-project .vukx-private-similar{padding:15px 19px;margin:0 0 16px;background:#fffdf9;border:1px solid #d8e7e0;border-radius:15px}
#vukx-client-project .vukx-private-similar h2{font:650 17px/1.35 'Open Sans',Arial,sans-serif;color:#284b46;margin:4px 0}
#vukx-client-project .vukx-private-similar p{font:400 12px/1.45 'Open Sans',Arial,sans-serif;color:#607c77;margin:0 0 12px}
#vukx-client-project .vukx-private-similar-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px}
#vukx-client-project .vukx-private-similar-person{position:relative;min-width:0;text-align:center;display:flex;flex-direction:column;align-items:center;gap:4px}
#vukx-client-project .vukx-private-similar-person a{display:flex;flex-direction:column;align-items:center;gap:5px;text-decoration:none!important;color:#2a5550!important;font:600 11px/1.35 'Open Sans',Arial,sans-serif}
#vukx-client-project .vukx-private-similar-person img,#vukx-client-project .vukx-private-similar-initial{height:52px;width:52px;object-fit:cover;border-radius:50%;background:#e1efea;display:grid;place-items:center}
/* Match the circular, photo-overlaid + control used by Recently viewed on every viewport. */
#vukx-client-project .vukx-private-similar-add{position:absolute!important;top:-3px!important;left:calc(50% + 9px)!important;display:flex!important;align-items:center!important;justify-content:center!important;background:#397f7a!important;color:#fff!important;border:2px solid #fff!important;border-radius:50%!important;width:25px!important;height:25px!important;min-width:25px!important;min-height:25px!important;padding:0!important;font:700 17px/1 Arial,sans-serif!important;letter-spacing:normal!important;text-transform:none!important;white-space:nowrap!important;cursor:pointer;z-index:1}
#vukx-client-project .vukx-private-similar-add:focus-visible{outline:2px solid #204a50!important;outline-offset:2px}
#vukx-client-project .vukx-private-similar-add.is-loading{opacity:.7;cursor:wait!important}
#vukx-client-project .vukx-private-similar-feedback{color:#a34338!important}
@media(max-width:520px){#vukx-client-project .vukx-private-similar-list{grid-template-columns:repeat(2,minmax(0,1fr))}}

#vukx-client-project .vukx-client-form-warning{padding:15px 18px;border:1px solid #e2bb95;border-radius:9px;background:#fff9f1;color:#704e31;font-size:14px}
/* Administrator-only stage indicator when a private GF preview cannot render. */
#vukx-client-project .vukx-form-debug{font:500 11px/1.5 'Open Sans',sans-serif;color:#71888b;margin:14px 0 0}
#vukx-client-project .vukx-client-form-warning{background:#fff8e8;border:1px solid #eddaa6;color:#634f30;padding:15px;border-radius:10px;margin:14px 0}

/* Smoothly dismiss optional shortlist invitation when opening casting to all */
#vukx-client-project .vukx-casting-choice{transition:opacity .3s ease,transform .3s ease,max-height .3s ease,padding .3s ease,margin .3s ease,border-width .3s ease;max-height:360px;overflow:hidden}
#vukx-client-project .vukx-casting-choice.is-dismissing{opacity:0;transform:translateY(-10px);max-height:0;padding-top:0;padding-bottom:0;margin-bottom:0;border-width:0;pointer-events:none}
@media(prefers-reduced-motion:reduce){#vukx-client-project .vukx-casting-choice{transition:none}}

/* v0.272 – retain an informative open-casting state instead of dismissing the card */
#vukx-client-project .vukx-casting-choice.is-switching{opacity:.55;transform:translateY(3px);transition:opacity .2s ease,transform .2s ease}
#vukx-client-project .vukx-casting-choice.is-open-to-all{background:#f0f9f3;border-color:#c0dcc9}
#vukx-client-project .vukx-casting-choice-actions[hidden]{display:none!important}

/* v0.279 — Keep Gravity Forms' AJAX progress indicator next to, never over, Next. */
#vukx-client-project .gform_page_footer .gform_ajax_spinner,
#vukx-client-project .gform_page_footer img.gform_ajax_spinner,
#vukx-client-project .gform_page_footer .gform-loader,
#vukx-client-project .gform_page_footer .gform-loader-wrapper{
 position:static!important;inset:auto!important;top:auto!important;right:auto!important;bottom:auto!important;left:auto!important;
 transform:none!important;float:none!important;display:inline-flex!important;
 width:20px!important;height:20px!important;max-width:20px!important;max-height:20px!important;
 margin:0 4px 0 auto!important;padding:0!important;flex:0 0 20px!important;
 align-self:center!important;order:1!important;z-index:auto!important;pointer-events:none!important;
}
#vukx-client-project .gform_page_footer .gform_next_button,
#vukx-client-project .gform_page_footer input.gform_next_button,
#vukx-client-project .gform_page_footer button.gform_next_button{order:2!important;position:relative!important}
#vukx-client-project .gform_page_footer .gform_previous_button{order:0!important}
#vukx-client-project .gform_page_footer .gform_ajax_spinner[hidden]{display:none!important}


/* v0.280 — the loading indicator is a separate footer item, NEVER button content. */
#vukx-client-project .gform_page_footer .vukx-gf-next-progress{
 display:none!important;position:relative!important;order:1!important;
 width:22px!important;height:22px!important;min-width:22px!important;
 margin:0 4px 0 auto!important;padding:0!important;
 flex:0 0 22px!important;align-self:center!important;justify-content:center!important;align-items:center!important;
 background:transparent!important;border:0!important;box-shadow:none!important;pointer-events:none!important;
}
#vukx-client-project .gform_page_footer .vukx-gf-next-progress:has(> *){display:inline-flex!important}
#vukx-client-project .gform_page_footer .vukx-gf-next-progress > *{
 display:block!important;position:static!important;transform:none!important;inset:auto!important;
 width:20px!important;height:20px!important;margin:0!important;padding:0!important;
 max-width:20px!important;max-height:20px!important;flex:none!important;
}
#vukx-client-project .gform_page_footer .vukx-gf-next-progress:has(.gform-loader-wrapper) .gform-loader-wrapper{display:flex!important;align-items:center!important;justify-content:center!important}
#vukx-client-project .gform_page_footer .gform_next_button{flex:0 0 auto!important;order:2!important;white-space:nowrap!important}
/* A theme's button-level loader must not expand the Next label or button. */
#vukx-client-project .gform_page_footer .gform_next_button .gform_ajax_spinner,
#vukx-client-project .gform_page_footer .gform_next_button .gform-loader,
#vukx-client-project .gform_page_footer .gform_next_button .gform-loader-wrapper{display:none!important}

/* v0.281 — Always animate our own ring; Gravity Forms' loader artwork may be
   a static SVG/PNG and theme rules can cancel its animation. Keep the native
   loader in the DOM as the visibility signal, but do not paint its artwork. */
#vukx-client-project .gform_page_footer .vukx-gf-next-progress:has(> *) {
 display:inline-flex!important;
 position:relative!important;
 overflow:visible!important;
}
#vukx-client-project .gform_page_footer .vukx-gf-next-progress > * {
 visibility:hidden!important;
 opacity:0!important;
}
#vukx-client-project .gform_page_footer .vukx-gf-next-progress:has(> *)::before {
 content:"";
 box-sizing:border-box;
 position:absolute;
 left:50%;top:50%;
 width:18px;height:18px;
 margin:-9px 0 0 -9px;
 border-radius:50%;
 border:2px solid rgba(37,105,91,.19);
 border-top-color:#276e60;
 border-right-color:#276e60;
 animation:vukx-gf-spinner-rotate .7s linear infinite!important;
 transform-origin:center center;
}
@keyframes vukx-gf-spinner-rotate {to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){
 #vukx-client-project .gform_page_footer .vukx-gf-next-progress:has(> *)::before{
  animation-duration:1.5s!important;
 }
}


/* v0.284: final casting request CTA, scoped to the protected casting form preview. */
#vukx-client-project .gform_page_footer .vukx-final-casting-submit,
#vukx-client-project .gform_footer .vukx-final-casting-submit{
  appearance:none!important;background:#276e64!important;color:#fff!important;
  border:1px solid #276e64!important;border-radius:11px!important;
  font-weight:700!important;letter-spacing:.005em!important;
  min-height:49px!important;padding:13px 46px 13px 21px!important;
  background-image:none!important;box-shadow:0 4px 13px rgba(24,94,80,.13)!important;
  line-height:1.3!important;white-space:normal!important;
}
#vukx-client-project .gform_page_footer .vukx-final-casting-submit:disabled,
#vukx-client-project .gform_footer .vukx-final-casting-submit:disabled{opacity:.72!important;cursor:not-allowed!important}
#vukx-client-project .vukx-final-casting-note{
  flex:1 1 100%;order:4;font-size:12px!important;line-height:1.5!important;
  color:#70847e!important;text-align:right;margin-top:0!important;
}
@media(max-width:600px){#vukx-client-project .vukx-final-casting-note{text-align:center}}

/* v0.285: Dismiss explored voices only on explicit open-casting choice. */
#vukx-client-project .vukx-recent-voices{overflow:hidden;transition:opacity .4s ease,transform .4s ease,max-height .4s ease,padding .4s ease,margin .4s ease,border-width .4s ease;max-height:850px}
#vukx-client-project .vukx-recent-voices.vukx-recent-dismissing{opacity:0;transform:translateY(-8px);max-height:0;padding-top:0!important;padding-bottom:0!important;margin-top:0!important;margin-bottom:0!important;border-width:0!important;pointer-events:none}
@media(prefers-reduced-motion:reduce){#vukx-client-project .vukx-recent-voices{transition:none!important}}


/* v0.287: final action uses the same measured layout as the rest of the form.
   Do not reserve phantom right-side icon space or let theme button styles skew alignment. */
#vukx-client-project .gform_page_footer .vukx-final-casting-submit,
#vukx-client-project .gform_footer .vukx-final-casting-submit{
  display:inline-flex!important;align-items:center!important;justify-content:center!important;
  box-sizing:border-box!important;width:auto!important;max-width:100%!important;
  min-height:46px!important;height:auto!important;
  margin:0 0 0 auto!important;padding:12px 22px!important;
  border:1px solid #276e64!important;border-radius:9px!important;
  background:#276e64!important;background-image:none!important;
  color:#fff!important;box-shadow:0 3px 10px rgba(24,94,80,.11)!important;
  font:600 14px/1.45 'Open Sans',Arial,sans-serif!important;
  text-align:center!important;text-indent:0!important;letter-spacing:0!important;
  text-transform:none!important;white-space:normal!important;
  vertical-align:middle!important;transform:none!important;
}
#vukx-client-project .gform_page_footer .vukx-final-casting-submit::before,
#vukx-client-project .gform_page_footer .vukx-final-casting-submit::after,
#vukx-client-project .gform_footer .vukx-final-casting-submit::before,
#vukx-client-project .gform_footer .vukx-final-casting-submit::after{
  content:none!important;display:none!important;
}
#vukx-client-project .gform_page_footer .vukx-final-casting-note,
#vukx-client-project .gform_footer .vukx-final-casting-note{
  display:block!important;flex:0 0 100%!important;order:99!important;
  box-sizing:border-box!important;width:100%!important;
  margin:2px 0 0!important;padding:0!important;
  font:400 12px/1.55 'Open Sans',Arial,sans-serif!important;
  color:#70847e!important;text-align:right!important;
}
@media(max-width:600px){
  #vukx-client-project .gform_page_footer .vukx-final-casting-submit,
  #vukx-client-project .gform_footer .vukx-final-casting-submit{width:100%!important;margin:0!important}
  #vukx-client-project .gform_page_footer .vukx-final-casting-note,
  #vukx-client-project .gform_footer .vukx-final-casting-note{text-align:center!important}
}

/* v0.302: make test invitation part of the same aligned form composition. */
#vukx-client-project .vukx-casting-panel{width:100%;max-width:100%;box-sizing:border-box;margin:0 0 22px;padding:20px 24px;box-shadow:none}
#vukx-client-project .vukx-casting-panel .vukx-casting-artists{grid-template-columns:repeat(auto-fit,minmax(110px,155px));gap:12px}
#vukx-client-project .vukx-casting-panel .vukx-casting-artist-wrap{min-width:0}
#vukx-client-project .vukx-casting-panel .vukx-casting-panel-actions{display:flex;gap:10px;flex-wrap:wrap}
#vukx-client-project .vukx-client-preview-badge{font-size:11px;line-height:1.5;max-width:100%}
@media(max-width:640px){#vukx-client-project .vukx-casting-panel{padding:18px}}

#vukx-client-project .vukx-private-similar-empty{grid-column:1/-1;margin:0;padding:9px 0;font-size:13px;line-height:1.5;color:#607c77}

/* v0.357.349: instant casting additions, no page reload or form remount. */
#vukx-client-project .vukx-casting-artist-entering{animation:vukx-casting-arrive .3s ease-out both}
#vukx-client-project .vukx-casting-artist-saving{opacity:.64}
#vukx-client-project .vukx-casting-panel-feedback.is-confirmation{color:#2b746a}
#vukx-client-project .vukx-casting-suggestion-used{animation:vukx-casting-leave .24s ease-in both;pointer-events:none}
@keyframes vukx-casting-arrive{from{opacity:0;transform:translateY(9px) scale(.96)}to{opacity:1;transform:none}}
@keyframes vukx-casting-leave{to{opacity:0;transform:scale(.93)}}
@media(prefers-reduced-motion:reduce){#vukx-client-project .vukx-casting-artist-entering,#vukx-client-project .vukx-casting-suggestion-used{animation:none}}

/* v0.357.350: visible submission feedback without disabling Gravity Forms. */
#vukx-client-project .vukx-final-casting-submit.vukx-is-submitting{
  cursor:progress!important;opacity:.92!important;pointer-events:none!important;
  padding:12px 22px!important;
}
/* Keep the feedback alongside the button; never overlap an input using negative margins. */
#vukx-client-project .vukx-final-sending-indicator{
  display:inline-flex!important;align-items:center!important;justify-content:center!important;
  flex:0 0 25px!important;order:1!important;
  position:static!important;width:25px!important;height:25px!important;
  box-sizing:border-box!important;margin:0!important;padding:0!important;
  background:transparent!important;border:0!important;pointer-events:none!important;
}
#vukx-client-project .vukx-final-sending-spinner{
  display:block;width:18px;height:18px;box-sizing:border-box;
  border:2px solid rgba(39,110,100,.18);border-top-color:#276e64;
  border-right-color:#276e64;border-radius:50%;animation:vukx-final-send-spin .75s linear infinite;
}
/* Hide the duplicate Gravity Forms loader only while the final send is active. */
#vukx-client-project .vukx-final-submit-loading .gform_ajax_spinner,
#vukx-client-project .vukx-final-submit-loading .gform-loader-wrapper,
#vukx-client-project .vukx-final-submit-loading .gform-loader{display:none!important}
@keyframes vukx-final-send-spin{to{transform:rotate(360deg)}}
@media(max-width:600px){
  #vukx-client-project .gform_page_footer .vukx-final-casting-submit.vukx-is-submitting,
  #vukx-client-project .gform_footer .vukx-final-casting-submit.vukx-is-submitting{
    width:calc(100% - 35px)!important;flex:1 1 auto!important;
  }
}
@media(prefers-reduced-motion:reduce){#vukx-client-project .vukx-final-sending-spinner{animation-duration:1.5s}}
#vukx-client-project .vukx-casting-panel-feedback.is-confirmation{display:inline-flex;align-items:center;max-width:100%;padding:8px 12px;margin-top:10px;background:#eaf6ef;border:1px solid #cae7d6;border-radius:10px;color:#246755!important;font-weight:650;line-height:1.45}

/* 0.357.437 — match the existing showcase photo grade across private casting.
 * Images are supplied as 136px Jetpack portraits; retain the size/shape of
 * each card and do not tint artist names, selection badges or placeholders. */
#vukx-client-project .vukx-casting-artist img,
#vukx-client-project .vukx-recent-photo img,
#vukx-client-project .vukx-private-similar-person img {
  filter:saturate(.4) contrast(1.045) brightness(1.035)!important;
}

/* v0.357.488: Empty casting invites discovery rather than displaying dead space. */
#vukx-client-project .vukx-client-discover[hidden]{display:none!important}
#vukx-client-project .vukx-client-discover{margin:0 0 18px;padding:22px 25px;border:1px solid #d4e6df;border-radius:18px;background:linear-gradient(120deg,#f1f8f4,#fffdf8);box-shadow:0 4px 18px rgba(20,75,58,.055)}
#vukx-client-project .vukx-client-discover-row{display:flex;align-items:center;justify-content:space-between;gap:20px}
#vukx-client-project .vukx-client-discover h2{font:750 21px/1.25 'Open Sans',Arial,sans-serif;color:#234e43;margin:5px 0 7px}
#vukx-client-project .vukx-client-discover p{font:400 13px/1.6 'Open Sans',Arial,sans-serif;color:#59776e;margin:0;max-width:560px}
#vukx-client-project .vukx-client-discover-link{display:inline-flex;justify-content:center;align-items:center;gap:9px;flex:none;text-align:center;border-radius:11px;background:#226c5d;color:white!important;text-decoration:none!important;padding:12px 19px;font:750 13px/1.3 'Open Sans',Arial,sans-serif;min-height:44px}
#vukx-client-project .vukx-client-discover-link:hover,#vukx-client-project .vukx-client-discover-link:focus-visible{background:#174f44;color:white!important}
@media(max-width:650px){#vukx-client-project .vukx-client-discover{padding:19px 16px}#vukx-client-project .vukx-client-discover-row{flex-direction:column;align-items:stretch}#vukx-client-project .vukx-client-discover-link{width:100%}}

/* v0.357.489 — reversible open casting. A saved shortlist is never deleted
   when switching to open invitations; offer the same validated private path. */
#vukx-client-project .vukx-casting-choice .vukx-choice-restore:not([hidden]){display:inline-flex;align-items:center;margin-top:12px;padding:7px 11px;border:1px solid #a7cfc4;border-radius:9px;background:#fff;color:#23665f;font:700 12px/1.35 'Open Sans',Arial,sans-serif;cursor:pointer}
#vukx-client-project .vukx-casting-choice .vukx-choice-restore:hover{background:#e5f3ee;border-color:#75b5a5}
#vukx-client-project .vukx-casting-choice .vukx-choice-restore:focus-visible{outline:3px solid #76bba9;outline-offset:2px}
#vukx-client-project .vukx-casting-choice .vukx-choice-restore[hidden]{display:none!important}

/* Search-to-audition brief continuity, safely editable in GF field 60. */
#vukx-client-project .vukx-casting-brief-transfer{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;background:#eff7f3;border:1px solid #cbded4;border-radius:13px;padding:15px 18px;margin:0 0 22px;color:#23564c}
#vukx-client-project .vukx-casting-brief-transfer p{font:650 15px/1.5 'Open Sans',Arial,sans-serif;margin:7px 0 5px;overflow-wrap:anywhere}
#vukx-client-project .vukx-casting-brief-transfer small{font:400 11px/1.5 'Open Sans',Arial,sans-serif;color:#607b75}
#vukx-client-project .vukx-casting-brief-transfer button{background:white!important;color:#29675d!important;border:1px solid #bdd9cc!important;border-radius:8px!important;padding:7px 12px!important;font:700 11px/1.2 'Open Sans',Arial,sans-serif!important;flex:0 0 auto}
@media(max-width:500px){#vukx-client-project .vukx-casting-brief-transfer{padding:14px 13px;gap:9px;flex-wrap:wrap}}

/* v0.357.493 — the Description/instructions box is initially one line high.
   The JS adjusts its height to its actual text content on each edit and GF render. */
#vukx-client-project textarea[id$="_60"][name="input_60"],
#vukx-client-project textarea.vukx-brief-autogrow{
 box-sizing:border-box!important;
 min-height:50px!important;
 height:50px;
 max-height:none!important;
 overflow-y:hidden!important;
 resize:none!important;
}

/* v0.357.528: casting save/confirmation as an aligned, accessible status pill. */
#vukx-client-project .vukx-casting-panel .vukx-casting-panel-actions .vukx-casting-panel-feedback:not([hidden]){
  display:inline-flex!important;align-items:center!important;gap:9px!important;
  flex:0 1 auto;align-self:center;min-height:41px!important;min-width:0;max-width:100%;
  box-sizing:border-box;margin:0!important;padding:10px 14px!important;
  border:1px solid #c9e2d9;border-radius:9px;
  background:#eaf6f1;color:#265f57!important;
  font:650 12px/1.35 'Open Sans',Arial,sans-serif!important;
  overflow-wrap:anywhere;
}
#vukx-client-project .vukx-casting-panel .vukx-casting-panel-feedback.is-pending{
  background:#e7f3f0!important;border-color:#b7d8d0!important;color:#275a54!important;
}
#vukx-client-project .vukx-casting-panel .vukx-casting-panel-feedback.is-pending::before{
  content:"";display:inline-block;flex:0 0 14px;width:14px;height:14px;
  box-sizing:border-box;border:2px solid rgba(43,108,97,.22);
  border-top-color:#246f65;border-radius:50%;
  animation:vukx-casting-status-spin .75s linear infinite;
}
#vukx-client-project .vukx-casting-panel .vukx-casting-panel-feedback.is-error{
  background:#fff2ef!important;border-color:#eac9c0!important;color:#974a40!important;
}
@keyframes vukx-casting-status-spin{to{transform:rotate(360deg)}}
@media(max-width:520px){
  #vukx-client-project .vukx-casting-panel .vukx-casting-panel-actions .vukx-casting-panel-feedback:not([hidden]){
    align-self:stretch;justify-content:center;width:100%;text-align:center;
  }
}
@media(prefers-reduced-motion:reduce){
  #vukx-client-project .vukx-casting-panel .vukx-casting-panel-feedback.is-pending::before{animation-duration:1.5s}
}


/* v0.357.530 — Exact cross-element geometry for the casting action row.
 * The adjacent native <button> and live-region <p> inherit different theme
 * controls. Fix both to a shared border-box height, not unrelated padding /
 * line-height calculations. Allow confirmation errors to grow if they wrap. */
#vukx-client-project .vukx-casting-panel .vukx-casting-panel-actions{
  display:flex!important;
  align-items:center!important;
  column-gap:10px!important;
  row-gap:10px!important;
}
#vukx-client-project .vukx-casting-panel .vukx-casting-panel-actions > button,
#vukx-client-project .vukx-casting-panel .vukx-casting-panel-actions > .vukx-casting-panel-feedback:not([hidden]).is-pending{
  box-sizing:border-box!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  align-self:center!important;
  flex-shrink:0!important;
  height:42px!important;
  min-height:42px!important;
  max-height:42px!important;
  margin:0!important;
  padding:0 15px!important;
  font-size:12px!important;
  line-height:18px!important;
  vertical-align:middle!important;
  position:static!important;
  transform:none!important;
}
#vukx-client-project .vukx-casting-panel .vukx-casting-panel-actions > .vukx-casting-panel-feedback:not([hidden]){
  align-self:center!important;
  position:static!important;
  transform:none!important;
  margin:0!important;
  vertical-align:middle!important;
}
/* Status messages can be longer than the saving label: never clip a success
 * message just to keep a single-line control height. */
#vukx-client-project .vukx-casting-panel .vukx-casting-panel-actions > .vukx-casting-panel-feedback:not([hidden]):not(.is-pending){
  box-sizing:border-box!important;
  min-height:42px!important;
  height:auto!important;
  padding:11px 15px!important;
  line-height:18px!important;
}
@media(max-width:520px){
 #vukx-client-project .vukx-casting-panel .vukx-casting-panel-actions > button,
 #vukx-client-project .vukx-casting-panel .vukx-casting-panel-actions > .vukx-casting-panel-feedback:not([hidden]).is-pending{
   flex:1 1 100%!important;
   width:100%!important;
   min-width:0!important;
   height:auto!important;
   min-height:42px!important;
   max-height:none!important;
   padding:11px 15px!important;
   white-space:normal!important;
 }
}

/* v0.357.531 — A gentle, accessible entrance for casting confirmation.
   Animating only opacity/transform avoids layout reflow or delaying input. */
@keyframes vukx-casting-shade-appear{
 from{opacity:0}
 to{opacity:1}
}
@keyframes vukx-casting-dialog-appear{
 from{opacity:0;transform:translate3d(0,14px,0) scale(.974)}
 to{opacity:1;transform:translate3d(0,0,0) scale(1)}
}
.vukx-casting-modal:not([hidden]) > .vukx-casting-modal-shade{
 animation:vukx-casting-shade-appear 220ms ease-out both;
}
.vukx-casting-modal:not([hidden]) > .vukx-casting-modal-box{
 transform-origin:center center;
 animation:vukx-casting-dialog-appear 250ms cubic-bezier(.2,.8,.2,1) both;
}
@media(prefers-reduced-motion:reduce){
 .vukx-casting-modal:not([hidden]) > .vukx-casting-modal-shade,
 .vukx-casting-modal:not([hidden]) > .vukx-casting-modal-box{animation:none!important}
}
