@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{color-scheme:dark;--bg:#07111f;--panel:#0d1b2d;--panel-2:#102239;--border:#21354b;--text:#edf4fc;--muted:#91a4ba;--accent:#69d2c1;--accent-strong:#8be6d6;--blue:#8dbbff;--danger:#ffaca8;--radius:18px;--shadow:0 18px 50px #00000020}
*{box-sizing:border-box}html{min-width:320px;background:var(--bg)}body{margin:0;background:radial-gradient(ellipse at 85% -15%,#183c56 0,transparent 40%),var(--bg);font-family:Manrope,system-ui,sans-serif;color:var(--text);min-height:100vh}a{color:inherit;text-decoration:none}.topbar{height:70px;padding:0 clamp(18px,4vw,62px);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #20334a;background:#07111fc9;backdrop-filter:blur(12px)}.brand{display:flex;align-items:center;gap:10px;font-size:14px;letter-spacing:.13em;font-weight:700}.brand b{color:var(--accent)}.brand-mark{display:grid;place-items:center;width:34px;height:34px;border:1px solid #386b79;border-radius:11px;color:var(--accent);font-size:23px;line-height:1;background:#112a3b}.top-note{font-size:12px;color:var(--muted)}.layout{width:min(1050px,calc(100% - 36px));margin:0 auto;padding:46px 0 34px}.intro{max-width:760px;margin:0 0 28px}.eyebrow{color:var(--accent);font-size:11px;font-weight:800;letter-spacing:.16em;margin:0 0 14px}.intro h1{font-size:clamp(32px,5vw,53px);line-height:1.08;letter-spacing:-.045em;margin:0 0 15px;font-weight:800}.intro-copy{max-width:700px;color:var(--muted);font-size:15px;line-height:1.8;margin:0}.search-card,.result-card,.map-card{background:linear-gradient(145deg,#102137f5,#0a1929f7);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.search-card{padding:23px 24px 18px;margin-bottom:18px}.card-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}.card-heading>div{display:flex;align-items:center;gap:12px}.card-heading h2{font-size:16px;margin:0;letter-spacing:-.02em}.step{font:500 11px 'DM Mono',monospace;color:var(--accent);border:1px solid #2f5c68;border-radius:8px;width:29px;height:29px;display:grid;place-items:center;background:#102f3c}.small-tag{font-size:11px;color:#c0d0df;border:1px solid #2a4058;border-radius:30px;padding:7px 10px}label{display:block;color:#d7e2ee;font-size:12px;font-weight:700;margin:0 0 9px}.input-wrap{display:flex;gap:10px}input{width:100%;min-width:0;background:#071422;border:1px solid #31475f;border-radius:11px;padding:15px 16px;color:#fff;font:14px 'DM Mono',monospace;outline:none}input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #69d2c11d}.primary-btn{flex:0 0 auto;display:flex;align-items:center;gap:18px;border:0;border-radius:11px;padding:0 18px;background:var(--accent);color:#09202a;font-weight:800;font:700 12px Manrope,sans-serif;cursor:pointer;transition:transform .15s,background .15s}.primary-btn:hover{background:var(--accent-strong);transform:translateY(-1px)}.primary-btn:disabled{opacity:.55;cursor:wait;transform:none}.input-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:11px;color:var(--muted);font-size:11px}.input-meta code{font:11px 'DM Mono',monospace;color:#c9dae9}.text-btn{background:none;border:0;padding:4px 0;color:var(--blue);font:600 11px Manrope,sans-serif;cursor:pointer}.status{margin-top:17px;padding-top:13px;border-top:1px solid #20344a;color:var(--muted);font-size:12px}.status.error{color:var(--danger)}.status.success{color:var(--accent)}.result-section{margin-bottom:18px}.result-card{padding:23px 24px}.confidence{font-size:10px;letter-spacing:.02em;border:1px solid #2a5e59;color:var(--accent);background:#12332f;border-radius:30px;padding:7px 10px}.station-title-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:3px 0 21px}.station-massif{margin:0 0 5px;color:var(--accent);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.1em}.station-title-row h3{font-size:clamp(22px,3vw,29px);letter-spacing:-.04em;margin:0;font-weight:800}.distance{margin:7px 0 0;color:var(--muted);font-size:12px}.outline-btn{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;border:1px solid #344c66;background:#13263b;border-radius:10px;padding:11px 13px;color:#e0ebf8;font-size:11px;font-weight:800;cursor:pointer}.outline-btn:hover{border-color:#6b91ac;background:#1a3149}.coordinate-output{border:1px solid #2c455b;border-radius:13px;padding:15px;background:#0715218a}.coordinate-output-heading{display:flex;align-items:start;justify-content:space-between;gap:14px}.output-label{color:#9db3c8;font-size:10px;font-weight:800;letter-spacing:.1em}.precision-note{font-size:11px;color:var(--muted);margin:6px 0 0}.copy-btn{border:1px solid #34645f;background:#12352f;color:var(--accent);border-radius:8px;padding:8px 10px;font-size:11px;font-weight:800;cursor:pointer}.copy-btn:hover{background:#17483f}.coordinate-pair{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}.coordinate-pair>div{background:#0e2235;border:1px solid #203a51;border-radius:10px;padding:12px}.coordinate-pair span{display:block;color:#8da6bd;font-size:9px;letter-spacing:.13em;margin-bottom:8px;font-weight:800}.coordinate-pair strong{font:500 clamp(17px,2.8vw,23px) 'DM Mono',monospace;letter-spacing:-.04em;color:#f0f8ff;overflow-wrap:anywhere}.source-note{font-size:10px;color:#7f98ad;line-height:1.6;margin:12px 0 0}.alternatives-wrap{margin-top:21px}.alternatives-header{display:flex;justify-content:space-between;gap:8px;align-items:baseline;margin-bottom:10px}.alternatives-header h4{margin:0;font-size:12px}.alternatives-header span{font-size:10px;color:var(--muted)}.alternatives{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:8px}.candidate{display:block;text-align:left;width:100%;padding:12px;background:#0b1a2a;border:1px solid #263b51;border-radius:10px;color:var(--text);cursor:pointer}.candidate:hover,.candidate.active{border-color:#5cc6b5;background:#102d35}.candidate-name{display:block;font-size:12px;font-weight:800;line-height:1.4}.candidate-meta{display:block;color:var(--muted);font-size:10px;line-height:1.5;margin-top:5px}.map-card{padding:23px 24px 0;overflow:hidden}.map-heading{margin-bottom:17px}#map{height:420px;width:100%;border-radius:12px 12px 0 0;background:#0b1928;border:1px solid #263a4f;z-index:1}.map-footer{display:flex;align-items:center;gap:9px;min-height:42px;color:var(--muted);font-size:10px;flex-wrap:wrap}.map-dot{width:7px;height:7px;background:var(--accent);box-shadow:0 0 0 4px #69d2c11c;border-radius:50%}.attribution{margin-left:auto}.leaflet-container{font-family:Manrope,system-ui,sans-serif}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#0e2032;color:#ecf5ff}.leaflet-popup-content{font-size:12px}.leaflet-control-zoom a{background:#10243a!important;color:#fff!important;border-color:#31485f!important}.explanation{display:flex;gap:14px;align-items:start;margin:19px 0 16px;padding:16px 17px;background:#0c1c2c;border:1px solid #1e3449;border-radius:13px}.info-icon{width:24px;height:24px;flex:0 0 24px;border:1px solid #38536b;border-radius:50%;display:grid;place-items:center;color:var(--blue);font:700 12px Georgia,serif}.explanation h3{font-size:12px;margin:1px 0 6px}.explanation p{font-size:11px;line-height:1.7;color:var(--muted);margin:0}footer{font-size:10px;line-height:1.7;color:#6e8398;padding:10px 2px 0}
@media(max-width:640px){.topbar{height:60px}.top-note{display:none}.layout{width:calc(100% - 24px);padding-top:32px}.search-card,.result-card,.map-card{padding:17px 15px}.input-wrap{flex-direction:column}.primary-btn{min-height:45px;justify-content:space-between}.input-meta{align-items:flex-start}.station-title-row{align-items:flex-start;flex-direction:column}.coordinate-pair{grid-template-columns:1fr}.coordinate-pair strong{font-size:21px}.map-heading{align-items:flex-start}#map{height:350px}.alternatives-header{align-items:flex-start;flex-direction:column;gap:4px}.attribution{width:100%;margin-left:16px}.small-tag{font-size:10px}.card-heading h2{font-size:14px}}

/* Agent de recherche de ressources de station */
.resource-agent-card{padding:23px 24px 20px;margin-bottom:18px;background:linear-gradient(145deg,#10263bf5,#0a1929f7);border:1px solid #2c4c61;border-radius:var(--radius);box-shadow:var(--shadow)}
.agent-intro{margin:-5px 0 18px;color:var(--muted);font-size:12px;line-height:1.75;max-width:850px}
.resource-results{margin-top:18px}
.resource-result-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.resource-result{min-width:0;padding:14px 13px;background:#081725;border:1px solid #243d53;border-radius:12px}
.resource-result-title{display:flex;align-items:flex-start;gap:8px}
.resource-result-title h3{font-size:12px;line-height:1.45;margin:1px 0 0}
.resource-index{flex:0 0 auto;display:grid;place-items:center;width:23px;height:23px;border:1px solid #2d5965;border-radius:7px;background:#102d39;color:var(--accent);font:500 10px 'DM Mono',monospace}
.resource-kind{margin:12px 0 7px;color:var(--accent);font-size:10px;font-weight:800;line-height:1.5}
.resource-url{display:block;color:var(--blue);font:11px 'DM Mono',monospace;line-height:1.6;overflow-wrap:anywhere;text-decoration:underline;text-underline-offset:3px}
.resource-details{font-size:10px;color:var(--muted);line-height:1.65;margin:9px 0 0;overflow-wrap:anywhere}
.resource-code-card{margin-top:15px;padding:14px;border:1px solid #2c455b;border-radius:13px;background:#0715218a}
.resource-code{margin:13px 0 0;padding:14px;background:#06111d;border:1px solid #1f3448;border-radius:9px;overflow-x:auto;white-space:pre-wrap;overflow-wrap:anywhere;color:#e7f2ff;font:12px/1.8 'DM Mono',monospace;tab-size:4}
.resource-disclaimer{font-size:10px;color:#7f98ad;line-height:1.7;margin:12px 2px 0}
.resource-alternatives{display:grid;gap:7px;margin-top:12px;padding:12px;background:#0a1a29;border:1px solid #20384d;border-radius:10px}
.resource-alternatives h4{margin:0 0 3px;font-size:11px}
.resource-alternative{font-size:10px;line-height:1.6;color:var(--muted)}
.resource-alternative a{color:var(--blue);text-decoration:underline;text-underline-offset:2px}
.resource-manual-search{margin-top:12px;padding:12px;border:1px solid #695838;border-radius:10px;background:#241e13}
.resource-manual-search p{font-size:11px;line-height:1.7;color:#d8c7a5;margin:0 0 8px}
.resource-manual-search a{display:inline-block;margin:4px 10px 4px 0;color:#a9cfff;font-size:11px;text-decoration:underline;text-underline-offset:2px}
@media(max-width:760px){.resource-result-grid{grid-template-columns:1fr}.resource-agent-card{padding:17px 15px}.resource-code{font-size:11px}}


/* Ajout isolé : convertisseur de coordonnées avec hémisphères. */
.format-converter .input-wrap { align-items: stretch; }
.format-converter .input-wrap input { flex: 1 1 auto; }
.format-result { margin-top: 17px; padding-top: 16px; border-top: 1px solid #20344a; }
.format-coordinate-output {
  margin: 13px 0 0;
  padding: 16px;
  overflow-x: auto;
  border: 1px solid #2c455b;
  border-radius: 11px;
  background: #071521;
  color: #f0f8ff;
  font: 500 14px/1.9 'DM Mono', monospace;
  white-space: pre;
  tab-size: 4;
}
@media(max-width:640px) {
  .format-coordinate-output { font-size: 12px; padding: 12px; }
}
