
.dr-wrap { max-width: 1400px; }
.dr-wrap h1 { font-weight: 700; }
.dr-toolbar { display:flex; gap:12px; align-items:center; margin:18px 0; flex-wrap:wrap; background:#fff; border:1px solid #dcdcde; border-radius:14px; padding:14px; box-shadow:0 2px 10px rgba(0,0,0,.04); }
.dr-toolbar input[type="search"] { min-width:320px; padding:7px 12px; border-radius:8px; }
.dr-checkbox { font-weight:400; font-size:13px; display:flex; gap:6px; align-items:center; }
.dr-card, .dr-table-card { background:#fff; border:1px solid #dcdcde; border-radius:14px; box-shadow:0 2px 12px rgba(0,0,0,.045); overflow:hidden; }
.dr-table-summary { display:flex; align-items:center; gap:4px; padding:12px 16px; border-bottom:1px solid #eef0f2; color:#50575e; background:#fbfbfc; }
.dr-table-summary strong { color:#1d2327; font-size:16px; }
.dr-table-scroll { overflow:auto; max-height:640px; }
.dr-logs-scroll { max-height:680px; }
.dr-table { border:0 !important; table-layout:auto; min-width:1120px; }
.dr-table th { position:sticky; top:0; background:#f6f7f7; z-index:2; font-size:12px; text-transform:uppercase; letter-spacing:.03em; color:#50575e; border-bottom:1px solid #dcdcde !important; padding:12px 14px !important; white-space:nowrap; }
.dr-table td { padding:13px 14px !important; vertical-align:middle; border-bottom:1px solid #f0f0f1; }
.dr-table tbody tr:hover { background:#f8fbff; }
.dr-col-id { width:70px; }
.dr-col-name { min-width:170px; }
.dr-col-phone { min-width:125px; }
.dr-col-table { min-width:130px; }
.dr-col-date { min-width:120px; }
.dr-col-time { min-width:125px; }
.dr-col-guests { width:85px; text-align:center; }
.dr-col-status { min-width:120px; }
.dr-col-actions { min-width:210px; }
.dr-muted { color:#646970; }
.dr-customer-cell strong { font-weight:700; color:#1d2327; }
.dr-actions { white-space:nowrap; display:flex; gap:6px; flex-wrap:nowrap; align-items:center; }
.dr-actions .button { border-radius:7px; min-height:30px; line-height:28px; padding:0 10px; }
.dr-actions .dr-delete { color:#b32d2e; border-color:#f0b8b8; }
.dr-actions .dr-cancel { color:#7a5b00; border-color:#f0d98c; }
.dr-status { display:inline-flex; align-items:center; justify-content:center; min-width:82px; padding:5px 9px; border-radius:999px; font-size:12px; font-weight:700; line-height:1; }
.dr-status-pending { background:#fff3cd; color:#7a5b00; }
.dr-status-confirmed { background:#d1e7dd; color:#0f5132; }
.dr-status-cancelled { background:#f8d7da; color:#842029; }
.dr-row-status-cancelled { opacity:.72; }
.dr-row-status-cancelled td { background:#fffafa; }
.dr-empty-state { text-align:center; padding:34px 12px; color:#646970; font-size:14px; }
.dr-modal { position:fixed; inset:0; background:rgba(0,0,0,.45); z-index:100000; display:flex; align-items:center; justify-content:center; padding:20px; }
.dr-modal-box { background:#fff; width:min(840px, 96vw); max-height:90vh; overflow:auto; border-radius:16px; padding:22px; position:relative; box-shadow:0 20px 80px rgba(0,0,0,.24); }
.dr-modal-close { cursor:pointer; }
button.dr-modal-close { border:0; background:transparent; font-size:28px; position:absolute; top:12px; right:16px; }
.dr-form-grid { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:14px; }
.dr-form-grid label { font-weight:600; display:flex; flex-direction:column; gap:6px; }
.dr-form-grid input, .dr-form-grid select, .dr-form-grid textarea { width:100%; max-width:100%; border-radius:8px; }
.dr-full { grid-column:1 / -1; }
.dr-modal-actions { margin-top:18px; display:flex; gap:10px; }
.dr-calendar-header { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:18px 18px 0; flex-wrap:wrap; }
.dr-calendar-header h2 { margin:0; padding:0; }
.dr-calendar-nav { display:flex; gap:8px; flex-wrap:wrap; }
.dr-calendar-nav .button { border-radius:8px; }
.dr-calendar-weekdays { display:grid; grid-template-columns:repeat(7, minmax(130px, 1fr)); gap:10px; padding:16px 16px 0; color:#50575e; font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.03em; }
.dr-calendar-weekdays span { padding:0 4px; }
.dr-calendar-grid { display:grid; grid-template-columns:repeat(7, minmax(130px, 1fr)); gap:10px; padding:10px 16px 16px; overflow:auto; }
.dr-card h2 { margin:0; padding:18px 18px 0; }
.dr-day { min-height:120px; border:1px solid #dcdcde; border-radius:12px; padding:10px; background:#fafafa; }
.dr-day-empty { background:#fff; border-style:dashed; opacity:.55; }
.dr-day-today { border-color:#2271b1; box-shadow:0 0 0 1px #2271b1 inset; }
.dr-day-number { font-weight:700; margin-bottom:8px; }
.dr-day-count { display:inline-flex; align-items:center; justify-content:center; border-radius:999px; background:#2271b1; color:#fff; padding:6px 10px; margin-top:14px; font-size:12px; font-weight:700; box-shadow:0 2px 6px rgba(34,113,177,.22); }
.dr-event { display:block; width:100%; border:0; border-radius:8px; background:#2271b1; color:white; padding:6px 8px; margin:5px 0; text-align:left; cursor:pointer; font-size:12px; }
@media (max-width: 782px) {
    .dr-form-grid { grid-template-columns:1fr; }
    .dr-calendar-weekdays { display:none; }
    .dr-calendar-grid { grid-template-columns:1fr; }
    .dr-toolbar { align-items:stretch; flex-direction:column; }
    .dr-toolbar input[type="search"] { min-width:0; width:100%; }
    .dr-table-card { border-radius:12px; }
    .dr-table-scroll { max-height:none; overflow:visible; }
    .dr-reservations-table { min-width:0; border-collapse:separate; border-spacing:0 10px; background:#f6f7f7; padding:10px; }
    .dr-reservations-table thead { display:none; }
    .dr-reservations-table tbody tr { display:block; background:#fff; border:1px solid #dcdcde; border-radius:12px; padding:10px 12px; box-shadow:0 2px 8px rgba(0,0,0,.035); }
    .dr-reservations-table td { display:flex; justify-content:space-between; gap:14px; padding:9px 0 !important; border-bottom:1px solid #f0f0f1; text-align:right; }
    .dr-reservations-table td:last-child { border-bottom:0; }
    .dr-reservations-table td::before { content:attr(data-label); font-weight:700; color:#50575e; text-align:left; }
    .dr-reservations-table .dr-actions { justify-content:flex-end; flex-wrap:wrap; }
    .dr-reservations-table .dr-actions::before { align-self:center; margin-right:auto; }
}

/* v1.3.6 reservation table filters - search/date filters above the table */
.dr-reservations-toolbar { flex-direction:column; align-items:stretch; }
.dr-toolbar-top { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; }
.dr-table-filters { display:grid; grid-template-columns:minmax(260px, 1fr) minmax(180px, 240px) auto; gap:12px; align-items:end; border-top:1px solid #eef0f2; padding-top:14px; margin-top:2px; }
.dr-filter-field { display:flex; flex-direction:column; gap:6px; font-size:12px; font-weight:700; color:#50575e; text-transform:uppercase; letter-spacing:.03em; }
.dr-filter-field input[type="search"], .dr-filter-field input[type="date"] { width:100%; max-width:100%; min-height:36px; padding:7px 12px; border-radius:8px; font-size:14px; font-weight:400; color:#1d2327; text-transform:none; letter-spacing:0; }
.dr-search-field { min-width:0; }
#dr-clear-filters { border-radius:8px; min-height:36px; }
@media (max-width: 782px) {
    .dr-toolbar-top { align-items:stretch; flex-direction:column; }
    .dr-table-filters { grid-template-columns:1fr; }
}

#dr-reservations-container { margin-top: 12px; }
.dr-table-filters input::placeholder { color:#8c8f94; }


/* v1.3.8 clickable calendar day filter */
.dr-clickable-day { cursor:pointer; transition:background .15s ease, border-color .15s ease, transform .15s ease; }
.dr-clickable-day:hover { background:#f0f6fc; border-color:#72aee6; }
.dr-clickable-day:active { transform:scale(.99); }

.dr-header-actions{display:flex;align-items:center;gap:10px;}
.dr-shortcode-heading .dr-logout-form{margin:0;}
.dr-shortcode-heading .dr-logout-form .button{border-radius:8px;}

/* v1.4.2 login layout + mobile calendar improvements */
.dr-login-card{
    max-width:440px;
    margin:36px auto;
    padding:28px;
    border-radius:20px;
    box-shadow:0 18px 45px rgba(0,0,0,.10);
    border:1px solid #e5e7eb;
    background:linear-gradient(180deg,#fff,#fbfbfc);
}
.dr-login-card h2{
    margin:0 0 6px;
    padding:0;
    font-size:26px;
    line-height:1.2;
    font-weight:800;
    color:#1d2327;
    text-align:center;
}
.dr-login-card h2:after{
    content:'Staff access only';
    display:block;
    margin-top:8px;
    font-size:13px;
    font-weight:500;
    color:#646970;
}
.dr-login-form{
    display:flex;
    flex-direction:column;
    gap:16px;
    margin-top:22px;
}
.dr-login-form label{
    display:flex;
    flex-direction:column;
    gap:7px;
    font-size:13px;
    font-weight:700;
    color:#50575e;
}
.dr-login-form input[type="text"],
.dr-login-form input[type="password"]{
    width:100%;
    max-width:100%;
    min-height:44px;
    border-radius:12px;
    border:1px solid #c3c4c7;
    padding:8px 12px;
    font-size:15px;
    background:#fff;
}
.dr-login-form input:focus{
    border-color:#2271b1;
    box-shadow:0 0 0 2px rgba(34,113,177,.16);
    outline:0;
}
.dr-login-form .button-primary{
    width:100%;
    min-height:44px;
    border-radius:12px;
    font-weight:700;
    font-size:15px;
    margin-top:4px;
}
.dr-login-card .notice{
    margin:18px 0 0;
    border-radius:10px;
}

@media (max-width: 782px) {
    .dr-shortcode-wrap{padding:0 10px;margin:14px auto;}
    .dr-shortcode-heading{align-items:flex-start;flex-direction:column;gap:10px;}
    .dr-shortcode-heading h2{font-size:21px;}
    .dr-login-card{margin:18px auto;padding:22px 18px;border-radius:18px;}
    .dr-login-card h2{font-size:23px;}

    .dr-calendar-card{border-radius:14px;overflow:hidden;}
    .dr-calendar-header{padding:14px 12px 10px;align-items:stretch;}
    .dr-calendar-header h2{font-size:20px;width:100%;text-align:center;}
    .dr-calendar-nav{width:100%;display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px;}
    .dr-calendar-nav .button{width:100%;min-height:36px;padding:0 6px;text-align:center;font-size:12px;}

    .dr-calendar-weekdays{
        display:grid;
        grid-template-columns:repeat(7, minmax(0, 1fr));
        gap:3px;
        padding:8px 8px 0;
        font-size:10px;
        text-align:center;
    }
    .dr-calendar-weekdays span{padding:0;overflow:hidden;text-overflow:clip;white-space:nowrap;}
    .dr-calendar-grid{
        grid-template-columns:repeat(7, minmax(0, 1fr));
        gap:3px;
        padding:8px;
        overflow:visible;
    }
    .dr-day{
        min-height:58px;
        padding:5px 3px;
        border-radius:8px;
        text-align:center;
        display:flex;
        flex-direction:column;
        align-items:center;
        justify-content:flex-start;
    }
    .dr-day-empty{display:block;min-height:58px;}
    .dr-day-number{font-size:12px;margin-bottom:4px;width:100%;}
    .dr-day-count{
        margin-top:2px;
        padding:3px 5px;
        min-width:22px;
        max-width:100%;
        font-size:0;
        line-height:1;
        box-shadow:none;
    }
    .dr-day-count::before{
        content:attr(data-count);
        font-size:11px;
    }
}

@media (max-width: 380px) {
    .dr-calendar-grid{gap:2px;padding:6px;}
    .dr-calendar-weekdays{gap:2px;padding:6px 6px 0;font-size:9px;}
    .dr-day{min-height:52px;border-radius:7px;padding:4px 2px;}
    .dr-day-number{font-size:11px;}
}

/* v1.4.3 date/time formatting + mobile table view toggle */
.dr-mobile-view-toggle { display:none !important; border-radius:8px; }
@media (max-width: 782px) {
    .dr-mobile-view-toggle { display:inline-flex !important; justify-content:center; align-items:center; min-height:36px; }

    /* Line view: compact rows instead of boxed cards */
    .dr-table-card.dr-mobile-lines .dr-table-scroll { overflow:auto; }
    .dr-table-card.dr-mobile-lines .dr-reservations-table {
        min-width:900px;
        border-collapse:collapse;
        border-spacing:0;
        background:#fff;
        padding:0;
    }
    .dr-table-card.dr-mobile-lines .dr-reservations-table thead { display:table-header-group; }
    .dr-table-card.dr-mobile-lines .dr-reservations-table tbody tr {
        display:table-row;
        border:0;
        border-radius:0;
        padding:0;
        box-shadow:none;
        background:#fff;
    }
    .dr-table-card.dr-mobile-lines .dr-reservations-table td {
        display:table-cell;
        padding:10px 12px !important;
        border-bottom:1px solid #f0f0f1;
        text-align:left;
        white-space:nowrap;
    }
    .dr-table-card.dr-mobile-lines .dr-reservations-table td::before { content:none; }
    .dr-table-card.dr-mobile-lines .dr-reservations-table .dr-actions { justify-content:flex-start; flex-wrap:nowrap; }
    .dr-table-card.dr-mobile-lines .dr-reservations-table .dr-actions::before { content:none; }
}

/* CRM permissions */
.dr-permissions-box {
    background: #f8fafc;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    padding: 12px;
}
.dr-permissions-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 8px 14px;
    margin-top: 10px;
}
.dr-permissions-grid label {
    display: flex;
    align-items: center;
    gap: 7px;
    font-size: 13px;
    margin: 0;
}
.dr-permissions-grid-small {
    min-width: 320px;
    grid-template-columns: repeat(2, minmax(140px, 1fr));
}
.dr-crm-row-form input[type="text"],
.dr-crm-row-form input[type="password"],
.dr-crm-row-form select {
    width: 100%;
    max-width: 180px;
}
@media (max-width: 782px) {
    .dr-permissions-grid-small {
        min-width: 240px;
        grid-template-columns: 1fr;
    }
}
