/* Beic · Shared touch, tablet and mobile interface. */
@font-face{font-family:Inter;src:url('../fonts/inter-400.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:Inter;src:url('../fonts/inter-600.woff2') format('woff2');font-weight:600;font-display:swap}
@font-face{font-family:Inter;src:url('../fonts/inter-700.woff2') format('woff2');font-weight:700;font-display:swap}
@font-face{font-family:Inter;src:url('../fonts/inter-800.woff2') format('woff2');font-weight:800 900;font-display:swap}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%;scroll-padding-top:100px}
body{overflow-wrap:break-word}
button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}
button,a{touch-action:manipulation}
button:focus-visible,a:focus-visible,summary:focus-visible,[tabindex="0"]:focus-visible{outline:2px solid var(--mint);outline-offset:4px}
button:disabled{cursor:not-allowed}
.input{min-width:0;max-width:100%}
.grid>*,.form-grid>*,.field,.page-head>*,.filter-bar>*,.table-wrap{min-width:0}
.card:before{border-radius:inherit}
.page-head h1,.page-head h2{overflow-wrap:anywhere}
.page-head .actions{justify-content:flex-end}
.table-wrap{max-width:100%;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}
.table-scroll-hint{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin:12px 0 7px;font-size:.72rem;color:#9eb6aa}
.skip-link{position:fixed;top:10px;left:10px;z-index:200;background:var(--mint);color:#061d16;padding:12px 18px;border-radius:12px;transform:translateY(-180%)}
.skip-link:focus{transform:none}
.menu-backdrop{position:fixed;inset:0;z-index:65;border:0;border-radius:0;background:rgba(0,8,5,.68);backdrop-filter:blur(5px)}
.sidebar-close{display:none}
.sidebar{display:flex;flex-direction:column;gap:0;z-index:70}
.sidebar .brand{flex:0 0 auto}
.sidebar .nav{min-height:0;flex:1;max-height:none;overflow-y:auto;overscroll-behavior:contain}
.sidebar .sidebar-user{position:static;margin-top:10px;flex:0 0 auto}
.sidebar.collapsed .nav a{overflow:visible}
.sidebar.collapsed .sidebar-user{padding:10px 4px}
.main{min-width:0}
.topbar-title{line-height:1.4}
.topbar-actions{flex-shrink:0}
.menu-open{overflow:hidden}
.card.stat .value{overflow-wrap:anywhere}
.event-attendee{min-width:0}
.event-attendee-person,.event-attendee-actions{min-width:0}
@media(min-width:1200px) and (max-width:1450px){.app-shell{grid-template-columns:242px minmax(0,1fr);gap:13px;padding:12px}.sidebar{top:12px;height:calc(100dvh - 24px);padding-inline:13px}.sidebar .nav a{font-size:.85rem;gap:8px;padding-inline:10px}.content{padding:30px 25px 55px}.topbar{padding-inline:25px}.page-head{flex-wrap:wrap}.page-head .actions{flex-wrap:wrap}.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.event-attendee{grid-template-columns:minmax(170px,1.5fr) repeat(3,minmax(90px,1fr))}.event-attendee-actions{grid-column:1/-1}.event-attendee>div:nth-child(5){display:block}.member-event-card{grid-template-columns:150px minmax(0,1fr)}}
@media(max-width:1199px),(max-width:1440px) and (hover:none) and (pointer:coarse){
 .app-shell,.app-shell.sidebar-collapsed{grid-template-columns:minmax(0,1fr);padding:0;gap:0}
 .main{border:0;border-radius:0;min-height:100dvh;overflow:clip}
 .sidebar,.sidebar.collapsed{position:fixed;top:0;left:0;width:min(320px,88vw);height:100vh;height:100dvh;padding:22px 16px max(16px,env(safe-area-inset-bottom));border-radius:0 26px 26px 0;transform:translateX(-105%);visibility:hidden;transition:transform .22s ease,visibility .22s;box-shadow:16px 0 80px rgba(0,0,0,.4)}
 .sidebar.open{transform:translateX(0);visibility:visible}
 .sidebar .brand{justify-content:flex-start;padding:7px 42px 22px 14px}
 .sidebar-close{display:grid;place-items:center;position:absolute;top:21px;right:14px;width:42px;height:42px;border:1px solid var(--line);border-radius:50%;background:rgba(255,255,255,.04);color:#c8d7cf;font-size:1.7rem;line-height:1}
 .sidebar .nav a,.sidebar.collapsed .nav a{justify-content:flex-start;min-height:48px;padding:12px 13px;font-size:.9rem;gap:12px}
 .sidebar.collapsed .brand-full,.sidebar.collapsed .nav-label,.sidebar.collapsed .nav-text,.sidebar.collapsed .sidebar-user-info{display:initial}
 .sidebar.collapsed .brand-mini{display:none}
 .sidebar.collapsed .sidebar-user{justify-content:flex-start;padding:12px}
 .sidebar .sidebar-user{margin-top:13px}
 .topbar{height:76px;padding:0 max(24px,env(safe-area-inset-right)) 0 max(24px,env(safe-area-inset-left));z-index:45;position:sticky;top:0}
 .content{padding:30px max(24px,env(safe-area-inset-right)) max(55px,env(safe-area-inset-bottom)) max(24px,env(safe-area-inset-left));max-width:1200px}
 .page-head{align-items:center;flex-wrap:wrap;gap:18px}
 .page-head h1{font-size:clamp(2.1rem,4vw,3rem);line-height:1.07}
 .page-head p{font-size:.9rem;line-height:1.6}
 .page-head .actions{justify-content:flex-start;gap:9px}
 .grid-3,.grid-4,.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .field label,.field legend{font-size:.83rem}
 .input,select.input,textarea.input{font-size:16px;min-height:48px}
 .btn,.btn-sm,.beic-page-link{min-height:44px}
 .btn-sm{font-size:.79rem;padding:10px 14px}
 .filter-bar .field{min-width:180px}
 .table{font-size:.87rem}
 .table th{font-size:.68rem}
 .table .actions{flex-wrap:wrap}
 .table .input{min-width:110px}
 .event-attendee{grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}
 .event-attendee-person,.event-attendee-actions{grid-column:1/-1}
 .event-attendee>div:nth-child(5){display:block}
 .event-attendee-balance span{font-size:.71rem}
 .event-payment-form .input,.event-bike-change-form .input,.payroll-payment-form .input{font-size:16px;min-height:44px;height:auto}
 .member-event-grid,.member-event-detail{grid-template-columns:1fr}
 .member-event-checkout{position:static}
 .event-management-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .operational-map-layout{grid-template-columns:1fr}
 .map-control-card{position:static;min-height:0}
 .map-control-empty,.map-control-panel{min-height:230px}
 .operational-bike-row{gap:clamp(9px,2.5vw,22px)}
 .cycle-bike,.bike.cycle-bike{width:clamp(84px,12vw,120px);height:122px}
 .operational-studio{padding:25px 18px}
 .equipment-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
 .financial-report-kpis,.operational-report-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}
 #pos-form>.grid{grid-template-columns:1fr!important}
 .guest-body{grid-template-columns:1fr;padding:0}
 .guest-visual{display:none}
 .guest-panel{min-height:100dvh;border-radius:0;padding:45px max(28px,env(safe-area-inset-left))}
 .auth-mobile-brand{display:block;margin-bottom:32px}
 .auth-mobile-brand img{width:128px}
}
@media(max-width:900px){.event-management-grid,.event-admin-grid{grid-template-columns:1fr}.member-history-head{align-items:flex-start}.member-identity{min-width:0}.member-identity>div{min-width:0}.member-identity p{overflow-wrap:anywhere}.payroll-rate-card{grid-template-columns:1fr}.monthly-closing-card{grid-template-columns:1fr}.monthly-closing-card form{flex-wrap:wrap}.monthly-closing-card>div{grid-column:auto}.equipment-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.financial-report-kpis,.operational-report-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.report-closing-summary{align-items:flex-start;flex-direction:column}.closing-pills{justify-content:flex-start}.payment-layout{grid-template-columns:1fr}.payment-summary{position:static}}
@media(min-width:681px) and (max-width:900px){.grid-2>.card .form-grid{grid-template-columns:1fr}}
@media(max-width:900px){form.metric-row{flex-wrap:wrap}form.metric-row>div:first-of-type{flex:1 1 100%!important}form.metric-row>.input{flex:1}}
@media(max-width:680px){
 .topbar{height:68px;padding-inline:max(16px,env(safe-area-inset-left))}
 .topbar-title{font-size:.62rem;letter-spacing:.12em}
 .topbar-left,.topbar-actions{gap:9px}
 .content{padding:24px max(16px,env(safe-area-inset-right)) max(38px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left))}
 .page-head{align-items:flex-start;flex-direction:column;margin-bottom:23px}
 .page-head h1{font-size:2.05rem;letter-spacing:-.05em}
 .page-head p{font-size:.83rem}
 .page-head .actions{width:100%;display:flex;flex-wrap:wrap}
 .page-head .btn{flex:1 1 auto;white-space:normal;line-height:1.4}
 .grid-2,.grid-3,.grid-4,.form-grid{grid-template-columns:1fr}
 .activity-summary,.equipment-summary,.event-kpis,.operational-map-stats,.kpi-grid,.report-kpis,.financial-report-kpis,.operational-report-kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}
 .card{padding:19px;border-radius:22px}
 .card.stat,.card.stat.kpi-card,.card.stat:not(.kpi-card){min-height:132px;padding:16px}
 .card.stat .value,.card.stat.kpi-card .value,.report-kpi .value,.finance-kpi .value{font-size:clamp(1.65rem,6.3vw,2.2rem)!important;line-height:1.1;white-space:normal}
 .card.stat .label{font-size:.64rem;line-height:1.5;letter-spacing:.06em}
 .stat-icon{width:34px;height:34px}
 .finance-kpis{grid-template-columns:1fr}
 .finance-kpi{min-height:142px!important}
 .finance-kpi .value{font-size:2.4rem!important}
 .filter-bar{gap:11px}
 .filter-bar .field{min-width:0;flex:1 1 100%;width:100%}
 .filter-bar .btn{flex:1 1 auto}
 .form-actions{flex-wrap:wrap;gap:9px}
 .form-actions>.btn{flex:1;min-height:46px}
 .table-scroll-hint{justify-content:flex-start}
 .table-wrap:has(.responsive-table){border:0;background:none;box-shadow:none;overflow:visible;padding:0}
 .responsive-table{display:block;min-width:0!important;width:100%;border-spacing:0}
 .responsive-table thead{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
 .responsive-table tbody{display:grid;gap:14px;width:100%}
 .responsive-table tbody tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;padding:8px 15px;border:1px solid var(--line);border-radius:20px;background:linear-gradient(140deg,#141d19,#0c1310);filter:none}
 .responsive-table tbody td,.responsive-table tbody tr:first-child td,.responsive-table tbody td:first-child,.responsive-table tbody td:last-child{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:5px;min-width:0;padding:12px 6px;border:0;border-radius:0;background:none;overflow-wrap:anywhere;white-space:normal}
 .responsive-table tbody td:before{content:attr(data-label);display:block;font-size:.62rem;line-height:1.4;font-weight:700;text-transform:uppercase;letter-spacing:.075em;color:#91a79a}
 .responsive-table .table-identity-cell,.responsive-table .table-action-cell,.responsive-table .table-message-row td{grid-column:1/-1}
 .members-table.responsive-table td[data-label="Contacto"]{grid-column:1/-1}
 .responsive-table .table-identity-cell{border-bottom:1px solid var(--line)!important}
 .responsive-table .table-action-cell{border-top:1px solid var(--line)!important}
 .responsive-table .table-action-cell:before{display:none}
 .responsive-table .table-message-row td{padding:25px 5px;align-items:center}
 .responsive-table .table-message-row td:before{display:none}
 .responsive-table .table-primary,.responsive-table .member-table-identity{min-width:0;width:100%;align-items:center}
 .responsive-table .member-name-row{flex-direction:row;align-items:center}
 .responsive-table .member-name-row strong{max-width:none}
 .responsive-table .actions,.responsive-table .client-actions{width:100%;min-width:0!important;flex-wrap:wrap}
 .responsive-table .actions>a,.responsive-table .actions>form{flex:1;min-width:0}
 .responsive-table .actions>form .btn{width:100%}
 .responsive-table .client-actions{grid-template-columns:repeat(2,minmax(0,1fr))}
 .responsive-table .progress{width:100%;min-width:0!important}
 .responsive-table .payroll-payment-form{grid-template-columns:1fr;min-width:0;width:100%}
 .responsive-table .payroll-payment-form .input{width:100%;min-width:0}
 .event-attendee{grid-template-columns:repeat(2,minmax(0,1fr));padding:17px}
 .event-management-grid,.event-payment-inline{grid-template-columns:1fr}
 .event-payment-form{grid-template-columns:1fr}
 .member-event-card{grid-template-columns:1fr}
 .member-event-visual{min-height:180px}
 .event-bike-map-head{gap:14px}
 .equipment-grid{grid-template-columns:1fr}
 .equipment-stat{padding:17px;min-height:124px;grid-template-columns:1fr}
 .equipment-stat strong{grid-column:auto;grid-row:auto;font-size:2.2rem}
 .equipment-stat small{font-size:.72rem}
 .equipment-stat span{font-size:.63rem}
 .operational-map-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
 .operational-map-stats .card.stat{padding:12px;min-height:104px}
 .operational-map-stats .label{font-size:.57rem}
 .operational-studio,.event-admin-bike-map,.member-event-bike-section{padding:19px 8px}
 .operational-bike-row{min-width:0;gap:4px}
 .operational-bike-map,.event-bike-picker .operational-bike-map{min-width:0;overflow:visible;gap:16px;padding:5px 0 10px}
 .cycle-bike,.bike.cycle-bike{width:calc((100% - 16px)/5);min-width:0;max-width:70px;height:91px;border-radius:16px;padding:6px 2px}
 .cycle-bike-visual{width:100%;max-width:58px;height:50px}
 .cycle-bike-label{font-size:.64rem}
 .cycle-bike small{font-size:.5rem;max-width:100%}
 .bike-row{gap:4px}
 .event-bike-picker .operational-bike-row{min-width:0}
 .legend{gap:10px 16px;margin:24px 0}
 .legend-item{font-size:.71rem}
 .event-bike-confirm{width:100%;min-width:0}
 .member-identity{gap:12px}
 .member-identity .avatar-lg{width:52px;height:52px;flex-basis:52px}
 .membership-overview{padding:19px;gap:18px}
 .membership-balance{min-width:0}
 .hero-card h1{font-size:2.7rem;overflow-wrap:anywhere}
 .hero-card{min-height:290px}
 .auth-box{max-width:440px;margin:auto;width:100%}
 .guest-panel{padding:32px max(20px,env(safe-area-inset-left))}
 .beic-pager-summary{font-size:.79rem}
 .notification-panel{top:76px;max-height:calc(100dvh - 92px);overflow:auto}
 .notification-list{max-height:calc(100dvh - 170px)}
}
@media(pointer:coarse){.btn,.btn-sm,.beic-page-link{min-height:44px}.input,select.input,textarea.input{font-size:16px}.logout-link{min-height:32px}.btn:hover,.nav a:hover,.bike.available:hover,.cycle-bike.available:hover{transform:none}.payment-search-input{font-size:16px!important}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
@media print{.sidebar,.topbar,.menu-backdrop,.skip-link,.table-scroll-hint,.form-actions,.page-head .actions{display:none!important}.app-shell{display:block;padding:0}.main{border:0;overflow:visible}.content{padding:0;max-width:none}.card,.table-wrap{box-shadow:none}body{-webkit-print-color-adjust:exact;print-color-adjust:exact}.responsive-table{display:table}.responsive-table thead{display:table-header-group;position:static;width:auto;height:auto;clip:auto}.responsive-table tbody{display:table-row-group}.responsive-table tbody tr{display:table-row}.responsive-table tbody td{display:table-cell}.responsive-table tbody td:before{display:none}}
