/* MAPCON 2026 Workshop Preference Form visual theme */
:root{--bg:#f6f4f1;--panel:#fff;--ink:#242424;--muted:#6d6d6d;--line:#e7e1db;--brown:#563c26;--brown-dark:#3f2c1c;--orange:#e9822b;--green:#175b3c;--red:#96382d;--shadow:0 12px 34px rgba(47,35,22,.08)}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font-family:Arial,Helvetica,sans-serif;font-size:15px;line-height:1.5}
.site-shell{width:min(1000px,calc(100% - 28px));min-height:calc(100vh - 52px);margin:26px auto 36px;display:flex;flex-direction:column;overflow:hidden;background:#fff;border:1px solid #e3ddd5;border-radius:18px;box-shadow:var(--shadow)}
.mapcon-banner{display:block;width:100%;height:auto;background:var(--brown)}
.topbar{min-height:68px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:12px 30px;position:relative;z-index:2}
.brand{display:flex;gap:12px;align-items:center;text-decoration:none;color:var(--ink)}
.brand-mark{width:40px;height:40px;border-radius:10px;background:var(--brown);color:#fff;display:grid;place-items:center;font-weight:800;font-size:20px;border-bottom:3px solid var(--orange)}
.brand b,.brand small{display:block}.brand b{font-size:14px;letter-spacing:.02em;color:var(--brown-dark)}.brand small{font-size:10px;letter-spacing:.13em;color:var(--muted);font-weight:700}
.main-content{width:min(900px,calc(100% - 48px));margin:30px auto 54px;flex:1}
.footer{text-align:center;padding:18px 16px;color:#827a72;font-size:11px;border-top:1px solid var(--line);background:#fff}
h1,h2,h3{font-family:Arial,Helvetica,sans-serif;line-height:1.2;margin:0 0 12px;color:var(--brown-dark)}h1{font-size:clamp(27px,4.4vw,39px);letter-spacing:-.025em}h2{font-size:23px;letter-spacing:-.02em}h3{font-size:19px}
.hero{padding:10px 0 28px;max-width:740px}.hero h1 span{color:var(--orange)}.hero p{font-size:16px;color:var(--muted);max-width:680px}
.eyebrow,.step-badge{font-size:10px;letter-spacing:.14em;font-weight:800;color:var(--orange);margin-bottom:10px;text-transform:uppercase}.step-badge{display:inline-block;padding:6px 10px;background:#f5f2ee;border-radius:20px;color:var(--brown)}
.panel{background:var(--panel);border:1px solid #e3ddd5;border-radius:16px;padding:26px;box-shadow:var(--shadow);margin-bottom:22px}.narrow{max-width:560px;margin-left:auto;margin-right:auto}.muted{color:var(--muted)}.microcopy{font-size:12px;color:#827a72;margin:16px 0 0}.panel form{margin-top:18px}
label{display:block;font-size:13px;font-weight:700;margin:14px 0 7px;color:#37312c}label em{color:#c44536}
input,select,textarea{width:100%;padding:12px 13px;border:1px solid #d9d2ca;border-radius:9px;background:#fff;font:inherit;color:var(--ink);outline:none}input:focus,select:focus,textarea:focus{border-color:var(--orange);box-shadow:0 0 0 3px rgba(233,130,43,.13)}input:disabled,input[readonly]{background:#f5f2ee;color:#6d645b}
.btn{border:0;border-radius:10px;padding:12px 18px;font-weight:750;font-family:inherit;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:.15s}.btn-primary{background:var(--brown);color:#fff}.btn-primary:hover{background:var(--brown-dark)}.btn-outline{background:#fff;color:var(--brown);border:1px solid #d9d2ca}.btn-outline:hover{background:#f6f4f1;border-color:var(--orange)}.btn-ghost{background:#f5f2ee;color:var(--brown-dark)}.btn-small{padding:7px 11px;font-size:12px}.btn-block{width:100%;margin-top:18px}.btn:disabled{opacity:.45;cursor:not-allowed}
.otp-input{text-align:center;font-size:28px;letter-spacing:10px;font-weight:700}.subtle-form{margin-top:12px!important}.link-button{background:none;border:0;color:var(--brown);cursor:pointer;font-weight:700}
.alert{padding:13px 16px;border-radius:10px;margin-bottom:18px;font-size:14px}.alert-success{background:#edf8f2;color:#175b3c;border:1px solid #bfdfcc}.alert-error{background:#fff0ee;color:#96382d;border:1px solid #f0c7c0}.alert-warning{background:#fff8e7;color:#8a6012;border:1px solid #f3e3b4}
.welcome-row{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:24px}.welcome-row h1{font-size:32px}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:8px}.section-heading h2{margin:0}.section-heading a{font-size:13px;color:var(--brown);text-decoration:none;font-weight:700}
.pill{display:inline-flex;align-items:center;border-radius:30px;padding:6px 10px;background:#f5f2ee;color:#6d645b;font-weight:700;font-size:11px;white-space:nowrap}.pill-green{background:#edf8f2;color:#175b3c}.pill-blue{background:#fff1e4;color:#9a4e12}.pill-violet{background:#eee7df;color:#563c26}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 18px}.form-grid>div{min-width:0}.upload-box{display:flex;align-items:center;gap:15px;background:#f6f4f1;border:1px dashed #d9d2ca;border-radius:12px;padding:16px;margin:22px 0}.upload-icon{width:44px;height:48px;background:#fff1e4;border-radius:9px;color:#9a4e12;display:grid;place-items:center;font-weight:800;font-size:11px}.upload-copy{display:flex;flex-direction:column;min-width:180px}.upload-copy span{font-size:12px;color:var(--muted)}.upload-box input{margin-left:auto;max-width:260px;border:0;background:transparent;padding:0;font-size:12px}
.jobs-section{margin-top:42px}.job-card{background:#fff;border:1px solid #e3ddd5;border-radius:14px;padding:21px 23px;margin:14px 0;box-shadow:0 8px 24px rgba(47,35,22,.045)}.job-top{display:flex;justify-content:space-between;gap:20px}.job-top h3{margin:9px 0 4px}.company{font-weight:700;color:#6d645b}.openings{font-weight:800;font-size:23px;color:var(--brown);text-align:right;white-space:nowrap}.openings small{display:block;font-weight:600;font-size:11px;color:var(--muted)}.job-meta{font-size:13px;color:var(--muted);margin:14px 0}.job-description{border-top:1px solid var(--line);padding-top:14px;color:#5b5149;font-size:13px}.job-description b{color:var(--brown-dark)}.job-description p{margin:5px 0 14px}.job-actions{display:flex;justify-content:flex-end;margin-top:8px}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:24px}.stat-card{background:#fff;border:1px solid #e3ddd5;border-radius:13px;padding:18px;box-shadow:var(--shadow)}.stat-card span,.stat-card small{display:block;color:var(--muted);font-size:12px}.stat-card strong{display:block;font-size:30px;margin:7px 0;color:var(--brown-dark)}.admin-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:18px 0 24px}.admin-link{padding:20px;background:#fff;border:1px solid #e3ddd5;border-radius:13px;text-decoration:none;color:var(--ink);box-shadow:var(--shadow)}.admin-link:hover{border-color:#d7b18e}.admin-link b,.admin-link span{display:block}.admin-link b{font-size:16px;color:var(--brown-dark);margin-bottom:7px}.admin-link span{font-size:13px;color:var(--muted)}
.table-wrap{width:100%;overflow:auto;margin-top:16px}table{border-collapse:collapse;width:100%;min-width:650px;font-size:13px}th,td{text-align:left;padding:12px 10px;border-bottom:1px solid var(--line);vertical-align:top}th{background:#f5f2ee;color:#6d645b;font-size:11px;text-transform:uppercase;letter-spacing:.06em}td a{color:var(--brown);font-weight:700;text-decoration:none}.import-form{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.import-form input{max-width:420px}.search-row{display:flex;gap:10px;margin:14px 0}.search-row input{max-width:420px}.admin-form .full{grid-column:1/-1}.check-label{display:flex;align-items:center;gap:8px;margin:18px 0}.check-label input{width:auto}.actions{white-space:nowrap}.actions form{display:inline;margin:0}.link-danger{border:0;background:transparent;color:#96382d;cursor:pointer;font-weight:700;padding:0 0 0 10px}.status-form{display:flex;gap:7px;align-items:center}.status-form select{min-width:120px;padding:7px}.inline-form{margin:0}.footer a{color:inherit}.full{grid-column:1/-1}
@media(max-width:760px){.site-shell{width:calc(100% - 16px);margin:8px auto 20px;border-radius:12px}.main-content{width:calc(100% - 32px);margin:22px auto 38px}.topbar{padding:10px 16px;min-height:62px}.panel{padding:20px;border-radius:13px}.form-grid,.stats-grid,.admin-grid{grid-template-columns:1fr}.welcome-row{flex-direction:column}.welcome-row h1{font-size:27px}.upload-box{align-items:flex-start;flex-wrap:wrap}.upload-box input{max-width:100%;width:100%;margin:8px 0 0}.job-card{padding:17px}.job-top{flex-direction:column}.openings{text-align:left;font-size:19px}.openings small{display:inline}.section-heading{align-items:flex-start;flex-direction:column}.search-row{flex-direction:column}.search-row input{max-width:none}}


/* Job Fair login layout: retain the MAPCON Workshop Preference palette, but keep login above the fold. */
.login-layout{width:min(1120px,calc(100% - 48px));margin:24px auto 40px;display:grid;grid-template-columns:minmax(0,1.02fr) minmax(360px,.88fr);align-items:center;column-gap:48px;row-gap:18px}
.login-layout .hero{max-width:none;padding:0;margin:0}
.login-layout .hero h1{font-size:clamp(30px,3.2vw,43px);line-height:1.12;margin:5px 0 12px}
.login-layout .hero p{max-width:520px;font-size:15px;margin:0}
.login-layout .panel.narrow{width:100%;max-width:490px;margin:0;justify-self:end;padding:24px}
.login-layout .panel h2{font-size:22px}
.login-layout .panel form{margin-top:13px}
.login-layout .panel label{margin-top:11px}
.login-layout .panel input{min-height:44px}
.login-layout .panel .btn-block{margin-top:14px}
.login-layout .panel .microcopy{margin-top:12px}
.login-layout .panel .step-badge{margin-bottom:5px}
.topbar .brand-mark{background:var(--brown);border-bottom:3px solid var(--orange);color:#fff}
@media(max-width:820px){.login-layout{width:calc(100% - 32px);grid-template-columns:1fr;gap:14px;margin:22px auto 34px}.login-layout .hero h1{font-size:clamp(28px,7vw,36px)}.login-layout .panel.narrow{max-width:none;justify-self:stretch;padding:21px}.login-layout .hero p{max-width:none}}

/* Desktop login page: fit the MAPCON member verification screen into the first viewport. */
@media (min-width:821px) {
  body:has(.login-layout) { min-height:100svh; }
  .site-shell:has(.login-layout) {
    width:min(1100px,calc(100% - 24px));
    min-height:calc(100svh - 16px);
    margin:8px auto;
  }
  .site-shell:has(.login-layout) > .main-content {
    width:100%;
    margin:0;
    padding:10px 0;
    flex:1 0 auto;
    display:flex;
    align-items:center;
  }
  .site-shell:has(.login-layout) .topbar {
    min-height:60px;
    padding:8px 26px;
  }
  .site-shell:has(.login-layout) .footer { padding:10px 16px; }
  .login-layout {
    width:min(1080px,calc(100% - 64px));
    margin:0 auto;
    column-gap:clamp(24px,3vw,42px);
    row-gap:12px;
  }
  .login-layout .hero { padding:0; }
  .login-layout .hero h1 {
    font-size:clamp(29px,3vw,40px);
    margin:4px 0 9px;
  }
  .login-layout .hero p { font-size:14px; line-height:1.45; }
  .login-layout .eyebrow { margin-bottom:7px; }
  .login-layout .panel.narrow {
    padding:18px 21px;
    max-width:460px;
  }
  .login-layout .panel h2 { font-size:20px; margin-bottom:8px; }
  .login-layout .panel p { font-size:14px; line-height:1.4; margin:0 0 8px; }
  .login-layout .panel form { margin-top:8px; }
  .login-layout .panel label { margin:8px 0 5px; }
  .login-layout .panel input { min-height:42px; padding:9px 12px; }
  .login-layout .panel .btn-block { margin-top:11px; padding:10px 16px; }
  .login-layout .panel .microcopy { margin-top:8px; font-size:11px; line-height:1.35; }
  .login-layout .panel .step-badge { margin-bottom:4px; padding:5px 9px; }
}

/* On phones/tablets, preserve comfortable spacing and natural scrolling. */
@media (max-width:820px) {
  .site-shell:has(.login-layout) { margin:8px auto 16px; min-height:0; }
  .site-shell:has(.login-layout) > .main-content { margin:0; padding:10px 0 14px; width:100%; display:block; }
  .login-layout { margin:8px auto 12px; }
}


/* MAPCON-branded resume picker: replace the browser-default file control. */
.upload-box{display:grid;grid-template-columns:44px minmax(180px,1fr) minmax(220px,300px);align-items:center;gap:15px}
.upload-control{position:relative;width:100%;min-width:0;margin-left:auto;display:flex;flex-direction:column;gap:6px}
.upload-control .upload-input{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important;opacity:0!important}
.upload-picker{display:flex;align-items:center;gap:11px;width:100%;min-height:48px;margin:0;padding:7px 10px;background:#fff;border:1px solid #ded4cb;border-radius:10px;cursor:pointer;transition:border-color .16s,background .16s,box-shadow .16s}
.upload-picker:hover{background:#fffaf5;border-color:var(--orange)}
.upload-control .upload-input:focus-visible + .upload-picker{outline:3px solid rgba(233,130,43,.2);outline-offset:2px;border-color:var(--orange)}
.upload-picker-button{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:8px 13px;background:var(--brown);color:#fff;border-radius:7px;font-size:12px;font-weight:800;letter-spacing:.01em;transition:background .16s}
.upload-picker:hover .upload-picker-button{background:var(--brown-dark)}
.upload-picker-name{display:block;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:12px;font-weight:500}
.upload-help{padding-left:2px;color:#827a72;font-size:10px;line-height:1.3}
@media(max-width:760px){.upload-box{grid-template-columns:44px minmax(0,1fr);gap:12px}.upload-control{grid-column:1/-1}.upload-copy{min-width:0}}


/* One-application confirmation: MAPCON Workshop Preference theme. */
.application-modal-backdrop{position:fixed;inset:0;z-index:99999;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(35,25,17,.58);backdrop-filter:blur(3px)}
.application-modal{width:min(100%,460px);padding:30px 30px 26px;background:#fff;border:1px solid #e3ddd5;border-top:5px solid var(--orange);border-radius:18px;box-shadow:0 24px 70px rgba(25,18,12,.25);text-align:center}
.application-modal-icon{width:58px;height:58px;margin:0 auto 15px;display:grid;place-items:center;border-radius:50%;background:#edf8f2;color:#175b3c;font-size:30px;font-weight:800}
.application-modal .step-badge{margin-bottom:9px}
.application-modal h2{font-size:24px;margin:0 0 10px;color:var(--brown-dark)}
.application-modal p{margin:0;color:#6d645b;font-size:14px;line-height:1.6}
.application-modal form{margin-top:22px}
.application-modal .btn-block{width:100%}
@media(max-width:520px){.application-modal{padding:25px 20px 21px}.application-modal h2{font-size:21px}}


/* Keep login/OTP feedback inside the verification card, never in the left hero column. */
.login-layout .panel .login-flash{display:block;width:100%;margin:0 0 16px;padding:11px 13px;border-radius:9px;font-size:13px;line-height:1.45;box-sizing:border-box}
.login-layout .panel .login-flash:last-child{margin-bottom:0}


/* Resume-first application gate. The server controls the state; this styling only communicates it. */
.resume-gate{display:flex;align-items:center;gap:12px;padding:13px 15px;margin:14px 0 18px;border:1px solid #e3ddd5;border-radius:11px;background:#fff;font-size:13px;line-height:1.4}
.resume-gate-mark{flex:0 0 28px;width:28px;height:28px;display:grid;place-items:center;border-radius:50%;font-weight:800}
.resume-gate-ready{border-color:#cfe2d5;background:#f3faf5;color:#175b3c}
.resume-gate-ready .resume-gate-mark{background:#e0f1e5;color:#175b3c}
.resume-gate-pending{border-color:#ead8c7;background:#fff9f3;color:#6b4425}
.resume-gate-pending .resume-gate-mark{background:#fbe9d8;color:#8b4b17}
.resume-gate b,.resume-gate small{display:block}
.resume-gate small{margin-top:2px;color:#6d645b;font-size:12px}
.apply-button:disabled{opacity:1;background:#f1eeea!important;color:#8a8178!important;border:1px solid #e2dbd3!important;cursor:not-allowed;box-shadow:none}

/* Resume gate refinement: align disabled Apply actions with the MAPCON form controls. */
.apply-button:disabled{pointer-events:none;filter:saturate(.65)}
.resume-gate{max-width:100%}
.resume-gate-pending{background:#fff8f0;border-color:#e7c8a8}
.resume-gate-ready{background:#f2f8f3;border-color:#c9ddce}


/* Upload box refinement: clear selected / invalid / drag states. */
.upload-box{background:#faf8f5;border:2px dashed #d9d2ca;padding:18px;transition:border-color .16s,background .16s}
.upload-box .upload-copy b{font-size:15px;color:var(--brown-dark)}
.upload-box .upload-copy span{overflow-wrap:anywhere}
.upload-box.is-drag{border-color:var(--orange);background:#fff6ec}
.upload-box.has-file{border-style:solid;border-color:#9fcdb2;background:#f3faf5}
.upload-box.has-file .upload-picker{border-color:#9fcdb2}
.upload-box.has-file .upload-picker-name{color:var(--green);font-weight:700}
.upload-box.has-file .upload-help{color:var(--green);font-weight:700}
.upload-box.is-invalid{border-style:solid;border-color:#e3a79f;background:#fff5f3}
.upload-box.is-invalid .upload-help{color:var(--red);font-weight:700}
.upload-help{font-size:12px;line-height:1.35;padding-left:2px}
.upload-picker-name{font-size:13px}
#saveResumeBtn:disabled{opacity:.5;cursor:not-allowed}

/* Register Now call-to-action on the login card. */
.register-cta{margin-top:12px;padding-top:12px;border-top:1px solid var(--line);text-align:center}
.register-cta span{display:block;font-size:13px;color:var(--muted);font-weight:700}
.login-layout .panel .register-cta .btn-block{margin-top:8px;background:var(--orange);border-color:var(--orange);color:#fff}
.login-layout .panel .register-cta .btn-block:hover{background:#d4721f;border-color:#d4721f}
