.prosign-booking{max-width:900px;margin:0 auto}
.prosign-booking__intro{margin:0 0 14px;color:#333}
.prosign-calendar{border:1px solid #e6e6e6;border-radius:16px;background:#fff;overflow:hidden}
.prosign-calendar__toolbar{display:flex;align-items:center;justify-content:space-between;padding:12px 12px;border-bottom:1px solid #eee;background:#fafafa}
.prosign-calendar__title{font-weight:900}
.pc-btn{border:1px solid #ddd;background:#fff;border-radius:10px;padding:8px 10px;font-weight:900;cursor:pointer}
.pc-btn:hover{background:#f7f7f7}
.prosign-calendar__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:0}
.pc-dow{padding:10px 6px;font-size:12px;font-weight:800;color:#555;text-align:center;border-bottom:1px solid #eee;background:#fff}
.pc-day{border:0;border-right:1px solid #f0f0f0;border-bottom:1px solid #f0f0f0;background:#fff;padding:12px 8px;min-height:54px;font-weight:800;cursor:pointer;text-align:left}
.pc-day:hover{background:#f7f7f7}
.pc-day--past{color:#aaa;cursor:not-allowed}
.pc-day--blank{background:#fafafa;border-right:1px solid #f0f0f0;border-bottom:1px solid #f0f0f0}
.prosign-modal[hidden]{display:none}
.prosign-modal{position:fixed;inset:0;z-index:9999}
.prosign-modal__backdrop{position:absolute;inset:0;background:rgba(0,0,0,0.45)}
.prosign-modal__panel{position:relative;max-width:520px;margin:8vh auto 0;background:#fff;border-radius:16px;border:1px solid #e6e6e6;box-shadow:0 20px 60px rgba(0,0,0,0.25);overflow:hidden}
.prosign-modal__head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 12px;border-bottom:1px solid #eee;background:#fafafa}
.prosign-modal__kicker{font-size:12px;color:#555;font-weight:800;text-transform:uppercase;letter-spacing:0.03em}
.prosign-modal__date{font-weight:900}
.prosign-modal__body{padding:12px}
.prosign-slots{display:flex;flex-wrap:wrap;gap:10px}
.pc-slot{border:1px solid #ddd;background:#fff;border-radius:12px;padding:10px 12px;font-weight:900;cursor:pointer}
.pc-slot:hover{background:#f7f7f7}
.pc-loading,.pc-empty{padding:10px;color:#555;font-weight:700}
.prosign-slot-note{margin-top:12px;color:#555;font-size:13px;font-weight:700}
body.prosign-modal-open{overflow:hidden}
.prosign-form{margin-top:14px;border:1px solid #e6e6e6;border-radius:14px;padding:16px;background:#fff}
.prosign-form__header{margin-bottom:10px}
.prosign-form__title{margin:0 0 4px}
.prosign-form__meta{margin:0;color:#555;font-weight:700}
.prosign-booking .grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.prosign-booking label{display:flex;flex-direction:column;gap:6px;font-weight:700}
.prosign-booking input,.prosign-booking select,.prosign-booking textarea{padding:10px;border:1px solid #ddd;border-radius:10px;font-weight:600}
.prosign-booking .span2{grid-column:1 / -1}
.prosign-booking .checkbox{flex-direction:row;align-items:flex-start;font-weight:600}
.prosign-booking .checkbox input{margin-top:3px}
.prosign-booking .actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}
.prosign-booking .btn{padding:10px 14px;border-radius:10px;border:1px solid #ddd;background:#f7f7f7;font-weight:900;cursor:pointer}
.prosign-booking .btn-primary{background:#0a58ca;border-color:#0a58ca;color:#fff}
.prosign-booking .notice{margin-top:12px;font-weight:900}
.prosign-booking .notice.error{color:#b00020}
.prosign-booking .notice.success{color:#0b6}
@media(max-width:720px){.prosign-booking .grid{grid-template-columns:1fr}.pc-day{min-height:48px}.prosign-modal__panel{margin:10vh 12px 0}}
.prosign-confirm{margin-top:14px;border:1px solid #e6e6e6;border-radius:14px;padding:16px;background:#fff}
.prosign-confirm__title{margin:0 0 8px}
.prosign-confirm__body p{margin:0 0 8px}
