:root{--color-primary: #E53E3E;--color-primary-dark: #C53030;--color-primary-light: #FC8181;--color-bg: #0F0F0F;--color-surface: #1A1A1A;--color-surface-2: #242424;--color-text: #F5F5F5;--color-text-secondary: #A0A0A0;--color-border: #2E2E2E;--color-swim: #38A169;--color-bike: #D69E2E;--color-run: #3182CE;--radius-md: 12px;--radius-sm: 8px;--shadow-card: 0 2px 12px rgba(0, 0, 0, .4)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;font-size:16px}body{font-family:Inter,system-ui,-apple-system,sans-serif;background-color:var(--color-bg);color:var(--color-text);line-height:1.6;min-height:100vh;display:flex;flex-direction:column}.container{max-width:1400px;margin:0 auto;padding:0 1.5rem;width:100%}main{flex:1;padding:2rem 0 3rem}.site-header{background:var(--color-surface);border-bottom:2px solid var(--color-primary);padding:1rem 0;position:sticky;top:0;z-index:100}.header-inner{display:flex;align-items:center;justify-content:space-between;gap:1rem}.logo{font-size:1.6rem;font-weight:900;letter-spacing:-.5px;text-decoration:none;line-height:1}.logo .tri{color:var(--color-primary)}.logo .calculator{color:var(--color-text)}.tagline{font-size:.8rem;color:var(--color-text-secondary);letter-spacing:.05em;text-transform:uppercase}.dashboard-grid{display:grid;grid-template-columns:minmax(360px,40%) 1fr;gap:2rem;align-items:start}@media(max-width:900px){.dashboard-grid{grid-template-columns:1fr}}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:1.5rem;box-shadow:var(--shadow-card)}.card+.card,.card+.ad-unit,.ad-unit+.card{margin-top:1.25rem}.card-title{display:flex;align-items:center;gap:.5rem;font-size:.95rem;font-weight:700;color:var(--color-text);padding-bottom:.875rem;border-bottom:2px solid var(--color-primary);margin-bottom:1.25rem;text-transform:uppercase;letter-spacing:.05em}.card-title svg{color:var(--color-primary);flex-shrink:0}.form-group{margin-bottom:.875rem}.form-group:last-child{margin-bottom:0}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}label{display:block;font-size:.8rem;color:var(--color-text-secondary);margin-bottom:.375rem;font-weight:500}label .unit{color:var(--color-text-secondary);font-weight:400;opacity:.7}label .optional{font-style:italic;opacity:.6}.input-wrapper{position:relative;display:flex;align-items:center}input[type=number],input[type=text]{width:100%;background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:.6rem .875rem;color:var(--color-text);font-size:.95rem;font-family:inherit;min-height:44px;transition:border-color .15s,box-shadow .15s;-moz-appearance:textfield}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{opacity:.4}input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px #e53e3e33}input::placeholder{color:var(--color-text-secondary);opacity:.5}.tooltip-icon{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;background:var(--color-border);color:var(--color-text-secondary);font-size:.65rem;font-weight:700;cursor:help;margin-left:.25rem;position:relative}.tooltip-icon:hover:after{content:attr(data-tip);position:absolute;left:calc(100% + 8px);top:50%;transform:translateY(-50%);background:#333;color:var(--color-text);font-size:.75rem;font-weight:400;padding:.5rem .75rem;border-radius:6px;width:220px;white-space:normal;z-index:200;pointer-events:none;border:1px solid var(--color-border);line-height:1.4}.btn-reset{background:transparent;border:1px solid var(--color-border);color:var(--color-text-secondary);border-radius:var(--radius-sm);padding:.5rem 1rem;font-size:.8rem;cursor:pointer;font-family:inherit;width:100%;margin-top:.5rem;transition:border-color .15s,color .15s}.btn-reset:hover{border-color:var(--color-primary);color:var(--color-primary)}.level-wrapper{display:flex;align-items:center;gap:.75rem;margin-bottom:1.25rem}.level-label{font-size:.8rem;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em}.level-badge{display:inline-block;padding:.25rem .875rem;border-radius:999px;font-size:.8rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;background:var(--color-surface-2);color:var(--color-text-secondary);border:1px solid var(--color-border)}.level-badge[data-level=Principiante]{border-color:#4a5568;color:#a0aec0}.level-badge[data-level=Amatore]{border-color:#2b6cb0;color:#63b3ed}.level-badge[data-level=Competitivo]{border-color:#276749;color:#68d391}.level-badge[data-level=Elite]{border-color:var(--color-primary);color:var(--color-primary)}.table-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:var(--radius-sm)}.results-table{width:100%;border-collapse:collapse;min-width:520px;font-size:.875rem}.results-table thead th{background:var(--color-primary-dark);color:#fff;padding:.75rem .875rem;text-align:left;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}.results-table thead th:first-child{border-radius:var(--radius-sm) 0 0 0}.results-table thead th:last-child{border-radius:0 var(--radius-sm) 0 0}.results-table tbody td{padding:.75rem .875rem;border-bottom:1px solid var(--color-border);white-space:nowrap}.results-table tbody tr:last-child td{border-bottom:none}.results-table tbody tr:nth-child(2n) td{background:var(--color-surface-2)}.results-table tbody tr:hover td{background:#e53e3e0d}.td-format{font-weight:600;color:var(--color-text)}.td-time{font-family:Courier New,monospace;color:var(--color-text)}.td-transition{font-family:Courier New,monospace;color:var(--color-text-secondary);font-size:.8rem}.td-total{font-family:Courier New,monospace;font-weight:700;color:var(--color-primary);font-size:.95rem}.distance-cards-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:1.25rem}@media(max-width:600px){.distance-cards-grid{grid-template-columns:1fr}}.distance-card .card-title{font-size:.85rem;justify-content:space-between}.distance-label{font-weight:400;color:var(--color-text-secondary);font-size:.75rem;text-transform:none;letter-spacing:0}.progress-bar{display:flex;height:10px;border-radius:999px;overflow:hidden;background:var(--color-surface-2);margin-bottom:1rem;gap:2px}.progress-swim{background:var(--color-swim);transition:width .4s ease;min-width:0}.progress-bike{background:var(--color-bike);transition:width .4s ease;min-width:0}.progress-run{background:var(--color-run);transition:width .4s ease;min-width:0}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}.stat{display:flex;flex-direction:column;gap:.2rem}.stat-label{font-size:.7rem;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em}.stat-value{font-family:Courier New,monospace;font-size:.85rem;font-weight:600;color:var(--color-text)}.stat-value.swim{color:var(--color-swim)}.stat-value.bike{color:var(--color-bike)}.stat-value.run{color:var(--color-run)}.nutrition-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.nutrition-item{background:var(--color-surface-2);border-radius:var(--radius-sm);padding:.875rem;border:1px solid var(--color-border)}.nutrition-item-label{font-size:.7rem;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.375rem}.nutrition-item-value{font-size:1.15rem;font-weight:700;font-family:Courier New,monospace;color:var(--color-text)}.nutrition-item-unit{font-size:.75rem;color:var(--color-text-secondary);margin-left:.25rem;font-weight:400;font-family:inherit}.nutrition-note{margin-top:.875rem;font-size:.75rem;color:var(--color-text-secondary);line-height:1.5;padding:.625rem;background:#e53e3e0d;border-left:3px solid var(--color-primary);border-radius:0 var(--radius-sm) var(--radius-sm) 0}.route-input-tabs{display:flex;gap:.5rem;margin-bottom:1rem}.route-input-tab{flex:1;padding:.45rem .75rem;background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-secondary);font-size:.8rem;font-weight:600;font-family:inherit;cursor:pointer;transition:border-color .15s,color .15s,background .15s}.route-input-tab.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.route-tab-content{margin-top:.25rem}.file-input-label{display:flex;align-items:center;gap:.75rem;width:100%;background:var(--color-surface-2);border:1.5px dashed var(--color-border);border-radius:var(--radius-sm);padding:1rem;cursor:pointer;color:var(--color-text-secondary);font-size:.875rem;transition:border-color .15s,color .15s;min-height:56px}.file-input-label:hover{border-color:var(--color-primary);color:var(--color-primary)}.file-input-label svg{flex-shrink:0}.gpx-stats{background:#38a16914;border:1px solid rgba(56,161,105,.3);border-radius:var(--radius-sm);padding:.875rem;margin-top:.75rem}.gpx-stat-row{display:flex;gap:.75rem;flex-wrap:wrap}.gpx-stat{display:flex;flex-direction:column;gap:.1rem;flex:1;min-width:70px}.gpx-stat strong{font-size:1rem;font-weight:700;font-family:Courier New,monospace;color:var(--color-swim)}.gpx-stat em{font-size:.7rem;font-style:normal;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.04em}.gpx-name{margin-top:.5rem;font-size:.8rem;color:var(--color-text-secondary);font-style:italic}.gpx-error{font-size:.8rem;color:var(--color-primary);margin-top:.5rem;padding:.5rem .75rem;background:#e53e3e14;border-radius:var(--radius-sm);border:1px solid rgba(229,62,62,.2)}.btn-clear-route{background:transparent;border:1px solid var(--color-border);color:var(--color-text-secondary);border-radius:var(--radius-sm);padding:.4rem .875rem;font-size:.75rem;cursor:pointer;font-family:inherit;margin-top:.75rem;transition:border-color .15s,color .15s}.btn-clear-route:hover{border-color:var(--color-primary);color:var(--color-primary)}.route-result-card{border-color:var(--color-bike)}.route-result-meta{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1.25rem}.route-stat-pill{display:flex;flex-direction:column;gap:.1rem;flex:1;min-width:80px;background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:.625rem .875rem}.route-stat-pill-label{font-size:.7rem;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.04em}.route-stat-pill-value{font-size:1rem;font-weight:700;font-family:Courier New,monospace;color:var(--color-text)}.route-result-main{display:flex;flex-direction:column;gap:.625rem;margin-bottom:1rem}.route-result-item{display:flex;justify-content:space-between;align-items:center;padding:.625rem .875rem;background:var(--color-surface-2);border-radius:var(--radius-sm);border:1px solid var(--color-border)}.route-result-label{font-size:.85rem;color:var(--color-text-secondary)}.route-result-value{font-size:1.1rem;font-weight:700;font-family:Courier New,monospace;color:var(--color-text)}.route-result-value.primary{color:var(--color-primary);font-size:1.25rem}.route-result-value.bike{color:var(--color-bike)}.route-result-note{font-size:.75rem;color:var(--color-text-secondary);line-height:1.5;padding:.625rem;background:#d69e2e0d;border-left:3px solid var(--color-bike);border-radius:0 var(--radius-sm) var(--radius-sm) 0}.nutrition-distance-selector{margin-bottom:1.25rem}.nutrition-tabs{display:flex;gap:.5rem;margin-top:.5rem;flex-wrap:wrap}.nutrition-tab{flex:1;min-width:70px;padding:.5rem .75rem;background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-secondary);font-size:.8rem;font-weight:600;font-family:inherit;cursor:pointer;text-align:center;transition:border-color .15s,color .15s,background .15s}.nutrition-tab:hover{border-color:var(--color-primary);color:var(--color-primary)}.nutrition-tab.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.nutrition-timeline{display:grid;grid-template-columns:1fr auto 1fr;gap:0;margin-bottom:1rem}.nutrition-divider{width:1px;background:var(--color-border);margin:0 1rem}.nutrition-day{display:flex;flex-direction:column;gap:.75rem}.nutrition-day-header{display:flex;flex-direction:column;gap:.15rem;padding-bottom:.625rem;border-bottom:1px solid var(--color-border)}.nutrition-day-label{font-size:.9rem;font-weight:700;color:var(--color-text)}.nutrition-day-highlight .nutrition-day-label{color:var(--color-primary)}.nutrition-day-sub{font-size:.7rem;color:var(--color-text-secondary)}.nutrition-day-values{display:flex;flex-direction:column;gap:.5rem}.nutrition-item-extra .nutrition-item-value{color:var(--color-primary)}@media(max-width:500px){.nutrition-timeline{grid-template-columns:1fr}.nutrition-divider{width:100%;height:1px;margin:1rem 0}}.ad-unit{width:100%;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);overflow:hidden}.ad-unit-inner{width:100%;background:var(--color-surface-2);border:1px dashed var(--color-border);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;color:var(--color-text-secondary);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase}.ad-leaderboard .ad-unit-inner{min-height:90px}.ad-rectangle .ad-unit-inner{min-height:250px}.ad-skyscraper .ad-unit-inner{min-height:600px}.ad-skyscraper{display:none}@media(min-width:1200px){.ad-skyscraper{display:flex}}.faq-section{margin-top:3rem;padding-top:2rem;border-top:1px solid var(--color-border)}.faq-title{font-size:1.1rem;font-weight:700;margin-bottom:1.25rem;color:var(--color-text)}.faq-list{display:flex;flex-direction:column;gap:.5rem}.faq-item{border:1px solid var(--color-border);border-radius:var(--radius-sm);overflow:hidden;background:var(--color-surface)}.faq-question{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;cursor:pointer;font-weight:600;font-size:.9rem;list-style:none;transition:background .15s;user-select:none}.faq-question::-webkit-details-marker{display:none}.faq-item[open] .faq-question{background:#e53e3e0d;color:var(--color-primary)}.faq-chevron{width:16px;height:16px;flex-shrink:0;transition:transform .2s;color:var(--color-text-secondary)}.faq-item[open] .faq-chevron{transform:rotate(180deg);color:var(--color-primary)}.faq-answer{padding:0 1.25rem 1rem;font-size:.875rem;color:var(--color-text-secondary);line-height:1.7;border-top:1px solid var(--color-border);margin-top:-1px}.cookie-banner{position:fixed;bottom:0;left:0;right:0;z-index:1000;background:var(--color-surface);border-top:2px solid var(--color-primary);padding:1rem 1.5rem;display:flex;align-items:center;justify-content:space-between;gap:1.5rem;box-shadow:0 -4px 20px #00000080}.cookie-text{font-size:.85rem;color:var(--color-text-secondary);line-height:1.5}.cookie-text a{color:var(--color-primary);text-decoration:underline}.cookie-actions{display:flex;gap:.75rem;flex-shrink:0}.btn-accept{background:var(--color-primary);color:#fff;border:none;padding:.5rem 1.25rem;border-radius:var(--radius-sm);font-size:.875rem;font-weight:600;cursor:pointer;font-family:inherit;transition:background .15s}.btn-accept:hover{background:var(--color-primary-dark)}.btn-decline{background:transparent;color:var(--color-text-secondary);border:1px solid var(--color-border);padding:.5rem 1.25rem;border-radius:var(--radius-sm);font-size:.875rem;cursor:pointer;font-family:inherit;transition:border-color .15s,color .15s}.btn-decline:hover{border-color:var(--color-text-secondary);color:var(--color-text)}@media(max-width:600px){.cookie-banner{flex-direction:column;align-items:flex-start}.cookie-actions{width:100%}.btn-accept,.btn-decline{flex:1;text-align:center}}.site-footer{background:var(--color-surface);border-top:1px solid var(--color-border);padding:1.5rem 0;margin-top:auto}.footer-inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;font-size:.8rem;color:var(--color-text-secondary)}.footer-inner a{color:var(--color-text-secondary);text-decoration:none;transition:color .15s}.footer-inner a:hover{color:var(--color-primary)}@media(max-width:600px){.footer-inner{flex-direction:column;text-align:center}}.section-title{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--color-text-secondary);margin-bottom:1rem}.text-primary{color:var(--color-primary)}.text-secondary{color:var(--color-text-secondary)}.mt-1{margin-top:1rem}.mt-2{margin-top:1.25rem}
