:root{
  --farm-green:#237447;--farm-green-dark:#185636;--farm-soft:#eef7f1;--farm-line:#d9e6dd;
  --farm-ink:#172033;--farm-muted:#667085;--farm-bg:#f5f8f6;--farm-red:#b42318;--farm-ok:#12834c;
  --safe-bottom:env(safe-area-inset-bottom,0px);
}
*{box-sizing:border-box}
html,body{min-height:100%;}
body{margin:0;font-family:Arial,"Segoe UI",sans-serif;color:var(--farm-ink);background:radial-gradient(circle at top left, rgba(35,116,71,.18), transparent 32%),linear-gradient(180deg,#ffffff 0%,var(--farm-bg) 55%,#edf5ef 100%)}
.page{min-height:100vh;min-height:100svh;display:flex;align-items:center;justify-content:center;padding:22px 12px calc(22px + var(--safe-bottom))}
.login-wrap{width:100%;max-width:430px}.brand{text-align:center;margin-bottom:14px}.brand h1{margin:0;font-size:28px;font-weight:800;letter-spacing:-.03em}
.card{background:#fff;border:1px solid var(--farm-line);border-radius:22px;box-shadow:0 16px 42px rgba(23,32,51,.10);overflow:hidden}.card-head{height:7px;background:linear-gradient(90deg,var(--farm-green),#6dbb83)}
.formbox{padding:22px 20px 18px}.form-title{margin:0 0 8px;font-size:22px;font-weight:800;letter-spacing:-.02em}.form-lead{margin:0 0 16px;color:var(--farm-muted);font-size:14px;line-height:1.4}.field{margin-bottom:15px}.label-row{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}
label{font-weight:700;color:#344054;font-size:14px}.help-btn{width:24px;height:24px;border-radius:50%;border:1px solid #bdd7c8;background:var(--farm-soft);color:var(--farm-green-dark);font-size:14px;font-weight:800;line-height:21px;text-align:center;cursor:pointer;padding:0}.help-bubble{display:none;background:#f7fbf8;border:1px solid var(--farm-line);border-radius:12px;padding:9px 10px;margin:0 0 8px;color:#475467;font-size:13px;line-height:1.35}.help-bubble.show{display:block}
.input{width:100%;height:48px;border:1px solid #cfdcd4;border-radius:13px;padding:10px 12px;font-size:16px;background:#fff;outline:none}.input:focus{border-color:var(--farm-green);box-shadow:0 0 0 3px rgba(35,116,71,.14)}.password-wrap{position:relative}.password-wrap .input{padding-right:78px}.show-pass{position:absolute;right:7px;top:7px;height:34px;border:0;border-radius:10px;background:#edf5ef;color:var(--farm-green-dark);font-weight:700;padding:0 10px;cursor:pointer}.row-between{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:6px 0 17px;flex-wrap:wrap}.remember{display:flex;align-items:center;gap:8px;color:#475467;font-size:13px;user-select:none}.remember input{width:18px;height:18px;accent-color:var(--farm-green)}.forgot,.backline a{color:var(--farm-green-dark);text-decoration:none;font-size:13px;font-weight:700}.login-btn{width:100%;height:50px;border:0;border-radius:14px;background:var(--farm-green);color:#fff;font-weight:800;font-size:17px;cursor:pointer;box-shadow:0 10px 22px rgba(35,116,71,.20)}.login-btn:active{transform:translateY(1px)}.notice{display:none;margin-top:12px;border-radius:12px;padding:10px;font-size:13px;background:#fff5f4;color:var(--farm-red);border:1px solid #ffd0ca}.notice.show{display:block}.notice.ok{background:#eefaf2;color:var(--farm-ok);border-color:#bfe8cd}.foot{text-align:center;color:var(--farm-muted);font-size:12px;margin-top:13px}.foot span{white-space:nowrap}.backline{text-align:center;margin-top:14px}
.portal-body{background:#f5f8f6}.portal-shell{width:min(1040px,100%);margin:0 auto;padding:22px 14px}.portal-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px}.portal-head h1{margin:0;font-size:30px;font-weight:850;letter-spacing:-.03em}.portal-head p{margin:4px 0 0;color:var(--farm-muted);font-weight:700}.logout{display:inline-flex;align-items:center;justify-content:center;min-height:40px;border-radius:13px;background:#fff;color:var(--farm-green-dark);border:1px solid var(--farm-line);padding:8px 12px;text-decoration:none;font-weight:800}.module-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.module-card{display:flex;flex-direction:column;gap:6px;min-height:118px;background:#fff;border:1px solid var(--farm-line);border-radius:20px;box-shadow:0 12px 28px rgba(23,32,51,.08);padding:16px;text-decoration:none;color:var(--farm-ink)}.module-card strong{font-size:18px}.module-card span{color:var(--farm-muted);font-size:14px;line-height:1.35}.module-card.disabled{opacity:.7}.portal-alert{border:1px solid #ffd0ca;background:#fff5f4;color:var(--farm-red);border-radius:14px;padding:11px 12px;margin-bottom:14px;font-weight:700}
@media (min-width:900px){.login-wrap{max-width:450px}.formbox{padding:24px 24px 20px}.brand h1{font-size:31px}}
@media (max-width:760px){.module-grid{grid-template-columns:1fr}.portal-head h1{font-size:26px}.portal-head{align-items:flex-start}.module-card{min-height:auto}.page{align-items:flex-start;padding-top:18px}}
@media (max-width:420px){.brand{margin-bottom:10px}.brand h1{font-size:25px}.formbox{padding:18px 14px 15px}.card{border-radius:20px}.row-between{align-items:flex-start}}
.company-card-form{margin:0}.company-card-button{width:100%;text-align:left;border:1px solid var(--farm-line);cursor:pointer;font:inherit}.company-card-button:hover{border-color:var(--farm-green);box-shadow:0 14px 34px rgba(35,116,71,.14)}
