@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--navy:#06172b;--navy-2:#0e2a43;--cyan:#18b5b9;--cyan-dark:#087b83;--sand:#f4f1e9;--paper:#fff;--ink:#10283d;--muted:#607384;--line:#dce5e9;--success:#16775b;--success-bg:#e8f7f1;--danger:#a73535;--danger-bg:#fff0ef;--warning:#9a6700;--shadow:0 16px 45px rgba(6,23,43,.08);font:16px/1.5 'DM Sans',system-ui,sans-serif;color:var(--ink);background:#f4f7f7}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:0;background:#f4f7f7;color:var(--ink)}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}a{color:var(--cyan-dark)}button,.button{min-height:44px;border:0;border-radius:10px;padding:11px 17px;background:var(--navy);color:#fff;font-weight:700;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:transform .16s ease,background .16s ease,opacity .16s ease}button:hover,.button:hover{background:var(--navy-2);transform:translateY(-1px)}button:disabled,.button[aria-disabled=true]{opacity:.55;cursor:wait;transform:none}.button.secondary,button.secondary{background:#e8eff1;color:var(--ink)}button.ghost,.button.ghost{background:transparent;color:var(--ink);border:1px solid var(--line)}button.danger{background:var(--danger)}button.small,.button.small{min-height:38px;padding:8px 12px;font-size:.85rem}input,select,textarea{width:100%;min-height:46px;padding:11px 12px;border:1px solid #b9c9d0;border-radius:9px;background:#fff;color:var(--ink)}textarea{min-height:100px;resize:vertical}input:focus,select:focus,textarea:focus{border-color:var(--cyan-dark);outline:3px solid rgba(24,181,185,.18)}:focus-visible{outline:3px solid #f0b83d;outline-offset:3px}label{display:grid;gap:7px;font-weight:700;font-size:.92rem}.field-help,.muted{color:var(--muted)}.field-help{font-size:.8rem;font-weight:500}.eyebrow{margin:0 0 8px;color:var(--cyan-dark);font-size:.75rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase}h1,h2,h3,p{overflow-wrap:anywhere}h1,h2,h3,.brand{font-family:Manrope,sans-serif}h1{font-size:clamp(1.8rem,4vw,2.7rem);line-height:1.12;margin:0 0 10px}h2{font-size:1.35rem;margin:0}h3{font-size:1rem;margin:0}.skip-link{position:fixed;top:-80px;left:12px;z-index:100;background:#fff;padding:10px}.skip-link:focus{top:12px}

.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:258px;background:var(--navy);color:#fff;padding:26px 18px calc(26px + env(safe-area-inset-bottom));display:flex;flex-direction:column;z-index:30}.brand{display:flex;align-items:center;gap:11px;color:#fff;text-decoration:none;font-size:1.25rem;font-weight:800;padding:0 10px 28px}.brand img,.top-brand img{width:38px;height:38px;border-radius:10px}.sidebar nav{display:grid;gap:6px}.sidebar nav a{min-height:46px;padding:11px 13px;border-radius:10px;color:#c6d2dc;text-decoration:none;font-weight:650;display:flex;align-items:center;gap:10px}.sidebar nav a:hover,.sidebar nav a.active{color:#fff;background:#17344e}.nav-icon{width:22px;text-align:center}.sidebar-bottom{margin-top:auto;display:grid;gap:8px;padding-top:20px}.sidebar-bottom a{color:#c6d2dc;text-decoration:none;min-height:44px;padding:10px}.app-main{margin-left:258px;min-height:100vh}.topbar{min-height:84px;padding:18px clamp(18px,4vw,48px);background:rgba(255,255,255,.94);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:16px;position:sticky;top:0;z-index:20;backdrop-filter:blur(12px)}.topbar-copy{min-width:0}.topbar-copy strong{display:block}.account{font-size:.82rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-menu{display:none;width:46px;padding:0;background:var(--navy)}.content{max-width:1400px;margin:auto;padding:36px clamp(18px,4vw,48px) 70px}.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:28px}.page-head p{margin:7px 0 0;color:var(--muted)}.view[hidden]{display:none!important}.panel{background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:24px;box-shadow:0 4px 20px rgba(6,23,43,.035);margin-bottom:22px}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:22px}.metric-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:20px;min-height:128px;position:relative;overflow:hidden}.metric-card:after{content:"";position:absolute;width:62px;height:62px;border-radius:50%;right:-20px;top:-18px;background:rgba(24,181,185,.11)}.metric-card span{display:block;color:var(--muted);font-size:.82rem;font-weight:700}.metric-card strong{display:block;font-size:clamp(1.8rem,4vw,2.5rem);margin-top:12px;line-height:1}.metric-card small{display:block;color:var(--muted);margin-top:10px}.activity-list{list-style:none;padding:0;margin:0;display:grid}.activity-list li{display:grid;grid-template-columns:12px 1fr auto;gap:12px;align-items:start;padding:14px 0;border-bottom:1px solid var(--line)}.activity-list li:last-child{border:0}.activity-dot{width:9px;height:9px;border-radius:50%;background:var(--cyan);margin-top:7px}.activity-list time{font-size:.82rem;color:var(--muted)}

.toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.search{position:relative;flex:1;min-width:230px}.search input{padding-left:40px}.search:before{content:"⌕";position:absolute;left:14px;top:9px;color:var(--muted);font-size:1.25rem}.table-wrap{width:100%;overflow-x:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:14px 12px;border-bottom:1px solid var(--line);vertical-align:middle}th{font-size:.73rem;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}tbody tr:last-child td{border-bottom:0}.cell-main{display:block;font-weight:750}.cell-sub{display:block;color:var(--muted);font-size:.78rem;margin-top:2px}.status{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:5px 9px;font-size:.75rem;font-weight:800;background:var(--success-bg);color:var(--success)}.status:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.status.inactive{background:var(--danger-bg);color:var(--danger)}.actions{display:flex;gap:7px;flex-wrap:wrap}.url-actions{margin-top:8px}.empty{padding:35px;text-align:center;color:var(--muted);border:1px dashed #bdccd2;border-radius:12px}.empty.compact-empty{padding:20px}.code-link{font:600 .78rem ui-monospace,SFMono-Regular,Consolas,monospace;overflow-wrap:anywhere;color:var(--cyan-dark)}.compact-url{display:block;max-width:min(100%,280px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.overview-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(280px,.6fr);gap:22px}.overview-grid>.panel{min-width:0}.alert-list{list-style:none;padding:0;margin:0;display:grid;gap:10px}.alert-list li{padding:13px 14px;border-left:4px solid #e1aa25;border-radius:9px;background:#fff8e8}.alert-list strong,.alert-list span{display:block}.alert-list span{margin-top:3px;color:var(--muted);font-size:.82rem}

.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.span-2{grid-column:1/-1}.form-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:22px}.quick-create{border-top:4px solid var(--cyan)}.quick-create-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ready-result{display:grid;gap:16px}.ready-result .form-actions{margin-top:0}.ready-result .notice{margin:0}.ready-url{display:block;padding:15px;border:1px solid #9bd5d6;border-radius:11px;background:#f4fbfb;font:700 .9rem ui-monospace,SFMono-Regular,Consolas,monospace}.client-table td:nth-child(2) button{margin-top:8px}.client-table .code-link{display:block;max-width:300px}.card-labels{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.notice{padding:14px 16px;border-radius:11px;background:#e9f5f5;color:#185f63;font-size:.88rem}.notice.warning{background:#fff6dd;color:#765400}.google-resolver{display:grid;gap:14px;padding:18px;border:1px solid var(--line);border-radius:13px;background:#f9fbfb}.google-resolver h3,.google-resolver p{margin:0}.resolver-input{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end}.google-candidates{display:grid;gap:10px}.candidate-summary{font-weight:750;color:var(--ink)}.google-candidate{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center;padding:14px;border:1px solid var(--line);border-radius:11px;background:#fff}.google-candidate.selected{border-color:var(--cyan-dark);box-shadow:0 0 0 2px rgba(24,181,185,.15)}.google-candidate .code-link{display:block;margin-top:5px}.google-resolver input[readonly]{background:#eef4f5;color:#315064}.advanced-settings{margin-top:18px;border-top:1px solid var(--line);padding-top:16px}.advanced-settings summary{cursor:pointer;font-weight:800;color:var(--cyan-dark)}.advanced-settings-grid{margin-top:16px}.toggle-label{display:flex;grid-template-columns:auto 1fr;align-items:center}.toggle-label input{width:22px;min-height:22px}.message{position:fixed;right:24px;bottom:24px;z-index:60;max-width:min(420px,calc(100vw - 32px));padding:14px 18px;border-radius:11px;background:var(--success);color:#fff;box-shadow:var(--shadow);transform:translateY(120px);opacity:0;transition:.22s;pointer-events:none}.message.show{transform:none;opacity:1}.message.error{background:var(--danger)}.loading{display:flex;align-items:center;gap:12px;padding:30px;color:var(--muted)}.spinner{width:22px;height:22px;border:3px solid #d4e3e5;border-top-color:var(--cyan-dark);border-radius:50%;animation:spin .75s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.overlay{display:none}

.detail-hero{background:linear-gradient(135deg,var(--navy),#123b58);color:#fff}.detail-hero p{color:#c9d6df}.detail-meta{display:flex;gap:20px;flex-wrap:wrap;margin-top:18px}.detail-meta span{color:#bfcdd7;font-size:.82rem}.detail-meta strong{display:block;color:#fff;font-size:1rem}.card-list,.tracking-list{display:grid;gap:12px}.tracking-result{border-color:#9bd5d6}.tracking-source{padding:14px 16px;margin-bottom:14px;border-radius:11px;background:#e9f5f5}.tracking-label{display:block;color:var(--muted);font-size:.75rem;font-weight:800;margin:0 0 4px}.tracking-card{border:1px solid var(--line);border-radius:13px;padding:17px;display:grid;grid-template-columns:minmax(190px,1.25fr) minmax(190px,1.15fr) minmax(125px,.7fr) auto;gap:16px;align-items:center}.tracking-card>.actions{justify-content:flex-end}.tracking-card .status{margin-top:8px}.nfc-card{border:1px solid var(--line);border-radius:13px;padding:17px;display:grid;grid-template-columns:minmax(180px,1.2fr) minmax(150px,1fr) auto;gap:16px;align-items:center}.nfc-card .actions{justify-content:flex-end}.danger-zone{border-color:#e2a5a5;background:#fffafa}.danger-zone .panel-head{margin-bottom:0}.danger-zone p{margin:6px 0 0;color:var(--danger)}.danger-text{color:var(--danger)}.danger-list{padding-left:22px;color:var(--muted)}.danger-list li{margin:7px 0}dialog{border:0;border-radius:16px;padding:0;width:min(560px,calc(100vw - 28px));max-height:90vh;box-shadow:var(--shadow)}dialog::backdrop{background:rgba(6,23,43,.66)}.dialog-body{padding:25px}.dialog-head{display:flex;justify-content:space-between;gap:14px;margin-bottom:20px}.dialog-close{min-width:44px;width:44px;padding:0;border-radius:50%}

.client-shell{min-height:100vh}.client-header{height:76px;background:var(--navy);color:#fff;padding:0 clamp(16px,5vw,64px);display:flex;align-items:center;gap:16px}.top-brand{display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none;font-weight:800;font-size:1.15rem}.client-header .account{margin-left:auto;color:#c7d3dc;max-width:260px}.client-header .button{background:#183650}.client-main{max-width:1180px;margin:auto;padding:42px clamp(16px,4vw,36px) 70px}.period-control{display:flex;align-items:center;gap:10px}.chart{height:210px;display:flex;align-items:flex-end;gap:7px;padding-top:25px;border-bottom:1px solid var(--line);overflow:hidden}.chart-item{flex:1;min-width:2px;height:100%;display:flex;align-items:flex-end;position:relative}.chart-bar{display:block;width:100%;min-height:3px;background:linear-gradient(180deg,var(--cyan),var(--cyan-dark));border-radius:5px 5px 0 0}.chart-item:hover:after,.chart-item:focus:after{content:attr(data-label);position:absolute;bottom:calc(var(--bar-height) + 8px);left:50%;transform:translateX(-50%);background:var(--navy);color:#fff;border-radius:7px;padding:5px 8px;font-size:.72rem;white-space:nowrap;z-index:2}.chart-summary{margin:12px 0 0;color:var(--muted);font-size:.82rem}.google-box{display:flex;gap:16px;align-items:flex-start}.google-icon{width:44px;height:44px;border-radius:12px;background:var(--sand);display:grid;place-items:center;font-weight:800;color:#4285f4;flex:none}

.auth-page{min-height:100vh;background:radial-gradient(circle at 80% 10%,rgba(24,181,185,.16),transparent 34%),var(--navy);display:grid;grid-template-columns:minmax(0,1fr) minmax(380px,520px);padding:clamp(18px,5vw,72px);gap:50px;color:#fff}.auth-story{align-self:center;max-width:650px}.auth-story .brand{padding:0 0 52px}.auth-story h1{font-size:clamp(2.4rem,6vw,4.8rem);max-width:720px}.auth-story h1 em{font-style:normal;color:#61d3d3}.auth-story>p{color:#c1ced7;font-size:1.08rem;max-width:540px}.auth-points{display:grid;gap:12px;margin-top:34px}.auth-points span{display:flex;align-items:center;gap:10px;color:#d5e0e6}.auth-points span:before{content:"✓";color:#61d3d3;font-weight:800}.auth-card{align-self:center;background:#fff;color:var(--ink);border-radius:22px;padding:clamp(25px,5vw,44px);box-shadow:0 28px 80px rgba(0,0,0,.22)}.auth-card h2{font-size:1.75rem;margin-bottom:8px}.auth-card .button{width:100%;margin:22px 0 14px}.auth-card .error-box{background:var(--danger-bg);color:var(--danger);padding:12px;border-radius:9px}.auth-card footer{text-align:center;color:var(--muted);font-size:.78rem;margin-top:20px}.auth-card footer a{color:var(--muted)}[hidden]{display:none!important}

@media(max-width:1080px){.metric-grid{grid-template-columns:repeat(2,1fr)}.overview-grid{grid-template-columns:1fr}.nfc-card,.tracking-card{grid-template-columns:1fr 1fr}.nfc-card .actions,.tracking-card>.actions{grid-column:1/-1;justify-content:flex-start}}
@media(max-width:820px){.sidebar{transform:translateX(-105%);transition:transform .22s}.sidebar.open{transform:none}.app-main{margin-left:0}.mobile-menu{display:inline-flex}.overlay{display:block;position:fixed;inset:0;background:rgba(6,23,43,.5);z-index:25;opacity:0;pointer-events:none;transition:.22s}.overlay.show{opacity:1;pointer-events:auto}.topbar{padding-top:calc(14px + env(safe-area-inset-top));min-height:78px}.content{padding-top:25px}.auth-page{grid-template-columns:1fr}.auth-story{display:none}.auth-card{max-width:520px;width:100%;justify-self:center}.client-header{height:auto;min-height:72px;padding-top:calc(10px + env(safe-area-inset-top));padding-bottom:10px;flex-wrap:wrap}.client-header .account{order:3;width:100%;max-width:none;margin:0}.form-grid{grid-template-columns:1fr}.span-2{grid-column:auto}}
@media(max-width:620px){.content,.client-main{padding-left:14px;padding-right:14px}.page-head{align-items:flex-start;flex-direction:column}.page-head .button,.page-head button{width:100%}.metric-grid{grid-template-columns:1fr 1fr;gap:10px}.metric-card{padding:16px;min-height:114px}.metric-card strong{font-size:1.8rem}.panel{padding:17px;border-radius:13px}.panel-head{align-items:flex-start;flex-direction:column}.danger-zone button{width:100%}.toolbar,.search{width:100%}.card-labels{grid-template-columns:1fr}.resolver-input,.google-candidate{grid-template-columns:1fr}.resolver-input button,.google-candidate button{width:100%}.table-wrap{overflow:visible}table.responsive,table.responsive tbody,table.responsive tr,table.responsive td{display:block;width:100%}table.responsive thead{display:none}table.responsive tr{border:1px solid var(--line);border-radius:12px;margin-bottom:12px;padding:9px 13px;background:#fff}table.responsive td{border:0;padding:8px 0;display:grid;grid-template-columns:minmax(105px,38%) 1fr;gap:10px}table.responsive td:before{content:attr(data-label);color:var(--muted);font-size:.72rem;font-weight:800;text-transform:uppercase;padding-top:2px}table.responsive td.actions-cell{display:block}.actions-cell .actions{margin-top:5px}.compact-url{max-width:100%}.nfc-card,.tracking-card{grid-template-columns:1fr}.nfc-card .actions,.tracking-card>.actions{grid-column:auto}.tracking-actions button,.tracking-actions .button{width:100%}.auth-page{padding:14px}.auth-card{padding:24px 19px}.activity-list li{grid-template-columns:12px 1fr}.activity-list time{grid-column:2}.period-control{width:100%}.period-control select{flex:1}.chart{height:170px;gap:4px}.google-box{display:block}.google-icon{margin-bottom:12px}}
@media(max-width:390px){.metric-grid{grid-template-columns:1fr}.topbar-copy .account{max-width:190px}.client-header .button{padding:10px 12px}.actions button,.actions .button{flex:1}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}

.auth-card form{display:grid;gap:14px}.auth-card form label{color:var(--ink)}.auth-card form .button{margin:8px 0 0}.auth-register{margin-top:22px;border-top:1px solid var(--line);padding-top:18px}.auth-register summary{cursor:pointer;color:var(--cyan-dark);font-weight:800;font-size:.9rem}.auth-register p{font-size:.82rem;margin:14px 0}.auth-register form{margin-top:10px}.auth-register .button{margin-top:2px}.auth-card .error-box{margin:14px 0}
/* Profil du commerce : indicateurs, graphique des scans et suivi des avis */
.num{text-align:right;font-variant-numeric:tabular-nums}
th.num{text-align:right}
.page-actions{justify-content:flex-end}
.metric-grid.profile-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}
.metric-card strong.metric-date{font-size:1.25rem;line-height:1.3}
.warning-text,.ok-text{display:block;font-size:.76rem;font-weight:700;margin-top:4px}
.warning-text{color:var(--warning)}
.ok-text{color:var(--success)}
.pill{display:inline-block;margin-top:4px;padding:2px 8px;border-radius:999px;border:1px solid var(--line);color:var(--muted);font-size:.72rem;font-weight:700}
.scan-chart{position:relative;min-height:230px}
.scan-chart svg,.immersion .scan-chart svg{display:block;width:100%;max-width:100%;height:auto;overflow:visible;fill:currentColor;stroke:none}
.scan-chart-grid{stroke:var(--line);stroke-width:1}
.scan-chart-baseline{stroke:var(--muted);stroke-width:1;opacity:.6}
.scan-chart-tick{fill:var(--muted);font-size:11px;font-variant-numeric:tabular-nums}
.scan-chart-value{fill:var(--ink);font-size:12px;font-weight:700}
.scan-chart-bar{fill:#159c85}
.scan-chart-day.active .scan-chart-bar{fill:#2bbfa5}
.scan-chart-hit{fill:transparent;cursor:default}
.scan-chart-tooltip{position:absolute;transform:translate(-50%,-100%);pointer-events:none;background:var(--navy-2,#102c3a);color:var(--ink);border:1px solid var(--line);border-radius:8px;padding:6px 10px;font-size:.8rem;white-space:nowrap;z-index:3;box-shadow:0 8px 24px rgba(0,0,0,.25)}
.scan-chart-tooltip strong,.scan-chart-tooltip span{display:block}
.scan-chart-tooltip span{color:var(--muted)}
.scan-chart-empty{position:absolute;inset:0 0 30px 34px;display:grid;place-items:center;margin:0;color:var(--muted);font-size:.9rem;pointer-events:none}
.scan-chart-table{margin-top:12px}
.scan-chart-table summary{cursor:pointer;color:var(--muted);font-size:.85rem;font-weight:700}
.scan-chart-table table{margin-top:8px;max-width:360px}
.scan-chart-table td,.scan-chart-table th{padding:6px 10px}
#review-tracking .notice{margin-bottom:10px}
.snapshot-form{margin:18px 0 8px;padding:16px;border:1px solid var(--line);border-radius:12px}
.snapshot-form h3,.history-title{margin:0 0 12px}
.history-title{margin-top:22px}
.snapshot-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;align-items:start}
.snapshot-form .form-actions{margin-top:14px}
@media(max-width:1080px){.metric-grid.profile-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.snapshot-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.page-actions{width:100%}.page-actions .button{flex:1}.snapshot-grid{grid-template-columns:1fr}table.responsive td.num{text-align:left}}
@media(max-width:390px){.metric-grid.profile-metrics{grid-template-columns:1fr}}
.client-table td.num .cell-sub{white-space:nowrap}
.tracking-card>*{min-width:0}
.immersion .alert-list li{background:rgba(255,208,121,.08);border-left-color:#e1aa25}
.immersion .alert-list strong{color:var(--ink)}
.tracking-list>*,table.responsive td>*{min-width:0;max-width:100%}
.immersion .search input{padding-left:40px}
.google-candidate>*,.google-resolver>*,.quick-create-grid>*{min-width:0}
