:root { --text-secondary:var(--muted); --danger:#c4554c; }
[hidden] { display:none !important; }
.modal-overlay { display:none; position:fixed; inset:0; z-index:5000; align-items:center; justify-content:center; padding:20px; background:rgba(0,0,0,.5); }
.modal-overlay.active { display:flex; }
.modal-content { width:420px; max-width:100%; max-height:90svh; overflow:auto; background:var(--paper); border:2px solid var(--control-border); border-radius:10px; padding:24px; box-shadow:var(--panel-shadow,none); }
.modal-header { display:flex; justify-content:space-between; align-items:center; margin-bottom:20px; }
.modal-header h3 { margin:0; }
.modal-close { background:none; border:0; font-size:26px; }
.modal-body .fg { margin:14px 0; }
.modal-body label { display:block; margin-bottom:6px; font-size:14px; }
.modal-body input:not([type=checkbox]) { width:100%; padding:10px; border:2px solid var(--control-border); border-radius:8px; background:var(--paper); color:var(--ink); font:inherit; }
.modal-body .btn { width:100%; border:2px solid var(--control-border); border-radius:8px; background:var(--ink); color:var(--paper); padding:10px; }
.modal-body a { color:inherit; text-decoration:underline; }
.modal-body p { font-size:13px; line-height:1.7; }
#register-fields,#forgot-fields,#login-success { display:none; }
#login-success { text-align:center; }
#login-msg,#reg-msg,#forgot-msg { color:var(--danger); }
.email-wrap { position:relative; }
.email-suggest { display:none; position:absolute; background:var(--paper); border:2px solid var(--control-border); width:100%; z-index:1; }
.email-suggest.show { display:block; }
.email-suggest div { padding:6px 10px; cursor:pointer; }
.email-suggest div:hover { background:rgba(128,128,128,.15); }
.footer-column a { color:inherit; text-decoration:none; font-size:13px; line-height:1.7; }
.footer-column a:hover { text-decoration:underline; }
.home-user { position:relative; }
.home-user .login { display:flex; align-items:center; gap:7px; }
.home-user .user-name { margin:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; max-width:160px; }
.home-user .user-menu { display:none; position:absolute; top:calc(100% + 6px); right:0; min-width:100%; padding:6px; border:2px solid var(--control-border); border-radius:10px; background:var(--paper); box-shadow:0 8px 24px rgba(0,0,0,.12); }
.home-user .user-menu.show { display:block; }
.home-user .user-menu-item { display:block; width:100%; height:auto; padding:8px 12px; background:none; border:0; border-radius:6px; color:var(--ink); font-size:14px; font-weight:600; text-align:left; white-space:nowrap; }
.home-user .user-menu-item:hover { background:rgba(128,128,128,.12); }
.user-menu-divider { height:1px; background:var(--control-border); margin:4px 6px; }
#account-status { position:fixed; bottom:24px; left:50%; transform:translateX(-50%); z-index:9000; border-radius:8px; background:var(--paper); color:var(--ink); max-width:90vw; }
#account-status:not(:empty) { padding:10px 18px; border:2px solid var(--control-border); }
@media(max-width:959px) { .home-user .user-name { max-width:110px; } }

.utilities,.home-user { min-width:0; }
.home-user .login { width:100%; white-space:nowrap; }
.home-user .login svg { flex-shrink:0; }
.home-user .user-name { min-width:0; flex:1; }
@media(max-width:959px) { .home-header { gap:8px; } .utilities { gap:4px; } .home-user .login { gap:4px; } }
