/* Candidate flow: mobile-first enhancements using the existing GastroJobs palette. */
.profile-completion p{margin:0 0 10px;color:var(--muted);font-size:.86rem}
.profile-completion p strong{color:var(--ink)}
.profile-checklist{margin:20px 0 24px}
.profile-checklist h3{margin:0 0 4px}
.profile-checklist>p{margin:0 0 12px;color:var(--muted);font-size:.82rem;line-height:1.5}
.profile-checklist ul{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.profile-checklist li{margin:0}
.profile-checklist button{width:100%;min-height:44px;display:grid;grid-template-columns:25px minmax(0,1fr) auto;align-items:center;gap:9px;padding:8px 10px;text-align:left;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);font:inherit;cursor:pointer}
.profile-checklist button:hover{border-color:var(--indigo);background:var(--soft)}
.profile-checklist button:focus-visible,.candidate-apply-flow :focus-visible{outline:3px solid var(--indigo);outline-offset:2px}
.profile-checklist button span:nth-child(2){min-width:0;font-size:.84rem;font-weight:700;line-height:1.3}
.profile-checklist button small{font-size:.73rem;color:var(--muted);white-space:nowrap}
.profile-checklist-state{width:23px;height:23px;display:grid;place-items:center;border-radius:6px;background:var(--soft);color:var(--indigo);font-weight:900;line-height:1}
.profile-layout #profile-form [name]{scroll-margin-top:110px}
.candidate-apply-flow{max-width:1040px;margin:0 auto;display:grid;gap:16px;align-items:start}
.candidate-cv-review,.candidate-apply-compose{min-width:0}
.candidate-cv-review-head{display:flex;flex-direction:column;align-items:flex-start;gap:12px}
.candidate-cv-review-head h2,.candidate-apply-compose h2{margin:0;font-size:1.2rem;line-height:1.3}
.candidate-section-label{margin:0 0 4px;color:var(--indigo);font-size:.75rem;font-weight:800}
.candidate-cv-review-intro,.candidate-apply-compose>p,.candidate-apply-after{font-size:.87rem;line-height:1.55;color:var(--muted)}
.candidate-cv-review-intro{margin:12px 0 18px}
.candidate-cv-quick{display:grid;gap:3px;margin:0 0 12px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--cloud);line-height:1.4}
.candidate-cv-quick strong{font-size:.94rem;color:var(--ink)}
.candidate-cv-quick span{font-size:.84rem;color:var(--muted)}
.candidate-cv-disclosure{min-width:0}
.candidate-cv-disclosure>summary{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:44px;cursor:pointer;color:var(--indigo);font-size:.86rem;font-weight:800;line-height:1.4}
.candidate-cv-disclosure>summary::after{content:'+';font-size:1.25rem;line-height:1;font-weight:500}
.candidate-cv-disclosure[open]>summary::after{content:'−'}
.candidate-cv-disclosure>summary:hover{text-decoration:underline}
.candidate-cv-disclosure[open]>summary{margin-bottom:8px}
.candidate-cv-review-note{margin:16px 0 0;color:var(--muted);font-size:.8rem;line-height:1.5}
.candidate-cv-facts{display:grid;grid-template-columns:minmax(0,1fr);gap:0;margin:0}
.candidate-cv-facts>div{min-width:0;padding:10px 0;border-top:1px solid var(--line)}
.candidate-cv-facts dt{color:var(--muted);font-size:.77rem;font-weight:700}
.candidate-cv-facts dd{margin:3px 0 0;color:var(--ink);font-size:.92rem;font-weight:700;line-height:1.45;overflow-wrap:anywhere}
.candidate-cv-text{border-top:1px solid var(--line);padding-top:12px;margin-top:8px}
.candidate-cv-text h3{margin:0 0 8px;font-size:.94rem}
.candidate-cv-text p{margin:0;color:var(--ink);font-size:.88rem;line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere}
.candidate-cv-text ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.candidate-cv-text li{display:grid;gap:2px;font-size:.86rem;line-height:1.4}
.candidate-cv-text li span{color:var(--muted)}
.candidate-cv-more{margin-top:16px;border-top:1px solid var(--line);padding-top:12px}
.candidate-cv-more summary{cursor:pointer;color:var(--indigo);font-size:.88rem;font-weight:800;min-height:34px}
.candidate-cv-more dl{display:grid;gap:10px;margin:8px 0 0}
.candidate-cv-more dt{color:var(--muted);font-size:.78rem;font-weight:700}
.candidate-cv-more dd{margin:3px 0 0;font-size:.86rem;line-height:1.45;overflow-wrap:anywhere}
.candidate-cv-missing{margin-top:18px;padding:13px 14px;border:1px solid var(--line);border-radius:10px;background:var(--cloud);font-size:.85rem;line-height:1.5}
.candidate-cv-missing p{margin:4px 0 0;color:var(--muted)}
.candidate-apply-compose>p{margin:10px 0 16px}
.candidate-apply-compose form{display:grid;gap:16px}
.candidate-apply-compose textarea{min-height:125px}
.candidate-apply-compose .visibility-switch{align-items:flex-start}
.candidate-apply-compose .visibility-switch input{appearance:auto;width:22px;height:22px;margin:2px 0 0;border-radius:4px;background:#fff;accent-color:var(--indigo);flex:none}
.candidate-apply-compose .visibility-switch input::before{display:none}
.candidate-apply-compose .visibility-switch small{display:block;line-height:1.45}
.candidate-apply-compose .actions{display:flex;flex-wrap:wrap;gap:8px}
.candidate-apply-compose .actions .btn{min-height:44px}
.candidate-inline-error{margin:0;padding:12px 14px;border:1px solid var(--danger);border-radius:10px;background:#fff5f5;color:#9d2334;font-size:.86rem;line-height:1.5}
.candidate-inline-error[hidden]{display:none}
.candidate-apply-after{margin:0;padding:0 4px}
.candidate-empty{max-width:680px;display:grid;justify-items:start;gap:12px;padding:24px}
.candidate-empty h2{margin:0;font-size:1.17rem}
.candidate-empty p{margin:0;color:var(--muted);line-height:1.55}
.candidate-empty .actions{display:flex;flex-wrap:wrap;gap:8px}
.candidate-invitation{display:grid;justify-items:start;gap:10px;max-width:580px;margin:18px 0 4px;padding:16px;border:1px solid #c8c7ff;border-radius:14px;background:var(--soft);font-size:.87rem;line-height:1.5}
.candidate-invitation.is-accepted{border-color:#a9dfc6;background:var(--mint)}
.candidate-invitation.is-declined{border-color:var(--line);background:var(--cloud)}
.candidate-invitation>strong{font-size:.96rem;color:var(--ink)}
.candidate-invitation p{margin:0;color:var(--ink)}
.candidate-invitation label{display:flex;align-items:flex-start;gap:10px;min-height:44px;padding:10px 0;color:var(--ink);cursor:pointer}
.candidate-invitation input[type="checkbox"]{appearance:auto;flex:none;width:20px;height:20px;margin:1px 0 0;accent-color:var(--indigo)}
.candidate-invitation-actions{display:flex;flex-wrap:wrap;gap:8px}
.candidate-invitation .btn{min-height:44px}
.candidate-invitation .btn:disabled{opacity:.52;cursor:not-allowed}
.candidate-invitation :focus-visible,.inbox-invitation-note+.btn:focus-visible{outline:3px solid var(--indigo);outline-offset:2px}
.inbox-invitation-note{max-width:260px;margin:0;color:var(--muted);font-size:.82rem;line-height:1.5}
.auth-request-error{color:var(--danger);font-weight:700}
.catalog-partner-logo{display:flex;align-items:center;justify-content:center;flex:none;width:54px;height:54px;padding:5px;overflow:hidden;border:1px solid var(--line);border-radius:12px;background:#fff}
.catalog-partner-logo img{display:block;max-width:100%;max-height:100%;object-fit:contain}
.catalog-partner-source{display:inline-flex;align-items:center;align-self:flex-start;gap:6px;max-width:100%;margin:8px 0 16px;padding:6px 10px;border:1px solid var(--product-line,var(--line));border-radius:6px;background:var(--product-surface,var(--cloud));color:var(--product-muted,var(--muted));font-size:.75rem;font-weight:500;line-height:1.5;text-decoration:none;overflow-wrap:anywhere}
.catalog-partner-source:hover{text-decoration:underline;text-underline-offset:3px;border-color:var(--product-muted,var(--muted))}
.catalog-partner-source:focus-visible{outline:3px solid var(--indigo);outline-offset:3px}
.operator-links-layout{display:grid;gap:24px;align-items:start}
.operator-link-create h2,.operator-link-history>h2{margin:0 0 10px;font-size:1.2rem}
.operator-link-create>p{margin:0 0 18px;color:var(--muted);line-height:1.55}
.operator-link-create form{display:grid;gap:14px}
.operator-link-hint{margin:0;color:var(--muted);font-size:.82rem;line-height:1.5}
.operator-link-item{display:grid;gap:14px}
.operator-link-item-head{display:flex;align-items:center;flex-wrap:wrap;gap:12px}
.operator-link-item-head>div{min-width:0;flex:1 1 160px}
.operator-link-item h3{margin:0;font-size:1rem;overflow-wrap:anywhere}
.operator-link-item-head p{margin:3px 0 0;color:var(--muted);font-size:.8rem;overflow-wrap:anywhere}
.operator-link-item dl{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;margin:0}
.operator-link-item dt{color:var(--muted);font-size:.76rem;font-weight:700}
.operator-link-item dd{margin:3px 0 0;font-size:.87rem;line-height:1.45;overflow-wrap:anywhere}
.operator-link-item details{font-size:.82rem}
.operator-link-item summary{cursor:pointer;font-weight:700}
.operator-link-item details p{overflow-wrap:anywhere}
.operator-link-item>.btn{justify-self:start}
.operator-link-action{display:grid;gap:12px;border-top:1px solid var(--line);padding-top:14px}
.operator-link-action[hidden]{display:none}
.operator-link-action .actions{display:flex;flex-wrap:wrap;gap:8px}
.operator-link-action textarea{min-height:80px}
.member-venue-selector{display:grid;gap:5px;margin:0 0 22px;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:#fff}
.member-venue-selector label{font-size:.8rem;font-weight:800;color:var(--ink)}
.member-venue-selector select{width:100%;min-height:44px;padding:9px 12px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--ink);font:inherit}
.member-venue-selector select:focus-visible,.member-venue-prompt select:focus-visible{outline:3px solid var(--indigo);outline-offset:2px}
.member-venue-selector p{margin:0;color:var(--muted);font-size:.78rem;line-height:1.45}
.member-venue-prompt{max-width:640px}
.member-venue-prompt h2{margin:0 0 12px;font-size:1.15rem}
.member-venue-prompt form{display:grid;gap:16px}
.member-venue-prompt .btn{justify-self:start;min-height:44px}
@media(min-width:600px){.candidate-cv-review-head{flex-direction:row;align-items:start;justify-content:space-between}.candidate-cv-facts{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:22px}}
@media(min-width:960px){.candidate-apply-flow{grid-template-columns:minmax(0,1.12fr) minmax(320px,.88fr);gap:20px}.candidate-apply-after{grid-column:1/-1}}
@media(min-width:1100px){.operator-links-layout{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr)}.operator-link-create{position:sticky;top:92px}}
@media(min-width:700px){.member-venue-selector{grid-template-columns:minmax(0,1fr) minmax(240px,1fr);align-items:center;gap:5px 18px}.member-venue-selector label{grid-column:1}.member-venue-selector select{grid-column:2;grid-row:1/3}.member-venue-selector p{grid-column:1}}
@media(max-width:599px){.profile-preview #profile-photo{max-height:260px}.candidate-apply-compose .actions{display:grid;grid-template-columns:1fr}.candidate-apply-compose .actions .btn{text-align:center;width:100%}.candidate-empty .actions{display:grid;width:100%}.candidate-empty .actions .btn{text-align:center}}
@media(max-width:599px){.candidate-invitation{width:100%}.candidate-invitation-actions{display:grid;width:100%}.candidate-invitation .btn{width:100%}.inbox-invitation-note{max-width:none}}
@media(max-width:359px){.profile-checklist button{grid-template-columns:23px minmax(0,1fr);gap:7px}.profile-checklist button small{grid-column:2}.candidate-cv-review-head .btn{width:100%;text-align:center}}

/* Small screens: show every destination instead of clipping the last nav link. */
@media(max-width:599px){
  .navlinks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible;gap:4px 12px}
  .navlinks .navlink{display:inline-flex;align-items:center;min-height:44px;padding:8px 0}
  .navend .btn{min-height:44px}
  .brand-with-badge{min-height:44px}
}

/* Candidate forms: readable entry fields and touch targets at mobile sizes. */
@media(max-width:900px){
  #profile-form input:not([type="checkbox"]):not([type="file"]),
  #profile-form textarea,
  #profile-form select,
  .candidate-apply-compose textarea{font-size:16px}
  .profile-choices label{min-height:44px;padding:8px 0}
  .profile-photo-actions .btn,
  .candidate-cv-review-head .btn{min-height:44px}
  .candidate-cv-more summary{min-height:44px;padding:10px 0}
}

/* The photo remains full-width on tablets, without an extreme face crop. */
@media(min-width:600px) and (max-width:900px){
  .profile-demo-photo img{height:340px;max-height:none;object-position:center 35%}
}
