/* Staff workspace (/manage): modern density and the operations / booking-manager components.
   Dark colours here are the source; scripts/build-workspace-theme.mjs derives workspace-light.css. */
body.manager-page{font-size:14px;background:#141618}
body.manager-page .manager-shell{grid-template-columns:208px minmax(0,1fr)}
body.manager-page .manager-sidebar{padding:18px 12px 16px;background:#191c1e;border-right:1px solid #2a2f2f}
body.manager-page .manager-logo{padding:0 8px}
body.manager-page .manager-logo img{width:88px}
body.manager-page .manager-logo>span{font-size:9px;margin-top:8px;letter-spacing:2px}
body.manager-page .sidebar-caption{display:none}
body.manager-page .manager-sidebar nav{gap:2px;margin-top:20px}
body.manager-page .manager-sidebar nav button,body.manager-page .manager-sidebar nav a{font-size:13.5px;font-weight:500;padding:9px 11px;gap:10px;border-radius:8px;color:#b8c0b7;border:1px solid transparent}
body.manager-page .manager-sidebar nav button:hover,body.manager-page .manager-sidebar nav a:hover{background:#23282a;color:#eef1ea}
body.manager-page .manager-sidebar nav .selected{padding:9px 11px;color:#e4f630;background:#e4f63014;border-color:#e4f6302b;font-weight:700}
body.manager-page .manager-sidebar nav .ico{width:16px;height:16px}
body.manager-page .sidebar-more{display:block;margin:16px 11px 4px;font-size:11px;letter-spacing:1px;color:#6f786f}
@media(max-width:800px){body.manager-page .sidebar-more{display:none}}
body.manager-page .sidebar-bottom{display:none}
body.manager-page .manager-main{background:#141618}
body.manager-page .manager-topbar{height:52px;padding:0 24px;font-size:13px;color:#9aa39a;border-bottom:1px solid #2a2f2f;background:#171a1c}
body.manager-page .manager-topbar>div{gap:12px}
body.manager-page .manager-logout,body.manager-page .ws-theme-toggle{font-size:12.5px;font-weight:600;padding:6px 11px;border-radius:7px;border:1px solid #333a38;background:transparent;color:#c7cec5}
body.manager-page .admin-avatar{width:28px;height:28px;font-size:11px}
body.manager-page .manager-content{max-width:1480px;padding:20px 24px 40px}
body.manager-page .manager-title{margin-bottom:16px;gap:12px}
body.manager-page .manager-title .eyebrow{display:none}
body.manager-page .manager-title h1{font-size:22px;letter-spacing:-.4px;margin:0 0 3px;line-height:1.3}
body.manager-page .manager-title p{font-size:13px;color:#8f988e;margin:0;line-height:1.5}
body.manager-page .manager-title>button{font-size:13px;padding:8px 14px}
body.manager-page .manager-content h2{font-size:16px;letter-spacing:-.2px;margin-bottom:10px}
body.manager-page .manager-content h3{font-size:15px;letter-spacing:-.2px;margin-bottom:8px;line-height:1.4}
body.manager-page .manager-content p{font-size:13px;line-height:1.6}
body.manager-page .manager-content .eyebrow{font-size:10px;letter-spacing:1.5px}
body.manager-page .manager-content .section-head{margin-bottom:10px}
body.manager-page .manager-content .section-head h2{font-size:16px}
body.manager-page .surface{padding:16px 18px;border-radius:12px;background:#1c1f21;border-color:#2b3030}
body.manager-page .manager-content button,body.manager-page .crm-dialog button{font-size:13px;padding:8px 13px;border-radius:8px;font-weight:600}
body.manager-page .manager-content input,body.manager-page .manager-content select,body.manager-page .manager-content textarea,body.manager-page .crm-dialog input,body.manager-page .crm-dialog select,body.manager-page .crm-dialog textarea{font-size:13.5px;padding:8px 10px;border-radius:8px;margin-top:4px}
body.manager-page .manager-content select,body.manager-page .crm-dialog select{min-height:36px}
body.manager-page .manager-content label,body.manager-page .crm-dialog label{font-size:12.5px;margin-bottom:10px}
body.manager-page .stat-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:16px}
body.manager-page .stat-card{padding:12px 14px;border-radius:10px}
body.manager-page .stat-card>span{font-size:12px}
body.manager-page .stat-card>strong{font-size:26px;margin:6px 0 2px}
body.manager-page .stat-card>small{font-size:11px}
body.manager-page .session-line{padding:10px 0;gap:12px}
body.manager-page .session-line>.numeric{font-size:16px}
body.manager-page .session-line b{font-size:13.5px}
body.manager-page .session-line small{font-size:12px;margin-top:2px}
body.manager-page .member-row{padding:10px 0;font-size:13px}
body.manager-page .member-row .person b{font-size:13.5px}
body.manager-page .member-row .person small,body.manager-page .member-row>.numeric,body.manager-page .member-row>span:nth-child(2){font-size:12px}
body.manager-page .table-head{font-size:12px;padding:8px 0}
body.manager-page .admin-class{padding:12px 0;gap:14px}
body.manager-page .status-tag{font-size:11.5px;padding:3px 8px}
body.manager-page .care-filters{gap:6px}
body.manager-page .care-filters button{font-size:12.5px;padding:6px 11px}
body.manager-page .fine{font-size:12px}
body.manager-page .crm-dialog{border-radius:14px;background:#1c1f21;border-color:#333a38}
body.manager-page .dialog-head{padding:12px 16px;background:#1c1f21;border-bottom-color:#2b3030}
body.manager-page .dialog-head h2{font-size:16px}
body.manager-page .dialog-head button{font-size:20px;padding:0 6px}
body.manager-page .dialog-head .dialog-back{font-size:13px}
body.manager-page .dialog-body{padding:16px}
body.manager-page .roster-row{padding:9px 0;font-size:13.5px}
/* Operations overview */
body.manager-page .ops-title{margin-bottom:14px}
.ops-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:14px}
body.manager-page .ops-kpi{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;padding:12px 14px;border-radius:11px;border:1px solid #2b3030;background:#1c1f21;color:#eef1ea;font-weight:500;cursor:pointer}
body.manager-page .ops-kpi:hover{border-color:#e4f63055;background:#202426}
.ops-kpi span{font-size:12.5px;color:#a8b0a6}
.ops-kpi strong{font-size:26px;font-weight:800;line-height:1.25;color:#eef1ea;font-variant-numeric:tabular-nums}
.ops-kpi small{font-size:11.5px;color:#7f887e}
body.manager-page .ops-kpi.lead{border-top:2px solid #e4f630}
.ops-kpi.lead strong{color:#e4f630}
body.manager-page .ops-kpi.alert{border-color:#e0a24f66}
.ops-kpi.alert strong{color:#f0b35e}
.ops-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr) minmax(0,1.1fr);gap:12px;align-items:start;margin-bottom:14px}
@media(max-width:1180px){.ops-grid{grid-template-columns:1fr 1fr}.ops-tasks{grid-column:1/-1}}
@media(max-width:760px){.ops-grid{grid-template-columns:1fr}}
body.manager-page .ops-col{padding:14px 14px 12px}
.ops-col-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px;min-height:30px}
body.manager-page .ops-col-head h3{margin:0;font-size:15px;font-weight:800}
body.manager-page .ops-link{border:0;background:transparent;color:#e4f630;padding:4px 6px;font-size:12.5px}
.ops-block{border-top:1px solid #2b3030;padding:9px 0}
.ops-block:first-of-type{border-top:0;padding-top:0}
body.manager-page .ops-block-head{display:flex;width:100%;justify-content:space-between;align-items:center;border:0;background:transparent;padding:2px 0;color:#eef1ea;font-weight:600}
.ops-block-head span{font-size:17px;font-weight:800;font-variant-numeric:tabular-nums}
.ops-chips{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px}
body.manager-page .ops-chip{padding:3px 9px;border-radius:999px;font-size:12px;font-weight:500;background:#23282a;border:1px solid #30363a;color:#d7ddd4}
body.manager-page .ops-chip:hover{border-color:#e4f63066}
.ops-none,.ops-more{font-size:12px;color:#7f887e}
.ops-requests{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:4px}
body.manager-page .ops-requests button{width:100%;text-align:left;border:1px solid #2b3030;background:#202426;padding:6px 9px;font-weight:500;font-size:12.5px}
.ops-requests small{color:#9aa39a;margin-left:4px}
/* 사이트 무료체험 신청 → 새 체험 신청 list (운영 현황, 회원 관리 → 요청, 헤드코치 운영 데스크), 2026-10-07. */
body.manager-page .trial-signups.has-new{border-color:#e4f63066;box-shadow:0 0 0 1px #e4f63033 inset}
body.manager-page .trial-signups h2 b{color:#e4f630}
.trial-signup-list{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:6px}
.trial-signup-list li{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;padding:9px 12px;border-radius:12px;background:#202426;border:1px solid #2b3030;font-size:13px}
.trial-signup-list li.is-new{border-color:#e4f63055;background:#232a1f}
.trial-signup-list .trial-new{font-size:11px;font-weight:800;padding:2px 7px;border-radius:999px;background:#e4f630;color:#151914}
.trial-signup-list .trial-class-label{font-weight:600;color:#e7ece2}
.trial-signup-list small{color:#9aa39a}
.trial-signup-list .ops-link,.trial-signup-list .trial-ack{margin-left:auto}
/* 처음 방문 신청 패널 (2026-10-27): 오픈짐 요청의 확정·안 됨 줄 안 폼. 색은 위 규칙을 그대로 쓴다. */
.trial-signup-list .visit-actions{margin-left:auto;display:flex;gap:4px}.trial-signup-list .visit-actions .ops-link{margin-left:0}
.trial-signup-list .visit-decide{flex-basis:100%;display:grid;gap:8px;margin-top:4px}.trial-signup-list .visit-decide label{display:grid;gap:4px;font-size:12px}.trial-signup-list .visit-decide input{width:100%;min-width:0}
.trial-signup-list .visit-decide-actions{display:flex;gap:6px;flex-wrap:wrap}.trial-signup-list .visit-decide-actions button{margin:0}
.trial-signup-list .trial-src{font-size:11px;font-weight:700;padding:2px 7px;border-radius:999px;border:1px solid #3a4040;color:#c9d0c6;white-space:nowrap}
.trial-signup-list .trial-src.talk{border-color:#03c75a80;color:#7fe3a6}
.trial-signup-list .trial-class-label,.trial-signup-list small{word-break:keep-all}
.trial-signups .trial-phone{white-space:nowrap}
.ops-date{display:flex;align-items:center;gap:4px;font-size:13px;font-weight:700}
body.manager-page .ops-date button{padding:3px 9px;font-size:15px;line-height:1.2;background:transparent;border:1px solid #333a38}
body.manager-page .ops-date .ops-today{font-size:12px;padding:4px 8px}
.ops-date span{min-width:96px;text-align:center}
.ops-class-list{display:grid;gap:6px}
body.manager-page .ops-class{display:grid;grid-template-columns:54px minmax(0,1fr) auto;align-items:center;gap:10px;width:100%;text-align:left;padding:9px 10px;border-radius:9px;border:1px solid #2b3030;background:#202426;color:#eef1ea;font-weight:500}
body.manager-page .ops-class:hover{border-color:#e4f63066;background:#242a2b}
body.manager-page .ops-class.live{border-color:#e4f630aa;box-shadow:inset 3px 0 0 #e4f630}
body.manager-page .ops-class.done{opacity:.6}
.ops-time{font-size:15px;font-weight:800;font-variant-numeric:tabular-nums;line-height:1.1}
.ops-time small{display:block;font-size:11px;font-weight:500;color:#8f988e;margin-top:2px}
.ops-class-main b{display:block;font-size:13.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ops-class-main small{display:block;font-size:12px;color:#8f988e}
.ops-count{text-align:right}
.ops-count b{font-size:16px;font-weight:800;font-variant-numeric:tabular-nums}
.ops-count b i{font-style:normal;font-weight:500;color:#8f988e;font-size:13px}
.ops-count small{display:block;font-size:11.5px;color:#8f988e}
.ops-empty{font-size:13px;color:#8f988e;padding:18px 0;text-align:center}
.ops-foot{margin:8px 0 0 !important;font-size:11.5px !important;color:#7f887e}
.ops-progress{display:flex;align-items:center;gap:8px;font-size:12.5px;font-weight:700;color:#c7cec5;font-variant-numeric:tabular-nums}
.ops-progress i{position:relative;display:block;width:70px;height:6px;border-radius:3px;background:#2b3030;overflow:hidden}
.ops-progress i::after{content:"";position:absolute;inset:0 auto 0 0;width:var(--p);background:#e4f630;border-radius:3px}
body.manager-page .ops-tasks h4{display:flex;justify-content:space-between;margin:12px 0 6px;font-size:12px;letter-spacing:.5px;color:#9aa39a;font-weight:700}
body.manager-page .ops-tasks h4:first-of-type{margin-top:0}
.chk-list{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.chk{display:grid;grid-template-columns:24px minmax(0,1fr) auto;gap:10px;align-items:start;padding:7px 8px;border-radius:8px;border:1px solid transparent}
.chk:hover{background:#202426;border-color:#2b3030}
body.manager-page .chk-box{width:22px;height:22px;padding:0;border-radius:6px;border:1.5px solid #4a524c;background:transparent;margin-top:1px;display:flex;align-items:center;justify-content:center}
body.manager-page .chk.done .chk-box{background:#e4f630;border-color:#e4f630}
.chk.done .chk-box::after{content:"";width:5px;height:10px;border:solid #17191b;border-width:0 2px 2px 0;transform:rotate(45deg) translate(-1px,-1px)}
.chk b{display:block;font-size:13.5px;font-weight:600;line-height:1.35}
.chk small{display:block;font-size:12px;color:#8f988e;line-height:1.4;margin-top:1px}
.chk em{display:block;font-style:normal;font-size:12px;color:#c7cec5;margin-top:3px}
.chk em.chk-open{color:#f0b35e}
.chk.done b{color:#8f988e;text-decoration:line-through;text-decoration-color:#5a625b}
body.manager-page .chk-memo{border:0;background:transparent;color:#8f988e;font-size:12px;padding:2px 4px;font-weight:500}
body.manager-page .chk-memo:hover{color:#e4f630}
body.manager-page .ops-tasks .text-action{margin-top:10px;font-size:12.5px;padding:4px 0;border:0;background:transparent;color:#e4f630}
/* 유효회원 (owner 2026-10-07, public/valid-members.js): 운영 현황 card, 추이 panel, 명단 dialog, 설정 제외 회원. SVG colours use currentColor. */
body.manager-page .vm-panel{padding:16px 18px 14px;margin-bottom:14px}
.vm-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin:4px 0 8px}
.vm-total{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;margin:0}.vm-total span{font-size:13px;color:#a8b0a6}.vm-total b{font-size:28px;font-weight:800;color:#e4f630;font-variant-numeric:tabular-nums}.vm-total small{font-size:12px;color:#7f887e}
.vm-month{margin:2px 0 12px}.vm-month-head{margin:0 0 6px;font-size:14px;color:#eef1ea}.vm-month-head b{font-size:17px;font-variant-numeric:tabular-nums}.vm-month-head small{color:#7f887e;margin-left:4px}
.vm-up{color:#7fd88f}.vm-down{color:#f0b35e}
.vm-chips{display:flex;flex-wrap:wrap;gap:6px}.vm-chip{display:inline-flex;gap:4px;align-items:baseline;padding:3px 9px;border-radius:999px;border:1px solid #2b3030;background:#181b1d;font-size:12px;color:#a8b0a6}.vm-chip b{color:#eef1ea;font-variant-numeric:tabular-nums}.vm-chip.up b{color:#7fd88f}.vm-chip.down b{color:#f0b35e}
.vm-controls{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:4px 0 8px}
.vm-seg{display:inline-flex;flex-wrap:nowrap;max-width:100%;border:1px solid #2b3030;border-radius:9px;overflow:hidden}.vm-seg button{white-space:nowrap;border:0;border-right:1px solid #2b3030;background:transparent;color:#a8b0a6;padding:6px 11px;font-size:12.5px;cursor:pointer}.vm-seg button:last-child{border-right:0}.vm-seg button.selected{background:#e4f630;color:#17191b;font-weight:700}
.vm-custom{display:inline-flex;align-items:center;gap:6px;color:#a8b0a6;font-size:12.5px}.vm-custom input{appearance:none;min-width:0;max-width:150px;height:32px;padding:0 8px;border-radius:8px;border:1px solid #2b3030;background:#181b1d;color:#eef1ea}
.vm-chart{display:block;width:100%;height:auto;max-height:260px;color:#a8b0a6;touch-action:manipulation}
.vm-grid{stroke:currentColor;stroke-opacity:.16;stroke-width:1}.vm-axis{fill:currentColor;font-size:11px;font-variant-numeric:tabular-nums}
.vm-line{color:#e4f630;stroke:currentColor;fill:none;stroke-width:2.4;stroke-linejoin:round}.vm-area{color:#e4f630;fill:currentColor;fill-opacity:.1;stroke:none}
.vm-cut{stroke:currentColor;stroke-opacity:.5;stroke-dasharray:4 4}.vm-dot{color:#e4f630;fill:currentColor;stroke:#17191b;stroke-width:2}.vm-hit{fill:transparent;cursor:pointer}
.vm-point{margin:4px 0 2px;font-size:13px;color:#eef1ea}.vm-point small{color:#7f887e;margin-left:4px}
.vm-note{margin:6px 0 0}.vm-empty{margin:18px 0}.vm-error{color:#f0b35e;margin:8px 0}.vm-flash{color:#7fd88f;margin:6px 0}
.vm-dialog .vm-rule{margin:0 0 10px}.vm-filters{margin:0 0 8px}.vm-search{max-width:280px;margin-bottom:8px}
.vm-table-wrap{overflow:auto;max-height:52vh;border:1px solid #2b3030;border-radius:10px}
.vm-table{width:100%;border-collapse:collapse;font-size:13px}.vm-table th{position:sticky;top:0;background:#1c1f21;color:#a8b0a6;font-weight:600;text-align:left;padding:7px 10px;border-bottom:1px solid #2b3030}.vm-table td{padding:7px 10px;border-bottom:1px solid #24292a;color:#eef1ea;white-space:nowrap}.vm-table td small{color:#7f887e}
.vm-tag{display:inline-block;padding:1px 6px;border-radius:6px;font-size:11px;border:1px solid #e0a24f66;color:#f0b35e;margin-left:4px}.vm-tag.soft{border-color:#2b3030;color:#a8b0a6}
.vm-status{display:inline-block;padding:1px 8px;border-radius:999px;font-size:12px;border:1px solid #2b3030;color:#eef1ea}.vm-status.held{color:#8fc3ff;border-color:#8fc3ff55}.vm-status.upcoming{color:#c9b8ff;border-color:#c9b8ff55}
.vm-sub{margin-top:10px;border:1px solid #2b3030;border-radius:10px;padding:8px 12px}.vm-sub summary{cursor:pointer;font-weight:600;color:#eef1ea}.vm-sub ul{margin:8px 0 2px;padding-left:18px;color:#c9cfc6;font-size:13px;line-height:1.6}
body.manager-page .vm-settings{padding:16px 18px;margin-top:14px}
.vm-ex-list,.vm-ex-cands{list-style:none;margin:8px 0;padding:0}.vm-ex-list li,.vm-ex-cands li{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:7px 0;border-bottom:1px solid #24292a}.vm-ex-list li small,.vm-ex-cands li small{color:#7f887e;flex:1}
.vm-ex-form{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end;margin-top:10px}.vm-ex-form label{display:flex;flex-direction:column;gap:3px;font-size:12px;color:#a8b0a6}
.sw-kpi-valid{display:flex;flex-wrap:wrap;gap:4px 16px}
@media(max-width:600px){.vm-seg button{padding:6px 8px;font-size:12px}.vm-table td,.vm-table th{padding:6px 7px}.vm-total b{font-size:24px}}
/* Booking manager dialog (LinkCoach style) */
body.manager-page .crm-dialog.bm-dialog{width:min(1040px,calc(100vw - 24px));max-height:92vh}
body.manager-page .bm-dialog .dialog-body{padding:0}
.bm-head{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 18px;border-bottom:1px solid #2b3030;height:auto;max-width:none;margin:0}
.bm-kind{display:inline-block;font-size:10.5px;font-weight:800;letter-spacing:1.5px;color:#e4f630;margin-bottom:3px}
body.manager-page .bm-head h3{margin:0;font-size:18px;font-weight:800}
.bm-head h3 b{font-weight:700;color:#c7cec5;margin-left:6px;font-variant-numeric:tabular-nums}
body.manager-page .bm-head p{margin:2px 0 0;font-size:12.5px;color:#8f988e}
.bm-cap{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:700}
body.manager-page .bm-cap input{width:64px;margin:0;text-align:center;font-weight:800;padding:6px}
body.manager-page .bm-cap input:disabled{opacity:1;background:transparent}
body.manager-page .bm-lock{padding:5px 8px;font-size:14px}
.bm-body{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}
.bm-body.single{grid-template-columns:1fr}
.bm-pane{padding:14px 18px;min-height:360px;max-height:calc(92vh - 170px);overflow:auto}
.bm-pool{border-right:1px solid #2b3030;background:#191c1e}
.bm-pane-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px}
body.manager-page .bm-pane-head h4{margin:0;font-size:14px;font-weight:800}
.bm-pane-head h4 span{color:#e4f630;margin-left:4px;font-variant-numeric:tabular-nums}
.bm-pane-head small{font-size:12px;color:#8f988e}
body.manager-page .bm-trial-btn{font-size:12.5px;padding:5px 10px;border-color:#e4f63066;color:#e4f630;background:transparent}
body.manager-page .bm-search{margin:0 0 8px}
.bm-trial{display:grid;grid-template-columns:1fr 1.3fr auto;gap:6px;padding:10px;margin-bottom:10px;border:1px dashed #e4f63066;border-radius:9px}
body.manager-page .bm-trial input{margin:0}
.bm-trial p{grid-column:1/-1;margin:0 !important;font-size:11.5px !important;color:#8f988e}
.bm-list{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.bm-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;align-items:center;gap:8px;padding:6px 8px;border-radius:9px;border:1px solid #2b3030;background:#202426}
.bm-pool .bm-row{grid-template-columns:minmax(0,1fr) auto}
.bm-row.in{border-color:#e4f63055}
.bm-row.wait{opacity:.85}
.bm-row.off{grid-template-columns:minmax(0,1fr) auto;opacity:.7}
body.manager-page .bm-name{display:block;min-width:0;text-align:left;border:0;background:transparent;padding:2px 0;color:#eef1ea;font-weight:500}
.bm-name b{display:block;font-size:13.5px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bm-name small{display:block;font-size:11.5px;color:#8f988e;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body.manager-page button.bm-name:hover b{color:#e4f630}
.bm-tags{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end}
.bm-tag{font-size:11px;font-weight:700;padding:2px 7px;border-radius:999px;background:#2b3030;color:#c7cec5}
.bm-tag.trial{background:#243449;color:#cfe3ff}.bm-tag.walkin{background:#3a3222;color:#ffe7b3}.bm-tag.over{background:#3b2a3f;color:#f1d4ff}.bm-tag.noshow{background:#4a2323;color:#ffd7d2}
body.manager-page .bm-check{display:inline-flex;align-items:center;gap:6px;padding:5px 9px 5px 11px;font-size:12.5px;font-weight:700;border-radius:999px;border:1px solid #3a423c;background:transparent;color:#aeb6ac}
.bm-check i{width:18px;height:18px;border-radius:50%;border:1.5px solid #5a625b;display:inline-flex;align-items:center;justify-content:center}
body.manager-page .bm-check.on{background:#e4f63018;border-color:#e4f630;color:#e4f630}
.bm-check.on i{background:#e4f630;border-color:#e4f630}
.bm-check.on i::after{content:"";width:4px;height:8px;border:solid #17191b;border-width:0 2px 2px 0;transform:rotate(45deg) translate(-.5px,-1px)}
body.manager-page .bm-check:disabled{opacity:.45;cursor:not-allowed}
body.manager-page .bm-x{width:28px;height:28px;padding:0;border-radius:7px;border:1px solid transparent;background:transparent;color:#8f988e;font-size:14px}
body.manager-page .bm-x:hover{border-color:#7a3a33;color:#ffb4a8;background:#4a232333}
.bm-x-space{width:28px}
body.manager-page .bm-add{width:30px;height:30px;padding:0;border-radius:8px;font-size:18px;line-height:1;border:1px solid #e4f63066;background:#e4f63012;color:#e4f630}
body.manager-page .bm-add:hover{background:#e4f630;color:#17191b}
.bm-empty{list-style:none;padding:24px 0;text-align:center;font-size:13px;color:#8f988e}
body.manager-page .bm-booked h5{margin:14px 0 6px;font-size:12px;color:#9aa39a;letter-spacing:.5px}
.bm-cancelled,.bm-log{margin-top:14px;font-size:12.5px}
.bm-cancelled summary,.bm-log summary{cursor:pointer;color:#9aa39a;font-weight:700;padding:4px 0}
.bm-cancelled .bm-list{margin-top:6px}
.bm-why{font-size:11.5px;color:#8f988e;text-align:right}
.bm-log ol{margin:6px 0 0;padding-left:18px;display:grid;gap:3px}
.bm-log small{color:#8f988e}
.bm-note{font-size:11.5px !important;color:#7f887e;margin:6px 0 0 !important}
.bm-foot{display:flex;justify-content:flex-end;gap:8px;padding:10px 18px;border-top:1px solid #2b3030}
/* 회원정보·회원권 수정 (owner requests 2026-10-07): 회원 상세 edits by owner/manager/head coach, '링크코치와 다름', 수정 기록. */
.pl-guide h2{margin:0 0 8px;font-size:16px}
.pl-lc-line{margin:6px 0;font-size:12.5px;font-weight:700;color:#ffb36b}
.pl-lc-line .pl-diff{margin-left:0;margin-right:4px}
.pl-guide ul{margin:0;padding-left:18px;display:grid;gap:4px;font-size:13px;color:#c7cec5}
.pl-guide b{color:#f2f4ef}
.pl-filters{margin:12px 0 6px}
.pl-rows{display:grid;gap:6px}
body.manager-page .pl-row{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;margin:0;padding:11px 14px;text-align:left;background:#ffffff08;border:1px solid #2f3533;border-radius:12px}
body.manager-page .pl-row:hover{border-color:#e4f63066}
.pl-row-main{display:grid;gap:2px;min-width:0}
.pl-row-main b{font-size:15px}
.pl-row-main small{font-size:12px;color:#9aa39a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pl-row-tags{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:4px;flex:none}
.pl-diff,.pl-edited{display:inline-block;margin-left:6px;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:800;line-height:1.5;white-space:nowrap;vertical-align:middle}
.pl-diff{background:#ff9f4326;color:#ffb36b;border:1px solid #ff9f4366}
.pl-edited{background:#e4f6301a;color:#e4f630;border:1px solid #e4f63055}
.pl-row-tags .pl-diff,.pl-row-tags .pl-edited{margin-left:0}
.pl-dialog .pl-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}
.pl-dialog .pl-head h3{margin:2px 0 4px;font-size:22px}
.pl-head-tags{display:flex;flex-wrap:wrap;gap:4px;justify-content:flex-end}
.pl-saved{margin:0 0 10px;padding:8px 12px;border-radius:10px;background:#e4f6301a;color:#e4f630;font-weight:700;font-size:13px}
.pl-follow{margin:0 0 4px;font-size:12.5px;font-weight:700;color:#e4f630;word-break:keep-all}
.pl-follow[hidden]{display:none}
.pl-follow-ext{display:block;margin-top:2px;font-size:12px;font-weight:600;color:#c9cec4}
.pl-relay{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 12px;padding:10px 12px;border-radius:12px;background:#e4f6300f;border:1px solid #e4f63040}
.pl-relay p{margin:0;min-width:0;display:grid;gap:2px;font-size:13px;line-height:1.45;word-break:keep-all}
.pl-relay b{color:#e4f630;font-weight:700}
.pl-relay small{color:#9aa293;font-size:12px}
.pl-relay button{flex:none;min-height:44px;padding:0 14px;font-size:13px;white-space:nowrap}
/* 뒤 예정 회원권 같이 옮기기 (2026-10-13) */
.pl-chain{margin:0 0 6px;padding:10px 12px;border-radius:12px;background:#e4f6300f;border:1px solid #e4f63040}
.pl-chain[hidden]{display:none}
.pl-chain-toggle{display:flex;align-items:center;gap:10px;min-height:44px;margin:0;font-size:13.5px;font-weight:800;color:#f2f4ef;word-break:keep-all;cursor:pointer}
.pl-chain-toggle input{width:20px;height:20px;margin:0;flex:none;accent-color:#e4f630}
.pl-chain-list{margin:0;padding:0 0 2px 30px;list-style:none;display:grid;gap:4px}
.pl-chain-list li{display:flex;flex-wrap:wrap;gap:2px 8px;font-size:12.5px;color:#c7cec5}
.pl-chain-list b{color:#f2f4ef;white-space:nowrap}
.pl-chain-list span{white-space:nowrap;font-variant-numeric:tabular-nums}
.pl-chain.off .pl-chain-list{opacity:.45;text-decoration:line-through}
/* 새 회원권 시작일·결제 금액 자동 입력 안내 (2026-10-13) */
.issue-start-note{margin:0 0 12px;padding:8px 12px;border-radius:10px;background:#e4f6301a;color:#e4f630;font-weight:700;font-size:13px;word-break:keep-all}
.pay-auto{display:block;margin-top:4px;font-size:11.5px;font-weight:700;color:#e4f630;word-break:keep-all}
.pay-auto[hidden]{display:none}
/* 공휴일 자동 연장 안내 (2026-10-13) */
body.manager-page .manager-title p.ops-holiday{display:inline-block;margin:8px 0 0;padding:6px 12px;border-radius:999px;background:#e4f6301a;color:#e4f630;font-size:13px;font-weight:700;word-break:keep-all}
/* 회원 상세 [문자]·[전화] (2026-10-13) */
.contact-actions{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 4px}
body.manager-page .contact-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:88px;min-height:44px;padding:0 16px;border-radius:999px;border:1px solid #e4f63066;background:#e4f63014;color:#f2f4ef;font-size:14px;font-weight:800;text-decoration:none;white-space:nowrap}
body.manager-page .contact-btn:hover{border-color:#e4f630;background:#e4f63026}
.contact-btn svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.pl-dialog .pl-form button[type=submit],.pl-dialog .pl-pass-grid input{min-height:44px}
.pl-error{color:#ff8a7a;font-weight:700;font-size:13px;margin:4px 0}
.pl-error[hidden]{display:none}
.pl-lc{display:block;margin-top:4px;font-size:12px;font-weight:700;color:#ffb36b}
.pl-hint{display:block;margin-top:4px;font-size:11.5px;color:#8f988e;font-weight:500}
.pl-sub{margin:12px 0 0;font-size:14px}
body.manager-page .pl-pass{margin:0;padding:10px 12px 12px;border:1px solid #2f3533;border-radius:12px;min-width:0}
.pl-pass legend{padding:0 6px;font-weight:800;font-size:13.5px}
.pl-pass-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.pl-pass-grid label{min-width:0}
body.manager-page .pl-pass input{box-sizing:border-box;min-width:0;max-width:100%;height:46px}
body.manager-page .pl-pass input[type=date]{appearance:none;-webkit-appearance:none}
.pl-period{align-self:end;margin:0 0 10px}
.pl-history,.pl-lc-memo{margin-top:12px}
.pl-history summary,.pl-lc-memo summary{cursor:pointer;font-weight:700;color:#9aa39a}
.pl-history ol,.pl-history-list{margin:8px 0 0;padding-left:18px;display:grid;gap:6px;font-size:13px}
.pl-history small,.pl-history-list small{display:block;color:#8f988e;font-size:11.5px}
.pl-confirm-numbers{display:flex;flex-wrap:wrap;align-items:center;gap:10px;font-size:18px;font-weight:800}
.pl-confirm-numbers b{color:#e4f630}
body.manager-page .pl-confirm{max-width:440px}
.pl-member-note{margin:6px 0 0;font-size:12.5px;color:#c7cec5}
.pl-member-note .pl-diff,.pl-member-note .pl-edited,.pl-pass-note .pl-diff,.pl-pass-note .pl-edited{margin-left:0;margin-right:4px}
.pl-pass-note{margin:6px 0;font-size:12.5px;color:#ffb36b;font-weight:700}
@media(max-width:560px){body.manager-page .pl-pass input{padding-left:10px;padding-right:6px;font-size:15px}.pl-pass-grid{grid-template-columns:1fr 1fr}.pl-pass-grid label:nth-child(3),.pl-period{grid-column:1/-1}.pl-dialog .pl-head{flex-direction:column}}
/* 제휴 동호회 수업 (2026-10-07) */
.bm-partner{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;padding:10px 18px;border-bottom:1px solid #2b3030;background:#e4f6300a}
.bm-partner-head{display:flex;flex-direction:column;gap:1px;margin-right:auto}
.bm-partner-head b{font-size:13.5px;font-weight:800;color:#e4f630}
.bm-partner-head small{font-size:11.5px;color:#8f988e}
.bm-partner-form{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:700}
body.manager-page .bm-partner-form input{width:76px;margin:0;text-align:center;font-weight:800;padding:6px}
body.manager-page .bm-partner-form button{padding:6px 12px;font-size:12.5px}
.bm-partner-count{font-size:13px;font-weight:700;color:#c7cec5}
body.manager-page .bm-partner-status{flex-basis:100%;margin:0;font-size:13px;font-weight:800;color:#ffb4a8}
body.manager-page .bm-partner.open .bm-partner-status{color:#e4f630}
body.manager-page .bm-partner-warn{flex-basis:100%;margin:0;font-size:12px;color:#ffe7b3}
#issue-form .issue-custom[hidden]{display:none}
@media(max-width:760px){.bm-body{grid-template-columns:1fr}.bm-booked{order:-1}.bm-body:not(.single) .bm-booked{border-bottom:1px solid #2b3030}.bm-pool{border-right:0}.bm-pane{max-height:none;min-height:0}.bm-head{flex-wrap:wrap}}
/* Staff work (오늘 업무) cleanup */
body.manager-page #staff-work-root > .sw-hero{padding:0 0 10px}
body.manager-page #staff-work-root > .sw-hero .sw-kicker,body.manager-page #staff-work-root > .sw-hero p{display:none}
body.manager-page #staff-work-root > .sw-hero h2{font-size:22px;margin:0}
.sw-datebar{display:flex;align-items:center;gap:6px;margin:2px 0 12px}
.sw-datebar strong{font-size:15px;min-width:118px;text-align:center}
body.manager-page .sw-datebar button{padding:4px 10px;font-size:15px;line-height:1.2;background:transparent;border:1px solid #333a38}
body.manager-page .sw-datebar .sw-back-today{font-size:12.5px;padding:5px 10px}
body.manager-page .sw-open-class{flex:none;font-size:12.5px;padding:6px 10px;border-color:#e4f63066;color:#e4f630;background:transparent}
body.manager-page .sw-tabs{gap:4px;margin-bottom:12px}
body.manager-page .sw-tabs button{font-size:13px;padding:7px 12px}
body.manager-page .sw-card{padding:12px 14px;border-radius:10px}
body.manager-page .sw-card h4{font-size:14px}
/* Theme toggle */
body.manager-page .ws-theme-toggle{white-space:nowrap}

/* 이관 정정: '차감 없이' (booking-no-credit) in 회원 예약 관리 */
body.manager-page .bm-tag.bm-nocredit{padding:2px 8px;border:1px dashed #e4f63080;border-radius:999px;background:transparent;color:#e4f630;font-size:11px;font-weight:700;line-height:1.35;cursor:pointer;min-height:0;width:auto}
body.manager-page .bm-tag.bm-nocredit:hover{background:#e4f63018;border-style:solid;border-color:#e4f630}
.nocredit-who{margin:0 0 10px;font-size:15px}
.nocredit-facts{margin:0 0 16px;padding-left:18px;display:grid;gap:6px;font-size:13.5px;line-height:1.5}
.nocredit form{display:grid;gap:12px}
/* Phones: keep the name and phone readable; the tags (with '차감 없이') move to a second line in that row only. */
@media(max-width:520px){.bm-row:has(.bm-nocredit){grid-template-columns:minmax(0,1fr) auto auto}.bm-row:has(.bm-nocredit) .bm-tags{grid-column:1/-1;grid-row:2;justify-content:flex-start}}
/* 체크인 취소 on checked-in rows (owner request 2026-10-06) */
body.manager-page .bm-uncheck{padding:5px 10px;border-radius:999px;border:1px solid #6b4a42;background:transparent;color:#ffb9ab;font-size:12px;font-weight:700;white-space:nowrap}
body.manager-page .bm-uncheck:hover{background:#4a232333}

/* Team matching by staff in 센터 TV 운영 (2026-10-07) */
.tops-teams{display:grid;gap:6px;margin:8px 0}
.tops-team{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;padding:8px 10px;border:1px solid var(--line,#33393a);border-radius:10px}
.tops-team b{font-weight:800}
.tops-team span{flex:1;min-width:0}
.tops-free{display:flex;flex-wrap:wrap;gap:6px 14px;margin:8px 0}

/* Phones (owner request 2026-10-07): the logo bar stays on top while scrolling, the menu moves behind a ☰ button and
   slides in from the right (crm.js renderManager / bindWsMenu). Desktop keeps the sidebar; these parts stay hidden there.
   The sticky bar (z 50) makes its own stacking layer, so the scrim sits below it (z 45) and the menu (inside the bar) above. */
body.manager-page .ws-menu-btn,body.manager-page .ws-menu-current,body.manager-page .ws-drawer-head,body.manager-page .ws-drawer-foot,body.manager-page .ws-scrim{display:none}
@media(max-width:800px){
body.manager-page .manager-sidebar{position:sticky;top:0;z-index:50;display:flex;flex-direction:row;align-items:center;gap:10px;height:auto;min-height:58px;padding:8px 12px 8px 16px;background:#191c1e;border-right:0;border-bottom:1px solid #2a2f2f}
body.manager-page .manager-logo{display:flex;align-items:center;gap:12px;padding:0;min-width:0}
body.manager-page .manager-logo img{width:78px}
body.manager-page .manager-logo>span{margin:0;font-size:9px;white-space:nowrap}
body.manager-page .ws-menu-current{display:block;margin-left:auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:700;color:#e4f630}
body.manager-page .ws-menu-btn{display:inline-flex;flex:none;flex-direction:column;justify-content:center;align-items:stretch;gap:5px;width:44px;height:44px;min-height:44px;padding:0 12px;border:1px solid #333a38;border-radius:12px;background:transparent;cursor:pointer}
body.manager-page .ws-menu-btn i{display:block;height:2px;border-radius:2px;background:#e6ebe3;transition:transform .2s ease,opacity .2s ease}
body.manager-page.ws-menu-open .ws-menu-btn i:nth-child(1){transform:translateY(7px) rotate(45deg)}
body.manager-page.ws-menu-open .ws-menu-btn i:nth-child(2){opacity:0}
body.manager-page.ws-menu-open .ws-menu-btn i:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
body.manager-page .manager-sidebar nav{position:fixed;top:0;right:0;bottom:0;z-index:60;width:min(86vw,320px);margin:0;padding:10px 12px calc(14px + env(safe-area-inset-bottom));display:flex;flex-direction:column;flex-wrap:nowrap;gap:4px;overflow-x:hidden;overflow-y:auto;background:#191c1e;border-left:1px solid #2a2f2f;box-shadow:-16px 0 40px rgba(0,0,0,.4);transform:translateX(105%);visibility:hidden;transition:transform .22s ease,visibility 0s linear .22s}
body.manager-page.ws-menu-open .manager-sidebar nav{transform:none;visibility:visible;transition:transform .22s ease,visibility 0s}
body.manager-page .manager-sidebar nav button,body.manager-page .manager-sidebar nav a{flex:none;justify-content:flex-start;text-align:left;white-space:normal;min-height:50px;padding:12px 14px;font-size:15.5px;gap:12px}
body.manager-page .manager-sidebar nav .selected{padding:12px 14px}
body.manager-page .manager-sidebar nav .ico{display:inline-block;width:19px;height:19px}
body.manager-page .sidebar-more{display:block;margin:14px 14px 2px;font-size:12px;letter-spacing:1px;color:#6f786f}
body.manager-page .ws-drawer-head{display:flex;align-items:center;justify-content:space-between;min-height:52px;padding:0 4px 8px 14px;margin-bottom:6px;border-bottom:1px solid #2a2f2f;font-size:16px;color:#eef1ea}
body.manager-page .ws-drawer-close{width:44px;height:44px;min-height:44px;padding:0;border:1px solid #333a38;border-radius:12px;background:transparent;color:#c7cec5;font-size:16px}
body.manager-page .ws-drawer-foot{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:auto;padding:14px 4px 0;border-top:1px solid #2a2f2f;font-size:13px;color:#9aa39a}
body.manager-page .ws-drawer-foot span{margin-right:auto}
body.manager-page .ws-drawer-foot button{min-height:40px}
body.manager-page .ws-scrim{display:block;position:fixed;inset:0;z-index:45;background:rgba(0,0,0,.5);opacity:0;pointer-events:none;transition:opacity .2s ease}
body.manager-page.ws-menu-open .ws-scrim{opacity:1;pointer-events:auto}
body.manager-page.ws-menu-open{overflow:hidden}
body.manager-page .manager-topbar{display:none}
}
@media(max-width:360px){body.manager-page .ws-menu-current{display:none}body.manager-page .manager-logo>span{font-size:8px}}
@media(prefers-reduced-motion:reduce){body.manager-page .manager-sidebar nav,body.manager-page .ws-scrim,body.manager-page .ws-menu-btn i{transition:none}}
/* 회원 상세 · 홀딩 관리 (owner 2026-10-07). Neutral colours so the light theme needs no generated rule. */
body.manager-page .hold-panel{margin:16px 0;padding:18px 18px 8px}
body.manager-page .hold-panel>h3{margin:6px 0 4px}
body.manager-page .hold-panel>article{margin-top:10px}
body.manager-page .hold-panel .service-metric{display:block;font-size:22px;margin:6px 0}
body.manager-page .hold-panel .self-hold-history{display:grid;margin-top:12px}
body.manager-page .hold-panel .hold-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-top:1px solid rgba(128,128,128,.28)}
body.manager-page .hold-panel .hold-row-info{display:grid;gap:2px;min-width:0}
body.manager-page .hold-panel .hold-row-dates{font-size:13px;font-weight:700;white-space:nowrap}
body.manager-page .hold-panel .hold-row-meta{display:flex;flex-wrap:wrap;gap:0 6px;font-size:11px;opacity:.7}
body.manager-page .hold-panel .hold-row-meta small+small::before{content:'·';margin-right:6px}
body.manager-page .hold-panel .hold-row-act{display:flex;flex:none;gap:6px;align-items:center}
body.manager-page .hold-panel .hold-row-act button{margin:0;padding:6px 10px;font-size:11px;white-space:nowrap}
body.manager-page .hold-panel .hold-row-act small{font-size:11px;opacity:.75;white-space:nowrap}
/* 홀딩 연장 (owner 2026-10-08): two actions drop under the dates as equal 44px buttons; the dialog warns about bookings in the added days. */
body.manager-page .hold-panel .hold-row-act button{min-height:44px;padding:0 14px;font-size:13px}
body.manager-page .hold-panel .hold-row-2{flex-wrap:wrap;row-gap:8px}
body.manager-page .hold-panel .hold-row-2>*{flex:1 1 100%}
body.manager-page .hold-panel .hold-row-2 .hold-row-act button{flex:1 1 0}
body.manager-page .hold-form .hold-clash{margin:0 0 12px;font-size:13px;line-height:1.5;color:#ffb86b}
body.manager-page .hold-form .hold-clash.is-blocked{color:#ffb4a8}
/* The 연장 and 일찍 복귀 dialogs in 회원 상세: the current hold as a small box, like the member app. */
body.manager-page .hold-form .hold-current{display:grid;gap:4px;margin:0 0 14px;padding:12px 14px;border:1px solid rgba(128,128,128,.28);border-radius:12px}
body.manager-page .hold-form .hold-current .hold-row-dates{font-size:14px;font-weight:700;white-space:nowrap}
body.manager-page .hold-form .hold-current .hold-row-meta{display:flex;flex-wrap:wrap;gap:0 6px;font-size:12px;opacity:.75}
body.manager-page .hold-form .hold-current .hold-row-meta small+small::before{content:'·';margin-right:6px}
body.manager-page .hold-form .hold-balance-summary{margin:0 0 14px}
body.manager-page .hold-form .hold-days-preview{margin:4px 0 10px;font-size:14px;line-height:1.5}
body.manager-page .hold-form>button{min-height:44px}
/* 끝난 홀딩 이어서 연장 (2026-10-12): the exception is one amber line on top; ended rows are a little dimmer; 44px targets. */
body.manager-page .hold-form .hold-late-note{margin:0 0 12px;padding:10px 12px;border-radius:10px;background:rgba(255,184,107,.12);color:#ffb86b;font-size:13px;line-height:1.5;word-break:keep-all}
body.manager-page .hold-panel .hold-row-ended .hold-row-dates{opacity:.7}
body.manager-page .hold-panel button[data-service-kind]{min-height:44px;padding:0 16px}
body.manager-page .hold-form .hold-clash{word-break:keep-all}
/* 코치 홀딩 관리 (2026-10-12): one search field (16px, no iOS zoom) and rows of at least 56px; status on the right. */
body.manager-page .coach-hold-search input{width:100%;min-height:48px;font-size:16px}
body.manager-page .coach-hold-caption{margin:14px 0 0}
body.manager-page .coach-hold-row{min-height:56px;padding:12px 0}
body.manager-page .coach-hold-row>span{display:grid;gap:2px}
body.manager-page .coach-hold-row>strong{flex:none;font-size:13px}
body.manager-page .coach-hold-row>strong.is-none,body.manager-page .coach-hold-row>strong.is-nopass{color:inherit;opacity:.6;font-weight:600}
body.manager-page .coach-hold-empty{margin:16px 0 4px}
/* 등록·수정 기록: long hold rows wrap between words, never inside one (2026-10-12). */
.pl-history ol li,.pl-history-list li{word-break:keep-all;overflow-wrap:anywhere}

/* 센터 회원 등록·결제 금액·회원 삭제 (대표 요청 2026-10-07 밤) */
.reg-form .reg-step{display:flex;align-items:center;gap:8px;margin:14px 0 2px;font-size:14px;font-weight:800;color:#e9ede4;letter-spacing:-.2px}
.reg-form .reg-step:first-child{margin-top:0}
.reg-form .reg-step span{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:999px;background:#e4f630;color:#17191b;font-size:11.5px;font-weight:900}
.reg-form .reg-step+label,.reg-form .reg-step+label+label{margin-top:4px}
.won-input{display:flex;align-items:center;gap:6px}
.won-input input{flex:1;min-width:0;text-align:right;font-variant-numeric:tabular-nums;font-weight:700}
.won-input b{font-size:13px;color:#aeb6ab;font-weight:700}
.pass-pay{display:flex;flex-wrap:wrap;gap:4px 12px;margin:8px 0 0;padding:8px 10px;border-radius:10px;background:#ffffff0a;border:1px solid #ffffff14;font-size:12.5px;color:#aeb6ab}
.pass-pay b{color:#e4f630;font-weight:800}
.reg-line{margin:2px 0 0;font-size:12px;color:#8f988e}
.manager-title-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.member-delete-btn{color:#ff8a7a;border-color:#ff8a7a55}
.member-delete-btn:hover{background:#ff8a7a1a}
.md-head{margin-bottom:10px}
.md-head h3{margin:2px 0 4px;font-size:22px}
.md-warn,.md-blocked{padding:12px 14px;border-radius:12px;font-size:13.5px;line-height:1.55;margin-bottom:12px}
.md-warn{background:#ff8a7a14;border:1px solid #ff8a7a40}
.md-blocked{background:#ffb36b14;border:1px solid #ffb36b40}
.md-blocked h4{margin:0 0 6px;font-size:14.5px;color:#ffb36b}
.md-warn p,.md-blocked p{margin:0 0 6px}
.md-warn ul,.md-blocked ul{margin:4px 0 8px;padding-left:18px;display:grid;gap:3px}
.md-chips{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 4px}
.md-chip{padding:6px 11px;font-size:12.5px;border-radius:999px;border:1px solid #ffffff26;background:transparent}
.md-chip:hover{border-color:#e4f630}
.md-danger:disabled{opacity:.6}
/* 삭제 버튼은 두 테마 모두 빨간색(라이트 테마 생성기는 중첩 규칙을 건너뛴다) */
@media all{body.manager-page dialog.crm-dialog button.primary.md-danger{background:#e5484d;color:#fff;-webkit-text-fill-color:#fff;border:0}body.manager-page dialog.crm-dialog button.primary.md-danger:hover{background:#d13438}}
.md-error{color:#ff8a7a;font-weight:700;font-size:13px}
.md-list{margin:8px 0 0;padding-left:0;list-style:none;display:grid;gap:8px}
.md-list li{padding:10px 12px;border-radius:12px;border:1px solid #ffffff14;background:#ffffff08}
.md-list p{margin:3px 0;font-size:13px}
.md-list small{display:block;color:#8f988e;font-size:11.5px;margin-top:4px}
.md-row-head{display:flex;align-items:baseline;gap:8px}
/* 직원 [회원앱] (owner 2026-10-07): member-app button in the staff header; '코치'/'직원' tags in rosters and the member list. */
body.manager-page .ws-member-app{display:inline-flex;align-items:center;justify-content:center;min-height:32px;padding:0 14px;border:1px solid #e4f630;border-radius:999px;background:#e4f630;color:#17191b;font-size:13px;font-weight:800;text-decoration:none;white-space:nowrap}
body.manager-page .ws-member-app.off{background:transparent;color:#e4f630;border-style:dashed;font-weight:700}
body.manager-page .ws-member-app-m{display:none}
.bm-tag.coach{background:#2f3a14;color:#e4f630}
.staff-tag{display:inline-block;margin-left:6px;padding:1px 7px;border-radius:999px;background:#2f3a14;color:#e4f630;font-size:11px;font-style:normal;font-weight:800;vertical-align:1px}
@media(max-width:800px){body.manager-page .ws-member-app-m{display:inline-flex;flex:none;min-height:44px;padding:0 12px}body.manager-page .ws-menu-current+.ws-member-app-m{margin-left:0}}
@media(max-width:480px){body.manager-page .manager-sidebar:has(.ws-member-app-m) .manager-logo>span{display:none}}
@media(max-width:360px){body.manager-page .ws-member-app-m,body.manager-page .ws-menu-current+.ws-member-app-m{margin-left:auto}}

/* 기간 추가 (2026-10-08): 회원권 카드 아래 연장 줄, 기간 추가 창(사유 칩·기간·미리보기), 여러 명 목록. 390px 기준 */
.ext-history{margin-top:10px;display:grid;gap:6px}
.ext-line{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:9px 11px;border-radius:10px;border:1px solid #e3f53133;background:#e3f53112}
.ext-line p{margin:0;min-width:0;font-size:13px;line-height:1.5;word-break:keep-all;overflow-wrap:anywhere}
.ext-line p b{color:#e3f531;font-weight:700;white-space:nowrap}
.ext-line p span{color:#c9cec4}
.ext-line small{color:#9aa293;font-size:11.5px}
.ext-line .ext-cancel{flex:none;min-height:44px;padding:0 14px;font-size:13px;white-space:nowrap}
/* 회원 앱 문구 (2026-11-09): 연장 줄 오른쪽 [회원 문구] [취소] 묶음. 좁으면 위아래로 쌓인다 */
.ext-line .ext-actions{flex:none;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px;max-width:50%}
.ext-line .ext-note-edit{flex:none;min-height:44px;padding:0 12px;font-size:13px;white-space:nowrap}
.ext-lead{margin:0 0 14px;color:#aeb5a7;font-size:13.5px;line-height:1.5;word-break:keep-all}
.ext-form .ext-reasons{border:0;padding:0;margin:0 0 14px;min-width:0}
.ext-form .ext-reasons legend{padding:0;margin:0 0 8px;font-size:13px;color:#c9cec4}
.ext-chips{display:flex;flex-wrap:wrap;gap:6px}
.ext-chip{position:relative;display:inline-flex;margin:0}
body.manager-page .crm-dialog .ext-chip,body.manager-page .crm-dialog .ext-row,body.manager-page .crm-dialog .ext-check-all{margin:0}
.ext-chip input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.ext-chip span{display:inline-flex;align-items:center;min-height:44px;padding:0 16px;border-radius:999px;border:1px solid #ffffff2e;font-size:14px;white-space:nowrap;cursor:pointer;color:#e8ebe4}
.ext-chip input:checked+span{background:#e3f531;border-color:#e3f531;color:#111;font-weight:700}
.ext-chip input:focus-visible+span{outline:2px solid #e3f531;outline-offset:2px}
.ext-days{display:flex;align-items:center;gap:8px}
.ext-days input{width:110px;text-align:center;font-size:16px}
.ext-days b{font-weight:600;color:#c9cec4;white-space:nowrap}
.ext-pass{margin:0 0 14px;display:grid;gap:4px;font-size:13px;color:#c9cec4}
.ext-pass b{font-size:15px;color:#f2f4ef;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ext-preview{margin:2px 0 12px;padding:11px 13px;border-radius:10px;background:#ffffff0d;font-size:14.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ext-preview b{color:#e3f531}
.ext-preview span{margin-left:6px;color:#9aa293;font-size:13px}
.ext-error{margin:0 0 10px;color:#ff8a7a;font-size:13px}
.ext-bulk-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:4px}
.ext-check-all{display:inline-flex;align-items:center;gap:8px;min-height:44px;margin:0;white-space:nowrap;cursor:pointer}
.ext-check-all input,.ext-row input{width:20px;height:20px;flex:none;margin:0;accent-color:#e3f531}
.ext-count{color:#9aa293;font-size:13px;white-space:nowrap}
.ext-bulk-list{display:grid;gap:6px;max-height:min(46vh,440px);overflow:auto;overscroll-behavior:contain;margin-bottom:12px;padding-right:2px}
.ext-row{display:flex;align-items:center;gap:12px;min-height:52px;margin:0;padding:6px 12px;border-radius:10px;border:1px solid #ffffff1a;cursor:pointer}
.ext-row-main{display:grid;gap:2px;min-width:0}
.ext-row-main b{font-size:14.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ext-row-main small{color:#9aa293;font-size:12.5px;word-break:keep-all}
.profile-actions [data-pass-extend],.manager-title-actions [data-bulk-extend]{white-space:nowrap}
@media(max-width:600px){.manager-title:has(>.manager-title-actions){flex-direction:column;align-items:stretch;gap:14px}.manager-title-actions{justify-content:flex-start}.manager-title-actions button{min-height:44px}}/* 직원 활동 (대표 요청 2026-10-12): 날짜 · 사람 · 종류 칩 + 시간순 줄. 390px 기준, 칩은 줄바꿈(가로 스크롤 없음), 터치 44px. */
.sa-head{display:grid;gap:12px}
.sa-date{position:relative;display:flex;align-items:center;gap:8px}
.sa-nav{flex:none;min-width:44px;min-height:44px;margin:0;padding:0;font-size:22px;line-height:1;border-radius:10px}
.sa-nav:disabled{opacity:.35;cursor:default}
.sa-day{flex:1;min-width:0;min-height:44px;margin:0;padding:4px 10px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;border-radius:10px;border:1px solid #333a38;background:transparent;color:#eef1ea;cursor:pointer}
.sa-day b{font-size:16px;white-space:nowrap}
.sa-day small{font-size:12px;color:#9aa293;white-space:nowrap}
.sa-pick{position:absolute;left:50%;bottom:0;width:1px;height:1px;opacity:0;pointer-events:none;border:0;padding:0;margin:0}
.sa-chips{display:flex;flex-wrap:wrap;gap:6px}
.sa-chip{display:inline-flex;align-items:center;gap:6px;min-height:44px;margin:0;padding:0 12px;border-radius:22px;border:1px solid #333a38;background:transparent;color:#c7cec5;font-size:13.5px;font-weight:600;white-space:nowrap;word-break:keep-all}
.sa-chip small{font-size:11.5px;font-weight:500;color:#8f988e}
.sa-chip em{font-style:normal;font-size:12px;font-weight:700;color:#c7cec5;background:#2a2f2f;border-radius:10px;padding:1px 7px}
.sa-chip.selected{border-color:#e4f630;color:#e4f630;background:#e4f63014}
.sa-chip.selected em{color:#17191b;background:#e4f630}
.sa-cat{display:flex;align-items:center;gap:10px;margin:0;font-size:13px;font-weight:600;color:#9aa293;line-height:1.3}
.sa-cat span{flex:none;white-space:nowrap}
.sa-cat select{flex:1;min-width:0;min-height:44px;margin:0;padding:0 12px;border-radius:10px;border:1px solid #333a38;background:#171a1c;color:#eef1ea;font-size:14px}
.sa-sum{margin:0 0 4px;font-size:13px;color:#9aa293;word-break:keep-all}
.sa-sum b{color:#eef1ea;margin-right:4px}
.sa-row{position:relative;display:grid;grid-template-columns:50px minmax(0,1fr);gap:10px;padding:11px 0 11px 12px;border-top:1px solid #2a2f2f}
.sa-row::before{content:'';position:absolute;left:0;top:13px;bottom:13px;width:3px;border-radius:2px;background:#59605a}
.sa-row[data-cat=checkin]::before{background:#e4f630}
.sa-row[data-cat=booking]::before{background:#6aa7ff}
.sa-row[data-cat=record]::before{background:#b98cff}
.sa-row[data-cat=wod]::before{background:#ff9f43}
.sa-row[data-cat=member]::before{background:#4ecb8f}
.sa-row[data-cat=pay]::before{background:#f2c94c}
.sa-row[data-cat=class]::before{background:#56c8e0}
.sa-row[data-cat=account]::before{background:#ff7a6b}
.sa-row time{font-size:13px;font-weight:700;color:#c7cec5;font-variant-numeric:tabular-nums;white-space:nowrap;padding-top:1px}
.sa-row time small{display:block;font-size:11px;font-weight:500;color:#8f988e}
.sa-main{min-width:0;display:grid;gap:2px}
.sa-what{margin:0;display:flex;flex-wrap:wrap;align-items:center;gap:4px 6px;font-size:14.5px;line-height:1.4}
.sa-what b{font-weight:700;color:#eef1ea;white-space:nowrap}
.sa-count{font-style:normal;font-size:12.5px;font-weight:700;color:#e4f630;white-space:nowrap}
.sa-tag{font-size:11px;padding:1px 7px;border-radius:9px;border:1px solid #333a38;color:#9aa293;white-space:nowrap}
.sa-detail{margin:0;font-size:13px;line-height:1.45;color:#c7cec5;word-break:keep-all;overflow-wrap:anywhere}
.sa-who{margin:0;font-size:12px;color:#8f988e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sa-row.sa-group{display:block;margin:0}
.sa-group>summary{display:grid;grid-template-columns:50px minmax(0,1fr) auto;gap:10px;list-style:none;cursor:pointer;min-height:44px;font-weight:400;padding:0;margin:0}
.sa-group>summary::-webkit-details-marker{display:none}
.sa-more{font-style:normal;font-size:12px;color:#9aa293;align-self:center;white-space:nowrap;padding:4px 0 4px 6px}
.sa-more::before{content:'펼치기 ▾'}
.sa-group[open] .sa-more::before{content:'접기 ▴'}
.sa-sub{list-style:none;margin:8px 0 2px 60px;padding:0;display:grid;gap:5px}
.sa-sub li{display:grid;grid-template-columns:42px minmax(0,1fr);gap:8px;font-size:12.5px;line-height:1.45;color:#c7cec5;word-break:keep-all;overflow-wrap:anywhere}
.sa-sub li time{font-size:12px;color:#8f988e;font-weight:600;padding:0}
.sa-empty{padding:18px 0;text-align:center}
.sa-foot{margin:10px 2px 0;word-break:keep-all}
@media(max-width:420px){.sa-row{grid-template-columns:44px minmax(0,1fr);gap:8px}.sa-group>summary{grid-template-columns:44px minmax(0,1fr) auto;gap:8px}.sa-sub{margin-left:52px}}

/* 증빙 기간 연장 신청 · 직원 확인 (2026-10-13) */
.proof-staff{margin-bottom:16px;padding:16px}
.proof-staff h2{margin:0;font-size:17px}
.proof-staff h2 b{margin-left:6px;color:#e4f630}
body.manager-page .proof-row{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;min-height:52px;margin:8px 0 0;padding:10px 14px;text-align:left;border-radius:12px;border:1px solid #e4f63055;background:#e4f6300f}
.proof-row>span:first-child{display:grid;gap:2px;min-width:0}
.proof-row small{font-size:12.5px;color:#aeb6ab;word-break:keep-all}
.proof-go{flex:none;font-weight:800;color:#e4f630;white-space:nowrap}
.proof-review .proof-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.proof-review h3{margin:2px 0}
.proof-facts{display:grid;gap:8px;margin:12px 0}
.proof-facts div{display:grid;grid-template-columns:84px 1fr;gap:8px;font-size:14px}
.proof-facts dt{color:#9aa39a}
.proof-facts dd{margin:0;word-break:keep-all}
/* 증빙 서류 미리보기 (2026-10-27): 사진은 바로 보이고, 누르면 앱 안 전체 화면 보기(proof-viewer.js · proof-viewer.css) */
body.manager-page .crm-dialog .proof-thumbs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0 0 14px}
body.manager-page .crm-dialog .proof-thumbs button.proof-thumb{display:flex;flex-direction:column;align-items:stretch;gap:6px;min-width:0;min-height:44px;margin:0;padding:0;border:0;border-radius:0;background:transparent;color:#c9cfc6;font-size:12.5px;font-weight:700;line-height:1.2;text-align:left;box-shadow:none;transform:none;cursor:zoom-in}
body.manager-page .crm-dialog .proof-thumbs .proof-thumb-img{position:relative;display:block;width:100%;aspect-ratio:3/4;border-radius:12px;overflow:hidden;border:1px solid #ffffff2e;background:#272c2e}
body.manager-page .crm-dialog .proof-thumbs .proof-thumb-img img{display:block;width:100%;height:100%;object-fit:cover}
body.manager-page .crm-dialog .proof-thumbs .proof-thumb-doc{display:grid;place-items:center;width:100%;height:100%;font-size:17px;font-weight:800;letter-spacing:1px;color:#e4f630}
body.manager-page .crm-dialog .proof-thumbs button.proof-thumb:hover .proof-thumb-img{border-color:#e4f630}
body.manager-page .crm-dialog .proof-thumbs .proof-thumb.is-broken .proof-thumb-img::after{content:'열 수 없음';position:absolute;inset:0;display:grid;place-items:center;font-size:12px;color:#9aa39a;background:#272c2e}
body.manager-page .crm-dialog .proof-thumbs .proof-thumb-name{display:block;padding:0 2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.proof-review .proof-days{margin:-4px 0 0;font-size:13.5px;font-weight:800;color:#e4f630}
.proof-review form button{min-height:48px}
.proof-review .pe-error{margin:0;color:#ff8a7a;font-weight:700;font-size:13px}
.proof-review .pe-error[hidden]{display:none}
/* 2026-10-13 대표: 유효회원 칩 누르면 대상자, 오늘 첫 방문 체험 목록 */
button.vm-chip{font:inherit;font-size:12px;cursor:pointer}button.vm-chip:hover{border-color:#ddf878}.vm-dialog ul.vm-chip-list{list-style:none;margin:6px 0 14px;padding:0;display:grid;gap:6px}.vm-dialog ul.vm-chip-list li{display:flex;flex-wrap:wrap;gap:6px;align-items:baseline;padding:8px 10px;border:1px solid #2b3030;border-radius:10px}.vm-dialog .vm-chip-list small{color:#a8b0a6}.trial-today-dialog h3,.vm-dialog h3{margin:14px 0 6px;font-size:14px}.trial-today-row{margin-top:12px}
/* 회원 기록 (대표 2026-10-14, public/member-records.js): 날짜별 순위 줄 · 회원별 찾기 · 회원 기록·운동 프로필 창. 390px 기준. */
body.manager-page .mr-page{max-width:860px}
body.manager-page .mr-views,body.manager-page .mr-tabs{margin:0 0 14px}
body.manager-page .mr-views button,body.manager-page .mr-tabs button{min-height:44px;padding:0 16px;white-space:nowrap}
body.manager-page .mr-daybar{display:flex;align-items:center;gap:8px}
body.manager-page .mr-step{flex:none;width:44px;height:44px;padding:0;border-radius:12px;font-size:22px;line-height:1}
body.manager-page .mr-step:disabled{opacity:.35;cursor:default}
body.manager-page .mr-daypick{position:relative;flex:1;min-width:0;display:flex;align-items:center;justify-content:center;min-height:44px;margin:0;border:1px solid #353936;border-radius:12px;background:#202426;font-size:16px;font-weight:800;white-space:nowrap;cursor:pointer}
body.manager-page .mr-daypick input{position:absolute;inset:0;width:100%;height:100%;min-height:0;margin:0;padding:0;border:0;opacity:0;cursor:pointer}
body.manager-page .mr-today{flex:none;min-height:44px;padding:0 14px;white-space:nowrap}
body.manager-page .mr-wod{margin:14px 0 0;font-size:14px;color:#a6aaa7;word-break:keep-all}
body.manager-page .mr-wod b{color:#f4f5f0}
body.manager-page .mr-stats{display:flex;flex-wrap:wrap;gap:4px 14px;margin:6px 0 0;font-size:13px;color:#a6aaa7}
body.manager-page .mr-stats span{white-space:nowrap}
body.manager-page .mr-stats b{color:#f4f5f0;font-size:15px;margin:0 2px}
body.manager-page .mr-stats .is-alert,body.manager-page .mr-stats .is-alert b{color:#ff9b54}
body.manager-page .mr-slots{display:flex;flex-wrap:wrap;gap:6px;margin:14px 0 0}
body.manager-page .mr-slots button{min-height:44px;padding:0 13px;border-radius:999px;font-size:13.5px;font-weight:700;white-space:nowrap}
body.manager-page .mr-slots button small{font-size:12px;font-weight:600;opacity:.7;margin-left:2px}
body.manager-page .mr-slots button[aria-pressed="true"]{background:#ddf878;border-color:#ddf878;color:#182217}
body.manager-page .mr-level{margin-top:14px}
body.manager-page .mr-level h2{display:flex;align-items:baseline;gap:8px;margin:0 0 2px;font-size:16px;letter-spacing:.06em}
body.manager-page .mr-level h2 small{font-size:12.5px;font-weight:600;letter-spacing:0;color:#a6aaa7}
body.manager-page .mr-row{display:flex;align-items:center;gap:12px;width:100%;min-height:56px;margin:0;padding:10px 2px;text-align:left;background:transparent;border:1px solid rgba(0,0,0,0);border-width:0 0 1px;border-bottom:1px solid #2b3030;border-radius:0;color:inherit;font:inherit}
body.manager-page .mr-row:hover{background:#ffffff08}
body.manager-page .mr-level>.mr-row:last-child,body.manager-page .mr-team>.mr-row:last-child{border-bottom:0}
body.manager-page .mr-rank{flex:none;width:24px;text-align:center;font-weight:800;font-variant-numeric:tabular-nums;color:#a6aaa7}
body.manager-page .mr-who{flex:1;min-width:0;display:grid;gap:2px}
body.manager-page .mr-name{display:flex;align-items:center;gap:6px;min-width:0}
body.manager-page .mr-name b{font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.manager-page .mr-who small{font-size:12.5px;line-height:1.45;color:#a6aaa7;word-break:keep-all}
body.manager-page .mr-who small.mr-flag{color:#ff9b54}
body.manager-page .mr-seg{white-space:nowrap}
body.manager-page .mr-tag{flex:none;padding:1px 7px;border-radius:999px;background:#2f3a14;color:#e4f630;font-size:11px;font-style:normal;font-weight:800;white-space:nowrap}
body.manager-page .mr-tag.is-muted{background:#2a2f2d;color:#a6aaa7}
body.manager-page .mr-score{flex:none;max-width:42%;font-size:15px;font-weight:800;font-variant-numeric:tabular-nums;white-space:nowrap;color:#f4f5f0;text-align:right}
body.manager-page .mr-row.is-flag .mr-score,body.manager-page .mr-team.is-flag .mr-team-head .mr-score{color:#ff9b54}
body.manager-page .mr-team{margin:8px 0;padding:2px 12px;border:1px solid #353936;border-radius:12px}
body.manager-page .mr-team-head{display:flex;align-items:center;gap:12px;min-height:52px;padding:6px 0;border-bottom:1px solid #2b3030}
body.manager-page .mr-team .mr-mate{min-height:48px;padding-left:36px}
body.manager-page .mr-go{flex:none;font-size:18px;color:#a6aaa7}
body.manager-page .mr-empty{margin:12px 0 4px}
body.manager-page .mr-search input{width:100%;min-height:48px;font-size:16px}
body.manager-page .mr-caption{margin:14px 0 0}
body.manager-page .mr-person{min-height:56px;padding:12px 0;border:1px solid rgba(0,0,0,0);border-width:0 0 1px;border-bottom:1px solid #394438;border-radius:0}
body.manager-page .mr-person>span{display:grid;gap:2px}
body.manager-page .mr-person small{font-size:12.5px;color:#a6aaa7}
body.manager-page .mr-person>strong{flex:none;font-size:14px;white-space:nowrap}
body.manager-page .mr-more{width:100%;min-height:44px;margin-top:12px}
body.manager-page .mr-person-sum{display:flex;flex-wrap:wrap;gap:4px 14px;margin:0 0 12px;font-size:13px;color:#a6aaa7}
body.manager-page .mr-person-sum span{white-space:nowrap}
body.manager-page .mr-person-sum b{color:#f4f5f0;margin:0 2px}
body.manager-page .mr-hist{padding:12px 0;border-bottom:1px solid #2b3030}
body.manager-page .mr-hist-head{display:flex;align-items:center;gap:8px}
body.manager-page .mr-hist-date{font-weight:800;font-variant-numeric:tabular-nums;white-space:nowrap}
body.manager-page .mr-hist-date small{margin-left:2px;font-weight:600;color:#a6aaa7}
body.manager-page .mr-lv{padding:2px 7px;border:1px solid #4a524c;border-radius:6px;font-size:11px;font-weight:800;letter-spacing:.06em;white-space:nowrap;color:#dde1d9}
body.manager-page .mr-hist-score{margin-left:auto;font-variant-numeric:tabular-nums;white-space:nowrap}
body.manager-page .mr-hist-wod{margin:4px 0 0;font-size:14px;word-break:keep-all}
body.manager-page .mr-hist-meta{margin:2px 0 0;font-size:12.5px;line-height:1.5;color:#a6aaa7;word-break:keep-all}
body.manager-page .mr-prof-update{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin:0;font-size:12.5px;color:#a6aaa7}
body.manager-page .mr-chip{display:inline-flex;align-items:center;padding:3px 10px;border-radius:999px;background:#2f3a14;color:#e4f630;font-size:12px;font-weight:700;white-space:nowrap}
body.manager-page .mr-radar{display:block;width:100%;max-width:340px;margin:6px auto 0;color:#ddf878}
body.manager-page .mr-radar .mr-ring{color:#3d4540}
body.manager-page .mr-radar .mr-ring-mid{color:#8b9b6c}
body.manager-page .mr-radar .mr-shape,body.manager-page .mr-radar .mr-dot,body.manager-page .mr-radar .mr-axis-val{color:#ddf878}
body.manager-page .mr-radar .mr-axis-name{color:#dde1d9}
body.manager-page .mr-radar .mr-axis-val.is-est,body.manager-page .mr-radar .mr-axis-val.is-wait,body.manager-page .mr-radar .mr-dot-est{color:#8a9387}
body.manager-page .mr-legend{display:flex;justify-content:center;flex-wrap:wrap;gap:6px 16px;margin:0 0 8px;font-size:12px;color:#a6aaa7}
body.manager-page .mr-legend span{white-space:nowrap}
body.manager-page .mr-legend i{display:inline-block;width:10px;height:10px;margin-right:6px;border-radius:50%;color:#ddf878;background:currentColor;vertical-align:-1px}
body.manager-page .mr-legend i.est{box-sizing:border-box;background:rgba(0,0,0,0);border:2px dashed #8a9387}
body.manager-page details.mr-prof-row{margin:0;border-bottom:1px solid #2b3030}
body.manager-page .mr-prof-row summary{display:flex;align-items:center;gap:8px;min-height:48px;padding:0 2px;cursor:pointer;list-style:none;color:#f4f5f0}
body.manager-page .mr-prof-row summary::-webkit-details-marker{display:none}
body.manager-page .mr-prof-row summary::after{content:'›';flex:none;width:12px;text-align:center;color:#a6aaa7;transition:transform .15s}
body.manager-page .mr-prof-row[open] summary::after{transform:rotate(90deg)}
body.manager-page .mr-prof-name{flex:1;min-width:0;font-size:14.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.manager-page .mr-prof-score{flex:none;min-width:30px;font-size:18px;text-align:right;font-variant-numeric:tabular-nums;color:#ddf878}
body.manager-page .mr-prof-row.is-est .mr-prof-score,body.manager-page .mr-prof-row.is-wait .mr-prof-score{color:#a6aaa7}
body.manager-page .mr-conf{flex:none;padding:2px 7px;border:1px solid #4a524c;border-radius:999px;font-size:11px;font-weight:700;color:#a6aaa7;white-space:nowrap}
body.manager-page .mr-chg{flex:none;font-size:12px;font-style:normal;font-weight:800;white-space:nowrap}
body.manager-page .mr-chg.up{color:#8fe388}
body.manager-page .mr-chg.down{color:#ff9b54}
body.manager-page .mr-prof-body{padding:0 2px 12px;font-size:13px;word-break:keep-all;color:#c9cec7}
body.manager-page .mr-prof-body p{margin:4px 0}
body.manager-page .mr-prof-rank{font-weight:800;color:#f4f5f0}
body.manager-page .mr-evi{display:grid;gap:4px;margin:6px 0 0;padding:0;list-style:none;font-size:12.5px;line-height:1.5;color:#c9cec7;word-break:keep-all}
body.manager-page .mr-prof-flagged h3{margin:16px 0 4px;font-size:14px}
body.manager-page .mr-prof-foot{margin:12px 0 0;word-break:keep-all}
@media(max-width:600px){body.manager-page .mr-level,body.manager-page .mr-day,body.manager-page .mr-find{padding:14px 14px}body.manager-page .mr-team{padding:2px 10px}body.manager-page .mr-team .mr-mate{padding-left:30px}}
/* 사물함 현황·배정 (2026-10-14): 회원 관리 › 사물함, 회원 상세 › 사물함. 휴대폰은 5칸, 넓은 화면은 칸 크기대로. */
body.manager-page .lk-page{max-width:1000px}
body.manager-page .lk-top{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px}
body.manager-page .lk-views{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;flex:1 1 420px;max-width:560px}
body.manager-page .lk-views button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;min-width:0;min-height:56px;margin:0;padding:6px 4px;border-radius:12px;line-height:1.2}
body.manager-page .lk-views button small{font-size:12px;font-weight:600;white-space:nowrap}
body.manager-page .lk-views button b{font-size:18px;font-variant-numeric:tabular-nums}
body.manager-page .lk-views button.selected{background:#e3f531;border-color:#e3f531;color:#111}
body.manager-page .lk-search{flex:1 1 220px;min-width:0;margin:0}
body.manager-page .lk-hide{display:none!important}
body.manager-page .lk-form button[type=submit]{min-height:48px}
body.manager-page .lk-search input{width:100%;min-height:44px;margin:0;font-size:16px}
body.manager-page .lk-legend{display:flex;flex-wrap:wrap;gap:4px 12px;margin:12px 0 0;font-size:12px;color:#a6aaa7}
body.manager-page .lk-legend span{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}
body.manager-page .lk-legend span::before{content:'';width:10px;height:10px;border-radius:3px;border:1px solid #4a504c}
body.manager-page .lk-legend .is-active::before{background:#2c3716;border-color:#7d9420}
body.manager-page .lk-legend .is-soon::before{background:#3a2e10;border-color:#c99a23}
body.manager-page .lk-legend .is-overdue::before{background:#3d1e18;border-color:#c45a43}
body.manager-page .lk-legend .is-empty::before{border-style:dashed}
body.manager-page .lk-grid{list-style:none;margin:10px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:6px}
body.manager-page .lk-grid>li{min-width:0;margin:0}
/* 직원 버튼 공통 여백(8px 13px)이 칸 여백을 덮어 '16일 지남'이 잘리던 것 (2026-11-09) → .lk-grid로 우선순위를 올린다. */
body.manager-page .lk-grid .lk-cell{display:flex;flex-direction:column;align-items:flex-start;gap:1px;width:100%;min-width:0;min-height:64px;margin:0;padding:7px 7px 6px;border-radius:10px;text-align:left;background:#22282a;border:1px solid #353b38;color:#f4f5f0;line-height:1.25}
body.manager-page .lk-cell b{font-size:15px;font-variant-numeric:tabular-nums}
body.manager-page .lk-cell span{display:block;max-width:100%;font-size:13px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.manager-page .lk-cell small{display:block;max-width:100%;font-size:11px;color:#a6aaa7;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-variant-numeric:tabular-nums}
body.manager-page .lk-cell.is-empty{background:transparent;border:1px dashed #3b413d;color:#7d837f}
body.manager-page .lk-cell.is-empty span{font-size:12px;font-weight:500;color:#7d837f}
body.manager-page .lk-cell.is-active{background:#232b16;border-color:#4b5a1b}
body.manager-page .lk-cell.is-soon{background:#33290f;border-color:#8f7019}
body.manager-page .lk-cell.is-soon small{color:#ffc94d;font-weight:700}
body.manager-page .lk-cell.is-overdue{background:#381c17;border-color:#9c4636}
body.manager-page .lk-cell.is-overdue small{color:#ff9b80;font-weight:700}
body.manager-page .lk-cell.is-upcoming{background:#1c2530;border-color:#38536f}
body.manager-page .lk-cell.is-clash{outline:2px solid #ff7a59;outline-offset:-2px}
body.manager-page .lk-cell:hover{filter:brightness(1.12)}
body.manager-page .lk-none{grid-column:1/-1;padding:18px 4px;color:#a6aaa7;list-style:none}
body.manager-page .lk-note{margin:12px 0 0;word-break:keep-all}
body.manager-page .lk-note.is-alert{color:#ff9b54}
@media(max-width:600px){body.manager-page .lk-page{padding:16px 14px}body.manager-page .lk-grid .lk-cell{padding:7px 6px 6px}body.manager-page .lk-cell small{letter-spacing:-.1px}body.manager-page .lk-views{flex-basis:100%;max-width:none}body.manager-page .lk-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
body.manager-page .lk-dialog .lk-head{margin:0 0 12px;padding:0 0 12px;border-bottom:1px solid #2b3030}
body.manager-page .lk-head-top{display:flex;align-items:center;flex-wrap:wrap;gap:8px}
body.manager-page .lk-name{font-size:20px;word-break:keep-all}
body.manager-page .lk-state{padding:2px 9px;border-radius:999px;font-size:12px;font-weight:800;white-space:nowrap;background:#2a2f2d;color:#d7ddd4}
body.manager-page .lk-state.is-active{background:#2f3a14;color:#e4f630}
body.manager-page .lk-state.is-soon{background:#3a2f12;color:#ffc94d}
body.manager-page .lk-state.is-overdue{background:#3d1f1a;color:#ff9b80}
body.manager-page .lk-state.is-upcoming{background:#1d2a38;color:#9cc7f0}
body.manager-page .lk-period{margin:6px 0 2px;font-size:15px;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}
body.manager-page .lk-period span{color:#a6aaa7;font-weight:500}
body.manager-page .lk-head .fine{margin:0}
body.manager-page .lk-results{display:grid;gap:4px}
body.manager-page .lk-results:empty{display:none}
body.manager-page .lk-result{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;min-height:52px;margin:0;padding:8px 12px;border-radius:12px;text-align:left}
body.manager-page .lk-result span{display:grid;gap:2px;min-width:0}
body.manager-page .lk-result b{white-space:nowrap}
body.manager-page .lk-result small{color:#a6aaa7;font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.manager-page .lk-result i{flex:none;font-style:normal;font-size:20px;color:#e4f630}
body.manager-page .lk-picked{display:flex;align-items:center;flex-wrap:wrap;gap:4px 10px;margin:0 0 4px;padding:8px 12px;border-radius:12px;background:#232b16;border:1px solid #4b5a1b}
body.manager-page .lk-picked b{font-size:16px;white-space:nowrap}
body.manager-page .lk-picked small{color:#c9d0c2;font-size:13px;white-space:nowrap}
body.manager-page .lk-picked .text-action{margin:0 0 0 auto;min-height:44px;padding:0 4px}
body.manager-page .lk-hint{margin:0;font-size:13px;color:#a6aaa7;word-break:keep-all}
body.manager-page .lk-hint:empty{display:none}
body.manager-page .lk-hint .text-action{min-height:44px;padding:0;text-decoration:underline;text-underline-offset:3px}
body.manager-page .lk-error{margin:0;color:#ff9b80;font-size:13.5px;word-break:keep-all}
body.manager-page .lk-actions{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 0}
body.manager-page .lk-passes{margin:0 0 12px;padding:10px 12px;border-radius:12px;background:#1b1f1e;border:1px solid #2b3030}
body.manager-page .lk-passes-top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 0 4px}
body.manager-page .lk-passes-top b{font-size:14px}
body.manager-page .lk-passes .lk-member-open{min-height:44px;padding:0 2px;font-weight:700;color:#e4f630}
body.manager-page .lk-passes ul{display:grid;gap:8px;margin:0;padding:0;list-style:none}
body.manager-page .lk-passes li{display:flex;align-items:center;justify-content:space-between;gap:10px}
body.manager-page .lk-passes li span{display:grid;gap:2px;min-width:0}
body.manager-page .lk-passes li b{font-size:15px;word-break:keep-all}
body.manager-page .lk-passes li small{color:#a6aaa7;font-size:12.5px;font-variant-numeric:tabular-nums}
body.manager-page .lk-passes li em{flex:none;padding:2px 9px;border-radius:999px;font-style:normal;font-size:12px;font-weight:800;white-space:nowrap;background:#2f3a14;color:#e4f630}
body.manager-page .lk-passes li.is-held em{background:#1d2a38;color:#9cc7f0}
body.manager-page .lk-passes li.is-upcoming em{background:#2a2f2d;color:#d7ddd4}
body.manager-page .lk-passes li.is-expired em{background:#3d1f1a;color:#ff9b80}
body.manager-page .lk-passes .fine{margin:4px 0 0}
body.manager-page .lkm-picked+.lk-passes{margin:8px 0 0}
body.manager-page .lk-actions button{min-height:44px;margin:0}
body.manager-page .lk-danger{color:#ff9b80}
body.manager-page .lk-box{margin:0 0 12px;padding:10px 12px;border-radius:12px;background:#22282a;font-size:13.5px;word-break:keep-all}
body.manager-page .lk-box.is-alert{border:1px solid #9c4636}
body.manager-page .lk-member{margin:18px 0 0}
body.manager-page .lk-member h3{margin:0 0 8px}
body.manager-page .lk-mine{display:flex;align-items:center;flex-wrap:wrap;gap:4px 12px;padding:10px 12px;border-radius:12px;background:#22282a;border:1px solid #353b38}
body.manager-page .lk-mine b{font-size:18px;white-space:nowrap}
body.manager-page .lk-mine span{font-variant-numeric:tabular-nums;white-space:nowrap}
body.manager-page .lk-mine em{margin-left:auto;font-style:normal;font-size:12.5px;font-weight:800;color:#e4f630;white-space:nowrap}
body.manager-page .lk-mine.is-soon{border-color:#8f7019}body.manager-page .lk-mine.is-soon em{color:#ffc94d}
body.manager-page .lk-mine.is-overdue{border-color:#9c4636}body.manager-page .lk-mine.is-overdue em{color:#ff9b80}
body.manager-page .lk-mine+.fine{margin:6px 0 0}
body.manager-page .lk-nolocker{margin:0}
body.manager-page .lk-history{margin:10px 0 0}
body.manager-page .lk-history summary{min-height:44px;display:flex;align-items:center;cursor:pointer;font-size:13.5px;color:#a6aaa7}

/* 함께 신청(대표 2026-10-26): 수업 명단 '함께' 태그, 체험자·게스트 여러 명 입력 줄 */
.bm-tag.group{background:#2f3a22;color:#e4f630}
.trial-src.group{background:#2f3a22;color:#e4f630}
.bm-trial .bm-row-x{margin:0;min-height:0;padding:0 8px;border:0;background:transparent;color:#8f988e;font-size:12px}
.bm-trial .bm-form-foot{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;gap:8px}
.bm-trial .bm-more{margin:0;min-height:0;padding:6px 10px;border:1px dashed #e4f63066;background:transparent;color:#e4f630;font-size:12px;border-radius:8px}
.bm-trial .bm-more.off{border:0;color:#8f988e;font-size:11.5px}
/* 드랍인 체크인 경로 검수 (2026-10-29): 같은 참가자 창의 모든 터치 영역을 44px 이상으로. */
body.manager-page .bm-dialog button,body.manager-page .bm-dialog input,body.manager-page .bm-dialog select{min-width:44px;min-height:44px}
body.manager-page .bm-dialog button{white-space:nowrap}
body.manager-page .bm-dialog .bm-x-space{width:44px}
body.manager-page .bm-dialog summary{min-height:44px;box-sizing:border-box;padding-block:12px;line-height:20px}

/* 회원 상세 > 기간·횟수 추가: 390px, one decision and one primary action. */
.ext-single .dialog-head{gap:8px;padding:12px 16px}
.ext-single .dialog-head h2{font-size:18px;white-space:nowrap;word-break:keep-all;margin:0;min-width:0}
.ext-single .dialog-head button{min-width:44px;min-height:44px;margin:0;flex-shrink:0}
.ext-single .dialog-head .dialog-back{padding:0 8px}
.ext-single .dialog-body{padding:20px}
.ext-single .ext-mode{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;border:1px solid #444a43;border-radius:12px;margin-bottom:16px}
.ext-single .ext-mode button{min-height:44px;background:transparent;border:0;border-radius:8px;color:#c9cec4;white-space:nowrap}
.ext-single .ext-mode button[aria-pressed="true"]{background:#343b33;color:#f3f5ef;box-shadow:inset 0 0 0 1px #879474}
.ext-single .ext-lead{margin:0 0 16px;font-size:14px;color:#c9cec4}
.ext-single .ext-form{display:grid;grid-template-columns:minmax(0,1fr);gap:16px}
.ext-single .ext-form>*,.ext-single .ext-form label{margin:0;min-width:0;max-width:100%;word-break:keep-all}
.ext-single .ext-form input,.ext-single .ext-form select{min-height:48px;min-width:0;width:100%;font-size:16px}
.ext-single .ext-form .ext-days{max-width:none;width:100%}
.ext-single .ext-form .ext-days input{padding-right:40px}
.ext-single .ext-form .ext-pass{display:flex;justify-content:space-between;gap:12px;font-size:13px;align-items:center;color:#c9cec4}
.ext-single .ext-pass b{font-size:15px;color:#f3f5ef}
.ext-single .ext-preview{padding:16px;border:1px solid #424b3c;background:#242b22;border-radius:12px;line-height:1.4}
.ext-single .ext-preview-label{display:block;font-size:12px;color:#bdc7b4;margin-bottom:6px}
.ext-single .ext-preview-value{display:flex;align-items:baseline;gap:14px;white-space:nowrap;font-size:25px}
.ext-single .ext-preview-value b{font-weight:500;color:#c9cec4}
.ext-single .ext-preview-value>span{font-size:20px;color:#9da693}
.ext-single .ext-preview-value strong{font-weight:750;color:#e4f630}
.ext-single .ext-preview small{display:block;margin-top:8px;font-size:12px;color:#bdc7b4;white-space:nowrap}
.ext-single .ext-form button.primary{min-height:48px;width:100%;white-space:nowrap}
.ext-single .ext-empty{padding:24px 0;font-size:14px;word-break:keep-all}
.ext-single .ext-empty p{font-size:13px;color:#c9cec4}
.ext-history .ext-cancel{min-height:44px;min-width:44px}
.ext-single [hidden]{display:none!important}
@media(max-width:430px){.ext-single .dialog-body{padding:16px}.ext-single .dialog-head{padding:10px 12px}.ext-single .dialog-head h2{font-size:17px}}

body.manager-page .crm-dialog.ext-single input,body.manager-page .crm-dialog.ext-single select{min-height:48px;font-size:16px}
.ext-single .ext-preview-label{margin-left:0}
.ext-single .ext-pass b{white-space:normal;word-break:keep-all;overflow:visible;text-overflow:clip}

/* 추천 난이도 (2026-10-08, v2 2026-11-01, public/level-suggest.js): per-member tag on class rosters and the count per level for setting out loads. */
.bm-tag.ls-tag{background:#2f3a14;color:#e4f630;white-space:nowrap}
.bm-tag.ls-tag.ls-lv-build{background:#1d3329;color:#9fe0c0}
.bm-tag.ls-tag.ls-lv-start{background:#3a2b1c;color:#ffb86b}
.bm-tag.ls-tag.ls-need{background:transparent;border:1px dashed #4a524b;color:#8f988e}
.ls-counts{display:flex;flex-wrap:wrap;align-items:center;gap:5px;margin:-2px 0 10px;font-size:12px;color:#8f988e}
.ls-counts b{font-weight:800;color:#c7cec5;white-space:nowrap}
.ls-counts .ls-n{padding:2px 7px;border-radius:999px;background:#2f3a14;color:#e4f630;font-weight:700;white-space:nowrap;font-variant-numeric:tabular-nums}
.ls-counts .ls-n.ls-lv-build{background:#1d3329;color:#9fe0c0}
.ls-counts .ls-n.ls-lv-start{background:#3a2b1c;color:#ffb86b}
.ls-counts .ls-n.ls-need{background:transparent;border:1px dashed #4a524b;color:#8f988e}
/* Names never shrink: on a narrow roster (390px, two check-in buttons) the tag moves under the name instead of clipping it. */
.bm-nl{display:flex;flex-wrap:wrap;align-items:center;gap:2px 6px;min-width:0}.bm-nl b{flex:none;white-space:nowrap}.bm-nl .bm-tag.ls-tag{flex:none;padding:1px 6px;font-size:10.5px}

/* 명부 개수 줄의 보관 회원 [보기]·[전체 보기] (2026-11-03): 글자 링크처럼 작게 보이고, 누르는 칸은 44px. 색은 개수 줄을 따라가서 라이트 테마도 그대로 맞는다. */
body.manager-page .roster-count .roster-archived-toggle{display:inline-flex;align-items:center;min-height:44px;margin:-12px 0 -12px 2px;padding:0 6px;border:0;border-radius:6px;background:transparent;color:inherit;font:inherit;font-weight:700;text-decoration:underline;text-underline-offset:3px;white-space:nowrap;cursor:pointer}
body.manager-page .roster-count .roster-archived-toggle:focus-visible{outline:2px solid currentColor;outline-offset:-8px}
/* 검색칸 돋보기와 글자가 겹치던 것 (2026-11-03): 위 직원 화면 공통 input 여백(10px)이 .search-box input의 왼쪽 여백을 덮어 아이콘(14–31px) 위에 글자가 왔다. */
body.manager-page .manager-content .search-box input{padding-left:40px}
/* 휴대폰에서 명부 표 제목 필터(회원권·상태) 항목을 손가락으로 누르기 쉽게: 한 줄 44px, 글자 13px. 상태에 '보관 회원'이 더해져도 안에서 스크롤되지 않게 높이도 늘린다. */
@media(max-width:800px){body.manager-page .roster-head-menu{max-height:min(62vh,360px)}body.manager-page .roster-head-menu label{min-height:44px;padding:0 6px;font-size:13px}}

/* 처음 온 분 등록 (2026-11-04): 어느 수업에 들어가는지 알려 주는 첫 줄 */
body.manager-page .first-visit-form .fv-where{margin:0 0 2px;color:#bcc5bf;font-size:14px;line-height:1.45;word-break:keep-all}
body.manager-page .first-visit-form .fv-where b{color:#f2f4ef;font-weight:800}
body.manager-page .first-visit-form .fv-more{margin:4px 0 16px}
body.manager-page .first-visit-form .fv-more>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;padding:0 12px;border:1px solid #3d453f;border-radius:8px;color:#e9ede4;font-size:14px;cursor:pointer;list-style:none;word-break:keep-all}
body.manager-page .first-visit-form .fv-more>summary::-webkit-details-marker{display:none}
body.manager-page .first-visit-form .fv-more>summary b{min-width:0;font-weight:700}
body.manager-page .first-visit-form .fv-more>summary span{flex:none;color:#bcc5bf;font-size:13px;font-weight:700;text-decoration:underline;text-underline-offset:3px}
body.manager-page .first-visit-form .fv-more[open]>summary{margin-bottom:12px}
/* 외국인 방문객 임시 앱 계정 (대표 2026-11-11): 회원 상세 한 줄 + 아이디·비밀번호를 크게 보여 주는 창 */
body.manager-page .visitor-account{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:12px 0 4px;padding:10px 12px;border:1px solid #3d453f;border-radius:8px;color:#bcc5bf;font-size:14px;line-height:1.45}
body.manager-page .visitor-account[hidden]{display:none}
body.manager-page .visitor-account b{color:#f2f4ef;font-weight:800}
body.manager-page .visitor-account span{flex:1 1 180px;min-width:0;word-break:keep-all}
body.manager-page .visitor-login .vl-name{margin:0;color:#bcc5bf;font-size:14px}
body.manager-page .visitor-login .vl-name b{color:#f2f4ef}
body.manager-page .visitor-login dl{display:grid;gap:10px;margin:14px 0}
body.manager-page .visitor-login dl div{padding:12px 14px;border:1px solid #3d453f;border-radius:10px}
body.manager-page .visitor-login dt{margin-bottom:4px;color:#bcc5bf;font-size:13px;font-weight:700}
body.manager-page .visitor-login dd{margin:0;color:#f2f4ef;font:800 30px/1.2 ui-monospace,Menlo,Consolas,monospace;letter-spacing:.02em;word-break:break-all;user-select:all}
body.manager-page .visitor-login .vl-en{margin:12px 0;color:#e9ede4;font-size:15px;line-height:1.5}
body.manager-page .visitor-login .vl-notes{margin:0;padding-left:18px;line-height:1.6}
/* 휴대폰: 체험·현장·게스트·대기 표시가 있는 예약 줄은 표시를 이름 아래 둘째 줄로 내려 이름이 잘리지 않게 (2026-11-04, 처음 온 분 등록 줄은 체험·현장 둘 다 붙는다) */
@media(max-width:520px){.bm-booked .bm-row:has(.bm-tags .bm-tag){grid-template-columns:minmax(0,1fr) auto auto}.bm-booked .bm-row:has(.bm-tags .bm-tag) .bm-tags{grid-area:2/1/auto/-1;justify-content:flex-start}}

/* 푸시로 찾은 처리 항목은 고정 메뉴 아래에서 시작한다. */
.trial-signups,.service-manager-requests,[data-service-request],[data-visit-row],[data-trial-class],[data-visit-class]{scroll-margin-top:80px}

/* Expired-member follow-up: whole row opens the existing detail; date stays readable on phones. */
.vm-dialog .vm-expired-sort{margin:0 0 12px;font-size:12px;color:#a8b0a6}
.vm-dialog .vm-expired-list{list-style:none;margin:0;padding:0;display:grid;gap:0}
.vm-dialog .vm-expired-list li{margin:0;padding:0;min-width:0}
.vm-dialog .vm-expired-row{display:grid;grid-template-columns:minmax(0,1fr) auto 12px;align-items:center;gap:12px;width:100%;min-height:76px;padding:14px 0;border:1px solid rgba(0,0,0,0);border-width:0 0 1px;border-bottom:1px solid #343b37;border-radius:0;background:none;color:#edf0e7;text-align:left;font:inherit;box-shadow:none;white-space:normal;word-break:keep-all}
.vm-dialog button.vm-expired-row{cursor:pointer}
.vm-dialog button.vm-expired-row:hover{background:#252c27}
.vm-dialog button.vm-expired-row:focus-visible{outline:2px solid #ddf878;outline-offset:2px}
.vm-expired-info{display:grid;gap:5px;min-width:0}
.vm-expired-info b{font-size:15px;line-height:1.45;overflow-wrap:anywhere}
.vm-expired-time{font-size:12px;line-height:1.6;color:#a8b0a6;word-break:keep-all}
.vm-expired-time span{display:inline-block;white-space:nowrap;font-variant-numeric:tabular-nums}
.vm-expired-date{display:grid;gap:5px;text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.vm-expired-date small{font-size:11px;color:#a8b0a6}
.vm-expired-date time{font-size:13px;font-weight:600}
.vm-expired-arrow{font-size:23px;color:#a8b0a6}
.vm-dialog .vm-expired-row.is-static{grid-template-columns:minmax(0,1fr) auto;padding-right:24px}
.vm-expired-unavailable{grid-column:1/-1;font-size:11px;color:#a8b0a6}
.vm-dialog details.vm-expired-help{margin:14px 0 0;border:0;padding:0}
.vm-expired-help summary{display:flex;align-items:center;min-height:44px;width:max-content;font-size:12px;cursor:pointer;color:#a8b0a6;white-space:nowrap}
.vm-expired-help summary::after{content:' +';margin-left:8px}
.vm-expired-help[open] summary::after{content:' −'}
.vm-expired-help p{margin:0;font-size:12px;line-height:1.7;word-break:keep-all;color:#a8b0a6}
#vm-chip-dialog .dialog-head{min-height:64px}
#vm-chip-dialog .dialog-head h2{min-width:0;word-break:keep-all}
#vm-chip-dialog [data-vm-close]{min-width:44px;min-height:44px;flex-shrink:0}
/* 케어 일지 (대표 2026-11-09 "마지막 방문 우측에 … 케어 일지를 작성하게끔"): 오늘 챙길 회원 표의 넷째 열, 오늘 남긴 케어 일지, 케어 일지 창 */
body.manager-page .care-today-table-wrap table{min-width:640px}
body.manager-page .care-today-table-wrap th:first-child{width:40%}
body.manager-page .care-today-table-wrap th:nth-child(2){width:25%}
body.manager-page .care-today-table-wrap th:nth-child(3){width:15%}
body.manager-page .care-today-table-wrap td.care-log-cell{white-space:nowrap}
body.manager-page .care-today-table-wrap .care-log-btn{display:inline-flex;align-items:center;min-height:34px;padding:0 13px;border:1px solid #6d8a3c;border-radius:999px;background:#243024;color:#def47b;font-size:12px;font-weight:800;line-height:1;cursor:pointer}
body.manager-page .care-today-table-wrap .care-log-btn:hover,body.manager-page .care-today-table-wrap .care-log-btn:focus-visible{background:#ddf878;border-color:#ddf878;color:#182217}
body.manager-page .care-today-table-wrap td small.care-log-last{margin-top:6px;white-space:normal}
body.manager-page .care-today-table-wrap td small.care-log-last.is-today{color:#ddf878;font-weight:700}
body.manager-page .care-log-today{margin-top:14px;padding:12px 14px;border:1px solid #445540;border-radius:11px}
body.manager-page .care-log-today h4{margin:0 0 6px;font-size:13px}
body.manager-page .care-log-today h4 b{color:#ddf878}
body.manager-page .care-log-today ul{margin:0;padding:0;list-style:none}
body.manager-page .care-log-today li button{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 10px;width:100%;padding:8px 0;border:0;border-bottom:1px solid #3b4a39;border-radius:0;background:none;color:#eef6e8;font-size:12px;font-weight:500;text-align:left;cursor:pointer}
body.manager-page .care-log-today li:last-child button{border-bottom:0}
body.manager-page .care-log-today li button b{font-weight:800}
body.manager-page .care-log-today li button span{color:#ddf878;font-weight:700}
body.manager-page .care-log-today li button small{color:#9fae98;font-size:11px}
body.manager-page .care-log-today li button:hover b,body.manager-page .care-log-today li button:focus-visible b{color:#ddf878}
body.manager-page .care-log-dialog h4{margin:18px 0 8px;font-size:14px}
body.manager-page .care-log-dialog h4 b{color:#ddf878}
body.manager-page .care-log-context{padding:12px 14px;border-radius:12px;background:#19221c}
body.manager-page .care-log-context .care-why{margin-top:0}
body.manager-page .care-log-context>small{display:block;color:#b0bfa7}
body.manager-page .care-log-facts{display:flex;flex-wrap:wrap;gap:4px 18px;margin:10px 0 0;font-size:12px;color:#b0bfa7}
body.manager-page .care-log-facts b{margin-left:4px;color:#eef6e8}
body.manager-page .care-log-facts small{margin-left:4px;color:#9fae98}
body.manager-page .care-log-history .care-history{padding:10px 0}
body.manager-page .care-log-history .care-history p{margin:4px 0 0;font-size:12.5px}
body.manager-page .care-history.is-auto{opacity:.65}
body.manager-page .care-history .care-log-next{color:#ddf878}
body.manager-page .care-log-form fieldset{min-width:0;margin:0 0 12px;padding:0;border:0}
body.manager-page .care-log-form legend{margin:0 0 6px;padding:0;font-size:12.5px;color:#c9cec4}
body.manager-page .care-log-form .ext-chip span{min-height:38px;padding:0 14px;font-size:13px}
body.manager-page .care-log-extra,body.manager-page .care-log-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 10px}
body.manager-page .care-log-extra[hidden]{display:none}
@media(max-width:520px){body.manager-page .care-log-extra,body.manager-page .care-log-meta{grid-template-columns:1fr}}
