.ley21719-consent-banner {
background: #f5f5f5;
border-top: 3px solid #667eea;
padding: 20px;
margin: 20px 0;
border-radius: 5px;
}
.ley21719-consent-banner p {
margin: 0 0 15px 0;
color: #333;
}
.ley21719-consent-buttons {
display: flex;
gap: 10px;
flex-wrap: wrap;
}
.ley21719-consent-buttons button {
padding: 10px 20px;
border-radius: 3px;
border: none;
cursor: pointer;
font-size: 14px;
}
.ley21719-button-accept {
background: #667eea;
color: white;
}
.ley21719-button-accept:hover {
background: #5568d3;
}
.ley21719-button-reject {
background: #e0e0e0;
color: #333;
}
.ley21719-button-reject:hover {
background: #d0d0d0;
}.ley21719-consent-form {
background: white;
padding: 30px;
border: 1px solid #ddd;
border-radius: 5px;
max-width: 600px;
margin: 20px 0;
}
.ley21719-consent-form h3 {
color: #333;
margin-top: 0;
border-bottom: 2px solid #667eea;
padding-bottom: 15px;
}
.ley21719-consent-banner {
background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);
padding: 20px;
margin: 20px 0;
border-radius: 5px;
border-left: 4px solid #667eea;
}
.ley21719-consent-banner-content {
max-width: 100%;
}
.ley21719-consent-banner h3 {
margin-top: 0;
color: #333;
font-size: 18px;
}
.ley21719-consent-banner p {
color: #666;
margin-bottom: 15px;
}
.ley21719-consent-buttons {
display: flex;
gap: 10px;
flex-wrap: wrap;
}
.ley21719-button {
padding: 10px 20px;
border: none;
border-radius: 3px;
font-size: 14px;
cursor: pointer;
transition: all 0.3s ease;
}
.ley21719-button-primary {
background: #667eea;
color: white;
}
.ley21719-button-primary:hover {
background: #5568d3;
}
.ley21719-button-accept {
background: #28a745;
color: white;
}
.ley21719-button-accept:hover {
background: #218838;
}
.ley21719-button-reject {
background: #e74c3c;
color: white;
}
.ley21719-button-reject:hover {
background: #c0392b;
}
.ley21719-button-preferences {
background: #3498db;
color: white;
}
.ley21719-button-preferences:hover {
background: #2980b9;
}
.ley21719-form-group {
margin-bottom: 20px;
}
.ley21719-form-group label {
display: block;
margin-bottom: 8px;
color: #333;
font-weight: 500;
}
.ley21719-form-group .required {
color: #e74c3c;
}
.ley21719-form-group input[type="email"],
.ley21719-form-group input[type="text"],
.ley21719-form-group textarea {
width: 100%;
padding: 10px;
border: 1px solid #ddd;
border-radius: 3px;
font-size: 14px;
box-sizing: border-box;
}
.ley21719-form-group input[type="checkbox"] {
margin-right: 8px;
cursor: pointer;
}
.ley21719-form-group input:focus,
.ley21719-form-group textarea:focus {
outline: none;
border-color: #667eea;
box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.1);
}
.ley21719-form-group small {
display: block;
margin-top: 5px;
color: #999;
font-size: 12px;
}
.ley21719-form-actions {
margin-top: 25px;
}
.ley21719-message {
padding: 15px;
border-radius: 3px;
margin-top: 20px;
}
.ley21719-message.success {
background: #d4edda;
border: 1px solid #c3e6cb;
color: #155724;
}
.ley21719-message.error {
background: #f8d7da;
border: 1px solid #f5c6cb;
color: #721c24;
}
@media (max-width: 600px) {
.ley21719-consent-form {
padding: 20px;
}
.ley21719-consent-banner {
padding: 15px;
}
.ley21719-consent-buttons {
flex-direction: column;
}
.ley21719-consent-buttons .ley21719-button {
width: 100%;
}
}.ley21719-policy-view {
background: white;
padding: 30px;
border: 1px solid #ddd;
border-radius: 5px;
max-width: 900px;
margin: 20px 0;
}
.ley21719-policy-view h2 {
color: #333;
margin-top: 0;
border-bottom: 2px solid #667eea;
padding-bottom: 15px;
}
.ley21719-policy-version {
color: #999;
font-size: 12px;
margin: 10px 0 20px;
}
.ley21719-policy-content {
color: #555;
line-height: 1.8;
margin-bottom: 30px;
}
.ley21719-policy-content h3 {
color: #333;
margin-top: 30px;
margin-bottom: 15px;
}
.ley21719-policy-content p {
margin-bottom: 15px;
}
.ley21719-policy-content ul,
.ley21719-policy-content ol {
margin-left: 20px;
margin-bottom: 15px;
}
.ley21719-policy-content li {
margin-bottom: 8px;
}
.ley21719-policy-acceptance {
background: #f9f9f9;
padding: 20px;
border: 1px solid #e0e0e0;
border-radius: 3px;
margin-top: 30px;
}
.ley21719-policy-acceptance label {
display: flex;
align-items: center;
color: #333;
margin-bottom: 15px;
}
.ley21719-policy-acceptance input[type="checkbox"] {
margin-right: 10px;
width: auto;
cursor: pointer;
}
@media (max-width: 768px) {
.ley21719-policy-view {
padding: 20px;
}
.ley21719-policy-content {
font-size: 14px;
}
}.ley21719-modal {
--ley21719-primary: #1565c0;
--ley21719-danger: #c62828;
--ley21719-text: #212121;
--ley21719-muted: #616161;
--ley21719-surface: #ffffff;
--ley21719-border: #e0e0e0;
--ley21719-focus: #1976d2;
--ley21719-radius: 12px;
}
.ley21719-modal {
position: fixed;
left: 0;
right: 0;
bottom: 0;
z-index: 2147483000;
display: none;
box-sizing: border-box;
}
.ley21719-modal * {
box-sizing: border-box;
}
.ley21719-modal .ley21719-consent-status {
margin: 12px auto;
max-width: 720px;
padding: 12px 16px;
border: 1px solid var(--ley21719-danger);
border-radius: 6px;
background: #ffebee;
color: var(--ley21719-danger);
font-size: 14px;
font-weight: 600;
}
.ley21719-modal .ley21719-consent-status:focus {
outline: 2px solid var(--ley21719-focus);
outline-offset: 2px;
}
.ley21719-modal [data-action]:disabled {
cursor: wait;
opacity: 0.65;
} .ley21719-modal .ley21719-banner {
background: var(--ley21719-surface);
border-top: 1px solid var(--ley21719-border);
box-shadow: 0 -4px 24px rgba(0, 0, 0, 0.12);
color: var(--ley21719-text);
padding: 20px 24px;
}
.ley21719-modal .ley21719-banner-content {
max-width: 1100px;
margin: 0 auto;
}
.ley21719-modal h2 {
margin: 0 0 8px;
font-size: 18px;
line-height: 1.3;
color: var(--ley21719-text);
}
.ley21719-modal .ley21719-banner-controller {
margin: 0 0 8px;
color: var(--ley21719-muted);
font-size: 14px;
}
.ley21719-modal p {
margin: 0 0 12px;
font-size: 14px;
line-height: 1.5;
color: var(--ley21719-text);
}
.ley21719-modal .ley21719-banner-policy-link a {
color: var(--ley21719-primary);
text-decoration: underline;
} .ley21719-modal .ley21719-banner {
position: relative;
} .ley21719-modal .ley21719-banner-actions {
display: flex;
flex-wrap: wrap;
gap: 12px;
margin-top: 16px;
}
.ley21719-modal .ley21719-action {
min-height: 44px;
min-width: 44px;
padding: 12px 20px;
border: 1px solid var(--ley21719-border);
border-radius: 6px;
background: var(--ley21719-surface);
color: var(--ley21719-text);
font-size: 14px;
font-weight: 600;
cursor: pointer;
text-align: center;
}
.ley21719-modal .ley21719-action:hover {
border-color: var(--ley21719-primary);
} .ley21719-modal h2:focus {
outline: none;
}
.ley21719-modal .ley21719-action:focus-visible,
.ley21719-modal .ley21719-toggle:focus-visible,
.ley21719-modal a:focus-visible {
outline: 2px solid var(--ley21719-focus);
outline-offset: 2px;
} .ley21719-modal .ley21719-action[data-action="accept"],
.ley21719-modal .ley21719-action[data-action="reject"] {
background: var(--ley21719-primary);
border-color: var(--ley21719-primary);
color: #fff;
} .ley21719-modal .ley21719-panel {
position: fixed;
left: 0;
right: 0;
bottom: 0;
z-index: 2147483001;
background: var(--ley21719-surface);
border-top: 1px solid var(--ley21719-border);
box-shadow: 0 -4px 24px rgba(0, 0, 0, 0.12);
max-height: 70vh;
overflow-y: auto;
}
.ley21719-modal .ley21719-panel-body {
max-width: 720px;
margin: 0 auto;
padding: 24px;
} .ley21719-modal .ley21719-panel-header {
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
margin-bottom: 8px;
} .ley21719-modal .ley21719-back {
display: inline-flex;
align-items: center;
gap: 8px;
min-height: 44px;
padding: 8px 12px;
border: 1px solid transparent;
border-radius: 6px;
background: none;
color: var(--ley21719-text);
font-size: 14px;
font-weight: 600;
cursor: pointer;
}
.ley21719-modal .ley21719-back:hover {
border-color: var(--ley21719-primary);
color: var(--ley21719-primary);
}
.ley21719-modal .ley21719-back:focus-visible {
outline: 2px solid var(--ley21719-focus);
outline-offset: 2px;
}
.ley21719-modal .ley21719-toggle-row {
border-bottom: 1px solid var(--ley21719-border);
padding: 14px 0;
}
.ley21719-modal .ley21719-toggle-label {
display: flex;
align-items: center;
gap: 12px;
font-weight: 600;
font-size: 15px;
color: var(--ley21719-text);
cursor: pointer;
} .ley21719-modal .ley21719-toggle {
appearance: none;
-webkit-appearance: none;
flex: 0 0 auto;
width: 48px;
height: 28px;
margin: 0;
padding: 0;
border: 1px solid var(--ley21719-border);
border-radius: 999px;
background-color: #cfd8dc;
background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3e%3ccircle cx='12' cy='12' r='12' fill='%23ffffff'/%3e%3c/svg%3e");
background-repeat: no-repeat;
background-position: left 2px center;
background-size: 22px 22px;
cursor: pointer;
transition: background-color 0.15s ease-in-out, background-position 0.15s ease-in-out;
}
.ley21719-modal .ley21719-toggle:checked {
background-color: var(--ley21719-primary);
border-color: var(--ley21719-primary);
background-position: right 2px center;
} .ley21719-modal .ley21719-toggle:disabled {
cursor: not-allowed;
opacity: 0.65;
}
@media (prefers-reduced-motion: reduce) {
.ley21719-modal .ley21719-toggle {
transition: none;
}
}
.ley21719-modal .ley21719-toggle-desc {
margin: 8px 0 0 60px;
color: var(--ley21719-muted);
font-size: 13px;
}
.ley21719-modal .ley21719-panel-actions {
display: flex;
flex-wrap: wrap;
gap: 12px;
margin-top: 20px;
}
@media (max-width: 600px) {
.ley21719-modal .ley21719-banner,
.ley21719-modal .ley21719-panel {
padding-left: 16px;
padding-right: 16px;
}
.ley21719-modal .ley21719-banner-actions,
.ley21719-modal .ley21719-panel-actions {
flex-direction: column;
}
.ley21719-modal .ley21719-action {
width: 100%;
}
}
@media (prefers-reduced-motion: reduce) {
.ley21719-modal .ley21719-banner,
.ley21719-modal .ley21719-panel {
transition: none;
}
}