@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap');

body { 
    font-family: 'Roboto', sans-serif;
    margin: 0px;
    color: #282f40;
    letter-spacing: 0.5px;
    background: #e2e2e2;
    box-sizing: border-box; 
    overflow-x: hidden;
}
h2 { 
    color: #282f40; 
}
.error { 
    color: #b63737;; 
}
.site-header{
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    margin: 0 auto;
    width: 100%;
    padding: 0 2rem;
    background: #282f40;
    box-shadow: 0px 3px 0px #ccc;
    border-top: none;
    border-left: none;
    border-right: none;
    box-sizing: border-box;
    position: fixed;
    z-index: 2000;
    top: 0;
}
.header-right {
    display: flex;
    align-items: center;
}
.dashboard-button {
    margin-top: 10px;
    margin-bottom: 10px;
    height: 20px;
    color: #e2e2e2;
    background: #282f40;
    border-radius: 5px;
    font-weight: 900;
    font-style: inherit;
    font-size: 18px;
    padding: 10px 15px;
    cursor: pointer;
    transition: transform 0.15s ease-out, box-shadow 0.15s ease-out;
    text-decoration: none;
}
.logout-button {
    margin-top: 10px;
    margin-bottom: 10px;
    height: 20px;
    color: #e2e2e2;
    background: #282f40;
    border-radius: 5px;
    font-weight: 900;
    font-style: inherit;
    font-size: 18px;
    padding: 10px 15px;
    cursor: pointer;
    transition: transform 0.15s ease-out, box-shadow 0.15s ease-out;
    text-decoration: none;
}
.logout-button:hover {
    transform: translateY(-2px) scale(1.03);
}
.header-buttons{
    display: flex;
    flex-direction: row;
}
.site-logo{
    text-align: center;
    background-size: contain;
    opacity: 1;
    height: 50px;
    width: auto;
    margin: 10px;
}
.flash.flash-error{
    color: #b63737;
    text-align: center;
    font-weight: 450;
    margin-top: 5px;
}
.flash.flash-success{
    color: #267848;
    text-align: center;
    font-weight: 500;
}
.after-header{
    width: 100%;
    padding-top: 75px;
}
.after-header.dashboard {
    display: flex;
    flex-direction: row;
    position: relative;
}
.after-header.email-template-builder-container{
    display: flex;
    flex-direction: column;
    position: relative;
}
.dashboard{
    background: #e2e2e2;
    color: #282f40;
    justify-content: center;
    min-height: 500px;
}
.footer{
    width: 100%;
    text-align: center;
    margin-top: 0px;
    border-top: 0.5px solid #e2e2e2;
    padding: 35px 0px;
    font-size: 18px;
    background: #e2e2e2;
    color: #282f40;
    flex-direction: column;
    display: flex;
    gap: 5px;
}
.home-button{
    margin-left: 20px;
}
.homepage-body{
    display: flex;
    flex-direction: row;
}
/* Modal styles */
.modal-backdrop {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.5);
    z-index: 2000;
    justify-content: center;
    align-items: center;
}

.modal-backdrop.active {
    display: flex;
}

.modal-content {
    position: relative;
    background: #282f40;
    border-radius: 8px;
    max-width: 90%;
    max-height: 90%;
    overflow: auto;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
}

.modal-close {
    position: absolute;
    top: 10px;
    right: 15px;
    font-size: 24px;
    font-weight: bold;
    color: #282f40;
    cursor: pointer;
}

#login{
    width: 300px;
    padding: 1.5rem;
    background: #e2e2e2;
    border-radius: 8px;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
    z-index: 1000;
    height: 475px;
    overflow: hidden;

}
#register{
    margin: 3% auto;
    width: 25vw;
    padding: 1.5rem;
    background: #e2e2e2;
    border-radius: 8px;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
    height: 450px;
}
#features {
    width: 65%;
    max-width: 1200px;
    margin: 50px auto;
    display: flex;
    flex-direction: column;
    gap: 80px;
    perspective: 1000px;
    perspective-origin: center center;
    margin-top: 100px;
    margin-bottom: 150px;
    margin-left: 50px;

}
.feature {
    position: relative;
    display: flex;
    align-items: center;
    gap: 40px;
    overflow: hidden;
    min-height: 300px;
    transform-style: preserve-3d;
    transform-origin: center center;
    width: 70%;
    margin: 1% auto;
    border: 0.5px solid #ccc;
    border-radius: 5px;
    padding: 20px;
    box-shadow: -3px 3px 0px #ccc;
    background: #282f40;
    transition: transform 0.25s ease-out;
}
.feature-image {
    flex: 1;
    height: 250px;
    background-color: #e0e0e0; 
    border-radius: 12px;
    transform: translateY(0);
    will-change: transform;
}
.feature-display-image {
    width: 100%;
    height: 100%;
    object-fit: cover; 
    display: block;
    border-radius: 5px;
}
.feature-text {
    flex: 1;
}
.feature-text strong {
    display: block;
    font-size: 24px;
    margin-bottom: 10px;
    color: #ade8f4;
}
.feature-text p {
    font-size: 16px;
    line-height: 1.4;
    font-weight: 500;
    color: #e2e2e2;
}
.feature-image,
.feature-text strong,
.feature-text p {
    will-change: transform;
    transition: transform 0.3s ease-out;
}
.login-form{
    display: flex;
    flex-direction: column;
    width: 100%;
}
#email, #password, #confirm_password{
    margin-top: 10px;
    margin-bottom: 10px;
    height: 35px;
    font-style: inherit;
    font-size: 15px;
    font-weight: 500;
}
button[type="submit"]{
    margin-top: 10px;
    margin-bottom: 10px;
    height: 40px;
    color: #e2e2e2;
    background: #282f40;
    border: 0.5px solid #e2e2e2;
    border-radius: 5px;
    font-weight: 900;
    font-style: inherit;
    font-size: 18px;
    padding: 5px;
    cursor: pointer;
    transition: transform 0.15s ease-out, box-shadow 0.15s ease-out;
}
button[type="submit"]:hover {
    transform: translateY(-2px) scale(1.03);
    box-shadow: -4px 5px 8px rgba(0, 0, 0, 0.2);
}
.shared-search-btn{
    height: 40px;
    color: #282f40;
    background: #e2e2e2;
    border: 0.5px solid #282f40;
    border-radius: 5px;
    font-weight: 900;
    font-style: inherit;
    font-size: 16px;
    padding: 10px 13px;
    cursor: pointer;
    transition: transform 0.15s ease-out, box-shadow 0.15s ease-out;
    width: 100%;
    margin: 0 auto;
}
.shared-search-btn:hover {
    transform: translateY(-2px) scale(1.03);
    box-shadow: -4px 5px 8px rgba(0, 0, 0, 0.2);
}
.input-wrapper {
    position: relative;
    margin-bottom: 5px;
}
.input-wrapper i {
    position: absolute;
    left: 10px;
    top: 50%;
    transform: translateY(-50%);
    color: #282f40;
}
.input-wrapper .input-icon {
    position: absolute;
    left: 10px;
    top: 50%;
    transform: translateY(-50%);
    width: 16px;
    height: 16px;
    color: #282f40;
}
.input-wrapper input {
    padding: 10px 15px 10px 35px;
    border: 1px solid #ccc;
    border-radius: 4px;
    width: 98%;
    margin: 0 auto;
    box-sizing: border-box;
    margin-top: 10px;
    margin-bottom: 10px;
    height: 35px;
    font-size: 15px;
    font-family: inherit;
}
.register-link {
    text-align: center;
    font-weight: 420;
}
.register-link a{
    color: #282f40;
}

.login-link {
    text-align: center;
    margin-top: 20px;
    font-size: 14px;
    color: #666;
}

.login-link a {
    color: #282f40;
    text-decoration: none;
    font-weight: 500;
}

.login-link a:hover {
    text-decoration: underline;
}
.register-link-button {
    text-align: center;
    font-weight: 420;
    margin-bottom: 25px;
    background: white;
    color: #282f40;
    text-decoration: none;
    padding: 10px 15px;
    border-radius: 4px;
    transition: transform 0.15s ease-out, box-shadow 0.15s ease-out;
}
.register-link-button:hover{
    transform: translateY(-2px) scale(1.03);
}
.register-link-button a{
    color: #282f40;
    text-decoration: none;
}
.password-wrapper {
    position: relative;
}
.password-wrapper input {
    padding-right: 35px; /* leave space for icon */
}
.toggle-password {
    position: absolute;
    right: 10px;
    top: 50%;
    transform: translateY(-50%);
    cursor: pointer;
    color: #282f40;
}
.toggle-visibility {
    position: absolute;
    right: 15px;
    top: 55%;
    transform: translateY(-50%);
    color: #282f40;
}
.quotes-list{
    list-style: none;
    padding-left: 0px;
}
.section-title{
    text-align: center;
    color: #ade8f4;
    font-size: 22px;
}
.quote-item{
    background: #282f40;
    color: #e2e2e2;
    padding: 20px;
    border-radius: 5px;
    box-shadow: -3px 3px 0px #ccc;
    margin: 15px auto;
    font-weight: 500;
    width: 80%;
    border: 0.5px solid #e2e2e2;
}
.themes-and-reco-div{
    display: flex;
    flex-direction: column;
}
.consumer-insights{
    display: flex;
    flex-direction: column;
}
#consumer-insight-search-ui{
    text-align: center;
    padding-bottom: 15px;
}
#consumer-insight-search-ui input{
    font-style: inherit;
    font-size: 15px;
    font-weight: 500;
    padding: 15px;
    border: 1px solid #ccc;
    border-radius: 4px;
    margin: 0 auto;
    box-sizing: border-box;
    margin-top: 10px;
    margin-bottom: 10px;
    height: 40px;
    width: 350px;
}
#consumer-insight-search-btn{
    margin-top: 10px;
    margin-bottom: 10px;
    height: 35px;
    color: #ade8f4;
    background: #282f40;
    border: 0.5px solid #e2e2e2;
    border-radius: 5px;
    font-weight: 900;
    font-style: inherit;
    font-size: 18px;
    padding-left: 20px;
    padding-right: 20px;
    cursor: pointer;
    transition: transform 0.15s ease-out, box-shadow 0.15s ease-out;
    margin-left: 10px;
}
.themes-section{
    background: #282f40;
    color: #e2e2e2;
    padding: 20px;
    border-radius: 5px;
    box-shadow: -3px 3px 0px #ccc;
    margin: 10px auto;
    font-weight: 500;
    width: 80%;
    border: 0.5px solid #e2e2e2;
}
.recommendations-section{
    background: #282f40;
    color: #e2e2e2;
    padding: 20px;
    border-radius: 5px;
    box-shadow: -3px 3px 0px #ccc;
    margin: 10px auto;
    font-weight: 500;
    width: 80%;
    border: 0.5px solid #e2e2e2;
}
.recommendations-list{
    padding-left: 0px;
    list-style: none;
}
.recommendation-item{
    margin-bottom: 20px;
    line-height: 1.3;
}
.loading-container {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
    padding: 1rem 0;
}
.result-thumbnail{
    display: none;
}
.search-bar-container {
    display: flex;
    justify-content: center;
    padding: 0px;
    background: #e2e2e2;
    border-radius: 10px;
    width: 90%;
    border: 0.5px solid #282f40;
    margin: auto;
}
.search-bar-container input {
    width: 85%;
    padding: 10px 20px;
    font-size: 16px;
    border: none;
    border-radius: 10px 0 0 10px;
    outline: none;
    background: #e2e2e2;
    font-weight: 600;
    color: #282f40;
}
.results-tabs {
    display: flex;
    justify-content: start;
    border-bottom: 0.5px solid #282f40;
    height: 55px;
}
.tab-button {
    padding: 10px 16px;
    border: none;
    background: none;
    font-size: 15px;
    color: #282f40;
    cursor: pointer;
    border-bottom: 3px solid transparent;
    width: 100%;
}
.tab-button.active {
    border-bottom: 3px solid #282f40;
    color: #282f40;
    font-weight: 700;
    font-size: 16px;
}
.results{
    width: 85%;
    border: 0.5px solid #e2e2e2;
    border-radius: 10px;
    padding: 0px 25px;
    margin: auto;
    min-height: 1000px;
}
.results-container {
    height: 90%;
    padding-top: 10px;
}
.tab-content {
    display: none;
}
.tab-content.active {
    display: block;
}
.search-dashboard{
    width: 1000px;
}
.progress-bar-container {
    width: 85%;
    margin: 0 auto;
    background: #e2e2e2;
    height: 50px;
    margin-top: 10rem;
    margin-bottom: 1rem;
    display: none;
    border-radius: 4px;
    overflow: hidden;
}
.progress-bar-container.active {
    display: block;       
}
.progress-bar-fill {
    width: 0%;
    height: 20%;
    background: #2d364b;
    transition: width 0.2s ease;
    border-radius: 10px;
}
.progress-bar-message {
    width: 100%;
    text-align: center;
    font-size: 18px;
    color: #2d364b;
    font-weight: 500;
    height: 80%;
}
.glow-highlight {
    box-shadow: 0 0 26px 2px #282f40, 0 0 32px -10px #2d364b;
    transition: box-shadow 0.5s ease-out;
    margin: 10px;
    border-radius: 10px;
}
.analysis-block, .post-body, .comment-body {
    white-space: pre-wrap;
}
.header-welcome {
    color: #e2e2e2;
    text-align: left;
    margin-bottom: 20px;
    font-size: 22px;
    font-weight: 500;
    position: absolute;
    left: 275px;
}
.header-welcome-email-builder {
    color: #e2e2e2;
    text-align: left;
    margin-bottom: 20px;
    font-size: 22px;
    font-weight: 500;
    position: absolute;
    left: 325px;
}
.leads-dashboard {
    width: 95%;
    background: #f5f5f5;
    border-radius: 0px 0px 10px 10px;
    padding: 20px 25px;
    transition: all 0.3s ease;
    min-height: auto;
}
.leads-title {
    color: #282f40;
    text-align: left;
    margin-bottom: 5px;
    font-size: 24px;
    font-weight: 600;
}
.leads-container {
    width: 100%;
    border: 0.5px solid #282f40;
    border-radius: 10px;
    overflow: hidden;
}
.leads-header {
    display: flex;
    background: #282f40;
    color: #e2e2e2;
    font-weight: 600;
    padding: 12px 0;
    text-align: center;
}
.lead-row {
    display: flex;
    border-bottom: 0.5px solid #282f40;
    padding: 12px 0;
    transition: background-color 0.2s ease;
}
.lead-row:hover {
    background-color: #d0d0d0;
}
.lead-row:last-child {
    border-bottom: none;
}
.lead-cell {
    flex: 1;
    padding: 0 15px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: #282f40;
    text-align: left;
}
.lead-header {
    font-weight: 700;
    color: #e2e2e2;
}
.lead-url a {
    color: #282f40;
    text-decoration: none;
}
.lead-url a:hover {
    text-decoration: underline;
}
.external-link-icon {
    width: 14px;
    height: 14px;
    margin-right: 5px;
    vertical-align: middle;
}
.leads-status {
    font-size: 0.9em;
    color: #666;
    display: flex;
    align-items: center;
    gap: 1em;
    justify-content: left;
    max-width: 160vh;
    margin: 0 auto;
    margin-top: 10px;
}
.refresh-btn {
    background: none;
    border: none;
    color: #282f40;
    cursor: pointer;
    text-decoration: underline;
    padding: 0;
    font: inherit;
}
.refresh-btn:hover {
    text-decoration: none;
}
.lead-refresh-toast {
    position: absolute;
    top: 7rem;
    left: 50%;
    transform: translateX(-50%);
    background-color: #276749;
    color: #e2e2e2;
    padding: 0.5em 1em;
    border-radius: 6px;
    font-weight: bold;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);
    opacity: 0;
    pointer-events: none;
    z-index: 1000;
    transition: opacity 0.4s ease;
}
.lead-refresh-toast.show {
    opacity: 1;
}
.leads-fade {
    opacity: 0;
    transition: opacity 0.25s ease-out;
}
#leads-data-container {
    transition: opacity 0.25s ease-in;
}
.empty-message{
    text-align: center;
}

.extension-button {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background: #282f40;
    color: #e2e2e2;
    text-decoration: none;
    padding: 12px 24px;
    border-radius: 8px;
    font-weight: 500;
    font-size: 16px;
    transition: all 0.3s ease;
    margin-top: 20px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.extension-button:hover {
    background: #1a1f2b;
    transform: translateY(-2px);
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
    color: #e2e2e2;
    text-decoration: none;
}

.extension-icon {
    width: 20px;
    height: 20px;
    filter: invert(1);
}
.suggestion-board {
    margin: 15px;
    font-family: inherit;
    opacity: 1;
    width: 220px;
}
.suggestion-list {
    list-style: none;
    padding: 0;
    margin: 0 0 2rem;
}
.suggestion-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.50rem 0.75rem;
    border: 1px solid #ccc;
    border-radius: 10px;
    margin-bottom: 0.5rem;
    background: #fff;
    height: 50px;
}
.suggestion-text {
    margin: 0;
    font-size: 15px;
    font-weight: 450;
    margin-right: 5px;
}
.vote-controls {
    display: flex;
    flex-direction: column;
    align-items: center;
    min-width: 50px;
    max-width: 50px;
}
.vote-btn {
    display: inline-flex;
    align-items: center;
    background: none;
    border: none;
    cursor: pointer;
  }
.vote-icon {
    color: transparent;
    -webkit-text-stroke: 1px #666;
    transition: color .2s, -webkit-text-stroke-color .2s;
    font-size: 1.2em;
    line-height: 1;
    margin-right: 0.25em;
}
.vote-btn.voted .vote-icon {
    color: #282f40;
    -webkit-text-stroke-color: transparent;
}
.vote-btn .count {
    margin-left: 0.25rem;
}
.new-suggestion-form label {
    display: block;
    margin-bottom: 0.5rem;
    font-weight: bold;
}
.new-suggestion-form textarea {
    width: 92%;
    height: 4rem;
    padding: 0.5rem;
    font-size: 15px;
    border: 1px solid #ccc;
    border-radius: 10px;
    resize: vertical;
    font-family: inherit;
    font-weight: 400;
}
.form-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 0.5rem;
}
.char-count {
    font-size: 0.875rem;
    color: #666;
    text-align: end;
}
.btn-suggest {
    background-color: #e2e2e2;
    color: white;
    border: none;
    padding: 0.5rem 1rem;
    border-radius: 4px;
    cursor: pointer;
}
.btn-suggest:hover {
    background-color: white;
}
.suggestion-panel {
    position: absolute;
    padding-top: 50px;
    right: 0;
    width: 245px;
    height: 100%;
    background: #f5f5f5;
    transform: translateX(100%);
    transition: transform 0.4s ease-in-out;
    z-index: 5;
    overflow-y: auto;
}
.suggestion-panel.visible {
    transform: translateX(0);
}
#toggle-suggestions-btn.active {
    background: #282f40;
    color: white;
    width: 65px;
    right: 165px;
}
#toggle-suggestions-btn{
    position: absolute;
    right: 15px;
    z-index: 10;
    top: 15px;
    width: 200px;
    font-family: inherit;
    padding: 10px 5px;
    font-weight: 600;
    letter-spacing: 0.5px;
    border-radius: 5px;
    border: none;
    transition: transform 0.15s ease-out, box-shadow 0.15s ease-out;
    cursor: pointer;
    font-size: 15px;
}
#toggle-suggestions-btn:hover{
    transform: translateY(-2px) scale(1.03);
}
.submit-suggestion-btn{
    display: block;
    color: white;
    font-size: 14px;
    padding: 10px 20px;
    margin: 0 auto;
    margin-top: 20px;
    width: 90%;
    background: #282f40;
    border: none;
    font-weight: 600;
    letter-spacing: 0.3px;
    border-radius: 5px;
    transition: transform 0.15s ease-out, box-shadow 0.15s ease-out;
    cursor: pointer;
}
.submit-suggestion-btn:hover{
    transform: translateY(-2px) scale(1.03);
}
.submit-message {
    margin: 0.5rem 0;
    color: #276749;
    font-size: 0.9rem;
    text-align: center;
}
.submit-message.error {
    color: #d9534f;
}
.oauth-divider {
    display: flex;
    align-items: center;
    text-align: center;
    margin: 10px 0;
    color: #282f40;
}
.oauth-divider::before,
.oauth-divider::after {
    content: '';
    flex: 1;
    border-bottom: 1px solid #282f40;
}
.oauth-divider span {
    padding: 0 10px;
    font-size: 14px;
    font-weight: 500;
}
.oauth-buttons {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-bottom: 20px;
}
.oauth-buttons.login{
    width: 100%;
}
.google-login-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    background-color: #ffffff;
    color: #757575;
    border: 1px solid #dddddd;
    border-radius: 5px;
    padding: 10px 15px;
    font-size: 16px;
    font-weight: 500;
    text-decoration: none;
    margin-top: 10px;
    transition: transform 0.15s ease-out, box-shadow 0.15s ease-out;
}
.google-login-btn:hover {
    background-color: #f5f5f5;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
    transform: translateY(-2px) scale(1.03);
}
.google-login-btn img {
    width: 18px;
    height: 18px;
}
.section {
    min-height: 95vh;
    height: auto;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding: 0 10vw;
    scroll-margin-top: 70px; /* For smooth scrolling */
}
.nav-buttons {
    display: flex;
    gap: 20px;
}
.nav-button {
    color: #e2e2e2;
    background: #282f40;
    border: none;
    border-radius: 5px;
    font-weight: 600;
    font-size: 16px;
    padding: 10px 15px;
    cursor: pointer;
    transition: transform 0.15s ease-out, box-shadow 0.15s ease-out;
    text-decoration: none;
}
.nav-button:hover {
    transform: translateY(-2px) scale(1.03);
}
.popup-effect{
    transition: transform 0.15s ease-out, box-shadow 0.15s ease-out;
}
.popup-effect:hover{
    transform: translateY(-2px) scale(1.03);
}
.download-extension-nav {
    background-color: #267848;
    color: white;
    font-weight: 500;
}
.download-extension-nav:hover {
    background-color: #229954;
    color: white;
}
#sign-in-btn{
    border: none;
}
.hero-section {
    text-align: center;
    max-width: 800px;
    margin: 0 auto;
}
.hero-title {
    font-size: 4rem;
    margin: 0;
    color: #282f40;
}
.hero-subtitle {
    font-size: 22px;
    margin-bottom: 2rem;
    color: #282f40;
    letter-spacing: 0.25px;
    line-height: 30px;
    font-family: helvetica;
    font-weight: 550;
    text-align: justify;
}

.hero-buttons {
    display: flex;
    flex-direction: row;
    gap: 20px;
    align-items: center;
    justify-content: center;
}
#how-to-use{
    background: #282f40;
}
.how-to-use-section {
    display: flex;
    flex-direction: column;
    align-items: center;
}
.how-to-use-title {
    font-size: 2.5rem;
    margin-bottom: 0rem;
    color: #e2e2e2;
    margin-top: 0rem;
}
.how-to-use-boxes {
    display: flex;
    gap: 30px;
    justify-content: center;
    width: 100%;
    margin-top: 1rem;
}
.how-to-use-box {
    flex: 1;
    background: #e2e2e2;
    border: 0.5px solid #ccc;
    border-radius: 8px;
    padding: 25px;
    box-shadow: -3px 3px 0px #ccc;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    max-width: 400px;
    justify-content: space-between;
}
.how-to-use-box-image {
    width: 100%;
    height: 300px;
    border-radius: 8px;
    margin-bottom: 0px;
    box-sizing: border-box;
    object-fit: contain;
    color: #282f40;
}
.how-to-use-box-title {
    font-size: 1.5rem;
    margin-bottom: 1rem;
    color: #282f40;
}
.how-to-use-box-title-description{
    font-size: 20px;
    margin-bottom: 1rem;
    color: #e2e2e2;
}
.how-to-use-box-text {
    color: #282f40;
    font-size: 18px;
}
#suggest-features{
    padding: 60px 0px;
}
.suggest-features-section {
    display: flex;
    flex-direction: column;
    align-items: center;
}
.suggest-features-section .suggestion-board{
    width: 600px;
}
.suggest-features-section .suggestion-input{
    width: 94%;
    font-size: 16px;
    padding: 1rem;
}
.suggest-features-section .suggestion-item{
    padding: 0.75rem 1rem;
}
.suggest-features-section .suggestion-text{
    font-size: 18px;
}
.suggest-features-section .submit-suggestion-btn{
    font-size: 16px;
    width: 80%;
    padding: 15px 10px;
    font-weight: 600;
    letter-spacing: 0.5px;
}
.suggest-features-title {
    font-size: 2.5rem;
    margin-bottom: 3rem;
    color: #282f40;
}
#suggestion-root {
    width: 100%;
    max-width: 800px;
}
.download-extension-button{
    text-decoration: none;
    background: #282f40;
    padding: 15px;
    margin: 0 auto;
    display: flex;
    width: 30vh;
    color: #e2e2e2;
    white-space: normal;
    border-radius: 10px;
    align-items: center;
    justify-content: space-evenly;
    margin-bottom: 25px;
}
.download-extension-button .extension-icon{
    width: 25px;
    height: 25px;
}
.download-extension-text{
    font-size: 18px;
    font-weight: 500;
    font-family: inherit;
    letter-spacing: 0.5px;
}
.gmail-connect-status {
    margin: 0 auto;
    font-weight: 600;
    letter-spacing: 0.5px;
    color: #e2e2e2;
    padding: 10px;
    width: 30vh;
    border-radius: 5px;
    text-align: center;
    position: relative;
    font-size: 17px;
    margin-right: 10px;
}
.gmail-connect-status.not-connected {
    background: #661818;
    cursor: pointer;
}
.gmail-connect-status.not-connected:hover {
    background: #282f40; 
    border: 1px solid #e2e2e2;
}
.gmail-connect-status.not-connected:hover::before {
    content: "Connect Gmail";
}
.gmail-connect-status.not-connected::before {
    content: "Gmail is not connected";
}
.gmail-connect-status.connected {
    background: #282f40;
    cursor: pointer; 
}
.gmail-connect-status.connected:hover {
    background: #661818; 
}
.gmail-connect-status.connected:hover::before {
    content: "Disconnect Gmail";
}
.gmail-connect-status.connected::before {
    content: "Gmail is connected ✔";
}
body.privacy-policy {
    font-family: Arial, sans-serif;
    background-color: #fafafa;
    color: #282f40;
    margin: 0;
    padding: 0;
    text-align: justify;
}
.privacy-policy-content {
    max-width: 800px;
    margin: 40px auto;
    padding: 20px 20px 40px;
    background-color: #fff;
    border-radius: 10px;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.05);
    margin-top: 100px;
}
.privacy-policy-content h1 {
    font-size: 2em;
    border-bottom: 2px solid #ccc;
    padding-bottom: 10px;
}
.privacy-policy-content h2 {
    margin-top: 25px;
    color: #282f40;
}
.privacy-policy-content p, 
.privacy-policy-content li {
    line-height: 1.6;
    font-size: 1rem;
}
.privacy-policy-content ul {
    padding-left: 20px;
}
.privacy-policy-content a {
    color: #282f40;
    text-decoration: underline;
}
.privacy-policy-content .last-updated {
    margin-top: 40px;
    font-size: 0.9em;
    color: #666;
}
.dashboard-sidebar {
    height: calc(100vh - 75px); 
    width: 230px;
    background-color: #f5f5f5;
    border-right: 1px solid #ddd;
    display: flex;
    flex-direction: column;
    padding: 1rem;
    transition: width 0.3s ease, min-width 0.3s ease; /* Modified transition */
    z-index: 1001;
    flex-shrink: 0;
    border-bottom-right-radius: 10px;
    padding-top: 20px;
    position: relative;
    transform: translateZ(0);
}
.dashboard-sidebar.collapsed {
    width: 40px;
    min-width: 40px;
    padding: 0.5rem;
    padding-top: 20px;
}  
.collapse-btn {
    background: none;
    border: none;
    cursor: pointer;
    margin-bottom: 1rem;
    display: flex;
    justify-content: space-between;
    padding: 0px 6px;
}
.sidebar-list-item {
    position: relative;
}
.sidebar-toggle-icon {
    width: 27px;
    height: 27px;
    transition: transform 0.3s;
}
.sidebar-toggle-icon.collapsed {
    transform: rotate(180deg);
}
.sidebar-title {
    margin: 0 0 1rem 0;
    font-size: 1.1rem;
}
.sidebar-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    margin-top: 10px;
}
.sidebar-btn {
    padding: 0.75rem;
    cursor: pointer;
    text-align: left;
    width: 100%;
    border: none;
    border-radius: 6px;
    font-size: 16px;
    font-weight: 550;
    background: transparent;
    display: flex;
    align-items: center;
    gap: 12px;
    color: #282f40;
    transition: background-color 0.2s ease, color 0.2s ease;
}
.sidebar-btn:hover {
    background-color: #e0e0e0;
}
.sidebar-btn.active {
    background-color: #282f40;
    color: #f5f5f5;
}
.sidebar-btn.active .sidebar-icon {
    filter: brightness(0) invert(1);
}
.sidebar-icon {
    width: 20px;
    height: 20px;
    flex-shrink: 0; 
}
.sidebar-item-label.hidden {
    display: none;
}
.dashboard-sidebar.collapsed .sidebar-btn {
    justify-content: center;
}
.dashboard-sidebar.collapsed .sidebar-item-label {
    display: none;
}
.sidebar-menu-text{
    color: #282f40;
    text-align: center;
    font-size: 21px;
    font-weight: 570;
    margin: 0;
}
.sidebar-menu-text.hidden {
    opacity: 0;
    width: 0;
    overflow: hidden;
    pointer-events: none;
}
.sidebar-tooltip {
    position: absolute;
    opacity: 0;
    visibility: hidden;
    pointer-events: none; 
    left: 100%;
    top: 50%;
    transform: translateY(-50%);
    margin-left: 12px; 
    background-color: #282f40;
    color: #f5f5f5;
    padding: 6px 10px;
    border-radius: 5px;
    font-size: 14px;
    font-weight: 500;
    white-space: nowrap; 
    z-index: 1000;
    transition: opacity 0.2s ease, visibility 0.2s ease;
    transition-delay: 0.3s; 
}
.dashboard-sidebar.collapsed .sidebar-list-item:hover .sidebar-tooltip {
    opacity: 1;
    visibility: visible;
}
.dashboard-content {
    flex-grow: 1; 
    height: calc(100vh - 75px); 
    overflow-y: auto; 
    padding: 2rem;
    position: relative; 
    padding-top: 0px;
}
.gmail-warning-banner{
    display: none; 
    width: 100%;
    background-color: #ffcc00; 
    color: #282f40; 
    text-align: center; 
    padding: 10px; 
    font-weight: bold;
}
.email-templates{
    width: 95%;
    background: #f5f5f5;
    border-radius: 0px 0px 10px 10px;
    padding: 20px 25px;
    transition: all 0.3s ease;
    min-height: calc(104vh - 75px);
}
.create-template-btn {
    margin-top: 10px;
    padding: 10px 15px;
    font-size: 1em;
    font-weight: bold;
    background-color: #282f40;
    color: #e2e2e2;
    border: none;
    border-radius: 6px;
    cursor: pointer;
    transition: transform 0.15s ease-out, box-shadow 0.15s ease-out;
}
.email-builder-header-controls{
    display: flex;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
    justify-content: space-evenly;
    padding: 10px 50px;
}
.form-group.template-name{
    width: 35vh;
}
.form-group.subject-line{
    width: 65vh;
}
.form-group label{
    font-size: 15px;
    font-weight: 500;
    color: #282f40;
    font-family: inherit;
}
.form-group input {
    padding: 10px;
    border: 1px solid #d1d5db;
    border-radius: 5px;
    font-size: 15px;
    min-width: 200px;
}
.form-group {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}
.mode-toggle-section {
    display: flex;
    flex-direction: column;
    background: none;
    border-radius: 5px;
    padding: 0.25rem;
    gap: 0.25rem;
}
.mode-toggle {
    display: flex;
    background: #282f40;
    border-radius: 5px;
    padding: 0.25rem;
    gap: 0.25rem;
}
.mode-toggle button {
    padding: 5px 16px;
    border: none;
    border-radius: 5px;
    background: transparent;
    color: #f5f5f5;
    cursor: pointer;
    font-size: 0.875rem;
    transition: all 0.2s;
}
.mode-toggle button.active {
    background: #f5f5f5;
    color: #282f40;
    font-weight: 600;
}
.email-builder{
    display: flex;
}
.email-builder__sidebar{
    width: 280px;
    top: 75px;
    bottom: 0px;
    padding: 15px;
    background: #f5f5f5;
    border-right: 0.5px solid #282f40;
    position: fixed;
    overflow-y: auto;
}
.email-builder__block-item{
    display: flex;
    flex-direction: row;
    border: 1px dashed;
    border-radius: 5px;
    margin-bottom: 5px;
    padding: 5px;
    color: #282f40;
    cursor: pointer;
}
.email-builder__block-icon{
    width: 22px;
    height: 22px;
    margin-top: 15px;
    margin-right: 3px;
    margin-left: 3px;
}
.email-builder__block-icon img {
    width: 100%;
    height: 100%;
    object-fit: contain; 
    display: block;
}
.email-builder__block-info{
    padding: 5px 15px;
}
.email-builder__block-name{
    margin-top: 0px;
    margin-bottom: 5px;
}
.email-builder__block-description{
    margin-top: 0px;
    font-size: 15px;
    margin-bottom: 0px;
}
.email-builder__main{
    width: 900px;
    padding: 35px 25px;
    margin: 0 auto;
}
.email-builder__canvas {
    margin: 0 auto;
    transition: width 0.3s ease;
    border: 1px solid #ddd;
    background: #fff;
  }
.email-builder__canvas--desktop {
    width: 600px; 
  }
.email-builder__canvas--tablet {
    width: 480px;
}
.email-builder__canvas--mobile {
    width: 320px;
}
.email-builder__device-btn {
    padding: 8px 14px;
    border: 1px solid #ccc;
    background: #f9fafb;
    cursor: pointer;
    transition: all 0.2s ease;
    border-radius: 5px;
    width: 100px;
    font-size: 15px;
    font-weight: 550;
}
.email-builder__device-btn--active {
    background: #282f40;
    color: #f5f5f5;
    border-color: #282f40;
}
.email-builder__device-toggle{
    display: flex;
    justify-content: center;
    gap: 2px;
    margin-bottom: 5px;
}
.email-builder__properties{
    width: 280px;
    padding: 15px;
    background: #f5f5f5;
    border-left: 0.5px solid #282f40;
    position: fixed;
    right: 0px;
    top: 75px;
    overflow-y: auto;
    height: 90vh;
    display: flex;
    flex-direction: column;
}
.email-builder__property-group{
    display: flex;;
    flex-direction: column;
    gap: 10px;
    border-bottom: 0.5px solid #ccc;
    padding-bottom: 10px;
}
.email-builder__property-group-bgcolor{
    display: flex;;
    flex-direction: row;
    gap: 30px;
    border-bottom: 0.5px solid #ccc;
    padding-bottom: 10px;
    justify-content: space-between;
}
.email-builder__property-group-containerborder{
    display: flex;;
    flex-direction: row;
    gap: 30px;
    border-bottom: 0.5px solid #ccc;
    padding-bottom: 10px;
    justify-content: space-between;
}
.email-builder__property-group-buttonborder{
    display: flex;;
    flex-direction: row;
    gap: 30px;
    border-bottom: 0.5px solid #ccc;
    padding-bottom: 10px;
    justify-content: space-between;
}
.email-builder__property-group-lineheight{
    display: flex;;
    flex-direction: row;
    gap: 30px;
    border-bottom: 0.5px solid #ccc;
    padding-bottom: 10px;
    justify-content: space-between;
}
.email-builder__property-group-linecolor{
    display: flex;;
    flex-direction: row;
    gap: 30px;
    border-bottom: 0.5px solid #ccc;
    padding-bottom: 10px;
    justify-content: space-between;
}
.email-builder__property-group-twocolumngap{
    display: flex;;
    flex-direction: row;
    gap: 30px;
    border-bottom: 0.5px solid #ccc;
    padding-bottom: 10px;
    justify-content: space-between;
}
.email-builder__property-group-buttoncolor{
    display: flex;;
    flex-direction: row;
    border-bottom: 0.5px solid #ccc;
    padding-bottom: 10px;
    justify-content: space-between;
}
.email-builder__properties-form{
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.email-builder__property-label{
    font-weight: 550;
    display: flex;
    align-items: center;
}
.email-builder__email-block {
    position: relative;
    transition: box-shadow 0.2s ease;
}
.email-builder__email-block--dragging {
    transition: none;
}
.email-builder__email-block:hover .email-builder__control-btn--delete {
    display: inline-block;
}
.email-builder__email-block:hover{
    border: 1px dashed #282f40;
}
.email-template-builder-header{
    position: fixed;
    z-index: 1000;
}
#email-builder-root{
    padding-top: 75px;
}
.email-builder__toolbar{
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding-bottom: 10px;
}
.email-builder__columns-block{
    display: flex;
}
.email-builder__properties-title{
    margin: 10px 0px;
}
.email-builder__text-ribbon{
    display: flex;
    flex-direction: column;
    gap: 8px;
    align-items: center;
    flex-wrap: wrap;
    border-radius: 6px;
    padding: 10px;
}
.email-builder__ribbon-group {
    display: flex;
    gap: 4px;
    align-items: center;
}
.email-builder__ribbon-select {
    padding: 4px 8px;
    border: 1px solid #d1d5db;
    border-radius: 4px;
    background: #ffffff;
    font-size: 14px;
    color: #282f40;
    cursor: pointer;
    transition: border-color 0.2s ease;
    width: 110px;
}
.email-builder__ribbon-select:focus {
    outline: none;
    border-color: #282f40;
}
.email-builder__ribbon-btn {
    padding: 6px 10px;
    border: 1px solid #d1d5db;
    background: #ffffff;
    color: #282f40;
    border-radius: 4px;
    cursor: pointer;
    font-size: 14px;
    font-weight: 500;
    transition: all 0.2s ease;
    min-width: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.email-builder__ribbon-btn:hover {
    background: #f3f4f6;
    transform: translateY(-1px);
}
.email-builder__ribbon-btn.active {
    background: #282f40;
    color: #ffffff;
    border-color: #282f40;
}
.email-builder__ribbon-btn.enabled {
    background: #282f40;
    color: #ffffff;
    border-color: #282f40;
}
.email-builder__ribbon-color-picker {
    width: 32px;
    height: 32px;
    border: 1px solid #d1d5db;
    border-radius: 4px;
    cursor: pointer;
    overflow: hidden;
    background: none;
    padding: 3px;
}
.email-builder__ribbon-color-picker:hover {
    transform: translateY(-1px);
}
.email-builder__ribbon-placeholder {
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #6b7280;
    font-size: 14px;
    font-style: italic;
    background: #f8f9fa;
    border: 1px solid #e2e8f0;
    border-radius: 6px;
    margin-bottom: 10px;
}
.email-builder__ribbon-placeholder::after {
    content: "Select a text or header block to show formatting options";
}
.email-builder__properties-body {
    flex-grow: 1;
    padding-bottom: 30px;
    position: relative;
    overflow-y: auto; 
    height: calc(100vh - 100px);
}
.email-builder__property-group {
    display: flex;
    flex-direction: column;
    gap: 10px;
    border-bottom: 1px solid #e2e8f0;
    padding-bottom: 15px;
}
.email-builder__properties-form {
    display: flex;
    flex-direction: column;
    gap: 15px; 
}
.email-builder__email-block--selected {
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.2);
    transform: translateY(-2px);
}
.ProseMirror:focus {
    outline: 1px dashed currentColor;
}
.email-builder__ribbon-select {
    background-color: #fff;
    border: 1px solid #ddd;
    border-radius: 4px;
    padding: 4px 8px;
    font-size: 14px;
    cursor: pointer;
}
.email-builder__padding-control {
    position: relative;
    width: 240px;
    height: 155px;
    margin: 0px auto;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #c5dafd;

}
.padding-box-center {
    width: 120px;
    height: 70px;
    border: 1px dashed #ccc;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #aaa;
    font-size: 12px;
    background: #f5f5f5;
}
.padding-input {
    position: absolute;
    width: 45px;
    height: 28px;
    text-align: center;
    border: 1px solid #ddd;
    border-radius: 4px;
    background-color: #fff;
    font-size: 14px;
}
.padding-input::-webkit-outer-spin-button,
.padding-input::-webkit-inner-spin-button {
    -webkit-appearance: none; 
    margin: 0;
}
.padding-input.padding-top {
    top: 5px;
    left: 50%;
    transform: translateX(-50%);
}
.padding-input.padding-right {
    right: 5px;
    top: 50%;
    transform: translateY(-50%);
}
.padding-input.padding-bottom {
    bottom: 5px;
    left: 50%;
    transform: translateX(-50%);
}
.padding-input.padding-left {
    left: 5px;
    top: 50%;
    transform: translateY(-50%);
}
.email-builder__button-link .ProseMirror {
    color: inherit; 
}
.email-builder__btn-group {
    display: flex;
    width: 100%;
}
.email-builder__btn-group-item {
    flex: 1;
    padding: 8px 10px;
    border: 1px solid #ddd;
    background-color: #fff;
    cursor: pointer;
    text-align: center;
    transition: background-color 0.2s;
}
.email-builder__btn-group-item:first-child {
    border-radius: 4px 0 0 4px;
}

.email-builder__btn-group-item:last-child {
    border-radius: 0 4px 4px 0;
    border-left-width: 0;
}

.email-builder__btn-group-item:not(:first-child):not(:last-child) {
    border-left-width: 0;
}

.email-builder__btn-group-item.active {
    background-color: #282f40;
    color: white;
    border-color: #282f40;
}
.email-builder__input-group--2 {
    display: flex;
    gap: 10px;
}

.email-builder__input-group--2 input {
    width: 100%;
}

.email-builder__button-link .ProseMirror {
    padding: 0;
    margin: 0;
    background: transparent;
    color: inherit; 
}
.email-builder__button-link .ProseMirror p {
    margin: 0;
}
.email-builder__button-link .ProseMirror:focus {
    outline: none;
}
.email-builder__focus-tooltip {
    background-color: #333;
    color: #fff;
    padding: 8px 12px;
    border-radius: 4px;
    font-size: 12px;
    z-index: 1000;
    pointer-events: none; 
    white-space: nowrap;
    transition: opacity 0.15s ease-in-out, top 0.1s linear, left 0.1s linear;
    position: fixed;
    opacity: 0;
}
.email-builder__focus-tooltip::after {
    content: '';
    position: absolute;
    top: 100%; 
    left: var(--arrow-left, 50%); 
    transform: translateX(-50%);
    border-width: 5px;
    border-style: solid;
    border-color: #333 transparent transparent transparent;
}
.email-builder__modal-overlay {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.5);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1000;
}
.email-builder__modal-content {
    background: white;
    padding: 20px;
    border-radius: 8px;
    width: 400px;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);
}
.email-builder__modal-title {
    margin-top: 0;
    font-size: 18px;
    margin-bottom: 15px;
}
.email-builder__modal-input {
    width: 95%;
    padding: 8px;
    border: 1px solid #ccc;
    border-radius: 4px;
    margin-bottom: 15px;
    font-size: 16px;
}
.email-builder__modal-actions {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
}
.email-builder__modal-btn {
    padding: 8px 16px;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    font-weight: 550;
}
.email-builder__modal-btn--save {
    background-color: #282f40;
    color: white;
}
.email-builder__modal-btn--cancel {
    background-color: #e5e7eb;
}
.ProseMirror a {
    cursor: pointer;
}
.email-builder__label-row {
    display: flex;
    gap: 8px; 
}
.email-builder__property-hint {
    font-size: 13px;
    color: #6b7280;
    margin-top: 2px;
    text-align: center;
}
.email-builder__controls-actions{
    display: flex;
    flex-direction: row;
    gap: 3px;
}
.email-builder__sidebar-controls{
    display: flex;
    flex-direction: column;
    border-bottom: 1px solid #e2e8f0;
}
.email-builder__controls-actions .email-builder__control-btn{
    padding: 8px 14px;
    border: 0.5px solid #282f40;
    background: #f9fafb;
    cursor: pointer;
    transition: all 0.2s ease;
    border-radius: 5px;
    font-size: 15px;
    font-weight: 575;
}
.email-builder__control-btn--save{
    width: 100%;
}
.email-builder__status-message{
    margin-top: 10px;
    margin-bottom: 10px;
    font-style: italic;
    text-align: center;
    font-size: 12px;
}
.email-builder__autosave-control {
    display: flex;
    align-items: center;
    gap: 8px; 
}
.email-builder__autosave-label {
    font-size: 16px;
    color: #333;
    cursor: pointer; 
}
.email-builder__switch {
    position: relative;
    display: inline-block;
    width: 40px;  
    height: 20px; 
}
.email-builder__switch input {
    opacity: 0;
    width: 0;
    height: 0;
}
.email-builder__slider {
    position: absolute;
    cursor: pointer;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: #ccc; 
    border-radius: 20px; 
    transition: background-color 0.2s ease-in-out;
}
.email-builder__slider:before {
    position: absolute;
    content: "";
    height: 16px; 
    width: 16px;  
    left: 2px;   
    bottom: 2px;  
    background-color: white;
    border-radius: 50%; 
    transition: transform 0.2s ease-in-out;
}
.email-builder__switch input:checked + .email-builder__slider {
    background-color: #282f40; 
}
.email-builder__switch input:checked + .email-builder__slider:before {
    transform: translateX(20px); 
}
.email-builder__controls-status{
    display: flex;
    justify-content: space-between;
    margin: 6px;
    min-height: 35px;
}
.email-builder__block-action-btn {
    position: absolute;
    color: white;
    border-radius: 50%;
    width: 30px;
    height: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid white;
    box-shadow: 0 2px 5px rgba(0,0,0,0.2);
    cursor: pointer;
    z-index: 10;
}
.email-builder__block-action-btn--drag {
    right: -15px;
    top: 0%;               
    transform: translateY(0%);
    cursor: grab;
    background-color: #282f40;
    visibility: hidden;
    opacity: 0;
    transition: opacity 0.2s ease-in-out;
}
.email-builder__email-block.email-builder__email-block--selected .email-builder__block-action-btn--drag {
    visibility: visible;
    opacity: 1;
}
.email-builder__block-action-btn--drag:active {
    cursor: grabbing;
}
.email-builder__context-menu {
    position: fixed; 
    z-index: 1000;
    width: 180px;
    background-color: #ffffff;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    padding: 3px;
    font-family: Arial, sans-serif;
}
.email-builder__context-menu-list {
    list-style: none;
    margin: 0;
    padding: 0;
}
.email-builder__context-menu-item {
    padding: 8px 12px;
    font-size: 14px;
    font-family: inherit;
    font-weight: 550;
    color: #282f40;
    border-radius: 4px;
    cursor: pointer;
    transition: background-color 0.15s ease-in-out, color 0.15s ease-in-out;
}
.email-builder__context-menu-item:hover {
    background-color: #f3f4f6;
}
.email-builder__context-menu-item--delete:hover {
    background-color: #fee2e2;
    color: #661818;
}
.email-builder__email-name-and-subject{
    display: flex;
    flex-direction: column;
}
.email-builder__input--template-name,
.email-builder__input--subject{
    width: 96%;
    height: 20px;
    padding: 5px;
    border: 0.5px solid #282f40;
    border-radius: 5px;
    font-size: 15px;
    font-family: inherit;
    font-weight: 400;
    color: #282f40;
}
.email-templates-container {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
    gap: 10px;
    margin: 0 auto;
    margin-top: 20px;
    max-width: 160vh;
    width: 100%;
    margin-left: auto;
    margin-right: auto;
}
.email-templates-title{
    margin-bottom: 5px;
}
.email-template-item {
    display: block;
    padding: 15px;
    border: 1px solid #ddd;
    border-radius: 8px;
    background-color: #fff;
    text-decoration: none;
    color: inherit;
    box-shadow: 0 2px 4px rgba(0,0,0,0.05);
    position: relative;
    cursor: pointer;
    overflow: visible;
    height: 200px;
}
.email-template-item:hover {
    box-shadow: 0 4px 8px rgba(0,0,0,0.1);
}
.email-template-name {
    font-weight: bold;
    font-size: 1.1em;
    margin-bottom: 5px;
    padding-right: 30px; 
}
.email-template-subject {
    font-size: 0.9em;
    color: #555;
}
.email-builder__field {
    display: flex;
    flex-direction: column;
    margin-bottom: 12px; 
} 
.email-builder__label {
    margin-bottom: 4px; 
    font-size: 14px;
    font-weight: 500;
    color: #374151; 
}
.email-template-link-wrapper {
    display: block;
    text-decoration: none;
    color: inherit;
    height: 100px;
    overflow: hidden;
}
.template-menu-btn {
    position: absolute;
    top: 10px;
    right: 5px;
    background: none;
    border: none;
    cursor: pointer;
    padding: 5px;
    font-size: 20px;
    font-weight: bolder;
    line-height: 1;
    border-radius: 50%;
    width: 30px;
    height: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #888;
}
.template-menu-btn:hover {
    background-color: #f0f0f0;
    color: #333;
}
.template-context-menu {
    display: none; 
    position: absolute;
    z-index: 9999;
    top: 45px; 
    right: 15px;
    width: 180px;
    background-color: #ffffff;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    padding: 4px;
    font-family: Arial, sans-serif;
    min-width: 180px;
    max-width: 200px;
}
.template-context-menu.visible {
    display: block !important; 
    z-index: 9999;
    visibility: visible !important;
    opacity: 1 !important;
}

/* Ensure parent containers don't clip the context menus */
.email-template-item,
.email-templates-list,
.template-container {
    overflow: visible !important;
}
.template-context-menu-list {
    list-style: none;
    margin: 0;
    padding: 0;
}
.template-context-menu-item {
    padding: 8px 12px;
    font-size: 14px;
    font-weight: 500;
    color: #282f40;
    border-radius: 6px;
    cursor: pointer;
    transition: background-color 0.15s ease-in-out, color 0.15s ease-in-out;
}
.template-context-menu-item--delete:hover {
    background-color: #fee2e2; 
    color: #b91c1c; 
}
.email-builder__ribbon-icon {
    width: 18px;
    height: 18px;
    margin: 0px 5px;
    vertical-align: middle;
}
.email-builder__label-icon {
    width: 20px;
    height: 20px;
    margin: 0px 5px;
    vertical-align: middle;
}
.email-builder__ribbon-btn.active > img {
    filter: invert(1);
}
.email-builder__top-toolbar-container {
    min-width: 700px;
    padding: 8px 0;
    display: flex;
    justify-content: center;
    align-items: center;
    border-bottom: 1px solid #dfe1e6;
    background-color: #ffffff;
    z-index: 10;
    position: fixed;
    left: 50%;
    transform: translate(-50%, -50%);
    top: 120px;
    border-bottom-left-radius: 5px;
    border-bottom-right-radius: 5px;
}
.email-builder__ribbon-btn:disabled,
.email-builder__ribbon-select:disabled,
.email-builder__ribbon-color-picker:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}
.email-builder__ribbon-btn:disabled.active {
    background-color: transparent; 
}
.email-builder__ribbon-btn:disabled.active > img,
.email-builder__ribbon-btn:disabled.active > svg {
    filter: none;
}
.email-builder__text-ribbon-row{
    display: flex;
    flex-direction: row;
    gap: 10px;
}
.email-builder__ribbon-color-picker::-webkit-color-swatch-wrapper {
    padding: 0;
    border-radius: 3px; 
}
.email-builder__ribbon-color-picker::-webkit-color-swatch {
    border: none;
    border-radius: 3px; 
}
.email-builder__block-action-btn--drag svg {
    width: 18px; 
    height: 18px;
    filter: invert(1);
}
.email-builder__color-picker{
    width: 32px;
    height: 32px;
    border: 1px solid #d1d5db;
    border-radius: 4px;
    cursor: pointer;
    overflow: hidden;
    background: none;
    padding: 3px;
}
.email-builder__color-picker::-webkit-color-swatch-wrapper {
    padding: 0;
    border-radius: 3px; 
}
.email-builder__color-picker::-webkit-color-swatch {
    border: none;
    border-radius: 3px; 
}
.email-builder__color-input{
    gap: 5px;
    display: flex;
}
.email-builder__transparent-btn{
    width: 32px;
    height: 32px;
    border: 1px solid #d1d5db;
    border-radius: 4px;
    cursor: pointer;
    overflow: hidden;
    background: none;
    padding: 3px;
}
.email-builder__input-group--3{
    display: flex;
    gap: 5px;
}
.email-builder__input-group--3-input{
    text-align: center;
    width: 25px;
    font-size: 14px;
    font-weight: 550;
    height: 25px;
    border-radius: 5px;
    border: 1px solid #d1d5db;
    padding: 3px;
}
.email-builder__input-group--3-select{
    text-align: left;
    font-size: 14px;
    font-weight: 550;
    height: 33px;
    border-radius: 5px;
    border: 1px solid #d1d5db;
    padding: 3px;
}
.email-builder__divider-color-text{
    text-align: center;
    width: 75px;
    font-size: 14px;
    font-weight: 550;
    height: 25px;
    border-radius: 5px;
    border: 1px solid #d1d5db;
    padding: 3px;
}
.email-builder__button-color-text{
    text-align: center;
    width: 60px;
    font-size: 14px;
    font-weight: 550;
    height: 25px;
    border-radius: 5px;
    border: 1px solid #d1d5db;
    padding: 3px;
}
.email-builder__property-input-button-link{
    text-align: left;
    width: 90%;
    font-size: 14px;
    font-weight: 550;
    height: 25px;
    border-radius: 5px;
    border: 1px solid #d1d5db;
    padding: 3px 10px;
}
.email-builder__input-group--2-input{
    text-align: left;
    width: 90%;
    font-size: 14px;
    font-weight: 550;
    height: 25px;
    border-radius: 5px;
    border: 1px solid #d1d5db;
    padding: 3px 10px;
}
.email-builder__property-group-button-borderradius{
    text-align: left;
    width: 30px;
    font-size: 14px;
    font-weight: 550;
    height: 25px;
    border-radius: 5px;
    border: 1px solid #d1d5db;
    padding: 3px 10px;
}
.email-builder__button-dimensions-inline-label {
    display: flex;
    align-items: center;
    gap: 4px; 
    font-size: 14px;
}
.body-no-scroll {
    overflow: hidden;
}
.template-preview-modal__overlay {
    display: none;
    position: fixed;
    z-index: 2000;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(40, 47, 64, 0.7); /* Themed background */
    align-items: center;
    justify-content: center;
}
.template-preview-modal__content {
    background-color: #f5f5f5;
    padding: 20px;
    border-radius: 8px;
    width: 90%;
    max-width: 800px;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3);
    display: flex;
    flex-direction: column;
    max-height: 90vh;
}
.template-preview-modal__header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 30px;
}
.template-preview-modal__title {
    font-size: 1.25rem;
    font-weight: 600;
    color: #282f40;
    margin: 0;
}
.template-preview-modal__close-btn {
    color: #888;
    font-size: 28px;
    font-weight: bold;
    cursor: pointer;
}
.template-preview-modal__close-btn:hover {
    color: #282f40;
}
.template-preview-modal__tabs {
    display: flex;
    margin-bottom: 15px;
}
.template-preview-modal__tab {
    position: relative; 
    border: none;
    padding: 10px 15px;
    cursor: pointer;
    font-size: 16px;
    border-radius: 6px 6px 0 0;
    font-weight: 450;
    width: 50%;
    color: #282f40;
    font-family: 'Roboto';
    letter-spacing: 0.50px;
    background: none;
    border-bottom: 1px solid #ccc; 
    transition: color 0.25s ease-in-out, font-weight 0.25s ease-in-out;
}
.template-preview-modal__tab::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 50%;
    height: 3px;
    width: 0%;
    background-color: #282f40;
    transition: all 0.25s ease-in-out;
    transform: translateX(-50%);
    border-radius: 2px;
}
.template-preview-modal__tab--active {
    font-weight: 700;
    color: #282f40;
}
.template-preview-modal__tab--active::after {
    width: 100%; 
}
.template-preview-modal__pane {
    display: none;
    flex-grow: 1;
}
.template-preview-modal__pane--active {
    display: block;
}
.template-preview-modal__iframe {
    width: 100%;
    height: 60vh;
    border: none;
    background: transparent;
}
.email-template-actions {
    display: flex;
    padding-top: 5px;
    gap: 5px;
}
.preview-email-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    padding: 10px 15px;
    background-color: transparent;
    color: #282f40;
    border: 1px solid #e2e2e2;
    border-radius: 6px;
    font-family: inherit;
    font-size: 14px;
    font-weight: 600;
    text-align: center;
    text-decoration: none;
    cursor: pointer;
    transition: background-color 0.2s ease, transform 0.15s ease-out;
}
.preview-email-btn:hover {
    background-color: #282f40; 
    color: #e2e2e2;
}
.send-test-email-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    padding: 10px 15px;
    background-color: transparent;
    color: #282f40;
    border: 1px solid #e2e2e2;
    border-radius: 6px;
    font-family: inherit;
    font-size: 14px;
    font-weight: 600;
    text-align: center;
    text-decoration: none;
    cursor: pointer;
    transition: background-color 0.2s ease, transform 0.15s ease-out;
}
.send-test-email-btn:hover {
    background-color: #282f40; 
    color: #e2e2e2;
}
.template-attachments-btn{
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    padding: 10px 15px;
    background-color: transparent;
    color: #282f40;
    border: 1px solid #e2e2e2;
    border-radius: 6px;
    font-family: inherit;
    font-size: 14px;
    font-weight: 600;
    text-align: center;
    text-decoration: none;
    cursor: pointer;
    transition: background-color 0.2s ease, transform 0.15s ease-out;
}
.template-attachments-btn:hover {
    background-color: #282f40; 
    color: #e2e2e2;
}
.attachment-list {
    list-style-type: none;
    padding: 0;
    margin-top: 15px;
}
.attachment-list-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 12px;
    border-radius: 4px;
    background-color: white;
    border: 0.5px solid #e2e2e2;
    margin-bottom: 5px;
    font-size: 0.9em;
}
.attachment-list-item.new-file {
    background-color: #e3fcef; 
}
.delete-attachment-btn {
    background: none;
    border: none;
    color: #888;
    cursor: pointer;
    font-size: 1.2em;
    font-weight: bold;
    padding: 0 5px;
}
.delete-attachment-btn:hover {
    color: #661818;
}
.attachment-modal-cancel-btn{
    gap: 8px;
    padding: 10px 15px;
    background-color: white;
    color: #282f40;
    border: 1px solid #e2e2e2;
    border-radius: 6px;
    font-family: inherit;
    font-size: 15px;
    font-weight: 600;
    text-align: center;
    text-decoration: none;
    cursor: pointer;
    height: auto;
}
button.attachment-modal-save-btn{
    margin: 0px;
    padding: 10px 15px;
    font-size: 15px;
    font-weight: 600;
    background-color: #282f40;
    color: white;
    border: none;
    border-radius: 6px;
    cursor: pointer;
    transition: transform 0.15s ease-out, box-shadow 0.15s ease-out;
    height: auto;
}
.attachment-list-area{
    list-style-type: none;
    padding: 0;
    margin-top: 15px;
    height: 250px;
    overflow-y: auto;
}
.attachment-modal-footer{
    display: flex;
    height: 40px;
    gap: 10px;
    justify-content: end;
}
.leads-title-container {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 10px;
}
#add-lead-btn {
    padding: 8px 16px;
    font-size: 15px;
}
#add-lead-modal .form-group,
#edit-client-modal .form-group {
    margin-bottom: 15px;
}
#add-lead-modal label,
#edit-client-modal label {
    display: block;
    margin-bottom: 5px;
    font-weight: bold;
}
#add-lead-modal input[type="text"],
#add-lead-modal input[type="email"], 
#add-lead-modal input[type="url"],
#onboard-client-modal input[type="datetime-local"],
#onboard-client-modal select,
#edit-client-modal input[type="text"],
#edit-client-modal input[type="email"], 
#edit-client-modal input[type="url"],
#edit-client-modal input[type="datetime-local"],
#edit-client-modal select,
#edit-onboarding-form input[type="text"],
#edit-onboarding-form input[type="email"], 
#edit-onboarding-form input[type="url"],
#edit-onboarding-form input[type="datetime-local"],
#edit-onboarding-form select,
#edit-billing-form input[type="text"],
#edit-billing-form input[type="email"], 
#edit-billing-form input[type="url"],
#edit-billing-form input[type="datetime-local"],
#edit-billing-form select,
#setup-billing-form input[type="text"],
#setup-billing-form input[type="email"], 
#setup-billing-form input[type="url"],
#setup-billing-form input[type="datetime-local"],
#setup-billing-form select,
#edit-quote-form input[type="text"],
#edit-quote-form input[type="email"], 
#edit-quote-form input[type="url"],
#edit-quote-form input[type="datetime-local"],
#edit-quote-form select,
#setup-quote-form input[type="text"],
#setup-quote-form input[type="email"], 
#setup-quote-form input[type="url"],
#setup-quote-form input[type="datetime-local"],
#setup-quote-form select {
    width: 100%;
    padding: 8px;
    border: 1px solid #ccc;
    border-radius: 4px;
    box-sizing: border-box;
    font-family: 'Roboto';
    margin-top: 5px;
}
#add-lead-modal small,
#edit-client-modal small {
    display: block;
    margin-top: 5px;
    font-size: 12px;
    color: #666;
}
.error-message {
    color: #661818;
    font-weight: bold;
}
.main-section-header{
    max-width: 160vh; 
    width: 100%;
    margin-left: auto;
    margin-right: auto;
    display: flex;
    justify-content: space-between;
}
#google-one-tap-container {
    position: fixed;
    top: 10px;
    right: 10px;
    z-index: 9999; 
}
.leads-grid-container {
    max-width: 160vh;
    width: 100%;
    margin-left: auto;
    margin-right: auto;
    gap: 10px;
    display: flex;
    flex-direction: column;
    margin-top: 15px;
}
.lead-card {
    background: #ffffff;
    border: 1px solid #e0e0e0;
    border-radius: 8px;
    padding: 20px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.05);
    display: flex;
    flex-direction: column;
    gap: 20px;
    transition: transform 0.2s ease-in-out, box-shadow 0.2s ease-in-out;
    position: relative;
}
.lead-card:hover {
    box-shadow: 0 4px 12px rgba(0,0,0,0.1);
    z-index: 10;
}
.lead-card-groups {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 20px;
    flex-grow: 1;
    padding: 0px 25px;
}
.lead-info-group {
    flex: 1;
    min-width: 200px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.lead-info-group h4 {
    margin: 0 0 5px 0;
    font-size: 1rem;
    color: #282f40;
    border-bottom: 2px solid #f0f0f0;
    padding-bottom: 5px;
}
.lead-info-item {
    font-size: 15px;
    color: #555;
}
.lead-info-item strong {
    color: #333;
    margin-right: 8px;
}
.lead-info-item span {
    word-break: break-all;
}
.pagination-container {
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 2rem 0;
    gap: 8px;
}
.pagination-btn {
    padding: 8px 14px;
    border: 1px solid #ddd;
    background-color: #fff;
    color: #282f40;
    cursor: pointer;
    border-radius: 4px;
    transition: background-color 0.2s, color 0.2s;
}
.pagination-btn:hover {
    background-color: #f5f5f5;
}
.pagination-btn.active {
    background-color: #282f40;
    color: white;
    border-color: #282f40;
    cursor: default;
}
.pagination-btn:disabled {
    color: #aaa;
    cursor: not-allowed;
    background-color: #f9f9f9;
}
button:disabled {
    background-color: #cccccc; 
    color: #666666;         
    opacity: 0.7;             
    cursor: not-allowed;    
    box-shadow: none;       
    transform: none;       
}
.attachment-modal-save-btn:disabled {
    background-color: #a0a0a0;
    color: #e0e0e0;
}
.status-badge {
    display: inline-block;
    padding: 4px 12px;
    font-size: 0.8rem;
    font-weight: 600;
    border-radius: 5px;
    text-align: center;
    color: #fff;
}
.status-badge.status-sent {
    background-color: #28a745;
}
.status-badge.status-pending {
    background-color: #ffc107; 
    color: #212529; 
}
.status-badge.status-failed {
    background-color: #dc3545; 
}
.test-email-form{
    display: flex;
    flex-direction: column;
    gap: 30px;
    margin-bottom: 15px;
}
.lead-card {
    position: relative; 
}
.client-menu-btn {
    position: absolute;
    top: 10px;
    right: 10px;
}
.client-context-menu {
    right: 15px;
    top: 35px;
}
.template-context-menu-item.disabled {
    color: #999;
    cursor: not-allowed;
    background-color: #f5f5f5;
}
.template-context-menu-item:hover{
    background-color: #f5f5f5;
}
span[data-merge-tag="client-name"] {
    border: 1px solid #7c7c7c;
    border-radius: 3px;
    padding: 3px;
    background-color: rgba(200, 200, 200, 0.1); 
    outline: none;
}
.ProseMirror-selectednode[data-merge-tag="client-name"] {
    background-color: rgba(130, 180, 255, 0.4);
    border-style: solid;
}
.email-builder__ribbon-btn--merge-tag {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 6px 8px;
    font-size: 14px;
}
.email-builder__label-container {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 4px; 
}
.email-builder__subject-merge-btn {
    background-color: transparent;
    border: 1px solid #ccc;
    color: #555;
    padding: 2px 8px;
    font-size: 12px;
    font-weight: bold;
    border-radius: 4px;
    cursor: pointer;
    transition: all 0.2s ease;
}
.email-builder__subject-merge-btn:hover {
    background-color: #282f40;
    color: #ffffff;
    border: none;
}
.email-builder__merge-tag-tooltip {
    position: fixed;
    background-color: #333;
    color: #fff;
    padding: 6px 12px;
    border-radius: 5px;
    font-size: 14px;
    z-index: 10001; 
    pointer-events: none; 
    white-space: nowrap;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
}
.hero-container {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}
.hero-left {
    flex: 1;
    max-width: 35%;
    padding-right: 2rem;
}
.hero-right {
    flex: 1;
    max-width: 50%;
    min-height: 450px;
    perspective: 1000px; 
}
.product-showcase {
    width: 60%;
    max-width: 600px; 
    border-radius: 5px;
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);
    object-fit: cover;
    transition: opacity 0.5s ease-in-out; 
}
.product-gallery {
    position: relative;
    width: 100%;
    height: 450px; 
    display: flex;
    justify-content: center;
    align-items: center;
    --main-image-scale: 1.65;
    --main-image-position-x: -60%;
    --main-image-position-y: 0%;
    --side-image-scale: 1.65;
    --side-image-position-x: 15%; 
    --side-image-position-y: -10%; 
    --side-image-opacity: 0.4; 
}
.gallery-image {
    position: absolute; 
    height: 90%; 
    width: auto; 
    border-radius: 12px;
    box-shadow: 0 15px 30px rgba(0, 0, 0, 0.1);
    transition: transform 0.8s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.8s ease-in-out;
}
.gallery-image-main {
    transform: translate(var(--main-image-position-x), var(--main-image-position-y)) scale(var(--main-image-scale));
    opacity: 1;
    z-index: 10; 
}
.gallery-image-side {
    transform: translate(var(--side-image-position-x), var(--side-image-position-y)) scale(var(--side-image-scale));
    opacity: var(--side-image-opacity);
    z-index: 5; 
}
.gallery-image-hidden {
    transform: translate(var(--main-image-position-x), var(--main-image-position-y)) scale(calc(var(--main-image-scale) - 0.1));
    opacity: 0;
    z-index: 1; 
    pointer-events: none; 
}
.gallery-image.prev {
    transform: translateX(-55%) scale(0.8);
    opacity: 0.5;
    filter: blur(2px);
    z-index: 1;
}
.gallery-image.active {
    transform: translateX(0) scale(1);
    opacity: 1;
    filter: blur(0);
    z-index: 2; 
}
.gallery-image.next {
    transform: translateX(55%) scale(0.8);
    opacity: 0.5;
    filter: blur(2px);
    z-index: 1;
}
.gallery-image.hidden {
    transform: scale(0.5);
    opacity: 0;
    filter: blur(4px);
    z-index: 0;
}
.empty-state-placeholder {
    border: 2px dashed #d1d5db; 
    border-radius: 8px;
    padding: 30px 40px;
    text-align: center;
    background-color: #f9fafb; 
    margin: 20px auto;
    max-width: 600px;
}
.empty-state-title {
    font-size: 1.5rem;
    color: #1f2937; 
    margin-bottom: 12px;
}
.empty-state-text {
    font-size: 1rem;
    color: #4b5563; 
    line-height: 1.6;
    margin-bottom: 20px;
}
.empty-state-instruction {
    font-size: 1.1rem;
    color: #374151;
    margin-bottom: 15px;
}
.empty-state-instruction strong {
    font-weight: 600; 
}
.empty-state-sub-instruction {
    font-size: 0.9rem;
    color: #6b7280; 
}
#onboard-client-form{
    display: flex;
    flex-direction: column;
    gap: 20px;
    margin-bottom: 20px;    
}
.onboard-placeholder {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: 12px;
    border: 2px dashed #d1d5db;
    border-radius: 6px;
    background-color: #f9fafb;
    text-align: center;
    width: 85%;
    margin: 0 auto;
    min-height: 12vh;
}
.onboard-placeholder p {
    margin: 0; 
    color: #6b7280;
    font-size: 14px;
    line-height: 1.5;
    flex-grow: 1; 
    display: flex;
    align-items: center;
    justify-content: center;
}
.onboard-client-btn {
    width: 65%;
    padding: 10px 20px;
    font-size: 14px;
    flex-shrink: 0;
    margin: 0 auto;
    margin-top: 10px;
    background: #ffffff;
    color: #282f40;
    border: 0.5px solid #ccc;
}
.onboard-client-btn:hover {
    width: 65%;
    padding: 10px 20px;
    font-size: 14px;
    flex-shrink: 0;
    margin: 0 auto;
    margin-top: 10px;
    color: #ffffff;
    background: #282f40;
    border: 0.5px solid #ccc;
}
.setup-billing-btn {
    width: 65%;
    padding: 10px 20px;
    font-size: 14px;
    flex-shrink: 0;
    margin: 0 auto;
    margin-top: 10px;
    background: #ffffff;
    color: #282f40;
    border: 0.5px solid #ccc;
}
.setup-billing-btn:hover {
    width: 65%;
    padding: 10px 20px;
    font-size: 14px;
    flex-shrink: 0;
    margin: 0 auto;
    margin-top: 10px;
    color: #ffffff;
    background: #282f40;
    border: 0.5px solid #ccc;
}
.email-builder__invoice-row {
    position: relative;
}
.email-builder__invoice-row-btn--delete {
    position: absolute;
    right: -35px; 
    top: 50%;
    transform: translateY(-50%); 
    background: #661818;
    color: white;
    border: none;
    border-radius: 25%;
    width: 24px;
    height: 24px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    font-weight: bold;
    z-index: 10;
}
.email-builder__invoice-add-row-btn {
    display: block;
    margin: 10px auto 0;
    padding: 8px 16px;
    border: 1px solid #282f40;
    background-color: #fff;
    color: #282f40;
    cursor: pointer;
    border-radius: 4px;
    font-weight: bold;
    position: fixed;
    bottom: 20px;
    left: 20px;
}
.email-builder__invoice-add-row-btn:hover {
    color: #fff;
    background-color: #282f40;
}
.email-builder__invoice-table-block thead th .ProseMirror p,
.email-builder__invoice-table-block tbody td .ProseMirror p,
.email-builder__invoice-table-block tfoot td .ProseMirror p {
    margin: 0;
}
.email-builder__style-control{
    display: flex;
    flex-direction: row;
    justify-content: space-between;    
}
.email-builder__style-control span{
    padding-top: 5px;
}
.email-builder__property-group input[type="checkbox"]{
    accent-color: #282f40;
    width: 15px;
    height: 15px;
}
.email-builder__invoice-column-control input[type="text"]{
    width: 65%;
    height: 20px;
    padding: 5px;
    border: 0.5px solid #282f40;
    border-radius: 5px;
    font-size: 14px;
    font-family: inherit;
    font-weight: 400;
    color: #282f40;
}
.email-builder__invoice-column-control label{
    margin-right: 10px;
    margin-left: 5px;
}
.email-builder__invoice-select-input{
    text-align: left;
    font-size: 14px;
    font-weight: 550;
    height: 33px;
    border-radius: 5px;
    border: 1px solid #d1d5db;
    padding: 3px;
}
#edit-onboarding-form,
#edit-billing-form,
#setup-billing-form,
#edit-quote-form,
#setup-quote-form{
    display: flex;
    flex-direction: column;
    gap: 20px;
    margin-bottom: 15px;
}
.billing-type-selector {
    display: flex;
    margin-top: 8px;                 
    border: 1px solid #d1d5db;       
    border-radius: 5px;              
    overflow: hidden;                 
}
.billing-type-selector label {
    flex: 1;                          
    padding: 10px;
    text-align: center;
    font-size: 15px;
    font-weight: 500;              
    color: #282f40;               
    background-color: #f5f5f5;     
    cursor: pointer;
    transition: background-color 0.2s ease, color 0.2s ease; 
}
.billing-type-selector label:not(:last-child) {
    border-right: 1px solid #d1d5db;
}
.billing-type-selector label:hover {
    background-color: #e0e0e0;       
}
.billing-type-selector input[type="radio"] {
    display: none;
}
.billing-type-selector label:has(input[type="radio"]:checked) {
    background-color: #282f40;      
    color: #e2e2e2;                   
    border-color: #282f40;
    font-weight: 600;
}
#key-features {
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.key-features-title{
    font-size: 40px;
    margin-bottom: 10px;
    padding: 0px 5vw;
}
.key-features-subtitle{
    margin-top: 10px;
    font-size: 20px;
    font-weight: 550;
    padding: 0px 5vw;
}
.key-features-and-why {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 2rem;
    width: 100%;
    max-width: 1400px;
    margin-top: 2rem;
}

/* Left Column (Dynamic Text) */
.key-features-section {
    flex: 1 1 40%;
    max-width: 500px;
    position: relative; 
}

#dynamic-feature-text {
    position: relative;
    min-height: 250px; 
    width: 95%;
}
.feature-text-block {
    position: absolute;
    top: 0;
    left: 0;
    width: 90%;
    height: auto;
    background-color: #ffffff;
    border-radius: 12px;
    padding: 25px;
    box-shadow: 0 10px 30px rgba(40, 47, 64, 0.1);
    border: 1px solid #e5e5e5;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.6s ease-in-out, visibility 0.6s;
    transform: translateY(10px);
}
.feature-text-block.active {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    transition: opacity 0.6s ease-in-out, transform 0.6s ease-in-out;
}
.feature-card-text{
    font-size: 20px
}
.feature-card-title{
    font-size: 24px;
}
.feature-card-header img{
    height: 35px;
    width: 35px;
}
.feature-card-header h3{
    margin: 5px;
    margin-left: 15px;
}
.feature-card-header{
    display: flex;
    flex-direction: row;
}
.why-fyvia-container {
    flex: 1 1 60%;
}

.why-fyvia-visual {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 3rem;
    width: 100%;
}

#flow-slideshow-container {
    position: relative;
    height: 55vh;
    width: 50vw;
    perspective: 1200px;
    transform-style: preserve-3d;
}

.flow-slideshow-image {
    position: absolute;
    top: 0;
    left: 50%;
    width: 100%; /* Adjust size of main image */
    height: 100%;
    object-fit: fill;
    object-position: top center;
    border-radius: 12px;
    box-shadow: 0 15px 40px rgba(0, 0, 0, 0.2);
    transition: transform 1s cubic-bezier(0.25, 1, 0.5, 1), opacity 0.8s ease-out;
    transform: translateX(105%);
    opacity: 0;
}

.flow-slideshow-image.main {
    transform: translateX(-50%) scale(1);
    opacity: 1;
    z-index: 10;
    filter: blur(0);
}

.flow-slideshow-image.background-prev {
    transform: translateX(-100%) scale(0.8);
    opacity: 0.4;
    z-index: 5;
    filter: blur(3px);
}

.flow-slideshow-image.background-next {
    transform: translateX(0%) scale(0.8);
    opacity: 0.4;
    z-index: 5;
    filter: blur(3px);
}
.flow-step-wrapper {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 20px;
    width: 100%;
}
.flow-step {
    background: #f5f5f5;
    color: #282f40;
    padding: 15px 20px;
    border-radius: 10px;
    text-align: center;
    font-weight: 600;
    font-size: 1rem;
    box-shadow: 0 4px 10px rgba(0,0,0,0.1);
    width: 160px;
    transform: scale(1);
    transition: transform 0.5s ease-in-out, background-color 0.5s ease-in-out, color 0.5s ease-in-out, box-shadow 0.5s ease-in-out;
}
.flow-arrow {
    font-size: 2.5rem;
    color: #282f40;
    transform: scale(1);
    transition: transform 0.5s ease-in-out, color 0.5s ease-in-out;
}
.flow-step.highlighted {
    transform: scale(1.05);
    background: #282f40;
    color: #e2e2e2;
    box-shadow: 0 8px 25px rgba(40, 47, 64, 0.3);
}
.flow-arrow.highlighted {
    transform: scale(1.2);
}
.flow-slideshow-image.active {
    transform: translateX(-50%);
    opacity: 1;
    z-index: 10;
}
.flow-slideshow-image.previous {
    transform: translateX(-50%) scale(0.7) translateZ(-300px);
    opacity: 0;
    z-index: 5;
}

/* where the reminders start */

.notification-bell {
    position: relative;
    cursor: pointer;
    margin-right: 20px;
}
.notification-icon {
    width: 24px;
    height: 24px;
}
.notification-badge {
    position: absolute;
    top: -5px;
    right: -8px;
    background-color: #dc3545;
    color: white;
    border-radius: 50%;
    padding: 2px 6px;
    font-size: 11px;
    font-weight: bold;
    display: none;
}
.notification-badge.visible {
    display: block;
}
.notification-dropdown {
    display: none;
    position: absolute;
    top: 60px;
    right: 0;
    width: 350px;
    max-height: 400px;
    overflow-y: auto;
    background-color: #fff;
    border-radius: 8px;
    box-shadow: 0 5px 15px rgba(0,0,0,0.2);
    z-index: 2001; 
}
.notification-dropdown.visible {
    display: block;
}
.notification-header {
    padding: 15px;
    font-weight: bold;
    border-bottom: 1px solid #eee;
    font-size: 16px;
}
.notification-list {
    list-style: none;
    padding: 0;
    margin: 0;
}
.notification-item {
    padding: 15px;
    border-bottom: 1px solid #eee;
}
.notification-item p {
    margin: 0 0 10px 0;
    font-size: 14px;
    line-height: 1.4;
}
.notification-actions button {
    padding: 6px 12px;
    font-size: 13px;
    font-weight: 600;
    border-radius: 5px;
    cursor: pointer;
    border: 1px solid #ccc;
    background-color: #28a745;
    color: white;
}
.no-notifications {
    padding: 20px;
    text-align: center;
    color: #888;
    font-style: italic;
}
.payment-status-badge {
    display: inline-block;
    padding: 4px 12px;
    font-size: 13px;
    font-weight: 600;
    border-radius: 15px;
}
.payment-status-awaiting-payment {
    background-color: #ffc107;
    color: #212529;
}
.payment-status-paid {
    background-color: #28a745;
    color: #fff;
}
.payment-status-overdue {
    background-color: #dc3545;
    color: #fff;
}
#setup-billing-form .form-group-inline,
#edit-billing-form .form-group-inline {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 10px;
}
#setup-billing-form .form-group-inline label,
#edit-billing-form .form-group-inline label {
    margin-bottom: 0;
}
#setup-billing-form input[name="dueDays"],
#edit-billing-form input[name="dueDays"] {
    min-width: 10px;
    padding: 8px;
    width: 45px;
    text-align: center;
}
.setup-quote-btn {
    width: 65%;
    padding: 10px 20px;
    font-size: 14px;
    flex-shrink: 0;
    margin: 0 auto;
    margin-top: 10px;
    background: #ffffff;
    color: #282f40;
    border: 0.5px solid #ccc;
}
.setup-quote-btn:hover {
    width: 65%;
    padding: 10px 20px;
    font-size: 14px;
    flex-shrink: 0;
    margin: 0 auto;
    margin-top: 10px;
    color: #ffffff;
    background: #282f40;
    border: 0.5px solid #ccc;
}
.email-builder__quote-row {
    position: relative;
}

.email-builder__quote-row-btn--delete {
    position: absolute;
    right: -35px; 
    top: 50%;
    transform: translateY(-50%); 
    background: #661818;
    color: white;
    border: none;
    border-radius: 25%;
    width: 24px;
    height: 24px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    font-weight: bold;
    z-index: 10;
}

.email-builder__quote-add-row-btn {
    display: block;
    margin: 10px auto 0;
    padding: 8px 16px;
    border: 1px solid #282f40;
    background-color: #fff;
    color: #282f40;
    cursor: pointer;
    border-radius: 4px;
    font-weight: bold;
    position: fixed;
    bottom: 20px;
    left: 20px;
}

.email-builder__quote-add-row-btn:hover {
    color: #fff;
    background-color: #282f40;
}

.email-builder__quote-table-block thead th .ProseMirror p,
.email-builder__quote-table-block tbody td .ProseMirror p,
.email-builder__quote-table-block tfoot td .ProseMirror p {
    margin: 0;
}

.email-builder__quote-column-control input[type="text"]{
    width: 65%;
    height: 20px;
    padding: 5px;
    border: 0.5px solid #282f40;
    border-radius: 5px;
    font-size: 14px;
    font-family: inherit;
    font-weight: 400;
    color: #282f40;
}

.email-builder__quote-column-control label{
    margin-right: 10px;
    margin-left: 5px;
}

.email-builder__quote-select-input{
    text-align: left;
    font-size: 14px;
    font-weight: 550;
    height: 33px;
    border-radius: 5px;
    border: 1px solid #d1d5db;
    padding: 3px;
}
.lead-tracking-info {
    font-size: 0.85em;
    color: #555;
    margin-top: 8px;
    padding-top: 8px;
    border-top: 1px solid #e9e9e9;
    display: flex;
    align-items: center;
    gap: 8px;
}
.tracking-status {
    font-weight: bold;
    padding: 2px 8px;
    border-radius: 12px;
    color: #fff;
    font-size: 0.9em;
}
.tracking-status-sent { background-color: #777; }
.tracking-status-opened { background-color: #007bff; }
.tracking-status-clicked { background-color: #28a745; }
.tracking-details {
    color: #6c757d;
}
.invoice-builder-container {
    display: flex;
    height: 200vh;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    color: #374151;
    background-color: #f9fafb;
}

.invoice-builder__sidebar {
    width: 350px;
    flex-shrink: 0;
    background-color: #ffffff;
    border-right: 1px solid #e5e7eb;
    display: flex;
    flex-direction: column;
}

.invoice-builder__top-bar {
    padding: 1rem;
    border-bottom: 1px solid #e5e7eb;
    flex-shrink: 0;
}

.invoice-builder__email-info {
    margin-bottom: 1rem;
}

.invoice-builder__actions {
    display: flex;
    gap: 0.5rem;
}

.invoice-builder__tab-pane {
    flex-grow: 1;
    overflow-y: auto;
    padding: 1.5rem;
}

.invoice-builder__label {
    display: block;
    font-size: 0.875rem;
    font-weight: 500;
    margin-bottom: 0.25rem;
    color: #4b5563;
}

.invoice-builder__input {
    width: 100%;
    padding: 0.5rem;
    border: 1px solid #d1d5db;
    border-radius: 4px;
    font-size: 1rem;
    box-sizing: border-box;
}

.invoice-builder__input:focus {
    border-color: #282f40;
    outline: none;
    box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.4);
}

.invoice-builder__divider {
    border: none;
    border-top: 1px solid #e5e7eb;
    margin: 1.5rem 0;
}

.invoice-builder__radio-group {
    display: flex;
    gap: 1rem;
    margin-bottom: 1.5rem;
}

.invoice-builder__btn {
    padding: 0.5rem 1rem;
    border: none;
    border-radius: 4px;
    background-color: #ffffff;
    cursor: pointer;
    font-weight: 500;
}

.invoice-builder__btn--add {
    width: 100%;
    margin-top: 0.5rem;
    color: #ffffff;
    background-color: #282f40;
    font-family: inherit;
    font-weight: 500;
    font-size: 14px;
    border-radius: 5px;
}

.invoice-builder__btn--delete {
    background-color: #fee2e2;
    border-color: #fca5a5;
    color: #991b1b;
}

.invoice-builder__canvas-container {
    flex-grow: 1;
    overflow-y: auto;
    padding: 2.5rem;
    background-color: #f3f4f6;
}

.invoice-builder__canvas {
    color: #374151;
}

.invoice-builder__preview {
    max-width: 800px;
    margin: 0 auto;
    background-color: #ffffff;
    box-shadow: 0 4px 12px rgba(0,0,0,0.08);
    overflow: hidden;
}

.invoice-builder__header, .invoice-builder__customer-section, .invoice-builder__table-container,
.invoice-builder__summary-section, .invoice-builder__payment-section,
.invoice-builder__footer {
    padding: 1.5rem 2.5rem;
}

.invoice-builder__summary-section {
    width: 100%;
    transition: background-color 0.2s ease;
}

.invoice-builder__summary-section:hover {
    background-color: rgba(59, 130, 246, 0.05);
    border-radius: 0.5rem;
}

.invoice-builder__header {
    padding-top: 2.5rem;
}

.invoice-email-header-padding {
    padding: 2.5rem 2.5rem 1.5rem 2.5rem; 
}

.invoice-builder__header-company,
.invoice-builder__header-invoice {
    vertical-align: top; 
}

.invoice-builder__company-name { 
    font-size: 1.5rem; 
    margin: 0 0 0.5rem 0; 
    font-weight: bold; 
    color: #111827; 
}

.invoice-builder__company-info { 
    margin: 0; 
    color: #6b7280; 
    font-size: 0.9rem; 
}

.invoice-builder__company-logo { width: 60px; height: 60px; margin-right: 15px; object-fit: contain; }
.invoice-builder__header-invoice { text-align: right; flex-shrink: 0; min-width: 200px; }
.invoice-builder__invoice-title { font-size: 1.75rem; margin: 0; color: #111827; letter-spacing: 0.5px; font-weight: 700; }
.invoice-builder__invoice-info { margin: 0.25rem 0 0; }
.invoice-builder__invoice-info-label { color: #6b7280; font-weight: bold; }
.invoice-builder__customer-title { margin: 0 0 4px 0; font-weight: bold; }
.invoice-builder__customer-name { margin: 0; font-size: 1.1rem; font-weight: bold; }
.invoice-builder__customer-info { margin: 4px 0 0 0; color: #6b7280; }
.invoice-builder__table { width: 100%; border-collapse: collapse; color: #111827; }
.invoice-builder__table-head { background-color: #f9fafb; color: #374151; }
.invoice-builder__table-th { padding: 0.75rem; font-weight: bold; border-bottom: 1px solid #e5e7eb; }
.invoice-builder__table-th--left, .invoice-builder__table-td:first-child { text-align: left; }
.invoice-builder__table-th--right, .invoice-builder__table-td { text-align: right; vertical-align: top; }
.invoice-builder__table-row { border-bottom: 1px solid #e5e7eb; }
.invoice-builder__table-td { padding: 0.75rem; }
.invoice-builder__item-name { margin: 0; font-weight: bold; }
.invoice-builder__item-desc { margin: 4px 0 0 0; color: #6b7280; font-size: 0.8rem; }
.invoice-builder__summary-box { min-width: 285px; text-align: right; }
.invoice-builder__summary-label { color: #6b7280; }
.invoice-builder__summary-row--total { font-weight: bold; font-size: 1.25rem; color: #111827; border-top: 1px solid #e5e7eb; padding-top: 0.75rem; margin-top: 0.5rem; }
.invoice-builder__section-title { font-weight: bold; margin: 0 0 8px 0; }
.invoice-builder__payment-method { color: #6b7280; font-size: 0.85rem; margin-bottom: 10px; }
.invoice-builder__payment-type { color: #374151; }
.invoice-builder__payment-info { margin: 2px 0; }
.invoice-builder__payment-key { text-transform: capitalize; }
.invoice-builder__footer { background-color: #f9fafb; text-align: center; }
.invoice-builder__footer-info { margin: 4px 0; color: #6b7280; font-size: 0.75rem; }

.invoice-builder__summary-row {
    margin-bottom: 0.5rem;
}

.invoice-builder__summary-row td {
    padding: 3px 0;
    vertical-align: top;
}

.invoice-builder__summary-label {
    padding-left: 20px;
}

.invoice-builder__input.is-invalid {
    border-color: #ef4444;
}
.invoice-builder__input.is-invalid:focus {
    border-color: #ef4444;
    box-shadow: 0 0 0 2px rgba(239, 68, 68, 0.4);
}

.invoice-builder__error-message {
    color: #b91c1c;
    font-size: 0.75rem;
    margin: 0.25rem 0 0 0;
}

.invoice-builder__payment-editor-item {
    padding: 1rem;
    border: 1px solid #e5e7eb;
    border-radius: 4px;
    margin-bottom: 1rem;
    background-color: #f9fafb;
}

.invoice-builder__payment-editor-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 1rem;
}

.invoice-builder__payment-editor-title {
    font-size: 1rem;
    font-weight: 600;
}

.invoice-builder__payment-editor-item .invoice-builder__label {
    margin-top: 0.5rem;
}

.invoice-builder__add-payment-controls {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.5rem;
    margin-top: 1rem;
}

.invoice-builder__textarea {
    width: 100%;
    padding: 0.5rem;
    border: 1px solid #d1d5db;
    border-radius: 4px;
    font-size: 1rem;
    font-family: inherit;
    box-sizing: border-box;
    resize: vertical;
}

.invoice-builder__textarea:focus {
    border-color: #282f40;
    outline: none;
    box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.4);
}

.invoice-builder__bottom-section {
    width: 100%;
    padding: 1.5rem 2.5rem;
}

.invoice-builder__terms-section {
    flex-grow: 1;
}

.invoice-builder__terms-content {
    font-size: 0.75rem;
    color: #6b7280;
    white-space: pre-wrap;
    margin: 0;
}

.invoice-builder__signature-section {
    padding: 0;
    text-align: center;
    flex-shrink: 0;
}

.invoice-builder__signature-image { 
    width: 150px; 
    height: auto; 
    object-fit: contain; 
}

.invoice-builder__label--inline {
    flex-shrink: 0;
    font-size: 0.875rem;
    font-weight: 500;
    color: #4b5563;
    margin-bottom: 0;
    min-width: 80px;
}

.invoice-builder__input--small {
    width: 100px;
}

.invoice-builder__error-container {
    width: 100px;
    margin-right: 74px;
}

.invoice-builder__error-message {
    text-align: left;
}

.invoice-builder__section-selector {
    padding: 1rem 1.5rem;
    border-bottom: 1px solid #e5e7eb;
    background-color: #ffffff;
}

.invoice-builder__section-selector-label {
    display: block;
    font-size: 0.875rem;
    font-weight: 500;
    margin-bottom: 0.25rem;
    color: #4b5563;
}

.invoice-builder__section-select {
    width: 100%;
    padding: 0.65rem 1rem;
    font-size: 1rem;
    font-weight: 500;
    border: 1px solid #d1d5db;
    border-radius: 4px;
    background-color: #ffffff;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");
    background-position: right 0.5rem center;
    background-repeat: no-repeat;
    background-size: 1.5em 1.5em;
    cursor: pointer;
}

.invoice-builder__section-select:focus {
    border-color: #282f40;
    outline: none;
    box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.4);
}
.invoice-builder__product-card {
    position: relative;
    padding: 1rem;
    margin-bottom: 1.5rem;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    background-color: #f9fafb;
}
.invoice-builder__product-form-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.75rem;
}
.invoice-builder__form-group--span-2 {
    grid-column: span 2;
}
.invoice-builder__btn-delete-icon {
    position: absolute;
    top: 0rem;
    right: 0.25rem;
    border: none;
    background: transparent;
    font-size: 1.5rem;
    line-height: 1;
    color: #9ca3af;
    cursor: pointer;
    padding: 0.25rem;
    transition: color 0.2s ease-in-out;
}
.invoice-builder__btn-delete-icon:hover {
    color: #ef4444; 
}
.invoice-builder__label {
    display: block;
    font-size: 0.875rem;
    font-weight: 500;
    margin-bottom: 0.25rem;
    color: #4b5563;
}
.invoice-builder__error-message {
    text-align: left;
    margin-top: 0.25rem;
}
.invoice-builder__cost-item {
    display: flex;
    align-items: end;
    gap: 1rem;
    margin-bottom: 1rem;
    border-bottom: 1px solid #e5e7eb;
    padding-bottom: 20px;
}

.invoice-builder__cost-item .invoice-builder__form-group--full {
    flex-grow: 1;
}
.invoice-builder__btn-remove-field {
    background-color: #fee2e2;
    border-color: #fca5a5;
    color: #991b1b;
}

.invoice-builder__add-costs-container {
    display: flex;
    justify-content: center;
    gap: 1rem;
    margin-top: 1rem;
}
.invoice-builder__btn-add-field {
    border: 1px dashed #d1d5db;
    background-color: transparent;
    color: #6b7280;
    padding: 0.5rem 1rem;
    border-radius: 4px;
    cursor: pointer;
    font-weight: 500;
}
.invoice-builder__btn-add-field:hover {
    background-color: #f9fafb;
    border-color: #9ca3af;
    color: #374151;
}
.invoice-builder__cost-item--tax {
    flex-direction: column;
    align-items: stretch;
}

.invoice-builder__tax-switch-container {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 0.5rem;
}

.invoice-builder__tax-switch {
    display: inline-flex;
    border-radius: 5px;
    overflow: hidden;
}

.invoice-builder__tax-switch-btn {
    border: none;
    padding: 0.5rem 1rem;
    color: #6b7280;
    cursor: pointer;
    font-weight: 550;
    transition: background-color 0.2s, color 0.2s;
    background: #f3f4f6;
}

.invoice-builder__tax-switch-btn.active {
    background-color: #282f40;
    color: #ffffff;
}

.invoice-builder__tax-switch-btn:not(:last-child) {
    border-right: 1px solid #d1d5db;
}

.invoice-builder__cost-item--tax .invoice-builder__btn-remove-field {
    margin-top: 0;
}
.invoice-builder__tax-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 8px; 
}
.invoice-builder__tax-input-row {
    display: flex;
    align-items: flex-start;
    gap: 8px; 
    align-items: center;
}
.invoice-builder__tax-input-row .invoice-builder__form-group--full {
    flex-grow: 1;
}
.invoice-builder__tax-input-row .invoice-builder__btn-remove-field {
    margin-top: 0; 
}
.invoice-builder__controls-row {
    display: flex;
    align-items: flex-end; 
    gap: 16px; 
    margin-bottom: 20px; 
}
.invoice-builder__controls-row .invoice-builder__form-group {
    margin: 0;
}
.invoice-builder__type-switch {
    display: flex;
    border-radius: 5px;
    overflow: hidden;
}
.invoice-builder__type-switch-btn {
    background-color: #f8f9fa;
    border: none;
    padding: 8px 16px;
    cursor: pointer;
    color: #555;
    transition: background-color 0.2s;
    font-weight: 550;
}  
.invoice-builder__type-switch-btn:not(:last-child) {
    border-right: 1px solid #ccc;
}
.invoice-builder__type-switch-btn.active {
    background-color: #282f40;
    color: white;
    font-weight: bold;
}
.invoice-builder__type-switch-btn:hover:not(.active) {
    background-color: #e9ecef;
}
.invoice-builder__controls-row .invoice-builder__section-select {
    width: auto;
    min-width: 120px;
    padding: 8px;
    font-size: 14px;
}
.invoice-builder__signature-image {
    max-height: 60px; 
    max-width: 180px; 
}
.invoice-builder__signature-section .invoice-builder__signature-label {
    margin-top: 12px;
    padding-top: 8px;
    border-top: 1px solid #a0a0a0; 
    font-weight: bold;
    font-size: 14px;
    color: #333;
    width: 100%;
    text-align: center;
    border-top: 1px solid #ccc;
}

.invoice-builder__customer-details,
.invoice-builder__invoice-details{
    display: flex;
    flex-direction: column;
    gap: 5px;
}
.invoice-builder__invoice-details input[type="date"]{
    font-family: inherit;
}
[contentEditable="true"] {
    cursor: text;
    padding: 2px 4px; 
    border-radius: 3px;
    border: none; 
    transition: box-shadow 0.2s ease-in-out, 
                background-color 0.2s ease-in-out;
}
[contentEditable="true"]:hover {
    background-color: #f0f8ff;
}
[contentEditable="true"]:focus {
    background-color: #ffffff;
    outline: none; 
    box-shadow: 0 0 0 1px #282f40; 
}
.invoice-builder__file-input-wrapper {
    position: relative;
    width: 100%;
    margin-top: 4px; 
    margin-bottom: 16px; 
}
.invoice-builder__file-input-label {
    display: block; 
    padding: 10px 15px;
    background-color: #f8f9fa;
    border: 1px dashed #ced4da; 
    border-radius: 4px;
    color: #495057;
    font-weight: 500;
    text-align: center;
    cursor: pointer;
    transition: background-color 0.2s, border-color 0.2s;
}
.invoice-builder__file-input-label:hover {
    background-color: #e9ecef;
    border-color: #adb5bd;
}
.invoice-builder__input--file {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0; 
    cursor: pointer; 
}
.invoice-builder__file-display {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 15px;
    background-color: #e9ecef; 
    border: 1px solid #ced4da;
    border-radius: 4px;
}
.invoice-builder__file-name {
    font-size: 14px;
    color: #333;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    padding-right: 10px;
}
.invoice-builder__btn-remove-file {
    background: none;
    border: none;
    font-size: 20px;
    font-weight: bold;
    color: #6c757d;
    cursor: pointer;
    line-height: 1;
    padding: 0 4px;
    transition: color 0.2s;
}
.invoice-builder__btn-remove-file:hover {
    color: #dc3545; 
}
.invoice-builder__item-name,
.invoice-builder__item-desc{
    text-align: left;
}
.invoice-builder__sidebar-controls {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 1rem;
    border-bottom: 1px solid #e5e7eb;
}

.invoice-builder__email-name-and-subject {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.invoice-builder__field {
    display: flex;
    flex-direction: column;
}

.invoice-builder__label {
    display: block;
    font-size: 0.875rem;
    font-weight: 500;
    margin-bottom: 0.25rem;
    color: #4b5563;
}

.invoice-builder__input {
    width: 100%;
    padding: 0.5rem;
    border: 1px solid #d1d5db;
    border-radius: 4px;
    font-size: 1rem;
    box-sizing: border-box;
}

.invoice-builder__controls-actions {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: nowrap;
}

.invoice-builder__control-btn {
    padding: 8px 14px;
    border: 1px solid #d1d5db;
    background: #f9fafb;
    cursor: pointer;
    transition: all 0.2s ease;
    border-radius: 5px;
    font-size: 15px;
    font-weight: 500;
    flex-grow: 1; 
}

.invoice-builder__undo-redo-controls {
    display: flex;
    gap: 8px;
    margin-bottom: 12px;
}

.invoice-builder__control-btn--undo,
.invoice-builder__control-btn--redo {
    flex: 1;
    background-color: #f8f9fa;
    color: #495057;
    border-color: #dee2e6;
    font-size: 13px;
    padding: 6px 12px;
}

.invoice-builder__control-btn--undo:disabled,
.invoice-builder__control-btn--redo:disabled {
    opacity: 0.5;
    cursor: not-allowed;
    transform: none;
    box-shadow: none;
}

.invoice-builder__controls-status {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 6px;
    min-height: 35px;
}

.invoice-builder__autosave-control {
    display: flex;
    align-items: center;
    gap: 8px;
}

.invoice-builder__autosave-label {
    font-size: 15px;
    font-weight: 500;
    color: #374151;
    cursor: pointer;
    margin-bottom: 0;
}

.invoice-builder__status-message {
    margin: 0;
    font-style: italic;
    font-size: 13px;
    color: #6b7280;
}

/* Toggle Switch Styles */
.invoice-builder__switch {
    position: relative;
    display: inline-block;
    width: 40px;
    height: 20px;
}

.invoice-builder__switch input {
    opacity: 0;
    width: 0;
    height: 0;
}

.invoice-builder__slider {
    position: absolute;
    cursor: pointer;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: #ccc;
    border-radius: 20px;
    transition: background-color 0.2s ease-in-out;
}

.invoice-builder__slider:before {
    position: absolute;
    content: "";
    height: 16px;
    width: 16px;
    left: 2px;
    bottom: 2px;
    background-color: white;
    border-radius: 50%;
    transition: transform 0.2s ease-in-out;
}

.invoice-builder__switch input:checked + .invoice-builder__slider {
    background-color: #282f40;
}

.invoice-builder__switch input:checked + .invoice-builder__slider:before {
    transform: translateX(20px);
}

/* PDF Controls Styling */
.invoice-builder__pdf-controls {
    display: flex;
    align-items: center;
    gap: 8px;
}

.invoice-builder__page-size-select {
    padding: 8px 12px;
    border: 1px solid #ddd;
    border-radius: 4px;
    background-color: #fff;
    font-size: 14px;
    color: #333;
    cursor: pointer;
    min-width: 125px;
    transition: border-color 0.2s ease;
}

.invoice-builder__page-size-select:hover {
    border-color: #282f40;
}

.invoice-builder__page-size-select:focus {
    outline: none;
    border-color: #282f40;
    box-shadow: 0 0 0 2px rgba(0, 123, 255, 0.25);
}

/* Button Styling for Controls Actions */
.invoice-builder__controls-actions {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: nowrap;
}

.invoice-builder__control-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 8px;
    border: 1px solid #e0e0e0;
    border-radius: 6px;
    background-color: #f8f9fa;
    color: #495057;
    cursor: pointer;
    transition: all 0.2s ease;
    width: 36px;
    height: 36px;
    flex-shrink: 0;
}

.invoice-builder__control-btn:active {
    transform: translateY(0);
    background-color: #dee2e6;
}

.invoice-builder__control-btn:disabled {
    opacity: 0.6;
    cursor: not-allowed;
    transform: none;
}

.invoice-builder__control-btn:disabled:hover {
    background-color: #f8f9fa;
    border-color: #e0e0e0;
    transform: none;
}

.invoice-builder__btn-icon {
    width: 18px;
    height: 18px;
    flex-shrink: 0;
}

.invoice-builder__control-btn--redo .invoice-builder__btn-icon {
    transform: scaleX(-1);
}

.invoice-builder__company-details .invoice-builder__label{
    margin-top: 8px;
    font-family: inherit;
}

.quote-builder__sidebar {
    width: 350px;
    flex-shrink: 0;
    background-color: #ffffff;
    border-right: 1px solid #e5e7eb;
    display: flex;
    flex-direction: column;
}

.quote-builder__top-bar {
    padding: 1rem;
    border-bottom: 1px solid #e5e7eb;
    flex-shrink: 0;
}

.quote-builder__email-info {
    margin-bottom: 1rem;
}

.quote-builder__actions {
    display: flex;
    gap: 0.5rem;
}

.quote-builder__tab-pane {
    flex-grow: 1;
    overflow-y: auto;
    padding: 1.5rem;
}

.quote-builder__label {
    display: block;
    font-size: 0.875rem;
    font-weight: 500;
    margin-bottom: 0.25rem;
    color: #4b5563;
}

.quote-builder__input {
    width: 100%;
    padding: 0.5rem;
    border: 1px solid #d1d5db;
    border-radius: 4px;
    font-size: 1rem;
    box-sizing: border-box;
    font-family: inherit;
}

.quote-builder__input:focus {
    border-color: #282f40;
    outline: none;
    box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.4);
}

.quote-builder__divider {
    border: none;
    border-top: 1px solid #e5e7eb;
    margin: 1.5rem 0;
}

.quote-builder__radio-group {
    display: flex;
    gap: 1rem;
    margin-bottom: 1.5rem;
}

.quote-builder__btn {
    padding: 0.5rem 1rem;
    border: none;
    border-radius: 4px;
    background-color: #ffffff;
    cursor: pointer;
    font-weight: 500;
}

.quote-builder__btn--add {
    width: 100%;
    margin-top: 0.5rem;
    color: #ffffff;
    background-color: #282f40;
    font-family: inherit;
    font-weight: 500;
    font-size: 14px;
    border-radius: 5px;
}

.quote-builder__btn--delete {
    background-color: #fee2e2;
    border-color: #fca5a5;
    color: #991b1b;
}

.quote-builder__canvas-container {
    flex-grow: 1;
    overflow-y: auto;
    padding: 2.5rem;
    background-color: #f3f4f6;
}

.quote-builder__canvas {
    color: #374151;
}

.quote-builder__preview {
    max-width: 800px;
    margin: 0 auto;
    background-color: #ffffff;
    box-shadow: 0 4px 12px rgba(0,0,0,0.08);
    overflow: hidden;
}

.quote-builder__header, .quote-builder__customer-section, .quote-builder__table-container,
.quote-builder__summary-section, .quote-builder__payment-section,
.quote-builder__footer {
    padding: 1.5rem 2.5rem;
}

.quote-builder__summary-section {
    width: 100%;
    transition: background-color 0.2s ease;
}

.quote-builder__summary-section:hover {
    background-color: rgba(59, 130, 246, 0.05);
    border-radius: 0.5rem;
}

.quote-builder__header {
    padding-top: 2.5rem;
}

.invoice-email-header-padding {
    padding: 2.5rem 2.5rem 1.5rem 2.5rem; 
}

.quote-builder__header-company,
.quote-builder__header-invoice {
    vertical-align: top; 
}

.quote-builder__company-name { 
    font-size: 1.5rem; 
    margin: 0 0 0.5rem 0; 
    font-weight: bold; 
    color: #111827; 
}

.quote-builder__company-info { 
    margin: 0; 
    color: #6b7280; 
    font-size: 0.9rem; 
}

.quote-builder__company-logo { width: 60px; height: 60px; margin-right: 15px; object-fit: contain; }
.quote-builder__header-invoice { text-align: right; flex-shrink: 0; min-width: 200px; }
.quote-builder__invoice-title { font-size: 1.75rem; margin: 0; color: #111827; letter-spacing: 0.5px; font-weight: 700; }
.quote-builder__invoice-info { margin: 0.25rem 0 0; }
.quote-builder__invoice-info-label { color: #6b7280; font-weight: bold; }
.quote-builder__quote-info-label{ color: #6b7280; font-weight: bold; }
.quote-builder__customer-title { margin: 0 0 4px 0; font-weight: bold; }
.quote-builder__customer-name { margin: 0; font-size: 1.1rem; font-weight: bold; }
.quote-builder__customer-info { margin: 4px 0 0 0; color: #6b7280; }
.quote-builder__table { width: 100%; border-collapse: collapse; color: #111827; }
.quote-builder__table-head { background-color: #f9fafb; color: #374151; }
.quote-builder__table-th { padding: 0.75rem; font-weight: bold; border-bottom: 1px solid #e5e7eb; }
.quote-builder__table-th--left, .quote-builder__table-td:first-child { text-align: left; }
.quote-builder__table-th--right, .quote-builder__table-td { text-align: right; vertical-align: top; }
.quote-builder__table-row { border-bottom: 1px solid #e5e7eb; }
.quote-builder__table-td { padding: 0.75rem; }
.quote-builder__item-name { margin: 0; font-weight: bold; }
.quote-builder__item-desc { margin: 4px 0 0 0; color: #6b7280; font-size: 0.8rem; }
.quote-builder__summary-box { min-width: 285px; text-align: right; }
.quote-builder__summary-label { color: #6b7280; }
.quote-builder__summary-row--total { font-weight: bold; font-size: 1.25rem; color: #111827; border-top: 1px solid #e5e7eb; padding-top: 0.75rem; margin-top: 0.5rem; }
.quote-builder__section-title { font-weight: bold; margin: 0 0 8px 0; }
.quote-builder__payment-method { color: #6b7280; font-size: 0.85rem; margin-bottom: 10px; }
.quote-builder__payment-type { color: #374151; }
.quote-builder__payment-info { margin: 2px 0; }
.quote-builder__payment-key { text-transform: capitalize; }
.quote-builder__footer { background-color: #f9fafb; text-align: center; }
.quote-builder__footer-info { margin: 4px 0; color: #6b7280; font-size: 0.75rem; }

.quote-builder__summary-row {
    margin-bottom: 0.5rem;
}

.quote-builder__summary-row td {
    padding: 3px 0;
    vertical-align: top;
}

.quote-builder__summary-label {
    padding-left: 20px;
}

.quote-builder__input.is-invalid {
    border-color: #ef4444;
}
.quote-builder__input.is-invalid:focus {
    border-color: #ef4444;
    box-shadow: 0 0 0 2px rgba(239, 68, 68, 0.4);
}

.quote-builder__error-message {
    color: #b91c1c;
    font-size: 0.75rem;
    margin: 0.25rem 0 0 0;
}

.quote-builder__payment-editor-item {
    padding: 1rem;
    border: 1px solid #e5e7eb;
    border-radius: 4px;
    margin-bottom: 1rem;
    background-color: #f9fafb;
}

.quote-builder__payment-editor-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 1rem;
}

.quote-builder__payment-editor-title {
    font-size: 1rem;
    font-weight: 600;
}

.quote-builder__payment-editor-item .quote-builder__label {
    margin-top: 0.5rem;
}

.quote-builder__add-payment-controls {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.5rem;
    margin-top: 1rem;
}

.quote-builder__textarea {
    width: 100%;
    padding: 0.5rem;
    border: 1px solid #d1d5db;
    border-radius: 4px;
    font-size: 1rem;
    font-family: inherit;
    box-sizing: border-box;
    resize: vertical;
    min-height: 200px;
}

.quote-builder__textarea:focus {
    border-color: #282f40;
    outline: none;
    box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.4);
}

.quote-builder__bottom-section {
    width: 100%;
    padding: 1.5rem 2.5rem;
}

.quote-builder__terms-section {
    flex-grow: 1;
    padding: 1.5rem 2.5rem;
}

.quote-builder__terms-content {
    font-size: 0.75rem;
    color: #6b7280;
    white-space: pre-wrap;
    margin: 0;
}

.quote-builder__signature-section {
    padding: 0;
    text-align: center;
    flex-shrink: 0;
}

.quote-builder__signature-image { 
    width: 150px; 
    height: auto; 
    object-fit: contain; 
}

.quote-builder__label--inline {
    flex-shrink: 0;
    font-size: 0.875rem;
    font-weight: 500;
    color: #4b5563;
    margin-bottom: 0;
    min-width: 80px;
}

.quote-builder__input--small {
    width: 100px;
}

.quote-builder__error-container {
    width: 100px;
    margin-right: 74px;
}

.quote-builder__error-message {
    text-align: left;
}

.quote-builder__section-selector {
    padding: 1rem 1.5rem;
    border-bottom: 1px solid #e5e7eb;
    background-color: #ffffff;
}

.quote-builder__section-selector-label {
    display: block;
    font-size: 0.875rem;
    font-weight: 500;
    margin-bottom: 0.25rem;
    color: #4b5563;
}

.quote-builder__section-select {
    width: 100%;
    padding: 0.65rem 1rem;
    font-size: 1rem;
    font-weight: 500;
    border: 1px solid #d1d5db;
    border-radius: 4px;
    background-color: #ffffff;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");
    background-position: right 0.5rem center;
    background-repeat: no-repeat;
    background-size: 1.5em 1.5em;
    cursor: pointer;
}

.quote-builder__section-select:focus {
    border-color: #282f40;
    outline: none;
    box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.4);
}
.quote-builder__product-card {
    position: relative;
    padding: 1rem;
    margin-bottom: 1.5rem;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    background-color: #f9fafb;
}
.quote-builder__product-form-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.75rem;
}
.quote-builder__form-group--span-2 {
    grid-column: span 2;
}
.quote-builder__btn-delete-icon {
    position: absolute;
    top: 0rem;
    right: 0.25rem;
    border: none;
    background: transparent;
    font-size: 1.5rem;
    line-height: 1;
    color: #9ca3af;
    cursor: pointer;
    padding: 0.25rem;
    transition: color 0.2s ease-in-out;
}
.quote-builder__btn-delete-icon:hover {
    color: #ef4444; 
}
.quote-builder__label {
    display: block;
    font-size: 0.875rem;
    font-weight: 500;
    margin-bottom: 0.25rem;
    color: #4b5563;
}
.quote-builder__error-message {
    text-align: left;
    margin-top: 0.25rem;
}
.quote-builder__cost-item {
    display: flex;
    align-items: end;
    gap: 1rem;
    margin-bottom: 1rem;
    border-bottom: 1px solid #e5e7eb;
    padding-bottom: 20px;
}

.quote-builder__cost-item .quote-builder__form-group--full {
    flex-grow: 1;
}
.quote-builder__btn-remove-field {
    background-color: #fee2e2;
    border-color: #fca5a5;
    color: #991b1b;
}

.quote-builder__add-costs-container {
    display: flex;
    justify-content: center;
    gap: 1rem;
    margin-top: 1rem;
}
.quote-builder__btn-add-field {
    border: 1px dashed #d1d5db;
    background-color: transparent;
    color: #6b7280;
    padding: 0.5rem 1rem;
    border-radius: 4px;
    cursor: pointer;
    font-weight: 500;
}
.quote-builder__btn-add-field:hover {
    background-color: #f9fafb;
    border-color: #9ca3af;
    color: #374151;
}
.quote-builder__cost-item--tax {
    flex-direction: column;
    align-items: stretch;
}

.quote-builder__tax-switch-container {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 0.5rem;
}

.quote-builder__tax-switch {
    display: inline-flex;
    border-radius: 5px;
    overflow: hidden;
}

.quote-builder__tax-switch-btn {
    border: none;
    padding: 0.5rem 1rem;
    color: #6b7280;
    cursor: pointer;
    font-weight: 550;
    transition: background-color 0.2s, color 0.2s;
    background: #f3f4f6;
}

.quote-builder__tax-switch-btn.active {
    background-color: #282f40;
    color: #ffffff;
}

.quote-builder__tax-switch-btn:not(:last-child) {
    border-right: 1px solid #d1d5db;
}

.quote-builder__cost-item--tax .quote-builder__btn-remove-field {
    margin-top: 0;
}
.quote-builder__tax-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 8px; 
}
.quote-builder__tax-input-row {
    display: flex;
    align-items: flex-start;
    gap: 8px; 
    align-items: center;
}
.quote-builder__tax-input-row .quote-builder__form-group--full {
    flex-grow: 1;
}
.quote-builder__tax-input-row .quote-builder__btn-remove-field {
    margin-top: 0; 
}
.quote-builder__controls-row {
    display: flex;
    align-items: flex-end; 
    gap: 16px; 
    margin-bottom: 20px; 
}
.quote-builder__controls-row .quote-builder__form-group {
    margin: 0;
}
.quote-builder__type-switch {
    display: flex;
    border-radius: 5px;
    overflow: hidden;
}
.quote-builder__type-switch-btn {
    background-color: #f8f9fa;
    border: none;
    padding: 8px 16px;
    cursor: pointer;
    color: #555;
    transition: background-color 0.2s;
    font-weight: 550;
}  
.quote-builder__type-switch-btn:not(:last-child) {
    border-right: 1px solid #ccc;
}
.quote-builder__type-switch-btn.active {
    background-color: #282f40;
    color: white;
    font-weight: bold;
}
.quote-builder__type-switch-btn:hover:not(.active) {
    background-color: #e9ecef;
}
.quote-builder__controls-row .quote-builder__section-select {
    width: auto;
    min-width: 120px;
    padding: 8px;
    font-size: 14px;
}
.quote-builder__signature-image {
    max-height: 60px; 
    max-width: 180px; 
}
.quote-builder__signature-label {
    margin-top: 12px;
    padding-top: 8px;
    border-top: 1px solid #a0a0a0; 
    font-weight: bold;
    font-size: 14px;
    color: #333;
    width: 100%;
    text-align: center;
}

.quote-builder__customer-details,
.quote-builder__invoice-details{
    display: flex;
    flex-direction: column;
    gap: 5px;
}
.quote-builder__invoice-details input[type="date"]{
    font-family: inherit;
}
[contentEditable="true"] {
    cursor: text;
    padding: 2px 4px; 
    border-radius: 3px;
    border: none; 
    transition: box-shadow 0.2s ease-in-out, 
                background-color 0.2s ease-in-out;
}
[contentEditable="true"]:hover {
    background-color: #f0f8ff;
}
[contentEditable="true"]:focus {
    background-color: #ffffff;
    outline: none; 
    box-shadow: 0 0 0 1px #282f40; 
}
.quote-builder__file-input-wrapper {
    position: relative;
    width: 100%;
    margin-top: 4px; 
    margin-bottom: 16px; 
}
.quote-builder__file-input-label {
    display: block; 
    padding: 10px 15px;
    background-color: #f8f9fa;
    border: 1px dashed #ced4da; 
    border-radius: 4px;
    color: #495057;
    font-weight: 500;
    text-align: center;
    cursor: pointer;
    transition: background-color 0.2s, border-color 0.2s;
}
.quote-builder__file-input-label:hover {
    background-color: #e9ecef;
    border-color: #adb5bd;
}
.quote-builder__input--file {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0; 
    cursor: pointer; 
}
.quote-builder__file-display {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 15px;
    background-color: #e9ecef; 
    border: 1px solid #ced4da;
    border-radius: 4px;
}
.quote-builder__file-name {
    font-size: 14px;
    color: #333;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    padding-right: 10px;
}
.quote-builder__btn-remove-file {
    background: none;
    border: none;
    font-size: 20px;
    font-weight: bold;
    color: #6c757d;
    cursor: pointer;
    line-height: 1;
    padding: 0 4px;
    transition: color 0.2s;
}
.quote-builder__btn-remove-file:hover {
    color: #dc3545; 
}
.quote-builder__item-name,
.quote-builder__item-desc{
    text-align: left;
}
.quote-builder__sidebar-controls {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 1rem;
    border-bottom: 1px solid #e5e7eb;
}

.quote-builder__email-name-and-subject {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.quote-builder__field {
    display: flex;
    flex-direction: column;
}

.quote-builder__label {
    display: block;
    font-size: 0.875rem;
    font-weight: 500;
    margin-bottom: 0.25rem;
    color: #4b5563;
}

.quote-builder__input {
    width: 100%;
    padding: 0.5rem;
    border: 1px solid #d1d5db;
    border-radius: 4px;
    font-size: 1rem;
    box-sizing: border-box;
}

.quote-builder__controls-actions {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: nowrap;
}

.quote-builder__control-btn {
    padding: 8px 14px;
    border: 1px solid #d1d5db;
    background: #f9fafb;
    cursor: pointer;
    transition: all 0.2s ease;
    border-radius: 5px;
    font-size: 15px;
    font-weight: 500;
    flex-grow: 1; 
}

.quote-builder__undo-redo-controls {
    display: flex;
    gap: 8px;
    margin-bottom: 12px;
}

.quote-builder__control-btn--undo,
.quote-builder__control-btn--redo {
    flex: 1;
    background-color: #f8f9fa;
    color: #495057;
    border-color: #dee2e6;
    font-size: 13px;
    padding: 6px 12px;
}

.quote-builder__control-btn--undo:disabled,
.quote-builder__control-btn--redo:disabled {
    opacity: 0.5;
    cursor: not-allowed;
    transform: none;
    box-shadow: none;
}

.quote-builder__controls-status {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 6px;
    min-height: 35px;
}

.quote-builder__autosave-control {
    display: flex;
    align-items: center;
    gap: 8px;
}

.quote-builder__autosave-label {
    font-size: 15px;
    font-weight: 500;
    color: #374151;
    cursor: pointer;
    margin-bottom: 0;
}

.quote-builder__status-message {
    margin: 0;
    font-style: italic;
    font-size: 13px;
    color: #6b7280;
}

/* Toggle Switch Styles */
.quote-builder__switch {
    position: relative;
    display: inline-block;
    width: 40px;
    height: 20px;
}

.quote-builder__switch input {
    opacity: 0;
    width: 0;
    height: 0;
}

.quote-builder__slider {
    position: absolute;
    cursor: pointer;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: #ccc;
    border-radius: 20px;
    transition: background-color 0.2s ease-in-out;
}

.quote-builder__slider:before {
    position: absolute;
    content: "";
    height: 16px;
    width: 16px;
    left: 2px;
    bottom: 2px;
    background-color: white;
    border-radius: 50%;
    transition: transform 0.2s ease-in-out;
}

.quote-builder__switch input:checked + .quote-builder__slider {
    background-color: #282f40;
}

.quote-builder__switch input:checked + .quote-builder__slider:before {
    transform: translateX(20px);
}

/* PDF Controls Styling */
.quote-builder__pdf-controls {
    display: flex;
    align-items: center;
    gap: 8px;
}

.quote-builder__page-size-select {
    padding: 8px 12px;
    border: 1px solid #ddd;
    border-radius: 4px;
    background-color: #fff;
    font-size: 14px;
    color: #333;
    cursor: pointer;
    min-width: 125px;
    transition: border-color 0.2s ease;
}

.quote-builder__page-size-select:hover {
    border-color: #282f40;
}

.quote-builder__page-size-select:focus {
    outline: none;
    border-color: #282f40;
    box-shadow: 0 0 0 2px rgba(0, 123, 255, 0.25);
}

/* Button Styling for Controls Actions */
.quote-builder__controls-actions {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: nowrap;
}

.quote-builder__control-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 8px;
    border: 1px solid #e0e0e0;
    border-radius: 6px;
    background-color: #f8f9fa;
    color: #495057;
    cursor: pointer;
    transition: all 0.2s ease;
    width: 36px;
    height: 36px;
    flex-shrink: 0;
}

.quote-builder__control-btn:active {
    transform: translateY(0);
    background-color: #dee2e6;
}

.quote-builder__control-btn:disabled {
    opacity: 0.6;
    cursor: not-allowed;
    transform: none;
}

.quote-builder__control-btn:disabled:hover {
    background-color: #f8f9fa;
    border-color: #e0e0e0;
    transform: none;
}

.quote-builder__btn-icon {
    width: 18px;
    height: 18px;
    flex-shrink: 0;
}

.quote-builder__control-btn--redo .quote-builder__btn-icon {
    transform: scaleX(-1);
}

.quote-builder__company-details .quote-builder__label{
    margin-top: 8px;
    font-family: inherit;
}

/* Quote-specific styles */
.quote-builder__next-steps-section {
    padding: 1.5rem 2.5rem;
    margin: 1rem 0;
}

.quote-builder__next-steps-content {
    font-size: 0.875rem;
    line-height: 1.5;
    margin: 0;
}

.quote-builder__client-signature {
    margin-top: 1rem;
    text-align: left;
}

.quote-builder__signature-line {
    border-bottom: 1px solid #374151;
    width: 150px;
    height: 1px;
    margin: 0 0 0.5rem 0;
}

.quote-builder__company-signature {
    margin-bottom: 1rem;
}

.quote-builder__signatures-section {
    width: 100%;
    padding: 1.5rem 2.5rem;
    margin-top: 1rem;
}

.quote-builder__signatures-details {
    display: flex;
    flex-direction: column;
    gap: 2rem;
}

.invoice-builder__signatures-details {
    display: flex;
    flex-direction: column;
    gap: 2rem;
}

.quote-email-header-padding {
    padding: 2.5rem 2.5rem 1.5rem 2.5rem; 
}

.quote-builder-container {
    display: flex;
    height: 200vh;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    color: #374151;
    background-color: #f9fafb;
}
.quote-builder__quote-info{
    margin: 0.25rem 0 0;
}

.quote-builder__quote-details .quote-builder__label{
    margin-top: 8px;
    font-family: inherit;
}
.quote-builder__quote-title{
    font-size: 1.75rem;
    margin: 0;
    color: #111827;
    letter-spacing: 0.5px;
    font-weight: 700;
}
.quote-builder__signature-label{
    border-top: 1px solid #ccc;
    border-radius: 0px;
    padding-top: 5px;
}

#template-builders {
    padding: 0 5vw;
}

/* Template Builder Styles */
.template-builders-container {
    width: 1200px;
    margin: 0 auto;
    padding: 2rem;
    background: #ffffff;
    border-radius: 12px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
    margin-top: 2rem;
    margin-bottom: 2rem;
}

.template-builders-title {
    text-align: center;
    font-size: 2.5rem;
    font-weight: 700;
    color: #282f40;
    margin-bottom: 1rem;
    margin-top: 1rem;
}

.template-builders-subtitle {
    text-align: center;
    font-size: 1.2rem;
    color: #666;
    margin-bottom: 2rem;
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
}

.template-builder-tabs {
    display: flex;
    justify-content: center;
    gap: 1rem;
    margin-bottom: 1rem;
    border-bottom: 2px solid #e2e2e2;
    padding-bottom: 1rem;
}

.template-tab {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 1rem 2rem;
    background: #f8f9fa;
    border: 2px solid transparent;
    border-radius: 8px;
    cursor: pointer;
    transition: all 0.3s ease;
    font-size: 1.1rem;
    font-weight: 500;
    color: #666;
}

.template-tab:hover {
    background: #e9ecef;
    transform: translateY(-2px);
}

.template-tab.active {
    background: #282f40;
    color: #ffffff;
    border-color: #282f40;
    box-shadow: 0 4px 12px rgba(40, 47, 64, 0.3);
}

.tab-icon {
    width: 24px;
    height: 24px;
    filter: brightness(0) saturate(100%) invert(40%) sepia(0%) saturate(0%) hue-rotate(0deg) brightness(100%) contrast(100%);
}

.template-tab.active .tab-icon {
    filter: brightness(0) saturate(100%) invert(100%) sepia(0%) saturate(0%) hue-rotate(0deg) brightness(100%) contrast(100%);
}

.template-builder-content {
    display: none;
    min-height: 600px;
}

.template-builder-content.active {
    display: block;
}

/* Override template builder styles for home page */
#template-builders .invoice-builder-container,
#template-builders .quote-builder-container {
    background: #ffffff;
    border-radius: 8px;
    box-shadow: none;
    height: 185vh;
}

#template-builders .invoice-builder__sidebar,
#template-builders .quote-builder__sidebar {
    background: #f8f9fa;
    border-right: 1px solid #e2e2e2;
}

#template-builders .invoice-builder__canvas-container,
#template-builders .quote-builder__canvas-container {
    background: #ffffff;
    padding: 0.5rem;
}

#template-builders .invoice-builder__section-selector,
#template-builders .quote-builder__section-selector {
    background: none;
}

#template-builders .quote-builder__type-switch-btn,
#template-builders .invoice-builder__type-switch-btn {
    background: white;
}
#template-builders .quote-builder__type-switch-btn.active,
#template-builders .invoice-builder__type-switch-btn.active {
    background: #282f40;
}
#template-builders .invoice-builder__tax-switch-btn,
#template-builders .quote-builder__tax-switch-btn {
    background: white;
}
#template-builders .invoice-builder__tax-switch-btn.active,
#template-builders .quote-builder__tax-switch-btn.active {
    background: #282f40;
}
/* Download PDF Button Styles */
.invoice-builder__download-section,
.quote-builder__download-section {
    margin-bottom: 1.5rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid #e2e2e2;
}

.invoice-builder__download-btn,
.quote-builder__download-btn {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 0.5rem;
    width: 100%;
    padding: 0.75rem 1rem;
    color: #282f40;
    background: #ffffff;
    border: 0.5px solid #ccc;
    border-radius: 5px;
    font-size: 1rem;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.3s ease;
    text-decoration: none;
}

.invoice-builder__download-btn .invoice-builder__btn-icon,
.quote-builder__download-btn .quote-builder__btn-icon {
    width: 20px;
    height: 20px;
    padding-left: 10px;
    filter: brightness(0) saturate(100%) sepia(0%) saturate(0%) hue-rotate(0deg) brightness(100%) contrast(100%);
}

/* Home Page Template Builder Toast Notification Styles */
.template-toast-notification {
    position: fixed;
    top: 90px;
    right: 20px;
    z-index: 1000;
    animation: slideInRight 0.3s ease-out;
}

.toast-content {
    display: flex;
    align-items: center;
    gap: 1rem;
    background: #282f40;
    color: #ffffff;
    padding: 1rem 1.5rem;
    border-radius: 5px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
    min-width: 300px;
    max-width: 400px;
}

.toast-message {
    flex: 1;
    font-size: 0.9rem;
    font-weight: 500;
}

.toast-close {
    background: none;
    border: none;
    color: #ffffff;
    font-size: 1.5rem;
    cursor: pointer;
    padding: 0;
    width: 24px;
    height: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    transition: background-color 0.2s ease;
}

.toast-close:hover {
    background-color: rgba(255, 255, 255, 0.1);
}

#template-builders .invoice-builder__sidebar-controls{
    gap: 0px;
}

@keyframes slideInRight {
    from {
        transform: translateX(100%);
        opacity: 0;
    }
    to {
        transform: translateX(0);
        opacity: 1;
    }
}
