:root{
    --navy:#071827;
    --navy2:#0b253f;
    --navy3:#0f3458;
    --blue:#0b5fc7;
    --blue2:#1d8cff;
    --sky:#54b8ff;
    --gold:#f59e0b;
    --green:#059669;
    --orange:#ea580c;
    --red:#dc2626;
    --purple:#7c3aed;
    --text:#111827;
    --muted:#64748b;
    --line:#e5e7eb;
    --bg:#f6f8fb;
    --card:#ffffff;
    --soft:#f8fafc;
    --shadow:0 12px 34px rgba(15,23,42,.08);
    --shadow-lg:0 22px 55px rgba(15,23,42,.14);
    --radius:18px;
}

*{
    box-sizing:border-box;
    min-width:0;
}

html{
    scroll-behavior:smooth;
}

body{
    margin:0;
    font-family:Inter,Arial,sans-serif;
    color:var(--text);
    background:
        radial-gradient(circle at top right,rgba(84,184,255,.12),transparent 35%),
        linear-gradient(180deg,#f8fafc 0%,#f4f7fb 100%);
}

a{
    color:var(--blue);
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible{
    outline:3px solid rgba(29,140,255,.34);
    outline-offset:3px;
}

img{
    max-width:100%;
    height:auto;
}

/* APP LAYOUT */
.app-shell{
    min-height:100vh;
    display:flex;
}

.td-sidebar-backdrop{
    position:fixed;
    inset:0;
    background:rgba(2,6,23,.45);
    opacity:0;
    pointer-events:none;
    transition:opacity .22s ease;
    z-index:160;
}

.td-sidebar{
    width:320px;
    position:fixed;
    left:0;
    top:0;
    bottom:0;
    overflow:auto;
    color:#fff;
    background:
        linear-gradient(180deg,rgba(7,24,39,.98),rgba(9,37,64,.98)),
        radial-gradient(circle at top left,rgba(84,184,255,.18),transparent 40%);
    border-right:1px solid rgba(255,255,255,.08);
    box-shadow:16px 0 40px rgba(15,23,42,.12);
    scrollbar-width:thin;
    transition:width .22s ease,transform .22s ease;
    z-index:180;
}

.td-brand{
    min-height:108px;
    padding:30px 28px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    border-bottom:1px solid rgba(255,255,255,.08);
}

.td-brand-main{
    display:flex;
    align-items:center;
    gap:12px;
    min-width:0;
}

.td-brand-logo{
    width:44px;
    height:44px;
    border-radius:12px;
    object-fit:contain;
    background:#fff;
    padding:5px;
    box-shadow:0 10px 22px rgba(0,0,0,.16);
    flex:0 0 auto;
}

.td-brand strong{
    display:block;
    font-size:22px;
    font-weight:800;
    letter-spacing:.01em;
    max-width:180px;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.td-brand span{
    display:block;
    color:#7dd3fc;
    font-size:15px;
    margin-top:7px;
    font-weight:600;
    max-width:190px;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.sidebar-toggle{
    width:46px;
    height:46px;
    border:none;
    border-radius:14px;
    display:inline-grid;
    place-items:center;
    cursor:pointer;
    transition:.2s ease;
}

.sidebar-toggle i{
    font-size:18px;
}

.sidebar-toggle:hover{
    transform:translateY(-1px);
}

.sidebar-toggle-desktop{
    background:rgba(255,255,255,.08);
    color:#fff;
    flex-shrink:0;
}

.sidebar-toggle-desktop:hover{
    background:rgba(255,255,255,.14);
}

.sidebar-toggle-mobile{
    display:none;
    background:#eef6ff;
    color:#075ca8;
    box-shadow:0 8px 20px rgba(11,95,199,.12);
}

.nav-section{
    font-size:12px;
    letter-spacing:.16em;
    color:rgba(255,255,255,.38);
    font-weight:900;
    margin:28px 0 8px;
    padding:0 28px;
}

.nav-link{
    min-height:48px;
    margin:6px 12px;
    padding:0 18px;
    border-radius:14px;
    display:flex;
    gap:15px;
    align-items:center;
    color:rgba(255,255,255,.72);
    text-decoration:none;
    font-size:16px;
    font-weight:700;
    transition:.18s ease;
    position:relative;
}

.nav-form{
    margin:0;
}

.nav-button{
    width:calc(100% - 24px);
    border:0;
    background:transparent;
    font-family:inherit;
    text-align:left;
    cursor:pointer;
}

.nav-link span{
    width:26px;
    min-width:26px;
    display:grid;
    place-items:center;
    font-size:18px;
    color:inherit;
}

.nav-link:hover{
    background:rgba(255,255,255,.09);
    color:#fff;
    transform:translateX(2px);
}

.nav-link.active{
    background:linear-gradient(90deg,rgba(29,140,255,.22),rgba(84,184,255,.08));
    color:#7dd3fc;
    box-shadow:inset 4px 0 var(--sky);
}

.td-main{
    margin-left:320px;
    width:calc(100% - 320px);
    min-height:100vh;
    overflow-x:hidden;
    transition:margin-left .22s ease,width .22s ease;
}

.td-topbar{
    min-height:104px;
    background:rgba(255,255,255,.9);
    backdrop-filter:blur(16px);
    border-bottom:1px solid var(--line);
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:0 38px;
    position:sticky;
    top:0;
    z-index:100;
}

.topbar-title-wrap{
    display:flex;
    align-items:center;
    gap:14px;
}

.td-topbar h1{
    margin:0;
    font-size:29px;
    font-weight:800;
    letter-spacing:0;
}

.top-actions{
    display:flex;
    align-items:center;
    gap:16px;
}

.app-shell.sidebar-collapsed .td-sidebar{
    width:92px;
}

.app-shell.sidebar-collapsed .td-main{
    margin-left:92px;
    width:calc(100% - 92px);
}

.app-shell.sidebar-collapsed .td-brand{
    padding:24px 18px;
    justify-content:center;
}

.app-shell.sidebar-collapsed .td-brand > div{
    display:none;
}

.app-shell.sidebar-collapsed .nav-section{
    opacity:0;
    height:0;
    margin:0;
    overflow:hidden;
    padding:0;
}

.app-shell.sidebar-collapsed .nav-link{
    justify-content:center;
    padding:0;
    margin:8px 14px;
    font-size:0;
}

.app-shell.sidebar-collapsed .nav-link span{
    width:32px;
    min-width:32px;
}

.app-shell.sidebar-collapsed .nav-link::after{
    content:attr(data-label);
    position:absolute;
    left:92px;
    top:50%;
    transform:translateY(-50%);
    background:#0f172a;
    color:#fff;
    padding:8px 12px;
    border-radius:10px;
    font-size:13px;
    font-weight:700;
    white-space:nowrap;
    opacity:0;
    pointer-events:none;
    transition:opacity .18s ease;
    box-shadow:0 12px 28px rgba(15,23,42,.24);
}

.app-shell.sidebar-collapsed .nav-link:hover::after{
    opacity:1;
}

.app-shell.sidebar-collapsed .nav-link.active{
    box-shadow:none;
}

.app-shell.sidebar-collapsed .nav-link.active span{
    color:#7dd3fc;
}

.season-pill{
    background:#eef6ff;
    color:#075ca8;
    border:1px solid #dbeafe;
    border-radius:999px;
    padding:11px 20px;
    font-weight:800;
    font-size:14px;
}

.avatar{
    width:54px;
    height:54px;
    border-radius:50%;
    display:grid;
    place-items:center;
    background:linear-gradient(135deg,var(--blue),var(--sky));
    color:#fff;
    font-weight:900;
    box-shadow:0 12px 24px rgba(11,95,199,.25);
}

.profile-link{
    display:flex;
    align-items:center;
    gap:12px;
    text-decoration:none;
    color:#0f172a;
    border-radius:999px;
    padding:6px 10px 6px 6px;
    transition:.18s ease;
}

.profile-link:hover{
    background:#f1f5f9;
}

.profile-link-text{
    display:flex;
    flex-direction:column;
    line-height:1.15;
}

.profile-link-text strong{
    font-size:14px;
    font-weight:900;
    max-width:160px;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}

.profile-link-text small{
    color:var(--muted);
    font-size:12px;
    font-weight:800;
    max-width:160px;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}

.td-content{
    padding:32px 38px 60px;
    width:100%;
    max-width:100%;
    overflow-x:hidden;
}

/* PANELS */
.td-panel,
.panel{
    background:rgba(255,255,255,.95);
    border:1px solid var(--line);
    border-radius:var(--radius);
    box-shadow:var(--shadow);
    padding:28px;
    margin-bottom:24px;
    width:100%;
    max-width:100%;
    overflow:hidden;
}

.td-panel h2,
.panel h2{
    margin:0;
    font-size:22px;
    font-weight:800;
    color:#0f172a;
}

.actions{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:16px;
    margin-bottom:22px;
}

/* BUTTONS */
.btn{
    border:0;
    background:linear-gradient(135deg,var(--blue),var(--blue2));
    color:#fff;
    padding:12px 18px;
    border-radius:14px;
    text-decoration:none;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    font-weight:800;
    cursor:pointer;
    transition:.2s ease;
    box-shadow:0 10px 22px rgba(11,95,199,.18);
}

.btn:hover{
    opacity:.96;
    transform:translateY(-2px);
    box-shadow:0 14px 30px rgba(11,95,199,.25);
}

.btn.secondary{
    background:#eef6ff;
    color:#075ca8;
    box-shadow:none;
}

/* FORMS */
.form-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:22px;
    margin-bottom:20px;
    width:100%;
}

.field{
    display:flex;
    flex-direction:column;
    width:100%;
}

.full,
.field.full{
    grid-column:1/-1;
}

.field label,
label{
    display:block;
    margin-bottom:8px;
    font-size:14px;
    font-weight:800;
    color:#334155;
}

.field input,
.field select,
.field textarea,
input,
select,
textarea{
    width:100%;
    max-width:100%;
    padding:13px 15px;
    border:1px solid #d8dee8;
    border-radius:14px;
    font-size:15px;
    background:#fff;
    outline:none;
    transition:.18s ease;
    color:#0f172a;
}

.field input:focus,
.field select:focus,
.field textarea:focus,
input:focus,
select:focus,
textarea:focus{
    border-color:var(--sky);
    box-shadow:0 0 0 4px rgba(84,184,255,.16);
}

.field textarea,
textarea{
    min-height:110px;
    resize:vertical;
}

input[type="color"]{
    padding:5px;
    min-height:44px;
    cursor:pointer;
}

.brand-preview{
    display:flex;
    align-items:center;
    gap:14px;
    padding:16px;
    border-radius:16px;
    color:#fff;
    background:linear-gradient(135deg,var(--preview-brand),var(--preview-accent));
    box-shadow:0 14px 32px rgba(15,23,42,.12);
}

.brand-preview img{
    width:58px;
    height:58px;
    border-radius:14px;
    object-fit:contain;
    background:#fff;
    padding:6px;
}

.brand-preview strong,
.brand-preview span{
    display:block;
}

.brand-preview strong{
    font-size:22px;
    font-weight:900;
}

.brand-preview span{
    margin-top:4px;
    opacity:.84;
    font-weight:700;
}

/* METRIC CARDS */
.metric-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(180px,1fr));
    gap:18px;
    margin-bottom:24px;
    width:100%;
}

.metric-link{
    display:block;
    text-decoration:none;
    color:inherit;
}

.metric-card{
    background:#fff;
    border:1px solid var(--line);
    border-radius:20px;
    padding:22px;
    box-shadow:var(--shadow);
    display:flex;
    gap:16px;
    min-height:140px;
    transition:.22s ease;
}

.metric-card:hover,
.metric-link:hover .metric-card{
    transform:translateY(-4px);
    box-shadow:var(--shadow-lg);
}

.metric-icon{
    width:56px;
    height:56px;
    min-width:56px;
    border-radius:16px;
    display:grid;
    place-items:center;
    font-size:24px;
    font-weight:900;
}

.mi-blue{background:#dfeaff;color:#005ac8;}
.mi-green{background:#dcfce7;color:#059669;}
.mi-gold{background:#fff0cf;color:#d97706;}
.mi-orange{background:#ffeadb;color:#ea580c;}

.metric-card h3{
    margin:0 0 12px;
    color:#475569;
    font-size:15px;
    font-weight:800;
}

.metric-number{
    font-size:34px;
    font-weight:900;
    line-height:1;
    color:#0f172a;
}

.metric-change{
    margin-top:11px;
    font-size:14px;
    color:var(--green);
    font-weight:700;
}

.metric-change.warn{
    color:var(--orange);
}

/* DASHBOARD */
.hero-dashboard{
    background:
        linear-gradient(135deg,rgba(7,24,39,.96),rgba(11,95,199,.92),rgba(84,184,255,.86)),
        radial-gradient(circle at top right,rgba(255,255,255,.22),transparent 30%);
    color:#fff;
    border-radius:28px;
    padding:36px;
    margin-bottom:26px;
    display:flex;
    justify-content:space-between;
    align-items:center;
    box-shadow:0 24px 60px rgba(11,95,199,.26);
}

.hero-dashboard h1{
    margin:0 0 8px;
    font-size:36px;
    font-weight:900;
    letter-spacing:0;
}

.hero-dashboard p{
    margin:0;
    color:rgba(255,255,255,.84);
    font-size:16px;
}

.hero-chip{
    background:rgba(255,255,255,.16);
    padding:14px 18px;
    border-radius:999px;
    font-weight:800;
    backdrop-filter:blur(10px);
}

.premium-metrics,
.mini-metrics{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:18px;
    margin-bottom:22px;
}

.premium-card-link,
.mini-link,
.region-link,
.funnel-link,
.ops-link{
    text-decoration:none;
    color:inherit;
    display:block;
}

.premium-card{
    background:#fff;
    border:1px solid var(--line);
    border-radius:24px;
    padding:24px;
    display:flex;
    gap:18px;
    box-shadow:var(--shadow);
    position:relative;
    overflow:hidden;
    transition:.22s ease;
}

.premium-card:hover,
.premium-card-link:hover .premium-card{
    transform:translateY(-4px);
    box-shadow:var(--shadow-lg);
}

.premium-card:after{
    content:"";
    position:absolute;
    right:-40px;
    top:-40px;
    width:120px;
    height:120px;
    border-radius:50%;
    opacity:.13;
}

.premium-card.blue:after{background:var(--blue);}
.premium-card.green:after{background:var(--green);}
.premium-card.gold:after{background:var(--gold);}
.premium-card.orange:after{background:var(--orange);}

.premium-icon{
    width:58px;
    height:58px;
    min-width:58px;
    border-radius:18px;
    display:grid;
    place-items:center;
    font-size:24px;
}

.premium-card.blue .premium-icon{background:#dfeaff;color:var(--blue);}
.premium-card.green .premium-icon{background:#dcfce7;color:var(--green);}
.premium-card.gold .premium-icon{background:#fff0cf;color:var(--gold);}
.premium-card.orange .premium-icon{background:#ffeadb;color:var(--orange);}

.premium-card span{
    color:#64748b;
    font-weight:800;
    font-size:14px;
}

.premium-card h2{
    margin:8px 0;
    font-size:32px;
}

.premium-card p{
    margin:0;
    color:var(--green);
    font-size:14px;
    font-weight:700;
}

.mini-metrics div{
    background:#fff;
    border:1px solid var(--line);
    border-radius:18px;
    padding:18px;
    box-shadow:0 8px 22px rgba(15,23,42,.05);
    transition:.2s;
}

.mini-link:hover div{
    transform:translateY(-3px);
    box-shadow:var(--shadow);
}

.mini-metrics strong{
    display:block;
    font-size:26px;
}

.mini-metrics span{
    color:var(--muted);
    font-weight:700;
}

.dashboard-grid,
.dashboard-pro-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:24px;
    margin-bottom:24px;
}

.funnel-row{
    display:grid;
    grid-template-columns:140px 1fr 50px;
    gap:15px;
    align-items:center;
    padding:14px 0;
    border-bottom:1px solid #eef2f7;
    transition:.2s;
}

.funnel-link:hover .funnel-row{
    background:#f8fbff;
}

.funnel-row span{
    display:block;
    color:var(--muted);
    font-size:13px;
}

.funnel-track,
.progress{
    height:10px;
    background:#eef2f7;
    border-radius:99px;
    overflow:hidden;
}

.funnel-track div,
.bar{
    height:100%;
    border-radius:99px;
}

.funnel-track div{
    background:linear-gradient(90deg,var(--blue),var(--sky));
}

.b-blue{background:var(--blue);}
.b-green{background:var(--green);}
.b-orange{background:var(--orange);}
.b-red{background:var(--red);}

.region-row{
    padding:13px 0;
    transition:.2s;
}

.region-link:hover{
    background:#f8fbff;
    border-radius:14px;
    padding:4px 8px;
}

.region-row div:first-child{
    display:flex;
    justify-content:space-between;
    margin-bottom:8px;
}

.region-row span{
    color:var(--muted);
}

.lead-pro-row{
    display:grid;
    grid-template-columns:52px 1fr auto;
    gap:14px;
    align-items:center;
    padding:15px 0;
    border-bottom:1px solid #eef2f7;
    text-decoration:none;
    color:inherit;
    transition:.2s;
}

.lead-pro-row:hover{
    background:#f8fbff;
    border-radius:14px;
    padding-left:10px;
}

.lead-avatar{
    width:48px;
    height:48px;
    border-radius:50%;
    display:grid;
    place-items:center;
    font-weight:900;
    background:#dfeaff;
    color:var(--blue);
}

.lead-pro-row strong{
    display:block;
    font-size:18px;
}

.lead-pro-row span{
    color:var(--muted);
}

.lead-pro-row em{
    font-style:normal;
    background:#eaf4ff;
    color:#075ca8;
    padding:7px 12px;
    border-radius:999px;
    font-weight:800;
    font-size:13px;
}

.trip-card{
    display:flex;
    justify-content:space-between;
    gap:14px;
    padding:16px;
    border:1px solid #eef2f7;
    border-radius:18px;
    margin-bottom:12px;
    text-decoration:none;
    color:inherit;
    transition:.2s;
    background:#fff;
}

.trip-card:hover{
    transform:translateY(-2px);
    box-shadow:var(--shadow);
}

.trip-card strong,
.trip-card span,
.trip-card small{
    display:block;
}

.trip-card span{
    color:#334155;
    margin-top:4px;
}

.trip-card small{
    color:var(--muted);
    margin-top:5px;
}

.trip-card b{
    color:var(--blue);
    font-size:18px;
    white-space:nowrap;
}

.ops-pill{
    display:flex;
    justify-content:space-between;
    align-items:center;
    background:#f8fafc;
    border:1px solid #e5e7eb;
    padding:14px 16px;
    border-radius:16px;
    margin-bottom:12px;
    transition:.2s;
}

.ops-link:hover .ops-pill{
    transform:translateY(-2px);
    box-shadow:var(--shadow);
}

.ops-pill strong{
    background:var(--blue);
    color:#fff;
    width:34px;
    height:34px;
    border-radius:50%;
    display:grid;
    place-items:center;
}

/* TABLES */
.table-wrap{
    width:100%;
    overflow-x:auto;
    overflow-y:hidden;
    -webkit-overflow-scrolling:touch;
    border-radius:18px;
}

.table{
    width:100%;
    border-collapse:collapse;
    background:#fff;
    min-width:100%;
}

.table th{
    background:#f8fafc;
    color:#475569;
    font-size:13px;
    font-weight:900;
    padding:15px 14px;
    text-align:left;
    border-bottom:1px solid #e5e7eb;
    white-space:nowrap;
}

.table td{
    padding:14px;
    border-bottom:1px solid #eef2f7;
    vertical-align:middle;
}

.table tbody tr{
    transition:.18s;
}

.table tbody tr:hover,
.click-row:hover{
    background:#f8fbff;
}

.click-row{
    cursor:pointer;
}

.table input,
.table select{
    width:100%;
    min-width:130px;
    padding:10px 12px;
    border:1px solid #d8dee8;
    border-radius:10px;
    font-size:14px;
}

.table-actions{
    display:flex;
    gap:8px;
    flex-wrap:wrap;
}

.pagination-bar{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:14px;
    flex-wrap:wrap;
    margin-top:18px;
    padding-top:18px;
    border-top:1px solid var(--line);
}

.pagination-summary{
    color:var(--muted);
    font-size:14px;
    font-weight:800;
}

.pagination-links{
    display:flex;
    align-items:center;
    gap:8px;
    flex-wrap:wrap;
}

.page-link,
.page-ellipsis{
    min-width:38px;
    height:38px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:0 12px;
    border-radius:999px;
    font-size:13px;
    font-weight:900;
}

.page-link{
    background:#f1f5f9;
    color:#0f172a;
    border:1px solid #e2e8f0;
    text-decoration:none;
    transition:.18s;
}

.page-link:hover,
.page-link.active{
    background:var(--blue);
    border-color:var(--blue);
    color:#fff;
    box-shadow:0 10px 22px rgba(37,99,235,.18);
}

.page-link.disabled{
    opacity:.45;
    pointer-events:none;
}

.page-ellipsis{
    color:var(--muted);
}

.inline-form{
    display:inline-flex;
    margin:0;
}

.badge{
    display:inline-block;
    padding:7px 14px;
    border-radius:999px;
    font-size:13px;
    font-weight:800;
    background:#eaf4ff;
    color:#075ca8;
    transition:.2s;
}

.badge:hover{
    transform:scale(1.04);
}

.badge.source{
    background:#eef6ff;
    color:#2563eb;
}

/* ACTION BUTTONS */
.act,
.pill-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:999px;
    font-size:13px;
    font-weight:800;
    text-decoration:none;
    transition:.2s;
    border:none;
    white-space:nowrap;
    cursor:pointer;
    font-family:inherit;
}

.act{
    padding:7px 14px;
}

.pill-btn{
    padding:10px 18px;
    min-width:80px;
}

.act:hover,
.pill-btn:hover{
    transform:translateY(-2px);
    box-shadow:0 10px 24px rgba(0,0,0,.08);
}

.act.view,
.pill-view{
    background:#dbeafe;
    color:#0b5cc4;
}

.act.edit,
.pill-edit{
    background:#fef3c7;
    color:#b45309;
}

.act.follow,
.pill-follow{
    background:#dcfce7;
    color:#047857;
}

.act.pay,
.pill-pay{
    background:#ede9fe;
    color:#6d28d9;
}

.act.delete,
.pill-delete{
    background:#fee2e2;
    color:#dc2626;
}

.action-pills{
    display:flex;
    gap:10px;
    flex-wrap:wrap;
    align-items:center;
}

/* PACKAGES */
.package-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:24px;
    width:100%;
}

.package-card{
    background:#fff;
    border:1px solid var(--line);
    border-radius:24px;
    overflow:hidden;
    box-shadow:var(--shadow);
    transition:.22s ease;
}

.package-card:hover{
    transform:translateY(-5px);
    box-shadow:var(--shadow-lg);
}

.package-img-wrap{
    display:block;
    height:210px;
    position:relative;
    overflow:hidden;
    text-decoration:none;
}

.package-img-wrap img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
    transition:.35s;
}

.package-card:hover .package-img-wrap img{
    transform:scale(1.06);
}

.package-status{
    position:absolute;
    top:14px;
    right:14px;
    padding:7px 13px;
    border-radius:999px;
    font-size:13px;
    font-weight:900;
    background:#eaf4ff;
    color:#075ca8;
    text-transform:capitalize;
}

.package-status.active{
    background:#dcfce7;
    color:#15803d;
}

.package-status.draft{
    background:#fff7ed;
    color:#c2410c;
}

.package-body{
    padding:20px;
}

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

.duration-pill{
    background:#f1f5f9;
    color:#334155;
    padding:7px 12px;
    border-radius:999px;
    font-size:13px;
    font-weight:900;
}

.package-body h3{
    margin:0 0 10px;
    font-size:21px;
    line-height:1.3;
}

.package-body h3 a{
    color:#0f172a;
    text-decoration:none;
}

.package-body h3 a:hover{
    color:var(--blue);
}

.package-meta{
    color:var(--muted);
    margin:8px 0;
    font-size:14px;
}

.package-meta-clean{
    display:flex;
    align-items:center;
    gap:8px;
    font-size:0;
}

.package-meta-clean i,
.package-meta-clean span{
    font-size:14px;
}

.package-money-clean{
    font-size:0;
}

.package-money-clean span{
    font-size:18px;
}

.package-price-row{
    display:flex;
    justify-content:space-between;
    align-items:center;
    background:#f8fafc;
    border:1px solid #eef2f7;
    border-radius:16px;
    padding:14px;
    margin:18px 0;
    gap:12px;
}

.package-price-row small{
    display:block;
    color:var(--muted);
    font-weight:800;
    margin-bottom:4px;
}

.package-price-row strong{
    font-size:18px;
}

.package-actions{
    display:flex;
    gap:8px;
    flex-wrap:wrap;
}

.package-hero{
    min-height:360px;
    background-size:cover;
    background-position:center;
    border-radius:30px;
    overflow:hidden;
    margin-bottom:26px;
    box-shadow:0 24px 60px rgba(15,23,42,.18);
}

.package-hero-overlay{
    min-height:360px;
    background:linear-gradient(90deg,rgba(2,6,23,.82),rgba(2,6,23,.35));
    color:#fff;
    padding:42px;
    display:flex;
    justify-content:space-between;
    align-items:flex-end;
    gap:24px;
}

.package-hero h1{
    font-size:42px;
    margin:18px 0 10px;
}

.package-hero p{
    font-size:18px;
    color:rgba(255,255,255,.86);
}

.package-hero-price{
    background:rgba(255,255,255,.16);
    border:1px solid rgba(255,255,255,.25);
    backdrop-filter:blur(12px);
    padding:22px;
    border-radius:22px;
    min-width:230px;
}

.package-hero-price small,
.package-hero-price span{
    display:block;
    color:rgba(255,255,255,.78);
}

.package-hero-price strong{
    display:block;
    font-size:34px;
    margin:8px 0;
}

.package-gallery{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:16px;
    margin-top:20px;
}

.package-gallery img{
    width:100%;
    height:170px;
    object-fit:cover;
    border-radius:16px;
}

.package-document-list{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
    gap:14px;
    margin-top:18px;
}

.package-document-card{
    display:flex;
    align-items:center;
    gap:14px;
    padding:16px;
    border:1px solid var(--line);
    border-radius:16px;
    background:#fff;
    color:var(--ink);
    text-decoration:none;
    box-shadow:0 10px 24px rgba(15,23,42,.05);
}

.package-document-icon{
    width:46px;
    height:46px;
    border-radius:14px;
    display:grid;
    place-items:center;
    flex:0 0 auto;
    color:#dc2626;
    background:#fee2e2;
    font-size:20px;
}

.package-document-body{
    min-width:0;
    flex:1;
}

.package-document-body strong,
.package-document-body small{
    display:block;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.package-document-body strong{
    font-weight:900;
}

.package-document-body small{
    margin-top:4px;
    color:var(--muted);
    font-weight:700;
}

.package-document-action,
.package-document-remove{
    flex:0 0 auto;
    color:var(--blue);
    font-weight:900;
    font-size:13px;
}

.package-document-remove{
    display:flex;
    align-items:center;
    gap:7px;
    color:#dc2626;
}

.package-import-layout{
    display:grid;
    grid-template-columns:minmax(300px,.9fr) minmax(0,1.1fr);
    gap:20px;
    align-items:start;
    margin-top:22px;
}

.package-import-preview{
    position:sticky;
    top:92px;
    min-height:720px;
    border:1px solid var(--line);
    border-radius:18px;
    overflow:hidden;
    background:#0f172a;
    box-shadow:0 18px 40px rgba(15,23,42,.12);
}

.package-import-preview iframe{
    width:100%;
    height:720px;
    border:0;
    display:block;
    background:#fff;
}

.package-import-review{
    display:grid;
    gap:18px;
}

.import-day-card{
    border:1px solid var(--line);
    border-left:5px solid var(--blue);
    border-radius:16px;
    padding:16px;
    background:#fff;
    margin-top:14px;
}

/* ITINERARY TIMELINE */
.timeline{
    margin-top:24px;
}

.timeline-item{
    display:grid;
    grid-template-columns:110px 1fr;
    gap:20px;
    padding:20px 0;
    border-bottom:1px solid #eef2f7;
}

.timeline-day{
    background:#eaf4ff;
    color:#075ca8;
    height:44px;
    border-radius:999px;
    display:grid;
    place-items:center;
    font-weight:900;
}

.timeline-content h3{
    margin:0 0 10px;
    font-size:22px;
}

.timeline-content p{
    color:#475569;
    line-height:1.7;
}

.package-meta-line{
    display:flex;
    flex-wrap:wrap;
    gap:12px;
    margin-top:14px;
}

.package-meta-line span{
    background:#f8fafc;
    border:1px solid #e5e7eb;
    padding:9px 12px;
    border-radius:999px;
    color:#334155;
    font-weight:700;
}

.sightseeing-box{
    margin-top:14px;
    background:#fff7ed;
    color:#9a3412;
    padding:12px 14px;
    border-radius:14px;
}

/* HOTELS PRICING MATRIX */
.pricing-wrapper{
    width:100%;
    overflow-x:auto;
    overflow-y:hidden;
    -webkit-overflow-scrolling:touch;
    border-radius:18px;
    border:1px solid #e5e7eb;
    background:#fff;
}

.pricing-table{
    width:100%;
    min-width:1400px;
    border-collapse:collapse;
}

.pricing-table th{
    background:#f8fafc;
    color:#475569;
    font-size:13px;
    font-weight:900;
    padding:15px 14px;
    text-align:left;
    border-bottom:1px solid #e5e7eb;
    white-space:nowrap;
}

.pricing-table td{
    padding:14px;
    border-bottom:1px solid #eef2f7;
}

.pricing-table input,
.pricing-table select{
    width:100%;
    min-width:140px;
    height:48px;
    border-radius:12px;
    box-sizing:border-box;
}

.remove-row{
    width:54px;
    height:54px;
    border:none;
    border-radius:14px;
    background:#dbeafe;
    color:#0b5cc4;
    font-size:28px;
    cursor:pointer;
}

/* ALERTS */
.alert{
    padding:14px 16px;
    border-radius:14px;
    margin-bottom:18px;
    font-weight:800;
    border:1px solid transparent;
    box-shadow:0 12px 26px rgba(15,23,42,.06);
}

.alert.error{
    background:#fff1f2;
    color:#991b1b;
    border-color:#fecdd3;
}

.alert.success{
    background:#ecfdf5;
    color:#166534;
    border-color:#bbf7d0;
}

.alert.warning{
    background:#fffbeb;
    color:#92400e;
    border-color:#fde68a;
}

.alert.info{
    background:#eff6ff;
    color:#1d4ed8;
    border-color:#bfdbfe;
}

.app-state-panel{
    max-width:720px;
    margin:44px auto;
    text-align:center;
    padding:42px 34px;
}

.app-state-icon{
    width:72px;
    height:72px;
    display:grid;
    place-items:center;
    margin:0 auto 18px;
    border-radius:22px;
    color:#dc2626;
    background:#fff1f2;
    border:1px solid #fecdd3;
    font-size:30px;
}

.app-state-panel h2{
    margin:0;
    font-size:28px;
}

.app-state-panel p{
    max-width:560px;
    margin:12px auto 0;
    color:var(--muted);
    font-weight:700;
    line-height:1.7;
}

.app-state-actions{
    display:flex;
    justify-content:center;
    flex-wrap:wrap;
    gap:12px;
    margin-top:24px;
}

.section-note{
    margin:8px 0 0;
    color:var(--muted);
    font-size:14px;
    font-weight:600;
}

.table-empty{
    text-align:center;
    padding:44px 20px;
    color:var(--muted);
}

.hotel-toolbar{
    display:grid;
    grid-template-columns:minmax(0,2fr) minmax(220px,1fr) auto;
    gap:16px;
    align-items:end;
    margin-bottom:24px;
}

.hotel-toolbar-actions{
    display:flex;
    gap:10px;
    flex-wrap:wrap;
}

.sharing-form{
    grid-template-columns:minmax(220px,2fr) minmax(120px,.7fr) minmax(120px,.7fr) auto;
}

.sharing-form .field{
    justify-content:end;
}

.sharing-form .field input[type="checkbox"]{
    width:auto;
    align-self:flex-start;
}

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

.hotel-subpanel{
    margin-top:26px;
}

.hotel-form-actions{
    margin-top:24px;
    display:flex;
    justify-content:flex-start;
}

.hotel-status.active{
    background:#dcfce7;
    color:#166534;
}

.hotel-status.inactive{
    background:#fee2e2;
    color:#991b1b;
}

.hotel-view-actions{
    display:flex;
    gap:10px;
    flex-wrap:wrap;
}

.hotel-summary-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:16px;
    margin-top:18px;
}

.hotel-summary-card{
    background:#f8fafc;
    border:1px solid #e5e7eb;
    border-radius:18px;
    padding:18px;
}

.hotel-summary-card span{
    display:block;
    color:var(--muted);
    font-size:13px;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.06em;
    margin-bottom:8px;
}

.hotel-summary-card strong{
    display:block;
    color:#0f172a;
    font-size:18px;
}

.hotel-detail-block{
    margin-top:22px;
    padding:22px;
    background:#fbfdff;
    border:1px solid #e5e7eb;
    border-radius:20px;
}

.hotel-detail-block h3{
    margin:0 0 10px;
    font-size:18px;
}

.hotel-detail-block p{
    margin:0;
    color:#334155;
    line-height:1.7;
}

.transporter-toolbar{
    display:grid;
    grid-template-columns:minmax(0,2fr) minmax(220px,1fr) auto;
    gap:16px;
    align-items:end;
    margin-bottom:24px;
}

.transporter-toolbar-actions{
    display:flex;
    gap:10px;
    flex-wrap:wrap;
}

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

.transporter-form-actions{
    margin-top:24px;
}

.transporter-view-actions{
    display:flex;
    gap:10px;
    flex-wrap:wrap;
}

.transporter-summary-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:16px;
    margin-top:18px;
}

.transporter-summary-card{
    background:#f8fafc;
    border:1px solid #e5e7eb;
    border-radius:18px;
    padding:18px;
}

.transporter-summary-card span{
    display:block;
    color:var(--muted);
    font-size:13px;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.06em;
    margin-bottom:8px;
}

.transporter-summary-card strong{
    display:block;
    color:#0f172a;
    font-size:18px;
}

.transporter-detail-block{
    margin-top:22px;
    padding:22px;
    background:#fbfdff;
    border:1px solid #e5e7eb;
    border-radius:20px;
}

.transporter-detail-block h3{
    margin:0 0 10px;
    font-size:18px;
}

.transporter-detail-block p{
    margin:0;
    color:#334155;
    line-height:1.7;
}

.reports-hero{
    background:
        linear-gradient(135deg,rgba(7,24,39,.96),rgba(11,95,199,.9),rgba(84,184,255,.84)),
        radial-gradient(circle at top right,rgba(255,255,255,.18),transparent 35%);
    color:#fff;
    border-radius:28px;
    padding:32px;
    margin-bottom:24px;
    display:grid;
    grid-template-columns:1.3fr 1fr;
    gap:24px;
    box-shadow:0 24px 60px rgba(11,95,199,.22);
}

.reports-kicker{
    display:inline-block;
    padding:8px 12px;
    border-radius:999px;
    background:rgba(255,255,255,.16);
    font-size:12px;
    font-weight:900;
    letter-spacing:.12em;
    text-transform:uppercase;
}

.reports-hero h1{
    margin:14px 0 10px;
    font-size:38px;
    line-height:1.1;
}

.reports-hero p{
    margin:0;
    color:rgba(255,255,255,.84);
    max-width:680px;
}

.reports-filter-card{
    background:rgba(255,255,255,.14);
    border:1px solid rgba(255,255,255,.16);
    border-radius:24px;
    padding:22px;
    backdrop-filter:blur(12px);
}

.reports-filter-card label{
    color:#fff;
}

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

.reports-filter-card input,
.reports-filter-card select{
    background:rgba(255,255,255,.96);
}

.reports-filter-actions{
    display:flex;
    gap:10px;
    flex-wrap:wrap;
    margin-top:16px;
}

.reports-chart-shell{
    height:320px;
}

.reports-stack{
    display:grid;
    gap:12px;
}

.reports-stat-row{
    display:flex;
    justify-content:space-between;
    gap:16px;
    align-items:center;
    background:#f8fafc;
    border:1px solid #e5e7eb;
    border-radius:16px;
    padding:16px 18px;
}

.reports-stat-row span{
    color:#475569;
    font-weight:700;
}

.reports-stat-row strong{
    color:#0f172a;
    font-size:18px;
}

.reports-stat-row.accent{
    background:#eef6ff;
    border-color:#dbeafe;
}

.reports-inline-note{
    margin-top:16px;
    padding:14px 16px;
    border-radius:16px;
    background:#f8fafc;
    color:#334155;
}

.reports-followup-summary{
    display:flex;
    flex-wrap:wrap;
    gap:12px;
    margin-bottom:16px;
}

.reports-followup-summary span{
    background:#f8fafc;
    border:1px solid #e5e7eb;
    padding:10px 12px;
    border-radius:999px;
    color:#334155;
    font-weight:700;
}

.reports-team-row{
    display:flex;
    justify-content:space-between;
    gap:16px;
    align-items:center;
    padding:16px 0;
    border-bottom:1px solid #eef2f7;
}

.reports-team-row:last-child{
    border-bottom:none;
}

.reports-team-row strong,
.reports-team-row span,
.reports-team-row b{
    display:block;
}

.reports-team-row span{
    color:var(--muted);
    margin-top:4px;
}

.reports-team-row b{
    color:var(--blue);
    white-space:nowrap;
    font-size:18px;
}

.hero-command{
    align-items:flex-start;
}

.hero-chip-stack{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:8px;
    min-width:240px;
}

.hero-chip-stack strong{
    font-size:32px;
    line-height:1;
}

.hero-chip-stack small{
    color:rgba(255,255,255,.8);
    font-size:13px;
    letter-spacing:.04em;
    text-transform:uppercase;
}

.dashboard-command-meta{
    display:flex;
    flex-wrap:wrap;
    gap:12px;
    margin-top:18px;
}

.dashboard-command-meta span{
    background:rgba(255,255,255,.14);
    border:1px solid rgba(255,255,255,.18);
    padding:10px 14px;
    border-radius:999px;
    color:#fff;
    font-weight:700;
}

.dashboard-chart-shell{
    height:300px;
}

.payments-toolbar{
    display:grid;
    grid-template-columns:minmax(0,2fr) minmax(220px,1fr) minmax(170px,1fr) minmax(170px,1fr) auto;
    gap:16px;
    align-items:end;
    margin-bottom:24px;
}

.payments-toolbar-actions{
    display:flex;
    gap:10px;
    flex-wrap:wrap;
}

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

.profile-layout{
    display:grid;
    grid-template-columns:320px minmax(0,1fr);
    gap:24px;
    align-items:start;
}

.profile-summary{
    text-align:center;
    position:sticky;
    top:128px;
}

.profile-avatar-xl{
    width:116px;
    height:116px;
    margin:0 auto 18px;
    border-radius:50%;
    display:grid;
    place-items:center;
    background:linear-gradient(135deg,var(--blue),var(--sky));
    color:#fff;
    font-size:36px;
    font-weight:900;
    box-shadow:0 18px 36px rgba(11,95,199,.24);
}

.profile-summary h2{
    margin-bottom:6px;
}

.profile-facts{
    display:grid;
    gap:12px;
    margin-top:22px;
    text-align:left;
}

.profile-facts div{
    background:#f8fafc;
    border:1px solid #e5e7eb;
    border-radius:14px;
    padding:14px;
}

.profile-facts span{
    display:block;
    color:var(--muted);
    font-size:12px;
    font-weight:900;
    text-transform:uppercase;
    margin-bottom:5px;
}

.profile-facts strong{
    color:#0f172a;
}

.quotations-toolbar{
    display:grid;
    grid-template-columns:minmax(320px,2fr) minmax(220px,1fr) 160px;
    gap:16px;
    align-items:end;
    margin-bottom:24px;
}

.quotations-toolbar-actions{
    display:flex;
    gap:10px;
    flex-wrap:wrap;
}

.quotations-toolbar-actions .btn{
    width:100%;
}

.quotation-metrics{
    grid-template-columns:repeat(4,minmax(240px,1fr));
}

.quotation-metrics .metric-card{
    min-width:0;
    overflow:hidden;
}

.quotation-metrics .metric-card > div:last-child{
    min-width:0;
}

.quotation-metrics .metric-number{
    font-size:30px;
    line-height:1.08;
    white-space:nowrap;
    max-width:100%;
}

.quotation-metrics .metric-change{
    line-height:1.25;
}

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

.quotation-pro-form .full{
    grid-column:1 / -1;
}

.quotation-total-box{
    background:#0f172a;
    color:#fff;
    border-radius:16px;
    padding:18px;
    display:flex;
    flex-direction:column;
    justify-content:center;
    min-height:86px;
}

.quotation-total-box span{
    color:rgba(255,255,255,.72);
    font-size:13px;
    font-weight:900;
    text-transform:uppercase;
    margin-bottom:8px;
}

.quotation-total-box strong{
    font-size:24px;
}

.quotation-form-actions{
    margin-top:6px;
}

.quotation-view-actions{
    display:flex;
    gap:10px;
    flex-wrap:wrap;
}

.quotation-summary-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:16px;
    margin-top:18px;
}

.quotation-summary-card{
    background:#f8fafc;
    border:1px solid #e5e7eb;
    border-radius:18px;
    padding:18px;
}

.quotation-summary-card span{
    display:block;
    color:var(--muted);
    font-size:13px;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.06em;
    margin-bottom:8px;
}

.quotation-summary-card strong{
    display:block;
    color:#0f172a;
    font-size:18px;
}

.quotation-status.draft{
    background:#e5e7eb;
    color:#334155;
}

.quotation-status.sent{
    background:#dbeafe;
    color:#1d4ed8;
}

.quotation-status.accepted{
    background:#dcfce7;
    color:#166534;
}

.quotation-status.rejected{
    background:#fee2e2;
    color:#991b1b;
}

.quotation-status.expired{
    background:#ffedd5;
    color:#9a3412;
}

.quotation-table small{
    color:var(--muted);
    font-weight:700;
}

.quotation-document{
    background:#fff;
    border:1px solid #dde5ef;
    border-radius:8px;
    overflow:hidden;
    box-shadow:var(--shadow);
}

.quotation-doc-header{
    display:flex;
    justify-content:space-between;
    gap:24px;
    padding:34px;
    background:#0f172a;
    color:#fff;
}

.quotation-kicker{
    display:block;
    color:#93c5fd;
    font-weight:900;
    text-transform:uppercase;
    letter-spacing:.08em;
    margin-bottom:10px;
}

.quotation-doc-header h1{
    margin:0 0 8px;
    font-size:42px;
}

.quotation-doc-header p{
    color:rgba(255,255,255,.78);
    margin:0;
}

.quotation-doc-meta{
    text-align:right;
    display:flex;
    flex-direction:column;
    gap:8px;
    min-width:240px;
}

.quotation-doc-meta strong{
    font-size:22px;
}

.quotation-doc-meta span{
    color:rgba(255,255,255,.82);
    font-weight:700;
}

.quotation-status-chip{
    align-self:flex-end;
    background:#e5e7eb;
    color:#334155 !important;
    padding:8px 12px;
    border-radius:999px;
    font-size:13px;
    font-weight:900 !important;
}

.quotation-status-chip.sent{ background:#dbeafe; color:#1d4ed8 !important; }
.quotation-status-chip.accepted{ background:#dcfce7; color:#166534 !important; }
.quotation-status-chip.rejected{ background:#fee2e2; color:#991b1b !important; }
.quotation-status-chip.expired{ background:#ffedd5; color:#9a3412 !important; }

.quotation-doc-grid,
.quotation-doc-sections{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:18px;
    padding:28px 34px 0;
}

.quotation-doc-grid section,
.quotation-doc-sections section,
.quotation-internal-note{
    border:1px solid #e5e7eb;
    border-radius:8px;
    padding:18px;
    background:#fff;
}

.quotation-doc-grid h3,
.quotation-doc-sections h3,
.quotation-internal-note h3{
    margin:0 0 10px;
    font-size:14px;
    color:#475569;
    text-transform:uppercase;
}

.quotation-doc-grid strong{
    display:block;
    font-size:18px;
    color:#0f172a;
    margin-bottom:8px;
}

.quotation-doc-grid p{
    margin:0;
    color:#475569;
    line-height:1.6;
}

.quotation-price-panel{
    margin:28px 34px 0;
    border:1px solid #dbe5f0;
    border-radius:8px;
    overflow:hidden;
}

.quotation-price-panel div{
    display:flex;
    justify-content:space-between;
    gap:20px;
    padding:14px 18px;
    border-bottom:1px solid #edf2f7;
}

.quotation-price-panel div:last-child{
    border-bottom:0;
}

.quotation-price-panel span{
    color:#475569;
    font-weight:800;
}

.quotation-price-panel strong{
    color:#0f172a;
}

.quotation-grand-total{
    background:#eef6ff;
}

.quotation-grand-total strong{
    font-size:24px;
    color:#075ca8;
}

.quotation-doc-sections{
    padding-bottom:28px;
}

.quotation-doc-sections .full{
    grid-column:1 / -1;
}

.quotation-lines{
    margin:0;
    padding-left:20px;
    color:#334155;
    line-height:1.7;
}

.quotation-lines li{
    margin-bottom:6px;
}

.quotation-internal-note{
    margin:0 34px 28px;
    background:#fffbeb;
    border-color:#fde68a;
}

.quotation-internal-note p{
    margin:0;
    color:#713f12;
}

.quotation-signoff{
    display:flex;
    justify-content:space-between;
    gap:24px;
    padding:24px 34px 34px;
    border-top:1px solid #e5e7eb;
}

.quotation-signoff strong,
.quotation-signoff span{
    display:block;
}

.quotation-signoff span{
    color:#64748b;
    margin-top:6px;
}

.quotation-signature{
    min-width:220px;
    border-top:1px solid #94a3b8;
    text-align:center;
    padding-top:10px;
    align-self:flex-end;
}

@media print{
    body{
        background:#fff !important;
    }

    .td-sidebar,
    .td-topbar,
    .quotation-screen-actions,
    .sidebar-toggle,
    .td-sidebar-backdrop{
        display:none !important;
    }

    .app-shell,
    .td-main,
    .td-content{
        display:block !important;
        margin:0 !important;
        padding:0 !important;
        width:100% !important;
    }

    .quotation-document{
        border:0;
        box-shadow:none;
        border-radius:0;
    }

    .quotation-doc-header{
        background:#0f172a !important;
        color:#fff !important;
        -webkit-print-color-adjust:exact;
        print-color-adjust:exact;
    }

    .quotation-doc-grid,
    .quotation-doc-sections{
        break-inside:avoid;
    }
}

/* LOGIN */
.login-page{
    min-height:100vh;
    display:grid;
    place-items:center;
    background:linear-gradient(135deg,#071827,#075aaa,#54b8ff);
}

.login-card{
    width:420px;
    max-width:92vw;
    background:#fff;
    border-radius:30px;
    padding:34px;
    box-shadow:0 30px 80px rgba(0,0,0,.24);
}

.login-card h1{
    margin:0 0 10px;
}

.login-card-wide{
    width:min(980px,94vw);
    padding:0;
    overflow:hidden;
}

.login-split{
    display:grid;
    grid-template-columns:1.05fr .95fr;
    min-height:560px;
}

.login-copy{
    padding:40px;
    background:
        linear-gradient(135deg,rgba(7,24,39,.98),rgba(11,95,199,.92),rgba(84,184,255,.84)),
        radial-gradient(circle at top right,rgba(255,255,255,.18),transparent 35%);
    color:#fff;
    display:flex;
    flex-direction:column;
    justify-content:center;
}

.login-copy .muted{
    color:rgba(255,255,255,.82);
}

.login-form-wrap{
    padding:40px;
    display:flex;
    flex-direction:column;
    justify-content:center;
}

.login-feature-list{
    display:flex;
    flex-wrap:wrap;
    gap:12px;
    margin-top:22px;
}

.login-feature-list span{
    background:rgba(255,255,255,.14);
    border:1px solid rgba(255,255,255,.16);
    padding:10px 14px;
    border-radius:999px;
    font-size:13px;
    font-weight:700;
}

.login-form-wrap form{
    display:grid;
    gap:16px;
}

.login-submit{
    width:100%;
    margin-top:6px;
}

.login-links{
    margin-top:18px;
    font-weight:700;
    display:flex;
    flex-wrap:wrap;
    gap:12px;
}

.login-links a{
    text-decoration:none;
}

.login-demo{
    margin-top:16px;
}

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

.muted{
    color:var(--muted);
}

/* PUBLIC LANDING */
.public-page{
    background:#f6f8fb;
    color:#0f172a;
}

.public-animate{
    animation:publicFadeUp .8s ease both;
}

.public-animate-card{
    animation:publicFadeUp .7s ease both;
}

.public-animate-card:nth-child(2){
    animation-delay:.08s;
}

.public-animate-card:nth-child(3){
    animation-delay:.16s;
}

.public-animate-card:nth-child(4){
    animation-delay:.24s;
}

.public-animate-card:nth-child(5){
    animation-delay:.32s;
}

.public-animate-card:nth-child(6){
    animation-delay:.4s;
}

.public-nav{
    position:sticky;
    top:0;
    z-index:50;
    min-height:76px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    padding:14px clamp(18px,4vw,58px);
    background:rgba(255,255,255,.94);
    border-bottom:1px solid rgba(226,232,240,.9);
    backdrop-filter:blur(16px);
}

.public-brand{
    display:flex;
    align-items:center;
    gap:12px;
    color:#0f172a;
    text-decoration:none;
    min-width:0;
}

.public-brand-mark{
    width:44px;
    height:44px;
    display:grid;
    place-items:center;
    border-radius:14px;
    background:#0b5fc7;
    color:#fff;
    font-weight:900;
    box-shadow:0 14px 30px rgba(11,95,199,.2);
    flex:0 0 auto;
    position:relative;
    overflow:hidden;
}

.public-brand-mark::after{
    content:"";
    position:absolute;
    inset:-40%;
    background:linear-gradient(120deg,transparent,rgba(255,255,255,.36),transparent);
    transform:translateX(-120%) rotate(12deg);
    animation:publicShine 4.8s ease-in-out infinite;
}

.public-brand strong,
.public-brand small{
    display:block;
    white-space:nowrap;
}

.public-brand strong{
    font-size:17px;
}

.public-brand small{
    margin-top:2px;
    color:#64748b;
    font-weight:800;
    font-size:12px;
}

.public-nav-links{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    flex-wrap:wrap;
}

.public-nav-links a{
    padding:9px 12px;
    color:#334155;
    text-decoration:none;
    font-weight:900;
    font-size:14px;
    border-radius:999px;
}

.public-nav-links a:hover{
    background:#eef6ff;
    color:#075ca8;
}

.public-login-btn{
    flex:0 0 auto;
}

.public-hero{
    min-height:82vh;
    position:relative;
    overflow:hidden;
    display:grid;
    align-items:center;
    padding:clamp(76px,9vw,118px) clamp(20px,6vw,86px);
    background:#071827;
    color:#fff;
}

.public-hero::after{
    content:"";
    position:absolute;
    inset:0;
    background:rgba(7,24,39,.2);
    pointer-events:none;
}

.public-hero-content{
    position:relative;
    z-index:2;
    max-width:760px;
}

.public-kicker{
    display:inline-flex;
    width:max-content;
    max-width:100%;
    padding:8px 12px;
    border-radius:999px;
    background:#eaf4ff;
    color:#075ca8;
    font-size:12px;
    font-weight:900;
    text-transform:uppercase;
    letter-spacing:.08em;
}

.public-hero .public-kicker{
    background:rgba(255,255,255,.12);
    color:#7dd3fc;
    border:1px solid rgba(255,255,255,.14);
}

.public-hero h1{
    margin:18px 0 14px;
    font-size:clamp(46px,7vw,86px);
    line-height:.96;
    letter-spacing:0;
}

.public-hero p{
    max-width:670px;
    margin:0;
    color:rgba(255,255,255,.82);
    font-size:clamp(17px,2vw,22px);
    line-height:1.6;
    font-weight:700;
}

.public-hero-actions,
.public-cta-actions{
    display:flex;
    flex-wrap:wrap;
    gap:12px;
    margin-top:28px;
}

.public-proof{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    margin-top:26px;
}

.public-proof span{
    padding:10px 13px;
    border-radius:999px;
    background:rgba(255,255,255,.1);
    border:1px solid rgba(255,255,255,.13);
    color:rgba(255,255,255,.82);
    font-weight:800;
}

.public-proof strong{
    color:#fff;
}

.public-hero-scene{
    position:absolute;
    inset:0;
    z-index:1;
    opacity:.72;
    pointer-events:none;
}

.scene-window{
    position:absolute;
    border:1px solid rgba(255,255,255,.16);
    background:rgba(255,255,255,.1);
    box-shadow:0 30px 80px rgba(0,0,0,.3);
    backdrop-filter:blur(18px);
    animation:publicFloat 7s ease-in-out infinite;
}

.scene-window-main{
    right:7vw;
    top:15vh;
    width:min(560px,42vw);
    min-height:360px;
    border-radius:28px;
    padding:24px;
    animation-delay:.2s;
}

.scene-topline{
    display:flex;
    gap:8px;
    margin-bottom:22px;
}

.scene-topline span{
    width:12px;
    height:12px;
    border-radius:50%;
    background:#7dd3fc;
}

.scene-metrics{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:12px;
}

.scene-metrics b{
    min-height:72px;
    display:grid;
    place-items:center;
    border-radius:18px;
    background:rgba(255,255,255,.14);
    color:#fff;
    align-content:center;
    gap:3px;
}

.scene-metrics b span,
.scene-metrics b small{
    display:block;
    text-align:center;
}

.scene-metrics b span{
    font-size:18px;
}

.scene-metrics b small{
    color:rgba(255,255,255,.64);
    font-size:11px;
    font-weight:800;
}

.scene-pipeline{
    display:grid;
    gap:12px;
    margin:24px 0;
}

.scene-pipeline span{
    height:14px;
    border-radius:999px;
    background:linear-gradient(90deg,#7dd3fc,#fbbf24,#7dd3fc);
    background-size:220% 100%;
    animation:publicProgressGlow 3.8s ease-in-out infinite;
}

.scene-table{
    display:grid;
    gap:10px;
}

.scene-table i{
    height:38px;
    border-radius:14px;
    background:rgba(255,255,255,.12);
    animation:publicPulseRow 3s ease-in-out infinite;
}

.scene-table i:nth-child(2){
    animation-delay:.25s;
}

.scene-table i:nth-child(3){
    animation-delay:.5s;
}

.scene-window-route{
    right:35vw;
    bottom:9vh;
    width:250px;
    border-radius:24px;
    padding:20px;
    animation-delay:.55s;
}

.scene-window-route strong,
.scene-window-route span{
    display:block;
}

.scene-window-route strong{
    margin-bottom:14px;
}

.scene-window-route span{
    height:10px;
    margin-top:12px;
    border-radius:999px;
    background:#fbbf24;
}

.scene-window-route span:nth-child(3){
    width:72%;
}

.scene-window-route span:nth-child(4){
    width:46%;
}

.scene-window-quote{
    right:10vw;
    bottom:14vh;
    width:210px;
    border-radius:24px;
    padding:20px;
    animation-delay:.9s;
}

.scene-window-quote small,
.scene-window-quote b,
.scene-window-quote em{
    display:block;
}

.scene-window-quote b{
    margin:8px 0;
    font-size:28px;
}

.scene-window-quote em{
    width:max-content;
    padding:7px 11px;
    border-radius:999px;
    background:#dcfce7;
    color:#047857;
    font-style:normal;
    font-weight:900;
}

.public-section{
    padding:clamp(56px,7vw,92px) clamp(20px,5vw,76px);
}

.public-section-tight{
    padding-top:clamp(44px,5vw,70px);
}

.public-section-head{
    max-width:760px;
    margin-bottom:28px;
}

.public-section h2,
.public-cta h2{
    margin:14px 0 10px;
    font-size:clamp(30px,4vw,48px);
    line-height:1.08;
}

.public-section p,
.public-cta p{
    margin:0;
    color:#64748b;
    font-size:17px;
    line-height:1.7;
    font-weight:700;
}

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

.public-feature-card,
.public-plan-card{
    background:#fff;
    border:1px solid #e2e8f0;
    border-radius:18px;
    box-shadow:0 12px 30px rgba(15,23,42,.06);
}

.public-feature-card{
    padding:24px;
    transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;
}

.public-feature-card:hover,
.public-plan-card:hover{
    transform:translateY(-5px);
    border-color:#bfdbfe;
    box-shadow:0 20px 48px rgba(15,23,42,.11);
}

.public-feature-card span{
    width:48px;
    height:48px;
    display:grid;
    place-items:center;
    border-radius:14px;
    background:#eef6ff;
    color:#075ca8;
    font-size:20px;
}

.public-feature-card h3{
    margin:18px 0 9px;
    font-size:20px;
}

.public-feature-card p{
    font-size:14px;
}

.public-workflow{
    display:grid;
    grid-template-columns:minmax(0,.85fr) minmax(320px,1.15fr);
    gap:28px;
    align-items:center;
    background:#fff;
    border-top:1px solid #e2e8f0;
    border-bottom:1px solid #e2e8f0;
}

.workflow-steps{
    display:grid;
    gap:12px;
}

.workflow-steps div{
    display:flex;
    align-items:center;
    gap:14px;
    padding:16px;
    border-radius:16px;
    background:#f8fafc;
    border:1px solid #e2e8f0;
    transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease;
}

.workflow-steps div:hover{
    transform:translateX(6px);
    border-color:#bfdbfe;
    box-shadow:0 14px 30px rgba(15,23,42,.08);
}

.workflow-steps b{
    width:46px;
    height:46px;
    display:grid;
    place-items:center;
    border-radius:14px;
    background:#0f172a;
    color:#fff;
}

.workflow-steps span{
    font-weight:900;
}

.public-plan-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:18px;
    align-items:stretch;
}

.public-plan-card{
    padding:24px;
    display:flex;
    flex-direction:column;
    gap:18px;
    transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;
}

.public-plan-card.featured{
    border-color:#93c5fd;
    box-shadow:0 18px 42px rgba(37,99,235,.12);
}

.plan-tag{
    display:inline-flex;
    width:max-content;
    max-width:100%;
    padding:7px 10px;
    border-radius:999px;
    background:#fffbeb;
    color:#92400e;
    font-size:12px;
    font-weight:900;
}

.public-plan-card h3{
    margin:14px 0 8px;
    font-size:24px;
}

.public-plan-card p{
    font-size:14px;
}

.plan-price strong{
    display:block;
    font-size:32px;
}

.plan-price span{
    color:#64748b;
    font-weight:800;
}

.public-plan-card ul{
    display:grid;
    gap:10px;
    padding:0;
    margin:0 0 auto;
    list-style:none;
}

.public-plan-card li{
    position:relative;
    padding-left:24px;
    color:#334155;
    font-weight:800;
    line-height:1.45;
}

.public-plan-card li::before{
    content:"";
    position:absolute;
    left:0;
    top:.5em;
    width:10px;
    height:10px;
    border-radius:50%;
    background:#059669;
}

.public-feature-access{
    padding-top:0;
}

.public-feature-matrix{
    overflow-x:auto;
    overflow-y:hidden;
    border:1px solid #dbe5f1;
    border-radius:20px;
    background:#fff;
    box-shadow:0 16px 42px rgba(15,23,42,.07);
    -webkit-overflow-scrolling:touch;
}

.feature-matrix-row{
    display:grid;
    grid-template-columns:minmax(280px,1.35fr) repeat(var(--plan-count), minmax(130px,.55fr));
    align-items:stretch;
    border-bottom:1px solid #e2e8f0;
    min-width:760px;
    transition:background .18s ease;
}

.feature-matrix-row:not(.feature-matrix-head):hover{
    background:#f8fbff;
}

.feature-matrix-row:last-child{
    border-bottom:0;
}

.feature-matrix-row > div{
    padding:16px;
    display:flex;
    align-items:center;
    border-right:1px solid #e2e8f0;
}

.feature-matrix-row > div:last-child{
    border-right:0;
}

.feature-matrix-head{
    position:sticky;
    top:76px;
    z-index:3;
    background:#0f172a;
    color:#fff;
    font-weight:900;
}

.feature-matrix-head > div{
    border-color:rgba(255,255,255,.12);
}

.feature-matrix-label{
    display:block !important;
}

.feature-matrix-label strong,
.feature-matrix-label span{
    display:block;
}

.feature-matrix-label strong{
    font-size:15px;
}

.feature-matrix-label span{
    margin-top:5px;
    color:#64748b;
    font-size:13px;
    line-height:1.45;
    font-weight:700;
}

.feature-state{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:7px;
    width:100%;
    min-height:38px;
    padding:8px 10px;
    border-radius:999px;
    font-size:12px;
    font-weight:900;
}

.feature-state.enabled{
    background:#dcfce7;
    color:#047857;
}

.feature-state.disabled{
    background:#f1f5f9;
    color:#94a3b8;
}

.public-cta{
    margin:0 clamp(20px,5vw,76px) clamp(56px,7vw,92px);
    padding:clamp(28px,4vw,44px);
    display:flex;
    justify-content:space-between;
    gap:28px;
    align-items:center;
    border-radius:24px;
    background:#0f172a;
    color:#fff;
}

.public-cta p{
    color:rgba(255,255,255,.74);
}

.public-cta .public-kicker{
    background:rgba(255,255,255,.12);
    color:#7dd3fc;
}

.public-footer{
    display:flex;
    justify-content:space-between;
    gap:18px;
    padding:24px clamp(20px,5vw,76px);
    border-top:1px solid #e2e8f0;
    color:#64748b;
    font-weight:800;
}

.public-footer a{
    text-decoration:none;
}

@keyframes publicFadeUp{
    from{
        opacity:0;
        transform:translateY(18px);
    }
    to{
        opacity:1;
        transform:translateY(0);
    }
}

@keyframes publicFloat{
    0%,100%{
        transform:translate3d(0,0,0);
    }
    50%{
        transform:translate3d(0,-14px,0);
    }
}

@keyframes publicProgressGlow{
    0%,100%{
        background-position:0% 50%;
        opacity:.72;
    }
    50%{
        background-position:100% 50%;
        opacity:1;
    }
}

@keyframes publicPulseRow{
    0%,100%{
        opacity:.58;
        transform:scaleX(.96);
        transform-origin:left;
    }
    50%{
        opacity:1;
        transform:scaleX(1);
    }
}

@keyframes publicShine{
    0%,74%{
        transform:translateX(-120%) rotate(12deg);
    }
    100%{
        transform:translateX(120%) rotate(12deg);
    }
}

/* RESPONSIVE */
@media(max-width:1280px){
    .reports-hero{
        grid-template-columns:1fr;
    }

    .reports-filter-grid{
        grid-template-columns:1fr;
    }

    .payments-toolbar{
        grid-template-columns:1fr 1fr;
    }

    .quotations-toolbar{
        grid-template-columns:1fr;
    }

    .agency-form-grid,
    .signup-grid{
        grid-template-columns:1fr;
    }

    .login-split{
        grid-template-columns:1fr;
    }

    .package-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .metric-grid,
    .premium-metrics,
    .mini-metrics{
        grid-template-columns:repeat(2,1fr);
    }

    .dashboard-grid,
    .dashboard-pro-grid{
        grid-template-columns:1fr;
    }

    .public-feature-grid,
    .public-plan-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .public-workflow{
        grid-template-columns:1fr;
    }

    .scene-window-main{
        width:min(500px,48vw);
    }
}

@media(max-width:1100px){
    .td-sidebar{
        width:260px;
    }

    .td-main{
        margin-left:260px;
        width:calc(100% - 260px);
    }

    .nav-link{
        font-size:15px;
        padding:0 14px;
    }

    .form-grid{
        grid-template-columns:1fr;
    }

    .hotel-form-grid,
    .hotel-summary-grid,
    .transporter-form-grid,
    .transporter-summary-grid,
    .quotation-form-grid,
    .quotation-summary-grid,
    .quotation-doc-grid,
    .quotation-doc-sections,
    .agency-form-grid,
    .profile-layout{
        grid-template-columns:1fr;
    }

    .quotation-doc-header,
    .quotation-signoff{
        flex-direction:column;
    }

    .quotation-doc-meta{
        text-align:left;
    }

    .quotation-status-chip{
        align-self:flex-start;
    }

    .profile-summary{
        position:static;
    }

    .pricing-table{
        min-width:1500px;
    }
}

@media(max-width:1180px){
    .app-shell{
        display:block;
    }

    .sidebar-toggle-mobile{
        display:inline-grid;
    }

    .sidebar-toggle-desktop{
        display:none;
    }

    .td-sidebar{
        position:fixed;
        width:290px;
        max-width:86vw;
        height:100vh;
        max-height:100vh;
        transform:translateX(-100%);
    }

    .td-main{
        margin-left:0;
        width:100%;
    }

    .app-shell.sidebar-open .td-sidebar{
        transform:translateX(0);
    }

    .app-shell.sidebar-open .td-sidebar-backdrop{
        opacity:1;
        pointer-events:auto;
    }

    .td-brand{
        padding:22px;
    }

    .nav-section{
        margin-top:20px;
    }

    .td-topbar{
        min-height:auto;
        padding:20px;
        gap:15px;
        flex-direction:row;
        align-items:center;
        justify-content:space-between;
    }

    .top-actions{
        width:auto;
        justify-content:flex-end;
    }

    .profile-link-text{
        display:none;
    }

    .td-content{
        padding:20px;
    }

    .actions{
        flex-direction:column;
        align-items:flex-start;
    }

    .hotel-toolbar{
        grid-template-columns:1fr;
    }

    .transporter-toolbar{
        grid-template-columns:1fr;
    }

    .payments-toolbar{
        grid-template-columns:1fr;
    }

    .metric-grid,
    .premium-metrics,
    .mini-metrics,
    .package-grid{
        grid-template-columns:1fr;
    }

    .hero-dashboard{
        flex-direction:column;
        align-items:flex-start;
        padding:26px;
    }

    .dashboard-command-meta{
        gap:10px;
    }

    .reports-hero{
        padding:24px;
    }

    .reports-hero h1{
        font-size:28px;
    }

    .hero-dashboard h1,
    .package-hero h1{
        font-size:28px;
    }

    .package-hero-overlay{
        flex-direction:column;
        align-items:flex-start;
        padding:24px;
    }

    .package-gallery{
        grid-template-columns:1fr 1fr;
    }

    .timeline-item{
        grid-template-columns:1fr;
    }

    .lead-pro-row{
        grid-template-columns:44px 1fr;
    }

    .lead-pro-row em{
        grid-column:1/-1;
        width:max-content;
    }

    .funnel-row{
        grid-template-columns:1fr;
    }

    .trip-card{
        flex-direction:column;
    }

    .pricing-table{
        min-width:1600px;
    }

    .public-nav{
        align-items:flex-start;
    }

    .public-nav-links{
        display:none;
    }

    .public-hero{
        min-height:78vh;
        padding-top:88px;
    }

    .scene-window-main{
        right:-120px;
        width:520px;
        opacity:.64;
    }

    .scene-window-route{
        right:28vw;
    }

    .feature-matrix-head{
        top:0;
    }
}

@media(max-width:480px){
    .td-topbar{
        flex-direction:column;
        align-items:flex-start;
    }

    .topbar-title-wrap,
    .top-actions{
        width:100%;
    }

    .top-actions{
        justify-content:space-between;
    }

    .profile-link{
        padding:0;
    }

    .td-content{
        padding:16px;
    }

    .login-copy,
    .login-form-wrap{
        padding:28px 24px;
    }

    .td-panel,
    .panel{
        padding:20px;
        border-radius:18px;
    }

    .metric-card,
    .premium-card{
        flex-direction:column;
    }

    .metric-number{
        font-size:30px;
    }

    .package-gallery{
        grid-template-columns:1fr;
    }

    .package-price-row{
        flex-direction:column;
        align-items:flex-start;
    }

    .pill-btn,
    .act{
        padding:8px 12px;
        font-size:12px;
    }

    .action-pills,
    .table-actions{
        gap:6px;
    }

    .public-nav{
        padding:12px 14px;
    }

    .public-brand small{
        display:none;
    }

    .public-brand strong{
        max-width:160px;
        overflow:hidden;
        text-overflow:ellipsis;
    }

    .public-login-btn{
        padding:10px 12px;
    }

    .public-hero-actions .btn,
    .public-cta-actions .btn{
        width:100%;
    }

    .public-proof span{
        width:100%;
    }

    .feature-matrix-row{
        min-width:720px;
    }
}

@media(max-width:900px){
    .public-feature-grid,
    .public-plan-grid{
        grid-template-columns:1fr;
    }

    .public-hero{
        min-height:76vh;
    }

    .public-hero-scene{
        opacity:.38;
    }

    .scene-window-main{
        right:-260px;
        top:13vh;
    }

    .scene-window-route,
    .scene-window-quote{
        display:none;
    }

    .public-cta{
        flex-direction:column;
        align-items:flex-start;
    }
}

@media(prefers-reduced-motion:reduce){
    .public-animate,
    .public-animate-card,
    .scene-window,
    .scene-pipeline span,
    .scene-table i,
    .public-brand-mark::after{
        animation:none !important;
    }

    .public-feature-card:hover,
    .public-plan-card:hover,
    .workflow-steps div:hover{
        transform:none;
    }
}

/* RESPONSIVE HARDENING */
body{
    overflow-x:hidden;
}

.td-content > *,
.td-panel > *,
.panel > *{
    max-width:100%;
}

.actions,
.top-actions,
.hotel-toolbar-actions,
.transporter-toolbar-actions,
.payments-toolbar-actions,
.quotations-toolbar-actions,
.quotation-view-actions,
.hotel-view-actions,
.transporter-view-actions,
.agency-form-actions,
.profile-facts,
.package-actions,
.table-actions,
.action-pills{
    flex-wrap:wrap;
}

.actions > div,
.td-panel h2,
.panel h2,
.section-note,
.metric-card > div:last-child,
.premium-card > div:last-child,
.package-body,
.quotation-doc-grid section,
.quotation-doc-sections section{
    min-width:0;
}

.actions h2,
.td-panel h2,
.panel h2,
.metric-card h3,
.package-body h3,
.quotation-doc-grid strong,
.quotation-summary-card strong{
    overflow-wrap:break-word;
}

.metric-grid,
.premium-metrics,
.mini-metrics,
.quotation-metrics{
    grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));
}

.metric-card,
.premium-card{
    min-height:unset;
}

.metric-number{
    font-size:30px;
    line-height:1.08;
    overflow-wrap:break-word;
}

.metric-change{
    line-height:1.3;
}

.hotel-toolbar,
.transporter-toolbar,
.payments-toolbar,
.quotations-toolbar,
.reports-filter-grid{
    grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));
}

.quotations-toolbar-actions,
.payments-toolbar-actions,
.hotel-toolbar-actions,
.transporter-toolbar-actions,
.reports-filter-actions{
    align-self:end;
}

.table-wrap{
    max-width:100%;
}

.table{
    min-width:760px;
}

.table th,
.table td{
    white-space:normal;
}

.table td{
    overflow-wrap:break-word;
    word-break:normal;
}

.table-actions form,
.package-actions form,
.quotation-view-actions form{
    margin:0;
}

.btn,
.act,
.pill-btn{
    max-width:100%;
    text-align:center;
}

.package-grid{
    grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));
}

.package-top,
.package-price-row,
.quotation-price-panel div,
.quotation-signoff{
    flex-wrap:wrap;
}

.package-img-wrap{
    aspect-ratio:16 / 10;
}

.quotation-doc-header,
.package-hero-overlay,
.reports-hero,
.hero-dashboard{
    min-width:0;
}

.quotation-doc-meta,
.package-hero-price{
    min-width:min(100%,230px);
}

@media(max-width:1180px){
    .app-shell.sidebar-collapsed .td-main{
        margin-left:0;
        width:100%;
    }

    .app-shell.sidebar-collapsed .td-sidebar{
        width:290px;
        max-width:86vw;
        transform:translateX(-100%);
    }

    .app-shell.sidebar-open.sidebar-collapsed .td-sidebar{
        transform:translateX(0);
    }

    .td-content{
        padding:24px;
    }

    .td-panel,
    .panel{
        padding:24px;
    }

    .actions{
        align-items:flex-start;
    }

    .actions .btn,
    .quotation-view-actions .btn,
    .hotel-view-actions .btn,
    .transporter-view-actions .btn{
        flex:1 1 180px;
    }

    .season-pill{
        display:none;
    }

    .metric-card{
        padding:20px;
    }

    .quotation-doc-header,
    .quotation-signoff,
    .package-hero-overlay{
        flex-direction:column;
    }

    .quotation-doc-meta{
        text-align:left;
    }

    .quotation-status-chip{
        align-self:flex-start;
    }
}

@media(max-width:640px){
    .td-content{
        padding:16px;
    }

    .td-panel,
    .panel{
        padding:18px;
        border-radius:14px;
    }

    .actions .btn,
    .quotation-view-actions .btn,
    .hotel-view-actions .btn,
    .transporter-view-actions .btn,
    .quotations-toolbar-actions .btn,
    .payments-toolbar-actions .btn,
    .hotel-toolbar-actions .btn,
    .transporter-toolbar-actions .btn{
        width:100%;
        flex-basis:100%;
    }

    .metric-card,
    .premium-card{
        flex-direction:row;
        gap:14px;
        padding:18px;
    }

    .metric-icon{
        width:48px;
        height:48px;
        min-width:48px;
        font-size:20px;
        border-radius:14px;
    }

    .metric-number{
        font-size:28px;
    }

    .quotation-metrics .metric-number{
        font-size:26px;
        white-space:normal;
    }

    .form-grid,
    .hotel-form-grid,
    .transporter-form-grid,
    .quotation-form-grid,
    .agency-form-grid,
    .signup-grid,
    .profile-layout,
    .quotation-doc-grid,
    .quotation-doc-sections,
    .hotel-summary-grid,
    .transporter-summary-grid,
    .quotation-summary-grid{
        grid-template-columns:1fr;
    }

    .quotation-doc-header,
    .quotation-doc-grid,
    .quotation-doc-sections,
    .quotation-signoff{
        padding-left:18px;
        padding-right:18px;
    }

    .quotation-price-panel,
    .quotation-internal-note{
        margin-left:18px;
        margin-right:18px;
    }

    .quotation-doc-header h1{
        font-size:30px;
    }

    .table{
        min-width:680px;
    }

    .profile-link .avatar{
        width:44px;
        height:44px;
    }
}

@media(max-width:420px){
    .td-content{
        padding:12px;
    }

    .metric-card,
    .premium-card{
        flex-direction:column;
    }

    .table{
        min-width:620px;
    }

    .btn{
        padding:11px 14px;
    }
}

/* PRODUCT UI RESPONSIVE REFRESH */
:root{
    --bg:#f4f7fb;
    --card:#ffffff;
    --line:#dfe7f1;
    --radius:14px;
    --shadow:0 10px 28px rgba(15,23,42,.07);
    --shadow-lg:0 18px 42px rgba(15,23,42,.12);
}

html,
body{
    min-height:100%;
}

body{
    background:var(--bg);
    -webkit-font-smoothing:antialiased;
    text-rendering:optimizeLegibility;
}

body.td-sidebar-open{
    overflow:hidden;
}

.td-sidebar{
    width:300px;
    scrollbar-gutter:stable;
}

.td-main{
    margin-left:300px;
    width:calc(100% - 300px);
}

.td-brand{
    min-height:86px;
    padding:22px 24px;
}

.td-brand strong{
    font-size:20px;
}

.td-brand span{
    font-size:13px;
}

.nav-section{
    margin:22px 0 8px;
    padding:0 22px;
}

.nav-link{
    min-height:44px;
    margin:5px 10px;
    padding:0 14px;
    border-radius:12px;
    font-size:15px;
}

.nav-link:hover{
    transform:none;
}

.app-shell.sidebar-collapsed .td-sidebar{
    width:84px;
}

.app-shell.sidebar-collapsed .td-main{
    margin-left:84px;
    width:calc(100% - 84px);
}

.app-shell.sidebar-collapsed .nav-link::after{
    left:84px;
}

.td-topbar{
    min-height:78px;
    padding:0 clamp(20px,2.6vw,34px);
    background:rgba(255,255,255,.92);
    box-shadow:0 1px 0 rgba(15,23,42,.04);
}

.td-topbar h1{
    font-size:clamp(20px,2vw,27px);
    line-height:1.15;
}

.top-actions{
    gap:12px;
}

.season-pill{
    padding:9px 14px;
    font-size:13px;
}

.avatar{
    width:46px;
    height:46px;
}

.td-content{
    padding:clamp(20px,2.6vw,34px);
}

.td-panel,
.panel{
    border-radius:16px;
    border-color:#e2e8f0;
    padding:clamp(20px,2vw,28px);
    box-shadow:0 10px 28px rgba(15,23,42,.06);
}

.actions{
    gap:14px;
}

.section-note{
    line-height:1.55;
}

.btn{
    min-height:44px;
    border-radius:12px;
    padding:11px 16px;
}

.btn.secondary{
    border:1px solid #dbeafe;
}

.field input,
.field select,
.field textarea,
input,
select,
textarea{
    min-height:44px;
    border-radius:12px;
    border-color:#d8e1ec;
    line-height:1.35;
}

.metric-grid,
.premium-metrics,
.mini-metrics,
.quotation-metrics{
    gap:16px;
}

.metric-card,
.premium-card{
    border-radius:16px;
    padding:20px;
    min-height:118px;
}

.metric-icon,
.premium-icon{
    border-radius:14px;
}

.metric-number,
.premium-card h2{
    letter-spacing:0;
}

.table-wrap,
.pricing-wrapper{
    border:1px solid #e5edf5;
    border-radius:14px;
    background:#fff;
}

.table th,
.pricing-table th{
    background:#f6f9fc;
    color:#334155;
    padding:13px 14px;
}

.table td,
.pricing-table td{
    padding:13px 14px;
}

.table tbody tr:last-child td,
.pricing-table tbody tr:last-child td{
    border-bottom:0;
}

.badge,
.act,
.pill-btn{
    border-radius:999px;
}

.badge,
.act,
.pill-btn,
.money-cell,
.due-cell,
.status-cell{
    white-space:nowrap;
    overflow-wrap:normal;
    word-break:normal;
}

.booking-table{
    min-width:1120px;
    table-layout:fixed;
}

.booking-col-customer{width:14%;}
.booking-col-destination{width:11%;}
.booking-col-travel{width:9%;}
.booking-col-hotel{width:9%;}
.booking-col-amount{width:10%;}
.booking-col-due{width:8%;}
.booking-col-stage{width:19%;}
.booking-col-status{width:9%;}
.booking-col-action{width:11%;}

.booking-table th,
.booking-table td{
    vertical-align:middle;
}

.booking-table .stage-cell strong{
    display:block;
    white-space:normal;
    overflow-wrap:normal;
    word-break:normal;
}

.booking-table .progress{
    min-width:160px;
    max-width:240px;
}

.booking-table .table-actions{
    min-width:150px;
}

.alert{
    border-radius:12px;
    line-height:1.45;
}

.subscription-row-form{
    display:grid;
    grid-template-columns:minmax(130px,1fr) minmax(120px,.9fr) minmax(132px,.9fr) minmax(132px,.9fr) minmax(150px,1fr) auto;
    gap:8px;
    align-items:center;
}

.subscription-row-form input,
.subscription-row-form select{
    min-width:0;
}

.hero-dashboard,
.reports-hero{
    border-radius:18px;
    padding:clamp(24px,3vw,34px);
    background:linear-gradient(135deg,#0b253f,#0b5fc7 58%,#1d8cff);
}

.hero-dashboard h1,
.reports-hero h1{
    font-size:clamp(28px,3vw,38px);
}

.dashboard-command-meta{
    flex-wrap:wrap;
}

.dashboard-command-meta span,
.hero-chip,
.reports-kicker{
    border-radius:999px;
}

.dashboard-chart-shell{
    min-height:260px;
}

.dashboard-chart-shell canvas{
    max-width:100%;
}

.package-card,
.package-img-wrap img,
.package-gallery img,
.hotel-summary-card,
.transporter-summary-card,
.quotation-summary-card{
    border-radius:14px;
}

.package-card{
    overflow:hidden;
}

.package-hero{
    min-height:320px;
    border-radius:18px;
}

.package-hero-overlay{
    min-height:320px;
    padding:clamp(24px,3vw,38px);
}

.package-hero h1{
    font-size:clamp(30px,3.2vw,42px);
    line-height:1.08;
}

.package-hero p{
    line-height:1.45;
}

.package-hero-price{
    border-radius:16px;
}

.timeline-item{
    gap:16px;
}

@media(min-width:1181px){
    .td-sidebar-backdrop{
        display:none;
    }
}

@media(max-width:1180px){
    .app-shell{
        display:block;
    }

    .sidebar-toggle-mobile{
        display:inline-grid;
    }

    .sidebar-toggle-desktop{
        display:none;
    }

    .td-sidebar{
        width:304px;
        max-width:88vw;
        height:100vh;
        max-height:100vh;
        transform:translate3d(-104%,0,0);
        z-index:300;
        box-shadow:22px 0 50px rgba(15,23,42,.28);
    }

    .td-main,
    .app-shell.sidebar-collapsed .td-main{
        margin-left:0;
        width:100%;
    }

    .app-shell.sidebar-collapsed .td-sidebar{
        width:304px;
        max-width:88vw;
        transform:translate3d(-104%,0,0);
    }

    .app-shell.sidebar-open .td-sidebar,
    .app-shell.sidebar-open.sidebar-collapsed .td-sidebar{
        transform:translate3d(0,0,0);
    }

    .app-shell.sidebar-open .td-sidebar-backdrop{
        opacity:1;
        pointer-events:auto;
        backdrop-filter:blur(3px);
    }

    .td-sidebar-backdrop{
        z-index:290;
    }

    .td-topbar{
        min-height:72px;
        padding:14px 20px;
    }

    .td-content{
        padding:22px;
    }

    .season-pill{
        display:none;
    }

    .profile-link-text strong,
    .profile-link-text small{
        max-width:120px;
    }
}

@supports (height:100dvh){
    @media(max-width:1180px){
        .td-sidebar{
            height:100dvh;
            max-height:100dvh;
        }
    }
}

@media(max-width:820px){
    .package-import-layout{
        grid-template-columns:1fr;
    }

    .package-import-preview{
        position:static;
        min-height:420px;
    }

    .package-import-preview iframe{
        height:420px;
    }

    .td-topbar{
        align-items:center;
    }

    .top-actions{
        gap:8px;
    }

    .td-content{
        padding:16px;
    }

    .td-panel,
    .panel{
        padding:18px;
        border-radius:14px;
    }

    .metric-card,
    .premium-card{
        min-height:unset;
    }

    .table-wrap{
        margin-left:-2px;
        margin-right:-2px;
    }

    .subscription-row-form{
        grid-template-columns:1fr;
        min-width:260px;
    }

    .hero-dashboard,
    .reports-hero,
    .package-hero-overlay{
        padding:22px;
    }

    .hero-chip,
    .hero-chip-stack{
        width:100%;
    }

    .package-hero,
    .package-hero-overlay{
        min-height:280px;
    }

    .package-hero-price{
        width:100%;
        min-width:0;
    }

    .funnel-row{
        grid-template-columns:1fr;
        gap:8px;
    }

    .lead-pro-row{
        grid-template-columns:44px 1fr;
    }

    .lead-pro-row em{
        grid-column:1 / -1;
        justify-self:start;
    }

    .table-wrap{
        overflow:visible;
        border:0;
        background:transparent;
    }

    .table.responsive-card-table{
        min-width:0;
        display:block;
        border-collapse:separate;
        background:transparent;
    }

    .table.responsive-card-table thead{
        display:none;
    }

    .table.responsive-card-table tbody{
        display:grid;
        gap:12px;
    }

    .table.responsive-card-table tr{
        display:block;
        border:1px solid #e2e8f0;
        border-radius:16px;
        background:#fff;
        padding:8px;
        box-shadow:0 8px 22px rgba(15,23,42,.06);
    }

    .table.responsive-card-table td{
        display:flex;
        align-items:flex-start;
        justify-content:space-between;
        gap:14px;
        padding:11px 8px;
        border-bottom:1px solid #edf2f7;
        text-align:right;
        min-height:42px;
    }

    .table.responsive-card-table td:last-child{
        border-bottom:0;
    }

    .table.responsive-card-table td::before{
        content:attr(data-label);
        flex:0 0 42%;
        max-width:42%;
        color:#64748b;
        font-size:12px;
        font-weight:900;
        letter-spacing:.04em;
        text-transform:uppercase;
        text-align:left;
    }

    .table.responsive-card-table td[data-label="Action"],
    .table.responsive-card-table td[data-label="Actions"]{
        display:block;
        text-align:left;
    }

    .table.responsive-card-table td[data-label="Action"]::before,
    .table.responsive-card-table td[data-label="Actions"]::before{
        display:block;
        max-width:none;
        margin-bottom:8px;
    }

    .table.responsive-card-table td.table-empty,
    .table.responsive-card-table td.table-empty-card{
        display:block;
        text-align:center;
        color:#64748b;
        padding:24px 12px;
    }

    .table.responsive-card-table td.table-empty::before,
    .table.responsive-card-table td.table-empty-card::before{
        display:none;
    }

    .table.responsive-card-table .table-actions,
    .table.responsive-card-table .action-pills{
        justify-content:flex-start;
    }
}

/* PHONE LAYOUT FIXES */
@media(max-width:640px){
    .actions > div:not(:only-child):last-child{
        display:flex;
        align-items:center;
        flex-wrap:wrap;
        gap:10px;
        width:100%;
    }
}

@media(max-width:480px){
    .td-topbar{
        flex-direction:row;
        align-items:center;
        justify-content:space-between;
        gap:10px;
        min-height:68px;
        padding:12px 16px;
    }

    .topbar-title-wrap{
        width:auto;
        flex:1 1 auto;
        min-width:0;
        gap:10px;
    }

    .topbar-title-wrap .sidebar-toggle{
        flex:0 0 auto;
    }

    .td-topbar h1{
        flex:1 1 auto;
        min-width:0;
        font-size:20px;
        line-height:1.15;
        white-space:nowrap;
        overflow:hidden;
        text-overflow:ellipsis;
    }

    .top-actions{
        width:auto;
        flex:0 0 auto;
        justify-content:flex-end;
        flex-wrap:nowrap;
        gap:0;
    }

    .profile-link{
        padding:0;
    }

    .profile-link .avatar{
        width:42px;
        height:42px;
    }
}

/* PACKAGE BUILDER FIXES */
.package-grid{
    grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),420px));
    align-items:start;
}

.package-card{
    width:100%;
}

.package-price-row .package-money-clean{
    font-size:0;
}

.package-price-row .package-money-clean span{
    font-size:18px;
}

.package-img-wrap{
    width:100%;
    height:auto;
    aspect-ratio:16 / 10;
    background:#eef2f7;
}

.package-img-wrap img{
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center;
}

.package-hero{
    background-repeat:no-repeat;
    background-position:center;
    background-size:cover;
}

.package-gallery img{
    background:#eef2f7;
    object-fit:cover;
    object-position:center;
}
