
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
:root{
  --bg:#f6f5ff;--sur:#fff;--sur2:#f6f5ff;--sur3:#ece8ff;
  --bdr:#e8e6f5;--bdr2:#dcd7f6;
  --tx:#111633;--tx2:#747996;--tx3:#a8accb;
  --acc:#5b35f2;--acc2:#7257ff;--acc-bg:#f3f0ff;--acc-fg:#fff;
  --orange:#f59e0b;--orange-bg:#fef3e2;
  --grn:#0f9f6e;--grn-bg:#e3f7ee;
  --amb:#b8780a;--amb-bg:#fdf1dc;
  --blu:#2563eb;--blu-bg:#e8f0fe;
  --red:#dc3a52;--red-bg:#fdeaee;
  --prp:#7c3aed;--prp-bg:#f1ebfe;
  --r:20px;--rs:14px;
  --safe-top:env(safe-area-inset-top,0px);
  --safe-bot:env(safe-area-inset-bottom,0px);
  --safe-left:env(safe-area-inset-left,0px);
  --safe-right:env(safe-area-inset-right,0px);
  --app-h:100dvh; /* recalculé par JS sur Android */
}
html,body{height:100%;background:var(--bg);color:var(--tx);font-family:'Inter',-apple-system,"Helvetica Neue",Arial,sans-serif;font-size:14px;line-height:1.5}

/* ── LAYOUT DESKTOP ── */
.shell{display:flex;flex-direction:column;height:var(--app-h)}
.shell-main{display:grid;grid-template-columns:248px 1fr;flex:1;min-height:0;overflow:hidden}
.rail{background:var(--sur);border-right:1px solid var(--bdr);display:flex;flex-direction:column;padding:18px 14px;overflow-y:auto}
.bot-nav{display:none}
.body{display:flex;flex-direction:column;overflow:hidden;position:relative}
.content{padding:20px 22px;overflow-y:auto;flex:1;width:100%;box-sizing:border-box}

/* ── LAYOUT MOBILE ── */
@media(max-width:768px){
  .shell{display:flex;flex-direction:column;height:var(--app-h);overflow:hidden}
  .shell-main{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}
  .rail{display:none}
  .bot-nav{display:flex;flex-shrink:0;background:var(--sur);border-top:1px solid var(--bdr);padding-bottom:var(--safe-bot)}
  .body{flex:1;overflow:hidden;display:flex;flex-direction:column;min-height:0}
  .topbar{padding-top:max(14px, calc(10px + var(--safe-top)))}
  .content{padding:10px 12px 8px;flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch}

  /* ── Dropzone compacte ── */
  .dropzone{padding:14px 12px;margin-bottom:8px}
  .dz-ico{font-size:26px;margin-bottom:3px}
  .dz-title{font-size:13px;margin-bottom:1px}
  .dz-sub{font-size:11px}
  .dz-hint{display:none}

  /* ── Résultat scan : photo à gauche, infos à droite (même logique desktop) ── */
  .rc-top{flex-direction:row!important}
  .rc-photo{width:88px!important;height:88px!important;min-width:88px;flex-shrink:0;border-right:1px solid var(--bdr)!important;border-bottom:none!important}
  .rc-photo img{width:88px!important;height:88px!important}
  .rc-info{padding:7px 10px!important;gap:3px!important}
  .rc-name{font-size:13px!important;line-height:1.3}
  .rc-desc{font-size:11px!important;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .dbm{display:none!important}
  .sugg{padding:6px 10px}
  .sugg-lbl{display:none}
  .sugg-pills .pill{font-size:10px!important;padding:2px 7px!important}

  /* ── Formulaire : 2 colonnes denses ── */
  .rc-fields{grid-template-columns:1fr 1fr!important;gap:5px!important;padding:7px 10px!important}
  .field label{font-size:10px!important;margin-bottom:2px}
  .field input,.field select{font-size:12px!important;padding:5px 7px!important}
  .field textarea{font-size:11px!important;padding:4px 7px!important;min-height:32px!important}
  .field.s3,.s3{grid-column:span 2!important}
  /* Le bloc assurance reste piloté par JS même sur mobile */

  /* ── Pied du formulaire ── */
  .rc-foot{padding:6px 10px!important;gap:5px!important}
  .rc-foot .btn{font-size:11px!important;padding:5px 9px!important}
  .rc-foot-hint{display:none}
  .pbar{margin-bottom:3px}

  /* ── Setup card ── */
  .setup-card{margin-bottom:6px}
  .backup-row{padding:6px 10px;flex-wrap:wrap;gap:5px}

  /* ── Home : grille 2x2 + 5e centré ── */
  .quick{grid-template-columns:repeat(2,1fr)!important;gap:8px!important}
  .quick-card{padding:11px 10px!important}
  .quick-ico{width:34px!important;height:34px!important;border-radius:10px!important;font-size:16px!important}
  .quick-card b{font-size:12px!important}
  .quick-card p{font-size:10px!important;margin-top:1px;display:none}
  #qc-vault{grid-column:auto}

  /* ── Grille inventaire ── */
  .sgrid{grid-template-columns:repeat(2,1fr)!important}
  .scan-btns{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:8px}
  .edit-grid{grid-template-columns:1fr!important}
  .ef.full{grid-column:1!important}
  .modal{width:100%!important;max-width:100%!important;max-height:calc(100vh - 190px);border-radius:20px!important}
  .overlay{align-items:flex-start!important;padding-top:calc(90px + env(safe-area-inset-top,0px));padding-bottom:calc(110px + env(safe-area-inset-bottom,0px))}
  .modal-handle{display:block}
  #modal-body{max-height:calc(100vh - 230px);padding:16px;padding-bottom:160px}
}

/* ── iPhone très compact (<390px) ── */
@media(max-width:390px){
  .content{padding:8px 10px 6px}
  .dropzone{padding:10px 8px;margin-bottom:6px}
  .rc-photo{width:76px!important;height:76px!important;min-width:76px}
  .rc-photo img{width:76px!important;height:76px!important}
  .rc-fields{gap:4px!important;padding:5px 8px!important}
  .quick{gap:6px!important}
}

/* ── RAIL ── */
.logo-wrap{display:flex;align-items:center;gap:10px;padding:4px 6px 18px;border-bottom:1px solid var(--bdr);margin-bottom:14px}
.logo-box{width:38px;height:38px;border-radius:13px;display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0;overflow:hidden;background:#ffffff}
.logo-box img{width:100%;height:100%;object-fit:contain}
.logo-name{font-size:16px;font-weight:800;letter-spacing:-.4px}
.logo-sub{font-size:10px;color:var(--tx3)}
.rnav{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:var(--rs);cursor:pointer;font-size:13px;color:var(--tx2);border:none;background:none;width:100%;text-align:left;transition:all .15s;font-family:inherit;margin-bottom:2px;font-weight:500}
.rnav:hover{background:var(--sur2);color:var(--tx)}
.rnav.on{background:var(--acc);color:var(--acc-fg);font-weight:600;box-shadow:0 6px 16px rgba(91,53,242,.3)}
.rnav .ico{font-size:17px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center}
.ico svg,.bot-ico svg,.quick-ico svg{display:block;width:1.15em;height:1.15em;flex-shrink:0}
.bot-ico-logo{width:24px!important;height:24px!important;border-radius:7px;overflow:hidden}
.bot-ico-logo img{width:100%;height:100%;object-fit:cover;display:block}
.nbadge{margin-left:auto;font-size:10px;background:var(--sur3);color:var(--tx2);padding:1px 7px;border-radius:20px}
.rnav.on .nbadge{background:rgba(255,255,255,.22);color:#fff}
.rsec{font-size:10px;color:var(--tx3);padding:14px 12px 4px;text-transform:uppercase;letter-spacing:.08em;font-weight:700}
.cat-row{display:flex;align-items:center;gap:8px;padding:6px 12px;border-radius:var(--rs);cursor:pointer;font-size:12px;color:var(--tx2);border:none;background:none;width:100%;text-align:left;font-family:inherit;transition:background .12s}
.cat-row:hover{background:var(--sur2)}
.cdot{width:7px;height:7px;border-radius:50%;flex-shrink:0}
.ccount{margin-left:auto;font-size:10px;color:var(--tx3)}
.rail-foot{display:none;margin-top:auto;padding:14px 12px 0;border-top:1px solid var(--bdr)}
.rf{display:flex;justify-content:space-between;font-size:11px;color:var(--tx2);padding:3px 0}
.rf strong{color:var(--tx);font-weight:600}

/* ── BOTTOM NAV ── */
.bot-btn{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;padding:8px 4px;border:none;background:none;cursor:pointer;font-family:inherit;color:var(--tx3);font-size:10px;position:relative;font-weight:500}
.bot-btn.on{color:var(--acc)}
.bot-ico{font-size:20px;line-height:1;width:34px;height:26px;display:flex;align-items:center;justify-content:center;border-radius:10px;transition:background .15s}
.bot-btn.on .bot-ico{background:var(--acc-bg)}
.bot-badge{position:absolute;top:2px;right:calc(50% - 22px);background:#e24b4a;color:#fff;font-size:9px;font-weight:700;min-width:16px;height:16px;border-radius:8px;display:none;align-items:center;justify-content:center;padding:0 3px}

/* ── TOPBAR ── */
.topbar{background:var(--sur);border-bottom:1px solid var(--bdr);padding:12px 22px;display:flex;align-items:center;gap:10px;flex-shrink:0;position:relative;z-index:999;width:100%;box-sizing:border-box}
.topbar-title{font-size:17px;font-weight:800;letter-spacing:-.3px;flex:1}
.save-indicator{font-size:11px;color:var(--grn);display:none;align-items:center;gap:4px}
.save-indicator.show{display:flex}

/* ── BUTTONS ── */
.btn{display:inline-flex;align-items:center;gap:6px;padding:9px 16px;border-radius:var(--rs);font-size:13px;font-weight:600;cursor:pointer;border:1px solid var(--bdr2);background:var(--sur);color:var(--tx);transition:all .15s;font-family:inherit;white-space:nowrap;-webkit-appearance:none}
.btn:hover{background:var(--sur2)}
.btn:active{transform:scale(.97)}
.btn-dark{background:linear-gradient(135deg,var(--acc),var(--acc2));color:var(--acc-fg);border-color:transparent;box-shadow:0 6px 16px rgba(91,53,242,.3)}
.btn-dark:hover{background:var(--acc2);opacity:1}
.btn-grn{background:var(--grn-bg);color:var(--grn);border-color:transparent}
.btn-red{background:var(--red-bg);color:var(--red);border-color:transparent}
.btn-danger{background:var(--red);color:#fff;border-color:transparent;box-shadow:0 6px 16px rgba(220,58,82,.24)}
.btn-danger:hover{background:#c72f45;color:#fff}
.account-head{display:flex;align-items:center;gap:12px;margin-bottom:16px}
.account-av{width:48px;height:48px;border-radius:16px;background:var(--acc);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:18px;flex-shrink:0}
.account-title{font-size:18px;font-weight:800;letter-spacing:-.3px}
.account-sub{font-size:12px;color:var(--tx2);word-break:break-all}
.account-actions{display:flex;gap:8px;justify-content:space-between;align-items:center;flex-wrap:wrap;margin-top:14px;padding-top:14px;border-top:1px solid var(--bdr)}
.account-msg{font-size:12px;margin-top:10px;padding:8px 11px;border-radius:var(--rs);display:none}
.account-msg.ok{display:block;background:var(--grn-bg);color:var(--grn)}
.account-msg.err{display:block;background:var(--red-bg);color:var(--red)}
.btn-sm{padding:6px 12px;font-size:12px}
.btn-block{width:100%;justify-content:center}

/* ── VIEWS ── */
.view{display:none}.view.on{display:block}

/* ── SETUP ── */
.setup-card{background:var(--sur);border:1px solid var(--bdr);border-radius:var(--r);overflow:hidden;margin-bottom:16px;box-shadow:0 8px 22px rgba(22,22,60,.05)}
.setup-sec{padding:13px 15px;border-bottom:1px solid var(--bdr)}
.setup-sec:last-child{border-bottom:none}
.setup-title{font-size:13px;font-weight:600;margin-bottom:9px;display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.irow{display:flex;gap:8px;align-items:center;margin-bottom:7px}
.irow:last-child{margin-bottom:0}
.irow input{flex:1;min-width:0;padding:7px 10px;border-radius:var(--rs);border:1px solid var(--bdr2);font-size:12px;background:var(--sur2);color:var(--tx);-webkit-appearance:none}
.irow input:focus{outline:none;border-color:var(--acc);background:#fff}
.sbadge{display:inline-flex;align-items:center;gap:5px;font-size:11px;padding:3px 9px;border-radius:20px;font-weight:500;margin-top:5px}
.sb-ok{background:var(--grn-bg);color:var(--grn)}
.sb-err{background:var(--red-bg);color:var(--red)}

/* ── BACKUP BANNER ── */
.backup-row{display:flex;gap:8px;flex-wrap:wrap;padding:11px 15px;background:var(--sur2);border-top:1px solid var(--bdr)}
.backup-info{font-size:11px;color:var(--tx3);padding:4px 0;flex:1}

/* ── DROP ZONE ── */
.dropzone{border:2px dashed var(--bdr2);border-radius:var(--r);padding:36px 20px;text-align:center;cursor:pointer;background:var(--sur);transition:all .2s;margin-bottom:16px}
.dropzone:hover,.dropzone.over{border-color:var(--acc);background:var(--acc-bg)}
.dz-ico{font-size:38px;margin-bottom:10px;opacity:.35;display:block}
.dz-title{font-size:15px;font-weight:700;margin-bottom:4px}
.dz-sub{font-size:12px;color:var(--tx2)}
.dz-hint{font-size:11px;color:var(--tx3);margin-top:5px}

/* ── PROGRESS ── */
.pbar{height:3px;background:var(--sur2);border-radius:2px;overflow:hidden;margin-bottom:6px;display:none}
.pbar-fill{height:100%;background:var(--acc);animation:pba 1.8s ease-in-out infinite}
@keyframes pba{0%{width:0;margin-left:0}50%{width:55%;margin-left:20%}100%{width:0;margin-left:100%}}
.mlbl{font-size:11px;color:var(--tx3);margin-bottom:12px;display:none;text-align:center}

/* ── RESULT CARD ── */
.rcard{background:var(--sur);border:1px solid var(--bdr);border-radius:var(--r);overflow:hidden;display:none;margin-bottom:14px;box-shadow:0 8px 22px rgba(22,22,60,.05)}
.rc-top{display:flex;border-bottom:1px solid var(--bdr)}
.rc-photo{width:160px;height:160px;flex-shrink:0;overflow:hidden;display:flex;align-items:center;justify-content:center;background:var(--sur2);border-right:1px solid var(--bdr);font-size:48px;color:var(--tx3)}
.rc-photo img{width:160px;height:160px;object-fit:cover;display:block}
.rc-info{flex:1;padding:14px;display:flex;flex-direction:column;gap:8px;min-width:0}
.rc-tr{display:flex;align-items:flex-start;gap:8px;flex-wrap:wrap}
.rc-name{font-size:17px;font-weight:800;line-height:1.25;flex:1}
.st{display:inline-flex;align-items:center;gap:4px;font-size:11px;padding:3px 9px;border-radius:20px;font-weight:600;white-space:nowrap;flex-shrink:0}
.st-load{background:var(--blu-bg);color:var(--blu)}
.st-ok{background:var(--grn-bg);color:var(--grn)}
.st-err{background:var(--red-bg);color:var(--red)}
.crumb{font-size:11px;color:var(--tx3)}
.tags{display:flex;gap:5px;flex-wrap:wrap}
.tag{font-size:11px;padding:3px 9px;border-radius:20px;font-weight:600;white-space:nowrap}
.t-dk{background:var(--acc);color:var(--acc-fg)}
.t-grn{background:var(--grn-bg);color:var(--grn)}
.t-amb{background:var(--amb-bg);color:var(--amb)}
.t-prp{background:var(--prp-bg);color:var(--prp)}
.t-gy{background:var(--sur2);color:var(--tx2);border:1px solid var(--bdr)}
.rc-desc{font-size:12px;color:var(--tx2);line-height:1.65;background:var(--sur2);padding:10px 12px;border-radius:var(--rs)}
.dbm{background:var(--blu-bg);border:1px solid rgba(37,99,235,.18);border-radius:var(--rs);padding:10px 13px;display:none}
.dbm-title{font-size:10px;font-weight:700;color:var(--blu);margin-bottom:5px;text-transform:uppercase;letter-spacing:.05em}
.dbm-body{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.dbm-name{font-size:13px;font-weight:500;flex:1}
.dbm-brands{font-size:11px;color:var(--tx3)}
.dbm-price{font-size:14px;font-weight:700;color:var(--grn)}
.sugg{padding:12px 15px;border-top:1px solid var(--bdr);display:none}
.sugg-lbl{font-size:10px;font-weight:700;color:var(--tx2);margin-bottom:7px;text-transform:uppercase;letter-spacing:.06em}
.sugg-pills{display:flex;flex-wrap:wrap;gap:5px}
.spill{font-size:12px;padding:5px 11px;border-radius:20px;border:1px solid var(--bdr2);background:var(--sur);cursor:pointer;color:var(--tx2);transition:all .15s;font-family:inherit;-webkit-appearance:none}
.spill:hover,.spill:active{background:var(--acc);color:var(--acc-fg);border-color:transparent}
.spill.on{background:var(--acc);color:var(--acc-fg);border-color:transparent;font-weight:600}
.rc-fields{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;padding:14px;border-top:1px solid var(--bdr)}
.field label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--tx3);display:block;margin-bottom:3px}
.field input,.field select,.field textarea{width:100%;padding:7px 10px;border-radius:var(--rs);border:1px solid var(--bdr2);background:var(--sur2);font-size:12px;color:var(--tx);font-family:inherit;-webkit-appearance:none}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--acc);background:#fff}
.field textarea{resize:vertical;min-height:56px}
.s2{grid-column:span 2}.s3{grid-column:span 3}
.rc-foot{display:flex;gap:8px;justify-content:flex-end;align-items:center;padding:11px 15px;border-top:1px solid var(--bdr);background:var(--sur2);flex-wrap:wrap}
.rc-foot-hint{flex:1;font-size:11px;color:var(--tx3);min-width:100px}

/* ── HOME / QUICK ACTIONS ── */
.quick{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-bottom:22px}
.quick-card{background:var(--sur);border:1px solid var(--bdr);border-radius:var(--r);padding:18px;cursor:pointer;transition:all .15s;box-shadow:0 8px 22px rgba(22,22,60,.05)}
.quick-card:hover{border-color:var(--acc2);transform:translateY(-2px);box-shadow:0 10px 26px rgba(91,53,242,.12)}
.quick-card:active{transform:scale(.97)}
.quick-ico{width:42px;height:42px;border-radius:13px;display:flex;align-items:center;justify-content:center;font-size:20px;margin-bottom:12px}
.quick-card b{display:block;font-size:13px;margin-bottom:3px;font-weight:700}
.quick-card p{margin:0;font-size:11px;color:var(--tx2);line-height:1.4}
.section-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
.section-head h3{margin:0;font-size:15px;font-weight:800;letter-spacing:-.2px;color:var(--tx)}
@media(max-width:768px){.quick{grid-template-columns:repeat(2,1fr)}}

/* ── STATS ── */
.sgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px}
.scard{background:var(--sur);border:1px solid var(--bdr);border-radius:var(--r);padding:15px 16px;box-shadow:0 8px 22px rgba(22,22,60,.05)}
.scard-lbl{font-size:11px;color:var(--tx2);margin-bottom:4px;font-weight:500}
.scard-val{font-size:23px;font-weight:800;letter-spacing:-.5px}

/* ── CHIPS ── */
.chips{display:flex;gap:6px;flex-wrap:nowrap;overflow-x:auto;margin-bottom:14px;padding-bottom:2px;-webkit-overflow-scrolling:touch}
.chips::-webkit-scrollbar{display:none}
.chip{font-size:11px;padding:5px 13px;border-radius:20px;border:1px solid var(--bdr2);background:var(--sur);cursor:pointer;color:var(--tx2);transition:all .15s;font-family:inherit;white-space:nowrap;flex-shrink:0;-webkit-appearance:none;font-weight:500}
.chip.on{background:var(--acc);color:var(--acc-fg);border-color:transparent;font-weight:600}
.frow{display:flex;gap:8px;margin-bottom:14px;flex-wrap:wrap}
.fsrch{flex:1;min-width:130px;padding:9px 12px;border-radius:var(--rs);border:1px solid var(--bdr2);background:var(--sur);font-size:12px;color:var(--tx);font-family:inherit;-webkit-appearance:none}
.fsrch:focus{outline:none;border-color:var(--acc)}
.fsel{padding:9px 11px;border-radius:var(--rs);border:1px solid var(--bdr2);background:var(--sur);font-size:12px;color:var(--tx);font-family:inherit;-webkit-appearance:none}

/* ── GRID ── */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:12px}
@media(max-width:480px){.grid{grid-template-columns:repeat(2,1fr)}}
.hscroll{display:flex;gap:12px;overflow-x:auto;overflow-y:hidden;padding-bottom:6px;-webkit-overflow-scrolling:touch;scrollbar-width:thin}
.hscroll::-webkit-scrollbar{height:6px}
.hscroll::-webkit-scrollbar-thumb{background:var(--bdr2);border-radius:99px}
.hscroll::-webkit-scrollbar-track{background:transparent}
.hscroll>.card{flex:0 0 148px;width:148px}
@media(max-width:480px){.hscroll>.card{flex:0 0 132px;width:132px}}
.card{background:var(--sur);border:1px solid var(--bdr);border-radius:var(--r);overflow:hidden;cursor:pointer;transition:all .15s;box-shadow:0 8px 22px rgba(22,22,60,.05)}
.card:hover{border-color:var(--acc2);transform:translateY(-2px);box-shadow:0 10px 26px rgba(91,53,242,.16)}
.card:active{transform:scale(.97)}
.card-img{width:100%;height:108px;object-fit:cover;display:block}
.card-ph{width:100%;height:108px;background:var(--sur2);display:flex;align-items:center;justify-content:center;font-size:28px}
.card-body{padding:10px 11px}
.card-name{font-size:12px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:3px}
.card-foot{display:flex;justify-content:space-between;font-size:11px;color:var(--tx2)}
.card-price{font-weight:800;color:var(--tx)}
.sdot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--grn);margin-right:3px;vertical-align:middle}
.empty{text-align:center;padding:48px 20px;color:var(--tx3)}
.empty-ico{font-size:42px;margin-bottom:10px}
.empty p{font-size:13px;line-height:1.6}

/* ── MODAL ── */
.overlay{display:none;position:fixed;inset:0;z-index:9999;background:rgba(17,22,51,.5);align-items:flex-start;justify-content:center;padding-top:calc(80px + env(safe-area-inset-top,0px));padding-left:12px;padding-right:12px;padding-bottom:calc(90px + env(safe-area-inset-bottom,0px));overflow-y:auto;-webkit-overflow-scrolling:touch}
.overlay.on{display:flex}
.modal{background:var(--sur);border-radius:22px;padding:0;width:min(900px,96vw);max-width:calc(100vw - 32px);max-height:calc(100vh - 180px);overflow:hidden;position:relative;box-shadow:0 24px 64px rgba(17,22,51,.22);display:flex;flex-direction:column;margin:auto}
.modal-x{position:absolute;top:12px;right:12px;background:rgba(255,255,255,.92);border:none;cursor:pointer;font-size:18px;color:var(--tx2);line-height:1;z-index:20;width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px rgba(17,22,51,.12)}
.modal-handle{display:none;width:36px;height:4px;background:var(--sur3);border-radius:2px;margin:10px auto 0;flex-shrink:0}
#modal-body{overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;max-height:calc(100vh - 220px);padding:20px;padding-bottom:120px;flex:1;min-height:0;overscroll-behavior:contain}
.modal-sticky-head{position:sticky;top:-20px;margin:-20px -20px 14px;padding:14px 50px 12px 20px;background:var(--sur);z-index:10;display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--bdr)}
@media(max-width:768px){.modal-sticky-head{top:-16px;margin:-16px -16px 14px;padding:14px 50px 12px 16px}}
/* ── UNIFORMISATION UI/UX — overlay/modale partagés par les fenêtres "custom"
   (Premium, Badges, Déplacement d'objet, Revente). Purement visuel : reprend
   les mêmes dimensions/comportement que .overlay/.modal/.modal-x existants,
   sans toucher à ceux-ci ni à la logique JS qui les alimente. ──────────────── */
.nf-modal-ov{position:fixed;inset:0;z-index:9999;background:rgba(17,22,51,.5);display:flex;align-items:flex-start;justify-content:center;padding-top:calc(80px + env(safe-area-inset-top,0px));padding-left:12px;padding-right:12px;padding-bottom:calc(90px + env(safe-area-inset-bottom,0px));overflow-y:auto;-webkit-overflow-scrolling:touch}
.nf-modal{background:var(--sur);color:var(--tx);border-radius:22px;padding:0;width:min(520px,96vw);max-width:calc(100vw - 32px);max-height:calc(100vh - 180px);overflow:hidden;position:relative;box-shadow:0 24px 64px rgba(17,22,51,.22);display:flex;flex-direction:column;margin:auto}
.nf-modal-x{position:absolute;top:12px;right:12px;background:rgba(255,255,255,.92);border:none;cursor:pointer;font-size:18px;color:var(--tx2);line-height:1;z-index:20;width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px rgba(17,22,51,.12)}
.nf-modal-head{padding:20px 50px 12px 20px;flex-shrink:0;border-bottom:1px solid var(--bdr)}
.nf-modal-body{overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;flex:1;min-height:0;padding:16px 20px;overscroll-behavior:contain}
.nf-modal-foot{flex-shrink:0;padding:12px 20px calc(12px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--bdr);background:var(--sur);display:flex;gap:8px}
.nf-modal-foot .btn{flex:1}
@media(max-width:768px){
  .nf-modal-ov{align-items:flex-start!important;padding-top:calc(90px + env(safe-area-inset-top,0px));padding-bottom:calc(110px + env(safe-area-inset-bottom,0px))}
  .nf-modal{width:100%!important;max-width:100%!important;max-height:calc(100vh - 190px);border-radius:20px!important}
}

/* ── FOOTER ACTIONS FORMULAIRE D'ÉDITION — Annuler / Sauvegarder ── */
/* z-index élevé + pointer-events:auto explicite : garantit que les boutons
   restent cliquables même si un élément du formulaire (preuves coffre-fort,
   image, etc.) se chevauche visuellement pendant le scroll interne du modal. */
.edit-actions-bar{display:flex;gap:8px;justify-content:flex-end;position:sticky;bottom:0;background:var(--sur);padding:12px 0 4px;margin-top:6px;border-top:1px solid var(--bdr);z-index:30;pointer-events:auto}
.edit-actions-bar .btn{pointer-events:auto;cursor:pointer;position:relative;z-index:31}

/* ══════════════════════════════════════════════════════════════
   VUES INTÉGRÉES — FICHE OBJET & ÉDITION
   Ancrées DANS .body (frères de .content), jamais en plein écran :
   elles ne recouvrent ni la Top Bar, ni .rail, ni .bot-nav.
   Hauteur calculée en dur (et non en flex:1 sur 100%) pour garantir
   que la barre d'actions du bas reste TOUJOURS visible, sans flotter
   ni bouger pendant le scroll — le scroll est strictement confiné à
   .item-scroll-content / .edit-scroll-content.
   ══════════════════════════════════════════════════════════════ */
.item-detail-view,
.item-edit-view{
  position:absolute;inset:0;z-index:50;background:var(--sur,#fff);
  display:none;
  flex-direction:column;
  /* La hauteur est déjà donnée par inset:0 (relatif à .body, déjà borné
     entre la Top Bar et la bot-nav par le shell flex existant). Une
     height:calc(100vh - Npx) ici est FAUSSE : 100vh est le viewport
     entier, pas la hauteur réelle de .body, qui varie selon la topbar
     et la safe-area. Le panneau débordait alors sous .body, qui a
     overflow:hidden — ce qui rognait silencieusement la barre d'actions
     en bas (boutons invisibles/non cliquables, sans erreur JS).
     NE PAS remettre de height fixe ici. */
  overflow:hidden;
}
.item-detail-view.on,
.item-edit-view.on{display:flex}

/* Header fixe : retour + titre + (photo miniature) + bouton Modifier */
.fp-header{flex-shrink:0;display:flex;align-items:center;gap:12px;padding:14px 20px;background:var(--sur);border-bottom:1px solid var(--bdr);box-shadow:0 2px 12px rgba(17,22,51,.04);position:relative;z-index:2}
.fp-header-back{flex-shrink:0;width:38px;height:38px;border-radius:50%;border:1px solid var(--bdr2);background:var(--sur2);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:18px;color:var(--tx)}
.fp-header-back:active{transform:scale(.94)}
.fp-header-thumb{width:38px;height:38px;border-radius:10px;object-fit:cover;flex-shrink:0;border:1px solid var(--bdr)}
/* Titre des annonces : visible sur toutes les fiches, même avec un nom long */
.fp-header-title{
  flex:1;
  min-width:0;
  display:block;
  font-size:15px;
  font-weight:800;
  letter-spacing:-.2px;
  line-height:1.25;
  color:var(--tx,#111827) !important;
  white-space:normal;
  overflow:visible;
  text-overflow:unset;
  word-break:break-word;
  overflow-wrap:anywhere;
  max-height:none;
}
.fp-header-edit{flex-shrink:0}

/* Contenu scrollable — SEULE zone qui scrolle, jamais le bandeau d'actions */
.item-scroll-content,
.edit-scroll-content{
  flex:1;
  overflow-y:auto;
  overflow-x:hidden;
  -webkit-overflow-scrolling:touch;
  padding:16px;
  padding-bottom:24px;
}
.fp-body-inner{max-width:820px;margin:0 auto;width:100%}

/* Barre d'actions : position:relative (jamais sticky/fixed), hors du flux scrollable,
   donc ne peut ni flotter ni se cacher ni bouger pendant le scroll. */
.item-actions,
.edit-actions{
  flex-shrink:0;
  display:flex;
  gap:10px;
  padding:12px;
  background:var(--sur,#fff);
  border-top:1px solid rgba(0,0,0,.08);
  padding-bottom:calc(12px + env(safe-area-inset-bottom,0px));
}
.item-actions .btn,
.edit-actions .btn,
.item-actions .item-action-btn{
  flex:1;
}

@media(max-width:768px){
  .fp-header{padding:calc(12px + var(--safe-top,0px)) 14px 12px;align-items:flex-start}
  .fp-header-back,.fp-header-thumb,.fp-header-edit{margin-top:2px}
  .item-scroll-content,
  .edit-scroll-content{padding:14px}
  .item-actions,
  .edit-actions{
    position:relative;
    bottom:auto;
  }
}

/* Formulaire d'édition : champs en pleine largeur, lisibles partout */
.fp-edit-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.fp-edit-grid .ef.full{grid-column:1/-1}
@media(max-width:560px){.fp-edit-grid{grid-template-columns:1fr}.fp-edit-grid .ef{grid-column:1}}
.fp-photo-zone{width:100%;aspect-ratio:16/10;max-height:280px;border-radius:var(--r);overflow:hidden;margin-bottom:16px;background:var(--sur2)}
.fp-photo-zone img{width:100%;height:100%;object-fit:cover;display:block}

/* Aucun scroll horizontal possible, sur aucun device */
.item-detail-view,.item-edit-view,.fp-header,.item-scroll-content,.edit-scroll-content,.item-actions,.edit-actions{max-width:100%;overflow-x:hidden}

/* ── ACTIONS ANNONCE — fiche détail (Modifier/Supprimer/Vendre/Déplacer) ── */
.item-actions-bar{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-bottom:14px}
.item-action-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:10px 6px;border-radius:var(--rs);border:1px solid var(--bdr2);background:var(--sur2);cursor:pointer;font-family:inherit;font-size:10.5px;font-weight:700;color:var(--tx);text-align:center;line-height:1.2;min-height:56px}
.item-action-btn:active{transform:scale(.97)}
.item-action-ico{font-size:17px}
.item-action-btn.act-edit{border-color:#bcd6f7;background:#eaf3ff;color:#1d4ed8}
.item-action-btn.act-delete{border-color:#f3b9b9;background:#fdeded;color:#b91c1c}
.item-action-btn.act-sell{border-color:#bfe3c5;background:#f0f9f1;color:#1c7a39}
.item-action-btn.act-move{border-color:#f0d896;background:#fff8e8;color:#a06700}
@media(max-width:420px){.item-actions-bar{gap:5px}.item-action-btn{font-size:9.5px;padding:8px 4px;min-height:50px}.item-action-ico{font-size:15px}}

/* ── ACTIONS RAPIDES — carte inventaire ── */
.card{position:relative}
.card-quick-btn{position:absolute;top:6px;right:6px;width:28px;height:28px;border-radius:50%;background:rgba(17,22,51,.55);color:#fff;border:none;font-size:14px;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:5;backdrop-filter:blur(2px)}
.card-quick-menu{position:absolute;top:38px;right:6px;background:var(--sur);border:1px solid var(--bdr);border-radius:var(--rs);box-shadow:0 12px 32px rgba(17,22,51,.2);z-index:6;min-width:168px;overflow:hidden;display:none}
.card-quick-menu.on{display:block}
.card-quick-menu button{display:flex;align-items:center;gap:8px;width:100%;padding:9px 12px;background:none;border:none;text-align:left;font-size:12px;font-weight:600;color:var(--tx);cursor:pointer;font-family:inherit}
.card-quick-menu button:hover{background:var(--sur2)}
.card-quick-menu button.act-delete{color:#b91c1c}
.plat{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--bdr);border-radius:var(--rs);margin-bottom:8px;text-decoration:none;color:var(--tx);transition:border-color .15s}
.plat:hover{border-color:var(--acc)}
.plat-name{font-size:13px;font-weight:500;flex:1}
.plat-go{font-size:12px;color:var(--blu)}
.edit-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}
.ef label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--tx3);display:block;margin-bottom:3px}
.ef input,.ef select,.ef textarea{width:100%;padding:8px 10px;border-radius:var(--rs);border:1px solid var(--bdr2);background:var(--sur2);font-size:13px;color:var(--tx);font-family:inherit;-webkit-appearance:none}
.ef input:focus,.ef select:focus,.ef textarea:focus{outline:none;border-color:var(--acc);background:#fff}
.ef textarea{resize:vertical;min-height:68px}
.ef.full{grid-column:1/-1}

/* ── ACCORDÉONS À CHEVRONS + VALIDATION DE REMPLISSAGE ── */
.nf-acc{border:1px solid var(--bdr2);border-radius:var(--rs);background:var(--sur);overflow:hidden;margin-bottom:10px}
.nf-acc+.nf-acc{margin-top:0}
.nf-acc-head{display:flex;align-items:center;gap:10px;width:100%;padding:11px 13px;background:var(--sur2);border:none;cursor:pointer;font-family:inherit;text-align:left;color:var(--tx);transition:background .15s;-webkit-appearance:none}
.nf-acc-head:hover{background:var(--sur3)}
.nf-acc-chev{flex-shrink:0;width:16px;height:16px;color:var(--tx3);transition:transform .2s ease}
.nf-acc.open .nf-acc-chev{transform:rotate(90deg)}
.nf-acc-title{flex:1;font-size:12.5px;font-weight:700;letter-spacing:.01em;display:flex;align-items:center;gap:7px;min-width:0}
.nf-acc-title .nf-acc-ico{font-size:14px;line-height:1}
.nf-acc-badge{flex-shrink:0;display:inline-flex;align-items:center;gap:5px;font-size:10.5px;font-weight:700;padding:3px 9px;border-radius:999px;line-height:1;white-space:nowrap;transition:all .15s}
.nf-acc-badge .nf-acc-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}
.nf-acc-badge.is-empty{background:var(--sur3);color:var(--tx3)}
.nf-acc-badge.is-empty .nf-acc-dot{background:var(--tx3)}
.nf-acc-badge.is-partial{background:var(--amb-bg);color:var(--amb)}
.nf-acc-badge.is-partial .nf-acc-dot{background:var(--amb)}
.nf-acc-badge.is-done{background:var(--grn-bg);color:var(--grn)}
.nf-acc-badge.is-done .nf-acc-dot{display:none}
.nf-acc-body{padding:13px;display:grid;grid-template-columns:1fr 1fr;gap:11px}
.nf-acc-body .field,.nf-acc-body .ef{grid-column:auto}
.nf-acc-body .field.s3,.nf-acc-body .ef.full,.nf-acc-body .s3{grid-column:1/-1}
.nf-acc:not(.open) .nf-acc-body{display:none}
#fp-edit-grid-acc{display:block}
.rc-fields.nf-acc-wrap{display:block;grid-template-columns:none}
@media(max-width:560px){.nf-acc-body{grid-template-columns:1fr}.nf-acc-body .field,.nf-acc-body .ef{grid-column:1!important}.nf-acc-head{padding:10px 11px}.nf-acc-title{font-size:12px}}
body.theme-premium .nf-acc{background:rgba(255,255,255,.96);border-color:rgba(15,31,61,.1)}
body.theme-premium .nf-acc-head{background:rgba(15,31,61,.04)}
body.theme-premium .nf-acc-head:hover{background:rgba(15,31,61,.07)}
body.theme-premium .nf-acc-title{color:#071529}

.spin{display:inline-block;animation:sp 1s linear infinite}
@keyframes sp{to{transform:rotate(360deg)}}

/* ── AUTH ── */
.auth-ov{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--bg);z-index:500;display:flex;align-items:center;justify-content:center;padding:20px;overflow-y:auto}
.auth-ov.off{display:none}
.auth-card{background:var(--sur);border:1px solid var(--bdr);border-radius:var(--r);padding:24px;width:420px;max-width:100%;box-shadow:0 24px 64px rgba(17,22,51,.12)}
.auth-logo{display:flex;align-items:center;gap:10px;margin-bottom:18px}
.auth-logo .logo-box{width:38px;height:38px;font-size:20px}
.auth-logo-name{font-size:17px;font-weight:800;letter-spacing:-.3px;color:var(--acc)}
.auth-logo-sub{font-size:11px;color:var(--tx3)}
.auth-tabs{display:flex;gap:4px;margin-bottom:18px;background:var(--sur2);border-radius:var(--rs);padding:3px}
.auth-tab{flex:1;text-align:center;padding:8px;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;border:none;background:none;color:var(--tx2);font-family:inherit;-webkit-appearance:none}
.auth-tab.on{background:var(--sur);color:var(--acc);box-shadow:0 1px 4px rgba(22,22,60,.08)}
.auth-field{margin-bottom:11px}
.auth-field label{font-size:11px;font-weight:600;color:var(--tx2);display:block;margin-bottom:4px}
.auth-field input{width:100%;padding:9px 11px;border-radius:var(--rs);border:1px solid var(--bdr2);background:var(--sur2);font-size:13px;color:var(--tx);font-family:inherit;-webkit-appearance:none}
.auth-field input:focus{outline:none;border-color:var(--acc);background:#fff}
.auth-err{font-size:12px;color:var(--red);background:var(--red-bg);padding:8px 11px;border-radius:var(--rs);margin-bottom:12px;display:none}
.auth-ok{font-size:12px;color:#1f8a4c;background:#e6f6ec;padding:8px 11px;border-radius:var(--rs);margin-bottom:12px;display:none}
.auth-link{display:block;text-align:right;font-size:12px;color:var(--acc);background:none;border:none;font-family:inherit;cursor:pointer;margin:-4px 0 12px;padding:0}
.auth-link.back{text-align:left;margin:0 0 12px}
.auth-link:hover{text-decoration:underline}
.pref-lbl{font-size:11px;font-weight:600;color:var(--tx2);margin-bottom:7px}
.pref-bubbles{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px}
.pref-bubble{font-size:12px;padding:6px 13px;border-radius:20px;border:1px solid var(--bdr2);background:var(--sur);cursor:pointer;color:var(--tx2);transition:all .15s;font-family:inherit;-webkit-appearance:none}
.pref-bubble.on{background:var(--acc);color:var(--acc-fg);border-color:transparent;font-weight:600}
.auth-foot{text-align:center;margin-top:8px;font-size:12px;color:var(--tx3);line-height:1.6}
.btn-google{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:10px;border-radius:var(--rs);border:1px solid var(--bdr2);background:var(--sur);color:var(--tx);font-size:13px;font-weight:600;font-family:inherit;cursor:pointer;transition:all .15s}
.btn-google:hover{background:var(--sur2);border-color:var(--tx3)}
.btn-google svg{width:18px;height:18px;flex-shrink:0}
.auth-divider{display:flex;align-items:center;gap:10px;margin:16px 0;font-size:11px;color:var(--tx3);text-transform:uppercase;letter-spacing:.05em}
.auth-divider::before,.auth-divider::after{content:'';flex:1;height:1px;background:var(--bdr)}
.auth-guest{display:block;width:100%;text-align:center;margin-top:12px;font-size:12px;color:var(--tx2);background:none;border:none;cursor:pointer;text-decoration:underline;font-family:inherit}
.user-chip{display:flex;align-items:center;gap:7px;font-size:11px;color:var(--tx2);padding:5px 12px;border-radius:20px;background:var(--sur2);cursor:pointer;white-space:nowrap;flex-shrink:0;font-weight:500}
.user-chip:hover{background:var(--sur3)}
.user-chip .uc-av{width:22px;height:22px;border-radius:50%;background:var(--acc);color:var(--acc-fg);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:10px;flex-shrink:0}

.profile-wrap{position:relative;display:flex;align-items:center;flex-shrink:0;margin-left:auto;z-index:1001}
.shop-label{display:inline}
@media(max-width:360px){.shop-label{display:none}}
.account-menu{display:none;position:absolute;top:calc(100% + 10px);right:0;width:320px;max-width:calc(100vw - 28px);background:var(--sur);border:1px solid var(--bdr);border-radius:18px;box-shadow:0 18px 45px rgba(17,22,51,.18);padding:14px;z-index:1000}
.account-menu.on{display:block;animation:menuDrop .16s ease-out}
.account-menu::before{content:'';position:absolute;top:-7px;right:24px;width:14px;height:14px;background:var(--sur);border-left:1px solid var(--bdr);border-top:1px solid var(--bdr);transform:rotate(45deg)}
@keyframes menuDrop{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}
.account-menu .account-head{margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid var(--bdr)}
.account-menu .account-av{width:42px;height:42px;border-radius:50%;font-size:16px}
.account-menu .account-title{font-size:15px}
.account-menu .edit-grid{grid-template-columns:1fr;gap:9px;margin-bottom:10px}
.account-menu .ef.full{grid-column:1/-1}
.account-menu .account-actions{margin-top:10px;padding-top:10px}
.account-menu .btn-danger{width:100%;justify-content:center;margin-top:8px}
@media(max-width:768px){.account-menu{right:-8px;width:300px}.account-menu::before{right:28px}}

/* ── MOBILE NAV MODERNE NAFA ── */
@media(max-width:768px){
  .bot-nav{align-items:center;min-height:64px;padding-top:6px}
  .bot-btn{min-width:0}
  .bot-btn span:not(.bot-ico):not(.bot-badge){font-size:10px}
  .bot-btn.scan-main{margin-top:-18px;color:var(--acc)}
  .bot-btn.scan-main .bot-ico{
    width:56px;height:56px;border-radius:50%;
    background:linear-gradient(135deg,var(--acc),var(--acc2));
    color:#fff;box-shadow:0 8px 22px rgba(91,53,242,.38);
    border:4px solid var(--sur);
  }
  .bot-btn.scan-main.on .bot-ico{background:linear-gradient(135deg,var(--acc),var(--acc2));color:#fff}
  .bot-btn.scan-main:active .bot-ico{transform:scale(.94)}
  .bot-ico-logo{width:32px!important;height:32px!important;border-radius:10px;background:#fff;border:1px solid var(--bdr)}
  .bot-ico-logo img{object-fit:contain!important}
}
.account-menu-list{display:flex;flex-direction:column;gap:6px;margin:10px 0}
.account-menu-item{width:100%;display:flex;align-items:center;gap:10px;padding:10px 11px;border-radius:13px;border:1px solid var(--bdr);background:var(--sur2);color:var(--tx);font-family:inherit;font-size:13px;font-weight:600;cursor:pointer;text-align:left}
.account-menu-item:hover{background:var(--acc-bg);border-color:var(--bdr2);color:var(--acc)}
.account-menu-item small{display:block;font-size:10px;color:var(--tx3);font-weight:500;margin-top:1px}
.account-menu-sep{height:1px;background:var(--bdr);margin:8px 0}


.topbar-logo-home{
height:36px;
width:auto;
cursor:pointer;
object-fit:contain;
display:block;
}


/* ── MES AFFAIRES : organisation par profil du foyer puis par type ── */
.inv-cat-section{grid-column:1/-1;margin:8px 0 22px}
.inv-cat-title{font-size:16px;font-weight:800;margin:0 0 12px;color:var(--tx);letter-spacing:-.2px}
.inv-cat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:12px}
.inv-profile-section{
  grid-column:1/-1;
  background:linear-gradient(180deg,var(--sur),rgba(255,255,255,.92));
  border:1px solid var(--bdr);
  border-radius:22px;
  padding:14px;
  margin:0 0 16px;
  box-shadow:0 10px 28px rgba(22,22,60,.055);
}
.inv-profile-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:2px 2px 12px;border-bottom:1px solid var(--bdr);margin-bottom:12px}
.inv-profile-left{display:flex;align-items:center;gap:10px;min-width:0}
.inv-profile-avatar{width:38px;height:38px;border-radius:14px;display:flex;align-items:center;justify-content:center;background:var(--acc-bg);color:var(--acc);font-size:18px;font-weight:900;flex-shrink:0}
.inv-profile-title{font-size:15px;font-weight:900;letter-spacing:-.25px;color:var(--tx);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.inv-profile-sub{font-size:11px;color:var(--tx2);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.inv-profile-value{font-size:12px;font-weight:900;color:var(--tx);background:var(--sur2);border:1px solid var(--bdr);border-radius:999px;padding:6px 10px;white-space:nowrap}
.inv-type-section{margin:12px 0 4px}
.inv-type-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 0 9px}
.inv-type-title{display:flex;align-items:center;gap:7px;font-size:13px;font-weight:850;color:var(--tx);letter-spacing:-.15px}
.inv-type-dot{width:9px;height:9px;border-radius:50%;background:var(--acc);box-shadow:0 0 0 4px var(--acc-bg);flex-shrink:0}
.inv-type-count{font-size:10px;font-weight:800;color:var(--tx3);background:var(--sur2);border:1px solid var(--bdr);border-radius:999px;padding:3px 7px;white-space:nowrap}
.inv-type-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:12px}
.inv-toolbar-note{font-size:11px;color:var(--tx2);margin:-4px 0 12px;line-height:1.45}
@media(max-width:480px){.inv-profile-section{padding:11px;border-radius:18px;margin-bottom:12px}.inv-profile-head{align-items:flex-start}.inv-profile-value{font-size:11px;padding:5px 8px}.inv-type-grid{grid-template-columns:repeat(2,1fr);gap:9px}}
.card-img{
  width:100%!important;
  height:132px!important;
  object-fit:cover!important;
  display:block!important;
  background:#fff!important;
}
.card-ph{
  width:100%!important;
  height:132px!important;
  background:var(--sur2)!important;
}
.card.has-photo .card-img{
  object-fit:cover!important;
}
@media(max-width:480px){
  .inv-cat-grid{grid-template-columns:repeat(2,1fr)}
}


/* ── COFFRE-FORT FACTURE (Premium) ── */
.receipt-zone{
  border:2px dashed var(--bdr2);border-radius:var(--rs);
  padding:12px 16px;cursor:pointer;background:var(--sur2);
  transition:all .18s;text-align:center;position:relative;
  margin-top:8px;
}
.receipt-zone:hover{border-color:#b8960a;background:#fdf6d8;}
.receipt-zone.has-receipt{border-color:#b8960a;border-style:solid;background:#fdf9e8;}
.receipt-zone-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:#b8960a;display:flex;align-items:center;gap:6px;justify-content:center;margin-bottom:3px;}
.receipt-zone-sub{font-size:11px;color:var(--tx3);}
.receipt-thumb{width:100%;max-height:110px;object-fit:cover;border-radius:8px;margin-top:8px;display:block;}
.receipt-badge{display:inline-flex;align-items:center;gap:5px;font-size:11px;padding:3px 9px;border-radius:20px;font-weight:600;background:#fdf1dc;color:#b8960a;border:1px solid #f0d580;}
.receipt-view-btn{display:inline-flex;align-items:center;gap:6px;padding:7px 13px;border-radius:var(--rs);font-size:12px;font-weight:600;cursor:pointer;border:1px solid #f0d580;background:#fdf1dc;color:#b8960a;font-family:inherit;transition:all .15s;}
.receipt-view-btn:hover{background:#f5e28a;border-color:#b8960a;}
/* Modale plein écran pour la facture */
.receipt-lightbox{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(17,22,51,.88);z-index:9999;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px;}
.receipt-lightbox img{max-width:100%;max-height:80vh;border-radius:var(--rs);box-shadow:0 24px 64px rgba(0,0,0,.5);}
.receipt-lightbox-close{position:absolute;top:16px;right:16px;background:rgba(255,255,255,.15);border:none;color:#fff;font-size:22px;cursor:pointer;width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;}
.premium-lock-inline{display:flex;align-items:center;gap:8px;font-size:12px;color:#b8960a;background:#fdf6d8;border:1px solid #f0d580;border-radius:var(--rs);padding:8px 12px;cursor:pointer;font-weight:500;}
.premium-lock-inline:hover{background:#fdf1dc;}


/* ── PREUVES ASSURANCE COFFRE-FORT (>200€) ── */
.insurance-alert{display:none;margin:0 14px 12px;padding:11px 13px;border-radius:var(--rs);background:linear-gradient(135deg,#fdf9e8,#fffde0);border:1px solid #f0d580;color:#7a6000;font-size:12px;line-height:1.55}
.insurance-proof-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:8px}
.insurance-proof-card{border:1px solid #f0d580;border-radius:var(--rs);padding:10px;background:#fffdf5}
.insurance-proof-card .receipt-zone{margin-top:6px;padding:10px 8px}
.insurance-proof-title{font-size:11px;font-weight:800;color:#8a6a24;margin-bottom:2px;display:flex;gap:5px;align-items:center}
.insurance-proof-help{font-size:10px;color:var(--tx3);line-height:1.35}
.insurance-proof-actions{display:flex;gap:5px;margin-top:6px}
.insurance-proof-actions .btn{flex:1;justify-content:center;font-size:10px!important;padding:5px 7px!important}
.insurance-edit-grid{display:grid;grid-template-columns:1fr;gap:8px}
@media(max-width:768px){.insurance-proof-grid{grid-template-columns:1fr}.insurance-alert{margin:0 10px 10px}}

/* ── COMMUNITY ── */
.comm-card{background:var(--sur);border:1px solid var(--bdr);border-radius:var(--r);padding:16px;cursor:pointer;transition:all .15s;box-shadow:0 8px 22px rgba(22,22,60,.05);display:flex;align-items:center;gap:14px;margin-bottom:10px}
.comm-card:hover{border-color:var(--acc2);transform:translateY(-1px);box-shadow:0 10px 26px rgba(91,53,242,.12)}
.comm-card:active{transform:scale(.98)}
.comm-icon{width:46px;height:46px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:22px;flex-shrink:0}
.comm-info{flex:1;min-width:0}
.comm-name{font-size:14px;font-weight:700;margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.comm-sub{font-size:11px;color:var(--tx2)}
.comm-badge{font-size:10px;padding:2px 8px;border-radius:20px;font-weight:600;flex-shrink:0}
.cb-default{background:var(--acc-bg);color:var(--acc)}
.cb-user{background:var(--grn-bg);color:var(--grn)}
.cb-priv{background:var(--amb-bg);color:var(--amb)}
.comm-sep{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--tx3);margin:14px 0 10px}

/* ══ BADGES ══ */
@keyframes badgePop{0%{opacity:0;transform:scale(.5) translateY(30px)}60%{transform:scale(1.12) translateY(-6px)}80%{transform:scale(.96) translateY(2px)}100%{opacity:1;transform:scale(1) translateY(0)}}
@keyframes badgeShine{0%,100%{opacity:0}50%{opacity:1}}
@keyframes badgeFadeOut{0%{opacity:1;transform:translateY(0)}100%{opacity:0;transform:translateY(-20px)}}
.badge-notif{position:fixed;bottom:90px;left:50%;transform:translateX(-50%);z-index:600;pointer-events:none;display:flex;flex-direction:column;align-items:center;gap:8px}
@media(min-width:769px){.badge-notif{bottom:30px}}
.badge-toast{background:var(--sur);border:2px solid var(--acc);border-radius:24px;padding:12px 20px;display:flex;align-items:center;gap:12px;box-shadow:0 16px 48px rgba(91,53,242,.28);animation:badgePop .55s cubic-bezier(.34,1.56,.64,1) forwards;min-width:280px;max-width:90vw}
.badge-toast.hide{animation:badgeFadeOut .4s ease forwards}
.badge-toast-icon{font-size:36px;flex-shrink:0;filter:drop-shadow(0 2px 8px rgba(91,53,242,.4))}
.badge-toast-body{}
.badge-toast-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--acc);margin-bottom:2px}
.badge-toast-name{font-size:15px;font-weight:800;letter-spacing:-.2px;color:var(--tx)}
.badge-toast-desc{font-size:11px;color:var(--tx2);margin-top:1px}
/* Badge indicator in topbar */
.badge-topbar-dot{position:absolute;top:-3px;right:-3px;width:14px;height:14px;border-radius:50%;background:linear-gradient(135deg,#f59e0b,#f97316);border:2px solid var(--sur);display:none;align-items:center;justify-content:center;font-size:8px;font-weight:800;color:#fff;z-index:10}
.badge-topbar-dot.show{display:flex}
/* Badges modal */
.badges-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:14px}
@media(max-width:400px){.badges-grid{grid-template-columns:repeat(2,1fr)}}
.badge-cell{display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 10px;border-radius:var(--r);border:1.5px solid var(--bdr);background:var(--sur2);cursor:default;transition:all .15s;text-align:center}
.badge-cell.earned{border-color:transparent;background:linear-gradient(145deg,var(--acc-bg),var(--sur));box-shadow:0 4px 16px rgba(91,53,242,.12)}
.badge-cell.earned:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(91,53,242,.18)}
.badge-cell-icon{font-size:32px;line-height:1;filter:grayscale(1) opacity(.3)}
.badge-cell.earned .badge-cell-icon{filter:none;filter:drop-shadow(0 2px 6px rgba(91,53,242,.3))}
.badge-cell-name{font-size:11px;font-weight:700;color:var(--tx2)}
.badge-cell.earned .badge-cell-name{color:var(--tx)}
.badge-cell-desc{font-size:9px;color:var(--tx3);line-height:1.4}
.badge-cell.earned .badge-cell-desc{color:var(--tx2)}
.badge-cell-lock{font-size:9px;color:var(--tx3);margin-top:2px}
.badge-prog{margin-top:3px;height:3px;background:var(--bdr);border-radius:2px;width:80%;overflow:hidden}
.badge-prog-fill{height:100%;background:var(--acc);border-radius:2px;transition:width .6s ease}


/* === NAFA V2 PREMIUM — correction visible espace utilisateur === */
:root{--nafa-v2-night:#0F1F3D;--nafa-v2-night2:#0A1628;--nafa-v2-gold:#C8A96E;--nafa-v2-gold2:#E8C98E;}
.nafa-v2-user-premium{display:block;margin:14px 0 0;}
.nafa-v2-user-card{position:relative;overflow:hidden;border-radius:18px;padding:14px 16px;background:radial-gradient(circle at 88% 18%,rgba(200,169,110,.24),transparent 28%),linear-gradient(135deg,var(--nafa-v2-night),var(--nafa-v2-night2));box-shadow:0 8px 24px rgba(15,31,61,.20);color:#fff;border:1px solid rgba(200,169,110,.28);display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.nafa-v2-user-kicker{display:none}
.nafa-v2-user-main{flex:1;min-width:200px}
.nafa-v2-user-title{font-size:14px;font-weight:700;letter-spacing:-.2px;line-height:1.3;color:var(--nafa-v2-gold);margin-bottom:4px}
.nafa-v2-user-sub{font-size:11px;color:rgba(255,255,255,.60);line-height:1.4;margin-bottom:10px}
.nafa-v2-user-metrics{display:flex;gap:8px;flex-wrap:wrap;margin-top:0;margin-left:auto}
.nafa-v2-user-metric{min-width:80px;border:1px solid rgba(200,169,110,.16);background:rgba(255,255,255,.055);border-radius:12px;padding:7px 10px;text-align:center}
.nafa-v2-user-metric b{display:block;color:#fff;font-size:14px;letter-spacing:-.2px}.nafa-v2-user-metric span{font-size:10px;color:rgba(255,255,255,.55);text-transform:uppercase;letter-spacing:.06em}
.nafa-v2-vault-icon{font-size:36px;flex-shrink:0;filter:drop-shadow(0 4px 10px rgba(200,169,110,.35))}
.nafa-v2-vault-cta{background:linear-gradient(135deg,var(--nafa-v2-gold),#b8893f);color:#0F1F3D;border:none;border-radius:10px;padding:9px 16px;font-size:12px;font-weight:800;cursor:pointer;letter-spacing:.02em;box-shadow:0 4px 14px rgba(200,169,110,.30);transition:transform .15s,box-shadow .15s}
.nafa-v2-vault-cta:hover{transform:translateY(-1px);box-shadow:0 6px 18px rgba(200,169,110,.42)}
.nafa-v2-score-ring{position:relative;width:64px;height:64px;flex-shrink:0}
.nafa-v2-score-ring svg{display:block}
.nafa-v2-score-ring-label{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:800;color:#fff}
.nafa-v2-score-panel{border:1px solid rgba(200,169,110,.35);border-radius:24px;padding:18px;background:linear-gradient(180deg,#fff,#fbf7ed);box-shadow:0 12px 34px rgba(15,31,61,.08)}
.nafa-v2-score-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.nafa-v2-score-top span{font-size:12px;color:#66708e;font-weight:700}.nafa-v2-score-top b{font-size:28px;color:var(--nafa-v2-night)}
.nafa-v2-score-bar{height:8px;border-radius:99px;background:#eee8dc;overflow:hidden}.nafa-v2-score-fill{height:100%;width:64%;background:linear-gradient(90deg,var(--nafa-v2-night),var(--nafa-v2-gold));border-radius:99px}
.nafa-v2-score-list{display:grid;gap:8px;margin-top:13px}.nafa-v2-score-line{display:flex;align-items:center;gap:8px;font-size:12px;color:#4a5270}.nafa-v2-score-line i{width:22px;height:22px;border-radius:8px;background:rgba(200,169,110,.18);display:flex;align-items:center;justify-content:center;color:#8a6a24;font-style:normal}
#qc-vault.nafa-v2-vault-card{background:radial-gradient(circle at top right,rgba(200,169,110,.20),transparent 32%),linear-gradient(135deg,#0F1F3D,#0A1628)!important;border:1px solid rgba(200,169,110,.42)!important;color:#fff!important;box-shadow:0 16px 40px rgba(15,31,61,.24)!important}
#qc-vault.nafa-v2-vault-card .nv2-vault-head-label{color:var(--nafa-v2-gold)!important}#qc-vault.nafa-v2-vault-card p{color:rgba(255,255,255,.60)!important}#qc-vault.nafa-v2-vault-card .quick-ico{background:rgba(200,169,110,.16)!important;color:var(--nafa-v2-gold)!important;border:1px solid rgba(200,169,110,.26)!important}
.nafa-v2-badge{position:absolute;top:12px;right:12px;font-size:10px;background:rgba(200,169,110,.15);color:var(--nafa-v2-gold);border:1px solid rgba(200,169,110,.35);border-radius:999px;padding:3px 8px;font-weight:800}
@media(max-width:768px){.nafa-v2-user-card{flex-direction:column;align-items:flex-start;gap:10px}.nafa-v2-user-metrics{margin-left:0}.nafa-v2-score-panel{padding:15px}.nafa-v2-vault-cta{width:100%}}

/* ── Carte Coffre-Fort Premium fusionnée (score + dossier) — élément Premium principal de l'accueil ── */
#nv2-card-premium{flex-direction:column;align-items:stretch;gap:0;padding:22px 22px 20px;border-radius:22px;}
.nv2-vault-head{display:flex;align-items:center;gap:8px;margin-bottom:14px}
.nv2-vault-head-ico{font-size:20px;filter:drop-shadow(0 4px 10px rgba(200,169,110,.35))}
.nv2-vault-head-label{font-size:12px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:rgba(255,255,255,.55)}
#nv2-card-premium .nv2-vault-body{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
#nv2-card-premium .nafa-v2-score-ring{width:74px;height:74px}
#nv2-card-premium .nafa-v2-score-ring-label{font-size:16px}
#nv2-card-premium .nafa-v2-user-main{min-width:220px}
#nv2-card-premium .nafa-v2-user-kicker{display:none}
#nv2-card-premium .nafa-v2-user-title{font-size:16px;margin-bottom:5px}
#nv2-card-premium .nafa-v2-user-sub{font-size:12px;margin-bottom:12px}
.nv2-vault-divider{height:1px;background:rgba(200,169,110,.18);margin:18px 0 14px}
#nv2-card-premium .nafa-v2-user-metrics{width:100%;margin-left:0;gap:10px}
#nv2-card-premium .nafa-v2-user-metric{flex:1;min-width:90px;padding:10px 8px}
@media(max-width:768px){
  #nv2-card-premium{padding:18px 16px}
  #nv2-card-premium .nv2-vault-body{gap:14px}
  #nv2-card-premium .nafa-v2-score-ring{width:64px;height:64px}
  #nv2-card-premium .nafa-v2-user-main{min-width:160px}
}

/* ── MESSAGE DE BIENVENUE — bannière premium, Zone 1 de l'accueil ── */
.nafa-welcome{margin:0 0 16px}
.nafa-welcome-text{font-size:17px;font-weight:800;color:var(--tx);letter-spacing:-.3px;line-height:1.3}
@media(max-width:560px){
  .nafa-welcome-text{font-size:15.5px}
}
/* Bannière enrichie : fond dédié + dégradé doux + liste de priorités du jour */
.nafa-banner{
  position:relative;overflow:hidden;border-radius:var(--r);
  background:linear-gradient(135deg,var(--acc) 0%,var(--acc2) 100%);
  color:#fff;padding:20px 22px;box-shadow:0 14px 34px rgba(91,53,242,.26);
  animation:nfFadeIn .35s ease both;
}
.nafa-banner::before{
  content:'';position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(circle at 88% -10%,rgba(255,255,255,.22),transparent 55%);
}
.nafa-banner-greet{font-size:18px;font-weight:800;letter-spacing:-.3px;line-height:1.3;position:relative}
.nafa-banner-sub{font-size:12px;color:rgba(255,255,255,.78);margin-top:3px;position:relative}
.nafa-banner-list{list-style:none;margin:14px 0 0;padding:0;display:flex;flex-direction:column;gap:7px;position:relative}
.nafa-banner-list li{display:flex;align-items:center;gap:9px;font-size:12.5px;font-weight:600;color:rgba(255,255,255,.96)}
.nafa-banner-list .nb-dot{width:6px;height:6px;border-radius:50%;background:#fff;opacity:.85;flex-shrink:0}
.nafa-banner-cta{
  display:inline-flex;align-items:center;gap:6px;margin-top:16px;position:relative;
  background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.3);
  color:#fff;font-size:12.5px;font-weight:700;padding:9px 14px;border-radius:999px;
  cursor:pointer;transition:background .15s,transform .15s;backdrop-filter:blur(2px);
}
.nafa-banner-cta:hover{background:rgba(255,255,255,.26)}
.nafa-banner-cta:active{transform:scale(.97)}
.nafa-banner.is-calm{background:linear-gradient(135deg,#1c7a39 0%,#0f9f6e 100%);box-shadow:0 14px 34px rgba(15,159,110,.22)}
@media(max-width:560px){
  .nafa-banner{padding:17px 16px;border-radius:var(--rs)}
  .nafa-banner-greet{font-size:16px}
  .nafa-banner-list li{font-size:12px}
}

/* ── AUJOURD'HUI DANS NAFA — tableau de bord intelligent (lecture seule) ── */
.nafa-today{margin-top:20px}
/* Devient l'élément prioritaire de l'accueil : pas de marge avant, marge après pour séparer des raccourcis */
.nafa-today-first{margin-top:0;margin-bottom:22px}
.nafa-today-head{display:flex;align-items:baseline;gap:8px;margin-bottom:12px;flex-wrap:wrap}
.nafa-today-title{font-size:15px;font-weight:800;color:var(--tx);letter-spacing:-.2px}
.nafa-today-sub{font-size:12px;color:var(--tx3)}
.nafa-today-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:11px}
.nafa-today-card{
  position:relative;background:var(--sur);border:1px solid var(--bdr);border-radius:var(--rs);
  padding:14px 13px 13px;display:flex;flex-direction:column;gap:7px;min-height:128px;
  cursor:pointer;transition:transform .15s,box-shadow .15s,border-color .15s;
  box-shadow:0 6px 16px rgba(22,22,60,.04);animation:nfFadeIn .35s ease both;
}
.nafa-today-card:hover{transform:translateY(-2px);box-shadow:0 12px 26px rgba(22,22,60,.1);border-color:var(--bdr2)}
.nafa-today-card:active{transform:scale(.98)}
/* Liseré de priorité à gauche de la carte */
.nafa-today-card::before{
  content:'';position:absolute;left:0;top:10px;bottom:10px;width:3px;border-radius:3px;
  background:var(--bdr2);transition:background .15s;
}
.nafa-today-card.pr-high::before{background:var(--red)}
.nafa-today-card.pr-mid::before{background:var(--amb)}
.nafa-today-card.pr-low::before{background:var(--grn)}
.nafa-today-card-top{display:flex;align-items:flex-start;gap:8px}
.nafa-today-ico{width:32px;height:32px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0}
.nafa-today-top-text{min-width:0}
.nafa-today-label{font-size:11.5px;font-weight:700;color:var(--tx2);line-height:1.25}
.nafa-today-priority{font-size:9px;font-weight:700;letter-spacing:.2px;margin-top:2px;display:inline-block}
.nafa-today-priority.pr-high{color:var(--red)}
.nafa-today-priority.pr-mid{color:var(--amb)}
.nafa-today-priority.pr-low{color:var(--grn)}
.nafa-today-value{font-size:19px;font-weight:800;color:var(--tx);letter-spacing:-.3px}
.nafa-today-detail{font-size:10.5px;color:var(--tx3);line-height:1.35}
.nafa-today-action{
  margin-top:auto;font-size:10.5px;font-weight:700;color:var(--acc);
  display:flex;align-items:center;gap:3px;
}
.nafa-today-card.is-empty{opacity:.55}
.nafa-today-card.is-empty .nafa-today-value{font-size:13px;font-weight:700;color:var(--tx3)}
.nafa-today-card.is-empty .nafa-today-action{color:var(--tx3)}
/* Carte mise en avant temporairement (ex: clic sur "objets oubliés") */
.nafa-today-card.nf-pulse{animation:nfPulseCard 1.8s ease 2}
@media(max-width:560px){
  .nafa-today-grid{grid-template-columns:repeat(2,1fr);gap:9px}
  .nafa-today-card{padding:12px 11px 11px;min-height:118px}
  .nafa-today-value{font-size:17px}
}
@media(max-width:380px){
  .nafa-today-grid{grid-template-columns:1fr 1fr}
  .nafa-today-label{font-size:10.5px}
}
@keyframes nfFadeIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
@keyframes nfPulseCard{
  0%,100%{box-shadow:0 6px 16px rgba(22,22,60,.04);border-color:var(--bdr)}
  50%{box-shadow:0 0 0 4px rgba(91,53,242,.18),0 12px 26px rgba(91,53,242,.18);border-color:var(--acc2)}
}

/* ── ZONE BADGES (sous l'image, avant le nom) ──────────────────────────────
   Conteneur en flow normal : les badges (statut "objet vivant" + badge de
   contexte "Aujourd'hui dans Nafa") se placent côte à côte et passent à la
   ligne automatiquement, sans jamais se superposer. */
.card-badges{
  display:flex;flex-wrap:wrap;gap:6px;align-items:center;
  padding:8px 10px 0;max-width:100%;
}
.card-badges:empty{display:none}
.living-badge,.nf-ctx-badge{
  position:static;display:inline-flex;align-items:center;gap:4px;
  font-size:9.5px;font-weight:700;line-height:1;white-space:nowrap;
  max-width:100%;padding:4px 8px;border-radius:999px;margin:0;
  box-shadow:0 1px 3px rgba(22,22,60,.1);
}
.living-badge-ico{font-size:9px;line-height:1}
.living-badge-keep{background:var(--grn-bg);color:#1c7a39}
.living-badge-watch{background:var(--amb-bg);color:#a06700}
.living-badge-sell{background:var(--blu-bg);color:#1d4ed8}
.living-badge-protect{background:#fdf1dc;color:#b8780a}
.nf-ctx-badge{font-weight:800}
.nf-ctx-badge.forgotten{background:#fff3cd;color:#856404}
.nf-ctx-badge.opportunities{background:#dcfce7;color:#166534}
.nf-ctx-badge.children{background:#ede9fe;color:#5b21b6}
@media(max-width:380px){
  .living-badge,.nf-ctx-badge{font-size:9px;padding:3px 7px}
}

/* Carte d'inventaire mise en évidence temporairement, typée par origine du clic
   depuis "Aujourd'hui dans Nafa" : orange=oubliés, vert=opportunités, violet=enfants.
   La carte entière passe en surbrillance (bordure + fond teinté + halo), et
   garde assez d'espace en bas pour que les badges restent lisibles.
   transition:none annule .card{transition:all .15s} qui sinon amortit
   l'apparition de la bordure/fond/ombre et rend l'effet peu visible.
   L'animation tourne en continu (infinite) tant que la classe reste posée :
   elle ne s'éteint que quand l'utilisateur clique sur "Voir tous les objets". */
.card.nf-hl{position:relative;z-index:2;padding-bottom:2px;overflow:visible;transition:none}
.card.nf-hl-forgotten{
  border:3px solid #ff9800!important;
  background:linear-gradient(135deg,#fff7df,#ffe7a8)!important;
  animation:nfPulseOutlineFg 1.6s ease-in-out infinite;
}
.card.nf-hl-opportunities{
  border:3px solid #22c55e!important;
  background:linear-gradient(135deg,#f0fdf4,#d4f5e0)!important;
  animation:nfPulseOutlineOpp 1.6s ease-in-out infinite;
}
.card.nf-hl-children{
  border:3px solid #8b5cf6!important;
  background:linear-gradient(135deg,#f5f3ff,#e3d9fc)!important;
  animation:nfPulseOutlineKid 1.6s ease-in-out infinite;
}
@keyframes nfPulseOutlineFg{0%,100%{box-shadow:0 0 0 3px rgba(255,152,0,.3),0 14px 30px rgba(255,152,0,.35)}50%{box-shadow:0 0 0 7px rgba(255,152,0,.45),0 18px 40px rgba(255,152,0,.55)}}
@keyframes nfPulseOutlineOpp{0%,100%{box-shadow:0 0 0 3px rgba(34,197,94,.3),0 14px 30px rgba(34,197,94,.35)}50%{box-shadow:0 0 0 7px rgba(34,197,94,.45),0 18px 40px rgba(34,197,94,.55)}}
@keyframes nfPulseOutlineKid{0%,100%{box-shadow:0 0 0 3px rgba(139,92,246,.3),0 14px 30px rgba(139,92,246,.35)}50%{box-shadow:0 0 0 7px rgba(139,92,246,.45),0 18px 40px rgba(139,92,246,.55)}}

/* Bannière de contexte affichée en haut de l'inventaire après un clic sur une
   carte "Aujourd'hui dans Nafa" — permet de revenir à la vue complète. */
.nf-focus-banner{
  margin:0 0 14px;padding:12px 14px;border-radius:var(--rs);
  font-weight:800;font-size:13px;display:flex;justify-content:space-between;
  align-items:center;gap:10px;flex-wrap:wrap;animation:nfFadeIn .25s ease both;
}
.nf-focus-banner.forgotten{background:#fff3cd;color:#856404}
.nf-focus-banner.opportunities{background:#dcfce7;color:#166534}
.nf-focus-banner.children{background:#ede9fe;color:#5b21b6}
.nf-focus-banner button{
  border:0;border-radius:999px;padding:7px 13px;font-size:12px;font-weight:800;
  cursor:pointer;background:rgba(255,255,255,.75);color:inherit;font-family:inherit;
  transition:background .15s;
}
.nf-focus-banner button:hover{background:#fff}

/* ── PROFILS DU FOYER — module indépendant ── */
.household-head{margin-bottom:14px}
.household-head-title{font-size:17px;font-weight:800;color:var(--tx);letter-spacing:-.3px;margin-bottom:4px}
.household-head-sub{font-size:12px;color:var(--tx2);line-height:1.5}
.household-add-btn{margin-bottom:16px}
.household-empty{text-align:center;padding:36px 16px;color:var(--tx2)}
.household-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.household-card{background:var(--sur);border:1px solid var(--bdr);border-radius:var(--rs);padding:13px;display:flex;flex-direction:column;gap:9px;box-shadow:0 8px 22px rgba(22,22,60,.04)}
.household-card-top{display:flex;align-items:center;gap:9px}
.household-card-ico{width:36px;height:36px;border-radius:11px;background:var(--acc-bg);display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0}
.household-card-main{min-width:0}
.household-card-name{font-size:13.5px;font-weight:800;color:var(--tx);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.household-card-type{font-size:11px;color:var(--tx2)}
.household-card-details{display:flex;flex-wrap:wrap;gap:5px}
.household-card-details span{background:var(--sur2);border-radius:999px;padding:3px 9px;font-size:10.5px;color:var(--tx2);font-weight:600}
.household-card-details-empty{font-size:10.5px;color:var(--tx3);font-style:italic}
.household-card-actions{display:flex;gap:6px;margin-top:2px}
.household-card-actions .btn{flex:1;font-size:11px;padding:7px}
@media(max-width:560px){
  .household-grid{grid-template-columns:1fr}
}
/* ── LOCALISATIONS — module indépendant ── */
.loc-head{margin-bottom:14px}
.loc-head-title{font-size:17px;font-weight:800;color:var(--tx);letter-spacing:-.3px;margin-bottom:4px}
.loc-head-sub{font-size:12px;color:var(--tx2);line-height:1.5}
.loc-add-btn{margin-bottom:16px}
.loc-empty{text-align:center;padding:36px 16px;color:var(--tx2)}
.loc-list{display:flex;flex-direction:column;gap:9px}
.loc-card{background:var(--sur);border:1px solid var(--bdr);border-radius:var(--rs);padding:13px;display:flex;align-items:center;gap:11px;box-shadow:0 8px 22px rgba(22,22,60,.04)}
.loc-card-ico{width:38px;height:38px;border-radius:11px;background:var(--acc-bg);display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0}
.loc-card-main{min-width:0;flex:1}
.loc-card-name{font-size:13.5px;font-weight:800;color:var(--tx);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.loc-card-desc{font-size:11px;color:var(--tx2);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.loc-card-count{font-size:10.5px;color:var(--tx3);margin-top:2px}
.loc-card-actions{display:flex;gap:6px;flex-shrink:0}
.loc-card-actions .btn{font-size:11px;padding:7px 9px}

/* ── OBJET VIVANT — module indépendant, affichage de recommandations uniquement ── */
.living-box{border-radius:var(--rs);padding:13px 14px;margin-bottom:14px;border:1px solid var(--bdr)}
.living-box-keep{background:linear-gradient(135deg,#f0f9f1,#e7f5e9);border-color:#bfe3c5}
.living-box-watch{background:linear-gradient(135deg,#fff8e8,#fef3d6);border-color:#f0d896}
.living-box-sell{background:linear-gradient(135deg,#eaf3ff,#dbeafe);border-color:#bcd6f7}
.living-box-protect{background:linear-gradient(135deg,#fdf1dc,#fde9c2);border-color:#f0d580}
.living-box-head{display:flex;align-items:center;gap:9px;margin-bottom:8px}
.living-box-ico{font-size:18px;flex-shrink:0}
.living-box-status{font-size:13px;font-weight:800;color:var(--tx)}
.living-box-attn{margin-left:auto;font-size:10px;font-weight:700;padding:3px 9px;border-radius:999px;white-space:nowrap}
.living-box-attn-faible{background:rgba(34,150,68,.13);color:#1c7a39}
.living-box-attn-moyen{background:rgba(217,140,2,.14);color:#a06700}
.living-box-attn-eleve{background:rgba(220,38,38,.13);color:#b91c1c}
.living-box-suggestion{font-size:11.5px;color:var(--tx2);line-height:1.5}
.living-box-tag{font-size:9.5px;color:var(--tx3);margin-top:6px;font-style:italic}

/* ── ALERTES ENFANTS — module indépendant, affichage uniquement ── */
.kid-alerts{margin-bottom:18px}
.kid-alerts-head{display:flex;align-items:baseline;gap:8px;margin-bottom:10px;flex-wrap:wrap}
.kid-alerts-title{font-size:15px;font-weight:800;color:var(--tx);letter-spacing:-.2px}
.kid-alerts-sub{font-size:12px;color:var(--tx3)}
.kid-alerts-list{display:flex;flex-direction:column;gap:8px}
.kid-alert-card{background:var(--sur);border:1px solid var(--bdr);border-radius:var(--rs);padding:11px 13px;display:flex;align-items:center;gap:10px;box-shadow:0 8px 22px rgba(22,22,60,.04);cursor:pointer}
.kid-alert-ico{width:34px;height:34px;border-radius:10px;background:var(--prp-bg,#ece9fb);display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0}
.kid-alert-main{min-width:0;flex:1}
.kid-alert-text{font-size:12.5px;font-weight:700;color:var(--tx)}
.kid-alert-detail{font-size:10.5px;color:var(--tx3);margin-top:2px}
.kid-alert-tag{font-size:9px;color:var(--tx3);margin-top:8px;font-style:italic}

/* ── ASSISTANT DE REVENTE — module indépendant, génère une proposition uniquement ── */
.resale-btn{margin-bottom:14px}
.resale-banner{background:linear-gradient(135deg,#eef2ff,#e0e7ff);border:1px solid #c7d2fe;border-radius:var(--rs);padding:10px 12px;margin-bottom:14px;font-size:11px;color:#3730a3;display:flex;align-items:center;gap:8px}
.resale-field{margin-bottom:12px}
.resale-field-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--tx3);margin-bottom:4px;display:block}
.resale-field textarea,.resale-field input,.resale-field select{width:100%;padding:9px 10px;border-radius:var(--rs);border:1px solid var(--bdr2);background:var(--sur2);font-size:13px;font-family:inherit}
.resale-field textarea{resize:vertical}
.resale-price-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.resale-price-row input{width:110px}
.resale-price-variant{font-size:11px;padding:5px 9px;border-radius:8px;border:1px solid var(--bdr2);background:var(--sur2);cursor:pointer;font-family:inherit}
.resale-tag{font-size:9.5px;color:var(--tx3);margin-top:10px;font-style:italic;text-align:center}

/* ================================================================
   NAFA — VARIABLES THÈMES (communes)
   ================================================================ */
:root{
  --nafa-night:#0F1F3D;
  --nafa-night-2:#15284B;
  --nafa-night-3:#0A1628;
  --nafa-gold:#C8A96E;
  --nafa-gold-2:#E8C98E;
  --nafa-cream:#F7F3EA;
  /* Thème standard — vert émeraude */
  --std-dark:#1A3A2A;
  --std-dark-2:#0F2418;
  --std-mid:#2D6A4F;
  --std-accent:#40916C;
  --std-accent-2:#52B788;
  --std-light:#D8F3DC;
  --std-gold:#F4A261;
}

/* ================================================================
   THÈME STANDARD — utilisateurs non-premium
   (vert forêt / émeraude + accents ambre)
   ================================================================ */
body.theme-standard{
  background:
    radial-gradient(circle at 80% 0%,rgba(64,145,108,.22),transparent 30%),
    radial-gradient(circle at 6% 20%,rgba(244,162,97,.12),transparent 26%),
    linear-gradient(180deg,var(--std-dark) 0%,var(--std-dark-2) 35%,#EEF5F1 100%)!important;
  color:#F0FAF4;
}
body.theme-standard .shell{background:transparent!important;}
body.theme-standard .body{
  background:
    radial-gradient(circle at 80px 28px,rgba(64,145,108,.18),transparent 200px),
    linear-gradient(180deg,rgba(26,58,42,.97) 0%,rgba(15,36,24,.93) 260px,rgba(232,245,236,.98) 620px)!important;
}
body.theme-standard .content{background:transparent!important;}
body.theme-standard .rail{
  background:linear-gradient(180deg,var(--std-dark-2) 0%,var(--std-dark) 100%)!important;
  border-right:1px solid rgba(64,145,108,.20)!important;
  box-shadow:16px 0 40px rgba(0,0,0,.14);
}
body.theme-standard .logo-wrap{border-bottom:1px solid rgba(64,145,108,.20)!important;}
body.theme-standard .logo-name{color:#fff!important;}
body.theme-standard .logo-sub,.theme-standard .rsec,.theme-standard .cat-row,.theme-standard .ccount,.theme-standard .rf{color:rgba(255,255,255,.52)!important;}
body.theme-standard .comm-card{background:#fff!important;}
body.theme-standard .comm-name{color:#111633!important;}
body.theme-standard .comm-sub{color:#747996!important;}
body.theme-standard .rnav{color:rgba(255,255,255,.65)!important;}
body.theme-standard .rnav:hover{background:rgba(64,145,108,.12)!important;color:#fff!important;}
body.theme-standard .rnav.on{
  background:linear-gradient(135deg,var(--std-accent),var(--std-accent-2))!important;
  color:#fff!important;
  box-shadow:0 12px 30px rgba(64,145,108,.28)!important;
}
body.theme-standard .rnav.on .nbadge{background:rgba(15,36,24,.18)!important;color:#fff!important;}
body.theme-standard .rail-foot{border-top:1px solid rgba(64,145,108,.18)!important;}
body.theme-standard .rf strong{color:#fff!important;}
body.theme-standard .topbar{
  background:rgba(15,36,24,.95)!important;
  border-bottom:1px solid rgba(64,145,108,.22)!important;
  backdrop-filter:blur(16px);
}
body.theme-standard .topbar-title{color:#fff!important;}
body.theme-standard .user-chip{
  background:rgba(64,145,108,.15)!important;
  color:var(--std-accent-2)!important;
  border:1px solid rgba(64,145,108,.22);
}
body.theme-standard .user-chip .uc-av{
  background:var(--std-accent)!important;
  color:#fff!important;
}
body.theme-standard .btn-dark{
  background:linear-gradient(135deg,var(--std-accent),var(--std-accent-2))!important;
  color:#fff!important;
  box-shadow:0 10px 26px rgba(64,145,108,.28)!important;
}
body.theme-standard #v-home .section-head h3,
body.theme-standard #v-home h3{color:#fff!important;text-shadow:0 1px 10px rgba(0,0,0,.22);}
body.theme-standard .quick-card,
body.theme-standard .scard,
body.theme-standard .card,
body.theme-standard .rcard,
body.theme-standard .setup-card,
body.theme-standard .modal,
body.theme-standard .account-menu,
body.theme-standard .auth-card{
  background:rgba(255,255,255,.97)!important;
  border:1px solid rgba(255,255,255,.72)!important;
  box-shadow:0 18px 44px rgba(26,58,42,.12)!important;
}
body.theme-standard .quick-card:hover,
body.theme-standard .card:hover{
  border-color:rgba(64,145,108,.50)!important;
  box-shadow:0 20px 48px rgba(26,58,42,.18)!important;
}
body.theme-standard .quick-card b,.theme-standard .card-name,.theme-standard .scard-val,.theme-standard .account-title,.theme-standard .modal h3{color:#0F2418!important;}
body.theme-standard .quick-card p,.theme-standard .card-foot,.theme-standard .scard-lbl{color:#4A7060!important;}
body.theme-standard .nafa-v2-user-card{
  background:
    radial-gradient(circle at 92% 8%,rgba(82,183,136,.24),transparent 30%),
    linear-gradient(135deg,#0F2418 0%,#1A3A2A 52%,#2D5A40 100%)!important;
  border:1px solid rgba(64,145,108,.38)!important;
  box-shadow:0 24px 64px rgba(0,20,10,.30)!important;
}
body.theme-standard .nafa-v2-score-panel{
  background:linear-gradient(180deg,#F4FBF7,#E8F5EE)!important;
  border:1px solid rgba(64,145,108,.38)!important;
  box-shadow:0 18px 44px rgba(26,58,42,.10)!important;
}
body.theme-standard .nafa-v2-score-fill{background:linear-gradient(90deg,var(--std-dark),var(--std-accent))!important;}
body.theme-standard #qc-vault{
  background:linear-gradient(135deg,#1A3A2A,#0F2418)!important;
  border:1px solid rgba(64,145,108,.35)!important;
  opacity:.85;
  position:relative;
}
body.theme-standard .fsrch,.theme-standard .fsel,.theme-standard .chip,.theme-standard .field input,.theme-standard .field select,.theme-standard .field textarea,.theme-standard .ef input,.theme-standard .ef select,.theme-standard .ef textarea{background:rgba(255,255,255,.94)!important;}
body.theme-standard .bot-nav{
  background:rgba(15,36,24,.97)!important;
  border-top:1px solid rgba(64,145,108,.22)!important;
}
body.theme-standard .bot-btn{color:rgba(255,255,255,.55)!important;}
body.theme-standard .bot-btn.on{color:var(--std-accent-2)!important;}
body.theme-standard .bot-btn.on .bot-ico{background:rgba(64,145,108,.16)!important;}
body.theme-standard .bot-btn.scan-main .bot-ico{
  background:linear-gradient(135deg,var(--std-accent),var(--std-accent-2))!important;
  color:#fff!important;
  border-color:var(--std-dark-2)!important;
}
@media(max-width:768px){
  body.theme-standard .body{background:linear-gradient(180deg,#1A3A2A 0%,#2D6A4F 300px,#EEF5F1 760px)!important;}
  body.theme-standard .topbar{background:rgba(15,36,24,.97)!important;}
  body.theme-standard .nafa-v2-user-premium{margin-top:4px;}
}

/* ================================================================
   THÈME PREMIUM — utilisateurs premium (navy / or)
   ================================================================ */
body.theme-premium{
  background:var(--nafa-night)!important;
}
body.theme-premium{
  background:
    radial-gradient(circle at 78% 0%,rgba(200,169,110,.20),transparent 28%),
    radial-gradient(circle at 8% 18%,rgba(114,87,255,.14),transparent 24%),
    linear-gradient(180deg,var(--nafa-night) 0%,var(--nafa-night-2) 38%,#EEF2F8 100%)!important;
  color:#F8FAFC;
}
body.theme-premium .shell{background:transparent!important;}
body.theme-premium .body{
  background:
    radial-gradient(circle at 85px 30px,rgba(200,169,110,.14),transparent 210px),
    linear-gradient(180deg,rgba(15,31,61,.96) 0%,rgba(21,40,75,.92) 255px,rgba(238,242,248,.98) 620px)!important;
}
body.theme-premium .content{background:transparent!important;}
body.theme-premium .rail{
  background:linear-gradient(180deg,#0A1628 0%,#0F1F3D 100%)!important;
  border-right:1px solid rgba(200,169,110,.16)!important;
  box-shadow:16px 0 40px rgba(0,0,0,.16);
}
body.theme-premium .logo-wrap{border-bottom:1px solid rgba(200,169,110,.16)!important;}
body.theme-premium .logo-name{color:#fff!important;}
body.theme-premium .logo-sub,.theme-premium .rsec,.theme-premium .cat-row,.theme-premium .ccount,.theme-premium .rf{color:rgba(255,255,255,.52)!important;}
body.theme-premium .comm-card{background:#fff!important;}
body.theme-premium .comm-name{color:#111633!important;}
body.theme-premium .comm-sub{color:#747996!important;}
body.theme-premium .comm-sep{color:#a8accb!important;}
body.theme-premium .rnav{color:rgba(255,255,255,.68)!important;}
body.theme-premium .rnav:hover{background:rgba(200,169,110,.09)!important;color:#fff!important;}
body.theme-premium .rnav.on{
  background:linear-gradient(135deg,var(--nafa-gold),var(--nafa-gold-2))!important;
  color:var(--nafa-night)!important;
  box-shadow:0 12px 30px rgba(200,169,110,.26)!important;
}
body.theme-premium .rnav.on .nbadge{background:rgba(15,31,61,.13)!important;color:var(--nafa-night)!important;}
body.theme-premium .rail-foot{border-top:1px solid rgba(200,169,110,.16)!important;}
body.theme-premium .rf strong{color:#fff!important;}
body.theme-premium .topbar{
  background:rgba(10,22,40,.94)!important;
  border-bottom:1px solid rgba(200,169,110,.18)!important;
  backdrop-filter:blur(16px);
}
body.theme-premium .topbar-title{color:#fff!important;}
body.theme-premium .user-chip{
  background:rgba(200,169,110,.13)!important;
  color:var(--nafa-gold)!important;
  border:1px solid rgba(200,169,110,.18);
}
body.theme-premium .user-chip .uc-av{
  background:var(--nafa-gold)!important;
  color:var(--nafa-night)!important;
}
body.theme-premium .btn-dark{
  background:linear-gradient(135deg,var(--nafa-gold),var(--nafa-gold-2))!important;
  color:var(--nafa-night)!important;
  box-shadow:0 10px 26px rgba(200,169,110,.25)!important;
}
body.theme-premium #v-home .section-head h3,
body.theme-premium #v-home h3{color:#fff!important;text-shadow:0 1px 10px rgba(0,0,0,.22);}
body.theme-premium .quick-card,
body.theme-premium .scard,
body.theme-premium .card,
body.theme-premium .rcard,
body.theme-premium .setup-card,
body.theme-premium .modal,
body.theme-premium .account-menu,
body.theme-premium .auth-card{
  background:rgba(255,255,255,.96)!important;
  border:1px solid rgba(255,255,255,.70)!important;
  box-shadow:0 18px 44px rgba(15,31,61,.13)!important;
}
body.theme-premium .quick-card:hover,
body.theme-premium .card:hover{
  border-color:rgba(200,169,110,.55)!important;
  box-shadow:0 20px 48px rgba(15,31,61,.20)!important;
}
body.theme-premium .quick-card b,.theme-premium .card-name,.theme-premium .scard-val,.theme-premium .account-title,.theme-premium .modal h3{color:#071529!important;}
body.theme-premium .quick-card p,.theme-premium .card-foot,.theme-premium .scard-lbl{color:#6B728C!important;}
body.theme-premium .quick-ico{box-shadow:inset 0 0 0 1px rgba(15,31,61,.04);}
body.theme-premium .nafa-v2-user-card{
  background:
    radial-gradient(circle at 92% 8%,rgba(232,201,142,.28),transparent 30%),
    linear-gradient(135deg,#071529 0%,#0F1F3D 52%,#1A345F 100%)!important;
  border:1px solid rgba(200,169,110,.38)!important;
  box-shadow:0 24px 64px rgba(3,10,24,.35)!important;
}
body.theme-premium .nafa-v2-score-panel{
  background:linear-gradient(180deg,#FFFDF8,#F7F1E5)!important;
  border:1px solid rgba(200,169,110,.42)!important;
  box-shadow:0 18px 44px rgba(15,31,61,.16)!important;
}
body.theme-premium #qc-vault.nafa-v2-vault-card{
  background:
    radial-gradient(circle at top right,rgba(232,201,142,.24),transparent 32%),
    linear-gradient(135deg,#071529,#0F1F3D 55%,#1A345F)!important;
  border:1px solid rgba(200,169,110,.55)!important;
  box-shadow:0 20px 52px rgba(3,10,24,.32)!important;
}
body.theme-premium #qc-vault.nafa-v2-vault-card .nafa-v2-badge{
  background:rgba(200,169,110,.18)!important;
  color:var(--nafa-gold-2)!important;
}
body.theme-premium .fsrch,.theme-premium .fsel,.theme-premium .chip,.theme-premium .field input,.theme-premium .field select,.theme-premium .field textarea,.theme-premium .ef input,.theme-premium .ef select,.theme-premium .ef textarea{background:rgba(255,255,255,.94)!important;}
body.theme-premium .bot-nav{
  background:rgba(10,22,40,.96)!important;
  border-top:1px solid rgba(200,169,110,.18)!important;
}
body.theme-premium .bot-btn{color:rgba(255,255,255,.56)!important;}
body.theme-premium .bot-btn.on{color:var(--nafa-gold)!important;}
body.theme-premium .bot-btn.on .bot-ico{background:rgba(200,169,110,.14)!important;}
body.theme-premium .bot-btn.scan-main .bot-ico{
  background:linear-gradient(135deg,var(--nafa-gold),var(--nafa-gold-2))!important;
  color:var(--nafa-night)!important;
  border-color:#0A1628!important;
}
@media(max-width:768px){
  body.theme-premium .body{background:linear-gradient(180deg,#0F1F3D 0%,#15284B 300px,#EEF2F8 760px)!important;}
  body.theme-premium .topbar{background:rgba(10,22,40,.96)!important;}
  body.theme-premium .nafa-v2-user-premium{margin-top:4px;}
}

/* === Coffre-fort — écran de blocage non-premium === */
.vault-lock-screen{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  min-height:calc(var(--app-h) - 120px);padding:24px;text-align:center;
}
.vault-lock-hero{
  width:90px;height:90px;border-radius:50%;
  background:linear-gradient(135deg,#1A3A2A,#2D6A4F);
  border:3px solid rgba(64,145,108,.35);
  display:flex;align-items:center;justify-content:center;
  font-size:36px;margin-bottom:20px;
  box-shadow:0 16px 40px rgba(26,58,42,.20);
}
body.theme-premium .vault-lock-hero{
  background:linear-gradient(135deg,#0F1F3D,#15284B);
  border-color:rgba(200,169,110,.35);
  box-shadow:0 16px 40px rgba(15,31,61,.24);
}
.vault-lock-title{font-size:22px;font-weight:900;letter-spacing:-.5px;margin-bottom:8px;color:#0F2418;}
body.theme-premium .vault-lock-title{color:#071529;}
.vault-lock-sub{font-size:13px;color:#4A7060;line-height:1.65;max-width:320px;margin:0 auto 24px;}
body.theme-premium .vault-lock-sub{color:#6B728C;}
.vault-lock-perks{
  display:grid;gap:10px;width:100%;max-width:340px;margin-bottom:24px;
}
.vault-lock-perk{
  display:flex;align-items:center;gap:12px;
  background:rgba(64,145,108,.08);border:1px solid rgba(64,145,108,.18);
  border-radius:14px;padding:11px 14px;text-align:left;
}
.vault-lock-perk-ico{font-size:20px;flex-shrink:0;}
.vault-lock-perk-text{font-size:12px;font-weight:600;color:#1A3A2A;line-height:1.4;}
.vault-lock-perk-text small{display:block;font-weight:400;color:#4A7060;margin-top:2px;}
.btn-vault-unlock{
  background:linear-gradient(135deg,#40916C,#52B788)!important;
  color:#fff!important;border:none;border-radius:14px;
  padding:14px 28px;font-size:15px;font-weight:800;
  box-shadow:0 12px 32px rgba(64,145,108,.30)!important;
  cursor:pointer;letter-spacing:-.2px;
  display:inline-flex;align-items:center;gap:8px;
}
.btn-vault-unlock:hover{transform:translateY(-1px);box-shadow:0 16px 40px rgba(64,145,108,.38)!important;}



/* ── SINISTRE ASSURANCE — Coffre-fort Premium ── */
.claim-panel{margin:14px 0;padding:14px;border-radius:var(--r);border:1px solid rgba(200,169,110,.38);background:linear-gradient(135deg,#fffaf0,#ffffff);box-shadow:0 10px 24px rgba(15,31,61,.07)}
.claim-panel-head{display:flex;align-items:flex-start;gap:10px;justify-content:space-between;margin-bottom:10px}
.claim-panel-title{font-size:14px;font-weight:850;color:#0F1F3D;letter-spacing:-.2px}
.claim-panel-sub{font-size:11px;color:var(--tx2);line-height:1.55;margin-top:2px}
.claim-type-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:10px 0}
.claim-type{border:1px solid var(--bdr);background:var(--sur);border-radius:14px;padding:9px 8px;cursor:pointer;font-size:12px;font-weight:700;text-align:center;color:var(--tx2)}
.claim-type.on{border-color:#C8A96E;background:#fff7df;color:#7a6000;box-shadow:0 6px 16px rgba(200,169,110,.18)}
.claim-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:10px 0}.claim-form-grid .full{grid-column:1/-1}
.claim-form-grid label{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:var(--tx3);display:block;margin-bottom:3px}
.claim-form-grid input,.claim-form-grid textarea{width:100%;padding:8px 10px;border:1px solid var(--bdr2);border-radius:var(--rs);font-family:inherit;font-size:12px;background:#fff;color:var(--tx)}
.claim-items{display:grid;grid-template-columns:1fr;gap:7px;max-height:230px;overflow:auto;margin-top:8px;padding-right:2px}
.claim-item{display:flex;align-items:center;gap:9px;border:1px solid var(--bdr);background:var(--sur2);border-radius:14px;padding:8px;cursor:pointer}
.claim-item input{width:16px;height:16px;flex-shrink:0}.claim-item img,.claim-item-ph{width:42px;height:42px;border-radius:10px;object-fit:cover;background:var(--sur3);display:flex;align-items:center;justify-content:center;flex-shrink:0}.claim-item-main{min-width:0;flex:1}.claim-item-name{font-size:12px;font-weight:750;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.claim-item-meta{font-size:10px;color:var(--tx2)}
.claim-export-box{width:100%;min-height:210px;border:1px solid #e8d39b;border-radius:var(--rs);background:#fffdf7;padding:11px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;color:#243047;white-space:pre-wrap;resize:vertical}
.claim-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.claim-actions .btn{flex:1;justify-content:center}
@media(max-width:768px){.claim-type-grid{grid-template-columns:repeat(2,1fr)}.claim-form-grid{grid-template-columns:1fr}.claim-actions .btn{flex-basis:100%}}



/* === COFFRE-FORT PLEIN ÉCRAN — NAFA V2 === */
.vault-page{min-height:calc(var(--app-h) - 92px);padding:2px 0 24px;color:#071529}
.vault-hero{position:relative;overflow:hidden;border-radius:28px;padding:26px;background:radial-gradient(circle at 88% 12%,rgba(232,201,142,.30),transparent 28%),linear-gradient(135deg,#071529,#0F1F3D 55%,#1A345F);border:1px solid rgba(200,169,110,.42);box-shadow:0 24px 64px rgba(3,10,24,.28);color:#fff;margin-bottom:16px}
.vault-kicker{display:inline-flex;align-items:center;gap:7px;border:1px solid rgba(200,169,110,.30);background:rgba(200,169,110,.12);color:#E8C98E;font-size:11px;font-weight:800;border-radius:999px;padding:5px 10px;margin-bottom:12px}
.vault-hero-row{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;flex-wrap:wrap}
.vault-title{font-size:30px;font-weight:900;letter-spacing:-.9px;line-height:1.05;color:#E8C98E;margin-bottom:7px}
.vault-sub{font-size:13px;color:rgba(255,255,255,.68);max-width:640px;line-height:1.65}
.vault-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.btn-claim-soft{background:rgba(255,255,255,.08)!important;color:#E8C98E!important;border:1px solid rgba(232,201,142,.38)!important;box-shadow:none!important}
.btn-claim-soft:hover{background:rgba(232,201,142,.15)!important}
.vault-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:16px 0}
.vault-stat{background:rgba(255,255,255,.96);border:1px solid rgba(255,255,255,.75);border-radius:20px;padding:15px 16px;box-shadow:0 14px 34px rgba(15,31,61,.12)}
.vault-stat span{display:block;font-size:11px;color:#6B728C;font-weight:700;text-transform:uppercase;letter-spacing:.06em;margin-bottom:5px}.vault-stat b{display:block;font-size:22px;letter-spacing:-.5px;color:#071529}
.vault-layout{display:grid;grid-template-columns:1fr 320px;gap:14px;align-items:start}.vault-panel{background:rgba(255,255,255,.96);border:1px solid rgba(255,255,255,.75);border-radius:24px;padding:16px;box-shadow:0 18px 44px rgba(15,31,61,.12)}
.vault-panel-head{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:12px}.vault-panel-title{font-size:15px;font-weight:900;color:#071529;letter-spacing:-.2px}.vault-panel-sub{font-size:11px;color:#6B728C;margin-top:2px}
.vault-item-list{display:grid;gap:10px}.vault-item{display:flex;gap:12px;align-items:center;border:1px solid #E8E6F5;background:#F8FAFC;border-radius:18px;padding:10px;cursor:pointer;transition:all .15s}.vault-item:hover{border-color:rgba(200,169,110,.7);transform:translateY(-1px);box-shadow:0 10px 24px rgba(15,31,61,.10)}
.vault-item-img{width:58px;height:58px;border-radius:14px;object-fit:cover;background:#ECE8FF;display:flex;align-items:center;justify-content:center;font-size:24px;flex-shrink:0}.vault-item-main{flex:1;min-width:0}.vault-item-name{font-size:13px;font-weight:800;color:#071529;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vault-item-meta{font-size:11px;color:#6B728C;margin-top:2px}.vault-proof-row{display:flex;gap:5px;flex-wrap:wrap;margin-top:7px}.vault-proof{font-size:10px;font-weight:800;border-radius:999px;padding:3px 7px;background:#EEF2F8;color:#64708E}.vault-proof.ok{background:#E3F7EE;color:#0F9F6E}.vault-proof.warn{background:#FDF1DC;color:#B8780A}
.vault-side-card{border:1px solid #E8E6F5;background:#F8FAFC;border-radius:18px;padding:13px;margin-bottom:10px}.vault-side-card h4{font-size:13px;margin:0 0 5px;color:#071529}.vault-side-card p{font-size:11px;color:#6B728C;line-height:1.55;margin:0}.vault-discreet-claim{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid rgba(184,120,10,.32);background:#FFF9EC;border-radius:18px;padding:12px;box-shadow:0 10px 24px rgba(184,120,10,.08)}.vault-discreet-claim strong{font-size:13px;color:#7A4F00}.vault-discreet-claim small{display:block;font-size:11px;color:#8A6A24;margin-top:2px}
@media(max-width:900px){.vault-layout{grid-template-columns:1fr}.vault-stats{grid-template-columns:repeat(2,1fr)}.vault-title{font-size:24px}.vault-hero{padding:20px}}
@media(max-width:480px){.vault-stats{grid-template-columns:1fr 1fr;gap:8px}.vault-stat{padding:12px}.vault-stat b{font-size:18px}.vault-actions{width:100%}.vault-actions .btn{flex:1;justify-content:center}.vault-item-img{width:50px;height:50px}}


/* === PATCH COFFRE-FORT : annonces indépendantes, modifiables uniquement ici === */
.vault-item-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:9px}
.vault-sale-badge{display:inline-flex;align-items:center;gap:5px;font-size:10px;font-weight:850;border-radius:999px;padding:4px 8px;background:#E3F7EE;color:#0F9F6E}
.vault-sale-badge.off{background:#EEF2F8;color:#64708E}
.vault-edit-form{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}
.vault-edit-form .ef.full{grid-column:1/-1}
.vault-proof-box{border:1px solid #E8E6F5;background:#F8FAFC;border-radius:16px;padding:11px;display:grid;gap:8px}
.vault-proof-box b{font-size:12px;color:#071529}.vault-proof-box small{font-size:10px;color:#6B728C}
@media(max-width:640px){.vault-edit-form{grid-template-columns:1fr}.vault-actions .btn{width:100%;justify-content:center}}



/* === Correctif responsive iPhone / Nafa Assistant / export marketplace === */
html, body { max-width: 100%; overflow-x: hidden; }
#mkt-export-overlay{padding:12px!important;align-items:flex-start!important;overflow-y:auto!important;-webkit-overflow-scrolling:touch!important;}
#mkt-export-overlay > div{width:min(520px, calc(100vw - 18px))!important;max-width:calc(100vw - 18px)!important;max-height:calc(100dvh - 18px)!important;overflow-y:auto!important;-webkit-overflow-scrolling:touch!important;padding:16px!important;padding-bottom:calc(16px + env(safe-area-inset-bottom))!important;}
#mkt-export-overlay textarea,#mkt-export-overlay input,#mkt-export-overlay button{max-width:100%!important;box-sizing:border-box!important;}
@media (max-width:430px){
  #mkt-export-overlay{padding:8px!important;}
  #mkt-export-overlay > div{border-radius:18px!important;width:calc(100vw - 12px)!important;max-width:calc(100vw - 12px)!important;max-height:calc(100dvh - 12px)!important;padding:14px!important;}
  #mkt-export-overlay textarea{font-size:16px!important;line-height:1.35!important;}
  #mkt-export-overlay input{font-size:16px!important;}
  #mkt-export-overlay button{min-height:42px!important;}
}

/* Si le bloc Nafa Assistant est dans cette page ou dans un popup WebView */
.nafa-assistant,.nafa-popup,.assistant-popup,#nafa-assistant,#nafaPopup{
  width:min(100%,430px)!important;
  max-width:100vw!important;
  min-width:0!important;
  max-height:100dvh!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  -webkit-overflow-scrolling:touch!important;
  box-sizing:border-box!important;
  padding-bottom:calc(16px + env(safe-area-inset-bottom))!important;
}
.nafa-assistant *,.nafa-popup *,.assistant-popup *,#nafa-assistant *,#nafaPopup *{box-sizing:border-box!important;max-width:100%;}
.nafa-assistant input,.nafa-assistant textarea,.nafa-assistant select,
.nafa-popup input,.nafa-popup textarea,.nafa-popup select,
.assistant-popup input,.assistant-popup textarea,.assistant-popup select,
#nafa-assistant input,#nafa-assistant textarea,#nafa-assistant select,
#nafaPopup input,#nafaPopup textarea,#nafaPopup select{font-size:16px!important;width:100%!important;}
@media(max-width:430px){
  .nafa-assistant,.nafa-popup,.assistant-popup,#nafa-assistant,#nafaPopup{width:100vw!important;border-radius:0!important;padding:14px!important;}
  .nafa-assistant .row,.nafa-popup .row,.assistant-popup .row,#nafa-assistant .row,#nafaPopup .row,
  .nafa-assistant .grid,.nafa-popup .grid,.assistant-popup .grid,#nafa-assistant .grid,#nafaPopup .grid{display:grid!important;grid-template-columns:1fr!important;gap:10px!important;}
}


/* ================================================================
   CORRECTION iPhone 15 / Dynamic Island / Safe Area
   Ajouté par ChatGPT : évite le chevauchement avec la barre iOS
   et supprime le bandeau clair sous la navigation du bas.
   ================================================================ */
html{
  background:#0F2418!important;
  min-height:100%;
}
body{
  min-height:100svh!important;
  min-height:100dvh!important;
  background:
    radial-gradient(circle at 80% 0%,rgba(82,183,136,.18),transparent 28%),
    linear-gradient(180deg,#0F2418 0%,#2D6A4F 42%,#EEF5F1 100%)!important;
}
body.theme-premium{
  background:
    radial-gradient(circle at 78% 0%,rgba(200,169,110,.20),transparent 28%),
    radial-gradient(circle at 8% 18%,rgba(114,87,255,.14),transparent 24%),
    linear-gradient(180deg,#0A1628 0%,#0F1F3D 42%,#EEF2F8 100%)!important;
}
.shell{
  min-height:100svh!important;
  min-height:100dvh!important;
  background:transparent!important;
}
@media(max-width:768px){
  .topbar{
    padding-top:max(54px,calc(env(safe-area-inset-top,0px) + 18px))!important;
    padding-left:max(18px,calc(env(safe-area-inset-left,0px) + 18px))!important;
    padding-right:max(18px,calc(env(safe-area-inset-right,0px) + 18px))!important;
    padding-bottom:12px!important;
    gap:8px!important;
    width:100%!important;
    box-sizing:border-box!important;
  }
  #tb-logo{
    max-height:34px!important;
    width:auto!important;
    flex-shrink:0!important;
  }
  .topbar-title{
    min-width:0!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
  }
  .user-chip,
  #profile-wrap,
  #badge-topbar-icon{
    flex-shrink:0!important;
  }
  .bot-nav,
  .bottom-nav{
    padding-bottom:max(20px,env(safe-area-inset-bottom,0px))!important;
    background:#0F2418!important;
    border-top:1px solid rgba(64,145,108,.22)!important;
  }
  body.theme-premium .bot-nav,
  body.theme-premium .bottom-nav{
    background:#0A1628!important;
    border-top:1px solid rgba(200,169,110,.18)!important;
  }
}


/* NAFA — Alertes prix */
.pricewatch-hero{border:1px solid var(--bdr);background:linear-gradient(135deg,#fff,#f6fbff);border-radius:24px;padding:18px;margin-bottom:14px;box-shadow:0 14px 34px rgba(15,31,61,.08)}
.pricewatch-hero h2{margin:0 0 6px;font-size:22px;letter-spacing:-.4px}.pricewatch-hero p{margin:0;color:var(--tx2);font-size:13px;line-height:1.55}.pricewatch-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.pricewatch-list{display:grid;gap:10px}.pricewatch-row{background:var(--sur);border:1px solid var(--bdr);border-radius:18px;padding:12px;display:flex;gap:12px;align-items:center;box-shadow:0 8px 22px rgba(22,22,60,.04)}.pricewatch-img{width:54px;height:54px;border-radius:14px;background:var(--sur2);object-fit:cover;display:flex;align-items:center;justify-content:center;font-size:22px;flex-shrink:0}.pricewatch-main{min-width:0;flex:1}.pricewatch-name{font-size:13px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pricewatch-meta{font-size:11px;color:var(--tx2);margin-top:3px}.pricewatch-pill{display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:4px 8px;font-size:10px;font-weight:800;margin-top:7px}.pricewatch-up{background:#E3F7EE;color:#0F9F6E}.pricewatch-down{background:#FEE8E8;color:#D84A4A}.pricewatch-flat{background:#EEF2F8;color:#64708E}.pricewatch-right{text-align:right;flex-shrink:0}.pricewatch-price{font-size:15px;font-weight:900;color:var(--tx)}.pricewatch-source{font-size:10px;color:var(--tx3);margin-top:3px}.card-watch-badge{position:absolute;top:8px;left:8px;border-radius:999px;padding:5px 9px;font-size:10px;font-weight:900;backdrop-filter:blur(8px);display:flex;flex-direction:column;align-items:flex-start;gap:1px;line-height:1.05;box-shadow:0 8px 18px rgba(7,21,41,.10)}.card-watch-badge .watch-diff{font-size:11px;letter-spacing:-.15px}.card-watch-badge .watch-label{font-size:8px;font-weight:800;opacity:.82;white-space:nowrap}.card-watch-badge.positive{background:rgba(22,163,74,.13);color:#0f8f4f;border:1px solid rgba(22,163,74,.22)}.card-watch-badge.negative{background:rgba(220,38,38,.13);color:#c62828;border:1px solid rgba(220,38,38,.22)}.card-watch-badge.neutral{background:rgba(100,112,142,.14);color:#64708e;border:1px solid rgba(100,112,142,.20)}
@media(max-width:768px){.pricewatch-row{align-items:flex-start}.pricewatch-right{text-align:left}.pricewatch-hero h2{font-size:19px}}
body.theme-premium .pricewatch-hero{background:rgba(255,255,255,.96)!important;border-color:rgba(255,255,255,.70)!important;}
body.theme-premium .pricewatch-hero h2{color:#071529!important;}
body.theme-premium .pricewatch-hero p{color:#6B728C!important;}
body.theme-premium .pricewatch-row{background:rgba(255,255,255,.96)!important;border-color:rgba(255,255,255,.70)!important;box-shadow:0 18px 44px rgba(15,31,61,.13)!important;}
body.theme-premium .pricewatch-name{color:#071529!important;}
body.theme-premium .pricewatch-meta{color:#6B728C!important;}
body.theme-premium .pricewatch-price{color:#071529!important;}
body.theme-premium .pricewatch-source{color:#a8accb!important;}
body.theme-premium .pricewatch-img{background:#EEF2F8!important;}


/* === NAFA NAV CUSTOM ICONS ===
   Navigation pensée pour l’identité Nafa :
   boussole = Nafa / panier = Mes affaires / gemme = Mes trésors / échange = Boutique / carte = Mon espace.
   Les IDs et onclick restent inchangés pour préserver les fonctionnalités.
*/
.nafa-nav-icon-home svg,.nafa-nav-icon-items svg,.nafa-nav-icon-treasures svg,.nafa-nav-icon-shop svg,.nafa-nav-icon-community svg,.nafa-nav-icon-user svg,.nafa-nav-icon-scan svg,.nafa-nav-icon-alerts svg{width:22px;height:22px;display:block}


/* Correctif anti-chevauchement : hiérarchie stable des couches */
.item-detail-view,.item-edit-view{z-index:1200!important;}
.account-menu{z-index:1400!important;}
.nf-drawer-overlay{z-index:8000!important;}
.overlay,.nf-modal-ov{z-index:10000!important;}
.nafa-welcome-overlay{z-index:11000!important;}
body.nafa-panel-open{overflow:hidden;}
