@font-face {
  font-family: 'Della Respira';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/RLp5K5v44KaueWI6iEJQBiGPRfk.ttf) format('truetype');
}
@font-face {
  font-family: 'Nunito';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/XRXI3I6Li01BKofiOc5wtlZ2di8HDLshRTM.ttf) format('truetype');
}
@font-face {
  font-family: 'Nunito';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/fonts/XRXI3I6Li01BKofiOc5wtlZ2di8HDGUmRTM.ttf) format('truetype');
}
@font-face {
  font-family: 'Nunito';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/XRXI3I6Li01BKofiOc5wtlZ2di8HDFwmRTM.ttf) format('truetype');
}

:root{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#17343d;background:#f3f7f8;font-synthesis:none;font-size:16px;--brand:#075c70;--ink:#17343d;--muted:#546c76;--line:#dce6e9}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:default;opacity:.5}a{color:var(--brand)}h1,h2,h3,p{margin-top:0}h1{font-size:1.9rem;letter-spacing:-.04em;line-height:1.2;margin-bottom:8px}h2{font-size:1.2rem}h3{font-size:1rem}p{line-height:1.6}small,.small{font-size:.82rem}.muted{color:var(--muted)}.shell{display:grid;grid-template-columns:230px 1fr;min-height:100vh}.sidebar{background:#092f3c;color:#d8e9ec;padding:32px 18px;display:flex;flex-direction:column;gap:30px}.logo{font-size:1.45rem;letter-spacing:.07em;font-weight:750;color:inherit;text-decoration:none;display:flex;align-items:center;gap:12px}.logo span{font-size:.8rem;letter-spacing:0;line-height:1.3;font-weight:400}.sidebar nav{display:grid;gap:7px}.sidebar nav button{background:none;border:0;color:#d8e9ec;padding:13px 16px;border-radius:10px;text-align:left;display:flex;gap:12px;align-items:center;min-height:46px}.sidebar nav button.active{background:#ffffff19;color:white;font-weight:600;border-left:3px solid #72ccd7}.sidebar .account{margin-top:auto;border-top:1px solid #ffffff25;padding-top:18px}.account small{color:#c1d4d9}.account button{margin-top:12px;color:#d8e9ec;background:transparent;border:1px solid #ffffff30;border-radius:8px;padding:8px 14px}.workspace{min-width:0}.topbar{background:#fff;border-bottom:1px solid var(--line);padding:18px 34px;display:flex;justify-content:space-between;align-items:center;gap:12px}.topbar small{color:var(--muted)}main.content{max-width:1260px;margin:auto;padding:32px}.heading{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;margin-bottom:24px}.heading p{margin:0}.btn{display:inline-flex;justify-content:center;align-items:center;gap:8px;text-decoration:none;min-height:44px;padding:10px 16px;background:white;border:1px solid #cbdadd;color:var(--ink);border-radius:9px;font-weight:550}.btn.primary{background:var(--brand);color:white;border-color:var(--brand)}.btn.danger{color:#a63132;border-color:#e8c5c5}.btn.quiet{background:transparent}.row{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap}.actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.panel{background:#fff;border:1px solid var(--line);border-radius:14px;padding:24px;margin-bottom:20px}.panel.accent{background:#e7f3f5;border-color:#c9e4e9}.metric{font-size:2rem;letter-spacing:-.04em;font-weight:650;margin:10px 0 0}.tag{display:inline-flex;font-size:.8rem;padding:5px 9px;border-radius:6px;background:#edf3f5;color:#3c5861;white-space:nowrap}.tag.good{background:#e4f3ed;color:#1c6248}.tag.warn{background:#fff2d9;color:#875917}.tag.bad{background:#fce8e8;color:#973338}.item{padding:16px 0;border-bottom:1px solid var(--line)}.item:last-child{border:0}.item strong{display:block}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:.92rem}th{text-align:left;color:var(--muted);font-weight:500;background:#f7f9fa}th,td{padding:14px 12px;border-bottom:1px solid var(--line)}td .actions{flex-wrap:nowrap}label.field{display:block;font-size:.9rem;font-weight:550;margin-bottom:15px}label.field>span{display:block;margin-bottom:7px}input,select,textarea{padding:11px 12px;border:1px solid #c5d6dc;border-radius:8px;background:white;color:var(--ink);width:100%;min-width:0}textarea{min-height:85px}input[type=checkbox]{width:19px;height:19px;accent-color:var(--brand)}.check{display:flex;gap:10px;align-items:center;padding:10px 0}.check input{flex-shrink:0}.days{display:flex;gap:7px;flex-wrap:wrap}.days label{padding:8px 12px;border:1px solid var(--line);border-radius:8px;display:flex;align-items:center;gap:7px}.note{background:#eaf4f6;padding:13px 16px;border-radius:8px;color:#285d69;font-size:.9rem;line-height:1.5}.error{color:#a52e2e;padding:10px 0;line-height:1.5}.empty{padding:32px 16px;text-align:center;color:var(--muted)}.form-footer{margin-top:20px;padding-top:18px;border-top:1px solid var(--line)}dialog{border:0;border-radius:16px;box-shadow:0 24px 80px #062d4055;padding:26px;width:min(690px,calc(100% - 24px));max-height:90vh;color:var(--ink)}dialog::backdrop{background:#07273588}dialog .close{border:0;background:#edf2f3;color:var(--ink);width:40px;height:40px;border-radius:50%;font-size:1.4rem}dialog .head{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}dialog .head h2{margin:0}.login{max-width:440px;margin:8vh auto;padding:24px}.login .logo{color:var(--brand);margin-bottom:38px}.login .panel{padding:30px}.login .btn{width:100%;margin-top:10px}.loading{padding:60px;text-align:center}.voucher{max-width:510px;margin:30px auto;padding:18px}.voucher .panel{padding:28px}.voucher .logo{color:var(--brand);margin-bottom:28px}.ticket-code{padding:20px 0;text-align:center;border-top:1px dashed var(--line);border-bottom:1px dashed var(--line);margin:24px 0}.ticket-code img{width:190px;height:190px;max-width:100%}.ticket-code strong{display:block;font-size:1.3rem;letter-spacing:.18em}.sum{font-size:1.35rem;font-weight:650}.qr-access{width:210px;height:210px;max-width:100%;display:block;margin:16px auto}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#123f4c;color:white;padding:13px 20px;border-radius:10px;box-shadow:0 5px 20px #0002;max-width:calc(100% - 24px);display:none;z-index:100}.statusbar{font-size:.82rem;color:var(--muted)}.preview{margin-top:16px}.receipt{max-width:800px;margin:auto}.spaced{margin-top:20px}.mono{font-variant-numeric:tabular-nums}.filters{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:20px}.filters .field{min-width:170px;flex:1}.foot{font-size:.78rem;color:var(--muted);margin-top:26px}.payout-list{max-height:330px;overflow:auto}.payout-list .check{border-bottom:1px solid var(--line)}@media(max-width:900px){.shell{grid-template-columns:185px 1fr}.sidebar{padding:24px 12px}main.content{padding:24px}.grid.three{grid-template-columns:1fr}.topbar{padding:18px 24px}}@media(max-width:640px){.shell{display:block}.sidebar{padding:14px 16px;gap:14px}.sidebar .logo{font-size:1.15rem}.sidebar .logo span{font-size:.75rem}.sidebar nav{display:flex;overflow:auto;gap:5px;padding-bottom:4px}.sidebar nav button{white-space:nowrap;padding:10px 12px;min-height:44px}.sidebar nav button.active{border-left:0;border-bottom:3px solid #72ccd7}.sidebar .account{display:none}.topbar{padding:12px 18px}.topbar .mobile-logout{display:inline-flex}.grid{grid-template-columns:1fr;gap:0}.grid.three{gap:0}main.content{padding:22px 16px}.panel{padding:20px}h1{font-size:1.6rem}dialog{padding:20px}.heading{gap:12px}.login{margin:4vh auto}.voucher{margin:0 auto}.table-wrap{margin:0 -8px}.btn{padding:10px 13px}}@media(min-width:641px){.mobile-logout{display:none}}@media print{body{background:white}.sidebar,.topbar,.no-print,#toast{display:none!important}.shell{display:block}main.content{padding:0}.panel{box-shadow:none;border:0}.voucher{margin:0 auto}dialog{position:static;max-height:none;box-shadow:none;width:100%}body:has(dialog[open]) #app{display:none}dialog::backdrop{display:none}}
/* 0.1.1: compact departures and responsive reservation rows */
.departure-list{background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden}.departure-row{display:grid;grid-template-columns:minmax(140px,.8fr) minmax(160px,1fr) minmax(160px,1fr);gap:12px 20px;align-items:center;padding:18px 22px;border-bottom:1px solid var(--line)}.departure-row:last-child{border-bottom:0}.departure-row strong,.departure-row small,.departure-row .muted{display:block}.departure-row small{color:var(--muted);margin-top:4px}.departure-row>.actions{grid-column:1/-1}.filters>.btn{align-self:flex-end;margin-bottom:15px}.reservations-panel{padding:12px}.reservation-table td{overflow-wrap:anywhere}.departure-row .actions .btn{font-size:.88rem;min-height:42px;padding:8px 12px}.reservation-table th{white-space:nowrap}@media(max-width:640px){.departure-row{grid-template-columns:1fr 1fr;padding:16px;gap:12px}.departure-row>div:nth-child(2){grid-column:1/-1;grid-row:1}.departure-row>div:nth-child(3){text-align:right}.departure-row>.actions{gap:7px}.departure-row .actions .btn{min-height:44px}.reservation-table,.reservation-table tbody,.reservation-table tr,.reservation-table td{display:block;width:100%}.reservation-table thead{display:none}.reservation-table tr{border-bottom:1px solid var(--line);padding:12px 0}.reservation-table td{border:0;padding:6px 8px}.reservation-table td[data-label]::before{content:attr(data-label);display:block;font-size:.8rem;color:var(--muted);margin-bottom:3px}.reservations-panel .table-wrap{overflow:visible;margin:0}.reservations-panel{padding:8px 12px}}

/* 0.1.3: logout stays within reach on desktop and mobile. */
.topbar{position:sticky;top:0;z-index:20}.session-logout{white-space:nowrap}.product-list{max-width:900px}.product p{white-space:pre-line;overflow-wrap:anywhere}.product h2{margin-bottom:0}.payment-details{overflow-wrap:anywhere;margin-bottom:16px}
@media(min-width:641px){.sidebar{position:sticky;top:0;height:100dvh;overflow-y:auto;align-self:start}}
@media(max-width:640px){.topbar{gap:8px;padding:10px 12px}.topbar>.actions{justify-content:flex-end}.topbar .statusbar{display:none}.topbar>span{min-width:0;overflow-wrap:anywhere}.session-logout{font-size:.85rem}.product .row{align-items:flex-start}}

.notice-list{max-width:900px}.notice-message{white-space:pre-wrap;overflow-wrap:anywhere}.notice h2{margin-bottom:0}textarea[name=messageTemplate],textarea[name=message]{min-height:180px}

.stats-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.stats-metrics .panel{padding:18px}.stats-metrics .metric{font-size:1.7rem;overflow-wrap:anywhere}.stats-chart{margin:0;min-width:0}.stats-chart figcaption{font-weight:600}.stats-chart svg{width:100%;height:auto;display:block}.stats-chart text{font-size:13px;fill:#546c76}.stats-breakdown{display:grid;grid-template-columns:1fr auto;gap:14px}.stats-breakdown dd{margin:0;text-align:right;font-weight:600}.stats-period{margin-bottom:16px}#statsForm .filters .field{min-width:160px}#statsResults{min-width:0}#statsResults .table-wrap{max-width:100%}
@media(max-width:1100px){.stats-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.stats-metrics{grid-template-columns:1fr;gap:0}.stats-breakdown{grid-template-columns:1fr;gap:5px}.stats-breakdown dd{text-align:left;margin-bottom:12px}.stats-chart{margin-bottom:18px}}

#commissionPermission[hidden]{display:none}
/* Controles táctiles del embarque rápido. */
#quickForm fieldset{border:0;padding:0;margin:0;min-width:0}#quickForm legend{font-size:1.25rem;font-weight:700;margin-bottom:20px}#quickForm fieldset:disabled{opacity:.65}.quick-counts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-bottom:18px}.quick-counter label{display:block;font-weight:600;margin-bottom:10px}.quick-counter>div{display:flex;align-items:center;gap:8px}.quick-counter input{width:70px;min-height:48px;text-align:center;font-size:1.3rem;border:1px solid #b8cbd0;border-radius:8px}.quick-counter .btn{min-width:44px;min-height:48px;padding:8px}.quick-counter input::-webkit-inner-spin-button{appearance:none}#quickForm details{margin:16px 0}#quickForm summary{cursor:pointer;font-weight:600}#quickForm .form-footer{gap:16px}#quickForm .form-footer button{min-height:52px}@media(max-width:700px){.quick-counts{grid-template-columns:1fr}.quick-counter{display:flex;align-items:center;justify-content:space-between;gap:10px}.quick-counter label{margin:0;font-size:.95rem}.quick-counter input{width:58px}.quick-counter>div{gap:5px}#quickForm .form-footer{align-items:stretch;flex-direction:column}#quickForm .form-footer button{width:100%}}

.quick-groups .item small{display:block;margin-top:6px}.quick-groups .item{gap:14px}.quick-groups .row>strong{line-height:1.5}

/* 0.2.5 · Barcos del Este website palette and calm nautical treatment. */
:root{--brand:#2B6CB0;--ink:#1A202C;--muted:#4A5568;--line:#dbe3ed;color:var(--ink);background:#F7FAFC;font-family:Nunito,"Segoe UI",system-ui,sans-serif}
h1,.heading h2,.login h1{font-family:"Della Respira",Georgia,serif;font-weight:400;letter-spacing:-.025em}
.sidebar{background:linear-gradient(165deg,#172f4b,#203f60);color:#fff}.sidebar nav button.active{background:#ffffff20;border-color:#93c5fd}.btn.primary{background:#2B6CB0;border-color:#2B6CB0}.btn.primary:hover{background:#235990}.btn{border-radius:6px}.panel{border-radius:12px;box-shadow:0 3px 14px #1a365d06}.panel.accent{background:#EDF2F7}.note{background:#edf4fb;color:#234b75}.topbar{border-top:3px solid #3182CE}.brand-logo{width:62px;height:62px;object-fit:contain;background:white;border-radius:50%;padding:4px}.login .brand-logo{width:90px;height:90px}.login .logo{justify-content:center}.login .panel{border-top:4px solid #3182CE}.blacklist-warning{margin:12px 0;padding:14px 16px;border:1px solid #dc9c48;border-left:4px solid #a96710;border-radius:8px;background:#fff6e7;color:#6b430b}.blacklist-warning p{margin:7px 0;white-space:pre-wrap;overflow-wrap:anywhere}input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible,a:focus-visible{outline:3px solid #3182CE;outline-offset:3px}@media(max-width:640px){.brand-logo{width:44px;height:44px}.login .brand-logo{width:76px;height:76px}}

.brand-logo{width:170px;height:auto;max-width:100%;border-radius:0;padding:0;background:transparent}.sidebar .logo{display:block;background:#fff;padding:10px;border-radius:8px}.sidebar .logo span{display:none}.login .logo{flex-direction:column;gap:12px}.login .brand-logo{width:260px;height:auto}.voucher .logo{flex-direction:column;align-items:flex-start}.voucher .brand-logo{width:230px;height:auto}@media(max-width:640px){.sidebar .logo{width:200px}.brand-logo{width:170px;height:auto}.login .brand-logo{width:230px;height:auto}}

.notice-tabs{margin-bottom:24px}.notice-message{white-space:pre-wrap;overflow-wrap:anywhere}.notice-tabs .btn{min-width:140px}

#followup-notifications{position:relative}.notification-panel{position:absolute;right:0;top:48px;width:min(400px,85vw);max-height:70vh;overflow:auto;z-index:40;box-shadow:0 8px 28px #0003}.notification-item{display:flex;align-items:flex-start;flex-direction:column;width:100%;margin-top:8px;text-align:left;white-space:normal}.followup-bubble{position:fixed;right:20px;bottom:20px;width:min(370px,90vw);z-index:60;box-shadow:0 8px 28px #0003}.topbar .actions{flex-wrap:wrap}

#reader{width:100%;overflow:hidden}#reader video{display:block;width:100%!important;height:auto!important;object-fit:contain!important;transform:none!important}#qrResetZoom{margin-bottom:12px}
