.swfrpc-ep-wrap {
  --portal-shadow: 0 16px 40px rgba(15, 23, 42, 0.10);
  --portal-border: 1px solid rgba(15, 23, 42, 0.10);
  font-family: inherit;
  max-width: 1180px;
  margin: 0 auto;
}
.swfrpc-ep-hero {
  background: linear-gradient(135deg, var(--swfrpc-ep-primary), var(--swfrpc-ep-accent));
  color: #fff;
  border-radius: 22px;
  padding: 34px;
  margin: 20px 0 24px;
  box-shadow: var(--portal-shadow);
}
.swfrpc-ep-hero h2 { color:#fff; margin:0 0 8px; font-size:clamp(28px,4vw,44px); line-height:1.1; }
.swfrpc-ep-hero p { margin:0; font-size:17px; opacity:.94; }
.swfrpc-ep-welcome { background:#f8fafc; border:var(--portal-border); border-radius:14px; padding:14px 18px; margin-bottom:18px; font-weight:700; color:#0f172a; }
.swfrpc-ep-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; }
.swfrpc-ep-card { background:#fff; border:var(--portal-border); border-radius:18px; padding:24px; box-shadow:var(--portal-shadow); margin-bottom:24px; }
.swfrpc-ep-card h3 { margin:0 0 8px; color:var(--swfrpc-ep-primary); font-size:24px; }
.swfrpc-ep-card p { color:#475569; }
.swfrpc-ep-form { margin-top:18px; }
.swfrpc-ep-field { margin-bottom:16px; }
.swfrpc-ep-field label { display:block; margin-bottom:7px; font-weight:700; color:#1f2937; }
.swfrpc-ep-field label span { color:#b91c1c; }
.swfrpc-ep-field input,
.swfrpc-ep-field select,
.swfrpc-ep-field textarea { width:100%; border:1px solid #cbd5e1; border-radius:10px; padding:11px 12px; font-size:15px; background:#fff; box-sizing:border-box; }
.swfrpc-ep-field textarea { min-height:105px; resize:vertical; }
.swfrpc-ep-button,
.swfrpc-ep-wrap input[type="submit"] { display:inline-flex; align-items:center; justify-content:center; border:0; border-radius:999px; background:var(--swfrpc-ep-primary); color:#fff; padding:12px 22px; font-weight:800; cursor:pointer; text-decoration:none; transition:transform .15s ease,opacity .15s ease; }
.swfrpc-ep-button:hover,
.swfrpc-ep-wrap input[type="submit"]:hover { transform:translateY(-1px); opacity:.92; }
.swfrpc-ep-success,
.swfrpc-ep-notice { border-radius:12px; padding:12px 14px; margin-bottom:16px; background:#ecfdf5; border:1px solid #bbf7d0; color:#166534; font-weight:700; }
.swfrpc-ep-notice { background:#eff6ff; border-color:#bfdbfe; color:#1e40af; }
.swfrpc-ep-history table { width:100%; border-collapse:collapse; }
.swfrpc-ep-history th,
.swfrpc-ep-history td { border-bottom:1px solid #e2e8f0; padding:12px 10px; text-align:left; }
.swfrpc-ep-history th { color:#334155; background:#f8fafc; }
.swfrpc-ep-status { display:inline-block; border-radius:999px; background:#e0f2fe; color:#075985; padding:4px 10px; font-size:13px; font-weight:800; }

/* Designed employee login page */
.swfrpc-login-shell {
  --swfrpc-login-navy: #003049;
  --swfrpc-login-navy-2: #062f4f;
  --swfrpc-login-teal: var(--swfrpc-ep-accent, #0a9396);
  --swfrpc-login-primary: var(--swfrpc-ep-primary, #005f73);
  --swfrpc-login-text: #0f2742;
  --swfrpc-login-muted: #63738b;
  --swfrpc-login-border: #d6dee8;
  width: min(1280px, 100%);
  margin: 0 auto 28px;
  background: #fff;
  border: 1px solid #dbe3ec;
  box-shadow: 0 24px 60px rgba(15, 23, 42, 0.08);
  overflow: hidden;
  font-family: inherit;
}
.swfrpc-login-topbar {
  min-height: 88px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 18px 38px;
  border-bottom: 1px solid #dbe3ec;
  background: rgba(255,255,255,.96);
}
.swfrpc-login-brand { display:flex; align-items:center; gap:14px; }
.swfrpc-login-brand img { max-width: 76px; max-height: 62px; object-fit: contain; }
.swfrpc-login-mark {
  width: 58px;
  height: 58px;
  display: grid;
  place-items: center;
  border-radius: 18px;
  color: #fff;
  background: linear-gradient(135deg, var(--swfrpc-login-navy), var(--swfrpc-login-teal));
  font-weight: 900;
  letter-spacing: -.04em;
}
.swfrpc-login-brand strong { display:block; color:var(--swfrpc-login-text); font-size:25px; line-height:1; letter-spacing:-.02em; text-transform:uppercase; }
.swfrpc-login-brand span { display:block; margin-top:6px; color:#687891; font-size:15px; }
.swfrpc-login-support { display:grid; grid-template-columns:34px auto; gap:10px; text-decoration:none; align-items:center; color:var(--swfrpc-login-text); }
.swfrpc-login-support span { grid-row:1 / span 2; font-size:24px; color:var(--swfrpc-login-navy); }
.swfrpc-login-support em { font-style:normal; font-size:15px; color:var(--swfrpc-login-text); line-height:1; }
.swfrpc-login-support strong { font-size:16px; color:var(--swfrpc-login-teal); line-height:1; }
.swfrpc-login-main { display:grid; grid-template-columns:1.05fr 1fr; min-height:680px; }
.swfrpc-login-panel {
  position: relative;
  color: #fff;
  padding: 92px 70px 70px;
  background:
    linear-gradient(135deg, rgba(0,48,73,.96), rgba(0,95,115,.92)),
    radial-gradient(circle at 22% 22%, rgba(10,147,150,.26), transparent 32%),
    linear-gradient(120deg, #003049, #005f73);
  background-size: cover;
  background-position: center;
  overflow: hidden;
}
.swfrpc-login-panel:after {
  content:"";
  position:absolute;
  inset:auto -80px -160px auto;
  width:330px;
  height:330px;
  border-radius:50%;
  border: 44px solid rgba(255,255,255,.05);
}
.swfrpc-login-lock {
  width: 74px;
  height: 74px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background: linear-gradient(135deg, #19c7bd, #07969b);
  box-shadow: 0 16px 34px rgba(0,0,0,.18);
  font-size: 30px;
  margin-bottom: 34px;
}
.swfrpc-login-kicker { margin:0 0 6px; font-size:29px; line-height:1.1; font-weight:400; color:#fff; }
.swfrpc-login-panel h1 { margin:0; color:#fff; font-size:clamp(43px,5.2vw,64px); line-height:1; letter-spacing:-.04em; font-weight:900; }
.swfrpc-login-rule { width:92px; height:4px; border-radius:999px; background:var(--swfrpc-login-teal); margin:28px 0; }
.swfrpc-login-copy { max-width:520px; color:rgba(255,255,255,.92); font-size:19px; line-height:1.55; margin:0 0 42px; }
.swfrpc-login-features { display:grid; gap:26px; position:relative; z-index:1; }
.swfrpc-login-features div { display:grid; grid-template-columns:58px 1fr; column-gap:18px; align-items:center; }
.swfrpc-login-features span { grid-row:1 / span 2; width:54px; height:54px; border:1px solid rgba(20,184,166,.52); color:#1ee2d8; border-radius:10px; display:grid; place-items:center; font-size:26px; background:rgba(0,95,115,.25); }
.swfrpc-login-features strong { color:#fff; font-size:17px; line-height:1.2; }
.swfrpc-login-features small { color:rgba(255,255,255,.88); font-size:15px; line-height:1.35; }
.swfrpc-login-card-wrap {
  display:grid;
  place-items:center;
  padding:50px;
  background:
    radial-gradient(circle at 90% 10%, rgba(0,95,115,.06), transparent 30%),
    radial-gradient(circle, rgba(15,23,42,.08) 1px, transparent 1.5px);
  background-size: auto, 22px 22px;
}
.swfrpc-login-card {
  width:min(520px, 100%);
  background:#fff;
  border:1px solid var(--swfrpc-login-border);
  border-radius:12px;
  padding:56px 38px 36px;
  box-shadow:0 16px 42px rgba(15,23,42,.10);
}
.swfrpc-login-card h2 { margin:0; text-align:center; color:var(--swfrpc-login-text); font-size:32px; line-height:1.1; letter-spacing:-.03em; }
.swfrpc-login-card > p { margin:12px 0 34px; text-align:center; color:var(--swfrpc-login-muted); font-size:17px; }
.swfrpc-login-card form { margin:0; }
.swfrpc-login-card p.login-username,
.swfrpc-login-card p.login-password { margin:0 0 20px; }
.swfrpc-login-card label { display:block; margin:0 0 10px; color:#0f172a; font-weight:800; font-size:15px; }
.swfrpc-login-card input[type="text"],
.swfrpc-login-card input[type="password"] {
  width:100%;
  height:58px;
  border:1px solid #cbd5e1;
  border-radius:6px;
  background:#fff;
  color:#13243b;
  font-size:16px;
  padding:0 15px;
  box-sizing:border-box;
}
.swfrpc-login-card input[type="text"]::placeholder,
.swfrpc-login-card input[type="password"]::placeholder { color:#8190a7; }
.swfrpc-login-card p.login-remember { display:inline-flex; align-items:center; margin:2px 0 20px; color:#4b5d73; }
.swfrpc-login-card p.login-remember label { display:inline-flex; align-items:center; gap:8px; margin:0; font-weight:500; color:#4b5d73; }
.swfrpc-login-card input[type="checkbox"] { width:18px; height:18px; margin:0; }
.swfrpc-login-card p.login-submit { margin:10px 0 0; }
.swfrpc-login-card input[type="submit"] {
  width:100%;
  height:58px;
  border:0;
  border-radius:5px;
  background:linear-gradient(135deg, var(--swfrpc-login-primary), var(--swfrpc-login-teal));
  color:#fff;
  font-size:17px;
  font-weight:800;
  cursor:pointer;
  box-shadow:0 10px 20px rgba(0,95,115,.18);
}
.swfrpc-login-forgot { text-align:right; margin-top:-50px; margin-bottom:28px; position:relative; z-index:2; }
.swfrpc-login-forgot a { color:var(--swfrpc-login-teal); text-decoration:none; font-weight:600; }
.swfrpc-login-divider { display:flex; align-items:center; gap:18px; margin:30px 0; color:#7b8aa0; }
.swfrpc-login-divider:before,
.swfrpc-login-divider:after { content:""; height:1px; background:#d8e0ea; flex:1; }
.swfrpc-ms-button {
  height:56px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  border:1px solid var(--swfrpc-login-teal);
  border-radius:5px;
  background:#fff;
  color:#007b82;
  font-size:17px;
  font-weight:800;
  text-decoration:none;
  transition: background .15s ease, transform .15s ease;
}
.swfrpc-ms-button:hover { background:#f0fdfa; transform:translateY(-1px); color:#00656b; }
.swfrpc-ms-button span { font-size:24px; line-height:1; }
.swfrpc-login-privacy { margin:26px 0 0 !important; color:#728198 !important; font-size:14px !important; line-height:1.4; }
.swfrpc-login-footer { border-top:1px solid #dbe3ec; background:#f8fafc; text-align:center; color:#718096; padding:17px; font-size:14px; }

@media (max-width: 1000px) {
  .swfrpc-login-main { grid-template-columns:1fr; }
  .swfrpc-login-panel { padding:50px 32px; }
  .swfrpc-login-card-wrap { padding:32px 20px; }
}
@media (max-width: 800px) {
  .swfrpc-ep-grid { grid-template-columns:1fr; }
  .swfrpc-ep-hero { padding:24px; }
  .swfrpc-login-topbar { padding:18px 20px; align-items:flex-start; flex-direction:column; }
  .swfrpc-login-card { padding:36px 22px 28px; }
  .swfrpc-login-forgot { margin-top:0; text-align:left; }
  .swfrpc-login-panel h1 { font-size:42px; }
}

/* v1.2.1 - full-width selected forms and flexible two-column fields */
.swfrpc-ep-form-picker {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 16px;
  margin: 0 0 22px;
}
.swfrpc-ep-form-tab {
  appearance: none;
  border: var(--portal-border);
  border-radius: 16px;
  background: #fff;
  padding: 18px 20px;
  text-align: left;
  box-shadow: 0 10px 26px rgba(15, 23, 42, 0.06);
  cursor: pointer;
  transition: transform .15s ease, border-color .15s ease, box-shadow .15s ease;
}
.swfrpc-ep-form-tab:hover,
.swfrpc-ep-form-tab.is-active {
  transform: translateY(-1px);
  border-color: var(--swfrpc-ep-accent);
  box-shadow: 0 14px 32px rgba(0, 95, 115, 0.13);
}
.swfrpc-ep-form-tab strong {
  display: block;
  color: var(--swfrpc-ep-primary);
  font-size: 18px;
  margin-bottom: 5px;
}
.swfrpc-ep-form-tab span {
  display: block;
  color: #64748b;
  line-height: 1.35;
}
.swfrpc-ep-form-panels .swfrpc-ep-form-panel { display: none; }
.swfrpc-ep-form-panels .swfrpc-ep-form-panel.is-active { display: block; }
.swfrpc-ep-form-panel { width: 100%; }
.swfrpc-ep-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px 18px;
  align-items: start;
}
.swfrpc-ep-form-grid .swfrpc-ep-field { margin-bottom: 0; }
.swfrpc-ep-field-half { grid-column: span 1; }
.swfrpc-ep-field-full,
.swfrpc-ep-form-grid .swfrpc-ep-button { grid-column: 1 / -1; }
.swfrpc-ep-choice-list {
  display: grid;
  gap: 9px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  padding: 12px;
}
.swfrpc-ep-choice,
.swfrpc-ep-single-check {
  display: flex !important;
  align-items: center;
  gap: 9px;
  margin: 0 !important;
  font-weight: 600 !important;
  color: #334155 !important;
}
.swfrpc-ep-choice input,
.swfrpc-ep-single-check input {
  width: auto !important;
  margin: 0;
}
.swfrpc-ep-choice span,
.swfrpc-ep-single-check span { color: inherit !important; }
.swfrpc-ep-help {
  display: block;
  color: #64748b;
  margin-top: 6px;
  font-size: 13px;
}
@media (max-width: 760px) {
  .swfrpc-ep-form-grid { grid-template-columns: 1fr; }
  .swfrpc-ep-field-half { grid-column: 1 / -1; }
}

/* v1.2.2 signature, upload, and actual cost enhancements */
.swfrpc-signature-wrap {
  border: 1px solid #cbd5e1;
  border-radius: 14px;
  background: #fff;
  padding: 10px;
}
.swfrpc-signature-pad {
  width: 100%;
  max-width: 100%;
  height: 180px;
  display: block;
  border-radius: 10px;
  background: linear-gradient(#fff, #fff) padding-box, repeating-linear-gradient(0deg, transparent 0, transparent 35px, rgba(148,163,184,.28) 36px) border-box;
  border: 1px dashed #94a3b8;
  cursor: crosshair;
  touch-action: none;
}
.swfrpc-signature-clear,
.swfrpc-ep-small-button {
  margin-top: 8px;
  border: 1px solid var(--swfrpc-ep-accent);
  background: #fff;
  color: var(--swfrpc-ep-primary);
  border-radius: 999px;
  padding: 7px 12px;
  font-weight: 700;
  cursor: pointer;
}
.swfrpc-ep-small-button { margin-top: 0; }
.swfrpc-actuals-row td {
  background: #f8fafc;
  border-top: 2px solid #dbeafe;
}
.swfrpc-actuals-form {
  padding: 16px;
  border: 1px solid #dbeafe;
  border-radius: 16px;
  background: #fff;
}
.swfrpc-actuals-form h4 { margin: 0 0 6px; color: var(--swfrpc-ep-primary); }
.swfrpc-actual-total { font-weight: 800; background: #f0fdfa !important; }
.swfrpc-ep-field input[type="file"] {
  padding: 12px;
  border: 1px dashed #94a3b8;
  border-radius: 12px;
  background: #f8fafc;
}
