:root{--bg:#f6f7f9;--card:#fff;--ink:#111827;--muted:#667085;--line:#e5e7eb;--accent:#d59616;--danger:#b42318;--ok:#15803d;--soft:#f2f4f7;--radius:18px;--shadow:0 10px 30px rgba(17,24,39,.08)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}.wrap{width:min(1120px,calc(100% - 36px));margin:auto}
header{position:sticky;top:0;z-index:30;background:rgba(255,255,255,.95);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}.nav{height:72px;display:flex;align-items:center;justify-content:space-between;gap:12px}.brand{display:flex;align-items:center;gap:10px;font-weight:900}.logo{width:38px;height:38px;display:grid;place-items:center;border-radius:11px;background:#101828;color:#fff}.nav-actions{display:flex;gap:8px;flex-wrap:wrap}.btn{border:0;border-radius:12px;padding:12px 16px;font-weight:850}.btn.dark{background:#101828;color:#fff}.btn.light{background:#fff;border:1px solid var(--line)}.btn.accent{background:var(--accent);color:#1d1603}.btn.danger{background:#fee4e2;color:var(--danger)}.btn.ok{background:#dcfae6;color:#067647}.btn:disabled{opacity:.55;cursor:not-allowed}.hero{padding:64px 0 36px;background:linear-gradient(180deg,#fff,transparent)}.badge{display:inline-flex;padding:8px 11px;border-radius:99px;background:#fff4d5;color:#744d00;font-size:13px;font-weight:900}.hero h1{font-size:clamp(40px,7vw,74px);line-height:.98;letter-spacing:-2.8px;max-width:950px;margin:18px 0}.hero p{font-size:clamp(18px,2.2vw,23px);line-height:1.45;color:var(--muted);max-width:800px}.ctas{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px}.section{padding:40px 0}.section h2{font-size:30px;margin:0 0 8px;letter-spacing:-.8px}.sub{color:var(--muted);margin:0 0 20px}.toolbar{display:flex;gap:10px;margin:16px 0 20px;flex-wrap:wrap}.input,select,textarea{width:100%;border:1px solid var(--line);border-radius:12px;padding:13px 14px;background:#fff;outline:none}.input:focus,select:focus,textarea:focus{border-color:#98a2b3;box-shadow:0 0 0 3px rgba(16,24,40,.05)}.search{flex:1;min-width:220px}.filter{width:230px}.jobs{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.job{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow)}.jobtop{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.job h3{font-size:22px;margin:0}.tag{font-size:12px;font-weight:900;background:#f2f4f7;border-radius:99px;padding:7px 9px;white-space:nowrap}.meta{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0;color:#475467;font-size:14px}.meta span{background:#f9fafb;border:1px solid var(--line);border-radius:9px;padding:7px 9px}.pay{font-size:28px;font-weight:900}.small{font-size:13px;color:var(--muted)}.job p{line-height:1.5;color:#475467}.empty{grid-column:1/-1;text-align:center;padding:34px;border:1px dashed #d0d5dd;border-radius:16px;color:var(--muted);background:#fff}.panel{background:#101828;color:#fff;border-radius:24px;padding:26px}.panel p{color:#d0d5dd}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.step{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px}.step b{display:block;font-size:18px;margin-bottom:6px}.step p{margin:0;color:var(--muted);line-height:1.5}.modal{position:fixed;inset:0;background:rgba(16,24,40,.62);display:none;place-items:center;padding:18px;z-index:80}.modal.show{display:grid}.modalbox{width:min(680px,100%);max-height:90vh;overflow:auto;background:#fff;border-radius:22px;padding:22px}.modalhead{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px}.modalhead h3{font-size:24px;margin:0}.x{border:0;background:#f2f4f7;border-radius:10px;width:40px;height:40px;font-size:20px}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.full{grid-column:1/-1}.label{display:block;font-size:13px;font-weight:800;margin-bottom:6px}.notice{padding:12px;border-radius:12px;margin-top:12px;background:#ecfdf3;color:#067647;display:none}.error{padding:12px;border-radius:12px;margin-top:12px;background:#fef3f2;color:#b42318;display:none}.manage-card{border:1px solid var(--line);border-radius:14px;padding:14px;margin:12px 0}.manage-card h4{margin:0 0 5px}.manage-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.status{display:inline-flex;padding:6px 9px;border-radius:99px;font-weight:850;font-size:12px;background:#f2f4f7}.status.open{background:#ecfdf3;color:#067647}.status.filled{background:#fff4e5;color:#b54708}.status.completed{background:#eff8ff;color:#175cd3}.status.canceled{background:#fef3f2;color:#b42318}.secretbox{border:2px solid #101828;border-radius:16px;padding:16px;background:#f9fafb;margin-top:14px}.secretgrid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.secretvalue{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:15px;font-weight:800;word-break:break-all}.checkbox{display:flex;gap:9px;align-items:flex-start;font-size:13px;color:#475467}.checkbox input{margin-top:3px}.footer{padding:36px 0 48px;color:var(--muted);font-size:14px}.footer .row{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.footer a{text-decoration:underline}.spinner{display:inline-block;width:16px;height:16px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .7s linear infinite;vertical-align:-3px}@keyframes spin{to{transform:rotate(360deg)}}
.admin-shell{padding:34px 0}.admin-login{max-width:460px;margin:50px auto;background:#fff;border:1px solid var(--line);border-radius:20px;padding:24px;box-shadow:var(--shadow)}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:20px 0}.metric{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px}.metric b{display:block;font-size:30px}.metric span{color:var(--muted);font-size:13px}.tablewrap{overflow:auto;background:#fff;border:1px solid var(--line);border-radius:16px}table{width:100%;border-collapse:collapse;min-width:920px}th,td{text-align:left;padding:12px;border-bottom:1px solid var(--line);font-size:14px}th{background:#f9fafb}.admin-actions{display:flex;gap:6px;flex-wrap:wrap}.mini{padding:7px 9px;font-size:12px}
@media(max-width:760px){.nav{height:auto;padding:10px 0}.nav-actions .light{display:none}.hero{padding-top:44px}.hero h1{letter-spacing:-1.9px}.jobs,.steps,.formgrid,.metrics,.secretgrid{grid-template-columns:1fr}.filter{width:100%}.section{padding:32px 0}.modalbox{padding:18px}.wrap{width:min(100% - 26px,1120px)}}

/* V3.2 — perfis de trabalhadores */
.tabbar{display:flex;gap:8px;background:#f2f4f7;padding:5px;border-radius:14px;margin-bottom:16px}.tab{flex:1;border:0;background:transparent;border-radius:10px;padding:10px 12px;font-weight:850;color:#475467}.tab.active{background:#fff;color:#101828;box-shadow:0 1px 4px rgba(16,24,40,.08)}
.photo-picker,.profile-head,.candidate-main,.candidate-confirm{display:flex;gap:14px;align-items:center}.avatar{object-fit:cover;border-radius:50%;background:#eaecf0;border:1px solid #d0d5dd;flex:0 0 auto}.avatar.xl{width:92px;height:92px}.avatar.lg{width:68px;height:68px}.avatar.sm{width:46px;height:46px}.avatar.placeholder{display:grid;place-items:center;font-weight:900;color:#475467;background:#f2f4f7}.photo-picker>div{flex:1}.profile-head{padding:8px 0 16px;border-bottom:1px solid var(--line)}.profile-grid,.candidate-details{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}.profile-grid>div,.candidate-details>div{border:1px solid var(--line);border-radius:12px;padding:11px;background:#f9fafb}.profile-grid span,.candidate-details span{display:block}.profile-grid b,.candidate-details b{display:block;margin-top:3px;font-size:14px}.info-box{padding:12px 14px;border-radius:12px;background:#f9fafb;border:1px solid var(--line);color:#475467;font-size:14px;line-height:1.45}.candidate-confirm{border:1px solid var(--line);border-radius:16px;padding:14px;margin-bottom:12px}.candidate-copy{min-width:0;flex:1}.candidate-card{background:#fff}.worker-admin-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.worker-admin-card{display:flex;align-items:center;gap:10px;text-align:left;border:1px solid var(--line);border-radius:14px;background:#fff;padding:12px;color:inherit}.worker-admin-card:hover{border-color:#98a2b3}.worker-modal .notice{display:block}.photo-field .input[type=file]{padding:9px}
@media(max-width:760px){.profile-grid,.candidate-details,.worker-admin-grid{grid-template-columns:1fr}.photo-picker{align-items:flex-start}.candidate-main{align-items:flex-start}.nav-actions{gap:6px}.nav-actions .btn{padding:10px 11px;font-size:13px}.nav-actions #openManage{display:none}.avatar.xl{width:82px;height:82px}.candidate-confirm{align-items:flex-start}.worker-admin-card{width:100%}}

/* V3.3 — validação e aprovação de foto */
.status.pending,.status.verify-pending{background:#fff4e5;color:#b54708}.status.verify-approved{background:#ecfdf3;color:#067647}.status.verify-rejected{background:#fef3f2;color:#b42318}
.photo-check{margin-top:7px;font-size:12px;line-height:1.4}.photo-check.checking{color:#475467}.photo-check.ok{color:#067647;font-weight:750}.photo-check.warn{color:#b54708}.photo-check.bad{color:#b42318;font-weight:750}
.worker-admin-card .status{margin-top:6px}.legal{max-width:850px}.legal h2{margin-top:26px}.legal p{line-height:1.7;color:#475467}

/* V3.4 — reputação, conta, moderação e painel móvel */
.reputation{display:inline-flex;align-items:center;gap:5px;margin-top:9px;padding:6px 9px;border-radius:999px;background:#fff8e7;color:#8a5a00;font-size:12px;font-weight:850}.job-actions{display:flex;gap:8px;flex-wrap:wrap}.account-history{margin-top:20px;padding-top:16px;border-top:1px solid var(--line)}.account-history h3{margin:0 0 10px}.history-card{display:grid;grid-template-columns:1fr auto;gap:8px 12px;align-items:center;border:1px solid var(--line);border-radius:14px;padding:12px;margin:8px 0;background:#fff}.history-card .review-done,.review-done{grid-column:1/-1;padding:8px 10px;border-radius:10px;background:#fff8e7;color:#7a4d00;font-size:13px}.danger-zone{margin-top:20px;padding:14px;border:1px solid #fecdca;background:#fffafa;border-radius:14px}.empty.compact{padding:18px}.admin-job-cards{display:none}.admin-mobile-card,.report-card{background:#fff;border:1px solid var(--line);border-radius:15px;padding:14px;margin:10px 0}.admin-mobile-stats{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}.admin-mobile-stats span{font-size:12px;background:#f9fafb;border:1px solid var(--line);border-radius:9px;padding:6px 8px}.report-list{display:grid;gap:10px}.report-card p{color:#475467;line-height:1.5}.status.pending{background:#fff4e5;color:#b54708}
@media(max-width:760px){.tablewrap{display:none}.admin-job-cards{display:block}.metrics{grid-template-columns:repeat(2,1fr)}.metric{padding:14px}.metric b{font-size:26px}.history-card{grid-template-columns:1fr}.history-card>div:nth-child(2){display:flex;gap:5px;flex-wrap:wrap}.job-actions .btn{flex:1}}

/* V4.0 — contas, sessões e painel unificado */
.account-modal{width:min(820px,100%)}.account-tabs{display:grid;grid-template-columns:repeat(4,1fr)}.account-head,.section-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}.account-head{padding:4px 0 18px;border-bottom:1px solid var(--line)}.account-section{margin-top:20px;padding-top:18px;border-top:1px solid var(--line)}.account-section h3{margin:0}.legacy-claim{margin-top:12px;border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:#f9fafb}.legacy-claim summary,details summary{cursor:pointer;font-weight:800}.fullrow{grid-column:1/-1}.history-card .fullrow{display:flex;gap:8px;flex-wrap:wrap}.account-section .empty{margin-top:10px}.account-section .notice{display:block}.account-head .status{margin-top:7px}.legacy-nav{white-space:nowrap}
@media(max-width:760px){.account-tabs{grid-template-columns:repeat(2,1fr)}.account-head .status{display:inline-flex;margin-top:6px}.legacy-nav{display:none}.account-modal{max-height:94vh}.section-head .btn{width:100%}.history-card .fullrow .btn{width:100%}}

/* V4.2 — identidade visual Freelancer Ilhabela (2026-09-22)
   Camada exclusivamente visual: preserva IDs, formulários e lógica existentes. */
:root{
  --bg:#f7fbfb;
  --card:#ffffff;
  --ink:#123b67;
  --muted:#44566a;
  --line:#dce9eb;
  --accent:#f39a35;
  --brand:#123b67;
  --teal:#16a6a1;
  --mint:#eaf7f5;
  --danger:#b42318;
  --ok:#15803d;
  --soft:#f2f8f8;
  --radius:18px;
  --shadow:0 12px 36px rgba(18,59,103,.09);
}
body{background:linear-gradient(180deg,#fff 0,#f7fbfb 42%,#fff 100%);color:var(--ink)}
header{background:rgba(255,255,255,.96);border-bottom:1px solid rgba(18,59,103,.10);box-shadow:0 6px 24px rgba(18,59,103,.04)}
.nav{height:84px}.brand{gap:11px;min-width:0}.brand-mark{width:48px;height:58px;object-fit:contain;flex:0 0 auto}.brand-copy{display:flex;flex-direction:column;line-height:1}.brand-copy strong{font-size:21px;letter-spacing:-.5px;color:#123b67}.brand-copy strong em{display:inline;color:#16a6a1;font-style:normal}.brand-copy small{text-transform:uppercase;letter-spacing:1.15px;font-size:8px;color:#44566a;margin-top:6px;font-weight:800}.nav-actions{align-items:center}
.btn{transition:transform .18s ease,box-shadow .18s ease,background .18s ease,border-color .18s ease}.btn:hover{transform:translateY(-1px)}.btn.dark{background:#123b67;color:#fff;box-shadow:0 8px 18px rgba(18,59,103,.14)}.btn.dark:hover{background:#0e3157}.btn.light{background:#fff;border:1px solid #cbdde1;color:#123b67}.btn.light:hover{border-color:#16a6a1;box-shadow:0 6px 16px rgba(22,166,161,.10)}.btn.accent{background:#16a6a1;color:#fff;box-shadow:0 8px 18px rgba(22,166,161,.18)}.btn.accent:hover{background:#128e8a}.btn.ok{background:#dcfae6;color:#067647}
.hero{padding:54px 0 42px;background:linear-gradient(135deg,#ffffff 0%,#f6fbfb 56%,#eaf7f5 100%);border-bottom:1px solid rgba(18,59,103,.07);overflow:hidden}.hero-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(390px,.95fr);gap:40px;align-items:center}.hero-copy{position:relative;z-index:2}.badge{background:#eaf7f5;color:#0d7774;border:1px solid rgba(22,166,161,.18);letter-spacing:.25px}.hero h1{font-size:clamp(42px,5.5vw,68px);line-height:1.01;letter-spacing:-2.5px;max-width:760px;color:#123b67;margin:18px 0 16px}.hero h1::after{content:"";display:block;width:92px;height:6px;margin-top:20px;border-radius:999px;background:linear-gradient(90deg,#16a6a1,#f39a35)}.hero p{font-size:clamp(17px,1.8vw,21px);max-width:680px;color:#44566a}.hero .ctas{margin-top:26px}.hero .btn{padding:14px 18px}.hero-note{display:flex;align-items:center;gap:10px;margin-top:22px;color:#44566a;font-size:14px}.hero-note-icon{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#eaf7f5;color:#0c8783;font-weight:900}.hero-visual{position:relative}.hero-visual::before{content:"";position:absolute;inset:7% -12% -8% 10%;background:#16a6a1;opacity:.07;filter:blur(2px);border-radius:42px;transform:rotate(3deg)}.hero-visual img{position:relative;display:block;width:100%;border-radius:28px;box-shadow:0 24px 55px rgba(18,59,103,.15);border:1px solid rgba(18,59,103,.09)}
.section{padding:46px 0}.section h2{color:#123b67;font-size:32px}.sub{color:#5a6b7d}.toolbar{padding:12px;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 6px 18px rgba(18,59,103,.04)}.input,select,textarea{border-color:#d5e4e7;background:#fff;color:#21384e}.input:focus,select:focus,textarea:focus{border-color:#16a6a1;box-shadow:0 0 0 3px rgba(22,166,161,.12)}
.jobs{gap:16px}.job{border-color:#dce9eb;box-shadow:0 10px 28px rgba(18,59,103,.07);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.job:hover{transform:translateY(-2px);border-color:#b9dadd;box-shadow:0 16px 34px rgba(18,59,103,.11)}.job h3{color:#123b67}.tag{background:#eaf7f5;color:#0c7f7b}.meta span{background:#f8fbfb;border-color:#e1ecee}.pay{color:#123b67}.job p{color:#526578}.empty{background:#fbfefe;border-color:#c8dcdf}
.steps{gap:16px}.step{position:relative;padding:22px 20px 20px;border-color:#dce9eb;box-shadow:0 8px 24px rgba(18,59,103,.05);overflow:hidden}.step::before{content:"";position:absolute;left:0;top:0;width:5px;height:100%;background:#16a6a1}.step:nth-child(2)::before{background:#f39a35}.step:nth-child(3)::before{background:#123b67}.step b{color:#123b67}.step p{color:#526578}.panel{background:linear-gradient(135deg,#123b67,#0e5270);box-shadow:0 18px 40px rgba(18,59,103,.16)}.panel p{color:#e5f2f2}.panel h2{color:#fff}
.modal{background:rgba(10,37,63,.64);backdrop-filter:blur(4px)}.modalbox{border:1px solid rgba(18,59,103,.08);box-shadow:0 24px 70px rgba(18,59,103,.22)}.tabbar{background:#edf6f6}.tab.active{color:#123b67}.info-box{background:#f6fbfb;border-color:#dce9eb;color:#44566a}.secretbox{border-color:#123b67;background:#f6fbfb}.status.open,.status.verify-approved{background:#e5f7f2;color:#0b7b64}.status.pending,.status.verify-pending{background:#fff4e5;color:#9a5b00}.reputation,.review-done{background:#fff4e5;color:#8a5a00}
.footer{margin-top:8px;padding:30px 0 44px;border-top:1px solid #e1ecee;background:#fbfefe}.footer b{color:#123b67}.footer a{color:#0d7f7b}
@media(max-width:920px){.hero-grid{grid-template-columns:1fr}.hero-visual{max-width:720px}.hero h1{max-width:820px}.nav{height:76px}.brand-copy small{display:none}}
@media(max-width:760px){.nav{height:auto;padding:9px 0}.brand-mark{width:39px;height:47px}.brand-copy strong{font-size:17px}.hero{padding-top:34px}.hero-grid{gap:28px}.hero h1{font-size:clamp(38px,12vw,56px);letter-spacing:-1.9px}.hero h1::after{height:5px;margin-top:16px}.hero-visual img{border-radius:22px}.section{padding:34px 0}.toolbar{padding:9px}.job{padding:17px}.panel{border-radius:20px}.nav-actions .btn{padding:10px 11px;font-size:12px}.nav-actions #openAccount{display:inline-flex}.brand-copy{max-width:120px}}
@media(max-width:430px){.brand-copy strong{font-size:15px}.brand-mark{width:34px;height:42px}.nav-actions{gap:5px}.nav-actions .btn{padding:9px 9px}.hero .ctas .btn{width:100%}.hero-visual{display:none}.hero{padding-bottom:32px}.hero h1{font-size:38px}.hero-note{font-size:13px}}
/* V4.5 — filtros rápidos e sinais de oportunidade */
.quick-filters{display:flex;gap:8px;overflow:auto;padding:0 0 8px;margin:-8px 0 12px}.chip{white-space:nowrap;border:1px solid var(--line);background:#fff;border-radius:999px;padding:9px 12px;font-weight:800;color:#475467}.chip.active{background:#123b67;color:#fff;border-color:#123b67}.badges{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0 0}

/* V4.7 — SEO local e páginas individuais de vagas */
.local-seo{padding-top:24px}.local-seo-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(260px,.7fr);gap:22px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:24px;padding:24px;box-shadow:0 10px 30px rgba(18,59,103,.06)}.local-seo p{color:#526578;line-height:1.65;margin-bottom:0}.local-seo-links{display:grid;gap:9px}.local-seo-links a,.local-seo-links button{border:1px solid #cbdde1;background:#f8fbfb;color:#123b67;border-radius:12px;padding:12px 14px;text-align:left;font-weight:850;cursor:pointer}.local-seo-links a:hover,.local-seo-links button:hover{border-color:#16a6a1;background:#eaf7f5}.job-link{display:inline-flex;align-items:center;justify-content:center}.job.targeted{outline:3px solid rgba(22,166,161,.35);outline-offset:3px}.job-page{padding:42px 0 64px}.job-page-brand{display:inline-flex;margin:0 0 24px}.job-detail{max-width:850px;margin:0 auto;background:#fff;border:1px solid var(--line);border-radius:24px;padding:28px;box-shadow:var(--shadow)}.job-detail h1{font-size:clamp(34px,5vw,56px);line-height:1.04;letter-spacing:-1.8px;margin:14px 0;color:#123b67}.job-detail h2{font-size:24px;margin:28px 0 8px;color:#123b67}.job-detail p{color:#526578;line-height:1.65}.job-detail-location{font-size:18px}.job-detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:20px 0}.job-detail-grid>div{background:#f8fbfb;border:1px solid var(--line);border-radius:14px;padding:14px}.job-detail-grid span{display:block;color:var(--muted);font-size:12px;margin-bottom:4px}.job-detail-grid b{color:#123b67}.job-detail-cta{display:flex;gap:10px;flex-wrap:wrap;margin-top:28px}.job-detail-note{margin-top:14px!important}.job-detail .reputation{margin-bottom:4px}
@media(max-width:760px){.local-seo-grid,.job-detail-grid{grid-template-columns:1fr}.local-seo-grid{padding:18px}.job-detail{padding:20px;border-radius:18px}.job-detail-cta .btn{width:100%}}
