/*
 * Cll Consent - front styles. No external fonts, minimal footprint.
 * @author Luca Cavallini
 */
.cll-consent{--cll-bg:#fff;--cll-text:#1d2b36;--cll-btn:#2d7ff9;--cll-btn-text:#fff;
  position:fixed;z-index:2147483000;left:0;right:0;font-size:14px;line-height:1.5;
  color:var(--cll-text);}
.cll-consent[hidden]{display:none;}
.cll-consent .cll-title{font-size:17px;margin:0 0 6px;font-weight:600;color:var(--cll-text);}
.cll-consent .cll-body{margin:0;color:var(--cll-text);opacity:.92;}

/* banner */
.cll-pos-bottom .cll-banner{position:fixed;left:0;right:0;bottom:0;background:var(--cll-bg);
  box-shadow:0 -2px 18px rgba(0,0,0,.14);padding:16px 20px;}
.cll-pos-center .cll-banner{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);
  max-width:560px;width:92%;background:var(--cll-bg);border-radius:12px;
  box-shadow:0 10px 40px rgba(0,0,0,.28);padding:22px;}
.cll-pos-center::before{content:"";position:fixed;inset:0;background:rgba(0,0,0,.45);}
.cll-banner-inner{display:flex;gap:18px;align-items:center;flex-wrap:wrap;max-width:1200px;margin:0 auto;}
.cll-pos-center .cll-banner-inner{display:block;}
.cll-banner-txt{flex:1 1 360px;min-width:240px;}
.cll-banner-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center;}
.cll-pos-center .cll-banner-actions{margin-top:16px;}

/* buttons - equal emphasis for accept/reject (legal requirement) */
.cll-btn{font:inherit;font-weight:600;cursor:pointer;border-radius:8px;padding:10px 18px;
  border:1px solid transparent;transition:filter .15s,background .15s;white-space:nowrap;}
.cll-btn:focus{outline:2px solid var(--cll-btn);outline-offset:2px;}
.cll-btn-primary{background:var(--cll-btn);color:var(--cll-btn-text);}
.cll-btn-primary:hover{filter:brightness(.94);}
.cll-btn-secondary{background:transparent;color:var(--cll-text);border-color:rgba(0,0,0,.28);}
.cll-btn-secondary:hover{background:rgba(0,0,0,.05);}

/* panel */
.cll-panel{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;
  background:rgba(0,0,0,.5);padding:16px;}
.cll-panel[hidden]{display:none;}
.cll-panel-box{background:var(--cll-bg);border-radius:12px;max-width:640px;width:100%;
  max-height:88vh;overflow:auto;padding:22px;box-shadow:0 10px 40px rgba(0,0,0,.3);}
.cll-panel-head{display:flex;justify-content:space-between;align-items:flex-start;}
.cll-close{background:none;border:none;font-size:26px;line-height:1;cursor:pointer;color:var(--cll-text);opacity:.6;}
.cll-close:hover{opacity:1;}
.cll-cats{margin:14px 0;}
.cll-cat{border:1px solid rgba(0,0,0,.12);border-radius:10px;padding:12px 14px;margin-bottom:10px;}
.cll-cat-head{display:flex;justify-content:space-between;align-items:center;cursor:pointer;margin:0;}
.cll-cat-name{font-weight:600;}
.cll-cat-desc{margin:8px 0 0;font-size:13px;opacity:.85;}
.cll-cat-toggle em{font-style:normal;font-size:12px;opacity:.7;}

/* switch */
.cll-cat-toggle{position:relative;display:inline-flex;align-items:center;}
.cll-cat-input{position:absolute;opacity:0;width:42px;height:24px;margin:0;cursor:pointer;z-index:2;}
.cll-switch{width:42px;height:24px;border-radius:24px;background:#c4ccd4;position:relative;transition:background .15s;display:inline-block;}
.cll-switch::after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;transition:transform .15s;}
.cll-cat-input:checked + .cll-switch{background:var(--cll-btn);}
.cll-cat-input:checked + .cll-switch::after{transform:translateX(18px);}
.cll-locked input{accent-color:var(--cll-btn);}

/* declaration */
.cll-decl{margin-top:10px;}
.cll-decl summary{cursor:pointer;font-size:13px;color:var(--cll-btn);}
.cll-decl-table{width:100%;border-collapse:collapse;margin-top:8px;font-size:12px;}
.cll-decl-table th,.cll-decl-table td{border:1px solid rgba(0,0,0,.12);padding:5px 7px;text-align:left;vertical-align:top;}
.cll-decl-table th{background:rgba(0,0,0,.04);}

.cll-panel-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;margin-top:8px;}

@media (max-width:560px){
  .cll-banner-actions{width:100%;}
  .cll-banner-actions .cll-btn{flex:1 1 auto;}
}
