.nc-auth { box-sizing: border-box; max-width: 580px; margin: 28px auto; padding: clamp(22px,4vw,38px); border: 1px solid #bed3df; border-radius: 16px; background: #fff; color: #092443; }
.nc-auth h2 { font-size: clamp(24px,4vw,32px); margin-top: 0; }
.nc-auth-identity { display:flex; align-items:center; gap:12px; margin-block:20px; overflow-wrap:anywhere; }
.nc-auth-identity .nc-user-avatar { width:48px; height:48px; flex-basis:48px; font-size:1rem; }
.nc-auth p { line-height: 1.6; text-indent: 0; }
.nc-auth button, .nc-auth-primary { font: inherit; padding: 12px 20px; min-height: 44px; border-radius: 8px; cursor: pointer; }
.nc-auth-primary { box-sizing: border-box; display: block; width: 100%; margin: 16px 0; background: #007e90; color: #fff; border: 0; text-align: center; text-decoration: none; font-weight: 700; }
.nc-auth button:disabled { opacity: .6; cursor: not-allowed; }
.nc-auth-links { display: flex; flex-wrap: wrap; gap: 12px 22px; margin: 18px 0; }
.nc-auth small { display: block; color: #526b84; margin-top: 18px; }
.nc-price-access { padding: 12px; border-radius: 8px; background: #eaf4f6; font-size: .85rem; }
.nc-price-access p { margin: 0 0 8px; }
.nc-price-access a { color: #007588; text-decoration: underline; }
.nc-auth [hidden] { display:none !important; }
.nc-auth label { display:block; margin:14px 0; font-size:.92rem; font-weight:600; }
.nc-auth input:not([type="hidden"]):not([type="checkbox"]) { display:block; box-sizing:border-box; width:100%; padding:11px 12px; margin-top:6px; min-height:44px; border:1px solid #bed3df; border-radius:7px; font:inherit; color:#092443; background:#fff; }
.nc-auth input:focus-visible { outline:2px solid #00899a; outline-offset:2px; }
.nc-auth .nc-auth-consent { display:flex; align-items:flex-start; gap:8px; font-weight:400; font-size:.82rem; line-height:1.5; }
.nc-auth-alternative { font-size:.83rem; margin-top:18px; }
.nc-auth-alternative summary { cursor:pointer; color:#526b84; }
.nc-auth-message:empty { display:none; }
.nc-auth input[readonly] { background:#f2f6f8; color:#40546a; }
.nc-auth-message.is-success { color:#075268; background:#eaf7f4; border:1px solid #9bcbbc; border-left:4px solid #16836a; border-radius:6px; padding:14px; }
.nc-auth-message { font-size:.9rem; padding:10px 0 0; }
.nc-auth-error, .nc-auth-message.is-error { color:#9b1c1c; background:#fff1f1; border:1px solid #e6a3a3; border-left:4px solid #b42318; border-radius:6px; padding:12px 14px; overflow-wrap:anywhere; }
.nc-auth-working, .nc-auth-working * { cursor:wait !important; }
.nc-auth [data-auth-controls][inert] { opacity:.65; }
.nc-auth-message.is-busy { display:flex; align-items:center; gap:12px; padding:14px; margin-bottom:0; border-radius:8px; background:#eaf4f6; color:#075268; }
.nc-auth-message.is-busy::before { content:""; width:20px; height:20px; box-sizing:border-box; flex:0 0 20px; border:3px solid #007e9033; border-top-color:#007e90; border-radius:50%; animation:nc-auth-spin .8s linear infinite; }
.nc-auth-close:disabled { opacity:.45; }
@keyframes nc-auth-spin { to { transform:rotate(360deg); } }
@media (prefers-reduced-motion:reduce) { .nc-auth-message.is-busy::before { animation:none; } }
.nc-auth-modal { box-sizing:border-box; padding:0; border:1px solid #bed3df; border-radius:18px; width:min(540px,calc(100% - 24px)); max-height:calc(100dvh - 32px); color:#092443; background:#fff; box-shadow:0 20px 80px #032c4566; }
.nc-auth-modal::backdrop { background:#05284088; backdrop-filter:blur(3px); }
.nc-auth-modal .nc-auth { margin:0; padding:32px; border:0; max-width:none; }
.nc-auth-close { position:sticky; top:10px; float:right; display:grid; place-items:center; box-sizing:border-box; margin:10px 12px -40px 0; padding:0; border:0; background:#eef5f7; color:#092443; width:32px; height:32px; min-height:0; border-radius:50%; line-height:1; cursor:pointer; z-index:1; }
.nc-auth-close svg { display:block; width:18px; height:18px; pointer-events:none; }
.nc-auth-close:hover { background:#dfedf1; }
.nc-auth-close:focus-visible { outline:2px solid #00899a; outline-offset:2px; }
.nc-cloud-dialog .nc-cloud-message { overflow-wrap:anywhere; }
.nc-cloud-dialog .nc-cloud-actions { display:flex; flex-wrap:wrap; gap:10px; }
.nc-cloud-dialog .nc-cloud-actions button:not(.nc-auth-primary) { background:#fff; color:#007588; border:1px solid #bed3df; }
.nc-cloud-dialog .nc-cloud-actions .nc-auth-primary { margin:0; }
.nc-cloud-dialog [hidden] { display:none !important; }
.nc-user-avatar { position:relative; overflow:hidden; }
.nc-user-avatar img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; background:#eaf4f6; }
@media (max-width:480px) { .nc-auth-modal .nc-auth { padding:28px 20px 20px; } }
.nc-avatar-editor { margin-top:16px; padding:12px; border:1px solid #bed3df; border-radius:10px; background:#f4f8fa; }
.nc-avatar-composition { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:16px; }
.nc-avatar-stage { position:relative; width:min(200px,100%); aspect-ratio:1; flex-shrink:0; background:#eaf4f6; }
.nc-avatar-stage canvas { display:block; width:100%; height:100%; cursor:grab; touch-action:none; }
.nc-avatar-stage canvas:active { cursor:grabbing; }
.nc-avatar-stage canvas:focus-visible { outline:2px solid #00899a; outline-offset:3px; }
.nc-avatar-mask { position:absolute; inset:0; pointer-events:none; background:radial-gradient(circle closest-side,transparent calc(100% - 1px),#fff calc(100% - 1px),#fff 100%,#092443aa 100%); }
.nc-avatar-sizes { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:14px; }
.nc-avatar-sizes figure { margin:0; display:grid; justify-items:center; gap:6px; }
.nc-avatar-sizes canvas { display:block; border-radius:50%; background:#eaf4f6; }
.nc-avatar-sizes figcaption { color:#526b84; font-size:.72rem; white-space:nowrap; }
.nc-auth .nc-avatar-zoom { display:grid; grid-template-columns:auto minmax(0,1fr) 46px; align-items:center; gap:10px; margin:10px 0 0; font-size:.8rem; }
.nc-auth .nc-avatar-zoom input { margin:0; padding:0; border:0; background:transparent; min-height:44px; accent-color:#007e90; }
.nc-avatar-zoom output { text-align:right; font-variant-numeric:tabular-nums; }
.nc-auth [data-avatar-reset] { padding:6px 10px; min-height:36px; border:1px solid #bed3df; background:#fff; font-size:.8rem; }

.nc-auth-password { position:relative; }
.nc-auth .nc-auth-password input { padding-right:100px; }
.nc-auth-password-actions { position:absolute; right:1px; bottom:1px; display:flex; }
.nc-auth .nc-auth-password-button { display:grid; place-items:center; width:44px; min-height:42px; padding:0; border:0; background:transparent; color:#526b84; }
.nc-auth .nc-auth-password-button:hover { color:#007e90; background:#eef5f7; }
.nc-auth .nc-auth-password-button:focus-visible { outline:2px solid #00899a; outline-offset:-3px; }
.nc-auth-password-button svg { pointer-events:none; }
