
:root{--app-content-max:1200px;--app-page-padding:clamp(16px,3vw,32px);--app-header-height:64px;--app-radius:14px;--app-accent:#00a896;--app-bg:#f4f7fb}
html,body{min-height:100%;box-sizing:border-box}*,*:before,*:after{box-sizing:inherit}body{margin:0;background:var(--app-bg);font-family:Arial,"Microsoft YaHei",sans-serif}body>.container,body>.page,body>main,.app-content{width:min(var(--app-content-max),calc(100% - 2 * var(--app-page-padding)));max-width:var(--app-content-max);margin-left:auto;margin-right:auto}.container{max-width:var(--app-content-max)!important;width:calc(100% - 40px);margin-left:auto;margin-right:auto}.header,.app-header,header{min-height:var(--app-header-height);box-sizing:border-box}.page-title{font-size:clamp(24px,3vw,32px);line-height:1.25;margin:0 0 20px}.card,.panel,.forum-card{border-radius:var(--app-radius)}button,.btn{min-height:40px}@media(max-width:700px){.container,body>.container,body>.page,body>main{width:calc(100% - 24px)}.nav-links{gap:4px!important}.nav-links a,.nav-btn{padding:7px 10px!important}.header-content,.header-inner{flex-wrap:wrap;min-height:var(--app-header-height);height:auto!important;padding-top:10px;padding-bottom:10px}.page{padding:20px 12px!important}}
/* Accessible light surface tokens: headings/body text stay dark; teal is reserved for controls. */
:root{--app-text:#0f172a;--app-muted:#475569;--app-surface:#ffffff;--app-control-bg:#0f766e;--app-control-text:#ffffff}
body{color:var(--app-text)}
.light-surface,.light-surface h1,.light-surface h2,.light-surface h3,.light-surface p,.light-surface label{color:var(--app-text)}
.light-surface .muted,.light-surface .forum-meta{color:var(--app-muted)}
.light-surface button,.light-surface .btn,.light-surface .forum-btn{background:var(--app-control-bg);color:var(--app-control-text)}

/* Global contrast contract for legacy Thymeleaf pages. Keep controls white-on-teal, everything else readable. */
body{background:#f5f7fb !important;color:#0f172a !important}
body *{color:#0f172a !important}
body a{color:#0f766e !important}
body button,body .btn,body input[type=submit],body input[type=button],body .login-btn,body .register-btn,body .submit-btn,body .apply-btn,body .send-btn,body .forum-btn,body .nav-links a.active,body .nav-btn.active,body .badge{color:#ffffff !important}
body .header,body .app-header,body header{background:#ffffff !important;border:1px solid #e2e8f0 !important;box-shadow:0 8px 24px rgba(15,23,42,.06) !important;backdrop-filter:none !important;color:#0f172a !important}
body .logo{color:#0f766e !important;background:none !important;-webkit-text-fill-color:#0f766e !important}
body .nav-links{display:flex !important;align-items:center !important;gap:8px !important;flex-wrap:wrap !important}
body .nav-links a,body .nav-btn{display:inline-flex !important;align-items:center !important;justify-content:center !important;min-width:72px !important;height:40px !important;padding:8px 14px !important;border-radius:10px !important;color:#334155 !important;background:transparent !important;white-space:nowrap !important}
body .nav-links a:hover,body .nav-btn:hover{background:#f0fdfa !important;color:#0f766e !important}
body .nav-links a.active,body .nav-btn.active{background:#0f766e !important;color:#ffffff !important}
body .job-card,body .job-detail,body .company-card,body .application-card,body .stat-card,body .content-card,body .resume-card,body .notification-card,body .card,body .panel{background:#ffffff !important;border-color:#e2e8f0 !important;color:#0f172a !important;box-shadow:0 8px 24px rgba(15,23,42,.06) !important}
body h1,body .page-title,body .job-title,body .job-title-section h1{font-size:clamp(26px,3vw,34px) !important;line-height:1.25 !important;color:#0f172a !important}
body h2,body .section-title,body .company-name,body .app-job{font-size:22px !important;line-height:1.4 !important;color:#0f172a !important}
body h3,body .action-title{font-size:18px !important;line-height:1.5 !important;color:#0f172a !important}
body p,body li,body label,body span,body .job-meta,body .company-info,body .stat-label,body .empty-state p{color:#334155 !important}
body input,body select,body textarea{background:#ffffff !important;color:#0f172a !important;border-color:#cbd5e1 !important}
body input::placeholder,body textarea::placeholder{color:#64748b !important}
body .logout-btn{background:#ffffff !important;color:#334155 !important;border:1px solid #cbd5e1 !important}
body .logout-btn:hover{background:#f8fafc !important;color:#0f766e !important}
body .forum-nav-link{background:#ecfeff !important;color:#0f766e !important;border:1px solid #99f6e4 !important;font-weight:600 !important}

/* Login and registration are light, scrollable surfaces with an obvious switch action. */
body.auth-page{overflow-y:auto !important;flex-direction:column !important;align-items:stretch !important;padding:24px 16px !important;background:#f5f7fb !important}
body.auth-page .card-container{width:min(100%,420px);margin:0 auto 24px}
body.auth-page .login-card,body.auth-page .register-card{background:#ffffff !important;border:1px solid #cbd5e1 !important;box-shadow:0 16px 42px rgba(15,23,42,.14) !important;color:#0f172a !important}
body.auth-page .logo p,body.auth-page .form-label,body.auth-page .captcha-status,body.auth-page .role-label,body.auth-page .role-description{color:#334155 !important}
body.auth-page .auth-switch-link{display:inline-flex !important;align-items:center;justify-content:center;min-height:44px;padding:10px 20px;border-radius:10px;background:#0f766e !important;color:#ffffff !important;font-size:15px !important;font-weight:600;text-decoration:none !important}
body.auth-page .auth-switch-link:hover{background:#115e59 !important;color:#ffffff !important;box-shadow:0 8px 18px rgba(15,118,110,.22)}
body.auth-page .footer{position:relative;width:100%;margin-top:0;background:transparent !important;border-top:0 !important}
@media(max-width:520px){body.auth-page{padding:12px !important}body.auth-page .login-card,body.auth-page .register-card{width:100% !important;padding:32px 20px !important;border-radius:18px !important}}
