/* MED entrance edition 2.0.10. Workspace styling stays in its existing sheets. */
:root {
  --entry-navy: #041e42;
  --entry-blue: #0054ad;
  --entry-sky: #009fe8;
  --entry-ice: #eaf5ff;
  --entry-text: #15345a;
  --entry-muted: #536982;
  --entry-border: #bdcfe3;
  --entry-radius: 12px;
}
.med-entrance-page:not(.med-entrance-technician), body.med-entrance-technician.entry-login-active { margin: 0; min-width: 0; color: var(--entry-text); background: #fff; font-family: Tahoma, "Noto Sans Thai", sans-serif; }
.med-entrance-page *, .med-entrance-page *::before, .med-entrance-page *::after { box-sizing: border-box; }
.med-entrance-page [hidden] { display: none !important; }
.entrance-layout { display: grid; grid-template-columns: minmax(0, 43fr) minmax(0, 57fr); min-height: 100vh; min-height: 100dvh; }
.entrance-hero { position: relative; isolation: isolate; min-width: 0; overflow: hidden; padding: clamp(2rem, 4vw, 4.5rem); color: #fff; background: var(--entry-navy); }
.entrance-hero::before { position: absolute; z-index: -2; inset: 0; content: ""; background-image: var(--entry-hero); background-position: center bottom; background-size: cover; }
.entrance-hero::after { position: absolute; z-index: -1; inset: 0; content: ""; background: linear-gradient(180deg, rgba(4, 30, 66, .87), rgba(4, 30, 66, .35) 48%, rgba(4, 30, 66, .04)); }
.entrance-office { --entry-hero: url('/med/assets/entrance-office-hero.png'); }
.entrance-technician { --entry-hero: url('/med/assets/entrance-technician-hero.png'); }
.entrance-equipment { --entry-hero: url('/med/assets/entrance-equipment-hero.png'); }
.entrance-logo { display: block; width: min(100%, 21rem); height: auto; object-fit: contain; }
.entrance-label { margin: .75rem 0 2.5rem; font-size: .8rem; letter-spacing: .3em; line-height: 1.6; }
.entrance-hero-title { max-width: 12em; margin: 0 0 .75rem; font-size: clamp(1.8rem, 3vw, 3.1rem); font-weight: 700; line-height: 1.35; }
.entrance-hero-copy { max-width: 23rem; margin: 0; color: #d1e3f7; font-size: clamp(1rem, 1.6vw, 1.4rem); line-height: 1.6; }
.entrance-main { display: flex; min-width: 0; flex-direction: column; justify-content: center; padding: clamp(1.5rem, 5vw, 5rem); background: radial-gradient(ellipse at 100% 0%, #edf7ff, transparent 52%), #fff; }
.entrance-card { width: 100%; max-width: 30rem; margin: auto; }
.entrance-kicker { margin: 0 0 1rem; color: var(--entry-blue); font-size: .76rem; font-weight: 700; letter-spacing: .22em; line-height: 1.7; }
.entrance-card h1 { margin: 0 0 .75rem; color: var(--entry-navy); font-size: clamp(1.8rem, 3vw, 2.8rem); line-height: 1.4; }
.entrance-intro { margin: 0 0 2rem; color: var(--entry-muted); font-size: 1rem; line-height: 1.8; }
.entrance-form { display: grid; gap: 1.25rem; }
.entrance-form label { display: grid; min-width: 0; gap: .6rem; color: var(--entry-navy); font-size: .95rem; font-weight: 700; line-height: 1.5; }
.entrance-form input { width: 100%; min-width: 0; min-height: 3.4rem; margin: 0; border: 1px solid var(--entry-border); border-radius: var(--entry-radius); padding: .85rem 1rem; color: var(--entry-text); background: #fff; font: inherit; font-weight: 400; }
.entrance-form input::placeholder { color: #73869c; opacity: 1; }
.entrance-password { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: stretch; gap: .5rem; }
.entrance-button, .entrance-form .entrance-button { display: inline-flex; min-height: 3.25rem; width: 100%; align-items: center; justify-content: center; gap: .65rem; border: 1px solid transparent; border-radius: var(--entry-radius); padding: .85rem 1.25rem; color: #fff; background: linear-gradient(100deg, #0054ad, #007cc0); font: inherit; font-weight: 700; line-height: 1.5; text-align: center; text-decoration: none; cursor: pointer; }
.entrance-button:hover { filter: brightness(1.07); }
.entrance-button:disabled { cursor: wait; opacity: .65; }
.entrance-button-secondary { border-color: #1681ca; color: var(--entry-blue); background: #fff; }
.entrance-link { display: inline-flex; min-height: 2.75rem; align-items: center; justify-content: center; border: 0; padding: .5rem .25rem; color: var(--entry-blue); background: transparent; font: inherit; font-size: .92rem; text-decoration: underline; text-underline-offset: .2em; cursor: pointer; }
.entrance-password .entrance-link { border: 1px solid var(--entry-border); border-radius: var(--entry-radius); padding: .5rem .65rem; text-decoration: none; }
.entrance-help-row { display: flex; justify-content: flex-end; margin: .5rem 0 1rem; }
.entrance-security { display: flex; align-items: flex-start; justify-content: center; gap: .65rem; margin: 1.5rem 0 0; color: var(--entry-muted); font-size: .86rem; line-height: 1.8; text-align: center; }
.entrance-icon { width: 1.35rem; height: 1.35rem; flex: none; }
.entrance-security .entrance-icon { margin-top: .2rem; color: var(--entry-blue); }
.entrance-error, .entrance-help { margin: 1rem 0; border-radius: var(--entry-radius); padding: .8rem 1rem; color: #6b2434; background: #fff0f2; font-size: .9rem; line-height: 1.8; overflow-wrap: anywhere; }
.entrance-help { color: var(--entry-text); background: var(--entry-ice); }
.entrance-footer { margin: 3rem auto 0; color: #60758d; font-size: .75rem; line-height: 1.8; letter-spacing: .08em; text-align: center; }
.med-entrance-page:not(.med-entrance-technician) :is(button, a, input):focus-visible,
body.med-entrance-technician.entry-login-active :is(button, a, input):focus-visible { outline: 3px solid #0070c9; outline-offset: 4px; }
.entrance-scan-frame { position: relative; display: grid; place-items: center; width: min(100%, 22rem); aspect-ratio: 1; margin: 1.5rem auto; border: 1px solid #d6e8f7; border-radius: 18px; overflow: hidden; color: var(--entry-blue); background: var(--entry-ice); }
.entrance-scan-frame::after { position: absolute; inset: 1rem; content: ""; pointer-events: none; border: 4px solid var(--entry-sky); border-radius: 14px; clip-path: polygon(0 0, 18% 0, 18% 5%, 5% 5%, 5% 18%, 0 18%, 0 0, 100% 0, 100% 18%, 95% 18%, 95% 5%, 82% 5%, 82% 0, 100% 0, 100% 100%, 82% 100%, 82% 95%, 95% 95%, 95% 82%, 100% 82%, 100% 100%, 0 100%, 0 82%, 5% 82%, 5% 95%, 18% 95%, 18% 100%, 0 100%); }
.entrance-scan-symbol { width: 5rem; height: 5rem; }
.entrance-scan-frame video { display: block; width: 100%; height: 100%; object-fit: cover; }
.entrance-scan-actions { display: grid; gap: .8rem; }
.entrance-or { display: flex; align-items: center; gap: 1rem; margin: .1rem 0; color: var(--entry-muted); font-size: .9rem; }
.entrance-or::before, .entrance-or::after { height: 1px; content: ""; flex: 1; background: #cbdced; }
.entrance-code-form { margin: 1rem 0 0; }
.entrance-scan-status { margin: .5rem 0 1rem; color: var(--entry-muted); font-size: .9rem; line-height: 1.7; }
.entrance-scan-status.is-error { color: #9b233b; }
.equipment-detail-active > #equipment-entry { display: none; }
body.med-equipment-entry:not(.equipment-detail-active) > :is(.eq-topbar, .eq-page, #report-dialog) { display: none; }
body.med-entrance-technician.entry-login-active { display: grid; grid-template-columns: minmax(0, 43fr) minmax(0, 57fr); min-height: 100vh; min-height: 100dvh; padding: 0; background: #fff; }
body.med-entrance-technician:not(.entry-login-active) > .entrance-hero { display: none; }
body.med-entrance-technician.entry-login-active > .professional-sidebar,
body.med-entrance-technician.entry-login-active > .professional-mobile-nav,
body.med-entrance-technician.entry-login-active > .tech-qr-dialog { display: none !important; }
body.med-entrance-technician.entry-login-active .portal-shell { display: flex; width: auto; min-width: 0; min-height: 0; max-width: none; margin: 0; padding: clamp(1.5rem, 5vw, 5rem); flex-direction: column; justify-content: center; background: radial-gradient(ellipse at 100% 0%, #edf7ff, transparent 52%), #fff; }
body.med-entrance-technician.entry-login-active .portal-shell > :is(.portal-header, #technician-home-entry, #portal-extra, #jobs-view, #job-view) { display: none !important; }
body.med-entrance-technician.entry-login-active #login-view { width: 100%; max-width: 30rem; margin: 0 auto; border: 0; padding: 0; color: var(--entry-text); background: transparent; box-shadow: none; }
body.med-entrance-technician.entry-login-active #notice { width: 100%; max-width: 30rem; margin: 0 auto 1rem; }
body.med-entrance-technician.entry-login-active #login-form { display: grid; grid-template-columns: 1fr; gap: 1.25rem; margin: 0; }
body.med-entrance-technician.entry-login-active #login-form label { display: grid; grid-template-columns: 1fr; }
body.med-entrance-technician.entry-login-active #login-form .entrance-button { margin-top: .5rem; }
@media (max-width: 850px) {
  .entrance-layout, body.med-entrance-technician.entry-login-active { grid-template-columns: minmax(0, 1fr); }
  .entrance-hero { min-height: 11rem; padding: 1.25rem 1.5rem; }
  .entrance-hero::before { opacity: .22; background-position: center 60%; }
  .entrance-logo { width: min(100%, 15rem); }
  .entrance-label { margin: .35rem 0 0; font-size: .7rem; }
  .entrance-hero-title, .entrance-hero-copy { display: none; }
  .entrance-main, body.med-entrance-technician.entry-login-active .portal-shell { padding: 2rem 1.5rem; }
  .entrance-card { max-width: 32rem; }
  .entrance-card h1 { font-size: 2rem; }
  .entrance-footer { margin-top: 2rem; }
}
@media (max-width: 360px) {
  .entrance-main, body.med-entrance-technician.entry-login-active .portal-shell { padding: 1.5rem 1rem; }
  .entrance-hero { padding: 1rem; }
  .entrance-card h1 { font-size: 1.75rem; }
  .entrance-password { grid-template-columns: minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) { .med-entrance-page * { scroll-behavior: auto !important; transition: none !important; } }
