/* P3.1: isolated entry styles; existing Lab Arial + institutional palette. */
body.p31-intake {margin:0; color:#e8edf1; background:linear-gradient(145deg,#06142b,#040b13); font-family:Arial,Helvetica,sans-serif; font-size:16px; line-height:1.5; min-height:100vh;}
.p31-intake *, .p31-intake *::before, .p31-intake *::after {box-sizing:border-box;}
.p31-intake [hidden] {display:none!important;}
.p31-intake .intake-shell {max-width:1540px; margin:0 auto; padding:30px 40px 32px; min-height:100dvh; display:flex; flex-direction:column;}
.p31-intake .intake-header {display:flex; align-items:center; justify-content:space-between; gap:32px; border-bottom:1px solid #334132; padding-bottom:24px; margin-bottom:32px;}
.p31-intake .intake-eyebrow {color:#e1b75c; font-size:13px; letter-spacing:.12em; margin:0 0 5px;}
.p31-intake h1 {font-size:clamp(24px,2.25vw,34px); line-height:1.2; margin:0; font-weight:700; color:#e8edf1;}
.p31-intake h2 {font-family:Arial,Helvetica,sans-serif; font-size:26px; font-weight:700; line-height:1.22; margin:0 0 14px; color:#e8edf1;}
.p31-intake p {margin:0 0 18px;}
.p31-intake nav {display:flex; flex-wrap:wrap; justify-content:flex-end; align-items:center; gap:14px 22px; font-size:13px;}
.p31-intake .intake-access {max-width:350px; flex-shrink:0;}
.p31-intake .intake-code-reserved {max-width:285px; margin:18px 0 0 auto;}
.p31-intake .intake-code-reserved label {display:block; font-size:13px; text-transform:none; color:#c5cdd6; margin-bottom:6px;}
.p31-intake .intake-code-reserved>div {display:flex; gap:8px;}
.p31-intake .intake-code-reserved input {min-width:0; width:100%; font-size:13px;}
.p31-intake .intake-code-reserved button:disabled {cursor:not-allowed; color:#aab4be; background:#172433; border-color:#435264; font-weight:normal;}
.p31-intake .intake-code-reserved input:disabled {cursor:not-allowed; opacity:.65;}
.p31-intake a {color:#c5cdd6; text-decoration:none;}
.p31-intake a:hover {color:#e1b75c; text-decoration:underline;}
.p31-intake .intake-languages {display:flex; gap:8px;}
.p31-intake [aria-current] {color:#e1b75c; text-decoration:underline; text-underline-offset:5px;}
.p31-intake .intake-grid {display:grid; flex:1; grid-template-columns:minmax(220px,1fr) clamp(460px,38vw,520px) minmax(235px,1fr); gap:clamp(48px,4vw,64px); align-items:center;}
.p31-intake .intake-intro {padding-top:0;}
.p31-intake .intake-intro p {color:#c4ccd5; text-align:justify; text-align-last:left; hyphens:none; overflow-wrap:normal;}
.p31-intake .intake-secondary {font-size:14px; color:#9eafa9; line-height:1.55;}
.p31-intake .intake-center {min-width:0; background:none; border:0; border-radius:0; padding:0; box-shadow:none;}
.p31-intake .intake-help {color:#bac5ce; font-size:14px; margin-bottom:18px;}
.p31-intake textarea,.p31-intake input,.p31-intake select {font:inherit; color:#edf0f3; background:#1a2a3f; border:1px solid #8194a9; border-radius:8px; padding:8px 11px; min-height:44px; width:100%;}
.p31-intake textarea {display:block; resize:none; line-height:1.5; height:116px; min-height:116px; overflow-y:auto;}
.p31-intake input::placeholder {color:#a5b2c3; opacity:1;}
.p31-intake .intake-limit {font-size:12px; color:#afbdcd; margin:5px 0 12px; text-align:right;}
.p31-intake button {font:inherit; font-size:14px; min-height:44px; padding:10px 18px; width:auto; border:1px solid #607665; border-radius:8px; background:#213b33; color:#e2ece7; cursor:pointer; text-transform:none;}
.p31-intake button,.p31-intake button:hover,.p31-intake button:active {transform:none; transition:none;}
.p31-intake button:hover {filter:brightness(1.12);}
.p31-intake button:disabled {cursor:wait;}
.p31-intake :focus-visible {outline:2px solid #e1b75c; outline-offset:2px;}
.p31-intake .intake-attach {background:transparent; border-color:#526359; color:#c1d7c9;}
.p31-intake .intake-upload {display:grid; grid-template-columns:minmax(0,1fr) 22ch max-content; align-items:center; gap:8px; margin-bottom:12px; font-size:13px;}
.p31-intake .intake-attach {padding-inline:8px;}
.p31-intake #file-summary {color:#b7c5ca; line-height:1.4; align-self:stretch; display:flex; align-items:center;}
.p31-intake #review-files {padding-inline:6px; background:none; border-color:transparent; text-decoration:underline;}
.p31-intake #review-files:disabled {visibility:hidden;}
.p31-intake #selected-files {list-style:none; padding:0; margin:0; overflow-y:auto; overscroll-behavior:contain;}
.p31-intake #selected-files li {display:flex; align-items:center; gap:12px; justify-content:space-between; font-size:14px; padding:8px 0; border-bottom:1px solid #344355;}
.p31-intake #selected-files li span {min-width:0; overflow-wrap:anywhere; white-space:normal;}
.p31-intake #selected-files button {background:none; color:#cbd8cf; flex-shrink:0; padding:8px; font-size:14px;}
.p31-intake #files-dialog,.p31-intake #file-error-dialog {width:min(650px,calc(100% - 32px));}
.p31-intake .intake-file-error-body {overflow:auto; overflow-wrap:anywhere; font-size:14px;}
.p31-intake .intake-file-error-body p {margin-bottom:8px;}
.p31-intake #file-error-formats {margin-top:14px;}
.p31-intake #intake-form {container-type:inline-size;}
.p31-intake .intake-contact-heading {margin-bottom:10px;}
.p31-intake .intake-contact-title {display:block; font-size:16px; margin:0; font-weight:600; text-transform:none;}
.p31-intake .intake-contact select {font-size:14px; padding-left:10px; width:auto; max-width:100%; height:44px;}
.p31-intake .intake-contact {display:grid; grid-template-columns:max-content minmax(0,1fr) max-content; gap:8px; align-items:center;}
.p31-intake .intake-contact-input {min-width:0;}
.p31-intake #contact-email {height:44px;}
.p31-intake #review-privacy {height:44px; padding-inline:10px; white-space:nowrap;}
.p31-intake #phone-control {display:flex; align-items:center; width:100%; min-width:0; height:44px; background:#1a2a3f; border:1px solid #8194a9; border-radius:8px;}
.p31-intake #phone-prefix {flex:0 0 48px; text-align:center; color:#edf0f3; font-size:14px;}
.p31-intake #contact-whatsapp {min-width:0; min-height:42px; height:42px; border:0; border-left:1px solid #536276; border-radius:0 7px 7px 0; padding-left:9px;}
.p31-intake #review-privacy,.p31-intake #privacy-accept {background:#c99a3e; color:#101a27; border-color:#c99a3e; font-weight:bold;}
.p31-intake .intake-privacy-teaser {font-size:12px; color:#b6c2ce; margin:10px 0 0;}
.p31-intake .intake-services {padding-top:0; min-width:0;}
.p31-intake .intake-families {display:grid; gap:4px;}
.p31-intake .intake-families button {text-align:left; background:none; border:0; border-left:2px solid transparent; border-radius:0; padding:8px 12px; font-size:14px; line-height:1.4; color:#e8edf1; width:100%;}
.p31-intake .intake-families button:hover,.p31-intake .intake-families button:focus-visible {background:#142338; color:#e8edf1; filter:none;}
.p31-intake .intake-families button[aria-pressed=true] {border-left-color:#9bbcad; color:#e8edf1; background:#142338;}
.p31-intake .intake-description {height:120px; overflow-y:auto; overscroll-behavior:contain; font-size:14px; line-height:1.55; color:#e1b75c; margin:12px 0 0; padding:10px 0; border-top:1px solid #2a394a;}
.p31-intake .intake-services .intake-secondary {margin-top:14px;}
.p31-intake #intake-errors:empty {display:none;}
.p31-intake #intake-errors:not(:empty) {position:fixed; z-index:10; bottom:20px; left:20px; right:20px; max-width:620px; margin:auto; background:#253144; border:1px solid #f0b386; border-radius:8px; padding:14px; color:#f7d7bd; font-size:14px; max-height:120px; overflow:auto;}
.p31-intake #intake-errors p {margin:0 0 5px;}
.p31-intake .intake-honeypot,.p31-intake .intake-sr-only {position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%);}
.p31-intake dialog {background:#101e31; color:#e8edf1; border:1px solid #607263; border-radius:12px; width:min(920px,calc(100% - 40px)); max-height:min(490px,calc(100dvh - 48px)); padding:24px 30px;}
.p31-intake dialog[open] {display:flex; flex-direction:column;}
.p31-intake dialog::backdrop {background:#020810c9;}
.p31-intake dialog h2 {font-size:24px; flex-shrink:0;}
.p31-intake .intake-policy {font-size:15px; line-height:1.6; overflow-y:auto; overflow-wrap:anywhere; overscroll-behavior:contain; padding:6px 12px 6px 0;}
.p31-intake .intake-dialog-actions {display:flex; justify-content:flex-end; gap:12px; padding-top:22px; flex-shrink:0;}
.p31-intake .intake-grid.is-confirmed {display:flex; align-items:center; justify-content:center;}
.p31-intake .is-confirmed .intake-intro,.p31-intake .is-confirmed .intake-services {display:none;}
.p31-intake .is-confirmed .intake-center {width:min(780px,100%); min-height:0;}
.p31-intake .intake-confirmation {padding:24px 0; font-size:18px;}
.p31-intake .intake-confirmation-heading {display:flex; align-items:baseline; gap:12px;}
.p31-intake .intake-check {font-size:26px; line-height:1.22; color:#a0c9af; flex-shrink:0;}
.p31-intake .intake-reference {font-size:16px; padding-top:20px; border-top:1px solid #344355; overflow-wrap:anywhere;}
@container(max-width:450px) {.p31-intake .intake-contact{grid-template-columns:1fr}.p31-intake .intake-contact select,.p31-intake #review-privacy{justify-self:start}.p31-intake .intake-upload{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr) 54px;min-height:66px}.p31-intake .intake-attach{padding:8px 5px;line-height:1.4}}
@media(max-width:1100px) {.p31-intake .intake-shell{padding:24px}.p31-intake .intake-grid{grid-template-columns:minmax(160px,1fr) minmax(350px,410px) minmax(180px,1fr);gap:28px}.p31-intake .intake-grid h2{font-size:23px}.p31-intake .intake-families button{font-size:13px}}
@media(max-width:900px) {.p31-intake .intake-shell{padding:24px 20px 36px}.p31-intake .intake-header{display:block;margin-bottom:32px;padding-bottom:22px}.p31-intake h1{font-size:26px}.p31-intake nav{justify-content:flex-start;gap:22px;margin-top:20px;font-size:12px}.p31-intake .intake-grid{display:flex;flex-direction:column;gap:32px}.p31-intake .intake-intro{padding:0;max-width:570px}.p31-intake .intake-intro p{font-size:15px;margin-bottom:12px}.p31-intake .intake-center{width:100%;padding:0}.p31-intake .intake-grid h2{font-size:24px}.p31-intake .intake-services{width:100%;padding:0}.p31-intake .intake-families button{font-size:14px}.p31-intake dialog{padding:20px;width:calc(100% - 32px);max-height:min(460px,calc(100dvh - 32px))}.p31-intake dialog h2{font-size:22px}.p31-intake .intake-dialog-actions{gap:10px}.p31-intake .intake-dialog-actions button{padding:10px 12px}}
