#cookie-banner{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(120px);width:min(780px,calc(100vw - 32px));background:#fff;border:1px solid #dce8f0;border-radius:20px;box-shadow:0 24px 64px rgba(11,42,82,.22);padding:22px 24px;z-index:9999;opacity:0;transition:transform .45s cubic-bezier(.34,1.56,.64,1),opacity .35s ease;display:flex;align-items:center;gap:20px}
#cookie-banner.visible{transform:translateX(-50%) translateY(0);opacity:1}
#cookie-banner::before{content:'';position:absolute;top:0;left:24px;right:24px;height:3px;background:linear-gradient(135deg,#00b4d8 0%,#48cae4 100%);border-radius:0 0 4px 4px}
.cb-icon{width:46px;height:46px;border-radius:14px;background:rgba(0,150,199,.1);border:1px solid rgba(0,150,199,.2);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.cb-body{flex:1;min-width:0}
.cb-title{font-size:14px;font-weight:800;color:#0b2a52;margin-bottom:4px;display:flex;align-items:center;gap:8px}
.cb-dot{width:6px;height:6px;border-radius:50%;background:#0096c7;flex-shrink:0;animation:cb-blink 2s infinite}
@keyframes cb-blink{0%,100%{opacity:1}50%{opacity:.3}}
.cb-text{font-size:12.5px;color:#4a6080;line-height:1.6}
.cb-text a{color:#0096c7;font-weight:600;text-decoration:none}
.cb-text a:hover{text-decoration:underline}
.cb-actions{display:flex;flex-direction:column;gap:8px;flex-shrink:0}
.cb-btn{white-space:nowrap;font-family:'Inter',sans-serif;font-size:13px;font-weight:700;padding:10px 20px;border-radius:99px;border:none;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:7px}
.cb-btn-accept{background:#0b2a52;color:#fff;box-shadow:0 4px 16px rgba(11,42,82,.25)}
.cb-btn-accept:hover{background:#0d3464;transform:translateY(-1px)}
.cb-btn-config{background:rgba(0,150,199,.1);color:#0096c7;border:1px solid rgba(0,150,199,.25)}
.cb-btn-config:hover{background:rgba(0,150,199,.18)}
.cb-btn-reject{background:transparent;color:#7a94b0;border:1px solid #dce8f0;font-weight:600}
.cb-btn-reject:hover{color:#4a6080;border-color:#c0cfd8}
#cookie-overlay{position:fixed;inset:0;background:rgba(11,42,82,.55);backdrop-filter:blur(6px);z-index:10000;opacity:0;pointer-events:none;transition:opacity .3s}
#cookie-overlay.visible{opacity:1;pointer-events:all}
#cookie-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%) scale(.94);width:min(620px,calc(100vw - 32px));max-height:min(700px,calc(100vh - 48px));background:#fff;border-radius:24px;box-shadow:0 24px 64px rgba(11,42,82,.22);z-index:10001;display:flex;flex-direction:column;opacity:0;pointer-events:none;transition:transform .35s cubic-bezier(.34,1.26,.64,1),opacity .25s;overflow:hidden}
#cookie-modal.visible{opacity:1;pointer-events:all;transform:translate(-50%,-50%) scale(1)}
.cm-header{padding:24px 28px 20px;border-bottom:1px solid #dce8f0;display:flex;align-items:flex-start;justify-content:space-between;gap:16px;background:linear-gradient(135deg,#f7fafd 0%,#eaf3fb 100%);flex-shrink:0}
.cm-header-left{display:flex;align-items:center;gap:14px}
.cm-header-icon{width:48px;height:48px;border-radius:14px;background:linear-gradient(135deg,#0b2a52 0%,#0096c7 100%);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.cm-title{font-size:17px;font-weight:800;color:#0b2a52;margin-bottom:3px}
.cm-subtitle{font-size:12.5px;color:#4a6080;line-height:1.5}
.cm-close{width:32px;height:32px;border-radius:50%;border:1px solid #dce8f0;background:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .2s;color:#7a94b0}
.cm-close:hover{background:#dce8f0;color:#0b2a52}
.cm-body{padding:24px 28px;overflow-y:auto;flex:1}
.cm-body::-webkit-scrollbar{width:4px}
.cm-body::-webkit-scrollbar-thumb{background:#dce8f0;border-radius:2px}
.cm-intro{font-size:13px;color:#4a6080;line-height:1.7;margin-bottom:20px}
.cm-intro a{color:#0096c7;font-weight:600;text-decoration:none}
.cm-intro a:hover{text-decoration:underline}
.cm-row{border:1px solid #dce8f0;border-radius:10px;margin-bottom:10px;overflow:hidden;transition:border-color .2s,box-shadow .2s}
.cm-row:has(.toggle-cb:checked){border-color:rgba(0,150,199,.35);box-shadow:0 2px 12px rgba(0,150,199,.1)}
.cm-row-head{display:flex;align-items:center;gap:14px;padding:16px 18px;cursor:pointer;user-select:none}
.cm-row-icon{width:38px;height:38px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.cm-row-icon.essential{background:rgba(0,150,199,.1)}
.cm-row-icon.functional{background:rgba(11,42,82,.07)}
.cm-row-icon.analytics{background:rgba(10,158,110,.08)}
.cm-row-icon.marketing{background:rgba(232,160,32,.1)}
.cm-row-info{flex:1;min-width:0}
.cm-row-name{font-size:13.5px;font-weight:700;color:#0b2a52;margin-bottom:2px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.cm-row-desc{font-size:12px;color:#4a6080;line-height:1.55}
.cm-row-right{display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex-shrink:0}
.badge-always{font-size:9px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;background:rgba(0,150,199,.12);color:#0096c7;padding:3px 10px;border-radius:99px;white-space:nowrap}
.toggle-wrap{position:relative;width:44px;height:24px;flex-shrink:0}
.toggle-cb{position:absolute;opacity:0;width:0;height:0}
.toggle-track{display:block;width:44px;height:24px;border-radius:99px;background:#d8e4ee;cursor:pointer;transition:background .25s;position:relative}
.toggle-cb:checked + .toggle-track{background:#0096c7}
.toggle-cb:disabled + .toggle-track{background:rgba(0,150,199,.35);cursor:not-allowed;opacity:.75}
.toggle-track::after{content:'';position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 4px rgba(0,0,0,.18);transition:transform .25s cubic-bezier(.34,1.56,.64,1)}
.toggle-cb:checked + .toggle-track::after{transform:translateX(20px)}
.cm-row-expand{max-height:0;overflow:hidden;transition:max-height .3s ease;border-top:0px solid #dce8f0}
.cm-row.expanded .cm-row-expand{max-height:300px;border-top-width:1px}
.cm-row-detail{padding:14px 18px;background:rgba(248,250,252,.8)}
.cm-row-detail table{width:100%;border-collapse:collapse;font-size:11.5px;font-family:'Inter',sans-serif}
.cm-row-detail th{color:#0b2a52;font-weight:700;padding:6px 10px;text-align:left;border-bottom:1px solid #dce8f0;background:rgba(0,150,199,.05)}
.cm-row-detail td{padding:6px 10px;color:#4a6080;border-bottom:1px solid rgba(220,232,240,.5);line-height:1.5}
.cm-row-detail tr:last-child td{border-bottom:none}
.expand-btn{background:none;border:none;cursor:pointer;font-size:11px;font-weight:700;color:#0096c7;display:flex;align-items:center;gap:4px;padding:0;transition:opacity .2s;font-family:'Inter',sans-serif}
.expand-btn:hover{opacity:.75}
.expand-icon{transition:transform .3s;display:inline-block}
.cm-row.expanded .expand-icon{transform:rotate(180deg)}
.cm-footer{padding:18px 28px;border-top:1px solid #dce8f0;display:flex;align-items:center;justify-content:space-between;gap:12px;background:#fafcfe;flex-shrink:0;flex-wrap:wrap}
.cm-footer-left{font-size:11.5px;color:#7a94b0;display:flex;align-items:center;gap:6px}
.cm-footer-right{display:flex;gap:10px}
.cm-footer-btn{font-family:'Inter',sans-serif;font-size:13px;font-weight:700;padding:10px 22px;border-radius:99px;border:none;cursor:pointer;transition:all .2s}
.cm-btn-save{background:#0b2a52;color:#fff;box-shadow:0 4px 16px rgba(11,42,82,.2)}
.cm-btn-save:hover{background:#0d3464;transform:translateY(-1px)}
.cm-btn-accept-all{background:rgba(0,150,199,.12);color:#0096c7;border:1px solid rgba(0,150,199,.3)}
.cm-btn-accept-all:hover{background:rgba(0,150,199,.2)}
#cookie-toast{position:fixed;bottom:28px;left:50%;transform:translateX(-50%) translateY(100px);background:#0b2a52;color:#fff;font-family:'Inter',sans-serif;font-size:13px;font-weight:600;padding:12px 22px;border-radius:99px;box-shadow:0 8px 32px rgba(11,42,82,.3);z-index:10002;display:flex;align-items:center;gap:10px;opacity:0;transition:all .4s cubic-bezier(.34,1.26,.64,1);pointer-events:none;white-space:nowrap}
#cookie-toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
@media(max-width:640px){#cookie-banner{flex-direction:column;align-items:stretch;padding:20px;bottom:12px}.cb-icon{display:none}.cb-actions{flex-direction:column}.cb-btn{justify-content:center}}