*{margin:0;padding:0;box-sizing:border-box}body,html{height:100%;overflow:hidden}body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";display:flex;flex-direction:column;padding-top:60px;padding-bottom:40px;margin:0;background-color:#fff}#main-header{position:fixed;top:0;left:0;width:100%;background-color:#333;color:#fff;padding:10px 20px;display:flex;justify-content:space-between;align-items:center;z-index:1010;height:60px;box-shadow:0 2px 5px rgba(0,0,0,.2)}#main-header .header-title{display:flex;align-items:baseline}#main-header h1{font-size:1.8em;margin:0 10px 0 0}#main-header .version{font-size:.8em;opacity:.8}#main-header .return-button{background-color:#555;color:#fff;padding:8px 15px;border:none;border-radius:4px;text-decoration:none;font-size:.9em;cursor:pointer;display:inline-flex;align-items:center;gap:5px;transition:background-color .2s ease}#main-header .return-button:hover{background-color:#777}#main-header .icon-placeholder{font-size:1.2em;line-height:1}#content{flex-grow:1;display:flex;flex-direction:column;position:relative;overflow:hidden;margin:0;padding:0}.app-description{padding:10px 20px;background-color:#f4f4f4;border-bottom:1px solid #ddd;text-align:center;font-style:italic;color:#555;flex-shrink:0;margin:0}#map{flex-grow:1;width:100%;background-color:#eee;z-index:1;margin:0;padding:0;border:none}.drawer-container{position:fixed;bottom:40px;left:0;width:100%;z-index:1005;pointer-events:none}.drawer{background-color:#f8f9fa;border-top:1px solid #ccc;width:100%;max-height:0;overflow:hidden;transition:max-height .3s ease-out;box-shadow:0 -3px 6px rgba(0,0,0,.15);pointer-events:auto}.drawer.open{max-height:250px;border-top:1px solid #aaa}.drawer-content{padding:15px 40px 15px 20px;position:relative;display:flex;flex-wrap:wrap;gap:15px;align-items:center;justify-content:center}.drawer-close-button{position:absolute;top:8px;right:10px;background:0 0;border:none;font-size:1.8em;font-weight:700;color:#888;cursor:pointer;padding:0 5px;line-height:1}.drawer-close-button:hover{color:#333}.drawer .form-group{display:flex;flex-direction:column;gap:5px}.drawer .form-group label{font-size:.9em;color:#333;text-align:left}.drawer input[type=number],.drawer input[type=text]{padding:8px;border:1px solid #ccc;border-radius:4px;min-width:150px}.drawer .button-group{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.drawer button{padding:8px 15px;border:none;border-radius:4px;cursor:pointer;font-size:.9em;transition:background-color .2s ease}.drawer button:disabled{background-color:#ccc!important;color:#666!important;cursor:not-allowed;box-shadow:none}#start-journey{background-color:#28a745;color:#fff}#start-journey:hover:not(:disabled){background-color:#218838}#end-journey{background-color:#dc3545;color:#fff}#end-journey:hover:not(:disabled){background-color:#c82333}#save-journey{background-color:#17a2b8;color:#fff}#save-journey:hover:not(:disabled){background-color:#138496}#reset-journey{background-color:#ffc107;color:#333}#reset-journey:hover:not(:disabled){background-color:#e0a800}#main-footer{position:fixed;bottom:0;left:0;width:100%;background-color:#333;color:#ccc;padding:10px 20px;text-align:center;font-size:.85em;z-index:1010;height:40px;display:flex;justify-content:space-between;align-items:center}#main-footer a{color:#aef;text-decoration:none}#main-footer a:hover{text-decoration:underline}#main-footer .disclaimer-link{background:0 0;border:none;color:#aef;text-decoration:underline;cursor:pointer;font-size:inherit;padding:0}#main-footer .disclaimer-link:hover{color:#fff}.modal{display:none;position:fixed;z-index:2000;left:0;top:0;width:100%;height:100%;overflow:auto;background-color:rgba(0,0,0,.6);align-items:center;justify-content:center}.modal-content{background-color:#fefefe;margin:auto;padding:25px 30px;border:1px solid #888;width:90%;max-width:500px;border-radius:8px;position:relative;box-shadow:0 4px 15px rgba(0,0,0,.2);text-align:left}.modal h2,.modal h3{margin-top:0;margin-bottom:15px;color:#333;font-weight:600}.modal p{margin-bottom:15px;line-height:1.6;color:#555}.modal p:last-of-type{margin-bottom:5px}.modal .close-button{color:#aaa;position:absolute;top:8px;right:15px;font-size:28px;font-weight:700;cursor:pointer;line-height:1;padding:0 5px}.modal .close-button:focus,.modal .close-button:hover{color:#000;text-decoration:none}.modal .modal-close-button{padding:10px 20px;background-color:#6c757d;color:#fff;border:none;border-radius:4px;cursor:pointer;margin-top:15px;float:right;font-size:.9em;transition:background-color .2s ease}.modal .modal-close-button:hover{background-color:#5a6268}#custom-dialog .modal-content{text-align:center}#custom-dialog #dialog-message{margin-bottom:20px}#custom-dialog #dialog-message code{background-color:#e9e9e9;padding:2px 5px;border-radius:3px;font-family:monospace}.dialog-button-container{display:flex;justify-content:center;gap:15px;margin-top:20px;flex-wrap:wrap}.dialog-button-container button{padding:10px 25px;border:none;border-radius:5px;font-size:1em;font-weight:500;cursor:pointer;min-width:90px;transition:background-color .2s ease,box-shadow .2s ease}.dialog-button-default{background-color:#6c757d;color:#fff}.dialog-button-default:hover{background-color:#5a6268;box-shadow:0 2px 5px rgba(0,0,0,.2)}.dialog-button-ok{background-color:#007bff;color:#fff}.dialog-button-ok:hover{background-color:#0056b3;box-shadow:0 2px 5px rgba(0,0,0,.2)}.dialog-button-cancel{background-color:#6c757d;color:#fff}.dialog-button-cancel:hover{background-color:#5a6268;box-shadow:0 2px 5px rgba(0,0,0,.2)}.dialog-button-confirm{background-color:#28a745;color:#fff}.dialog-button-confirm:hover{background-color:#218838;box-shadow:0 2px 5px rgba(0,0,0,.2)}.dialog-button-danger{background-color:#dc3545;color:#fff}.dialog-button-danger:hover{background-color:#c82333;box-shadow:0 2px 5px rgba(0,0,0,.2)}.loading-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:rgba(255,255,255,.75);z-index:3000;display:flex;flex-direction:column;justify-content:center;align-items:center}.loading-spinner{border:5px solid #f3f3f3;border-top:5px solid #3498db;border-radius:50%;width:40px;height:40px;animation:spin 1s linear infinite}#loading-message{margin-top:15px;font-size:1.1em;color:#333;font-weight:500}@keyframes spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.leaflet-control{pointer-events:none;box-shadow:0 1px 5px rgba(0,0,0,.2);border-radius:4px;background-clip:padding-box}.leaflet-control>*{pointer-events:auto}.leaflet-bar{background-color:#fff;border:1px solid #ccc;box-shadow:0 1px 5px rgba(0,0,0,.2)}.leaflet-bar a,.leaflet-bar button{background-color:#fff;border-bottom:1px solid #ccc;color:#333;width:30px;height:30px;line-height:30px;text-align:center;text-decoration:none;font-size:1.2em;display:block}.leaflet-bar a:hover,.leaflet-bar button:hover{background-color:#f4f4f4;color:#000}.leaflet-bar a:first-child,.leaflet-bar button:first-child{border-radius:4px 4px 0 0}.leaflet-bar a:last-child,.leaflet-bar button:last-child{border-radius:0 0 4px 4px;border-bottom:none}.leaflet-bar a.leaflet-disabled,.leaflet-bar button.leaflet-disabled{cursor:default;opacity:.5}.leaflet-control-custom{background:0 0;border:none;margin:0;padding:0;box-shadow:none}#toggle-drawer{background-color:#007bff;color:#fff;padding:8px 12px;border:none;border-radius:4px;box-shadow:0 1px 5px rgba(0,0,0,.4);font-size:.9em;font-weight:500;line-height:1.4;text-align:center;cursor:pointer;pointer-events:auto;transition:background-color .2s ease;text-indent:0;white-space:nowrap;margin:10px}#toggle-drawer:hover{background-color:#0056b3}.leaflet-bar button#toggle-drawer{width:auto;height:auto;line-height:1.4;border-radius:4px;border-bottom:none}.journey-info-panel{background-color:rgba(255,255,255,.85);padding:8px 12px;border-radius:5px;box-shadow:0 1px 5px rgba(0,0,0,.3);max-width:250px;font-size:.85em;line-height:1.5;color:#333;margin:10px}.journey-info-panel h4{margin-top:0;margin-bottom:6px;font-size:1.1em;border-bottom:1px solid #ccc;padding-bottom:4px}.journey-info-panel p{margin-bottom:4px}.journey-info-panel p:last-child{margin-bottom:0}.journey-info-panel strong{color:#111;min-width:60px;display:inline-block}.journey-info-panel span{color:#0056b3;font-weight:500}#journey-info-placeholder{font-style:italic;color:#666;text-align:center}.journey-point-icon div{background-color:#007bff;width:8px;height:8px;border-radius:50%;border:1px solid #fff;box-shadow:0 0 4px rgba(0,0,0,.6)}