/* Public enterprise entry. All rules stay inside #login; authentication is unchanged. */
#login {
  grid-template-columns:minmax(0,1.2fr) minmax(360px,.9fr);
  grid-template-areas:"story card" "preview card";
  grid-template-rows:max-content max-content;
  align-content:center;
  column-gap:clamp(48px,7vw,108px);
  row-gap:28px;
  padding:64px max(32px,calc((100vw - 1240px)/2));
  background:#f6f9f8;
}
#login .login-story { grid-area:story; max-width:600px; gap:28px; padding:0; }
#login .login-story .brand { gap:12px; }
#login .entry-wordmark-note { margin-left:4px; padding-left:16px; border-left:1px solid #ccd9d9; color:#5a6e70; font-size:13px; font-weight:400; letter-spacing:.12em; }
#login .entry-eyebrow { margin:0 0 15px; color:#526b70; font-size:13px; letter-spacing:.08em; }
#login .login-story h2 { margin:0 0 22px; color:#20373c; font-size:clamp(36px,3.3vw,48px); line-height:1.28; font-weight:600; letter-spacing:-.045em; }
#login .entry-lead { max-width:34em; color:#607478; font-size:15px; line-height:1.9; }
#login .entry-visual { grid-area:preview; width:100%; max-width:600px; margin:0; }
#login .entry-preview-heading { display:flex; align-items:center; gap:14px; margin-bottom:12px; color:#45635c; font-size:12px; font-weight:500; }
#login .entry-preview-heading [aria-hidden] { color:#93a8a0; font-weight:400; }
#login .entry-preview-frame { overflow:hidden; border:1px solid #d6e1dd; border-radius:10px; background:#fff; box-shadow:0 10px 30px -22px rgb(31 65 57 / 25%); }
#login .entry-preview-frame img { display:block; width:100%; height:auto; }
#login .entry-preview-open { display:block; width:100%; padding:0; text-align:left; color:#45635c; }
#login .entry-preview-open>span { display:flex; align-items:center; justify-content:space-between; min-height:44px; padding:10px 14px; border-top:1px solid #e1e9e5; font-size:13px; font-weight:500; }
#login .entry-preview-open:hover { border-color:#789a8c; background:#fff; }
#login .entry-preview-open:focus-visible { outline:3px solid #397f65; outline-offset:4px; }
#login .entry-preview-more { margin-top:8px; }
#login .entry-preview-more summary { display:flex; align-items:center; justify-content:space-between; min-height:44px; padding:8px 2px; color:#466b5c; font-size:12px; cursor:pointer; list-style:none; }
#login .entry-preview-more summary::-webkit-details-marker { display:none; }
#login .entry-preview-more summary:focus-visible { outline:3px solid #648f80; outline-offset:2px; border-radius:6px; }
#login .entry-preview-more[open] summary { margin-bottom:4px; }
#login .entry-visual figcaption { margin:10px 0 0; color:#657b7f; font-size:11px; line-height:1.7; }
#login .login-card { grid-area:card; align-self:start; margin-top:42px; width:min(414px,100%); padding:40px; border-color:#d9e4e0; border-radius:20px; box-shadow:0 20px 60px -30px rgb(31 65 57 / 17%); }
#login .entry-form-eyebrow { margin:0 0 8px; color:#6d7e7c; font-size:12px; letter-spacing:.08em; }
#login .login-card h1 { margin:0; color:#21393d; font-size:28px; line-height:1.45; font-weight:600; letter-spacing:-.035em; }
#login #login-organization { margin:11px 0 0; font-size:13px; line-height:1.65; overflow-wrap:anywhere; }
#login .login-card form { margin-top:32px; }
#login .field { gap:8px; font-size:13px; }
#login input { min-height:48px; border-color:#ccd9d6; border-radius:7px; background:#fbfdfc; }
#login input:focus { border-color:#638b7a; outline-color:#397f65; }
#login #login-submit { min-height:48px; margin-top:8px; border-color:#274f43; border-radius:7px; background:#274f43; font-size:14px; font-weight:500; }
#login #login-submit:hover:not(:disabled) { background:#214438; }
#login #login-submit:focus-visible { outline:3px solid #648f80; outline-offset:4px; }
#login .entry-help { margin-top:18px; border-top:1px solid #edf2ef; padding-top:8px; }
#login .entry-help summary { display:flex; align-items:center; justify-content:center; gap:7px; min-height:44px; margin:0; padding:8px; color:#637875; font-size:12px; list-style:none; }
#login .entry-help summary::-webkit-details-marker { display:none; }
#login .entry-help summary span { display:inline-flex; align-items:center; justify-content:center; width:16px; height:16px; border:1px solid #a0b5ad; border-radius:50%; color:#5c7a6c; font-size:11px; line-height:1; }
#login .entry-help summary:focus-visible { outline:3px solid #648f80; outline-offset:2px; border-radius:6px; }
#login .entry-help .scope-note { margin:5px 0 2px; color:#617573; font-size:12px; line-height:1.8; }
#login #bootstrap-retry { min-height:44px; width:100%; margin-top:8px; }
@media(max-width:1000px) {
  #login { grid-template-columns:minmax(0,1fr); grid-template-areas:"story" "card" "preview"; grid-template-rows:auto; justify-items:center; gap:28px; padding:36px 24px; }
  #login .login-story { display:flex; width:min(414px,100%); padding:0; gap:24px; }
  #login .entry-visual { display:block; max-width:414px; }
  #login .login-story h2 { font-size:30px; line-height:1.35; margin-bottom:12px; }
  #login .entry-eyebrow { display:none; }
  #login .entry-lead { font-size:14px; line-height:1.75; }
  #login .login-card { justify-self:center; margin-top:0; padding:30px; }
}
@media(max-width:540px) {
  #login { gap:24px; align-content:center; padding:28px 20px; }
  #login .login-story { gap:22px; }
  #login .login-story h2 { font-size:27px; }
  #login .entry-lead { font-size:13px; }
  #login .login-card { padding:26px; border-radius:16px; }
  #login .login-card h1 { font-size:23px; }
  #login .entry-form-eyebrow { display:none; }
  #login .login-card form { margin-top:24px; }
  #login .entry-help { margin-top:16px; }
}
@media(max-width:359px) {
  #login { padding:24px 16px; }
  #login .login-card { padding:22px; }
  #login .login-story h2 { font-size:24px; }
  #login .entry-lead { font-size:12px; }
  #login .entry-wordmark-note { font-size:11px; }
}

/* The public preview uses its own native dialog and never shares business state. */
#product-preview { width:min(1280px,calc(100vw - 24px)); max-width:none; height:min(900px,calc(100dvh - 24px)); max-height:calc(100dvh - 24px); padding:0; overflow:hidden; border:1px solid #ccd9d6; border-radius:12px; background:#fff; }
#product-preview[open] { display:flex; flex-direction:column; }
#product-preview::backdrop { background:rgb(24 41 42 / 58%); }
#product-preview .preview-dialog-head { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; padding:18px 20px; border-bottom:1px solid #e1e9e5; }
#product-preview h2 { margin:0; color:#20373c; font-size:20px; line-height:1.5; }
#product-preview p { margin:5px 0 0; color:#607478; font-size:12px; line-height:1.7; }
#product-preview button { min-width:44px; min-height:44px; }
#close-product-preview { flex:none; white-space:nowrap; }
#product-preview .preview-dialog-toolbar { display:flex; flex-wrap:wrap; align-items:center; gap:8px; padding:12px 20px; }
#product-preview .preview-dialog-toolbar>span { margin-left:auto; color:#607478; font-size:12px; }
#product-preview [aria-pressed="true"] { border-color:#274f43; background:#edf4f0; color:#274f43; }
#product-preview .preview-dialog-viewport { flex:1; min-height:0; overflow:auto; overscroll-behavior:contain; margin:0 20px 20px; border:1px solid #d6e1dd; border-radius:6px; background:#f6f9f8; }
#product-preview .preview-dialog-viewport:focus-visible { outline:3px solid #397f65; outline-offset:2px; }
#product-preview .preview-dialog-viewport img { display:block; width:auto; height:auto; max-width:none; }
#product-preview[data-size="fit"] .preview-dialog-viewport img { width:100%; height:auto; max-width:100%; }
@media(max-width:540px) {
  #product-preview .preview-dialog-head { padding:14px; gap:10px; }
  #product-preview h2 { font-size:17px; }
  #product-preview .preview-dialog-toolbar { padding:10px 14px; }
  #product-preview .preview-dialog-toolbar>span { width:100%; margin-left:0; }
  #product-preview .preview-dialog-viewport { margin:0 14px 14px; }
}
