:root{ --sw-subcats-nudge: -45px; /* subcats vertical nudge */ --sw-below-overlap: 120px; /* sociowall overlaps map */ } .map-page{ display:flex; flex-direction:column; width:100%; } /* Map stage - 7/8 of viewport on desktop */ .map-stage{ position:relative; width:100%; height: clamp(500px, 87.5vh, 1100px); overflow: hidden; } .map-stage--placeholder{ display:flex; align-items:center; justify-content:center; background: radial-gradient(circle at 20% 20%, rgba(56,189,248,0.2), transparent 45%), radial-gradient(circle at 80% 30%, rgba(14,116,144,0.25), transparent 40%), linear-gradient(135deg, rgba(2,6,23,0.9), rgba(6,14,36,0.95)); border: 1px solid rgba(56,189,248,0.25); } .map-placeholder-content{ text-align:center; padding: 16px 20px; border-radius: 16px; background: rgba(2, 6, 23, 0.5); border: 1px solid rgba(148, 163, 184, 0.25); color: #e2e8f0; box-shadow: 0 14px 30px rgba(2,6,23,0.4); } .map-placeholder-title{ font-size: 18px; font-weight: 600; letter-spacing: 0.02em; } .map-placeholder-subtitle{ margin-top: 6px; font-size: 13px; color: rgba(226, 232, 240, 0.75); } .map-placeholder-overlay{ position:absolute; display:flex; gap: 10px; z-index: 2; opacity: 0.85; } .map-placeholder-top{ top: 16px; left: 50%; transform: translateX(-50%); } .map-placeholder-left{ left: 16px; top: 50%; transform: translateY(-50%); flex-direction: column; } .map-placeholder-right{ right: 16px; top: 50%; transform: translateY(-50%); flex-direction: column; } .map-placeholder-bottom{ left: 50%; bottom: 18px; transform: translateX(-50%); } .map-placeholder-pill{ width: 42px; height: 42px; border-radius: 14px; background: linear-gradient(135deg, rgba(148,163,184,0.15), rgba(56,189,248,0.25)); border: 1px solid rgba(148, 163, 184, 0.25); box-shadow: inset 0 0 0 1px rgba(15, 23, 42, 0.4); animation: map-skel-pulse 1.6s ease-in-out infinite; } .map-placeholder-pill--wide{ width: min(520px, calc(100vw - 72px)); height: 48px; border-radius: 18px; } .map-placeholder-chip{ width: 84px; height: 30px; border-radius: 999px; background: linear-gradient(135deg, rgba(148,163,184,0.18), rgba(14,116,144,0.25)); border: 1px solid rgba(148, 163, 184, 0.25); animation: map-skel-pulse 1.6s ease-in-out infinite; } @keyframes map-skel-pulse{ 0%{ opacity: 0.5; } 50%{ opacity: 1; } 100%{ opacity: 0.6; } } /* Landscape: vh is small, but still keep map tall */ @media (orientation: landscape){ :root{ --sw-below-overlap: 90px; } .map-stage{ height: clamp(400px, 80vh, 900px); } } .map-container, .maplibre-container{ position:absolute; inset:0; width:100%; height:100%; } .map-status{ position:absolute; left:.5rem; bottom:.5rem; font-size:.7rem; padding:.2rem .4rem; background:rgba(0,0,0,.6); border-radius:.5rem; z-index:30; } /* BELOW MAP (scroll area) – overlaps map */ .below-stage{ margin-top: calc(var(--sw-below-overlap) * -1); position:relative; z-index:250; padding: 0.5rem 1rem 1.5rem; transition: opacity 320ms ease, filter 320ms ease; } .below-row{ display:flex; gap:.6rem; align-items:stretch; min-width:0; } /* stack only ultra-small (NOT normal portrait phones) */ @media (max-width: 340px){ .below-row{ flex-direction:column; } } /* ======== OVERLAYS ======== */ .map-overlay{ position:absolute; pointer-events:none; z-index:40; } .map-overlay *{ pointer-events:auto; } /* TOP: centré horizontalement, petit offset en haut */ .map-overlay-top{ top: .7rem; left:50%; transform:translateX(-50%); max-width: min(980px, calc(100vw - 24px)); width:100%; z-index: 850; /* Above FAB (820) but below modals (9999) */ } /* Left / right: filtres */ .map-overlay-left{ left: 0.6rem; top: 50%; transform: translateY(-50%); display: flex; flex-direction: column; gap: 0.5rem; } .map-overlay-right{ right: 0.6rem; top: 50%; transform: translateY(-50%); display: flex; flex-direction: column; gap: 0.5rem; } /* BOTTOM: sub-cats au-dessus du Sociowall */ .map-overlay-bottom{ bottom: calc(3.2rem + var(--sw-below-overlap, 0px) + env(safe-area-inset-bottom) + var(--sw-subcats-nudge, 0px)); left:50%; transform:translateX(-50%); display:flex; gap:.4rem; } /* Crosshair pour création */ .map-crosshair{ left:50%; top:30%; transform:translate(-50%,-50%); } .crosshair-aim{ width:34px; height:34px; border-radius:999px; border:1px solid #38bdf8; position:relative; box-shadow:0 0 14px rgba(56,189,248,.9); } .crosshair-aim::before, .crosshair-aim::after{ content:""; position:absolute; left:50%; top:50%; background:#38bdf8; transform:translate(-50%,-50%); } .crosshair-aim::before{ width:70%; height:1px; } .crosshair-aim::after{ width:1px; height:70px; } .create-panel-compact{ position:absolute; left:50%; top:45%; transform:translate(-50%,-45%); width:300px; max-height:74vh; overflow:auto; background: var(--sw-panel-bg, rgba(7, 10, 14, 0.78)); backdrop-filter: blur(18px); border-radius:18px; border:1px solid var(--sw-panel-border, rgba(56,189,248,0.5)); box-shadow: 0 20px 40px rgba(0,0,0,0.65), 0 0 30px rgba(56,189,248,0.25); padding: .4rem .5rem .55rem; color: var(--sw-text, #e5e7eb); } .create-panel-header{ display:flex; justify-content:space-between; align-items:center; font-size:.8rem; letter-spacing:.08em; text-transform:uppercase; color:var(--sw-text,#e5e7eb); margin-bottom:.25rem; } .create-panel-body{ display:flex; flex-direction:column; gap:.4rem; } .create-step-label{ font-size:.65rem; text-transform:uppercase; letter-spacing:.2em; color:var(--sw-muted,rgba(255,255,255,0.6)); } .create-panel-hero{ font-size:.85rem; color:var(--sw-text,#f8fafc); margin:0; } .create-panel-step{ display:flex; flex-direction:column; gap:.35rem; } .create-panel-note{ font-size:.75rem; color:var(--sw-muted,rgba(255,255,255,0.6)); margin:0; } .create-panel-field{ display:flex; flex-direction:column; gap:.25rem; font-size:.7rem; color:var(--sw-text,#e5e7eb); } .create-panel-selects select, .create-input-narrow{ background:rgba(255,255,255,0.04); color:var(--sw-text,#e5e7eb); border-radius:.65rem; border:1px solid var(--sw-panel-border,rgba(255,255,255,0.28)); padding:.35rem .55rem; } .create-panel-selects select{ min-height:36px; } .create-input-narrow::placeholder{ color:var(--sw-muted,rgba(255,255,255,0.6)); } .create-textarea-tight{ background:rgba(255,255,255,0.03); border:1px solid var(--sw-panel-border,rgba(255,255,255,0.28)); color:var(--sw-text,#e5e7eb); border-radius:.8rem; padding:.35rem .6rem; font-size:.75rem; min-height:100px; resize:none; } .create-panel-actions{ display:flex; justify-content:space-between; gap:.5rem; margin-top:.2rem; } .create-panel-btn{ flex:1; padding:.4rem .6rem; font-size:.7rem; border-radius:999px; border:1px solid var(--sw-panel-border,rgba(226,232,240,0.4)); background:var(--sw-chip-bg,rgba(15,23,42,0.75)); color:var(--sw-text,#e5e7eb); } .create-panel-btn.primary{ background:linear-gradient(120deg,#38bdf8,#22c55e); border-color:transparent; color:#0f172a; } .create-panel-hero, .create-panel-note, .create-hint-tight{ margin:0; } .create-link-preview-tight{ border-radius:12px; padding:.25rem; background:var(--sw-panel-bg-2,rgba(15,23,42,0.8)); border:1px solid var(--sw-panel-border,rgba(148,163,184,0.4)); } .create-post-header{ display:flex; justify-content:space-between; align-items:center; font-size:.8rem; margin-bottom:.4rem; color:#e5e7eb; } .create-mode-bar{ display:flex; flex-direction:column; gap:.35rem; margin-bottom:.4rem; } .create-mode-bar-label{ font-size:.66rem; text-transform:uppercase; letter-spacing:.18em; color:#94a3b8; } .create-mode-chips{ display:flex; gap:.35rem; flex-wrap:wrap; } .create-mode-chip{ flex:1 1 110px; display:flex; align-items:center; gap:.4rem; padding:.35rem .65rem; border-radius:999px; border:1px solid rgba(148, 163, 184, 0.4); background:rgba(15, 23, 42, 0.65); color:#e5e7eb; font-size:.7rem; cursor:pointer; transition:border-color .2s ease, box-shadow .2s ease; } .create-mode-chip.is-active{ border-color:transparent; background:linear-gradient(120deg,#38bdf8,#22c55e); color:#0f172a; box-shadow:0 10px 20px rgba(56,189,248,.25); } .create-mode-hint{ font-size:.72rem; color:#cbd5f5; line-height:1.3; min-height:1.1rem; } .mode-change-btn{ margin-top:.5rem; align-self:flex-start; } .mode-selector-widget{ position:absolute; left:50%; top:18%; transform:translate(-50%, -5%); pointer-events:auto; } .mode-selector-bg{ position:absolute; inset:0; border-radius:18px; background:linear-gradient(135deg,var(--sw-panel-bg-2,rgba(15,23,42,0.95)),var(--sw-panel-bg,rgba(15,23,42,0.8))); border:1px solid var(--sw-panel-border,rgba(56,189,248,0.4)); box-shadow:0 20px 30px rgba(0,0,0,0.45); } .mode-selector-chips{ position:relative; display:flex; flex-wrap:wrap; gap:.5rem; padding:.5rem; z-index:1; } .mode-selector-chip{ display:flex; align-items:center; gap:.35rem; padding:.5rem .8rem; border-radius:999px; border:1px solid var(--sw-panel-border,rgba(255,255,255,0.15)); background:var(--sw-panel-bg,rgba(15,23,42,0.9)); color:var(--sw-text,#e5e7eb); font-size:.7rem; cursor:pointer; transition:transform .15s ease, border-color .15s ease; } .mode-selector-chip.is-active{ border-color:rgba(56,189,248,0.8); background:rgba(56,189,248,0.25); } .mode-selector-chip i{ font-size:1rem; } .create-mode-details{ display:flex; flex-direction:column; gap:.2rem; font-size:.68rem; color:#9ca3af; } .create-stepper{ background:rgba(255,255,255,0.02); border-radius:999px; padding:.2rem .3rem; margin-bottom:.35rem; } .create-step{ font-size:.6rem; } .create-mode-detail-line{ display:flex; gap:.35rem; } .create-mode-detail-line::before{ content:"•"; font-size:.9rem; line-height:1.8; color:#38bdf8; } @media (max-width: 640px){ .create-mode-chips{ flex-wrap:nowrap; overflow-x:auto; } .create-mode-chip{ flex:0 0 auto; } } .create-mode-panel{ margin-bottom:.4rem; display:flex; flex-direction:column; gap:.35rem; } .create-mode-summary{ display:none; align-items:center; justify-content:space-between; gap:.35rem; border-radius:999px; border:1px solid rgba(148,163,184,0.4); padding:.35rem .6rem; background:rgba(15,23,42,0.5); font-size:.72rem; color:#e5e7eb; margin-bottom:.4rem; } .create-mode-summary-label{ display:flex; align-items:center; gap:.3rem; } .create-mode-summary-btn{ border-radius:999px; border:1px solid rgba(148,163,184,0.6); background:transparent; color:#e5e7eb; padding:.2rem .6rem; font-size:.65rem; cursor:pointer; } .create-mode-title{ font-size:.68rem; text-transform:uppercase; letter-spacing:.18em; color:#94a3b8; } .create-mode-chips{ display:flex; flex-wrap:wrap; gap:.4rem; } .create-mode-chip{ flex:1 1 110px; display:flex; align-items:center; gap:.35rem; padding:.35rem .6rem; border-radius:999px; border:1px solid rgba(148, 163, 184, 0.5); background:rgba(15,23,42,0.65); color:#e5e7eb; font-size:.7rem; cursor:pointer; transition:border-color .2s ease, box-shadow .2s ease; } .create-mode-chip:hover{ border-color:rgba(56,189,248,0.8); } .create-mode-chip.is-active{ border-color:transparent; background:linear-gradient(120deg,#38bdf8,#22c55e); color:#0f172a; box-shadow:0 6px 16px rgba(34,197,94,0.35); } .create-mode-icon{ font-size:0.9rem; } .create-mode-helper{ font-size:.72rem; color:#cbd5f5; line-height:1.25; min-height:1.2rem; } @media (max-width: 640px){ .create-mode-summary{ display:flex; } .create-mode-panel{ display:none; } .create-mode-panel.create-mode-visible-mobile{ display:flex; } } @media (max-width: 640px){ .create-post-panel{ bottom:3%; left:50%; transform:translateX(-50%); width:95%; max-width:100%; max-height:70vh; border-radius:14px; padding:.5rem .6rem .6rem; } .create-mode-chips{ gap:.3rem; flex-wrap:nowrap; overflow-x:auto; } .create-mode-chip{ flex:0 0 auto; } .create-mode-chip span{ font-size:.65rem; } .create-mode-title{ font-size:.6rem; } .create-stepper{ gap:.25rem; } .create-step-label{ font-size:.6rem; } .create-hint{ font-size:.65rem; } } .create-close{ background:transparent; border:none; color:#9ca3af; font-size:.85rem; padding:.1rem .3rem; cursor:pointer; } .create-stepper{ display:flex; justify-content:space-between; align-items:center; gap:.4rem; margin:.3rem 0 .35rem; } .create-step{ display:flex; align-items:center; gap:.35rem; color:#64748b; font-size:.68rem; text-transform:uppercase; letter-spacing:.08em; } .create-step-active{ color:#e2e8f0; } .create-step-dot{ width:18px; height:18px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:.65rem; background:#0f172a; border:1px solid #334155; color:#cbd5f5; } .create-step-current .create-step-dot{ background:linear-gradient(120deg, #38bdf8, #22c55e); border-color:transparent; color:#0f172a; font-weight:700; } .create-step-label{ font-weight:600; } .create-step-progress{ height:4px; background:rgba(148, 163, 184, 0.15); border-radius:999px; overflow:hidden; } .create-step-progress span{ display:block; height:100%; background:linear-gradient(90deg, #38bdf8, #22c55e); } .create-step-body{ margin-top:.35rem; padding-bottom:.4rem; } .create-row{ display:flex; align-items:center; gap:.5rem; margin-bottom:.4rem; } .create-link-row{ display:flex; align-items:center; gap:.5rem; margin-bottom:.35rem; } .create-link-input{ flex:1; margin-bottom:0; } .create-link-btn{ border-radius:999px; border:1px solid rgba(148, 163, 184, 0.4); background:#0f172a; color:#e2e8f0; padding:.35rem .7rem; font-size:.7rem; cursor:pointer; white-space:nowrap; } .create-link-btn:disabled{ opacity:.6; cursor:not-allowed; } .create-link-meta{ display:flex; gap:.6rem; font-size:.68rem; color:#94a3b8; margin-bottom:.35rem; } .create-link-error{ font-size:.68rem; color:#f87171; margin-bottom:.35rem; } .crosshair-label{ font-size:.75rem; color:#cbd5f5; } .create-hint{ margin-top:.2rem; font-size:.7rem; color:#94a3b8; } .create-row select{ flex:1; background:#020617; border-radius:999px; border:1px solid #4b5563; padding:.35rem .7rem; font-size:.75rem; color:#e5e7eb; } .create-input{ width:100%; margin-bottom:.3rem; border-radius:999px; border:1px solid #4b5563; padding:.35rem .7rem; background:#020617; color:#e5e7eb; font-size:.8rem; } .create-textarea{ width:100%; border-radius:.75rem; border:1px solid #4b5563; padding:.35rem .7rem; background:#020617; color:#e5e7eb; resize:none; font-size:.78rem; } .create-image-option{ margin-top:.4rem; } .create-checkbox{ display:flex; align-items:center; gap:.5rem; font-size:.72rem; color:#e5e7eb; cursor:pointer; } .create-image-panel{ display:flex; flex-direction:column; gap:.4rem; margin-top:.35rem; } .create-image-choice{ display:flex; gap:.5rem; align-items:center; margin:.25rem 0 .35rem; } .create-image-choice-btn{ flex:1; padding:.4rem .6rem; border-radius:999px; border:1px solid rgba(148, 163, 184, 0.35); background:rgba(15, 23, 42, 0.6); color:#e2e8f0; font-size:.72rem; font-weight:700; cursor:pointer; } .create-image-choice-btn.is-active{ border-color: rgba(56, 189, 248, 0.7); box-shadow: 0 0 0 2px rgba(56, 189, 248, 0.2); } .create-image-placeholder{ display:flex; align-items:center; gap:.6rem; padding:.6rem; border-radius:12px; border:1px dashed rgba(148, 163, 184, 0.4); background:rgba(15, 23, 42, 0.45); margin:.35rem 0 .65rem; } .create-image-placeholder-title{ font-size:.8rem; font-weight:800; color:#e2e8f0; } .create-image-placeholder-sub{ font-size:.7rem; color:#94a3b8; } .create-image-row{ display:flex; gap:.5rem; align-items:center; } .create-file-input{ display:none; } .create-file-btn{ display:inline-flex; align-items:center; gap:.4rem; padding:.35rem .7rem; border-radius:999px; border:1px solid rgba(148, 163, 184, 0.4); color:#e2e8f0; font-size:.7rem; background:rgba(15, 23, 42, 0.8); cursor:pointer; } .create-file-btn--camera{ border-color: rgba(56, 189, 248, 0.65); color:#e0f2fe; } .create-uploading{ font-size:.7rem; color:#38bdf8; } .create-image-gallery{ display:flex; flex-direction:column; gap:.3rem; margin-bottom:.4rem; } .create-gallery-title{ font-size:.7rem; text-transform:uppercase; letter-spacing:0.2em; color:rgba(226, 232, 240, 0.7); } .create-gallery-items{ display:flex; flex-wrap:nowrap; gap:.3rem; overflow-x:auto; padding-bottom:.25rem; } .create-gallery-item{ position:relative; width:54px; height:54px; } .create-gallery-item img{ width:100%; height:100%; object-fit:cover; border-radius:10px; border:1px solid rgba(148, 163, 184, 0.5); } .create-gallery-remove{ position:absolute; top:-6px; right:-6px; width:22px; height:22px; border-radius:50%; border:1px solid rgba(255,255,255,0.4); background:rgba(15,23,42,0.8); color:#f8fafc; font-size:12px; display:flex; align-items:center; justify-content:center; cursor:pointer; } .create-gallery-row{ display:flex; gap:0; margin-top:.1rem; overflow-x:auto; padding-bottom:.05rem; } .create-gallery-row figure{ margin:0; } .create-gallery-row--bottom{ margin-bottom:.2rem; } .create-gallery-static{ width:44px; height:44px; border-radius:12px; border:1px solid rgba(255,255,255,0.3); overflow:hidden; flex:0 0 auto; } .create-gallery-static img{ width:100%; height:100%; object-fit:cover; display:block; } .create-link-preview-card{ position:relative; border-radius:18px; background:rgba(15,23,42,0.85); border:1px solid rgba(148,163,184,0.4); box-shadow:0 20px 40px rgba(2,6,23,0.35); padding:.35rem; display:flex; flex-direction:column; gap:.45rem; margin-bottom:.5rem; } .create-link-preview-card img{ width:100%; height:140px; border-radius:14px; object-fit:cover; border:1px solid rgba(148,163,184,0.5); display:block; } .create-image-url-row{ display:flex; gap:.4rem; } .create-gallery-add{ flex:0 0 auto; padding:.35rem .65rem; border-radius:999px; border:1px solid rgba(56, 189, 248, 0.7); background:rgba(56, 189, 248, 0.15); color:#e0f2fe; font-size:.72rem; font-weight:700; cursor:pointer; } .create-link-preview-meta{ display:flex; flex-direction:column; gap:.2rem; font-size:.7rem; color:#cbd5f5; } .create-muted{ font-size:.7rem; color:#94a3b8; } .create-privacy-row{ display:flex; align-items:center; gap:.5rem; font-size:.7rem; color:#e5e7eb; } .create-privacy-row label{ white-space:nowrap; color:#cbd5f5; } .create-privacy-row select{ flex:1; background:#020617; border-radius:999px; border:1px solid #4b5563; padding:.3rem .6rem; font-size:.72rem; color:#e5e7eb; } .create-error{ margin-top:.25rem; font-size:.7rem; color:#f97373; } .create-actions{ margin-top:.6rem; display:flex; justify-content:space-between; align-items:center; gap:.5rem; } .create-actions-right{ display:flex; gap:.45rem; align-items:center; } .create-back{ background:transparent; border:1px solid rgba(148, 163, 184, 0.4); color:#cbd5f5; padding:.35rem .8rem; border-radius:999px; font-size:.72rem; cursor:pointer; } .create-back:disabled{ opacity:.45; cursor:not-allowed; } .create-review-card{ display:grid; grid-template-columns:72px 1fr; gap:.7rem; padding:.6rem; margin-top:.5rem; border-radius:12px; border:1px solid rgba(148, 163, 184, 0.35); background:rgba(2, 6, 23, 0.7); } .create-review-media{ width:72px; height:72px; border-radius:12px; overflow:hidden; background:rgba(30, 41, 59, 0.85); display:flex; align-items:center; justify-content:center; } .create-review-media img{ width:100%; height:100%; object-fit:cover; } .create-review-icon{ width:46px; height:46px; border-radius:14px; background:rgba(56, 189, 248, 0.2); display:flex; align-items:center; justify-content:center; color:#38bdf8; font-size:1.1rem; } .create-review-meta{ display:flex; flex-direction:column; gap:.2rem; } .create-review-title{ font-size:.85rem; color:#e2e8f0; font-weight:600; } .create-review-sub{ font-size:.7rem; color:#94a3b8; } .create-review-body{ font-size:.74rem; color:#cbd5f5; max-height:3.8em; overflow:hidden; } .create-review-visibility{ font-size:.68rem; color:#38bdf8; } body[data-theme="blue"] .create-post-panel{ background: rgba(12, 20, 60, 0.96); border-color: rgba(96, 165, 250, 0.95); box-shadow: 0 16px 40px rgba(2,8,26,.85), 0 0 24px rgba(56,189,248,.5); } body[data-theme="blue"] .create-row select, body[data-theme="blue"] .create-input, body[data-theme="blue"] .create-textarea, body[data-theme="blue"] .create-privacy-row select, body[data-theme="blue"] .create-link-btn{ background: #0b1b3b; border-color: rgba(96, 165, 250, 0.5); color:#e2e8f0; } body[data-theme="blue"] .create-step{ color:#94a3b8; } body[data-theme="blue"] .create-step-active{ color:#e2e8f0; } body[data-theme="blue"] .create-step-dot{ background:#0b1b3b; border-color: rgba(96, 165, 250, 0.6); color:#e2e8f0; } body[data-theme="blue"] .create-back{ border-color: rgba(96, 165, 250, 0.55); color:#e2e8f0; } body[data-theme="blue"] .create-review-card{ background: rgba(3, 10, 28, 0.7); border-color: rgba(96, 165, 250, 0.4); } body[data-theme="light"] .create-post-panel{ background: rgba(248, 250, 252, 0.98); border-color: rgba(148, 163, 184, 0.9); box-shadow: 0 18px 36px rgba(15, 23, 42, 0.15); color:#0f172a; } body[data-theme="light"] .create-row select, body[data-theme="light"] .create-input, body[data-theme="light"] .create-textarea, body[data-theme="light"] .create-privacy-row select, body[data-theme="light"] .create-link-btn{ background:#ffffff; border-color: rgba(148, 163, 184, 0.7); color:#0f172a; } body[data-theme="light"] .create-step{ color:#64748b; } body[data-theme="light"] .create-step-active{ color:#0f172a; } body[data-theme="light"] .create-step-dot{ background:#ffffff; border-color: rgba(148, 163, 184, 0.7); color:#334155; } body[data-theme="light"] .create-step-current .create-step-dot{ color:#0f172a; } body[data-theme="light"] .create-hint, body[data-theme="light"] .create-muted{ color:#64748b; } body[data-theme="light"] .create-back{ border-color: rgba(148, 163, 184, 0.7); color:#0f172a; } body[data-theme="light"] .create-review-card{ background: rgba(241, 245, 249, 0.95); border-color: rgba(148, 163, 184, 0.6); } body[data-theme="light"] .create-review-title{ color:#0f172a; } body[data-theme="light"] .create-review-body{ color:#334155; } .chip-pill{ background: rgba(15, 23, 42, 0.96); border: 1px solid rgba(148, 163, 184, 0.85); color: #e5e7eb; padding: 0.45rem 0.9rem; font-size: 0.78rem; border-radius: 999px; cursor: pointer; box-shadow: 0 5px 12px rgba(0,0,0,.7), 0 0 12px rgba(56,189,248,.35); } /* ===== SEARCHBAR TOP ===== */ .sw-searchbar{ pointer-events: auto; display:flex; align-items:center; gap: .55rem; padding: 0.42rem 0.70rem; border-radius: 999px; background: rgba(15, 23, 42, 0.92); border: 1px solid rgba(148, 163, 184, 0.85); box-shadow: 0 5px 12px rgba(0,0,0,.70), 0 0 14px rgba(56,189,248,.22); backdrop-filter: blur(10px); min-height: 38px; width: 100%; /* ✅ prend toute la largeur de son conteneur */ } .sw-searchbar:focus-within{ border-color: rgba(56,189,248,.85); box-shadow: 0 8px 18px rgba(0,0,0,.72), 0 0 18px rgba(56,189,248,.35); } .sw-search-icon{ font-size: 14px; opacity: .95; } .sw-search-input{ border: none; outline: none; background: transparent; color: #e5e7eb; font-size: 0.80rem; font-weight: 800; width: 100%; max-width: 100%; min-width: 0; } .sw-search-input::placeholder{ color: rgba(203, 213, 225, 0.88); font-weight: 800; } .sw-search-clear{ border: none; cursor: pointer; width: 28px; height: 28px; border-radius: 999px; background: rgba(2,6,23,.35); border: 1px solid rgba(148,163,184,.35); color: #e5e7eb; font-weight: 900; display:grid; place-items:center; } .sw-search-clear:active{ transform: scale(0.97); } /* Light theme */ body[data-theme="light"] .sw-searchbar{ background: rgba(255,255,255,0.92); border-color: rgba(148, 163, 184, 0.85); box-shadow: 0 8px 18px rgba(0,0,0,.10); } body[data-theme="light"] .sw-search-input{ color:#0B1220; } body[data-theme="light"] .sw-search-input::placeholder{ color: rgba(91, 103, 122, 0.92); } body[data-theme="light"] .sw-search-clear{ background: rgba(255,255,255,.85); color:#0B1220; border-color: rgba(148,163,184,.55); } /* ===== TOP ROW: search + 2 icônes ===== */ /* Ligne entière */ .sw-top-row{ display:flex; align-items:center; justify-content:space-between; gap:0.75rem; width:100%; } /* ✅ Search = prend tout, icônes juste ce qu’il faut */ .sw-top-search{ flex: 1 1 auto; max-width: 100%; } /* bloc des 2 boutons à droite, taille compacte */ .map-top-actions{ flex: 0 0 auto; display:flex; flex-direction:row; align-items:center; justify-content:flex-end; gap:0.5rem; } /* boutons icône */ .map-action-btn{ display:flex; flex-direction:column; align-items:center; justify-content:center; padding:0.35rem 0.55rem; border-radius:999px; border:1px solid rgba(255,255,255,0.15); background:rgba(5, 25, 60, 0.25); backdrop-filter:blur(8px); box-shadow:0 6px 14px rgba(0,0,0,0.35); font-size:0.7rem; line-height:1.1; cursor:pointer; white-space:nowrap; } .map-action-btn:disabled{ opacity:0.45; cursor:default; } .map-action-icon{ font-size:1.05rem; margin-bottom:0.15rem; } .map-action-label{ font-size:0.6rem; text-transform:uppercase; letter-spacing:0.04em; } /* petits écrans : on compresse un peu les boutons */ @media (max-width:480px){ .sw-top-row{ gap:0.5rem; } .map-action-btn{ padding:0.3rem 0.45rem; } } /* === CACHER LES BOUTONS DE ZOOM MAPLIBRE (+/-) === */ .maplibregl-ctrl-zoom-in, .maplibregl-ctrl-zoom-out{ display:none !important; } /* FIX FINAL : Texte blanc sur boutons MY SPOT / NEW WIRE (force le texte) */ .map-action-btn, .map-action-btn * { color: #e5e7eb !important; /* blanc forcé */ } /* FIX FINAL : Texte noir sous thème Blue (comme Light) */ body[data-theme="blue"] .map-action-btn, body[data-theme="blue"] .map-action-btn * { color: #0b1220 !important; /* noir forcé */ } /* Light theme : texte noir si besoin */ body[data-theme="light"] .map-action-btn, body[data-theme="light"] .map-action-btn * { color: #0b1220 !important; } /* FIX FINAL : Supprime le spot blanc MapLibre (cercle blanc en bas à droite) */ .maplibregl-ctrl-bottom-right, .maplibregl-ctrl-group { display: none !important; } .maplibregl-ctrl { background: transparent !important; box-shadow: none !important; } .map-overlay.mode-selector-widget{ pointer-events:none; } /* ===== FLOATING CREATE UI ===== */ .create-floating-ui{ --cf-bg: rgba(15,20,30,0.92); --cf-border: rgba(100,116,139,0.25); --cf-text: #f1f5f9; --cf-muted: #cbd5e1; --cf-accent: #e2e8f0; --cf-glow: rgba(226,232,240,0.08); --cf-input: rgba(30,41,59,0.9); position:fixed; bottom:50%; left:50%; transform:translate(-50%, 50%); z-index:900; /* Below modals (9999) but above filters/content */ display:flex; flex-direction:column; gap:6px; width:min(320px, calc(100vw - 24px)); pointer-events:none; } body[data-theme="light"] .create-floating-ui{ --cf-bg: rgba(255,255,255,0.94); --cf-border: rgba(148,163,184,0.3); --cf-text: #1e293b; --cf-muted: #475569; --cf-accent: #334155; --cf-glow: rgba(51,65,85,0.08); --cf-input: rgba(241,245,249,0.95); } body[data-theme="blue"] .create-floating-ui{ --cf-bg: rgba(15,23,42,0.95); --cf-border: rgba(51,65,85,0.5); --cf-text: #f1f5f9; --cf-muted: #cbd5e1; --cf-accent: #e2e8f0; --cf-glow: rgba(226,232,240,0.06); --cf-input: rgba(30,41,59,0.98); } /* Close button - inline top right */ .cfloat-close{ position:absolute; top:-40px; right:0; width:32px; height:32px; border-radius:8px; background: var(--cf-bg); border:1px solid var(--cf-border); color: var(--cf-muted); font-size:0.85rem; display:flex; align-items:center; justify-content:center; cursor:pointer; pointer-events:auto; backdrop-filter:blur(20px) saturate(1.2); -webkit-backdrop-filter:blur(20px) saturate(1.2); box-shadow: 0 2px 8px rgba(0,0,0,0.1); transition:all 0.2s; } .cfloat-close:hover{ background:rgba(239,68,68,0.15); border-color:rgba(239,68,68,0.5); color:#ef4444; } /* Box base - stacked */ .cfloat-box{ background: var(--cf-bg); border:1px solid var(--cf-border); border-radius:12px; padding:10px 14px; backdrop-filter:blur(20px) saturate(1.2); -webkit-backdrop-filter:blur(20px) saturate(1.2); pointer-events:auto; color: var(--cf-text); animation: cfloat-in 0.2s ease-out; box-shadow: 0 4px 16px rgba(0,0,0,0.15); } @keyframes cfloat-in{ from{ opacity:0; transform:translateY(8px); } to{ opacity:1; transform:translateY(0); } } /* Step indicator */ .cfloat-step{ display:flex; align-items:center; justify-content:center; gap:8px; font-weight:600; font-size:0.9rem; padding:6px 10px; } .cfloat-step i{ color: var(--cf-accent); font-size:1rem; } /* Hint */ .cfloat-hint{ text-align:center; padding:10px 14px; } .cfloat-hint p{ margin:0; font-size:0.9rem; line-height:1.4; color: var(--cf-muted); } /* Category */ .cfloat-category label{ display:block; font-size:0.7rem; font-weight:600; text-transform:uppercase; letter-spacing:0.05em; color: var(--cf-muted); margin-bottom:6px; } .cfloat-selects{ display:flex; gap:6px; } .cfloat-selects select{ flex:1; background: var(--cf-input); color: var(--cf-text); border:1px solid var(--cf-border); border-radius:8px; padding:8px 10px; font-size:0.85rem; cursor:pointer; } .cfloat-selects select:focus{ outline:none; border-color: var(--cf-accent); } /* Title */ .cfloat-title label{ display:block; font-size:0.7rem; font-weight:600; text-transform:uppercase; letter-spacing:0.05em; color: var(--cf-muted); margin-bottom:6px; } .cfloat-title input{ width:100%; background: var(--cf-input); color: var(--cf-text); border:1px solid var(--cf-border); border-radius:8px; padding:10px 12px; font-size:0.9rem; } .cfloat-title input:focus{ outline:none; border-color: var(--cf-accent); } .cfloat-meta{ display:block; margin-top:4px; font-size:0.7rem; color: var(--cf-accent); } .cfloat-error{ display:block; margin-top:4px; font-size:0.7rem; color:#ef4444; } /* Preview - compact */ .cfloat-preview{ display:flex; align-items:center; gap:10px; padding:6px; } .cfloat-preview img{ width:60px; height:45px; object-fit:cover; border-radius:6px; flex-shrink:0; } .cfloat-preview span{ font-size:0.8rem; color: var(--cf-muted); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; } /* Description */ .cfloat-desc label{ display:block; font-size:0.7rem; font-weight:600; text-transform:uppercase; letter-spacing:0.05em; color: var(--cf-muted); margin-bottom:6px; } .cfloat-desc textarea{ width:100%; background: var(--cf-input); color: var(--cf-text); border:1px solid var(--cf-border); border-radius:8px; padding:8px 10px; font-size:0.85rem; resize:none; height:60px; } .cfloat-desc textarea:focus{ outline:none; border-color: var(--cf-accent); } /* Image */ .cfloat-image{ padding:6px 10px; } .cfloat-img-toggle{ display:flex; gap:6px; margin-bottom:8px; } .cfloat-img-toggle button{ flex:1; padding:6px 8px; border-radius:6px; border:1px solid var(--cf-border); background:transparent; color: var(--cf-muted); font-size:0.8rem; cursor:pointer; transition:all 0.15s; } .cfloat-img-toggle button.active{ background: rgba(255,255,255,0.15); border-color: var(--cf-text); color: var(--cf-text); } .cfloat-img-toggle button i{ margin-right:3px; } .cfloat-img-upload{ display:flex; gap:6px; } .cfloat-img-upload label{ flex:1; padding:8px 6px; border-radius:6px; border:1px dashed var(--cf-border); background: var(--cf-input); color: var(--cf-muted); font-size:0.7rem; text-align:center; cursor:pointer; transition:all 0.15s; } .cfloat-img-upload label:hover{ border-color: var(--cf-accent); color: var(--cf-accent); } .cfloat-img-upload label i{ display:block; font-size:1rem; margin-bottom:2px; } /* Gallery thumbnails */ .cfloat-gallery{ display:flex; flex-wrap:wrap; gap:6px; margin-top:8px; } .cfloat-gallery-item{ position:relative; width:60px; height:60px; border-radius:8px; overflow:hidden; border:1px solid var(--cf-border); } .cfloat-gallery-item img{ width:100%; height:100%; object-fit:cover; } .cfloat-gallery-item button{ position:absolute; top:2px; right:2px; width:20px; height:20px; border-radius:50%; border:none; background:rgba(0,0,0,0.6); color:#fff; font-size:0.65rem; cursor:pointer; display:flex; align-items:center; justify-content:center; } .cfloat-gallery-item button:hover{ background:rgba(239,68,68,0.8); } /* Error box */ .cfloat-error-box{ display:flex; align-items:center; gap:8px; background:rgba(239,68,68,0.15); border-color:rgba(239,68,68,0.4); color:#fca5a5; } .cfloat-error-box i{ color:#ef4444; font-size:0.9rem; } .cfloat-error-box span{ font-size:0.8rem; line-height:1.3; } /* Navigation */ .cfloat-nav{ display:flex; gap:8px; padding:6px 10px; } .cfloat-btn{ flex:1; padding:10px 16px; border-radius:8px; border:1px solid var(--cf-border); background: var(--cf-input); color: var(--cf-text); font-size:0.85rem; font-weight:600; cursor:pointer; display:flex; align-items:center; justify-content:center; gap:6px; transition:all 0.15s; } .cfloat-btn:disabled{ opacity:0.4; cursor:not-allowed; } .cfloat-btn:hover:not(:disabled){ border-color: var(--cf-accent); } .cfloat-btn-primary{ background: var(--cf-accent); border-color: var(--cf-accent); color:#0f172a; } .cfloat-btn-primary:hover:not(:disabled){ filter:brightness(1.1); } /* ===== MODE SELECTOR V2 - IMPROVED DESIGN ===== */ .mode-selector-backdrop{ position:fixed; inset:0; background:rgba(0,0,0,0.5); z-index:9998; backdrop-filter:blur(4px); } .mode-selector-v2{ --ms-bg: rgba(8,12,24,0.95); --ms-glass: rgba(15,23,42,0.85); --ms-border: rgba(56,189,248,0.3); --ms-text: #f1f5f9; --ms-text-muted: #94a3b8; --ms-accent: #38bdf8; --ms-glow: rgba(56,189,248,0.25); position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); pointer-events:auto; background: var(--ms-bg); backdrop-filter: blur(20px); border-radius:18px; border:1px solid var(--ms-border); box-shadow: 0 25px 60px rgba(0,0,0,0.5), 0 0 40px var(--ms-glow); padding:1rem; min-width:260px; z-index:9999; } body[data-theme="light"] .mode-selector-v2{ --ms-bg: rgba(248,250,252,0.97); --ms-glass: rgba(255,255,255,0.9); --ms-border: rgba(148,163,184,0.5); --ms-text: #1e293b; --ms-text-muted: #475569; --ms-accent: #0ea5e9; --ms-glow: rgba(14,165,233,0.15); } body[data-theme="blue"] .mode-selector-v2{ --ms-bg: rgba(15,23,42,0.97); --ms-glass: rgba(30,41,59,0.9); --ms-border: rgba(71,85,105,0.5); --ms-text: #e2e8f0; --ms-text-muted: #94a3b8; --ms-accent: #60a5fa; --ms-glow: rgba(96,165,250,0.15); } .mode-selector-v2 .mode-selector-bg{ display:none; } .mode-selector-close{ position:absolute; top:0.6rem; right:0.6rem; width:28px; height:28px; border-radius:50%; border:1px solid var(--ms-border); background: var(--ms-glass); color: var(--ms-text-muted); font-size:0.9rem; display:flex; align-items:center; justify-content:center; cursor:pointer; transition:all 0.2s ease; z-index:10; } .mode-selector-close:hover{ background:rgba(239,68,68,0.15); border-color:rgba(239,68,68,0.5); color:#f87171; transform:scale(1.05); } .mode-selector-title{ text-align:center; font-size:1rem; font-weight:700; color: var(--ms-text); margin-bottom:0.8rem; padding-right:1.5rem; } .mode-selector-v2 .mode-selector-chips{ display:flex; flex-direction:column; gap:0.5rem; padding:0; } .mode-selector-v2 .mode-selector-chip{ display:flex; align-items:center; gap:0.7rem; padding:0.7rem 1rem; border-radius:12px; border:1px solid var(--ms-border); background: var(--ms-glass); color: var(--ms-text); font-size:0.9rem; font-weight:500; cursor:pointer; transition:all 0.2s ease; text-align:left; } .mode-selector-v2 .mode-selector-chip i{ font-size:1.1rem; width:22px; text-align:center; color: var(--ms-accent); } .mode-selector-v2 .mode-selector-chip:hover{ border-color: var(--ms-accent); transform:translateX(3px); } .mode-selector-v2 .mode-selector-chip.is-active{ background: var(--ms-glow); border-color: var(--ms-accent); } @media (max-width: 360px){ .mode-selector-v2{ min-width:auto; width:calc(100vw - 24px); padding:0.8rem; } .mode-selector-v2 .mode-selector-chip{ padding:0.6rem 0.8rem; font-size:0.85rem; } }