:root{
  --ccm-brand:#ffbe98;--ccm-accent:#9B4825;--ccm-bg:#fff;--ccm-text:#1f1f1f;--ccm-muted:#777;
  --ccm-overlay:rgba(0,0,0,.45);--ccm-overlay-blur:0px;
  --ccm-card-bg:#fff;--ccm-card-border:#ececec;--ccm-header-border:#e7e7e7;
  --ccm-acc-bg:#fafafa;--ccm-acc-bg-open:#fff;--ccm-acc-border:#eee;
  --ccm-title-color:#1f1f1f;--ccm-groups-title-color:#1f1f1f;--ccm-groups-desc-color:#777;--ccm-font-family:system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --ccm-chip-bg:#fff6f1;--ccm-chip-border:#ffbe98;--ccm-chip-text:#9B4825;
  --ccm-switch-off:#d9d9d9;--ccm-switch-on:#ffbe98;--ccm-switch-knob:#fff;
  --ccm-btn-accept-bg:#ffbe98;--ccm-btn-accept-bg-hover:#f3a981;--ccm-btn-accept-text:#1f1f1f;--ccm-btn-accept-text-hover:#1f1f1f;
  --ccm-btn-save-bg:#fff;--ccm-btn-save-bg-hover:#fff6f1;--ccm-btn-save-text:#9B4825;--ccm-btn-save-text-hover:#9B4825;--ccm-btn-save-border:#ffbe98;--ccm-btn-save-border-hover:#ffbe98;
  --ccm-btn-reject-bg:#f2f2f2;--ccm-btn-reject-bg-hover:#e6e6e6;--ccm-btn-reject-text:#333;--ccm-btn-reject-text-hover:#333;--ccm-btn-reject-border:#ddd;--ccm-btn-reject-border-hover:#ccc;
  --ccm-fab-bg:#fff;--ccm-fab-border:#e5e5e5;
  --ccm-policy-link:#9B4825;--ccm-policy-link-hover:#7d3619;
  --ccm-radius:14px;--ccm-shadow:0 10px 30px rgba(0,0,0,.12);--ccm-lm-blur:14px;
}
html.ccm-modal-open,
html.ccm-modal-open body{overflow:hidden}
.ccm-modal,
.ccm-fab{font-family:var(--ccm-font-family)}
.ccm-overlay{position:fixed;inset:0;background:var(--ccm-overlay);backdrop-filter:blur(var(--ccm-overlay-blur));-webkit-backdrop-filter:blur(var(--ccm-overlay-blur));opacity:0;pointer-events:none;transition:.2s;z-index:99998}
.ccm-overlay.show{opacity:1;pointer-events:auto}
.ccm-modal{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;padding:20px;z-index:99999;opacity:0;transform:translateY(10px);pointer-events:none;transition:.2s}
.ccm-modal.show{opacity:1;transform:none;pointer-events:auto}
.ccm-card{width:min(900px,100%);background:linear-gradient(180deg, rgba(255,255,255,.92), rgba(255,248,243,.96));color:var(--ccm-text);border-radius:var(--ccm-radius);box-shadow:0 24px 60px rgba(73,42,26,.14), var(--ccm-shadow);border:1px solid var(--ccm-card-border);padding:22px}
.ccm-header{display:flex;align-items:center;gap:12px;padding-bottom:14px;border-bottom:1px solid var(--ccm-header-border)}
.ccm-logo{width:36px;height:36px;border-radius:50%}
.ccm-title{margin:0;color:var(--ccm-title-color, var(--ccm-text));font-size:clamp(1.25rem, 1.05rem + .6vw, 1.7rem);font-weight:700;letter-spacing:-.02em;line-height:1.15}
.ccm-groups{display:flex;flex-direction:column;gap:12px;padding:18px 0}
.ccm-acc summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 22px;border:1px solid var(--ccm-acc-border);border-radius:18px;background:linear-gradient(180deg, rgba(255,255,255,.74), rgba(255,248,243,.96));cursor:pointer;position:relative;box-shadow:inset 0 1px 0 rgba(255,255,255,.75)}
.ccm-acc summary::-webkit-details-marker{display:none}
.ccm-acc summary::marker{content:""}
.ccm-acc[open] summary{background:linear-gradient(180deg, rgba(255,255,255,.98), rgba(255,245,237,.98))}
.ccm-toggle{display:flex;align-items:center;justify-content:flex-end;min-width:64px}
.ccm-group-title{color:var(--ccm-groups-title-color, var(--ccm-text));font-weight:700;letter-spacing:-.01em}
.ccm-acc-body{padding:14px 18px 18px;color:var(--ccm-groups-desc-color, var(--ccm-muted));line-height:1.6}
.ccm-chip{font-size:12px;padding:6px 12px;border-radius:999px;background:var(--ccm-chip-bg);color:var(--ccm-chip-text);border:1px solid var(--ccm-chip-border);box-shadow:inset 0 1px 0 rgba(255,255,255,.7)}
.ccm-switch{position:relative;width:46px;height:26px;flex:0 0 auto}
.ccm-switch input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0}
.ccm-slider{position:absolute;inset:0;background:var(--ccm-switch-off);border-radius:999px;transition:.2s;box-shadow:inset 0 2px 6px rgba(120,74,42,.14)}
.ccm-slider:after{content:"";position:absolute;width:20px;height:20px;top:3px;left:3px;background:var(--ccm-switch-knob);border-radius:50%;transition:.2s;box-shadow:0 4px 10px rgba(68,38,21,.18)}
.ccm-switch input:checked + .ccm-slider{background:var(--ccm-switch-on);box-shadow:inset 0 2px 6px rgba(80,35,14,.2)}
.ccm-switch input:checked + .ccm-slider:after{transform:translateX(20px)}
.ccm-switch input:focus-visible + .ccm-slider,
.ccm-acc summary:focus-visible,
.ccm-btn:focus-visible,
.ccm-policy:focus-visible,
.ccm-fab:focus-visible{outline:3px solid var(--ccm-accent);outline-offset:3px}
.ccm-footer{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding-top:16px;border-top:1px solid rgba(155,74,40,.08)}
.ccm-actions{display:flex;gap:10px}
.ccm-btn{all:unset;display:inline-block !important;border-radius:16px !important;padding:14px 20px !important;font-weight:700 !important;font-size:.98rem !important;line-height:1.2 !important;text-align:center !important;cursor:pointer !important;transition:all .2s ease !important;user-select:none !important;white-space:nowrap !important;background:transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,.72)}

/* Reject */
.ccm-secondary{background:var(--ccm-btn-reject-bg) !important;color:var(--ccm-btn-reject-text) !important;border:1px solid var(--ccm-btn-reject-border) !important}
.ccm-secondary:hover{background:var(--ccm-btn-reject-bg-hover) !important;color:var(--ccm-btn-reject-text-hover) !important;border-color:var(--ccm-btn-reject-border-hover) !important;transform:translateY(-1px) !important;box-shadow:0 10px 20px rgba(71,41,25,.08) !important}

/* Save */
.ccm-outline{background:var(--ccm-btn-save-bg) !important;border:2px solid var(--ccm-btn-save-border) !important;color:var(--ccm-btn-save-text) !important}
.ccm-outline:hover{background:var(--ccm-btn-save-bg-hover) !important;border-color:var(--ccm-btn-save-border-hover) !important;color:var(--ccm-btn-save-text-hover) !important;box-shadow:0 10px 20px rgba(121,61,27,.08) !important}

/* Accept */
.ccm-primary{background:var(--ccm-btn-accept-bg) !important;color:var(--ccm-btn-accept-text) !important}
.ccm-primary:hover{background:var(--ccm-btn-accept-bg-hover) !important;color:var(--ccm-btn-accept-text-hover) !important;box-shadow:0 12px 22px rgba(170,92,52,.14) !important}

.ccm-policy{color:var(--ccm-policy-link);text-decoration:underline}
.ccm-policy:hover{color:var(--ccm-policy-link-hover)}
.ccm-signature{margin-left:auto;font-size:12px;color:var(--ccm-muted);letter-spacing:.02em;text-transform:uppercase}
.ccm-fab{
  --ccm-fab-logo:url("../images/ccm-logo.png");
  -webkit-appearance:none !important;
  appearance:none !important;
  position:fixed;
  width:68px;
  height:68px;
  min-width:68px;
  min-height:68px;
  padding:0 !important;
  border:none !important;
  border-radius:50% !important;
  background:transparent !important;
  box-shadow:none !important;
  display:grid;
  place-items:center;
  cursor:pointer;
  line-height:0;
  isolation:isolate;
  overflow:visible;
  transition:transform .15s ease, filter .2s ease;
  z-index:99997
}
.ccm-fab::before{
  content:"";
  position:absolute;
  inset:6px;
  border-radius:50%;
  border:1px solid var(--ccm-fab-border);
  background:var(--ccm-fab-bg);
  box-shadow:0 18px 32px rgba(77,44,27,.16)
}
.ccm-fab::after{
  content:"";
  position:absolute;
  inset:11px;
  border-radius:50%;
  background-image:var(--ccm-fab-logo);
  background-position:center 24%;
  background-repeat:no-repeat;
  background-size:154%;
  z-index:1
}
.ccm-fab img{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.ccm-fab:hover{transform:translateY(-2px)}
.ccm-fab.bottom-right{right:18px;bottom:18px}
.ccm-fab.bottom-left{left:18px;bottom:18px}
.ccm-fab.top-right{right:18px;top:18px}
.ccm-fab.top-left{left:18px;top:18px}

/* MOBILE FIXES */
@media (max-width: 480px){
  .ccm-card{padding:16px}
  .ccm-footer{flex-direction:column; align-items:stretch; gap:12px; }
  .ccm-actions{flex-direction:column; width:100%; gap:8px;}
  .ccm-btn{width:100% !important}
  .ccm-signature{margin:0 auto; text-align:center;}
}

@media (max-width:640px){
  .ccm-actions{width:100%;justify-content:space-between}
  .ccm-header h3{font-size:18px}
}
