/* Public entry is deliberately quiet; authenticated and native surfaces are separate. */
body.role-guest.web-entry:is(.page-index,.page-login) { background:#f5f8f5; color:#173b3c; }
body.role-guest.web-entry:is(.page-index,.page-login) .auth-page { display:block; padding:0; min-height:100dvh; background:none; }
.public-front { max-width:1240px; margin:auto; padding:28px 40px; font-family:inherit; }
.public-front * { box-sizing:border-box; }
.public-header { display:flex; justify-content:space-between; align-items:center; gap:24px; padding:12px 0 36px; }
.public-header img { width:170px; filter:brightness(0) saturate(100%) invert(21%) sepia(18%) saturate(1380%) hue-rotate(133deg); }
.public-header nav { display:flex; align-items:center; gap:24px; flex-wrap:wrap; }
.public-front a { color:#185c56; text-underline-offset:5px; }
.public-header nav a { font-weight:650; text-decoration:none; }
.public-front .public-business-link { padding:12px 18px; border:1px solid #aac7be; border-radius:30px; }
.public-hero,.public-access { display:grid; grid-template-columns:1.2fr 1fr; align-items:center; gap:70px; padding:65px 0 80px; }
.public-front h1 { font-size:clamp(2.6rem,4.8vw,4.6rem); line-height:1.08; letter-spacing:-.045em; color:#173b3c; margin:18px 0 26px; }
.public-front h1 em { font-style:normal; color:#23776b; }
.public-front h2,.public-front h3 { color:#173b3c; }
.public-front p { line-height:1.65; color:#456260; }
.public-hero > div > p:not(.public-kicker),.public-access > div > p:not(.public-kicker) { font-size:1.15rem; max-width:48ch; }
.public-front .public-kicker { color:#39665f; text-transform:uppercase; font-size:.75rem; letter-spacing:.12em; font-weight:750; }
.public-actions { display:flex; align-items:center; gap:24px; margin-top:30px; flex-wrap:wrap; }
.public-front .button { background:#21c9b7; color:#083c36; padding:14px 24px; border:1px solid #189f91; border-radius:14px; box-shadow:none; font-weight:750; min-height:48px; transition:background .15s ease,transform .15s ease; }
.public-front .button:hover { background:#55dccb; transform:translateY(-2px); }
.public-front .button:active { transform:none; background:#1bb09f; }
.public-day,.public-login { border:1px solid #c2d8ce; border-radius:26px; background:#e7f0e9; padding:36px; }
.public-day h2 { font-size:2rem; margin:16px 0 24px; }
.public-day > div { display:flex; align-items:center; gap:16px; border-top:1px solid #c2d8ce; padding:22px 0; }
.public-day > div span { color:#326f62; }
.public-day > p { margin-bottom:0; }
.public-workflow { padding:35px 0 60px; border-top:1px solid #c2d8ce; }
.public-workflow h2 { font-size:clamp(1.5rem,3vw,2rem); margin-bottom:30px; }
.public-steps { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:30px; }
.public-steps article { border-top:3px solid #50b6a5; padding-top:20px; }
.public-steps article > span { color:#456260; font-size:.8rem; }
.public-steps h3 { margin:12px 0 6px; }
.public-footer { border-top:1px solid #c2d8ce; padding:24px 0; display:flex; gap:20px; justify-content:space-between; flex-wrap:wrap; color:#456260; font-size:.9rem; }
.public-login { background:#fff; }
.public-login h2 { margin-top:0; }
.public-login form { display:grid; gap:18px; }
.public-login label { display:grid; gap:8px; color:#173b3c; }
.public-login input { width:100%; min-width:0; background:#f8faf8; color:#173b3c; border:1px solid #809e95; border-radius:10px; min-height:48px; padding:12px; }
.public-login .password-field { display:flex; }
.public-login .password-toggle { color:#185c56; }
.public-front :is(a,button,input):focus-visible { outline:3px solid #147669; outline-offset:4px; }
@media(max-width:800px) { .public-front {padding:20px 24px;} .public-header {align-items:flex-start;flex-direction:column;gap:22px;} .public-header nav {gap:16px;font-size:.88rem;} .public-hero,.public-access {grid-template-columns:1fr;gap:32px;padding:24px 0 45px;} .public-steps {grid-template-columns:repeat(2,minmax(0,1fr));} .public-day,.public-login {padding:26px;} }
@media(max-width:420px) { .public-front {padding:18px;} .public-header nav {gap:14px;} .public-front .public-business-link {padding:10px 12px;} .public-steps {gap:20px;} }
@media(prefers-reduced-motion:reduce) { .public-front .button {transition:none;transform:none;} }

/* Website polish: field context, faithful product examples, clear portal selection. */
.public-front { max-width:1440px; padding:28px 48px 0; }
.public-header { padding-bottom:26px; border-bottom:1px solid #d7e3db; }
.public-header nav { gap:8px; }
.public-header .public-portal-link { display:inline-flex; align-items:center; justify-content:center; min-height:46px; padding:12px 16px; border:1px solid transparent; border-radius:30px; transition:background .16s ease; }
.public-header .public-business-link { border-color:#aac7be; }
.public-header .public-portal-link:hover { background:#e0eee7; }
.public-header .public-portal-link.is-selected { color:#fff; background:#185c56; border-color:#185c56; box-shadow:0 3px 0 #acd8c9; }
.public-hero { grid-template-columns:1.05fr 1fr; gap:48px; padding:64px 0 80px; }
.public-hero-copy { min-width:0; }
.public-front h1 { font-size:clamp(2.7rem,4.4vw,4.3rem); }
.public-field { margin:0; position:relative; border-radius:24px; overflow:hidden; background:#dde6da; }
.public-field img { display:block; width:100%; height:480px; object-fit:cover; object-position:50% 50%; }
.public-field figcaption { position:absolute; bottom:0; left:0; right:0; padding:60px 26px 26px; color:white; line-height:1.55; background:linear-gradient(transparent,rgba(10,34,25,.88)); }
.public-field figcaption strong { font-size:1.2rem; }
.public-band { margin:0 -48px; padding:64px 48px 70px; background:#e8f1eb; border-top:1px solid #d4e3d9; border-bottom:1px solid #d4e3d9; }
.public-section-intro { max-width:620px; }
.public-front h2 { font-size:clamp(1.8rem,3vw,2.7rem); line-height:1.15; letter-spacing:-.035em; margin:16px 0; }
.public-example-note { font-size:.8rem; margin:32px 0 16px; }
.public-proof-grid { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px; }
.public-proof-grid > li { min-width:0; }
.public-step-title { display:flex; align-items:center; gap:12px; margin:0 0 18px; }
.public-step-title > span { font-size:.75rem; border:1px solid #97b6a6; width:30px; height:30px; display:grid; place-items:center; border-radius:50%; }
.public-step-title h3 { margin:0; font-size:1.2rem; }
.public-front .public-ui-card { background:#152438; color:#f8fafc; border:1px solid #35475a; border-radius:14px; padding:18px; min-height:266px; box-shadow:0 12px 24px #173b3c0a; display:flex; flex-direction:column; font-size:.8rem; }
.public-ui-card > strong { font-size:1rem; line-height:1.4; margin:20px 0 0; }
.public-front .public-ui-card p { color:#c4d0dc; line-height:1.5; margin:8px 0 16px; }
.public-ui-top,.public-ui-line,.public-ui-bottom { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.public-ui-top > span:first-child { font-size:.65rem; letter-spacing:.08em; color:#c4d0dc; }
.public-ui-status { border-radius:20px; padding:4px 9px; font-size:.7rem; font-weight:700; }
.public-ui-status.neutral { background:#364459; color:#e2e8f0; }
.public-ui-status.amber { background:#563819; color:#ffd391; }
.public-ui-status.green { background:#184432; color:#a6efc4; }
.public-ui-status.blue { background:#233f62; color:#b5d7ff; }
.public-ui-note { color:#c4d0dc; line-height:1.5; padding:12px; border-radius:8px; background:#21334a; }
.public-ui-line { padding:12px 0; border-bottom:1px solid #35475a; }
.public-ui-line b { white-space:nowrap; }
.public-ui-bottom { margin-top:auto; padding-top:18px; color:#83e0d1; }
.public-ui-task { display:flex; gap:10px; padding:10px 0; }
.public-ui-task span { color:#83e0d1; }
.public-proof-grid > li > p { font-size:.92rem; max-width:27ch; margin-bottom:0; }
.public-owner-value { display:grid; grid-template-columns:1fr 1fr; gap:70px; padding:80px 0; align-items:start; }
.public-value-list article { display:flex; gap:22px; padding:22px 0; border-bottom:1px solid #c2d8ce; }
.public-value-list article:first-child { padding-top:0; }
.public-value-list article > span { color:#23776b; font-size:.8rem; padding-top:5px; }
.public-value-list h3 { margin:0; font-size:1.2rem; }
.public-value-list p { margin:8px 0 0; }
.public-final-cta { background:#173b3c; border-radius:24px; padding:48px; text-align:center; margin-bottom:48px; }
.public-front .public-final-cta h2 { color:#fff; margin-bottom:26px; }
.public-front .public-final-cta .public-kicker { color:#acd8c9; }
.public-front .public-cta-login { display:block; width:fit-content; margin:24px auto 0; color:#c4e5db; }
.public-access { max-width:1100px; margin:0 auto; min-height:560px; gap:64px; padding:64px 0 80px; }
.public-login { padding:36px; box-shadow:0 16px 44px #173b3c08; }
.public-login h2 { font-size:1.6rem; letter-spacing:-.02em; margin:0 0 26px; }
.public-front .public-login p { font-size:.9rem; }
@media(max-width:1100px) {
  .public-front { padding:24px 32px 0; }
  .public-hero { gap:32px; }
  .public-field img { height:430px; }
  .public-band { margin:0 -32px; padding:48px 32px; }
  .public-proof-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px 24px; }
  .public-ui-card { min-height:250px; }
}
@media(max-width:800px) {
  .public-header { gap:22px; padding-bottom:24px; }
  .public-header nav { gap:6px; }
  .public-header .public-portal-link { padding:10px 12px; }
  .public-hero,.public-access { grid-template-columns:1fr; padding:36px 0 48px; gap:32px; min-height:0; }
  .public-field img { height:340px; }
  .public-front h1 { max-width:14ch; }
  .public-owner-value { grid-template-columns:1fr; gap:26px; padding:48px 0; }
  .public-final-cta { padding:36px 24px; }
  .public-login { width:100%; max-width:540px; }
}
@media(max-width:480px) {
  .public-front { padding:18px 20px 0; }
  .public-header img { width:150px; }
  .public-header nav { display:grid; grid-template-columns:1fr; width:100%; gap:6px; }
  .public-header .public-portal-link { justify-content:flex-start; border-radius:12px; }
  .public-front h1 { font-size:2.75rem; }
  .public-field img { height:290px; }
  .public-band { margin:0 -20px; padding:40px 20px; }
  .public-proof-grid { grid-template-columns:1fr; gap:30px; }
  .public-proof-grid > li > p { max-width:none; }
  .public-ui-card { min-height:240px; }
  .public-login { padding:24px; }
  .public-final-cta { padding:32px 20px; }
  .public-footer { font-size:.85rem; }
}
@media(prefers-reduced-motion:reduce) { .public-front *, .public-front *::before, .public-front *::after { transition:none !important; animation:none !important; scroll-behavior:auto !important; } }
.public-final-cta :is(a,button):focus-visible { outline-color:#b5f5df; }

/* Brand alignment: a light architectural frame, with scroll-led ambient depth. */
.public-front { position:relative; isolation:isolate; }
.public-ambient { position:absolute; inset:0; overflow:hidden; pointer-events:none; z-index:-1; }
.public-ambient::before {
  content:""; position:absolute; inset:0;
  background:radial-gradient(ellipse 65% 25% at 92% 8%, #b8e4dc55, transparent),
             radial-gradient(ellipse 65% 22% at 8% 74%, #ccece355, transparent);
}
.public-ambient svg { position:absolute; width:660px; height:800px; right:-180px; top:80px; color:#397e73; opacity:.09; }
.public-ambient svg + svg { top:auto; bottom:120px; right:auto; left:-340px; transform:rotate(180deg); }
.public-hero { border-bottom:1px solid #ccded7; }
.public-field { border:1px solid #b8ccc3; box-shadow:0 18px 44px #173b3c12; }
.public-band { background:#e3f1ec; margin:28px 0 0; padding:48px 32px; border:1px solid #c8ded5; border-radius:28px; }
.public-owner-value { margin:32px 0; padding:48px 32px; border:1px solid #d3e1d9; border-radius:28px; background:#ffffffb8; }
.public-value-list article:last-child { border-bottom:0; padding-bottom:0; }
.public-final-cta { position:relative; border-top:4px solid #91ccbb; }
.public-portals .public-access {
  max-width:none; min-height:560px; margin:36px 0 48px; padding:56px;
  grid-template-columns:minmax(0,1fr) minmax(320px,450px); gap:56px;
  background:#e3f1ec; border:1px solid #c8ded5; border-radius:28px;
}
.public-access > div { border-left:3px solid #72bca9; padding-left:28px; }
.public-access h1 { font-size:clamp(2.5rem,4vw,3.7rem); max-width:13ch; }
.public-login { width:100%; max-width:450px; justify-self:center; border-color:#bad1c7; box-shadow:0 16px 36px #173b3c0c; }
@supports (animation-timeline:scroll()) {
  @media(prefers-reduced-motion:no-preference) and (min-width:801px) {
    .public-ambient svg:first-child { animation:public-line-drift linear both; animation-timeline:scroll(root block); }
    .public-ambient svg + svg { animation:public-line-return linear both; animation-timeline:scroll(root block); }
  }
}
@keyframes public-line-drift { from { transform:translateY(0); } to { transform:translateY(100px); } }
@keyframes public-line-return { from { transform:rotate(180deg) translateY(0); } to { transform:rotate(180deg) translateY(70px); } }
@media(max-width:1100px) {
  .public-portals .public-access { padding:36px; gap:32px; grid-template-columns:minmax(0,1fr) minmax(300px,420px); }
  .public-access > div { padding-left:20px; }
  .public-band,.public-owner-value { padding:40px 28px; }
}
@media(max-width:800px) {
  .public-portals .public-access { grid-template-columns:1fr; min-height:0; padding:32px; margin-top:24px; gap:28px; }
  .public-access > div { width:100%; max-width:450px; justify-self:center; }
  .public-access h1 { max-width:16ch; }
  .public-owner-value { margin:24px 0; }
  .public-ambient svg { width:440px; right:-280px; opacity:.06; }
}
@media(max-width:480px) {
  .public-band,.public-owner-value { padding:30px 20px; border-radius:20px; }
  .public-portals .public-access { margin:24px -8px 32px; padding:24px 12px; border-radius:20px; }
  .public-access > div { padding-left:16px; }
  .public-access h1 { font-size:2.35rem; }
  .public-login { padding:24px 20px; border-radius:18px; }
  .public-final-cta { margin-bottom:32px; }
}

.public-header img { filter:brightness(0) saturate(100%) invert(21%) sepia(18%) saturate(1380%) hue-rotate(133deg); }
