*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #0f1117;--surface: #1a1d2e;--border: #2a2d3e;--text: #e8e8f0;--muted: #8888aa;--green: #22c55e;--red: #ef4444;--yellow: #f59e0b;--accent: #6366f1;--font: "Segoe UI", system-ui, sans-serif;--header-h: 52px;--bottom-h: 56px}html,body{height:100%;font-family:var(--font);background:var(--bg);color:var(--text);overflow:hidden}.app-header{height:var(--header-h);background:var(--surface);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 14px;gap:12px}.app-title{font-size:12px;font-weight:700;color:var(--accent);letter-spacing:-.2px;flex-shrink:0}.header-meta{display:flex;align-items:center;gap:4px;font-size:11px;color:var(--muted);text-align:right;flex-wrap:wrap;justify-content:flex-end}.sep{color:var(--border)}.status{padding:10px 14px;font-size:13px;line-height:1.7;border-bottom:1px solid var(--border);background:var(--surface)}.status--loading{color:var(--muted)}.status--neutral{color:var(--text)}.status--free{background:#22c55e12;border-bottom-color:#22c55e40;color:var(--green)}.status--paid{background:#ef444412;border-bottom-color:#ef444440;color:var(--red)}.status--warning{background:#f59e0b12;border-bottom-color:#f59e0b40;color:var(--yellow)}.status--error{background:#ef444412;border-bottom-color:#ef444440;color:var(--yellow)}.status .tarifa{font-size:19px;font-weight:700;display:inline-block;margin:2px 0}.btn-pay{display:inline-block;margin-top:6px;padding:6px 14px;background:var(--red);color:#fff;border-radius:8px;text-decoration:none;font-weight:600;font-size:12px}.city-banner{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 14px;background:#6366f112;border-bottom:1px solid rgba(99,102,241,.2);font-size:12px}.city-banner.hidden{display:none}#banner-text{color:var(--muted);flex:1}.btn-download{white-space:nowrap;padding:5px 11px;background:var(--accent);color:#fff;border-radius:7px;text-decoration:none;font-size:11px;font-weight:600}#map{width:100%;height:calc(100vh - var(--header-h) - 38px - 38px - var(--bottom-h) - 2px)}.bottom-bar{position:fixed;bottom:0;left:0;right:0;height:var(--bottom-h);background:var(--surface);border-top:1px solid var(--border);display:flex;align-items:center;justify-content:center;padding:0 16px;z-index:1000}.btn-register{width:100%;max-width:420px;padding:10px 0;background:var(--accent);color:#fff;border:none;border-radius:10px;font-size:14px;font-weight:600;cursor:pointer}.btn-register:disabled{cursor:default}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000a6;display:flex;align-items:flex-end;justify-content:center;z-index:2000;padding:0}.modal-overlay.hidden{display:none}.modal{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:20px 20px 0 0;padding:28px 20px 36px;width:100%;max-width:500px;max-height:90vh;overflow-y:auto}.modal-close{position:absolute;top:14px;right:16px;background:var(--border);border:none;color:var(--muted);border-radius:50%;width:28px;height:28px;font-size:13px;cursor:pointer;display:flex;align-items:center;justify-content:center}.modal-icon{font-size:36px;text-align:center;margin-bottom:10px}.modal-title{font-size:18px;font-weight:700;text-align:center;margin-bottom:10px;color:var(--text)}.modal-desc{font-size:13px;color:var(--muted);text-align:center;line-height:1.6;margin-bottom:22px}.form-group{margin-bottom:14px}.form-group label{display:block;font-size:12px;color:var(--muted);margin-bottom:5px}.form-group input{width:100%;padding:10px 12px;background:var(--bg);border:1px solid var(--border);border-radius:9px;color:var(--text);font-size:14px;outline:none;transition:border-color .2s}.form-group input:focus{border-color:var(--accent)}.btn-submit{width:100%;padding:12px 0;margin-top:6px;background:var(--accent);color:#fff;border:none;border-radius:10px;font-size:15px;font-weight:700;cursor:pointer}.modal-legal{font-size:10px;color:var(--border);text-align:center;margin-top:10px;line-height:1.5}.welcome-data{background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:12px 14px;margin-bottom:18px}.welcome-row{display:flex;justify-content:space-between;font-size:13px;padding:5px 0;border-bottom:1px solid var(--border);color:var(--muted)}.welcome-row:last-child{border-bottom:none}.welcome-row strong{color:var(--text)}.hidden{display:none!important}.leaflet-bar a{background:var(--surface)!important;color:var(--text)!important;border-color:var(--border)!important}.leaflet-popup-content-wrapper{background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:8px;box-shadow:0 4px 20px #0006}.leaflet-popup-tip{background:var(--surface)}.required{color:var(--red);font-size:11px}.form-error{background:#ef44441a;border:1px solid rgba(239,68,68,.3);color:var(--red);border-radius:8px;padding:9px 12px;font-size:13px;margin-bottom:14px}.btn-link{background:none;border:none;color:var(--accent);font-size:inherit;cursor:pointer;text-decoration:underline;padding:0}.app-header{justify-content:space-between!important;align-items:center!important;flex-direction:row!important;height:auto!important;min-height:52px;padding:8px 14px!important}.header-left{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.btn-profile{flex-shrink:0;width:36px;height:36px;border-radius:50%;border:1px solid var(--border);background:var(--bg);font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;margin-left:10px;transition:background .2s}.btn-profile:hover{background:var(--border)}.form-success{background:#22c55e1a;border:1px solid rgba(34,197,94,.3);color:#22c55e;border-radius:8px;padding:9px 12px;font-size:13px;margin-bottom:14px}.form-check{display:flex;align-items:flex-start;gap:10px;margin-bottom:16px;font-size:12px;color:var(--muted);line-height:1.5}.form-check input[type=checkbox]{margin-top:2px;flex-shrink:0;accent-color:var(--accent);width:16px;height:16px}.form-check a{color:var(--accent);text-decoration:underline}.modal-switch{text-align:center;font-size:12px;color:var(--muted);margin-top:12px}.login-links{display:flex;justify-content:center;gap:8px;margin-top:14px;font-size:12px;color:var(--muted)}.btn-faceid{width:100%;padding:11px 0;margin-top:10px;background:transparent;border:1px solid var(--border);border-radius:10px;color:var(--text);font-size:14px;font-weight:500;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:background .2s}.btn-faceid:hover{background:var(--border)}.faceid-icon{font-size:18px}.btn-danger{background:var(--red)!important}.profile-section-title{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.8px;margin:18px 0 8px}.profile-coming{display:flex;flex-direction:column;gap:6px}.profile-coming-item{font-size:13px;color:var(--muted);background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:8px 12px;opacity:.6}.btn-secondary{background:transparent!important;border:1px solid var(--border)!important;color:var(--text)!important}.btn-secondary:hover{background:var(--border)!important}.parking-panel{background:var(--surface);border-bottom:1px solid var(--border);padding:10px 14px}.parking-info{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.parking-label{font-size:11px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;color:var(--muted);margin-bottom:2px}.parking-label--active{color:var(--green)}.parking-detail{font-size:12px;color:var(--muted)}.parking-plate{color:var(--text);font-weight:600}.parking-timer-box{text-align:right}.parking-timer{font-size:22px;font-weight:700;color:var(--text);font-variant-numeric:tabular-nums;line-height:1}.parking-cost{font-size:13px;color:var(--accent);font-weight:600;margin-top:2px}.parking-controls{display:flex;gap:8px;align-items:center}.plate-select{flex:1;padding:7px 10px;background:var(--bg);border:1px solid var(--border);border-radius:8px;color:var(--text);font-size:13px;outline:none}.btn-park{padding:8px 14px;border:none;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap}.btn-park--pay{background:var(--accent);color:#fff;text-decoration:none;text-align:center}.btn-park--stop{background:var(--border);color:var(--text)}.parking-timer-label{font-size:10px;color:var(--muted);text-align:right;margin-top:2px}.parking-notice{font-size:11px;color:var(--muted);margin-top:8px;padding-top:8px;border-top:1px solid var(--border);line-height:1.4}.profile-section{margin-top:16px}.profile-section-title{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.7px;margin-bottom:8px}.wallet-balance{font-size:24px;font-weight:700;color:var(--green)}.plates-list{margin-bottom:8px}.plate-item{display:flex;align-items:center;justify-content:space-between;padding:6px 0;border-bottom:1px solid var(--border)}.plate-badge{font-size:13px;font-weight:700;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:3px 10px;letter-spacing:1px}.plate-actions{display:flex;gap:6px}.btn-plate-fav{background:none;border:none;color:var(--muted);font-size:16px;cursor:pointer;padding:0 4px}.btn-plate-fav.active{color:var(--yellow)}.btn-plate-del{background:none;border:none;color:var(--muted);font-size:13px;cursor:pointer;padding:0 4px}.btn-plate-del:hover{color:var(--red)}.add-plate-row{display:flex;gap:8px;margin-top:8px}.add-plate-row input{flex:1;padding:8px 10px;background:var(--bg);border:1px solid var(--border);border-radius:8px;color:var(--text);font-size:13px;outline:none}.add-plate-row input:focus{border-color:var(--accent)}.history-tabs{display:flex;gap:6px;margin-bottom:10px}.history-tab{padding:5px 12px;border:1px solid var(--border);border-radius:20px;background:transparent;color:var(--muted);font-size:12px;cursor:pointer}.history-tab.active{background:var(--accent);border-color:var(--accent);color:#fff}.history-list{max-height:200px;overflow-y:auto}.history-item{display:flex;align-items:center;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--border);gap:8px}.history-main{flex:1}.history-plate{font-size:12px;font-weight:700;color:var(--text)}.history-zone{font-size:11px;color:var(--muted);margin-left:6px}.history-meta{font-size:11px;color:var(--muted);flex:1}.history-cost{font-size:13px;font-weight:600;color:var(--accent);white-space:nowrap}.plate-item-main{display:flex;flex-direction:column;gap:2px;flex:1}.plate-vehicle{font-size:11px;color:var(--muted)}.fields-row-small{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:8px}.add-plate-form{background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:12px;margin-top:8px}.add-plate-form .form-group{margin-bottom:0}.add-plate-form .form-group label{font-size:11px;color:var(--muted)}.add-plate-form .form-group input{width:100%;padding:7px 10px;background:var(--surface);border:1px solid var(--border);border-radius:7px;color:var(--text);font-size:13px;outline:none}.add-plate-form .form-group input:focus{border-color:var(--accent)}.parking-alert{background:#f59e0b26;border:1px solid rgba(245,158,11,.4);color:var(--yellow);border-radius:8px;padding:8px 12px;font-size:12px;margin-bottom:8px;line-height:1.4}.input-eye{position:relative;display:flex;align-items:center}.input-eye input{width:100%;padding-right:40px}.btn-eye{position:absolute;right:10px;background:none;border:none;cursor:pointer;font-size:16px;padding:0;color:var(--muted)}.remember-options{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:10px 12px;margin-bottom:14px}.remember-label{font-size:11px;color:var(--muted);display:block;margin-bottom:8px}.remember-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.remember-grid label{font-size:13px;color:var(--text);display:flex;align-items:center;gap:6px;cursor:pointer}.profile-header{display:flex;align-items:center;gap:14px;margin-bottom:4px}.avatar-container{position:relative;flex-shrink:0}.avatar-img{width:64px;height:64px;border-radius:50%;background:var(--border);display:flex;align-items:center;justify-content:center;font-size:24px;overflow:hidden;border:2px solid var(--accent)}.avatar-edit{position:absolute;bottom:0;right:0;background:var(--accent);color:#fff;border-radius:50%;width:22px;height:22px;display:flex;align-items:center;justify-content:center;font-size:12px;cursor:pointer}.avatar-thumb{width:32px;height:32px;border-radius:50%;background:var(--border);display:flex;align-items:center;justify-content:center;font-size:14px;overflow:hidden}.profile-name-block{flex:1}.config-name{font-size:15px;font-weight:700;color:var(--text)}.config-email{font-size:12px;color:var(--muted);margin-top:2px}.config-section{margin-top:16px;padding-top:14px;border-top:1px solid var(--border)}.config-section:first-child{border-top:none;margin-top:0;padding-top:0}.config-section-title{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.7px;margin-bottom:10px;font-weight:600}.about-text{font-size:13px;color:var(--muted);line-height:1.6}.crop-container{position:relative;width:240px;height:240px;margin:0 auto 12px;border-radius:50%;overflow:hidden;background:var(--bg);border:2px solid var(--accent)}#crop-canvas{width:240px;height:240px;display:block}.crop-controls{margin-top:8px}.crop-label{font-size:11px;color:var(--muted);display:block;margin-bottom:4px}#crop-zoom{accent-color:var(--accent)}.subscription-card{background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:12px 14px}.sub-plan-name{font-size:16px;font-weight:700;color:var(--accent)}.sub-plan-desc{font-size:12px;color:var(--muted);margin:2px 0 10px}.btn-upgrade{width:100%;padding:9px;background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;border:none;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer}.btn-upgrade:hover{opacity:.9}.premium-gate{background:var(--bg);border:1px dashed var(--border);border-radius:10px;padding:16px;text-align:center}.premium-gate-icon{font-size:24px;margin-bottom:6px}.premium-gate-text{font-size:13px;font-weight:600;color:var(--text)}.premium-gate-sub{font-size:12px;color:var(--muted);margin:4px 0 10px}.btn-upgrade-sm{padding:6px 14px;background:var(--accent);color:#fff;border:none;border-radius:6px;font-size:12px;font-weight:600;cursor:pointer}.plan-card{background:var(--bg);border:1px solid var(--border);border-radius:12px;padding:16px;margin-bottom:12px;position:relative}.plan-card--plus{border-color:var(--accent);background:#6366f10d}.plan-badge{position:absolute;top:-10px;right:12px;background:var(--accent);color:#fff;font-size:10px;font-weight:700;padding:2px 8px;border-radius:10px;letter-spacing:.5px}.plan-name{font-size:16px;font-weight:700;color:var(--text)}.plan-price{font-size:28px;font-weight:700;color:var(--accent);margin:4px 0 10px}.plan-price span{font-size:14px;color:var(--muted)}.plan-features{list-style:none;padding:0}.plan-features li{font-size:13px;color:var(--muted);padding:3px 0}.plan-current{font-size:12px;color:var(--muted);text-align:center;margin-top:8px}.doc-item{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--border)}.doc-item:last-child{border-bottom:none}.doc-icon{font-size:20px;flex-shrink:0}.doc-info{flex:1}.doc-type{font-size:13px;font-weight:600;color:var(--text)}.doc-expiry{font-size:12px;font-weight:600;margin-top:1px}.doc-date{font-size:11px;color:var(--muted)}.btn-plan-detail{width:100%;padding:7px;background:transparent;border:1px solid var(--border);border-radius:8px;color:var(--muted);font-size:12px;cursor:pointer;margin-top:8px}.btn-plan-detail:hover{color:var(--text);border-color:var(--text)}.plan-detail-price{font-size:22px;font-weight:700;margin-bottom:16px}.plan-detail-section{margin-bottom:14px;padding-bottom:14px;border-bottom:1px solid var(--border)}.plan-detail-section:last-child{border-bottom:none}.plan-detail-section-title{font-size:13px;font-weight:700;color:var(--text);margin-bottom:8px}.plan-detail-list{padding-left:4px;list-style:none}.plan-detail-list li{font-size:13px;color:var(--muted);padding:3px 0 3px 16px;position:relative}.plan-detail-list li:before{content:"→";position:absolute;left:0;color:var(--accent);font-size:11px}.btn-report-inline{display:inline-block;margin-top:8px;padding:7px 14px;background:#6366f126;color:var(--accent);border:1px solid var(--accent);border-radius:8px;font-size:12px;font-weight:600;cursor:pointer;transition:background .2s}.btn-report-inline:hover{background:#6366f140}.report-location{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:12px;margin-bottom:14px;text-align:center}.report-location-city{font-size:15px;font-weight:600;color:var(--text)}.report-location-zone{font-size:12px;color:var(--muted);margin-top:2px}
