    html, body {
      margin: 0;
      padding: 0;
      height: 100%;
      overflow: hidden;
    }

    .container {
      position: relative;
      height: 100dvh;
      width: 100vw;
    }

    .info {
      position: fixed;
      top: 16px;
      left: 16px;
      width: 360px;
      height: auto;
      padding: 0;
      background: #ffffff;
      box-shadow: 0 4px 24px rgba(0, 0, 0, 0.18);
      font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
      z-index: 20;
      border-radius: 12px;
      border: 1px solid #e0e2e5;
      display: flex;
      flex-direction: column;
      overflow: visible;
      transition: top 0.35s cubic-bezier(.4,0,.2,1),
                  left 0.35s cubic-bezier(.4,0,.2,1),
                  border-radius 0.35s,
                  transform 0.3s cubic-bezier(.4,0,.2,1);
    }
    .info.has-parcel {
      top: 0;
      left: 0;
      height: 100dvh;
      border-radius: 0;
      border: none;
      border-right: 1px solid #d8dadc;
      overflow: hidden;
    }
    .info.collapsed {
      transform: translateX(-392px);
    }
    .info-footer {
      flex-shrink: 0;
      border-top: 1px solid #e8e9eb;
      padding: 10px 12px;
      display: none;
      justify-content: space-between;
      align-items: center;
      background: #fafafa;
    }
    .info.has-parcel .info-footer {
      display: flex;
    }
    .info-footer a {
      font-size: 10px;
      color: #999;
      text-decoration: none;
    }
    .info-footer a:hover { color: #2E86AB; text-decoration: underline; }
    #fixed-command-section {
      flex-shrink: 0;
      border-top: 1px solid #eee;
      background: white;
    }
    .card-actions {
      display: flex;
      gap: 8px;
      padding: 10px 12px calc(12px + env(safe-area-inset-bottom));
    }
    .btn-action {
      flex: 1;
      padding: 8px 10px;
      border-radius: 5px;
      border: none;
      font-size: 11px;
      font-weight: 600;
      cursor: pointer;
      text-align: center;
      transition: all 0.2s;
    }
    .btn-export {
      background: #f1f3f5;
      color: #444;
      border: 1px solid #ddd;
    }
    .btn-export:hover { background: #e8eaec; color: #222; }
    .btn-audit {
      background: #2E86AB;
      color: #fff;
    }
    .btn-audit:hover { background: #236d8a; }

    /* ── Audit modal ─────────────────────────────────────────────────────── */
    .audit-modal-overlay {
      position: fixed;
      inset: 0;
      background: rgba(0,0,0,0.5);
      z-index: 2000;
      display: none;
      align-items: center;
      justify-content: center;
    }
    .audit-modal-overlay.open { display: flex; }
    .audit-modal-dialog {
      background: white;
      border-radius: 12px;
      width: 420px;
      max-width: calc(100vw - 32px);
      max-height: calc(100vh - 64px);
      overflow-y: auto;
      box-shadow: 0 20px 60px rgba(0,0,0,0.35);
      display: flex;
      flex-direction: column;
      font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    }
    .audit-modal-header {
      display: flex;
      justify-content: space-between;
      align-items: center;
      padding: 16px 20px;
      border-bottom: 1px solid #eee;
      flex-shrink: 0;
    }
    .audit-modal-title { font-size: 15px; font-weight: 700; color: #222; }
    .audit-modal-close {
      background: none; border: none; font-size: 22px;
      cursor: pointer; color: #999; line-height: 1;
      padding: 0 4px;
    }
    .audit-modal-close:hover { color: #333; }
    .audit-modal-map { width: 100%; height: 200px; flex-shrink: 0; }
    .audit-modal-recap {
      padding: 14px 20px;
      background: #f8f9fa;
      border-bottom: 1px solid #eee;
      display: flex;
      gap: 20px;
      flex-wrap: wrap;
    }
    .audit-recap-item .audit-recap-label {
      font-size: 10px; color: #888; text-transform: uppercase;
      letter-spacing: 0.5px; margin-bottom: 3px;
    }
    .audit-recap-item .audit-recap-value {
      font-size: 13px; font-weight: 600; color: #222;
    }
    .audit-modal-desc { padding: 16px 20px; font-size: 13px; color: #444; line-height: 1.6; }
    .audit-modal-desc ul { margin: 8px 0 0 16px; padding: 0; }
    .audit-modal-desc li { margin-bottom: 4px; }
    .audit-modal-actions {
      display: flex; gap: 8px;
      padding: 12px 20px 16px;
      border-top: 1px solid #eee;
      flex-shrink: 0;
    }

    @media print {
      .map-container, .multi-selection-indicator, .map-controls,
      .search-container, .info-logo, .parcel-header, .parcel-navigation,
      .card-actions, .info-footer, .sidebar-toggle { display: none !important; }
      .container { display: block; }
      .info { width: 100% !important; height: auto !important; box-shadow: none !important; border: none !important; transform: none !important; }
      .parcel-card { position: relative !important; height: auto !important; }
      .parcel-constraints { overflow: visible !important; height: auto !important; flex: none !important; }
      .ua-score-bar, .ua-score-bar-wrap { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
    }

    /* Caché sur desktop */
    .sheet-handle { display: none; }

    .info-logo {
      padding: 10px 15px;
      display: flex;
      justify-content: space-between;
      align-items: center;
      border-bottom: none;
    }

    .info-logo img {
      height: 18px;
      width: auto;
    }

    .user-icon {
      width: 20px;
      height: 20px;
      border-radius: 0;
      border: none;
      display: flex;
      align-items: center;
      justify-content: center;
      color: #666;
      cursor: pointer;
      transition: all 0.3s ease;
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='12' cy='7' r='4'/%3E%3C/svg%3E");
      background-size: contain;
      background-position: center;
      background-repeat: no-repeat;
    }

    .user-icon:hover {
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232E86AB' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='12' cy='7' r='4'/%3E%3C/svg%3E");
    }

    .search-container {
      padding: 0 15px 12px;
      position: relative;
      border-bottom: 2px solid #e8e8e8;
    }

    .search-tabs {
      display: flex;
      margin-bottom: 8px;
    }

    .search-tab {
      padding: 6px 14px;
      background: none;
      border: none;
      cursor: pointer;
      font-size: 14px;
      font-weight: 500;
      color: #666;
      transition: all 0.2s ease;
    }

    .search-tab.active {
      border-bottom: 2px solid #2E86AB;
    }

    .search-wrapper {
      position: relative;
      display: flex;
      align-items: center;
    }

    .search-input {
      width: 100%;
      padding: 10px 36px 10px 40px;
      border: 1px solid #ddd;
      border-radius: 4px;
      font-size: 14px;
      box-sizing: border-box;
      transition: all 0.3s ease;
      background-color: #f8f9fa;
    }

    .search-input:focus {
      outline: none;
      border-color: #2E86AB;
      box-shadow: 0 0 0 2px rgba(46, 134, 171, 0.2);
      background-color: white;
    }

    .search-icon {
      position: absolute;
      left: 12px;
      color: #666;
      pointer-events: none;
      display: flex;
      align-items: center;
    }
    @keyframes spin { to { transform: rotate(360deg); } }
    .search-icon.loading svg { display: none; }
    .search-icon.loading::after {
      content: '';
      width: 14px; height: 14px;
      border: 2px solid #ddd;
      border-top-color: #2E86AB;
      border-radius: 50%;
      animation: spin 0.6s linear infinite;
    }
    .search-result-item.highlighted {
      background-color: #e8f4f8;
    }

    .search-clear {
      position: absolute;
      right: 12px;
      top: 10px;
      width: 20px;
      height: 20px;
      border-radius: 50%;
      background: #ddd;
      color: #666;
      cursor: pointer;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 14px;
      line-height: 1;
      font-weight: normal;
      opacity: 0;
      visibility: hidden;
      transition: all 0.2s ease;
    }
    
    .search-clear:hover {
      background: #2E86AB;
      color: white;
    }
    
    .search-clear.visible {
      opacity: 1;
      visibility: visible;
    }

    .search-results {
      position: absolute;
      top: calc(100% - 1px);
      left: 0;
      right: 0;
      background: white;
      border: 1px solid #ddd;
      border-top: none;
      border-radius: 0 0 4px 4px;
      max-height: 300px;
      overflow-y: auto;
      z-index: 1000;
      display: none;
      box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    }

    .search-result-item {
      padding: 12px 16px;
      cursor: pointer;
      border-bottom: 1px solid #eee;
      transition: background-color 0.2s ease;
    }

    .search-result-item:last-child {
      border-bottom: none;
    }

    .search-result-item:hover {
      background-color: #f5f5f5;
    }

    .search-result-item .address {
      font-size: 14px;
      color: #333;
      font-weight: 500;
    }

    .search-result-item .details {
      font-size: 12px;
      color: #888;
      margin-top: 4px;
    }

    .no-results {
      padding: 12px 16px;
      color: #666;
      font-size: 14px;
      text-align: center;
    }

    .info-content {
      display: none;
    }
    .info.has-parcel .info-content {
      display: flex;
      flex: 1;
      flex-direction: column;
      overflow-y: auto;
      position: relative;
      min-height: 0;
    }
    .info:not(.has-parcel) .search-container {
      border-bottom: none;
      padding-bottom: 12px;
    }
    .info.has-parcel .search-clear { display: none !important; }

    .parcel-cards-container {
      position: relative;
    }

    .parcel-card {
      display: none;
      background: white;
    }

    .parcel-card.active {
      display: block;
    }

    .parcel-navigation {
      display: flex;
      justify-content: space-between;
      align-items: center;
      padding: 12px 15px;
      background: #f8f9fa;
      border-radius: 0 0 8px 8px;
      margin: 0;
      box-shadow: none;
      border-top: 1px solid #e9ecef;
      position: relative;
      z-index: 2;
    }

    .nav-button {
      width: 32px;
      height: 32px;
      border: none;
      background: #2E86AB;
      color: white;
      border-radius: 50%;
      cursor: pointer;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 16px;
      transition: all 0.2s ease;
      opacity: 0.6;
    }

    .nav-button:hover {
      opacity: 1;
      transform: scale(1.1);
    }

    .nav-button:disabled {
      opacity: 0.3;
      cursor: not-allowed;
      transform: none;
    }

    .parcel-counter {
      font-size: 12px;
      color: #666;
      font-weight: 500;
    }


    .parcel-header {
      display: flex;
      justify-content: space-between;
      align-items: center;
      padding: 10px 12px;
      border-bottom: 1px solid #e8e9eb;
      flex-shrink: 0;
      position: sticky;
      top: 0;
      background: white;
      z-index: 10;
    }
    .parcel-header-commune {
      font-size: 13px;
      font-weight: 600;
      color: #2E86AB;
      flex: 1;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
    }

    .ua-section-block {
      flex-shrink: 0;
    }
    .ua-section-block-title {
      display: block;
      font-size: 12px;
      font-weight: 700;
      color: #444;
      text-transform: uppercase;
      letter-spacing: 0.8px;
      background: #f1f3f5;
      padding: 9px 12px;
      border-top: 1px solid #e6e8ea;
      border-bottom: 1px solid #e6e8ea;
      margin-bottom: 0;
    }
    .ua-section-body {
      padding: 12px;
    }

    .header-icons {
      display: flex;
      align-items: center;
      gap: 8px;
    }

    .favorite-icon {
      width: 20px;
      height: 20px;
      color: #ccc;
      cursor: pointer;
      transition: all 0.3s ease;
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z'/%3E%3C/svg%3E");
      background-size: contain;
      background-position: center;
      background-repeat: no-repeat;
      transform-origin: center;
    }

    .deselect-icon {
      width: 20px;
      height: 20px;
      color: #666;
      cursor: pointer;
      transition: all 0.3s ease;
      font-size: 18px;
      font-weight: bold;
      display: flex;
      align-items: center;
      justify-content: center;
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='18' y1='6' x2='6' y2='18'/%3E%3Cline x1='6' y1='6' x2='18' y2='18'/%3E%3C/svg%3E");
      background-size: contain;
      background-position: center;
      background-repeat: no-repeat;
    }

    .deselect-icon:hover {
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23d32f2f' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='18' y1='6' x2='6' y2='18'/%3E%3Cline x1='6' y1='6' x2='18' y2='18'/%3E%3C/svg%3E");
    }

    .favorite-icon.active {
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23666' stroke='%23666' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z'/%3E%3C/svg%3E");
      animation: heartBeat 0.3s ease-in-out;
    }

    .favorite-icon:hover {
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232E86AB' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z'/%3E%3C/svg%3E");
    }

    .favorite-icon.active:hover {
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23666' stroke='%23666' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z'/%3E%3C/svg%3E");
    }

    .favorite-icon:active {
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23666' stroke='%23666' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z'/%3E%3C/svg%3E");
    }

    @keyframes heartBeat {
      0% {
        transform: scale(1);
      }
      50% {
        transform: scale(1.2);
      }
      100% {
        transform: scale(1);
      }
    }

    .info .mini-map {
      display: none;
      height: 0;
      border-radius: 6px;
      overflow: hidden;
      position: relative;
      border: 1px solid rgba(0,0,0,0.08);
    }

    .parcel-details {
      flex-shrink: 0;
    }

    .parcel-constraints {
      flex: 1;
      overflow-y: auto;
      min-height: 0;
    }
    .parcel-constraints::-webkit-scrollbar { width: 4px; }
    .parcel-constraints::-webkit-scrollbar-track { background: transparent; }
    .parcel-constraints::-webkit-scrollbar-thumb { background: #ddd; border-radius: 2px; }

    /* ── Design system unifié ── */
    --ua-text-primary:   #1a1a1a;
    --ua-text-secondary: #666;
    --ua-text-muted:     #999;
    --ua-border:         #f0f0f0;

    .ua-section-title {
      font-size: 9px;
      font-weight: 700;
      color: #aaa;
      text-transform: uppercase;
      letter-spacing: 0.8px;
      margin-bottom: 8px;
    }
    .ua-label {
      font-size: 10px;
      color: #777;
      font-weight: 500;
      width: 90px;
      flex-shrink: 0;
    }
    .ua-value {
      font-size: 12px;
      color: #111;
      font-weight: 500;
      flex: 1;
    }
    .ua-commune {
      font-size: 9px;
      font-weight: 700;
      color: #888;
      text-transform: uppercase;
      letter-spacing: 0.8px;
      margin-bottom: 6px;
    }
    .constraint-category-header {
      font-size: 9px;
      font-weight: 700;
      padding: 8px 0 2px 8px;
      border-left: 2px solid currentColor;
      margin: 12px 0 4px;
      text-transform: uppercase;
      letter-spacing: 0.7px;
      display: block;
      background: none;
    }
    .constraint-item {
      display: flex;
      justify-content: space-between;
      align-items: baseline;
      font-size: 11px;
      color: #222;
      padding: 4px 0;
      border-bottom: 1px solid #eeeeee;
      line-height: 1.45;
    }
    .constraint-item:last-child { border-bottom: none; }
    .constraint-item .c-label { flex: 1; padding-right: 8px; }
    .constraint-item .c-ha {
      font-size: 10px;
      color: #666;
      white-space: nowrap;
      text-align: right;
    }
    .constraints-loading {
      font-size: 11px;
      color: #bbb;
      font-style: italic;
    }
    .ua-audit-header {
      display: flex;
      align-items: center;
      justify-content: space-between;
      margin-bottom: 10px;
    }
    .ua-audit-badge {
      font-size: 9px;
      font-weight: 700;
      color: #555;
      text-transform: uppercase;
      letter-spacing: 0.7px;
      background: #f4f4f4;
      border-radius: 3px;
      padding: 2px 6px;
    }
    .ua-audit-count {
      font-size: 10px;
      color: #aaa;
    }
    .ua-score-block {
      background: #fafafa;
      border: 1px solid #efefef;
      border-radius: 6px;
      padding: 12px 14px 14px;
      margin-bottom: 10px;
    }
    .ua-score-section-label {
      font-size: 10px;
      font-weight: 600;
      color: #999;
      text-transform: uppercase;
      letter-spacing: 0.6px;
      margin-bottom: 12px;
    }
    .ua-score-dots {
      display: flex;
      justify-content: space-between;
      align-items: flex-start;
    }
    .ua-dot {
      flex: 1;
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 6px;
    }
    .ua-dot::before {
      content: '';
      display: block;
      width: 26px;
      height: 26px;
      border-radius: 50%;
      border: 2px solid transparent;
    }
    .ua-dot--green::before  { background: #27ae60; box-shadow: 0 2px 6px rgba(39,174,96,0.30); }
    .ua-dot--orange::before { background: #e67e22; box-shadow: 0 2px 6px rgba(230,126,34,0.30); }
    .ua-dot--red::before    { background: #c0392b; box-shadow: 0 2px 6px rgba(192,57,43,0.30); }
    .ua-dot--off::before    { background: #ebebeb; border-color: #e0e0e0; }
    .ua-dot-label {
      font-size: 10px;
      color: #ccc;
      letter-spacing: 0.1px;
    }
    .ua-dot--green .ua-dot-label  { color: #27ae60; font-weight: 600; }
    .ua-dot--orange .ua-dot-label { color: #e67e22; font-weight: 600; }
    .ua-dot--red .ua-dot-label    { color: #c0392b; font-weight: 600; }
    .ua-score-label {
      font-size: 11px;
      font-weight: 600;
    }
    .ua-cat-summary {
      display: flex;
      gap: 6px;
      flex-wrap: wrap;
      margin-bottom: 10px;
    }
    .ua-cat-pill {
      font-size: 10px;
      font-weight: 600;
      padding: 3px 8px;
      border-radius: 12px;
      letter-spacing: 0.2px;
    }
    .ua-detail-divider {
      font-size: 9px;
      font-weight: 700;
      color: #bbb;
      text-transform: uppercase;
      letter-spacing: 0.7px;
      border-top: 1px solid #f0f0f0;
      padding-top: 10px;
      margin-bottom: 4px;
    }
    .ua-cta {
      font-size: 11px;
      color: #555;
      background: #f8f8f8;
      border-left: 3px solid #ccc;
      border-radius: 0 4px 4px 0;
      padding: 7px 10px;
      margin-bottom: 10px;
      line-height: 1.5;
    }
    .ua-cta strong {
      display: block;
      font-size: 10px;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: 0.5px;
      margin-bottom: 2px;
    }
    .ua-prose-section {
      margin-bottom: 8px;
    }
    .ua-prose-cat {
      font-size: 9px;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: 0.7px;
      padding: 8px 0 2px 8px;
      border-left: 2px solid currentColor;
      margin-bottom: 5px;
      display: block;
    }
    .ua-prose-text {
      font-size: 11px;
      color: #333;
      line-height: 1.55;
      padding-left: 10px;
    }
    .parcel-thumb {
      flex-shrink: 0;
      opacity: 0.85;
    }

    .detail-row {
      display: flex;
      align-items: center;
      margin-bottom: 12px;
    }

    .detail-row:last-child {
      margin-bottom: 0;
    }

    .info .label {
      color: #666;
      font-size: 14px;
      font-weight: 500;
      width: 100px;
    }

    .info .value {
      color: #222;
      font-size: 14px;
      font-weight: 500;
      flex: 1;
    }

    .info .value.multi-selection {
      font-size: 12px;
      line-height: 1.4;
      max-height: 120px;
      overflow-y: auto;
    }

    .info .value.multi-selection::-webkit-scrollbar {
      width: 4px;
    }

    .info .value.multi-selection::-webkit-scrollbar-track {
      background: #f1f1f1;
      border-radius: 2px;
    }

    .info .value.multi-selection::-webkit-scrollbar-thumb {
      background: #ccc;
      border-radius: 2px;
    }

    .info .value.multi-selection::-webkit-scrollbar-thumb:hover {
      background: #999;
    }

    .copy-icon {
      color: #666;
      cursor: pointer;
      margin-left: 8px;
      font-size: 14px;
      width: 18px;
      height: 18px;
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='9' y='9' width='13' height='13' rx='2' ry='2'/%3E%3Cpath d='M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1'/%3E%3C/svg%3E");
      background-size: contain;
      background-position: center;
      background-repeat: no-repeat;
    }

    .copy-icon:hover {
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232E86AB' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='9' y='9' width='13' height='13' rx='2' ry='2'/%3E%3Cpath d='M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1'/%3E%3C/svg%3E");
    }

    .command-section {
      margin-top: auto;
      padding: 15px;
      border-top: none;
    }

    .command-message {
      font-size: 14px;
      color: #333;
      margin-bottom: 15px;
      text-align: center;
    }

    .delivery-info {
      font-size: 12px;
      color: #666;
      margin-bottom: 12px;
      text-align: center;
      line-height: 1.4;
      padding: 8px 12px;
      background: #f8f9fa;
      border-radius: 4px;
      border: 1px solid #e9ecef;
    }

    .delivery-info strong {
      color: #00BF9A;
      font-weight: 600;
    }

    .command-buttons {
      display: flex;
      flex-direction: column;
      gap: 10px;
      margin-bottom: 15px;
    }

    .add-to-cart {
      padding: 12px;
      border: 2px solid #00BF9A;
      background: transparent;
      color: #00BF9A;
      border-radius: 4px;
      font-size: 14px;
      font-weight: 600;
      cursor: pointer;
      transition: all 0.2s ease;
      text-align: center;
    }

    .add-to-cart:hover {
      background: rgba(0, 191, 154, 0.1);
    }

    .order-report {
      padding: 12px;
      border: 2px solid #00BF9A;
      background: #00BF9A;
      color: white;
      border-radius: 4px;
      font-size: 14px;
      font-weight: 600;
      cursor: pointer;
      transition: all 0.2s ease;
      text-align: center;
      display: flex;
      justify-content: center;
      align-items: center;
    }

    .order-report:hover {
      background: #00A383;
    }

    .arrow-icon {
      margin-left: 8px;
    }

    .security-info {
      display: flex;
      justify-content: center;
      align-items: center;
      gap: 15px;
      margin-bottom: 0;
      font-size: 10px;
      color: #777;
      text-align: center;
      white-space: nowrap;
    }

    .security-info span {
      display: flex;
      align-items: center;
      gap: 3px;
    }

    .security-info .icon {
      font-size: 12px;
    }

    .footer-info {
      display: flex;
      justify-content: center;
      align-items: center;
      gap: 15px;
      font-size: 11px;
      color: #aaa;
      padding-top: 30px;
      padding-bottom: 0px;
      border-top: none;
      margin-top: 10px;
    }

    .footer-link {
      color: #aaa;
      text-decoration: none;
    }

    .footer-link:hover {
      color: #2E86AB;
      text-decoration: underline;
    }

    .north-arrow {
      position: absolute;
      bottom: 10px;
      left: 10px;
      background: transparent;
      padding: 4px;
      border-radius: 0;
      box-shadow: none;
      z-index: 1;
      color: #666;
      width: 24px;
      height: 24px;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 12px;
      font-weight: normal;
      font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    }

    .north-arrow::after {
      content: "";
      position: absolute;
      width: 20px;
      height: 20px;
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23BBBBBB' stroke-width='1.5'%3E%3Cpath d='M12 2v10M9 5l3-3 3 3'/%3E%3C/g%3E%3Ctext x='12' y='22' text-anchor='middle' font-size='12' fill='%23BBBBBB' font-weight='normal' font-family='sans-serif'%3EN%3C/text%3E%3C/svg%3E");
      background-size: contain;
      background-position: center;
      background-repeat: no-repeat;
      opacity: 0.8;
    }

    .logo {
      position: absolute;
      bottom: 20px;
      left: 20px;
      width: 175px;
      height: auto;
      z-index: 2;
    }

    .geometry-section {
      margin: 0;
      padding: 20px 0;
      border-top: none;
      border-bottom: none;
    }

    .info .geometry-coordinates {
      font-family: monospace;
      font-size: 12px;
      color: #666;
      background: rgba(0, 0, 0, 0.02);
      padding: 10px;
      border-radius: 4px;
      margin-top: 8px;
      max-height: 200px;
      overflow-y: auto;
    }


    .map-container {
      position: absolute;
      top: 0; left: 0; right: 0; bottom: 0;
    }

    #map {
      width: 100%;
      height: 100%;
    }

    .map-controls {
      position: absolute;
      top: 20px;
      right: 20px;
      display: flex;
      flex-direction: column;
      gap: 8px;
      z-index: 1;
    }

    .zoom-controls {
      display: flex;
      flex-direction: column;
      gap: 4px;
    }

    .zoom-button {
      width: 36px;
      height: 36px;
      background: white;
      border: 1px solid #ddd;
      border-radius: 4px;
      display: flex;
      align-items: center;
      justify-content: center;
      cursor: pointer;
      transition: all 0.2s ease;
      box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
    }

    .zoom-button:hover {
      background: #f5f5f5;
      border-color: #2E86AB;
    }

    .compass-group {
      display: flex;
      align-items: center;
      gap: 4px;
      position: relative;
    }

    .info-icon {
      position: absolute;
      top: -2px;
      right: -2px;
      width: 12px;
      height: 12px;
      background: white;
      border: 1px solid #ddd;
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      cursor: help;
      transition: all 0.2s ease;
      font-size: 8px;
      color: #666;
      box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
      font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
      font-weight: 500;
    }

    .compass-control {
      width: 36px;
      height: 36px;
      background: white;
      border: 1px solid #ddd;
      border-radius: 4px;
      display: flex;
      align-items: center;
      justify-content: center;
      cursor: pointer;
      transition: all 0.2s ease;
      box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
      position: relative;
    }

    .compass-control:hover {
      background: #f5f5f5;
      border-color: #2E86AB;
    }

    .compass-icon {
      width: 24px;
      height: 24px;
      position: relative;
      transition: transform 0.3s ease;
    }

    .compass-icon::after {
      content: "";
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      bottom: 0;
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2 Q13 4 21 21 Q12 17 3 21 Q11 4 12 2 Z' fill='%232E86AB'/%3E%3C/svg%3E");
      background-size: contain;
      background-position: center;
      background-repeat: no-repeat;
    }

    .info-tooltip {
      position: absolute;
      top: -30px;
      right: -2px;
      background: white;
      padding: 6px 10px;
      border-radius: 4px;
      box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
      font-size: 11px;
      color: #333;
      opacity: 0;
      transition: opacity 0.2s ease;
      pointer-events: none;
      z-index: 1000;
      white-space: nowrap;
      font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
    }

    .info-icon:hover + .info-tooltip {
      opacity: 1;
    }

    .compass-control::after {
      display: none;
    }

    .compass-control:hover::after {
      display: none;
    }

    .map-control-button {
      width: 36px;
      height: 36px;
      background: white;
      border: 1px solid #ddd;
      border-radius: 4px;
      display: flex;
      align-items: center;
      justify-content: center;
      cursor: pointer;
      transition: all 0.2s ease;
      box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
      font-size: 26px;
      line-height: 1;
      padding: 0;
    }

    .map-control-button:hover {
      background: #f5f5f5;
      border-color: #2E86AB;
    }

    .map-control-button.active {
      background: #f5f5f5;
      color: #2E86AB;
      border-color: #2E86AB;
    }

    .rotation-controls {
      display: flex;
      gap: 4px;
    }

    .rotation-button {
      width: 36px;
      height: 36px;
      background: white;
      border: 1px solid #ddd;
      border-radius: 4px;
      display: flex;
      align-items: center;
      justify-content: center;
      cursor: pointer;
      transition: all 0.2s ease;
      box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
    }

    .rotation-button:hover {
      background: #f5f5f5;
      border-color: #2E86AB;
    }

    #map::after {
      display: none;
    }

    #map:hover::after {
      display: none;
    }

    .compass-arrows {
      position: absolute;
      width: 100%;
      height: 100%;
      pointer-events: none;
    }

    .compass-arrow {
      position: absolute;
      width: 16px;
      height: 16px;
      color: #2E86AB;
      font-size: 20px;
      line-height: 1;
      text-align: center;
      pointer-events: auto;
      cursor: pointer;
    }

    .compass-arrow.left {
      left: 4px;
      top: 50%;
      transform: translateY(-50%);
    }

    .compass-arrow.right {
      right: 4px;
      top: 50%;
      transform: translateY(-50%);
    }

    .multi-selection-indicator {
      position: absolute;
      bottom: 20px;
      left: 50%;
      transform: translateX(-50%);
      background: rgba(255, 255, 255, 0.95);
      color: #333;
      padding: 12px 20px;
      border-radius: 8px;
      font-size: 14px;
      font-weight: 500;
      z-index: 1000;
      opacity: 0;
      transition: opacity 0.3s ease;
      pointer-events: none;
      box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
      border: 1px solid rgba(0, 0, 0, 0.1);
      font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
      backdrop-filter: blur(5px);
    }

    .multi-selection-indicator.visible {
      opacity: 1;
    }

    .multi-selection-indicator.error {
      background: rgba(255, 87, 87, 0.95);
      color: white;
      border-color: rgba(255, 87, 87, 0.3);
    }

    .copy-notification {
      position: fixed;
      z-index: 10000;
      pointer-events: none;
      animation: copyNotificationSlideIn 0.3s ease-out;
    }

    .copy-notification-content {
      background: rgba(255, 255, 255, 0.95);
      color: #333;
      padding: 10px 14px;
      border-radius: 6px;
      box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
      display: flex;
      align-items: center;
      gap: 6px;
      font-size: 13px;
      font-weight: 400;
      backdrop-filter: blur(4px);
      border: 1px solid rgba(0, 0, 0, 0.1);
      font-family: inherit;
    }

    .copy-notification-icon {
      font-size: 14px;
      font-weight: normal;
      color: #666;
    }

    .copy-notification-text {
      white-space: nowrap;
      color: #555;
    }

    @keyframes copyNotificationSlideIn {
      from {
        opacity: 0;
        transform: translateY(-10px) scale(0.9);
      }
      to {
        opacity: 1;
        transform: translateY(0) scale(1);
      }
    }

    @keyframes copyNotificationSlideOut {
      from {
        opacity: 1;
        transform: translateY(0) scale(1);
      }
      to {
        opacity: 0;
        transform: translateY(-10px) scale(0.9);
      }
    }
  
/* =====================================================================
   MOBILE — bottom sheet (≤ 768px)
   ===================================================================== */
@media (max-width: 768px) {

  /* ── Drag handle (vrai div, zone tactile généreuse) ── */
  .sheet-handle {
    flex-shrink: 0;
    width: 100%;
    padding: 12px 0 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: grab;
    touch-action: none;
  }
  .sheet-handle::after {
    content: '';
    display: block;
    width: 40px;
    height: 4px;
    background: #d0d5dd;
    border-radius: 2px;
  }
  /* Feedback visuel au toucher */
  .sheet-handle:active::after {
    background: #aab0bb;
  }

  /* ── Info panel → bottom sheet ── */
  .info {
    position: fixed !important;
    top: auto !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    width: 100% !important;
    height: auto !important;
    max-height: 80vh !important;
    border-radius: 16px 16px 0 0 !important;
    border: none !important;
    border-top: 1px solid #e0e2e5 !important;
    transform: translateY(0) !important;
    transition: max-height 0.35s cubic-bezier(.4,0,.2,1),
                height 0.35s cubic-bezier(.4,0,.2,1),
                transform 0.35s cubic-bezier(.4,0,.2,1) !important;
    overflow: hidden !important;
    z-index: 100 !important;
  }

  /* Pas de parcelle : juste la recherche visible */
  .info:not(.has-parcel) {
    max-height: 90px !important;
    /* overflow visible pour que le dropdown de recherche apparaisse */
    overflow: visible !important;
  }

  /* Parcelle sélectionnée : sheet à mi-hauteur */
  .info.has-parcel {
    max-height: 68vh !important;
    height: 68vh !important;
    border-radius: 16px 16px 0 0 !important;
    border-right: none !important;
  }

  /* collapsed géré entièrement par JS (height inline) — pas de transform */

  /* Contenu scrollable */
  .info.has-parcel .info-content {
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    max-height: calc(68vh - 130px);
  }

  /* ── Logo caché ── */
  .info-logo { display: none !important; }

  /* ── Barre de recherche compacte ── */
  .search-container {
    padding: 6px 12px 8px !important;
  }

  /* ── Contrôles carte : au-dessus du sheet (90px) avec marge confortable ── */
  .map-controls {
    top: auto !important;
    bottom: 108px !important;
    right: 12px !important;
    z-index: 10 !important;
  }

  /* ── Contrôles simplifiés : seulement le satellite ── */
  .zoom-controls { display: none !important; }
  .compass-group { display: none !important; }

  /* ── Satellite button seul, en haut à droite ── */
  .map-controls {
    top: 16px !important;
    bottom: auto !important;
    right: 12px !important;
    z-index: 10 !important;
  }

  /* ── Indicateur multi-sélection caché ── */
  .multi-selection-indicator { display: none !important; }

  /* ── Boutons d'action de la fiche ── */
  .btn-action {
    padding: 10px 14px !important;
    font-size: 12px !important;
  }

  /* ── Navigation entre fiches ── */
  .parcel-nav { padding: 8px 12px !important; }

  /* satellite reste en haut à droite même avec une parcelle */

  /* ── Dropdown : vers le HAUT, hauteur limitée, scroll contenu (pas la page) ── */
  .search-results {
    top: auto !important;
    bottom: calc(100% - 1px);
    border-radius: 4px 4px 0 0 !important;
    border-top: 1px solid #ddd;
    border-bottom: none !important;
    box-shadow: 0 -4px 12px rgba(0, 0, 0, 0.12) !important;
    max-height: 220px !important;
    overflow-y: auto !important;
    overscroll-behavior: contain !important;
    -webkit-overflow-scrolling: touch;
    z-index: 200 !important;
  }

  /* ── Empêche iOS Safari de zoomer sur le focus (font-size ≥ 16px) ── */
  .search-input {
    font-size: 16px !important;
  }
}
