/* Scoped to the anonymous shell: authenticated TWBase screens stay unchanged. */
.kamperion-public-page {
  margin: 0;
  color: #123c37;
  background: #f4f7f4;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
.kp-access, .kp-access * { box-sizing: border-box; }
.kp-access {
  min-height: 100svh;
  display: flex;
  flex-direction: column;
  background: radial-gradient(ellipse at 12% 50%, #e2ece3 0, transparent 55%), #f4f7f4;
}
.kp-access a { color: #0b4e48; text-decoration: none; }
.kp-access a:hover { text-decoration: underline; }
.kp-access a:focus-visible, .kp-access input:focus-visible, .kp-access button:focus-visible {
  outline: 3px solid #e66b4e;
  outline-offset: 4px;
}
.kp-access__header, .kp-access__footer {
  width: min(1240px, 100%);
  margin-inline: auto;
  padding: 28px 48px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}
.kp-access__brand img { display: block; width: 211px; height: auto; }
.kp-access__website { font-size: 14px; font-weight: 600; }
.kp-access__main {
  flex: 1;
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
  align-items: center;
  gap: clamp(32px, 6vw, 96px);
  width: min(1240px, 100%);
  margin-inline: auto;
  padding: 48px;
}
.kp-access__eyebrow {
  display: inline-block;
  margin: 0 0 26px;
  border: 1px solid #c2d6c8;
  border-radius: 999px;
  padding: 9px 15px;
  color: #28564c;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .08em;
}
.kp-access__intro h1 {
  margin: 0;
  max-width: 9ch;
  color: #103f36;
  font-size: clamp(40px, 5vw, 68px);
  font-weight: 650;
  line-height: 1.07;
  letter-spacing: -.05em;
}
.kp-access__description { max-width: 43ch; margin: 28px 0; color: #48615a; font-size: 17px; line-height: 1.7; }
.kp-access__features { display: flex; flex-wrap: wrap; gap: 10px; }
.kp-access__features span { padding: 9px 14px; background: #e2ece3; border-radius: 8px; font-size: 13px; font-weight: 600; }
.kp-access__note { margin-top: 38px; color: #576b63; font-size: 13px; }
.kp-access__panel {
  padding: clamp(24px, 3vw, 42px);
  border: 1px solid #dfe7df;
  border-radius: 24px;
  background: #fff;
  box-shadow: 0 20px 70px #153f2b0a;
}
.kp-access__mark { color: #0b4e48; font-size: 26px; font-weight: 800; }
.kp-access__mark span { color: #e66b4e; }
.kp-access__panel h2 { margin: 16px 0 10px; color: #123c37; font-size: 25px; font-weight: 650; letter-spacing: -.025em; }
.kp-access__hint { margin: 0 0 28px; color: #66756f; font-size: 14px; }
.kp-access__panel .form-item { margin: 20px 0; }
.kp-access__panel label { display: block; margin-bottom: 8px; color: #264c43; font-size: 14px; font-weight: 600; }
.kp-access__panel input:not([type="submit"]):not([type="hidden"]):not([type="checkbox"]):not([type="radio"]) {
  display: block;
  width: 100%;
  height: 48px;
  padding: 10px 13px;
  border: 1px solid #cddad2;
  border-radius: 9px;
  color: #123c37;
  background: #fff;
  font-size: 16px;
}
.kp-access__panel .description { margin-top: 7px; font-size: 12px; line-height: 1.5; color: #64736d; }
.kp-access__panel .form-actions { margin: 28px 0 20px; }
.kp-access__panel input[type="submit"], .kp-access__panel button[type="submit"] {
  width: 100%;
  min-height: 48px;
  border: 0;
  border-radius: 9px;
  background: #0b4e48;
  color: white;
  font-size: 15px;
  font-weight: 600;
  cursor: pointer;
}
.kp-access__panel input[type="submit"]:hover { background: #073d38; }
.kp-access__recovery { display: inline-block; font-size: 13px; }
.kp-access__footer { color: #65756b; font-size: 12px; border-top: 1px solid #dce5dc; }
@media (max-width: 760px) {
  .kp-access__header, .kp-access__footer { padding: 22px 24px; }
  .kp-access__brand img { width: 163px; }
  .kp-access__website { max-width: 12ch; font-size: 12px; }
  .kp-access__main { grid-template-columns: 1fr; padding: 30px 24px 40px; gap: 30px; }
  .kp-access__intro h1 { max-width: 13ch; font-size: 44px; }
  .kp-access__eyebrow { margin-bottom: 18px; }
  .kp-access__description { font-size: 15px; margin-block: 20px; }
  .kp-access__note { display: none; }
  .kp-access__footer { flex-direction: column; align-items: flex-start; gap: 8px; }
}
@media print {
  .kp-access { background: white; }
  .kp-access__main { display: block; }
  .kp-access__panel { box-shadow: none; margin-top: 24px; }
}
