/* Account access screen, two columns: what Esteja does on the left, the form on the right.
   Same fonts, radii and violet as the rest of the site (primary #7c57ff as "Nuovo appuntamento",
   lilac tints of the calendar and the initial configuration). Narrow windows stack the columns. */
body.login-open>aside,body.login-open>.workspace{display:none}
.login-screen{position:fixed;inset:0;z-index:30;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);overflow-y:auto;background:var(--surface,#fff);color:var(--ink);color-scheme:light}

/* Left column */
.login-showcase{display:flex;flex-direction:column;min-height:100vh;padding:48px clamp(32px,6vw,80px) 40px;background:linear-gradient(160deg,#f1edff 0%,#f7f6fb 55%,#efeafd 100%);border-right:1px solid #e7e5ef}
.login-brand{display:flex;align-items:center;gap:12px}
.login-brand-mark{display:grid;place-items:center;width:44px;height:44px;border:1px solid #ece8fe;border-radius:var(--ds-radius-lg);background:var(--surface,#fff);box-shadow:var(--ds-shadow-sm)}
.login-brand-mark img{width:30px;height:20px;object-fit:contain;filter:brightness(0);opacity:.82}
.login-brand-name{font:600 30px/1 "Cormorant Garamond",Georgia,serif;letter-spacing:-.5px;color:#252832}
.login-claim{max-width:520px;margin:auto 0 32px;padding-top:48px;font:800 clamp(30px,3.4vw,42px)/1.12 var(--font-heading);letter-spacing:-1px;color:var(--ink)}
.login-claim em{font-style:normal;color:#7c57ff}
.login-features{display:grid;gap:14px;max-width:520px;margin:0 0 auto;padding:0;list-style:none}
.login-features li{display:flex;align-items:flex-start;gap:14px;padding:16px 18px;border:1px solid #ece8fe;border-radius:var(--ds-radius-lg);background:var(--surface,#fff);box-shadow:var(--ds-shadow-sm)}
.login-feature-icon{display:grid;place-items:center;flex:0 0 40px;height:40px;border-radius:var(--ds-radius-md);background:#f3efff;color:var(--violet)}
.login-features strong{display:block;font:700 15px/1.35 var(--font-heading);color:var(--ink)}
.login-features li span:not(.login-feature-icon){display:block;margin-top:3px;font-size:13px;line-height:1.45;color:var(--muted)}
.login-tagline{display:flex;align-items:center;gap:8px;margin:32px 0 0;font-size:13px;color:var(--muted)}
.login-tagline svg{color:var(--violet)}

/* Right column */
.login-panel{display:flex;flex-direction:column;align-items:center;min-height:100vh;padding:48px 32px 32px}
.login-card{width:min(420px,100%);margin:auto 0}
.login-card h1{margin:0;font:800 30px/1.2 var(--font-heading);letter-spacing:-.6px;color:var(--ink)}
.login-intro{margin:8px 0 28px;font-size:15px;line-height:1.5;color:var(--muted)}
.login-form{display:grid;gap:18px}
.login-field{display:grid;gap:8px}
.login-field label{font-size:13px;font-weight:600;color:var(--ink)}
.login-label-row{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.login-field input{box-sizing:border-box;width:100%;height:48px;margin:0;padding:0 14px;border:1px solid #e0ddea;border-radius:12px;background:var(--surface,#fff);font:400 15px var(--font-ui);color:var(--ink)}
.login-field input::placeholder{color:#8e8aa0}
.login-field input:focus{border-color:var(--violet);box-shadow:0 0 0 3px #ece8fe;outline:none}
.login-field input[aria-invalid="true"]{border-color:var(--ds-danger)}
.login-password{position:relative}
.login-password input{padding-right:48px}
.login-eye{position:absolute;top:50%;right:6px;display:grid;place-items:center;width:36px;height:36px;min-height:0;padding:0;border:0;border-radius:var(--ds-radius-sm);background:none;color:var(--muted);transform:translateY(-50%);cursor:pointer}
.login-eye:hover{background:#f3efff;color:#7c57ff}
.login-remember{display:flex;align-items:center;gap:10px;width:max-content;max-width:100%;font-size:14px;color:var(--ink);cursor:pointer}
.login-remember input{width:18px;height:18px;margin:0;accent-color:var(--violet);cursor:pointer}
.login-link{min-height:0;padding:0;border:0;background:none;font:600 13px var(--font-ui);color:#7c57ff;text-decoration:none;cursor:pointer}
.login-link:hover{color:#6d47ec;text-decoration:underline}
.login-link:focus-visible,.login-submit:focus-visible,.login-eye:focus-visible,.login-remember input:focus-visible{outline:3px solid #ac95ff;outline-offset:2px}
.login-message{margin:0;padding:10px 12px;border-radius:var(--ds-radius-md);background:var(--ds-danger-bg);color:var(--danger-text);font-size:13px;line-height:1.45}
.login-message.is-info{background:#f3efff;color:var(--ink)}
.login-submit{height:48px;margin-top:4px;border:1px solid var(--violet);border-radius:12px;background:var(--violet);color:#fff;font:600 15px var(--font-ui);box-shadow:0 3px 7px rgba(124,87,255,.18);cursor:pointer;transition:background-color .16s,border-color .16s}
.login-submit:hover{background:var(--violet-hover);border-color:var(--violet-hover)}
.login-submit:disabled{opacity:.7;cursor:progress}
.login-switch{margin:22px 0 0;text-align:center;font-size:14px;color:var(--muted)}
.login-switch .login-link{font-size:14px}
.login-help{margin:32px 0 0;text-align:center;font-size:13px;color:var(--muted)}
.login-consent{margin:14px 0 0;text-align:center;font-size:13px;line-height:1.5;color:var(--muted)}

/* Narrow windows (tablet in portrait, phone): one column. The left side shrinks to a short
   header with logo and claim; the three feature boxes and the tagline are left out. */
@media(max-width:900px){
 .login-screen{grid-template-columns:minmax(0,1fr);align-content:start}
 .login-showcase{min-height:0;padding:24px 20px 28px;border-right:0;border-bottom:1px solid #e7e5ef}
 .login-claim{margin:20px 0 0;padding-top:0;font-size:24px;letter-spacing:-.6px}
 .login-features,.login-tagline{display:none}
 .login-panel{min-height:0;padding:28px 20px 24px}
 .login-card{margin:0}
 .login-card h1{font-size:24px}
 .login-intro{margin-bottom:22px}
 .login-help{margin-top:28px}
}
