* { box-sizing: border-box; margin: 0; padding: 0; }
    :root {
      --g-deep: #ede5d8; --g-dark: #e4d8c6; --g-mid: #d8cbb6; --g-light: #c8b89e;
      --amber: #4e6e22; --amber-hi: #6e9432;
      --cream: #2a1a0e; --cream-muted: #6a5840; --cream-dim: #9a8a78;
    }
    html, body { height: 100%; overflow: hidden; font-family: 'Nunito',sans-serif; background: var(--g-deep); color: var(--cream); }

    /* Soft noise texture */
    body::before {
      content:''; position:fixed; inset:0; z-index:0; pointer-events:none;
      background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)' opacity='0.035'/%3E%3C/svg%3E");
      opacity:.25;
    }

    /* Tint map tiles -- subtle botanical warm, not too washed */
    .leaflet-tile { filter: saturate(0.85) sepia(0.12) brightness(0.97); }



    /* -- CLUSTER -- */
    .marker-cluster {
      background: rgba(78,110,34,.15) !important;
      border: 2px solid rgba(78,110,34,.5) !important;
      display:flex !important; align-items:center !important; justify-content:center !important;
    }
    .marker-cluster div {
      background: rgba(237,229,216,.95) !important;
      color: #2a1a0e !important;
      font-family: 'Nunito',sans-serif !important;
      font-size: clamp(9px,2.8vw,13px) !important; font-weight: 800 !important;
      border: 2px solid rgba(78,110,34,.45) !important;
      display:flex !important; align-items:center !important; justify-content:center !important;
      margin: 0 !important; width:34px !important; height:34px !important;
      padding: 0 2px !important; line-height:1 !important;
    }
    .marker-cluster-small, .marker-cluster-medium, .marker-cluster-large {
      background: rgba(78,110,34,.14) !important;
    }

    /* -- MAP -- */
    #map { position: absolute; inset: 0; z-index: 1; }
    .leaflet-control-attribution { background: rgba(237,229,216,.75) !important; color: var(--cream-dim) !important; font-size: 9px !important; }
    .leaflet-control-attribution a { color: var(--amber) !important; }
    .leaflet-control-zoom a { background: rgba(237,229,216,.97) !important; color: #2a1a0e !important; border-color: rgba(78,110,34,.18) !important; }
    .leaflet-control-zoom a:hover { background: var(--g-mid) !important; }
    .leaflet-top.leaflet-right { top: 56px !important; } /* bajo el botón de auth */

    /* -- HEADER -- */
    #header {
      position: absolute; top: 14px; left: 14px; z-index: 100;
      background: rgba(237,229,216,.9); backdrop-filter: blur(10px);
      border: 1px solid rgba(78,110,34,.22); border-radius: 14px;
      padding: 10px 16px;
    }
    #header .logo { font-family: 'Cormorant Garamond',Georgia,serif; font-size: 21px; font-weight: 600; color: var(--cream); letter-spacing: -.5px; }
    #header .logo em { color: var(--amber); font-style: normal; }
    #header .sub { font-size: 10px; color: var(--cream-muted); font-style: italic; margin-top: 1px; }

    /* -- ADD BANNER -- */
    #add-banner {
      display: none; position: absolute; top: 14px; left: 50%; transform: translateX(-50%);
      z-index: 100; background: var(--amber); color: var(--g-deep);
      padding: 8px 22px; border-radius: 22px; font-size: 13px; font-weight: 500;
      box-shadow: 0 4px 20px rgba(78,110,34,.35); white-space: nowrap;
      animation: blink 2s ease-in-out infinite;
    }
    @keyframes blink { 0%,100%{opacity:1} 50%{opacity:.75} }

    /* -- COUNTER -- */
    #counter {
      position: absolute; bottom: 28px; left: 16px; z-index: 100;
      background: rgba(237,229,216,.95); backdrop-filter: blur(8px);
      border: 1px solid rgba(78,110,34,.25); border-radius: 20px;
      padding: 7px 14px; font-size: 12px; color: var(--cream-muted); font-style: italic;
      box-shadow: 0 2px 8px rgba(0,0,0,.12);
    }
    #counter strong { color: var(--amber); }

    /* -- FAB -- */
    #fab {
      position: absolute; bottom: 28px; right: 18px; z-index: 100;
      width: 56px; height: 56px; border-radius: 50%;
      background: var(--amber); border: none; cursor: pointer;
      font-size: 28px; line-height: 1; color: var(--g-deep);
      box-shadow: 0 4px 20px rgba(78,110,34,.4);
      display: flex; align-items: center; justify-content: center;
      transition: all .2s;
    }
    #fab:hover { background: var(--amber-hi); transform: scale(1.06); }
    #fab.cancel { background: #c97a7a; transform: rotate(45deg); }

    /* -- GPS BTN -- */
    #gps-btn {
      position: absolute; bottom: 28px; right: 86px; z-index: 100;
      width: 42px; height: 42px; border-radius: 50%;
      background: #6b982d; border: none; color: #ede5d8;
      cursor: pointer; font-size: 17px; line-height: 1;
      display: flex; align-items: center; justify-content: center;
      box-shadow: 0 2px 10px rgba(78,110,34,.4); transition: all .2s;
    }
    #gps-btn:hover { background: #5a8025; transform: scale(1.06); }

    /* -- CUSTOM PIN -- */
    .t-pin { display:flex; flex-direction:column; align-items:center; cursor:pointer; filter:drop-shadow(0 3px 8px rgba(0,0,0,.55)); transition:transform .15s; }
    .t-pin:hover { transform: translateY(-3px) scale(1.06); }
    .t-pin-ring { width:58px; height:58px; border-radius:50%; border:3px solid var(--amber); overflow:hidden; background:var(--g-mid); }
    .t-pin-ring img { width:100%; height:100%; object-fit:cover; display:block; }
    .t-pin-tip { width:0; height:0; border-left:8px solid transparent; border-right:8px solid transparent; border-top:13px solid var(--amber); margin-top:-2px; }

    /* -- OVERLAY -- */
    .overlay {
      position:absolute; inset:0; z-index:200;
      background:rgba(0,0,0,.55); backdrop-filter:blur(3px);
      display:flex; align-items:flex-end; justify-content:center;
    }
    .sheet {
      background:var(--g-dark); border:1px solid rgba(78,110,34,.18);
      border-bottom:none; border-radius:20px 20px 0 0;
      width:100%; max-width:500px; max-height:90vh; overflow-y:auto;
      padding:18px 20px 28px; position:relative;
      animation:slideUp .28s ease;
      transition: transform .28s ease, opacity .24s ease;
    }
    @keyframes slideUp { from{transform:translateY(50px);opacity:0} to{transform:translateY(0);opacity:1} }
    @keyframes slideDown { from{transform:translateY(0);opacity:1} to{transform:translateY(60px);opacity:0} }
    .sheet.closing { animation:slideDown .24s ease forwards; }
    .overlay.closing { opacity:0; transition:opacity .28s ease; }
    .handle { width:40px; height:5px; background:rgba(78,110,34,.3); border-radius:3px; margin:0 auto 4px; transition:background .2s; }
    .handle:hover { background:rgba(78,110,34,.55); }
    .sheet-title { font-family:'Cormorant Garamond',Georgia,serif; font-size:18px; color:var(--cream); margin-bottom:16px; }
    .close-x {
      background:rgba(0,0,0,.10); border:1px solid rgba(0,0,0,.12); border-radius:50%;
      width:30px; height:30px; cursor:pointer; color:var(--cream); font-size:15px;
      display:flex; align-items:center; justify-content:center;
      flex-shrink:0; line-height:1;
    }
    /* only in sheet-scroll context (not det-header) */
    .sheet-scroll > .close-x { position:absolute; top:14px; right:16px; }

    /* -- FORM -- */
    .upload-zone {
      border:2px dashed rgba(78,110,34,.25); border-radius:12px;
      padding:26px; text-align:center; cursor:pointer;
      color:var(--cream-muted); font-size:13px; margin-bottom:13px;
      transition:all .2s; background:rgba(0,0,0,.03);
    }
    .upload-zone:hover { border-color:var(--amber); background:rgba(78,110,34,.06); }
    .upload-zone.filled { padding:0; border-style:solid; border-color:var(--amber); position:relative; }
    .upload-zone.filled img { width:100%; max-height:200px; object-fit:cover; border-radius:10px; display:block; }
    /* photo action buttons rendered by JS */
    .photo-btns {
      position:absolute; bottom:9px; right:9px;
      display:flex; flex-direction:column; gap:5px; align-items:flex-end;
    }
    .photo-btn {
      background:rgba(237,229,216,.9); color:#2a1a0e;
      border:1px solid rgba(78,110,34,.35); border-radius:18px;
      font-size:11px; font-family:'Nunito',sans-serif;
      padding:5px 12px; cursor:pointer; white-space:nowrap;
      transition:background .15s; pointer-events:auto;
    }
    .photo-btn:hover { background:rgba(220,210,195,1); }
    .upload-icon { font-size:30px; display:block; margin-bottom:7px; }
    textarea {
      width:100%; background:rgba(0,0,0,.05); border:1px solid rgba(78,110,34,.22);
      border-radius:10px; color:var(--cream); font-family:'Nunito',sans-serif; font-size:13px;
      padding:11px; resize:none; height:88px; outline:none; margin-bottom:13px; font-size:16px;
    }
    textarea::placeholder { color:var(--cream-dim); }
    textarea:focus { border-color:var(--amber); }
    .btn-prim {
      width:100%; background:var(--amber); color:var(--g-deep); border:none;
      border-radius:10px; padding:13px; font-family:'Cormorant Garamond',Georgia,serif; font-size:15px;
      font-weight:600; cursor:pointer; transition:background .2s;
    }
    .btn-prim:hover { background:var(--amber-hi); }
    .btn-prim:disabled { opacity:.45; cursor:default; }
    .btn-sec {
      width:100%; background:transparent; color:var(--cream-muted);
      border:1px solid rgba(0,0,0,.10); border-radius:10px;
      padding:11px; font-family:'Nunito',sans-serif; font-size:13px; cursor:pointer;
      margin-top:8px;
    }

    /* -- DETAIL -- */
    .det-photo { width:100%; max-height:240px; object-fit:cover; border-radius:12px; margin-bottom:13px; display:block; }
    .det-desc { font-size:14px; color:var(--cream); line-height:1.65; margin-bottom:10px; }
    .det-meta { font-size:11px; color:var(--cream-dim); font-style:italic; margin-bottom:16px; }
    .votes { display:flex; gap:9px; margin-bottom:20px; }
    .vbtn {
      flex:1; display:flex; align-items:center; justify-content:center; gap:7px;
      background:rgba(0,0,0,.06); border:1px solid rgba(0,0,0,.10);
      border-radius:10px; padding:10px; cursor:pointer; color:var(--cream-muted);
      font-size:13px; font-family:'Nunito',sans-serif; transition:all .18s;
    }
    .vbtn .ico { font-size:20px; }
    .vbtn:hover { border-color:rgba(78,110,34,.3); color:var(--cream); }
    .vbtn.up { background:rgba(78,110,34,.14); border-color:#4e6e22; color:#6e9432; }
    .vbtn.dn { background:rgba(232,183,193,.16); border-color:#c07060; color:#c97a7a; }
    .report-btn { flex:0 0 44px; }
    .report-btn.reported { background:rgba(232,183,193,.16); border-color:#c07060; color:#c97a7a; }
    .sec-hd { font-family:'Cormorant Garamond',Georgia,serif; font-size:10px; letter-spacing:.8px; text-transform:uppercase; color:var(--amber); margin-bottom:11px; }
    .comment { background:rgba(0,0,0,.06); border-radius:8px; padding:10px 12px; margin-bottom:8px; }
    .comment p { font-size:13px; color:var(--cream); line-height:1.5; }
    .comment small { font-size:10px; color:var(--cream-dim); font-style:italic; margin-top:3px; display:block; }
    .no-comment { font-size:12px; color:var(--cream-dim); font-style:italic; text-align:center; padding:12px 0; }
    .cmt-row { display:flex; gap:8px; margin-top:12px; }
    .cmt-row input {
      flex:1; background:rgba(0,0,0,.05); border:1px solid rgba(78,110,34,.22);
      border-radius:8px; color:var(--cream); font-family:'Nunito',sans-serif; font-size:12px;
      padding:9px 12px; outline:none; font-size:16px;
    }
    .cmt-row input:focus { border-color:var(--amber); }
    .cmt-row input::placeholder { color:var(--cream-dim); }
    .cmt-send {
      background:var(--amber); border:none; border-radius:8px;
      padding:0 14px; cursor:pointer; color:var(--g-deep); font-size:16px; transition:background .2s;
    }
    .cmt-send:hover { background:var(--amber-hi); }

    /* -- CROPPER -- */
    #crop-modal {
      display:none; position:fixed; inset:0; z-index:600;
      background:#000; flex-direction:column;
    }
    #crop-modal.active { display:flex; }
    #crop-hint {
      padding:11px 20px; text-align:center; font-size:12px;
      color:var(--cream-muted); font-style:italic;
      background:#2a1a0e; border-bottom:1px solid rgba(78,110,34,.12);
    }
    #crop-viewport {
      position:relative; flex:1; overflow:hidden;
      touch-action:none; cursor:grab; background:#2a1a0e;
    }
    #crop-viewport:active { cursor:grabbing; }
    #crop-img {
      position:absolute; top:0; left:0;
      user-select:none; -webkit-user-drag:none; pointer-events:none;
      transform-origin:top left;
    }
    #crop-frame {
      position:absolute; top:50%; left:50%;
      transform:translate(-50%,-50%);
      width:260px; height:260px;
      border:2px solid var(--amber);
      box-shadow:0 0 0 2000px rgba(0,0,0,.68);
      z-index:2; pointer-events:none; border-radius:4px;
    }
    /* corner guides */
    #crop-frame::before, #crop-frame::after {
      content:''; position:absolute;
      width:22px; height:22px;
      border-color:var(--amber-hi); border-style:solid;
    }
    #crop-frame::before {
      top:-2px; left:-2px;
      border-width:3px 0 0 3px; border-radius:3px 0 0 3px;
    }
    #crop-frame::after {
      bottom:-2px; right:-2px;
      border-width:0 3px 3px 0; border-radius:0 0 3px 3px;
    }
    #crop-bar {
      padding:14px 20px; background:#2a1a0e;
      border-top:1px solid rgba(78,110,34,.14);
      display:flex; gap:10px;
    }
    #crop-bar .btn-prim { flex:2; padding:11px; font-size:14px; }
    #crop-bar .btn-sec  { flex:1; padding:11px; margin:0; }

    /* -- LIGHTBOX -- */
    #lightbox {
      display:none; position:fixed; inset:0; z-index:700;
      background:rgba(0,0,0,.93); align-items:center; justify-content:center;
      animation:fadeIn .22s ease;
    }
    #lightbox.active { display:flex; }
    @keyframes fadeIn { from{opacity:0} to{opacity:1} }
    #lightbox img {
      max-width:96vw; max-height:90vh; border-radius:10px;
      box-shadow:0 8px 40px rgba(0,0,0,.8);
      object-fit:contain;
    }
    #lightbox-close {
      position:absolute; top:18px; right:18px;
      background:rgba(0,0,0,.12); border:none; border-radius:50%;
      width:36px; height:36px; font-size:18px; color:#2a1a0e;
      cursor:pointer; display:flex; align-items:center; justify-content:center;
    }

    /* make det-photo tappable */
    #det-photo { cursor:zoom-in; max-height:180px; }

    /* -- DETAIL FULLSCREEN -- */
    .det-sheet {
      max-height: 100dvh !important;
      height: 100dvh !important;
      display: flex !important;
      flex-direction: column !important;
      padding: 0 !important;
      overflow: hidden !important;
      border-radius: 0 !important; /* full screen: sin border-radius */
    }
    .det-header {
      flex-shrink: 0; height: 36px;
      display: flex; align-items: center; justify-content: center;
      position: relative; /* for absolute close-x */
    }
    .det-header .handle {
      width: 40px; height: 5px;
      background: rgba(78,110,34,.3); border-radius: 3px;
      cursor: pointer; transition: background .2s;
    }
    .det-header .handle:hover { background: rgba(78,110,34,.55); }
    .det-header .close-x {
      position: absolute; right: 14px; top: 50%; transform: translateY(-50%);
    }
    .det-scroll {
      flex: 1 1 auto !important;
      overflow-y: auto !important;
      padding: 0 16px 10px !important;
      min-height: 0 !important;
    }
    .det-footer {
      flex-shrink: 0;
    }
    .det-cmt-bar {
      flex-shrink: 0;
      border-top: 1px solid rgba(78,110,34,.15);
      padding: 8px 14px 8px;
    }
    .det-cmt-bar .cmt-row { margin: 0; }


    .votes { gap: 7px; margin-bottom: 14px; }
    .vbtn { padding: 7px 8px; font-size: 12px; }
    .vbtn .ico { font-size: 17px; }

    /* -- SHEET BASE -- */
    .sheet { display:flex; flex-direction:column; padding:0; }
    .sheet-scroll { flex:1; overflow-y:auto; padding:18px 20px 20px; }

    /* -- COLLAPSIBLE AD BANNER -- */
    #det-ad-wrap {
      flex-shrink:0;
      margin-top: 10px; /* separación mínima del cmt-row -> anti click accidental */
    }
    #det-ad-puller {
      height:22px; display:flex; align-items:center; justify-content:center;
      background:rgba(78,110,34,.07); border-top:1px solid rgba(78,110,34,.14);
      cursor:pointer; user-select:none; gap:6px;
      transition:background .2s;
    }
    #det-ad-puller:hover { background:rgba(78,110,34,.12); }
    #det-ad-puller .ad-label {
      font-size:9px; letter-spacing:.5px; text-transform:uppercase;
      color:rgba(78,110,34,.38); font-family:'Nunito',sans-serif;
    }
    #det-ad-puller .ad-arrow {
      font-size:10px; color:rgba(78,110,34,.38);
      transition:transform .3s ease;
      display:inline-block;
    }
    #det-ad-body {
      overflow:hidden; max-height:0;
      transition:max-height 0.9s cubic-bezier(.16,1,.3,1); /* ease-out expo, fluido */
      background:rgba(0,0,0,.025);
    }
    #det-ad-body.expanded { max-height:280px; } /* límite duro: Google no puede exceder esto */
    #det-ad-puller.expanded .ad-arrow { transform:rotate(180deg); }
    #det-ad-inner {
      /* contenedor de la ins de AdSense */
      width:100%; height:280px; overflow:hidden;
      display:flex; align-items:center; justify-content:center;
    }
    #det-ad-inner ins.adsbygoogle {
      display:block; width:100%; height:280px;
    }

    /* -- CAFECITO SNACKBAR -- */
    #cafecito-snack {
      position:absolute; bottom:100px; left:50%; transform:translateX(-50%) translateY(12px);
      z-index:150; width:calc(100% - 32px); max-width:380px;
      background:rgba(237,229,216,.97); backdrop-filter:blur(14px);
      border:1px solid rgba(78,110,34,.25); border-radius:16px;
      padding:14px 36px 14px 16px;
      display:flex; align-items:center; gap:12px;
      box-shadow:0 6px 28px rgba(0,0,0,.18);
      opacity:0; pointer-events:none;
      transition:opacity 1.2s ease, transform 1.2s ease;
    }
    #cafecito-snack.visible {
      opacity:1; pointer-events:auto; transform:translateX(-50%) translateY(0);
    }
    #cafecito-snack .cf-icon { font-size:24px; flex-shrink:0; }
    #cafecito-snack .cf-text { flex:1; }
    #cafecito-snack .cf-text strong {
      display:block; font-family:'Cormorant Garamond',Georgia,serif;
      font-size:13px; color:var(--cream); font-weight:600; margin-bottom:2px;
    }
    #cafecito-snack .cf-text span { font-size:11px; color:var(--cream-dim); font-style:italic; }
    #cafecito-snack .cf-btn {
      background:var(--amber); border:none; border-radius:10px;
      padding:8px 12px; font-family:'Cormorant Garamond',Georgia,serif;
      font-size:11px; color:#1e2818; font-weight:600; cursor:pointer;
      flex-shrink:0; white-space:nowrap; transition:background .2s;
    }
    #cafecito-snack .cf-btn:hover { background:var(--amber-hi); }
    #cafecito-snack .cf-close {
      position:absolute; top:10px; right:12px;
      background:none; border:none; color:var(--cream-dim);
      font-size:14px; cursor:pointer; padding:2px 4px;
    }
    /* -- AUTH MODAL -- */
    #auth-modal { z-index:800; }
    #auth-pw input:focus, #auth-magic-email:focus { border-color:var(--amber) !important; outline:none; }
    .auth-title { font-family:'Cormorant Garamond',Georgia,serif; font-size:20px; color:var(--cream); margin-bottom:6px; }
    .auth-sub { font-size:13px; color:var(--cream-muted); font-style:italic; margin-bottom:22px; line-height:1.5; }
    .auth-btn {
      width:100%; display:flex; align-items:center; gap:12px;
      background:rgba(0,0,0,.06); border:1px solid rgba(0,0,0,.12);
      border-radius:12px; padding:13px 16px; cursor:pointer; color:var(--cream);
      font-family:'Nunito',sans-serif; font-size:14px; margin-bottom:10px;
      transition:all .18s; text-align:left;
    }
    .auth-btn:hover { background:rgba(0,0,0,.10); border-color:rgba(78,110,34,.3); }
    .auth-btn .auth-ico { font-size:22px; width:28px; text-align:center; flex-shrink:0; }
    .auth-divider {
      display:flex; align-items:center; gap:10px;
      margin:16px 0; color:var(--cream-dim); font-size:11px;
    }
    .auth-divider::before, .auth-divider::after {
      content:''; flex:1; height:1px; background:rgba(0,0,0,.10);
    }
    .auth-email-row { display:flex; gap:8px; margin-top:4px; }
    .auth-email-row input {
      flex:1; background:rgba(0,0,0,.05); border:1px solid rgba(78,110,34,.22);
      border-radius:10px; color:var(--cream); font-family:'Nunito',sans-serif; font-size:16px;
      padding:11px 14px; outline:none;
    }
    .auth-email-row input:focus { border-color:var(--amber); }
    .auth-email-row input::placeholder { color:var(--cream-dim); }
    .auth-email-row button {
      background:var(--amber); border:none; border-radius:10px;
      padding:0 16px; color:var(--g-deep); font-family:'Cormorant Garamond',Georgia,serif;
      font-size:13px; font-weight:600; cursor:pointer; white-space:nowrap;
      transition:background .2s;
    }
    .auth-email-row button:hover { background:var(--amber-hi); }
    .auth-note { font-size:10px; color:var(--cream-dim); font-style:italic; margin-top:10px; text-align:center; }

    /* -- USER BUTTON -- */
    #user-btn {
      position:absolute; top:14px; right:14px; z-index:100;
      background:rgba(237,229,216,.9); backdrop-filter:blur(10px);
      border:1px solid rgba(78,110,34,.22); border-radius:22px;
      padding:7px 13px 7px 10px; display:flex; align-items:center; gap:8px;
      cursor:pointer; color:var(--cream); font-size:12px; font-family:'Nunito',sans-serif;
      transition:all .2s;
    }
    #user-btn:hover { border-color:rgba(78,110,34,.5); }
    #user-btn .avatar {
      width:26px; height:26px; border-radius:50%;
      background:var(--g-mid); overflow:hidden; flex-shrink:0;
      display:flex; align-items:center; justify-content:center; font-size:14px;
      border:1px solid rgba(78,110,34,.3);
    }
    #user-btn .avatar img { width:100%; height:100%; object-fit:cover; }

    /* -- COOKIE BANNER -- */
    #cookie-banner {
      position:fixed; bottom:0; left:0; right:0; z-index:500;
      background:rgba(237,229,216,.97); backdrop-filter:blur(12px);
      border-top:1px solid rgba(78,110,34,.15);
      padding:14px 16px 20px;
      transform:translateY(100%); transition:transform .5s ease;
    }
    #cookie-banner.visible { transform:translateY(0); }
    #cookie-inner { max-width:520px; margin:0 auto; }
    #cookie-text {
      display:flex; gap:11px; align-items:flex-start; margin-bottom:13px;
    }
    #cookie-icon { font-size:22px; flex-shrink:0; margin-top:1px; }
    #cookie-text strong {
      display:block; font-family:'Cormorant Garamond',Georgia,serif;
      font-size:14px; color:var(--cream); margin-bottom:3px;
    }
    #cookie-text p {
      font-size:11px; color:var(--cream-dim); line-height:1.55; margin:0;
    }
    #cookie-text code {
      font-size:10px; background:rgba(0,0,0,.07);
      padding:1px 4px; border-radius:3px;
    }
    /* Botones 1ª capa — los tres equivalentes (EDPB / TDDDG) */
    #cookie-btns {
      display:flex; gap:6px; margin-bottom:0;
    }
    #cookie-reject, #cookie-config-btn, #cookie-accept {
      flex:1; border-radius:9px; padding:9px 6px;
      font-family:'Nunito',sans-serif; font-size:11px;
      cursor:pointer; transition:all .18s; text-align:center;
    }
    #cookie-reject {
      background:transparent; border:1px solid rgba(78,110,34,.28);
      color:var(--cream-muted);
    }
    #cookie-reject:hover { border-color:rgba(78,110,34,.55); color:var(--cream); }
    #cookie-config-btn {
      background:rgba(78,110,34,.08); border:1px solid rgba(78,110,34,.22);
      color:var(--cream-muted);
    }
    #cookie-config-btn:hover { background:rgba(78,110,34,.14); color:var(--cream); }
    #cookie-accept {
      background:var(--amber); border:1px solid var(--amber);
      color:#ede5d8; font-weight:600;
    }
    #cookie-accept:hover { background:var(--amber-hi); border-color:var(--amber-hi); }

    /* Panel de configuración (2ª capa) */
    #cookie-config-panel {
      margin-bottom:12px; border:1px solid rgba(78,110,34,.15);
      border-radius:10px; overflow:hidden;
    }
    .cookie-cat {
      display:flex; align-items:center; justify-content:space-between;
      gap:10px; padding:10px 12px;
      border-bottom:1px solid rgba(78,110,34,.08);
      background:rgba(0,0,0,.025);
    }
    .cookie-cat:last-child { border-bottom:none; }
    .cookie-cat-info { flex:1; }
    .cookie-cat-info strong {
      display:block; font-size:12px; color:var(--cream);
      font-family:'Nunito',sans-serif; margin-bottom:1px;
    }
    .cookie-cat-info span {
      font-size:10px; color:var(--cream-dim); line-height:1.4;
    }
    .cookie-toggle-wrap { display:flex; align-items:center; flex-shrink:0; cursor:pointer; }
    .cookie-cat-check { display:none; }
    .cookie-toggle {
      width:38px; height:22px; border-radius:11px;
      background:rgba(0,0,0,.18); position:relative;
      transition:background .22s; flex-shrink:0;
    }
    .cookie-toggle::after {
      content:''; position:absolute; top:3px; left:3px;
      width:16px; height:16px; border-radius:50%;
      background:#fff; transition:transform .22s;
    }
    .cookie-cat-check:checked + .cookie-toggle { background:var(--amber); }
    .cookie-cat-check:checked + .cookie-toggle::after { transform:translateX(16px); }
    .cookie-toggle--on {
      background:var(--amber); width:38px; height:22px;
      border-radius:11px; display:flex; align-items:center;
      flex-shrink:0; position:relative;
    }
    .cookie-toggle--on::after {
      content:''; position:absolute; top:3px; left:3px;
      width:16px; height:16px; border-radius:50%; background:#fff;
      transform:translateX(16px);
    }
    .cookie-toggle--disabled { opacity:.7; cursor:default; }
    #cookie-config-btns { padding:10px 12px; background:rgba(0,0,0,.02); }
    #cookie-save-config {
      width:100%; padding:8px; border-radius:8px;
      background:var(--amber); border:none; color:#ede5d8;
      font-family:'Nunito',sans-serif; font-size:12px;
      font-weight:600; cursor:pointer; transition:background .18s;
    }
    #cookie-save-config:hover { background:var(--amber-hi); }