.pjm-bv2 { font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,sans-serif; color:#222; max-width:980px; margin:0 auto; padding:0 12px; }
.pjm-bv2 .pjm-bv2-steps { display:flex; gap:8px; flex-wrap:wrap; margin:18px 0 22px; }
.pjm-bv2 .pjm-bv2-step { display:flex; align-items:center; gap:6px; padding:8px 14px; border-radius:30px; font-size:13px; background:#f0e8eb; color:#998089; }
.pjm-bv2 .pjm-bv2-step .num { display:inline-flex; align-items:center; justify-content:center; width:22px; height:22px; border-radius:50%; background:#d4bcc4; color:#fff; font-size:12px; font-weight:700; }
.pjm-bv2 .pjm-bv2-step.done { background:#f6d6e0; color:#9c4664; }
.pjm-bv2 .pjm-bv2-step.done .num { background:#c97593; }
.pjm-bv2 .pjm-bv2-step.active { background:#222; color:#fff; }
.pjm-bv2 .pjm-bv2-step.active .num { background:#fff; color:#222; }
.pjm-bv2 .pjm-bv2-step.clickable { cursor:pointer; }
.pjm-bv2 h2 { margin:0 0 6px; color:#1f4e79; font-size:22px; }
.pjm-bv2 .pjm-bv2-sub { color:#666; font-size:14px; margin:0 0 18px; }
.pjm-bv2 .pjm-bv2-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(220px, 1fr)); gap:14px; }
.pjm-bv2 .pjm-bv2-card { background:#fff; border:1px solid #e5e1d6; border-radius:14px; overflow:hidden; cursor:pointer; transition:transform .15s ease, box-shadow .15s ease; box-shadow:0 1px 3px rgba(0,0,0,.04); display:flex; flex-direction:column; }
.pjm-bv2 .pjm-bv2-card:hover { transform:translateY(-2px); box-shadow:0 6px 18px rgba(0,0,0,.1); border-color:#d4cdb9; }
.pjm-bv2 .pjm-bv2-card .img { width:100%; aspect-ratio:16/9; background:#f7f5ef; background-size:cover; background-position:center; display:block; }
.pjm-bv2 .pjm-bv2-card .body { padding:14px 16px 18px; background:#f7f5ef; flex:1; }
.pjm-bv2 .pjm-bv2-card h3 { margin:0 0 6px; font-size:17px; color:#1f4e79; font-weight:700; letter-spacing:-.01em; }
.pjm-bv2 .pjm-bv2-card .desc { color:#444; font-size:13px; line-height:1.5; margin:6px 0 0; }
.pjm-bv2 .pjm-bv2-card .meta { color:#888; font-size:12px; margin-top:8px; }
.pjm-bv2 .pjm-bv2-card .price { color:#1f4e79; font-weight:700; font-size:15px; margin-top:8px; }
.pjm-bv2 .pjm-bv2-back { background:transparent; color:#1f4e79; border:1px solid #1f4e79; padding:8px 16px; border-radius:6px; cursor:pointer; font-size:13px; }
.pjm-bv2 .pjm-bv2-back:hover { background:#1f4e79; color:#fff; }
.pjm-bv2 .pjm-bv2-nav { display:flex; gap:10px; margin:18px 0; flex-wrap:wrap; align-items:center; }
.pjm-bv2 .pjm-bv2-clinics { display:grid; grid-template-columns:repeat(auto-fill, minmax(280px, 1fr)); gap:14px; }
.pjm-bv2 .pjm-bv2-clinic { background:#fff; border:1px solid #e5e1d6; border-radius:8px; padding:16px; cursor:pointer; transition:all .15s; }
.pjm-bv2 .pjm-bv2-clinic:hover { border-color:#1f4e79; box-shadow:0 4px 12px rgba(0,0,0,.08); }
.pjm-bv2 .pjm-bv2-clinic h3 { margin:0 0 4px; font-size:16px; color:#1f4e79; }
.pjm-bv2 .pjm-bv2-clinic .addr { color:#666; font-size:13px; margin:4px 0; }

.pjm-bv2 .pjm-bv2-week-head { display:flex; justify-content:space-between; align-items:center; padding:12px 16px; background:#f7f5ef; border:1px solid #e5e1d6; border-radius:8px 8px 0 0; margin-top:14px; font-weight:600; color:#1f4e79; }
.pjm-bv2 .pjm-bv2-week-nav { background:transparent; border:0; color:#1f4e79; cursor:pointer; font-size:13px; padding:4px 10px; }
.pjm-bv2 .pjm-bv2-week-nav:hover { text-decoration:underline; }
.pjm-bv2 .pjm-bv2-pract { border:1px solid #e5e1d6; border-top:0; }
.pjm-bv2 .pjm-bv2-pract-head { display:flex; align-items:center; gap:10px; padding:10px 14px; background:#f7f5ef; border-bottom:1px solid #e5e1d6; }
.pjm-bv2 .pjm-bv2-pract-head img, .pjm-bv2 .pjm-bv2-pract-head .avatar { width:42px; height:42px; border-radius:50%; object-fit:cover; }
.pjm-bv2 .pjm-bv2-pract-head .avatar { display:flex; align-items:center; justify-content:center; color:#fff; font-weight:700; font-size:14px; }
.pjm-bv2 .pjm-bv2-pract-head .name { font-weight:600; color:#1f4e79; }
.pjm-bv2 .pjm-bv2-week-grid { display:grid; grid-template-columns:repeat(7, 1fr); border-top:1px solid #e5e1d6; }
.pjm-bv2 .pjm-bv2-day { padding:10px 6px; border-right:1px solid #f0ebe1; min-height:80px; background:#fff; }
.pjm-bv2 .pjm-bv2-day:last-child { border-right:0; }
.pjm-bv2 .pjm-bv2-day-head { text-align:center; font-size:11px; color:#888; font-weight:600; margin-bottom:6px; line-height:1.2; }
.pjm-bv2 .pjm-bv2-day-head .num { display:block; color:#222; font-size:14px; font-weight:700; }
.pjm-bv2 .pjm-bv2-day-head.today .num { color:#1f4e79; }
.pjm-bv2 .pjm-bv2-slot { display:block; width:100%; background:#7ea287; color:#fff; border:0; padding:6px 4px; border-radius:4px; font-size:12px; cursor:pointer; margin:3px 0; font-weight:600; }
.pjm-bv2 .pjm-bv2-slot:hover { background:#5f8369; }
.pjm-bv2 .pjm-bv2-empty-day { color:#ccc; text-align:center; font-size:11px; padding:18px 0; }
.pjm-bv2 .pjm-bv2-no-slots { padding:30px; text-align:center; color:#888; background:#fff; border:1px solid #e5e1d6; border-top:0; border-radius:0 0 8px 8px; }

.pjm-bv2 .pjm-bv2-summary { background:#f7f8fa; border-left:4px solid #1f4e79; padding:14px 16px; border-radius:8px; margin-bottom:18px; }
.pjm-bv2 .pjm-bv2-summary .row { display:flex; gap:10px; margin:4px 0; font-size:14px; }
.pjm-bv2 .pjm-bv2-summary .row b { min-width:90px; color:#666; font-weight:500; }
.pjm-bv2 .pjm-bv2-auth { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
@media(max-width:680px) { .pjm-bv2 .pjm-bv2-auth { grid-template-columns:1fr; } }
.pjm-bv2 .pjm-bv2-auth-box { background:#fff; border:1px solid #e5e1d6; border-radius:8px; padding:18px; }
.pjm-bv2 .pjm-bv2-auth-box h3 { margin:0 0 6px; font-size:16px; color:#1f4e79; }
.pjm-bv2 .pjm-bv2-auth-box .lede { color:#666; font-size:13px; margin:0 0 12px; }
.pjm-bv2 .pjm-bv2-field { margin:8px 0; }
.pjm-bv2 .pjm-bv2-field label { display:block; font-size:12px; font-weight:600; margin-bottom:3px; color:#444; }
.pjm-bv2 .pjm-bv2-field input { width:100%; padding:9px 11px; border:1px solid #ccc; border-radius:5px; font-size:13px; box-sizing:border-box; font-family:inherit; }
.pjm-bv2 .pjm-bv2-btn { background:#1f4e79; color:#fff; border:0; padding:11px 20px; border-radius:6px; font-size:14px; font-weight:600; cursor:pointer; }
.pjm-bv2 .pjm-bv2-btn:hover { background:#163958; }
.pjm-bv2 .pjm-bv2-btn:disabled { opacity:.5; cursor:not-allowed; }
.pjm-bv2 .pjm-bv2-btn-large { padding:14px 24px; font-size:15px; }
.pjm-bv2 .pjm-bv2-alert { padding:10px 12px; border-radius:6px; font-size:13px; margin:10px 0; }
.pjm-bv2 .pjm-bv2-alert-error { background:#fee; border-left:3px solid #b32d2e; color:#7c1d1d; }
.pjm-bv2 .pjm-bv2-alert-success { background:#e9f7e9; border-left:3px solid #0f7a3e; color:#1d5d2c; }
.pjm-bv2 .pjm-bv2-alert-info { background:#e6f0fa; border-left:3px solid #1f4e79; color:#1a3a5a; }
.pjm-bv2 .pjm-bv2-loading { padding:40px; text-align:center; color:#888; }
.pjm-bv2 .pjm-bv2-timer { font-size:12px; color:#7c1d1d; margin-left:auto; }
