:root{--primary:#1a73e8;--primary-dark:#1557b0;--primary-light:#e8f0fe;--green:#34a853;--green-light:#e6f4ea;--green-dark:#1e8e3e;--yellow:#fbbc04;--yellow-light:#fef7e0;--yellow-dark:#f9ab00;--red:#ea4335;--red-light:#fce8e6;--red-dark:#c5221f;--blue:#4285f4;--blue-light:#e8f0fe;--blue-dark:#1967d2;--bg:#f8f9fa;--bg-white:#fff;--text-primary:#202124;--text-secondary:#5f6368;--text-light:#80868b;--border:#dadce0;--border-light:#e8eaed;--space-xs:4px;--space-sm:8px;--space-md:16px;--space-lg:24px;--space-xl:32px;--space-2xl:48px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-full:9999px;--shadow-sm:0 1px 2px #0000000d;--shadow-md:0 4px 6px #00000012;--shadow-lg:0 10px 15px #0000001a;--font-family:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-family);background:var(--bg);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.6}.app{flex-direction:column;min-height:100vh;display:flex}.app-container{background:var(--bg-white);width:100%;max-width:480px;min-height:100vh;margin:0 auto;position:relative}@media (width>=768px){.app-container{min-height:100vh;box-shadow:var(--shadow-lg)}}.screen{min-height:100vh;padding:var(--space-lg);flex-direction:column;display:flex}.screen-header{text-align:center;margin-bottom:var(--space-xl)}.screen-title{color:var(--text-primary);margin-bottom:var(--space-sm);font-size:24px;font-weight:700}.screen-subtitle{color:var(--text-secondary);font-size:14px;line-height:1.5}.screen-content{flex-direction:column;flex:1;display:flex}.screen-footer{padding-top:var(--space-lg);margin-top:auto}.logo{justify-content:center;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-lg);display:flex}.logo-icon{background:var(--primary);border-radius:var(--radius-md);color:#fff;justify-content:center;align-items:center;width:48px;height:48px;font-size:24px;display:flex}.logo-text{color:var(--text-primary);font-size:28px;font-weight:700}.logo-text span{color:var(--primary)}.input-group{margin-bottom:var(--space-md)}.input-label{color:var(--text-primary);margin-bottom:var(--space-xs);font-size:14px;font-weight:500;display:block}.input-field{border:1.5px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-white);width:100%;color:var(--text-primary);padding:12px 16px;font-family:inherit;font-size:16px;transition:border-color .2s,box-shadow .2s}.input-field:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light);outline:none}.input-field::placeholder{color:var(--text-light)}.btn{justify-content:center;align-items:center;gap:var(--space-sm);border-radius:var(--radius-sm);cursor:pointer;border:none;width:100%;padding:14px 24px;font-family:inherit;font-size:16px;font-weight:600;transition:all .2s;display:inline-flex}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-dark);box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-secondary{background:var(--bg);color:var(--text-primary);border:1.5px solid var(--border)}.btn-secondary:hover{background:var(--border-light)}.btn-success{background:var(--green);color:#fff}.btn-success:hover{background:var(--green-dark)}.btn-danger{background:var(--red);color:#fff}.btn-danger:hover{background:var(--red-dark)}.btn-disabled{background:var(--border-light);color:var(--text-light);cursor:not-allowed}.btn-sm{padding:10px 16px;font-size:14px}.btn+.btn{margin-top:var(--space-sm)}.card{background:var(--bg-white);border:1.5px solid var(--border);border-radius:var(--radius-md);padding:var(--space-lg);box-shadow:var(--shadow-sm)}.card-highlight{border-color:var(--primary);background:var(--primary-light)}.option-group{margin-bottom:var(--space-lg)}.option-group-title{color:var(--text-primary);margin-bottom:var(--space-sm);font-size:14px;font-weight:600}.option-group-subtitle{color:var(--text-secondary);margin-bottom:var(--space-md);font-size:13px}.option-list{gap:var(--space-sm);flex-wrap:wrap;display:flex}.option-chip{border:1.5px solid var(--border);border-radius:var(--radius-full);background:var(--bg-white);color:var(--text-primary);cursor:pointer;padding:10px 16px;font-family:inherit;font-size:14px;font-weight:500;transition:all .2s}.option-chip:hover{border-color:var(--primary);background:var(--primary-light)}.option-chip.selected{border-color:var(--primary);background:var(--primary);color:#fff}.option-radio{gap:var(--space-sm);flex-direction:column;display:flex}.option-radio-item{align-items:center;gap:var(--space-md);border:1.5px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;padding:14px 16px;transition:all .2s;display:flex}.option-radio-item:hover,.option-radio-item.selected{border-color:var(--primary);background:var(--primary-light)}.option-radio-item input[type=radio]{accent-color:var(--primary);width:18px;height:18px}.option-radio-item label{cursor:pointer;font-size:15px;font-weight:500}.privacy-notice{background:var(--primary-light);border:1px solid var(--primary);border-radius:var(--radius-sm);padding:var(--space-md);margin-top:var(--space-lg)}.privacy-notice-title{color:var(--primary);margin-bottom:var(--space-xs);align-items:center;gap:var(--space-xs);font-size:13px;font-weight:600;display:flex}.privacy-notice-text{color:var(--text-secondary);font-size:12px;line-height:1.5}.step-indicator{justify-content:center;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-lg);padding:var(--space-md) 0;display:flex}.step-dot{background:var(--border);border-radius:50%;width:10px;height:10px;transition:all .3s}.step-dot.active{background:var(--primary);border-radius:var(--radius-full);width:24px}.step-dot.completed{background:var(--green)}.map-container{aspect-ratio:4/3;border-radius:var(--radius-md);border:2px solid var(--border);background:#e8e4df;width:100%;position:relative;overflow:hidden}.map-streets{position:absolute;inset:0}.map-street{background:#d4cfc9;position:absolute}.map-street.horizontal{height:20px;left:0;right:0}.map-street.vertical{width:20px;top:0;bottom:0}.map-street-label{color:var(--text-secondary);white-space:nowrap;font-size:10px;font-weight:500;position:absolute}.parking-marker{cursor:pointer;width:36px;height:36px;box-shadow:var(--shadow-md);z-index:10;border:3px solid #fff;border-radius:50%;justify-content:center;align-items:center;font-size:16px;transition:all .2s;display:flex;position:absolute}.parking-marker:hover{transform:scale(1.15)}.parking-marker.selected{box-shadow:0 0 0 4px var(--primary), var(--shadow-lg);transform:scale(1.2)}.parking-marker.green{background:var(--green)}.parking-marker.yellow{background:var(--yellow)}.parking-marker.red{background:var(--red)}.parking-marker.blue{background:var(--blue)}.legend{gap:var(--space-md);margin-top:var(--space-md);padding:var(--space-md);background:var(--bg);border-radius:var(--radius-sm);flex-wrap:wrap;display:flex}.legend-item{align-items:center;gap:var(--space-xs);color:var(--text-secondary);font-size:12px;display:flex}.legend-dot{border-radius:50%;width:12px;height:12px}.legend-dot.green{background:var(--green)}.legend-dot.yellow{background:var(--yellow)}.legend-dot.red{background:var(--red)}.legend-dot.blue{background:var(--blue)}.parking-detail{margin-top:var(--space-lg);animation:.3s ease-out slideUp}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.parking-detail-header{align-items:center;gap:var(--space-md);margin-bottom:var(--space-md);display:flex}.parking-detail-status{border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;font-size:20px;display:flex}.parking-detail-status.green{background:var(--green-light)}.parking-detail-status.yellow{background:var(--yellow-light)}.parking-detail-status.red{background:var(--red-light)}.parking-detail-status.blue{background:var(--blue-light)}.parking-detail-title{color:var(--text-primary);font-size:18px;font-weight:700}.parking-detail-status-text{font-size:13px;font-weight:500}.parking-detail-status-text.green{color:var(--green-dark)}.parking-detail-status-text.yellow{color:var(--yellow-dark)}.parking-detail-status-text.red{color:var(--red-dark)}.parking-detail-status-text.blue{color:var(--blue-dark)}.parking-detail-info{gap:var(--space-sm);margin-bottom:var(--space-md);flex-direction:column;display:flex}.parking-detail-row{padding:var(--space-sm) 0;border-bottom:1px solid var(--border-light);justify-content:space-between;align-items:center;display:flex}.parking-detail-label{color:var(--text-secondary);font-size:13px}.parking-detail-value{color:var(--text-primary);font-size:14px;font-weight:600}.caution-box{background:var(--yellow-light);border:1px solid var(--yellow);border-radius:var(--radius-sm);padding:var(--space-md);gap:var(--space-sm);margin-top:var(--space-md);align-items:flex-start;display:flex}.caution-icon{flex-shrink:0;font-size:16px}.caution-text{color:var(--text-secondary);font-size:12px;line-height:1.5}.confirmation{text-align:center;padding-top:var(--space-2xl)}.confirmation-icon{width:80px;height:80px;margin:0 auto var(--space-lg);border-radius:50%;justify-content:center;align-items:center;font-size:36px;display:flex}.confirmation-icon.success{background:var(--green-light)}.confirmation-icon.failure{background:var(--red-light)}.confirmation-title{margin-bottom:var(--space-sm);font-size:24px;font-weight:700}.confirmation-title.success{color:var(--green-dark)}.confirmation-title.failure{color:var(--red-dark)}.confirmation-subtitle{color:var(--text-secondary);margin-bottom:var(--space-xl);font-size:14px}.confirmation-details{text-align:left;margin-bottom:var(--space-xl)}.confirmation-row{padding:var(--space-md) 0;border-bottom:1px solid var(--border-light);justify-content:space-between;display:flex}.confirmation-label{color:var(--text-secondary);font-size:14px}.confirmation-value{color:var(--text-primary);font-size:14px;font-weight:600}.helper-text{color:var(--text-secondary);margin-bottom:var(--space-md);font-size:13px;line-height:1.5}.validation-error{color:var(--red);margin-top:var(--space-xs);align-items:center;gap:var(--space-xs);font-size:13px;display:flex}.divider{align-items:center;gap:var(--space-md);margin:var(--space-lg) 0;color:var(--text-light);font-size:13px;display:flex}.divider:before,.divider:after{content:"";background:var(--border);flex:1;height:1px}.consent-row{align-items:flex-start;gap:var(--space-sm);margin-top:var(--space-md);display:flex}.consent-row input[type=checkbox]{accent-color:var(--primary);flex-shrink:0;width:16px;height:16px;margin-top:2px}.consent-label{color:var(--text-secondary);cursor:pointer;font-size:13px;line-height:1.5}.transparency-notice{background:var(--bg);border-radius:var(--radius-sm);padding:var(--space-md);margin-top:var(--space-md);text-align:center}.transparency-text{color:var(--text-light);font-size:12px;line-height:1.5}.save-status{padding:var(--space-md);border-radius:var(--radius-sm);text-align:center;font-size:13px;font-weight:500;transition:all .3s}.save-status.saving{background:var(--yellow-light);border:1px solid var(--yellow);color:var(--yellow-dark)}.save-status.success{background:var(--green-light);border:1px solid var(--green);color:var(--green-dark)}.save-status.error{background:var(--red-light);border:1px solid var(--red);color:var(--red-dark)}.recent-sessions{gap:var(--space-sm);flex-direction:column;display:flex}.recent-session-item{padding:var(--space-md);background:var(--bg);border-radius:var(--radius-sm);border:1px solid var(--border-light)}.recent-session-header{margin-bottom:var(--space-xs);justify-content:space-between;align-items:center;display:flex}.recent-session-zone{color:var(--text-primary);font-size:14px;font-weight:600}.recent-session-detail{color:var(--text-secondary);font-size:12px}.recent-session-time{color:var(--text-light);margin-top:var(--space-xs);font-size:11px}.session-badge{border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:.5px;padding:2px 8px;font-size:11px;font-weight:600}.session-badge.green{background:var(--green-light);color:var(--green-dark)}.session-badge.yellow{background:var(--yellow-light);color:var(--yellow-dark)}.session-badge.red{background:var(--red-light);color:var(--red-dark)}.session-badge.blue{background:var(--blue-light);color:var(--blue-dark)}@media (width<=480px){.screen{padding:var(--space-md)}.screen-title{font-size:20px}.logo-text{font-size:24px}}
