.ecs-app,
.ecs-app * {
    box-sizing: border-box;
}

.ecs-app {
    max-width: 960px;
    margin: 30px auto;
    padding: 20px;
    background: #f5f6f7;
    color: #252525;
    font-family: Arial, Helvetica, sans-serif;
}

.ecs-portal-header {
    margin-bottom: 25px;
    padding: 20px 18px;
    border-radius: 14px;
    background: #252525;
    text-align: center;
}

.ecs-portal-header h1 {
    margin: 0 0 8px;
    color: #fff;
    font-size: 30px;
    line-height: 1.2;
}

.ecs-portal-header p {
    margin: 0;
    color: #e5e5e5;
}

.ecs-portal-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 15px;
}

.ecs-card {
    display: flex;
    min-height: 125px;
    padding: 20px;
    border: 1px solid #d8d8d8;
    border-radius: 10px;
    background: #fff;
    color: #111;
    text-align: center;
    text-decoration: none;
    align-items: center;
    justify-content: center;
    box-shadow: 0 3px 10px rgba(0, 0, 0, 0.06);
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.ecs-card:hover {
    color: #111;
    transform: translateY(-2px);
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.1);
}

.ecs-card-primary {
    border-color: #0969da;
    background: #0969da;
    color: #fff;
}

.ecs-card-primary:hover {
    color: #fff;
}

.ecs-card-icon {
    display: block;
    margin-bottom: 8px;
    font-size: 32px;
    line-height: 1;
}

.ecs-card-title {
    display: block;
    font-size: 18px;
    font-weight: 700;
}

.ecs-page-header {
    margin-bottom: 20px;
    padding: 18px 20px;
    border-left: 5px solid #f26a21;
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 3px 10px rgba(0, 0, 0, 0.04);
}

.ecs-page-header h1 {
    margin: 0 0 8px;
    color: #252525;
}

.ecs-page-header p {
    margin: 0;
    color: #666;
}

.ecs-back-link {
    display: inline-block;
    margin-bottom: 20px;
    color: #f26a21;
    font-weight: 700;
    text-decoration: none;
}

.ecs-back-link:hover {
    color: #d95a16;
}

.ecs-panel {
    margin-bottom: 20px;
    padding: 22px;
    border: 1px solid #e3e3e3;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.05);
}

.ecs-panel h2 {
    margin-top: 0;
}

.ecs-button {
    display: inline-block;
    padding: 12px 20px;
    border: 0;
    border-radius: 9px;
    cursor: pointer;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.2;
    text-decoration: none;
    transition: background 0.15s ease, transform 0.15s ease, box-shadow 0.15s ease;
}

.ecs-button-primary {
    background: #f26a21;
    color: #fff;
    box-shadow: 0 3px 8px rgba(242, 106, 33, 0.18);
}

.ecs-button-primary:hover {
    background: #d95a16;
    color: #fff;
    transform: translateY(-1px);
}

.ecs-button-secondary {
    background: #ececec;
    color: #252525;
}

.ecs-button-secondary:hover {
    background: #dedede;
    color: #252525;
}

.ecs-button-danger {
    background: #b42318;
    color: #fff;
}

.ecs-button-danger:hover {
    background: #8f1c14;
    color: #fff;
}

.ecs-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 15px;
}

.ecs-form-field {
    margin-bottom: 5px;
}

.ecs-form-field-full {
    grid-column: 1 / -1;
}

.ecs-form-field label {
    display: block;
    margin-bottom: 7px;
    font-weight: 700;
}

.ecs-form-field input,
.ecs-form-field textarea,
.ecs-search-form input {
    width: 100%;
    padding: 12px 13px;
    border: 1px solid #c9c9c9;
    border-radius: 9px;
    background: #fff;
    color: #252525;
    font-size: 16px;
}

.ecs-form-field textarea {
    resize: vertical;
}

.ecs-form-field input:focus,
.ecs-form-field textarea:focus,
.ecs-search-form input:focus {
    border-color: #f26a21;
    outline: none;
    box-shadow: 0 0 0 3px rgba(242, 106, 33, 0.14);
}

.ecs-form-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 18px;
}

.ecs-message {
    margin-bottom: 20px;
    padding: 14px 16px;
    border-radius: 8px;
}

.ecs-message-success {
    border: 1px solid #66a975;
    background: #edf8ef;
    color: #14532d;
}

.ecs-message-error {
    border: 1px solid #dc7777;
    background: #fff0f0;
    color: #8a1515;
}

.ecs-section-heading {
    display: flex;
    gap: 20px;
    align-items: flex-end;
    justify-content: space-between;
    margin-bottom: 20px;
}

.ecs-section-heading h2 {
    margin: 0;
}

.ecs-search-form {
    display: flex;
    gap: 8px;
    align-items: center;
}

.ecs-search-form input {
    min-width: 220px;
}

.ecs-customer-list {
    display: grid;
    gap: 15px;
}

.ecs-customer-card {
    display: flex;
    gap: 20px;
    justify-content: space-between;
    padding: 18px;
    border: 1px solid #e2e2e2;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.03);
}

.ecs-customer-details {
    flex: 1;
    min-width: 0;
}

.ecs-customer-card h3 {
    margin: 0 0 10px;
    font-size: 20px;
}

.ecs-customer-card p {
    margin: 5px 0;
}

.ecs-customer-card a {
    overflow-wrap: anywhere;
}

.ecs-customer-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-content: flex-start;
    justify-content: flex-end;
}

.ecs-delete-form {
    margin: 0;
}

.ecs-empty-message {
    padding: 22px;
    border: 1px dashed #aaa;
    border-radius: 8px;
    text-align: center;
    color: #555;
}

.ecs-login-message {
    max-width: 520px;
    margin: 40px auto;
    padding: 30px;
    border: 1px solid #ddd;
    border-radius: 10px;
    background: #fff;
    text-align: center;
    font-family: Arial, Helvetica, sans-serif;
}

@media (max-width: 700px) {
    .ecs-app {
        margin: 10px auto;
        padding: 12px;
    }

    .ecs-portal-grid {
        grid-template-columns: 1fr;
    }

    .ecs-card {
        min-height: 90px;
    }

    .ecs-form-grid {
        grid-template-columns: 1fr;
    }

    .ecs-form-field-full {
        grid-column: auto;
    }

    .ecs-section-heading {
        display: block;
    }

    .ecs-search-form {
        display: grid;
        grid-template-columns: 1fr;
        margin-top: 15px;
    }

    .ecs-search-form input {
        min-width: 0;
    }

    .ecs-customer-card {
        display: block;
    }

    .ecs-customer-actions {
        display: grid;
        grid-template-columns: 1fr 1fr;
        margin-top: 18px;
    }

    .ecs-customer-actions .ecs-button {
        width: 100%;
        text-align: center;
    }

    .ecs-delete-form {
        display: contents;
    }
}

@media (max-width: 420px) {
    .ecs-customer-actions {
        grid-template-columns: 1fr;
    }

    .ecs-form-actions {
        display: grid;
        grid-template-columns: 1fr;
    }

    .ecs-form-actions .ecs-button {
        width: 100%;
        text-align: center;
    }
}
.ecs-form-field select {
    width: 100%;
    padding: 12px 13px;
    border: 1px solid #c9c9c9;
    border-radius: 9px;
    background: #fff;
    color: #252525;
    font-size: 16px;
}

.ecs-form-field select:focus {
    border-color: #f26a21;
    outline: none;
    box-shadow: 0 0 0 3px rgba(242, 106, 33, 0.14);
}

.ecs-property-list {
    display: grid;
    gap: 15px;
}

.ecs-property-card {
    display: flex;
    gap: 20px;
    justify-content: space-between;
    padding: 18px;
    border: 1px solid #e2e2e2;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.03);
}

.ecs-property-details {
    flex: 1;
    min-width: 0;
}

.ecs-property-card h3 {
    margin: 0 0 10px;
    font-size: 20px;
}

.ecs-property-card p {
    margin: 5px 0;
}

.ecs-property-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-content: flex-start;
    justify-content: flex-end;
}

@media (max-width: 700px) {
    .ecs-property-card {
        display: block;
    }

    .ecs-property-actions {
        display: grid;
        grid-template-columns: 1fr 1fr;
        margin-top: 18px;
    }

    .ecs-property-actions .ecs-button {
        width: 100%;
        text-align: center;
    }
}

@media (max-width: 420px) {
    .ecs-property-actions {
        grid-template-columns: 1fr;
    }
}
.ecs-appliance-list {
    display: grid;
    gap: 15px;
}

.ecs-appliance-card {
    display: flex;
    gap: 20px;
    justify-content: space-between;
    padding: 18px;
    border: 1px solid #e2e2e2;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.03);
}

.ecs-appliance-details {
    flex: 1;
    min-width: 0;
}

.ecs-appliance-card h3 {
    margin: 0 0 10px;
    font-size: 20px;
}

.ecs-appliance-card p {
    margin: 5px 0;
}

.ecs-appliance-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-content: flex-start;
    justify-content: flex-end;
}

@media (max-width: 700px) {
    .ecs-appliance-card {
        display: block;
    }

    .ecs-appliance-actions {
        display: grid;
        grid-template-columns: 1fr 1fr;
        margin-top: 18px;
    }

    .ecs-appliance-actions .ecs-button {
        width: 100%;
        text-align: center;
    }
}

@media (max-width: 420px) {
    .ecs-appliance-actions {
        grid-template-columns: 1fr;
    }
}
.ecs-stat-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 15px;
    margin-bottom: 20px;
}

.ecs-stat-card {
    padding: 22px;
    border: 1px solid #ddd;
    border-radius: 10px;
    background: #fff;
    text-align: center;
}

.ecs-stat-card strong {
    display: block;
    margin-bottom: 5px;
    font-size: 30px;
}

.ecs-stat-card span {
    color: #555;
}

.ecs-certificate-filters {
    display: grid;
    grid-template-columns: 2fr 1fr auto;
    gap: 15px;
    align-items: end;
}

.ecs-filter-actions {
    display: flex;
    gap: 8px;
}

.ecs-certificate-list {
    display: grid;
    gap: 15px;
}

.ecs-certificate-card {
    display: flex;
    gap: 20px;
    justify-content: space-between;
    padding: 18px;
    border: 1px solid #e2e2e2;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.03);
}

.ecs-certificate-details {
    flex: 1;
}

.ecs-certificate-card h3 {
    margin: 0 0 10px;
}

.ecs-certificate-card p {
    margin: 5px 0;
}

.ecs-certificate-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-content: flex-start;
}

@media (max-width: 700px) {
    .ecs-stat-grid {
        grid-template-columns: 1fr;
    }

    .ecs-certificate-filters {
        grid-template-columns: 1fr;
    }

    .ecs-filter-actions {
        display: grid;
        grid-template-columns: 1fr;
    }

    .ecs-certificate-card {
        display: block;
    }

    .ecs-certificate-actions {
        display: grid;
        grid-template-columns: 1fr;
        margin-top: 18px;
    }

    .ecs-certificate-actions .ecs-button {
        width: 100%;
        text-align: center;
    }
}
.ecs-check-list {
    display: grid;
    gap: 15px;
    margin-bottom: 22px;
}

.ecs-check-row {
    padding: 16px;
    border: 1px solid #ddd;
    border-radius: 9px;
    background: #fafafa;
}

.ecs-check-label {
    margin-bottom: 12px;
    font-size: 16px;
    font-weight: 700;
}

.ecs-check-options {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
}

.ecs-check-option {
    position: relative;
    cursor: pointer;
}

.ecs-check-option input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.ecs-check-option span {
    display: block;
    padding: 12px 8px;
    border: 2px solid #d1d5db;
    border-radius: 7px;
    background: #fff;
    text-align: center;
    font-weight: 700;
}

.ecs-check-option input:checked + span {
    border-color: #f26a21;
    background: #f26a21;
    color: #fff;
}

.ecs-check-option input:focus + span {
    box-shadow: 0 0 0 3px rgba(242, 106, 33, 0.18);
}

@media (max-width: 500px) {
    .ecs-check-options {
        grid-template-columns: 1fr;
    }

    .ecs-check-option span {
        padding: 14px;
    }
}
.ecs-signature-section {
    margin: 20px 0 30px;
    padding: 18px;
    border: 1px solid #ddd;
    border-radius: 10px;
    background: #fafafa;
}

.ecs-signature-section h3 {
    margin-top: 0;
}

.ecs-signature-pad {
    display: block;
    width: 100%;
    height: 220px;
    margin-bottom: 12px;
    border: 2px solid #b8b8b8;
    border-radius: 8px;
    background: #fff;
    touch-action: none;
}

.ecs-signature-preview-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 15px;
}

.ecs-signature-preview {
    padding: 16px;
    border: 1px solid #ddd;
    border-radius: 9px;
    background: #fafafa;
}

.ecs-signature-preview strong,
.ecs-signature-preview span {
    display: block;
}

.ecs-signature-preview img {
    display: block;
    width: 100%;
    max-height: 180px;
    margin: 12px 0;
    object-fit: contain;
    border: 1px solid #ddd;
    background: #fff;
}

@media (max-width: 700px) {
    .ecs-signature-preview-grid {
        grid-template-columns: 1fr;
    }

    .ecs-signature-pad {
        height: 180px;
    }
}
.ecs-review-heading {
    display: flex;
    gap: 15px;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 18px;
}

.ecs-review-heading h2 {
    margin: 0;
}

.ecs-review-table {
    display: grid;
    gap: 8px;
    margin-top: 18px;
}

.ecs-review-row {
    display: flex;
    gap: 15px;
    justify-content: space-between;
    padding: 12px 14px;
    border: 1px solid #ddd;
    border-radius: 7px;
    background: #fafafa;
}

.ecs-review-row span {
    text-align: right;
    font-weight: 700;
}

.ecs-review-notes {
    margin-top: 18px;
    padding: 15px;
    border: 1px solid #ddd;
    border-radius: 8px;
    background: #fafafa;
}

.ecs-review-notes p {
    margin-bottom: 0;
}

.ecs-complete-panel {
    border: 2px solid #f26a21;
}

@media (max-width: 600px) {
    .ecs-review-heading {
        align-items: stretch;
        flex-direction: column;
    }

    .ecs-review-heading .ecs-button {
        width: 100%;
        text-align: center;
    }

    .ecs-review-row {
        display: block;
    }

    .ecs-review-row strong,
    .ecs-review-row span {
        display: block;
        text-align: left;
    }

    .ecs-review-row span {
        margin-top: 5px;
    }
}


/* =========================================================
   ENGINEER SUITE HOME DASHBOARD
   App-style 3-column icon grid
========================================================= */

.ecs-home {
    max-width: 760px;
    margin: 0 auto;
}

.ecs-home-header {
    margin-bottom: 26px;
    text-align: center;
}

.ecs-home-header h1 {
    margin: 0 0 7px;
    color: #252525;
    font-size: 28px;
    line-height: 1.2;
}

.ecs-home-header p {
    margin: 0;
    color: #666;
    font-size: 15px;
}

.ecs-home-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 28px 18px;
    align-items: start;
}

.ecs-home-item {
    position: relative;
    display: flex;
    min-width: 0;
    color: #252525;
    text-align: center;
    text-decoration: none;
    flex-direction: column;
    align-items: center;
}

.ecs-home-item:hover,
.ecs-home-item:focus {
    color: #252525;
    text-decoration: none;
}

.ecs-home-icon {
    display: flex;
    width: 74px;
    height: 74px;
    margin-bottom: 10px;
    border: 3px solid #f26a21;
    border-radius: 50%;
    background: #fff;
    color: #f26a21;
    font-size: 31px;
    line-height: 1;
    align-items: center;
    justify-content: center;
    box-shadow: 0 3px 10px rgba(0, 0, 0, 0.06);
    transition:
        transform 0.15s ease,
        box-shadow 0.15s ease,
        background 0.15s ease;
}

.ecs-home-item:hover .ecs-home-icon,
.ecs-home-item:focus .ecs-home-icon {
    transform: translateY(-2px);
    box-shadow: 0 6px 14px rgba(0, 0, 0, 0.10);
}

.ecs-home-item-primary .ecs-home-icon {
    background: #f26a21;
    color: #fff;
}

.ecs-home-label {
    display: block;
    max-width: 100%;
    color: #252525;
    font-size: 13px;
    font-weight: 800;
    line-height: 1.2;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    overflow-wrap: anywhere;
}

.ecs-home-item-soon {
    cursor: default;
    opacity: 0.48;
}

.ecs-home-item-soon:hover .ecs-home-icon {
    transform: none;
    box-shadow: 0 3px 10px rgba(0, 0, 0, 0.06);
}

.ecs-home-soon {
    display: inline-block;
    margin-top: 5px;
    padding: 3px 7px;
    border-radius: 999px;
    background: #ececec;
    color: #666;
    font-size: 9px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.ecs-home-settings {
    margin-top: 2px;
}

@media (max-width: 700px) {
    .ecs-home {
        max-width: 100%;
    }

    .ecs-home-header {
        margin-bottom: 22px;
    }

    .ecs-home-header h1 {
        font-size: 25px;
    }

    .ecs-home-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 24px 10px;
    }

    .ecs-home-icon {
        width: 66px;
        height: 66px;
        margin-bottom: 8px;
        font-size: 28px;
    }

    .ecs-home-label {
        font-size: 11px;
    }
}

@media (max-width: 380px) {
    .ecs-home-grid {
        gap: 22px 6px;
    }

    .ecs-home-icon {
        width: 60px;
        height: 60px;
        font-size: 25px;
    }

    .ecs-home-label {
        font-size: 10px;
    }
}


/* =========================================================
   GLOBAL ORANGE / CHARCOAL POLISH
========================================================= */

.ecs-panel h2,
.ecs-panel h3,
.ecs-section-heading h2,
.ecs-review-heading h2 {
    color: #252525;
}

.ecs-form-field label,
.ecs-check-label {
    color: #303030;
}

.ecs-profile-item {
    color: #252525;
}

.ecs-profile-item strong {
    color: #5a5a5a;
}

.ecs-empty-message {
    border-color: #cfcfcf;
    background: #fff;
    color: #666;
}

.ecs-message {
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.03);
}

.ecs-stat-card {
    border-color: #e2e2e2;
    border-radius: 12px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.03);
}

.ecs-review-row,
.ecs-review-notes,
.ecs-signature-section,
.ecs-signature-preview,
.ecs-check-row {
    border-color: #e2e2e2;
    background: #fff;
}

@media (max-width: 700px) {
    .ecs-app {
        background: #f5f6f7;
    }

    .ecs-page-header {
        padding: 16px;
    }

    .ecs-panel {
        padding: 18px;
        border-radius: 12px;
    }
}
/* =========================================================
   ORANGE BUTTON TEXT — ALWAYS WHITE
========================================================= */

.ecs-button-primary,
.ecs-button-primary:visited,
.ecs-button-primary:hover,
.ecs-button-primary:focus,
.ecs-button-primary:active {
    background: #f26a21;
    color: #ffffff !important;
}

.ecs-button-primary:hover,
.ecs-button-primary:focus {
    background: #d95a16;
}

/* Selected orange option boxes */
.ecs-check-option input:checked + span {
    border-color: #f26a21;
    background: #f26a21;
    color: #ffffff !important;
}

/* Any links being used as orange buttons */
a.ecs-button-primary,
a.ecs-button-primary:visited {
    color: #ffffff !important;
}
/* =========================================================
   BACK BUTTONS
========================================================= */

.ecs-app a.ecs-back-link,
.ecs-app a.ecs-back-link:visited {
    display: inline-flex !important;
    width: auto !important;
    margin: 0 0 18px 0 !important;
    padding: 10px 15px !important;

    border: 0 !important;
    border-radius: 8px !important;

    background: #252525 !important;
    color: #ffffff !important;

    font-family: Arial, Helvetica, sans-serif !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;

    text-decoration: none !important;

    align-items: center;
    justify-content: center;
}

.ecs-app a.ecs-back-link:hover,
.ecs-app a.ecs-back-link:focus,
.ecs-app a.ecs-back-link:active {
    background: #f26a21 !important;
    color: #ffffff !important;
    text-decoration: none !important;
}

@media (max-width: 700px) {

    .ecs-app a.ecs-back-link,
    .ecs-app a.ecs-back-link:visited {
        display: inline-flex !important;
        width: auto !important;
        padding: 10px 14px !important;
        background: #252525 !important;
        color: #ffffff !important;
    }
}

/* =========================================================
   ACCOUNT BAR — STEP 7A
========================================================= */

.ecs-account-bar {
    display: flex;
    gap: 16px;
    margin: 0 0 18px;
    padding: 12px 14px;
    border: 1px solid #e2e2e2;
    border-radius: 12px;
    background: #ffffff;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
    align-items: center;
    justify-content: space-between;
}

.ecs-account-identity {
    display: flex;
    min-width: 0;
    gap: 10px;
    align-items: center;
}

.ecs-account-avatar {
    display: flex;
    width: 38px;
    height: 38px;
    flex: 0 0 38px;
    border-radius: 50%;
    background: #f26a21;
    font-size: 18px;
    line-height: 1;
    align-items: center;
    justify-content: center;
}

.ecs-account-copy {
    display: flex;
    min-width: 0;
    flex-direction: column;
}

.ecs-account-copy strong {
    color: #252525;
    font-size: 14px;
    line-height: 1.25;
    overflow-wrap: anywhere;
}

.ecs-account-copy span {
    margin-top: 2px;
    color: #707070;
    font-size: 12px;
    line-height: 1.25;
    overflow-wrap: anywhere;
}

.ecs-account-actions {
    display: flex;
    flex: 0 0 auto;
    gap: 8px;
    align-items: center;
}

.ecs-app a.ecs-account-link,
.ecs-app a.ecs-account-link:visited {
    display: inline-flex;
    padding: 8px 11px;
    border-radius: 8px;
    background: #ececec;
    color: #252525;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.2;
    text-decoration: none;
    align-items: center;
    justify-content: center;
}

.ecs-app a.ecs-account-link:hover,
.ecs-app a.ecs-account-link:focus {
    background: #dedede;
    color: #252525;
}

.ecs-app a.ecs-account-logout,
.ecs-app a.ecs-account-logout:visited {
    background: #252525;
    color: #ffffff;
}

.ecs-app a.ecs-account-logout:hover,
.ecs-app a.ecs-account-logout:focus {
    background: #f26a21;
    color: #ffffff;
}

@media (max-width: 700px) {
    .ecs-account-bar {
        gap: 10px;
        margin-bottom: 14px;
        padding: 10px 11px;
    }

    .ecs-account-avatar {
        width: 34px;
        height: 34px;
        flex-basis: 34px;
        font-size: 16px;
    }

    .ecs-account-copy strong {
        font-size: 13px;
    }

    .ecs-account-copy span {
        font-size: 11px;
    }

    .ecs-account-actions {
        gap: 6px;
    }

    .ecs-app a.ecs-account-link,
    .ecs-app a.ecs-account-link:visited {
        padding: 7px 9px;
        font-size: 11px;
    }
}

@media (max-width: 430px) {
    .ecs-account-bar {
        align-items: stretch;
        flex-direction: column;
    }

    .ecs-account-actions {
        width: 100%;
    }

    .ecs-app a.ecs-account-link,
    .ecs-app a.ecs-account-link:visited {
        flex: 1 1 0;
    }
}

/* Step 10A - public signup */
.ecs-signup-wrap{max-width:920px;margin:30px auto;padding:28px;background:#fff;border:1px solid #e5e7eb;border-radius:18px;box-sizing:border-box}.ecs-signup-head{text-align:center;margin-bottom:24px}.ecs-signup-head h2{margin:0 0 8px;font-size:32px}.ecs-signup-head p{margin:0;color:#667085}.ecs-signup-error{padding:12px 14px;margin-bottom:18px;border:1px solid #dc2626;border-radius:10px}.ecs-signup-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.ecs-signup-form label{font-weight:600}.ecs-signup-form input[type=text],.ecs-signup-form input[type=email],.ecs-signup-form input[type=password]{display:block;width:100%;box-sizing:border-box;margin-top:7px;padding:13px;border:1px solid #d0d5dd;border-radius:10px;font:inherit}.ecs-signup-form h3{margin:28px 0 14px}.ecs-plan-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.ecs-plan-card{display:flex!important;flex-direction:column;gap:7px;padding:18px;border:1px solid #d0d5dd;border-radius:14px;cursor:pointer}.ecs-plan-card:has(input:checked){border-width:2px}.ecs-plan-card input{margin:0 0 5px}.ecs-plan-name{font-size:19px;font-weight:700}.ecs-plan-card strong{font-size:21px}.ecs-signup-note{margin:20px 0;color:#667085;line-height:1.5}.ecs-signup-submit{width:100%;text-align:center;font-size:18px}@media(max-width:700px){.ecs-signup-wrap{margin:12px;padding:18px}.ecs-signup-grid,.ecs-plan-cards{grid-template-columns:1fr}.ecs-signup-head h2{font-size:27px}}


/* Step 10B.1 - onboarding polish */
.ecs-onboarding-form .ecs-panel { padding: 26px; }
.ecs-onboarding-form .ecs-panel h2 { margin-bottom: 18px; }
.ecs-onboarding-form .ecs-form-group { margin-bottom: 20px; }
.ecs-onboarding-form .ecs-form-group:last-child { margin-bottom: 0; }
.ecs-onboarding-form .ecs-form-group label { display:block; margin-bottom:8px; font-weight:700; }
.ecs-onboarding-form .ecs-form-group input[type=text],
.ecs-onboarding-form .ecs-form-group input[type=email],
.ecs-onboarding-form .ecs-form-group input[type=tel],
.ecs-onboarding-form .ecs-form-group textarea { display:block; width:100%; box-sizing:border-box; padding:13px 14px; border:1px solid #c9c9c9; border-radius:9px; font:inherit; }
.ecs-onboarding-form .ecs-form-actions { margin-top:30px !important; }
@media (max-width:700px) {
 .ecs-onboarding-form .ecs-panel { padding:20px; }
 .ecs-onboarding-form .ecs-form-group { margin-bottom:22px; }
 .ecs-onboarding-form .ecs-form-actions .ecs-button { width:100%; }
}


/* Step 10C - subscription / billing */
.ecs-billing-summary{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:0 0 20px}.ecs-billing-plan-card,.ecs-billing-status-card{box-sizing:border-box;padding:24px;border:1px solid #e2e2e2;border-radius:14px;background:#fff}.ecs-billing-plan-card{border-top:4px solid #f26a21}.ecs-billing-eyebrow{display:block;margin-bottom:6px;color:#777;font-size:11px;font-weight:800;letter-spacing:.08em}.ecs-billing-plan-card h2{margin:0 0 10px}.ecs-billing-price{margin:4px 0 8px;font-size:30px;font-weight:800;line-height:1.1}.ecs-billing-price span{margin-left:3px;color:#777;font-size:14px;font-weight:600}.ecs-billing-plan-card p{margin:0;color:#666}.ecs-billing-status-card{display:flex;flex-direction:column;justify-content:center}.ecs-billing-stat{display:flex;gap:12px;padding:12px 0;border-bottom:1px solid #eee;align-items:center;justify-content:space-between}.ecs-billing-stat:first-child{padding-top:0}.ecs-billing-stat:last-child{padding-bottom:0;border-bottom:0}.ecs-billing-stat span{color:#666}.ecs-billing-stat strong{text-align:right}.ecs-billing-manage .ecs-button{margin-top:6px}.ecs-billing-small{margin:12px 0 0;color:#777;font-size:12px}@media(max-width:700px){.ecs-billing-summary{grid-template-columns:1fr;gap:14px}.ecs-billing-plan-card,.ecs-billing-status-card{padding:20px}.ecs-billing-price{font-size:28px}.ecs-billing-manage .ecs-button{width:100%}}

/* Step 10D - plan upgrades and downgrades */
.ecs-change-plan-options{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:18px 0}.ecs-change-plan-option{display:flex!important;gap:10px;align-items:flex-start;padding:16px;border:1px solid #d8d8d8;border-radius:12px;cursor:pointer;box-sizing:border-box}.ecs-change-plan-option.is-current{border-top:3px solid #f26a21}.ecs-change-plan-option input{margin-top:3px}.ecs-change-plan-option span{line-height:1.45}.ecs-change-plan-form>.ecs-button{margin-top:2px}@media(max-width:700px){.ecs-change-plan-options{grid-template-columns:1fr}.ecs-change-plan-form>.ecs-button{width:100%}}


/* =========================================================
   STEP 11A — APP SHELL & NAVIGATION CLEANUP
   Presentation only: no certificate, Stripe or data logic.
========================================================= */
.ecs-app {
    width: min(100% - 24px, 960px);
    margin: 18px auto 32px;
    padding: 18px;
    border: 1px solid #e5e7eb;
    border-radius: 20px;
    background: #f7f7f8;
    box-shadow: 0 12px 34px rgba(0, 0, 0, 0.06);
}

.ecs-account-bar {
    position: relative;
    margin-bottom: 24px;
    padding: 13px 15px;
    border-color: #e5e7eb;
    border-radius: 14px;
    box-shadow: none;
}

.ecs-account-copy strong { font-size: 15px; }
.ecs-account-copy span { color: #667085; }

.ecs-app a.ecs-account-link,
.ecs-app a.ecs-account-link:visited {
    min-height: 36px;
    padding: 9px 12px;
    border: 1px solid #e1e3e6;
    background: #f7f7f8;
}

.ecs-app a.ecs-account-home,
.ecs-app a.ecs-account-home:visited {
    border-color: #f26a21;
    background: #fff7f2;
    color: #c94f0d;
}

.ecs-app a.ecs-account-home:hover,
.ecs-app a.ecs-account-home:focus {
    background: #f26a21;
    color: #fff;
}

.ecs-app a.ecs-back-link,
.ecs-app a.ecs-back-link:visited {
    margin-bottom: 16px;
    padding: 8px 12px;
    border: 1px solid #e5e7eb;
    border-radius: 9px;
    background: #fff;
    color: #444;
    font-size: 13px;
    line-height: 1.2;
    text-decoration: none;
}

.ecs-app a.ecs-back-link:hover,
.ecs-app a.ecs-back-link:focus {
    border-color: #f26a21;
    color: #d95a16;
    background: #fff7f2;
}

.ecs-page-header,
.ecs-panel {
    border-color: #e5e7eb;
    box-shadow: 0 2px 10px rgba(0,0,0,.035);
}

.ecs-home-header { margin-bottom: 30px; }
.ecs-home-header h1 { font-size: 30px; letter-spacing: -0.02em; }
.ecs-home-header p { color: #667085; }

@media (max-width: 700px) {
    .ecs-app {
        width: 100%;
        margin: 0;
        padding: 12px;
        border: 0;
        border-radius: 0;
        box-shadow: none;
        min-height: 100vh;
    }
    .ecs-account-bar {
        margin: 0 0 20px;
        padding: 11px 12px;
        border-radius: 12px;
    }
    .ecs-home-header { margin-bottom: 24px; }
    .ecs-home-header h1 { font-size: 26px; }
    .ecs-page-header { margin-bottom: 16px; }
}

@media (max-width: 430px) {
    .ecs-account-actions {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 7px;
    }
    .ecs-app a.ecs-account-link,
    .ecs-app a.ecs-account-link:visited {
        width: 100%;
        min-height: 38px;
        padding: 8px 9px;
    }
    .ecs-account-actions .ecs-account-logout:last-child:nth-child(odd) {
        grid-column: 1 / -1;
    }
}

/* =========================================================
   STEP 11A.1 — FULL APP VIEW
   Portal page only: remove the surrounding WordPress/theme chrome.
========================================================= */
body.ecs-full-app-view { margin: 0 !important; background: #f7f7f8; }
body.ecs-full-app-view #wpadminbar { display: none !important; }
html:has(body.ecs-full-app-view) { margin-top: 0 !important; }

/* Classic and common theme headers/footers. */
body.ecs-full-app-view #masthead,
body.ecs-full-app-view #colophon,
body.ecs-full-app-view .site-header,
body.ecs-full-app-view .site-footer,
body.ecs-full-app-view header.site-header,
body.ecs-full-app-view footer.site-footer,
body.ecs-full-app-view .site-branding,
body.ecs-full-app-view .site-navigation { display: none !important; }

/* Block themes: direct site header/footer template parts. */
body.ecs-full-app-view .wp-site-blocks > header,
body.ecs-full-app-view .wp-site-blocks > footer { display: none !important; }

/* Remove the WordPress page title and theme-added post furniture. */
body.ecs-full-app-view main .entry-header,
body.ecs-full-app-view main .entry-title,
body.ecs-full-app-view main .wp-block-post-title,
body.ecs-full-app-view main .wp-block-post-featured-image,
body.ecs-full-app-view main .wp-block-post-date,
body.ecs-full-app-view main .wp-block-post-author { display: none !important; }

/* Let the shortcode own the portal canvas instead of the theme's content width. */
body.ecs-full-app-view .site,
body.ecs-full-app-view .site-content,
body.ecs-full-app-view #content,
body.ecs-full-app-view #primary,
body.ecs-full-app-view main,
body.ecs-full-app-view .entry-content,
body.ecs-full-app-view .wp-site-blocks,
body.ecs-full-app-view .wp-block-post-content {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* Remove theme footer/navigation blocks that may sit inside the page wrapper. */
body.ecs-full-app-view .wp-site-blocks > .wp-block-template-part:last-child,
body.ecs-full-app-view footer,
body.ecs-full-app-view .footer-navigation,
body.ecs-full-app-view .footer-nav-widgets-wrapper { display: none !important; }

/* Logout must remain legible in the ECS account bar. */
body.ecs-full-app-view .ecs-app a.ecs-account-logout,
body.ecs-full-app-view .ecs-app a.ecs-account-logout:visited {
    background: #fff !important;
    border-color: #d0d5dd !important;
    color: #344054 !important;
    opacity: 1 !important;
}
body.ecs-full-app-view .ecs-app a.ecs-account-logout:hover,
body.ecs-full-app-view .ecs-app a.ecs-account-logout:focus {
    border-color: #f26a21 !important;
    color: #c94f0d !important;
}

@media (max-width: 700px) {
    body.ecs-full-app-view .ecs-app { min-height: 100dvh; }
}


/* =========================================================
   STEP 11B — RESPONSIVE COMPATIBILITY GUARDRAILS
   Preserve the approved v0.9.31 appearance; only prevent
   overflow/clipping on narrow phones, tablets and desktops.
========================================================= */
body.ecs-full-app-view,
body.ecs-full-app-view * { box-sizing: border-box; }

body.ecs-full-app-view .ecs-app,
body.ecs-full-app-view .ecs-app form,
body.ecs-full-app-view .ecs-app table,
body.ecs-full-app-view .ecs-app input,
body.ecs-full-app-view .ecs-app select,
body.ecs-full-app-view .ecs-app textarea { max-width: 100%; }

body.ecs-full-app-view .ecs-app img,
body.ecs-full-app-view .ecs-app canvas,
body.ecs-full-app-view .ecs-app video { max-width: 100%; height: auto; }

body.ecs-full-app-view .ecs-app input,
body.ecs-full-app-view .ecs-app select,
body.ecs-full-app-view .ecs-app textarea,
body.ecs-full-app-view .ecs-app button { font-size: max(16px, 1em); }

/* Long emails, URLs, certificate numbers and labels must not push the app wider. */
body.ecs-full-app-view .ecs-app td,
body.ecs-full-app-view .ecs-app th,
body.ecs-full-app-view .ecs-app p,
body.ecs-full-app-view .ecs-app a { overflow-wrap: anywhere; }

/* Keep wide data tables usable on small screens without altering desktop layout. */
@media (max-width: 700px) {
    body.ecs-full-app-view .ecs-app table { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; }
    body.ecs-full-app-view .ecs-app input:not([type="radio"]):not([type="checkbox"]),
    body.ecs-full-app-view .ecs-app select,
    body.ecs-full-app-view .ecs-app textarea { width: 100%; }

    /* Keep radio/checkbox controls compact. Step 11B's original 100% input rule
       made plan radios consume the full card width and pushed plan text off-screen. */
    body.ecs-full-app-view .ecs-app input[type="radio"],
    body.ecs-full-app-view .ecs-app input[type="checkbox"] {
        width: auto !important;
        max-width: none !important;
        flex: 0 0 auto;
    }

    body.ecs-full-app-view .ecs-change-plan-option > span {
        flex: 1 1 auto;
        min-width: 0;
    }
}


/* Step 12B - Property Photo Gallery */
.ecs-photo-help{margin:-4px 0 18px;color:#667085}.ecs-photo-form input[type=file]{display:block;width:100%;box-sizing:border-box;padding:14px;border:1px dashed #cfd4dc;border-radius:12px;background:#fafafa}.ecs-photo-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.ecs-photo-card{overflow:hidden;border:1px solid #e1e4e8;border-radius:14px;background:#fff}.ecs-photo-card>a{display:block;aspect-ratio:4/3;background:#f4f4f4}.ecs-photo-card img{display:block;width:100%;height:100%;object-fit:cover}.ecs-photo-meta{padding:13px}.ecs-photo-meta>strong,.ecs-photo-meta>span{display:block}.ecs-photo-meta>span{margin-top:3px;color:#667085;font-size:13px}.ecs-photo-meta p{margin:10px 0 12px;overflow-wrap:anywhere}.ecs-photo-delete{width:100%;margin-top:10px}@media(max-width:800px){.ecs-photo-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:520px){.ecs-photo-gallery{grid-template-columns:1fr}.ecs-photo-card>a{aspect-ratio:16/10}.ecs-photo-upload-panel .ecs-form-actions .ecs-button{width:100%}}

/* Step 12D - Certificate/job photo flow */
.ecs-certificate-photo-actions{margin:0 0 18px;display:flex;justify-content:flex-end}.ecs-photo-flow-actions{margin-top:14px;padding-top:14px;border-top:1px solid #eaecf0;display:flex;gap:10px;flex-wrap:wrap}@media(max-width:520px){.ecs-certificate-photo-actions .ecs-button,.ecs-photo-flow-actions .ecs-button{width:100%;text-align:center}}

/* Step 13B - ECS branded login */
body.ecs-login-view #wpadminbar,
body.ecs-login-view header,
body.ecs-login-view .site-header,
body.ecs-login-view .elementor-location-header,
body.ecs-login-view footer,
body.ecs-login-view .site-footer,
body.ecs-login-view .elementor-location-footer,
body.ecs-login-view .entry-header,
body.ecs-login-view .page-header { display:none !important; }
body.ecs-login-view { background:#f4f7fa; }
body.ecs-login-view .site, body.ecs-login-view .site-content, body.ecs-login-view main,
body.ecs-login-view .content-area, body.ecs-login-view .entry-content { margin:0 !important; padding:0 !important; max-width:none !important; width:100% !important; }
.ecs-login-card { width:min(92%,460px); margin:8vh auto; padding:32px; background:#fff; border:1px solid #e2e8f0; border-radius:18px; box-shadow:0 12px 35px rgba(15,23,42,.08); box-sizing:border-box; }
.ecs-login-brand { text-align:center; margin-bottom:26px; }
.ecs-login-mark { width:68px; height:68px; border-radius:18px; display:flex; align-items:center; justify-content:center; margin:0 auto 16px; background:#111827; color:#fff; font-weight:800; font-size:22px; letter-spacing:1px; }
.ecs-login-brand h1 { margin:0 0 8px; font-size:25px; line-height:1.2; }
.ecs-login-brand p { margin:0; color:#64748b; }
.ecs-login-form label { display:block; font-weight:700; margin:0 0 18px; }
.ecs-login-form input { width:100%; box-sizing:border-box; margin-top:7px; padding:13px 14px; border:1px solid #cbd5e1; border-radius:10px; font-size:16px; }
.ecs-login-submit { width:100%; text-align:center; justify-content:center; margin-top:2px; }
.ecs-login-links { display:flex; flex-direction:column; gap:12px; text-align:center; margin-top:22px; font-size:14px; }
.ecs-login-error { margin-bottom:18px; padding:12px 14px; background:#fff1f2; border:1px solid #fecdd3; border-radius:10px; color:#9f1239; }
@media (max-width:600px) { .ecs-login-card { margin:4vh auto; padding:24px 20px; border-radius:15px; } .ecs-login-brand h1 { font-size:22px; } }


/* Step 13B.1 - Remove theme/page title from branded ECS login */
body.ecs-login-view .entry-title,
body.ecs-login-view .page-title,
body.ecs-login-view .wp-block-post-title,
body.ecs-login-view .wp-block-query-title,
body.ecs-login-view .singular-title,
body.ecs-login-view h1.entry-title,
body.ecs-login-view h1.page-title { display:none !important; }


/* Step 13B.2 - Branded forgot/reset password */
.ecs-login-success { margin-bottom:18px; padding:12px 14px; background:#ecfdf3; border:1px solid #a7f3d0; border-radius:10px; color:#166534; }

/* Step 15A - Public ECS homepage */
body.ecs-public-homepage { margin:0 !important; background:#f6f7f9 !important; }
body.ecs-public-homepage #wpadminbar { display:none !important; }
body.ecs-public-homepage { margin-top:0 !important; }
body.ecs-public-homepage header:not(.ecs-public-nav),
body.ecs-public-homepage footer:not(.ecs-public-footer),
body.ecs-public-homepage .site-header,
body.ecs-public-homepage .site-footer,
body.ecs-public-homepage .entry-header,
body.ecs-public-homepage .page-header,
body.ecs-public-homepage .entry-title { display:none !important; }
body.ecs-public-homepage .site, body.ecs-public-homepage .site-content, body.ecs-public-homepage .content-area,
body.ecs-public-homepage main.site-main, body.ecs-public-homepage article, body.ecs-public-homepage .entry-content { width:100% !important; max-width:none !important; margin:0 !important; padding:0 !important; }
.ecs-public-home { --ecs-orange:#f28c18; --ecs-dark:#20242a; --ecs-muted:#667085; font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif; color:var(--ecs-dark); background:#fff; min-height:100vh; }
.ecs-public-home * { box-sizing:border-box; }
.ecs-public-nav { max-width:1180px; margin:auto; padding:20px 24px; display:flex; align-items:center; justify-content:space-between; gap:20px; }
.ecs-public-brand { display:flex; align-items:center; gap:11px; color:var(--ecs-dark); text-decoration:none; font-weight:800; font-size:17px; }
.ecs-public-mark,.ecs-public-app-logo { width:42px; height:42px; border-radius:12px; background:var(--ecs-orange); color:#fff; display:inline-flex; align-items:center; justify-content:center; font-weight:900; font-size:13px; }
.ecs-public-nav-actions,.ecs-public-hero-actions,.ecs-public-trust { display:flex; align-items:center; gap:18px; }
.ecs-public-link,.ecs-public-secondary { color:var(--ecs-dark); text-decoration:none; font-weight:700; }
.ecs-public-btn { display:inline-flex; align-items:center; justify-content:center; min-height:50px; padding:0 24px; border-radius:12px; background:var(--ecs-orange); color:#fff !important; text-decoration:none !important; font-weight:800; box-shadow:0 8px 20px rgba(0,0,0,.10); }
.ecs-public-btn-small { min-height:42px; padding:0 18px; }
.ecs-public-hero { max-width:1180px; margin:0 auto; padding:72px 24px 84px; display:grid; grid-template-columns:1.12fr .88fr; gap:64px; align-items:center; }
.ecs-public-kicker { display:inline-block; color:#c86c00; font-weight:800; text-transform:uppercase; letter-spacing:.08em; font-size:13px; margin-bottom:14px; }
.ecs-public-hero h1 { font-size:clamp(42px,6vw,72px); line-height:1.02; letter-spacing:-.045em; margin:0 0 22px; max-width:780px; }
.ecs-public-hero-copy>p { font-size:20px; line-height:1.65; color:var(--ecs-muted); max-width:720px; margin:0 0 30px; }
.ecs-public-trust { margin-top:25px; flex-wrap:wrap; color:#667085; font-weight:650; font-size:14px; }
.ecs-public-trust span:before { content:'✓'; color:#14804a; font-weight:900; margin-right:7px; }
.ecs-public-app-card { background:#fff; border:1px solid #e7e9ed; border-radius:26px; padding:26px; box-shadow:0 30px 70px rgba(28,35,43,.15); transform:rotate(1deg); }
.ecs-public-app-top { display:flex; align-items:center; gap:12px; font-weight:800; padding-bottom:20px; border-bottom:1px solid #eceef1; }
.ecs-public-app-title { font-size:27px; font-weight:850; margin:25px 0 20px; }
.ecs-public-app-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:12px; }
.ecs-public-app-grid span { min-height:74px; border-radius:15px; background:#f7f8fa; border:1px solid #eceef1; display:flex; align-items:center; justify-content:center; text-align:center; font-weight:750; padding:10px; }
.ecs-public-app-note { margin-top:18px; background:#fff4e6; color:#8a4a00; border-radius:13px; padding:14px; text-align:center; font-weight:700; }
.ecs-public-section { padding:82px 24px; }
.ecs-public-section-head { max-width:760px; margin:0 auto 42px; text-align:center; }
.ecs-public-section-head h2,.ecs-public-cta h2 { font-size:clamp(32px,4vw,48px); line-height:1.1; letter-spacing:-.03em; margin:0 0 14px; }
.ecs-public-section-head p { color:var(--ecs-muted); font-size:18px; }
.ecs-public-how { background:#f7f8fa; }
.ecs-public-steps,.ecs-public-feature-grid,.ecs-public-price-grid { max-width:1180px; margin:auto; display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
.ecs-public-steps>div,.ecs-public-feature-grid>div { background:#fff; border:1px solid #e8eaee; border-radius:18px; padding:25px; }
.ecs-public-steps b { width:38px; height:38px; border-radius:50%; display:flex; align-items:center; justify-content:center; background:var(--ecs-orange); color:#fff; margin-bottom:18px; }
.ecs-public-steps strong,.ecs-public-steps span { display:block; }
.ecs-public-steps strong { margin-bottom:9px; font-size:17px; }
.ecs-public-steps span,.ecs-public-feature-grid p { color:var(--ecs-muted); line-height:1.55; }
.ecs-public-feature-grid { grid-template-columns:repeat(3,1fr); }
.ecs-public-feature-grid h3 { margin:0 0 8px; font-size:20px; }
.ecs-public-feature-grid p { margin:0; }
.ecs-public-pricing { background:#20242a; color:#fff; }
.ecs-public-pricing .ecs-public-section-head p { color:#c9ced6; }
.ecs-public-price-grid { grid-template-columns:repeat(3,1fr); align-items:stretch; }
.ecs-public-price-card { position:relative; background:#fff; color:var(--ecs-dark); border-radius:20px; padding:30px; display:flex; flex-direction:column; gap:12px; }
.ecs-public-price-card h3,.ecs-public-price-card p { margin:0; }
.ecs-public-price { font-size:40px; font-weight:900; letter-spacing:-.04em; }
.ecs-public-price span { font-size:15px; font-weight:650; color:var(--ecs-muted); letter-spacing:0; }
.ecs-public-price-card a { margin-top:auto; padding:14px 16px; border-radius:11px; background:var(--ecs-orange); color:#fff; text-align:center; text-decoration:none; font-weight:800; }
.ecs-public-price-featured { outline:3px solid var(--ecs-orange); }
.ecs-public-popular { position:absolute; top:-14px; right:22px; background:var(--ecs-orange); color:#fff; border-radius:999px; padding:7px 12px; font-size:12px; font-weight:850; text-transform:uppercase; }
.ecs-public-price-note { max-width:900px; margin:28px auto 0; text-align:center; color:#c9ced6; font-size:14px; }
.ecs-public-cta { max-width:1000px; margin:80px auto; padding:64px 24px; border-radius:28px; background:#fff4e6; text-align:center; }
.ecs-public-cta p { color:var(--ecs-muted); font-size:18px; margin:0 auto 26px; max-width:680px; }
.ecs-public-footer { max-width:1180px; margin:auto; border-top:1px solid #e8eaee; padding:28px 24px 38px; display:flex; justify-content:space-between; gap:20px; color:#667085; font-size:14px; }
.ecs-public-footer nav { display:flex; gap:18px; }
.ecs-public-footer a { color:var(--ecs-dark); text-decoration:none; font-weight:700; }
@media (max-width:850px) {
 .ecs-public-nav { padding:15px 18px; }
 .ecs-public-brand span:last-child { display:none; }
 .ecs-public-nav-actions .ecs-public-btn-small { display:none; }
 .ecs-public-hero { grid-template-columns:1fr; padding:48px 20px 58px; gap:42px; }
 .ecs-public-hero h1 { font-size:46px; }
 .ecs-public-hero-copy>p { font-size:18px; }
 .ecs-public-hero-actions { align-items:flex-start; flex-direction:column; gap:15px; }
 .ecs-public-app-card { transform:none; }
 .ecs-public-steps,.ecs-public-feature-grid,.ecs-public-price-grid { grid-template-columns:1fr; }
 .ecs-public-section { padding:60px 20px; }
 .ecs-public-cta { margin:45px 18px; padding:46px 22px; }
 .ecs-public-footer { flex-direction:column; }
}

/* Step 15A.1 - Homepage theme-title cleanup */
body.ecs-public-homepage .wp-block-post-title,
body.ecs-public-homepage .wp-block-query-title,
body.ecs-public-homepage .singular-title,
body.ecs-public-homepage h1.entry-title,
body.ecs-public-homepage h1.page-title,
body.ecs-public-homepage .page-title,
body.ecs-public-homepage .entry-header,
body.ecs-public-homepage .page-header { display:none !important; }
body.ecs-public-homepage .wp-site-blocks,
body.ecs-public-homepage .site-main,
body.ecs-public-homepage main,
body.ecs-public-homepage .entry-content { margin-top:0 !important; padding-top:0 !important; }

/* v1.1.2 - phone-first Getting Started panel */
.ecs-getting-started{margin:0 0 22px;padding:20px;border:1px solid #e2e6ea;border-radius:14px;background:#fff;box-shadow:0 2px 10px rgba(0,0,0,.04)}
.ecs-getting-started-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;margin-bottom:14px}
.ecs-getting-started-head h2{margin:0 0 5px;font-size:22px}.ecs-getting-started-head p{margin:0;color:#5f6670}
.ecs-getting-started-dismiss{border:0;background:transparent;color:#667085;text-decoration:underline;cursor:pointer;padding:4px;font:inherit;white-space:nowrap}
.ecs-getting-started-list{display:grid;gap:10px}
.ecs-getting-started-step{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 14px;border:1px solid #e5e7eb;border-radius:11px;background:#fafafa}
.ecs-getting-started-copy{display:flex;align-items:flex-start;gap:10px;min-width:0}.ecs-getting-started-num{display:inline-flex;align-items:center;justify-content:center;flex:0 0 28px;height:28px;border-radius:50%;background:#eceff3;font-weight:700}.ecs-getting-started-step.is-done .ecs-getting-started-num{background:#e8f5e9}.ecs-getting-started-step strong{display:block}.ecs-getting-started-step small{display:block;margin-top:2px;color:#667085}
@media (max-width:700px){.ecs-getting-started{padding:16px;margin-bottom:18px}.ecs-getting-started-head{display:block}.ecs-getting-started-dismiss{margin-top:8px}.ecs-getting-started-step{display:block}.ecs-getting-started-step .ecs-button{display:block;width:100%;margin-top:12px;text-align:center;box-sizing:border-box}.ecs-getting-started-head h2{font-size:20px}}

/* v1.3.3 - passkey-first login presentation */
.ecs-passkey-login-button { margin:0 0 18px; min-height:50px; font-size:16px; }
.ecs-login-divider { display:flex; align-items:center; gap:12px; margin:0 0 20px; color:#64748b; font-size:13px; text-align:center; }
.ecs-login-divider:before,.ecs-login-divider:after { content:""; height:1px; background:#e2e8f0; flex:1; }
.ecs-login-divider span { white-space:nowrap; }

/* v1.3.6: prominent onboarding skip control */
.ecs-getting-started-skip-form{margin:14px 0 0}
.ecs-getting-started-skip{display:block;width:100%;box-sizing:border-box;padding:12px 16px;border:2px solid #ff6a1a;border-radius:10px;background:#fff;color:#e85d0b;font:inherit;font-weight:700;text-align:center;cursor:pointer}
.ecs-getting-started-skip:active{transform:translateY(1px)}


/* ECS v1.3.7 - EVA foundation */
.ecs-home-sub{display:block;font-size:12px;opacity:.72;margin-top:2px}.ecs-eva-page{max-width:760px;margin:0 auto;padding:18px 14px 40px}.ecs-eva-head{text-align:center;margin-bottom:18px}.ecs-eva-back{display:block;text-align:left;margin-bottom:14px;text-decoration:none}.ecs-eva-badge{display:inline-flex;align-items:center;justify-content:center;width:58px;height:58px;border-radius:18px;background:#111827;color:#fff;font-weight:800;letter-spacing:1px;margin-bottom:8px}.ecs-eva-head h1{margin:4px 0}.ecs-eva-head p{margin:4px 0;color:#64748b}.ecs-eva-notice,.ecs-eva-safety{background:#f8fafc;border:1px solid #e2e8f0;border-radius:14px;padding:14px;margin:14px 0}.ecs-eva-card{background:#fff;border:1px solid #e2e8f0;border-radius:18px;padding:16px;box-shadow:0 8px 24px rgba(15,23,42,.06)}.ecs-eva-card label{display:block;font-weight:700;margin-bottom:8px}.ecs-eva-card textarea{box-sizing:border-box;width:100%;border:1px solid #cbd5e1;border-radius:12px;padding:12px;font:inherit;resize:vertical;background:#f8fafc}.ecs-eva-photo-row{margin:14px 0}.ecs-eva-photo,.ecs-eva-ask{width:100%;border:0;border-radius:12px;padding:13px 14px;font-weight:700}.ecs-eva-photo{background:#e2e8f0;color:#334155}.ecs-eva-photo-row small{display:block;margin-top:6px;color:#64748b}.ecs-eva-ask{background:#111827;color:#fff}.ecs-eva-card button:disabled{opacity:.55;cursor:not-allowed}.ecs-eva-safety p{margin:6px 0 0;color:#475569;line-height:1.5}
.ecs-eva-status{margin-top:12px;color:#475569;font-size:14px;line-height:1.45}.ecs-eva-answer{margin-top:14px;padding:15px;border:1px solid #cbd5e1;border-radius:14px;background:#f8fafc;color:#0f172a;white-space:pre-wrap;line-height:1.55}.ecs-eva-ask:disabled{opacity:.65;cursor:wait}
