:root {
--hm-blue:       #002855;
--hm-blue-light: #1a4b8a;
--hm-green:      #16a34a;
--hm-green-bg:   #dcfce7;
--hm-green-text: #14532d;
--hm-red:        #dc2626;
--hm-red-bg:     #fee2e2;
--hm-grey:       #6b7a8d;
--hm-grey-bg:    #f1f5f9;
--hm-border:     #dce5f0;
--hm-radius:     8px;
} #hm-app {
max-width: 860px;
margin: 0 auto;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
font-size: 14px;
line-height: 1.5;
color: #1a202c;
box-sizing: border-box;
}
#hm-app *, #hm-app *::before, #hm-app *::after {
box-sizing: inherit;
}
.hm-layout {
display: flex;
flex-wrap: nowrap;
gap: 36px;
align-items: flex-start;
}
.hm-calendar-col {
flex: 0 0 360px;
width: 360px;
min-width: 0;
}
.hm-form-col {
flex: 1 1 auto;
min-width: 0;
} .hm-datepicker {
border: 1px solid var(--hm-border);
border-radius: var(--hm-radius);
overflow: hidden;
background: #fff;
box-shadow: 0 2px 12px rgba(0,0,0,.06);
width: 100%;
} .hm-dp-header {
background: var(--hm-blue);
display: flex;
align-items: center;
justify-content: space-between;
padding: 12px 12px;
gap: 8px;
}
.hm-dp-title {
color: #fff;
font-size: 15px;
font-weight: 700;
text-align: center;
flex: 1;
white-space: nowrap;
} .hm-dp-nav {
display: flex;
align-items: center;
justify-content: center;
width: 30px;
height: 30px;
background: rgba(255,255,255,.15);
border: 1px solid rgba(255,255,255,.25);
border-radius: 5px;
color: #fff;
font-size: 22px;
line-height: 1;
cursor: pointer;
transition: background .15s;
flex-shrink: 0;
padding: 0;
font-family: inherit;
}
.hm-dp-nav:hover { background: rgba(255,255,255,.3); }
.hm-dp-nav:disabled,
.hm-dp-nav.hm-disabled {
opacity: .35;
cursor: default;
pointer-events: none;
} .hm-cal-table {
width: 100%;
border-collapse: collapse;
table-layout: fixed;
}
.hm-cal-table thead th {
background: #f8fafc;
border-bottom: 1px solid var(--hm-border);
color: var(--hm-blue);
font-size: 11px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: .5px;
padding: 8px 4px;
text-align: center;
}
.hm-cal-table td {
padding: 3px;
text-align: center;
border: none;
} .hm-cal-table td span,
.hm-cal-table td a {
display: block;
width: 34px;
height: 34px;
line-height: 34px;
margin: 0 auto;
border-radius: 6px;
font-size: 13px;
font-weight: 500;
text-decoration: none;
text-align: center;
border: 1px solid transparent;
transition: all .15s;
color: #2d3748;
background: transparent;
} .hm-cal-table td.hm-other span,
.hm-cal-table td.hm-no-slots span {
background: var(--hm-grey-bg);
color: #adb5bd;
cursor: default;
}
.hm-cal-table td.hm-other { opacity: .3; } .hm-cal-table td.hm-busy span {
background: var(--hm-red-bg);
color: var(--hm-red);
border-color: #fca5a5;
cursor: not-allowed;
font-weight: 600;
}
.hm-cal-table td.hm-busy:hover span {
background: #fecaca;
border-color: var(--hm-red);
} .hm-cal-table td.hm-free a {
background: var(--hm-green-bg);
color: var(--hm-green-text);
border-color: #86efac;
font-weight: 700;
cursor: pointer;
}
.hm-cal-table td.hm-free:hover a {
background: #bbf7d0;
border-color: var(--hm-green);
transform: scale(1.08);
box-shadow: 0 2px 8px rgba(22,163,74,.2);
} .hm-cal-table td.hm-today a,
.hm-cal-table td.hm-today span {
box-shadow: inset 0 0 0 2px var(--hm-blue);
} .hm-cal-table td.hm-selected a {
background: var(--hm-blue) !important;
color: #fff !important;
border-color: var(--hm-blue) !important;
box-shadow: 0 2px 8px rgba(0,40,85,.3) !important;
transform: none !important;
} .hm-loading {
text-align: center;
padding: 22px;
color: #9ca3af;
font-size: 13px;
} .hm-slots-wrap {
margin-top: 10px;
background: #f8fafc;
border: 1px solid var(--hm-border);
border-radius: var(--hm-radius);
padding: 14px 12px;
display: flex;
flex-wrap: wrap;
gap: 8px;
align-items: center;
}
.hm-slots-wrap::before {
content: "SELECCIONAR HORA";
display: block;
width: 100%;
font-size: 11px;
font-weight: 700;
color: var(--hm-blue);
text-transform: uppercase;
letter-spacing: .5px;
margin-bottom: 6px;
} .hm-slot {
display: inline-flex;
align-items: center;
justify-content: center;
padding: 7px 14px;
min-width: 72px;
background: var(--hm-green-bg);
color: var(--hm-green-text);
border: 1px solid #86efac;
border-radius: 6px;
font-size: 13px;
font-weight: 700;
cursor: pointer;
transition: all .15s;
user-select: none;
}
.hm-slot:hover {
background: #bbf7d0;
border-color: var(--hm-green);
transform: translateY(-1px);
box-shadow: 0 2px 8px rgba(22,163,74,.2);
}
.hm-slot.hm-slot-selected {
background: var(--hm-green);
color: #fff;
border-color: #15803d;
box-shadow: 0 2px 10px rgba(22,163,74,.4);
} .hm-slot-busy {
display: inline-flex;
align-items: center;
justify-content: center;
padding: 7px 14px;
min-width: 72px;
background: var(--hm-red-bg);
color: var(--hm-red);
border: 1px solid #fca5a5;
border-radius: 6px;
font-size: 13px;
font-weight: 600;
cursor: not-allowed;
text-decoration: line-through;
text-decoration-color: #f87171;
user-select: none;
}
.hm-slots-msg {
font-size: 13px;
color: var(--hm-grey);
font-style: italic;
} .hm-section-title {
font-size: 16px !important;
font-weight: 700 !important;
color: var(--hm-blue) !important;
margin: 18px 0 10px !important;
padding-bottom: 8px !important;
border-bottom: 2px solid var(--hm-blue) !important;
border-top: none !important;
background: none !important;
}
.hm-req-hint {
font-size: 12px;
color: #9ca3af;
margin: 0 0 14px;
}
.hm-field {
margin-bottom: 14px;
}
.hm-label {
display: block;
font-size: 12px;
font-weight: 700;
color: var(--hm-blue);
text-transform: uppercase;
letter-spacing: .4px;
margin-bottom: 5px;
}
.hm-input {
display: block;
width: 100%;
padding: 9px 12px;
border: 1px solid var(--hm-border);
border-radius: var(--hm-radius);
font-size: 14px;
color: #2d3748;
background: #fff;
transition: border-color .18s;
font-family: inherit;
appearance: auto;
}
.hm-input:focus {
outline: none;
border-color: var(--hm-blue);
box-shadow: 0 0 0 3px rgba(0,40,85,.1);
}
.hm-error {
font-size: 12px;
color: var(--hm-red);
margin-top: 4px;
font-weight: 500;
} .hm-overview {
background: #f0f5fb;
border: 1px solid var(--hm-border);
border-radius: var(--hm-radius);
padding: 14px 16px;
font-size: 13px;
color: #2d3748;
margin: 0 0 16px;
line-height: 1.7;
}
.hm-overview table { width: 100%; border-collapse: collapse; }
.hm-overview td    { padding: 4px 0; vertical-align: top; }
.hm-overview td:first-child { color: #6b7a8d; width: 110px; }
.hm-overview td:last-child  { font-weight: 700; } .hm-hint-select {
padding: 32px 20px;
text-align: center;
color: var(--hm-grey);
font-size: 14px;
border: 2px dashed var(--hm-border);
border-radius: var(--hm-radius);
margin-top: 4px;
}
.hm-hint-select p { margin: 0; } .hm-actions { margin-top: 20px; }
.hm-btn-submit {
background: var(--hm-blue);
color: #fff;
border: none;
border-radius: 6px;
font-size: 14px;
font-weight: 700;
padding: 13px 30px;
cursor: pointer;
transition: all .18s;
letter-spacing: .3px;
font-family: inherit;
box-shadow: 0 4px 14px rgba(0,40,85,.25);
width: 100%;
}
.hm-btn-submit:hover:not(:disabled) {
background: var(--hm-blue-light);
transform: translateY(-2px);
box-shadow: 0 6px 20px rgba(0,40,85,.32);
}
.hm-btn-submit:disabled {
background: #94a3b8;
cursor: not-allowed;
box-shadow: none;
transform: none;
} .hm-success {
background: var(--hm-green-bg);
border: 1px solid #86efac;
border-radius: var(--hm-radius);
padding: 20px 22px;
color: var(--hm-green-text);
font-size: 15px;
line-height: 1.7;
} @media (max-width: 680px) {
.hm-layout {
flex-direction: column;
gap: 20px;
}
.hm-calendar-col {
flex: none;
width: 100%;
}
.hm-cal-table td span,
.hm-cal-table td a {
width: 30px;
height: 30px;
line-height: 30px;
font-size: 12px;
}
.hm-slot, .hm-slot-busy {
min-width: 60px;
padding: 7px 10px;
font-size: 12px;
}
.hm-btn-submit { width: 100%; }
}