.reservation-square{background:radial-gradient(circle at 100% 0,#e4e3f390,transparent 75%),var(--paper)}.reservation-square:hover,.reservation-square[aria-expanded=true]{background:#f0eff8;border-color:#b8aed3}.reservation-square .square-icon{color:#77658e;background:#eeebf6}
.reservation-journal>.journal-head{padding-right:30px;align-items:center}.reservation-journal .journal-head>div{display:flex;gap:8px;align-items:center}.reservation-refresh{display:grid;place-items:center;min-width:32px;min-height:36px}.reservation-filters{display:flex;gap:5px;overflow:auto;padding:0 0 11px;scrollbar-width:thin}.reservation-filters button{flex:none;display:flex;gap:4px;align-items:center;border:1px solid var(--line);border-radius:20px;min-height:36px;padding:6px 10px;font-size:11px;background:#fff;color:var(--muted)}.reservation-filters button[aria-pressed=true]{background:#e7f2eb;color:var(--teal-dark);border-color:#aecdbb}.reservation-filters small{font-size:9px;opacity:.75}.reservation-stack{display:grid;gap:8px}.reservation-card{min-width:0;border:1px solid var(--line);border-radius:12px;background:#fff}.reservation-card>summary{display:flex;align-items:center;gap:9px;list-style:none;cursor:pointer;padding:12px 10px;min-height:65px}.reservation-card>summary::-webkit-details-marker{display:none}.reservation-type-icon{width:30px;height:33px;flex:none;display:grid;place-items:center;color:var(--teal);background:#eff5ef;border-radius:9px}.reservation-type-icon .ui-icon{width:19px;height:19px}.reservation-summary{flex:1;min-width:0;display:grid;gap:4px}.reservation-summary strong{font-size:13px;line-height:1.5;overflow-wrap:anywhere}.reservation-summary>span{font-size:10px;color:var(--muted);overflow-wrap:anywhere}.reservation-status{flex:none;border-radius:5px;padding:3px 5px;background:#edf4ec;color:#466b4d;font-size:9px;white-space:nowrap}.reservation-status-pending{background:#faf0d9;color:#886c28}.reservation-status-cancelled{background:#f1efed;color:#8c837e}.reservation-cancelled .reservation-summary{opacity:.65}.reservation-details{padding:0 12px 12px;border-top:1px dashed var(--line)}.reservation-code{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:11px 0 5px}.reservation-code>span{font-size:10px;color:var(--muted)}.reservation-code strong{font-size:15px;letter-spacing:.04em;overflow-wrap:anywhere;user-select:all}.reservation-code button{margin-left:auto;font-size:11px;min-height:36px}.reservation-holder,.reservation-note p{font-size:12px;line-height:1.8;white-space:pre-wrap;overflow-wrap:anywhere;color:var(--ink)}.reservation-note h3{font-size:10px;color:var(--muted);margin:12px 0 4px}.reservation-note p{margin:0 0 10px}.reservation-link{display:inline-flex;gap:6px;align-items:center;font-size:12px;color:var(--teal);min-height:40px}.reservation-files{display:grid;gap:7px;margin:7px 0}.reservation-file{display:flex;min-width:0;border:1px solid #dce7de;border-radius:10px;background:#f8faf6}.reservation-file>button:first-child{display:flex;gap:9px;align-items:center;flex:1;min-width:0;padding:11px 9px;text-align:left;border:0;border-radius:10px;background:transparent;color:var(--ink);min-height:56px}.reservation-file>button:first-child>span:nth-child(2){flex:1;min-width:0;display:grid;gap:3px}.reservation-file strong{font-size:12px;overflow-wrap:anywhere;font-weight:600}.reservation-file small{font-size:10px;color:var(--muted)}.reservation-file-icon{color:var(--teal);display:flex}.reservation-file .ui-icon{width:18px;height:18px;flex:none}.reservation-file-remove{border:0;border-left:1px solid var(--line);border-radius:0 10px 10px 0;background:transparent;color:#92766c;width:36px;flex:none}.reservation-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:8px}.reservation-actions small{margin-right:auto;font-size:10px;color:var(--muted)}.reservation-actions button{font-size:11px;min-height:36px}.reservation-no-file{font-size:11px;color:var(--muted);line-height:1.7}.reservation-empty{display:grid;justify-items:center;text-align:center;padding:22px 8px 13px;gap:7px;color:var(--muted)}.reservation-empty>.ui-icon{width:28px;height:28px;color:#77a58b}.reservation-empty p{font-size:12px;line-height:1.8;margin:3px 0 8px}.reservation-upload{position:relative;display:flex;align-items:center;justify-content:center;gap:12px;min-height:78px;border:1px dashed #a7c5b1;background:#f3f8f2;border-radius:12px;cursor:pointer;color:var(--teal);font-size:13px;font-weight:600;margin:14px 0 8px}.reservation-upload input{position:absolute;inset:0;opacity:0;width:100%;cursor:pointer}.reservation-upload small{display:block;font-size:10px;font-weight:400;color:var(--muted);margin-top:5px}.reservation-upload .ui-icon{width:24px;height:24px}.reservation-pending{display:grid;gap:5px}.reservation-pending>div{display:flex;gap:8px;align-items:center;border:1px solid var(--line);border-radius:8px;padding:5px 8px;font-size:12px;overflow-wrap:anywhere}.reservation-pending span{min-width:0;flex:1}.reservation-pending small{color:var(--muted);font-size:10px}.reservation-pending button{display:grid;place-items:center;border:0;background:transparent;color:var(--muted);width:36px;height:36px;flex:none}.reservation-pending .ui-icon{width:15px;height:15px}.reservation-existing-files{font-size:11px;line-height:1.8;color:var(--muted);overflow-wrap:anywhere}.reservation-error,.reservation-form-error{font-size:12px;color:#986146;line-height:1.8;overflow-wrap:anywhere}.reservation-form-error:empty{display:none}
.reservation-viewer{position:fixed;inset:0;z-index:35;background:#fff;display:flex;flex-direction:column;height:100dvh;color:var(--ink);padding-top:env(safe-area-inset-top)}.reservation-viewer>header{display:flex;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid var(--line);background:#fafcf8;flex:none}.reservation-viewer>header>div{flex:1;min-width:0}.reservation-viewer h2{font-size:13px;line-height:1.5;margin:3px 0 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.reservation-viewer header small{font-size:10px;color:var(--muted);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.reservation-viewer header>button,.reservation-viewer header>a{display:grid;place-items:center;width:42px;height:42px;border:1px solid var(--line);border-radius:11px;background:#fff;flex:none;color:var(--teal)}.reservation-viewer .ui-icon{width:19px;height:19px}.reservation-view-stage{flex:1;min-height:0;overflow:auto;padding:14px 12px;background:#fff;overscroll-behavior:contain;touch-action:pan-x pan-y pinch-zoom}.reservation-view-stage>img,.reservation-view-stage>canvas{display:block;margin:0 auto;max-width:none;background:#fff;height:auto;flex:none}.reservation-view-message{padding:40px 12px;text-align:center;color:var(--muted);line-height:1.8;font-size:13px}.reservation-viewer>footer{display:flex;gap:7px;align-items:center;justify-content:center;flex:none;border-top:1px solid var(--line);padding:9px 10px calc(9px + env(safe-area-inset-bottom));background:#fafcf8}.reservation-viewer footer button{height:42px;min-width:42px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--teal);font-size:20px}.reservation-viewer footer [data-zoom-reset]{font-size:12px;min-width:55px}.reservation-viewer button:disabled{opacity:.35;cursor:default}.reservation-viewer [hidden]{display:none!important}.reservation-viewer [data-pdf-page]{font-size:11px;min-width:37px;text-align:center}.reservation-pdf-password{max-width:320px;margin:40px auto;display:grid;gap:15px}.reservation-pdf-password label{display:grid;gap:12px;font-size:14px}
.reservation-form .field-row{grid-template-columns:repeat(2,minmax(0,1fr))}.reservation-form .field{min-width:0}.reservation-form input,.reservation-form select,.reservation-form textarea{min-width:0}
@media(max-width:550px){.reservation-form .field-row{gap:9px}.reservation-card>summary{gap:7px}.reservation-type-icon{width:26px}.reservation-details{padding-left:10px;padding-right:10px}.reservation-journal>.journal-head h2{font-size:16px}.reservation-viewer>footer{gap:5px}.reservation-viewer footer button{min-width:38px}}
@media(max-width:550px){.reservation-form .input,.reservation-form select,.reservation-form textarea{font-size:16px}}
@media(max-width:550px){.travel-overview{gap:6px}.travel-overview .overview-square{height:94px;padding:9px 7px}.travel-overview .square-heading{font-size:13px;gap:2px}.travel-overview .square-icon{width:18px;height:18px}.travel-overview .square-icon svg{width:17px;height:17px}.travel-overview .square-route,.travel-overview .square-stay-name{font-size:12px}.travel-overview .square-subtitle{font-size:10px}.travel-overview .square-meta{display:none}.travel-overview .square-value{font-size:20px}.travel-overview .square-value-long{font-size:15px}}
