/* Only the film viewport, positioning and pointer are styled here.
   All application controls/cards use the unmodified production CSS above. */
html,body{margin:0;height:100%;overflow:hidden}
.account-shell{height:100%;min-height:0;padding-top:36px;max-width:880px}
.account-shell>.account-empty{margin:auto;text-align:center}
.snapshot-conversation.jpost-conversation{padding:0!important;margin:0!important;width:100%;max-width:none}
.snapshot-conversation .jpost-user-turn{margin-bottom:32px}
.snapshot-conversation{position:absolute;left:50%;top:32px;transform:translateX(-50%);width:calc(100% - 96px)!important;max-width:800px!important}
.account-workspace .account-compose{position:absolute;bottom:0;left:50%;transform:translateX(-50%);width:calc(100% - 80px);max-width:820px;margin:0;padding-bottom:18px}
#aiConfirmDialog{position:fixed;inset:0;margin:auto}
#aiConfirmDialog[open]{display:block;z-index:10}
body.confirm-visible:before{content:'';position:fixed;inset:0;background:#18181b52;z-index:9}
.snapshot-analysis{z-index:12}
.snapshot-analysis-content{flex:1;min-height:0;overflow:hidden}.snapshot-analysis-content>main{padding:24px!important}
.snapshot-analysis [data-case-analysis-loading]{display:none}.snapshot-analysis [data-case-analysis-result]{display:block!important}
.snapshot-pointer{position:absolute;width:25px;z-index:50;pointer-events:none;filter:drop-shadow(0 2px 2px #0003)}.snapshot-pointer svg{display:block;width:100%}.snapshot-pointer i{position:absolute;left:-8px;top:-8px;width:25px;height:25px;border:2px solid #778fa8;border-radius:50%}
.snapshot-pointer,.snapshot-conversation,.snapshot-analysis{will-change:transform}
.snapshot-processing .jpost-thinking{margin-top:20px}
@media(max-width:600px){.account-shell{padding:24px 20px}.account-workspace .account-compose{width:calc(100% - 32px)}.snapshot-conversation{width:calc(100% - 40px)!important;top:28px}.snapshot-analysis-content>main{padding:18px!important}}
/* Keep fixed confirmation dialogs relative to the viewport, as in the app. */
.account-workspace .account-compose{left:0;right:0;transform:none;margin:0 auto}
body.confirm-visible:before{z-index:30}#aiConfirmDialog[open]{z-index:40}
.snapshot-matches,.snapshot-scout{position:absolute;left:50%;top:24px;width:calc(100% - 96px);max-width:800px;transform:translateX(-50%);opacity:0;visibility:hidden}
.snapshot-matches{max-height:calc(100% - 100px);overflow:hidden}
.snapshot-matches>.workspace-ai-answer{margin:0 0 12px;font-size:15px}
.snapshot-matches .workspace-board{margin-top:0}
.snapshot-scout{top:56px}.snapshot-scout>.account-user{margin-bottom:32px}.snapshot-scout-done{line-height:1.9}
.snapshot-drag.wb-drag-preview{position:absolute;z-index:49;pointer-events:none;opacity:0;visibility:hidden;white-space:nowrap}
@media(max-width:600px){.snapshot-matches,.snapshot-scout{width:calc(100% - 40px)}}

.snapshot-pdf-drag.jpost-file-card{position:absolute;z-index:49;width:300px;margin:0;pointer-events:none;box-shadow:0 12px 30px #18202d24;transform-origin:0 100%;opacity:0;visibility:hidden}

#resumeComplete{margin-top:24px}.snapshot-resume{position:absolute;top:32px;left:50%;transform:translateX(-50%);width:calc(100% - 96px);max-width:800px}.snapshot-resume .jpost-user-turn{margin-bottom:32px}#resumeDownloadMenu{position:fixed;inset:0;margin:auto;z-index:40}.snapshot-dim{position:fixed;inset:0;background:#0004;z-index:39;opacity:0;visibility:hidden}.snapshot-resume .result-card{flex-wrap:wrap}#resumeDownloadMenu a.is-hover{background:#f0f0f2}@media(max-width:600px){.snapshot-resume{width:calc(100% - 40px)}}
.snapshot-resume .jpost-file-card{padding:6px!important;margin-bottom:6px;grid-template-columns:36px minmax(0,1fr)}.snapshot-resume .jpost-pdf-icon{width:36px;height:36px}.snapshot-resume .jpost-user-turn{margin-bottom:18px}
.snapshot-download{position:absolute;right:28px;top:24px;z-index:45;display:flex;gap:12px;padding:16px;background:#fff;border:1px solid #e3e6e9;border-radius:14px;box-shadow:0 12px 32px #0002;opacity:0;visibility:hidden}.snapshot-download strong{font-size:13px}.snapshot-download p{font-size:12px;margin:4px 0}.download-track{height:3px;background:#eee;border-radius:3px;overflow:hidden}.download-track i{display:block;height:100%;background:#315c89;transform-origin:0 0}
.snapshot-job-matches,.snapshot-offer{position:absolute;left:50%;top:28px;transform:translateX(-50%);width:calc(100% - 80px);max-width:820px;opacity:0;visibility:hidden}.snapshot-job-matches.match-surface{background:transparent;padding:0}.snapshot-job-matches .match-jobs{display:flex;gap:18px;overflow:hidden;padding:10px 4px 24px;scroll-behavior:auto!important}.snapshot-job-matches .job-card{flex:0 0 290px;transition:none!important}.snapshot-job-matches .job-card.is-examined{outline:2px solid #8b9caf;outline-offset:3px}.snapshot-offer .account-user{margin-bottom:28px}.snapshot-job-ghost{position:absolute;z-index:48;background:white;border:1px solid #dfe3e7;box-shadow:0 12px 30px #0002;padding:12px 18px;border-radius:12px;font-size:14px;opacity:0;visibility:hidden}
#aiConfirmDialog{z-index:40!important}#aiConfirmDialog .ai-confirm-footer{justify-content:flex-end}.snapshot-pdf-stack{position:absolute;z-index:49;opacity:0;visibility:hidden;pointer-events:none;width:300px}.snapshot-pdf-stack .jpost-file-card{position:relative;width:300px;margin-bottom:4px;box-shadow:0 8px 20px #0002;padding:7px!important}.snapshot-pdf-stack .jpost-pdf-icon{height:30px;width:38px}.snapshot-pdf-stack .jpost-file-card strong{font-size:12px}

.snapshot-job-matches.match-surface .job-matches .match-jobs{display:flex;gap:18px}.snapshot-job-matches.match-surface .job-matches .job-card.is-examined{outline:2px solid #8b9caf;outline-offset:2px}

/* Keep typed guidance compact and consistent across every onboarding demo. */
#aiRequest{font-size:13px!important;line-height:1.5!important}

@media(max-width:600px){.snapshot-job-matches{width:calc(100% - 26px)}.snapshot-job-matches .match-jobs{gap:14px}}

/* In the landing film, matching continues beneath the registered resume. */
.snapshot-landing .snapshot-resume.is-matching .jpost-user-turn,
.snapshot-landing .snapshot-resume.is-matching .registration-message{display:none}
.snapshot-landing .snapshot-resume.is-matching #resumeComplete{margin-top:0}
.snapshot-landing .snapshot-job-matches{position:relative;left:auto;top:auto;transform:none;width:100%;max-width:none;margin-top:16px}
.snapshot-landing .snapshot-job-matches.match-surface .job-matches{padding:0}
.snapshot-landing .snapshot-job-matches>p{margin:0 0 14px}
.snapshot-landing .snapshot-match-content{transition:opacity .24s ease}
.snapshot-landing .snapshot-job-matches.is-loading .snapshot-match-content{opacity:0;visibility:hidden}
.snapshot-landing .snapshot-match-skeleton{position:absolute;inset:0 auto auto 0;width:100%;opacity:0;visibility:hidden}
.snapshot-landing .snapshot-job-matches.is-loading .snapshot-match-skeleton{opacity:1;visibility:visible}
.snapshot-landing .snapshot-resume-skeleton{position:relative;width:100%;margin:20px 0 0}
.snapshot-skeleton{pointer-events:none}
.snapshot-skeleton i{display:block;background:linear-gradient(90deg,#eef0f2 25%,#f8f9fa 50%,#eef0f2 75%);background-size:200% 100%;animation:snapshot-shimmer 1.4s linear infinite;border-radius:7px}
.snapshot-skeleton .skeleton-line{height:13px;margin:0 0 12px}
.snapshot-skeleton .skeleton-line.short{width:28%}
.snapshot-skeleton .skeleton-line.medium{width:55%}
.snapshot-skeleton .skeleton-line.long{width:82%}
.snapshot-skeleton .skeleton-result{display:flex;align-items:center;gap:12px;margin-top:17px;padding:16px;border:1px solid #edf0f2;border-radius:15px}
.snapshot-skeleton .skeleton-result .skeleton-line{margin:0}
.snapshot-skeleton .skeleton-avatar{flex:none;width:42px;height:42px;border-radius:50%}
.snapshot-skeleton .skeleton-job-row{display:flex;gap:14px;margin-top:18px;overflow:hidden}
.snapshot-skeleton .skeleton-job{flex:0 0 290px;padding:22px 18px;border:1px solid #edf0f2;border-radius:16px}
.snapshot-skeleton .skeleton-job .skeleton-line{margin-bottom:18px}
@keyframes snapshot-shimmer{to{background-position:-200% 0}}
@media(prefers-reduced-motion:reduce){.snapshot-skeleton i{animation:none}}

/* A dropped job adds one chip without turning the composer into a large box. */
#aiComposer.has-candidate-reference{min-height:76px;max-height:84px;align-items:center;padding:7px 8px}
#aiComposer.has-candidate-reference .ai-prompt-line{min-height:0;gap:2px;flex-wrap:nowrap}
#aiComposer.has-candidate-reference .ai-candidate-reference{height:28px;min-height:28px;margin:0}
#aiComposer.has-candidate-reference #aiRequest{flex:0 0 30px!important;height:30px!important;min-height:30px!important;max-height:30px!important;padding:3px 0!important;resize:none}

/* One workspace surface stays in place from the opening prompt through Jsheet selection. */
html,body.account-workspace{background:#f7f7f5}
.account-shell>.account-empty{display:none!important}
.snapshot-landing{transition:background-color .4s ease}
.snapshot-landing.is-workspace{background:#fff}
.snapshot-landing .account-shell{position:relative}
.snapshot-landing .account-compose{background:transparent;transition:bottom .48s cubic-bezier(.2,0,0,1),transform .48s cubic-bezier(.2,0,0,1),padding-bottom .48s cubic-bezier(.2,0,0,1)}
.snapshot-landing.is-intro .account-compose{bottom:50%;transform:translateY(50%);width:calc(100% - 56px);max-width:720px;padding:0}
.snapshot-landing.is-intro .ai-composer{min-height:72px;padding:9px 12px;grid-template-columns:36px minmax(0,1fr) 38px;border-color:#dedede;border-radius:36px;box-shadow:0 18px 52px -25px #2021246b}
.snapshot-landing.is-intro .ai-plus{width:36px;height:36px;font-size:24px}
.snapshot-landing.is-intro #aiSend{width:30px;height:30px;min-width:30px;min-height:30px;padding:0;font-size:18px}
.snapshot-landing.is-intro:not(.is-ready) #aiSend{background:#a4a4a4}
.snapshot-landing.is-intro #aiRequest{font-size:15px!important}
@media(max-width:700px){.snapshot-landing.is-intro .ai-composer{min-height:58px;padding:7px 10px;grid-template-columns:30px minmax(0,1fr) 30px}.snapshot-landing.is-intro .ai-plus{width:30px;height:30px;font-size:19px}.snapshot-landing.is-intro #aiSend{font-size:17px}}
@media(prefers-reduced-motion:reduce){.snapshot-landing .account-compose{transition:none}}

/* Align the embedded workspace composer with the language-request demo. */
.snapshot-landing .account-compose{width:100%;padding:9px 28px 11px;border-top:1px solid #f1f2f3;background:#fff}
.snapshot-landing .ai-composer{min-height:58px;padding:8px 10px;border-radius:30px;grid-template-columns:36px minmax(0,1fr) 38px;column-gap:8px}
.snapshot-landing .ai-plus{width:36px;height:36px;font-size:24px}
.snapshot-landing .ai-send{width:38px;height:38px;font-size:23px}
.snapshot-landing #aiRequest{font-size:15px!important;line-height:26px!important}
.snapshot-landing .ai-selected-function{font-size:15px}
@media(max-width:700px){.snapshot-landing .account-compose{padding:7px 10px 8px}.snapshot-landing .ai-composer{min-height:45px;padding:4px 6px;grid-template-columns:26px minmax(0,1fr) 29px;column-gap:4px}.snapshot-landing .ai-plus{width:26px;height:26px;font-size:19px}.snapshot-landing .ai-send{width:29px;height:29px;font-size:17px}.snapshot-landing #aiRequest{font-size:10px!important}}

/* Keep the registered candidate and its actions together in the wide demo window. */
.snapshot-landing .snapshot-resume .result-card,
.snapshot-landing .snapshot-resume-skeleton .skeleton-result{width:100%;max-width:680px}
