.auth-needed .app-shell,.auth-needed .sidebar,.auth-needed .mobile-bottom-nav,.auth-needed .quick-sheet{display:none!important}
.auth-gate{min-height:100dvh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 15% 10%,#238b62 0,#064533 42%,#072a27 100%)}
.auth-gate[hidden]{display:none}
.auth-card{width:min(100%,440px);padding:clamp(28px,5vw,48px);background:#fff;border-radius:26px;box-shadow:0 24px 80px #001b2155;color:#143831}
.auth-card img{display:block;width:190px;max-width:70%;height:auto;margin-bottom:32px}
.auth-card h1{font-size:clamp(24px,4vw,34px);line-height:1.13;margin:0 0 12px}
.auth-card p{color:#526c64;line-height:1.5}
.auth-card form,.auth-card label{display:grid;gap:10px}
.auth-card form{gap:18px;margin:25px 0 14px}
.auth-card input{width:100%;border:1px solid #b9d2c7;border-radius:12px;padding:14px;font:inherit;color:#12392e}
.auth-card input:focus{outline:3px solid #90deb6;border-color:#128653}
.auth-card button{min-height:44px;border-radius:12px;cursor:pointer;font:inherit}
.auth-card button.primary{background:#07834c;color:#fff;border:0;font-weight:700}
.auth-card button:disabled{opacity:.6;cursor:wait}
.auth-card>button{display:block;width:100%;margin-top:12px;padding:10px;border:1px solid #a3c4b6;background:#f4faf7;color:#074c34}
.auth-actions{display:flex;justify-content:space-between;gap:8px}
.auth-actions button{border:0;background:none;color:#087a4c;font-weight:700}
#authMessage,#migrationError{min-height:20px;color:#b03536!important;font-size:14px;margin:0}
.auth-hint{font-size:13px}
.cloud-saving .app-shell,.cloud-saving .sidebar,.cloud-saving .mobile-bottom-nav{pointer-events:none;opacity:.75}
.cloud-saving dialog{pointer-events:none}
.mobile-sync{display:none;color:#12643d;font-weight:700}
@media(max-width:760px){.mobile-sync{display:inline;max-width:90px;font-size:10px;line-height:1.15}}
@media(max-width:520px){.auth-gate{padding:12px}.auth-card{padding:26px 22px}.auth-card img{margin-bottom:20px}}
