/* LUCYESL v2 — British Racing Green brand, Fraunces + DM Sans */
:root {
  --brand:      #1B3A2A;
  --brand-mid:  #2C5C42;
  --brand-soft: #EAF2EC;
  --brand-rule: #B8D4C0;
  --gold:       #B07D2E;
  --gold-soft:  #F5EDD9;
  --gold-rule:  #DFC38A;
  --cream:      #FAF8F4;
  --white:      #FFFFFF;
  --ink:        #141210;
  --ink2:       #4A4742;
  --muted:      #9A9790;
  --border:     #E8E5DF;
  --border-d:   #D0CCC4;
  --rule:       #ECEAE5;
  --green:      #1E6B42;
  --green-soft: #E8F4ED;
  --red:        #B91C1C;
  --red-soft:   #FEF2F2;
  --blue:       #1D4ED8;
  --blue-soft:  #EFF6FF;
  --amber:      #92400E;
  --amber-soft: #FEF3C7;
  --font-d: 'Fraunces', Georgia, serif;
  --font-b: 'DM Sans', system-ui, sans-serif;
  --s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:32px;--s7:48px;--s8:64px;--s9:96px;--s10:128px;
  --r1:4px;--r2:8px;--r3:12px;--r4:16px;--r5:24px;
  --sh-sm:0 1px 3px rgba(20,18,16,.06),0 1px 2px rgba(20,18,16,.04);
  --sh:   0 2px 8px rgba(20,18,16,.07),0 4px 24px rgba(20,18,16,.05);
  --sh-md:0 4px 16px rgba(20,18,16,.08),0 8px 40px rgba(20,18,16,.06);
  --sh-lg:0 8px 32px rgba(20,18,16,.10),0 16px 64px rgba(20,18,16,.08);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;font-size:16px}
body{font-family:var(--font-b);background:var(--cream);color:var(--ink);line-height:1.6;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit}
button,input,select,textarea{font-family:var(--font-b)}

/* TYPE */
h1{font-family:var(--font-d);font-size:clamp(30px,5vw,52px);font-weight:600;letter-spacing:-0.025em;line-height:1.1}
h2{font-family:var(--font-d);font-size:clamp(20px,3vw,32px);font-weight:600;letter-spacing:-0.02em;line-height:1.2}
h3{font-family:var(--font-d);font-size:20px;font-weight:600;letter-spacing:-0.01em}
h4{font-size:14px;font-weight:700}
p{font-size:15px;color:var(--ink2);line-height:1.78;font-weight:400}
.display-xl{font-family:var(--font-d);font-size:clamp(44px,7vw,84px);font-weight:600;letter-spacing:-0.03em;line-height:1.0}
.display-lg{font-family:var(--font-d);font-size:clamp(32px,5vw,56px);font-weight:600;letter-spacing:-0.025em;line-height:1.08}
.display-md{font-family:var(--font-d);font-size:clamp(24px,3.5vw,38px);font-weight:600;letter-spacing:-0.02em;line-height:1.15}
.lead{font-size:18px;color:var(--ink2);line-height:1.75;font-weight:400}
.label{font-size:11px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}

/* LAYOUT */
.wrap{max-width:1120px;margin:0 auto;padding:0 var(--s7)}
.wrap-md{max-width:780px;margin:0 auto;padding:0 var(--s7)}
.wrap-sm{max-width:620px;margin:0 auto;padding:0 var(--s7)}
.section{padding:var(--s9) 0}
.section-sm{padding:var(--s7) 0}
.divider{height:1px;background:var(--rule);border:none;margin:var(--s6) 0}
.section-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:var(--s6)}
.section-head .see-all{font-size:13px;font-weight:600;color:var(--brand);text-decoration:none}
.section-head .see-all:hover{text-decoration:underline;text-underline-offset:3px}

/* NAV */
.nav{height:64px;display:flex;align-items:center;justify-content:space-between;padding:0 var(--s7);background:var(--cream);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:100}
.nav-logo{display:flex;align-items:center;gap:var(--s3);text-decoration:none}
.nav-logo-mark{width:34px;height:34px;background:var(--brand);border-radius:var(--r2);display:grid;place-items:center;font-size:16px;flex-shrink:0}
.nav-logo-name{font-family:var(--font-d);font-size:18px;font-weight:700;color:var(--ink);letter-spacing:-0.02em}
.nav-links{display:flex;align-items:center;list-style:none}
.nav-links a{padding:7px 14px;font-size:14px;font-weight:500;color:var(--ink2);text-decoration:none;border-radius:var(--r2);transition:color 120ms,background 120ms}
.nav-links a:hover,.nav-links a.active{color:var(--ink);background:var(--rule)}
.nav-actions{display:flex;align-items:center;gap:var(--s2)}

/* BUTTONS */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 20px;border-radius:var(--r2);font-size:14px;font-weight:600;cursor:pointer;transition:all 130ms;text-decoration:none;white-space:nowrap;border:none;font-family:var(--font-b);line-height:1}
.btn-sm{padding:7px 14px;font-size:13px}
.btn-lg{padding:13px 26px;font-size:15px;border-radius:var(--r3)}
.btn-xl{padding:16px 32px;font-size:16px;border-radius:var(--r3)}
.btn-block{width:100%}
.btn-brand{background:var(--brand);color:white}.btn-brand:hover{background:var(--brand-mid)}
.btn-outline{background:transparent;color:var(--ink);border:1.5px solid var(--border-d)}.btn-outline:hover{border-color:var(--ink);background:var(--white)}
.btn-ghost{background:transparent;color:var(--ink2);border:1.5px solid var(--border)}.btn-ghost:hover{color:var(--ink);border-color:var(--border-d);background:var(--white)}
.btn-white{background:white;color:var(--brand)}.btn-white:hover{background:var(--brand-soft)}
.btn-dark{background:var(--ink);color:white}.btn-dark:hover{background:#2a2724}
.btn-link{background:none;border:none;color:var(--brand);font-size:14px;font-weight:600;padding:0;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.btn:disabled{opacity:0.5;pointer-events:none}

/* FORMS */
.form-group{margin-bottom:var(--s5)}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--s4)}
.form-label{display:block;font-size:13px;font-weight:600;color:var(--ink);margin-bottom:6px}
.form-hint{font-size:12px;color:var(--muted);margin-top:5px;line-height:1.5}
.form-error{font-size:12px;color:var(--red);margin-top:5px;display:none}
.input,.select,.textarea{width:100%;padding:11px 14px;border:1.5px solid var(--border);border-radius:var(--r2);font-size:14px;font-family:var(--font-b);color:var(--ink);background:var(--white);outline:none;transition:border-color 130ms,box-shadow 130ms;appearance:none;-webkit-appearance:none}
.input:focus,.select:focus,.textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px rgba(27,58,42,.09)}
.input::placeholder,.textarea::placeholder{color:var(--muted)}
.textarea{min-height:120px;resize:vertical;line-height:1.6}
.select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%239A9790' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:38px;cursor:pointer}

/* SEARCH BAR */
.search-wrap{display:flex;align-items:center;background:var(--white);border:1.5px solid var(--border-d);border-radius:var(--r3);box-shadow:var(--sh);transition:border-color 150ms,box-shadow 150ms}
.search-wrap:focus-within{border-color:var(--brand);box-shadow:0 0 0 4px rgba(27,58,42,.08),var(--sh)}
.search-wrap input{flex:1;border:none;outline:none;background:transparent;padding:15px 18px;font-size:15px;color:var(--ink);font-family:var(--font-b)}
.search-wrap input::placeholder{color:var(--muted)}
.search-divider{width:1px;height:24px;background:var(--border);flex-shrink:0}
.search-wrap select{border:none;outline:none;background:transparent;padding:0 16px;font-size:14px;color:var(--ink2);font-family:var(--font-b);cursor:pointer;font-weight:500;appearance:none;-webkit-appearance:none;min-width:140px}
.search-submit{padding:11px 22px;background:var(--brand);color:white;border:none;font-family:var(--font-b);font-size:14px;font-weight:600;cursor:pointer;transition:background 130ms;white-space:nowrap;margin:5px;border-radius:var(--r2)}
.search-submit:hover{background:var(--brand-mid)}

/* TAGS */
.tag{display:inline-flex;align-items:center;gap:3px;padding:3px 9px;border-radius:4px;font-size:11px;font-weight:600;letter-spacing:.01em}
.tag-green{background:var(--green-soft);color:var(--green)}
.tag-brand{background:var(--brand-soft);color:var(--brand)}
.tag-gold{background:var(--gold-soft);color:var(--gold)}
.tag-muted{background:var(--rule);color:var(--ink2)}
.tag-red{background:var(--red-soft);color:var(--red)}

/* JOB CARDS */
.jobs-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:var(--s4)}
.jobs-list{display:flex;flex-direction:column;gap:2px}
.job-card{display:block;text-decoration:none;color:inherit;background:var(--white);border:1px solid var(--border);border-radius:var(--r4);padding:var(--s6);transition:border-color 150ms,box-shadow 150ms,transform 150ms;position:relative}
.job-card:hover{border-color:var(--brand-rule);box-shadow:var(--sh-md);transform:translateY(-2px)}
.job-card.pick{border-left:3px solid var(--gold)}
.jc-pick{display:none;align-items:center;gap:4px;font-size:11px;font-weight:700;color:var(--gold);margin-bottom:var(--s3);letter-spacing:.03em}
.job-card.pick .jc-pick{display:inline-flex}
.jc-flag{font-size:28px;margin-bottom:var(--s3);display:block;line-height:1}
.jc-title{font-size:16px;font-weight:700;color:var(--ink);margin-bottom:4px;line-height:1.35;letter-spacing:-0.01em}
.jc-school{font-size:13px;color:var(--muted);font-weight:500;margin-bottom:var(--s4)}
.jc-foot{display:flex;align-items:center;justify-content:space-between;margin-top:var(--s4);padding-top:var(--s4);border-top:1px solid var(--rule)}
.jc-salary{font-size:15px;font-weight:700;color:var(--green);letter-spacing:-0.01em}
.jc-meta{font-size:12px;color:var(--muted)}
.jc-arrow{font-size:18px;color:var(--brand);opacity:0;transition:opacity 120ms}
.job-card:hover .jc-arrow{opacity:1}
.job-list-item{display:flex;align-items:center;gap:var(--s5);padding:var(--s5) var(--s6);background:var(--white);border:1px solid var(--border);border-radius:var(--r3);text-decoration:none;color:inherit;transition:border-color 130ms,box-shadow 130ms}
.job-list-item:hover{border-color:var(--brand-rule);box-shadow:var(--sh-sm)}
.jli-flag{font-size:28px;flex-shrink:0}
.jli-main{flex:1;min-width:0}
.jli-title{font-size:15px;font-weight:700;color:var(--ink);margin-bottom:2px}
.jli-sub{font-size:12px;color:var(--muted)}
.jli-right{flex-shrink:0;text-align:right}
.jli-salary{font-size:14px;font-weight:700;color:var(--green)}
.jli-meta{font-size:11px;color:var(--muted);margin-top:2px}

/* FILTER */
.filter-row{display:flex;gap:var(--s2);flex-wrap:wrap}
.f-btn{padding:6px 14px;border-radius:20px;font-size:13px;font-weight:500;cursor:pointer;border:1.5px solid var(--border);background:var(--white);color:var(--ink2);transition:all 130ms;font-family:var(--font-b)}
.f-btn:hover{border-color:var(--brand-rule);color:var(--brand);background:var(--brand-soft)}
.f-btn.on{background:var(--brand);color:white;border-color:var(--brand)}

/* SIDEBAR */
.sidebar-layout{display:grid;grid-template-columns:260px 1fr;gap:var(--s7);align-items:start}
.sidebar{position:sticky;top:80px;display:flex;flex-direction:column;gap:var(--s4)}
.sidebar-card{background:var(--white);border:1px solid var(--border);border-radius:var(--r3);padding:var(--s5)}
.sidebar-card h4{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:var(--s4);padding-bottom:var(--s3);border-bottom:1px solid var(--rule)}
.sidebar-check{display:flex;align-items:center;gap:var(--s2);padding:5px 0;cursor:pointer}
.sidebar-check input{accent-color:var(--brand);width:15px;height:15px}
.sidebar-check label{font-size:13px;color:var(--ink2);cursor:pointer;flex:1}
.sidebar-check .count{font-size:11px;color:var(--muted);font-weight:600}

/* PAGE HEADER */
.page-header{padding:var(--s9) var(--s7) var(--s8)}
.breadcrumb{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--muted);margin-bottom:var(--s5)}
.breadcrumb a{color:var(--muted);text-decoration:none}
.breadcrumb a:hover{color:var(--brand)}
.breadcrumb span{color:var(--border-d)}

/* COUNTRIES */
.country-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--s3)}
.country-card{display:block;text-decoration:none;color:inherit;background:var(--white);border:1px solid var(--border);border-radius:var(--r3);padding:var(--s5);transition:border-color 150ms,box-shadow 150ms,transform 150ms}
.country-card:hover{border-color:var(--brand-rule);box-shadow:var(--sh);transform:translateY(-2px)}
.country-flag{font-size:32px;margin-bottom:var(--s3);display:block;line-height:1}
.country-name{font-size:15px;font-weight:700;color:var(--ink);margin-bottom:2px;letter-spacing:-0.01em}
.country-count{font-size:12px;color:var(--muted);font-weight:500;margin-bottom:var(--s2)}
.country-lucy{font-size:12px;color:var(--brand);font-style:italic;font-weight:500;line-height:1.5}

/* LUCY CALLOUT */
.lucy-callout{display:flex;align-items:flex-start;gap:var(--s5);background:var(--white);border:1px solid var(--border);border-left:3px solid var(--brand);border-radius:var(--r3);padding:var(--s6)}
.lucy-avatar{width:52px;height:52px;flex-shrink:0;background:var(--brand-soft);border:1.5px solid var(--brand-rule);border-radius:50%;display:grid;place-items:center;font-size:24px}
.lucy-quote-text{font-family:var(--font-d);font-size:17px;font-weight:400;font-style:italic;color:var(--ink);line-height:1.65;margin-bottom:var(--s2)}
.lucy-attr{font-size:12px;font-weight:600;color:var(--muted);letter-spacing:.05em;text-transform:uppercase}
.lucy-creds{display:flex;gap:var(--s2);flex-wrap:wrap;margin-top:var(--s3)}
.lucy-cred{font-size:11px;font-weight:600;padding:3px 9px;background:var(--brand-soft);color:var(--brand);border-radius:4px}

/* STATS */
.stats-row{display:flex;gap:var(--s8);align-items:center}
.stat-n{font-family:var(--font-d);font-size:36px;font-weight:600;color:var(--ink);letter-spacing:-0.03em;line-height:1;margin-bottom:4px}
.stat-l{font-size:13px;color:var(--muted);font-weight:500}
.stat-sep{width:1px;height:40px;background:var(--border);flex-shrink:0}

/* ALERTS */
.alert{display:flex;align-items:flex-start;gap:var(--s3);padding:var(--s3) var(--s4);border-radius:var(--r2);font-size:13px;font-weight:500;margin-bottom:var(--s5)}
.alert-success{background:var(--green-soft);color:var(--green)}
.alert-error{background:var(--red-soft);color:var(--red)}
.alert-info{background:var(--blue-soft);color:var(--blue)}
.alert-brand{background:var(--brand-soft);color:var(--brand)}
.alert-amber{background:var(--amber-soft);color:var(--amber)}

/* CV CARD */
.cv-card{background:var(--white);border:1px solid var(--border);border-radius:var(--r3);padding:var(--s5);transition:border-color 130ms,box-shadow 130ms}
.cv-card:hover{border-color:var(--brand-rule);box-shadow:var(--sh-sm)}
.cv-head{display:flex;align-items:flex-start;gap:var(--s4);margin-bottom:var(--s4)}
.cv-avatar{width:44px;height:44px;border-radius:50%;background:var(--brand-soft);border:1.5px solid var(--brand-rule);display:grid;place-items:center;font-size:20px;flex-shrink:0}
.cv-name{font-size:15px;font-weight:700;color:var(--ink);margin-bottom:2px}
.cv-meta{font-size:12px;color:var(--muted)}

/* PRICING */
.pricing-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--s5)}
.pricing-card{background:var(--white);border:1px solid var(--border);border-radius:var(--r4);padding:var(--s7) var(--s6)}
.pricing-card.featured{border-color:var(--brand);border-width:2px;position:relative}
.pricing-card.featured::before{content:'Most Popular';position:absolute;top:-12px;left:var(--s6);background:var(--brand);color:white;font-size:11px;font-weight:700;padding:3px 12px;border-radius:20px;letter-spacing:.04em}
.price-plan{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:var(--s3)}
.price-amount{font-family:var(--font-d);font-size:48px;font-weight:600;color:var(--ink);letter-spacing:-0.04em;line-height:1}
.price-amount sup{font-size:24px;vertical-align:super}
.price-per{font-size:13px;color:var(--muted);margin-top:4px;margin-bottom:var(--s5)}
.price-features{list-style:none;display:flex;flex-direction:column;gap:var(--s3);margin-bottom:var(--s7)}
.price-features li{font-size:14px;color:var(--ink2);display:flex;align-items:center;gap:var(--s2)}
.price-features li::before{content:'✓';color:var(--green);font-weight:700;flex-shrink:0}
.price-features li.no{color:var(--muted)}.price-features li.no::before{content:'–';color:var(--muted)}

/* AUTH */
.auth-page{min-height:calc(100vh - 64px);display:grid;place-items:center;padding:var(--s7);background:var(--cream)}
.auth-card{background:var(--white);border:1px solid var(--border);border-radius:var(--r5);padding:var(--s8) var(--s7);width:100%;max-width:440px;box-shadow:var(--sh-lg)}
.auth-title{font-family:var(--font-d);font-size:26px;font-weight:600;color:var(--ink);text-align:center;margin-bottom:6px;letter-spacing:-0.02em}
.auth-sub{font-size:14px;color:var(--muted);text-align:center;margin-bottom:var(--s6)}
.auth-switch{text-align:center;margin-top:var(--s5);font-size:13px;color:var(--muted)}
.auth-switch a{color:var(--brand);font-weight:600;text-decoration:none}

/* PROSE */
.prose h2{font-size:22px;margin:var(--s7) 0 var(--s4)}
.prose h3{font-size:17px;margin:var(--s6) 0 var(--s3)}
.prose p{margin-bottom:var(--s4);font-size:15px;line-height:1.8}
.prose ul{padding-left:var(--s5);margin-bottom:var(--s4)}
.prose ul li{font-size:15px;color:var(--ink2);margin-bottom:var(--s2);line-height:1.7}
.prose a{color:var(--brand);text-underline-offset:3px}
.prose strong{color:var(--ink)}

/* CONTENT BLOCK */
.content-block{margin-bottom:var(--s6)}
.content-block h4{font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:var(--s4);padding-bottom:var(--s3);border-bottom:1px solid var(--rule)}
.content-block ul{list-style:none;display:flex;flex-direction:column;gap:var(--s3)}
.content-block ul li{display:flex;gap:var(--s3);font-size:14px;color:var(--ink2);align-items:flex-start}
.content-block ul li::before{content:'→';color:var(--brand);font-weight:700;flex-shrink:0;margin-top:1px}

/* PAGINATION */
.pagination{display:flex;align-items:center;justify-content:center;gap:3px;margin-top:var(--s8)}
.page-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--r2);font-size:13px;font-weight:600;border:1px solid var(--border);background:var(--white);color:var(--ink2);cursor:pointer;text-decoration:none;transition:all 130ms}
.page-btn:hover{border-color:var(--brand-rule);color:var(--brand)}
.page-btn.active{background:var(--brand);color:white;border-color:var(--brand)}
.page-btn.disabled{opacity:0.4;pointer-events:none}

/* ACCORDION */
.accordion-item{border-bottom:1px solid var(--rule)}
.accordion-btn{width:100%;text-align:left;background:none;border:none;padding:var(--s5) 0;font-size:15px;font-weight:600;color:var(--ink);cursor:pointer;display:flex;justify-content:space-between;align-items:center;font-family:var(--font-b)}
.accordion-body{max-height:0;overflow:hidden;transition:max-height 280ms ease}

/* EMPTY STATE */
.empty-state{text-align:center;padding:var(--s10) var(--s5)}
.empty-state .es-icon{font-size:48px;margin-bottom:var(--s5)}
.empty-state h3{font-family:var(--font-d);font-size:22px;margin-bottom:var(--s3)}
.empty-state p{color:var(--muted);max-width:320px;margin:0 auto var(--s5)}

/* MESSAGING */
.messages-layout{display:grid;grid-template-columns:320px 1fr;height:calc(100vh - 64px);overflow:hidden}
.thread-list{border-right:1px solid var(--border);overflow-y:auto;background:var(--white)}
.thread-item{display:flex;gap:var(--s3);padding:var(--s4) var(--s5);border-bottom:1px solid var(--rule);cursor:pointer;transition:background 120ms}
.thread-item:hover,.thread-item.active{background:var(--brand-soft)}
.thread-avatar{width:40px;height:40px;border-radius:50%;background:var(--rule);display:grid;place-items:center;font-size:18px;flex-shrink:0}
.thread-name{font-size:14px;font-weight:700;color:var(--ink);margin-bottom:2px}
.thread-preview{font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:200px}
.thread-time{font-size:11px;color:var(--muted);flex-shrink:0}
.thread-unread{width:8px;height:8px;border-radius:50%;background:var(--brand);flex-shrink:0;margin-top:5px}
.chat-pane{display:flex;flex-direction:column;background:var(--cream)}
.chat-header{padding:var(--s4) var(--s6);background:var(--white);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:var(--s4)}
.chat-messages{flex:1;overflow-y:auto;padding:var(--s6);display:flex;flex-direction:column;gap:var(--s4)}
.message-bubble{max-width:72%}
.message-bubble.mine{align-self:flex-end}
.message-bubble.theirs{align-self:flex-start}
.bubble-text{padding:var(--s3) var(--s4);border-radius:var(--r3);font-size:14px;line-height:1.6}
.mine .bubble-text{background:var(--brand);color:white;border-bottom-right-radius:4px}
.theirs .bubble-text{background:var(--white);color:var(--ink);border:1px solid var(--border);border-bottom-left-radius:4px}
.bubble-time{font-size:11px;color:var(--muted);margin-top:4px;padding:0 4px}
.mine .bubble-time{text-align:right}
.chat-input-row{padding:var(--s4) var(--s6);background:var(--white);border-top:1px solid var(--border);display:flex;gap:var(--s3);align-items:center}
.chat-input{flex:1;border:1.5px solid var(--border);border-radius:var(--r2);padding:10px 14px;font-size:14px;font-family:var(--font-b);outline:none;transition:border-color 130ms}
.chat-input:focus{border-color:var(--brand)}
.chat-send{padding:10px 20px;background:var(--brand);color:white;border:none;border-radius:var(--r2);font-size:14px;font-weight:600;cursor:pointer;font-family:var(--font-b);transition:background 130ms}
.chat-send:hover{background:var(--brand-mid)}

/* TOAST */
.toast{position:fixed;bottom:var(--s6);right:var(--s6);background:var(--ink);color:white;padding:14px var(--s5);border-radius:var(--r2);font-size:14px;font-weight:500;box-shadow:var(--sh-lg);z-index:999;transform:translateY(80px);opacity:0;transition:all 280ms}
.toast.show{transform:translateY(0);opacity:1}
.toast.success{background:var(--green)}.toast.error{background:var(--red)}

/* FOOTER */
footer{background:var(--brand);padding:var(--s7) var(--s7) var(--s5);margin-top:var(--s9)}
.footer-inner{max-width:1120px;margin:0 auto}
.footer-top{display:grid;grid-template-columns:240px 1fr;gap:var(--s9);padding-bottom:var(--s7);margin-bottom:var(--s6);border-bottom:1px solid rgba(255,255,255,.10)}
.footer-brand .fl-logo{font-family:var(--font-d);font-size:20px;font-weight:700;color:white;letter-spacing:-0.02em;margin-bottom:var(--s3);display:block}
.footer-brand .fl-sub{font-size:13px;color:rgba(255,255,255,.45);line-height:1.65;max-width:200px}
.footer-links{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s6)}
.fc-group h4{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.30);margin-bottom:var(--s4)}
.fc-group ul{list-style:none;display:flex;flex-direction:column;gap:var(--s3)}
.fc-group a{font-size:14px;color:rgba(255,255,255,.50);text-decoration:none;transition:color 130ms}
.fc-group a:hover{color:rgba(255,255,255,.90)}
.footer-bottom{display:flex;justify-content:space-between;align-items:center}
.footer-copy{font-size:12px;color:rgba(255,255,255,.25)}
.footer-copy em{font-style:normal;color:rgba(255,255,255,.45)}

/* MISC */
.text-brand{color:var(--brand)}.text-muted{color:var(--muted)}.text-green{color:var(--green)}.text-center{text-align:center}.hidden{display:none!important}
.spinner{width:20px;height:20px;border:2px solid var(--border);border-top-color:var(--brand);border-radius:50%;animation:spin 600ms linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* ═══════════════════════════════════════════════════════
   RESPONSIVE & MOBILE — LucyESL
   Mobile-first. iOS-ready. 3 breakpoints: 1080 / 768 / 480
═══════════════════════════════════════════════════════ */

/* iOS safe areas */
:root {
  --safe-top:    env(safe-area-inset-top,    0px);
  --safe-bottom: env(safe-area-inset-bottom, 0px);
  --safe-left:   env(safe-area-inset-left,   0px);
  --safe-right:  env(safe-area-inset-right,  0px);
}

/* Remove tap highlight on iOS */
* { -webkit-tap-highlight-color: transparent; }
button, a, input, select, textarea { touch-action: manipulation; }

/* Prevent text size adjustment on orientation change */
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }

/* Smooth momentum scrolling on iOS */
.thread-list, .chat-messages, .nav-mobile, .admin-main { -webkit-overflow-scrolling: touch; }

/* ── LAYOUT UTILITIES ─────────────────────────────── */
.wrap         { max-width: 1120px; margin: 0 auto; padding: 0 var(--s7); }
.wrap-md      { max-width: 780px;  margin: 0 auto; padding: 0 var(--s7); }
.wrap-sm      { max-width: 620px;  margin: 0 auto; padding: 0 var(--s7); }

.grid-2-1     { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s6); }
.grid-hero    { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center; }
.grid-about   { display: grid; grid-template-columns: 280px 1fr; gap: 56px; align-items: start; }
.grid-profile { display: grid; grid-template-columns: 300px 1fr; gap: var(--s8); align-items: start; }
.grid-contact { display: grid; grid-template-columns: 1fr 340px; gap: var(--s7); align-items: start; }
.big-three-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 20px; }

/* ── HAMBURGER ────────────────────────────────────── */
.nav-hamburger {
  display: none;
  flex-direction: column;
  gap: 5px;
  cursor: pointer;
  padding: 8px;
  border: 1.5px solid var(--border);
  border-radius: var(--r2);
  background: transparent;
  min-width: 40px;
  min-height: 40px;
  align-items: center;
  justify-content: center;
}
.nav-hamburger span {
  display: block; width: 20px; height: 2px;
  background: var(--ink2); border-radius: 2px; transition: all 200ms;
}
.nav-hamburger.open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.nav-hamburger.open span:nth-child(2) { opacity: 0; }
.nav-hamburger.open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* ── MOBILE DRAWER ────────────────────────────────── */
.nav-mobile {
  display: none;
  position: fixed;
  top: 64px; left: 0; right: 0; bottom: 0;
  background: var(--white);
  z-index: 99;
  overflow-y: auto;
  padding: var(--s4) var(--s4) calc(var(--s4) + var(--safe-bottom));
  border-top: 1px solid var(--border);
  flex-direction: column;
  gap: 2px;
}
.nav-mobile.open { display: flex; }
.nav-mobile a {
  display: block; padding: 14px 16px; font-size: 16px; font-weight: 500;
  color: var(--ink); text-decoration: none; border-radius: var(--r2);
  min-height: 48px; display: flex; align-items: center;
}
.nav-mobile a:hover, .nav-mobile a:active { background: var(--cream); }
.nav-mobile .nav-mobile-divider { height: 1px; background: var(--rule); margin: var(--s2) 0; }
.nav-mobile .btn { justify-content: center; margin-top: var(--s2); min-height: 48px; }

/* ── 1080px — TABLET LANDSCAPE ───────────────────── */
@media (max-width: 1080px) {
  .big-three-grid { grid-template-columns: 1fr 1fr; }
  .wrap, .wrap-md, .wrap-sm { padding: 0 var(--s6); }
}

/* ── 960px — TABLET ──────────────────────────────── */
@media (max-width: 960px) {
  .sidebar-layout   { grid-template-columns: 1fr; }
  .sidebar          { position: static; }
  .grid-hero        { grid-template-columns: 1fr; gap: var(--s7); }
  .grid-about       { grid-template-columns: 1fr; }
  .grid-profile     { grid-template-columns: 1fr; }
  .grid-contact     { grid-template-columns: 1fr; }
  .footer-top       { grid-template-columns: 1fr; gap: var(--s7); }
  .stats-row        { gap: var(--s6); }
  .messages-layout  { grid-template-columns: 300px 1fr; }
}

/* ── 768px — MOBILE ──────────────────────────────── */
@media (max-width: 768px) {
  :root {
    --s7: 20px;
    --s8: 48px;
    --s9: 56px;
    --s10: 80px;
  }

  /* Nav */
  .nav              { padding: 0 var(--s4) 0 calc(var(--s4) + var(--safe-left)); height: 56px; }
  .nav-links        { display: none !important; }
  .nav-actions      { display: none !important; }
  .nav-hamburger    { display: flex; }

  /* Wraps */
  .wrap, .wrap-md, .wrap-sm { padding: 0 var(--s4); }

  /* Typography — tighter on mobile */
  .display-xl { font-size: clamp(32px, 9vw, 52px); }
  .display-lg { font-size: clamp(26px, 7vw, 40px); }
  .lead       { font-size: 16px; }

  /* Hero */
  .hero-pad   { padding: 48px var(--s4) 40px !important; }

  /* Stats strip */
  .stats-pad  { padding: 20px var(--s4) !important; }
  .stats-row  { flex-wrap: wrap; gap: var(--s4); justify-content: center; }
  .stat-n     { font-size: 26px; }
  .stat-sep   { display: none; }

  /* Sections */
  .section-pad { padding: 48px var(--s4) !important; }
  .page-header { padding: var(--s6) var(--s4) var(--s5) !important; }

  /* Grids all collapse */
  .grid-2-1, .grid-hero, .grid-about,
  .grid-profile, .grid-contact,
  .sidebar-layout, .big-three-grid { grid-template-columns: 1fr !important; }
  .grid-hero { gap: var(--s5) !important; }

  /* Search bar */
  /* Search bar — fully stacked on mobile */
  .search-wrap            { display: block; padding: 0; border-radius: var(--r3); overflow: visible; background: transparent; border: none; box-shadow: none; }
  .search-wrap input      { display: block; width: 100%; font-size: 16px; min-height: 48px; padding: 13px 16px; border: 1.5px solid var(--border-d); border-radius: var(--r3); background: var(--white); outline: none; margin-bottom: 8px; box-shadow: var(--sh); }
  .search-wrap input:focus { border-color: var(--brand); box-shadow: 0 0 0 3px rgba(27,58,42,.09), var(--sh); }
  .search-wrap:focus-within { box-shadow: none; }
  .search-divider         { display: none; }
  .search-wrap select     { display: none; }
  .search-submit          { display: block; width: 100%; border-radius: var(--r3); min-height: 50px; font-size: 16px; margin: 0; padding: 0; background: var(--brand); color: white; border: none; font-family: var(--font-b); font-weight: 700; cursor: pointer; }

  /* Inputs — 16px prevents iOS zoom-on-focus */
  .input, .select, .textarea { font-size: 16px; min-height: 48px; }
  .textarea { min-height: 100px; }

  /* Forms */
  .form-row { grid-template-columns: 1fr !important; }

  /* Jobs */
  .jobs-grid { grid-template-columns: 1fr !important; }
  .job-card  { padding: var(--s5); }

  /* Countries */
  .country-grid { grid-template-columns: 1fr 1fr !important; }

  /* Pricing */
  .pricing-grid { grid-template-columns: 1fr !important; }

  /* Footer */
  /* Footer — compact on mobile */
  footer        { padding: 24px 20px calc(16px + var(--safe-bottom)); margin-top: var(--s6); }
  .footer-inner { gap: 0; }
  .footer-top   { display: block !important; padding-bottom: 16px; margin-bottom: 12px; }
  .footer-brand { margin-bottom: 16px; }
  .footer-brand .fl-sub { display: none; }
  .footer-links { display: grid !important; grid-template-columns: repeat(3, 1fr) !important; gap: 4px 12px !important; }
  .fc-group h4  { font-size: 10px !important; margin-bottom: 8px !important; }
  .fc-group ul  { gap: 6px !important; }
  .fc-group a   { font-size: 12px !important; }
  .footer-bottom{ flex-direction: column; gap: 4px; text-align: center; padding-top: 12px; }
  .footer-copy  { font-size: 11px !important; }

  /* Auth */
  .auth-page  { padding: var(--s4) !important; align-items: flex-start; padding-top: var(--s6) !important; }
  .auth-card  { padding: var(--s5) var(--s4) !important; border-radius: var(--r3); }

  /* Lucy callout */
  .lucy-callout { flex-direction: column !important; }

  /* Messages — mobile: show thread list first, hide chat until thread selected */
  .messages-layout { grid-template-columns: 1fr !important; height: auto !important; min-height: calc(100vh - 56px); }
  .thread-list     { border-right: none !important; border-bottom: 1px solid var(--border); max-height: 40vh; }

  /* Pagination */
  .pagination { flex-wrap: wrap; gap: var(--s2); }

  /* Tables — scroll horizontally */
  .data-table, table { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; }

  /* Filter row — horizontal scroll */
  .filter-row { flex-wrap: nowrap !important; overflow-x: auto; -webkit-overflow-scrolling: touch; padding-bottom: 4px; }
  .filter-row::-webkit-scrollbar { height: 0; }

  /* Kanban */
  .kanban-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .kanban-inner  { min-width: max-content; }

  /* Admin shell */
  .shell, .admin-shell { grid-template-columns: 1fr !important; }
  .snav, .admin-nav    { display: none; }

  /* Toast — respects home bar */
  .toast { bottom: calc(var(--s5) + var(--safe-bottom)); right: var(--s4); left: var(--s4); }

  /* Buttons — minimum tap target 44px */
  .btn    { min-height: 44px; }
  .btn-sm { min-height: 36px; }

  /* Sidebar */
  .sidebar { position: static !important; top: auto !important; }
}

/* ── 480px — SMALL PHONE ─────────────────────────── */
@media (max-width: 480px) {
  :root { --s6: 24px; }

  .country-grid { grid-template-columns: 1fr !important; }
  .footer-links { grid-template-columns: repeat(3, 1fr) !important; } /* keep 3 cols even on small */

  /* Nav logo — hide name on very small screens if needed */
  .nav-logo-name { font-size: 16px; }

  /* Auth card full-width */
  .auth-card { max-width: 100% !important; border-left: none !important; border-right: none !important; border-radius: 0 !important; }

  /* Job card tighter */
  .job-card { padding: var(--s4); }
  .jc-title { font-size: 15px; }

  /* Big numbers smaller */
  .stat-n { font-size: 22px; }
  .price-amount { font-size: 36px; }

  /* Segment cards stack */
  .big-three-grid { grid-template-columns: 1fr !important; }
}

/* ── UTILITY ──────────────────────────────────────── */
.page-nav { width: auto !important; padding: 0 14px !important; }

/* Sidebar cards */
.sidebar-card { background: var(--white); border: 1px solid var(--border); border-radius: var(--r3); padding: var(--s5); }
.sidebar-card h4 { font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); margin-bottom: var(--s4); padding-bottom: var(--s3); border-bottom: 1px solid var(--rule); }
.sidebar-section { margin-bottom: var(--s5); }
.sidebar-section h4 { font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); margin-bottom: var(--s3); }
.checkbox-group { display: flex; flex-direction: column; gap: 2px; }
.btn-block { width: 100%; }
