:root{--primary-color: #3498db;--primary-dark: #2980b9;--secondary-color: #2ecc71;--secondary-dark: #27ae60;--danger-color: #e74c3c;--danger-dark: #c0392b;--text-color: #333;--light-text: #777;--bg-color: #f5f5f5;--card-bg: #fff;--border-color: #ddd;--success-color: #2ecc71;--warning-color: #f39c12}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;line-height:1.6;color:var(--text-color);background-color:var(--bg-color)}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:20px;color:var(--text-color)}a{color:var(--primary-color);text-decoration:none}a:hover{text-decoration:underline}.app{max-width:1200px;margin:0 auto;padding:0 20px}.issuer-portal,.investor-portal,body{display:flex;flex-direction:column;min-height:100vh}header{display:flex;justify-content:space-between;align-items:center;padding:20px 0;border-bottom:1px solid var(--border-color);margin-bottom:30px}header h1{margin-bottom:0;font-size:24px}main{flex:1;max-width:1200px;margin:0 auto;width:100%}.app{display:flex;flex-direction:column;min-height:100vh}footer{text-align:center;margin-top:50px;padding:20px 0;border-top:1px solid var(--border-color);color:var(--light-text);font-size:14px}.community-footer{background-color:transparent;margin-top:auto;padding:24px 16px}.community-footer-container{max-width:1200px;margin:0 auto;padding:40px 0 24px}.community-footer-content{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;border-bottom:1px solid var(--border-color);padding-bottom:24px}.community-footer-section{display:flex;align-items:center}.logo-link{display:flex;align-items:center;text-decoration:none;transition:opacity .3s ease}.logo-link:hover{opacity:.8}.built-for-community{color:var(--light-text);font-size:14px;font-weight:500}.social-links{gap:16px}.social-link{color:var(--text-color);font-size:20px;text-decoration:none;transition:color .3s ease;display:flex;align-items:center;justify-content:center;padding:4px}.social-link:hover{color:var(--primary-color)}@media (max-width: 768px){.community-footer-content{flex-direction:column;text-align:center;gap:20px}.community-footer-section{justify-content:center}.social-links{gap:24px}}button{cursor:pointer;padding:10px 15px;background-color:var(--primary-color);color:#fff;border:none;border-radius:4px;font-size:14px;transition:background-color .3s}button:hover{background-color:var(--primary-dark)}button:disabled{background-color:#95a5a6;cursor:not-allowed}.connect-button{background-color:var(--secondary-color);display:flex;align-items:center;gap:8px}.connect-button:hover{background-color:var(--secondary-dark)}.submit-button{background-color:var(--secondary-color);padding:12px 20px;width:100%;margin-top:1rem}.submit-button:hover{background-color:var(--secondary-dark)}.revoke-button{background-color:var(--danger-color);font-size:12px;padding:6px 10px}.revoke-button:hover{background-color:var(--danger-dark)}.cancel-button{background-color:var(--light-text)}.cancel-button:hover{background-color:#666}.confirm-button{background-color:var(--secondary-color)}.confirm-button:hover{background-color:var(--secondary-dark)}.add-button{background-color:var(--secondary-color);margin-bottom:1rem}.add-button:hover{background-color:var(--secondary-dark)}.attestation-form{background-color:var(--card-bg);border-radius:8px;padding:30px;box-shadow:0 2px 10px #0000000d;margin-bottom:30px}.form-group{margin-bottom:20px}.form-group label{display:block;margin-bottom:8px;font-weight:500}.form-group input,.form-group textarea,.form-group select{width:100%;padding:10px;border:1px solid var(--border-color);border-radius:4px;font-size:14px}.form-group textarea{resize:vertical;min-height:80px}.form-group.checkbox{display:flex;align-items:center}.form-group.checkbox label{display:flex;align-items:center;gap:8px;margin-bottom:0}.form-group.checkbox input{width:auto}.form-actions{display:flex;gap:1rem;margin-top:1rem}.form-actions button{flex:1}.loading{text-align:center;margin:40px 0;color:var(--light-text)}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:50px 20px;text-align:center}.loading-spinner{width:40px;height:40px;border:4px solid #f3f3f3;border-top:4px solid var(--primary-color);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:20px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-container p{color:var(--light-text);font-size:16px;margin:0}.error-message{background-color:#f8d7da;color:#721c24;padding:10px;border-radius:4px;margin:15px 0}.success-message{background-color:#d4edda;color:#155724;padding:10px;border-radius:4px;margin:15px 0}.no-attestations,.no-attesters,.no-permissions,.no-chain{text-align:center;color:var(--light-text);padding:20px;background-color:#f8f9fa;border-radius:8px;margin:20px 0}.connect-wallet{text-align:right}.wallet-info{display:flex;align-items:center}.wallet-address{background-color:#ecf0f1;padding:8px 12px;border-radius:4px;margin-right:10px;font-family:monospace;color:#000}.wallet-address:hover{background-color:#bdc3c7}.disconnect-button{background-color:var(--danger-color);font-size:12px;padding:6px 10px}.disconnect-button:hover{background-color:var(--danger-dark)}.connect-prompt{text-align:center;margin:50px 0;padding:30px;background-color:var(--card-bg);border-radius:8px;box-shadow:0 2px 10px #0000000d}.connect-prompt p{margin-bottom:15px;max-width:600px;margin-left:auto;margin-right:auto}.not-authorized{text-align:center;margin:50px 0;padding:30px;background-color:#fef9e7;border-radius:8px;border-left:5px solid #f1c40f}table{width:100%;border-collapse:collapse;margin-bottom:2rem}th,td{padding:12px;text-align:left;border-bottom:1px solid #ecf0f1}th{font-weight:600;background-color:#f8f9fa}tr.revoked{color:var(--light-text);background-color:#f8f9fa}.portal-nav{display:flex;justify-content:center;margin:20px 0;background-color:#ecf0f1;border-radius:8px;overflow:hidden}.portal-switch{background-color:transparent;color:var(--text-color);border:none;padding:15px 30px;flex:1;transition:all .3s}.portal-switch.active{background-color:var(--primary-color);color:#fff}.attestation-list{background-color:var(--card-bg);border-radius:8px;padding:30px;box-shadow:0 2px 10px #0000000d}.accreditation-status{background-color:var(--card-bg);border-radius:8px;padding:30px;box-shadow:0 2px 10px #0000000d;margin-bottom:30px}.status-info{margin-bottom:20px}.status-badge{display:inline-block;padding:8px 16px;border-radius:50px;font-weight:600;margin-bottom:15px}.status-badge.accredited{background-color:#d4edda;color:#155724}.status-badge.not-accredited{background-color:#f8d7da;color:#721c24}.status-details{margin-bottom:20px}.status-details p{margin-bottom:10px}.refresh-button{background-color:#6c757d}.refresh-button:hover{background-color:#5a6268}.attestation-type-selector{display:flex;gap:.5rem;margin-bottom:1rem}.attestation-type-selector button{background-color:#f1f1f1;color:var(--text-color);border:1px solid var(--border-color);border-radius:4px;padding:.75rem 1.25rem;flex:1}.attestation-type-selector button:hover{background-color:#e5e5e5}.attestation-type-selector button.active{background-color:var(--primary-color);color:#fff;border-color:var(--primary-color)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:100}.modal-content{background-color:var(--card-bg);padding:2rem;border-radius:8px;max-width:500px;width:100%;max-height:90vh;overflow-y:auto}.confirmation-details{margin:1.5rem 0}.compliance-statement{background-color:#f9f9f9;padding:1rem;border-radius:4px;font-style:italic;margin-top:.5rem}.info-card{background-color:#f8f9fa;border-radius:8px;padding:20px}.info-card p{margin-bottom:15px}.info-card p:last-child{margin-bottom:0}.tab-navigation{display:flex;gap:.5rem;margin-bottom:2rem;flex-wrap:wrap}.tab-navigation button{background-color:#f1f1f1;color:var(--text-color);border:1px solid var(--border-color);padding:.75rem 1.25rem}.tab-navigation button:hover{background-color:#e5e5e5}.tab-navigation button.active{background-color:var(--primary-color);color:#fff;border-color:var(--primary-color)}.tab-content{margin-bottom:2rem}.permission-chain{background-color:var(--card-bg);border-radius:8px;padding:2rem;box-shadow:0 2px 10px #0000000d}.chain-container{display:flex;flex-direction:column;align-items:center;gap:1rem;margin-top:1rem}.chain-node{display:flex;flex-direction:column;align-items:center;width:100%;max-width:400px}.node-content{background-color:#f5f5f5;border:1px solid var(--border-color);border-radius:8px;padding:1rem;width:100%}.node-title{font-weight:700;color:var(--primary-color);margin:0}.node-address{font-family:monospace;margin:.5rem 0}.node-details{font-size:.9rem;color:var(--light-text);margin:0}.chain-arrow{font-size:2rem;color:var(--primary-color);margin:.5rem 0}.attester-management{background-color:var(--card-bg);border-radius:8px;padding:2rem;box-shadow:0 2px 10px #0000000d}.security-notice{background-color:#fff8e1;border-left:4px solid #ffc107;padding:1rem;margin-bottom:1.5rem;border-radius:4px}.security-notice p{margin:0;font-size:.9rem;color:#775700}.attester-list-actions{margin-bottom:1.5rem}.add-attester-form{background-color:#f9f9f9;border-radius:8px;padding:1.5rem;margin-bottom:1.5rem}.attester-table{font-size:.95rem}.permission-info{background-color:var(--card-bg);border-radius:8px;padding:1.5rem;box-shadow:0 2px 10px #0000000d;margin-top:2rem}.permission-details{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1rem}.permission-details p{margin:0}.explanation-box{background-color:#f8f9fa;padding:20px;border-radius:8px;margin:20px 0 30px;border-left:5px solid var(--primary-color)}.explanation-box h2{color:var(--primary-color);margin-bottom:10px;font-size:1.4rem}.explanation-box p{margin-bottom:10px;line-height:1.6}.user-permission-info{margin-top:15px;padding-top:15px;border-top:1px solid #dee2e6}.user-permission-info p{margin-bottom:8px}.badge{display:inline-block;padding:4px 8px;border-radius:4px;font-size:.75rem;font-weight:600;margin-left:8px}.attester-badge{background-color:#e3f2fd;color:#0d47a1}.investor-badge{background-color:#e8f5e9;color:#1b5e20}.user-info{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px}.wallet-info{display:flex;align-items:center;background-color:transparent!important;padding:0!important;margin:0!important}.connect-wallet-button{margin-left:10px}.investor-attestation-container{background-color:var(--card-bg);border-radius:8px;padding:30px;box-shadow:0 2px 10px #0000000d;margin-bottom:30px}.investor-attestation-container h2{margin-bottom:15px;color:#333}.compliance-statement{background-color:#f9f9f9;padding:15px;border-radius:8px;border-left:4px solid #6c757d;margin-bottom:20px;font-style:italic}.compliance-statement p{margin:0;color:#555;line-height:1.6}.redirect-message{text-align:center;padding:40px 20px;background-color:#f8f9fa;border-radius:8px;margin:30px 0}.redirect-message h2{color:var(--primary-color);margin-bottom:10px}.investors-section{margin:40px 0}.investors-list-page{margin:20px 0 40px}.investors-list-page h2{margin-bottom:20px;color:var(--primary-color);font-size:1.5rem;border-bottom:2px solid #f1f1f1;padding-bottom:10px}.accreditation-card{background-color:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;padding:24px;margin-bottom:30px}.accreditation-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;border-bottom:1px solid #eee;padding-bottom:15px}.attestation-details,.attestation-info{margin-bottom:20px}.attestation-info h3{margin-bottom:15px;color:#333;font-size:18px}.info-row{display:flex;margin-bottom:12px;align-items:center}.info-row label{font-weight:600;min-width:100px;color:#555}.not-accredited-message{background-color:#fff3f3;border-radius:8px;padding:24px;margin-bottom:30px;border-left:4px solid var(--danger-color);text-align:center}.not-accredited-message h2{color:var(--danger-color);margin-bottom:15px}.not-accredited-message p{margin-bottom:20px;max-width:600px;margin-left:auto;margin-right:auto}.accreditation-footer{margin-top:20px;padding-top:15px;border-top:1px solid #eee;font-size:.9rem;color:#666}.address-with-copy{display:flex;align-items:center;gap:8px;margin-left:6px}.copy-button{background:none;border:none;cursor:pointer;font-size:14px;padding:2px 4px;margin:0;color:#555;transition:color .2s}.copy-button:hover{color:var(--primary-color)}.expiration-timer{margin-top:20px;padding:16px;background-color:#f8f9fa;border-radius:6px;border-left:4px solid var(--primary-color)}.timer-label{font-weight:600;color:#495057;margin-bottom:12px;font-size:16px}.countdown{display:flex;justify-content:space-between;max-width:300px;margin:0 auto}.time-unit{display:flex;flex-direction:column;align-items:center;min-width:60px;background-color:#fff;border-radius:4px;padding:8px 12px;box-shadow:0 1px 3px #0000001a}.time-value{font-size:24px;font-weight:700;color:var(--primary-color)}.time-label{font-size:12px;color:#6c757d;text-transform:uppercase;margin-top:4px}@media (max-width: 768px){header{flex-direction:column;text-align:center}header h1{margin-bottom:15px}.connect-wallet{text-align:center}.attestation-list{overflow-x:auto}.portal-switch{padding:10px 15px;font-size:14px}.tab-navigation{flex-direction:column}.permission-details{grid-template-columns:1fr}.user-info{flex-direction:column;align-items:center}.wallet-info{flex-direction:column;margin-bottom:10px!important}.badge{margin-top:5px;margin-left:0}.countdown{flex-wrap:wrap;justify-content:center;gap:10px}.time-unit{min-width:65px}}.attester-management-section{margin-top:2rem;padding:1.5rem;background-color:#f8f9fa;border-radius:8px;box-shadow:0 2px 4px #0000001a}.attester-management h2{margin-bottom:1.5rem;color:#333}.header-with-actions{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.toggle-button{background-color:#f1f1f1;color:#333;padding:8px 12px;border:1px solid #ddd;border-radius:4px;font-size:14px;cursor:pointer;transition:background-color .2s}.toggle-button:hover{background-color:#e5e5e5}.attester-management table{width:100%;border-collapse:collapse;margin-bottom:2rem;background-color:#fff;box-shadow:0 1px 3px #0000001a;border-radius:4px}.attester-management th,.attester-management td{padding:12px;text-align:left;border-bottom:1px solid #ecf0f1}.attester-management th{font-weight:600;background-color:#f8f9fa}.no-attesters{padding:20px;background-color:#f8f9fa;border-radius:8px;text-align:center;color:#666}.attester-management .revoke-button{background-color:#dc3545;color:#fff;border:none;border-radius:4px;padding:6px 12px;font-size:13px;cursor:pointer;transition:background-color .2s}.attester-management .revoke-button:hover{background-color:#bd2130}.investor-attestation-section{margin-top:2rem;padding:1.5rem;background-color:#f8f9fa;border-radius:8px;box-shadow:0 2px 4px #0000001a}.investor-attestation h2{margin-bottom:1.5rem;color:#333}.investor-attestation form{display:grid;gap:1rem;max-width:600px}.investor-attestation form>div{display:grid;gap:.5rem}.investor-attestation label{font-weight:500;color:#444}.investor-attestation input{padding:.5rem;border:1px solid #ddd;border-radius:4px;font-size:1rem}.investor-attestation button{padding:.75rem 1.5rem;background-color:#28a745;color:#fff;border:none;border-radius:4px;cursor:pointer;font-weight:500;transition:background-color .2s}.investor-attestation button:disabled{background-color:#ccc;cursor:not-allowed}.investor-attestation button:hover:not(:disabled){background-color:#218838}.investor-attestation .error{color:#dc3545;margin-bottom:1rem;padding:.5rem;background-color:#f8d7da;border-radius:4px}.investor-attestation .accreditation-status{margin-top:2rem;padding:1rem;background-color:#e9ecef;border-radius:4px}.investor-attestation .accreditation-status h3{margin-bottom:.5rem;color:#333}.wallet-info{margin:1rem 0;padding:1rem;background-color:#e9ecef;border-radius:4px}.wallet-info p{margin:.5rem 0;color:#444}.revoked-row{background-color:#ff00001a!important;color:#666}.revoked-label{color:red;font-weight:700;padding:4px 8px;border-radius:4px;background-color:#ff00001a}.check-other-wallet-section{background-color:#f8f9fa;border-radius:8px;padding:20px;margin:20px 0;border:1px solid #e9ecef}.check-other-wallet-section h3{color:var(--primary-color);margin-bottom:8px;font-size:1.1rem}.check-other-wallet-section p{color:#6c757d;font-size:.9rem;margin-bottom:16px}.check-wallet-form{margin-bottom:12px}.check-wallet-form .form-group{display:flex;gap:8px;align-items:stretch}.wallet-input{flex:1;padding:10px 14px;border:1px solid #ced4da;border-radius:6px;font-size:14px;font-family:monospace;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.wallet-input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 .2rem #3498db40}.wallet-input::placeholder{color:#999;font-family:system-ui,-apple-system,sans-serif}.check-wallet-form button[type=submit]{padding:10px 24px;white-space:nowrap;font-weight:500;transition:all .2s ease}.check-wallet-form button[type=submit]:not(:disabled):hover{transform:translateY(-1px);box-shadow:0 2px 4px #0000001a}.check-my-wallet-button{background-color:#6c757d;color:#fff;padding:8px 16px;border-radius:6px;font-size:14px;font-weight:500;transition:all .2s ease}.check-my-wallet-button:hover:not(:disabled){background-color:#5a6268;transform:translateY(-1px)}.checked-address-info{background-color:#fff;border-radius:6px;padding:12px 16px;margin-bottom:20px;border:1px solid #e9ecef}.checked-address-info h3{display:flex;align-items:center;gap:10px;margin:0;font-size:1rem;color:#495057}@media (max-width: 576px){.check-wallet-form .form-group{flex-direction:column}.check-wallet-form button[type=submit]{width:100%}.wallet-input{font-size:16px}}.investors-grid{margin:20px 0;width:100%}.investors-grid h2{margin-bottom:1rem;color:#333}.grid-container{overflow-x:auto;max-width:100%;box-shadow:0 4px 8px #0000001a;border-radius:8px}.investors-grid table{width:100%;border-collapse:collapse;background-color:#fff}.investors-grid th,.investors-grid td{padding:12px 16px;text-align:left;border-bottom:1px solid #eaeaea}.investors-grid th{background-color:#f7f7f7;font-weight:600;color:#333}.investors-grid tr:hover{background-color:#f9f9f9}.investors-grid tr.clickable{cursor:pointer}.status{display:inline-block;padding:4px 8px;border-radius:4px;font-size:.85rem;font-weight:500}.status.valid{background-color:#e6f7e6;color:#2e7d32}.status.expiring{background-color:#fff8e1;color:#f57c00}.status.expired{background-color:#ffebee;color:#c62828}.status.forever{background-color:#e3f2fd;color:#1565c0;font-weight:600}.address-cell{position:relative;white-space:nowrap}.copy-button{background:none;border:none;color:#999;cursor:pointer;padding:2px 4px;font-size:12px;border-radius:3px;transition:all .2s ease;opacity:.7;margin-left:6px;display:inline-block;vertical-align:middle}.copy-button:hover{background-color:#0000000d;color:#555;opacity:1}.copy-button.copied{background-color:#e3f2fd;color:#1565c0;animation:pulse 1.5s ease}@keyframes pulse{0%{transform:scale(1);opacity:1}20%{transform:scale(1.15);opacity:1}80%{transform:scale(1);opacity:1}to{transform:scale(1);opacity:.7}}.loading,.error-message,.no-investors{padding:20px;text-align:center;background-color:#f9f9f9;border-radius:8px;margin:20px 0}.error-message{background-color:#ffebee;color:#c62828}.no-investors{background-color:#f5f5f5;color:#757575}@media screen and (max-width: 768px){.investors-grid th,.investors-grid td{padding:8px 12px;font-size:.9rem}.status{font-size:.75rem;padding:3px 6px}}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.modal-content{background-color:#fff;padding:2rem;border-radius:8px;max-width:600px;width:90%;max-height:80vh;overflow-y:auto;box-shadow:0 4px 6px #0000001a}.confirmation-details{margin:1.5rem 0;line-height:1.6}.confirmation-details p{margin-bottom:.5rem}.compliance-statement{background-color:#f5f5f5;padding:1rem;border-radius:4px;margin-top:.5rem;font-size:.9rem}.modal-actions{display:flex;justify-content:flex-end;gap:1rem;margin-top:1.5rem}.cancel-button{padding:.5rem 1rem;border:2px solid #dc3545;border-radius:4px;background-color:#fff;color:#dc3545;font-weight:600;cursor:pointer;transition:all .2s}.cancel-button:hover{background-color:#dc3545;color:#fff;transform:translateY(-1px);box-shadow:0 2px 4px #dc354533}.confirm-button{padding:.5rem 1rem;border:none;border-radius:4px;background-color:#007bff;color:#fff;cursor:pointer;transition:background-color .2s}.confirm-button:hover{background-color:#0056b3}.confirm-button:disabled{background-color:#ccc;cursor:not-allowed}.expiry-settings{margin-top:1.5rem;border:1px solid #e0e0e0;padding:1rem;border-radius:6px;background-color:#f9f9f9}.expiry-options{display:flex;flex-direction:column;gap:1rem}.checkbox-container{display:flex;flex-direction:row-reverse;justify-content:flex-end;width:100%;gap:.5rem}.checkbox-container input[type=checkbox]{width:auto;margin-top:-5px}.date-input-container{display:flex;flex-direction:column;gap:.5rem;margin-top:.5rem}.date-input-container input[type=date]{margin-top:.25rem}.expiry-note{font-size:.85rem;color:#666;margin-top:.25rem}
