:root{--ink:#1c241e;--mute:#4a5750;--line:#d0d7d2;--paper:#f4f0e8;--card:#fffdf8;--acc:#1a5740;--acc-deep:#123c2d;--acc-soft:#e6f1eb;--focus:#0d6b4a;
--serif:"Iowan Old Style","Palatino Linotype",Palatino,"Book Antiqua",Georgia,serif;--sans:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif}
*{box-sizing:border-box}
body{margin:0;font-family:var(--sans);color:var(--ink);min-height:100vh;
background:linear-gradient(160deg,rgba(18,60,45,.92),rgba(18,60,45,.62)),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 200'%3E%3Cpath d='M0 140 60 90l40 30 60-60 50 50 40-30 70 60 80-50v160H0z' fill='%23f4f0e8' fill-opacity='.06'/%3E%3Cpath d='M0 170 80 120l60 40 70-50 60 40 60-30 70 50v60H0z' fill='%23f4f0e8' fill-opacity='.08'/%3E%3C/svg%3E") bottom/cover no-repeat,#123c2d}
.login{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:28px 16px}
.panel{background:var(--card);width:100%;max-width:27rem;border-radius:12px;padding:30px 30px 26px;box-shadow:0 18px 50px rgba(0,0,0,.28)}
.brand{display:flex;align-items:center;gap:12px;font-weight:700;letter-spacing:.08em}
.brand small{display:block;font-weight:normal;letter-spacing:.02em;color:var(--mute);font-size:.8rem}
h1{font-family:var(--serif);font-style:italic;font-size:2rem;margin:20px 0 6px}
.intro{margin:0 0 18px;color:var(--mute);line-height:1.5}
label{display:block;font-weight:650;margin:14px 0 6px}
label span{font-weight:normal;color:var(--mute);font-size:.88rem;margin-left:4px}
input{width:100%;font:inherit;font-size:1.05rem;padding:12px 14px;border:1.5px solid var(--line);border-radius:8px;background:#fff}
input:focus{outline:3px solid rgba(13,107,74,.25);border-color:var(--focus)}
button{margin-top:20px;width:100%;font:inherit;font-weight:700;font-size:1.05rem;padding:13px;border:0;border-radius:8px;background:var(--acc);color:#fff;cursor:pointer}
button:hover{background:var(--acc-deep)}
.err{background:#fbeaea;color:#7a1f1f;border-radius:8px;padding:10px 12px;margin:0 0 6px;font-size:.95rem}
.small{font-size:.85rem;color:var(--mute);margin:12px 0 0}
.foot{color:#e6f1eb;opacity:.8;font-size:.8rem;margin-top:18px;text-align:center}
