/* Account UI, owned by kakenhi-minimal. Scoped styles; no changes to PMPro/Nextend global admin. */
.kcom-header-account { position:relative; z-index:200; display:flex; align-items:center; min-width:44px; flex:0 0 auto; margin-left:8px; }
.km-auth,.km-login{font-family:inherit;color:#1F2937;font-size:14px;line-height:1.6;}
.km-auth *, .km-login *{box-sizing:border-box;}
.km-auth{position:relative;}
.km-auth__details{position:relative;}
.km-auth__trigger{display:flex;align-items:center;gap:8px;min-height:44px;padding:4px 8px;border:1px solid transparent;border-radius:8px;cursor:pointer;list-style:none;background:#fff;color:#1F2937;font-weight:600;white-space:nowrap;}
.km-auth__trigger::-webkit-details-marker{display:none;}
.km-auth__trigger:hover,.km-auth__details[open]>.km-auth__trigger{background:#F7FAF9;border-color:#D5E4E1;}
.km-auth__avatar{width:30px;height:30px;flex:0 0 30px;display:grid;place-items:center;color:white;background:#0F766E;border-radius:50%;font-size:14px;}
.km-auth__avatar--guest{background:#F1F5F4;color:#0F766E;}
.km-auth__avatar svg{width:18px;height:18px;}
.km-auth__caret{color:#64748B;}
.km-auth__panel{position:absolute;right:0;top:calc(100% + 8px);width:min(320px,calc(100vw - 24px));min-width:0;max-width:calc(100vw - 24px);padding:16px;background:#fff;border:1px solid #D7E1DF;box-shadow:0 12px 28px rgba(0,0,0,.09);border-radius:10px;z-index:10000;text-align:left;overflow-wrap:anywhere;white-space:normal;}
.km-auth__heading{display:block;font-size:16px;margin-bottom:5px;}
.km-auth__micro{font-size:13px;color:#64748B;margin:0 0 14px;}
.km-auth__profile{display:flex;flex-direction:column;gap:3px;border-bottom:1px solid #E5EBE9;padding:2px 4px 11px;min-width:0;}
.km-auth__name{font-size:15px;overflow-wrap:anywhere;}
.km-auth__email{font-size:12px;color:#64748B;overflow-wrap:anywhere;word-break:break-word;}
.km-auth__plan{font-size:12px;color:#0F766E;font-weight:700;padding-top:4px;}
.km-auth__links{display:flex;flex-direction:column;gap:2px;padding-top:9px;}
.km-auth__links a{display:block;min-height:42px;padding:9px;border-radius:6px;text-decoration:none;color:#1F2937;font-weight:500;overflow-wrap:anywhere;}
.km-auth__links a:hover{background:#F7FAF9;color:#0F766E;}
.km-auth__links .km-auth__logout{border-top:1px solid #E5EBE9;margin-top:7px;padding-top:13px;color:#64748B;}
.km-auth__cta,.km-login__primary{display:flex;align-items:center;justify-content:center;min-height:44px;padding:10px 16px;border-radius:8px;background:#0F766E;color:#fff!important;border:1px solid #0F766E;text-decoration:none!important;font-weight:700;text-align:center;}
.km-auth__cta:hover,.km-login__primary:hover{background:#115E59;border-color:#115E59;color:#fff!important;}
.km-auth__google{margin:12px 0 4px;max-width:100%;}
.km-auth__google .nsl-container,.km-login__google .nsl-container{max-width:100%!important;width:100%;}
.km-auth__google a,.km-login__google a{max-width:100%;white-space:normal;overflow-wrap:anywhere;}
.km-login{max-width:480px;margin:20px auto 56px;border:1px solid #E5EBE9;border-radius:12px;background:#fff;padding:clamp(18px,4vw,28px);}
.km-login h2{font-size:22px;margin:0 0 6px;line-height:1.4;}
.km-login__intro{font-size:14px;color:#64748B;margin:0 0 24px;}
.km-login__join{background:#F7FAF9;border:1px solid #E2EBE9;border-radius:10px;padding:16px;margin-bottom:24px;}
.km-login__join strong{font-size:16px;}
.km-login__join p{font-size:13px;color:#64748B;margin:6px 0 14px;}
.km-login__google{margin-top:12px;}
.km-login__hint{font-size:12px;line-height:1.5;color:#64748B;}
.km-login__returning{border-top:1px solid #E5EBE9;padding-top:18px;}
.km-login__returning h3{font-size:17px;margin:0 0 5px;}
.km-login__returning>p{font-size:13px;color:#64748B;margin:0 0 12px;}
.km-login__form{max-width:100%;min-width:0;}
.km-login__form .pmpro_login_wrap{max-width:100%;margin:0;}
.km-login__form input:not([type="checkbox"]):not([type="radio"]){max-width:100%;width:100%;}
/* Nextend can auto-inject its own button at the bottom of the PMPro/embedded WP form. */
/* The custom portal explicitly owns Google placement; hide only the injected copy here. */
.km-login__form .nsl-container,.km-login__form .nsl-container-block,.km-login__form .nsl-container-inline{display:none!important;}
.km-auth__trigger:focus-visible,.km-auth a:focus-visible,.km-login a:focus-visible,.km-login input:focus-visible{outline:3px solid #0F766E;outline-offset:2px;}
@media(max-width:760px){.kcom-header-account{margin-left:auto;margin-right:6px;}.km-auth__trigger-text,.km-auth__caret{display:none;}.km-auth__trigger{padding:4px;}.km-login{margin:12px auto 40px;}}
@media(prefers-reduced-motion:reduce){.km-auth *, .km-login *{scroll-behavior:auto;}}

/* 2026-10-18: image avatars, presentation only */
.km-auth__avatar--photo {padding:0;overflow:hidden;background:#F1F5F4;}
.km-auth__avatar--photo img {display:block;width:100%;height:100%;border-radius:50%;object-fit:cover;}

/* KCOM-20261018: compact display-name label */
/* Desktop: prefer WordPress display_name, retain full value as tooltip and menu title. */
.km-auth__trigger .km-auth__trigger-text {
    display: block;
    min-width: 0;
    max-width: clamp(76px, 12vw, 136px);
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    text-align: left;
}
/* Mobile: existing avatar-only behavior remains intact. */
@media(max-width:760px) {
    .km-auth__trigger .km-auth__trigger-text {display:none;}
}
