 .login-page { min-height:100vh; display:grid; grid-template-columns:1fr 1fr; background:var(--cream-lt); }

    .login-deco {
      position:relative; background:var(--brown); padding:60px 56px;
      display:flex; flex-direction:column; justify-content:space-between; overflow:hidden;
    }
    .login-deco::before {
      content:''; position:absolute; inset:0;
      background: radial-gradient(ellipse 60% 50% at 80% 20%, rgba(184,147,90,.22) 0%, transparent 60%),
                  radial-gradient(ellipse 40% 60% at 10% 85%, rgba(200,90,58,.18) 0%, transparent 55%);
      pointer-events:none;
    }
    .login-deco::after {
      content:''; position:absolute; right:-100px; bottom:-100px;
      width:360px; height:360px; border-radius:50%;
      border:1px solid rgba(184,147,90,.1); pointer-events:none;
    }
    .deco-logo { display:flex; align-items:center; gap:12px; text-decoration:none; position:relative; z-index:1; }
    .deco-logo img { height:44px; width:auto; }
    .deco-main { position:relative; z-index:1; }
    .deco-eyebrow {
      display:inline-flex; align-items:center; gap:8px;
      font-size:.72rem; font-weight:500; letter-spacing:.1em; text-transform:uppercase;
      color:var(--gold); background:rgba(184,147,90,.12); border:1px solid rgba(184,147,90,.22);
      padding:5px 14px; border-radius:4px; margin-bottom:24px;
    }
    .deco-title { font-family:var(--ff-display); font-size:clamp(2rem,3.2vw,3.2rem); font-weight:300; line-height:1.1; color:var(--cream); margin-bottom:20px; }
    .deco-title em { font-style:italic; color:var(--gold); }
    .deco-desc { font-size:.88rem; color:rgba(242,224,200,.55); line-height:1.8; font-weight:300; max-width:340px; margin-bottom:40px; }
    .deco-features { display:flex; flex-direction:column; gap:16px; }
    .deco-feature { display:flex; align-items:center; gap:14px; }
    .feat-dot { width:8px; height:8px; border-radius:50%; background:var(--gold); flex-shrink:0; box-shadow:0 0 8px rgba(184,147,90,.5); }
    .feat-line { font-size:.84rem; color:rgba(242,224,200,.65); font-weight:300; line-height:1.4; }
    .feat-line strong { color:var(--cream); font-weight:500; }
    .deco-footer { position:relative; z-index:1; }
    .deco-trust { display:flex; align-items:center; gap:12px; padding-top:24px; border-top:1px solid rgba(184,147,90,.15); }
    .trust-avs { display:flex; }
    .trust-av-d {
      width:30px; height:30px; border-radius:50%;
      background:linear-gradient(135deg,var(--cream),var(--gold-lt));
      display:flex; align-items:center; justify-content:center;
      font-size:.7rem; font-weight:600; color:var(--brown);
      border:2px solid var(--brown); margin-left:-8px;
    }
    .trust-av-d:first-child { margin-left:0; }
    .trust-txt { font-size:.75rem; color:rgba(242,224,200,.5); line-height:1.4; }
    .trust-txt strong { color:var(--gold); }

    .login-form-panel { display:flex; flex-direction:column; align-items:center; justify-content:center; padding:48px 40px; overflow-y:auto; }
    .login-form-wrap { width:100%; max-width:420px; }

    .form-header { text-align:center; margin-bottom:32px; }
    .form-header-icon {
      width:56px; height:56px; border-radius:var(--radius-lg);
      background:linear-gradient(135deg,var(--cream),var(--gold-lt));
      border:1px solid var(--border);
      display:flex; align-items:center; justify-content:center;
      font-size:1.5rem; margin:0 auto 16px;
    }
    .form-header h1 { font-family:var(--ff-display); font-size:1.8rem; font-weight:300; color:var(--brown); margin-bottom:6px; }
    .form-header p { font-size:.85rem; color:var(--text-lt); font-weight:300; }

    .msg-error {
      display:flex; align-items:flex-start; gap:10px;
      background:rgba(200,90,58,.07); border:1px solid rgba(200,90,58,.2);
      border-radius:var(--radius); padding:12px 16px; font-size:.82rem; color:var(--coral); margin-bottom:20px;
    }
    .msg-success {
      display:flex; align-items:flex-start; gap:10px;
      background:rgba(122,158,126,.07); border:1px solid rgba(122,158,126,.25);
      border-radius:var(--radius); padding:12px 16px; font-size:.82rem; color:#4a7d52; margin-bottom:20px;
    }

    .field { display:flex; flex-direction:column; gap:5px; margin-bottom:16px; }
    .field label { font-size:.78rem; font-weight:600; color:var(--text-md); letter-spacing:.02em; }
    .field-input-wrap { position:relative; }
    .field-input-icon { position:absolute; left:13px; top:50%; transform:translateY(-50%); color:var(--gray-3); font-size:.8rem; pointer-events:none; transition:color .2s; }
    .field input {
      width:100%; padding:12px 14px 12px 38px;
      border:1px solid var(--border); border-radius:var(--radius);
      font-size:.9rem; font-family:var(--ff-body); color:var(--text); background:var(--white);
      outline:none; transition:border-color .2s, box-shadow .2s;
    }
    .field input:focus { border-color:var(--gold); box-shadow:0 0 0 3px rgba(184,147,90,.09); }
    .field-input-wrap:focus-within .field-input-icon { color:var(--gold); }
    .field input::placeholder { color:var(--gray-3); }

    .pass-toggle { position:absolute; right:12px; top:50%; transform:translateY(-50%); background:none; border:none; cursor:pointer; color:var(--text-lt); font-size:.82rem; padding:4px; transition:color .2s; }
    .pass-toggle:hover { color:var(--brown); }

    .strength-bar { height:3px; border-radius:2px; background:var(--gray-2); overflow:hidden; margin-top:6px; }
    .strength-fill { height:100%; width:0; border-radius:2px; transition:width .3s, background .3s; }
    .strength-label { font-size:.7rem; margin-top:3px; color:var(--text-lt); }

    .forgot-link { text-align:right; margin-top:-8px; margin-bottom:20px; }
    .forgot-link a { font-size:.76rem; color:var(--text-lt); text-decoration:none; transition:color .2s; }
    .forgot-link a:hover { color:var(--gold); }

    .btn-login {
      width:100%; padding:14px 24px; border:none; border-radius:var(--radius);
      background:var(--brown); color:var(--white);
      font-family:var(--ff-body); font-size:.92rem; font-weight:600; letter-spacing:.04em;
      cursor:pointer; transition:background .2s, transform .15s;
      display:flex; align-items:center; justify-content:center; gap:8px;
    }
    .btn-login:hover { background:var(--coral); }
    .btn-login:active { transform:scale(.99); }

    .divider { display:flex; align-items:center; gap:12px; margin:20px 0; color:var(--gray-3); font-size:.75rem; }
    .divider::before, .divider::after { content:''; flex:1; height:1px; background:var(--border); }

    .form-footer { margin-top:20px; padding-top:16px; border-top:1px solid var(--border); text-align:center; font-size:.8rem; color:var(--text-lt); display:flex; flex-direction:column; gap:8px; }
    .form-footer a { color:var(--gold); text-decoration:none; font-weight:500; }
    .form-footer a:hover { color:var(--brown); }

    .back-link { display:inline-flex; align-items:center; gap:6px; font-size:.78rem; color:var(--text-lt); text-decoration:none; margin-bottom:24px; transition:color .2s; }
    .back-link:hover { color:var(--brown); }

    .is-wedphoto .login-deco { background:#3a2828; }
    .is-wedphoto .form-header-icon { background:linear-gradient(135deg,#f5e6e6,#fdf0ed); }
    .is-wedphoto .btn-login { background:#c68685; }
    .is-wedphoto .btn-login:hover { background:#a56767; }

    @media (max-width:900px) {
      .login-page { grid-template-columns:1fr; }
      .login-deco { display:none; }
      .login-form-panel { padding:32px 20px; }
      .login-form-wrap { max-width:480px; }
    }
    @media (max-width:480px) { .login-form-panel { padding:24px 16px; } }