.ic{width:1em;height:1em;display:inline-block;vertical-align:-0.13em;flex-shrink:0;}
  .btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;font-family:var(--font);font-weight:600;font-size:14px;line-height:1;border-radius:11px;border:1px solid transparent;background:var(--accent);color:#fff;padding:11px 17px;cursor:pointer;transition:.16s ease;letter-spacing:-.01em;}
  .btn .ic{width:16px;height:16px;}
  .btn:hover{background:var(--accent-h);transform:translateY(-1px);box-shadow:var(--shadow);} .btn:disabled{opacity:.5;cursor:not-allowed;}
  .btn.sm{font-size:13px;padding:8px 13px;border-radius:10px;}
  .btn.primary{background:var(--accent);color:#fff;}
  .btn.quiet{background:var(--surface);color:var(--text-dim);border-color:var(--border);}
  .btn.quiet:hover{border-color:var(--accent);color:var(--accent);background:var(--surface);}
  .btn.ghost{background:transparent;color:var(--text-dim);border-color:var(--border);}
  .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:transparent;}
  .btn.danger{background:var(--red);color:#fff;}
  .head-actions{display:flex;gap:8px;align-items:center;}
  .pills{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px;}
  .pill{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:500;color:var(--text-dim);background:var(--surface);border:1px solid var(--border);border-radius:999px;padding:7px 14px;cursor:pointer;transition:.15s;letter-spacing:-.01em;}
  .pill .ic{width:15px;height:15px;}
  .pill:hover{border-color:var(--border-light);color:var(--text);}
  .pill.active{background:var(--text);border-color:var(--text);color:var(--bg);}
  .pill .count{font-size:11px;font-weight:700;opacity:.65;}
  .pill.active .count{opacity:.85;}
  .grid-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:18px;}
  .gb-label{font-size:12px;color:var(--text-mute);margin-right:8px;font-weight:500;}
  .hide-seen-btn{display:inline-flex;align-items:center;gap:6px;font-family:var(--font);font-size:12.5px;font-weight:500;color:var(--text-dim);background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:7px 13px;cursor:pointer;transition:.15s;}
  .hide-seen-btn .ic{width:15px;height:15px;}
  .hide-seen-btn:hover{border-color:var(--accent);color:var(--accent);}
  .hide-seen-btn.on{background:var(--accent);border-color:var(--accent);color:#fff;}
  #veille-grid .grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;align-items:start;}
  .ocard{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:15px 16px;display:flex;flex-direction:column;gap:9px;transition:border-color .16s,box-shadow .16s;}
  .ocard:hover{border-color:var(--border-light);box-shadow:var(--shadow);}
  .ocard.is-ignore{opacity:.5;}
  .ocard-main{display:flex;gap:12px;align-items:flex-start;}
  .ocard-logo{flex-shrink:0;width:42px;height:42px;border-radius:11px;display:grid;place-items:center;overflow:hidden;background:var(--surface-2);border:1px solid var(--border);font-family:var(--display);font-weight:700;font-size:17px;color:var(--text-dim);cursor:pointer;}
  .ocard-logo img{width:100%;height:100%;object-fit:contain;padding:6px;}
  .ocard-tt{flex:1;min-width:0;cursor:pointer;}
  .ocard-title{font-size:14.5px;font-weight:650;line-height:1.3;letter-spacing:-.015em;color:var(--text);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
  .ocard-tt:hover .ocard-title{color:var(--accent);}
  .ocard-co{font-size:12.5px;color:var(--text-dim);margin-top:3px;line-height:1.4;}
  .ocard-co .dot{margin:0 5px;color:var(--text-mute);}
  .ocard-brand{color:var(--gold);cursor:pointer;display:inline-flex;vertical-align:-.12em;}
  .ocard-brand .ic{width:13px;height:13px;}
  .brand-quickadd{font-size:11px;font-weight:600;color:var(--text-mute);background:var(--surface-2);border:1px dashed var(--border);border-radius:999px;padding:2px 9px;cursor:pointer;transition:.15s;vertical-align:.05em;}
  .brand-quickadd:hover{color:var(--accent);border-color:var(--accent);background:var(--accent-soft);}
  .brand-quickadd:disabled{opacity:.6;cursor:default;}
  .ocard-new{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--accent);background:var(--accent-soft);padding:1px 6px;border-radius:999px;}
  .ocard-rate{display:flex;gap:5px;flex-shrink:0;}
  .rate{width:34px;height:34px;border-radius:10px;border:1px solid var(--border);background:var(--surface);color:var(--text-mute);cursor:pointer;display:grid;place-items:center;transition:.14s;}
  .rate .ic{width:17px;height:17px;}
  .rate:hover{transform:translateY(-1px);}
  .rate.star:hover{border-color:var(--gold);color:var(--gold);}
  .rate.heart:hover{border-color:var(--accent);color:var(--accent);}
  .rate.star.on{background:var(--gold);border-color:var(--gold);color:#fff;}
  .rate.heart.on{background:var(--accent);border-color:var(--accent);color:#fff;}
  .ocard-sub{display:flex;align-items:center;flex-wrap:wrap;gap:2px;font-size:11.5px;color:var(--text-dim);}
  .ocard-sub .dot{margin:0 6px;color:var(--text-mute);}
  .ocard-src{display:inline-flex;align-items:center;gap:4px;}
  .ocard-src .ic{width:12px;height:12px;}
  .ocard-aff{display:inline-flex;align-items:center;gap:4px;font-weight:700;}
  .ocard-aff .ic{width:12px;height:12px;}
  .ocard-aff.hi{color:var(--accent);} .ocard-aff.mid{color:var(--cyan);} .ocard-aff.lo{color:var(--text-mute);}
  .ocard-desc{font-size:12.5px;color:var(--text-dim);line-height:1.55;max-height:150px;overflow:auto;}
  .ocard-desc .muted{color:var(--text-mute);}
  .act{width:36px;height:36px;border-radius:10px;border:1px solid var(--border);background:var(--surface);color:var(--text-mute);cursor:pointer;display:grid;place-items:center;transition:.14s;}
  .act .ic{width:18px;height:18px;}
  .act:hover{border-color:var(--border-light);color:var(--text-dim);transform:translateY(-1px);}
  .act.on{background:var(--text);border-color:var(--text);color:#fff;}
  .ocard-hover-acts{display:flex;gap:7px;flex-wrap:wrap;}
  .ocard-hover-acts .btn{flex:1 1 auto;justify-content:center;}
  .ocard-hover-acts .btn.danger:hover{border-color:var(--red);color:var(--red);}
  .ocard-hover{display:none;}
  @media(hover:hover){
    .ocard-hover{position:absolute;left:-1px;right:-1px;top:calc(100% - 1px);display:flex;flex-direction:column;gap:9px;background:var(--surface);border:1px solid var(--border-light);border-top:none;border-radius:0 0 var(--radius) var(--radius);box-shadow:var(--shadow-lg);padding:3px 16px 15px;max-height:0;overflow:hidden;opacity:0;pointer-events:none;transition:opacity .14s ease,max-height .18s ease;z-index:20;}
    .ocard:hover{z-index:21;border-bottom-left-radius:0;border-bottom-right-radius:0;}
    .ocard:hover .ocard-hover{max-height:460px;opacity:1;pointer-events:auto;}
  }
  @media(hover:none){
    .ocard-hover{display:flex;flex-direction:column;gap:9px;border-top:1px dashed var(--border);margin-top:3px;padding-top:10px;}
  }
  .todo{display:flex;align-items:center;gap:13px;background:color-mix(in srgb,var(--sig) 3%,var(--surface));border:1px solid transparent;border-radius:var(--radius-sm);padding:14px 15px;cursor:pointer;transition:.16s ease;box-shadow:0 2px 8px rgba(12,27,42,.10);}
  .todo:hover{transform:translateY(-2px);box-shadow:0 8px 22px rgba(12,27,42,.16);}
  .todo-ic{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;background:var(--surface-2);color:var(--text-mute);flex-shrink:0;}
  .todo-ic .ic{width:19px;height:19px;}
  .todo.active .todo-ic{background:var(--accent-soft);color:var(--accent);}
  .todo-tx{min-width:0;}
  .todo .n{font-size:26px;font-weight:700;line-height:1;letter-spacing:-.02em;color:var(--text);}
  .todo.zero .n{color:var(--text-mute);font-weight:600;}
  .todo .t{font-size:12px;color:var(--text-dim);font-weight:500;margin-top:3px;line-height:1.25;}
  .info-btn{display:inline-flex;align-items:center;gap:6px;background:transparent;border:1px solid var(--border);color:var(--text-mute);border-radius:999px;padding:4px 9px;font-size:11.5px;font-weight:500;font-family:var(--font);cursor:pointer;transition:.14s;line-height:1;}
  .info-btn .ic{width:14px;height:14px;}
  .info-btn:hover{border-color:var(--accent);color:var(--accent);}
  .info-btn.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);}
  .cockpit-title .info-btn{margin-left:auto;text-transform:none;letter-spacing:0;border-color:rgba(255,255,255,.45);color:rgba(255,255,255,.92);}
  .cockpit-title .info-btn:hover{background:rgba(255,255,255,.16);border-color:rgba(255,255,255,.7);color:#fff;}
  .cockpit-title .info-btn.on{background:rgba(255,255,255,.2);border-color:#fff;color:#fff;}
  .cockpit .info-panel{background:rgba(255,255,255,.16);border-color:rgba(255,255,255,.28);color:rgba(255,255,255,.95);}
  .cockpit .info-panel b{color:#fff;}
  .info-panel{display:none;font-size:12.5px;color:var(--text-dim);line-height:1.6;background:var(--surface-2);border:1px solid var(--border);border-radius:11px;padding:12px 15px;margin:10px 0 4px;}
  .info-panel.open{display:block;animation:fade .2s;}
  .info-panel code{background:var(--surface-3);padding:1px 6px;border-radius:5px;font-size:11.5px;}
  .info-panel b{color:var(--text);}
  .panel-info-row{display:flex;justify-content:flex-end;margin-top:4px;}
  .tl-title .ic{width:17px;height:17px;color:var(--accent);}
  .tl-toggle .btn .ic{width:14px;height:14px;}
  .rsort .ic{width:14px;height:14px;vertical-align:-.12em;}
  .reve-visite{display:inline-flex;align-items:center;gap:4px;}
  .reve-visite .ic{width:12px;height:12px;}
  .reve-off .ic{width:12px;height:12px;vertical-align:-.1em;}
  .reve-off .dot{margin:0 4px;color:var(--text-mute);}
  .brand-off-stat{display:inline-flex;align-items:center;gap:5px;}
  .brand-off-stat .ic{width:14px;height:14px;}
  .empty-ico .ic{width:30px;height:30px;}
  .pc-links a.full{flex:0 0 100%;display:inline-flex;align-items:center;justify-content:center;gap:7px;font-size:13px;font-weight:600;}
  .pc-links a.site-link{background:var(--grad);color:#fff;border-color:transparent;box-shadow:0 4px 14px var(--glow);}
  .pc-links a.site-link:hover{filter:brightness(1.05);color:#fff;}
  .pc-links a.site-link .ic{width:16px;height:16px;}
  .pc-links a.site-link .site-dom{opacity:.85;font-weight:500;}
  .pc-links a.full .ic{width:16px;height:16px;}
  .relances-head{display:flex;align-items:center;gap:8px;}
  .relances-head .ic{width:17px;height:17px;color:var(--orange);}
  .rel-done .ic{width:15px;height:15px;}
  .tag-chip .ic{width:11px;height:11px;vertical-align:-.1em;margin-right:2px;}
  .q-chip{display:inline-flex;align-items:center;gap:3px;}
  .q-chip .ic{width:11px;height:11px;}
  .pc-section-h{display:flex;align-items:center;gap:7px;}
  .pc-section-h .ic{width:14px;height:14px;color:var(--text-mute);}
  .pc-missing-ico{flex-shrink:0;display:inline-flex;color:var(--accent);}
  .pc-missing-ico .ic{width:15px;height:15px;}
  .pc-complete{display:flex;align-items:center;justify-content:center;gap:6px;}
  .pc-complete .ic{width:14px;height:14px;}
  .api-title .ic{width:15px;height:15px;color:var(--text-mute);}
  .error-box .ic{width:15px;height:15px;vertical-align:-.15em;margin-right:4px;}
  .setup-box .ic{width:15px;height:15px;vertical-align:-.15em;margin-right:4px;}
  .bookmarklet-btn .ic{width:14px;height:14px;vertical-align:-.13em;margin-right:5px;}
  .mini-map-loading .ic{width:13px;height:13px;vertical-align:-.12em;margin-right:3px;}
  .brand-chip .ic{width:12px;height:12px;}
