doctor-appointment-system/public/css/appointment_form.css
2026-05-08 12:22:08 +05:30

659 lines
9.8 KiB
CSS

/* Style single-select2 clear icon to look like multi-select tag remove button */
/* .select2-container--default .select2-selection--single .select2-selection__clear {
background: #eaf7f2;
border-radius: 4px;
color: #1a7f5a;
font-size: 18px;
margin-left: 8px;
padding: 0 8px;
cursor: pointer;
transition: background 0.2s;
position: relative;
top: -2px;
}
.select2-container--default .select2-selection--single .select2-selection__clear:hover {
background: #d1f2e0;
color: #0c5c3c;
} */
body{
background:#f6f8fb;
font-family:system-ui,-apple-system,Segoe UI,sans-serif;
}
.appointment-card{
width:100%;
max-width:none;
margin:12px 0;
background:#fff;
border:1px solid #dbe4ee;
border-radius:12px;
overflow:hidden;
}
.card-header-custom{
padding:16px 24px;
border-bottom:1px solid #dbe4ee;
display:flex;
justify-content:space-between;
align-items:center;
}
.card-header-custom h4{
margin:0;
font-size:22px;
font-weight:600;
color:#183153;
}
.back-btn{
border:1px solid #adb8c5;
padding:8px 18px;
border-radius:6px;
background:#fff;
text-decoration:none;
color:#4d6072;
font-size:14px;
}
.form-body{
padding:24px;
}
.info-badge{
display:inline-block;
padding:8px 12px;
border:1px solid #d2d9e3;
border-radius:8px;
background:#f9fafb;
font-weight:500;
font-size:14px;
margin-bottom:20px;
}
.form-label{
font-size:15px;
font-weight:500;
margin-bottom:8px;
color:#1f3550;
}
.req{
color:#dc3545;
}
.form-control,
.form-select{
height:44px;
border-radius:8px;
font-size:15px;
border:1px solid #ced4da;
}
textarea.form-control{
height:100px;
padding-top:12px;
}
.readonly-box{
background:#f4f6f8;
}
.action-row{
margin-top:30px;
display:flex;
justify-content:space-between;
align-items:center;
}
.cancel-btn{
padding:10px 24px;
border-radius:30px;
background:#fff;
border:1px solid #8e9aaa;
color:#556575;
font-size:15px;
}
.save-btn{
padding:11px 28px;
border:none;
border-radius:30px;
background:#0f8b83;
color:white;
font-size:15px;
font-weight:600;
box-shadow:0 4px 12px rgba(15,139,131,.18);
}
.save-btn:hover{
background:#0c746d;
}
.doctor-card{
padding:14px;
border:1px solid #dbe4ee;
border-radius:10px;
margin-bottom:10px;
transition:.2s;
}
.doctor-card.available{
border:2px solid #198754;
background:#eefaf4;
cursor:pointer;
}
.doctor-card.disabled{
background:#f4f5f6;
opacity:.6;
pointer-events:none;
}
#doctorFieldBox{
min-height:44px;
border:1px solid #ced4da;
border-radius:8px;
padding:12px;
background:#fff;
}
.doctor-placeholder{
color:#6c757d;
font-size:14px;
}
.doctor-empty{
height:20px;
display:flex;
align-items:center;
font-size:15px;
color:#495057;
margin:0;
padding:0;
}
.field-error{
border:2px solid #dc3545 !important;
box-shadow:0 0 0 .15rem rgba(220,53,69,.12);
}
.error-text{
font-size:13px;
color:#dc3545;
margin-top:6px;
}
@media(max-width:768px){
.appointment-card{
margin:15px;
}
.action-row{
flex-direction:column;
gap:14px;
align-items:stretch;
}
}
/* ===== Compact fit adjustments ===== */
.ov-content{
padding-top:10px !important;
}
.appointment-card{
width:100%;
max-width:none;
margin:8px 0;
}
.card-header-custom{
padding:10px 18px;
}
.card-header-custom h4{
font-size:18px;
}
.form-body{
padding:16px 20px;
}
/* reduce bootstrap row spacing */
.row.g-4{
--bs-gutter-y:1rem;
--bs-gutter-x:1rem;
}
.form-label{
font-size:14px;
margin-bottom:5px;
}
.info-badge{
padding:6px 10px;
font-size:13px;
margin-bottom:12px;
}
.form-control,
.form-select{
height:40px;
font-size:14px;
}
.readonly-box{
height:40px;
}
/* smaller notes box */
textarea.form-control{
height:72px;
padding-top:8px;
}
/* doctor field match input height */
#doctorFieldBox{
min-height:40px;
padding:8px 12px;
}
/* tighter doctor cards if shown */
.doctor-card{
padding:10px;
margin-bottom:8px;
}
.action-row{
margin-top:16px;
}
.cancel-btn,
.save-btn{
padding:8px 20px;
font-size:14px;
}
/* optional: keep textarea from stretching too much */
textarea{
resize:vertical;
min-height:72px;
}
/* =========================================
SELECT2 CUSTOM DESIGN FIX
========================================= */
.multi-select-arrow-wrap{
position:relative;
width:100%;
}
/* hide default select2 arrow (using custom icon) */
.select2-container--default .select2-selection__arrow{
display:none !important;
}
.select2-container{
width:100% !important;
display:block;
}
/* Main input box */
.select2-container--default
.select2-selection--multiple{
min-height:40px !important;
height:auto !important;
display:flex !important;
flex-wrap:wrap !important;
align-items:center !important;
padding:4px 40px 4px 8px !important;
border:1px solid #ced4da !important;
border-radius:8px !important;
background:#fff !important;
transition:.2s;
overflow:hidden;
}
/* Placeholder */
.select2-container--default
.select2-selection--multiple
.select2-search__field{
margin-top:0 !important;
height:28px !important;
font-size:14px !important;
}
/* Selected tags */
/* ===================================
SELECT2 BADGE FIX (full text visible)
=================================== */
.select2-container--default
.select2-selection--multiple
.select2-selection__choice{
display:inline-flex !important;
align-items:center !important;
width:auto !important;
max-width:none !important;
white-space:nowrap !important;
overflow:visible !important;
padding:0 !important;
margin:4px 8px 4px 0 !important;
background:#e9f7f5 !important;
border:1px solid #b8e4de !important;
border-radius:6px !important;
}
.select2-container--default
.select2-selection--multiple
.select2-selection__choice__remove{
position:relative !important;
display:inline-flex !important;
align-items:center;
justify-content:center;
width:24px !important;
height:24px !important;
margin:0 !important;
padding:0 !important;
border-right:1px solid #b8e4de;
background:#dff3ef;
color:#0f5e58 !important;
font-size:15px;
font-weight:600;
float:none !important;
}
/* ===== DOCTOR LIST STYLES ===== */
.doctor-list-container {
display: grid;
flex-direction: column;
gap: 10px;
margin-top: 10px;
grid-template-columns: 1fr 1fr 1fr;
}
.doctor-option {
padding: 12px 14px;
border: 1px solid #dee2e6;
border-radius: 8px;
background: #fff;
transition: all 0.2s ease;
display: flex;
align-items: center;
}
.doctor-option.available {
cursor: pointer;
border-color: #ced4da;
}
.doctor-option.available:hover {
background: #f8f9fa;
border-color: #0f8b83;
}
.doctor-option.disabled {
opacity: 0.6;
background: #f8f9fa;
pointer-events: none;
}
.doctor-option .form-check-input {
margin-right: 12px;
margin-top: 0;
cursor: pointer;
}
.doctor-option.disabled .form-check-input {
cursor: not-allowed;
}
.doctor-option .form-check-label {
margin-bottom:0;
cursor:pointer;
flex:1;
display:flex !important;
flex-direction:row !important;
align-items:center !important;
gap:10px !important;
white-space:nowrap;
}
.doctor-option .form-check-label strong {
font-size: 15px;
color: #1f3550;
}
.doctor-option .form-check-label small {
font-size: 12px;
color: #6c757d;
margin-top: 2px;
}
/* FULL SERVICE NAME */
.select2-container--default
.select2-selection--multiple
.select2-selection__choice__display{
display:inline-block !important;
padding-left:8px !important;
padding-right:10px !important;
margin-left:0 !important;
line-height:24px !important;
white-space:nowrap !important;
overflow:visible !important;
text-overflow:unset !important;
}
.select2-selection__choice__display{
overflow:visible !important;
text-overflow:unset !important;
}
/* Focus effect */
.select2-container--default.select2-container--focus
.select2-selection--multiple{
border-color:#0f8b83 !important;
box-shadow:
0 0 0 .15rem rgba(15,139,131,.12) !important;
}
/* Dropdown panel */
.select2-dropdown{
border:1px solid #ced4da !important;
border-radius:8px !important;
overflow:hidden;
box-shadow:
0 6px 20px rgba(0,0,0,.08);
}
/* Dropdown options */
.select2-results__option{
padding:10px 14px !important;
font-size:14px;
}
.select2-results__option--highlighted{
background:#0f8b83 !important;
color:#fff !important;
}
/* Custom right chevron */
.select2-arrow-hint{
position:absolute;
right:14px;
top:50%;
transform:translateY(-50%);
pointer-events:auto;
cursor:pointer;
font-size:14px;
color:#6b7280;
z-index:20;
transition:.2s;
}
.select2-arrow-hint:hover{
color:#0f8b83;
}
/* Validation error support */
.field-error + .select2-container
.select2-selection--multiple{
border:2px solid #dc3545 !important;
box-shadow:
0 0 0 .15rem rgba(220,53,69,.12);
}
.select2-search--inline{
display:none !important;
}
/* Mobile */
@media(max-width:768px){
.select2-container--default
.select2-selection--multiple{
padding-right:34px !important;
}
.select2-arrow-hint{
right:10px;
}
}
.doctor-meta-row{
display:flex;
align-items:center;
flex-wrap:nowwrap;
gap:10px;
margin:0;
line-height:1.4;
}
.doctor-name{
margin:0;
font-weight:600;
}
.doctor-exp,
.doctor-status,
.sep{
display:inline-block;
white-space:nowrap;
}
.sep{
opacity:.6;
}
.form-check{
display:flex;
align-items:center;
gap:12px;
}
.form-check-input{
margin-top:0 !important;
flex-shrink:0;
}
.doctor-radio{
display:none;
}
/* Doctor single select */
.single-select-wrap{
position:relative;
width:100%;
}
.single-arrow{
position:absolute;
right:14px;
top:50%;
transform:translateY(-50%);
z-index:20;
cursor:pointer;
color:#6b7280;
}
/* hide default select2 arrow */
.select2-container--default
.select2-selection--single
.select2-selection__arrow{
display:none !important;
}
/* doctor select box */
.select2-container--default
.select2-selection--single{
height:40px !important;
border:1px solid #ced4da !important;
border-radius:8px !important;
padding:5px 40px 5px 12px !important;
}
/* text vertically centered */
.select2-selection__rendered{
line-height:28px !important;
}