.request-detail{flex-direction:column;display:flex}.map-container{width:100%;height:45vh;min-height:280px;position:relative}.locate-button{background:var(--color-bg);z-index:1000;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;display:flex;position:absolute;bottom:16px;right:16px;box-shadow:0 2px 6px #0003}.locate-icon{object-fit:contain;width:24px;height:24px}.request-detail-back-button{background:var(--color-bg);z-index:1000;border:none;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;padding:0;display:flex;position:absolute;top:14px;left:14px;box-shadow:0 2px 6px #00000026}.request-detail-back-icon{object-fit:contain;width:24px;height:24px}.request-detail-card{background:var(--color-bg);z-index:5;border-radius:16px 16px 0 0;flex:1;margin-top:-16px;padding:24px 20px;position:relative;overflow:hidden}.request-detail-message{color:var(--color-text);text-align:center;margin:0 0 16px;font-size:.9rem}.request-detail-pickup-highlight{color:var(--color-text);text-align:center;text-overflow:ellipsis;white-space:nowrap;font-size:1.3rem;font-weight:600;overflow:hidden}.request-detail-divider{border:none;border-top:var(--border-input);margin:4px 0 24px}.request-detail-info-row{justify-content:space-between;align-items:flex-start;margin-bottom:12px;display:flex}.request-detail-info-left{flex:1;min-width:0;overflow:hidden}.request-detail-info-right{width:60px;margin-left:10px}.request-detail-label{color:var(--color-text-sub);margin-bottom:2px;font-size:.8rem;display:block}.request-detail-route{color:var(--color-text);min-width:0;font-size:1rem;font-weight:600;line-height:1.5;overflow:hidden}.request-detail-passenger{color:var(--color-text);font-size:1.1rem;font-weight:600}.request-detail-request-number{margin-bottom:20px}.request-detail-number-value{color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;font-size:1.1rem;font-weight:600;display:block;overflow:hidden}.request-detail-buttons{gap:12px;display:flex}.request-detail-reject-button{background:var(--color-cancel);color:#fff;border:none;border-radius:8px;flex:.8;padding:14px;font-size:1.1rem;font-weight:600}.request-detail-accept-button{background:var(--color-primary);color:#fff;border:none;border-radius:8px;flex:1.2;padding:14px;font-size:1.1rem;font-weight:600}.request-detail-reject-button:disabled,.request-detail-accept-button:disabled{opacity:.5}.dashboard{flex-direction:column;max-width:480px;height:100dvh;margin:0 auto;padding:16px;display:flex;overflow-x:hidden}.dashboard-title{color:var(--color-text);margin:0;font-size:1rem;font-weight:600}.dashboard-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.user-menu-container{position:relative}.user-icon-button{background:var(--color-bg);cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;padding:0;display:flex}.user-icon-img{object-fit:contain;width:34px;height:34px}.user-menu-backdrop{z-index:99;position:fixed;inset:0}.user-menu-dropdown{background:var(--color-bg);z-index:100;border:none;border-radius:10px;min-width:160px;position:absolute;top:42px;right:0;overflow:hidden;box-shadow:0 4px 16px #0000004d}.user-menu-item{width:100%;color:var(--color-text);text-align:left;cursor:pointer;background:0 0;border:none;padding:14px 18px;font-size:1rem}.boat-card{background:var(--color-bg);border:var(--border-card);text-align:center;border-radius:10px;margin-bottom:20px;padding:16px;position:relative}.close-business-button{color:#fff;background:#666;border:none;border-radius:12px;padding:8px 12px;font-size:1rem;font-weight:600;position:absolute;top:12px;right:12px}.close-business-button:disabled{opacity:.3}.boat-name{color:var(--color-text-sub);text-overflow:ellipsis;white-space:nowrap;max-width:100%;margin:36px 0 10px;font-size:.9rem;overflow:hidden}.boat-image-area{background:var(--color-bg-empty);border-radius:10px;width:70%;height:140px;margin:0 auto 12px;overflow:hidden}.boat-image-area img{object-fit:cover;width:100%;height:100%;display:block}.current-status-label{color:var(--color-text);margin:0 0 14px;font-size:1.8rem;font-weight:600}.status-buttons{justify-content:center;gap:8px;margin-bottom:16px;display:flex}.status-button{background:var(--color-primary);color:#fff;border:none;border-radius:12px;padding:10px;font-size:1rem;font-weight:600;transition:opacity .2s}.status-button:disabled{opacity:.5}.preparation-time-row{justify-content:center;align-items:center;gap:8px;display:flex}.preparation-time-label{color:var(--color-text);font-size:1.1rem;font-weight:500}.preparation-time-select{border:var(--border-input);text-align:center;color:var(--color-text);background:var(--color-bg);appearance:auto;border-radius:8px;padding:8px 15px;font-size:1rem}.preparation-time-select:focus{border-color:var(--color-focus);outline:none}.preparation-time-unit{color:var(--color-text);font-size:1.1rem;font-weight:500}.requests-section{flex-direction:column;flex:1;min-height:0;margin-bottom:0;display:flex}.requests-title{color:var(--color-text);margin:0 0 12px;font-size:1rem;font-weight:600}.no-requests{color:var(--color-text-sub);text-align:center;padding:20px 0;font-size:.9rem}.reload-button{background:var(--color-primary);vertical-align:middle;border:none;border-radius:50%;justify-content:center;align-items:center;width:30px;height:30px;margin-left:8px;display:inline-flex}.reload-icon{object-fit:contain;width:22px;height:22px}.request-list{-webkit-overflow-scrolling:touch;flex-direction:column;flex:1;gap:10px;min-height:100px;display:flex;overflow-y:auto}.request-item{background:var(--color-bg);border:1.5px solid var(--color-focus);border-radius:12px;flex-shrink:0;grid-template-columns:1fr auto;gap:4px 12px;padding:14px;display:grid;position:relative;overflow:hidden}.request-item.accepted{background:var(--color-bg-focus)}.request-item-time{color:var(--color-text-sub);font-size:.9rem;position:absolute;top:10px;right:14px}.request-item-body{grid-column:1;min-width:0;margin-top:16px;overflow:hidden}.request-item-label{color:var(--color-text-sub);font-size:.8rem;display:block}.request-item-route{color:var(--color-text);min-width:0;font-size:.9rem;font-weight:600;line-height:1.5;overflow:hidden}.request-item-passenger{grid-column:2;align-self:start;width:60px;margin-top:16px}.request-item-count{color:var(--color-text);font-size:1rem;font-weight:600}.request-item-number{grid-column:1/-1;min-width:0;margin-top:4px;overflow:hidden}.request-number-value{color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;font-size:1rem;font-weight:600;display:block;overflow:hidden}.request-item.cancelled{background:var(--color-bg-error);border-color:var(--color-error)}.request-cancelled-message{text-align:center;color:var(--color-error);grid-column:1/-1;margin:4px 0 0;font-size:.95rem;font-weight:600}.app{background:var(--color-bg);min-height:100vh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,sans-serif}.route-pickup-line,.route-destination-line{white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.leaflet-popup-content{word-break:break-word;overflow-wrap:break-word}.error-toast{background:var(--color-error);color:#fff;z-index:2000;border-radius:8px;padding:12px 16px;font-size:.9rem;position:fixed;top:16px;left:16px;right:16px;box-shadow:0 4px 12px #0003}.loading-overlay{z-index:5000;background:#ffffffb3;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.loading-spinner{width:40px;height:40px;animation:1s steps(8,end) infinite dot-spin;position:relative}.loading-spinner:before{content:"";border-radius:50%;width:8px;height:8px;margin:-4px 0 0 -4px;position:absolute;top:50%;left:50%;box-shadow:16px 0 0 -1px #ddd,11px 11px 0 -1px #ccc,0 16px 0 -1px #bbb,-11px 11px 0 -1px #aaa,-16px 0 0 -1px #999,-11px -11px #777,0 -16px #555,11px -11px #333}@keyframes dot-spin{to{transform:rotate(360deg)}}.dialog-overlay{z-index:4000;overscroll-behavior:contain;touch-action:none;background:#00000080;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.dialog-content{background:var(--color-bg);overscroll-behavior:contain;touch-action:auto;border-radius:16px;width:100%;min-width:0;max-width:380px;max-height:85vh;padding:24px;overflow-y:auto}.dialog-title{color:var(--color-text);white-space:pre-line;text-align:center;margin:0 0 16px;font-size:1.1rem;font-weight:600}.dialog-message{color:var(--color-text-sub);white-space:pre-line;text-align:center;margin:0 0 32px;font-size:.9rem;line-height:1.5}.dialog-error{color:var(--color-error);text-align:center;margin:8px 0;font-size:.85rem}.dialog-buttons{gap:12px;margin-top:20px;display:flex}.dialog-cancel-button{background:var(--color-cancel);color:#fff;border:none;border-radius:12px;flex:1;padding:14px;font-size:1.1rem;font-weight:600}.dialog-ok-button{background:var(--color-primary);color:#fff;border:none;border-radius:12px;flex:1;padding:14px;font-size:1.1rem;font-weight:600}.dialog-back-button{background:var(--color-cancel);color:#fff;border:none;border-radius:12px;width:100%;padding:14px;font-size:1.1rem;font-weight:600}.tab-inactive-overlay{z-index:9999;background:#000c;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.tab-inactive-content{background:var(--color-bg);text-align:center;border-radius:16px;width:100%;max-width:320px;padding:32px 24px}.tab-inactive-message{color:var(--color-text);font-size:1.1rem;font-weight:600}*{box-sizing:border-box;margin:0;padding:0}button,[role=button],.locate-button{touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}button:active,[role=button]:active,.locate-button:active{opacity:.7;transform:scale(.95)}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}:root{--color-primary:#007aff;--color-sub-primary:#4da6ff;--color-focus:#4da6ff;--color-error:#ff5252;--color-text:#333;--color-text-sub:#333;--color-bg:#fff;--color-bg-empty:#eee;--color-bg-focus:#e8f4fd;--color-bg-error:#fff5f5;--color-cancel:#94a3b8;--color-placeholder:#aaa;--border-card:1.5px solid #eee;--border-input:1.5px solid #ccc}
