/* Public pages only. Keep the signed-in app's stylesheet and tokens intact. */
body.public-theme {
  --bg: #f4f8f5;
  --surface: #fff;
  --ink: #1d1d1f;
  --ink2: #6e6e73;
  --ink3: #76767b;
  --ink4: #d2d2d7;
  --border: rgba(0, 0, 0, .12);
  --border2: rgba(0, 0, 0, .07);
  --blue: #2a6049;
  --bbg: #e8f3ec;
  --btext: #2a6049;
  --green: #2a6049;
  --gbg: #e8f3ec;
  --gtext: #2a6049;
  --abg: #fff4d9;
  --atext: #855c00;
  --rbg: #fff0ef;
  --rtext: #b42318;
  --r: 24px;
  --rs: 12px;
  --public-font: -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Segoe UI", Arial, "PingFang SC", "Microsoft YaHei", sans-serif;
  color: var(--ink);
  font-family: var(--public-font);
  -webkit-font-smoothing: antialiased;
}

body.public-theme :is(button, input, select, textarea, .lang-switch, .btn-primary) {
  font-family: var(--public-font);
}

body.public-theme :is(a, button):focus-visible {
  outline: 3px solid #2a6049;
  outline-offset: 4px;
}

body.public-landing {
  background: #fff;
}

body.public-landing .wrap {
  max-width: 1040px;
  padding: 48px 32px 100px;
}

body.public-landing .hero-row {
  margin-bottom: 64px;
}

body.public-theme :is(.hero-brand, .auth-brand, .hero-headline, .brief-greeting, .step-num, .foot-headline) {
  font-family: var(--public-font);
  font-style: normal;
}

body.public-landing .hero-brand {
  font-size: 28px;
  font-weight: 600;
  letter-spacing: -.035em;
}

body.public-landing .lang-toggle {
  background: var(--bg);
}

body.public-landing .lang-btn {
  font-size: 12px;
}

body.public-landing .hero-headline {
  max-width: 940px;
  margin: 0 auto 24px;
  font-size: clamp(32px, 3.4vw, 44px);
  font-weight: 600;
  letter-spacing: -.035em;
  line-height: 1.14;
  text-align: center;
}

body.public-landing .hero-tagline {
  max-width: 760px;
  margin: 0 auto 30px;
  font-size: 21px;
  line-height: 1.5;
  letter-spacing: -.015em;
  text-align: center;
}

body.public-landing :is(.hero-cta-row, .foot-cta-row) {
  justify-content: center;
  gap: 24px;
}

body.public-landing .btn-primary {
  padding: 13px 24px;
  background: var(--blue);
  font-size: 17px;
  font-weight: 400;
  line-height: 1.3;
}

body.public-landing .btn-primary:hover {
  background: #204c39;
  opacity: 1;
}

body.public-landing .btn-secondary {
  color: var(--btext);
  border: 0;
  font-size: 17px;
}

body.public-landing .btn-secondary:hover {
  text-decoration: underline;
}

body.public-landing .hero-note {
  margin-top: 16px;
  font-size: 12px;
  text-align: center;
}

body.public-landing .sec-label {
  margin-top: 80px;
}

body.public-landing .sec-text {
  color: var(--ink2);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .06em;
}

body.public-landing .step {
  background: var(--bg);
  border: 0;
  padding: 28px;
}

body.public-landing .step-num {
  color: var(--blue);
  font-size: 28px;
  font-weight: 600;
  letter-spacing: -.03em;
}

body.public-landing .step-title {
  font-size: 18px;
  font-weight: 600;
  line-height: 1.35;
}

body.public-landing .step-desc {
  font-size: 14px;
  line-height: 1.55;
}

body.public-landing :is(.brief-frame, .detail-frame) {
  border-color: var(--border2);
  box-shadow: 0 8px 32px rgba(0, 0, 0, .04);
}

body.public-landing .brief-status {
  background: var(--gbg);
}

body.public-landing .brief-greeting {
  font-weight: 600;
  letter-spacing: -.025em;
}

body.public-landing .job-mini.first {
  border-color: rgba(42, 96, 73, .24);
}

body.public-landing .jd-quote {
  background: var(--gbg);
}

body.public-landing .jd-footer-hint {
  background: var(--bg);
}

body.public-landing .foot {
  margin-top: 80px;
  padding-top: 64px;
  text-align: center;
}

body.public-landing .foot-headline {
  font-size: clamp(28px, 3vw, 40px);
  font-weight: 600;
  letter-spacing: -.03em;
  line-height: 1.2;
}

body.public-auth {
  background: var(--bg);
  padding: 48px 20px;
}

body.public-auth .auth-card {
  max-width: 440px;
  padding: 56px 40px 40px;
  border: 0;
  box-shadow: 0 12px 40px rgba(0, 0, 0, .05);
}

body.public-auth .auth-brand {
  margin-bottom: 12px;
  font-size: 30px;
  font-weight: 600;
  letter-spacing: -.035em;
}

body.public-auth .auth-sub {
  font-size: 16px;
  line-height: 1.5;
  margin-bottom: 28px;
}

body.public-auth .form-label {
  color: var(--ink);
  font-size: 13px;
}

body.public-auth .form-input {
  min-height: 50px;
  padding: 14px 16px;
  border: 1px solid #86868b;
  background: #fff;
  font-size: 16px;
}

body.public-auth .form-input::placeholder {
  color: var(--ink3);
}

body.public-auth .form-input:focus {
  border-color: var(--blue);
  box-shadow: 0 0 0 3px rgba(42, 96, 73, .16);
}

body.public-auth .auth-form .form-group {
  margin-bottom: 16px;
}

body.public-auth :is(.auth-btn, .auth-google) {
  min-height: 48px;
  padding: 12px 20px;
  border-radius: 980px;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.4;
}

body.public-auth .auth-btn {
  background: var(--blue);
}

body.public-auth .auth-btn:hover:not(:disabled) {
  background: #204c39;
  opacity: 1;
}

body.public-auth .auth-google {
  border-color: #86868b;
}

body.public-auth .auth-google:hover {
  background: var(--bg);
  border-color: var(--ink2);
}

body.public-auth :is(.auth-link, .auth-footer a) {
  color: var(--btext);
  font-size: 13px;
  text-decoration: none;
}

body.public-auth :is(.auth-link, .auth-footer a):hover {
  text-decoration: underline;
}

body.public-auth :is(.auth-footer, .auth-divider, .auth-error, .auth-notice) {
  font-size: 13px;
  line-height: 1.5;
}

body.public-auth .auth-footer {
  margin-top: 24px;
}

body.public-auth .lang-switch {
  top: 20px;
  right: 24px;
}

@media (max-width: 640px) {
  body.public-landing .wrap { padding: 28px 20px 64px; }
  body.public-landing .hero-row { margin-bottom: 48px; }
  body.public-landing .hero-brand { font-size: 24px; }
  body.public-landing .hero-headline { font-size: 32px; }
  body.public-landing .hero-tagline { font-size: 18px; }
  body.public-landing :is(.hero-cta-row, .foot-cta-row) { gap: 18px; }
  body.public-landing .sec-label { margin-top: 56px; }
  body.public-landing .step { padding: 24px; }
  body.public-landing .foot { margin-top: 56px; padding-top: 40px; }
  body.public-auth .auth-card { padding: 56px 24px 32px; }
  body.public-auth .auth-brand { font-size: 26px; }
}
