/* 恒春统一账号、登录与管理界面 */
.company-logo { display:flex; align-items:center; gap:12px; color:inherit; text-decoration:none; font-size:19px; font-weight:750; }
.company-logo img { width:40px; height:40px; flex:none; object-fit:contain; padding:2px; border-radius:50%; background:#fff; box-shadow:0 6px 18px #0711261c; }
.login-intro .company-logo img { width:44px; height:44px; box-shadow:0 8px 24px #02091940; }
.company-logo span { display:flex; flex-direction:column; }
.company-logo small { font-size:10px; letter-spacing:.15em; opacity:.6; margin-top:2px; }
.auth-company-lockup { display:block; width:min(230px,72%); height:auto; margin:0 0 30px; }
.login-page { background:#fff; }
.login-layout { min-height:100vh; display:grid; grid-template-columns:1.05fr 1fr; }
.login-intro { display:flex; flex-direction:column; padding:48px clamp(28px,5vw,88px); color:#fff; background:radial-gradient(ellipse at 90% 50%,#284eac 0,transparent 57%),linear-gradient(145deg,#071126,#13285a); }
.intro-copy { margin:auto 0; padding:64px 0; }
.intro-eyebrow { color:#a6bcf4; font-size:13px; letter-spacing:.08em; }
.intro-copy h1 { font-size:clamp(34px,3.3vw,54px); letter-spacing:-.04em; line-height:1.35; margin:22px 0; }
.intro-copy > p:not(.intro-eyebrow) { color:#b9c7e6; line-height:1.9; font-size:16px; }
.intro-chips { display:flex; gap:12px; flex-wrap:wrap; margin-top:30px; }
.intro-chips span { padding:7px 13px; font-size:12px; border:1px solid #ffffff25; border-radius:99px; background:#ffffff09; }
.intro-footer { font-size:12px; color:#91a5d0; }
.login-form-area { display:flex; align-items:center; justify-content:center; padding:44px 32px; }
.login-card { width:100%; max-width:390px; }
.form-eyebrow { font-size:12px; color:#3867cf; letter-spacing:.05em; font-weight:700; margin:0 0 12px; }
.login-card h2, .management-main h1, .account-main h1 { font-size:30px; line-height:1.3; margin:0 0 12px; color:#132140; }
.form-description { color:#69778f; font-size:14px; line-height:1.75; margin:0 0 28px; }
.field-stack { display:flex; flex-direction:column; gap:18px; }
.field-stack label, label.field-stack { display:flex; flex-direction:column; gap:8px; color:#344054; font-size:13px; font-weight:600; }
.field-stack input, .field-stack select { width:100%; min-width:0; height:46px; padding:10px 13px; border:1px solid #d9e1ee; border-radius:10px; background:#fff; color:#132140; font:inherit; font-weight:400; }
.field-stack small { font-size:12px; font-weight:400; color:#667085; line-height:1.6; }
.solid-button { border:0; border-radius:10px; background:#285ce5; color:white; padding:13px 18px; font-weight:650; cursor:pointer; min-height:46px; }
.solid-button:hover { background:#1d4bc4; }
button:disabled { opacity:.6; cursor:wait; }
.field-stack select:disabled { background:#f1f4f9; color:#667085; }
.login-help { text-align:center; color:#667085; font-size:12px; line-height:1.7; margin:24px 0 0; }
.auth-link { color:#285ce5; text-underline-offset:3px; }
.auth-link-button { padding:0; border:0; background:transparent; color:#285ce5; font:inherit; cursor:pointer; text-decoration:underline; text-underline-offset:3px; }
.forgot-password-dialog { width:min(430px,calc(100% - 32px)); }
.forgot-password-dialog .panel-description { margin-bottom:18px; }
.registrations-panel { margin-bottom:24px; }
.registrations-panel .panel-description { margin-top:12px; }
.registration-filter { max-width:240px; margin:0 0 20px; }
.field-stack textarea { width:100%; resize:vertical; min-height:96px; padding:10px 13px; border:1px solid #d9e1ee; border-radius:10px; font:inherit; color:#132140; }
.form-message { padding:12px 15px; border:1px solid #fecaca; border-radius:10px; background:#fff1f2; color:#a42438; font-size:13px; line-height:1.65; overflow-wrap:anywhere; }
.form-message.is-success { background:#ecfdf5; border-color:#a7f3d0; color:#136d4c; }
.management-page { background:#f5f7fb; }
.management-header { min-height:88px; padding:20px clamp(20px,4vw,64px); display:flex; gap:24px; align-items:center; justify-content:space-between; border-bottom:1px solid #e2e8f0; background:white; }
.management-header nav { display:flex; gap:20px; align-items:center; flex-wrap:wrap; font-size:13px; }
.management-header nav a { color:#4267b4; text-decoration:none; }
.management-header nav span { color:#69778f; }
.management-main { max-width:1280px; margin:0 auto; padding:42px 32px 64px; }
.account-main { max-width:560px; margin:0 auto; padding:48px 24px; }
.panel { background:white; border:1px solid #e1e7f0; border-radius:18px; padding:26px; box-shadow:0 8px 24px #17305305; }
.panel h2 { font-size:18px; margin:0 0 10px; }
.panel-description { font-size:13px; color:#69778f; line-height:1.7; margin:0 0 24px; overflow-wrap:anywhere; }
.admin-layout { display:grid; grid-template-columns:320px minmax(0,1fr); gap:24px; align-items:start; }
.panel-title { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.panel-title h2 { display:flex; align-items:center; gap:8px; margin:0; }
.quiet-button { color:#4267b4; background:#f1f5fc; border:1px solid #e1e8f5; border-radius:8px; padding:8px 12px; cursor:pointer; font-size:12px; white-space:nowrap; }
.quiet-button:hover { background:#e6edfb; }
.page-back-button { display:inline-grid; width:34px; height:34px; flex:none; place-items:center; padding:0 1px 2px 0; border:1px solid #dfe5ee; border-radius:7px; color:#315fc5; background:#fff; font:600 21px/1 Arial,sans-serif; cursor:pointer; }
.page-back-button:hover { border-color:#c9d6ec; color:#244fba; background:#f7f9fc; }
.page-back-button:focus-visible { outline:2px solid #85a8f5; outline-offset:2px; }
.search-users { margin:22px 0; }
.user-list { display:flex; flex-direction:column; gap:12px; }
.user-row { border:1px solid #e5eaf1; border-radius:12px; padding:16px; display:flex; flex-wrap:wrap; gap:12px; align-items:center; }
.user-details { flex:1; min-width:120px; display:flex; flex-direction:column; gap:4px; overflow-wrap:anywhere; }
.user-details strong { font-size:14px; color:#213450; }
.user-details > span { font-size:12px; color:#748096; }
.user-badges { display:flex; flex-wrap:wrap; gap:6px; align-items:center; }
.user-badges > span { font-size:11px; border-radius:6px; padding:4px 7px; background:#f0f4fb; color:#5471a9; }
.user-badges .active { color:#167153; background:#e9f8f1; }
.user-badges .inactive { color:#a45454; background:#fff0f0; }
.user-badges .pending-badge { color:#957028; background:#fff8e8; }
.user-badges .reset-request-badge { color:#a84c16; background:#fff3e8; }
.user-actions { display:flex; gap:6px; }
.user-dialog { width:min(440px,calc(100% - 32px)); max-height:90vh; padding:26px; border:1px solid #e1e7f0; border-radius:18px; box-shadow:0 24px 90px #07112640; }
.user-dialog::backdrop { background:#07112680; backdrop-filter:blur(4px); }
.dialog-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:12px; }
.dialog-heading h2 { font-size:21px; margin:0; }
.account-nav-link { display:flex; align-items:center; gap:10px; padding:10px 13px; color:#b9c7e6; text-decoration:none; font-size:13px; border-radius:10px; }
.account-nav-link:hover { background:#ffffff10; color:#fff; }
.sidebar .logout-button { margin-top:6px; }
a.profile-button { color:inherit; text-decoration:none; cursor:pointer; }
.portal-page .portal-main-area { min-width:0; overflow-x:hidden; }
.portal-page .management-header { position:sticky; top:0; z-index:20; min-height:78px; padding:14px clamp(20px,3vw,42px); background:rgba(255,255,255,.92); backdrop-filter:blur(18px); }
.portal-page .management-main { width:100%; padding-top:36px; }
.portal-page .account-main { width:min(100%,608px); padding-top:44px; }
.portal-page .management-header nav { margin-left:auto; }
.portal-page .portal-sidebar .brand-copy strong { color:#fff; text-decoration:none; }
.portal-page .portal-sidebar .brand-copy span { color:rgba(255,255,255,.44); text-decoration:none; }
.portal-menu-button { flex:none; }
@media (max-width:1000px) { .admin-layout { grid-template-columns:280px minmax(0,1fr); gap:16px; } .panel { padding:20px; } }
@media (min-width:881px) { .portal-page .portal-sidebar { visibility:visible; transform:none; } }
@media (max-width:880px) { .portal-page .management-header { padding:14px 20px; } .portal-page .management-header .company-logo { margin-right:auto; } }
@media (max-width:760px) {
  .login-layout { grid-template-columns:1fr; }
  .login-intro { padding:24px; }
  .intro-copy { padding:26px 0 0; }
  .intro-copy h1 { font-size:29px; margin:14px 0; }
  .intro-copy h1 br { display:none; }
  .intro-copy > p:not(.intro-eyebrow), .intro-footer, .intro-chips { display:none; }
  .login-form-area { padding:32px 24px 48px; }
  .auth-company-lockup { width:190px; margin-bottom:24px; }
  .management-header { align-items:flex-start; flex-direction:column; gap:16px; }
  .management-header nav { gap:14px; }
  .management-main { padding:28px 16px; }
  .admin-layout { grid-template-columns:1fr; }
  .account-main { padding:32px 16px; }
  .user-actions { width:100%; }
}
