*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{font-family:"Manrope",-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;background:#f4f7fb;color:#10213d}button,input,select,textarea{font:inherit}button{cursor:pointer}.admin-layout{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:245px;height:100vh;display:flex;flex-direction:column;padding:26px 16px;color:#fff;background:linear-gradient(180deg,#0d3156 0%,#092541 60%,#071f36 100%);box-shadow:8px 0 30px rgba(4,25,45,.08)}.logo-area{display:flex;align-items:center;gap:13px;padding:5px 9px 33px}.logo-mark{width:45px;height:45px;display:flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.28);border-radius:50%;font-size:14px;font-weight:700}.logo-title{font-size:15px;font-weight:700;letter-spacing:2px}.logo-subtitle{margin-top:3px;font-size:9px;letter-spacing:5px;opacity:.7}.sidebar-nav{display:flex;flex-direction:column;gap:6px}.nav-link{width:100%;display:flex;align-items:center;gap:13px;padding:13px 14px;border:0;border-radius:9px;color:rgba(255,255,255,.78);background:transparent;text-align:left;transition:.2s ease}.nav-link:hover{color:#fff;background:rgba(255,255,255,.07)}.nav-link.active{color:#fff;background:linear-gradient(90deg,rgba(55,126,194,.5),rgba(55,126,194,.2))}.nav-symbol{width:20px;text-align:center;font-size:18px}.sidebar-bottom{margin-top:auto;display:flex;flex-direction:column;gap:4px;padding:20px 12px 2px;border-top:1px solid rgba(255,255,255,.12)}.sidebar-bottom strong{font-size:14px}.sidebar-bottom span{color:rgba(255,255,255,.56);font-size:11px}.main-content{min-height:100vh;margin-left:245px;padding:28px 30px 36px}.page-header{display:flex;align-items:center;justify-content:space-between;gap:25px;margin-bottom:22px}.page-header h1{margin:0;color:#10213d;font-size:28px;letter-spacing:-.5px}.page-header p{margin:6px 0 0;color:#7c899b;font-size:13px}.header-actions{display:flex;align-items:center;gap:22px}.primary-btn{padding:12px 19px;border:0;border-radius:8px;color:#fff;background:#176fe5;font-weight:600;box-shadow:0 6px 18px rgba(23,111,229,.18)}.primary-btn:hover{background:#0e63d6}.primary-btn.small{padding:10px 18px}.admin-profile{display:flex;align-items:center;gap:10px}.admin-avatar{width:42px;height:42px;display:flex;align-items:center;justify-content:center;border-radius:50%;color:#294968;background:#e8eef5;font-weight:700}.admin-profile strong,.admin-profile span{display:block}.admin-profile strong{font-size:12px}.admin-profile span{margin-top:3px;color:#8390a0;font-size:10px}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:15px;margin-bottom:18px}.stat-card{min-height:82px;display:flex;align-items:center;gap:13px;padding:16px 17px;border:1px solid #e4e9ef;border-radius:12px;background:#fff;box-shadow:0 4px 14px rgba(20,42,70,.035)}.stat-circle{width:43px;height:43px;flex-shrink:0;display:flex;align-items:center;justify-content:center;border-radius:50%;font-weight:700}.stat-circle.blue{color:#1770e6;background:#e5f0ff}.stat-circle.green{color:#159750;background:#dff7e9}.stat-circle.red{color:#d63046;background:#ffe4e8}.stat-circle.gray{color:#657487;background:#edf0f4}.stat-card span,.stat-card strong{display:block}.stat-card span{color:#758397;font-size:11px}.stat-card strong{margin-top:3px;font-size:20px}.workspace{display:grid;grid-template-columns:minmax(600px,1.15fr) minmax(390px,.85fr);gap:18px;align-items:start}.workspace-left{display:flex;flex-direction:column;gap:18px}.panel{border:1px solid #e4e9ef;border-radius:12px;background:#fff;box-shadow:0 5px 18px rgba(22,42,70,.035)}.calendar-panel{padding:17px}.panel-top{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:16px}.month-selector{display:flex;align-items:center;gap:10px}.month-selector strong{min-width:110px;text-align:center;font-size:13px}.month-arrow{width:32px;height:32px;border:1px solid #dae1e9;border-radius:7px;color:#27415e;background:#fff;font-size:20px;line-height:1}.legend{display:flex;align-items:center;flex-wrap:wrap;gap:12px;color:#68778b;font-size:10px}.legend span{display:flex;align-items:center;gap:5px}.legend-dot{width:8px;height:8px;display:inline-block;border-radius:3px}.legend-dot.available{background:#28ad61}.legend-dot.booked{background:#db3046}.legend-dot.blocked{background:#8794a5}.legend-dot.today{background:#1672e8}.weekdays,.calendar{display:grid;grid-template-columns:repeat(7,1fr)}.weekdays span{padding:8px 4px;color:#627187;text-align:center;font-size:10px;font-weight:600}.calendar{overflow:hidden;border-top:1px solid #e6eaf0;border-left:1px solid #e6eaf0;border-radius:7px}.calendar-day{min-height:53px;display:flex;align-items:center;justify-content:center;border:0;border-right:1px solid #e6eaf0;border-bottom:1px solid #e6eaf0;color:#233b59;background:#fff;font-size:12px}.calendar-day:hover{background:#f6f9fd}.calendar-day.available{color:#17783f;background:#dff6e7;font-weight:600}.calendar-day.booked{color:#c9273d;background:#ffe1e5;font-weight:700}.calendar-day.blocked{color:#5d6978;background:#e5e8ec}.calendar-day.today{color:#fff;background:#1672e8;font-weight:700}.calendar-day.other-month{color:#b4bdc8;background:#fafbfd}.bookings-panel{overflow:hidden}.bookings-toolbar{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:17px 18px;border-bottom:1px solid #e8ecf1}.bookings-toolbar h2{margin:0;font-size:18px}.bookings-toolbar p{margin:4px 0 0;color:#8491a2;font-size:10px}.booking-filters{display:flex;gap:8px}.booking-filters input,.booking-filters select{height:36px;padding:0 11px;border:1px solid #dce2ea;border-radius:7px;outline:none;color:#41516a;background:#fff;font-size:11px}.booking-filters input{width:170px}.booking-filters input:focus,.booking-filters select:focus{border-color:#9bbfe9;box-shadow:0 0 0 3px rgba(23,112,230,.08)}.table-scroll{overflow-x:auto}table{width:100%;border-collapse:collapse}th{padding:11px 13px;color:#65748a;background:#fafbfd;text-align:left;font-size:10px;font-weight:600}td{padding:11px 13px;border-top:1px solid #edf0f3;white-space:nowrap;font-size:11px}tbody tr{cursor:pointer;transition:.15s ease}tbody tr:hover{background:#f6faff}tbody tr.selected{background:#eaf4ff}.source-badge,.status-badge,.payment-badge{display:inline-flex;align-items:center;padding:5px 8px;border-radius:6px;font-size:9px;font-weight:600}.source-badge.website{color:#236bc8;background:#e5efff}.source-badge.viator{color:#7052cf;background:#eee8ff}.source-badge.gyg{color:#d26120;background:#fff0e5}.source-badge.manual{color:#617086;background:#edf1f4}.status-badge.confirmed,.payment-badge.paid{color:#168348;background:#dff7e8}.payment-badge.cash{color:#576779;background:#edf1f4}.booking-details{padding:21px}.details-header{display:flex;align-items:center;justify-content:space-between;gap:10px}.confirmed-pill{display:inline-flex;padding:7px 10px;border-radius:7px;color:#198849;background:#ddf6e7;font-size:10px;font-weight:700}.booking-details>h2{margin:18px 0 5px;font-size:20px;letter-spacing:-.3px}.reference{margin:0;color:#69788c;font-size:10px}.details-actions{display:flex;flex-wrap:wrap;gap:7px;margin:18px 0}.secondary-btn{padding:9px 12px;border:1px solid #d9e0e8;border-radius:7px;color:#30435c;background:#fff;font-size:10px}.secondary-btn:hover{background:#f7f9fc}.details-grid{display:grid;grid-template-columns:1fr 1fr;overflow:hidden;border:1px solid #e4e9ef;border-radius:9px}.detail-cell{min-height:75px;padding:14px;border-bottom:1px solid #e9edf2}.detail-cell:nth-child(odd){border-right:1px solid #e9edf2}.detail-cell span,.detail-cell strong,.detail-cell small{display:block}.detail-cell span{margin-bottom:6px;color:#748297;font-size:9px}.detail-cell strong{overflow-wrap:anywhere;font-size:11px}.detail-cell small{margin-top:4px;color:#8190a1;font-size:9px}.success{color:#19884a}.detail-tabs{display:flex;margin-top:18px;border-bottom:1px solid #e5e9ef}.detail-tabs button{padding:11px 13px;border:0;border-bottom:2px solid transparent;color:#637287;background:transparent;font-size:10px}.detail-tabs button.active{border-bottom-color:#1672e8;color:#1672e8;font-weight:700}.notes-box{min-height:105px;margin-top:13px;padding:15px;border:1px solid #e5e9ef;border-radius:8px;background:#fbfcfd}.notes-box strong{font-size:11px}.notes-box p{margin:7px 0 0;color:#42536a;font-size:10px;line-height:1.5}.backend-pill{display:inline-flex;align-items:center;gap:6px;margin-top:5px;color:#738196;font-size:10px}.backend-dot{width:7px;height:7px;border-radius:50%;background:#20a85d}.backend-dot.offline{background:#d63d4e}@media(max-width:1200px){.workspace{grid-template-columns:1fr}.booking-details{width:100%}}@media(max-width:900px){.sidebar{width:76px;padding:24px 10px}.logo-area{justify-content:center;padding-left:0;padding-right:0}.logo-area>div:last-child,.nav-link span:last-child,.sidebar-bottom{display:none}.nav-link{justify-content:center;padding-left:0;padding-right:0}.main-content{margin-left:76px;padding:20px}.stats-grid{grid-template-columns:repeat(2,1fr)}.admin-profile{display:none}}@media(max-width:650px){.main-content{padding:15px}.page-header{align-items:flex-start;flex-direction:column}.stats-grid{grid-template-columns:1fr 1fr;gap:10px}.stat-card{padding:12px}.panel-top,.bookings-toolbar{align-items:stretch;flex-direction:column}.booking-filters{flex-direction:column}.booking-filters input{width:100%}.details-grid{grid-template-columns:1fr}.detail-cell:nth-child(odd){border-right:0}.calendar-day{min-height:43px}.legend{gap:8px}}
.status-badge.pending,.confirmed-pill.pending{color:#9a6a00;background:#fff2c8}.status-badge.cancelled,.confirmed-pill.cancelled{color:#b52b3b;background:#ffe3e7}.status-badge.neutral,.confirmed-pill.neutral{color:#5f6e82;background:#edf1f4}.payment-badge.refunded{color:#b52b3b;background:#ffe3e7}.payment-badge.partial{color:#9a6a00;background:#fff2c8}.payment-badge.unpaid{color:#6c7786;background:#edf1f4}.data-message{padding:11px 18px;border-bottom:1px solid #e8ecf1;font-size:11px}.data-message.error{color:#b52b3b;background:#fff3f4}.empty-row{padding:28px;text-align:center;color:#8190a1}.empty-details{min-height:220px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center}.empty-details h2{margin:0 0 8px}.empty-details p{margin:0;color:#8190a1;font-size:11px}
.modal-backdrop{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(4,22,39,.55);backdrop-filter:blur(2px)}.block-modal{width:min(440px,100%);padding:22px;border:1px solid #dfe6ee;border-radius:13px;background:#fff;box-shadow:0 24px 70px rgba(4,25,45,.28)}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px}.modal-header h2{margin:0;color:#10213d;font-size:20px}.modal-header p{margin:5px 0 0;color:#7c899b;font-size:11px;line-height:1.5}.modal-close{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:1px solid #dfe5ec;border-radius:7px;color:#68778a;background:#fff;font-size:21px;line-height:1}.modal-close:hover{background:#f5f8fb}.form-label{display:block;margin-top:13px;color:#526278;font-size:11px;font-weight:600}.form-label input,.form-label select,.form-label textarea{width:100%;margin-top:7px;padding:10px 11px;border:1px solid #dbe2ea;border-radius:8px;outline:none;color:#243a55;background:#fff;font:inherit;font-weight:400}.form-label input:focus,.form-label select:focus,.form-label textarea:focus{border-color:#8bb6e9;box-shadow:0 0 0 3px rgba(23,112,230,.08)}.form-label textarea{resize:vertical;min-height:80px}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}.modal-actions button:disabled{opacity:.6;cursor:not-allowed}.modal-error{margin-top:13px;padding:10px 11px;border-radius:7px;color:#b52b3b;background:#fff0f2;font-size:10px;line-height:1.4}.calendar-day.blocked{cursor:pointer}.calendar-day.blocked:hover{background:#d8dde3}

/* --------------------------------------------------
   Booking Create / Edit
-------------------------------------------------- */
.header-secondary{padding:11px 16px;background:#fff;white-space:nowrap}
.booking-modal{width:min(820px,100%);max-height:92vh;overflow:auto;padding:22px;border:1px solid #dfe6ee;border-radius:13px;background:#fff;box-shadow:0 24px 70px rgba(4,25,45,.28)}
.booking-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}
.booking-field{min-width:0}
.booking-field.wide,.guest-summary.wide{grid-column:1/-1}
.form-label select{height:42px}
.form-label input,.form-label select,.form-label textarea{font-family:"Manrope",-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif}
.guest-summary{margin-top:12px;padding:10px 12px;border:1px solid #e1e7ee;border-radius:8px;color:#66768a;background:#f8fafc;font-size:11px}
.guest-summary strong{color:#10213d}
.calendar-day.available,.calendar-day.today{cursor:pointer}
.calendar-day.available:hover{background:#d2f0dd}
.booking-modal .modal-actions{position:sticky;bottom:-22px;margin:20px -22px -22px;padding:15px 22px;border-top:1px solid #e7ebf0;background:#fff;border-radius:0 0 13px 13px}

@media(max-width:720px){
  .booking-modal{padding:18px}
  .booking-form-grid{grid-template-columns:1fr}
  .booking-field.wide,.guest-summary.wide{grid-column:auto}
  .booking-modal .modal-actions{bottom:-18px;margin:18px -18px -18px;padding:14px 18px}
  .header-actions{flex-wrap:wrap;gap:8px}
}

/* =====================================================
   ARCHIPELAGO UI REFINEMENT 2026-10-27
   ===================================================== */

/* Real Archipelago logo */
.logo-area{
    justify-content:center;
    padding:0 8px 28px;
}

.sidebar-logo{
    display:block;
    width:158px;
    height:auto;
    object-fit:contain;
}

/* Numbered uppercase navigation */
.nav-link{
    gap:8px;
    font-size:13px;
    font-weight:700;
    letter-spacing:.35px;
}

.nav-number{
    width:22px;
    flex:0 0 22px;
    color:rgba(255,255,255,.58);
    font-size:11px;
    font-weight:800;
    text-align:right;
}

.nav-symbol{
    width:19px;
    flex:0 0 19px;
    font-size:16px;
}

.nav-label{
    white-space:nowrap;
}

.nav-link:hover:not(.active) .nav-number{
    color:#fff;
    background:rgba(76,151,215,.30);
    box-shadow:0 6px 14px rgba(5,42,76,.16);
}

.nav-link.active .nav-number{
    color:#fff;
}

/* Backend status moved to bottom of sidebar */
.backend-sidebar-status{
    flex-direction:row;
    align-items:center;
    gap:8px;
    padding:18px 10px 4px;
}

.backend-sidebar-status strong{
    color:rgba(255,255,255,.88);
    font-size:10px;
    font-weight:800;
    letter-spacing:.55px;
    line-height:1.35;
}

.backend-sidebar-status .backend-dot{
    width:8px;
    height:8px;
    flex:0 0 8px;
    box-shadow:0 0 0 3px rgba(32,168,93,.12);
}

.backend-sidebar-status .backend-dot.offline{
    box-shadow:0 0 0 3px rgba(214,61,78,.12);
}

/* Same size action buttons */
.header-action-btn{
    width:152px;
    height:44px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:0 16px;
    border-radius:8px;
    font-size:12px;
    font-weight:800;
    letter-spacing:.45px;
    white-space:nowrap;
}

.new-booking-btn{
    border:1px solid #1f9f59;
    color:#fff;
    background:#1f9f59;
    box-shadow:0 6px 18px rgba(31,159,89,.18);
}

.new-booking-btn:hover{
    color:#fff;
    background:#18884a;
    border-color:#18884a;
}

.block-date-btn{
    border:1px solid #d84b5a;
    color:#fff;
    background:#d84b5a;
    box-shadow:0 6px 18px rgba(216,75,90,.18);
}

.block-date-btn:hover{
    color:#fff;
    background:#c73d4c;
    border-color:#c73d4c;
}

@media(max-width:900px){
    .sidebar-logo{
        width:52px;
    }

    .nav-number,
    .nav-label{
        display:none;
    }

    .backend-sidebar-status{
        display:none;
    }
}

/* =====================================================
   LARGER UI TYPOGRAPHY - preserve current live scale
   ===================================================== */
body{font-size:15px}
.page-header h1{font-size:30px}
.page-header p{font-size:14px}
.stat-card span{font-size:12px}
.stat-card strong{font-size:22px}
.stat-circle{font-size:15px}
.month-selector strong{font-size:14px}
.legend{font-size:11px}
.weekdays span{font-size:11px}
.calendar-day{font-size:14px}
.bookings-toolbar h2{font-size:20px}
.bookings-toolbar p{font-size:12px}
.booking-filters input,.booking-filters select{font-size:13px}
th{font-size:11px}
td{font-size:13px}
.source-badge,.status-badge,.payment-badge{font-size:10px}
.booking-details>h2{font-size:22px}
.reference{font-size:11px}
.confirmed-pill{font-size:11px}
.detail-cell span{font-size:11px}
.detail-cell strong{font-size:13px}
.detail-cell small{font-size:10px}
.detail-tabs button{font-size:11px}
.notes-box strong{font-size:13px}
.notes-box p{font-size:12px}
.booking-modal{font-size:14px}
.booking-modal .modal-header h2{font-size:22px}
.booking-modal .modal-header p{font-size:13px}
.booking-modal .form-label{font-size:13px}
.booking-modal input,.booking-modal select,.booking-modal textarea{font-size:14px}
.booking-modal .guest-summary{font-size:13px}
.booking-modal button{font-size:13px}


/* =====================================================
   SECURE LOGIN
   ===================================================== */
.auth-loading{
    min-height:100vh;
    display:flex;
    align-items:center;
    justify-content:center;
    background:#071f36;
    color:#fff;
    font-size:14px;
    font-weight:700;
    letter-spacing:.4px;
}

.login-page{
    min-height:100vh;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:32px 18px;
    background:
        radial-gradient(circle at 20% 15%,rgba(36,108,170,.35),transparent 35%),
        linear-gradient(135deg,#071f36 0%,#0b3157 52%,#061a2d 100%);
}

.login-card{
    width:min(430px,100%);
    overflow:hidden;
    border:1px solid rgba(255,255,255,.12);
    border-radius:18px;
    background:#fff;
    box-shadow:0 28px 80px rgba(0,0,0,.32);
}

.login-logo-wrap{
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:142px;
    padding:28px 34px;
    background:linear-gradient(180deg,#0d3156,#092541);
}

.login-logo{
    display:block;
    width:min(245px,80%);
    height:auto;
}

.login-card-body{
    padding:32px 34px 28px;
}

.login-kicker{
    margin-bottom:8px;
    color:#176fe5;
    font-size:11px;
    font-weight:800;
    letter-spacing:1.4px;
}

.login-card h1{
    margin:0;
    color:#10213d;
    font-size:26px;
    line-height:1.2;
    letter-spacing:-.5px;
}

.login-subtitle{
    margin:9px 0 25px;
    color:#748297;
    font-size:13px;
    line-height:1.55;
}

.login-form{
    display:flex;
    flex-direction:column;
    gap:16px;
}

.login-form label{
    color:#42536a;
    font-size:12px;
    font-weight:700;
}

.login-form input{
    width:100%;
    height:46px;
    margin-top:7px;
    padding:0 13px;
    border:1px solid #d9e1ea;
    border-radius:9px;
    outline:none;
    color:#172d49;
    background:#fff;
    font-size:14px;
}

.login-form input:focus{
    border-color:#7faee4;
    box-shadow:0 0 0 4px rgba(23,111,229,.09);
}

.login-submit{
    height:46px;
    margin-top:3px;
    border:0;
    border-radius:9px;
    color:#fff;
    background:#176fe5;
    font-size:12px;
    font-weight:800;
    letter-spacing:.7px;
    box-shadow:0 8px 20px rgba(23,111,229,.2);
}

.login-submit:hover{background:#0e63d6}
.login-submit:disabled{opacity:.65;cursor:not-allowed}

.login-error{
    padding:11px 12px;
    border-radius:8px;
    color:#b52b3b;
    background:#fff0f2;
    font-size:12px;
    line-height:1.45;
}

.login-footer{
    margin-top:22px;
    padding-top:16px;
    border-top:1px solid #edf0f4;
    color:#96a2b1;
    text-align:center;
    font-size:9px;
    font-weight:800;
    letter-spacing:1.2px;
}

.logout-btn{
    height:36px;
    padding:0 12px;
    border:1px solid #dfe5ec;
    border-radius:8px;
    color:#5d6d82;
    background:#fff;
    font-size:10px;
    font-weight:800;
    letter-spacing:.5px;
}

.logout-btn:hover{
    color:#b52b3b;
    border-color:#efc5cb;
    background:#fff7f8;
}

@media(max-width:900px){
    .logout-btn{display:none}
    .nav-number{display:block}
    .nav-label{display:none}
}


/* =====================================================
   PREMIUM LOGIN + TOTP 2FA OVERRIDES
   ===================================================== */
.login-page{
    position:relative;
    overflow:hidden;
    min-height:100vh;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:34px;
    background:
        radial-gradient(circle at 12% 18%,rgba(71,151,216,.22),transparent 34%),
        radial-gradient(circle at 88% 84%,rgba(25,103,165,.18),transparent 30%),
        linear-gradient(135deg,#061a2d 0%,#0b3157 48%,#071f36 100%);
}

.login-page:before{
    content:"";
    position:absolute;
    inset:0;
    pointer-events:none;
    opacity:.22;
    background-image:
        linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),
        linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);
    background-size:42px 42px;
}

.login-shell{
    position:relative;
    z-index:1;
    width:min(980px,100%);
    min-height:600px;
    display:grid;
    grid-template-columns:.92fr 1.08fr;
    overflow:hidden;
    border:1px solid rgba(255,255,255,.14);
    border-radius:26px;
    background:#fff;
    box-shadow:0 38px 110px rgba(0,0,0,.36);
}

.login-brand-panel{
    position:relative;
    overflow:hidden;
    display:flex;
    flex-direction:column;
    justify-content:space-between;
    min-height:600px;
    padding:48px 44px 34px;
    color:#fff;
    background:
        linear-gradient(155deg,#123d65 0%,#0a2b4a 48%,#061c31 100%);
}

.login-brand-panel:after{
    content:"";
    position:absolute;
    right:-80px;
    bottom:-125px;
    width:330px;
    height:330px;
    border:1px solid rgba(110,186,237,.19);
    border-radius:50%;
    box-shadow:
        0 0 0 38px rgba(110,186,237,.035),
        0 0 0 82px rgba(110,186,237,.025);
}

.login-brand-glow{
    position:absolute;
    border-radius:50%;
    filter:blur(2px);
    pointer-events:none;
}

.login-brand-glow-one{
    top:-120px;
    left:-90px;
    width:300px;
    height:300px;
    background:radial-gradient(circle,rgba(87,171,227,.27),transparent 68%);
}

.login-brand-glow-two{
    top:38%;
    right:-130px;
    width:300px;
    height:300px;
    background:radial-gradient(circle,rgba(46,126,187,.22),transparent 70%);
}

.login-brand-content,
.login-brand-footer{
    position:relative;
    z-index:2;
}

.login-brand-logo{
    display:block;
    width:min(315px,92%);
    height:auto;
    margin:0 0 42px;
}

.login-brand-rule{
    width:46px;
    height:3px;
    margin-bottom:23px;
    border-radius:999px;
    background:#62b0e1;
}

.login-brand-eyebrow{
    margin-bottom:12px;
    color:#78bfe9;
    font-size:10px;
    font-weight:800;
    letter-spacing:2.2px;
}

.login-brand-panel h2{
    max-width:350px;
    margin:0;
    font-size:31px;
    line-height:1.15;
    letter-spacing:-.9px;
}

.login-brand-panel p{
    max-width:350px;
    margin:18px 0 26px;
    color:rgba(255,255,255,.68);
    font-size:13px;
    line-height:1.75;
}

.login-security-pills{
    display:flex;
    flex-wrap:wrap;
    gap:7px;
}

.login-security-pills span{
    padding:7px 9px;
    border:1px solid rgba(255,255,255,.13);
    border-radius:999px;
    color:rgba(255,255,255,.74);
    background:rgba(255,255,255,.035);
    font-size:8px;
    font-weight:800;
    letter-spacing:1px;
}

.login-brand-footer{
    color:rgba(255,255,255,.4);
    font-size:9px;
    font-weight:700;
    letter-spacing:1.6px;
}

.login-form-panel{
    display:flex;
    align-items:center;
    justify-content:center;
    padding:46px 54px;
    background:
        radial-gradient(circle at 100% 0%,rgba(92,166,218,.07),transparent 30%),
        #fff;
}

.login-form-wrap{
    width:100%;
    max-width:430px;
}

.login-form-wrap .login-kicker{
    margin-bottom:10px;
    color:#2476c8;
    font-size:10px;
    font-weight:800;
    letter-spacing:1.8px;
}

.login-form-wrap h1{
    margin:0;
    color:#10213d;
    font-size:31px;
    line-height:1.15;
    letter-spacing:-.8px;
}

.login-form-wrap .login-subtitle{
    margin:12px 0 30px;
    color:#738196;
    font-size:13px;
    line-height:1.65;
}

.login-form{
    gap:18px;
}

.login-form label{
    color:#334860;
    font-size:12px;
    font-weight:700;
}

.login-form input{
    height:50px;
    margin-top:8px;
    padding:0 15px;
    border:1px solid #d7e0e9;
    border-radius:11px;
    color:#122942;
    background:#fbfcfe;
    font-size:14px;
    transition:.18s ease;
}

.login-form input:hover{
    border-color:#bdcddd;
}

.login-form input:focus{
    border-color:#65a2dd;
    background:#fff;
    box-shadow:0 0 0 4px rgba(36,118,200,.09);
}

.login-submit{
    width:100%;
    height:50px;
    margin-top:4px;
    border-radius:11px;
    background:linear-gradient(135deg,#176fe5,#1462ca);
    font-size:11px;
    letter-spacing:1px;
    box-shadow:0 11px 28px rgba(23,111,229,.24);
    transition:.18s ease;
}

.login-submit:hover{
    transform:translateY(-1px);
    background:linear-gradient(135deg,#237cf0,#0f5fc9);
    box-shadow:0 15px 32px rgba(23,111,229,.27);
}

.login-error{
    border:1px solid #f4d3d8;
    color:#a92f3e;
    background:#fff5f6;
}

.login-footer{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:7px;
    margin-top:26px;
    padding-top:18px;
    font-size:8px;
    letter-spacing:1.5px;
}

.login-footer-dot{
    width:6px;
    height:6px;
    border-radius:50%;
    background:#20a85d;
    box-shadow:0 0 0 4px rgba(32,168,93,.08);
}

.login-text-btn{
    align-self:center;
    padding:4px 8px;
    border:0;
    color:#6d7d90;
    background:transparent;
    font-size:9px;
    font-weight:800;
    letter-spacing:.9px;
}

.login-text-btn:hover{
    color:#176fe5;
}

.twofa-setup-grid{
    display:grid;
    grid-template-columns:172px 1fr;
    gap:20px;
    align-items:start;
    margin-bottom:3px;
}

.twofa-qr-card{
    display:flex;
    align-items:center;
    justify-content:center;
    padding:10px;
    border:1px solid #dfe7ef;
    border-radius:14px;
    background:#fff;
    box-shadow:0 8px 24px rgba(11,43,77,.06);
}

.twofa-qr-card img{
    display:block;
    width:100%;
    height:auto;
    border-radius:6px;
}

.twofa-step{
    margin:3px 0 7px;
    color:#176fe5;
    font-size:9px;
    font-weight:800;
    letter-spacing:1px;
}

.twofa-step.second{
    margin-top:17px;
}

.twofa-setup-copy p{
    margin:0;
    color:#718095;
    font-size:11px;
    line-height:1.55;
}

.manual-key-label{
    margin:10px 0 6px;
    color:#99a4b1;
    font-size:8px;
    font-weight:800;
    letter-spacing:1px;
}

.manual-key{
    width:100%;
    padding:8px 9px;
    overflow:hidden;
    border:1px dashed #cbd6e2;
    border-radius:8px;
    color:#24415f;
    background:#f8fafc;
    text-overflow:ellipsis;
    white-space:nowrap;
    font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
    font-size:9px;
    letter-spacing:.6px;
}

.manual-key:hover{
    border-color:#91b6db;
    background:#f3f8fd;
}

.copied-note{
    display:inline-block;
    margin-top:5px;
    color:#18874b;
    font-size:8px;
    font-weight:800;
    letter-spacing:1px;
}

.otp-label{
    margin-top:2px;
}

.login-form .otp-input{
    height:58px;
    text-align:center;
    font-size:26px;
    font-weight:800;
    letter-spacing:9px;
    font-variant-numeric:tabular-nums;
}

.login-form .recovery-input{
    height:54px;
    text-align:center;
    font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
    font-size:15px;
    font-weight:700;
    letter-spacing:1px;
    text-transform:uppercase;
}

.twofa-verify-icon{
    width:78px;
    height:78px;
    display:flex;
    align-items:center;
    justify-content:center;
    margin:0 auto 2px;
    border:1px solid #cfe0f0;
    border-radius:24px;
    color:#176fe5;
    background:linear-gradient(145deg,#f3f8fd,#fff);
    font-size:18px;
    font-weight:800;
    letter-spacing:1px;
    box-shadow:0 10px 28px rgba(23,111,229,.09);
}

.twofa-account{
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:3px;
    margin-bottom:2px;
}

.twofa-account strong{
    color:#213b58;
    font-size:13px;
}

.twofa-account span{
    color:#8b98a8;
    font-size:10px;
}

.twofa-links{
    display:flex;
    justify-content:space-between;
    gap:8px;
}

.recovery-screen{
    display:flex;
    flex-direction:column;
    gap:16px;
}

.recovery-warning{
    padding:12px 13px;
    border:1px solid #f0dfb1;
    border-radius:10px;
    color:#795b0d;
    background:#fff9e9;
    font-size:11px;
    line-height:1.5;
}

.recovery-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;
}

.recovery-grid code{
    padding:10px 8px;
    border:1px solid #dfe6ee;
    border-radius:8px;
    color:#173653;
    background:#f8fafc;
    text-align:center;
    font-size:11px;
    font-weight:700;
}

.recovery-copy{
    height:42px;
    border:1px solid #cfdbe7;
    border-radius:9px;
    color:#34516e;
    background:#fff;
    font-size:9px;
    font-weight:800;
    letter-spacing:.8px;
}

.recovery-copy:hover{
    border-color:#94b8db;
    background:#f6faff;
}

@media(max-width:850px){
    .login-page{padding:18px}
    .login-shell{grid-template-columns:1fr;width:min(560px,100%);border-radius:20px}
    .login-brand-panel{min-height:auto;padding:28px 30px}
    .login-brand-logo{width:210px;margin-bottom:20px}
    .login-brand-rule,.login-brand-panel h2,.login-brand-panel p,.login-security-pills{display:none}
    .login-brand-footer{margin-top:18px}
    .login-form-panel{padding:36px 30px 32px}
}

@media(max-width:520px){
    .login-page{padding:0;background:#fff}
    .login-shell{min-height:100vh;border:0;border-radius:0;box-shadow:none}
    .login-brand-panel{padding:24px 24px 22px}
    .login-form-panel{padding:32px 24px}
    .login-form-wrap h1{font-size:27px}
    .twofa-setup-grid{grid-template-columns:1fr}
    .twofa-qr-card{width:190px;margin:0 auto}
    .recovery-grid{grid-template-columns:1fr}
    .twofa-links{flex-direction:column}
}


/* =====================================================
   COMPACT LOGIN + TRUSTED DEVICE 2026-10-28
   ===================================================== */
.login-page{
    padding:24px 18px;
    background:
        radial-gradient(circle at 18% 18%,rgba(69,151,216,.16),transparent 34%),
        radial-gradient(circle at 84% 82%,rgba(24,95,151,.12),transparent 30%),
        linear-gradient(135deg,#071f36 0%,#0b3157 52%,#071f36 100%);
}

.login-page:before{
    opacity:.12;
}

.login-shell{
    width:min(840px,100%);
    min-height:500px;
    grid-template-columns:40% 60%;
    border:0;
    border-radius:22px;
    box-shadow:0 18px 52px rgba(0,0,0,.20);
}

.login-brand-panel{
    min-height:500px;
    padding:34px 26px;
    justify-content:center;
    background:
        radial-gradient(circle at 25% 16%,rgba(90,173,229,.12),transparent 34%),
        linear-gradient(155deg,#123d65 0%,#0a2b4a 52%,#061c31 100%);
}

.login-brand-panel:after{
    right:-115px;
    bottom:-150px;
    width:300px;
    height:300px;
    opacity:.55;
}

.login-brand-glow-one{
    width:230px;
    height:230px;
    top:-100px;
    left:-80px;
    opacity:.65;
}

.login-brand-glow-two{
    width:220px;
    height:220px;
    right:-120px;
    opacity:.45;
}

.login-brand-minimal{
    width:100%;
    min-height:100%;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
}

.login-brand-logo{
    width:min(250px,88%);
    margin:0;
}

.login-security-pills{
    justify-content:center;
    gap:7px;
    margin-top:30px;
}

.login-security-pills span{
    padding:7px 9px;
    border-color:rgba(255,255,255,.16);
    background:rgba(255,255,255,.045);
    font-size:7.5px;
    letter-spacing:.9px;
}

.login-form-panel{
    padding:38px 44px;
    background:
        radial-gradient(circle at 100% 0%,rgba(92,166,218,.045),transparent 28%),
        #fff;
}

.login-form-wrap{
    max-width:390px;
}

.login-form-wrap .login-kicker{
    margin-bottom:8px;
    font-size:9px;
    letter-spacing:1.6px;
}

.login-form-wrap h1{
    font-size:27px;
    letter-spacing:-.65px;
}

.login-form-wrap .login-subtitle{
    margin:10px 0 24px;
    font-size:13px;
    line-height:1.55;
}

.login-form{
    gap:15px;
}

.login-form input{
    height:46px;
    margin-top:7px;
    border-radius:10px;
}

.login-submit{
    height:46px;
    margin-top:2px;
    border-radius:10px;
    box-shadow:0 8px 20px rgba(23,111,229,.18);
}

.login-submit:hover{
    box-shadow:0 10px 24px rgba(23,111,229,.22);
}

.login-footer{
    margin-top:20px;
    padding-top:15px;
}

.twofa-verify-icon{
    width:64px;
    height:64px;
    border-radius:20px;
    font-size:16px;
}

.twofa-setup-grid{
    grid-template-columns:150px 1fr;
    gap:16px;
}

.login-form .otp-input{
    height:52px;
    font-size:23px;
}

.trusted-device-option{
    display:grid !important;
    grid-template-columns:18px 1fr;
    align-items:start;
    gap:10px;
    margin:1px 0 0;
    padding:11px 12px;
    border:1px solid #e1e7ee;
    border-radius:10px;
    background:#f8fafc;
    cursor:pointer;
}

.trusted-device-option:hover{
    border-color:#c7d7e7;
    background:#f5f9fd;
}

.login-form .trusted-device-option input{
    width:16px;
    height:16px;
    margin:2px 0 0;
    padding:0;
    accent-color:#176fe5;
    cursor:pointer;
}

.trusted-device-option > span{
    min-width:0;
}

.trusted-device-option strong,
.trusted-device-option small{
    display:block;
}

.trusted-device-option strong{
    color:#29415b;
    font-size:10.5px;
    font-weight:800;
    line-height:1.35;
}

.trusted-device-option small{
    margin-top:3px;
    color:#8290a1;
    font-size:9px;
    font-weight:500;
    line-height:1.45;
}

@media(max-width:850px){
    .login-shell{
        width:min(520px,100%);
        grid-template-columns:1fr;
        min-height:auto;
    }
    .login-brand-panel{
        min-height:auto;
        padding:24px 24px 20px;
    }
    .login-brand-minimal{
        min-height:auto;
    }
    .login-brand-logo{
        width:190px;
    }
    .login-security-pills{
        display:flex;
        margin-top:16px;
    }
    .login-form-panel{
        padding:30px 28px 28px;
    }
}

@media(max-width:520px){
    .login-page{
        padding:0;
    }
    .login-shell{
        min-height:100vh;
        border-radius:0;
        box-shadow:none;
    }
    .login-brand-panel{
        padding:22px 20px 18px;
    }
    .login-brand-logo{
        width:170px;
    }
    .login-security-pills{
        margin-top:13px;
    }
    .login-form-panel{
        padding:28px 22px;
    }
    .login-form-wrap h1{
        font-size:25px;
    }
    .twofa-setup-grid{
        grid-template-columns:1fr;
    }
}


/* =====================================================
   HEADER REFINEMENT 2026-10-28
   ===================================================== */
.header-actions{gap:20px}

.admin-user-card{
    width:190px;
    height:44px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:0 16px;
    border:1px solid #d9e0e8;
    border-radius:8px;
    color:#10213d;
    background:#fff;
    font-size:12px;
    font-weight:800;
    letter-spacing:.45px;
    white-space:nowrap;
    box-shadow:0 4px 14px rgba(20,42,70,.04);
}

.logout-btn.header-action-btn{
    width:152px;
    height:44px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:0 16px;
    border:1px solid #d9e0e8;
    border-radius:8px;
    color:#30435c;
    background:#fff;
    font-size:12px;
    font-weight:800;
    letter-spacing:.45px;
    white-space:nowrap;
    box-shadow:0 4px 14px rgba(20,42,70,.04);
}

.logout-btn.header-action-btn:hover{
    color:#b52b3b;
    border-color:#efc5cb;
    background:#fff7f8;
}

@media(max-width:1100px){
    .admin-user-card{width:170px}
}

@media(max-width:900px){
    .admin-user-card,
    .logout-btn.header-action-btn{display:none}
}

/* =====================================================
   PREMIUM SIDEBAR NAVIGATION - 2026-10-28
   Keeps the existing Archipelago logo unchanged.
   ===================================================== */
.sidebar{
    width:265px;
    padding:25px 18px 22px;
    background:
        radial-gradient(circle at 20% 8%,rgba(66,144,211,.12),transparent 28%),
        linear-gradient(180deg,#0d365f 0%,#0a2b4b 54%,#071f36 100%);
}

.main-content{
    margin-left:265px;
}

.logo-area{
    justify-content:center;
    padding:0 8px 30px;
}

.sidebar-logo{
    width:160px;
}

.sidebar-nav-heading{
    display:flex;
    align-items:center;
    gap:12px;
    padding:0 9px 13px;
    color:rgba(205,224,243,.56);
    font-size:10px;
    font-weight:800;
    letter-spacing:2.2px;
}

.sidebar-nav-heading i{
    height:1px;
    flex:1;
    background:linear-gradient(90deg,rgba(126,178,225,.34),rgba(126,178,225,0));
}

.sidebar-nav{
    display:flex;
    flex-direction:column;
    gap:10px;
}

.nav-link{
    position:relative;
    min-height:58px;
    width:100%;
    display:flex;
    align-items:center;
    gap:13px;
    padding:7px 12px;
    overflow:visible;
    border:1px solid rgba(131,176,218,.13);
    border-radius:14px;
    color:rgba(232,242,251,.78);
    background:rgba(255,255,255,.018);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.015);
    text-align:left;
    transition:
        transform .18s ease,
        border-color .18s ease,
        background .18s ease,
        box-shadow .18s ease,
        color .18s ease;
}

.nav-link:hover{
    color:#fff;
    transform:translateX(3px);
    border-color:rgba(104,169,226,.42);
    background:linear-gradient(100deg,rgba(50,124,190,.20),rgba(32,92,148,.14));
    box-shadow:
        0 10px 24px rgba(0,0,0,.12),
        inset 0 1px 0 rgba(255,255,255,.045);
}

.nav-link.active{
    color:#fff;
    border-color:rgba(53,145,230,.66);
    background:linear-gradient(100deg,rgba(39,116,191,.78),rgba(24,87,148,.67));
    box-shadow:
        0 10px 25px rgba(3,20,36,.18),
        inset 0 1px 0 rgba(255,255,255,.10);
}

.nav-link.active::before{
    content:"";
    position:absolute;
    left:-14px;
    top:10px;
    bottom:10px;
    width:3px;
    border-radius:3px;
    background:#67b7ff;
    box-shadow:0 0 12px rgba(103,183,255,.48);
}

.nav-number{
    width:42px;
    height:42px;
    flex:0 0 42px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:12px;
    color:#dbeeff;
    background:rgba(79,145,202,.19);
    font-size:12px;
    font-weight:800;
    letter-spacing:.35px;
    text-align:center;
    transition:background .18s ease,color .18s ease,box-shadow .18s ease;
}

.nav-link:hover:not(.active) .nav-number{
    color:#fff;
    background:rgba(76,151,215,.30);
    box-shadow:0 6px 14px rgba(5,42,76,.16);
}

.nav-link.active .nav-number{
    color:#fff;
    background:linear-gradient(145deg,#3b91e4,#2e72bd);
    box-shadow:0 7px 16px rgba(15,74,128,.28);
}

.nav-label{
    flex:1;
    min-width:0;
    color:inherit;
    font-size:12px;
    font-weight:800;
    letter-spacing:.48px;
    white-space:nowrap;
}

.nav-chevron{
    margin-left:auto;
    padding:0 1px 2px 4px;
    color:rgba(211,230,248,.58);
    font-size:25px;
    font-weight:300;
    line-height:1;
    transition:transform .18s ease,color .18s ease;
}

.nav-link:hover .nav-chevron,
.nav-link.active .nav-chevron{
    color:#fff;
    transform:translateX(2px);
}

.backend-sidebar-status{
    margin-top:auto;
}

@media(max-width:900px){
    .sidebar{
        width:82px;
        padding:22px 10px;
    }

    .main-content{
        margin-left:82px;
    }

    .sidebar-logo{
        width:54px;
    }

    .sidebar-nav-heading{
        display:none;
    }

    .sidebar-nav{
        gap:8px;
    }

    .nav-link{
        min-height:54px;
        justify-content:center;
        padding:6px;
        border-radius:13px;
    }

    .nav-link.active::before{
        left:-6px;
        top:9px;
        bottom:9px;
    }

    .nav-number{
        display:flex !important;
        width:40px;
        height:40px;
        flex:0 0 40px;
        font-size:11px;
    }

    .nav-label,
    .nav-chevron{
        display:none !important;
    }
}

/* =====================================================
   MULTI-PAGE ADMIN VIEWS - 2026-10-28
   ===================================================== */

.page-grid-two{
    display:grid;
    grid-template-columns:minmax(640px,1.18fr) minmax(390px,.82fr);
    gap:18px;
    align-items:start;
}

.page-grid-calendar{
    display:grid;
    grid-template-columns:minmax(680px,1.25fr) minmax(390px,.75fr);
    gap:18px;
    align-items:start;
}

.calendar-large .calendar-day{
    min-height:72px;
    font-size:15px;
}

.calendar-large .weekdays span{
    padding:12px 4px;
    font-size:12px;
}

.page-bookings-panel{
    min-width:0;
}

.customers-panel{
    overflow:hidden;
}

.table-subline{
    display:block;
    margin-top:4px;
    color:#8997a9;
    font-size:10px;
    font-weight:500;
}

.customer-details{
    padding:22px;
}

.customer-hero{
    display:flex;
    align-items:center;
    gap:14px;
    padding-bottom:18px;
    border-bottom:1px solid #e8edf3;
}

.customer-avatar{
    width:54px;
    height:54px;
    flex:0 0 54px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:14px;
    color:#fff;
    background:linear-gradient(145deg,#2f83d7,#1f5f9d);
    box-shadow:0 8px 20px rgba(31,95,157,.18);
    font-size:20px;
    font-weight:800;
}

.customer-hero h2{
    margin:0;
    color:#10213d;
    font-size:20px;
}

.customer-hero p{
    margin:5px 0 0;
    color:#8492a4;
    font-size:11px;
}

.customer-contact-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    overflow:hidden;
    margin-top:18px;
    border:1px solid #e4e9ef;
    border-radius:10px;
}

.customer-contact-grid .detail-cell:nth-child(odd){
    border-right:1px solid #e9edf2;
}

.customer-history{
    margin-top:20px;
}

.customer-history h3{
    margin:0 0 10px;
    color:#10213d;
    font-size:14px;
}

.customer-history-list{
    display:flex;
    flex-direction:column;
    gap:8px;
}

.customer-history-list button{
    width:100%;
    display:grid;
    grid-template-columns:90px 1fr auto;
    align-items:center;
    gap:10px;
    padding:11px 12px;
    border:1px solid #e3e9f0;
    border-radius:9px;
    color:#42536a;
    background:#fafcfe;
    text-align:left;
    transition:.18s ease;
}

.customer-history-list button:hover{
    border-color:#b9d3ee;
    background:#f2f8ff;
    transform:translateY(-1px);
}

.customer-history-list span{
    color:#7d8b9f;
    font-size:10px;
}

.customer-history-list strong{
    color:#183653;
    font-size:11px;
}

.customer-history-list em{
    color:#178548;
    font-size:9px;
    font-style:normal;
    font-weight:800;
    text-transform:uppercase;
}

.muted-copy{
    margin:0;
    color:#8a98a9;
    font-size:11px;
}

.availability-layout{
    display:grid;
    grid-template-columns:minmax(680px,1.28fr) minmax(340px,.72fr);
    gap:18px;
    align-items:start;
}

.blocked-list-panel,
.report-panel,
.settings-panel,
.system-panel{
    padding:20px;
}

.panel-section-heading{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    margin-bottom:18px;
}

.panel-section-heading h2{
    margin:0;
    color:#10213d;
    font-size:18px;
}

.panel-section-heading p{
    margin:5px 0 0;
    color:#8592a4;
    font-size:11px;
}

.availability-block-btn{
    white-space:nowrap;
    font-weight:800;
}

.blocked-list{
    display:flex;
    flex-direction:column;
    gap:9px;
}

.blocked-list-row{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding:12px;
    border:1px solid #e1e7ee;
    border-radius:10px;
    background:#fafbfd;
}

.blocked-list-row strong,
.blocked-list-row span{
    display:block;
}

.blocked-list-row strong{
    color:#213b58;
    font-size:11px;
}

.blocked-list-row span{
    margin-top:4px;
    color:#8a97a8;
    font-size:10px;
}

.empty-inline{
    padding:24px 10px;
    color:#8997a8;
    text-align:center;
    font-size:11px;
}

.reports-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:18px;
}

.report-bars{
    display:flex;
    flex-direction:column;
    gap:17px;
}

.report-row-top{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin-bottom:8px;
}

.report-row-top strong{
    color:#30465f;
    font-size:11px;
}

.report-row-top span{
    color:#7d8b9d;
    font-size:10px;
}

.report-track{
    height:8px;
    overflow:hidden;
    border-radius:999px;
    background:#edf2f7;
}

.report-track i{
    display:block;
    height:100%;
    min-width:3px;
    border-radius:999px;
    background:linear-gradient(90deg,#2479ce,#56a6ee);
    box-shadow:0 2px 8px rgba(36,121,206,.18);
}

.finance-list{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:11px;
}

.finance-list>div{
    padding:15px;
    border:1px solid #e4e9ef;
    border-radius:10px;
    background:#fafbfd;
}

.finance-list span,
.finance-list strong{
    display:block;
}

.finance-list span{
    color:#8391a3;
    font-size:10px;
}

.finance-list strong{
    margin-top:6px;
    color:#10213d;
    font-size:17px;
}

.settings-layout{
    display:grid;
    grid-template-columns:minmax(600px,1.15fr) minmax(330px,.85fr);
    gap:18px;
    align-items:start;
}

.settings-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:4px 18px;
}

.settings-grid .form-label{
    margin-top:4px;
}

.settings-message{
    margin-top:16px;
    padding:11px 12px;
    border:1px solid #d8e5f1;
    border-radius:8px;
    color:#2f5e8a;
    background:#f3f8fd;
    font-size:11px;
    font-weight:600;
}

.settings-actions{
    display:flex;
    justify-content:flex-end;
    margin-top:18px;
    padding-top:17px;
    border-top:1px solid #e8edf2;
}

.system-list{
    display:flex;
    flex-direction:column;
}

.system-list>div{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    padding:13px 0;
    border-bottom:1px solid #edf1f5;
}

.system-list>div:last-child{
    border-bottom:0;
}

.system-list span{
    color:#7e8c9f;
    font-size:10px;
}

.system-list strong{
    color:#263f5c;
    font-size:10px;
    text-align:right;
}

.system-online{color:#179153 !important}
.system-offline{color:#cf4051 !important}

@media(max-width:1300px){
    .page-grid-two,
    .page-grid-calendar,
    .availability-layout,
    .settings-layout{
        grid-template-columns:1fr;
    }
}

@media(max-width:900px){
    .reports-grid{
        grid-template-columns:1fr;
    }
}

@media(max-width:650px){
    .customer-contact-grid,
    .settings-grid,
    .finance-list{
        grid-template-columns:1fr;
    }

    .customer-contact-grid .detail-cell:nth-child(odd){
        border-right:0;
    }

    .customer-history-list button{
        grid-template-columns:1fr;
    }

    .calendar-large .calendar-day{
        min-height:48px;
        font-size:12px;
    }
}

/* =====================================================
   CALENDAR V2 + TOUR PRICING - 2026-10-28
   ===================================================== */

.booking-calendar-v2{
    padding:20px;
}

.booking-calendar-v2 .panel-top{
    margin-bottom:18px;
}

.booking-calendar-v2 .month-selector{
    gap:12px;
}

.booking-calendar-v2 .month-selector strong{
    min-width:150px;
    color:#10213d;
    font-size:18px;
    font-weight:800;
    letter-spacing:-.25px;
}

.booking-calendar-v2 .month-arrow{
    width:38px;
    height:38px;
    border-radius:9px;
    border-color:#d8e1eb;
    color:#173a60;
    font-size:24px;
    font-weight:500;
    box-shadow:0 3px 10px rgba(31,60,90,.04);
}

.booking-calendar-v2 .month-arrow:hover{
    border-color:#b9cee3;
    background:#f5f9fd;
}

.booking-calendar-v2 .legend{
    gap:14px;
    font-size:10px;
    font-weight:600;
}

.booking-calendar-v2 .legend-dot{
    width:9px;
    height:9px;
    border-radius:3px;
}

.booking-calendar-v2 .legend-dot.available{background:#5fa043}
.booking-calendar-v2 .legend-dot.partial{background:#e79b49}
.booking-calendar-v2 .legend-dot.full{background:#cf454b}
.booking-calendar-v2 .legend-dot.blocked{background:#8c98a7}
.booking-calendar-v2 .legend-dot.today{background:#2e7bcf}

.booking-calendar-v2 .weekdays{
    gap:4px;
    margin-bottom:5px;
}

.booking-calendar-v2 .weekdays span{
    padding:8px 4px;
    color:#5d6570;
    font-size:11px;
    font-weight:800;
    letter-spacing:.6px;
    text-transform:uppercase;
}

.booking-calendar-v2 .calendar{
    display:grid;
    grid-template-columns:repeat(7,minmax(0,1fr));
    gap:4px;
    overflow:visible;
    border:0;
    border-radius:0;
    background:transparent;
}

.booking-calendar-v2 .calendar-day{
    position:relative;
    min-height:82px;
    display:flex;
    flex-direction:column;
    align-items:stretch;
    justify-content:space-between;
    gap:8px;
    padding:11px 12px 10px;
    overflow:hidden;
    border:1px solid rgba(255,255,255,.72);
    border-radius:7px;
    text-align:left;
    font-size:12px;
    box-shadow:0 2px 8px rgba(24,46,70,.04);
    transition:transform .16s ease,box-shadow .16s ease,filter .16s ease,border-color .16s ease;
}

.booking-calendar-v2 .calendar-day:not(.other-month):hover{
    transform:translateY(-1px);
    box-shadow:0 7px 18px rgba(22,47,75,.13);
    filter:brightness(1.025);
}

.booking-calendar-v2 .calendar-day.available{
    color:#fff;
    background:linear-gradient(145deg,#69a845,#5c993d);
}

.booking-calendar-v2 .calendar-day.partial{
    color:#fff;
    background:linear-gradient(145deg,#eda657,#df9140);
}

.booking-calendar-v2 .calendar-day.full{
    color:#fff;
    background:linear-gradient(145deg,#d74d52,#c83e45);
}

.booking-calendar-v2 .calendar-day.blocked{
    color:#fff;
    background:linear-gradient(145deg,#97a2b0,#7f8b9b);
}

.booking-calendar-v2 .calendar-day.other-month{
    cursor:default;
    color:#b7c1ce;
    background:#f5f7fa;
    border-color:#eef1f5;
    box-shadow:none;
}

.booking-calendar-v2 .calendar-day.is-today{
    border:2px solid #287bd5;
    box-shadow:0 0 0 3px rgba(40,123,213,.14),0 7px 18px rgba(22,47,75,.11);
}

.calendar-day-top{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:8px;
}

.calendar-day-number{
    color:inherit;
    font-size:20px;
    font-weight:800;
    line-height:1;
}

.other-month .calendar-day-number{
    font-size:16px;
    font-weight:700;
}

.today-mini{
    display:inline-flex;
    align-items:center;
    min-height:18px;
    padding:2px 6px;
    border-radius:999px;
    color:#1764b6;
    background:#fff;
    font-size:7px;
    font-style:normal;
    font-weight:900;
    letter-spacing:.7px;
}

.calendar-day-info{
    display:flex;
    flex-direction:column;
    gap:3px;
    min-width:0;
}

.calendar-day-info b{
    overflow:hidden;
    color:inherit;
    font-size:9px;
    font-weight:800;
    letter-spacing:.25px;
    line-height:1.25;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.calendar-day-info small{
    overflow:hidden;
    color:rgba(255,255,255,.88);
    font-size:8px;
    font-weight:600;
    line-height:1.25;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.booking-calendar-v2.calendar-large .calendar-day{
    min-height:98px;
    padding:13px 14px 12px;
}

.booking-calendar-v2.calendar-large .calendar-day-number{
    font-size:23px;
}

.booking-calendar-v2.calendar-large .calendar-day-info b{
    font-size:10px;
}

.booking-calendar-v2.calendar-large .calendar-day-info small{
    font-size:9px;
}

.tour-badge{
    display:inline-flex;
    align-items:center;
    padding:5px 8px;
    border-radius:6px;
    font-size:9px;
    font-weight:800;
    white-space:nowrap;
}

.tour-badge.tour-3h{
    color:#326f22;
    background:#e7f4df;
}

.tour-badge.tour-5h{
    color:#8a5c17;
    background:#fff0d8;
}

.settings-main-column{
    display:flex;
    flex-direction:column;
    gap:18px;
    min-width:0;
}

.pricing-panel{
    padding:20px;
}

.capacity-rule-box{
    display:flex;
    align-items:flex-start;
    gap:14px;
    margin-bottom:18px;
    padding:13px 14px;
    border:1px solid #d8e6f3;
    border-radius:10px;
    background:#f4f9fd;
}

.capacity-rule-box strong{
    flex:0 0 auto;
    color:#1f5d94;
    font-size:10px;
    text-transform:uppercase;
    letter-spacing:.5px;
}

.capacity-rule-box span{
    color:#587087;
    font-size:10px;
    line-height:1.55;
}

.pricing-editor{
    display:grid;
    grid-template-columns:1fr 1fr 1fr 1fr auto;
    gap:12px;
    align-items:end;
    padding:14px;
    border:1px solid #e3e9f0;
    border-radius:10px;
    background:#fbfcfe;
}

.pricing-editor .form-label{
    margin-top:0;
}

.pricing-editor-actions{
    display:flex;
    align-items:center;
    gap:8px;
    padding-bottom:1px;
}

.pricing-editor-actions .primary-btn,
.pricing-editor-actions .secondary-btn{
    white-space:nowrap;
}

.pricing-list{
    display:flex;
    flex-direction:column;
    gap:9px;
    margin-top:16px;
}

.pricing-row{
    display:grid;
    grid-template-columns:minmax(180px,1.35fr) minmax(120px,.8fr) minmax(120px,.8fr) auto;
    align-items:center;
    gap:14px;
    padding:13px 14px;
    border:1px solid #e2e8ef;
    border-radius:10px;
    background:#fff;
    box-shadow:0 3px 10px rgba(23,47,75,.025);
}

.pricing-period-dates strong,
.pricing-period-dates span,
.pricing-tour-price span,
.pricing-tour-price strong{
    display:block;
}

.pricing-period-dates strong{
    color:#1e3855;
    font-size:11px;
}

.pricing-period-dates span,
.pricing-tour-price span{
    margin-top:4px;
    color:#8794a5;
    font-size:9px;
}

.pricing-tour-price strong{
    margin-top:4px;
    color:#10213d;
    font-size:15px;
}

.pricing-row-actions{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:7px;
}

.danger-outline{
    color:#c43b49;
    border-color:#efc8cd;
}

.danger-outline:hover{
    color:#aa2937;
    background:#fff4f5;
}

@media(max-width:1450px){
    .pricing-editor{
        grid-template-columns:1fr 1fr;
    }
    .pricing-editor-actions{
        grid-column:1/-1;
        justify-content:flex-end;
    }
}

@media(max-width:900px){
    .booking-calendar-v2 .legend{
        justify-content:flex-start;
    }
    .booking-calendar-v2 .calendar-day{
        min-height:68px;
        padding:9px;
    }
    .calendar-day-number{
        font-size:17px;
    }
    .calendar-day-info b{
        font-size:8px;
    }
    .calendar-day-info small{
        display:none;
    }
    .pricing-row{
        grid-template-columns:1fr 1fr;
    }
    .pricing-row-actions{
        grid-column:1/-1;
        justify-content:flex-start;
    }
}

@media(max-width:650px){
    .booking-calendar-v2{
        padding:13px;
    }
    .booking-calendar-v2 .panel-top{
        gap:12px;
    }
    .booking-calendar-v2 .month-selector strong{
        min-width:120px;
        font-size:15px;
    }
    .booking-calendar-v2 .calendar{
        gap:2px;
    }
    .booking-calendar-v2 .calendar-day,
    .booking-calendar-v2.calendar-large .calendar-day{
        min-height:48px;
        padding:6px;
        border-radius:5px;
    }
    .booking-calendar-v2 .calendar-day-number,
    .booking-calendar-v2.calendar-large .calendar-day-number{
        font-size:13px;
    }
    .calendar-day-info,
    .today-mini{
        display:none;
    }
    .pricing-editor,
    .pricing-row{
        grid-template-columns:1fr;
    }
    .pricing-editor-actions,
    .pricing-row-actions{
        grid-column:auto;
    }
}

.field-help{
    display:block;
    margin-top:6px;
    color:#8190a2;
    font-size:8px;
    font-weight:600;
    line-height:1.45;
}

/* =====================================================
   DIAGONAL 3H BOOKING SLOTS - 2026-10-28
   ===================================================== */
.booking-calendar-v2 .calendar-day.split-day{
    position:relative;
    padding:0;
    display:block;
    isolation:isolate;
    color:#fff;
    background:#fff;
    border-color:rgba(255,255,255,.74);
}

.booking-calendar-v2 .calendar-day.split-day:hover{
    transform:translateY(-1px);
    box-shadow:0 7px 18px rgba(22,47,75,.13);
    filter:none;
}

.split-day-top{
    position:absolute;
    z-index:6;
    top:10px;
    left:11px;
    right:10px;
    pointer-events:none;
    color:#fff;
    text-shadow:0 1px 3px rgba(0,0,0,.18);
}

.calendar-split-layer{
    position:absolute;
    inset:0;
    overflow:hidden;
    border-radius:inherit;
}

.calendar-split-zone{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    padding:0;
    border:0;
    color:#fff;
    transition:filter .16s ease,transform .16s ease;
}

.calendar-split-zone:hover{
    z-index:4;
    filter:brightness(1.09);
}

.calendar-split-zone.zone-a{
    clip-path:polygon(0 0,100% 0,0 100%);
}

.calendar-split-zone.zone-b{
    clip-path:polygon(100% 0,100% 100%,0 100%);
}

.calendar-split-zone.booked{
    background:linear-gradient(145deg,#d84f55,#c83d45);
}

.calendar-split-zone.pending{
    background:linear-gradient(145deg,#eea65a,#dc8c3b);
}

.calendar-split-zone.available{
    background:linear-gradient(145deg,#6cad49,#5b993d);
}

.calendar-split-copy{
    position:absolute;
    z-index:2;
    display:flex;
    flex-direction:column;
    gap:2px;
    max-width:72%;
    pointer-events:none;
    text-shadow:0 1px 3px rgba(0,0,0,.16);
}

.zone-a .calendar-split-copy{
    left:11px;
    bottom:11px;
    align-items:flex-start;
    text-align:left;
}

.zone-b .calendar-split-copy{
    right:10px;
    top:30px;
    align-items:flex-end;
    text-align:right;
}

.calendar-split-copy b{
    font-size:9px;
    font-weight:900;
    letter-spacing:.35px;
    line-height:1.1;
}

.calendar-split-copy small{
    max-width:100%;
    overflow:hidden;
    font-size:7.5px;
    font-weight:700;
    line-height:1.1;
    text-overflow:ellipsis;
    white-space:nowrap;
    opacity:.94;
}

.booking-calendar-v2.calendar-large .split-day-top{
    top:12px;
    left:13px;
    right:12px;
}

.booking-calendar-v2.calendar-large .calendar-split-copy b{
    font-size:10px;
}

.booking-calendar-v2.calendar-large .calendar-split-copy small{
    font-size:8.5px;
}

.booking-calendar-v2.calendar-large .zone-a .calendar-split-copy{
    left:13px;
    bottom:13px;
}

.booking-calendar-v2.calendar-large .zone-b .calendar-split-copy{
    right:12px;
    top:34px;
}

@media(max-width:650px){
    .calendar-split-copy b{font-size:7px}
    .calendar-split-copy small{display:none}
    .zone-a .calendar-split-copy{left:6px;bottom:6px}
    .zone-b .calendar-split-copy{right:6px;top:24px}
    .split-day-top{top:6px;left:6px;right:6px}
}

/* =====================================================
   CALENDAR READABILITY + COMPACT DETAILS - 2026-10-28 v3
   ===================================================== */

/* Give the calendar more of the desktop workspace. */
.workspace{
    grid-template-columns:minmax(0,1.7fr) minmax(360px,.62fr);
    gap:18px;
}

.page-grid-calendar{
    grid-template-columns:minmax(0,1.72fr) minmax(360px,.60fr);
    gap:18px;
}

/* Larger calendar cells and typography throughout the admin. */
.booking-calendar-v2{
    padding:22px;
}

.booking-calendar-v2 .calendar{
    gap:5px;
}

.booking-calendar-v2 .weekdays{
    gap:5px;
    margin-bottom:7px;
}

.booking-calendar-v2 .weekdays span{
    padding:10px 4px;
    font-size:11.5px;
}

.booking-calendar-v2 .calendar-day{
    min-height:98px;
    padding:13px 14px 12px;
    border-radius:8px;
}

.booking-calendar-v2 .calendar-day-number{
    font-size:23px;
}

.booking-calendar-v2 .calendar-day-info{
    gap:4px;
}

.booking-calendar-v2 .calendar-day-info b{
    font-size:10.5px;
    line-height:1.2;
}

.booking-calendar-v2 .calendar-day-info small{
    font-size:9px;
    line-height:1.2;
}

.booking-calendar-v2.calendar-large .calendar-day{
    min-height:112px;
    padding:15px 16px 14px;
}

.booking-calendar-v2.calendar-large .calendar-day-number{
    font-size:25px;
}

.booking-calendar-v2.calendar-large .calendar-day-info b{
    font-size:11.5px;
}

.booking-calendar-v2.calendar-large .calendar-day-info small{
    font-size:10px;
}

/* Make the diagonal split visually obvious and both slot labels readable. */
.calendar-split-layer::after{
    content:"";
    position:absolute;
    inset:0;
    z-index:3;
    pointer-events:none;
    background:linear-gradient(
        to bottom right,
        transparent 49.25%,
        rgba(255,255,255,.86) 49.45%,
        rgba(255,255,255,.86) 50.55%,
        transparent 50.75%
    );
}

.split-day-top{
    top:12px;
    left:13px;
    right:12px;
}

.calendar-split-copy{
    z-index:4;
    gap:3px;
    max-width:78%;
    padding:4px 6px;
    border-radius:5px;
    background:rgba(6,30,52,.13);
    text-shadow:0 1px 3px rgba(0,0,0,.24);
}

.zone-a .calendar-split-copy{
    left:12px;
    bottom:12px;
}

.zone-b .calendar-split-copy{
    right:11px;
    top:38px;
}

.calendar-split-copy b{
    font-size:10.5px;
    letter-spacing:.45px;
    line-height:1.12;
}

.calendar-split-copy small{
    font-size:9px;
    line-height:1.12;
}

.booking-calendar-v2.calendar-large .split-day-top{
    top:14px;
    left:15px;
    right:14px;
}

.booking-calendar-v2.calendar-large .calendar-split-copy b{
    font-size:11.5px;
}

.booking-calendar-v2.calendar-large .calendar-split-copy small{
    font-size:10px;
}

.booking-calendar-v2.calendar-large .zone-a .calendar-split-copy{
    left:14px;
    bottom:14px;
}

.booking-calendar-v2.calendar-large .zone-b .calendar-split-copy{
    right:13px;
    top:42px;
}

/* Compact booking information card so the calendar remains the main visual. */
.booking-details{
    min-width:0;
    padding:16px;
}

.booking-details>h2{
    margin:14px 0 4px;
    font-size:18px;
    line-height:1.25;
}

.booking-details .reference{
    font-size:9px;
}

.booking-details .details-actions{
    gap:5px;
    margin:14px 0;
}

.booking-details .primary-btn.small{
    padding:9px 13px;
    font-size:10px;
}

.booking-details .secondary-btn{
    padding:8px 9px;
    font-size:9px;
}

.booking-details .confirmed-pill,
.booking-details .source-badge{
    font-size:9px;
}

.booking-details .detail-cell{
    min-height:62px;
    padding:11px;
}

.booking-details .detail-cell span{
    margin-bottom:5px;
    font-size:8px;
}

.booking-details .detail-cell strong{
    font-size:10px;
    line-height:1.3;
}

.booking-details .detail-cell small{
    margin-top:3px;
    font-size:8px;
}

.booking-details .detail-tabs{
    margin-top:14px;
}

.booking-details .detail-tabs button{
    padding:9px 8px;
    font-size:9px;
}

.booking-details .notes-box{
    min-height:78px;
    margin-top:10px;
    padding:12px;
}

.booking-details .notes-box strong{
    font-size:10px;
}

.booking-details .notes-box p{
    margin-top:5px;
    font-size:9px;
}

@media(max-width:1450px) and (min-width:1201px){
    .workspace,
    .page-grid-calendar{
        grid-template-columns:minmax(0,1.48fr) minmax(350px,.62fr);
    }

    .booking-calendar-v2 .calendar-day{
        min-height:90px;
    }
}

@media(max-width:1200px){
    .workspace,
    .page-grid-calendar{
        grid-template-columns:1fr;
    }

    .booking-details{
        width:100%;
    }
}

@media(max-width:900px){
    .booking-calendar-v2 .calendar-day,
    .booking-calendar-v2.calendar-large .calendar-day{
        min-height:72px;
        padding:9px;
    }

    .calendar-split-copy{
        padding:3px 5px;
    }

    .calendar-split-copy b{
        font-size:8.5px;
    }

    .calendar-split-copy small{
        font-size:7.5px;
    }
}

@media(max-width:650px){
    .booking-calendar-v2 .calendar-day,
    .booking-calendar-v2.calendar-large .calendar-day{
        min-height:52px;
        padding:6px;
    }

    .calendar-split-copy{
        padding:0;
        background:transparent;
    }

    .calendar-split-copy b{font-size:7px}
    .calendar-split-copy small{display:none}
    .zone-a .calendar-split-copy{left:6px;bottom:6px}
    .zone-b .calendar-split-copy{right:6px;top:24px}
    .split-day-top{top:6px;left:6px;right:6px}
}

/* =====================================================
   CALENDAR CONTENT CLARITY - 2026-10-28 v4
   Keep diagonal status backgrounds, but move readable
   booking information into two horizontal clickable rows.
   ===================================================== */

/* Available days: both tour prices should read like primary information. */
.booking-calendar-v2 .calendar-day.available .calendar-day-info.calendar-availability-lines{
    gap:3px;
}

.booking-calendar-v2 .calendar-day.available .calendar-availability-lines b{
    display:block;
    overflow:visible;
    color:#fff;
    font-size:12px;
    font-weight:900;
    letter-spacing:.15px;
    line-height:1.18;
    text-overflow:clip;
    white-space:nowrap;
    text-shadow:0 1px 2px rgba(0,0,0,.14);
}

.booking-calendar-v2.calendar-large .calendar-day.available .calendar-availability-lines b{
    font-size:13px;
}

/* The diagonal halves are now visual status backgrounds only. */
.calendar-split-zone{
    pointer-events:none;
}

/* Clear slot information floats above the diagonal background. */
.calendar-slot-list{
    position:absolute;
    z-index:7;
    left:9px;
    right:9px;
    top:40px;
    bottom:8px;
    display:flex;
    flex-direction:column;
    justify-content:flex-end;
    gap:4px;
    pointer-events:none;
}

.calendar-slot-row{
    width:100%;
    min-width:0;
    min-height:25px;
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    justify-content:center;
    gap:1px;
    padding:4px 7px;
    border:1px solid rgba(255,255,255,.28);
    border-radius:6px;
    color:#fff;
    background:rgba(7,29,50,.28);
    box-shadow:0 2px 7px rgba(5,25,43,.12);
    text-align:left;
    backdrop-filter:blur(1.5px);
    pointer-events:auto;
    transition:background .15s ease,transform .15s ease,border-color .15s ease;
}

.calendar-slot-row:hover{
    z-index:8;
    transform:translateY(-1px);
    background:rgba(7,29,50,.43);
    border-color:rgba(255,255,255,.55);
}

.calendar-slot-row.available{
    background:rgba(18,91,45,.30);
}

.calendar-slot-row.pending{
    background:rgba(107,61,15,.34);
}

.calendar-slot-row.booked{
    background:rgba(100,20,28,.32);
}

.calendar-slot-main,
.calendar-slot-sub{
    display:block;
    width:100%;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.calendar-slot-main{
    font-size:9px;
    font-weight:900;
    letter-spacing:.28px;
    line-height:1.05;
}

.calendar-slot-sub{
    font-size:7.8px;
    font-weight:700;
    line-height:1.05;
    opacity:.96;
}

.booking-calendar-v2.calendar-large .calendar-slot-list{
    left:11px;
    right:11px;
    top:44px;
    bottom:10px;
    gap:5px;
}

.booking-calendar-v2.calendar-large .calendar-slot-row{
    min-height:29px;
    padding:5px 8px;
}

.booking-calendar-v2.calendar-large .calendar-slot-main{
    font-size:10px;
}

.booking-calendar-v2.calendar-large .calendar-slot-sub{
    font-size:8.6px;
}

/* Legacy triangle copy is intentionally hidden in v4. */
.calendar-split-copy{
    display:none !important;
}

/* 5H full-day booking needs the customer/reference to remain readable. */
.booking-calendar-v2 .calendar-day.full .calendar-day-info small{
    max-width:100%;
    font-size:8.5px;
    font-weight:700;
}

@media(max-width:900px){
    .booking-calendar-v2 .calendar-day.available .calendar-availability-lines b{
        font-size:9px;
    }
    .calendar-slot-list{
        top:31px;
        left:5px;
        right:5px;
        bottom:5px;
        gap:2px;
    }
    .calendar-slot-row{
        min-height:19px;
        padding:2px 4px;
    }
    .calendar-slot-main{font-size:7px}
    .calendar-slot-sub{font-size:6.3px}
}

@media(max-width:650px){
    .booking-calendar-v2 .calendar-day.available .calendar-availability-lines b{
        font-size:7px;
    }
    .calendar-slot-list{
        top:24px;
        left:3px;
        right:3px;
        bottom:3px;
    }
    .calendar-slot-row{
        min-height:15px;
        padding:1px 3px;
        border-radius:4px;
    }
    .calendar-slot-main{font-size:5.8px}
    .calendar-slot-sub{display:none}
}


/* =====================================================
   CALENDAR STATUS + READABILITY + CALENDAR-ONLY PAGE - v5
   2026-10-28
   ===================================================== */

/* Capacity colors:
   1 x 3H = orange booked half + green available half
   2 x 3H = red/red
   1 x 5H = full red (existing .full state)
*/
.booking-calendar-v2 .calendar-split-zone.partial-booked{
    background:linear-gradient(145deg,#efa451,#dd8732);
}

.booking-calendar-v2 .split-partial .calendar-slot-row.booked,
.booking-calendar-v2 .split-partial .calendar-slot-row.pending{
    background:rgba(126,72,15,.42);
    border-color:rgba(255,255,255,.46);
}

.booking-calendar-v2 .split-full .calendar-slot-row.booked,
.booking-calendar-v2 .split-full .calendar-slot-row.pending{
    background:rgba(105,17,27,.40);
}

/* Slightly smaller date number, much larger booking/customer copy. */
.booking-calendar-v2 .calendar-day-number{
    font-size:20px;
    line-height:1;
}

.booking-calendar-v2.calendar-large .calendar-day-number{
    font-size:21px;
}

.booking-calendar-v2 .calendar-slot-list{
    top:37px;
    left:8px;
    right:8px;
    bottom:7px;
    gap:4px;
}

.booking-calendar-v2 .calendar-slot-row{
    min-height:29px;
    padding:5px 7px;
}

.booking-calendar-v2 .calendar-slot-main{
    font-size:10.3px;
    line-height:1.08;
}

.booking-calendar-v2 .calendar-slot-sub{
    font-size:9.7px;
    font-weight:800;
    line-height:1.1;
}

.booking-calendar-v2.calendar-large .calendar-slot-list{
    top:39px;
    left:9px;
    right:9px;
    bottom:8px;
}

.booking-calendar-v2.calendar-large .calendar-slot-row{
    min-height:32px;
    padding:6px 8px;
}

.booking-calendar-v2.calendar-large .calendar-slot-main{
    font-size:11.2px;
}

.booking-calendar-v2.calendar-large .calendar-slot-sub{
    font-size:10.5px;
}

/* Available price labels are primary information. */
.booking-calendar-v2 .calendar-day.available .calendar-availability-lines b{
    font-size:12.5px;
    line-height:1.22;
}

.booking-calendar-v2.calendar-large .calendar-day.available .calendar-availability-lines b{
    font-size:13.5px;
}

/* Booking details on Dashboard / Bookings: readable, not micro typography. */
.booking-details{
    padding:18px;
}

.booking-details>h2{
    margin:15px 0 5px;
    font-size:20px;
    line-height:1.25;
}

.booking-details .reference{
    font-size:10.5px;
}

.booking-details .details-actions{
    gap:6px;
    margin:15px 0;
}

.booking-details .primary-btn.small{
    padding:10px 14px;
    font-size:11px;
}

.booking-details .secondary-btn{
    padding:9px 10px;
    font-size:10px;
}

.booking-details .confirmed-pill,
.booking-details .source-badge{
    font-size:10px;
}

.booking-details .detail-cell{
    min-height:68px;
    padding:12px;
}

.booking-details .detail-cell span{
    margin-bottom:5px;
    font-size:10px;
}

.booking-details .detail-cell strong{
    font-size:12.5px;
    line-height:1.32;
}

.booking-details .detail-cell small{
    margin-top:4px;
    font-size:9.5px;
}

.booking-details .detail-tabs button{
    padding:10px 9px;
    font-size:10.5px;
}

.booking-details .notes-box strong{
    font-size:11px;
}

.booking-details .notes-box p{
    font-size:10.5px;
}

/* CALENDAR menu = only the calendar below the common header. */
.calendar-only-page{
    width:100%;
}

.calendar-only-page .calendar-panel{
    width:100%;
}

.calendar-only-page .calendar-menu-only{
    padding:24px;
}

.calendar-only-page .calendar-menu-only .calendar-day{
    min-height:126px;
    padding:15px 16px 14px;
}

.calendar-only-page .calendar-menu-only .calendar-day-number{
    font-size:21px;
}

.calendar-only-page .calendar-menu-only .calendar-slot-list{
    top:42px;
    left:11px;
    right:11px;
    bottom:10px;
    gap:6px;
}

.calendar-only-page .calendar-menu-only .calendar-slot-row{
    min-height:35px;
    padding:6px 9px;
}

.calendar-only-page .calendar-menu-only .calendar-slot-main{
    font-size:11.8px;
}

.calendar-only-page .calendar-menu-only .calendar-slot-sub{
    font-size:11px;
}

.calendar-only-page .calendar-menu-only .calendar-day.available .calendar-availability-lines b{
    font-size:14px;
}

/* Booking details popup used only from the CALENDAR menu. */
.booking-details-backdrop{
    z-index:1100;
}

.booking-details-modal-shell{
    position:relative;
    width:min(760px,94vw);
    max-height:90vh;
    overflow-y:auto;
    border-radius:14px;
    box-shadow:0 28px 80px rgba(4,25,45,.32);
}

.booking-details-modal-shell .booking-details{
    width:100%;
    margin:0;
    padding:24px;
    border-radius:14px;
    box-shadow:none;
}

.booking-details-modal-shell .booking-details>h2{
    font-size:24px;
}

.booking-details-modal-shell .detail-cell span{
    font-size:10.5px;
}

.booking-details-modal-shell .detail-cell strong{
    font-size:13.5px;
}

.booking-details-modal-shell .detail-cell small{
    font-size:10px;
}

.booking-details-modal-shell .reference,
.booking-details-modal-shell .notes-box p{
    font-size:11px;
}

.booking-details-modal-close{
    position:absolute;
    z-index:5;
    top:14px;
    right:14px;
    background:#fff;
    box-shadow:0 3px 10px rgba(20,42,70,.10);
}

/* Keep responsive behavior sane. */
@media(max-width:900px){
    .booking-calendar-v2 .calendar-day-number,
    .booking-calendar-v2.calendar-large .calendar-day-number{
        font-size:17px;
    }
    .booking-calendar-v2 .calendar-slot-main,
    .booking-calendar-v2.calendar-large .calendar-slot-main{
        font-size:8.2px;
    }
    .booking-calendar-v2 .calendar-slot-sub,
    .booking-calendar-v2.calendar-large .calendar-slot-sub{
        font-size:7.5px;
    }
    .calendar-only-page .calendar-menu-only .calendar-day{
        min-height:82px;
        padding:9px;
    }
    .calendar-only-page .calendar-menu-only .calendar-slot-list{
        top:30px;
        left:5px;
        right:5px;
        bottom:5px;
        gap:3px;
    }
    .calendar-only-page .calendar-menu-only .calendar-slot-row{
        min-height:22px;
        padding:3px 5px;
    }
    .calendar-only-page .calendar-menu-only .calendar-slot-main{
        font-size:8px;
    }
    .calendar-only-page .calendar-menu-only .calendar-slot-sub{
        font-size:7.2px;
    }
}

@media(max-width:650px){
    .booking-details-modal-shell{
        width:min(96vw,760px);
    }
    .booking-details-modal-shell .booking-details{
        padding:18px;
    }
    .calendar-only-page .calendar-menu-only{
        padding:12px;
    }
}


/* v5.1 final type tuning */
.booking-calendar-v2 .calendar-slot-main{
    font-size:10.8px;
}
.booking-calendar-v2 .calendar-slot-sub{
    font-size:10.3px;
    font-weight:800;
}
.booking-calendar-v2.calendar-large .calendar-slot-main{
    font-size:11.7px;
}
.booking-calendar-v2.calendar-large .calendar-slot-sub{
    font-size:11.1px;
}
.calendar-only-page .calendar-menu-only .calendar-slot-main{
    font-size:12.2px;
}
.calendar-only-page .calendar-menu-only .calendar-slot-sub{
    font-size:11.5px;
}
.booking-details-modal-shell .details-header{
    padding-right:46px;
}
@media(max-width:900px){
    .booking-calendar-v2 .calendar-slot-main,
    .booking-calendar-v2.calendar-large .calendar-slot-main{
        font-size:8.4px;
    }
    .booking-calendar-v2 .calendar-slot-sub,
    .booking-calendar-v2.calendar-large .calendar-slot-sub{
        font-size:7.8px;
    }
}

/* =====================================================
   BOOKING DETAILS + MESSAGES / PRINT UX v6
   ===================================================== */

/* Larger labels and values inside booking details. */
.booking-details .detail-cell{
    min-height:74px;
    padding:13px 14px;
}
.booking-details .detail-cell span{
    margin-bottom:6px;
    font-size:11.5px;
    font-weight:600;
    line-height:1.2;
}
.booking-details .detail-cell strong{
    font-size:14px;
    line-height:1.35;
}
.booking-details .detail-cell small{
    margin-top:5px;
    font-size:10.5px;
    line-height:1.35;
}
.booking-details .reference{
    font-size:11.5px;
}
.booking-details .detail-tabs button{
    font-size:11.5px;
    font-weight:600;
}
.booking-details .notes-box strong{
    font-size:12.5px;
}
.booking-details .notes-box p{
    font-size:11.5px;
    line-height:1.55;
}

/* Calendar booking popup can afford slightly larger detail typography. */
.booking-details-modal-shell .detail-cell span{font-size:12px}
.booking-details-modal-shell .detail-cell strong{font-size:14.5px}
.booking-details-modal-shell .detail-cell small{font-size:11px}
.booking-details-modal-shell .reference{font-size:12px}
.booking-details-modal-shell .detail-tabs button{font-size:12px}

.messages-box{
    margin-top:13px;
    padding:13px;
    border:1px solid #e3e9f0;
    border-radius:10px;
    background:#f8fafc;
}
.sms-gateway-notice{
    margin-bottom:12px;
    padding:10px 12px;
    border:1px solid #f1d8a3;
    border-radius:8px;
    color:#76500a;
    background:#fff8e8;
    font-size:11px;
    line-height:1.45;
}
.message-thread{
    display:flex;
    flex-direction:column;
    gap:10px;
    max-height:280px;
    overflow-y:auto;
    padding:2px 2px 8px;
}
.message-row{
    display:flex;
}
.message-row.outgoing{justify-content:flex-end}
.message-row.incoming{justify-content:flex-start}
.message-bubble{
    max-width:86%;
    padding:10px 12px;
    border:1px solid #dfe6ee;
    border-radius:12px;
    background:#fff;
    box-shadow:0 2px 8px rgba(20,42,70,.04);
}
.message-row.outgoing .message-bubble{
    color:#fff;
    border-color:#176fe5;
    background:#176fe5;
}
.message-direction{
    margin-bottom:5px;
    font-size:9px;
    font-weight:800;
    letter-spacing:.7px;
    opacity:.75;
}
.message-bubble p{
    margin:0;
    font-size:12px;
    line-height:1.5;
    white-space:pre-wrap;
    overflow-wrap:anywhere;
}
.message-meta{
    margin-top:7px;
    font-size:9.5px;
    opacity:.72;
}
.messages-empty{
    padding:18px 8px;
    color:#7b889a;
    text-align:center;
    font-size:11px;
}
.message-compose{
    margin-top:12px;
    padding-top:12px;
    border-top:1px solid #e1e7ee;
}
.message-compose textarea{
    width:100%;
    resize:vertical;
    min-height:86px;
    padding:11px 12px;
    border:1px solid #d8e0e9;
    border-radius:8px;
    outline:none;
    color:#10213d;
    background:#fff;
    font-size:12px;
    line-height:1.5;
}
.message-compose textarea:focus{
    border-color:#8fb9e8;
    box-shadow:0 0 0 3px rgba(23,111,229,.08);
}
.message-compose-footer{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    margin-top:8px;
}
.message-compose-footer span{
    color:#8390a0;
    font-size:9.5px;
}
.message-compose-footer .primary-btn{
    padding:9px 14px;
    font-size:10px;
}
.message-compose-footer .primary-btn:disabled{
    cursor:not-allowed;
    opacity:.45;
}
.message-error{
    margin-top:9px;
    color:#b52b3b;
    font-size:10.5px;
    line-height:1.4;
}

/* Block Date / Range */
.block-range-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:620px){.block-range-grid{grid-template-columns:1fr}}
\n\n/* Cruises / Products admin page */\n.products-page-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:18px}.products-page-head h2{margin:0;color:#10213d;font-size:24px}.products-page-head p{margin:5px 0 0;color:#758397;font-size:12px}.products-page-head .primary-btn:disabled{opacity:.5;cursor:not-allowed}.products-admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.product-admin-card{overflow:hidden}.product-admin-image{height:230px;background:#edf2f7;overflow:hidden}.product-admin-image img{width:100%;height:100%;display:block;object-fit:cover}.product-admin-body{padding:20px}.product-admin-topline{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.product-admin-topline span{display:inline-flex;padding:5px 8px;border-radius:7px;color:#8b681b;background:#fff2ce;font-size:10px;font-weight:700}.product-admin-topline strong{display:inline-flex;padding:5px 8px;border-radius:7px;color:#158348;background:#dff7e8;font-size:9px}.product-admin-card h3{margin:0 0 9px;color:#10213d;font-size:20px;line-height:1.25}.product-admin-description{min-height:58px;margin:0 0 18px;color:#68778b;font-size:12px;line-height:1.55}.product-admin-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border:1px solid #e5eaf0;border-radius:10px;overflow:hidden}.product-admin-meta>div{padding:13px 14px;background:#fbfcfe;border-right:1px solid #e5eaf0;border-bottom:1px solid #e5eaf0}.product-admin-meta>div:nth-child(2n){border-right:0}.product-admin-meta>div:nth-last-child(-n+2){border-bottom:0}.product-admin-meta span,.product-admin-meta strong{display:block}.product-admin-meta span{color:#8390a0;font-size:10px}.product-admin-meta strong{margin-top:4px;color:#10213d;font-size:14px}.product-admin-actions{display:flex;justify-content:flex-end;margin-top:16px}.product-admin-actions .secondary-btn:disabled{opacity:.45;cursor:not-allowed}@media(max-width:1000px){.products-admin-grid{grid-template-columns:1fr}}\n
/* Dynamic Cruises management */
.product-status-stack{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.product-status-stack strong,.product-status-stack em{display:inline-flex;padding:5px 8px;border-radius:7px;font-size:9px;font-style:normal;font-weight:700;letter-spacing:.02em}
.product-status-stack strong.active{color:#158348;background:#dff7e8}
.product-status-stack strong.inactive{color:#9c3341;background:#fde7ea}
.product-status-stack em.online{color:#0f68b5;background:#e2f1ff}
.product-status-stack em.offline{color:#7d8895;background:#eef1f4}
.product-image-placeholder{height:100%;min-height:150px;display:flex;align-items:center;justify-content:center;background:#eef2f6;color:#9aa6b5;font-size:12px;font-weight:700;letter-spacing:.08em}
.products-empty{padding:42px;text-align:center}.products-empty h3{margin:0 0 8px}.products-empty p{margin:0 0 18px;color:#738195}
.product-modal{width:min(1080px,calc(100vw - 40px));max-height:calc(100vh - 40px);overflow:auto;background:#fff;border-radius:16px;box-shadow:0 24px 70px rgba(15,35,60,.22);padding:24px}
.product-edit-layout{display:grid;grid-template-columns:330px minmax(0,1fr);gap:24px;margin-top:18px}
.product-image-editor{display:flex;flex-direction:column;gap:12px}.product-image-editor>img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:12px;border:1px solid #e4eaf1;background:#eef2f6}
.image-upload-btn{display:flex;align-items:center;justify-content:center;min-height:42px;border-radius:9px;background:#0076ce;color:#fff;font-size:12px;font-weight:700;cursor:pointer}.image-upload-btn input{display:none}.image-upload-btn:has(input:disabled){opacity:.6;cursor:wait}
.product-edit-fields .booking-form-grid{margin-top:0}.product-toggle{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid #e4eaf1;border-radius:10px;background:#fbfcfe}.product-toggle input{width:18px;height:18px;accent-color:#0076ce}.product-toggle span{display:flex;flex-direction:column;gap:2px}.product-toggle strong{color:#12233f;font-size:13px}.product-toggle small{color:#7d8998;font-size:11px}.product-pricing-summary{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;padding:13px 14px;border-radius:10px;background:#f3f8fc;border:1px solid #dbe9f4}.product-pricing-summary span{color:#6c7b8f;font-size:11px}.product-pricing-summary strong{color:#10213d;font-size:15px}.product-pricing-summary small{grid-column:1/-1;color:#7f8c9b;font-size:10px}
@media(max-width:850px){.product-edit-layout{grid-template-columns:1fr}.product-image-editor>img{aspect-ratio:16/9}.product-modal{width:min(96vw,720px);padding:18px}}


/* Cruises admin grid - 3 across with inline add card */
.products-admin-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
  align-items:stretch;
}
.product-admin-card{
  overflow:hidden;
  display:flex;
  flex-direction:column;
  min-width:0;
}
.product-admin-image{height:190px}
.product-admin-body{
  padding:18px;
  display:flex;
  flex-direction:column;
  flex:1;
}
.product-admin-description{min-height:76px}
.product-admin-actions{margin-top:auto;padding-top:16px}
.product-add-card{
  appearance:none;
  -webkit-appearance:none;
  border:2px solid #cbd6e2;
  border-radius:12px;
  background:transparent;
  min-height:100%;
  height:100%;
  width:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:0;
  cursor:pointer;
  color:#9aaabd;
  transition:border-color .18s ease,background-color .18s ease,color .18s ease,transform .18s ease,box-shadow .18s ease;
}
.product-add-card:hover{
  border-color:#0076CE;
  background:rgba(0,118,206,.035);
  color:#0076CE;
  transform:translateY(-2px);
  box-shadow:0 12px 28px rgba(0,55,95,.08);
}
.product-add-card:focus-visible{outline:3px solid rgba(0,118,206,.22);outline-offset:3px}
.product-add-plus{
  display:block;
  font-size:72px;
  line-height:1;
  font-weight:300;
  transform:translateY(-3px);
}
@media(max-width:1350px){.products-admin-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:850px){.products-admin-grid{grid-template-columns:1fr}.product-add-card{min-height:260px}}

/* Settings cleanup + per-cruise pricing */
.settings-grid-clean{grid-template-columns:repeat(3,minmax(0,1fr))}
.product-pricing-manager{margin-top:6px;padding:16px;border:1px solid #dce6ef;border-radius:12px;background:#f8fbfe}
.product-pricing-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}
.product-pricing-heading span,.product-pricing-heading strong,.product-pricing-heading small{display:block}
.product-pricing-heading span{color:#66778c;font-size:11px}
.product-pricing-heading strong{margin-top:3px;color:#10213d;font-size:16px}
.product-pricing-heading small{margin-top:3px;color:#7e8b9b;font-size:10px}
.product-pricing-editor{display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:10px;align-items:end}
.product-pricing-editor .form-label{margin-top:0}
.product-pricing-editor-actions{display:flex;align-items:center;gap:7px;padding-bottom:1px}
.product-pricing-list{display:flex;flex-direction:column;gap:8px;margin-top:14px}
.product-pricing-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 12px;border:1px solid #e2e8ef;border-radius:9px;background:#fff}
.product-pricing-row>div:first-child{display:flex;flex-direction:column;gap:3px}
.product-pricing-row strong{font-size:12px;color:#10213d}.product-pricing-row span{font-size:12px;color:#2671ba;font-weight:700}
.product-pricing-row-actions{display:flex;gap:7px}.product-pricing-message{margin-top:12px}
.booking-calendar-v2 .calendar-day.past{color:#96a5b7;background:#edf2f6;cursor:not-allowed}
.booking-calendar-v2 .calendar-day.past:hover{background:#edf2f6}
@media(max-width:900px){.settings-grid-clean{grid-template-columns:1fr 1fr}.product-pricing-editor{grid-template-columns:1fr 1fr}.product-pricing-editor-actions{grid-column:1/-1}}
@media(max-width:650px){.settings-grid-clean,.product-pricing-editor{grid-template-columns:1fr}}
