/* Account page base layout */ body { margin: 0; min-height: 100vh; background: #e9edf1; color: var(--color-text-primary); font-family: 'Inter', 'Segoe UI', Roboto, Helvetica, Arial, sans-serif; display: flex; flex-direction: column; } a { color: inherit; text-decoration: none; } h1 { margin: 0 0 18px; font-size: 2rem; font-weight: 700; color: var(--color-primary); } /* Navigation */ .nav-wrapper { position: fixed; top: 0; left: 0; right: 0; height: 70px; display: flex; align-items: center; justify-content: space-between; padding: 0 24px; background: linear-gradient(135deg, rgba(255, 255, 255, 0.96), rgba(231, 238, 243, 0.9)); color: var(--color-text-primary); box-shadow: 0 12px 28px rgba(15, 23, 42, 0.14); z-index: 30; backdrop-filter: blur(12px); } .brand-logo { font-size: 1.4rem; font-weight: 700; } .nav-right-icons { display: inline-flex; align-items: center; gap: 18px; } .notification-container { position: relative; display: inline-flex; align-items: center; justify-content: center; } .notification-bell, .burger-menu { width: 22px; height: 22px; color: var(--color-text-secondary); cursor: pointer; display: inline-flex; align-items: center; justify-content: center; transition: color var(--transition-base); } .notification-bell:hover, .burger-menu:hover { color: var(--color-primary); } .notification-badge { position: absolute; top: -6px; right: -6px; min-width: 18px; height: 18px; padding: 0 6px; border-radius: 999px; background: var(--color-danger); color: #fff; font-size: 0.7rem; font-weight: 700; display: inline-flex; align-items: center; justify-content: center; } .notification-board { position: absolute; top: calc(100% + 12px); right: 0; width: min(320px, 90vw); background: var(--color-surface); border-radius: var(--radius-lg); box-shadow: var(--shadow-lg); border: 1px solid rgba(148, 163, 184, 0.25); padding: 12px 0; display: none; flex-direction: column; z-index: 40; } .notification-board.is-visible { display: flex; } .notification-board .notification-element { padding: 10px 18px; color: var(--color-text-primary); transition: background var(--transition-base); } .notification-board .notification-element:hover { background: rgba(58, 80, 107, 0.08); } /* Layout */ .container { margin-top: 90px; display: grid; grid-template-columns: clamp(220px, 25%, 280px) 1fr; gap: 24px; padding: 24px 32px 48px; box-sizing: border-box; } @media (max-width: 1024px) { .container { grid-template-columns: 1fr; padding: 20px 18px 40px; } } /* Avatar & banner */ .avatar-section { display: flex; align-items: center; gap: 12px; color: #fff; } .user-info { display: flex; flex-direction: column; gap: 4px; } .user-name, .user-lastname { font-size: 0.95rem; font-weight: 600; cursor: pointer; transition: color var(--transition-base); } .user-name:hover, .user-lastname:hover { color: var(--color-accent); } .avatar-container { width: 70px; height: 70px; border-radius: 50%; overflow: hidden; border: 2px solid rgba(255, 255, 255, 0.9); flex-shrink: 0; } .avatar { width: 100%; height: 100%; object-fit: cover; display: block; } .banner-image-container { position: relative; width: 100%; height: 180px; border-radius: var(--radius-lg); overflow: hidden; margin-bottom: 16px; box-shadow: var(--shadow-sm); } .banner-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: brightness(0.72); } .banner-content { position: relative; z-index: 1; display: flex; align-items: center; gap: 16px; height: 100%; padding: 0 20px; color: #fff; background: linear-gradient(90deg, rgba(0, 0, 0, 0.55), rgba(0, 0, 0, 0.05)); } .banner-upload-label { display: inline-flex; align-items: center; justify-content: center; padding: 10px 18px; border-radius: var(--radius-md); background: var(--color-accent); color: #fff; font-weight: 600; cursor: pointer; transition: transform var(--transition-base), box-shadow var(--transition-base); } .banner-upload-label:hover { transform: translateY(-1px); box-shadow: 0 14px 24px rgba(214, 140, 69, 0.35); } .banner-controls { display: flex; justify-content: center; gap: 12px; } .banner-preview { margin: 12px 0; text-align: center; } .banner-preview h3 { margin: 0 0 8px; font-size: 1.1rem; color: var(--color-text-primary); } /* Sidebar */ .parameter-list { background: linear-gradient(135deg, var(--color-primary), #223447); color: #fff; border-radius: var(--radius-lg); padding: 24px 20px; box-shadow: var(--shadow-sm); display: flex; flex-direction: column; gap: 18px; } .parameter-list ul { list-style: none; margin: 0; padding: 12px 16px; border-radius: var(--radius-md); background: rgba(255, 255, 255, 0.08); cursor: pointer; transition: background var(--transition-base), transform var(--transition-base); } .parameter-list ul:hover, .parameter-list ul.active { background: rgba(255, 255, 255, 0.2); transform: translateX(4px); } .parameter-list li { margin: 0; color: #fff; font-weight: 500; } .parameter-list-ul { padding: 0; display: flex; flex-direction: column; gap: 8px; } /* Main panel */ .parameter-area { background: var(--color-surface); border-radius: var(--radius-lg); padding: 24px; box-shadow: var(--shadow-md); display: flex; flex-direction: column; gap: 24px; } .parameter-header { background: var(--color-primary); color: #fff; font-weight: 700; border-radius: var(--radius-md); padding: 16px 20px; text-align: center; } .parameter-table { width: 100%; border-collapse: collapse; font-size: 0.95rem; } .parameter-table th { background: rgba(58, 80, 107, 0.08); color: var(--color-text-primary); text-align: left; font-weight: 600; padding: 12px; } .parameter-table td { padding: 12px; border-bottom: 1px solid rgba(148, 163, 184, 0.3); color: var(--color-text-secondary); } .parameter-table tr:nth-child(even) { background: rgba(58, 80, 107, 0.04); } .parameter-table tr:hover { background: rgba(58, 80, 107, 0.08); } .button-container, .popup-button-container, .action-buttons-row, .confirm-delete-buttons { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; } .button-style, .export-btn, .delete-account-btn, .logout-btn { padding: 10px 18px; border-radius: var(--radius-md); border: none; font-weight: 600; cursor: pointer; transition: transform var(--transition-base), box-shadow var(--transition-base); } .button-style, .export-btn { background: linear-gradient(135deg, var(--color-accent), #b06935); color: #fff; } .button-style:hover, .export-btn:hover { transform: translateY(-1px); box-shadow: 0 10px 20px rgba(214, 140, 69, 0.35); } .delete-account-btn { background: linear-gradient(135deg, #e94c57, #c62828); color: #fff; } .delete-account-btn:hover { transform: translateY(-1px); box-shadow: 0 14px 26px rgba(220, 53, 69, 0.35); } .logout-btn { background: linear-gradient(135deg, #6c757d, #4a5258); color: #fff; } .logout-btn:hover { transform: translateY(-1px); box-shadow: 0 10px 22px rgba(108, 117, 125, 0.35); } .custom-select { width: 100%; max-height: 220px; overflow-y: auto; border: 1px solid rgba(148, 163, 184, 0.35); border-radius: var(--radius-md); background: #fff; padding: 0; } .custom-select option { padding: 10px 14px; cursor: pointer; } /* Popups */ .popup, .confirm-delete-modal, .notifications-modal, .qr-modal, .pairing-modal, .request-modal, .contract-popup-overlay { position: fixed; inset: 0; background: rgba(15, 23, 42, 0.55); display: none; align-items: center; justify-content: center; backdrop-filter: blur(12px); z-index: 50; padding: 24px; box-sizing: border-box; } .popup.is-visible, .confirm-delete-modal.is-visible, .notifications-modal.is-visible, .qr-modal.is-visible, .pairing-modal.is-visible, .request-modal.is-visible, .contract-popup-overlay.is-visible { display: flex; } .popup-content, .confirm-delete-content, .notifications-content, .qr-modal-content, .pairing-modal-content, .request-modal .modal-content, .contract-popup-content { background: var(--color-surface); border-radius: var(--radius-lg); padding: 24px; width: min(440px, 100%); max-height: 80vh; overflow-y: auto; box-shadow: var(--shadow-lg); position: relative; display: flex; flex-direction: column; gap: 16px; } .notifications-content, .contract-popup-content, .request-modal .modal-content { width: min(520px, 100%); } .close-popup, .close-button, .close-qr-modal, .close-contract-popup, .close-modal, #close-signature { position: absolute; top: 14px; right: 14px; border: none; background: transparent; color: var(--color-text-secondary); font-size: 1.4rem; cursor: pointer; } .close-popup:hover, .close-button:hover, .close-qr-modal:hover, .close-contract-popup:hover, .close-modal:hover, #close-signature:hover { color: var(--color-primary); } .popup-avatar { display: flex; flex-direction: column; align-items: center; gap: 12px; } .popup-avatar img { width: 110px; height: 110px; border-radius: 50%; border: 3px solid var(--color-accent); object-fit: cover; } .avatar-upload-label { position: relative; display: inline-flex; border-radius: 50%; overflow: hidden; cursor: pointer; } .avatar-upload-label span { position: absolute; inset: 0; background: rgba(0, 0, 0, 0.45); color: #fff; display: flex; align-items: center; justify-content: center; font-size: 0.85rem; opacity: 0; transition: opacity var(--transition-base); } .avatar-upload-label:hover span { opacity: 1; } .popup-info, .export-section, .delete-account-section { border-top: 1px solid rgba(148, 163, 184, 0.25); padding-top: 12px; } .info-row { display: flex; align-items: center; gap: 10px; margin: 8px 0; } .editable { cursor: pointer; padding: 2px 6px; border-radius: var(--radius-sm); transition: background var(--transition-base); } .editable:hover { background: rgba(58, 80, 107, 0.12); } .editable.editing { background: #fff; border: 1px solid rgba(58, 80, 107, 0.35); } .edit-input { width: 100%; border: 1px solid rgba(148, 163, 184, 0.45); border-radius: var(--radius-sm); padding: 4px 6px; } .confirm-delete-content { text-align: center; gap: 18px; } .confirm-delete-buttons button { flex: 1; padding: 10px 16px; border-radius: var(--radius-md); border: none; font-weight: 600; cursor: pointer; } .confirm-delete-buttons .confirm-btn { background: linear-gradient(135deg, #e94c57, #c62828); color: #fff; } .confirm-delete-buttons .cancel-btn { background: rgba(148, 163, 184, 0.25); color: var(--color-text-primary); } .notifications-title { font-size: 1.35rem; font-weight: 600; color: var(--color-text-primary); margin: 0; } .notifications-list { display: flex; flex-direction: column; gap: 14px; } .notification-item { display: flex; gap: 12px; align-items: flex-start; padding: 12px 0; border-bottom: 1px solid rgba(148, 163, 184, 0.2); cursor: pointer; } .notification-item:last-child { border-bottom: none; } .notification-status { width: 20px; height: 20px; display: inline-flex; align-items: center; justify-content: center; } .notification-message { font-weight: 600; color: var(--color-text-primary); } .notification-date { font-size: 0.85rem; color: var(--color-text-secondary); } /* Cards & process sections */ .process-card, .card { background: var(--color-surface); border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); padding: 24px; display: flex; flex-direction: column; gap: 16px; } .process-card-content, .card-content { display: flex; flex-direction: column; gap: 10px; } .process-title { font-weight: 600; color: var(--color-text-primary); margin: 0; } .process-element { padding: 8px 12px; border-radius: var(--radius-md); transition: background var(--transition-base); } .process-element:hover, .process-element.selected, .selected-process-zone { background: rgba(58, 80, 107, 0.12); } /* QR modal */ .qr-modal-content { align-items: center; text-align: center; gap: 16px; } .qr-address { font-family: 'Roboto Mono', monospace; font-size: 0.85rem; color: var(--color-text-secondary); word-break: break-all; } /* Pairing modal */ .pairing-modal-content { width: min(500px, 100%); gap: 18px; } .pairing-form { display: flex; flex-direction: column; gap: 14px; } .form-group, .form-group-members { display: flex; flex-direction: column; gap: 6px; font-weight: 600; } .form-group input, .form-group textarea, .form-group select { border: 1px solid rgba(148, 163, 184, 0.35); border-radius: var(--radius-md); padding: 10px 12px; } .button-group, .header-buttons { display: flex; justify-content: flex-end; gap: 10px; } .new-request-btn, .submit-btn, .confirm-button { padding: 10px 18px; border: none; border-radius: var(--radius-md); background: linear-gradient(135deg, var(--color-success), #2e7d32); color: #fff; font-weight: 600; cursor: pointer; transition: transform var(--transition-base), box-shadow var(--transition-base); } .new-request-btn:hover, .submit-btn:hover, .confirm-button:hover { transform: translateY(-1px); box-shadow: 0 12px 22px rgba(76, 175, 80, 0.32); } .cancel-button, .remove-member-btn, .remove-file { padding: 10px 16px; border-radius: var(--radius-md); background: rgba(148, 163, 184, 0.25); border: none; color: var(--color-text-primary); font-weight: 600; cursor: pointer; } /* Upload area */ .upload-area, .file-upload-container { border: 2px dashed rgba(148, 163, 184, 0.4); border-radius: var(--radius-md); padding: 24px; text-align: center; background: rgba(255, 255, 255, 0.85); transition: border-color var(--transition-base), background var(--transition-base); } .upload-area:hover, .file-upload-container.dragover { border-color: var(--color-primary); background: rgba(58, 80, 107, 0.08); } .upload-icon { font-size: 2.5rem; color: var(--color-primary); margin-bottom: 10px; } /* Notifications & responsive */ .mobile-nav { display: none; } @media (max-width: 768px) { body { background-attachment: scroll; } .nav-wrapper { height: auto; flex-direction: column; align-items: flex-start; gap: 8px; padding: 14px 18px; } .nav-right-icons { align-self: flex-end; } .container { padding: 16px 16px 32px; } .parameter-list { border-radius: var(--radius-md); } .parameter-area { padding: 20px; } .mobile-nav { display: flex; width: 100%; overflow-x: auto; background: rgba(58, 80, 107, 0.08); border-radius: var(--radius-md); padding: 8px; gap: 10px; } .mobile-nav ul { display: flex; gap: 8px; list-style: none; margin: 0; padding: 0; } .mobile-nav li { padding: 8px 12px; border-radius: var(--radius-md); background: rgba(255, 255, 255, 0.8); font-weight: 600; color: var(--color-primary); } } @media (max-width: 480px) { .banner-image-container { height: 160px; } .button-style, .export-btn, .delete-account-btn, .logout-btn, .new-request-btn, .submit-btn, .confirm-button, .cancel-button { width: 100%; } .notifications-content, .contract-popup-content, .request-modal .modal-content { width: 100%; } }