:root{--sidebar-width:252px;--safe-bottom:env(safe-area-inset-bottom,0px)}
html{overflow-x:hidden}
body{overflow-x:hidden;-webkit-tap-highlight-color:transparent}
button,a,select,input{touch-action:manipulation}
input,select,textarea{min-height:50px}
select{appearance:auto;cursor:pointer}
.city-select{width:100%;text-overflow:ellipsis}
.location-selects{display:grid;grid-template-columns:1fr;gap:8px;margin-top:7px}
.location-selects select{margin-top:0}
.time-selects>label{min-width:0}
.time-selects select{font-variant-numeric:tabular-nums}

/* 轻量进入动效 */
@keyframes rise-in{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
@keyframes soft-fade{from{opacity:0}to{opacity:1}}
.page>.alert,.dashboard-head,.membership-hero,.form-layout,.report-head{animation:rise-in .42s cubic-bezier(.2,.8,.2,1) both}
.people-grid>*,.plan-grid>*,.stats>*{animation:rise-in .38s cubic-bezier(.2,.8,.2,1) both}
.people-grid>*:nth-child(2),.plan-grid>*:nth-child(2),.stats>*:nth-child(2){animation-delay:.05s}
.people-grid>*:nth-child(3),.plan-grid>*:nth-child(3),.stats>*:nth-child(3){animation-delay:.1s}
.person-card,.plan-card,.stats article,.button{will-change:transform;transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}
.person-card:hover,.plan-card:hover{transform:translateY(-3px);border-color:rgba(180,138,60,.45);box-shadow:0 18px 42px rgba(23,59,43,.1)}

/* 后台左侧导航 */
.admin-menu-button{display:none;border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:999px;padding:8px 14px;font-size:12px;font-weight:700}
.admin-shell{min-height:calc(100vh - 76px)}
.admin-sidebar{position:fixed;left:0;top:76px;bottom:0;width:var(--sidebar-width);z-index:42;background:var(--ink);color:#f8f3e8;padding:30px 20px 22px;display:flex;flex-direction:column;box-shadow:14px 0 40px rgba(23,59,43,.08)}
.sidebar-heading{padding:2px 12px 24px;border-bottom:1px solid rgba(255,255,255,.11)}
.sidebar-heading small{display:block;color:#c8ae74;font-size:10px;letter-spacing:2px}
.sidebar-heading strong{display:block;font-family:serif;font-size:24px;margin-top:6px}
.sidebar-nav{display:flex;flex-direction:column;gap:7px;padding-top:22px}
.sidebar-nav a{display:flex;align-items:center;gap:13px;padding:12px 14px;border-radius:10px;color:#b8c6bf;font-size:14px;transition:.2s ease}
.sidebar-nav a span{color:#8fa198;font-size:10px;font-variant-numeric:tabular-nums}
.sidebar-nav a:hover,.sidebar-nav a.active{background:rgba(220,196,135,.14);color:#f7e4b5;transform:translateX(3px)}
.sidebar-nav a.active span{color:#ddc487}
.sidebar-foot{margin-top:auto;border-top:1px solid rgba(255,255,255,.11);padding:18px 12px 0;display:flex;flex-direction:column;gap:8px}
.sidebar-foot a{color:#ddc487;font-size:12px}.sidebar-foot small{color:#71877c;font-size:10px}
.admin-page{max-width:none;margin-left:var(--sidebar-width);padding-left:42px;padding-right:42px}
.is-admin>footer{margin-left:var(--sidebar-width)}
.sidebar-overlay{display:none}
.admin-form{max-width:1080px}
.admin-page .section-block{max-width:1280px}

/* 更稳健的内容宽度 */
.plan-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,270px),1fr))}
.membership-hero{overflow:hidden;position:relative}
.membership-hero:after{content:"";position:absolute;width:290px;height:290px;border:1px solid rgba(220,196,135,.16);border-radius:50%;right:-90px;top:-100px;box-shadow:0 0 0 54px rgba(220,196,135,.035)}
.member-badge{position:relative;z-index:1}
.form-card{overflow:hidden}

@media(max-width:980px){
  .form-layout,.auth-shell{grid-template-columns:minmax(0,1fr) minmax(340px,460px);gap:40px}
  .form-layout h1,.auth-copy h1{font-size:44px}
  .admin-page{padding-left:28px;padding-right:28px}
}

@media(max-width:820px){
  body{padding-bottom:var(--safe-bottom)}
  .topbar{height:calc(64px + env(safe-area-inset-top,0px));padding-top:env(safe-area-inset-top,0px)}
  .admin-menu-button{display:inline-flex;margin-left:auto;margin-right:10px}
  .admin-sidebar{top:calc(64px + env(safe-area-inset-top,0px));width:min(82vw,300px);transform:translateX(-105%);transition:transform .28s cubic-bezier(.2,.8,.2,1)}
  body.sidebar-open{overflow:hidden}
  body.sidebar-open .admin-sidebar{transform:translateX(0)}
  .sidebar-overlay{display:block;position:fixed;inset:calc(64px + env(safe-area-inset-top,0px)) 0 0;background:rgba(12,28,20,.46);border:0;z-index:41;opacity:0;visibility:hidden;transition:.25s}
  body.sidebar-open .sidebar-overlay{opacity:1;visibility:visible}
  .admin-page{margin-left:0;padding-left:15px;padding-right:15px}
  .is-admin>footer{margin-left:0}
  .form-layout,.auth-shell{grid-template-columns:1fr;gap:18px;min-height:auto}
  .form-layout>section:first-child,.auth-copy{padding:7px 4px}
  .form-layout h1,.auth-copy h1{font-size:clamp(32px,10vw,42px);margin-bottom:10px}
  .form-layout>section:first-child p,.auth-copy p{font-size:14px;margin-bottom:0}
  .form-card,.auth-card,.admin-form{padding:24px 20px}
  .form-card label{margin:12px 0}
  .field-row.time-selects{display:grid;grid-template-columns:1fr 1fr;gap:12px}
  input,select,textarea{font-size:16px}
  .button{min-height:48px}
  .membership-hero{padding:29px 24px}
  .membership-hero h1{font-size:clamp(32px,9vw,40px)}
  .plan-grid{grid-template-columns:1fr}
  .plan-card{padding:24px}
  .plan-card p,.plan-card ul{min-height:0}
  .dashboard-head{gap:18px}
  .dashboard-head>.button{width:100%}
  .section-block{padding:22px 18px}
  .table-wrap{margin-left:-18px;margin-right:-18px;padding:0 18px;scrollbar-width:thin}
}

@media(max-width:430px){
  .page{padding-left:12px;padding-right:12px}
  .topbar{padding-left:12px;padding-right:12px}
  .brand{font-size:16px}.brand-mark{width:36px;height:36px}
  .form-card,.auth-card{padding:22px 17px;border-radius:15px}
  .stats{grid-template-columns:1fr 1fr;gap:10px}
  .stats article{padding:18px;min-height:100px}
  .stats strong{font-size:23px}
  .person-card{padding:20px}
  .report-head{padding:27px 21px}
  .report-card{padding:22px 16px}
  .pillars{grid-template-columns:repeat(4,minmax(0,1fr))}
  .pillar b{font-size:22px;margin:6px 1px}
  .pillar small,.pillar span,.pillar em{font-size:10px}
}

@media(max-width:350px){
  .stats{grid-template-columns:1fr}
  .field-row.time-selects{grid-template-columns:1fr}
  .topbar nav{gap:7px}.nav-cta{padding:8px 12px}
}

@media(hover:none){
  .person-card:hover,.plan-card:hover,.button:hover{transform:none}
}

@media(prefers-reduced-motion:reduce){
  *,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}

