:root {
  --navy: #0F2D46;
  --navy-2: #173C5A;
  --gold: #C6A15B;
  --bg: #F3F5F7;
  --card: #FFFFFF;
  --text: #17212B;
  --muted: #72808F;
  --line: #E2E7EC;
  --green: #2F8F5B;
  --green-bg: #EAF6EF;
  --red: #B84B4B;
  --red-bg: #FBECEC;
  --amber: #B27A13;
  --amber-bg: #FFF5DE;
  --blue: #3976A8;
  --blue-bg: #EAF3FA;
  --grey-bg: #EEF1F4;
  --shadow: 0 8px 28px rgba(15,45,70,.08);
  --radius: 14px;
  --sidebar: 246px;
}
* { box-sizing: border-box; }
html, body { margin: 0; min-height: 100%; font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; color: var(--text); background: var(--bg); }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
.app-shell { min-height: 100vh; display: grid; grid-template-columns: var(--sidebar) 1fr; }
.sidebar { position: sticky; top: 0; height: 100vh; background: var(--navy); color: #fff; padding: 18px 14px; display: flex; flex-direction: column; z-index: 30; }
.brand { display: flex; align-items: center; gap: 12px; padding: 8px 8px 22px; }
.brand-mark { width: 42px; height: 42px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.16); border-radius: 12px; background: linear-gradient(135deg,var(--gold),#E0C687); color: var(--navy); font-weight: 900; letter-spacing: -.04em; }
.brand-title { font-weight: 800; letter-spacing: -.02em; }
.brand-subtitle { font-size: 12px; color: rgba(255,255,255,.56); margin-top: 2px; }
.nav { display: grid; gap: 6px; }
.nav-item { width: 100%; display: flex; align-items: center; gap: 10px; padding: 11px 12px; border: 0; border-radius: 10px; background: transparent; color: rgba(255,255,255,.72); text-align: left; }
.nav-item span { width: 20px; text-align: center; opacity: .9; }
.nav-item:hover, .nav-item.active { background: rgba(255,255,255,.10); color: #fff; }
.nav-item.active { box-shadow: inset 3px 0 0 var(--gold); }
.sidebar-footer { margin-top: auto; padding: 12px 8px 4px; }
.sync-pill { display: flex; align-items: center; gap: 8px; font-size: 12px; color: rgba(255,255,255,.78); }
.dot { width: 8px; height: 8px; border-radius: 50%; background: #5FD18A; box-shadow: 0 0 0 4px rgba(95,209,138,.12); }
.main { min-width: 0; }
.topbar { position: sticky; top: 0; z-index: 20; height: 82px; background: rgba(243,245,247,.92); backdrop-filter: blur(10px); border-bottom: 1px solid var(--line); display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px 22px; }
.topbar-left { display: flex; align-items: center; gap: 12px; min-width: 0; }
h1 { font-size: 22px; line-height: 1.1; margin: 0; letter-spacing: -.03em; }
.topbar p { margin: 4px 0 0; color: var(--muted); font-size: 13px; }
.topbar-actions { display: flex; align-items: center; gap: 10px; }
.year-select-wrap { display: flex; align-items: center; gap: 8px; color: var(--muted); font-size: 12px; background: #fff; border: 1px solid var(--line); padding: 5px 8px 5px 10px; border-radius: 10px; }
.year-select-wrap select { border: 0; outline: 0; background: transparent; color: var(--text); font-weight: 700; }
.primary-btn, .secondary-btn, .danger-btn, .icon-btn { border-radius: 9px; min-height: 38px; border: 1px solid transparent; padding: 0 13px; font-weight: 700; }
.primary-btn { background: var(--navy); color: #fff; }
.primary-btn:hover { background: var(--navy-2); }
.secondary-btn { background: #fff; border-color: var(--line); color: var(--text); }
.danger-btn { background: #fff; border-color: #E9CACA; color: var(--red); }
.icon-btn { width: 38px; padding: 0; display: grid; place-items: center; background: #fff; border-color: var(--line); color: var(--text); font-size: 18px; }
.view { display: none; padding: 22px; }
.view.active { display: block; }
.grid { display: grid; gap: 16px; }
.kpi-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.card { background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); }
.kpi { padding: 17px; }
.kpi-label { font-size: 12px; color: var(--muted); margin-bottom: 9px; }
.kpi-value { font-size: 28px; font-weight: 850; letter-spacing: -.04em; }
.kpi-trend { margin-top: 6px; font-size: 12px; color: var(--muted); }
.kpi-trend strong { color: var(--green); }
.section-card { padding: 18px; margin-top: 16px; }
.section-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.section-header h2 { font-size: 16px; margin: 0; }
.section-header p { margin: 3px 0 0; color: var(--muted); font-size: 12px; }
.toolbar { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.toolbar input, .toolbar select { height: 38px; border: 1px solid var(--line); border-radius: 9px; padding: 0 10px; background: #fff; color: var(--text); outline: none; }
.toolbar input { min-width: 230px; }
.table-wrap { overflow: auto; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
table { width: 100%; border-collapse: collapse; min-width: 980px; }
th { position: sticky; top: 0; background: #F7F9FA; color: #5B6874; font-size: 11px; text-transform: uppercase; letter-spacing: .05em; text-align: left; padding: 10px; border-bottom: 1px solid var(--line); white-space: nowrap; }
td { padding: 10px; border-bottom: 1px solid var(--line); vertical-align: middle; font-size: 13px; }
tr:last-child td { border-bottom: 0; }
.company { font-weight: 800; }
.subline { display: block; color: var(--muted); font-size: 11px; margin-top: 2px; }
.status-btn { border: 1px solid var(--line); background: #fff; border-radius: 999px; min-width: 84px; padding: 6px 9px; font-size: 11px; font-weight: 750; }
.status-awaiting { color: var(--amber); background: var(--amber-bg); border-color: #F1D99D; }
.status-todo { color: var(--red); background: var(--red-bg); border-color: #F0C8C8; }
.status-complete { color: var(--green); background: var(--green-bg); border-color: #BFE0CB; }
.status-na { color: var(--blue); background: var(--blue-bg); border-color: #BCD7EA; }
.traffic { width: 14px; height: 14px; border-radius: 50%; background: #B7C0C8; box-shadow: 0 0 0 4px #EEF1F4; margin: auto; }
.traffic.green { background: var(--green); box-shadow: 0 0 0 4px var(--green-bg); }
.traffic.red { background: var(--red); box-shadow: 0 0 0 4px var(--red-bg); }
.badge { display: inline-flex; align-items: center; gap: 6px; border-radius: 999px; padding: 5px 8px; font-size: 11px; font-weight: 750; background: var(--grey-bg); color: #52606D; }
.badge.blue { background: var(--blue-bg); color: var(--blue); }
.badge.gold { background: #F8F0DF; color: #8B671E; }
.badge.green { background: var(--green-bg); color: var(--green); }
.actions { display: flex; gap: 6px; }
.link-btn { background: transparent; border: 0; padding: 4px 6px; color: var(--navy); font-weight: 800; font-size: 12px; }
.empty { padding: 34px 20px; text-align: center; color: var(--muted); }
.mobile-cards { display: none; gap: 10px; }
.audit-card { padding: 14px; }
.audit-card-top { display: flex; justify-content: space-between; gap: 12px; }
.audit-card h3 { font-size: 15px; margin: 0; }
.audit-card .meta { color: var(--muted); font-size: 12px; margin-top: 4px; }
.audit-card-status { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; margin-top: 12px; }
.audit-card-status div { display: flex; justify-content: space-between; gap: 10px; padding: 7px 9px; border: 1px solid var(--line); border-radius: 8px; font-size: 11px; }
.timeline { display: grid; gap: 10px; }
.timeline-item { display: grid; grid-template-columns: 110px 1fr auto; gap: 14px; align-items: center; padding: 12px 0; border-bottom: 1px solid var(--line); }
.timeline-item:last-child { border-bottom: 0; }
.timeline-date { font-size: 12px; color: var(--muted); }
.timeline-main { font-weight: 750; font-size: 13px; }
.timeline-main span { display: block; color: var(--muted); font-weight: 500; margin-top: 3px; }
.flight-list { display: grid; gap: 10px; }
.flight-card { display: grid; grid-template-columns: 1.3fr .9fr .9fr .7fr auto; gap: 16px; align-items: center; padding: 14px 16px; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.flight-route { font-size: 16px; font-weight: 850; letter-spacing: -.02em; }
.flight-route span { color: var(--gold); padding: 0 5px; }
.flight-meta { color: var(--muted); font-size: 11px; margin-top: 4px; }
.placeholder { padding: 26px; text-align: center; }
.placeholder h2 { margin: 0 0 8px; font-size: 18px; }
.placeholder p { max-width: 560px; margin: 0 auto; color: var(--muted); font-size: 13px; line-height: 1.55; }
.settings-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.setting-card { padding: 18px; }
.setting-card h3 { margin: 0 0 7px; font-size: 15px; }
.setting-card p { color: var(--muted); font-size: 12px; line-height: 1.55; }
.button-row { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 13px; }
.modal-backdrop { position: fixed; inset: 0; background: rgba(7,22,34,.45); z-index: 80; }
.modal { position: fixed; z-index: 90; top: 50%; left: 50%; transform: translate(-50%,-50%); width: min(720px, calc(100vw - 28px)); max-height: calc(100vh - 28px); overflow: auto; background: #fff; border-radius: 16px; box-shadow: 0 24px 80px rgba(0,0,0,.28); padding: 20px; }
.modal-header { display: flex; justify-content: space-between; gap: 18px; align-items: flex-start; margin-bottom: 18px; }
.modal-header h2 { margin: 0; font-size: 20px; }
.modal-header p { margin: 5px 0 0; font-size: 12px; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.form-grid label { display: grid; gap: 6px; font-size: 12px; font-weight: 750; color: #475564; }
.form-grid input, .form-grid select, .form-grid textarea { width: 100%; border: 1px solid var(--line); border-radius: 9px; padding: 9px 10px; outline: none; background: #fff; color: var(--text); }
.form-grid textarea { resize: vertical; }
.form-grid .full { grid-column: 1 / -1; }
.modal-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 18px; }
.toast { position: fixed; z-index: 120; right: 22px; bottom: 22px; background: var(--navy); color: #fff; border-radius: 10px; padding: 11px 14px; font-size: 12px; box-shadow: var(--shadow); }
.muted { color: var(--muted); }
.tiny { font-size: 11px; margin-top: 7px; }
.mobile-only { display: none; }
@media (max-width: 1100px) {
  :root { --sidebar: 210px; }
  .kpi-grid { grid-template-columns: 1fr 1fr; }
  .flight-card { grid-template-columns: 1.2fr .8fr .8fr auto; }
  .flight-price { display: none; }
}
@media (max-width: 780px) {
  .app-shell { grid-template-columns: 1fr; }
  .sidebar { position: fixed; left: 0; transform: translateX(-105%); width: 250px; transition: transform .2s ease; box-shadow: 20px 0 50px rgba(0,0,0,.22); }
  .sidebar.open { transform: translateX(0); }
  .mobile-only { display: grid; }
  .topbar { height: auto; min-height: 72px; padding: 10px 12px; align-items: flex-start; }
  .topbar-actions { gap: 6px; }
  .year-select-wrap span { display: none; }
  .secondary-btn#installBtn { display: none; }
  .primary-btn#quickAddBtn { font-size: 0; width: 40px; padding: 0; }
  .primary-btn#quickAddBtn::after { content: "+"; font-size: 22px; }
  .view { padding: 12px; }
  .kpi-grid { grid-template-columns: 1fr 1fr; gap: 10px; }
  .kpi { padding: 14px; }
  .kpi-value { font-size: 23px; }
  .desktop-table { display: none; }
  .mobile-cards { display: grid; }
  .settings-grid { grid-template-columns: 1fr; }
  .flight-card { grid-template-columns: 1fr auto; gap: 8px; }
  .flight-time, .flight-price, .flight-ticket { display: none; }
  .timeline-item { grid-template-columns: 82px 1fr; }
  .timeline-item .badge { display: none; }
  .form-grid { grid-template-columns: 1fr; }
  .form-grid .full { grid-column: auto; }
  .toolbar input { min-width: 0; flex: 1 1 160px; }
  .toast { right: 12px; bottom: 12px; left: 12px; }
}

/* v2: real-data modules */
.planned-date { display:inline-flex; align-items:center; min-height:24px; padding:4px 7px; border-radius:7px; background:#F7F2E7; color:#7B6128; font-size:11px; font-weight:800; white-space:nowrap; }
.combined-mini { color:#8B671E; font-weight:800; }
.inactive-row { opacity:.55; filter:grayscale(.35); }
.invoice-kpis { grid-template-columns: repeat(3,minmax(0,1fr)); }
.invoice-table { min-width:1100px; }
.num { text-align:center; font-variant-numeric: tabular-nums; }

.calendar-card { overflow:hidden; }
.calendar-toolbar { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:18px 18px 14px; border-bottom:1px solid var(--line); }
.calendar-toolbar h2 { margin:0; font-size:18px; letter-spacing:-.02em; }
.calendar-toolbar p { margin:4px 0 0; color:var(--muted); font-size:12px; }
.button-row.compact { margin-top:0; flex-wrap:nowrap; }
.calendar-weekdays { display:grid; grid-template-columns:repeat(7,1fr); border-bottom:1px solid var(--line); background:#F7F9FA; }
.calendar-weekdays div { padding:9px 8px; text-align:center; font-size:11px; font-weight:800; color:#63717E; text-transform:uppercase; letter-spacing:.05em; }
.calendar-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); background:var(--line); gap:1px; }
.calendar-day { min-height:142px; background:#fff; padding:8px; position:relative; overflow:hidden; }
.calendar-day.weekend { background:#F7F8FA; }
.calendar-day.past { background:#F1F3F5; }
.calendar-day.outside { background:#FAFBFC; color:#B4BBC2; }
.calendar-day.today { box-shadow: inset 0 0 0 2px var(--gold); z-index:1; }
.day-number { width:30px; height:30px; margin:0 auto 7px; display:grid; place-items:center; border-radius:50%; font-size:15px; font-weight:850; color:#42515F; }
.calendar-day.today .day-number { background:var(--navy); color:#fff; }
.calendar-day.outside .day-number { color:#B8C0C8; }
.day-content { display:grid; gap:4px; }
.cal-chip { min-width:0; border-radius:7px; padding:5px 6px; font-size:10px; line-height:1.2; border:1px solid transparent; overflow:hidden; }
.cal-chip strong, .cal-chip span { display:block; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.cal-chip span { margin-top:2px; font-size:9px; opacity:.78; }
.audit-chip { background:#EAF3FA; color:#2F658C; border-color:#D2E4F0; }
.flight-chip { background:#F8F0DF; color:#76571C; border-color:#E9D8B4; }
.travel-chip { background:#F3F0F8; color:#665584; border-color:#DDD4EB; }
.event-chip { background:#EAF6EF; color:#347454; border-color:#CFE7D8; }
.cal-more { color:var(--muted); font-size:9px; text-align:center; padding-top:2px; }
.estimated-strip { display:flex; align-items:center; gap:6px; flex-wrap:wrap; padding:8px 14px; border-bottom:1px solid var(--line); background:#FBFAF7; }
.estimated-label { font-size:10px; font-weight:900; color:#8B671E; text-transform:uppercase; letter-spacing:.05em; margin-right:2px; }
.estimated-item { font-size:10px; color:#6D5A31; background:#F5EBD7; border:1px solid #EAD9B5; border-radius:999px; padding:4px 7px; }

.stats-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
.stat-card { padding:18px; display:flex; gap:14px; align-items:center; }
.stat-icon { width:42px; height:42px; display:grid; place-items:center; border-radius:12px; background:#F3F5F7; color:var(--navy); font-size:20px; flex:0 0 auto; }
.stats-note { padding:10px 12px; border-radius:9px; background:#F7F9FA; color:#64717E; font-size:12px; }
.snapshot-counts { display:flex; flex-wrap:wrap; gap:6px; margin-top:12px; }
.snapshot-counts span { padding:5px 7px; border-radius:999px; background:var(--grey-bg); color:#53616F; font-size:10px; font-weight:800; }

@media (max-width:1100px){
  .stats-grid { grid-template-columns:1fr 1fr; }
  .calendar-day { min-height:120px; padding:6px; }
  .cal-chip { padding:4px 5px; }
}
@media (max-width:780px){
  .invoice-kpis { grid-template-columns:1fr 1fr; }
  .stats-grid { grid-template-columns:1fr 1fr; gap:10px; }
  .stat-card { padding:14px; }
  .calendar-card { overflow:auto; }
  .calendar-toolbar { position:sticky; left:0; min-width:760px; padding:12px; }
  .estimated-strip, .calendar-weekdays, .calendar-grid { min-width:760px; }
  .calendar-day { min-height:112px; }
}
/* v3 parity: desktop workspace, grouped records and usable mobile controls. */
.brand-logo{width:72px;height:58px;object-fit:contain;flex:0 0 auto}.brand{gap:6px;padding-left:0}.brand-title{font-size:14px}.brand-subtitle{font-size:11px}
.view{font-size:calc(14px * var(--ui-scale,1))}td{font-size:calc(12px * var(--ui-scale,1));padding:8px}th{font-size:calc(10px * var(--ui-scale,1))}.first-card{margin-top:0}.checklist-table{min-width:1820px}.checklist-toolbar{margin-bottom:16px}.checklist-toolbar label{font-size:12px}.checklist-toolbar input[type=checkbox]{min-width:0;height:auto}
.status-select{border:1px solid var(--line);border-radius:7px;min-height:32px;min-width:105px;padding:4px;font-size:11px}.status-awaiting{color:#33719c;background:#e9f3fb;border-color:#c5ddec}.status-todo{color:#1a395c;background:#d8e7f5;border-color:#97b6d5}.status-complete{color:#2f8f5b;background:#eaf6ef}.status-na{color:#63717e;background:#eef1f4}.traffic.yellow{background:#d7aa3b;box-shadow:0 0 0 4px #fff5de}.past-row{background:#edf7ef}.inactive-row{opacity:1;color:#707882;background:#e7e9eb;text-decoration:line-through}.inactive-row .company{color:#62696f}.combined-row td{border-top:1px solid #d0b779}.note-cell{max-width:180px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}
.dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.dashboard-grid .section-card{margin-top:16px}.dashboard-grid h2{font-size:16px}.todo-row{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:12px 0;border-bottom:1px solid var(--line);font-size:12px}.todo-row:last-child{border-bottom:0}.bar-row{display:grid;grid-template-columns:42px 1fr 105px;align-items:center;gap:8px;font-size:11px;margin-top:12px}.bar-row>div{background:#f0f3f5;height:9px;border-radius:5px}.bar-row i{display:block;height:100%;background:var(--gold);border-radius:5px}.bar-row strong{text-align:right}progress{width:100%;height:12px;accent-color:var(--navy)}
.trip-card{padding:18px}.trip-card h2{font-size:16px;margin:8px 0}.trip-card small{font-size:11px;color:var(--muted)}.trip-card p{font-size:12px;color:var(--muted)}.trip-section{margin:20px 0 0}.trip-section h3{font-size:13px}.flight-table{min-width:1050px}.flight-list{margin-top:16px}.clickable{cursor:pointer}.clickable:hover{background:#f0f5fa}.clickable:focus{outline:2px solid var(--gold);outline-offset:-2px}
.months-grid{display:grid;gap:18px}.months-grid.multi{grid-template-columns:repeat(2,minmax(0,1fr))}.multi .calendar-day{min-height:126px;padding:4px}.multi .cal-chip{font-size:9px;padding:4px}.calendar-controls .button-row{margin:0}.cal-chip{text-align:left;cursor:pointer;width:100%;font-family:inherit}.unconfirmed{background:#eef0f3;color:#6d7780;border-style:dashed;border-color:#c9cdd2}.bridge-day{background:#f1f4f8}.planned-chip{background:#f8f1e2;color:#89692f}.calendar-day{overflow:visible}.calendar-card{align-self:start}.cal-chip strong,.cal-chip span{white-space:normal;overflow-wrap:anywhere}.calendar-toolbar h2{font-size:16px}.calendar-day.past .cal-chip{filter:saturate(.35)}
.form-grid input[type=checkbox]{width:auto}.form-grid label:has(input[type=checkbox]){display:block;align-content:center}.form-grid select[multiple]{min-height:100px}.wide-modal{width:min(980px,calc(100vw - 28px))}.segment-editor,.invoice-member-fields{padding:16px;border:1px solid var(--line);border-radius:12px;margin:16px 0}.segment-editor h3,.invoice-member-fields h3{font-size:13px}.segment-editor .section-header{margin-bottom:12px}.form-grid label span.muted{font-size:11px;font-weight:400;line-height:1.4}.modal[hidden],.modal-backdrop[hidden],[hidden]{display:none!important}.modal-actions{position:sticky;bottom:-20px;padding:14px 0;background:#fff;border-top:1px solid var(--line)}.button-link{display:inline-flex;align-items:center;text-decoration:none;font-size:12px}.rates-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.rates-grid label{display:grid;grid-template-columns:40px 1fr;align-items:center;font-size:12px}.rates-grid input{width:100%;padding:7px;border:1px solid var(--line);border-radius:7px}.rates-grid button{grid-column:1/-1}.history-list{max-height:420px;overflow:auto}body[data-sync=conflict] .dot,body[data-sync=offline] .dot{background:#d7aa3b}body[data-sync=saving] .dot{background:#6bb5e9}button:disabled{opacity:.5;cursor:default}.calendar-card{min-width:0}.mobile-cards .audit-card-status label{display:grid;gap:6px;font-size:11px}.mobile-cards .status-select{width:100%}
@media(min-width:1800px){:root{--sidebar:230px}.view{padding:24px 30px}.checklist-table{min-width:1700px}.months-grid.multi .calendar-day{min-height:155px}}
@media(max-width:1200px){.months-grid.multi{grid-template-columns:1fr}.dashboard-grid{grid-template-columns:1fr}}
@media(max-width:780px){.topbar{flex-wrap:wrap}.topbar-left{flex:1}.topbar-actions{flex-wrap:wrap}.topbar-actions #undoBtn{font-size:11px;padding:0 8px}.section-header{flex-wrap:wrap}.kpi-value{font-size:20px}.trip-card{padding:12px}.trip-card .button-row{margin-top:0}.calendar-controls{display:grid;gap:12px}.calendar-controls .button-row{gap:5px}.calendar-controls .secondary-btn{font-size:11px;padding:0 9px}.calendar-toolbar{min-width:0;position:static}.calendar-card{overflow:visible}.calendar-weekdays,.calendar-grid,.estimated-strip{min-width:0}.calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr))}.calendar-day,.multi .calendar-day{min-height:110px;padding:2px}.cal-chip,.multi .cal-chip{padding:3px 2px;font-size:8px;border-radius:4px}.cal-chip span{font-size:7px}.day-number{font-size:12px;width:24px;height:24px}.calendar-weekdays div{padding:9px 0;font-size:9px}.brand-logo{width:80px}.stats-grid .kpi{min-width:0}.stats-grid .kpi-value{font-size:18px}.toolbar{width:100%}.toolbar input,.toolbar select{max-width:100%}.rates-grid{grid-template-columns:1fr}.form-grid{gap:10px}.modal{padding:16px;max-height:calc(100dvh - 24px)}.modal-actions{bottom:-16px}.segment-editor{padding:12px}.kpi-grid{grid-template-columns:1fr 1fr}.audit-card-status{grid-template-columns:1fr 1fr}}
.readonly-banner{background:#fff3d7;color:#785b1c;padding:12px 22px;font-size:12px;border-bottom:1px solid #ead8a8}
/* v3.1 — clearer sections, itinerary detail, invoice groups and full audit days. */
:root{--shadow:0 4px 20px rgba(15,45,70,.045);--radius:15px;--bg:#f2f5f8;--line:#e0e7ed}
.card{box-shadow:var(--shadow)}.section-card{padding:20px}.section-header h2{font-size:17px;letter-spacing:-.02em}.section-header p{line-height:1.6}.kpi{position:relative;overflow:hidden;padding:20px}.kpi:before{content:"";position:absolute;top:0;left:20px;right:20px;height:3px;background:linear-gradient(90deg,var(--gold),#dfd0ae);border-radius:0 0 4px 4px}.kpi-label{font-weight:650;letter-spacing:.01em}.kpi-value{color:var(--navy);line-height:1.2}.kpi-trend{line-height:1.5}.topbar{background:rgba(246,248,250,.96)}.nav-item{min-height:44px}.nav-item.active{background:rgba(255,255,255,.12)}.primary-btn,.secondary-btn,.icon-btn{transition:background .15s,box-shadow .15s}.primary-btn:hover{box-shadow:0 3px 10px #0f2d461a}.secondary-btn:hover{background:#f5f8fa;border-color:#c5d1dc}input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible{outline:2px solid #9bb9d0;outline-offset:2px}.count-pill{display:inline-grid;place-items:center;min-width:29px;height:24px;margin-left:6px;border-radius:7px;background:#eaf0f5;color:#536b7d;font-size:12px;font-weight:700}.setting-card{padding:22px}.setting-card h3{color:var(--navy)}th{background:#edf2f6;text-transform:none;letter-spacing:.01em;color:#5c6e7e;font-weight:700;padding:12px 10px}td{padding:11px 10px}.table-wrap{border-radius:10px}
/* Boundaries follow the actual logical groups rather than each individual column. */
.checklist-table th:is(:nth-child(2),:nth-child(7),:nth-child(8),:nth-child(11),:nth-child(13),:nth-child(14),:nth-child(17),:nth-child(18),:nth-child(19)),
.checklist-table td:is(:nth-child(2),:nth-child(7),:nth-child(8),:nth-child(11),:nth-child(13),:nth-child(14),:nth-child(17),:nth-child(18),:nth-child(19)){border-left:3px solid #fff}
.checklist-table td:nth-child(n+2):nth-child(-n+6),.checklist-table td:nth-child(n+8):nth-child(-n+10),.checklist-table td:nth-child(13),.checklist-table td:nth-child(17){background:#f2f5f8}
.checklist-table td:nth-child(7),.checklist-table td:nth-child(n+11):nth-child(-n+12),.checklist-table td:nth-child(n+14):nth-child(-n+16),.checklist-table td:nth-child(n+18){background:#f8fafc}
.checklist-table .past-row td{background:#edf7ef}.checklist-table .inactive-row td{background:#e7e9eb}.checklist-table .company{color:var(--navy)}.checklist-table .combined-row td{border-top-color:#d3c19b}.checklist-table .status-select{min-width:109px;min-height:34px;border-radius:7px}.checklist-table td:nth-child(10){white-space:nowrap}.checklist-table td:nth-child(10) .link-btn{display:block;margin:0 auto 3px}
/* Trip shell: compact numbered header and three clear travel directions. */
.trip-card{padding:0;overflow:hidden;border-color:#d6e0e8}.trip-header{display:flex;align-items:center;gap:18px;padding:22px;background:linear-gradient(110deg,#f8fafc,#eef3f7);border-bottom:1px solid var(--line)}.trip-number{width:58px;min-height:66px;display:flex;flex-direction:column;align-items:center;justify-content:center;flex:0 0 auto;background:var(--navy);color:#fff;border-radius:12px;box-shadow:inset 0 -3px 0 var(--gold)}.trip-number span{font-size:9px;letter-spacing:.15em;color:#c9d5df}.trip-number strong{font-size:25px;line-height:1.3}.trip-heading{flex:1;min-width:0}.trip-heading h2{margin:8px 0 5px;font-size:18px;line-height:1.35;color:var(--navy)}.trip-heading p{margin:0;font-size:12px;color:#687e90;line-height:1.5}.trip-plus{color:#b29355;margin:0 3px;font-weight:500}.trip-meta-line{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:10px;color:#7a8b98}.booking-pill{display:inline-flex;align-items:center;gap:6px;font-weight:700}.booking-pill i{width:6px;height:6px;border-radius:50%;background:currentColor}.booking-pill.booked{color:#2f8158}.booking-pill.pending{color:#9d7a2a}.trip-divider{color:#b6c0c9;margin:0 5px}.trip-cost{display:flex;flex-direction:column;gap:5px;white-space:nowrap;align-items:flex-end}.trip-cost span{font-size:10px;color:#748697}.trip-cost strong{font-size:19px;color:var(--navy)}.trip-actions{display:flex;align-items:center;gap:7px}.trip-actions .primary-btn{min-height:35px;font-size:12px}.delete-trip-btn{font-size:19px;color:#927979;min-height:35px;width:32px;background:transparent;border-color:transparent}.delete-trip-btn:hover{background:#f8e9e9;color:#a34d4d}.trip-itinerary{padding:2px 22px 22px}.trip-section{margin-top:20px}.direction-heading{display:flex;align-items:center;gap:9px;margin-bottom:10px}.direction-heading h3{margin:0;font-size:12px;letter-spacing:.01em;color:#3e5569}.direction-heading>span:last-child:not(.direction-icon){margin-left:auto;font-size:10px;color:#84929e}.direction-icon{width:23px;height:23px;display:grid;place-items:center;border-radius:6px;background:#edf2f6;color:#5a7287;font-size:15px}.trip-empty{padding:14px 12px;border:1px dashed #dbe3ea;border-radius:9px;font-size:12px;color:#8b98a4;margin:0}.flight-table{min-width:1240px}.flight-table td{font-size:12px;padding:13px 11px}.flight-table th{font-size:10px;padding:10px 11px;background:#f4f7fa}.airport-stack{display:flex;flex-direction:column;gap:4px;min-width:70px}.airport-stack strong{font-size:17px;color:#17394f;letter-spacing:.035em}.airport-stack small{font-size:10px;color:#7d8d9a;line-height:1.25}.schedule-time{font-size:17px;letter-spacing:-.025em;color:#17394f;white-space:nowrap;font-variant-numeric:tabular-nums}.flight-date{font-weight:650;white-space:nowrap;color:#53697b}.flight-number{display:inline-block;border:1px solid #e0e7ec;border-radius:5px;padding:4px 6px;font-size:10px;font-weight:700;white-space:nowrap;color:#61788b}.airline-name{font-weight:600;color:#40586c}.day-offset{font-size:9px;background:#f6edda;color:#8f702c;border-radius:4px;padding:2px 3px;margin-left:3px}.cabin-badge{font-size:9px;padding:4px 6px;background:#eef2f5;border-radius:5px;color:#74818b;white-space:nowrap}.cabin-badge.premium{background:#f7efdc;color:#997738}.duration-cell{white-space:nowrap;color:#61788b;font-variant-numeric:tabular-nums}.loyalty-label{font-size:10px;color:#748898}.ticket-cell{font-size:10px!important;color:#7d8d9a;white-space:nowrap;font-variant-numeric:tabular-nums}.transfer-row td{padding:8px 12px!important;background:#f7f5ef;color:#8c7955;font-size:10px}.transfer-row td>span{margin-right:12px}.transfer-row strong{font-size:10px}.miles-select{min-height:32px;min-width:114px;padding:5px 7px;border:1px solid #dce4eb;border-radius:7px;background:#f8fafb;color:#788793;font-size:10px;font-weight:700}.miles-cell.miles-1{background:#f0f9f3}.miles-select.miles-1{background:#dbf1e4;border-color:#abd2bb;color:#267549}.miles-select.miles-3{background:#fff3d8;border-color:#e7ce94;color:#9d7420}
/* Every row of a shared invoice controls the same hover/focus background. */
.invoice-table{min-width:1190px}.invoice-table .invoice-date{white-space:nowrap;color:#5e7385;font-size:11px}.invoice-table .invoice-total-days{font-weight:750;color:#28485f}.invoice-table .invoice-shared{background:#f8fafc}.invoice-table .invoice-amount{font-weight:750;color:#28485f}.invoice-table tbody.invoice-group{border-bottom:2px solid #e4eaf0}.invoice-table tbody.invoice-group:last-child{border-bottom:0}.invoice-table .clickable:hover{background:transparent}.invoice-table tbody.invoice-group:is(:hover,:focus-within) td{background:#eaf2f8}.invoice-table .inactive-row td{color:#7d8790}.invoice-table td{transition:background-color .1s}
.invoice-editor-modal{width:min(820px,calc(100vw - 28px))}.invoice-days-summary{display:flex;align-items:stretch;border:1px solid #d6e1ea;border-radius:13px;overflow:hidden;margin-bottom:22px;background:#f5f8fb}.invoice-days-total{display:flex;flex-direction:column;justify-content:center;min-width:180px;padding:17px 23px;background:var(--navy);color:#fff}.invoice-days-total>span{font-size:11px;font-weight:650;color:#dae5ed}.invoice-days-total output{font-size:36px;font-weight:800;line-height:1.25;letter-spacing:-.035em}.invoice-days-total small{font-size:9px;color:#aebfcd;margin-top:3px}.invoice-days-breakdown{flex:1;display:flex;align-items:center;justify-content:space-evenly;gap:12px;padding:20px}.invoice-days-breakdown>div{display:flex;flex-direction:column;gap:7px;min-width:40px}.invoice-days-breakdown span{font-size:11px;color:#72889b}.invoice-days-breakdown output{font-size:23px;font-weight:750;color:#294c64;line-height:1}.invoice-days-breakdown>b{font-size:16px;font-weight:400;color:#a3b4c1}.invoice-member-fields{padding:18px;margin:20px 0;background:#fbfcfd}.invoice-member-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:17px;border-bottom:1px solid #e7edf2;padding-bottom:15px}.invoice-member-heading h3{font-size:19px;font-weight:750;letter-spacing:-.025em;color:#173d57;margin:0 0 4px;line-height:1.3}.invoice-member-heading>div>span{font-size:11px;color:#7c91a2}.audit-days-pill{display:flex;align-items:center;gap:9px;padding:10px 13px;background:#e9f0f6;border:1px solid #dce5ed;border-radius:10px;white-space:nowrap}.audit-days-pill strong{font-size:28px;line-height:1;color:#234e6b}.audit-days-pill span{font-size:10px!important;font-weight:600;color:#608098!important}.member-day-total{display:flex;flex-direction:column;gap:5px;text-align:right;padding:5px 1px}.member-day-total>span{font-size:10px;color:#8496a5}.member-day-total strong{font-size:16px;color:#2a506b}
/* Whole-cell audit highlighting, including past dates and weekends. */
.calendar-day.has-audit,.calendar-day.has-audit.weekend,.calendar-day.has-audit.past{background:#dcecf8}.calendar-day.has-audit.audit-unconfirmed-day{background:#edf4f9}.calendar-day.has-audit .day-number{color:#2a587b}.calendar-day.has-audit .audit-chip{background:transparent;border-color:transparent;color:#285a7c;font-weight:650}.calendar-day.has-audit .audit-chip:hover{background:#c9e0f1}.calendar-day.has-audit.past .audit-chip{filter:none}.calendar-day.has-audit .audit-chip.unconfirmed{border-color:#b6cddd;border-style:dashed;background:rgba(255,255,255,.3);color:#5d7d94}.calendar-day.has-audit.today .day-number{color:#fff}
@media(max-width:1100px){.trip-header{gap:12px;flex-wrap:wrap}.trip-heading{flex-basis:50%}.trip-cost{margin-left:70px;align-items:flex-start}.trip-actions{margin-left:auto}}
@media(max-width:780px){.section-card,.setting-card{padding:16px}.kpi{padding:17px 14px}.kpi:before{left:14px;right:14px}.trip-header{padding:16px;gap:12px}.trip-number{width:47px;min-height:57px}.trip-number strong{font-size:22px}.trip-heading h2{font-size:16px}.trip-heading{flex-basis:calc(100% - 65px)}.trip-heading p{font-size:10px}.trip-meta-line{font-size:9px;gap:6px}.trip-cost{margin-left:59px}.trip-cost strong{font-size:17px}.trip-itinerary{padding:0 12px 15px}.direction-heading h3{font-size:11px}.invoice-days-total{min-width:125px;padding:14px}.invoice-days-total output{font-size:31px}.invoice-days-breakdown{padding:13px 10px;gap:8px}.invoice-days-breakdown>div{min-width:28px}.invoice-days-breakdown output{font-size:21px}.invoice-days-breakdown span{font-size:9px}.invoice-days-breakdown>b{font-size:12px}.invoice-member-fields{padding:14px}.invoice-member-heading h3{font-size:17px}.audit-days-pill{padding:8px;gap:6px}.audit-days-pill strong{font-size:25px}.audit-days-pill span{font-size:9px!important}.member-day-total{text-align:left}.trip-actions .primary-btn{font-size:11px;padding:0 11px}}
/* v3.2 — compact native status pickers and clear combined-trip frames. */
.status-select.compact-status,.checklist-table .status-select.compact-status{width:35px;min-width:35px;max-width:35px;height:33px;min-height:33px;padding:3px 0;border-radius:8px;text-align:center;text-align-last:center;font-size:19px;font-weight:800;appearance:none;-webkit-appearance:none;cursor:pointer;background-image:none;vertical-align:middle}.compact-status option{text-align:left;font-size:13px;font-weight:500}.compact-status.status-blank{background:#fff;border-style:dashed;border-color:#c9d3dc}.compact-status.status-na{font-size:10px}.compact-status:hover{box-shadow:0 0 0 3px #9fb6c229}.compact-na{display:inline-grid;place-items:center;width:35px;height:33px;font-size:10px;color:#7e8d98}.audit-card-status label{text-transform:capitalize}.mobile-cards .audit-card-status label{display:flex;align-items:center;justify-content:space-between;border:1px solid #e2e8ee;border-radius:9px;padding:7px 9px;background:#f8fafc}.mobile-cards .audit-card-status .compact-status{width:35px}.status-key{display:flex;align-items:center;gap:16px;flex-wrap:wrap;color:#7d8e9d;font-size:10px;padding:0 2px 13px}.status-key span{display:inline-flex;align-items:center;gap:5px}.legend-blank{width:12px;height:12px;border:1px dashed #c6d1db;border-radius:3px;background:white}
.checklist-table .combo-label-row td{border:0!important;background:#e8eef4!important;padding:9px 12px;color:#36566e;font-size:10px}.combo-label-row strong{display:inline-block;font-size:11px;margin-right:12px;color:#234961}.combo-label-row span{line-height:1.5}.checklist-table .combined-row td{border-top-color:#dbe4ec}.checklist-table .combined-row td:first-child{border-left:2px solid #7294af}.checklist-table .combined-row td:last-child{border-right:2px solid #7294af}.checklist-table .combo-first td{border-top:2px solid #7294af}.checklist-table .combo-last td{border-bottom:2px solid #7294af}.mobile-combined-group{border:2px solid #8da8be;border-radius:14px;padding:8px;display:grid;gap:6px;background:#eaf0f6}.mobile-combined-group>header{padding:3px 5px 8px}.mobile-combined-group>header strong{display:block;font-size:12px;color:#2d536f;margin-bottom:5px}.mobile-combined-group>header span{display:block;font-size:10px;color:#71879a;line-height:1.6}.mobile-combined-group .audit-card{box-shadow:none;border-color:#dbe4ec}
.audit-chip,.audit-chip strong,.audit-chip span{text-align:center!important}.cal-flight-primary{display:flex!important;align-items:center;justify-content:center;flex-wrap:wrap;gap:3px;font-size:12px}.cal-flight-primary small{font-size:7px;font-weight:650;letter-spacing:.05em}.cal-flight-primary>span{display:inline!important;margin:0;font-size:10px}.flight-chip{text-align:center}.cal-flight-secondary,.cal-flight-route{text-align:center}.flight-chip.arrival-priority{background:#e5f2ec;border-color:#b8dac8;color:#39725a}.flight-chip.arrival-priority .cal-flight-primary{font-size:13px;font-weight:800}.cal-flight-route{font-size:8px!important;color:inherit;opacity:.7}.checklist-table{min-width:1580px}
@media(max-width:780px){.status-key{gap:9px;font-size:9px}.audit-card-status{gap:6px}.audit-card-status label{min-width:0}.cal-flight-primary{font-size:10px;gap:2px}.flight-chip.arrival-priority .cal-flight-primary{font-size:11px}.cal-flight-primary small{font-size:6px}.cal-flight-secondary{font-size:7px!important}}
.status-picker{display:inline-grid;position:relative;width:35px;height:33px;flex:0 0 auto;border-radius:8px;vertical-align:middle}.status-picker .compact-status{color:transparent!important;position:relative;z-index:1;margin:0}.status-picker .compact-status option{color:#2b465b!important;background:#fff!important}.status-face{position:absolute;inset:0;z-index:2;display:flex;align-items:center;justify-content:center;pointer-events:none;font-size:19px;font-weight:800}.status-picker.status-na .status-face{font-size:10px}.status-picker.status-blank .status-face{color:transparent}
