@font-face{font-family:Tosaa;src:url('/actors-profile-and-industry-pov/fonts/noto-sans-thai-400.woff2') format('woff2');font-weight:100 900;font-display:swap}
:root{font-family:Tosaa,system-ui,sans-serif;color:#f2efe9;background:#17191c;--muted:#b5b7b5;--line:#ffffff29;--accent:#d9e2b6;color-scheme:dark;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-height:100dvh}::selection{background:#d9e2b6;color:#22251c}input,textarea{caret-color:var(--accent)}button,input,select,textarea{font:inherit}a{color:inherit;text-underline-offset:5px}button,a,input,select,textarea{touch-action:manipulation}:focus-visible{outline:2px solid var(--accent);outline-offset:4px}button{cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}.skip{position:fixed;left:12px;top:-80px;z-index:9;padding:12px;background:var(--accent);color:#17191c}.preview-tools{background:#ebece7;color:#252927;padding:12px 22px;display:flex;gap:12px 18px;align-items:center;flex-wrap:wrap;font-size:12px;line-height:1.6}.preview-tools>span{flex:1;min-width:180px}.preview-tools label{display:flex;align-items:center;gap:7px}.preview-tools button,.preview-tools select{background:transparent;color:inherit;border:1px solid #8e968b;min-height:38px;padding:5px 10px;border-radius:5px}.preview-tools select{max-width:100%}.preview-tools option{background:#ebece7;color:#17191c}.app-header{max-width:1120px;margin:auto;min-height:90px;padding:20px 30px;display:flex;align-items:center;gap:24px;border-bottom:1px solid var(--line)}.wordmark{font-size:29px;font-family:Georgia,serif;letter-spacing:-.04em;text-decoration:none;border-bottom:1px solid #f2efe9;line-height:1.1}.app-header>span{font-size:13px;color:var(--muted)}#account-label{margin-left:auto;font-size:12px}main{max-width:1080px;margin:0 auto;padding:36px 28px 90px}h1{font-size:clamp(28px,4vw,40px);font-weight:400;line-height:1.35;letter-spacing:-.025em;margin:10px 0 16px}h2{font-size:23px;font-weight:400;line-height:1.5;margin:28px 0 12px}h3{font-size:17px;font-weight:500;line-height:1.6;margin:10px 0}p{font-size:14px;line-height:1.9;color:var(--muted);max-width:70ch}small{line-height:1.7;color:var(--muted)}.lead{font-size:16px;max-width:58ch;margin-bottom:30px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:46px;padding:10px 19px;border:1px solid #ffffff52;border-radius:24px;color:#f2efe9;background:transparent;text-decoration:none;font-size:14px;line-height:1.6}.btn:hover{background:#ffffff0c}.btn.primary{color:#22251c;background:var(--accent);border-color:var(--accent)}.btn.primary:hover{background:#e6edca}.btn.danger{color:#ffc3b8;border-color:#bd776d}.text-btn{background:none;border:0;color:var(--accent);padding:12px 0;min-height:44px;text-align:left;text-decoration:underline;text-underline-offset:5px}.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}.form{max-width:720px}.columns{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:50px}.aside{border-left:1px solid var(--line);padding-left:24px;align-self:start}.aside h2{margin-top:0;font-size:17px}.row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:24px 0;border-bottom:1px solid var(--line)}.row h2,.row h3{margin:0 0 5px}.row p{margin:4px 0}.row .btn{flex-shrink:0}.status{display:inline-block;border:1px solid #ffffff45;border-radius:5px;padding:4px 9px;color:#d9e2b6;font-size:12px;line-height:1.7;white-space:normal}.status[data-state="more_info"],.status[data-state="rejected"]{color:#ffd0b6}.field{display:block;margin:20px 0}.field>span{display:block;font-size:13px;color:#e3e5de;margin-bottom:8px}input:not([type=checkbox]):not([type=radio]),select,textarea{display:block;width:100%;min-height:48px;padding:11px 13px;background:#202427;border:1px solid #ffffff4a;border-radius:7px;color:#f2efe9;max-width:100%;font-size:15px}textarea{min-height:112px;resize:vertical}.preview-tools select{width:auto;min-height:38px;font-size:12px}.fields{display:grid;grid-template-columns:1fr 1fr;gap:0 22px}.check{display:flex;align-items:flex-start;gap:12px;margin:14px 0;font-size:14px;line-height:1.8;min-height:32px}.check input{accent-color:var(--accent);width:20px;height:20px;flex-shrink:0;margin-top:4px}.check small{display:block}.note{padding:17px 20px;background:#252d27;margin:22px 0;font-size:13px;line-height:1.9;color:#d1dac7}.error{color:#ffb9aa;font-size:14px;line-height:1.8}.error:empty{display:none}.error ul{padding-left:23px}fieldset{border:0;padding:0;margin:25px 0}legend{font-size:17px;margin-bottom:8px}.work{border-block-start:1px solid var(--line);padding-top:20px;margin-top:25px}.work .row{padding:0;border:0}.work h3{margin:0}.work .remove{font-size:12px}.summary{margin:22px 0}.summary div{display:grid;grid-template-columns:140px 1fr;gap:20px;padding:13px 0;border-bottom:1px solid var(--line)}dt{color:var(--muted);font-size:13px}dd{margin:0;line-height:1.75;font-size:14px;overflow-wrap:anywhere}.timeline{list-style:none;padding:0;margin:24px 0}.timeline li{padding:13px 0 13px 19px;border-left:1px solid #788566;line-height:1.8;font-size:13px}.timeline small{display:block}.timeline p{margin:3px 0;font-size:13px}.queue{display:grid;grid-template-columns:260px minmax(0,1fr);gap:34px}.role-result{padding:18px 0;border-top:1px solid var(--line)}.role-result .actions{margin:12px 0}.empty{padding:30px 0 70px;max-width:620px}.steps{display:flex;gap:8px 22px;flex-wrap:wrap;color:var(--muted);font-size:12px;margin:15px 0 28px;padding:0;list-style:none}.steps li[aria-current=step]{color:var(--accent)}.notice{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);background:#d9e2b6;color:#22251c;padding:12px 22px;border-radius:8px;max-width:calc(100% - 32px);z-index:10;box-shadow:0 8px 24px #0006;font-size:14px}.notice:empty{display:none}dialog{max-width:min(620px,calc(100% - 32px));width:100%;background:#202427;color:#f2efe9;border:1px solid #ffffff50;border-radius:12px;padding:28px}dialog::backdrop{background:#000b}dialog p{overflow-wrap:anywhere}.compact{font-size:12px}.boundary{font-variant-numeric:tabular-nums}.section{padding-top:22px;margin-top:28px;border-top:1px solid var(--line)}
@media(max-width:760px){.columns,.queue{grid-template-columns:1fr;gap:25px}.aside{border-left:0;border-top:1px solid var(--line);padding:22px 0 0}.app-header{padding:20px;gap:17px}.app-header>span{font-size:11px}#account-label{display:none}main{padding:26px 20px 65px}.preview-tools{padding:12px 16px}.preview-tools>span{font-size:11px}.row{align-items:flex-start;flex-wrap:wrap}.fields{grid-template-columns:1fr;gap:0}.summary div{grid-template-columns:110px 1fr;gap:14px}.actions>.btn{flex-grow:1}.row>.btn{margin-left:auto}.lead{font-size:15px}h2{font-size:21px}.preview-tools label{flex-wrap:wrap}.preview-tools select{max-width:230px}}
@media(prefers-reduced-motion:no-preference){main{animation:arrive .2s ease-out}@keyframes arrive{from{transform:translateY(4px)}to{transform:translateY(0)}}}

.wordmark{border:0;flex-shrink:0}.brand-mark{display:block;position:relative;width:110px;height:30px;overflow:hidden}.brand-mark img{position:absolute;width:128%;max-width:none;height:auto;left:-12%;top:-225.4%;filter:url(#logo-alpha);clip-path:inset(0 0 40% 0)}

.skip:not(:focus){clip-path:inset(50%);width:1px;height:1px;overflow:hidden;padding:0;top:0}.skip:focus{clip-path:none;width:auto;height:auto;top:12px}.brand-mark img{top:-52px;clip-path:none}.brand-mark{height:25px}

.brand-mark img{top:-57px}.brand-mark{height:27px}.skip:not(:focus-visible){clip-path:inset(50%);width:1px;height:1px;overflow:hidden;padding:0;top:0}.skip:focus-visible{clip-path:none;width:auto;height:auto;top:12px}
/* Mobile/tablet composition: product screen only; review tools live outside iframe. */
[hidden]{display:none!important}body{background:#131817}main{max-width:840px;padding:24px 24px 60px}.app-header{padding:20px 24px;min-height:76px;max-width:840px;gap:18px;border:0}.app-header>span{font-size:11px}.app-header .brand-mark{width:91px;height:23px}.app-header .brand-mark img{top:-47px}h1{font-size:32px;line-height:1.35}input:not([type=checkbox]):not([type=radio]),select,textarea{font-size:16px;border-radius:16px;background:#ffffff07;min-height:54px;padding:14px 16px}.btn{min-height:50px}.form{max-width:570px;margin:auto}.form>.btn:first-child{border:0;padding-left:0;min-height:40px;color:var(--muted)}.form>p{font-size:12px}.form .actions{position:sticky;bottom:0;background:linear-gradient(transparent,#131817 20%);padding:20px 0 12px;z-index:2}.form .actions>.primary{flex:2}.journey-progress{display:flex;align-items:center;justify-content:space-between;gap:18px;font-size:10px;letter-spacing:.08em;color:var(--muted);margin-top:20px}.journey-progress>div{display:flex;gap:4px}.journey-progress i{width:23px;height:3px;background:#ffffff20;border-radius:2px}.journey-progress i.done{background:var(--accent)}.check{border:1px solid #ffffff22;border-radius:16px;padding:15px;margin:9px 0;min-height:56px}.check:has(input:checked){background:#d9e2b610;border-color:#c8d7ac}.check input{margin-top:3px}.fields{grid-template-columns:1fr}.section{padding-top:0;margin-top:20px;border:0}.work{padding-top:18px}.note{border-radius:12px}.eyebrow{font-size:10px;letter-spacing:.12em;color:var(--accent)}.my-applications{margin-top:32px}.my-applications h2{font-size:20px}.my-applications .row{padding:18px 0}.auth-view .app-header,.intro-view .app-header{display:none}.auth-view main,.intro-view main{max-width:none;padding:0;animation:none}.auth-scene{position:relative;isolation:isolate;min-height:100svh;background:#12221d}.auth-photo{position:absolute;inset:0;z-index:-2;background-image:url('/casting-workspace/assets/industry-portrait-demo.webp');background-size:cover;background-position:50% 25%;filter:saturate(.55)}.auth-scene:before{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,#061d1420 0%,#0d211f28 20%,#10231c9c 50%,#071913e6 100%)}.auth-layout{min-height:100svh;max-width:1200px;margin:auto;display:flex;flex-direction:column;justify-content:flex-end;padding:clamp(140px,23svh,270px) 24px 18px}.auth-caption{display:none}.auth-panel{background:linear-gradient(135deg,#e3f1dc20,#10231ca6 75%);border:1px solid #e0ead74a;border-radius:30px;box-shadow:0 16px 55px #00120d25,inset 0 1px #ffffff1f;backdrop-filter:blur(18px);padding:30px 24px 20px;max-width:430px;width:100%;margin:0 auto}.auth-brand .brand-mark{width:149px;height:38px;margin-bottom:10px}.auth-brand .brand-mark img{top:-77px}.auth-brand>span:last-child{display:block;font-size:8px;letter-spacing:.19em;color:#e1e7dc}.auth-panel h1{font-size:29px;margin:23px 0 8px;line-height:1.35}.auth-intro{font-size:12px;color:#e3e8df;line-height:1.75;margin:0 0 24px}.provider-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.provider-row .btn{border-color:#ffffff40;background:#ffffff0c;font-size:15px}.auth-or{display:flex;align-items:center;gap:12px;font-size:10px;color:#d1d9cf;margin:18px 0 0}.auth-or:before,.auth-or:after{content:'';height:1px;background:#ffffff24;flex:1}.auth-panel .field{margin:12px 0}.auth-panel .field>span{font-size:11px}.auth-panel input{border-radius:28px;background:#0c1e1b61;border-color:#ffffff35;color:#fff;min-height:52px}.auth-panel input::placeholder{color:#d3dbcf9c}.auth-actions{display:flex;flex-direction:column;gap:12px;margin-top:14px}.auth-actions .btn.primary{background:#d9e2b6;min-height:54px;border:0;color:#162219}.auth-switch{font-size:11px;text-align:center;color:#dce4d7;margin:15px 0 0}.auth-switch .btn{border:0;padding:3px 5px;min-height:38px;color:white;font-size:12px;text-decoration:underline;text-underline-offset:4px}.auth-footnote{font-size:11px;color:#dce4d7}.demo-boundary{border-left:2px solid var(--accent);padding:4px 0 4px 15px;margin:22px 0;font-size:12px}.demo-boundary p{font-size:12px;margin:5px 0;color:#e0e6dd}.auth-more,[data-style=auth-more]{border:0!important;background:none!important;color:#d9e2b6!important;font-size:11px!important;width:100%;margin-top:4px}.intro-screen{position:relative;min-height:100svh;isolation:isolate;display:flex;align-items:flex-end;padding:26px}.intro-screen>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}.intro-screen:after{content:'';position:absolute;inset:0;background:linear-gradient(transparent,#0c1916 82%);z-index:-1}.intro-copy{max-width:490px;margin:45svh auto 0}.intro-copy h1{font-size:35px}.intro-copy>p{color:#e0e5dc}.intro-dots{display:flex;gap:8px}.intro-dots .btn{min-height:36px;width:36px;padding:0;font-size:11px}.intro-copy .actions{margin-top:30px}.intro-copy .actions .btn{flex:1}.queue{grid-template-columns:220px minmax(0,1fr);gap:26px}.summary div{grid-template-columns:105px 1fr;gap:12px}#account-label{display:none}
@media(min-width:700px){main{padding:25px 42px 70px}.app-header{padding:28px 42px}.auth-layout{justify-content:center;align-items:flex-end;padding:60px;min-height:100svh}.auth-panel{margin:0;width:420px;padding:42px 34px 26px}.auth-panel h1{font-size:34px}.auth-photo{background-position:25% 28%}.auth-scene:before{background:linear-gradient(90deg,#07191305,#061c15aa 58%,#061912dc)}.auth-caption{display:block;position:absolute;left:7%;bottom:70px;max-width:35%}.auth-caption p{color:#fff;font-size:27px;line-height:1.2;letter-spacing:-.02em}.intro-copy{margin-left:auto;margin-right:0}.intro-screen:after{background:linear-gradient(90deg,#07191300,#0c1916d9 65%)}.intro-copy{margin-top:20svh}.form{padding-top:10px}.form h1{font-size:36px}}
@media(max-width:760px){.queue{grid-template-columns:1fr}.app-header>span{font-size:10px}}
@media(max-width:359px){main{padding:20px 18px 45px}.auth-layout{padding-inline:16px}.auth-panel{padding:27px 20px 18px}.auth-panel h1{font-size:25px}}
@media(max-height:600px){.auth-layout{padding-top:30px}.auth-panel{margin-block:10px}.auth-photo{background-position:50% 35%}}
.auth-panel:has(#entry-password){padding-top:25px}.auth-panel:has(#entry-password) .auth-brand .brand-mark{width:120px;height:31px}.auth-panel:has(#entry-password) .auth-brand .brand-mark img{top:-62px}.auth-panel:has(#entry-password) h1{margin-top:18px}.auth-layout:has(#entry-password){padding-top:15svh}
@media(max-width:699px){.auth-photo{background-size:100% auto;background-position:50% 0;background-repeat:no-repeat}.auth-panel:has(#entry-password){margin-top:50px}}
.app-language{position:absolute;top:18px;right:20px;z-index:5}.app-language select{width:auto;min-height:42px;padding:8px 10px;font-size:11px;border-radius:24px;background:#11231abb;border-color:#ffffff40}.app-header{padding-right:95px}.app-header>#header-label{display:none}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.journey-nav,.entry-nav{display:flex;align-items:center;justify-content:space-between;gap:10px}.journey-nav{max-width:630px;margin:0 auto 20px}.journey-nav .btn,.entry-nav .btn{padding:8px 2px;border:0;font-size:12px;min-height:44px;color:#e4e8dc}.journey-nav+.form>.btn:first-child{display:none}.entry-nav{margin:0 0 15px}.entry-nav .btn:last-child{text-align:right}.auth-panel h1{margin:24px 0 16px}.auth-photo{background-image:url('assets/auth-cinema.webp');filter:none}.auth-layout{padding-top:27svh}.auth-panel{padding:26px 22px 20px;background:linear-gradient(140deg,#234438ab,#0b201df0);backdrop-filter:blur(18px)}.auth-brand .brand-mark{width:124px;height:32px}.auth-brand .brand-mark img{top:-64px}.auth-brand>span:last-child{font-size:7px}.auth-panel .auth-intro{margin-bottom:18px}.provider-row{margin-top:17px}.provider-row svg{width:20px;height:20px;flex:none}.provider-row .btn{font-size:14px;gap:8px;background:#132c26}.auth-or{margin-top:21px;font-size:10px}.channel-picker{display:flex;gap:4px;padding:4px;background:#091d177a;border-radius:24px;border:1px solid #ffffff20;margin:18px 0}.channel-picker .btn{flex:1;min-height:40px;padding:6px 10px;border:0;font-size:12px}.channel-picker .btn:not(.primary){color:#e4e9df}.auth-panel input{border-radius:15px;background:#0a211bbc}.auth-actions .btn{width:100%}.auth-panel .field>span{font-size:12px}.otp-destination{display:block;color:#f3f3df;margin-top:8px;overflow-wrap:anywhere;font-size:15px;/* Owner 31 Oct 2026 (S-06): one line; entry.js fitDestination draws a long address smaller */white-space:nowrap;overflow:hidden}.verification-symbol{font-family:system-ui;font-size:28px;border:1px solid #cbdcb575;background:#d9e2b618;border-radius:20px;width:62px;height:62px;display:grid;place-items:center;margin:16px 0 20px;color:var(--accent)}#entry-otp{letter-spacing:.22em;font:28px/1.6 system-ui;text-align:center;min-height:72px}.otp-secondary{display:flex;justify-content:space-between;gap:8px;margin-top:15px}.otp-secondary .btn{font-size:12px;border:0;padding:8px 3px;text-decoration:underline;text-underline-offset:5px}.fixture-note{font-size:11px;line-height:1.8;color:#c5d1c5;border-top:1px solid #ffffff25;padding-top:12px;margin-top:22px}.provider-symbol svg{width:40px;height:40px;margin:15px 0}.provider-connected{border-left:2px solid var(--accent);padding-left:12px;font-size:12px}.security-card{border:1px solid #ffffff29;border-radius:18px;padding:18px;margin:20px 0}.security-card h2{margin:0 0 12px;font-size:20px}.security-card p{font-size:13px}.sample-secret{display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px dashed #d9e2b66b;background:#e3ebd80e;padding:24px;margin:18px 0;overflow-wrap:anywhere;font-size:12px}.sample-secret>span{font-size:65px;line-height:1}.sample-secret small{text-align:center;margin-top:10px}.security-icon{font-size:32px;color:var(--accent)}
.auth-scene[data-auth-stage=otp] .auth-layout,.auth-scene[data-auth-stage=provider] .auth-layout,.auth-scene[data-auth-stage=security] .auth-layout,.auth-scene[data-auth-stage=security-setup] .auth-layout,.auth-scene[data-auth-stage=support] .auth-layout{padding-top:14svh}.auth-footnote{line-height:1.85}.intro-screen{min-height:100svh;padding:24px;align-items:flex-end}.intro-copy{width:100%;max-width:490px;margin:36svh auto 0;display:grid;grid-template-rows:26px minmax(112px,auto) minmax(90px,auto) 44px 84px;gap:8px}.intro-copy .eyebrow{margin:0;align-self:center}.intro-copy h1{margin:0;font-size:31px;line-height:1.45;align-self:start}.intro-copy>p:not(.eyebrow){margin:0;line-height:1.85;font-size:14px}.intro-dots{align-items:center}.intro-dots .btn{min-height:40px;width:40px}.intro-copy .actions{margin:0;align-self:end;display:grid;grid-template-columns:1fr 1fr;gap:12px}.intro-copy .actions .btn{min-height:52px}.membership-types{display:grid;grid-template-columns:1fr 1fr;gap:10px}.membership-types .check{position:relative;display:flex;flex-direction:column;gap:8px;margin:0;padding:18px 12px;min-width:0}.membership-types input{position:absolute;top:15px;right:12px}.membership-icon{display:grid;place-items:center;width:50px;height:50px;border-radius:16px;background:#d9e2b614;margin:0 0 6px;color:var(--accent)}.membership-icon svg{width:30px;height:30px}.membership-types strong{font-weight:500;font-size:17px}.membership-types small{font-size:11px;line-height:1.75}.document-row{padding:16px 0;border-bottom:1px solid var(--line)}.document-row .actions{position:static;background:none;margin:5px 0;padding:0}.document-row .btn{font-size:12px}.doc-private{font-size:12px;color:#cbd8bd}.contact-grid .field{margin:14px 0}.journey-nav .btn{white-space:normal}
@media(min-width:700px){.auth-layout{padding:60px;justify-content:center}.auth-panel{width:420px;padding:32px}.auth-photo{background-size:cover;background-position:center 30%}.auth-caption{max-width:25%;left:5%}.intro-screen{padding:60px}.intro-copy{margin:20svh 0 0 auto;grid-template-rows:26px minmax(112px,auto) minmax(90px,auto) 44px 84px}}
@media(max-width:359px){.auth-layout{padding-inline:14px}.auth-panel{padding-inline:18px}.auth-panel h1{font-size:26px}.intro-copy{grid-template-rows:26px minmax(138px,auto) minmax(104px,auto) 44px 84px}.intro-copy h1{font-size:28px}.membership-types strong{font-size:15px}}
/* Owner correction: translucent glass over original cinematic art. */
.auth-panel{background:linear-gradient(135deg,rgba(220,238,218,.15),rgba(8,30,24,.52));backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-color:#e3efdc66;box-shadow:0 16px 55px #00120d25,inset 0 1px #ffffff26}
.auth-panel input{background:rgba(9,29,24,.35);border-color:#e1ebd654}.auth-panel .provider-row .btn{background:rgba(10,29,24,.3)}.auth-panel .auth-intro,.auth-panel .auth-footnote,.auth-panel .field>span{color:#edf1e7}.auth-panel .auth-brand>span:last-child{color:#e7eee1}.auth-panel:has(#login-form) h1{margin-top:20px}.auth-layout:has(#signup-form){padding-top:22svh}.auth-scene[data-auth-stage=verification-contact] .auth-layout{padding-top:22svh}
@media(min-width:700px){.auth-layout:has(#signup-form),.auth-scene[data-auth-stage=verification-contact] .auth-layout{padding-top:60px}}
/* Compact signup consent; legal text opens on demand, never a separate Agree step. */
.signup-legal{margin:18px 0 10px;text-align:left;display:grid;gap:12px}
.legal-draft{font-size:12px;line-height:1.55;color:#d5e4cb;margin:0 0 2px}
.legal-check{display:flex;align-items:flex-start;gap:10px;font-size:13px;line-height:1.65;color:#eff5e8;cursor:pointer}
.auth-panel .legal-check input{width:19px;height:19px;min-height:19px;flex:0 0 19px;margin:3px 0 0;accent-color:#d4eda0;cursor:pointer}
.legal-check .btn{display:inline;padding:3px 4px;min-height:0;background:none;border:0;color:#e3f5b9;font:inherit;text-decoration:underline;text-underline-offset:3px;border-radius:4px}
.legal-check.optional{color:#d9e2d4;font-size:12px}
.legal-dialog{max-width:600px;width:calc(100% - 28px);max-height:85svh;padding:24px;border:1px solid #b5cba46b;border-radius:24px;background:#142820;color:#f2f5eb;box-sizing:border-box}
.legal-dialog::backdrop{background:#04120ce6;backdrop-filter:blur(5px)}
.legal-dialog header{display:flex;align-items:center;justify-content:space-between;gap:12px;position:sticky;top:-24px;padding:10px 0;background:#142820}
.legal-dialog h2{font-size:26px;line-height:1.3;margin:20px 0 12px}
.legal-dialog h3{font-size:17px;margin:25px 0 8px}.legal-dialog p{font-size:14px;line-height:1.8}.legal-dialog .legal-draft{padding:12px;border:1px dashed #809b71;border-radius:12px;color:#dcebcf}
/* One brief light sweep on intent, no perpetual flashing. */
.provider-row .btn{position:relative;isolation:isolate;overflow:hidden;transition:transform .16s ease,box-shadow .2s ease,border-color .2s ease}
.provider-row .btn::after{content:"";position:absolute;inset:-80% -40%;background:linear-gradient(110deg,transparent 42%,#efffe64d 50%,transparent 58%);transform:translateX(-110%);pointer-events:none}
.provider-row .btn:is(:hover,:focus-visible)::after{animation:provider-light .65s ease-out 1}
.provider-row .btn:is(:hover,:focus-visible){border-color:#d5ebbac2;box-shadow:0 0 22px #bde1a32b}
.provider-row .btn:active{transform:scale(.97);background:#ffffff20!important;box-shadow:inset 0 1px 3px #0002}
@keyframes provider-light{to{transform:translateX(110%)}}
@media(prefers-reduced-motion:reduce){.provider-row .btn{transition:none}.provider-row .btn:active{transform:none}.provider-row .btn:is(:hover,:focus-visible)::after{animation:none}}
/* V09: association black/white, cinematic images provide the color. */
:root{--accent:#f0eeea;--muted:#bcbcbc;--line:#ffffff29;background:#121212;color:#f3f2ef}
body{background:#121212}::selection{background:#e4e1dc;color:#151515}.btn.primary,.auth-actions .btn.primary{background:#f0eeea;color:#1a1a1a;border-color:#f0eeea}.btn.primary:hover{background:#fff}.note{background:#222;color:#ddd}.status{color:#e8e6e1}.notice{background:#e7e5e0;color:#191919}.doc-private,.fixture-note,.auth-footnote,.legal-draft,.legal-check.optional{color:#c8c8c8}.legal-check .btn,[data-style=auth-more]{color:#eee!important}.legal-dialog,.legal-dialog header{background:#202020}.legal-dialog .legal-draft{border-color:#777;color:#ddd}.legal-dialog::backdrop{background:#090909e6}.legal-check{color:#eee}.auth-panel .legal-check input{accent-color:#e5e4e0}
.auth-scene{background:#161616}.auth-scene:before{background:linear-gradient(180deg,#1110 12%,#10101066 48%,#111 95%)}.auth-panel{background:linear-gradient(130deg,#ffffff24,#15151570);border-color:#ffffff55;box-shadow:0 18px 50px #0005,inset 0 1px #ffffff24}.auth-panel input{background:#12121240;border-color:#ffffff60}.auth-panel .provider-row .btn{background:#16161650}.auth-panel .field>span,.auth-panel .auth-intro,.auth-panel .auth-footnote{color:#e7e7e7}.auth-panel input::placeholder{color:#bdbdbd}.auth-more,[data-style=auth-more]{color:#e4e4e4!important}.channel-picker{background:#14141480}.provider-row .btn:is(:hover,:focus-visible){border-color:#eee;box-shadow:0 5px 18px #ffffff18}.provider-row .btn:active{background:#ffffff30!important}.provider-row .btn::after{background:linear-gradient(110deg,transparent 42%,#fff5 50%,transparent 58%)}.verification-symbol,.membership-icon{background:#fff1;color:#eee;border-color:#fff5}
.app-language{top:22px;right:24px;display:flex;align-items:center;gap:5px;background:#19191985;border:1px solid #ffffff45;border-radius:22px;padding:0 10px;backdrop-filter:blur(12px)}.app-language>svg{width:17px;height:17px;flex:none;pointer-events:none}.app-language .language-chevron{width:13px;height:13px}.app-language select{appearance:none;-webkit-appearance:none;border:0;background:none;min-height:40px;padding:0 28px 0 32px;margin:0 -28px 0 -32px;width:104px;font-size:11px;color:#fff;border-radius:22px;cursor:pointer}.app-language:focus-within{outline:2px solid #fff;outline-offset:3px}.app-language select:focus-visible{outline:0}
select{color-scheme:dark;background-color:#292929;border-color:#929292;color:#fafafa}select option{color:#fafafa;background:#252525}select:focus{border-color:#eee}input:not([type=checkbox]):not([type=radio]),textarea{background-color:#202020;border-color:#686868;border-radius:12px}.auth-panel input:not([type=checkbox]){background:#12121240}.field>span{color:#e6e6e6}.check input{accent-color:#eee}.check:has(input:checked){border-color:#e5e5e5;background:#ffffff0d}.timeline li{border-color:#787878}.identity-secondary{margin-top:28px;padding-top:24px;border-top:1px solid var(--line)}.identity-secondary>.btn{font-size:13px;line-height:1.8}.form #identity-form>.primary{width:100%;margin-top:16px;min-height:52px}.form>p{font-size:14px;line-height:1.9}.form fieldset{margin-top:30px}.membership-types .check{border:1px solid #ffffff35;border-radius:18px;padding:22px 16px;min-height:185px}.membership-types .check:has(:checked){border-color:#f5f5f5;background:#ffffff0c}.form{margin-inline:auto}.journey-progress{color:#bdbdbd}.journey-progress i.done{background:#eee}.section>h2{font-size:24px}.contact-grid{border-top:1px solid var(--line);padding-top:10px}.member-code{display:grid;gap:4px;padding:0 0 18px;border-block:0;border-bottom:1px solid #ffffff24;margin:20px 0;font-variant-numeric:tabular-nums}.member-code>span{font-size:11px}.member-code strong{font-size:21px;letter-spacing:.07em;color:#f3f3f3;font-family:system-ui,sans-serif}.member-code small{font-size:10px}.row .member-code{border:0;padding:8px 0;margin:0}.row .member-code strong{font-size:15px}
@media(min-width:700px){.auth-scene:before{background:linear-gradient(90deg,#1110,#15151588 58%,#111c)}.app-language{right:32px;top:28px}.form{max-width:640px}}
@media(max-width:359px){.app-language{right:16px;top:18px}.membership-types .check{padding:18px 10px}.membership-types strong{font-size:16px}}
.username-status{min-height:26px;font-size:11px;line-height:1.8;color:#d0d0d0;margin:-4px 0 12px}.username-status[data-state=available]{color:#cce5d0}.username-status[data-state=taken],.username-status[data-state=error]{color:#ffb9aa}.username-status .btn{min-height:32px;padding:3px 8px;margin-left:6px;font-size:11px}
.payment-entry{max-width:640px;margin:32px auto 0;padding:24px 0;border-top:1px solid var(--line);display:flex;flex-direction:column;align-items:flex-start;gap:10px}.payment-entry small{font-size:11px}.payment-heading{display:flex;align-items:center;gap:16px}.payment-heading>svg{width:34px;height:34px;flex:none}.payment-summary{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:28px 0}.payment-summary span{font-size:13px;color:#bbb}.payment-summary strong{text-align:right;font-weight:500;overflow-wrap:anywhere}.payment-methods{display:grid;gap:12px;margin:26px 0}.payment-methods .btn{display:flex;text-align:left;justify-content:flex-start;gap:17px;border-radius:16px;padding:18px}.payment-methods .btn[aria-pressed=true]{border-color:#fff;background:#ffffff0c}.payment-methods svg{width:28px;height:28px;flex:none}.payment-methods span{display:grid;gap:5px}.payment-methods strong{font-size:15px;font-weight:500}.payment-methods small{font-size:11px}.payment-step{margin-top:30px;border-top:1px solid var(--line);padding-top:10px}.payment-state{font-size:12px;color:#ddd}.bank-destination{display:grid;gap:10px;border:1px solid #ffffff38;border-radius:16px;padding:22px;margin:22px 0}.bank-destination>span{font-size:12px}.bank-destination>strong{font:22px system-ui;letter-spacing:.08em}.bank-destination small{font-size:11px}.payment-step>.btn{margin-top:22px}.demo-card{display:grid;grid-template-columns:auto 1fr;gap:28px 12px;padding:25px;margin:22px 0;border-radius:22px;border:1px solid #ffffff65;background:linear-gradient(125deg,#444,#202020);box-shadow:0 14px 24px #0005}.demo-card>svg{width:26px;height:26px}.demo-card>span{font-size:11px;align-self:center;text-align:right}.demo-card>strong{grid-column:1/-1;font:20px system-ui;letter-spacing:.06em}.demo-card>small{grid-column:1/-1;font-size:11px}.payment-history{margin-top:34px}.payment-history>div{display:flex;justify-content:space-between;gap:20px;padding:15px 0;border-bottom:1px solid var(--line)}.payment-history span{font-size:12px}.payment-history small{text-align:right;font-size:11px}#payment-dialog img{display:block;max-width:100%;max-height:55svh;object-fit:contain;margin:20px auto}#payment-dialog .btn{margin-top:20px}
/* Form actions stay in document flow so classification and proof fields remain visible. */
.form .actions{position:static;background:none;padding:20px 0 0;gap:14px}.journey-progress{position:relative;isolation:isolate;overflow:hidden;min-height:104px;padding:22px;border:1px solid #ffffff25;border-radius:18px;margin-bottom:26px;background:#202020;color:#eee}.journey-progress:before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#1d1d1d 28%,#1d1d1d33),url('assets/role-actors.webp') right 23%/75% auto no-repeat;filter:grayscale(1);opacity:.75}.journey-progress>div{position:relative}.journey-progress>span{position:relative;text-shadow:0 1px 3px #000}
/* Owner can compare the prior auth tone from the external Preview controls. */
body[data-auth-tone=green] .auth-scene{background:#10211b}body[data-auth-tone=green] .auth-panel{background:linear-gradient(135deg,rgba(220,238,218,.15),rgba(8,30,24,.52));border-color:#e3efdc66}body[data-auth-tone=green] .auth-panel input:not([type=checkbox]){background:rgba(9,29,24,.35);border-color:#e1ebd654}body[data-auth-tone=green] .auth-panel .provider-row .btn{background:rgba(10,29,24,.3)}body[data-auth-tone=green] .auth-panel .btn.primary{background:#d9e2b6;color:#162219;border-color:#d9e2b6}body[data-auth-tone=green] .auth-scene:before{background:linear-gradient(180deg,#07191300,#061c1566 48%,#0b201d 95%)}

.membership-icon{width:76px;height:76px;border-radius:0;background:none;border:0;margin-bottom:10px}
.membership-icon svg{width:72px;height:72px}
.membership-icon-full{color:#eee4c9;background:radial-gradient(ellipse,#d2c39920,transparent 70%)}
.membership-icon-associate{color:#c5c5c5}
.membership-types .check:has(.membership-icon-full){background:linear-gradient(145deg,#e8ddc512,#ffffff02)}
.membership-types .check:has(.membership-icon-full):has(:checked){border-color:#e2d5b4}
.document-purpose{border-left:2px solid #a3a3a3;padding:4px 0 4px 14px;font-size:13px;line-height:1.9;color:#d5d5d5}
.private-documents select{width:100%;font-size:14px;padding-right:26px}
.payment-review{border-block:1px solid var(--line);padding:12px 0;margin:28px 0}
.journey-progress i{width:19px}

.membership-heading{display:flex;align-items:center;gap:8px}.info-trigger{display:inline-grid;place-items:center;border:0;background:none;color:#d8d8d8;width:44px;height:44px;padding:10px;cursor:pointer}.info-trigger svg{width:21px;height:21px}
.membership-guide{max-width:580px;width:calc(100% - 32px);max-height:85svh;border:1px solid #777;border-radius:22px;background:#202020;color:#eee;padding:24px;overflow:auto}.membership-guide::backdrop{background:#000b}.membership-guide header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;/* Owner 21 Oct 2026 night: the close button stays in view while the guide scrolls, as in the legal dialog */position:sticky;top:-24px;z-index:2;margin:-24px -24px 0;padding:24px 24px 12px;background:#202020}.membership-guide h2{font-size:24px;margin:0}.membership-guide section{padding-block:20px;border-bottom:1px solid #fff3}.membership-guide h3{font-size:21px;margin:0 0 10px}.membership-guide p,.membership-guide li{font-size:14px;line-height:1.9}.membership-guide .guide-full{color:#eee4c9}.membership-guide .guide-associate{color:#d4d4d4}.membership-guide .age-rules{margin:12px 0 0;padding:0;list-style:none;display:grid;gap:6px}.membership-guide .age-rules li{position:relative;padding-left:16px}.membership-guide .age-rules li::before{content:'';position:absolute;left:2px;top:.8em;width:6px;height:6px;border-radius:50%;background:#d4d4d4}

.application-file-picker{position:relative;display:grid;justify-items:center;gap:8px;border:1px dashed #999;border-radius:16px;padding:24px 16px;background:#ffffff04;cursor:pointer}.application-file-picker>svg{width:32px;height:32px}.application-file-picker>strong{font-weight:500;font-size:16px}.application-file-picker>span{font-size:12px;color:#bbb}.application-file-picker>input{position:absolute;inset:0;opacity:0;cursor:pointer}.application-file-picker:focus-within{outline:2px solid #fff;outline-offset:4px}.document-preview{display:block;max-width:100%;max-height:60svh;object-fit:contain;margin:20px auto}.document-row strong,#evidence-dialog h3{overflow-wrap:anywhere}.document-row .actions{flex-wrap:wrap}

.applicant-identity-note,.identity-dob-note{font-size:12px;color:var(--muted);margin:0 0 8px}.choice-inline:has(input:disabled){opacity:.5;cursor:not-allowed}.nat-full-only{font-size:12px;color:var(--muted)}.draft-hint{font-size:12px;color:#c8c8c8;margin:8px 0}.next-steps{margin:24px 0;padding:22px 0;border-block:1px solid #fff3}.next-steps h2{font-size:23px;margin:0 0 12px}.next-steps p,.next-steps li{font-size:14px;line-height:1.9}.next-steps ol{padding-inline-start:22px}.next-steps li{padding:6px 0}.fee-breakdown{margin:24px 0;padding:20px 0;border-block:1px solid #fff3}.fee-breakdown h2{font-size:19px}.fee-breakdown dl>div{display:flex;justify-content:space-between;gap:14px;padding:9px 0}.fee-breakdown dt{font-size:14px}.fee-breakdown dd{margin:0;white-space:nowrap;font-variant-numeric:tabular-nums}

.remember-login{display:flex;gap:10px;align-items:center;min-height:44px;margin:4px 0 12px;font-size:13px;color:#e4e4e4;cursor:pointer}.remember-login input{width:18px;height:18px;accent-color:#eee;flex-shrink:0}

/* V12: retain the artwork dimensions; compact the surrounding mobile composition. */
body[data-view=home] .app-header{min-height:54px;padding-block:12px}
body[data-view=home] .app-header>span{display:none}
body[data-view=home] main{padding-top:0;padding-bottom:18px}
body[data-view=home] .journey-nav{margin-bottom:0}
body[data-view=home] .journey-nav .btn{min-height:40px}
.application-count{display:grid;place-items:center;min-width:21px;height:21px;padding:0 5px;border:1px solid #777;border-radius:50%;font-size:10px}
.applications-dialog{width:calc(100% - 32px);max-width:580px;max-height:85svh;background:#202020;color:#eee;border:1px solid #666;border-radius:22px;padding:24px;overflow:auto}
.applications-dialog::backdrop{background:#000b}
.applications-dialog .my-applications{margin-top:14px}
.application-row{padding:18px 0;border-top:1px solid #ffffff25;display:flex;gap:12px;align-items:center;justify-content:space-between}
.application-row h3{font-size:17px;margin:0 0 8px}.application-row small{font-size:11px;color:#bbb}
[data-action=draft-delete],[data-action=draft-delete-confirm]{color:#ff9292!important;background:#e257570d!important;border:1px solid #e2575744!important;min-width:44px;min-height:44px;padding:10px!important}
[data-action=draft-delete] svg,[data-action=draft-delete-confirm] svg{width:21px;height:21px}
.evidence-intro>p,.evidence-remark{font-size:13px;line-height:1.8;color:#d2d2d2}
.evidence-intro h2{display:flex;align-items:center;gap:8px}.evidence-intro h2 .btn{border:0;background:none;padding:10px;min-width:44px;min-height:44px}.evidence-intro h2 svg{width:21px;height:21px}
.guardian-document-slot{margin-top:26px;padding-top:20px;border-top:1px solid #ffffff35}.guardian-document-slot h3{font-size:18px}.guardian-document-slot>p{font-size:13px;line-height:1.8}
.membership-guide dt{font-size:17px;margin:22px 0 8px;color:#f1e4c7}.membership-guide dd{margin:0;font-size:14px;line-height:1.85}
@media(max-width:359px){.application-row{align-items:flex-start;flex-direction:column}}
@media(min-width:1000px) and (max-height:950px){
 body[data-view=home] main{max-width:1140px;padding-inline:32px}
 body[data-view=home] .app-header{max-width:1140px}
 body[data-view=home] .journey-nav{max-width:none}
}
/* Short phones retain the full image; condense surrounding controls, never clip content. */
@media(max-width:699px) and (max-height:720px){
 body[data-view=home] .app-header{min-height:42px;padding-block:8px}
 body[data-view=home] main{padding-inline:18px}
 body[data-view=home] .journey-nav{position:relative;padding-right:130px;margin-bottom:0}
 /* Owner 2026-10-31 (BUG-19): the applicant status pages' single ‹ exit (management-nav) stays visible on short phones. */
 body[data-view=home] .journey-nav:not(.management-nav) .btn:last-child{display:none}
}
@media(max-width:699px) and (max-height:720px){body[data-view=home] main{padding-bottom:8px}}
@media(max-width:699px) and (max-height:720px){body[data-view=home] .app-language{top:4px}}
body[data-view=home] .app-language{top:6px}

.application-account-context{font-size:16px;color:#eee;margin:18px 0 6px}
.membership-guide .evidence-category{padding-block:20px}.membership-guide .evidence-category h3{font-size:20px;color:#eee;border-left:2px solid #e3d7bd;padding-left:12px;margin:0 0 20px}.membership-guide .evidence-category dt{font-size:16px;margin-top:16px}.evidence-criteria{margin:0}
.notice{pointer-events:none}
.journey-progress[data-path=industry]:before{background-image:linear-gradient(90deg,#1d1d1d 28%,#1d1d1d33),url('assets/role-creators.webp')}

/* V15: first application, saved draft and account access have distinct destinations. */
.resume-screen,.account-access,.add-access,.status-upgrade{padding-top:8px;padding-bottom:32px}
.ready-mark{display:block;width:60px;height:60px;margin:6px 0 14px}.ready-mark svg{display:block;width:100%;height:100%}.ready-mark circle{fill:#3fae6a}.ready-mark path{fill:none;stroke:#fff;stroke-width:6;stroke-linecap:round;stroke-linejoin:round}
@media(max-width:500px) and (max-height:800px){.resume-screen{position:relative}.ready-mark{position:absolute;top:0;right:0;width:44px;height:44px;margin:0}}
.resume-screen h1,.account-access h1,.add-access h1,.status-upgrade h1{font-size:clamp(27px,5vw,38px);line-height:1.4;letter-spacing:-.025em}
.resume-screen>p,.account-access>p,.add-access>p,.status-upgrade>p{line-height:1.8;color:#c4c4c4}
.resume-art{height:180px;border-radius:22px;margin:16px 0 24px;background-size:cover;background-position:center 32%;position:relative;overflow:hidden}
.resume-art:after,.access-path-art:after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 35%,#121212b0)}
.resume-art.member,.access-path-art.member{background-image:url('assets/role-actors.webp')}
.resume-art.industry,.access-path-art.industry{background-image:url('assets/role-creators.webp')}
.resume-actions{display:flex;align-items:center;gap:14px;margin:18px 0}
.resume-actions>.primary{flex:1}
/* Owner 22 Oct 2026: on the account-ready page "เริ่มใบสมัครสมาชิก" is full width as before and "เคยเป็นสมาชิกอยู่แล้ว" sits below it. */.resume-actions[data-ready-actions]{flex-direction:column;align-items:stretch;gap:12px}.resume-actions[data-ready-actions]>.btn{width:100%}.resume-actions [data-action=draft-delete]{width:46px;height:46px;padding:11px;color:#fa9292;border:1px solid #c460604d;background:#49202033;border-radius:14px;flex:none}.resume-actions [data-action=draft-delete] svg{width:22px;height:22px}
.resume-path{display:flex;align-items:center;flex-wrap:wrap;gap:12px}
.account-identity{border-left:2px solid #b9ab91;padding:10px 16px;margin:24px 0;display:grid;gap:6px}.account-identity>span,.account-identity small{font-size:12px;color:#aaa}.account-identity strong{font-size:18px}
/* Owner 7 Nov 2026 (fix round, Q2-B-07, "ตามที่คุณแนะนำ"): only the label above the value ("สถานะตอนนี้") is the small grey line; a word kept whole
   inside the value (.tosaa-term in "สมาชิกวิสามัญ · นักแสดงเด็ก / เยาวชน", "สมาชิกสามัญ") has the value's size and colour. Owner's note: "เด็ก" does not
   sit too close to "นักแสดง" in the child / youth status, so a small gap follows the kept word there (data-status-youth, account-journey.js). Was:
   ".account-identity span", which made the kept words 12 px grey inside the 18 px value. */
.account-identity strong .tosaa-term{font-size:inherit;color:inherit}.account-identity strong[data-status-youth] .tosaa-term:last-of-type{margin-inline-end:.2em}
.access-paths{display:grid;gap:20px}.access-path{padding:18px;border:1px solid #ffffff26;border-radius:22px;background:linear-gradient(135deg,#ffffff07,transparent)}.access-path h2{margin:14px 0 8px;font-size:23px}.access-path p{font-size:14px;line-height:1.8;color:#c4c4c4}.access-path>.btn{width:100%}.access-path-art{height:110px;border-radius:14px;position:relative;background-size:cover;background-position:center 30%;overflow:hidden}.access-request{border-top:1px solid #ffffff20;margin-top:18px;padding-top:18px}.active-access{display:flex;align-items:center;gap:8px}.active-access:before{content:'';width:7px;height:7px;border-radius:50%;background:#d7cdb9;box-shadow:0 0 9px #d7cdb940}.fixture-access{font-size:12px!important;border:1px dashed #b4a28288;padding:8px 12px;border-radius:8px;color:#d7c9ae!important}
.add-access>.primary{width:100%;margin-top:18px}.add-access .summary{padding:18px;border:1px solid #ffffff26;border-radius:18px}.add-access .summary>div{padding:8px 0}.add-access .summary dt{font-size:12px;color:#aaa}.add-access .summary dd{margin:6px 0;font-size:17px}.account-flow-label{font-size:12px;color:#c9bda8;line-height:1.7;letter-spacing:.04em}.previous-drafts{margin-top:30px}.previous-drafts .btn{margin-top:12px}
@media(min-width:650px){.access-paths{grid-template-columns:1fr 1fr}.account-access.form{max-width:820px}.resume-art{height:230px}.access-path{display:flex;flex-direction:column}.access-path>.btn{margin-top:auto}.access-path-art{flex:none}}
body[data-journey=account] .app-header{min-height:54px;padding-block:12px}body[data-journey=account] .app-header>span{display:none}body[data-journey=account] main{padding-top:0}body[data-journey=account] .journey-nav{margin-bottom:0}body[data-journey=account] .journey-nav>.btn:only-child{margin-left:auto}
.add-access .resume-art{height:120px;margin:10px 0 16px}.add-access .eyebrow{font-size:11px;margin:12px 0}.add-access .summary{margin:16px 0;padding:12px 16px}.add-access [data-action=identity-correction]{border:0;text-decoration:underline;text-underline-offset:4px;padding:4px 0;min-height:44px;font-size:12px}.add-access-actions{position:sticky;bottom:0;background:linear-gradient(#12121200,#121212 18%);padding:18px 0 12px;margin-top:8px}.add-access-actions>.btn{width:100%}
@media(max-width:699px) and (max-height:720px){body[data-journey=account] .journey-nav{padding-right:0}body[data-journey=account] .journey-nav .btn:last-child{display:inline-flex}}

/* Category-bound Student evidence slots keep both requirements visible. */
.student-document-slot{padding-block:24px;border-top:1px solid #ffffff30;margin-top:20px}.student-document-slot>header{display:flex;align-items:flex-start;gap:16px;justify-content:space-between}.student-document-slot h3{margin:0;font-size:17px;line-height:1.7}.evidence-slot-status{flex:none;font-size:11px;color:#d4c5ac;line-height:1.8;padding:5px 0}.student-document-slot .document-row{background:#ffffff06;padding:16px;border-radius:14px;margin-block:14px}.student-document-slot .document-row .actions{position:static;background:none;padding:0;margin-top:12px}.other-saved-documents{margin-block:24px}.student-document-slot>p{margin-top:8px}
.account-access .access-paths,.status-upgrade .access-paths{grid-template-columns:1fr}.account-access.form,.status-upgrade.form{max-width:600px}
/* V16 auth: portrait centered, landscape right; artwork has viewport geometry,
   independent of form length so login/signup retain exactly the same crop. */
.auth-view .auth-scene .auth-layout,.auth-view .auth-scene .auth-layout:has(#entry-password),.auth-view .auth-scene .auth-layout:has(#signup-form){align-items:center;justify-content:center;padding:76px max(24px,env(safe-area-inset-right)) 24px max(24px,env(safe-area-inset-left));min-height:100svh;max-width:1360px}
.auth-view .auth-panel,.auth-view .auth-panel:has(#entry-password){margin:0;width:100%;max-width:430px}
.auth-view .auth-caption{display:none}
.auth-view .app-language{top:max(16px,env(safe-area-inset-top));right:max(24px,env(safe-area-inset-right))}
.auth-view .auth-photo{position:fixed;inset:0;width:100%;height:100svh;background-size:cover;background-position:center 30%}
.auth-view .auth-scene:before{position:fixed;inset:0;height:100svh;background:linear-gradient(180deg,#1112,#1115 50%,#111d)}
@media(orientation:landscape) and (min-width:600px){
 .auth-view .auth-scene .auth-layout,.auth-view .auth-scene .auth-layout:has(#entry-password),.auth-view .auth-scene .auth-layout:has(#signup-form){align-items:flex-end;padding:68px max(32px,env(safe-area-inset-right)) 20px max(32px,env(safe-area-inset-left))}
 .auth-view .auth-panel{max-width:430px}.auth-view .auth-scene:before{background:linear-gradient(90deg,#1111,#1114 48%,#111a)}
}
@media(orientation:landscape) and (max-height:600px) and (min-width:600px){
 .auth-view .auth-scene .auth-layout,.auth-view .auth-scene .auth-layout:has(#entry-password),.auth-view .auth-scene .auth-layout:has(#signup-form){padding:12px max(20px,env(safe-area-inset-right)) 12px max(20px,env(safe-area-inset-left))}
 .auth-view .app-language{left:max(20px,env(safe-area-inset-left));right:auto;top:max(16px,env(safe-area-inset-top))}
 .auth-view .app-language select{min-height:36px}
 .auth-view .auth-panel:has(#login-form){max-width:520px;width:min(520px,76vw);display:grid;grid-template-columns:1fr 1fr;gap:3px 18px;padding:14px 20px;border-radius:24px}
 .auth-view .auth-panel:has(#login-form)>.auth-brand{grid-column:1;align-self:center;margin:0}
 .auth-view .auth-panel:has(#login-form) .brand-mark{width:100px;height:26px}.auth-view .auth-panel:has(#login-form) .brand-mark img{top:-51px}
 .auth-view .auth-panel:has(#login-form)>h1{grid-column:2;margin:0;text-align:right;align-self:center;font-size:23px}
 .auth-view .auth-panel:has(#login-form)>:not(.auth-brand):not(h1){grid-column:1/-1}
 .auth-view .auth-panel:has(#login-form)>.auth-intro{margin:2px 0 5px;font-size:11px;line-height:1.5}
 .auth-view #login-form{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:5px 16px;align-items:center}
 .auth-view #login-form .field{margin:0}.auth-view #login-form .field>span{margin-bottom:3px;font-size:11px;line-height:1.5}
 .auth-view #login-form input:not([type=checkbox]){min-height:40px;height:40px;padding:7px 10px;font-size:14px}
 .auth-view #login-form .remember-login{margin:0;min-height:40px;font-size:11px}.auth-view #login-form .auth-actions{margin:0}
 .auth-view #login-form .auth-actions .btn{min-height:40px;padding:7px 12px;font-size:13px}
 .auth-view #login-form .error{grid-column:1/-1;font-size:11px;line-height:1.5;margin:2px 0}
 .auth-view .auth-panel:has(#login-form)>.auth-or{margin:3px 0;font-size:10px;line-height:1.5}
 .auth-view .auth-panel:has(#login-form)>.provider-row{margin:3px 0;gap:12px}
 .auth-view .auth-panel:has(#login-form)>.provider-row .btn{min-height:40px;padding:7px 12px;font-size:13px}
 .auth-view .auth-panel:has(#login-form)>.auth-switch{margin:0;font-size:11px;line-height:1.5}
 .auth-view .auth-panel:has(#login-form)>.auth-switch .btn{min-height:36px;padding:5px 8px;font-size:12px}
 .auth-view .auth-panel:has(#login-form)>[data-style=auth-more]{margin:0;min-height:32px;padding:4px 0;font-size:11px;line-height:1.5}
}
@media(max-width:359px){.auth-view .auth-scene .auth-layout,.auth-view .auth-scene .auth-layout:has(#entry-password),.auth-view .auth-scene .auth-layout:has(#signup-form){padding-inline:16px}}
/* Latest owner correction: quiet full-width alternative below Continue, both paths. */
.resume-screen>[data-action=change-initial-path]{display:flex;justify-content:flex-start;text-align:left;position:relative;isolation:isolate;width:100%;min-height:86px;padding:22px 130px 22px 4px;margin-top:8px;border:0;border-top:1px solid #ffffff30;border-radius:0;background:transparent;font-size:13px;line-height:1.7;overflow:hidden}
.resume-screen>[data-action=change-initial-path] img{position:absolute;right:0;top:8px;width:140px;height:78px;object-fit:cover;opacity:.45;mask-image:linear-gradient(90deg,transparent,#000 40%,#000 90%,transparent);z-index:-1}.resume-screen>[data-action=change-initial-path]:hover img{opacity:.65}.resume-screen>[data-action=change-initial-path]:focus-visible{outline:2px solid #eee;outline-offset:3px}
.upgrade-access>.primary{width:100%;margin-top:18px}.upgrade-association{border-top:1px solid #ffffff25;margin-top:30px;padding-top:16px}.upgrade-access>p{line-height:1.9}.upgrade-access .resume-art,.status-upgrade .resume-art{height:180px;background-position:center 10%}
@media(min-width:650px),(orientation:landscape){.resume-screen>.resume-art{height:clamp(240px,48vw,350px);background-position:center 12%}}

/* Compact vertical login spacing while keeping every action visible. */
.auth-view .auth-panel:has(#login-form){padding:24px}
.auth-view .auth-panel:has(#login-form) h1{margin:14px 0 10px}
.auth-view .auth-panel:has(#login-form) .field{margin:12px 0}
.auth-view .auth-panel:has(#login-form) .auth-intro{margin:0 0 10px}
.auth-view .auth-panel:has(#login-form) .auth-actions{margin-top:12px}
.auth-view .auth-panel:has(#login-form)>[data-style=auth-more]{margin-top:0}
@media(orientation:landscape) and (max-height:600px) and (min-width:600px){
.auth-view .auth-panel:has(#login-form){padding:12px 18px}
.auth-view .auth-panel:has(#login-form) h1{margin:0}
.auth-view .auth-panel:has(#login-form) .auth-brand .brand-mark{margin:0;width:100px;height:26px}
.auth-view .auth-panel:has(#login-form) .auth-brand .brand-mark img{top:-51px}
.auth-view .auth-panel:has(#login-form) .field{margin:0}
.auth-view .auth-panel:has(#login-form) .auth-intro{margin:2px 0 5px}
.auth-view .auth-panel:has(#login-form) .auth-actions{margin:0}
}
@media(orientation:landscape) and (max-height:600px) and (min-width:600px){
 .auth-view .auth-panel:has(#login-form)>.auth-switch{grid-column:1;font-size:10px}
 .auth-view .auth-panel:has(#login-form)>[data-style=auth-more]{grid-column:2;font-size:10px}
 .auth-view .auth-panel:has(#login-form) #login-form .auth-actions{margin:0}
}
@media(orientation:landscape) and (min-height:601px){.auth-view .auth-scene .auth-layout:has(#login-form){padding-bottom:12px}.auth-view .auth-panel:has(#login-form){padding:20px 24px}.auth-view .auth-panel:has(#login-form) .field{margin:10px 0}}
.auth-view .auth-panel .remember-login input{min-height:18px;height:18px;width:18px;margin:0}
@media(orientation:landscape) and (max-height:600px) and (min-width:600px){
 .auth-view .auth-panel:has(#login-form)>p.auth-switch{grid-column:1}
 .auth-view .auth-panel:has(#login-form)>button[data-style=auth-more]{grid-column:2}
}

.account-deadline{max-width:600px;margin:18px auto;padding:14px 0;border-block:1px solid #ffffff30}.account-deadline strong{font-size:13px;font-weight:500;color:#e5d6bd}.account-deadline p{font-size:11px;line-height:1.85;margin:6px 0 0}.signup-expiry{font-size:11px;line-height:1.8;margin:14px 0;color:#ccc}

/* V18: one clear signup return, and a full-width primary sign-in action. */
@media(orientation:landscape) and (max-height:600px) and (min-width:600px){
 .auth-view .auth-panel:has(#login-form){row-gap:2px}
 .auth-view .auth-panel:has(#login-form)>.auth-intro{display:none}
 .auth-view #login-form .remember-login{grid-column:1/-1;min-height:24px}
 .auth-view #login-form .auth-actions{grid-column:1/-1}
 .auth-view #login-form .auth-actions .btn{width:100%;min-height:44px}
 .auth-view .auth-panel:has(#login-form)>.provider-row .btn{min-height:44px}
}
/* A visible portrait opening belongs to both auth screens. Longer signup scrolls
   over the same viewport-bound artwork; fields retain readable/tappable sizes. */
@media(orientation:portrait){
 .auth-view .auth-scene .auth-layout:has(#login-form),.auth-view .auth-scene .auth-layout:has(#signup-form){justify-content:flex-start;padding-top:clamp(128px,19svh,170px);padding-bottom:16px}
 .auth-view .auth-panel:has(#login-form),.auth-view .auth-panel:has(#signup-form){padding:20px 24px;background:linear-gradient(150deg,#ffffff1c,#15151560)}
 .auth-view .auth-panel:has(#login-form) .auth-brand{margin-bottom:0}
 .auth-view .auth-panel:has(#login-form) h1{margin:10px 0 6px;font-size:27px}
 .auth-view .auth-panel:has(#login-form) .auth-intro{margin-bottom:8px}
 .auth-view .auth-panel:has(#login-form) .field{margin:10px 0}
 .auth-view .auth-panel:has(#login-form) .remember-login{margin:8px 0;min-height:24px}
 .auth-view .auth-panel:has(#login-form) .auth-actions{margin-top:8px}
 .auth-view .auth-panel:has(#login-form)>.auth-or{margin:14px 0}
 .auth-view .auth-panel:has(#login-form)>.provider-row{margin:12px 0}
 .auth-view .auth-panel:has(#login-form)>.auth-switch{margin:10px 0 0}
 .auth-view .auth-panel:has(#login-form)>[data-style=auth-more]{min-height:44px;padding-block:8px}
}

@media(orientation:portrait) and (min-width:600px){
 .auth-view .auth-scene .auth-layout:has(#login-form),.auth-view .auth-scene .auth-layout:has(#signup-form){justify-content:flex-start;padding-top:clamp(220px,28svh,340px)}
 .auth-view .auth-panel:has(#signup-form){padding:24px}
 .auth-view .auth-panel:has(#login-form),.auth-view .auth-panel:has(#signup-form){background:linear-gradient(150deg,#ffffff1c,#15151560)}
}
@media(orientation:portrait) and (max-width:599px) and (max-height:780px){
 .auth-view .auth-scene .auth-layout:has(#login-form){padding-top:82px;padding-bottom:8px}
 .auth-view .auth-panel:has(#login-form){padding-block:14px}
}

@media(orientation:portrait){
 .auth-view .auth-scene .auth-layout:has(#signup-form){--auth-peek:clamp(128px,19svh,170px);height:100svh;min-height:100svh;padding-top:var(--auth-peek);padding-bottom:16px;overflow:hidden}
 .auth-view .auth-panel:has(#signup-form){flex:none;max-height:calc(100svh - var(--auth-peek) - 52px);overflow-y:auto;overscroll-behavior-y:contain;scrollbar-width:thin;scrollbar-color:#ffffff70 #ffffff0a;scroll-padding-block:20px;-webkit-overflow-scrolling:touch}
 .auth-view .auth-panel:has(#signup-form)::-webkit-scrollbar{width:5px}
 .auth-view .auth-panel:has(#signup-form)::-webkit-scrollbar-thumb{background:#ffffff70;border-radius:5px}
 .auth-view .auth-panel:has(#signup-form) h1{margin:14px 0 12px}
}
@media(orientation:portrait) and (min-width:600px){
 .auth-view .auth-scene .auth-layout:has(#signup-form){--auth-peek:clamp(220px,28svh,340px)}
}

/* V19: center the auth panel; Back is independent of the brand/form flow. */
.auth-view .auth-panel:has(#signup-form)>.auth-brand{margin:0}
@media(orientation:portrait){
 .auth-view .auth-scene .auth-layout:has(#login-form),.auth-view .auth-scene .auth-layout:has(#signup-form){justify-content:center;padding-top:72px;padding-bottom:40px}
 .auth-view .auth-panel:has(#signup-form){padding:20px 24px;max-height:min(630px,calc(100svh - 144px))}
}
@media(orientation:portrait) and (max-width:599px) and (max-height:780px){
 .auth-view .auth-scene .auth-layout:has(#login-form),.auth-view .auth-scene .auth-layout:has(#signup-form){padding-top:64px;padding-bottom:16px}
 .auth-view .auth-panel:has(#signup-form){padding-block:14px;max-height:calc(100svh - 118px)}
}
@media(orientation:landscape) and (max-height:600px) and (min-width:600px){
 .auth-view .auth-panel:has(#signup-form){max-width:520px;width:min(520px,76vw);padding:12px 18px}
 .auth-view .auth-panel:has(#signup-form) .brand-mark{margin:0;width:100px;height:26px}
 .auth-view .auth-panel:has(#signup-form) .brand-mark img{top:-51px}
}
@media(orientation:landscape) and (min-height:601px){
 .auth-view .auth-panel:has(#signup-form){padding:20px 24px}
}

/* V20: a quiet inset Back uses the existing gutter, never the brand row. */
.auth-view .auth-panel:has(#login-form),.auth-view .auth-panel:has(#signup-form){position:relative;padding-inline:28px}
@media(orientation:portrait) and (max-width:599px){
 .auth-view .auth-panel:has(#login-form),.auth-view .auth-panel:has(#signup-form){padding-block:16px}
 .auth-view .auth-panel:has(#login-form) h1,.auth-view .auth-panel:has(#signup-form) h1{font-size:24px;line-height:1.3;margin:8px 0 6px}
 .auth-view .auth-panel:has(#login-form) .auth-intro,.auth-view .auth-panel:has(#signup-form) .auth-intro{font-size:11px;line-height:1.6;margin:0 0 8px}
 .auth-view .auth-panel:has(#login-form) .field,.auth-view .auth-panel:has(#signup-form) .field{margin:8px 0}
 .auth-view .auth-panel:has(#login-form) .field>span,.auth-view .auth-panel:has(#signup-form) .field>span{font-size:11px;margin-bottom:4px;line-height:1.6}
 .auth-view .auth-panel:has(#login-form) input:not([type=checkbox]),.auth-view .auth-panel:has(#signup-form) input:not([type=checkbox]){min-height:46px;height:46px;padding:10px 12px;font-size:16px}
 .auth-view .auth-panel:has(#login-form) .auth-actions .btn,.auth-view .auth-panel:has(#signup-form) .auth-actions .btn{min-height:46px;padding:10px 14px;font-size:13px}
 .auth-view .auth-panel:has(#login-form)>.provider-row .btn,.auth-view .auth-panel:has(#signup-form)>.provider-row .btn{min-height:44px;padding:9px 12px;font-size:13px}
 .auth-view .auth-panel:has(#login-form)>.auth-or{margin:10px 0}
 .auth-view .auth-panel:has(#login-form)>.provider-row{margin:8px 0}
 .auth-view .auth-panel:has(#login-form)>.auth-switch{margin:4px 0 0}
 .auth-view .auth-panel:has(#signup-form){max-height:min(550px,calc(100svh - 144px))}
}
@media(orientation:landscape) and (max-height:600px) and (min-width:600px){
 .auth-view .auth-scene .auth-layout:has(#signup-form){height:100svh;overflow:hidden}
 .auth-view .auth-panel:has(#signup-form){max-height:calc(100svh - 48px);overflow-y:auto;overscroll-behavior-y:contain;scrollbar-width:thin;scrollbar-color:#ffffff70 #ffffff0a;scroll-padding-block:12px;flex:none}
 .auth-view .auth-panel:has(#signup-form)>h1{font-size:24px;line-height:1.3;margin:8px 0}
 .auth-view .auth-panel:has(#signup-form)>.auth-intro{font-size:11px;margin:0 0 10px;line-height:1.6}
 .auth-view #signup-form{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:6px 14px}
 .auth-view #signup-form>.field{margin:0}
 .auth-view #signup-form>.field>span{font-size:11px;line-height:1.6;margin-bottom:4px}
 .auth-view #signup-form input:not([type=checkbox]){height:44px;min-height:44px;padding:8px 10px;font-size:16px}
 .auth-view #signup-form>:not(.field){grid-column:1/-1}
 .auth-view #signup-form .username-status{margin:0 0 4px;font-size:10px}
}

/* V21: remove the account tagline and tighten the portrait composition. */
@media(orientation:portrait) and (max-width:599px){
 .auth-view .auth-panel:has(#login-form),.auth-view .auth-panel:has(#signup-form){padding-block:14px}
 .auth-view .auth-panel:has(#login-form) .brand-mark,.auth-view .auth-panel:has(#signup-form) .brand-mark{margin-bottom:2px}
 .auth-view .auth-panel:has(#login-form) h1,.auth-view .auth-panel:has(#signup-form) h1{font-size:22px;margin:7px 0 5px}
 .auth-view .auth-panel:has(#login-form) .field,.auth-view .auth-panel:has(#signup-form) .field{margin:5px 0}
 .auth-view .auth-panel:has(#login-form) input:not([type=checkbox]),.auth-view .auth-panel:has(#signup-form) input:not([type=checkbox]){height:44px;min-height:44px}
 .auth-view .auth-panel:has(#login-form) .remember-login{margin:4px 0;min-height:24px}
 .auth-view .auth-panel:has(#login-form)>.auth-or{margin:8px 0}
 .auth-view .auth-panel:has(#login-form)>.provider-row{margin:6px 0}
 .auth-view .auth-panel:has(#login-form){display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:12px}
 .auth-view .auth-panel:has(#login-form)>*{grid-column:1/-1}
 .auth-view .auth-panel:has(#login-form)>p.auth-switch{grid-column:1;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:10px;line-height:1.5;margin:2px 0 0}
 .auth-view .auth-panel:has(#login-form)>.auth-switch .btn{font-size:11px;min-height:28px;padding:4px;line-height:1.5}
 .auth-view .auth-panel:has(#login-form)>button[data-style=auth-more]{grid-column:2;font-size:10px;line-height:1.6;min-height:44px;padding:6px 0}
 .auth-view .auth-panel:has(#signup-form){max-height:min(460px,calc(100svh - 144px))}
}

.waiting-screen{padding-top:28px;padding-bottom:36px}.waiting-screen h1{font-size:clamp(27px,5vw,36px);line-height:1.45;margin:24px 0 12px}.waiting-screen>p{line-height:1.9;color:#ccc}.waiting-mark{width:68px;height:68px;color:#d9c9ae;border:1px solid #d9c9ae50;border-radius:50%;padding:10px;margin-top:28px}.waiting-mark svg{width:100%;height:100%}.waiting-reference{padding-block:20px;border-block:1px solid #ffffff25}.waiting-reference strong{display:block;font-size:19px;color:#eee;font-weight:400}.waiting-reassurance{font-size:12px;color:#bdbdbd}

/* QA B-01 (owner 31 Oct 2026; an exception to the 29 Oct chevron rule): on the six applicant status pages the ‹ stays where it is, above the
   card, and only the card ("TOSAA · การสมัครของคุณ" … its heading and buttons) moves down, away from it. Was: the card started right under the
   ‹ (the ready page's card frame, inset -12px, reached up into the ‹ row). */
#main>.journey-nav.management-nav+*{margin-top:28px}
.management-nav{justify-content:flex-start}.management-nav .btn{width:44px;height:44px;display:flex;align-items:center;justify-content:center;padding:10px}.management-nav svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}

.outcome-screen{padding-block:24px}.outcome-screen h1{font-size:clamp(26px,5vw,36px);line-height:1.45}.outcome-screen p,.outcome-screen li{line-height:1.85}.outcome-mark{width:54px;height:54px;border:1px solid #d3b57866;border-radius:50%;color:#d3b578;display:grid;place-items:center;font-size:32px;margin:24px 0}.outcome-screen[data-outcome=rejected] .outcome-mark{color:#e5a6a6;border-color:#e5a6a666}.outcome-reason{padding:18px 0;border-block:1px solid #ffffff30;margin:20px 0}.outcome-reason h2{font-size:16px}.outcome-reason h3{font-size:14px}.outcome-screen>.primary{width:100%;margin-top:16px}

.review-section-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:28px;border-top:1px solid #ffffff25;padding-top:18px}.review-section-heading h2{font-size:18px;line-height:1.6;margin:0}.review-section-heading .btn{width:44px;height:44px;min-width:44px;padding:11px;border-radius:50%}.review-section-heading svg{width:20px;height:20px}

.review-return{margin:8px 0 18px}/* Owner 23 Oct 2026: work credits grouped by role, no colour of their own (was a gold criterion line #d5c7ab) */.criterion-summary{font-size:13px;color:var(--muted);margin:0 0 6px}
.review-card .summary.credit-groups>div+div{border-top:1px solid #ffffff25;padding-top:14px;margin-top:6px}.summary.credit-groups div.credit-work{display:block;border:0;padding:0}.credit-work p{margin:0}.credit-work+.credit-work{margin-top:10px}.credit-detail,.credit-link{font-size:13px;color:var(--muted);overflow-wrap:anywhere}

/* V22: controls describe one action; recovery stays beside password. */
.btn.back-chevron{display:inline-flex;align-items:center;justify-content:center;flex:0 0 44px;width:44px;min-width:44px;min-height:44px;padding:10px;border-radius:50%;color:inherit}
.btn.back-chevron svg{display:block;width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2.3;stroke-linecap:round;stroke-linejoin:round}
.btn.back-chevron:focus-visible{outline:2px solid #fff;outline-offset:3px}
.auth-panel .login-options{display:flex;align-items:center;justify-content:space-between;gap:8px;grid-column:1/-1}
.auth-view .auth-panel:has(#login-form) .login-options .remember-login{margin:0;min-height:44px;font-size:11px;gap:6px;flex:1}
.auth-panel .login-options [data-style=forgot-link]{border:0;background:none;padding:8px 0 8px 6px;min-height:44px;font-size:11px;line-height:1.5;text-align:right;flex:none;text-decoration:underline;text-underline-offset:3px}
.auth-view .auth-panel:has(#login-form)>p.auth-switch{grid-column:1/-1;display:flex;flex-direction:row;align-items:center;justify-content:center;flex-wrap:wrap;gap:3px;font-size:11px;line-height:1.6;margin:4px 0 0}
.auth-view .auth-panel:has(#login-form)>.auth-switch .btn{min-height:44px;font-size:11px;padding:8px 4px;line-height:1.6}
.recovery-steps,.application-steps{padding-left:22px;margin:18px 0;font-size:13px;line-height:1.8}.recovery-steps li+li,.application-steps li+li{margin-top:8px}
.support-receipt{padding-top:14px;border-top:1px solid #ffffff30}.support-receipt h2{font-size:19px}.support-receipt p{font-size:13px;line-height:1.85;overflow-wrap:anywhere}
#support-form textarea{min-height:82px;font-size:16px}.auth-panel:has(#support-form) .fixture-note{font-size:11px;line-height:1.8}
/* Owner 7 Nov 2026 (fix round, FX4-30 re-check; rule 5 "ข้อความยาว"): in Chinese the recovery form's intro, steps and explanation end with a kept
   phrase (entry.js supportWords), which already leaves a full last line. The shared text-wrap:pretty (header.css) still moved one more character
   down with that phrase and split its word: "设|置新密码的链接" (step 3, 330–390 px), "工作人|员看不到您的密码。" (explanation) and "找回账|户，无需重复注册。"
   (intro) at 390 px. These blocks wrap plainly in Chinese, so the line breaks just before the phrase (a full line still ends where it is full).
   Was: text-wrap:pretty from header.css. */
.auth-panel:has(#support-form) :is(.auth-intro,.recovery-steps li,#support-form p.compact):lang(zh){text-wrap:wrap}
@media(orientation:portrait) and (max-width:360px){.auth-view .auth-panel:has(#login-form) .login-options .remember-login,.auth-panel .login-options [data-style=forgot-link]{font-size:10px}}
@media(orientation:landscape) and (max-height:600px){.auth-view .auth-panel:has(#login-form) .login-options .remember-login,.auth-panel .login-options [data-style=forgot-link]{min-height:32px}.auth-view .auth-panel:has(#login-form)>p.auth-switch{margin:0}.auth-view .auth-panel:has(#login-form)>.auth-switch .btn{min-height:32px;padding-block:4px}}
.auth-view .auth-panel:has(#login-form)>p.auth-switch{max-width:none;width:100%}

/* V23: social signup actions follow the panel, then settle into normal flow. */
.auth-layout:has(#signup-form){position:relative}
.auth-view .auth-panel:has(#signup-form){overflow-y:auto;overscroll-behavior-y:contain;scrollbar-width:thin;scrollbar-color:#e5e2dc #ffffff20;scroll-padding-block:20px}
.auth-view .auth-panel:has(#signup-form)::-webkit-scrollbar{width:7px}
.auth-view .auth-panel:has(#signup-form)::-webkit-scrollbar-thumb{background:#e5e2dc;border-radius:7px}
.auth-view .auth-panel:has(#signup-form)::-webkit-scrollbar-track{background:#ffffff20}
.auth-view .auth-panel.custom-scroll-ready{scrollbar-width:none}
.auth-view .auth-panel.custom-scroll-ready::-webkit-scrollbar{display:none}
.signup-providers{position:static;padding:0;margin:18px 0;background:none;border:0;box-shadow:none}.signup-providers>p{font-size:12px;margin:0 0 10px}
.signup-providers .auth-or{margin:0 10px 9px;color:#eee;font-size:10px;line-height:1.5}
.signup-providers .provider-row{gap:10px}
.auth-view .signup-providers .provider-row .btn{min-height:44px;padding:9px 12px;font-size:13px;background:#ffffff0b}
.signup-scrollbar{position:absolute;width:14px;z-index:5;touch-action:none;cursor:pointer;border-radius:8px;outline-offset:1px}
.signup-scrollbar:before{content:'';position:absolute;inset:0 5px;border-radius:8px;background:#ffffff26}
.signup-scroll-thumb{position:absolute;left:5px;right:5px;top:0;border-radius:8px;background:#e5e2dc;pointer-events:none}
.signup-scrollbar:hover .signup-scroll-thumb,.signup-scrollbar:focus-visible .signup-scroll-thumb{background:#fff}
.signup-scrollbar:focus-visible{outline:2px solid #fff}
@media(orientation:landscape) and (min-height:601px){.auth-view .auth-panel:has(#signup-form){max-height:calc(100svh - 120px)}}
@media(orientation:landscape) and (max-height:600px){.signup-providers{padding-block:5px 7px;margin-top:8px}.signup-providers .auth-or{margin-bottom:5px}.auth-view .auth-panel:has(#signup-form){scroll-padding-bottom:20px}}
.upgrade-association [data-style=association-invite]{position:relative;isolation:isolate;width:100%;min-height:190px;display:flex;align-items:flex-end;text-align:left;overflow:hidden;padding:22px;border:1px solid #ffffff30;border-radius:20px;background:#1a1a1a}
.upgrade-association [data-style=association-invite] img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 25%;z-index:-2}
.upgrade-association [data-style=association-invite]:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#1110 28%,#111e6);z-index:-1}
.upgrade-association [data-style=association-invite] span{font-size:17px;line-height:1.5;color:#fff;text-decoration:underline;text-underline-offset:5px}
.upgrade-association [data-style=association-invite]:hover{border-color:#f1eee5}
.upgrade-association [data-style=association-invite]:focus-visible{outline:2px solid #eee;outline-offset:4px}
@media(min-width:700px){.upgrade-association [data-style=association-invite]{min-height:230px}}

/* V24: provider choices belong to the form flow, never overlay it. */
.password-guidance{margin:-6px 0 18px}.password-guidance p{font-size:12px;line-height:1.65;margin:7px 0}.password-guidance .btn{min-height:36px;padding:4px 0;border:0;text-decoration:underline;background:none;font-size:12px}#password-feedback[data-valid="false"]{color:#ffd0b6}#password-feedback[data-valid="true"]{color:#a4dbb9}.required-help{font-size:11px;color:#c4c4c4}

/* V25: disclose enrollment rules without crowding the form. */
.auth-panel .password-label-row{display:flex;align-items:center;gap:6px;margin-bottom:6px;font-size:13px;color:#e3e5de}
.auth-panel .password-label-row label{margin:0}
.auth-panel .password-label-row [data-style=password-info]{width:32px;min-width:32px;min-height:32px;padding:7px;border:0;background:transparent;border-radius:50%;color:inherit}
.auth-panel [data-style=password-info] svg{width:18px;height:18px;flex:none}
.auth-panel #password-guidance{font-size:12px;line-height:1.7;margin:0 0 10px;color:#e3e5de}
.auth-panel #password-guidance[hidden]{display:none}
.auth-panel .password-guidance{display:flex;align-items:start;justify-content:space-between;gap:10px;margin:-6px 0 10px}
.auth-panel .password-guidance #password-feedback{margin:4px 0;flex:1;min-width:0}
.auth-panel .password-guidance #password-feedback:empty{display:none}
.auth-panel .password-guidance [data-style=password-toggle]{margin-left:auto;flex:none;min-height:36px;padding:4px 0;text-underline-offset:3px}

/* Only protect the authored Thai loanword; never lock whole paragraphs. */
.intro-copy .keep-word{white-space:nowrap}
@media(max-width:360px){.resume-screen:lang(zh) h1{text-wrap:balance}}

/* V26 identity: compact, independently labelled fields; no new public identity surface. */
.identity-name-grid,.identity-comparison{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.identity-change .summary{margin-block:12px}.identity-comparison section{min-width:0}.identity-comparison .summary>div{display:block}.identity-comparison dd{margin:4px 0 12px;overflow-wrap:anywhere}@media(max-width:420px){.identity-name-grid,.identity-comparison{grid-template-columns:1fr;gap:0}}

[data-gender-other][hidden]{display:none!important}


/* Entitled standalone account pages share the authenticated header and navigation. */
#app-header[hidden]{display:none}
#app-header{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:15px;width:100%;padding:10px max(24px,calc((100vw - 1240px)/2)) 19px;background:linear-gradient(180deg,rgba(38,37,36,.94),rgba(38,37,36,.79) 52%,rgba(38,37,36,.30) 80%,transparent);color:#fff}
#app-header .brand{display:block;flex:none;line-height:1;text-decoration:none}
#app-header .brand-mark{display:block;position:relative;width:145px;height:auto;aspect-ratio:750/230;overflow:hidden;margin:0}
#app-header .brand-mark img{position:absolute;width:128%;max-width:none;height:auto;left:-12%;top:-169.565217%;filter:url(#logo-alpha);mix-blend-mode:normal;clip-path:inset(0 0 40% 0)}
#app-header .brand-subtitle{position:absolute;inset:0;width:100%;height:100%;fill:currentColor;font-family:Arial,sans-serif;font-size:36px;letter-spacing:0}
#app-header .header-end{display:flex;align-items:center}
body.connected-account>.app-header,body.connected-account>.app-language,body.connected-account #main>.journey-nav{display:none}
body.connected-account #main{padding-bottom:calc(110px + env(safe-area-inset-bottom))}
.connected-heading{display:grid;grid-template-columns:44px minmax(0,1fr);align-items:start;gap:12px;margin-block:10px 16px}
.connected-heading>.back-chevron{margin:0;border:0;min-height:44px;height:44px;width:44px;padding:10px}
.connected-heading>h1{margin:0;min-width:0;overflow-wrap:anywhere}
body.connected-account .back-chevron[hidden]{display:none}
body.connected-account .auth-panel .entry-nav,body.connected-account .auth-panel>.auth-brand{display:none}
@media(max-width:760px){#app-header{padding:9px 21px 18px;background:linear-gradient(180deg,rgba(48,45,43,.94),rgba(48,45,43,.77) 48%,rgba(48,45,43,.25) 80%,transparent)}#app-header .brand-mark{width:130px}}

/* Connected account requests and role action separation. */
.access-path>.btn+.btn{margin-top:16px}.request-list{margin-top:28px}.request-item{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:24px 0;border-top:1px solid var(--line)}.request-item h2{margin:0 0 12px}.request-item p{font-size:12px}.request-item .btn{flex:none}.requests-empty{padding:26px 0;margin-top:24px;border-top:1px solid var(--line)}@media(max-width:600px){.request-item{align-items:flex-start;flex-direction:column;gap:16px}}

/* Reviewed Industry role landing keeps account information without the decorative stripe. */
.account-access:has([data-access-path="industry"])>.account-identity{border-left:0}

/* A feature opened from Home has one top-left return control before its content. */

/* FB57: back shares the title row instead of consuming a toolbar row. */
.connected-heading{display:flex;align-items:center;gap:10px;margin:0 0 16px;min-width:0}
.connected-heading>h1{flex:1;min-width:0;margin:0!important;padding:0!important;text-wrap:pretty}
.connected-heading>.back-chevron{position:static!important;flex:0 0 44px;width:44px;min-width:44px;height:44px;min-height:44px;margin:0!important;padding:10px!important;border:0!important;border-radius:10px;background:transparent!important;box-shadow:none}
.connected-heading>.back-chevron svg{width:22px;height:22px}
/* Text entry keeps a quiet focus border, without a bright external frame. */
input:not([type=checkbox]):not([type=radio]):focus,textarea:focus,select:focus{outline:none;border-color:#a9b8b2;box-shadow:0 0 0 1px #a9b8b22b}
input:not([type=checkbox]):not([type=radio]):focus-visible,textarea:focus-visible,select:focus-visible{outline:1px solid #a9b8b280;outline-offset:1px}

/* FB62: equal start choices, followed by an explicit inline confirmation. */
/* QA BUG-76 (31 Oct 2026): the applicants' ‹ sits on the heading's row (29 Oct rule), the same 44px button as the status pages' management-nav. */
/* Owner 7 Nov 2026 (fix round, Q2-Q11): the ‹ back to "ติดตามใบสมัคร" (activation-back) is the same button. Was: journey-exit only. */
.activation-heading{display:flex;align-items:center;gap:6px}.activation-heading h1{min-width:0}.activation-heading :is([data-action=journey-exit],[data-action=activation-back]){flex:none;width:44px;height:44px;display:flex;align-items:center;justify-content:center;padding:10px;margin-left:-10px;border:0;background:transparent;color:#e4e8dc}.activation-heading :is([data-action=journey-exit],[data-action=activation-back]) svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}
.activation-status .activation-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:24px;align-items:stretch}
.activation-status /* Owner 22 Oct 2026: B's icon and title line up with A's (content starts at the top of both cards). Was: centred, so the shorter B text sat lower. */.activation-choices .btn{display:flex;flex-direction:column;justify-content:flex-start;gap:12px;width:100%;min-width:0;min-height:104px;padding:18px 10px;white-space:normal;font-size:14px;line-height:1.65;border:1px solid #ffffff45;border-radius:16px;background:#ffffff04;color:#eee}
.activation-choices .btn>svg{width:26px;height:26px;flex:none}
.activation-status .activation-choices .btn:hover{border-color:#ffffff80;background:#ffffff0a}
.activation-status .activation-choices .btn[aria-pressed=true]{border-color:#e4e1dc;background:#ffffff10;box-shadow:inset 0 0 0 1px #e4e1dc}
/* Owner 22 Oct 2026 (decision 5): "A · เปิดใช้งานตอนนี้" / "B · รอรอบถัดไป", each with its line and dates, side by side as before (FB62 equal start choices). */
.activation-status .activation-choices .btn .start-title{font-weight:700;font-size:15px}.start-line{display:block;font-size:12.5px;line-height:1.6;font-weight:400;opacity:.85;white-space:normal}.actions [data-action^=cohort-]{display:flex;flex-direction:column;align-items:flex-start;text-align:left;white-space:normal;height:auto;min-height:44px}
.activation-review{margin-top:24px;padding:20px 0 0;border-top:1px solid var(--line)}
.activation-review h3{font-size:17px;margin:0 0 12px;font-weight:500}
.activation-status .activation-review p{font-size:14px;margin:8px 0;line-height:1.8}
.activation-review strong{font-weight:500;color:#f0eeea}.activation-review .activation-update{color:#ead7ad}
.activation-review [data-action=activation-confirm]{width:100%;min-height:48px;margin-top:16px;white-space:normal}
.activation-status .activation-footer{display:flex;flex-direction:column;align-items:flex-start;gap:16px;border-top:1px solid var(--line);margin-top:28px;padding-top:16px}
.activation-status .activation-footer [data-action=activation-refresh]{border:0;border-radius:8px;padding:8px 2px;min-height:44px;background:transparent;font-size:13px;gap:8px;color:var(--muted)}
.activation-footer [data-action=activation-refresh] svg{width:18px;height:18px;flex:none}
.activation-status .activation-footer [data-action=activation-refresh]:hover{color:#fff;background:#ffffff08}
@media(max-width:360px){.activation-status .activation-choices{gap:10px}.activation-status .activation-choices .btn{font-size:13px;padding-inline:8px}}

/* No empty utility divider while a start choice is awaiting confirmation. */
.activation-status .activation-footer:empty{display:none}

/* FB65: readable sentence rhythm with intact dates and Thai closing phrase. */
.activation-status .activation-review p{text-wrap:pretty;word-break:normal;overflow-wrap:normal}
.activation-review strong,.activation-review .activation-keep{white-space:nowrap}

/* Owner final polish: signup returns through Sign in below the form. */
.auth-view .auth-panel:has(#signup-form){padding-inline:24px}
.auth-view .auth-panel:has(#signup-form)>h1{margin-top:24px;text-align:left}

/* Nationality and Thai work permit (owner decisions 16 Oct 2026). Answers show the next questions without a redraw. */
.nationality-section .choice-group,.restore-request .choice-group{border:0;margin:0 0 12px;padding:0;display:flex;flex-wrap:wrap;gap:8px 18px}
.nationality-section .choice-group legend,.restore-request .choice-group legend{padding:0;margin:0 0 8px;font-weight:600}
.nationality-section .choice-inline,.restore-request .choice-inline{display:inline-flex;align-items:center;gap:8px;min-height:44px;cursor:pointer}
.nationality-section .choice-inline input,.restore-request .choice-inline input{width:20px;height:20px;margin:0}
/* Owner 22 Oct 2026 (ก): the restore form's old-type choice; its note sits on its own line under the two choices. */
.restore-request .restore-type .note{flex-basis:100%;margin:0}
.nationality-section .nat-foreign,.nationality-section .nat-permit,.nationality-section .nat-nopermit{display:none}
.nationality-section:has([name=nationality-thai][value=no]:checked) .nat-foreign{display:block}
.nationality-section:has([name=work-permit][value=yes]:checked) .nat-permit{display:block}
.nationality-section:has([name=work-permit][value=no]:checked) .nat-nopermit{display:block}
/* Owner 21 Oct 2026 (OWNER-COMMENTS-STEP7-TH.md รอบ 2 ข้อ 8): "ยังไม่มี" shows a short small red line under the answer, no box. */
.nationality-section .nat-nopermit{margin:-4px 0 12px;font-size:12px;line-height:1.6;color:#ff6b6b}
/* Owner 22 Oct 2026 (decision 3): the identity document's number field is labelled for the document chosen. Was (owner 19 Oct 2026 ข้อ 10,
   removed by decision 2): "เคยเป็นสมาชิกสมาคม" showed its three fields once ticked (.former-member). */
.id-document{margin:0 0 4px}
.id-document .id-doc-number b{font-weight:inherit}
.id-document .id-doc-thai,.id-document .id-doc-passport{display:none}
.id-document:has([name=id-doc-kind][value=thai_id]:checked) .id-doc-thai,.id-document:has([name=id-doc-kind][value=passport]:checked) .id-doc-passport{display:inline}
.id-document:has([name=id-doc-kind]:checked) .id-doc-none{display:none}
#errors a{color:inherit;text-decoration:underline;text-underline-offset:3px}#errors a:focus-visible{outline:2px solid currentColor;outline-offset:2px}

/* Owner instruction 17 Oct 2026: fix overlapping buttons and small tap targets. */
/* Signup legal links stay in their sentence: padding gives a 44px hit area, a matching negative margin keeps the line box unchanged, and a slightly wider row gap keeps neighbouring links from overlapping. */
.signup-legal{gap:17px}
.legal-check .btn{padding-block:11.5px;margin-block:-8.5px}
/* Password requirements toggle keeps its drawn 32px circle; an invisible 44px hit area surrounds it without moving the label row. */
.auth-panel .password-label-row [data-style=password-info]{position:relative}
.auth-panel .password-label-row [data-style=password-info]::before{content:"";position:absolute;inset:-6px;border-radius:50%}
/* Account security and other connected pages: the last item scrolls clear of the floating bottom navigation. */
body.connected-account #main{padding-bottom:calc(var(--shell-nav-clearance,100px) + 40px + env(safe-area-inset-bottom))}
.other-saved-documents{border:1px solid #ffffff26;border-radius:14px;padding:4px 16px}.other-saved-documents>summary{cursor:pointer;padding:12px 0;font-size:15px;line-height:1.6;min-height:44px;box-sizing:border-box}.other-saved-documents[open]>summary{border-bottom:1px solid #ffffff1a;margin-bottom:8px}.other-saved-documents .document-row{background:#ffffff06;padding:16px;border-radius:14px;margin-block:12px}.other-saved-documents .document-row .actions{position:static;background:none;padding:0;margin-top:12px}
/* New-features block X3: the applicants’ FAQ (entry.js TosaaApplicantFaq) on the “รู้จัก TOSAA” slides and the waiting page.
   Each question opens in place, like the saved-documents list; answers are short paragraphs and lists. */
.applicant-faq{margin-top:22px;padding-top:14px;border-top:1px solid var(--line)}
.applicant-faq h2{margin:0 0 4px;font-size:15px;font-weight:500;line-height:1.6}
.applicant-faq h3{margin:14px 0 2px;font-size:13px;font-weight:500;color:var(--muted)}
.applicant-faq details{border-bottom:1px solid var(--line)}
.applicant-faq summary{cursor:pointer;padding:11px 0;min-height:44px;box-sizing:border-box;font-size:14px;line-height:1.6}
.applicant-faq .tosaa-faq-answer{padding:0 0 10px}
.applicant-faq .tosaa-faq-answer p,.applicant-faq .tosaa-faq-answer li{margin:0 0 6px;font-size:13px;line-height:1.75;color:var(--muted)}
.applicant-faq .tosaa-faq-answer ul{margin:0 0 6px;padding-left:1.2em}
.intro-copy .applicant-faq{grid-row:auto}
.field select{appearance:none;-webkit-appearance:none;padding-right:44px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none' stroke='%23fafafa' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 1.5l5 5 5-5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 18px center;background-size:12px 8px}
/* Owner 10 Nov 2026 (fix round, FX6-R2; owner answer to N-01): the classification list names the Associate's fourth group in full ("บุคคลทั่วไปผู้สนใจในการแสดงหรือวงการบันเทิง" /
   "Members of the public interested in acting or entertainment"), longer than the closed list on a phone, so a name it cannot show ends with "…" instead of
   stopping in the middle of a letter. The open list shows every name in full. Was: the text was cut at the edge ("Performing Arts / Entertainment Enth" already). */
.field select{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}
/* Owner 19 Oct 2026: the actors picture behind the account-ready page and the creators picture behind the creator-view box, both dimmed so text stays AA. */
.resume-screen.ready-bg{position:relative;isolation:isolate}.resume-screen.ready-bg:before{content:'';position:absolute;z-index:-1;inset:-12px -14px -6px;border:1px solid #ffffff1f;border-radius:22px;background:linear-gradient(#121212d9,#121212f0),url('assets/role-actors.webp') center 18%/cover no-repeat}
.check.creator-option,.check.creator-option:has(input:checked){position:relative;isolation:isolate;background:url('assets/role-creators.webp') center 22%/cover no-repeat padding-box}
/* Owner 21 Oct 2026 evening: ticking "เปิดมุมมองผู้สร้างงานด้วย" lights the creators picture a little (the dark veil fades back), and unticking
   dims it again. The veil stays dark enough for the text to read.
   The picture stops inside the border (padding-box), so its anti-aliased edge never shows past the veil (it left a light rim and broke AA on a phone).
   Owner 21 Oct 2026 night ("มันเหลือขอบ"): the veil covers the box's border too and draws the border itself, so no light picture shows at the edge. */
.check.creator-option::before{content:'';position:absolute;inset:-1px;z-index:-1;border:inherit;border-radius:inherit;background:linear-gradient(90deg,#121212e6,#121212d9 50%,#121212e6);transition:opacity .5s ease}
.check.creator-option:has(input:checked)::before{opacity:.78}
@media (prefers-reduced-motion:reduce){.check.creator-option::before{transition:none}}
/* Owner 19 Oct 2026: on a portrait phone a page heading scales with the width so a long English heading keeps to one line (never under 24 px). */
@media(max-width:480px) and (orientation:portrait){.form h1,.payment-screen .payment-heading h1{font-size:clamp(24px,6.4vw,32px);text-wrap:balance}}
/* Final polish Part 1: the deadline line is a short sentence in an inline <strong>, so its lines belong to the <aside> and "间）" was left alone on the last
   line in Chinese; as a block it is balanced. */
.account-deadline strong{display:block;text-wrap:balance}
/* Final polish R2 (independent review, 19 Oct 2026): on a 360 px phone the English "Your application identity" needed 258.8 px and the heading box was
   258 px, so "identity" fell alone onto a second line. The gap between the back arrow and the heading shrinks 10 -> 6 px below 380 px (the arrow keeps
   its own 10 px of padding), which gives the heading 4 px; 24 px stays the floor. At 340 px and under the line cannot fit without a smaller heading. */
@media(max-width:380px) and (orientation:portrait){.connected-heading{gap:6px}}
/* Fix round 11 Nov 2026 item 116 (independent review 12 Nov, round 2; owner answer ก, one back arrow position): inside the sign-in card
   (account recovery) the chevron sits 10 px from the card's edge and the heading 58 px, as the other member pages from the screen edge
   (card: 1 px border + 22 px padding, 18 px under 360 px). Was: at the card's content edge, 23 px (19 px at 320-340), heading 77 / 69 px. */
@media(max-width:699px){.auth-panel .connected-heading{gap:4px}.auth-panel .connected-heading>.back-chevron{margin-left:-13px!important}}
@media(max-width:359px){.auth-panel .connected-heading>.back-chevron{margin-left:-9px!important}}
/* Owner 21 Oct 2026 (OWNER-COMMENTS-STEP7-TH.md รอบ 3 ข้อ 3): each part's evidence is its own card with its own colour (a tinted ground and a
   coloured edge), set apart by space, so it is clear which section belongs to which role; the identity documents follow as their own card. */
.role-evidence-list{display:grid;gap:20px;margin:22px 0 26px}
.role-evidence{--role:#e0b25a;margin-block:8px;padding:18px 18px 8px;border-radius:16px;border:1px solid color-mix(in srgb,var(--role) 34%,transparent);border-left:5px solid var(--role);background:color-mix(in srgb,var(--role) 9%,#17191c)}
.role-evidence[data-role-evidence="Casting Director"]{--role:#6fb3e0}.role-evidence[data-role-evidence="Producer"]{--role:#a99af0}.role-evidence[data-role-evidence="Talent Representative"]{--role:#5fc7a4}.role-evidence[data-role-evidence="student"]{--role:#f0919b}
.role-evidence>header{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;column-gap:16px;row-gap:0;margin-bottom:10px}
@media (max-width:360px){.role-evidence{padding-inline:14px}.role-evidence h3{font-size:16px}}
.role-evidence h3{margin:0;font-size:18px;line-height:1.6;color:var(--role);white-space:nowrap}/* the role name stays on one line (owner, 21 Oct evening: "นักเรียน/นักศึกษาผู้สร้างงาน" wrapped) */
.role-evidence .evidence-slot-status{font-size:13px;line-height:1.6;color:#d6d0c6;text-align:right;white-space:nowrap;padding-top:3px}
.role-evidence-rule{margin:4px 0 6px;font-size:14px;line-height:1.75;color:#e8e3da}.role-evidence-rule strong{color:#fff;font-weight:600}
.role-evidence .work{border:0;padding-top:0;margin-top:6px}
.role-evidence .student-document-slot{border:0;margin-top:0;padding-top:0}
.private-documents[data-identity-documents]{margin-top:8px;padding:18px;border-radius:16px;border:1px solid #ffffff2e;border-left:5px solid #b9bec4;background:#ffffff08}
/* The link's year hint (app.js yearHint): one quiet line with an ⓘ under the link field, opening in place. */
.link-year-hint{margin:-4px 0 14px;font-size:13px;line-height:1.7;color:#d6d0c6}
.link-year-hint>summary{display:flex;align-items:center;gap:8px;min-height:44px;cursor:pointer;list-style:none}.link-year-hint>summary::-webkit-details-marker{display:none}
.link-year-hint svg{flex:none;width:18px;height:18px;color:var(--role,#d8d8d8)}
.link-year-hint p{margin:0 0 6px 26px;color:#c9c3b9}
/* Owner 22 Oct 2026: file buttons (ดู / แทนที่ / นำออก) each have a colour and a small icon. */
.doc-actions{display:flex;flex-wrap:wrap;gap:8px}.doc-actions .btn{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:8px 14px;border-radius:12px;font-size:13px;width:auto;flex:0 0 auto}.doc-actions .btn svg{width:16px;height:16px;flex:none}
.doc-actions [data-doc-tone=view]{color:#eee;border:1px solid #ffffff40;background:#ffffff08}.doc-actions [data-doc-tone=view]:hover{background:#ffffff14}
.doc-actions [data-doc-tone=replace]{color:#a9cdf0;border:1px solid #6fa9dd66;background:#2a4a6833}.doc-actions [data-doc-tone=replace]:hover{background:#2a4a6855}
.doc-actions [data-doc-tone=remove]{color:#fa9292;border:1px solid #c4606066;background:#49202033}.doc-actions [data-doc-tone=remove]:hover{background:#49202055}
/* Owner 22 Oct 2026 ("ให้ตรงกับข้อมูลเดิม"): the waiting page's dues-difference box (app.js restoreSettleNote) */.restore-difference p{margin:0 0 10px;color:inherit;font-size:13px}.restore-difference p:first-child strong{font-size:16px;font-weight:500;color:#f2efe9}.restore-difference .btn{margin-top:6px;width:100%}
/* Owner 22 Oct 2026 (items 6 and 7): a Full member's change to Associate (account-journey.js statusDowngrade), laid out as the upgrade page */.status-downgrade{padding-top:8px;padding-bottom:32px;display:flex;flex-direction:column;gap:16px}.status-downgrade.form{max-width:600px}.status-downgrade h1{font-size:clamp(27px,5vw,38px);line-height:1.4;letter-spacing:-.025em;margin-bottom:0}.status-downgrade h2{margin:0 0 10px;font-size:18px;font-weight:500}.downgrade-terms{margin:0;padding-left:20px;line-height:1.75;font-size:14px;color:#d6d6d2}.downgrade-terms li+li{margin-top:8px}.downgrade-terms strong{color:#f2efe9;font-weight:500}.status-downgrade .legal-check{margin:4px 0 12px;font-size:14px}.status-downgrade .legal-check input{width:19px;height:19px;min-height:19px;flex:0 0 19px;margin:3px 0 0;accent-color:#d4eda0}.status-downgrade .access-path>p{margin:0 0 10px;line-height:1.75;font-size:14px}.status-downgrade .access-path .btn{width:100%}.status-downgrade .error:empty{display:none}.downgrade-pending p{margin:0 0 8px;color:inherit}.downgrade-pending .summary{margin:8px 0}.downgrade-pending p.compact{margin:8px 0 0;font-size:13px}
.keep-date{white-space:nowrap}
/* Owner 7 Nov 2026 (fix round, Q2-B-12): the bold day inside a kept date stays on the line too; header.css gives strong text-wrap:balance, which
   wraps it again inside the nowrap span ("วันที่ 15" / "กุมภาพันธ์ 2027" at 360 px in the close-account popup). */
.keep-date strong{white-space:nowrap}
/* Owner 22 Oct 2026: the sent toast stays on one line on a phone (a centred fixed toast otherwise shrinks to half the screen and wraps) */.notice.notice-line{width:max-content;white-space:nowrap;padding-inline:18px}
/* Owner 22 Oct 2026 (APPLICANT-NAV-RULES-TH.md): the applicant's payment history, receipts and refund status in an overlay on the status page */
dialog.finance-sheet{position:fixed;inset:0;width:100%;max-width:none;height:100%;max-height:none;margin:0;padding:0;border:0;background:#000;color:inherit}dialog.finance-sheet::backdrop{background:#000c}dialog.finance-sheet>iframe{display:block;width:100%;height:100%;border:0;background:#000}body.finance-sheet-open{overflow:hidden}
@media(min-width:700px){dialog.finance-sheet{inset:24px;width:min(760px,calc(100% - 48px));height:calc(100% - 48px);margin:auto;border:1px solid #ffffff26;border-radius:22px;overflow:hidden}}
/* Owner 22 Oct 2026: not approved, "ปิดบัญชี" is red and starts the existing closing flow */
.actions+.actions.outcome-close{margin-top:12px}/* owner 23 Oct 2026: same 12px gap as between the refund and payment-history buttons above (was 28px) */.btn[data-close-account-start],.btn[data-close-account-confirm]{background:#3a2426;border-color:#b9706a;color:#f0c7c2;display:flex;width:100%}/* owner 22 Oct 2026: full width like the earlier Close button; a muted rose, not a loud red */.btn[data-close-account-start]:hover,.btn[data-close-account-confirm]:hover{background:#4a2c2e;border-color:#c98680}.btn[data-close-account-start]:focus-visible,.btn[data-close-account-confirm]:focus-visible{outline:2px solid #f0c7c2;outline-offset:3px}
[data-refund-contact] strong{white-space:nowrap}
/* Owner 22 Oct 2026: the check page in soft cards, a pencil top-right on each, no divider on every row, small muted labels with the value below */
.review-card{margin:14px 0;padding:6px 18px 16px;border-radius:18px;background:#ffffff0d}.review-card+.review-card{margin-top:14px}
.review-card .review-section-heading{margin:0;border:0;padding:8px 0 2px}.review-card .review-section-heading h2{font-size:16px}
.review-card .summary{margin:4px 0 0}.review-card .summary div{display:block;padding:8px 0;border:0}.review-card .summary dt{font-size:12px;color:var(--muted);margin:0 0 3px}.review-card .summary dd{margin:0;font-weight:400;overflow-wrap:anywhere}
.review-card>p,.review-card .row,.review-card .document-row{margin:8px 0 0}.review-card .row{border:0;padding:6px 0}.review-card .document-row{border:0}
.review-card.payment-review{border:0;padding:6px 18px 16px;margin:14px 0}
.not-provided{color:var(--muted);font-style:normal}
/* Owner 22 Oct 2026: the ‹ and the title stay pinned while an application step scrolls, below the app header when shown */
/* Owner 23 Oct 2026 night: the pinned step heading (22 Oct) is dropped; a floating กลับขึ้นบน button takes its place (.step-top). */
/* Owner 22 Oct 2026: the floating "กลับไปหน้าตรวจข้อมูล" on a step opened by a pencil on the check page */
.summary-return{position:fixed;left:50%;bottom:calc(var(--summary-return-nav,0px) + 16px + env(safe-area-inset-bottom));z-index:30;transform:translateX(-50%);display:inline-flex;align-items:center;gap:9px;min-height:48px;max-width:calc(100vw - 32px);padding:11px 20px;border:0;border-radius:999px;background:#d4e6c8;color:#1f3b1c;font:inherit;font-size:15px;font-weight:600;white-space:nowrap;box-shadow:0 10px 28px #0007,0 2px 6px #0005;cursor:pointer;animation:summary-return-in .32s ease-out both}
.summary-return svg{width:22px;height:22px;flex:none}.summary-return:hover{background:#c6dcb8}.summary-return:focus-visible{outline:3px solid #f3f2ef;outline-offset:3px}
@keyframes summary-return-in{from{opacity:0;transform:translate(-50%,18px)}to{opacity:1;transform:translate(-50%,0)}}
@media(prefers-reduced-motion:reduce){.summary-return{animation:none}}
body.has-summary-return #main{padding-bottom:calc(var(--summary-return-nav,0px) + 96px + env(safe-area-inset-bottom))}
/* Owner 23 Oct 2026: the status marks (not approved ×, more info, waiting for review) sit centred. */
.outcome-mark{margin-left:auto;margin-right:auto}
.waiting-mark{display:block;margin-left:auto;margin-right:auto}
/* Owner 23 Oct 2026: the status title and the line under it sit centred with the mark. */
.outcome-mark+h1,.waiting-mark+h1,.outcome-mark+h1+p,.waiting-mark+h1+p{text-align:center;text-wrap:balance}
/* Owner 23 Oct 2026: the not-approved page's "สิ้นสุดการพิจารณาแล้ว" line sits in the centred title area, before the reason */
.outcome-mark+h1+p+.outcome-ended{text-align:center;text-wrap:balance}
.waiting-mark+h1+p.resume-path{justify-content:center}
/* Owner 23 Oct 2026 (tablet and landscape): every block of an applicant status page sits in the same centred column as the status itself,
   with the notes at the column's width and the bottom buttons sharing the row. Was: only the status block was centred; the round, notes and
   buttons hung at the left edge. */
#main:has(>.outcome-screen,>.waiting-screen)>*{box-sizing:border-box;width:100%;max-width:640px;margin-left:auto;margin-right:auto}
#main:has(>.outcome-screen,>.waiting-screen)>p.note{max-width:640px}
#main:has(>.outcome-screen,>.waiting-screen)>.actions{display:flex;flex-wrap:wrap;gap:12px}
#main:has(>.outcome-screen,>.waiting-screen)>.actions>.btn{flex:1 1 200px}
/* Owner 7 Nov 2026 (fix round, FX4-08): the steps with the กลับขึ้นบน button keep room under the last button (16 px + 48 px + 16 px), as
   has-summary-return does, so the button never sits on "ดำเนินการต่อ" / "ไปหน้าชำระเงิน" at the end of the page. A connected account and the
   summary-return button keep their own (larger) room. Was: #main's own 45–60 px. */
body.has-step-top:not(.connected-account):not(.has-summary-return) #main{padding-bottom:calc(80px + env(safe-area-inset-bottom))}
.step-top{position:fixed;right:max(18px,env(safe-area-inset-right));bottom:calc(var(--summary-return-nav,0px) + 16px + env(safe-area-inset-bottom));z-index:29;display:grid;place-items:center;width:48px;height:48px;border:1px solid #ffffff2e;border-radius:50%;background:#1d1d1df2;color:#f3f2ef;box-shadow:0 6px 18px #0006;cursor:pointer}.step-top[hidden]{display:none}.step-top svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.step-top:hover{background:#2a2a2a}.step-top:focus-visible{outline:3px solid #f3f2ef;outline-offset:3px}
/* owner 25 Oct 2026: the not-approved page's confirmation popup (app.js requestRejectionClose): "ยืนยันปิดบัญชี" wears the close-account colours above, full width.
   Owner 1 Nov 2026 (full QA S-01): no "ยกเลิก"; the popup closes by a cross at its top right (same 44px round cross as the Home requests panel, B-31). Was: under "ยกเลิก", both full width */
.applications-dialog .btn[data-close-account-confirm],.applications-dialog .actions:has([data-close-account-confirm]) .btn{width:100%;justify-content:center}
.applications-dialog.has-dialog-x h2{padding-right:52px}
.applications-dialog .dialog-x{position:absolute;top:16px;right:16px;display:grid;place-items:center;width:44px;height:44px;padding:0;border:1px solid #6b6760;border-radius:50%;background:transparent;color:#f3f2ef;cursor:pointer}.applications-dialog .dialog-x svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round}.applications-dialog .dialog-x:hover{background:#ffffff12}.applications-dialog .dialog-x:focus-visible{outline:3px solid #f3f2ef;outline-offset:3px}
/* Owner 1 Nov 2026 (full QA B-49): a deadline date in the application-cycle panel (app.js cohortPanel) stays on one line */
.date-whole{white-space:nowrap}
/* Owner 7 Nov 2026 (fix round, Q2-BUG-12): the name an application was sent under, below the account's name now. Additive. */
.summary dd .name-was{display:block;margin-top:3px;font-size:13px;color:var(--muted)}.summary dd .name-was .name-whole{white-space:nowrap}
/* Owner 1 Nov 2026 (full QA B-28): the recovery form's photo pickers (entry.js support view) are the application's file picker; the chosen file's name sits under it */
.support-file .application-file-picker>input{min-height:0;height:100%;width:100%;padding:0;border:0}.support-file-name{margin:8px 2px 0;font-size:13px;line-height:1.6;color:#e6e6e6;overflow-wrap:anywhere}
/* owner 25 Oct 2026: on the member's close-account page (entry.js close-account) "ฉันเข้าใจและต้องการปิดบัญชี" sits on its checkbox's line, centred with it; the panel's 52px input height no longer stretches the checkbox */
.auth-panel [data-close-account] .check{align-items:center}
.auth-panel [data-close-account] .check input{width:20px;height:20px;min-height:20px;flex:0 0 20px;margin:0}
/* Owner 1 Nov 2026 (full QA B-33): the security card's ticks (e.g. "ฉันเก็บรหัสกู้คืนไว้แล้ว") follow the close-account page: label on the
   checkbox's line, centres level, and the bordered row only as tall as its one sentence. Was: the 52px panel input height stretched the box */
.auth-panel .security-card .check{align-items:center;min-height:0}
.auth-panel .security-card .check input{width:20px;height:20px;min-height:20px;flex:0 0 20px;margin:0}
/* Owner 25 Oct 2026: on "ปิดบัญชีแล้ว" the sign-in button spans the page width, not a short button with empty space on its right. */
.entry-closed-actions{display:block;margin-top:18px}.entry-closed-actions>button,.entry-closed-actions>a{display:flex;width:100%;max-width:none;justify-content:center;box-sizing:border-box}
/* Owner 25 Oct 2026: on ใบสมัครของฉัน the "ดูสถานะและเอกสาร" button and on the tracking page the "เข้าใช้งาน" button run the full width (no empty space on the right). */
.next-steps>[data-action="switch-access"]{display:flex;width:100%;justify-content:center}
@media(max-width:600px){.request-item{align-items:stretch}.request-item>.btn{width:100%;justify-content:center}}
/* QA 31 Oct 2026 (FIX-LIST B-05): a document's ดู / แทนที่ / นำออก stay on one row, each with its icon and its word, three equal buttons
   that share the row. On a narrow phone the icon sits above the word so the three fit. Was: "นำออก" dropped alone to a second row at 360 px. */
@media(max-width:480px){.doc-actions{flex-wrap:nowrap}.doc-actions .btn{flex:1 1 0;min-width:0;justify-content:center;gap:4px;padding:8px 6px;white-space:nowrap}}
@media(max-width:374px){.doc-actions .btn{flex-direction:column;gap:2px;min-height:52px;padding:6px 4px;font-size:12px}}
/* QA 31 Oct 2026 (FIX-LIST B-26): the step label "APPLICATION 03 / 05" stays on one line. Was: "05" alone on a second line at 320 px (en). */
.journey-progress>span{white-space:nowrap}.journey-progress>div{flex:0 1 auto;min-width:0}
/* Owner 31 Oct 2026 (FIX-LIST S-04): the sent application lists each part (membership, actor status, each creator role) on its own line. */
.request-parts{list-style:none;margin:0;padding:0}.request-parts li{padding:0 0 6px;line-height:1.75}.request-parts li+li{border-top:1px solid #ffffff1a;padding-top:6px}.request-parts li:last-child{padding-bottom:0}
/* QA S-65 (owner 31 Oct 2026, FIX-LIST ก): the parts asked to fix and the decided parts on the more-information page; a decided role's evidence is locked. */
.outcome-parts{margin-top:16px}.outcome-parts ul{margin:6px 0;padding-left:22px}.outcome-part{padding:10px 0;border-top:1px solid #ffffff1a}.outcome-part p{margin:4px 0}.outcome-part p>span{margin-right:8px;color:#f2efe9}.role-evidence .evidence-locked{margin:0;min-width:0}.role-evidence .evidence-locked :is(input,select,textarea){opacity:.62;cursor:not-allowed}.role-evidence .evidence-locked-note{margin:6px 0 10px;font-size:13px}
/* QA S-67: the refund contact day inside the 30-day notice reads on the sentence's line, as on the not-approved page. */
.account-deadline :is([data-refund-contact],[data-refund-contact-fallback],[data-refund-done]){padding:0;margin:6px 0 0;background:none;font-size:11px;color:var(--muted)}.account-deadline :is([data-refund-contact],[data-refund-done]) strong{display:inline;font-size:inherit}
/* Owner 7 Nov 2026 (fix round, Q2-S-09): the sentence of the "ออกจากระบบ?" window (connected-navigation.js, session-demo.js) reads as at Home: 16 px
   and the window's own colour, with Home's line height and no margin of its own; this page's general p rule (14 px, muted) no longer reaches
   it; only that window (Settings' work-permit page also opens with a title row and a paragraph). Was: 14px, rgb(188,188,188), 14px top and
   bottom margin. */
#header-overlay:has([data-connected-logout-confirm],[data-preview-logout-confirm])>.overlay-title-row+p{font-size:16px;line-height:1.7;color:inherit;margin:0;max-width:none}
/* Fix round 11 Nov 2026 item 174: the step label is as large as the page's secondary text (13 px, as the case form's "1 / 3"). Was: 10 px. */
.journey-progress>span{font-size:13px}
/* Fix round 11 Nov 2026 item 099: "อยู่ต่อ" and "ออกและกลับไปเข้าสู่ระบบ" share one row with a gap; below 480 px the buttons show their short words. */
.applications-dialog [data-exit-actions]{display:flex;flex-wrap:nowrap;gap:12px}.applications-dialog [data-exit-actions] .btn{flex:1 1 0;min-width:0;justify-content:center;white-space:nowrap}
.applications-dialog .exit-short{display:none}@media (max-width:480px){.applications-dialog .exit-long{display:none}.applications-dialog .exit-short{display:inline}}
/* Fix round 11 Nov 2026 item 100: past the 30 days, the box's lines (and its refund lines) are 13 px like the not-approved page's refund box. Was: 11 px. */
.account-deadline[data-deadline-past] p,.account-deadline[data-deadline-past] :is([data-refund-contact],[data-refund-contact-fallback],[data-refund-done]){font-size:13px;line-height:1.7}
/* Fix round 11 Nov 2026 (items 096, 112; app rule: a tap area of at least 44x44 px, design/shared-navigation/verify-fix-1111-tap-targets.cjs).
   A negative margin keeps the old box where a control grew, so the look stays. Was: the header wordmark 91x23, and the short-phone header
   42 tall (too low for it) · the language box 40 (36 on a low landscape screen) · the intro dots 40x40 · the ID-document type choices 24 ·
   the document buttons ดู/แทนที่/นำออก 40 · อีเมล/เบอร์โทรศัพท์ 40 · "เข้าสู่ระบบ" / "สร้างบัญชี" under the forms 36-38 ("登录" 34 wide) ·
   "แสดงรหัสผ่าน" 36 · the terms tick rows 27 · "ลองใหม่" after a failed username check 53x32. */
.app-header a.wordmark{padding-block:11px;margin-block:-11px}
@media(max-width:699px) and (max-height:720px){body[data-view=home] .app-header{min-height:44px;padding-block:9px}}
.app-language select,.auth-view .app-language select{min-height:44px;margin-block:-2px}
.intro-dots .btn{min-height:44px;width:44px}
.choice-group .choice-inline{display:inline-flex;align-items:center;gap:8px;min-height:44px;cursor:pointer}
.doc-actions .btn{min-height:44px}
.channel-picker .btn{min-height:44px;margin-block:-2px}
.auth-switch .btn,.auth-view .auth-panel:has(#login-form)>.auth-switch .btn{min-height:44px;min-width:44px}
.password-guidance .btn,.auth-panel .password-guidance [data-style=password-toggle]{min-height:44px;margin-block:-2px -6px}
.legal-check{min-height:44px;align-items:center}
.username-status .btn{min-height:44px;min-width:44px;margin-block:-6px}
