/* Unified navigation, compact controls and permission settings. */
.topbar{height:auto;min-height:68px;padding:12px 24px;gap:20px;z-index:100}
.topbar nav{gap:12px;flex-wrap:wrap;justify-content:flex-end}.topbar .brand{flex-shrink:0}
.topbar details[data-nav-menu]{position:relative;display:block}
.topbar [data-nav-menu]>summary{display:flex;align-items:center;gap:6px;color:#edf0f6!important;font-size:14px;font-weight:600;cursor:pointer;list-style:none;padding:7px 2px;white-space:nowrap}
summary::-webkit-details-marker{display:none}.topbar [data-nav-menu][open]>summary{color:white!important}
.topbar .nav-menu{top:100%;right:0;left:auto;min-width:224px;max-width:min(330px,92vw);padding:7px;border:1px solid #dce2eb;background:#fff;border-radius:10px;box-shadow:0 14px 35px #18233925;animation:menu-in .13s ease-out}
.topbar .nav-menu a,.topbar .nav-menu .link-button{color:#263247!important;display:block!important;width:100%;padding:10px 12px;font-size:13px;line-height:1.4;white-space:normal;text-align:left;border-radius:6px;font-weight:500}
.topbar .nav-menu a:hover,.topbar .nav-menu .link-button:hover{background:#f3f5f8;color:var(--brand)!important}.topbar .nav-menu form{border-top:1px solid #e5e8ef;margin-top:5px;padding-top:5px}
@keyframes menu-in{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}
.action-menu{position:relative;display:inline-block;text-align:left}.action-menu>summary{list-style:none;white-space:nowrap;min-height:40px;font-size:13px;line-height:1.4;padding:9px 14px;cursor:pointer;margin:0}
.action-popover{position:absolute;right:0;top:calc(100% + 5px);z-index:80;min-width:230px;max-width:min(330px,90vw);max-height:65vh;overflow:auto;padding:7px;background:#fff;border:1px solid #dce2eb;border-radius:10px;box-shadow:0 14px 35px #18233925;animation:menu-in .13s ease-out}
.toolbar .action-popover,.subnav .action-popover{left:0;right:auto}.action-popover .button{display:flex!important;justify-content:flex-start;width:100%;height:auto;min-height:36px;padding:9px 11px!important;font-size:13px;line-height:1.4;white-space:normal;color:#273449;background:transparent;border:0;border-radius:6px;margin:0!important;text-align:left;box-shadow:none;font-weight:500}
.action-popover .button:hover{background:#f3f5f8;color:var(--brand)}.action-group-label{display:block;padding:10px 11px 4px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:#738198}.action-group-label:not(:first-child){border-top:1px solid #edf0f5;margin-top:6px}.action-popover .danger-action{color:#af283b}
.dashboard-metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.dashboard-metrics .metric-link{padding:16px 18px;gap:8px;min-height:98px;box-shadow:none}.dashboard-metrics .metric-link strong{font-size:24px;line-height:1.2;overflow-wrap:anywhere}.dashboard-metrics .metric-link span{font-size:12px}
.dashboard-settings{grid-column:1/-1;background:#f6f7fa;border:1px solid #dde3ec;border-radius:10px;padding:18px}.dashboard-settings legend{font-weight:700;padding:0 5px}.dashboard-settings h3{font-size:13px;margin:18px 0 10px}.dashboard-choice-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.dashboard-choice-grid label{align-items:flex-start;font-weight:500;font-size:13px}.dashboard-choice-grid small{display:block;font-size:10px;font-weight:600}.dashboard-choice-grid input{margin-top:3px}
.invoice-page{max-width:1080px;padding-top:0!important}.invoice-workspace-head{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:0 0 18px}.invoice-workspace-head h1{font-size:23px;margin:10px 0 6px;overflow-wrap:anywhere}.invoice-workspace-head p{font-size:13px;color:#68768a;margin:0}.invoice-workspace-head .status{margin-left:8px}.back-link{font-size:12px;color:#637087}
.invoice-canvas{background:#e9edf3;border:1px solid #dfe4ec;border-radius:12px;padding:24px;overflow:auto;margin:20px 0}.compact-disclosure{margin:12px 0;border:1px solid #dce2ec;border-radius:9px;background:#f6f7fa;font-size:13px}.compact-disclosure>summary{cursor:pointer;font-weight:600;padding:12px 16px;list-style:none;display:flex;gap:12px;align-items:center;color:#46546a}.compact-disclosure>summary:before{content:'+';font-size:17px}.compact-disclosure[open]>summary:before{content:'−'}.compact-disclosure>summary span{margin-left:auto;font-size:11px;color:#788396}.compact-disclosure>form,.compact-disclosure>p{margin:0;padding:14px 16px;border-top:1px solid #e0e5ec}.compact-disclosure .button{align-self:end}.compact-disclosure input,.payment-panel input,.payment-panel select{min-height:40px;padding:8px 10px;font-size:13px}
.invoice-preview-dialog{width:min(1040px,96vw);height:94vh;max-height:94vh}.invoice-preview-dialog iframe{display:block;height:calc(100% - 63px)}
@media(max-width:1080px){.topbar{flex-wrap:wrap;gap:8px;padding:10px 16px}.topbar nav{flex:1;font-size:13px;gap:10px}.dashboard-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.topbar{position:relative}.topbar nav{justify-content:flex-start;width:100%;flex-basis:100%}.topbar [data-nav-menu] .nav-menu{left:0;right:auto}.topbar .profile-menu .nav-menu,.topbar .notification-menu .nav-menu{left:auto;right:0}.topbar .brand span{font-size:16px}.topbar .brand img{width:32px;height:32px}.dashboard-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-metrics .metric-link{padding:13px;min-height:90px}.dashboard-metrics .metric-link strong{font-size:20px}.dashboard-choice-grid{grid-template-columns:1fr}.invoice-canvas{padding:8px}.invoice-workspace-head{align-items:flex-start}.invoice-workspace-head h1{font-size:18px}.invoice-preview-dialog{max-width:100vw;width:98vw}.entry-grid{gap:10px}}
@media(prefers-reduced-motion:reduce){.nav-menu,.action-popover{animation:none}}
@media print{.action-menu,.compact-disclosure,.invoice-workspace-head{display:none!important}.invoice-page{width:100%;margin:0;max-width:none;padding:0!important}.invoice-canvas{display:block;border:0;background:none;padding:0;margin:0;overflow:visible}}

/* 3.8.3: balances also carry text labels so colour is not the only signal. */
.balance-amount{display:inline-flex;flex-direction:column;gap:2px;font-weight:750;font-variant-numeric:tabular-nums;padding:5px 8px;border-radius:6px;white-space:nowrap}
.balance-amount small{font-size:11px;color:inherit;font-weight:600}
.balance-overdue,.balance-today,.balance-pending{color:#b42318!important;background:#fff1f0}
.balance-paid{color:#176442!important;background:#edf8f1}
.balance-credit{color:#22559b!important;background:#edf4ff}
.metric-link.balance-pending strong{color:#b42318}
.dashboard-choice-grid label:has(input:disabled){opacity:.62}
.dashboard-choice-grid small{display:block;font-weight:400;line-height:1.4}
.dashboard-save-note{padding:10px 12px;border-radius:6px;background:#eaf3ff;color:#214d83}
.billing-type-panel [hidden]{display:none!important}
.billing-type-panel p{margin-top:0}

/* 3.8.4: consistent amount colours, with readable text status alongside them. */
.money-total,.insight-card>strong.money-total{color:#2459a6;font-weight:750;font-variant-numeric:tabular-nums}
.money-paid,.money-gain,.insight-card>strong.money-paid,.insight-card>strong.money-gain{color:#176442;font-weight:750;font-variant-numeric:tabular-nums}
.money-loss,.insight-card>strong.money-loss{color:#b42318;font-weight:750;font-variant-numeric:tabular-nums}
.status.issued,.status.partial{color:#b42318;background:#fff1f0}
.status.paid{color:#176442;background:#edf8f1}
.metric-link.money-total{background:#f0f6ff;border-top:3px solid #2459a6}
.metric-link.money-paid{background:#edf8f1;border-top:3px solid #176442}
.metric-link.balance-pending{border-top:3px solid #b42318}
.dashboard-metrics .metric-link.money-total strong{color:#2459a6}
.dashboard-metrics .metric-link.money-paid strong{color:#176442}
.invoice-primary-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.button.payment-success,.full-payment-form .button.primary{background:#176442;border-color:#176442;color:#fff}
.button.payment-success:hover,.full-payment-form .button.primary:hover{background:#105034;border-color:#105034}
.full-payment-confirm{max-width:760px;margin-inline:auto}
.full-payment-form{margin-bottom:18px}
@media(max-width:700px){.invoice-workspace-head{flex-wrap:wrap}.invoice-primary-actions{width:100%;justify-content:flex-start}.invoice-primary-actions .button{font-size:13px}}
/* 3.8.5: compact, aligned PNR and split-invoice controls. */
.topbar nav summary:has(.nav-heading-link){display:flex;align-items:center;gap:2px;padding:0}
.topbar nav .nav-heading-link{padding:9px 3px;color:inherit;text-decoration:none;white-space:nowrap}
.topbar nav .nav-chevron{border:0;background:transparent;color:inherit;padding:9px 5px;min-height:34px;min-width:26px;font:inherit;cursor:pointer}
.topbar nav .nav-chevron:focus-visible,.topbar nav .nav-heading-link:focus-visible{outline:2px solid #e8a3b3;outline-offset:2px;border-radius:4px}
.compact-entry .entry-grid,.compact-entry.entry-grid{align-items:start;gap:14px 16px}
.compact-entry label{min-width:0;font-size:13px;line-height:1.35}
.compact-entry label input:not([type=checkbox]),.compact-entry label select{width:100%;min-height:40px;height:40px;padding:8px 11px;box-sizing:border-box;background:#fff}
.compact-entry label small{display:block;margin-top:5px;color:#667085;font-size:11px;font-weight:400}
.compact-entry .entry-footer,.entry-footer{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:16px}
.entry-footer>.button{width:auto;min-height:40px;padding:9px 16px}
.ledger-actions{display:flex;flex-wrap:wrap;align-items:center;gap:9px}
.ledger-actions>.button{min-height:40px;padding:9px 14px;line-height:1.25}
.booking-search label{position:relative;min-width:280px;max-width:600px;flex:1}
.booking-suggestions{position:absolute;z-index:30;left:0;right:0;top:100%;margin-top:4px;background:#fff;border:1px solid #d5dce6;border-radius:9px;box-shadow:0 9px 26px #17203320;max-height:280px;overflow:auto}
.booking-suggestions[hidden]{display:none}
.booking-suggestions a{display:block;padding:11px 13px;color:#273348;text-decoration:none;font-weight:500;font-size:13px;border-bottom:1px solid #edf0f5}
.booking-suggestions a:hover,.booking-suggestions a:focus{background:#faf0f3;outline:0;color:#ab2946}
.booking-suggestions p{padding:9px 13px;margin:0;font-size:13px;font-weight:400}
.split-recipient{margin:0 0 16px;border:1px solid #dfe4ed;border-radius:12px;padding:16px;background:#f5f6f9;min-width:0}
.split-recipient legend{font-weight:700;font-size:14px;color:#9e2945;padding:0 7px}
.split-recipient label{font-size:13px;line-height:1.4;min-width:0}
.split-recipient input,.split-recipient select{background:#fff;width:100%;height:40px;padding:8px 11px;box-sizing:border-box}
.split-recipient .entry-grid{align-items:start;gap:12px 16px}
.split-remove{margin-top:12px;font-size:12px!important}
.split-preview{margin:18px 0;border-radius:10px;border:1px solid #e0e5ec;background:#fff;padding:14px}
.split-ready{color:#176442;font-weight:600}.split-incomplete{color:#9d4c08;font-weight:600}
.split-totals{font-size:13px}.split-totals th,.split-totals td{padding:10px 12px;white-space:nowrap}
.deleted-booking-list article{border-bottom:1px solid #e0e5ec;padding:12px 0}.deleted-booking-list article:last-child{border-bottom:0}
.compact-entry .check{display:flex;align-items:flex-start;gap:8px;font-weight:400}.compact-entry .check input{width:auto;min-width:16px;flex:none}
@media(max-width:700px){.booking-search label{min-width:0;width:100%}.split-recipient{padding:12px}.ledger-actions{gap:7px}.split-recipient .entry-grid{grid-template-columns:1fr 1fr}}
@media(max-width:440px){.split-recipient .entry-grid{grid-template-columns:1fr}.split-recipient .entry-span-two{grid-column:1}}
/* 3.8.6: visible split entry and compact menus without a tall flat action list. */
.invoice-primary-actions>.button,.invoice-primary-actions>.action-menu>summary{min-height:40px;height:40px;padding:8px 12px;font-size:13px;line-height:1.3;margin:0;white-space:nowrap}
.button.split-invoice-action{border-color:var(--brand);color:var(--brand);background:#fff;font-weight:750}
.button.split-invoice-action:hover{background:#fff0f4}
.invoice-action-menu .action-popover{width:270px;min-width:0;max-width:calc(100vw - 32px)}
.action-section{border-top:1px solid #e7ebf1;margin-top:5px;padding-top:4px}
.action-section>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 11px;min-height:38px;color:#344054;cursor:pointer;font-size:13px;font-weight:650;list-style:none;border-radius:6px}
.action-section>summary::after{content:'▾';font-size:12px;color:#738198;transition:transform .12s}
.action-section[open]>summary::after{transform:rotate(180deg)}
.action-section>summary:hover{background:#f3f5f8}
.action-section-items{padding:0 0 5px 8px;border-left:2px solid #edf0f5;margin:2px 7px 0}
.action-section-items .button{min-height:34px;padding:7px 10px!important;font-size:12px}
.invoice-pnr-card>summary{font-size:13px;padding:11px 14px}
.invoice-pnr-card>summary>span{background:#fff;border:1px solid #d5dce6;border-radius:6px;padding:4px 9px;font-size:12px;color:#475467}
form.pnr-link-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:end;max-width:680px;padding:16px;margin:0;border:0;background:transparent;box-shadow:none}
form.pnr-link-form>label{position:relative;min-width:0;max-width:none;font-size:13px;gap:6px;line-height:1.4}
form.pnr-link-form input[type=search]{height:40px;min-height:40px;max-width:none;margin:0;padding:8px 11px;font-size:13px;background:#fff}
form.pnr-link-form>.button{height:40px;min-height:40px;padding:8px 13px;margin:0;align-self:end;font-size:13px;line-height:1.3;white-space:nowrap}
form.pnr-link-form .lookup-results:not(:empty){position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:40;max-height:220px;border:1px solid #d5dce6;border-radius:8px;box-shadow:0 10px 26px #17203320;background:#fff}
.invoice-pnr-card>.pnr-link-note{padding:0 16px 13px;border:0;font-size:12px;color:#667085}
.search-toolbar{align-items:end;gap:10px}
.search-toolbar>.button,.search-toolbar>button{min-height:40px;margin:0;font-size:13px;line-height:1.35}
.inline-link,.ledger-table .inline-link{align-items:end!important;flex-wrap:wrap}
.inline-link>.button{align-self:end!important;margin:0!important}
.inline-link label{position:relative}
.inline-link .lookup-results:not(:empty){position:absolute;top:100%;left:0;right:0;z-index:25;box-shadow:0 8px 20px #17203320;border:1px solid #d5dce6;border-radius:6px}
.ledger-actions>.action-menu{margin:0}
.ledger-actions>.action-menu>summary{height:42px;display:inline-flex;align-items:center;margin:0;font-size:13px}
.ledger-actions>.action-menu .action-popover{left:auto;right:0}
.app-version{font-variant-numeric:tabular-nums;white-space:nowrap}
@media(max-width:600px){form.pnr-link-form{grid-template-columns:1fr;max-width:none;padding:13px;gap:10px}form.pnr-link-form>.button{justify-self:start}.invoice-primary-actions{gap:8px}.invoice-pnr-card>.pnr-link-note{padding:0 13px 12px}.ledger-actions>.action-menu .action-popover{left:0;right:auto}}
@media(prefers-reduced-motion:reduce){.action-section>summary::after{transition:none}}

.ledger-sort{font:inherit;color:inherit;letter-spacing:inherit;text-transform:inherit;display:inline-flex;gap:7px;align-items:center;border:0;padding:0;background:transparent;cursor:pointer;white-space:nowrap;line-height:inherit}.ledger-sort:hover{text-decoration:underline}.ledger-sort:focus-visible{outline:2px solid currentColor;outline-offset:4px;border-radius:2px}
