
    :root {
        --ccb-beige: #eae2d0;
        --ccb-dark: #1a1612;
        --ccb-blue: #bd2c2c;
        --ccb-font-head: "Cinzel", Georgia, serif;
        --ccb-font-body: "Cormorant Infant", Georgia, serif;
        --ccb-font-mono: ui-monospace, SFMono-Regular, Menlo, monospace;
        --ccb-f-base: 16px;
        --ccb-case-bg: #fdfbf7;
        --ccb-case-border: #e6d6c3;
        --ccb-btn-p-bg: #bd2c2c;
        --ccb-btn-p-txt: #ffffff;
        --ccb-btn-s-bg: #1a1612;
        --ccb-btn-s-txt: #ffffff;
        --ccb-paper-bg: #e8dbbf;
        --ccb-paper-border: #cba153;
        --ccb-paper-title: #1a1612;
        --ccb-paper-text: #2b2b2b;
        --ccb-mini-bg: #f3eefb;
        --ccb-mini-border: #d9c9f2;
        --ccb-mini-accent: #5b2d90;
    }

    /* ---- RESET E ANTI-SBORDAMENTO ---- */
    html, body { overflow-x: hidden; max-width: 100%; }
    .ccb-wrapper { font-family: var(--ccb-font-body); font-size: var(--ccb-f-base); color:#333; line-height:1.5; max-width:100%; }
    .ccb-wrapper *, .ccb-wrapper *::before, .ccb-wrapper *::after { box-sizing: border-box; }
    .ccb-wrapper h1,.ccb-wrapper h2,.ccb-wrapper h3,.ccb-wrapper h4 { font-family: var(--ccb-font-head); color: var(--ccb-dark); margin:0; font-weight:700; }
    .ccb-wrapper ul { margin:0; padding:0; list-style:none; }
    .ccb-wrapper a { text-decoration:none; color:inherit; transition:.3s; }
    .ccb-wrapper img { max-width:100%; height:auto; }
    .ccb-wrapper .hidden, .ccb-case-item.hidden, .ccb-mini-only.hidden { display:none !important; }

    .ccb-wrapper input, .ccb-wrapper select, .ccb-wrapper textarea,
    .ccb-auth-col input.input-text, .ccb-redeem-box input, .ccb-register-form input {
        width: 100%; max-width: 100%; box-sizing: border-box; font-size: 16px;
    }
    .ccb-wrapper input[type=checkbox], .ccb-wrapper input[type=radio] { width:auto; max-width:none; }

    /* Messaggi di sistema anche fuori dal wrapper (form riscatto) */
    .ccb-notice { font-family: var(--ccb-font-body); font-size:16px; }
    .ccb-notice a { color:inherit; text-decoration:underline; }

    /* ---- MANUTENZIONE ---- */
    .ccb-maintenance { max-width:700px; margin:40px auto; background:#fff; border:1px dashed var(--ccb-beige); border-radius:12px; padding:40px 25px; text-align:center; }
    .ccb-maintenance h3 { font-size:22px; margin-bottom:10px; }
    .ccb-maintenance p { color:#666; margin:0; }

    /* ---- PORTALE AUTENTICAZIONE ---- */
    .ccb-auth-container { padding:50px 20px; background:#f4f1ea; min-height:70vh; }
    .ccb-auth-dossier { max-width:1100px; margin:0 auto; display:grid; grid-template-columns:1fr 1fr; background:#fff; box-shadow:0 15px 50px rgba(0,0,0,.15); border:1px solid #d1c7ac; position:relative; }
    .ccb-auth-dossier::after { content:""; position:absolute; top:0; bottom:0; left:50%; width:2px; background:linear-gradient(to bottom,transparent,#e0d9c5,transparent); }
    .ccb-auth-col { padding:45px; min-width:0; }
    .ccb-auth-title { font-size:26px !important; text-transform:uppercase; margin-bottom:15px !important; border-bottom:2px solid var(--ccb-beige); display:inline-block; }
    .ccb-auth-subtitle { font-size:16px; color:#888; margin-bottom:25px; }
    .ccb-auth-warning { background:#fdf5d2; padding:15px; border-left:5px solid #e6c200; font-size:14px; line-height:1.4; margin-bottom:22px; color:#555; }
    .ccb-auth-col form .form-row { margin-bottom:15px; }
    .ccb-auth-col label { font-family:var(--ccb-font-head); font-size:12px; text-transform:uppercase; color:#666; font-weight:bold; display:block; margin-bottom:5px; }
    .ccb-auth-col input.input-text, .ccb-auth-col input[type=password] { padding:12px; border:1px solid #ddd; background:#fafafa; font-family:var(--ccb-font-mono); }
    .ccb-auth-col .woocommerce-LostPassword { font-size:13px; font-family:var(--ccb-font-head); }
    /* Il pulsante di accesso arriva da WooCommerce con il suo aspetto: qui lo
       riportiamo esattamente allo stile degli altri pulsanti Accademia. */
    .ccb-auth-col .woocommerce-form-login__submit,
    .ccb-auth-col .woocommerce-form-register__submit,
    .ccb-auth-col button[name="login"] {
        display:block; width:100%; box-sizing:border-box; padding:14px 20px; margin-top:12px;
        background:var(--ccb-btn-p-bg) !important; color:var(--ccb-btn-p-txt) !important;
        border:none !important; border-radius:4px;
        font-family:var(--ccb-font-head) !important; font-weight:700 !important; font-size:13px !important;
        letter-spacing:.05em; text-transform:uppercase; text-align:center; line-height:1.3;
        cursor:pointer; transition:.2s; text-decoration:none;
    }
    .ccb-auth-col .woocommerce-form-login__submit:hover,
    .ccb-auth-col .woocommerce-form-register__submit:hover,
    .ccb-auth-col button[name="login"]:hover { opacity:.9; transform:translateY(-1px); }
    .ccb-auth-col .form-row-first, .ccb-auth-col .form-row-last { width:48%; }
    .ccb-auth-col .form-row-first { float:left; }
    .ccb-auth-col .form-row-last { float:right; }
    .ccb-auth-col .clear { clear:both; }

    /* ---- ACCESSO E REGISTRAZIONE SEPARATI ---- */
    .ccb-auth-single { max-width:560px; margin:0 auto; background:#fff; box-shadow:0 15px 50px rgba(0,0,0,.15); border:1px solid #d1c7ac; }
    .ccb-auth-single .ccb-auth-col { padding:45px; }
    .ccb-auth-switch { text-align:center; margin-top:22px; padding-top:20px; border-top:1px dashed #e0d9c5; font-size:16px; color:#7a7368; }
    .ccb-auth-switch a { color:var(--ccb-blue) !important; font-weight:700; text-decoration:underline; text-underline-offset:3px; }
    @media (max-width:600px) { .ccb-auth-single .ccb-auth-col { padding:22px 16px; } }

    /* ---- LAYOUT ---- */
    .ccb-main-container { max-width:1300px; margin:0 auto; padding:35px 18px; display:grid; grid-template-columns:320px minmax(0,1fr); gap:35px; align-items:start; }
    .ccb-header-full { background:var(--ccb-beige); width:auto; margin-left:calc(50% - 50vw); margin-right:calc(50% - 50vw); padding:25px 0; border-bottom:1px solid rgba(0,0,0,.1); box-shadow:0 4px 12px rgba(0,0,0,.05); }
    .ccb-header-inner { max-width:1300px; margin:0 auto; padding:0 20px; display:flex; justify-content:space-between; align-items:center; gap:20px; flex-wrap:wrap; }
    .ccb-h-left { display:flex; align-items:center; gap:18px; min-width:0; }
    .ccb-avatar img { width:78px; height:78px; border-radius:50%; border:3px solid #fff; box-shadow:0 2px 10px rgba(0,0,0,.1); object-fit:cover; }
    .ccb-h-info h2 { font-size:27px; text-transform:uppercase; letter-spacing:1px; color:var(--ccb-dark); line-height:1.1; margin-bottom:3px; overflow-wrap:anywhere; }
    .ccb-badge-num { font-family:var(--ccb-font-mono); font-size:13px; color:var(--ccb-dark); opacity:.85; font-weight:bold; letter-spacing:1px; display:block; margin-bottom:4px; }
    .ccb-h-links { display:flex; align-items:center; gap:15px; flex-wrap:wrap; }
    .ccb-h-links a { font-size:13px; font-family:var(--ccb-font-head); color:var(--ccb-dark); opacity:.8; text-decoration:underline; font-weight:bold; }
    .ccb-h-stats { display:flex; gap:34px; text-align:center; }
    .ccb-stat-box { display:flex; flex-direction:column; }
    .ccb-stat-open { font-family:var(--ccb-font-head); font-size:31px; font-weight:700; color:#f99700; line-height:1; }
    .ccb-stat-val { font-family:var(--ccb-font-head); font-size:31px; font-weight:700; color:var(--ccb-dark); line-height:1; }
    .ccb-stat-lbl { font-size:11px; text-transform:uppercase; letter-spacing:1px; color:var(--ccb-dark); margin-top:5px; font-weight:600; opacity:.9; }
    .ccb-hl { color:#fff; text-shadow:0 1px 0 rgba(0,0,0,.55), 0 0 6px rgba(0,0,0,.35), 0 0 14px rgba(255,255,255,.35); -webkit-text-stroke:.6px rgba(0,0,0,.55); paint-order:stroke fill; }

    /* ---- SIDEBAR ---- */
    .ccb-sidebar { background:#fff; padding:28px; border-radius:8px; box-shadow:0 2px 15px rgba(0,0,0,.04); border:1px solid #eee; }
    .ccb-sb-section { margin-bottom:24px; border-bottom:1px solid #f4f4f4; padding-bottom:20px; }
    .ccb-sb-section:last-child { border-bottom:none; margin-bottom:0; padding-bottom:0; }
    .ccb-sb-title { font-size:14px; text-transform:uppercase; color:#999; letter-spacing:1px; margin-bottom:15px; display:flex; justify-content:space-between; align-items:center; }
    .ccb-rank-display { text-align:center; margin-bottom:10px; }
    .ccb-rank-name { font-size:22px; color:var(--ccb-blue); margin-bottom:5px; display:block; font-weight:700; text-transform:uppercase; font-family:var(--ccb-font-head); }
    .ccb-xp-wrapper { position:relative; margin:25px 0 10px; padding:0 6px; }
    .ccb-xp-track { background:#eee; height:8px; border-radius:4px; position:relative; width:100%; }
    .ccb-xp-fill { background:var(--ccb-blue); height:100%; border-radius:4px; transition:width 1s ease; position:absolute; top:0; left:0; z-index:1; }
    .ccb-xp-dot { position:absolute; top:50%; transform:translate(-50%,-50%); width:10px; height:10px; background:#fff; border:2px solid #ccc; border-radius:50%; z-index:2; }
    /* I puntini restano sempre bianchi con un anello scuro: qualunque colore
       tu scelga per la barra, restano leggibili e non ci si confondono. */
    .ccb-xp-dot.reached { border-color:rgba(26,37,47,.85); background:#fff; box-shadow:0 0 0 1px rgba(255,255,255,.9); }

    /* Ultimo tratto verso il grado successivo: la barra cambia tono quando il
       traguardo e a portata, e pulsa quando manca pochissimo. */
    .ccb-xp-track.sprint-vicino .ccb-xp-fill { background:linear-gradient(90deg, var(--ccb-blue), var(--ccb-beige)); }
    .ccb-xp-track.sprint-quasi .ccb-xp-fill { background:linear-gradient(90deg, var(--ccb-beige), #e0a800); animation:ccbSprintPulse 1.8s ease-in-out infinite; }
    @keyframes ccbSprintPulse { 0%,100% { filter:brightness(1); } 50% { filter:brightness(1.25); } }
    .ccb-sprint { margin-top:12px; padding:12px 14px; background:rgba(41,128,185,.07); border:1px dashed rgba(41,128,185,.35); border-radius:8px; font-family:var(--ccb-font-body); font-size:15px; color:#2c4257; line-height:1.45; text-align:center; }
    .ccb-sprint b { color:var(--ccb-dark); }
    .ccb-sprint-quasi { background:rgba(224,168,0,.10); border-color:rgba(224,168,0,.5); color:#6b4e00; }
    .ccb-sprint-quasi strong { display:block; font-family:var(--ccb-font-head); font-size:15px; text-transform:uppercase; letter-spacing:.04em; color:#8a6300; margin-bottom:5px; }
    .ccb-sprint-cta { display:block; margin-top:11px; padding:10px 14px; background:var(--ccb-dark); color:#fff !important; border-radius:6px; font-family:var(--ccb-font-head); font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; text-decoration:none; transition:.2s; }
    .ccb-sprint-cta:hover { filter:brightness(1.15); }
    .ccb-xp-text { font-size:12px; color:#777; margin-top:12px; font-weight:700; display:flex; justify-content:space-between; }
    /* La sottolineatura sta solo sul nome del grado: e quello il vero
       collegamento, la frase intorno serve da introduzione. */
    .ccb-promo-link { display:block; text-align:center; font-size:17px; margin-top:14px; color:#3f3a33; font-weight:700; line-height:1.4; text-decoration:none; }
    .ccb-promo-link .ccb-promo-grado-link { text-decoration:underline; text-underline-offset:3px; text-decoration-thickness:1px; }
    .ccb-promo-link:hover { color:var(--ccb-blue); }
    .ccb-promo-link:hover .ccb-promo-grado-link { text-decoration-thickness:2px; }

    /* Guida Rapida in evidenza, sopra la sezione Addestramento */
    .ccb-guide-cta { display:flex; align-items:center; justify-content:center; gap:9px; width:100%; padding:14px 16px; margin-bottom:22px; background:var(--ccb-btn-s-bg); color:var(--ccb-btn-s-txt) !important; border:none; border-radius:8px; font-family:var(--ccb-font-head); font-weight:700; font-size:13px; letter-spacing:.05em; text-transform:uppercase; cursor:pointer; box-shadow:0 8px 18px -10px rgba(0,0,0,.55); transition:.2s; }
    .ccb-guide-cta:hover { filter:brightness(1.08); transform:translateY(-2px); }
    .ccb-guide-cta:before { content:"\f223"; font-family:"dashicons"; font-size:17px; line-height:1; }

    /* Menu laterale: sempre aperto da computer, raccolto in tendina da mobile */
    .ccb-menu-toggle { display:none; align-items:center; justify-content:space-between; width:100%; padding:14px 16px; background:#fdfdfd; border:1px solid #e6e6e6; border-radius:8px; font-family:var(--ccb-font-head); font-size:13px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--ccb-dark); cursor:pointer; transition:.2s; }
    .ccb-menu-toggle:hover { border-color:var(--ccb-blue); color:var(--ccb-blue); }
    .ccb-menu-toggle:after { content:"\f140"; font-family:"dashicons"; font-size:20px; line-height:1; transition:transform .25s ease; }
    .ccb-menu-toggle.open:after { transform:rotate(180deg); }
    .ccb-menu-body { display:block; }
    .ccb-side-menu li { margin-bottom:8px; }
    .ccb-side-menu a { display:flex; align-items:center; padding:12px 15px; background:#fdfdfd; border:1px solid #eee; border-radius:6px; color:#555; font-size:15px; font-weight:600; transition:.2s; }
    .ccb-side-menu a:before { content:"\f138"; font-family:"dashicons"; margin-right:10px; color:#ccc; font-size:16px; }
    .ccb-side-menu a:hover { background:#fff; border-color:var(--ccb-blue); color:var(--ccb-blue); transform:translateX(3px); }
    .ccb-side-menu a:hover:before { color:var(--ccb-blue); }
    .ccb-guide-box { background:#f9f9f9; padding:15px; border-radius:6px; text-align:center; border:1px dashed #ddd; }
    .ccb-guide-sub { font-size:15px; font-style:italic; margin-bottom:10px; display:block; color:#777; line-height:1.35; }

    /* ---- BOTTONI ---- */
    .ccb-btn { display:inline-block; padding:11px 20px; background:var(--ccb-btn-p-bg); color:var(--ccb-btn-p-txt) !important; border-radius:4px; font-family:var(--ccb-font-head); font-weight:700; font-size:12px; transition:.2s; text-transform:uppercase; border:none; cursor:pointer; text-align:center; }
    .ccb-btn:hover { opacity:.9; transform:translateY(-1px); }
    .ccb-btn.sec { background:var(--ccb-btn-s-bg); color:var(--ccb-btn-s-txt) !important; }
    .ccb-btn.ghost { background:transparent; color:var(--ccb-dark) !important; border:1px solid rgba(0,0,0,.25); }
    .ccb-btn-small { display:inline-block; padding:8px 16px; background:var(--ccb-dark); color:#fff !important; font-size:11px; text-transform:uppercase; border-radius:4px; font-weight:700; cursor:pointer; border:none; }
    .ccb-cta { display:inline-block; text-align:center; background:var(--ccb-btn-p-bg); color:var(--ccb-btn-p-txt) !important; font-family:var(--ccb-font-head); font-weight:700; font-size:14px; padding:12px 24px; border:none; border-radius:6px; cursor:pointer; transition:.25s; box-shadow:0 10px 20px -8px rgba(0,0,0,.3); text-transform:uppercase; }
    .ccb-cta:hover { filter:brightness(1.1); transform:translateY(-2px); }
    .ccb-btn-esplora { display:inline-block; text-align:center; font-family:var(--ccb-font-mono); font-size:12px; letter-spacing:.08em; color:var(--ccb-btn-s-txt) !important; background:var(--ccb-btn-s-bg); border:1px solid rgba(0,0,0,.12); border-radius:6px; padding:12px 20px; text-transform:uppercase; cursor:pointer; transition:.2s; font-weight:bold; }
    .ccb-btn-esplora:hover { filter:brightness(.95); transform:translateY(-2px); }

    /* ---- FILTRI ---- */
    .ccb-filter-bar { display:flex; flex-wrap:wrap; gap:10px; margin-bottom:32px; align-items:center; justify-content:center; }
    .ccb-filter-btn { font-family:var(--ccb-font-mono); font-size:11px; letter-spacing:.1em; background:transparent; color:#3a3329; border:1px solid rgba(0,0,0,.14); padding:10px 18px; border-radius:30px; cursor:pointer; text-transform:uppercase; font-weight:bold; transition:.2s; }
    .ccb-filter-btn:hover, .ccb-filter-btn.active { background:var(--ccb-dark); color:#fff; border-color:var(--ccb-dark); }
    .ccb-filter-btn.mini-filter { border-color:var(--ccb-mini-border); color:var(--ccb-mini-accent); background:var(--ccb-mini-bg); }
    .ccb-filter-btn.mini-filter:hover, .ccb-filter-btn.mini-filter.active { background:var(--ccb-mini-accent); color:#fff; border-color:var(--ccb-mini-accent); }

    /* ---- CARD ---- */
    .ccb-case-item { background:var(--ccb-case-bg); border-radius:9px; overflow:hidden; box-shadow:0 4px 15px rgba(0,0,0,.03); margin-bottom:30px; display:flex; border:1px solid var(--ccb-case-border); transition:transform .3s ease, box-shadow .3s ease; }
    .ccb-case-item:hover { transform:translateY(-4px); box-shadow:0 20px 40px -15px rgba(0,0,0,.08); }
    .ccb-case-img { width:300px; flex-shrink:0; display:flex; align-items:center; justify-content:center; padding:20px; position:relative; border-right:1px dashed var(--ccb-case-border); background:rgba(0,0,0,.04); overflow:hidden; }
    .ccb-case-img img { width:100%; height:100%; object-fit:contain; filter:drop-shadow(0 10px 15px rgba(0,0,0,.15)); transition:.4s; }
    .ccb-case-item:hover .ccb-case-img img { transform:scale(1.04) rotate(-1.5deg); }
    .ccb-locked-visual img { filter:grayscale(100%); opacity:.7; }
    .ccb-locked-visual:hover img { filter:grayscale(50%); opacity:.9; }
    .type-stamp { position:absolute; top:14px; left:14px; font-family:var(--ccb-font-mono); font-size:13px; letter-spacing:.16em; text-transform:uppercase; border:2px dashed; border-radius:5px; padding:8px 14px; z-index:5; font-weight:bold; background:rgba(255,255,255,.92); max-width:calc(100% - 28px); }
    .stamp-paper { color:#c2362b; border-color:#c2362b; transform:rotate(-5deg); }
    .stamp-pdf { color:#9a7d2f; border-color:#9a7d2f; transform:rotate(3deg); }
    .stamp-mini { color:var(--ccb-mini-accent); border-color:var(--ccb-mini-accent); transform:rotate(-3deg); }
    .ccb-case-info { padding:30px; flex:1; display:flex; flex-direction:column; min-width:0; }
    .ccb-case-header { display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:12px; gap:12px; flex-wrap:wrap; }
    .ccb-case-id { font-family:var(--ccb-font-mono); font-size:12px; letter-spacing:.1em; color:var(--ccb-blue); text-transform:uppercase; font-weight:bold; overflow-wrap:anywhere; }
    .ccb-status { font-family:var(--ccb-font-mono); font-size:10px; font-weight:bold; letter-spacing:.1em; text-transform:uppercase; padding:4px 10px; border-radius:4px; border:1px solid var(--ccb-dark); background:rgba(0,0,0,.03); color:var(--ccb-dark); white-space:nowrap; }
    .ccb-status.active { border-color:#856404; color:#856404; background:#fff3cd; }
    .ccb-status.done { border-color:#2a5a3f; color:#2a5a3f; background:rgba(42,90,63,.06); }
    .ccb-status.negato { border-color:#a81f17; color:#a81f17; background:rgba(168,31,23,.06); }
    .ccb-case-title { font-size:25px; margin-bottom:10px; color:var(--ccb-dark); overflow-wrap:anywhere; }
    .ccb-case-desc { font-size:17px; color:#5c5346; margin-bottom:16px; flex-grow:1; line-height:1.55; }
    .specs { display:flex; flex-wrap:wrap; gap:9px; margin-bottom:22px; border-top:1px dashed var(--ccb-case-border); padding-top:18px; }
    .spec { display:flex; align-items:center; gap:8px; border:1px solid var(--ccb-case-border); border-radius:40px; padding:7px 14px; font-family:var(--ccb-font-mono); font-size:11px; color:var(--ccb-dark); background:#fff; }
    .spec svg { width:15px; height:15px; stroke:var(--ccb-blue); fill:none; stroke-width:1.8; flex-shrink:0; }
    .ccb-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:auto; align-items:center; }
    .ccb-click-block { position:absolute; inset:0; z-index:10; cursor:not-allowed; }

    .ccb-case-item.paper-style { background-color:var(--ccb-paper-bg); border-color:var(--ccb-paper-border); }
    .ccb-case-item.paper-style .ccb-case-img { background:linear-gradient(180deg, rgba(0,0,0,.05), transparent); }
    .ccb-case-item.paper-style .ccb-case-desc { color:var(--ccb-paper-text); }
    .ccb-case-item.paper-style .ccb-case-title { color:var(--ccb-paper-title); }
    .ccb-case-item.paper-style .spec { background:transparent; border-color:rgba(0,0,0,.12); }

    .ccb-case-item.mini-style { background-color:var(--ccb-mini-bg); border-color:var(--ccb-mini-border); }
    .ccb-case-item.mini-style .ccb-case-img { width:210px; background:rgba(255,255,255,.5); border-right-color:var(--ccb-mini-border); }
    .ccb-case-item.mini-style .ccb-case-info { padding:24px; }
    .ccb-case-item.mini-style .ccb-case-title { font-size:22px; color:var(--ccb-mini-accent); }
    .ccb-case-item.mini-style .ccb-case-id { color:var(--ccb-mini-accent); }
    .ccb-case-item.mini-style .spec { border-color:var(--ccb-mini-border); }
    .ccb-mini-intro { background:var(--ccb-mini-bg); border:1px solid var(--ccb-mini-border); border-radius:10px; padding:20px 24px; margin-bottom:26px; }
    .ccb-mini-intro h3 { color:var(--ccb-mini-accent); font-size:22px; margin-bottom:6px; }
    .ccb-mini-intro p { margin:0; color:#5b5468; font-size:16px; }

    /* ---- BANNER ---- */
    .ccb-promo-banner { display:flex; align-items:center; border-radius:12px; padding:24px 30px; margin-bottom:28px; box-shadow:0 10px 25px rgba(0,0,0,.08); gap:22px; position:relative; overflow:hidden; flex-wrap:wrap; }
    .ccb-promo-banner-content { flex:1; min-width:240px; z-index:2; }
    .ccb-promo-banner h3 { font-family:var(--ccb-font-head); font-size:22px; margin-bottom:8px; color:inherit; }
    .ccb-promo-banner p { font-size:16px; margin-bottom:15px; opacity:.92; line-height:1.4; }
    .ccb-promo-banner-img { width:130px; height:130px; object-fit:contain; border-radius:8px; }
    .ccb-promo-banner-btn { display:inline-block; padding:10px 22px; border-radius:30px; font-weight:bold; font-family:var(--ccb-font-head); text-transform:uppercase; font-size:13px; transition:.3s; }
    .ccb-promo-banner-btn:hover { filter:brightness(1.08); transform:translateY(-2px); }

    /* ---- BOX SOLUZIONE E PRE-QUIZ ---- */
    .ccb-solve-box { font-family:var(--ccb-font-body); max-width:720px; margin:26px auto; padding:28px; border-radius:14px; text-align:center; border:2px solid; box-shadow:0 10px 30px rgba(0,0,0,.06); box-sizing:border-box; }
    .ccb-solve-box h3 { font-family:var(--ccb-font-head); font-size:24px; margin-bottom:10px; }
    .ccb-solve-box p { font-size:17px; line-height:1.5; margin:0 0 18px; }
    .ccb-solve-box small { display:block; margin-top:14px; font-size:13px; opacity:.75; }
    .ccb-solve-kicker { display:inline-block; font-family:var(--ccb-font-mono); font-size:11px; letter-spacing:.18em; text-transform:uppercase; opacity:.7; margin-bottom:8px; }
    .ccb-solve-actions { display:flex; gap:12px; justify-content:center; flex-wrap:wrap; }
    .ccb-solve-guest { background:#fffdf5; border-color:var(--ccb-beige); color:#4a4132; }
    .ccb-solve-ok { background:#eefaf1; border-color:#2a5a3f; color:#1d4430; }
    .ccb-solve-info { background:#eef4fb; border-color:var(--ccb-blue); color:#204866; }
    .ccb-solve-warn { background:#fff8e6; border-color:#d39e00; color:#7a5c00; }
    .ccb-prequiz-box { background:#eef4fb; border-color:var(--ccb-blue); color:#204866; border-style:dashed; }
    .ccb-prequiz-box h3 { color:var(--ccb-blue); }
    .ccb-solve-box .ccb-cta, .ccb-solve-box .ccb-btn-esplora { min-width:200px; }

    /* ---- AREA PROFILO AGENTE (Mio Account) ---- */
    .ccb-account-intro { max-width:1300px; margin:0 auto; padding:34px 18px 26px; display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:18px; }
    .ccb-account-intro-testo { flex:1; min-width:260px; }
    .ccb-account-intro h2 { font-size:26px; text-transform:uppercase; letter-spacing:1px; margin-bottom:6px; }
    .ccb-account-intro p { font-size:17px; color:#5c5346; margin:0; line-height:1.45; max-width:620px; }
    .ccb-account-back { display:inline-flex; align-items:center; gap:6px; font-family:var(--ccb-font-mono); font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:var(--ccb-blue) !important; font-weight:bold; border:1px solid rgba(41,128,185,.35); border-radius:30px; padding:9px 16px; white-space:nowrap; transition:.2s; }
    .ccb-account-back:hover { background:var(--ccb-blue); color:#fff !important; border-color:var(--ccb-blue); }
    .ccb-account-intro .ccb-sconto-box { flex-basis:100%; margin:4px 0 0; }

    /* Corpo della zona account: stesse proporzioni della dashboard */
    .ccb-account-skin .woocommerce-MyAccount-navigation,
    .ccb-account-skin .woocommerce-MyAccount-content { float:none; }
    .ccb-account-skin .woocommerce-account .woocommerce { max-width:1300px; margin:0 auto; padding:0 18px 40px; display:grid; grid-template-columns:300px minmax(0,1fr); gap:32px; align-items:start; }
    .ccb-account-skin .woocommerce-MyAccount-navigation { width:auto; background:#fff; border:1px solid var(--ccb-case-border); border-radius:9px; padding:20px; box-shadow:0 2px 15px rgba(0,0,0,.04); }
    .ccb-account-skin .woocommerce-MyAccount-content { width:auto; background:#fff; border:1px solid var(--ccb-case-border); border-radius:9px; padding:32px 34px; box-shadow:0 4px 15px rgba(0,0,0,.03); }
    .ccb-account-skin .woocommerce-MyAccount-content > *:first-child { margin-top:0; }
    .ccb-account-skin .woocommerce-MyAccount-content > *:last-child { margin-bottom:0; }
    .ccb-account-skin .woocommerce-MyAccount-content h2 { font-size:22px; margin:0 0 16px; padding-bottom:12px; border-bottom:1px solid #f0ece2; }
    .ccb-account-skin .woocommerce-MyAccount-content h3 { font-size:18px; margin:26px 0 12px; }
    .ccb-account-skin .woocommerce-MyAccount-content fieldset { border:1px solid var(--ccb-case-border); border-radius:8px; padding:20px 22px; margin:24px 0 0; }
    .ccb-account-skin .woocommerce-MyAccount-content fieldset legend { font-family:var(--ccb-font-head); font-size:14px; text-transform:uppercase; letter-spacing:.04em; color:var(--ccb-dark); padding:0 8px; }
    .ccb-account-skin .woocommerce-MyAccount-content form .form-row { margin:0 0 18px; }
    .ccb-account-skin .woocommerce-MyAccount-content .woocommerce-Address { background:#faf9f5; border:1px solid var(--ccb-case-border); border-radius:8px; padding:20px 22px; }
    .ccb-account-skin .woocommerce-MyAccount-content .woocommerce-Address-title { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:10px; }
    .ccb-account-skin .woocommerce-MyAccount-content .woocommerce-Address-title h2,
    .ccb-account-skin .woocommerce-MyAccount-content .woocommerce-Address-title h3 { border:none; padding:0; margin:0; font-size:17px; }
    .ccb-account-skin .woocommerce-MyAccount-content .woocommerce-Addresses { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:20px; }
    .ccb-account-skin .woocommerce-MyAccount-content .woocommerce-Addresses .woocommerce-Address { width:auto; float:none; }
    .ccb-account-skin .woocommerce-MyAccount-content table.shop_table { border:1px solid var(--ccb-case-border); border-radius:8px; overflow:hidden; }
    .ccb-account-skin .woocommerce-MyAccount-content .woocommerce-Message,
    .ccb-account-skin .woocommerce-MyAccount-content .woocommerce-info { background:#eef4fb; border:1px solid #bcd6ea; border-radius:8px; padding:16px 18px; color:#204866; margin:0 0 20px; }
    .ccb-account-skin .woocommerce-MyAccount-navigation ul { list-style:none; margin:0; padding:0; }
    .ccb-account-skin .woocommerce-MyAccount-navigation li { margin-bottom:8px; }
    .ccb-account-skin .woocommerce-MyAccount-navigation li a { display:flex; align-items:center; padding:13px 16px; background:#fdfdfd; border:1px solid #eee; border-radius:6px; color:#555; font-family:var(--ccb-font-body); font-size:15px; font-weight:600; text-decoration:none; transition:.2s; }
    .ccb-account-skin .woocommerce-MyAccount-navigation li a:before { content:"\f138"; font-family:"dashicons"; margin-right:10px; color:#ccc; font-size:16px; }
    .ccb-account-skin .woocommerce-MyAccount-navigation li a:hover { background:#fff; border-color:var(--ccb-blue); color:var(--ccb-blue); transform:translateX(3px); }
    .ccb-account-skin .woocommerce-MyAccount-navigation li a:hover:before { color:var(--ccb-blue); }
    .ccb-account-skin .woocommerce-MyAccount-navigation li.is-active a { background:var(--ccb-dark); border-color:var(--ccb-dark); color:#fff; }
    .ccb-account-skin .woocommerce-MyAccount-navigation li.is-active a:before { color:#fff; }
    .ccb-account-skin .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--customer-logout a { background:#fff6f5; border-color:#f0d3d0; color:#a81f17; }
    .ccb-account-skin .woocommerce-MyAccount-content h2, .ccb-account-skin .woocommerce-MyAccount-content h3 { font-family:var(--ccb-font-head); color:var(--ccb-dark); }
    .ccb-account-skin .woocommerce-MyAccount-content p, .ccb-account-skin .woocommerce-MyAccount-content li { font-family:var(--ccb-font-body); font-size:17px; line-height:1.55; color:#5c5346; }
    .ccb-account-skin .woocommerce-MyAccount-content table { border-collapse:collapse; width:100%; }
    .ccb-account-skin .woocommerce-MyAccount-content table th { background:var(--ccb-dark); color:#fff; font-family:var(--ccb-font-head); font-size:12px; letter-spacing:.06em; text-transform:uppercase; padding:12px 14px; }
    .ccb-account-skin .woocommerce-MyAccount-content table td { padding:12px 14px; border-top:1px solid #f0f0f0; font-family:var(--ccb-font-body); font-size:16px; }
    .ccb-account-skin .woocommerce-MyAccount-content .button, .ccb-account-skin .woocommerce-MyAccount-content button[type=submit] { display:inline-block; padding:11px 20px; background:var(--ccb-btn-p-bg); color:var(--ccb-btn-p-txt) !important; border-radius:4px; font-family:var(--ccb-font-head); font-weight:700; font-size:12px; text-transform:uppercase; border:none; cursor:pointer; }
    .ccb-account-skin .woocommerce-MyAccount-content .button:hover, .ccb-account-skin .woocommerce-MyAccount-content button[type=submit]:hover { opacity:.9; transform:translateY(-1px); }
    .ccb-account-skin .woocommerce-MyAccount-content input[type=text], .ccb-account-skin .woocommerce-MyAccount-content input[type=email],
    .ccb-account-skin .woocommerce-MyAccount-content input[type=password], .ccb-account-skin .woocommerce-MyAccount-content input[type=tel],
    .ccb-account-skin .woocommerce-MyAccount-content select { width:100%; max-width:100%; box-sizing:border-box; font-size:16px; padding:12px; border:1px solid #ddd; border-radius:6px; background:#fafafa; }
    .ccb-account-skin .woocommerce-MyAccount-content label { font-family:var(--ccb-font-head); font-size:12px; text-transform:uppercase; color:#666; font-weight:bold; }

    @media (max-width:900px) {
        .ccb-account-skin .woocommerce-account .woocommerce { grid-template-columns:minmax(0,1fr); gap:20px; padding:0 14px 30px; }
        .ccb-account-skin .woocommerce-MyAccount-navigation,
        .ccb-account-skin .woocommerce-MyAccount-content { width:100%; float:none; }
        .ccb-account-skin .woocommerce-MyAccount-navigation { margin-bottom:0; padding:16px; }
        .ccb-account-skin .woocommerce-MyAccount-content { padding:24px 20px; }
        .ccb-account-skin .woocommerce-MyAccount-content fieldset { padding:16px; }
        .ccb-account-intro { padding:22px 14px 18px; align-items:flex-start; }
        .ccb-account-intro h2 { font-size:22px; }
        .ccb-danger-zone { padding:0 14px; }
    }

    /* ---- TABELLE GRADI E XP ---- */
    .ccb-tabella-wrap { max-width:900px; margin:20px auto; overflow-x:auto; }
    .ccb-tabella-title { font-family:var(--ccb-font-head); font-size:19px; text-transform:uppercase; margin:26px 0 10px; color:var(--ccb-dark); }
    .ccb-tabella { width:100%; border-collapse:collapse; font-family:var(--ccb-font-body); font-size:16px; background:#fff; border:1px solid var(--ccb-case-border); border-radius:10px; overflow:hidden; }
    .ccb-tabella th { background:var(--ccb-dark); color:#fff; font-family:var(--ccb-font-head); font-size:12px; letter-spacing:.08em; text-transform:uppercase; padding:12px 14px; text-align:left; }
    .ccb-tabella td { padding:12px 14px; border-top:1px solid #f0f0f0; vertical-align:top; color:#4a4a4a; }
    .ccb-tabella tbody tr:nth-child(even) { background:#fbfaf8; }
    .ccb-tabella .ccb-row-current { background:rgba(41,128,185,.10) !important; box-shadow:inset 3px 0 0 var(--ccb-blue); }
    .ccb-pill { display:inline-block; font-family:var(--ccb-font-mono); font-size:10px; font-weight:bold; letter-spacing:.08em; padding:4px 10px; border-radius:20px; text-transform:uppercase; white-space:nowrap; }
    .ccb-pill-now { background:var(--ccb-blue); color:#fff; }
    .ccb-pill-ok { background:#d1f4da; color:#0a4f20; }
    .ccb-pill-todo { background:#f0f0f0; color:#777; }

    /* ---- ARRUOLAMENTO DALLA PAGINA DI RINGRAZIAMENTO ---- */
    .ccb-ty-box { max-width:640px; margin:34px auto; background:#fff; border:2px solid var(--ccb-beige); border-radius:14px; padding:32px 34px; box-sizing:border-box; font-family:var(--ccb-font-body); box-shadow:0 10px 34px rgba(0,0,0,.08); }
    .ccb-ty-tag { display:inline-block; font-family:var(--ccb-font-mono); font-size:10px; letter-spacing:.2em; text-transform:uppercase; color:var(--ccb-beige); border:1px dashed var(--ccb-beige); border-radius:30px; padding:5px 14px; margin-bottom:16px; }
    .ccb-ty-box h3 { font-family:var(--ccb-font-head); font-size:clamp(21px,3.4vw,27px); color:var(--ccb-dark); margin-bottom:10px; line-height:1.2; }
    .ccb-ty-intro { font-size:18px; color:#5c5346; line-height:1.5; margin:0 0 22px; }
    .ccb-ty-vantaggi { list-style:none; margin:0 0 24px; padding:0; display:flex; flex-direction:column; gap:11px; }
    .ccb-ty-vantaggi li { display:flex; gap:11px; align-items:flex-start; font-size:16px; color:#4a4331; line-height:1.45; }
    .ccb-ty-vantaggi li:before { content:""; flex-shrink:0; width:8px; height:8px; margin-top:8px; background:var(--ccb-blue); border-radius:1px; transform:rotate(45deg); }
    .ccb-ty-vantaggi strong { color:var(--ccb-dark); }
    .ccb-ty-form { border-top:1px dashed var(--ccb-case-border); padding-top:22px; }
    .ccb-ty-email { background:#faf9f5; border:1px solid var(--ccb-case-border); border-radius:8px; padding:14px 16px; margin-bottom:16px; }
    .ccb-ty-email-lbl { display:block; font-family:var(--ccb-font-mono); font-size:10px; letter-spacing:.12em; text-transform:uppercase; color:#8a8378; margin-bottom:4px; }
    .ccb-ty-email strong { font-size:17px; color:var(--ccb-dark); word-break:break-all; }
    .ccb-ty-consenso { display:flex; gap:11px; align-items:flex-start; font-size:15px; color:#5c5346; line-height:1.45; margin-bottom:18px; cursor:pointer; }
    .ccb-ty-consenso input { margin-top:3px; flex-shrink:0; width:18px; height:18px; }
    .ccb-ty-consenso a { color:var(--ccb-blue); text-decoration:underline; }
    .ccb-ty-invia { display:block; width:100%; padding:16px; font-size:14px; }
    .ccb-ty-nota { text-align:center; font-size:14px; color:#8a8378; margin:12px 0 0; }
    .ccb-ty-esiste { text-align:center; }
    .ccb-ty-esiste p { font-size:17px; color:#5c5346; margin-bottom:20px; }
    @media (max-width:600px) { .ccb-ty-box { padding:24px 18px; margin:22px 0; border-radius:10px; } }

    /* ---- PERCORSO REGALO ---- */
    .ccb-ty-regalo-switch { text-align:center; margin-top:16px; padding-top:16px; border-top:1px dashed var(--ccb-case-border); }
    .ccb-ty-regalo-btn { background:none; border:none; color:#7a7266; font-family:var(--ccb-font-body); font-size:16px; font-weight:600; cursor:pointer; text-decoration:underline; text-underline-offset:3px; padding:6px; }
    .ccb-ty-regalo-btn:hover { color:var(--ccb-blue); }
    .ccb-ty-regalo { display:none; margin-top:6px; padding-top:22px; border-top:1px dashed var(--ccb-case-border); }
    .ccb-ty-regalo.aperto { display:block; }
    .ccb-ty-regalo h4 { font-family:var(--ccb-font-head); font-size:20px; color:var(--ccb-dark); margin:0 0 10px; }
    .ccb-ty-regalo p { font-size:16px; color:#5c5346; line-height:1.5; margin:0 0 16px; }
    .ccb-ty-regalo-titolo { font-family:var(--ccb-font-head); font-size:13px !important; letter-spacing:.04em; text-transform:uppercase; color:#8a7a5c !important; margin-bottom:10px !important; }
    .ccb-ty-dati { display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:12px; margin-bottom:16px; }
    .ccb-ty-dato { background:#faf9f5; border:2px dashed var(--ccb-beige); border-radius:9px; padding:14px 16px; text-align:center; }
    .ccb-ty-dato-lbl { display:block; font-family:var(--ccb-font-mono); font-size:10px; letter-spacing:.12em; text-transform:uppercase; color:#8a8378; margin-bottom:6px; }
    .ccb-ty-dato strong { font-family:var(--ccb-font-head); font-size:20px; color:var(--ccb-dark); word-break:break-word; line-height:1.2; }
    .ccb-ty-copia { display:block; width:100%; padding:14px; background:var(--ccb-btn-s-bg); color:var(--ccb-btn-s-txt) !important; border:none; border-radius:6px; font-family:var(--ccb-font-head); font-size:13px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; cursor:pointer; transition:.2s; margin-bottom:14px; }
    .ccb-ty-copia:hover { filter:brightness(1.08); }
    .ccb-ty-regalo-come { font-size:15px !important; color:#7a7266 !important; background:#f6f4ee; border-radius:8px; padding:14px 16px; margin:0 !important; }
    #ccb-ty-testo { position:absolute; left:-9999px; width:1px; height:1px; opacity:0; }

    /* ---- CASO CONSIGLIATO DI FINE INDAGINE ---- */
    .ccb-next-box { max-width:700px; margin:20px auto 0; background:linear-gradient(135deg, rgba(180,159,126,.12), rgba(180,159,126,.04)); border:1px solid var(--ccb-beige); border-radius:12px; padding:24px 26px; box-sizing:border-box; font-family:var(--ccb-font-body); text-align:center; }
    .ccb-next-tag { display:inline-block; font-family:var(--ccb-font-mono); font-size:10px; letter-spacing:.18em; text-transform:uppercase; color:#8a7a5c; margin-bottom:16px; }
    .ccb-next-corpo { display:flex; gap:18px; align-items:center; text-align:left; margin-bottom:18px; }
    .ccb-next-img { width:92px; height:92px; object-fit:cover; border-radius:8px; flex-shrink:0; border:2px solid #fff; box-shadow:0 3px 12px rgba(0,0,0,.12); }
    .ccb-next-testo h4 { font-family:var(--ccb-font-head); font-size:19px; color:var(--ccb-dark); margin:0 0 6px; line-height:1.2; }
    .ccb-next-testo p { font-size:16px; color:#5c5346; line-height:1.45; margin:0 0 8px; }
    .ccb-next-sconto { display:inline-block; background:rgba(39,174,96,.12); border:1px solid rgba(39,174,96,.4); color:#1e7e46; border-radius:20px; padding:5px 13px; font-size:14px; }
    .ccb-next-box .ccb-cta { min-width:260px; }
    @media (max-width:600px) {
        .ccb-next-corpo { flex-direction:column; text-align:center; gap:12px; }
        .ccb-next-img { width:110px; height:110px; }
        .ccb-next-box .ccb-cta { width:100%; min-width:0; }
    }

    /* ---- VETRINA E ETICHETTE ---- */
    .ccb-vetrina-avviso { grid-column:1 / -1; background:linear-gradient(135deg, rgba(91,45,144,.10), rgba(91,45,144,.03)); border:1px dashed var(--ccb-mini-border); border-radius:10px; padding:16px 20px; margin-bottom:4px; font-family:var(--ccb-font-body); }
    .ccb-vetrina-avviso strong { display:block; font-family:var(--ccb-font-head); font-size:16px; color:var(--ccb-mini-accent); margin-bottom:4px; }
    .ccb-vetrina-avviso span { font-size:16px; color:#5c5346; line-height:1.45; }
    .ccb-case-item.ccb-vetrina { box-shadow:0 6px 22px rgba(91,45,144,.14); }
    .ccb-spec-social { border-style:dashed !important; border-color:var(--ccb-mini-border) !important; color:var(--ccb-mini-accent) !important; font-weight:bold; }
    .ccb-spec-doppia { border-style:dashed !important; font-weight:600; width:100%; box-sizing:border-box; }
    .ccb-doppia { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:8px 12px; width:100%; background:#faf9f5; border:1px dashed var(--ccb-case-border); border-radius:8px; padding:12px 14px; margin-bottom:10px; box-sizing:border-box; }
    .ccb-doppia-via { font-family:var(--ccb-font-body); font-size:16px; color:#5c5346; line-height:1.3; text-align:center; }
    .ccb-doppia-via b { color:var(--ccb-dark); }
    .ccb-doppia-opp { font-family:var(--ccb-font-mono); font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:#a8a094; }
    @media (max-width:520px) { .ccb-doppia { flex-direction:column; gap:6px; } }

    /* ---- PAGINA STATISTICHE PUBBLICHE ---- */
    .ccb-stats-pub { max-width:1000px; margin:0 auto; padding:0 18px 40px; font-family:var(--ccb-font-body); box-sizing:border-box; }
    .ccb-stats-testata { text-align:center; padding:34px 0 26px; }
    .ccb-stats-testata h2 { font-family:var(--ccb-font-head); font-size:clamp(24px,4vw,32px); color:var(--ccb-dark); margin-bottom:8px; text-transform:uppercase; letter-spacing:1px; }
    .ccb-stats-testata p { font-size:17px; color:#5c5346; margin:0 auto; max-width:560px; line-height:1.5; }
    .ccb-stats-sezione { background:#fff; border:1px solid var(--ccb-case-border); border-radius:10px; padding:24px 26px; margin-bottom:20px; box-shadow:0 3px 14px rgba(0,0,0,.03); }
    .ccb-stats-sezione h3 { font-family:var(--ccb-font-head); font-size:19px; color:var(--ccb-dark); margin:0 0 18px; padding-bottom:12px; border-bottom:1px solid #f0ece2; }
    .ccb-stats-griglia { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:16px; }
    .ccb-stats-tessera { text-align:center; background:#faf9f5; border:1px solid var(--ccb-case-border); border-radius:9px; padding:22px 14px; }
    .ccb-stats-num { display:block; font-family:var(--ccb-font-head); font-size:34px; font-weight:900; color:var(--ccb-blue); line-height:1; margin-bottom:7px; }
    .ccb-stats-cap { font-family:var(--ccb-font-mono); font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:#8a8378; }
    .ccb-stats-barre { display:flex; flex-direction:column; gap:12px; }
    .ccb-stats-riga { display:grid; grid-template-columns:minmax(120px,1.6fr) 3fr 44px; align-items:center; gap:12px; }
    .ccb-stats-riga-nome { font-size:16px; color:#4a4331; font-weight:600; line-height:1.3; }
    .ccb-stats-riga-num { font-family:var(--ccb-font-head); font-size:16px; font-weight:700; color:var(--ccb-dark); text-align:right; }
    .ccb-stats-barra { height:12px; background:#f0ece2; border-radius:20px; overflow:hidden; }
    .ccb-stats-barra-fill { height:100%; background:linear-gradient(90deg, var(--ccb-blue), var(--ccb-beige)); border-radius:20px; transition:width .5s ease; }
    .ccb-stats-mio { background:var(--ccb-dark); color:#fff; border-radius:12px; padding:26px 28px; margin-bottom:22px; display:grid; grid-template-columns:minmax(180px,1fr) 2fr; gap:26px; align-items:center; }
    .ccb-stats-mio-lbl { display:block; font-family:var(--ccb-font-mono); font-size:10px; letter-spacing:.16em; text-transform:uppercase; color:var(--ccb-beige); margin-bottom:6px; }
    .ccb-stats-mio-grado strong { display:block; font-family:var(--ccb-font-head); font-size:26px; line-height:1.1; margin-bottom:4px; }
    .ccb-stats-mio-xp { font-size:16px; color:#cfc8b8; }
    .ccb-stats-mio-next p { font-size:16px; color:#e6e1d6; margin:12px 0 10px; line-height:1.45; }
    .ccb-stats-mio-next .ccb-stats-barra { background:rgba(255,255,255,.18); }
    .ccb-stats-link { display:inline-block; font-size:16px; color:#fff !important; font-weight:600; }
    .ccb-stats-link span { text-decoration:underline; text-underline-offset:3px; color:var(--ccb-beige); }
    .ccb-stats-promossi { display:flex; flex-wrap:wrap; gap:9px; }
    .ccb-stats-promosso { background:rgba(39,174,96,.10); border:1px solid rgba(39,174,96,.35); color:#1e7e46; border-radius:30px; padding:7px 15px; font-size:15px; }
    /* Chi arriva al primo grado non e stato promosso: si e appena arruolato,
       quindi merita un colore proprio invece del verde delle promozioni. */
    .ccb-stats-promosso.nuovo { background:rgba(41,128,185,.10); border-color:rgba(41,128,185,.35); color:#1c5f8c; }

    /* ---- BACHECA DELLE RISOLUZIONI ---- */
    .ccb-stats-bacheca { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:9px; }
    .ccb-stats-bacheca li { background:#faf9f5; border:1px solid var(--ccb-case-border); border-left:3px solid var(--ccb-blue); border-radius:8px; padding:12px 15px; font-size:16px; color:#5c5346; line-height:1.4; }
    .ccb-stats-bacheca li.mini { border-left-color:var(--ccb-mini-accent); }
    .ccb-stats-bacheca strong { color:var(--ccb-dark); }
    .ccb-stats-bacheca em { font-style:normal; font-weight:600; color:var(--ccb-blue); }
    .ccb-stats-bacheca li.mini em { color:var(--ccb-mini-accent); }

    /* ---- RIEPILOGO PROGRESSI PERSONALI ---- */
    .ccb-mio-progresso { display:flex; flex-direction:column; gap:20px; }
    .ccb-mio-testa { display:flex; justify-content:space-between; align-items:baseline; gap:12px; margin-bottom:8px; flex-wrap:wrap; }
    .ccb-mio-lbl { font-family:var(--ccb-font-head); font-size:16px; color:var(--ccb-dark); font-weight:700; }
    .ccb-mio-conta { font-family:var(--ccb-font-body); font-size:16px; color:#7a7266; }
    .ccb-mio-conta strong { font-family:var(--ccb-font-head); font-size:20px; color:var(--ccb-blue); }
    .ccb-mio-resto { display:block; margin-top:7px; font-size:15px; color:#8a8378; }
    .ccb-mio-resto strong { color:var(--ccb-dark); }
    .ccb-stats-cta { text-align:center; background:#faf9f5; border:2px dashed var(--ccb-beige); border-radius:12px; padding:32px 24px; margin-top:8px; }
    .ccb-stats-cta h3 { font-family:var(--ccb-font-head); font-size:21px; color:var(--ccb-dark); margin-bottom:8px; }
    .ccb-stats-cta p { font-size:17px; color:#5c5346; margin:0 auto 20px; max-width:440px; }
    @media (max-width:700px) {
        .ccb-stats-pub { padding:0 14px 30px; }
        .ccb-stats-sezione { padding:20px 16px; }
        .ccb-stats-mio { grid-template-columns:minmax(0,1fr); gap:16px; padding:22px 18px; }
        .ccb-stats-riga { grid-template-columns:minmax(0,1fr) 40px; grid-template-areas:"nome num" "barra barra"; gap:6px 10px; }
        .ccb-stats-riga-nome { grid-area:nome; }
        .ccb-stats-riga-num { grid-area:num; }
        .ccb-stats-barra { grid-area:barra; }
        .ccb-stats-num { font-size:28px; }
    }

    /* ---- BLOCCO ACCESSO ALLE PAGINE DI GIOCO ---- */
    .ccb-blocco-accesso { font-family:var(--ccb-font-body); max-width:640px; margin:34px auto; background:#fffdf5; border:2px dashed var(--ccb-beige); border-radius:14px; padding:36px 30px; text-align:center; box-sizing:border-box; box-shadow:0 10px 30px rgba(0,0,0,.06); }
    .ccb-blocco-sigillo { display:inline-flex; align-items:center; justify-content:center; width:64px; height:64px; border-radius:50%; background:rgba(180,159,126,.15); border:2px solid var(--ccb-beige); font-size:28px; margin-bottom:16px; }
    .ccb-blocco-accesso h3 { font-family:var(--ccb-font-head); font-size:23px; color:var(--ccb-dark); margin-bottom:10px; line-height:1.2; }
    .ccb-blocco-accesso p { font-size:17px; color:#5c5346; line-height:1.5; margin:0 auto 22px; max-width:460px; }
    .ccb-blocco-azioni { display:flex; gap:12px; justify-content:center; flex-wrap:wrap; }
    .ccb-blocco-azioni .ccb-cta, .ccb-blocco-azioni .ccb-btn-esplora { min-width:210px; }
    @media (max-width:600px) {
        .ccb-blocco-accesso { padding:28px 20px; margin:24px 0; }
        .ccb-blocco-accesso h3 { font-size:20px; }
        .ccb-blocco-azioni .ccb-cta, .ccb-blocco-azioni .ccb-btn-esplora { width:100%; min-width:0; }
    }

    /* ---- SOTTOFILTRI DELLA SEZIONE MINI ---- */
    .ccb-subfilter-bar { display:flex; flex-wrap:wrap; gap:9px; justify-content:center; align-items:center; margin:-14px 0 26px; }
    .ccb-subfilter-lbl { font-family:var(--ccb-font-mono); font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:#8a8378; margin-right:4px; }
    .ccb-subfilter-btn { font-family:var(--ccb-font-mono); font-size:10px; letter-spacing:.09em; background:#fff; color:var(--ccb-mini-accent); border:1px solid var(--ccb-mini-border); padding:7px 15px; border-radius:30px; cursor:pointer; text-transform:uppercase; font-weight:bold; transition:.2s; }
    .ccb-subfilter-btn:hover, .ccb-subfilter-btn.active { background:var(--ccb-mini-accent); color:#fff; border-color:var(--ccb-mini-accent); }

    /* ---- CONTENUTI A TEMA ---- */
    .ccb-case-item.ccb-tema .ccb-case-desc { color:var(--ccb-tema-testo, #5c5346); }
    .ccb-case-item.ccb-tema .ccb-case-title { color:var(--ccb-tema-testo, var(--ccb-dark)); }
    .ccb-case-item.ccb-tema .ccb-case-id { color:var(--ccb-tema-bordo, var(--ccb-blue)); }
    .ccb-case-item.ccb-tema .ccb-case-img { border-right-color:var(--ccb-tema-bordo, var(--ccb-case-border)); background:rgba(255,255,255,.35); }
    .ccb-case-item.ccb-tema .specs { border-top-color:var(--ccb-tema-bordo, var(--ccb-case-border)); }
    .ccb-case-item.ccb-tema .spec { border-color:var(--ccb-tema-bordo, var(--ccb-case-border)); background:rgba(255,255,255,.65); }
    .type-stamp.stamp-tema { background:rgba(255,255,255,.94); }
    .ccb-spec-tempo { border-style:dashed !important; font-weight:bold; }
    @media (max-width:900px) {
        .ccb-case-item.ccb-tema .ccb-case-img { border-right:none; border-bottom-color:var(--ccb-tema-bordo, var(--ccb-case-border)); }
    }

    /* ---- ATTESTATO DI PROMOZIONE ---- */
    .ccb-promo-overlay { position:fixed; inset:0; background:rgba(0,0,0,.85); z-index:99997; display:flex; justify-content:center; align-items:center; padding:16px; }
    .ccb-promo-attestato { position:relative; background:#fdfbf5; width:min(520px,100%); max-height:90vh; overflow-y:auto; border-radius:6px; padding:38px 34px 32px; text-align:center; box-sizing:border-box; box-shadow:0 20px 60px rgba(0,0,0,.6); border:2px solid var(--ccb-beige); animation:ccbPopIn .7s cubic-bezier(.175,.885,.32,1.275) forwards; font-family:var(--ccb-font-body); }
    .ccb-promo-attestato:before { content:""; position:absolute; inset:9px; border:1px solid rgba(180,159,126,.55); border-radius:3px; pointer-events:none; }
    .ccb-promo-intestazione { font-family:var(--ccb-font-mono); font-size:10px; letter-spacing:.24em; text-transform:uppercase; color:#a2957c; margin-bottom:20px; }
    .ccb-promo-occhiello { font-family:var(--ccb-font-body); font-size:17px; font-style:italic; color:#7a7266; margin-bottom:6px; }
    .ccb-promo-grado { font-family:var(--ccb-font-head); font-size:clamp(28px,6vw,40px); font-weight:900; letter-spacing:1px; text-transform:uppercase; color:var(--ccb-dark); line-height:1.1; margin:0 0 4px; }
    .ccb-promo-da { font-family:var(--ccb-font-mono); font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:#a2957c; margin-bottom:22px; }
    .ccb-promo-sigillo { width:74px; height:74px; margin:0 auto 18px; border-radius:50%; border:2px dashed var(--ccb-beige); display:flex; align-items:center; justify-content:center; font-family:var(--ccb-font-head); font-size:26px; font-weight:900; color:var(--ccb-beige); background:rgba(180,159,126,.08); }
    .ccb-promo-divisore { width:70px; height:1px; background:var(--ccb-beige); margin:0 auto 20px; }
    .ccb-promo-vantaggi { text-align:left; background:rgba(180,159,126,.09); border:1px solid rgba(180,159,126,.35); border-radius:6px; padding:16px 18px; margin-bottom:20px; }
    .ccb-promo-vantaggi strong.ccb-promo-vlbl { display:block; font-family:var(--ccb-font-head); font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:#8a7a5c; margin-bottom:8px; }
    .ccb-promo-vantaggi p { font-size:16px; color:#4f4838; margin:0; line-height:1.5; }
    .ccb-promo-sconto { display:flex; align-items:center; gap:12px; background:rgba(39,174,96,.10); border:1px solid rgba(39,174,96,.4); border-radius:6px; padding:12px 16px; margin-bottom:20px; text-align:left; }
    .ccb-promo-sconto span.ccb-promo-perc { font-family:var(--ccb-font-head); font-size:22px; font-weight:900; color:#1e7e46; }
    .ccb-promo-sconto span.ccb-promo-sctxt { font-size:15px; color:#2f5a42; line-height:1.4; }
    .ccb-promo-firma { font-family:var(--ccb-font-body); font-style:italic; font-size:15px; color:#8a8378; margin:0 0 22px; }
    .ccb-promo-attestato .ccb-cta { min-width:220px; }
    @media (max-width:600px) { .ccb-promo-attestato { padding:30px 22px 26px; } .ccb-promo-vantaggi { padding:14px; } }

    /* ---- MODULI DI CONTATTO ---- */
    .ccb-support-box { max-width:720px; margin:0 auto; background:#fff; border:1px solid var(--ccb-case-border); border-radius:12px; padding:34px 36px; box-shadow:0 6px 22px rgba(0,0,0,.05); box-sizing:border-box; }
    .ccb-support-titolo { font-size:25px; margin-bottom:8px; }
    .ccb-support-intro { font-size:17px; color:#5c5346; line-height:1.5; margin:0 0 24px; padding-bottom:20px; border-bottom:1px dashed var(--ccb-case-border); }
    .ccb-support-riga { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
    .ccb-support-campo { margin-bottom:18px; }
    .ccb-support-campo label { display:block; font-family:var(--ccb-font-head); font-size:12px; letter-spacing:.05em; text-transform:uppercase; color:#6b6355; font-weight:700; margin-bottom:7px; }
    .ccb-support-campo input[type=text], .ccb-support-campo input[type=email], .ccb-support-campo textarea { width:100%; padding:13px 14px; border:1px solid #ddd6c8; border-radius:7px; background:#fdfcf9; font-family:var(--ccb-font-body); font-size:16px; color:#3c3527; box-sizing:border-box; transition:border-color .18s ease, background .18s ease; }
    .ccb-support-campo input:focus, .ccb-support-campo textarea:focus { outline:none; border-color:var(--ccb-blue); background:#fff; }
    .ccb-support-campo textarea { resize:vertical; line-height:1.55; min-height:150px; }
    .ccb-support-invia { width:100%; padding:15px; font-size:13px; margin-top:6px; }
    .ccb-support-nota { text-align:center; font-size:14px; color:#8a8378; margin:12px 0 0; }
    .ccb-support-grazie { text-align:center; padding:14px 0; }
    .ccb-support-check { display:inline-flex; align-items:center; justify-content:center; width:62px; height:62px; border-radius:50%; background:#d1f4da; color:#0a4f20; font-size:30px; margin-bottom:16px; }
    .ccb-support-grazie h3 { font-size:23px; margin-bottom:10px; }
    .ccb-support-grazie p { font-size:17px; color:#5c5346; line-height:1.5; margin:0 auto 22px; max-width:460px; }
    @media (max-width:700px) {
        .ccb-support-box { padding:26px 20px; border-radius:10px; }
        .ccb-support-riga { grid-template-columns:1fr; gap:0; }
        .ccb-support-titolo { font-size:22px; }
    }

    /* ---- ASSISTENTI DELL ACCADEMIA ---- */
    /* Il richiamo agli assistenti resta in disparte: un rimando discreto in
       fondo alla pagina, non un elemento che compete con i contenuti. */
    .ccb-assistente-wrap { max-width:1300px; margin:0 auto; padding:22px 18px 34px; text-align:right; }
    .ccb-assistente-cta { display:inline-flex; align-items:center; gap:7px; padding:7px 4px; background:none !important; border:none; box-shadow:none; color:#8a8378 !important; font-family:var(--ccb-font-body); font-weight:600; font-size:15px; letter-spacing:0; text-transform:none; cursor:pointer; opacity:.85; transition:color .18s ease, opacity .18s ease; }
    .ccb-assistente-cta:hover { opacity:1; transform:none; filter:none; text-decoration:underline; text-underline-offset:3px; }
    .ccb-assistente-cta:before { content:"\f125"; font-family:"dashicons"; font-size:16px; line-height:1; opacity:.7; }
    .ccb-libretto-wrap + .ccb-assistente-wrap, .ccb-account-skin + .ccb-assistente-wrap { padding-top:14px; }
    @media (max-width:700px) { .ccb-assistente-wrap { text-align:center; padding:18px 18px 30px; } }

    .ccb-guida-overlay { position:fixed; inset:0; background:rgba(0,0,0,.42); z-index:9997; display:none; pointer-events:none; }
    .ccb-guida-overlay.attivo { display:block; }
    .ccb-guida-evidenziato { position:relative; z-index:9998 !important; box-shadow:0 0 0 4px rgba(142,68,173,.85), 0 0 22px rgba(142,68,173,.5) !important; border-radius:8px; }
    .ccb-guida-widget { position:fixed; bottom:16px; right:16px; z-index:9999; display:none; align-items:flex-end; pointer-events:none; max-width:calc(100% - 32px); }
    .ccb-guida-widget.attivo { display:flex; }
    .ccb-guida-personaggio { width:130px; height:auto; pointer-events:none; animation:joeBreathing 4s ease-in-out infinite; }
    .ccb-guida-bolla { position:relative; background:#fff; border:2px solid var(--ccb-dark); border-radius:12px; padding:14px 18px; width:min(280px, 66vw); box-shadow:0 5px 20px rgba(0,0,0,.18); margin-bottom:18px; margin-right:-8px; font-family:var(--ccb-font-body); color:#333; pointer-events:auto; box-sizing:border-box; }
    .ccb-guida-testa { display:flex; justify-content:space-between; align-items:center; gap:8px; }
    .ccb-guida-nome { font-family:var(--ccb-font-head); font-size:13px; font-weight:700; text-transform:uppercase; }
    .ccb-guida-avanz { font-size:11px; color:#999; font-weight:bold; }
    .ccb-guida-chiudi { font-size:20px; color:#999; cursor:pointer; line-height:1; }
    .ccb-guida-ruolo { display:block; font-family:var(--ccb-font-mono); font-size:10px; letter-spacing:.1em; text-transform:uppercase; color:#a09888; margin-bottom:8px; }
    .ccb-guida-testo { font-size:15px; line-height:1.45; min-height:78px; display:block; }
    .ccb-guida-comandi { display:flex; justify-content:space-between; margin-top:12px; gap:8px; }
    .ccb-guida-btn { color:#fff; border:none; border-radius:4px; padding:7px 13px; font-size:12px; font-weight:600; cursor:pointer; font-family:var(--ccb-font-body); }
    .ccb-guida-btn:disabled { background:#ccc !important; cursor:not-allowed; }
    @media (max-width:600px) { .ccb-guida-personaggio { width:92px; } .ccb-assistente-cta { width:100%; justify-content:center; } }

    /* ---- AVATAR A INIZIALI ---- */
    .ccb-avatar-iniziali { display:inline-flex; align-items:center; justify-content:center; border-radius:50%; color:#fff; font-family:var(--ccb-font-head); font-weight:700; letter-spacing:.04em; line-height:1; border:3px solid #fff; box-shadow:0 2px 10px rgba(0,0,0,.12); object-fit:cover; }
    .ccb-avatar-iniziali.ccb-avatar-lib { border-radius:8px; border:3px solid var(--ccb-beige); }

    /* ---- SCONTO DI GRADO ---- */
    .ccb-sconto-box { display:flex; align-items:center; gap:16px; background:linear-gradient(135deg, rgba(39,174,96,.10), rgba(39,174,96,.04)); border:1px solid rgba(39,174,96,.35); border-radius:10px; padding:16px 18px; margin:16px 0; font-family:var(--ccb-font-body); }
    .ccb-sconto-perc { flex-shrink:0; font-family:var(--ccb-font-head); font-size:26px; font-weight:900; color:#1e7e46; background:#fff; border:2px solid rgba(39,174,96,.4); border-radius:10px; padding:10px 14px; line-height:1; }
    .ccb-sconto-testo strong { display:block; font-family:var(--ccb-font-head); font-size:13px; letter-spacing:.06em; text-transform:uppercase; color:#1e7e46; margin-bottom:4px; }
    .ccb-sconto-testo span { font-size:16px; color:#3f4b43; line-height:1.45; }
    .ccb-sconto-testo span strong { display:inline; font-size:inherit; letter-spacing:0; text-transform:none; color:#1e7e46; }
    .ccb-sconto-inline { display:inline-block; font-family:var(--ccb-font-body); font-size:16px; color:#1e7e46; }
    .ccb-sconto-side { background:rgba(39,174,96,.08); border:1px dashed rgba(39,174,96,.45); border-radius:8px; padding:12px 14px; margin-top:14px; text-align:center; font-size:15px; color:#1e7e46; line-height:1.4; }
    .ccb-sconto-side strong { font-weight:700; }

    /* ---- ANTEPRIMA RISERVATA ---- */
    .ccb-anteprima-tag { display:inline-flex; align-items:center; gap:7px; background:#f3eefb; border:1px dashed var(--ccb-mini-accent); color:var(--ccb-mini-accent); border-radius:30px; padding:8px 15px; font-family:var(--ccb-font-mono); font-size:11px; letter-spacing:.08em; text-transform:uppercase; font-weight:bold; }
    .ccb-anteprima-nota { font-size:14px; color:#6b6478; font-style:italic; margin-top:6px; display:block; width:100%; }
    .type-stamp.stamp-anteprima { color:var(--ccb-mini-accent); border-color:var(--ccb-mini-accent); background:rgba(243,238,251,.95); }

    /* ---- AVVISO NUOVO FASCICOLO SBLOCCATO ---- */
    .ccb-unlock-overlay { position:fixed; inset:0; background:rgba(0,0,0,.82); z-index:99996; display:flex; justify-content:center; align-items:center; padding:16px; }
    .ccb-unlock-popup { background:#fff; border-radius:16px; text-align:center; width:min(460px,100%); max-height:88vh; overflow-y:auto; box-shadow:0 15px 50px rgba(0,0,0,.55); border:4px solid var(--ccb-blue); box-sizing:border-box; padding:30px 26px; animation:ccbPopIn .6s cubic-bezier(.175,.885,.32,1.275) forwards; font-family:var(--ccb-font-body); }
    .ccb-unlock-popup .ccb-unlock-kicker { display:inline-block; font-family:var(--ccb-font-mono); font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:var(--ccb-blue); margin-bottom:8px; }
    .ccb-unlock-popup h3 { font-family:var(--ccb-font-head); font-size:24px; color:var(--ccb-dark); margin-bottom:8px; }
    .ccb-unlock-popup > p { font-size:17px; color:#5c5346; margin-bottom:20px; line-height:1.45; }
    .ccb-unlock-item { display:flex; align-items:center; gap:14px; text-align:left; background:#faf9f5; border:1px solid var(--ccb-case-border); border-radius:9px; padding:12px 14px; margin-bottom:10px; }
    .ccb-unlock-item img { width:56px; height:56px; object-fit:cover; border-radius:6px; flex-shrink:0; }
    .ccb-unlock-item-info strong { display:block; font-family:var(--ccb-font-head); font-size:16px; color:var(--ccb-dark); line-height:1.2; }
    .ccb-unlock-item-info span { font-size:14px; color:#7a7266; }

    /* ---- CHIUSURA DISTINTIVO ---- */
    .ccb-danger-zone { max-width:1300px; margin:26px auto 0; padding:0 18px; }
    .ccb-danger-card { background:#fff; border:1px solid #f0d3d0; border-left:4px solid #a81f17; border-radius:9px; padding:22px 24px; }
    .ccb-danger-card h3 { font-family:var(--ccb-font-head); font-size:18px; color:#a81f17; margin-bottom:8px; }
    .ccb-danger-card p { font-size:16px; color:#6b5a58; line-height:1.5; margin-bottom:14px; }
    .ccb-danger-toggle { background:none; border:1px solid #d9b8b4; color:#a81f17; border-radius:6px; padding:10px 18px; font-family:var(--ccb-font-head); font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; cursor:pointer; }
    .ccb-danger-toggle:hover { background:#fff6f5; }
    .ccb-danger-form { display:none; margin-top:16px; padding-top:16px; border-top:1px dashed #f0d3d0; }
    .ccb-danger-form.open { display:block; }
    .ccb-danger-form label { display:block; font-family:var(--ccb-font-head); font-size:12px; text-transform:uppercase; color:#a81f17; font-weight:700; margin-bottom:6px; }
    .ccb-danger-form input[type=text] { max-width:260px; padding:11px; border:1px solid #d9b8b4; border-radius:6px; font-family:var(--ccb-font-mono); font-size:16px; }
    .ccb-danger-submit { background:#a81f17; color:#fff !important; border:none; border-radius:6px; padding:12px 20px; font-family:var(--ccb-font-head); font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; cursor:pointer; margin-left:10px; }
    .ccb-danger-submit:hover { filter:brightness(1.1); }
    @media (max-width:600px) { .ccb-danger-form input[type=text] { max-width:100%; } .ccb-danger-submit { margin:12px 0 0; width:100%; } }

    /* ---- RACCONTO DELLE MEDAGLIE ---- */
    .ccb-medal-item.ccb-medal-clic { cursor:pointer; }
    .ccb-medal-item.ccb-medal-clic:hover .ccb-medal-img { transform:translateY(-3px); box-shadow:0 8px 18px rgba(0,0,0,.18); }
    .ccb-medal-img { transition:transform .2s ease, box-shadow .2s ease; }
    .ccb-medal-story-overlay { position:fixed; inset:0; background:rgba(0,0,0,.8); z-index:99995; display:none; justify-content:center; align-items:center; padding:16px; }
    .ccb-medal-story-overlay.open { display:flex; }
    .ccb-medal-story { background:#fff; padding:32px 26px; border-radius:16px; text-align:center; width:min(430px,100%); max-height:88vh; overflow-y:auto; box-shadow:0 15px 50px rgba(0,0,0,.5); border:4px solid #d4af37; box-sizing:border-box; font-family:var(--ccb-font-body); }
    .ccb-medal-story.locked { border-color:#bfbfbf; }
    .ccb-medal-story img { width:110px; height:110px; border-radius:50%; object-fit:cover; border:4px solid #fff; box-shadow:0 0 34px rgba(212,175,55,.7); margin-bottom:14px; }
    .ccb-medal-story.locked img { filter:grayscale(100%) opacity(.45); box-shadow:none; border-style:dashed; border-color:#ccc; }
    .ccb-medal-story h3 { font-family:var(--ccb-font-head); color:#b5952f; font-size:23px; margin-bottom:6px; text-transform:uppercase; line-height:1.15; }
    .ccb-medal-story.locked h3 { color:#8a8a8a; }
    .ccb-medal-story .ccb-medal-story-state { display:inline-block; font-family:var(--ccb-font-mono); font-size:10px; letter-spacing:.14em; text-transform:uppercase; padding:4px 12px; border-radius:20px; margin-bottom:14px; background:#d1f4da; color:#0a4f20; }
    .ccb-medal-story.locked .ccb-medal-story-state { background:#f0f0f0; color:#777; }
    .ccb-medal-story p { font-size:17px; color:#555; line-height:1.5; margin:0 0 20px; }

    /* ---- SQUADRA ---- */
    .ccb-team-residuo { border-style:dashed !important; border-color:#27ae60 !important; color:#1e7e46 !important; }
    .ccb-team-roster { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-top:16px; padding-top:14px; border-top:1px dashed var(--ccb-case-border); }
    .ccb-team-roster-lbl { font-family:var(--ccb-font-mono); font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:#8a8378; margin-right:2px; }
    .ccb-team-nome { display:inline-block; background:rgba(39,174,96,.10); border:1px solid rgba(39,174,96,.35); color:#1e7e46; border-radius:30px; padding:5px 13px; font-family:var(--ccb-font-body); font-size:14px; font-weight:600; }
    .ccb-team-nome.io { background:var(--ccb-dark); border-color:var(--ccb-dark); color:#fff; }
    .ccb-case-item.paper-style .ccb-team-roster { border-top-color:rgba(0,0,0,.12); }
    .ccb-case-item.paper-style .ccb-team-roster-lbl { color:var(--ccb-paper-text); }
    .ccb-case-item.paper-style .ccb-team-nome { background:rgba(255,255,255,.55); border-color:rgba(0,0,0,.15); color:#2c241b; }
    .ccb-case-item.paper-style .ccb-team-nome.io { background:var(--ccb-dark); border-color:var(--ccb-dark); color:#fff; }
    .ccb-team-countdown { font-family:var(--ccb-font-mono); font-size:13px; color:#1e7e46; background:rgba(39,174,96,.10); border:1px dashed rgba(39,174,96,.45); border-radius:8px; padding:10px 14px; margin:0 0 14px; }
    .ccb-team-share-off { background:#f6f6f6; border-color:#c9c9c9; }
    .ccb-team-share-off h4 { color:#7a7a7a; }
    .ccb-team-share { background:#f0f8ff; padding:22px; border:2px dashed var(--ccb-blue); border-radius:12px; margin:22px auto; max-width:720px; text-align:center; font-family:var(--ccb-font-body); box-sizing:border-box; }
    .ccb-team-share h4 { font-family:var(--ccb-font-head); color:var(--ccb-blue); font-size:20px; margin-bottom:8px; }
    .ccb-team-share p { font-size:15px; color:#555; line-height:1.45; margin-bottom:14px; }
    .ccb-team-share-row { display:flex; gap:10px; flex-wrap:wrap; justify-content:center; }
    .ccb-team-share-row input { flex:1; min-width:220px; padding:11px; border:1px solid #ccc; border-radius:6px; background:#fff; font-family:var(--ccb-font-mono); font-size:13px; box-sizing:border-box; }

    /* ---- POPUP ---- */
    .ccb-modal-overlay { position:fixed; inset:0; background:rgba(0,0,0,.75); z-index:99990; display:none; }
    .ccb-modal { position:fixed; top:50%; left:50%; transform:translate(-50%,-50%); background:#fff; padding:32px 26px; border-radius:14px; box-shadow:0 15px 50px rgba(0,0,0,.5); z-index:99991; text-align:center; width:min(440px, calc(100% - 32px)); max-height:88vh; overflow-y:auto; font-family:var(--ccb-font-body); display:none; box-sizing:border-box; }
    .ccb-modal h3 { font-family:var(--ccb-font-head); font-size:23px; margin-bottom:12px; color:var(--ccb-dark); }
    .ccb-modal p { font-size:16px; margin-bottom:20px; color:#555; line-height:1.45; }
    .ccb-modal .ccb-btn { display:block; width:100%; margin-bottom:10px; padding:13px; font-size:13px; }
    .ccb-modal-team { border:3px solid #27ae60; width:min(520px, calc(100% - 32px)); }
    .ccb-modal-team h3 { color:#27ae60; text-transform:uppercase; }
    .ccb-medal-popup-overlay { position:fixed; inset:0; background:rgba(0,0,0,.8); z-index:99995; display:flex; justify-content:center; align-items:center; padding:16px; }
    .ccb-medal-popup { background:#fff; padding:32px 24px; border-radius:16px; text-align:center; width:min(430px,100%); max-height:88vh; overflow-y:auto; box-shadow:0 15px 50px rgba(0,0,0,.5); animation:ccbPopIn .6s cubic-bezier(.175,.885,.32,1.275) forwards; border:4px solid #d4af37; box-sizing:border-box; }
    @keyframes ccbPopIn { 0% { transform:scale(.6); opacity:0; } 100% { transform:scale(1); opacity:1; } }
    .ccb-medal-popup img { width:120px; height:120px; border-radius:50%; box-shadow:0 0 40px rgba(212,175,55,.8); margin-bottom:15px; border:4px solid #fff; object-fit:cover; }
    .ccb-medal-popup h3 { font-family:var(--ccb-font-head); color:#d4af37; font-size:26px; margin-bottom:10px; text-transform:uppercase; line-height:1.1; }
    .ccb-medal-popup p { font-size:17px; color:#555; margin-bottom:22px; line-height:1.4; }
    .ccb-btn-gold { display:inline-block; background:linear-gradient(135deg,#d4af37,#b5952f); color:#fff !important; font-size:15px; padding:12px 34px; border-radius:30px; text-transform:uppercase; font-weight:bold; cursor:pointer; font-family:var(--ccb-font-head); border:none; }

    /* ---- TOUR ---- */
    .ccb-tour-overlay-bg { position:fixed; inset:0; background:rgba(0,0,0,.4); z-index:9997; display:none; pointer-events:none; }
    .ccb-tour-highlighted { position:relative; z-index:9998 !important; box-shadow:0 0 0 4px var(--ccb-blue), 0 0 20px rgba(41,128,185,.6) !important; border-radius:8px; }
    #ccb-joe-widget { position:fixed; bottom:16px; right:16px; z-index:9999; display:none; align-items:flex-end; pointer-events:none; max-width:calc(100% - 32px); }
    #ccb-joe-widget.show { display:flex; }
    .ccb-joe-character { width:130px; height:auto; pointer-events:none; animation:joeBreathing 4s ease-in-out infinite; }
    @keyframes joeBreathing { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-5px); } }
    .ccb-joe-bubble { position:relative; background:#fff; border:2px solid var(--ccb-dark); border-radius:12px; padding:14px 18px; width:min(260px, 62vw); box-shadow:0 5px 20px rgba(0,0,0,.15); margin-bottom:18px; margin-right:-8px; font-family:var(--ccb-font-body); color:#333; pointer-events:auto; box-sizing:border-box; }
    .ccb-joe-header { display:flex; justify-content:space-between; align-items:center; margin-bottom:8px; gap:8px; }
    .ccb-joe-name { font-family:var(--ccb-font-head); font-size:13px; color:var(--ccb-blue); font-weight:700; text-transform:uppercase; }
    .ccb-joe-progress { font-size:11px; color:#999; font-weight:bold; }
    .ccb-joe-close { font-size:20px; color:#999; cursor:pointer; line-height:1; }
    .ccb-joe-text { font-size:15px; line-height:1.4; min-height:60px; display:block; }
    .ccb-joe-controls { display:flex; justify-content:space-between; margin-top:12px; gap:8px; }
    .ccb-joe-btn { background:var(--ccb-blue); color:#fff; border:none; border-radius:4px; padding:7px 12px; font-size:12px; font-weight:600; cursor:pointer; font-family:var(--ccb-font-body); }
    .ccb-joe-btn:disabled { background:#ccc; cursor:not-allowed; }

    /* ==========================================================
       MOBILE
       ========================================================== */
    @media (max-width: 900px) {
        .ccb-menu-toggle { display:flex; }
        .ccb-menu-body { display:none; margin-top:16px; }
        .ccb-menu-body.open { display:block; }
        .ccb-main-container { grid-template-columns:minmax(0,1fr); gap:20px; padding:22px 14px; }
        .ccb-case-item { flex-direction:column; }
        .ccb-case-img, .ccb-case-item.mini-style .ccb-case-img { width:100%; height:auto; border-right:none; border-bottom:1px dashed var(--ccb-case-border); min-height:200px; }
        .ccb-case-img img { max-height:240px; }
        .ccb-case-info { padding:24px 20px; }
        .ccb-actions { flex-direction:column; width:100%; }
        .ccb-cta, .ccb-btn-esplora { width:100%; }
        .ccb-header-inner { flex-direction:column; gap:18px; text-align:center; }
        .ccb-h-left { flex-direction:column; text-align:center; gap:10px; }
        .ccb-h-links { justify-content:center; }
        .ccb-h-stats { gap:18px; justify-content:center; width:100%; }
        .ccb-sidebar { padding:20px; }
        .ccb-sb-title { cursor:pointer; border:1px solid #eee; padding:12px; border-radius:4px; background:#fcfcfc; margin-bottom:0; }
        .ccb-sb-title:after { content:"\f140"; font-family:"dashicons"; }
        .ccb-sb-content { display:none; margin-top:15px; }
        .ccb-sb-content.open { display:block; }
        .ccb-sb-section.always-open .ccb-sb-title { background:transparent; border:none; padding:0; pointer-events:none; margin-bottom:15px; }
        .ccb-sb-section.always-open .ccb-sb-title:after { content:""; }
        .ccb-sb-section.always-open .ccb-sb-content { display:block; }
        /* Sezioni non compattate: su telefono restano aperte dentro il Menu */
        .ccb-sb-section.sempre-aperta .ccb-sb-title { background:transparent; border:none; padding:0 0 4px; pointer-events:none; margin-bottom:12px; }
        .ccb-sb-section.sempre-aperta .ccb-sb-title:after { content:""; }
        .ccb-sb-section.sempre-aperta .ccb-sb-content { display:block; }
        .ccb-auth-dossier { grid-template-columns:minmax(0,1fr); }
        .ccb-auth-dossier::after { display:none; }
        .ccb-auth-col { padding:28px 20px; }
        .login-side { border-bottom:1px solid #eee; }
    }

    @media (max-width: 600px) {
        .ccb-auth-container { padding:24px 12px; }
        .ccb-auth-col { padding:22px 16px; }
        .ccb-auth-col .form-row-first, .ccb-auth-col .form-row-last { width:100%; float:none; }
        .ccb-auth-title { font-size:22px !important; }
        .ccb-h-info h2 { font-size:22px; }
        .ccb-stat-val, .ccb-stat-open { font-size:26px; }
        .ccb-stat-lbl { font-size:10px; }
        .ccb-avatar img { width:66px; height:66px; }
        .ccb-case-title { font-size:21px; }
        .ccb-case-desc { font-size:16px; }
        .ccb-filter-bar { gap:8px; margin-bottom:24px; }
        .ccb-filter-btn { padding:9px 14px; font-size:10px; }
        .ccb-solve-box { padding:22px 18px; margin:20px 0; }
        .ccb-solve-box h3 { font-size:21px; }
        .ccb-solve-actions .ccb-cta, .ccb-solve-actions .ccb-btn-esplora { width:100%; min-width:0; }
        .ccb-promo-banner { padding:20px; }
        .ccb-promo-banner-img { width:90px; height:90px; margin:0 auto; }
        .ccb-team-share-row input { min-width:0; width:100%; }
        .ccb-team-share-row .ccb-btn { width:100%; }
        .ccb-tabella { font-size:15px; }
        .ccb-tabella th, .ccb-tabella td { padding:10px; }
        .ccb-joe-character { width:96px; }
        .ccb-lib-header { flex-direction:column; text-align:center; }
    }

    
    