:root{--cream:#FBF8F3;--ink:#2A2320;--muted:#6F655D;--line:#E7DCCB;--field:#CDBFA8;--terra:#A9622C;--terra-d:#8C4F22;--gold:#C9A961;--err:#B33A3A}
*{box-sizing:border-box}html,body{height:100%}
body{margin:0;background:var(--cream);color:var(--ink);font-family:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;-webkit-font-smoothing:antialiased}
.wrap{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr)}
.visual{position:relative;min-height:100vh;background:#cfc7ba url(/login-bg.webp) center/cover no-repeat}
.visual::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(42,35,32,.04) 38%,rgba(42,35,32,.68) 100%)}
.caption{position:absolute;z-index:1;left:52px;right:52px;bottom:52px;color:var(--cream)}
.eyebrow{display:block;font-size:11px;letter-spacing:.34em;text-transform:uppercase;color:var(--gold);margin-bottom:16px}
.caption p{margin:0;max-width:460px;font-family:Georgia,"Times New Roman",serif;font-style:italic;font-size:27px;line-height:1.38}
.panel{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:56px 32px 72px}
.card{width:100%;max-width:380px;animation:rise .7s cubic-bezier(.2,.7,.2,1) both}
.logo{display:block;width:240px;max-width:82%;height:auto;margin:0 0 46px}
h1{margin:0 0 12px;font-family:Georgia,"Times New Roman",serif;font-weight:400;font-size:38px;line-height:1.12;letter-spacing:.01em}
.rule{width:46px;height:2px;background:var(--terra);margin:0 0 18px}
.lead{margin:0 0 36px;color:var(--muted);font-size:15px;line-height:1.65}
.field{position:relative;margin-bottom:26px}
label.f{display:block;margin:0 0 4px;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
input[type=text],input[type=password]{display:block;width:100%;padding:11px 44px 11px 0;font:inherit;font-size:17px;color:var(--ink);background:transparent;border:0;border-bottom:1px solid var(--field);border-radius:0;outline:none;transition:border-color .25s,box-shadow .25s}
input[type=text]:focus,input[type=password]:focus{border-bottom-color:var(--terra);box-shadow:0 1px 0 var(--terra)}
input:-webkit-autofill{-webkit-box-shadow:0 0 0 40px var(--cream) inset;-webkit-text-fill-color:var(--ink)}
.eye{position:absolute;right:0;bottom:6px;width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:none;border:0;color:var(--muted);cursor:pointer;border-radius:50%;transition:color .2s,background .2s}
.slash{display:none}.eye.on .slash{display:inline}
.eye:hover,.eye:focus-visible{color:var(--terra);background:rgba(169,98,44,.08);outline:none}
.check{position:relative;display:flex;align-items:center;gap:12px;margin:2px 0 22px;font-size:14px;color:var(--muted);cursor:pointer;user-select:none}
.check input{position:absolute;opacity:0;width:0;height:0}
.box{flex:none;width:18px;height:18px;border:1px solid var(--field);display:inline-block;position:relative;transition:all .2s;background:transparent}
.check input:checked+.box{background:var(--terra);border-color:var(--terra)}
.check input:checked+.box::after{content:"";position:absolute;left:5px;top:1px;width:5px;height:10px;border:solid #fff;border-width:0 1.6px 1.6px 0;transform:rotate(42deg)}
.check input:focus-visible+.box{box-shadow:0 0 0 3px rgba(169,98,44,.25)}
.err{min-height:22px;margin:0 0 14px;font-size:14px;line-height:1.45;color:var(--err)}
.err.shake{animation:shake .4s}
.btn{display:block;width:100%;padding:17px 20px;font:inherit;font-size:12px;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:var(--cream);background:var(--ink);border:0;cursor:pointer;transition:background .25s,transform .1s}
.btn:hover{background:var(--terra)}.btn:active{transform:translateY(1px)}
.btn:focus-visible{outline:2px solid var(--terra);outline-offset:3px}
.btn:disabled{background:#8A7E70;cursor:default}
footer{position:absolute;left:0;right:0;bottom:24px;text-align:center;font-size:12px;letter-spacing:.06em;color:#A2968A}
@keyframes rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes shake{0%,100%{transform:none}20%{transform:translateX(-6px)}40%{transform:translateX(6px)}60%{transform:translateX(-4px)}80%{transform:translateX(4px)}}
@media (max-width:900px){.wrap{grid-template-columns:1fr}.visual{min-height:0;height:27vh;background-position:center 55%}.visual::after{background:linear-gradient(180deg,rgba(42,35,32,0) 55%,var(--cream) 100%)}.caption{display:none}.panel{padding:26px 24px 76px;justify-content:flex-start}.logo{width:200px;margin-bottom:30px}h1{font-size:32px}.lead{margin-bottom:28px}}
@media (prefers-reduced-motion:reduce){.card{animation:none}.err.shake{animation:none}*{transition:none!important}}
