:root { --ink:#173e38; --cream:#f4f0e7; --paper:#fffdf8; --muted:#687c77; --coral:#d9735b; }
* { box-sizing:border-box; }
body { margin:0; min-height:100vh; color:var(--ink); background:var(--cream); font-family:ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; }
body::before { content:""; position:fixed; width:520px; height:520px; right:-220px; top:-260px; border-radius:50%; background:#d9e2d7; }
main { position:relative; width:min(520px,calc(100% - 28px)); margin:0 auto; padding:38px 0 50px; }
.brand { display:inline-flex; align-items:center; gap:12px; margin-bottom:30px; color:inherit; text-decoration:none; line-height:1.1; }
.brand > span { width:46px; height:46px; display:grid; place-items:center; color:var(--paper); background:var(--ink); border-radius:50%; font:600 1rem Georgia,serif; }
.brand strong { font-size:.95rem; }
.brand small { display:block; margin-top:4px; color:var(--muted); font-size:.65rem; letter-spacing:.08em; text-transform:uppercase; }
.auth-card { padding:clamp(27px,7vw,48px); border:1px solid rgba(23,62,56,.14); border-radius:26px; background:var(--paper); box-shadow:0 24px 70px rgba(23,62,56,.08); }
.eyebrow { margin:0 0 9px; color:var(--coral); font-size:.7rem; font-weight:850; letter-spacing:.14em; text-transform:uppercase; }
h1 { margin:0 0 12px; font:600 clamp(2.4rem,10vw,4rem)/1 Georgia,serif; letter-spacing:-.035em; }
.intro { margin-bottom:30px; color:var(--muted); }
.telegram-login{margin:0 0 22px;padding:17px;border:1px solid rgba(23,62,56,.14);border-radius:16px;background:var(--cream);text-align:center}.telegram-login strong{font-size:.86rem}.telegram-login p{margin:5px 0 13px;color:var(--muted);font-size:.7rem;line-height:1.4}.telegram-login iframe{max-width:100%}.telegram-login>div>span{color:var(--muted);font-size:.72rem}.divider{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:.67rem}.divider::before,.divider::after{content:"";height:1px;flex:1;background:rgba(23,62,56,.14)}
label:not(.consent) { display:block; margin:17px 0 7px; font-size:.82rem; font-weight:750; }
input { width:100%; padding:13px 14px; border:1px solid rgba(23,62,56,.28); border-radius:10px; color:var(--ink); background:#fff; font:inherit; outline:none; }
input:focus { border-color:var(--ink); box-shadow:0 0 0 3px rgba(23,62,56,.1); }
.hint { display:block; margin-top:6px; color:var(--muted); font-size:.72rem; }
.consent { display:grid; grid-template-columns:20px 1fr; gap:9px; margin:22px 0; color:var(--muted); font-size:.78rem; line-height:1.4; }
.consent input { width:18px; height:18px; margin:1px 0 0; }
button { width:100%; padding:14px 18px; border:0; border-radius:999px; color:var(--paper); background:var(--ink); font:inherit; font-weight:800; cursor:pointer; }
button:hover { background:#0f2f2a; }
#login-form > button[type="submit"] { margin-top:30px; }
.switch { margin:20px 0 0; text-align:center; color:var(--muted); font-size:.84rem; }
.switch a,.consent a { color:var(--ink); font-weight:750; text-underline-offset:3px; }
.message { margin-bottom:24px; padding:12px 14px; border-radius:10px; color:#7e2e27; background:rgba(217,115,91,.14); font-size:.84rem; }
.message.success { color:#165f43; background:rgba(89,147,117,.15); }
.security { max-width:420px; margin:22px auto 0; color:var(--muted); text-align:center; font-size:.72rem; }
@media(max-width:420px){ main{padding-top:22px}.auth-card{border-radius:20px}.brand{margin-bottom:20px} }
.telegram-site-button{width:100%;min-height:48px;display:flex;align-items:center;justify-content:center;gap:10px;padding:12px 18px;border-radius:999px;color:#fff;background:#2aabee;text-decoration:none;font-size:.9rem;font-weight:800;box-shadow:0 8px 20px rgba(42,171,238,.18);transition:transform .18s ease,box-shadow .18s ease,opacity .18s ease}.telegram-site-button:hover{transform:translateY(-1px);box-shadow:0 11px 24px rgba(42,171,238,.24)}.telegram-site-button:focus-visible{outline:3px solid rgba(42,171,238,.25);outline-offset:3px}.telegram-site-button.loading{pointer-events:none;opacity:.75}.telegram-site-button svg{width:21px;height:21px;fill:currentColor}.telegram-widget-legacy{margin-top:10px;min-height:42px;display:flex;align-items:center;justify-content:center}.telegram-widget-legacy[hidden]{display:none}.telegram-status{display:block;margin-top:9px;color:var(--muted);font-size:.68rem;line-height:1.4}.telegram-bot-link{display:inline-block;margin-top:9px;color:var(--ink);font-size:.7rem;font-weight:750;text-underline-offset:3px}
@media(max-width:420px){.telegram-login{padding:14px}.telegram-site-button{min-height:50px;font-size:.88rem}}

.telegram-site-button[hidden]{display:none}
.telegram-device-grid{display:grid;grid-template-columns:132px 1fr;gap:16px;align-items:center;margin-top:14px}.telegram-qr-wrap{width:132px;height:132px;display:grid;place-items:center;padding:7px;border:1px solid rgba(23,62,56,.14);border-radius:18px;background:#fff}.telegram-qr-wrap img{width:100%;height:100%;object-fit:contain}.telegram-qr-wrap span{padding:10px;color:#687c77;text-align:center;font-size:.72rem}.telegram-device-actions{display:grid;gap:10px}.telegram-restart{min-height:38px!important;margin:0!important;padding:7px 12px!important;border:1px solid rgba(23,62,56,.18)!important;color:#173e38!important;background:transparent!important;font-size:.72rem!important}.telegram-status.error{color:#a43a30}.telegram-device-login p{margin-bottom:0}@media(max-width:480px){.telegram-device-grid{grid-template-columns:1fr}.telegram-qr-wrap{margin:auto}.telegram-device-actions{text-align:center}}

/* v14 registration feedback */
.field-feedback{display:block;margin:-4px 0 12px;padding:9px 11px;border-radius:10px;color:#8f342b;background:rgba(217,115,91,.12);font-size:.74rem;line-height:1.4}.field-feedback[hidden]{display:none!important}#register-form input[aria-invalid="true"]{border-color:#d9735b!important;box-shadow:0 0 0 3px rgba(217,115,91,.12)!important}#register-form button[disabled]{opacity:.7;cursor:wait}
