.hidden{display:none!important}.auth-login-button{height:34px;padding:0 15px;border:1px solid #bfd3f4;border-radius:9px;background:linear-gradient(145deg,#fff,#edf5ff);color:#2369d2;font:700 10px inherit;display:flex;align-items:center;gap:6px;cursor:pointer;box-shadow:0 7px 20px #2d6ecb14}.auth-login-button span{font-size:16px}.auth-login-button:hover{border-color:#7da8ed;transform:translateY(-1px)}
.auth-profile{position:relative}.auth-profile-toggle{border:0;background:transparent;display:grid;grid-template-columns:36px auto 12px;gap:8px;align-items:center;text-align:left;padding:3px 5px;border-radius:10px;cursor:pointer}.auth-profile-toggle:hover,.auth-profile.open .auth-profile-toggle{background:#edf4ff}.auth-profile-toggle .avatar{width:34px;height:34px}.auth-profile-toggle .user{display:block}.auth-profile-toggle .user b,.auth-profile-toggle .user small{display:block}.auth-profile-toggle .user small{max-width:175px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.auth-profile-toggle>i{font-style:normal;color:#7c8da5;font-size:9px}
.auth-profile-menu{display:none;position:absolute;right:0;top:46px;width:255px;padding:10px;background:#ffffffee;border:1px solid #dce7f6;border-radius:13px;box-shadow:0 18px 50px #18335e24;backdrop-filter:blur(18px);z-index:50}.auth-profile.open .auth-profile-menu{display:block}.auth-menu-identity{padding:7px 8px 11px;border-bottom:1px solid #e8edf5}.auth-menu-identity b,.auth-menu-identity span,.auth-menu-identity small{display:block}.auth-menu-identity b{font-size:11px;color:#243854}.auth-menu-identity span{width:max-content;margin:5px 0 3px;padding:2px 6px;border-radius:12px;background:#e8f1ff;color:#3971bc;font-size:8px;font-weight:700}.auth-menu-identity small{color:#8997a9;font-size:8px}.auth-profile-menu>button{width:100%;border:0;background:transparent;color:#53657d;text-align:left;padding:9px 8px;border-radius:7px;font:9px inherit;cursor:pointer}.auth-profile-menu>button:hover{background:#f0f5fb}.auth-profile-menu>button.danger{color:#a45d63}.tenant-switch{display:flex;flex-direction:column;gap:5px;padding:10px 8px;color:#718097;font-size:8px}.tenant-switch select{width:100%;height:31px;border:1px solid #d7e2f0;border-radius:7px;background:#fff;padding:0 7px;color:#354c6b;font:9px inherit}
.auth-modal{display:none;position:fixed;inset:0;background:#0f274a55;backdrop-filter:blur(9px);z-index:1000;align-items:center;justify-content:center;padding:24px}.auth-modal.open{display:flex}.auth-card{width:min(820px,96vw);min-height:515px;display:grid;grid-template-columns:330px 1fr;position:relative;overflow:hidden;border:1px solid #ffffffaa;border-radius:22px;background:#fff;box-shadow:0 30px 90px #102c5c42}.auth-close{position:absolute;right:16px;top:14px;width:30px;height:30px;border:0;border-radius:50%;background:#f1f5fa;color:#6f7f94;font-size:20px;cursor:pointer;z-index:2}.auth-art{position:relative;overflow:hidden;padding:34px;background:linear-gradient(150deg,#163a72,#286cd2 55%,#74a7ed);color:#fff;display:flex;flex-direction:column}.auth-art:before,.auth-art:after{content:"";position:absolute;border-radius:50%;background:#ffffff13}.auth-art:before{width:320px;height:320px;right:-170px;top:-100px}.auth-art:after{width:260px;height:260px;left:-140px;bottom:-110px}.auth-art>.brand-mark{width:50px;height:50px;background:#ffffff20;border:1px solid #ffffff55;box-shadow:none;position:relative;z-index:1}.auth-art>div{margin:auto 0;position:relative;z-index:1}.auth-art small{font-size:8px;letter-spacing:.18em;color:#bcd4fa}.auth-art h2{font-size:25px;line-height:1.3;margin:12px 0}.auth-art p{font-size:10px;line-height:1.8;color:#d9e7fb}.auth-art ul{position:relative;z-index:1;margin:0;padding:0;display:grid;gap:7px;list-style:none}.auth-art li{padding:7px 9px;border:1px solid #ffffff28;border-radius:7px;background:#ffffff0d;font-size:8px;color:#e4efff}.auth-art li:before{content:"✓";margin-right:7px;color:#8de0c1}
.auth-form-area{padding:52px 58px 34px;display:flex;flex-direction:column;justify-content:center}.auth-form-area>section>h2{font-size:23px;margin:7px 0 5px;color:#172b4a}.auth-form-area>section>p{margin:0 0 22px;color:#7c899b;font-size:9px}.auth-kicker{color:#2a72d7;font-size:9px;font-weight:800;letter-spacing:.09em}.auth-form-area form{display:grid;gap:14px}.auth-form-area label{display:flex;flex-direction:column;gap:6px;color:#40536d;font-size:9px;font-weight:700}.auth-form-area input{height:40px;border:1px solid #d9e3f0;border-radius:8px;background:#f9fbfe;padding:0 12px;color:#273b59;font:10px inherit;outline:0}.auth-form-area input:focus{border-color:#6e9fe8;box-shadow:0 0 0 3px #367ce51a;background:#fff}.auth-form-area form>.primary{height:42px;border:0;margin-top:2px}.auth-form-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.auth-help{display:block;margin-top:17px;color:#8b97a7;font-size:8px;text-align:center}.auth-error{min-height:20px;margin-top:12px;color:#b65c65;font-size:9px;text-align:center}.auth-text-button{border:0;background:transparent;color:#3575ce;font:9px inherit;cursor:pointer}
.tenant-admin-toolbar{display:flex;align-items:end;gap:8px;margin-bottom:13px}.tenant-admin-toolbar label{flex:1;display:flex;flex-direction:column;gap:5px;color:#546779;font-size:9px}.tenant-admin-toolbar select,.access-create-grid input,.access-create-grid select{height:33px;border:1px solid #dce5ee;border-radius:7px;background:#fff;padding:0 9px;color:#344b65;font:9px inherit}.access-create-grid{display:grid;grid-template-columns:.85fr 1.4fr;gap:10px;margin-bottom:14px}.access-create-grid>section{border:1px solid #e1e8f0;border-radius:10px;background:linear-gradient(145deg,#fff,#f7faff);padding:12px}.access-create-grid>section>span{display:block;margin-bottom:8px;color:#30465f;font-size:10px;font-weight:800}.access-create-grid>section>small{display:block;margin-top:7px;color:#8996a5;font-size:8px}.inline-create{display:flex;gap:6px}.inline-create input{min-width:0;flex:1}.inline-create button,.member-create-fields button{border:0;border-radius:7px;background:#397bd8;color:#fff;padding:0 11px;font:700 8px inherit;cursor:pointer}.member-create-fields{display:grid;grid-template-columns:1fr 1.3fr;gap:6px}.member-create-fields button{min-height:33px}.member-table{border:1px solid #e0e7ef;border-radius:10px;overflow:hidden}.member-table-head,.member-row{display:grid;grid-template-columns:minmax(180px,1.6fr) 115px 65px 95px 115px;align-items:center;gap:8px}.member-table-head{padding:8px 11px;background:#f3f6fa;color:#8190a3;font-size:8px}.member-row{padding:10px 11px;border-top:1px solid #ebf0f5}.member-row>div b,.member-row>div small{display:block}.member-row>div b{font-size:9px;color:#31475f}.member-row>div small{font-size:7px;color:#8c98a7;margin-top:2px}.role-chip,.state-chip{width:max-content;padding:3px 6px;border-radius:12px;font-size:7px;font-weight:700}.role-chip{background:#e8f1fe;color:#356ebd}.state-chip.active{background:#e5f4ed;color:#397a61}.state-chip.disabled{background:#f6e9e9;color:#9d5e62}.member-row time{font-size:8px;color:#768599}.member-actions{display:flex;gap:5px}.member-actions button{border:1px solid #dce4ed;border-radius:5px;background:#fff;color:#597088;padding:4px 6px;font:7px inherit;cursor:pointer}.member-actions button:hover{background:#edf4fb}.member-empty{padding:35px;text-align:center;color:#8b98a7;font-size:9px}
.auth-agreement{display:grid!important;grid-template-columns:15px 1fr;align-items:start;gap:8px!important;line-height:1.55;font-weight:500!important;color:#718198!important}.auth-agreement input{width:14px!important;height:14px!important;margin:1px 0 0;padding:0!important}.temporary-password{display:flex;align-items:center;gap:8px;margin:24px 0;padding:14px;border:1px solid #cfe0f7;border-radius:12px;background:#f4f8ff}.temporary-password code{flex:1;color:#1f5eaf;font-size:18px;font-weight:800;letter-spacing:.08em;user-select:all}.temporary-password button{height:30px;padding:0 12px;border:0;border-radius:7px;background:#e0ecff;color:#2968ba;font:700 8px inherit;cursor:pointer}
.privacy-guard{margin-left:auto;padding:8px 11px;border:1px solid #cfe9e2;border-radius:8px;background:#f0faf7;color:#438171;font-size:8px;font-weight:700}.access-create-grid.admin-create-only{grid-template-columns:1fr}.admin-create-only .member-create-fields{grid-template-columns:.8fr 1.2fr 1.1fr .9fr auto}.member-table-head,.member-row{grid-template-columns:minmax(180px,1.5fr) 105px 65px 85px minmax(190px,1.25fr)}.member-actions{flex-wrap:wrap}.member-actions button.danger{border-color:#f1d5d8;color:#a85a62;background:#fff8f8}.member-actions button:disabled{opacity:.45;cursor:not-allowed}.member-locked{color:#9aa5b3;font-size:7px}.role-chip.super_admin{background:#ece9ff;color:#6657b4}.role-chip.operations_admin{background:#fff0dc;color:#9b681f}.role-chip.site_user{background:#e6f2ff;color:#356ebd}
body.auth-pending .app-shell,body.auth-anonymous .app-shell{display:none!important}body.auth-pending,body.auth-anonymous{overflow:hidden}body.auth-anonymous #startResearch,body.auth-anonymous [data-generate-selected],body.auth-anonymous .report-actions button{pointer-events:none;opacity:.48}.permission-hidden{display:none!important}
@media(max-width:850px){.auth-card{grid-template-columns:1fr;max-height:92vh;overflow:auto}.auth-art{min-height:185px;padding:25px}.auth-art>div{margin:18px 0}.auth-art ul{grid-template-columns:repeat(3,1fr)}.auth-form-area{padding:35px}.access-create-grid{grid-template-columns:1fr}.member-table-head{display:none}.member-row{grid-template-columns:1fr auto;row-gap:7px}.member-row>:nth-child(2),.member-row>:nth-child(3),.member-row>:nth-child(4){display:none}}
@media(max-width:850px){.admin-create-only .member-create-fields{grid-template-columns:1fr}.privacy-guard{display:none}.tenant-admin-toolbar{align-items:stretch;flex-direction:column}}

/* 2026-08 login experience: full-page location-intelligence welcome screen */
.auth-modal{
  padding:clamp(18px,3vw,46px)!important;
  background:url("./assets/auth-location-background-v2.png") center/cover no-repeat!important;
  backdrop-filter:none!important;
}
.auth-card{
  width:min(1480px,96vw)!important;
  height:min(850px,91vh);
  min-height:620px!important;
  grid-template-columns:minmax(0,1fr) minmax(390px,455px)!important;
  gap:clamp(34px,5vw,86px);
  align-items:center;
  overflow:visible!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
.auth-close{
  right:12px!important;
  top:12px!important;
  background:#fff!important;
  border:1px solid #dfe8f5!important;
  box-shadow:0 8px 22px rgba(31,75,143,.12);
}
.auth-art{
  height:100%;
  min-width:0;
  overflow:visible!important;
  padding:8px 0 22px clamp(6px,1vw,18px)!important;
  color:#18335e!important;
  background:transparent!important;
  display:flex!important;
  flex-direction:column;
}
.auth-art:before,.auth-art:after{display:none!important}
.auth-brand{
  display:flex;
  align-items:center;
  gap:13px;
  margin:0!important;
  position:relative;
  z-index:1;
  transform:translateY(-12px);
}
.auth-brand>img{
  width:54px;
  height:54px;
  object-fit:contain;
  flex:none;
  filter:drop-shadow(0 8px 16px rgba(29,102,226,.16));
}
.auth-brand>div{display:flex;flex-direction:column;gap:5px}
.auth-brand b{font-size:21px;line-height:1;color:#102c56;letter-spacing:.06em}
.auth-brand span{font-size:9px;color:#607896;letter-spacing:.08em;font-weight:600}
.auth-intro{
  position:relative;
  z-index:1;
  width:min(760px,94%);
  margin:clamp(28px,5vh,54px) 0 0 20px!important;
}
.auth-intro h1{
  margin:0!important;
  color:#10294f!important;
  font-size:clamp(38px,3.25vw,56px)!important;
  line-height:1.16!important;
  letter-spacing:-.045em;
  white-space:nowrap;
}
.auth-intro h1 strong{color:#2d72eb;font-weight:800}
.auth-intro p{
  max-width:690px;
  margin:20px 0 0!important;
  color:#5f7390!important;
  font-size:14px!important;
  line-height:1.85!important;
}
.auth-intro i{
  display:block;
  width:42px;
  height:4px;
  margin-top:20px;
  border-radius:8px;
  background:linear-gradient(90deg,#216df5,#79adff);
}
.auth-features{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:repeat(4,minmax(120px,1fr));
  gap:clamp(12px,1.8vw,30px);
  width:min(790px,95%);
  margin:42px 0 0 34px;
}
.auth-features article{
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
}
.auth-features .ui-icon{
  width:34px!important;
  height:34px!important;
  padding:7px;
  flex:none;
  color:#2874ed;
  border-radius:11px;
  background:rgba(255,255,255,.7);
  box-shadow:0 9px 24px rgba(54,105,178,.12);
  stroke-width:1.8;
}
.auth-features b,.auth-features span{display:block}
.auth-features b{color:#29405f;font-size:11px;white-space:nowrap}
.auth-features span{margin-top:4px;color:#8090a6;font-size:8px;white-space:nowrap}
.auth-form-area{
  width:100%;
  max-height:88vh;
  overflow:auto;
  padding:clamp(38px,5vh,58px) clamp(34px,3vw,52px)!important;
  border:1px solid rgba(255,255,255,.92);
  border-radius:22px;
  background:rgba(255,255,255,.86)!important;
  box-shadow:0 28px 78px rgba(37,82,150,.16);
  backdrop-filter:blur(24px) saturate(1.08);
}
.auth-form-area>section>h2{
  margin:9px 0 7px!important;
  color:#132d53!important;
  font-size:28px!important;
  line-height:1.25;
}
.auth-form-area>section>p{
  margin:0 0 28px!important;
  color:#73839a!important;
  font-size:11px!important;
}
#loginPanel>.auth-kicker,#loginPanel>h2,#loginPanel>p{text-align:center;display:block}
.auth-kicker{color:#2b72dd!important;font-size:8px!important;letter-spacing:.16em!important}
.auth-form-area form{gap:17px!important}
.auth-form-area label{gap:7px!important;color:#465b77!important;font-size:10px!important}
.auth-form-area input{
  height:50px!important;
  padding:0 15px!important;
  border-color:#dce6f2!important;
  border-radius:9px!important;
  background:rgba(255,255,255,.9)!important;
  color:#283e5c!important;
  font-size:11px!important;
}
.auth-form-area input::placeholder{color:#a3afbf}
.auth-form-area form>.primary{
  height:50px!important;
  margin-top:4px!important;
  border-radius:9px!important;
  font-size:12px!important;
  box-shadow:0 11px 28px rgba(38,111,235,.23)!important;
}
.auth-security{
  display:flex;
  justify-content:center;
  gap:24px;
  margin-top:15px;
  color:#8190a4;
  font-size:8px;
}
.auth-security span:first-child{color:#4f8d7a}
.auth-help{margin-top:18px!important;font-size:9px!important}
.auth-text-button{font-size:9px!important}
.auth-error{font-size:9px!important}

@media(max-width:1180px){
  .auth-card{grid-template-columns:minmax(0,1fr) minmax(365px,430px)!important;gap:28px}
  .auth-intro{margin-left:12px!important}
  .auth-features{grid-template-columns:repeat(2,minmax(150px,1fr));margin-left:12px}
}

/* Registration consent stays on one baseline instead of inheriting stacked form labels. */
.auth-form-area label.auth-agreement{
  display:flex!important;
  flex-direction:row!important;
  align-items:center!important;
  gap:9px!important;
  line-height:1.5!important;
}
.auth-form-area label.auth-agreement input{
  width:14px!important;
  height:14px!important;
  min-width:14px!important;
  flex:0 0 14px!important;
  margin:0!important;
}
@media(max-width:900px){
  .auth-modal{padding:18px!important;background-position:34% center!important}
  .auth-card{width:min(500px,96vw)!important;height:auto;min-height:0!important;display:block!important}
  .auth-art{display:none!important}
  .auth-form-area{max-height:92vh;padding:34px 28px!important}
  .auth-form-area:before{
    content:"云选通 · AI 智能选址决策平台";
    display:block;
    margin-bottom:24px;
    color:#1a3b68;
    text-align:center;
    font-size:12px;
    font-weight:800;
    letter-spacing:.04em;
  }
  .auth-close{right:9px!important;top:9px!important}
}
@media(max-width:520px){
  .auth-modal{padding:10px!important}
  .auth-form-area{padding:29px 20px!important;border-radius:17px}
  .auth-form-row{grid-template-columns:1fr!important}
  .auth-security{gap:12px}
}
