/* Mobile pages use ordinary document scrolling. */

.editor-section-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px}.editor-section-heading h3{margin:0}.section-remove{font-size:12px;min-height:40px;color:#f4a6af;border:1px solid var(--line)}
.draft-toolbar{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;flex-wrap:wrap}.draft-toolbar p{flex:1;min-width:170px}.draft-toolbar button{min-height:36px;white-space:nowrap;font-size:12px}
.workout-copy-launch{margin-top:15px}.member-status-select{margin:0 0 20px}.member-search-label .search-input{margin:0}.member-role-tabs{margin-bottom:20px}.member-heading{align-items:flex-start}.member-heading .pending-pill{min-height:40px;white-space:nowrap}
.swipe-pages{display:grid;grid-auto-flow:column;grid-auto-columns:100%;align-items:start;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain;min-width:0}
.swipe-pages::-webkit-scrollbar{display:none}.swipe-page{min-width:0;scroll-snap-align:start;scroll-snap-stop:always;overflow:hidden}
.swipe-controls{display:flex;align-items:center;justify-content:center;gap:18px;margin-top:12px}.swipe-controls .btn{min-width:44px;min-height:40px;font-size:23px;padding:2px 10px}.swipe-controls button:disabled{opacity:.3;cursor:default}.swipe-page-label{font-size:12px;font-variant-numeric:tabular-nums;color:var(--muted);min-width:45px;text-align:center}
#avatar-pager{max-width:520px;margin:16px 0}.avatar-options{grid-template-columns:repeat(5,minmax(0,1fr));grid-template-rows:repeat(2,46px);gap:9px;margin:0;max-width:none;padding:2px}.avatar-options button{min-width:0;width:100%;height:46px}.avatar-options button:active{transform:scale(.94)}#avatar-save-status{min-height:22px}
.push-history .panel-head{padding:0;margin-bottom:12px}.push-history-row{min-width:0;overflow-wrap:anywhere}.push-history-row>div{min-width:0}.push-history-row .tag{white-space:normal}.push-history .swipe-page{padding:0 1px}
.app-startup{position:fixed;inset:0;z-index:200;display:grid;place-items:center;background:var(--bg);opacity:1;transition:opacity .18s ease;pointer-events:auto}
.app-startup[hidden]{display:none}.app-startup.startup-leaving{opacity:0;pointer-events:none}
.startup-content{text-align:center;padding:30px;width:min(360px,88vw)}.startup-brand{position:relative;width:100%;aspect-ratio:620/236;animation:startup-appear .65s ease-out both}.startup-brand>.brand-mark{width:100%;height:100%}
.startup-power{position:absolute;inset:0;background:var(--blue);mask:url('./assets/onoff-logo-v4.svg?v=4') center/contain no-repeat;-webkit-mask:url('./assets/onoff-logo-v4.svg?v=4') center/contain no-repeat;opacity:0;animation:startup-power-on .7s ease-in-out both}
.startup-power-on{clip-path:polygon(0 0,24% 0,24% 66%,0 66%)}.startup-power-off{clip-path:polygon(43% 0,65% 0,65% 66%,43% 66%)}
.startup-content p{font-size:12px;color:var(--muted);margin:24px 0 0;opacity:0;animation:startup-status .15s 1.2s forwards}
@keyframes startup-appear{from{opacity:.12;transform:scale(.97)}to{opacity:1;transform:scale(1)}}
@keyframes startup-power-on{0%{opacity:0}45%{opacity:1}100%{opacity:0}}
@keyframes startup-status{to{opacity:1}}
@media(prefers-reduced-motion:reduce){.startup-brand,.startup-power,.startup-content p{animation:none}.startup-content p{opacity:1}.app-startup{transition:none}}


/* Native document scrolling with a persistent bottom tab bar. */
@media(max-width:760px){
 html{height:auto;overflow:visible;overscroll-behavior-y:none}
 body:not(.login-mode){display:flex;flex-direction:column;height:auto;min-height:100svh;max-height:none;overflow:visible;overscroll-behavior-y:none;position:static}
 body:not(.login-mode) .app{flex:1 0 auto;min-height:0!important;height:auto;max-height:none;overflow:visible;overscroll-behavior:auto;padding-bottom:var(--mobile-nav-height)}
 :root{--mobile-nav-height:calc(55.3px + var(--safe-bottom))}
 body:not(.login-mode) .mobile-nav{position:fixed!important;inset:auto 0 0;top:auto!important;bottom:0!important;left:0;right:0;transform:none!important;width:100%;height:var(--mobile-nav-height);min-height:var(--mobile-nav-height);z-index:70;margin:0}
 /* Explicit visual bottom avoids iOS retaining the keyboard-era fixed anchor. */
 html.nav-viewport-anchored body:not(.login-mode) .mobile-nav{top:calc(var(--mobile-nav-viewport-bottom) - var(--mobile-nav-height))!important;bottom:auto!important}
 html.mobile-keyboard-open .mobile-nav{visibility:hidden;pointer-events:none}
 .app>.site-footer{padding-bottom:24px}.scroll-top{position:fixed}.toast{position:fixed}
 dialog{max-height:calc(var(--dialog-viewport-height,100dvh) - var(--safe-top) - var(--safe-bottom) - 24px)}
 .admin-folders{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:12px!important}
 body[data-page=admin] .admin-folders .folder-card{grid-template-columns:minmax(0,1fr) 18px;gap:12px;align-content:start;min-height:175px;padding:16px}
 .admin-folders .feature-icon{grid-column:1;grid-row:1;width:36px;height:36px}.admin-folders .folder-arrow{grid-column:2;grid-row:1;align-self:center}.admin-folders .folder-copy{grid-column:1/-1;grid-row:2;gap:6px}
 body[data-page=admin] .admin-folders .folder-copy strong{font-size:14px;line-height:1.5;word-break:keep-all}.admin-folders .folder-copy>span{font-size:11px!important;line-height:1.6!important;word-break:keep-all}.admin-folders .folder-copy small{font-size:10px!important}
}
@media(min-width:761px){.admin-folders{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
.home-program-tabs.wod-only{grid-template-columns:minmax(0,1fr)}.home-program-tabs.wod-only>button{grid-column:1;width:100%}
.rest-day-message{text-align:center;padding:26px 18px;color:var(--muted)}.rest-day-message strong{display:block;color:var(--ink);font-size:15px}.rest-day-message p{margin:8px 0 0;font-size:13px}
.modal-head>button{background:transparent!important;border:0!important;box-shadow:none!important;border-radius:0;color:var(--muted);width:44px;height:44px;padding:0}
.rm-history-value{display:flex;align-items:center;gap:16px}.rm-history-value button{min-height:44px}
.community-count{display:inline-flex;align-items:center;justify-content:center;min-width:19px;height:19px;padding:0 5px;border-radius:12px;background:var(--accent);color:var(--on-accent);font-size:10px;font-weight:700;line-height:1;margin-left:auto}
.mobile-nav .community-count{position:absolute;top:-7px;right:-13px;min-width:17px;height:17px;margin:0;padding:0 3px;border:2px solid var(--surface)}
.movement-picker{position:relative;min-width:0}.movement-suggestions{display:grid;border:1px solid var(--line);border-radius:8px;background:var(--surface);max-height:176px;overflow:auto;margin-top:5px;box-shadow:0 6px 18px #0002}
.movement-suggestions button{min-height:44px;text-align:left;padding:9px 12px;font-size:14px;overflow-wrap:anywhere}.movement-suggestions button[aria-selected=true]{background:var(--soft);color:var(--blue)}
.movement-suggestions[hidden]{display:none}

/* All application popups share one frameless close control, including focus. */
#modal .modal-head .modal-close,#modal .modal-head .modal-close:hover,#modal .modal-head .modal-close:active,#modal .modal-head .modal-close:focus{
 appearance:none;-webkit-appearance:none;background:transparent!important;background-image:none!important;border:0!important;outline:0!important;box-shadow:none!important;border-radius:0;padding:0;display:grid;place-items:center;width:44px;height:44px;min-width:44px;min-height:44px;flex:0 0 44px;line-height:1;font-size:28px;
}
#modal .modal-close:focus-visible{color:var(--blue);text-decoration:underline;text-underline-offset:5px}
#modal .modal-head h2:focus{outline:0}
/* A separate content scroller keeps the header and focused input inside the
   visual viewport instead of centering the dialog behind the keyboard. */
#modal.viewport-dialog{position:fixed;inset:auto;margin:0;left:var(--dialog-left);top:var(--dialog-top);width:var(--dialog-width);max-width:var(--dialog-width);max-height:var(--dialog-height);overflow:hidden}
#modal.viewport-dialog #modal-body{display:flex;flex-direction:column;max-height:calc(var(--dialog-height) - 2px);min-height:0}
#modal.viewport-dialog .modal-head{position:static;flex:0 0 auto;gap:12px}
#modal.viewport-dialog .modal-content{flex:0 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scroll-padding:16px 0 28px}
#modal .modal-content input,#modal .modal-content select,#modal .modal-content textarea{scroll-margin:16px 0 28px}
#modal .modal-content textarea{max-height:max(100px,calc(var(--dialog-height,100dvh) * .5))}
/* Safari date controls have an intrinsic width and internal date label. */
.batch-panel,.batch-filters,.batch-filters>.field{min-width:0;max-width:100%}
.batch-filters>.field{margin-bottom:0}
.batch-filters input,.batch-filters select{display:block;box-sizing:border-box;inline-size:100%;min-inline-size:0;max-inline-size:100%;height:48px;min-height:48px;margin-top:7px;padding:10px 12px;font-size:16px}
.batch-filters input[type=date]{appearance:none;-webkit-appearance:none;text-align:left;overflow:hidden}
.batch-filters input[type=date]::-webkit-date-and-time-value{min-width:0;text-align:left;margin:0;line-height:26px}
.batch-filters input[type=date]::-webkit-datetime-edit{display:inline-block;padding:0;min-width:0}
.library-category-field{max-width:320px}.library-groups{display:grid;gap:28px;min-width:0}.library-group{min-width:0}.library-group>h2{font-size:16px;margin:0 0 12px}.library-group>h2>span{font-size:11px;font-weight:400;color:var(--muted);margin-left:8px}.library-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.library-grid .movement-card{min-width:0;overflow-wrap:anywhere}
@media(max-width:760px){.library-grid{grid-template-columns:minmax(0,1fr)}.library-page-head{min-width:0}.library-page-head>.search-input{min-width:0;flex:1}.library-page-head>.btn{flex-shrink:0}.library-category-field{max-width:none}.batch-filters{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:761px){.sidebar{height:100dvh;overflow-y:auto;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y}.sidebar>.brand,.sidebar>.club-label,.sidebar>#nav,.sidebar>.sidebar-bottom{flex-shrink:0}}
#modal.keyboard-open .modal-content textarea{min-height:44px;height:clamp(44px,calc(var(--dialog-height) - 154px),140px);max-height:clamp(44px,calc(var(--dialog-height) - 154px),140px)}
#modal.keyboard-compact .modal-head{padding:0 12px}.keyboard-compact .modal-head h2{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#modal.keyboard-compact .modal-content{padding:8px 16px}

/* Workout controls stay below both the preview and the complete content. */
.course-section-footer{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;margin-top:10px;min-height:36px;font-size:10px;color:var(--muted)}
.course-section-toggle{min-width:82px;min-height:36px;padding:6px 0 6px 10px;text-align:right;font-size:10px;color:var(--section-color);white-space:nowrap}
.course-section-footer .section-record-kind{min-width:0}.movement-rm-row .no-record{font-family:inherit;font-size:inherit;font-weight:400;line-height:inherit;color:var(--muted)}
.site-footer .footer-brand{display:flex;flex-direction:column;align-items:center;gap:5px}.site-footer .footer-since{display:block;font-size:10px;font-weight:500;letter-spacing:1.6px;color:var(--muted);line-height:1.6}
.community-category[data-category="운동 번개"]{color:#ffd1a3;background:#ad5d202e}.community-category[data-category="공동구매"]{color:#9aefd0;background:#2692752e}.community-category[data-category="자유글"]{color:#d3bcff;background:#8257b62e}
.schedule-settings-stack{display:grid;gap:24px;min-width:0}.release-time-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:18px;margin:20px 0}
.release-current{display:flex;flex-direction:column;align-items:flex-start;gap:5px;min-width:0}.release-current>strong{font:700 clamp(30px,4vw,42px)/1.2 'Barlow Condensed',sans-serif;color:var(--blue);font-variant-numeric:tabular-nums}.release-current>small{font-size:10px;color:var(--muted)}
.release-time-row>.field{margin:0;min-width:0}.release-time-row input{font-variant-numeric:tabular-nums}.release-settings>h2{margin-bottom:0}
/* Existing membership data determines the card; it never changes access rules. */
.membership-card{--pass-accent:#9bc2ff;--pass-tint:#18385b;position:relative;isolation:isolate;overflow:hidden;border:1px solid #76aaff66;border-radius:18px;padding:24px;background:linear-gradient(135deg,#101b2b,var(--pass-tint));color:#f4f7fd;box-shadow:0 12px 32px #0002;margin-top:20px;min-width:0}
.membership-card::before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background:repeating-linear-gradient(0deg,transparent 0 32px,#a6cfff08 32px 33px);opacity:.8}
.membership-card[data-plan=month-3]{--pass-accent:#94ebcc;--pass-tint:#16483e;border-color:#75deba66}.membership-card[data-plan=month-3]::before{background:repeating-linear-gradient(135deg,transparent 0 24px,#a7ffdc0b 24px 26px)}
.membership-card[data-plan=month-6]{--pass-accent:#d1b4ff;--pass-tint:#443268;border-color:#b696f16e;background:linear-gradient(130deg,#19172c,#453263 65%,#3e3150)}.membership-card[data-plan=month-6]::before{background:radial-gradient(ellipse at top right,#dfc5ff22,transparent 65%)}
.membership-card[data-plan=month-12]{--pass-accent:#f1d38f;--pass-tint:#493b20;border-color:#d6b66d}.membership-card[data-plan=month-12]::before{inset:9px;border:1px solid #dfbd711f;border-radius:11px;background:linear-gradient(140deg,transparent 55%,#efce8210 55%,transparent 85%)}
.membership-card[data-plan=visits]{--pass-accent:#ffc28d;--pass-tint:#57341f;border-color:#e9a36f80;border-left:3px dashed #e9a36f}.membership-card[data-plan=visits]::before{background:radial-gradient(circle at 100% 45%,#fbb5781c,transparent 65%)}
.membership-card[data-plan=unregistered]{--pass-accent:#b0bbcd;--pass-tint:#202d40;border-color:var(--line)}
.membership-card-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.membership-logo{--logo:var(--pass-accent);width:100px;max-width:45%;height:42px;flex-shrink:0}.membership-state{font-size:10px;line-height:1.6;padding:4px 9px;border:1px solid #ffffff26;border-radius:20px;color:var(--pass-accent);background:#0a102040;white-space:normal;text-align:right}
.membership-card-main{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin:28px 0 22px;min-width:0}.membership-eyebrow{font-size:10px;color:#d7e0edb8;letter-spacing:.5px}.membership-card-main h3{font-size:22px;font-weight:700;line-height:1.5;margin:4px 0 0;color:var(--pass-accent)}.membership-metric{font-size:32px;line-height:1.2;letter-spacing:-1px;color:var(--pass-accent);text-align:right;white-space:nowrap}.membership-metric small{display:block;font-size:11px;font-weight:400;letter-spacing:0;color:#d7e0ed;margin-top:5px}
.membership-owner{display:flex;flex-direction:column;gap:3px;margin-bottom:18px}.membership-owner>span,.membership-dates span{font-size:10px;color:#c4d0dfb8}.membership-owner strong{font-size:17px;font-weight:500;overflow-wrap:anywhere}.membership-dates{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;border-top:1px solid #ffffff1f;padding-top:14px}.membership-dates>div{display:flex;flex-direction:column;gap:5px;min-width:0}.membership-dates strong{font-size:12px;font-weight:500;white-space:nowrap}.membership-card-note{margin:16px 0 0;font-size:10px!important;line-height:1.8;color:#cad5e4!important}.membership-card[data-status=paused] .membership-state{border-color:#f2c66b80;color:#f7dca3}.membership-card[data-status=expired]{filter:saturate(.5)}.membership-card[data-status=expired] .membership-state{color:#ffb5b8;border-color:#f3a5a540}.membership-card:not([data-status=active]) .membership-metric{font-size:17px;letter-spacing:0;white-space:normal}
@media(max-width:760px){.schedule-settings-stack{gap:20px}.release-time-row{gap:14px}.membership-card{padding:20px}.membership-card-main{gap:12px}.membership-card-main h3{font-size:20px}.membership-metric{font-size:30px}}
.site-footer .footer-brand{order:1}.site-footer .footer-brand .footer-wordmark{order:0}.site-footer .footer-brand .footer-since{order:1}
/* Compact personal settings, with pickers in their own dialogs. */
.personal-settings>.membership-card{margin:0;min-height:410px;display:flex;flex-direction:column}.personal-settings>.membership-card .membership-dates{margin-top:auto}.personal-settings>.membership-card[data-plan=unregistered]{min-height:270px}
.settings-profile-top{display:flex;align-items:center;gap:14px;margin-bottom:18px}.settings-profile-info{min-width:0}.settings-profile-info h2{margin:0;font-size:18px}.settings-profile-info p{margin:5px 0 0;font-size:11px;color:var(--muted);overflow-wrap:anywhere}.settings-profile>.full,.settings-account>.full{width:100%;min-height:44px}.settings-account{display:flex;flex-direction:column;gap:12px}.settings-account h2{margin:0 0 5px}.settings-withdrawal{align-self:center;justify-self:center;color:#e8a0a7;min-height:44px;font-size:11px}
.compact-settings .setting-row>strong{font-size:13px}.compact-settings .setting-row>.link{display:flex;align-items:center;justify-content:flex-end;gap:8px;min-height:44px;font-size:12px}.compact-settings .link svg{width:15px;height:15px}.profile-summary{cursor:default}
.member-record-toolbar{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,.7fr) minmax(0,1.8fr);gap:8px;margin:20px 0}.member-record-toolbar>.filter-tabs{display:contents}.member-record-toolbar [data-records-filter],.member-record-toolbar>.btn{min-width:0;width:100%;min-height:44px;margin:0;font-size:12px;white-space:nowrap;justify-content:center}.member-record-note{font-size:clamp(9px,2.5vw,11px);letter-spacing:-.3px;color:var(--muted);white-space:nowrap;margin:10px 0 0;line-height:1.8}
.post-title{font-size:21px;line-height:1.6}.post-thread #thread-comments-count{margin-top:25px}.post-actions{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:12px}.post-actions .btn{min-height:44px}.post-actions .comment-submit{margin-left:auto}.post-actions .post-delete{background:transparent;color:#eca0a8;border-color:transparent}.thread-status{min-height:20px;margin-bottom:0}.notice-actions{justify-content:space-between}
.icon-action{display:inline-grid;place-items:center;width:44px;height:44px;min-width:44px;min-height:44px;padding:0;border:0;background:transparent;color:var(--muted)}.icon-action svg{width:18px;height:18px}.icon-action.danger-link{color:#eda0aa}.rm-history-value{gap:4px}.rm-history-value>strong{margin-right:8px}.rm-history-value .icon-action{flex-shrink:0}
.member-detail-summary{display:flex;align-items:center;gap:12px;margin:0 0 18px}.member-detail-summary .avatar{width:44px;height:44px;font-size:25px}.member-detail-summary h3{margin:0;font-size:20px}.member-detail-summary>div>span{font-size:11px;color:var(--muted)}.member-detail-tabs{position:sticky;top:-1px;z-index:3;background:var(--surface);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;border-bottom:1px solid var(--line);padding:4px 0;margin-bottom:18px}.member-detail-tabs button{min-width:0;min-height:44px;padding:8px 4px;font-size:12px;color:var(--muted);border-bottom:2px solid transparent}.member-detail-tabs button[aria-selected=true]{color:var(--blue);border-color:var(--blue);background:var(--soft);border-radius:6px 6px 0 0}
.member-pass-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.member-pass-heading h3{font-size:15px;margin:0}.member-pass-heading+.membership-card{margin-top:10px}.membership-buttons .full{width:100%;margin-top:14px}.membership-section>h3{font-size:15px;margin:0 0 16px}.member-role-panel{background:transparent;padding:20px 0;border-radius:0}.member-role-panel form .field-hint{font-size:11px}
.app-startup{transition:opacity .3s ease}.startup-brand{animation-duration:.3s}.startup-power{animation:startup-power-on .9s .3s ease-in-out both}
@media(prefers-reduced-motion:reduce){.app-startup{transition:none}.startup-brand,.startup-power{animation:none}}
/* Compact member records, forms and workout cards. */
.home-heading p{font-size:14px!important}.home-datebar{gap:10px}.home-date-controls{flex:1;min-width:0}.home-date-controls .date-picker{width:100%}.home-date-controls .date-select-button{width:100%;justify-content:center}.home-attendance{flex:0 0 34%;min-width:100px}.course-section-card .exercise{font-size:16px!important;font-weight:700!important}.course-section-heading{margin-bottom:10px!important}.member-record-note{text-align:center}.member-record-group{display:grid;grid-template-columns:minmax(95px,1fr) minmax(0,3fr);align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--line)}.member-record-sections{display:flex;flex-wrap:wrap;gap:8px 18px}.member-record-cell{display:flex;align-items:center;flex-wrap:wrap;gap:7px}.member-record-cell strong{overflow-wrap:anywhere}.member-record-cell .mini-badge{font-size:9px}.rm-card{padding:18px!important}.rm-card h3{margin:0 35px 8px 0}.rm-number{margin:4px 0!important}.rm-bottom{display:flex;align-items:center;justify-content:flex-start!important;gap:10px;margin-top:14px!important;padding-top:10px!important}.rm-bottom>button+button:before{content:'·';margin-right:10px}.calculator{padding:18px!important}.calculator .field{margin-top:10px!important}.calculator-results{gap:6px!important}.calculator-results button{padding:8px!important;min-height:65px!important}.calc-reference{padding:12px!important;margin:12px 0!important}.calc-custom{gap:10px!important;margin-top:12px!important}.rm-default-badge{background:#2261c8!important;color:white!important}.rm-optional-badge{background:#737b8929!important;color:var(--muted)!important}.section-editor-tabs{position:sticky;top:0;z-index:4;background:var(--surface);padding:8px 0;overflow:auto}.record-form-section[hidden]{display:none!important}#workout-sections{touch-action:pan-y}.movement-suggestions{max-height:180px!important;overflow-y:auto!important;overscroll-behavior:contain}.movement-picker:has(.movement-suggestions:not([hidden])){padding-bottom:190px}.movement-suggestions{top:calc(100% - 190px)!important}.push-history-summary{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;cursor:pointer;padding:12px 0}.push-history-summary strong{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.push-history-summary small{color:var(--muted);font-size:10px}.push-history-summary span{font-size:11px}.push-history-detail{padding:8px 0 14px;white-space:pre-wrap;overflow-wrap:anywhere}.push-history-item{border-bottom:1px solid var(--line)}
@media(max-width:420px){.member-record-group{grid-template-columns:90px minmax(0,1fr);padding:12px 10px}.member-record-sections{flex-direction:column}.table-name{font-size:12px}.table-name .avatar{width:26px;height:26px}}
/* Each identical ticker copy occupies half the track; touch never pauses it. */
.notice:not(.banner-preview) .notice-text{animation-play-state:running!important}.notice-text>span{min-width:var(--ticker-width,0px)}
@keyframes notice-scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.notice:not(.banner-preview) .notice-text{animation:none!important}}
.storage-usage{padding:14px 16px;margin-bottom:16px;font-size:12px}.storage-metric{display:grid;grid-template-columns:auto 1fr;gap:5px 12px;margin-top:10px}.storage-metric strong{text-align:right;font-size:11px}.storage-metric progress{grid-column:1/-1;width:100%;height:7px;accent-color:var(--blue)}.storage-metric.storage-warning progress{accent-color:#eaa02c}.storage-warning strong{color:#eaa02c}.storage-usage small{display:block;color:var(--muted);margin-top:9px;font-size:10px;line-height:1.8}.storage-usage a{color:var(--blue)}
.movement-picker:has(.movement-suggestions:not([hidden])){padding-bottom:calc(var(--suggestion-height,180px) + 10px)}.movement-suggestions{max-height:var(--suggestion-height,180px)!important;top:calc(100% - var(--suggestion-height,180px) - 10px)!important}
.photo-gallery{display:flex;gap:10px;flex-wrap:wrap;margin:12px 0}.photo-tile{position:relative;width:min(100%,320px)}.photo-tile>button:first-child{padding:0;width:100%;display:block}.photo-tile img{width:100%;max-height:340px;object-fit:contain;border-radius:8px;background:var(--soft);min-height:80px}.photo-delete{position:absolute;right:0;top:0;min-width:44px;min-height:44px;background:#0009;color:white;font-size:25px;border-radius:0 8px 0 8px}.photo-preview{display:inline-block;position:relative;margin:5px}.photo-preview img{width:85px;height:85px;object-fit:cover;border-radius:6px}.photo-preview button{position:absolute;top:0;right:0;background:#0009;color:white;min-width:32px;min-height:32px;font-size:22px}.post-cover{width:100%;max-height:170px;object-fit:cover;border-radius:8px;margin-bottom:10px}.photo-zoom{overflow:auto;max-height:70dvh;touch-action:pan-x pan-y pinch-zoom}.photo-zoom img{display:block;max-width:100%;height:auto}.daily-photos{margin-top:16px}.daily-photos .panel-head{padding:0 0 12px}.daily-photo-class{display:inline-block;vertical-align:top;margin-right:10px;max-width:100%}
#schedule-page{touch-action:pan-y}

/* Common controls preserve native form semantics and use the same touch area. */
input[type=checkbox].onoff-toggle{appearance:none!important;-webkit-appearance:none!important;width:40px!important;height:24px!important;min-width:40px;min-height:24px;border:0!important;border-radius:20px!important;background:#687585!important;position:relative;display:inline-block;vertical-align:middle;flex:0 0 40px;margin:10px 0;box-shadow:none!important;cursor:pointer;transition:background .15s}
input[type=checkbox].onoff-toggle:before{content:'';position:absolute;left:3px;top:3px;width:18px;height:18px;border-radius:50%;background:white;transition:transform .15s}
input[type=checkbox].onoff-toggle:checked{background:#2864ee!important}input[type=checkbox].onoff-toggle:checked:before{transform:translateX(16px)}input[type=checkbox].onoff-toggle:disabled{opacity:.45;cursor:default}input[type=checkbox].onoff-toggle:focus-visible{outline:2px solid var(--blue)!important;outline-offset:3px}
.onoff-toggle-row{min-height:44px;display:flex;align-items:center;gap:12px}.onoff-toggle-row>input{order:2;margin-left:auto!important}.onoff-toggle-row:has(.clear-input-wrap){flex-wrap:wrap}
.icon-control,button[data-refresh-control],.post-delete{display:inline-flex;align-items:center;justify-content:center;width:44px!important;height:44px!important;min-width:44px;min-height:44px;padding:0!important;flex:0 0 44px;gap:0;border:0!important;border-radius:8px;background:transparent;color:var(--blue)}
.icon-control svg,button[data-refresh-control] svg,.post-delete svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
button[data-refresh-control]:disabled{opacity:.45}.icon-control.primary{background:var(--primary,#2864ee);color:white}.icon-control.danger-button,.post-delete{color:#efa0aa}.post-actions{display:flex;justify-content:space-between;align-items:center}
button.modal-close,button.image-viewer-close,button.photo-delete,.image-viewer-header button:last-child,button[data-action=close],button[aria-label$="닫기"]{border:0!important;outline:0!important;box-shadow:none!important;border-radius:0;background:transparent!important}
button.modal-close:focus-visible,button.image-viewer-close:focus-visible,button[aria-label$="닫기"]:focus-visible{color:var(--blue)!important;text-decoration:none!important;opacity:.75}
.embedded-video{width:100%;aspect-ratio:16/9;background:#080d16;border-radius:10px;overflow:hidden;margin:8px 0 18px}.embedded-video iframe{display:block;width:100%;height:100%;border:0}.movement-actions{display:flex;gap:12px;align-items:center;margin-top:18px}.movement-actions>.soft{flex:1}.library-classification{display:flex;gap:12px;align-items:center;margin:16px 0 24px}.library-classification>.field{flex:1;margin:0}.library-classification>.btn{flex-shrink:0}.video-category-list .history-row>div{display:flex}.acc-editor fieldset{border:0;padding:0;margin:20px 0}.acc-editor fieldset:disabled{opacity:.65}
.acc-workout{grid-column:1/-1;padding:22px;margin:18px 0 0}.acc-workout .panel-head{padding:0 0 16px}.acc-workout h2{font-size:18px}.acc-workout h2 span{font-size:13px;color:var(--muted);font-weight:400;margin-left:6px}.acc-workout .exercise{font-size:16px;font-weight:700;white-space:pre-wrap}.home-simple:has(.acc-workout)>.home-timetable{grid-column:1/-1}
.startup-power.startup-power-on{clip-path:inset(0 0 0 0);opacity:1;animation:startup-color-fill .9s .3s ease-in-out both;background:#88aff7}.startup-power.startup-power-off{display:none}@keyframes startup-color-fill{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}
@media(prefers-reduced-motion:reduce){.startup-power.startup-power-on{animation:none;clip-path:none}}
/* Keep shared images still; program changes replace only the corresponding records. */
.member-record-toolbar [data-records-filter],.home-program-tabs button,.daily-photos,.daily-photos img{transition:none!important;animation:none!important}.home-course-carousel{isolation:isolate}.daily-photo-class{overflow:hidden}.daily-photos img{display:block;backface-visibility:hidden}
.timer-screen{max-width:760px;margin:0 auto}.timer-heading{display:flex;align-items:center;justify-content:space-between;margin:4px 0 26px}.timer-heading h1{margin:0 0 8px}.timer-heading p{color:var(--muted);margin:0}.timer-mode-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:22px}.timer-mode-tabs button{padding:16px 7px;border:1px solid var(--line);border-radius:14px;font-size:14px;font-weight:800;color:var(--muted);background:var(--surface)}.timer-mode-tabs .active{background:#2664ee;color:white;border-color:#2664ee}.timer-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.timer-fields>.field{margin:0 0 8px}.timer-fields>.timer-mix,.timer-fields>.btn{grid-column:1/-1}.timer-start{width:100%;min-height:58px;margin-top:24px;font-size:18px;font-weight:800}.timer-note{font-size:11px;line-height:1.8;color:var(--muted);margin:22px 0}.timer-mix{border:1px solid var(--line);border-radius:12px;padding:16px}.timer-mix-head{display:flex;gap:12px;align-items:center;margin-bottom:12px}.timer-mix-head select{flex:1;min-width:0}.timer-mix-head button{width:44px;height:44px;font-size:24px}.timer-error{color:#efa0aa}.timer-run{background:var(--surface);padding:36px 12px;border:1px solid var(--line);border-radius:22px;text-align:center}.timer-run-mode{font-size:20px;font-weight:800;letter-spacing:3px;color:#88aff7}.timer-digits{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-variant-numeric:tabular-nums;font-size:clamp(46px,15vw,108px);font-weight:800;letter-spacing:-4px;line-height:1.7;white-space:nowrap}.timer-round{font-size:14px;color:var(--muted)}.timer-state{font-size:12px;color:var(--muted)}.timer-run[data-mode=TABATA] .timer-run-mode{color:#40d2b0}.timer-run[data-mode=EMOM] .timer-run-mode{color:#c98aff}.timer-run[data-mode=AMRAP] .timer-run-mode{color:#ffc480}.timer-actions{display:flex;flex-wrap:wrap;gap:10px;margin:20px 0}.timer-actions>.btn{flex:1;min-width:90px;min-height:48px}
@media(max-width:760px){
 #mobile-nav.mobile-nav{display:flex!important;align-items:stretch;padding-left:0!important;padding-right:0!important;gap:0!important}
 .mobile-nav-side{width:calc((100% - 56px)/2);display:flex;justify-content:space-around;min-width:0}.mobile-nav-center{width:56px;flex:0 0 56px;display:flex}
 #mobile-nav .mobile-nav-side>button,#mobile-nav .mobile-nav-center>button{flex:1;min-width:0!important;width:auto!important;padding:7px 0!important;gap:4px;font-size:9px;display:flex;flex-direction:column;justify-content:center;align-items:center;border:0;outline:0;background:transparent;line-height:1.3;white-space:nowrap}
 #mobile-nav .mobile-nav-center .nav-icon{width:38px;height:31px;display:grid;place-items:center;border-radius:10px;color:var(--blue);background:var(--soft)}#mobile-nav .mobile-nav-center>button.active .nav-icon{background:#2864ee;color:white}#mobile-nav .nav-icon svg{width:23px;height:23px}.acc-workout{padding:18px}
}
@media(orientation:landscape) and (max-height:560px){.timer-run{padding:12px}.timer-digits{line-height:1.25;font-size:76px}.timer-note{margin:12px 0}.timer-heading{margin-bottom:14px}}
.timer-mix-head select{appearance:auto;min-height:44px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--text);padding:8px 12px;font:inherit;font-weight:700}.timer-mode-tabs button:focus-visible{outline:2px solid var(--blue);outline-offset:3px}

/* Compact header tools and the original equally spaced bottom navigation. */
.top-actions>.header-tool,.top-actions>.personal-settings{width:44px!important;height:44px!important;min-width:44px;min-height:44px;flex:0 0 44px;display:grid;place-items:center;padding:10px!important;border:1px solid var(--line);border-radius:50%;background:var(--surface);color:var(--text)}.top-actions>.header-tool[hidden]{display:none!important}.top-actions>.header-tool svg,.top-actions>.personal-settings svg{width:24px;height:24px;stroke-width:1.7}.top-actions{gap:8px}
@media(max-width:760px){#mobile-nav.mobile-nav{display:flex!important;justify-content:space-around;padding-left:5px!important;padding-right:5px!important;gap:0!important}#mobile-nav.mobile-nav>button{flex:1 1 0;min-width:0!important;width:0!important;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:7px 2px!important;font-size:10px;gap:5px}#mobile-nav .nav-icon svg{width:25px;height:25px}.top-actions{gap:6px!important}.mobile-brand .brand-mark{max-width:135px}.topbar{gap:8px!important}}
@media(max-width:350px){.mobile-brand .brand-mark{max-width:115px}.top-actions{gap:4px!important}}
/* Every input keeps a 44px hit area with a smaller, consistent clear glyph. */
.clear-input-button{width:44px!important;height:44px!important;min-width:44px;min-height:44px;font-size:0!important;display:grid;place-items:center}.clear-input-button svg{width:16px;height:16px;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;fill:none}.clear-input-button[hidden]{display:none!important}
.timer-heading-actions{display:flex;align-items:center;gap:12px}.timer-mix-head [data-timer-remove]{font-size:0;width:40px;min-width:40px;height:44px;display:grid;place-items:center}.timer-mix-head [data-timer-remove] svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7}.timer-mix-head [data-timer-remove]:disabled{opacity:.25}
body.timer-immersive{overflow:hidden!important}body.timer-immersive .app-header,body.timer-immersive .sidebar,body.timer-immersive #mobile-nav,body.timer-immersive .site-footer,body.timer-immersive #scroll-top{display:none!important}body.timer-immersive #timer-screen{position:fixed;inset:0;z-index:5000;max-width:none;width:100%;height:100dvh;background:var(--bg,#0c1422);padding:calc(20px + env(safe-area-inset-top)) max(20px,env(safe-area-inset-right)) calc(20px + env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left));overflow:auto;box-sizing:border-box}body.timer-immersive .timer-run{max-width:1000px;margin:auto}body.timer-immersive .timer-digits{font-size:clamp(68px,19vw,220px);line-height:1.45}body.timer-immersive .timer-actions,body.timer-immersive .timer-note{max-width:1000px;margin-left:auto;margin-right:auto}
.video-category-list .history-row{min-height:54px;padding:8px 0}.video-category-list .history-row>strong{font-size:15px;font-weight:600}.video-category-list .history-row .icon-control svg{width:18px;height:18px}.video-category-list .history-row>div{gap:2px}
.acc-workout .panel-head{border:0;padding-bottom:14px}.acc-workout .acc-section-card{margin:0;border-left:3px solid #b59bf5;padding:18px;background:var(--soft);border-radius:12px}.acc-section-card .course-section-footer{margin-top:16px}
button.holiday-refresh[data-refresh-control]{width:auto!important;flex:0 0 auto;gap:6px;padding:8px 10px!important;font-size:11px;background:var(--soft);border-radius:8px;white-space:nowrap}button.holiday-refresh svg{width:17px;height:17px}.intro:has(.holiday-refresh){align-items:flex-start;gap:10px}.intro:has(.holiday-refresh)>div{min-width:0}.intro:has(.holiday-refresh) .holiday-refresh{margin-top:2px}
@media(max-width:760px){.intro:has(.holiday-refresh){display:flex!important;flex-wrap:nowrap!important;justify-content:space-between}.intro:has(.holiday-refresh) h1{font-size:clamp(20px,5.6vw,26px)!important;white-space:nowrap}.intro:has(.holiday-refresh) p{font-size:11px!important}.intro:has(.holiday-refresh) .holiday-refresh{font-size:10px;min-height:40px;height:40px!important;padding:6px 8px!important}}
/* Color reaches only the two original power-symbol O shapes. */
.startup-power.startup-power-on{display:block;clip-path:polygon(0 0,24% 0,24% 66%,0 66%);animation:startup-o-color .9s .25s ease-in-out both}.startup-power.startup-power-off{display:block;clip-path:polygon(43% 0,65% 0,65% 66%,43% 66%);background:#88aff7;animation:startup-o-color .9s .4s ease-in-out both}@keyframes startup-o-color{from{opacity:0}to{opacity:1}}@media(prefers-reduced-motion:reduce){.startup-power.startup-power-on,.startup-power.startup-power-off{animation:none;opacity:1}}
/* Point balance, catalogue and swipeable membership/coupon wallet. */
.points-balance{grid-column:1/-1;display:flex;align-items:center;gap:12px;width:100%;padding:17px 20px;text-align:left;border:1px solid var(--line)}.points-balance>span:first-child{font-size:11px;letter-spacing:1.5px;color:var(--blue);font-weight:700}.points-balance strong{font-size:23px;flex:1}.points-balance small,.shop-balance small{font-size:12px;margin-left:5px;color:var(--muted)}.points-balance>span:last-child{color:var(--muted);font-size:12px}.shop-balance{display:flex;align-items:center;justify-content:space-between;padding:24px;margin-bottom:18px}.shop-balance>span{color:var(--muted);font-size:13px}.shop-balance>strong{font-size:32px}.point-products{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:22px 0}.point-product{padding:20px;display:flex;flex-direction:column;justify-content:space-between;min-width:0}.point-product h2{font-size:19px;margin:0 0 10px}.point-product p{font-size:12px;color:var(--muted);white-space:pre-wrap;overflow-wrap:anywhere}.point-product span{font-size:11px;color:var(--muted)}.point-product-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:24px}.point-product-footer>strong{font-size:19px;color:var(--blue)}.point-product-footer .btn{padding:10px 14px;min-width:60px}.point-history,.point-admin-products,.point-issued{margin-top:24px;padding:20px}.point-admin-products,.point-issued{padding:0;border-top:1px solid var(--line);padding-top:24px}.point-row-actions{display:flex}.point-history h2,.point-admin-products h2,.point-issued h2{font-size:18px}.point-plus{color:#71cbb2}.point-form-status{font-size:12px;color:#f1b0b8;line-height:1.7}.point-off{padding:18px;line-height:1.8;color:var(--muted);font-size:13px}.point-earn-guide{line-height:1.8}
.member-card-wallet{min-width:0;max-width:520px;width:100%}.wallet-label{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;font-size:12px}.wallet-label small{color:var(--muted);font-size:10px}.member-card-wallet .swipe-page{padding:1px;box-sizing:border-box}.member-card-wallet .membership-card{margin:0;max-width:none;width:100%;box-sizing:border-box}.coupon-card{box-sizing:border-box;width:100%;min-height:285px;padding:25px;border:1px solid #597fab;border-radius:20px;background:linear-gradient(140deg,#1b375c,#14253c);color:#eef4ff;display:flex;flex-direction:column;position:relative;overflow:hidden}.coupon-card:after{content:'';position:absolute;right:-35px;top:-50px;width:160px;height:160px;border:25px solid #86b4ff12;border-radius:50%;pointer-events:none}.coupon-card-top{display:flex;align-items:center;justify-content:space-between;gap:8px;z-index:1}.coupon-card-top>span{font-size:10px;letter-spacing:1.5px;color:#bdd2ee}.coupon-card-top>strong{font-size:10px;font-weight:500;border:1px solid #bdd2ee66;border-radius:20px;padding:5px 9px}.coupon-card h2{margin:27px 0 12px;font-size:25px;overflow-wrap:anywhere}.coupon-count{display:flex;align-items:baseline;gap:8px}.coupon-count strong{font-size:42px}.coupon-count span{color:#bdd2ee;font-size:15px}.coupon-card p{font-size:11px;line-height:1.7;color:#bdd2ee;margin:12px 0 20px}.coupon-card>.btn{margin-top:auto;z-index:1}.coupon-used{font-size:14px;color:#bdd2ee;border-top:1px dashed #bdd2ee55;padding-top:15px}.empty-coupon{justify-content:center}.empty-coupon>span{font-size:11px;letter-spacing:2px;color:#bdd2ee}.empty-coupon h2{margin-top:22px}.point-history .history-row>div{min-width:0;overflow-wrap:anywhere}.point-issued .history-row>strong{font-size:13px;white-space:nowrap}
@media(max-width:420px){.point-products{gap:10px}.point-product{padding:15px}.point-product h2{font-size:17px}.point-product-footer{flex-wrap:wrap;gap:10px}.point-product-footer .btn{width:100%;min-height:42px}.point-product-footer>strong{font-size:17px}}
.startup-brand>.brand-mark{--logo:#fff;background:#fff}.member-card-wallet .membership-card{min-height:320px;display:flex;flex-direction:column}.member-card-wallet .membership-dates{margin-top:auto}.member-card-wallet .coupon-card{min-height:320px}.top-actions>.header-tool,.top-actions>.personal-settings,.timer-mix-head select{color:var(--ink)}
@media(orientation:landscape) and (max-height:560px){body.timer-immersive #timer-screen{padding:calc(10px + env(safe-area-inset-top)) max(20px,env(safe-area-inset-right)) calc(10px + env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left))}body.timer-immersive .timer-heading{margin:0 0 10px}body.timer-immersive .timer-heading h1{font-size:22px;margin:0}body.timer-immersive .timer-heading p,body.timer-immersive .timer-note{display:none}body.timer-immersive .timer-run{padding:10px}body.timer-immersive .timer-digits{font-size:clamp(58px,23dvh,130px);line-height:1.12}body.timer-immersive .timer-state{margin:6px 0 0}body.timer-immersive .timer-actions{margin-top:12px;margin-bottom:0}}

/* Centre each SVG inside the circle, without padding changing its grid origin. */
.top-actions>.header-tool,.top-actions>.personal-settings{padding:0!important;line-height:0;display:grid!important;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr);place-items:center}.top-actions>.header-tool svg,.top-actions>.personal-settings svg{display:block;margin:0;transform:none;flex:none;overflow:visible}
.timer-sound-icon{display:inline-grid;place-items:center;color:var(--blue);width:22px;height:24px}.timer-sound-icon svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.timer-icon-button{display:grid!important;place-items:center;min-width:52px!important;width:60px!important;height:48px;flex:0 0 60px!important;padding:0!important}.timer-icon-button svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.timer-actions{justify-content:center}
@media(orientation:landscape){body.timer-immersive #timer-screen:has(.timer-run){display:flex;flex-direction:column;gap:10px;overflow:hidden}body.timer-immersive .timer-heading{flex:0 0 38px;min-height:38px;margin:0;justify-content:flex-end}body.timer-immersive .timer-heading>div:first-child{display:none}body.timer-immersive .timer-heading-actions{gap:12px}body.timer-immersive .timer-run{flex:1 1 auto;min-height:0;width:100%;max-width:none;margin:0;padding:8px;display:flex;flex-direction:column;align-items:center;justify-content:center}body.timer-immersive .timer-digits{font-size:clamp(64px,min(20vw,44dvh),240px);line-height:1.03;letter-spacing:-5px}body.timer-immersive .timer-run-mode{font-size:clamp(14px,4dvh,22px);line-height:1.1;margin:0 0 5px}body.timer-immersive .timer-round{font-size:12px;line-height:1.3}body.timer-immersive .timer-state{margin:4px 0 0;font-size:11px;line-height:1.2}body.timer-immersive .timer-actions{flex:0 0 48px;width:100%;max-width:none;margin:0;gap:24px}body.timer-immersive .timer-note{display:none}}
/* The scrollport starts at the tabs; no transparent strip above its sticky row. */
#modal .modal-content:has(.member-detail-tabs){padding-top:0}.member-detail-summary{padding-top:18px}.member-detail-tabs{top:0;background:var(--surface)!important;box-shadow:0 -24px 0 0 var(--surface);z-index:4;isolation:isolate}.member-point-balance{display:flex!important;gap:8px;align-items:center;margin-top:6px;font-size:12px!important}.member-point-balance strong{font-size:14px;color:var(--blue)}
/* Related-movement suggestions stay in normal flow while the keyboard is open. */
.movement-picker:has(.movement-suggestions:not([hidden])){padding-bottom:0!important}.movement-suggestions{position:static!important;inset:auto!important;max-height:var(--suggestion-height,160px)!important;width:100%;overscroll-behavior:contain}#workout-form.movement-searching .section-editor-tabs{position:static!important}.movement-picker{scroll-margin-top:12px}
.point-admin-products .history-row>div>strong,.point-admin-rules .history-row>div>strong{font-size:15px!important;font-weight:600}.point-admin-products .history-row,.point-admin-rules .history-row{padding:10px 0;min-height:56px}.point-admin-products .icon-control svg,.point-admin-rules .icon-control svg,.rm-catalogue-actions .icon-control svg{width:18px;height:18px}.point-admin-rules,.point-manual,.point-demo-launch{border-top:1px solid var(--line);margin-top:24px;padding-top:24px}.point-admin-rules h2,.point-manual h2,.point-demo-launch h2{font-size:18px}.point-demo-launch{display:flex;align-items:center;gap:14px;justify-content:space-between}.point-demo-launch .btn{flex-shrink:0}.point-demo-note{padding:12px;border:1px solid var(--line);border-radius:8px;font-size:12px;line-height:1.8;color:var(--blue)}.point-demo-controls{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}.point-demo-controls>.btn{flex:1;min-width:120px}.point-demo-coupons .coupon-card{margin-top:14px}.point-demo-coupons .field{color:#e9eff9}.point-demo-coupons input{background:#10233d;color:white}.coupon-card .coupon-dates{font-size:11px;line-height:1.9;margin-bottom:0}.rm-catalogue-actions{display:flex;align-items:center;gap:2px}.rm-admin-row{gap:8px}.rm-admin-row>div:first-child{flex:1;min-width:0}.rm-admin-row>div:first-child>strong{overflow-wrap:anywhere}.rm-admin-row>.rm-catalogue-actions{flex:0 0 auto}
.schedule-filter-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:10px;margin:12px 0 22px}.schedule-date-control{position:relative;display:flex;flex-direction:column;gap:9px;min-width:0;font-size:12px}.schedule-date-visible{height:44px;display:flex;align-items:center;gap:8px;padding:0 12px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--ink);font-size:12px;white-space:nowrap}.schedule-date-visible>span:nth-child(2){flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}.schedule-date-visible svg{width:18px;height:18px;flex-shrink:0}.schedule-date-control input[type=date]{position:absolute;left:0;bottom:0;opacity:0;width:100%;height:44px;min-height:44px;cursor:pointer;z-index:1}.schedule-date-control:focus-within .schedule-date-visible{outline:2px solid var(--blue);outline-offset:2px}.schedule-filter-row>[data-schedule-past]{height:44px;min-height:44px;margin:0;padding:8px 12px;font-size:12px;white-space:nowrap}.schedule-filter-row>[data-schedule-reset]{grid-column:1/-1;justify-self:start;min-height:32px}

/* Keep the storage card's geometry while refreshing or returning to the app. */
.storage-usage-head{display:flex;align-items:center;justify-content:space-between;min-height:36px;gap:12px}.storage-usage-head>.storage-refresh{display:grid;place-items:center;width:36px;height:36px;min-height:36px;min-width:36px;padding:7px;border:0;background:transparent;flex:none}.storage-refresh svg{display:block;width:22px;height:22px}.storage-usage .storage-metric>span,.storage-usage .storage-metric>strong{white-space:nowrap}.storage-usage-status{height:32px;line-height:16px;font-size:10px;font-weight:400;color:var(--muted);margin:10px 0 0;overflow:auto;overflow-wrap:anywhere}

/* Equal card sizes, compact point lists and balanced persistent navigation. */
.member-card-wallet .membership-card,.member-card-wallet .coupon-card{height:380px;min-height:380px;max-height:380px;margin:0;padding:18px;border-radius:18px;display:flex;flex-direction:column}
.member-card-wallet .membership-logo{height:30px}.member-card-wallet .membership-card-main{margin:16px 0 12px;min-height:45px}.member-card-wallet .membership-card-main h3{font-size:20px;line-height:1.35}.member-card-wallet .membership-metric{font-size:28px;line-height:1}.member-card-wallet .membership-metric small{font-size:10px;line-height:1.3;margin-top:4px}.member-card-wallet .membership-owner{margin-bottom:12px}.member-card-wallet .membership-dates{padding-top:12px}.member-card-wallet .membership-card-note{line-height:1.5;margin:10px 0 0}
.member-card-wallet .coupon-card h2{font-size:22px;line-height:1.35;margin:12px 0 6px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.member-card-wallet .coupon-count strong{font-family:Arial,sans-serif;font-size:32px;line-height:1.1}.member-card-wallet .coupon-card p{font-size:11px;line-height:16px;margin:6px 0 10px}.member-card-wallet .coupon-card .coupon-dates{margin:10px 0 0;line-height:17px}.member-card-wallet .coupon-card>.btn{min-height:42px;margin-top:auto}
.point-history>.panel-head,.point-admin-rules>.panel-head,.point-admin-products>.panel-head{padding:0;min-height:44px;align-items:center;margin-bottom:12px}.point-history>h2{min-height:44px;display:flex;align-items:center;margin:0 0 12px}.point-admin-rules>.history-row,.point-admin-products>.history-row{min-height:64px;padding:12px 0;gap:10px}.point-admin-rules .history-row>div:first-child,.point-admin-products .history-row>div:first-child{flex:1;min-width:0}.point-admin-rules .history-row strong,.point-admin-products .history-row strong{line-height:1.5}.point-admin-rules .point-row-actions{align-items:center;flex:none}.point-issued .history-row{min-height:72px;padding:10px 0;gap:12px}.point-issued .history-row>div{min-width:0;flex:1}.point-issued .history-row>strong{font:600 12px/1.5 Arial,sans-serif;color:var(--muted)}.point-issued .history-row small{font-size:10px;line-height:1.6}.point-issued .history-row small+small{margin-top:2px}
.point-member-results{display:grid;max-height:220px;overflow:auto;border:1px solid var(--line);border-radius:8px;margin:-6px 0 12px}.point-member-results:empty{display:none}.point-member-results button{text-align:left;min-height:44px;padding:10px 12px;font-size:13px}.point-member-results button:hover,.point-member-results button:focus{background:var(--soft)}.point-member-results button small{float:right;color:var(--muted)}.point-member-selected{min-height:20px;margin:4px 0 14px;font-size:12px;color:var(--blue)}.point-manual>h2{margin-bottom:16px}.point-method-toolbar{display:flex;gap:8px;flex-wrap:wrap}.point-method-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 0;border-bottom:1px solid var(--line);font-size:14px}.point-method-row>div:first-child{flex:1;min-width:0}.point-method-row small{display:block;font-size:11px;color:var(--muted)}
.member-identity>.avatar.member-active{box-shadow:0 0 0 2px #46cd91}.member-identity>.avatar.member-paused{box-shadow:0 0 0 2px #f5cf58}
@media(max-width:760px){:root{--mobile-nav-height:calc(58.1px + var(--safe-bottom))}body:not(.login-mode) #mobile-nav.mobile-nav{padding:0 max(5px,var(--safe-right)) var(--safe-bottom) max(5px,var(--safe-left))!important;align-items:stretch}#mobile-nav.mobile-nav>button{padding:6px 2px!important;gap:4px;line-height:1.2;justify-content:center}.mobile-nav .nav-icon{display:grid;place-items:center;position:relative}}
.timer-duration{grid-column:1/-1;min-width:0}.timer-duration .field{margin-bottom:10px}.timer-quick{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:0 0 12px}.timer-quick .btn{min-height:40px;padding:8px 12px;font-size:12px;flex:1}.timer-quick .icon-control{flex:none;width:40px;height:40px;display:grid;place-items:center}.timer-setup-actions{display:flex;gap:10px;margin-top:24px}.timer-setup-actions>.btn{min-height:58px}.timer-setup-actions>.timer-start{margin:0;flex:1;width:auto}.timer-digits{font-family:Arial,Helvetica,sans-serif!important;font-variant-numeric:tabular-nums lining-nums;font-weight:800;letter-spacing:-2px!important}.timer-run{position:relative}.timer-go{position:absolute;inset:0;display:grid;place-items:center;font:900 clamp(70px,25vw,220px)/1 Arial,sans-serif;color:#68e0a5;background:var(--surface);border-radius:inherit;z-index:1}.timer-go[hidden]{display:none!important}.timer-run.is-go .timer-digits{visibility:hidden}
@media(orientation:landscape){body.timer-immersive .timer-run-mode{font-size:clamp(24px,7dvh,42px);line-height:1.1}body.timer-immersive .timer-digits{font-size:clamp(64px,min(21vw,43dvh),240px)}body.timer-immersive .timer-go{font-size:clamp(90px,55dvh,260px)}}
.point-admin-rules>.panel-head{flex-wrap:wrap;row-gap:10px}.point-method-toolbar{margin-left:auto}.point-admin-rules .history-row strong,.point-admin-products .history-row strong,.point-method-row strong{overflow-wrap:anywhere}.point-product-footer{flex-wrap:wrap}.rm-management-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.rm-management-actions>.btn{white-space:nowrap}
