:root{color-scheme:dark;--bg:#100d14;--panel:#1b1521;--line:#392b43;--text:#f5f0f8;--muted:#b3a5bc;--accent:#c58ae2;font-family:'Segoe UI',Arial,sans-serif;background:var(--bg);color:var(--text)}
*{box-sizing:border-box}body{margin:0;min-height:100dvh;background:radial-gradient(ellipse at 80% 0,#a85fcb13,transparent 60%)}a{color:inherit}button,input{font:inherit}a,button,input{touch-action:manipulation}a:focus-visible,button:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.portal-wrap{width:min(100% - 36px,960px);margin-inline:auto}.portal-header{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:88px;border-bottom:1px solid var(--line)}.portal-brand{font-size:22px;font-weight:700;letter-spacing:-.5px;text-decoration:none}.portal-brand span{color:var(--accent)}.portal-header form{margin:0}.portal-header a:not(.portal-brand){font-size:13px;color:var(--muted)}.portal-main{padding-block:48px 64px}.portal-eyebrow{color:var(--accent);font-size:11px;font-weight:700;letter-spacing:1.6px;text-transform:uppercase;margin:0 0 12px}h1{font-size:clamp(28px,5vw,40px);font-weight:600;letter-spacing:-1.1px;line-height:1.2;margin:0 0 12px}h2{font-size:20px;margin:0 0 18px}.portal-lead{color:var(--muted);line-height:1.7;font-size:14px;margin:0 0 28px}.portal-card{background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:28px;min-width:0}.portal-login{max-width:440px;margin:20px auto}.portal-form{display:grid;gap:20px}.portal-field{display:grid;gap:8px;font-size:14px}.portal-input{width:100%;min-width:0;min-height:48px;padding:12px 14px;border:1px solid #4e3a5b;border-radius:10px;background:#140f19;color:var(--text);font-size:16px}.portal-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:12px 18px;border:1px solid transparent;border-radius:10px;background:var(--accent);color:#1d0b28;font-weight:700;font-size:14px;line-height:1.4;text-decoration:none;cursor:pointer;text-align:center}.portal-button:hover{background:#d6a4ec}.portal-button-secondary{background:transparent;border-color:var(--line);color:var(--text)}.portal-button-secondary:hover{background:#2b2033}.portal-help{color:var(--muted);font-size:13px;line-height:1.7;margin:22px 0 0}.portal-help a{color:var(--accent);text-underline-offset:3px}.portal-alert{padding:14px 16px;border:1px solid #87506e;border-radius:10px;background:#422133;color:#ffd4e4;font-size:14px;line-height:1.6;margin-bottom:20px}.portal-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:20px;align-items:start}.portal-badge{display:inline-block;padding:6px 10px;border-radius:20px;border:1px solid var(--line);font-size:12px;background:#282032;color:#dbc7ea}.portal-badge.red{color:#ffbbc7;background:#42212c;border-color:#713747}.portal-badge.green{color:#bde8cf;background:#19342a;border-color:#305344}.portal-badge.yellow{color:#f5dda9;background:#3c3220;border-color:#67532f}.portal-validity{font-size:34px;font-weight:600;letter-spacing:-1px;margin:16px 0 8px}.portal-details{display:grid;gap:0;margin:24px 0 0}.portal-details>div{display:flex;justify-content:space-between;align-items:baseline;gap:20px;border-top:1px solid var(--line);padding:14px 0;font-size:14px}.portal-details dt{color:var(--muted)}.portal-details dd{margin:0;text-align:right;overflow-wrap:anywhere;min-width:0}.portal-renew-price{font-size:34px;font-weight:600;margin:0 0 20px}.portal-actions{display:grid;gap:12px}.portal-footer{padding:24px 0;border-top:1px solid var(--line);color:var(--muted);font-size:12px;text-align:center}.portal-login .portal-button{width:100%}.portal-welcome{overflow-wrap:anywhere}
@media(max-width:640px){.portal-header{min-height:74px}.portal-main{padding-block:32px 40px}.portal-card{padding:22px}.portal-login{margin:0 auto}.portal-grid{grid-template-columns:1fr}.portal-validity{font-size:30px}.portal-header .portal-button{padding:10px 14px}.portal-details>div{gap:12px}}

.portal-embedded-login{min-height:0;background:var(--panel)}
.portal-embedded-login .portal-wrap{width:100%}
.portal-embedded-login .portal-header,.portal-embedded-login .portal-footer,.portal-embedded-login .portal-help{display:none}
.portal-embedded-login .portal-main{padding:0}
.portal-embedded-login .portal-login{max-width:none;margin:0;border:0;border-radius:0;padding:32px 28px 28px}
.portal-embedded-login .portal-alert{margin:0;padding-right:48px;border-radius:0}

.portal-login h1{font-size:26px;letter-spacing:-.6px;margin-bottom:8px}.portal-login .portal-eyebrow{font-size:10px;margin-bottom:14px}.portal-login .portal-lead{font-size:13px;margin-bottom:22px}.portal-login .portal-form{gap:16px}.portal-login .portal-field{font-size:13px;gap:7px}.portal-login .portal-input{min-height:44px;padding:10px 12px}.portal-login-error{padding:11px 13px;margin:0 0 18px;border:1px solid #bd739136;border-radius:9px;background:#bd739110;color:#efb8cb;font-size:13px;line-height:1.5}.portal-login-error[hidden]{display:none}

/* Same card and control rhythm as the management panel. */
.portal-card { border-radius: 12px; padding: 24px; }
.portal-grid { gap: 16px; }
.portal-form { gap: 16px; }
.portal-button { border-radius: 10px; }
.portal-input:focus-visible, textarea.portal-input:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
@media (max-width: 640px) { .portal-card { padding: 20px; } .portal-grid { gap: 12px; } }
