.data-rights-portal{max-width:900px;margin:0 auto;padding:2rem 1.5rem 4rem;color:var(--text-primary, #e4e4e7)}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:4rem 2rem;color:var(--text-secondary, #a1a1aa)}.loading-state svg{width:32px;height:32px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.portal-header{text-align:center;margin-bottom:2.5rem}.portal-header h1{font-size:2rem;font-weight:600;margin-bottom:.75rem;color:var(--text-primary, #e4e4e7)}.portal-header p{font-size:1rem;color:var(--text-secondary, #a1a1aa);max-width:600px;margin:0 auto;line-height:1.6}.error-banner,.success-banner{display:flex;align-items:center;gap:.75rem;padding:1rem 1.25rem;border-radius:8px;margin-bottom:1.5rem}.error-banner{background:#ef44441a;border:1px solid rgba(239,68,68,.3);color:#fca5a5}.success-banner{background:#22c55e1a;border:1px solid rgba(34,197,94,.3);color:#86efac}.error-banner svg,.success-banner svg{width:20px;height:20px;flex-shrink:0}.error-banner span,.success-banner span{flex:1}.retry-btn,.dismiss-btn{background:none;border:none;color:inherit;cursor:pointer;padding:.25rem .5rem;opacity:.8;transition:opacity .2s}.retry-btn:hover,.dismiss-btn:hover{opacity:1}.dismiss-btn svg{width:18px;height:18px}.pending-deletion-banner{display:flex;align-items:flex-start;justify-content:space-between;gap:1.5rem;padding:1.25rem 1.5rem;background:#f59e0b1a;border:1px solid rgba(245,158,11,.3);border-radius:8px;margin-bottom:2rem}.pending-deletion-banner .banner-content{display:flex;gap:1rem}.pending-deletion-banner svg{width:24px;height:24px;color:#fbbf24;flex-shrink:0;margin-top:.125rem}.pending-deletion-banner h3{font-size:1rem;font-weight:600;color:#fde047;margin-bottom:.375rem}.pending-deletion-banner p{font-size:.875rem;color:#fef3c7;margin-bottom:.25rem}.pending-deletion-banner .cancel-info{font-size:.8125rem;color:#fcd34d;opacity:.8}.cancel-deletion-btn{background:#f59e0b33;color:#fde047;border:1px solid rgba(245,158,11,.4);padding:.625rem 1rem;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;white-space:nowrap;transition:all .2s}.cancel-deletion-btn:hover:not(:disabled){background:#f59e0b4d}.cancel-deletion-btn:disabled{opacity:.5;cursor:not-allowed}.identity-section{margin-bottom:2rem}.identity-card{display:flex;align-items:flex-start;gap:1rem;padding:1.25rem 1.5rem;background:var(--bg-secondary, #27272a);border:1px solid var(--border-color, #3f3f46);border-radius:8px}.identity-card svg{width:24px;height:24px;color:var(--accent-color, #6366f1);flex-shrink:0;margin-top:.125rem}.identity-card h3{font-size:1rem;font-weight:600;margin-bottom:.25rem}.identity-card p{font-size:.875rem;color:var(--text-secondary, #a1a1aa);line-height:1.5}.identity-card code{font-family:SF Mono,Monaco,Courier New,monospace;font-size:.75rem;background:#0000004d;padding:.125rem .375rem;border-radius:4px}.data-summary-section{margin-bottom:2.5rem}.data-summary-section h2{font-size:1.25rem;font-weight:600;margin-bottom:1rem}.data-categories{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem}.data-category{background:var(--bg-secondary, #27272a);border:1px solid var(--border-color, #3f3f46);border-radius:8px;padding:1.25rem}.data-category h4{font-size:.875rem;font-weight:500;color:var(--text-secondary, #a1a1aa);margin-bottom:.75rem}.category-stats{display:flex;align-items:baseline;gap:.375rem}.stat-value{font-size:1.5rem;font-weight:700;color:var(--text-primary, #e4e4e7)}.stat-label{font-size:.875rem;color:var(--text-secondary, #a1a1aa)}.stat-date,.stat-detail{font-size:.75rem;color:var(--text-muted, #71717a);margin-top:.5rem}.no-data{grid-column:1 / -1;text-align:center;padding:2rem;color:var(--text-secondary, #a1a1aa)}.rights-section{margin-bottom:2rem}.rights-section h2{font-size:1.25rem;font-weight:600;margin-bottom:1rem}.rights-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.right-card{display:flex;flex-direction:column;background:var(--bg-secondary, #27272a);border:1px solid var(--border-color, #3f3f46);border-radius:8px;padding:1.5rem;transition:border-color .2s}.right-card:hover{border-color:var(--border-hover, #52525b)}.right-card.danger{border-color:#ef444433}.right-card.danger:hover{border-color:#ef444466}.right-icon{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--bg-tertiary, #18181b);border-radius:8px;margin-bottom:1rem}.right-icon svg{width:20px;height:20px;color:var(--accent-color, #6366f1)}.right-card.danger .right-icon svg{color:#f87171}.right-content{flex:1;margin-bottom:1rem}.right-content h3{font-size:1rem;font-weight:600;margin-bottom:.375rem}.right-content p{font-size:.875rem;color:var(--text-secondary, #a1a1aa);line-height:1.5}.right-action-btn{width:100%;padding:.75rem 1rem;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.5rem;transition:all .2s}.right-action-btn.primary{background:var(--accent-color, #6366f1);border:none;color:#fff}.right-action-btn.primary:hover:not(:disabled){background:var(--accent-hover, #4f46e5)}.right-action-btn.secondary{background:transparent;border:1px solid var(--border-color, #3f3f46);color:var(--text-primary, #e4e4e7)}.right-action-btn.secondary:hover:not(:disabled){background:var(--bg-tertiary, #18181b);border-color:var(--border-hover, #52525b)}.right-action-btn.danger{background:#ef44441a;border:1px solid rgba(239,68,68,.3);color:#f87171}.right-action-btn.danger:hover:not(:disabled){background:#ef444433}.right-action-btn:disabled{opacity:.5;cursor:not-allowed}.right-action-btn svg{width:18px;height:18px}.retention-info{text-align:center;padding:1rem;background:var(--bg-secondary, #27272a);border-radius:8px;font-size:.875rem;color:var(--text-secondary, #a1a1aa)}.retention-info strong{color:var(--text-primary, #e4e4e7)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;padding:1rem;z-index:1000}.modal{background:var(--bg-primary, #18181b);border:1px solid var(--border-color, #3f3f46);border-radius:12px;max-width:500px;width:100%;max-height:90vh;overflow-y:auto}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;border-bottom:1px solid var(--border-color, #3f3f46)}.modal-header h2{font-size:1.125rem;font-weight:600}.close-btn{background:none;border:none;color:var(--text-secondary, #a1a1aa);cursor:pointer;padding:.25rem;border-radius:4px;transition:color .2s}.close-btn:hover{color:var(--text-primary, #e4e4e7)}.close-btn svg{width:20px;height:20px}.modal-content{padding:1.5rem}.modal-content p{font-size:.9375rem;color:var(--text-secondary, #a1a1aa);line-height:1.6;margin-bottom:1rem}.modal-content .note{font-size:.875rem;color:var(--text-muted, #71717a)}.modal-footer{display:flex;justify-content:flex-end;gap:.75rem;padding:1rem 1.5rem;border-top:1px solid var(--border-color, #3f3f46)}.export-options{display:flex;flex-direction:column;gap:.75rem}.export-btn{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:1.25rem 1.5rem;border-radius:8px;font-size:.9375rem;font-weight:500;cursor:pointer;transition:all .2s}.export-btn svg{width:24px;height:24px}.export-btn.primary{background:var(--accent-color, #6366f1);border:none;color:#fff}.export-btn.primary:hover:not(:disabled){background:var(--accent-hover, #4f46e5)}.export-btn.secondary{background:var(--bg-secondary, #27272a);border:1px solid var(--border-color, #3f3f46);color:var(--text-primary, #e4e4e7)}.export-btn.secondary:hover:not(:disabled){background:var(--bg-tertiary, #18181b);border-color:var(--border-hover, #52525b)}.export-btn:disabled{opacity:.5;cursor:not-allowed}.btn-subtitle{font-size:.75rem;opacity:.8;font-weight:400}.delete-modal{max-width:550px}.warning-box{display:flex;gap:1rem;padding:1rem;background:#ef44441a;border:1px solid rgba(239,68,68,.2);border-radius:8px;margin-bottom:1.5rem}.warning-box svg{width:24px;height:24px;color:#f87171;flex-shrink:0}.warning-box strong{color:#fca5a5;font-size:.9375rem;display:block;margin-bottom:.375rem}.warning-box p{font-size:.875rem;color:#fecaca;margin-bottom:0}.delete-info{margin-bottom:1.5rem}.delete-info h4{font-size:.9375rem;font-weight:500;margin-bottom:.75rem}.delete-info ul{list-style:disc;padding-left:1.25rem;color:var(--text-secondary, #a1a1aa);font-size:.875rem}.delete-info li{margin-bottom:.375rem}.reason-input label{display:block;font-size:.875rem;font-weight:500;margin-bottom:.5rem}.reason-input textarea{width:100%;padding:.75rem;background:var(--bg-secondary, #27272a);border:1px solid var(--border-color, #3f3f46);border-radius:6px;color:var(--text-primary, #e4e4e7);font-size:.875rem;resize:vertical;font-family:inherit}.reason-input textarea:focus{outline:none;border-color:var(--accent-color, #6366f1)}.reason-input textarea::placeholder{color:var(--text-muted, #71717a)}.cancel-btn{padding:.625rem 1.25rem;background:transparent;border:1px solid var(--border-color, #3f3f46);border-radius:6px;color:var(--text-primary, #e4e4e7);font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s}.cancel-btn:hover{background:var(--bg-secondary, #27272a)}.delete-btn{padding:.625rem 1.25rem;background:#ef4444;border:none;border-radius:6px;color:#fff;font-size:.875rem;font-weight:500;cursor:pointer;display:flex;align-items:center;gap:.5rem;transition:all .2s}.delete-btn:hover:not(:disabled){background:#dc2626}.delete-btn:disabled{opacity:.5;cursor:not-allowed}.delete-btn svg{width:18px;height:18px}.withdraw-btn{padding:.625rem 1.25rem;background:#f59e0b33;border:1px solid rgba(245,158,11,.4);border-radius:6px;color:#fde047;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s}.withdraw-btn:hover{background:#f59e0b4d}@media(max-width:640px){.data-rights-portal{padding:1.5rem 1rem 3rem}.portal-header h1{font-size:1.5rem}.pending-deletion-banner{flex-direction:column;gap:1rem}.cancel-deletion-btn{width:100%}.rights-grid,.data-categories{grid-template-columns:1fr}.modal{margin:.5rem;max-height:95vh}.modal-footer{flex-direction:column-reverse}.modal-footer button{width:100%}}.no-data-section{grid-column:1 / -1;display:flex;flex-direction:column;gap:1.5rem}.no-data-message{display:flex;align-items:flex-start;gap:1rem;padding:1.25rem 1.5rem;background:var(--bg-tertiary, #18181b);border:1px solid var(--border-color, #3f3f46);border-radius:8px}.no-data-message svg{width:24px;height:24px;color:var(--text-secondary, #a1a1aa);flex-shrink:0;margin-top:.125rem}.no-data-message h4{font-size:1rem;font-weight:600;margin-bottom:.375rem}.no-data-message p{font-size:.875rem;color:var(--text-secondary, #a1a1aa);line-height:1.5}.consent-saved-banner{display:flex;align-items:center;gap:.75rem;padding:1rem 1.25rem;background:#22c55e1a;border:1px solid rgba(34,197,94,.3);border-radius:8px;color:#86efac}.consent-saved-banner svg{width:20px;height:20px;flex-shrink:0}.inline-consent-form{background:var(--bg-secondary, #27272a);border:1px solid var(--border-color, #3f3f46);border-radius:8px;padding:1.5rem}.inline-consent-form h4{font-size:1.125rem;font-weight:600;margin-bottom:.75rem}.inline-consent-form>p{font-size:.9375rem;color:var(--text-secondary, #a1a1aa);line-height:1.6;margin-bottom:1rem}.inline-consent-form .gdpr-notice{font-size:.875rem;color:#fcd34d;background:#f59e0b1a;border:1px solid rgba(245,158,11,.2);padding:.75rem 1rem;border-radius:6px;margin-bottom:1.25rem}.consent-error{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;background:#ef44441a;border:1px solid rgba(239,68,68,.2);border-radius:6px;margin-bottom:1rem;color:#fca5a5;font-size:.875rem}.consent-error svg{width:18px;height:18px;flex-shrink:0}.consent-quick-actions{display:flex;gap:.75rem;margin-bottom:1.25rem}.consent-btn{padding:.75rem 1.25rem;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s}.consent-btn.primary{background:var(--accent-color, #6366f1);border:none;color:#fff;flex:1}.consent-btn.primary:hover:not(:disabled){background:var(--accent-hover, #4f46e5)}.consent-btn.secondary{background:transparent;border:1px solid var(--border-color, #3f3f46);color:var(--text-primary, #e4e4e7)}.consent-btn.secondary:hover:not(:disabled){background:var(--bg-tertiary, #18181b);border-color:var(--border-hover, #52525b)}.consent-btn:disabled{opacity:.5;cursor:not-allowed}.consent-categories{border-top:1px solid var(--border-color, #3f3f46);padding-top:1.25rem;margin-top:.5rem}.consent-category{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:1rem 0;border-bottom:1px solid var(--border-color, #3f3f46)}.consent-category:last-of-type{border-bottom:none}.consent-category .category-info h5{font-size:.9375rem;font-weight:500;margin-bottom:.25rem}.consent-category .category-info p{font-size:.8125rem;color:var(--text-secondary, #a1a1aa);line-height:1.5;margin-bottom:0}.consent-toggle{display:flex;align-items:center;gap:.5rem;cursor:pointer;flex-shrink:0}.consent-toggle input{position:absolute;opacity:0;width:0;height:0}.consent-toggle .toggle-slider{width:44px;height:24px;background:var(--bg-tertiary, #18181b);border:1px solid var(--border-color, #3f3f46);border-radius:12px;position:relative;transition:all .2s}.consent-toggle .toggle-slider:after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;background:var(--text-secondary, #a1a1aa);border-radius:50%;transition:all .2s}.consent-toggle input:checked+.toggle-slider{background:var(--accent-color, #6366f1);border-color:var(--accent-color, #6366f1)}.consent-toggle input:checked+.toggle-slider:after{left:22px;background:#fff}.consent-toggle.disabled{cursor:not-allowed;opacity:.6}.consent-toggle .required-badge{font-size:.6875rem;text-transform:uppercase;color:var(--text-muted, #71717a);letter-spacing:.5px}.consent-form-actions{display:flex;justify-content:flex-end;padding-top:1rem;margin-top:.5rem}.consent-footer-link{text-align:center;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border-color, #3f3f46)}.consent-footer-link a{color:var(--accent-color, #6366f1);font-size:.875rem;text-decoration:none}.consent-footer-link a:hover{text-decoration:underline}@media(max-width:640px){.consent-quick-actions{flex-direction:column}.consent-btn{width:100%;text-align:center}.consent-category{flex-direction:column;align-items:flex-start;gap:.75rem}.consent-toggle{align-self:flex-end}}
