.access-pending main { visibility: hidden; }
.account-controls { display: flex; align-items: center; gap: 12px; font-size: 12px; color: #3c6d62; }
.account-controls button { padding: 6px 10px; }
.viewer-mode :is(#convert-open,#import-open,#tab-boq,#tab-draft,#tab-convert,#tab-feishu,
  #project-import,#catalog-upload-panel,#catalog-discount-panel,#detail-edit-images,#add-draft,
  #review-form button,.top-link[href="/backup.zip"]) { display: none !important; }
.viewer-mode #review-form :disabled { opacity: 1; color: #274b44; background: #f3f9f7; }
.login-page { min-height: 100vh; display: grid; place-items: center; padding: 28px 18px;
  background: radial-gradient(ellipse at 15% 15%,#d7f7e9,transparent 55%),#f2f9f6; }
.login-card { width: min(100%,480px); margin: 0; padding: 34px; background: #ffffffec;
  border: 1px solid #cde8dd; border-radius: 24px; box-shadow: 0 20px 60px #1c806916; }
.login-mascots { display: block; object-fit: contain; margin: 0 auto 14px; }
.login-card h1 { font-size: 29px; margin: 12px 0; }
.login-card h1 span { display: block; font-size: 16px; color: #598275; margin-top: 8px; font-weight: 500; }
.login-card form { display: grid; gap: 18px; margin-top: 26px; }
.login-card label { display: grid; gap: 8px; font-size: 13px; }
.login-card input { width: 100%; min-height: 44px; }
.login-card button { min-height: 46px; }
#login-message { margin: 0; min-height: 20px; font-size: 13px; color: #a33434; }
.login-footnote { padding-top: 18px; border-top: 1px solid #e3eee9; }
@media(max-width:600px) { .account-controls { flex-wrap: wrap; gap: 6px; }
  .topbar { flex-wrap: wrap; } .login-card { padding: 26px; } }
