/* ── Ohio Gadget Labs – Booking Widget Styles ─────────────────────────────── */

.oglabs-picker-wrap {
    margin-bottom: 24px;
}

.oglabs-picker-row {
    margin-bottom: 20px;
}

.oglabs-field-label {
    display: block;
    font-size: 11px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--muted, #888);
    margin-bottom: 8px;
    font-family: var(--font-mono, monospace);
}

.oglabs-date-input {
    width: 100%;
    background: var(--bg3, #1a1a2e);
    border: 1px solid var(--border2, #2a2a4a);
    border-radius: var(--radius, 8px);
    color: var(--text, #e0e0e0);
    font-family: var(--font-mono, monospace);
    font-size: 14px;
    padding: 12px 16px;
    outline: none;
    transition: border-color 0.2s;
    -webkit-appearance: none;
    appearance: none;
    box-sizing: border-box;
}

.oglabs-date-input:focus {
    border-color: var(--accent, #7c3aed);
}

.oglabs-date-input::-webkit-calendar-picker-indicator {
    filter: invert(1) brightness(0.7);
    cursor: pointer;
}

/* ── Time slot grid ──────────────────────────────────────────────────────────── */
#oglabs-slots-wrap {
    margin-bottom: 20px;
}

.oglabs-slots-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(110px, 1fr));
    gap: 10px;
    margin-top: 10px;
}

.oglabs-slot-btn {
    padding: 10px 8px;
    border-radius: var(--radius, 8px);
    font-family: var(--font-mono, monospace);
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.15s ease;
    border: 1px solid transparent;
    text-align: center;
    line-height: 1.2;
}

/* Available slot */
.oglabs-slot-open {
    background: var(--bg3, #1a1a2e);
    border-color: var(--border2, #2a2a4a);
    color: var(--text, #e0e0e0);
}

.oglabs-slot-open:hover {
    border-color: var(--accent, #7c3aed);
    background: rgba(124, 58, 237, 0.12);
    color: var(--accent, #7c3aed);
}

/* Selected slot */
.oglabs-slot-selected {
    background: var(--accent, #7c3aed) !important;
    border-color: var(--accent, #7c3aed) !important;
    color: #fff !important;
    box-shadow: 0 0 0 2px rgba(124, 58, 237, 0.3);
}

/* Booked / taken slot */
.oglabs-slot-taken {
    background: transparent;
    border-color: var(--border2, #2a2a4a);
    color: var(--muted, #555);
    cursor: not-allowed;
    opacity: 0.45;
    text-decoration: line-through;
    position: relative;
}

.oglabs-slots-msg {
    font-size: 13px;
    color: var(--muted, #888);
    font-family: var(--font-mono, monospace);
    margin: 8px 0 0;
}

/* ── Notices ──────────────────────────────────────────────────────────────────── */
.oglabs-notice {
    border-radius: var(--radius, 8px);
    padding: 14px 18px;
    margin-bottom: 20px;
    font-size: 14px;
    font-family: var(--font-mono, monospace);
}

.oglabs-notice-success {
    background: rgba(16, 185, 129, 0.08);
    border: 1px solid #10b981;
    color: #10b981;
}

.oglabs-notice-error {
    background: rgba(239, 68, 68, 0.08);
    border: 1px solid #ef4444;
    color: #ef4444;
}
