.apr-app{--apr-ink:#f4f8fb;--apr-muted:#97a6b5;--apr-line:rgba(151,180,205,.18);--apr-blue:#2ec3e8;--apr-deep-blue:#1e4281;--apr-night:#070b10;--apr-panel:#0b1722;color:var(--apr-ink);font-family:inherit;margin:40px 0}.apr-app *{box-sizing:border-box}.apr-app [hidden]{display:none!important}.apr-shell{background:radial-gradient(circle at 88% 8%,rgba(46,195,232,.12),transparent 30%),linear-gradient(145deg,#09111a,var(--apr-night));border:1px solid var(--apr-line);border-radius:20px;box-shadow:0 28px 70px rgba(0,0,0,.28);overflow:hidden}.apr-header{align-items:flex-start;display:flex;gap:24px;justify-content:space-between;padding:30px 32px 26px}.apr-kicker,.apr-toolbar-label{color:var(--apr-blue);font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase}.apr-header h2{color:var(--apr-ink);font-size:clamp(28px,4vw,46px);line-height:1.03;margin:8px 0 10px}.apr-header p{color:var(--apr-muted);font-size:16px;margin:0;}.apr-local-badge{align-items:center;background:rgba(46,195,232,.08);border:1px solid rgba(46,195,232,.23);border-radius:999px;color:#caeef7;display:inline-flex;flex:0 0 auto;font-size:12px;font-weight:700;gap:8px;padding:9px 12px}.apr-status-dot{background:var(--apr-blue);border-radius:50%;box-shadow:0 0 12px rgba(46,195,232,.85);height:7px;width:7px}.apr-workspace{border-top:1px solid var(--apr-line);display:grid;grid-template-columns:minmax(0,1fr) 370px;align-items:stretch;height:clamp(620px,calc(100vh - 190px),820px);min-height:0;overflow:hidden}.apr-viewer-panel{display:flex;flex-direction:column;height:100%;min-height:0;min-width:0;position:relative}.apr-viewer-toolbar{align-items:center;border-bottom:1px solid var(--apr-line);display:flex;justify-content:space-between;min-height:72px;padding:14px 20px}.apr-viewer-toolbar>div:first-child{display:flex;flex-direction:column;gap:4px;min-width:0}.apr-filename{color:var(--apr-ink);font-size:14px;max-width:50vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.apr-toolbar-actions{display:flex;gap:8px}.apr-icon-button{background:#0c1b27;border:1px solid var(--apr-line);border-radius:8px;color:#c9d5dd;cursor:pointer;font:inherit;font-size:12px;font-weight:700;padding:9px 11px}.apr-icon-button:hover:not(:disabled),.apr-icon-button.is-active{border-color:rgba(46,195,232,.5);color:var(--apr-blue)}.apr-icon-button:disabled{cursor:default;opacity:.35}.apr-viewer-wrap{background:#08121b;flex:1 1 auto;height:auto;min-height:0;overflow:hidden;position:relative}.apr-canvas{display:block;height:100%;outline:none;width:100%}.apr-empty-state,.apr-loading{align-items:center;color:var(--apr-muted);display:flex;flex-direction:column;gap:6px;inset:0;justify-content:center;pointer-events:none;position:absolute;text-align:center}.apr-empty-state strong{color:#dce8ef;font-size:17px}.apr-empty-state span{font-size:13px}.apr-part-icon{align-items:center;background:linear-gradient(135deg,rgba(30,66,129,.35),rgba(46,195,232,.15));border:1px solid rgba(46,195,232,.28);border-radius:14px;color:var(--apr-blue);display:flex;font-size:16px;font-weight:900;height:58px;justify-content:center;margin-bottom:8px;width:58px}.apr-loading{background:rgba(7,11,16,.75);color:var(--apr-blue);font-size:14px;font-weight:700;z-index:5}.apr-viewer-help{border-top:1px solid var(--apr-line);color:#778b99;font-size:11px;padding:10px 18px;text-align:center}.apr-sidebar{background:rgba(8,15,22,.94);border-left:1px solid var(--apr-line);height:100%;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:20px;scrollbar-gutter:stable}.apr-sidebar::-webkit-scrollbar{width:10px}.apr-sidebar::-webkit-scrollbar-track{background:rgba(255,255,255,.015)}.apr-sidebar::-webkit-scrollbar-thumb{background:rgba(151,180,205,.22);border:3px solid rgba(8,15,22,.94);border-radius:999px}.apr-sidebar::-webkit-scrollbar-thumb:hover{background:rgba(46,195,232,.35)}.apr-form{margin:0}.apr-dropzone{align-items:center;background:rgba(46,195,232,.035);border:1px dashed rgba(46,195,232,.38);border-radius:14px;cursor:pointer;display:flex;flex-direction:column;justify-content:center;min-height:150px;outline:none;padding:20px;text-align:center;transition:.18s ease}.apr-dropzone:hover,.apr-dropzone:focus,.apr-dropzone.is-dragging{background:rgba(46,195,232,.075);border-color:var(--apr-blue);box-shadow:inset 0 0 30px rgba(46,195,232,.035),0 0 0 3px rgba(46,195,232,.05)}.apr-dropzone.has-file{min-height:105px}.apr-dropzone-icon{align-items:center;background:rgba(46,195,232,.11);border-radius:50%;color:var(--apr-blue);display:flex;font-size:26px;height:44px;justify-content:center;margin-bottom:10px;width:44px}.apr-dropzone strong{color:var(--apr-ink);font-size:15px}.apr-dropzone span{color:var(--apr-muted);font-size:12px;margin-top:3px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.apr-dropzone small{color:#687b89;font-size:10px;margin-top:8px}.apr-error,.apr-success{border-radius:10px;font-size:12px;line-height:1.45;margin-top:12px;padding:11px 12px}.apr-error{background:rgba(190,62,62,.12);border:1px solid rgba(255,105,105,.24);color:#ffc5c5}.apr-success{background:rgba(46,195,232,.09);border:1px solid rgba(46,195,232,.28);color:#dff7fc}.apr-stats{display:grid;gap:10px;grid-template-columns:1fr 1fr;margin-top:16px}.apr-stat{background:#0b1722;border:1px solid var(--apr-line);border-radius:10px;min-height:70px;padding:12px}.apr-stat-wide{grid-column:1/-1}.apr-stat span{color:#758896;display:block;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.apr-stat strong{color:#e8f0f5;display:block;font-size:14px;line-height:1.25;margin-top:6px;overflow-wrap:anywhere}.apr-form-section{border-top:1px solid var(--apr-line);margin-top:20px;padding-top:18px}.apr-section-heading{align-items:center;display:flex;gap:9px;margin-bottom:14px}.apr-section-heading>span{align-items:center;background:rgba(46,195,232,.1);border:1px solid rgba(46,195,232,.22);border-radius:50%;color:var(--apr-blue);display:flex;font-size:9px;font-weight:800;height:26px;justify-content:center;width:26px}.apr-section-heading strong{font-size:13px;letter-spacing:.04em;text-transform:uppercase}.apr-field{display:block;margin:0 0 12px}.apr-field>span{color:#9fb0bd;display:block;font-size:11px;font-weight:700;margin-bottom:6px}.apr-field em{color:var(--apr-blue);font-style:normal}.apr-field input,.apr-field select,.apr-field textarea{background:#0b1722!important;border:1px solid var(--apr-line)!important;border-radius:8px!important;box-shadow:none!important;color:#f4f8fb!important;font:inherit!important;font-size:13px!important;line-height:1.4!important;margin:0!important;outline:none!important;padding:10px 11px!important;width:100%!important}.apr-field textarea{resize:vertical}.apr-field input:focus,.apr-field select:focus,.apr-field textarea:focus{border-color:rgba(46,195,232,.65)!important;box-shadow:0 0 0 3px rgba(46,195,232,.06)!important}.apr-field small{color:#617482;display:block;font-size:9px;line-height:1.4;margin-top:5px}.apr-field-grid{display:grid;gap:10px;grid-template-columns:1fr 1fr}.apr-honeypot{height:0!important;left:-10000px!important;overflow:hidden!important;position:absolute!important;width:0!important}.apr-consent{align-items:flex-start;border-top:1px solid var(--apr-line);color:#8ea0ad;display:flex;font-size:10px;gap:9px;line-height:1.45;margin-top:18px;padding-top:16px}.apr-consent input{margin-top:2px}.apr-submit{align-items:center;background:linear-gradient(90deg,#1e4281,#2ec3e8);border:0;border-radius:9px;color:#fff;cursor:pointer;display:flex;font:inherit;font-size:12px;font-weight:800;justify-content:space-between;margin-top:14px;padding:13px 15px;text-transform:uppercase;width:100%}.apr-submit:hover:not(:disabled){filter:brightness(1.08)}.apr-submit:disabled{cursor:not-allowed;filter:saturate(.35);opacity:.55}.apr-submit.is-complete{background:#173b46;opacity:1}.apr-submit-arrow{font-size:18px}.apr-privacy{color:#617482;font-size:9px;line-height:1.45;margin-top:9px}.apr-app select option{background:#0b1722;color:#f4f8fb}@media(max-width:1050px){.apr-workspace{grid-template-columns:minmax(0,1fr) 340px;height:clamp(600px,calc(100vh - 170px),760px)}}@media(max-width:900px){.apr-workspace{grid-template-columns:1fr;height:auto;overflow:visible}.apr-viewer-panel{height:auto;position:relative;top:auto}.apr-sidebar{border-left:0;border-top:1px solid var(--apr-line);height:auto;overflow:visible}.apr-viewer-wrap{flex:none;height:430px}}@media(max-width:600px){.apr-app{margin:24px 0}.apr-shell{border-radius:14px}.apr-header{flex-direction:column;padding:23px 20px 20px}.apr-header h2{font-size:32px}.apr-viewer-toolbar{align-items:flex-start;flex-direction:column;gap:12px}.apr-filename{max-width:78vw}.apr-viewer-wrap{height:360px}.apr-toolbar-actions{width:100%}.apr-icon-button{flex:1}.apr-field-grid{grid-template-columns:1fr}}

/* v0.2.2 — native page integration + submission flow */
.apr-app{margin:24px 0 40px;width:100%}
.apr-shell{background:transparent;border:0;border-radius:0;box-shadow:none;overflow:visible}
.apr-header{padding:0 0 24px}
.apr-workspace{border:1px solid var(--apr-line);border-radius:14px;overflow:hidden;position:relative;background:rgba(7,11,16,.48);box-shadow:0 18px 46px rgba(0,0,0,.14)}
.apr-viewer-panel{background:#08121b}
.apr-sidebar{background:rgba(8,15,22,.98)}
.apr-remember{align-items:flex-start;color:#8ea0ad;display:flex;font-size:10px;gap:9px;line-height:1.45;margin:4px 0 8px}
.apr-remember input{margin-top:2px}
.apr-submit-overlay{align-items:center;background:rgba(4,8,12,.86);backdrop-filter:blur(8px);display:flex;inset:0;justify-content:center;padding:24px;position:absolute;z-index:30}
.apr-submit-card{background:linear-gradient(145deg,#0b1722,#08121b);border:1px solid rgba(46,195,232,.28);border-radius:18px;box-shadow:0 30px 80px rgba(0,0,0,.46);max-width:520px;padding:34px;text-align:center;width:100%}

.apr-submit-kicker{color:var(--apr-blue);font-size:10px;font-weight:800;letter-spacing:.14em;text-transform:uppercase}
.apr-submit-title{color:var(--apr-ink);font-size:28px;line-height:1.1;margin:8px 0 10px}
.apr-submit-message{color:var(--apr-muted);font-size:13px;line-height:1.55;margin:0 auto 20px;max-width:410px}
.apr-progress{background:rgba(151,180,205,.12);border-radius:999px;height:8px;margin:0 auto 9px;max-width:420px;overflow:hidden}
.apr-progress span{background:linear-gradient(90deg,var(--apr-deep-blue),var(--apr-blue));display:block;height:100%;transition:width .2s ease;width:0}
.apr-progress-label{color:#c8d5dd;display:block;font-size:11px;font-weight:700;min-height:16px}
.apr-submit-success-actions{display:flex;gap:10px;justify-content:center;margin-top:22px}
.apr-add-another,.apr-close-success{border-radius:9px;cursor:pointer;font:inherit;font-size:11px;font-weight:800;padding:11px 14px;text-transform:uppercase}
.apr-add-another{background:linear-gradient(90deg,#1e4281,#2ec3e8);border:0;color:#fff}
.apr-close-success{background:#0c1b27;border:1px solid var(--apr-line);color:#c9d5dd}
.apr-submit-overlay.is-success .apr-submit-card{border-color:rgba(46,195,232,.42)}
.apr-submit-overlay.is-success .apr-progress span{background:var(--apr-blue)}

@media(max-width:900px){.apr-workspace{border-radius:12px}.apr-submit-overlay{position:fixed;z-index:99999}.apr-submit-card{max-width:520px}}
@media(max-width:600px){.apr-app{margin:16px 0 30px}.apr-header{padding:0 0 18px}.apr-submit-card{padding:26px 20px}.apr-submit-title{font-size:24px}.apr-submit-success-actions{flex-direction:column}.apr-add-another,.apr-close-success{width:100%}}

/* v0.2.3 — sticky viewer + native ADDiTEC controls */

/* Brighter helper/instruction copy on the dark form surface. */
.apr-app .apr-field small,
.apr-app .apr-dropzone small,
.apr-app .apr-privacy,
.apr-app .apr-consent,
.apr-app .apr-remember,
.apr-app .apr-viewer-help {
    color: #aebdca !important;
}

/* Match the site's existing CONTACT US button language. */
.apr-app .apr-submit,
.apr-app .apr-add-another,
.apr-app .apr-close-success {
    display: inline-flex !important;
    min-height: 52px;
    align-items: center;
    justify-content: center;
    gap: 14px;
    padding: 0 22px !important;
    border: 1px solid rgba(46, 195, 232, 0.48) !important;
    border-radius: 0 !important;
    background: linear-gradient(
        120deg,
        rgba(30, 66, 129, 0.6),
        rgba(46, 195, 232, 0.12)
    ) !important;
    color: #eefcff !important;
    font-family: "Pluto Sans Cond", "Arial Narrow", Arial, sans-serif !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    letter-spacing: 0.12em;
    text-decoration: none !important;
    text-transform: uppercase;
    box-shadow: none !important;
    transition: border-color 180ms ease, background 180ms ease, transform 180ms ease !important;
}

.apr-app .apr-submit {
    justify-content: space-between;
    width: 100%;
}

.apr-app .apr-submit:hover:not(:disabled),
.apr-app .apr-add-another:hover,
.apr-app .apr-close-success:hover {
    border-color: rgba(46, 195, 232, 0.9) !important;
    background: linear-gradient(
        120deg,
        rgba(30, 66, 129, 0.8),
        rgba(46, 195, 232, 0.22)
    ) !important;
    transform: translateY(-1px);
    filter: none !important;
}

.apr-app .apr-submit:disabled {
    cursor: not-allowed;
    opacity: .48;
    transform: none !important;
}

/* Secondary viewer controls use the same square ADDiTEC visual language. */
.apr-app .apr-icon-button {
    min-height: 42px;
    padding: 0 16px !important;
    border: 1px solid rgba(46, 195, 232, 0.30) !important;
    border-radius: 0 !important;
    background: linear-gradient(120deg, rgba(30,66,129,.28), rgba(46,195,232,.05)) !important;
    color: #d8e7ef !important;
    font-family: "Pluto Sans Cond", "Arial Narrow", Arial, sans-serif !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    letter-spacing: .08em;
    text-transform: uppercase;
    transition: border-color 180ms ease, background 180ms ease, transform 180ms ease !important;
}

.apr-app .apr-icon-button:hover:not(:disabled),
.apr-app .apr-icon-button.is-active {
    border-color: rgba(46,195,232,.75) !important;
    background: linear-gradient(120deg, rgba(30,66,129,.5), rgba(46,195,232,.12)) !important;
    color: #eefcff !important;
}

/* v0.2.5 — GSAP pin stays inside the app; ADDiTEC-native form treatment */

/* GSAP owns desktop pinning now; do not make CSS sticky compete with it. */
@media (min-width: 901px) {
    .apr-app .apr-workspace {
        align-items: start;
        height: auto !important;
        min-height: 720px;
        overflow: visible !important;
    }

    .apr-app .apr-viewer-panel {
        position: relative !important;
        top: auto !important;
        align-self: start;
        height: calc(100vh - 112px) !important;
        min-height: 620px;
        max-height: 820px;
        overflow: hidden;
        border-radius: 14px 0 0 14px;
        z-index: 4;
    }

    .apr-app .apr-sidebar {
        height: auto !important;
        max-height: none !important;
        min-height: 720px;
        overflow: visible !important;
        border-radius: 0 14px 14px 0;
    }
}

/* Pull the form into the same visual system used by the ADDiTEC contact form. */
.apr-app .apr-form-section {
    border-top-color: rgba(151,180,205,.18);
}

.apr-app .apr-section-heading strong,
.apr-app .apr-field > span {
    color: #dbeaf5 !important;
    font-family: "Pluto Sans Cond", "Arial Narrow", Arial, sans-serif !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    letter-spacing: .06em;
}

.apr-app .apr-field > span {
    margin-bottom: 7px;
}

.apr-app .apr-field input,
.apr-app .apr-field select,
.apr-app .apr-field textarea {
    width: 100% !important;
    min-height: 52px !important;
    padding: 14px 16px !important;
    border: 1px solid #212932 !important;
    border-radius: 2px !important;
    background: rgba(7,11,16,.82) !important;
    color: #f4f8fb !important;
    font-family: "Pluto Sans", Arial, sans-serif !important;
    font-size: 16px !important;
    line-height: 1.45 !important;
    box-shadow: none !important;
    transition: border-color 180ms ease, background 180ms ease, box-shadow 180ms ease !important;
}

.apr-app .apr-field textarea {
    min-height: 150px !important;
    resize: vertical;
}

.apr-app .apr-field input::placeholder,
.apr-app .apr-field textarea::placeholder {
    color: #697987 !important;
    opacity: 1;
}

.apr-app .apr-field select option {
    background: #0b1724;
    color: #f4f8fb;
}

.apr-app .apr-field input:focus,
.apr-app .apr-field select:focus,
.apr-app .apr-field textarea:focus {
    border-color: #2ec3e8 !important;
    outline: none !important;
    background: #0b1724 !important;
    box-shadow: 0 0 0 3px rgba(46,195,232,.12), 0 0 24px rgba(46,195,232,.08) !important;
}

/* Make helper and consent copy readable instead of subdued. */
.apr-app .apr-field small,
.apr-app .apr-dropzone small,
.apr-app .apr-privacy,
.apr-app .apr-consent,
.apr-app .apr-remember,
.apr-app .apr-viewer-help {
    color: #b8c6d3 !important;
}

.apr-app .apr-consent,
.apr-app .apr-remember {
    font-size: 12px !important;
    line-height: 1.5;
}

.apr-app input[type="checkbox"],
.apr-app input[type="radio"] {
    accent-color: #2ec3e8;
}

/* Exact primary button language from the child theme. */
.apr-app .apr-submit,
.apr-app .apr-add-another,
.apr-app .apr-close-success {
    min-height: 52px;
    padding: 0 22px !important;
    border: 1px solid rgba(46,195,232,.48) !important;
    border-radius: 0 !important;
    background: linear-gradient(120deg,rgba(30,66,129,.6),rgba(46,195,232,.12)) !important;
    color: #eefcff !important;
    font-family: "Pluto Sans Cond", "Arial Narrow", Arial, sans-serif !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    letter-spacing: .12em;
    text-transform: uppercase;
    box-shadow: none !important;
}

.apr-app .apr-submit:hover:not(:disabled),
.apr-app .apr-submit:focus-visible,
.apr-app .apr-add-another:hover,
.apr-app .apr-add-another:focus-visible,
.apr-app .apr-close-success:hover,
.apr-app .apr-close-success:focus-visible {
    border-color: #2ec3e8 !important;
    background: linear-gradient(120deg,rgba(30,66,129,.9),rgba(46,195,232,.25)) !important;
    color: #eefcff !important;
    transform: translateY(-2px);
}


/* Loading state safety: never allow author styles to override the hidden attribute. */
.apr-loading[hidden],
.apr-empty-state[hidden],
.apr-submit-overlay[hidden] {
    display: none !important;
}

/* Preserve the viewer's grid width while ScrollTrigger pins it. */
@media (min-width: 901px) {
    .apr-app .apr-viewer-panel {
        width: 100%;
        max-width: 100%;
    }
    .apr-app .pin-spacer {
        width: 100% !important;
        max-width: 100% !important;
    }
}


/* v0.2.6 GSAP pin containment */
@media (min-width: 901px) {
  .apr-app .apr-viewer-panel {
    max-width: 100%;
    overflow: hidden;
    will-change: transform;
  }
  .apr-app .apr-loading[hidden],
  .apr-app .apr-empty-state[hidden] { display: none !important; }
}

/* =========================================================
   v0.2.8 — dedicated inner viewer stage + page-level fullscreen overlay
   The grid column never gets pinned; only the contained stage does.
   ========================================================= */
@media (min-width: 901px) {
    .apr-app .apr-workspace {
        align-items: start;
        height: auto;
        min-height: 0;
        overflow: visible;
    }

    .apr-app .apr-viewer-column {
        min-width: 0;
        position: relative;
        align-self: stretch;
    }

    .apr-app .apr-viewer-stage {
        display: flex;
        flex-direction: column;
        width: 100%;
        height: calc(100vh - 112px);
        min-height: 620px;
        max-height: 820px;
        overflow: hidden;
        background: #08121b;
    }

    .apr-app .apr-sidebar {
        height: auto;
        min-height: calc(100vh - 112px);
        overflow: visible;
        overscroll-behavior: auto;
    }
}

/* Legacy panel selector is intentionally neutralized. */
.apr-app .apr-viewer-panel {
    position: static !important;
    width: auto !important;
    height: auto !important;
    max-width: none !important;
    overflow: visible !important;
    will-change: auto !important;
}


/* =========================================================
   v0.2.9 — production copy/readability pass
   Enfold can apply inherited form colors with higher specificity, so
   customer-facing labels/helper text are locked to the ADDiTEC palette.
   ========================================================= */
.apr-app .apr-field > span,
.apr-app .apr-section-heading strong,
.apr-app .apr-dropzone strong,
.apr-app .apr-empty-state strong {
    color: #dbeaf5 !important;
}

.apr-app .apr-field small,
.apr-app .apr-dropzone small,
.apr-app .apr-privacy,
.apr-app .apr-privacy *,
.apr-app .apr-consent,
.apr-app .apr-consent *,
.apr-app .apr-remember,
.apr-app .apr-remember *,
.apr-app .apr-viewer-help,
.apr-app .apr-empty-state span,
.apr-app .apr-submit-message {
    color: #b8c6d3 !important;
}

.apr-app .apr-field em,
.apr-app .apr-section-heading > span {
    color: #2ec3e8 !important;
}

.apr-app input[type="checkbox"],
.apr-app input[type="radio"] {
    accent-color: #2ec3e8 !important;
}


/* =========================================================
   v0.2.10 — submission overlay viewport isolation
   Keep upload/success feedback centered in the visible browser
   viewport regardless of the long review form or GSAP pin spacer.
   ========================================================= */
html.apr-submission-active,
body.apr-submission-active {
    overflow: hidden !important;
}

.apr-app .apr-submit-overlay {
    position: fixed !important;
    inset: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    height: 100dvh !important;
    z-index: 100000 !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 24px !important;
}

.apr-app .apr-submit-card {
    width: min(520px, calc(100vw - 48px)) !important;
    max-height: calc(100dvh - 48px) !important;
    overflow: auto !important;
}

/* =========================================================
   v0.3.0 — contact-first draft workflow
   ========================================================= */
.apr-app .apr-contact-gate[hidden],
.apr-app .apr-workspace[hidden] {
    display: none !important;
}

.apr-app .apr-contact-gate {
    display: flex;
    justify-content: center;
    padding: 18px 0 42px;
}

.apr-app .apr-contact-card {
    width: min(100%, 680px);
    padding: clamp(24px, 4vw, 42px);
    border: 1px solid rgba(151,180,205,.18);
    background: linear-gradient(145deg, rgba(30,66,129,.14), rgba(7,11,16,.72));
    box-shadow: inset 0 0 70px rgba(30,66,129,.08), 0 28px 80px rgba(0,0,0,.2);
}

.apr-app .apr-contact-heading {
    margin-bottom: 12px;
}

.apr-app .apr-contact-intro,
.apr-app .apr-contact-privacy {
    color: #b8c6d3 !important;
    font-family: "Pluto Sans", Arial, sans-serif !important;
    line-height: 1.6 !important;
}

.apr-app .apr-contact-intro {
    margin: 0 0 24px !important;
    font-size: 14px !important;
}

.apr-app .apr-contact-privacy {
    margin-top: 12px;
    font-size: 12px !important;
}

.apr-app .apr-contact-form {
    margin: 0;
}

.apr-app .apr-contact-error {
    margin: 0 0 16px;
    padding: 12px 14px;
    border: 1px solid rgba(255,107,107,.45);
    background: rgba(255,107,107,.08);
    color: #ffd1d1 !important;
    font-size: 13px;
    line-height: 1.5;
}

.apr-app .apr-contact-error[hidden] {
    display: none !important;
}

.apr-app .apr-start-review {
    display: inline-flex !important;
    min-height: 52px;
    align-items: center;
    justify-content: center;
    gap: 18px;
    padding: 0 22px !important;
    border: 1px solid rgba(46,195,232,.48) !important;
    border-radius: 0 !important;
    background: linear-gradient(120deg,rgba(30,66,129,.6),rgba(46,195,232,.12)) !important;
    color: #eefcff !important;
    font-family: "Pluto Sans Cond", "Arial Narrow", Arial, sans-serif !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    letter-spacing: .12em;
    text-transform: uppercase;
    box-shadow: none !important;
    cursor: pointer;
    transition: border-color 180ms ease, background 180ms ease, transform 180ms ease !important;
}

.apr-app .apr-start-review:hover:not(:disabled),
.apr-app .apr-start-review:focus-visible {
    border-color: #2ec3e8 !important;
    background: linear-gradient(120deg,rgba(30,66,129,.9),rgba(46,195,232,.25)) !important;
    color: #eefcff !important;
    transform: translateY(-2px);
}

.apr-app .apr-start-review:disabled {
    cursor: wait;
    opacity: .65;
}

@media (max-width: 600px) {
    .apr-app .apr-contact-gate { padding: 8px 0 28px; }
    .apr-app .apr-contact-card { padding: 24px 18px; }
    .apr-app .apr-start-review { width: 100%; }
}


/* =========================================================
   v0.3.2 — fixed contact gate over stable application layout
   ========================================================= */
.apr-app .apr-shell {
    position: relative !important;
}

/* The application always renders at its final dimensions behind the gate. */
.apr-app .apr-workspace[aria-hidden="true"] {
    display: grid !important;
    pointer-events: none !important;
    user-select: none !important;
}

/* Prevent the page underneath from moving while contact details are collected. */
html.apr-contact-gate-open,
body.apr-contact-gate-open {
    overflow: hidden !important;
    overscroll-behavior: none !important;
}

/* Viewport overlay: does not participate in Enfold/app layout calculations. */
.apr-app .apr-contact-gate {
    position: fixed !important;
    z-index: 9998 !important;
    inset: 0 !important;
    width: 100vw !important;
    height: 100dvh !important;
    min-height: 0 !important;
    padding: 88px 24px 24px !important;
    box-sizing: border-box !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    overflow-y: auto !important;
    background: rgba(7,11,16,.56) !important;
    -webkit-backdrop-filter: blur(5px) brightness(.62) !important;
    backdrop-filter: blur(5px) brightness(.62) !important;
}

.apr-app .apr-contact-gate[hidden] {
    display: none !important;
}

.apr-app .apr-contact-card {
    position: relative !important;
    z-index: 2 !important;
    width: min(680px, calc(100vw - 48px)) !important;
    max-height: calc(100dvh - 120px) !important;
    overflow-y: auto !important;
    background: linear-gradient(145deg, rgba(11,23,34,.98), rgba(7,11,16,.98)) !important;
    box-shadow: 0 28px 90px rgba(0,0,0,.55), inset 0 0 70px rgba(30,66,129,.08) !important;
}

.apr-app .apr-is-gated .apr-workspace {
    filter: saturate(.72) brightness(.72) !important;
}

@media (max-width: 900px) {
    .apr-app .apr-contact-gate {
        padding: 76px 16px 16px !important;
        align-items: flex-start !important;
    }

    .apr-app .apr-contact-card {
        width: min(100%, 680px) !important;
        max-height: calc(100dvh - 96px) !important;
    }
}

/* v0.3.3 — production CTA treatment */
.apr-app .apr-dropzone{
  background:linear-gradient(120deg,rgba(30,66,129,.38),rgba(46,195,232,.11))!important;
  border-color:rgba(46,195,232,.78)!important;
  box-shadow:inset 0 0 34px rgba(46,195,232,.045),0 0 0 1px rgba(46,195,232,.05)!important;
}
.apr-app .apr-dropzone:hover,
.apr-app .apr-dropzone:focus,
.apr-app .apr-dropzone.is-dragging{
  background:rgba(7,11,16,.82)!important;
  border-color:rgba(46,195,232,.48)!important;
  box-shadow:none!important;
}
.apr-app .apr-dropzone strong{color:#eefcff!important}
.apr-app .apr-dropzone span{color:#b8c6d3!important}
.apr-app .apr-dropzone small{color:#97a6b5!important}


/* =========================================================
   v0.5.0 — project packages + document preview
   ========================================================= */
.apr-app .apr-package-browser{
  margin:16px 0 0!important;
  border:1px solid rgba(151,180,205,.18)!important;
  background:rgba(7,11,16,.58)!important;
}
.apr-app .apr-package-browser[hidden]{display:none!important}
.apr-app .apr-package-header{
  display:flex!important;
  align-items:flex-start!important;
  justify-content:space-between!important;
  gap:16px!important;
  padding:14px 16px!important;
  border-bottom:1px solid rgba(151,180,205,.14)!important;
}
.apr-app .apr-package-header span{
  display:block!important;
  color:#2ec3e8!important;
  font-family:"Pluto Sans Cond","Arial Narrow",Arial,sans-serif!important;
  font-size:10px!important;
  font-weight:700!important;
  letter-spacing:.12em!important;
}
.apr-app .apr-package-header strong{display:block!important;margin-top:4px!important;color:#eefcff!important;font-size:13px!important}
.apr-app .apr-package-header small{color:#97a6b5!important;font-size:11px!important}
.apr-app .apr-package-files{max-height:260px!important;overflow:auto!important}
.apr-app .apr-package-file{
  width:100%!important;
  min-height:44px!important;
  display:grid!important;
  grid-template-columns:48px minmax(0,1fr) auto!important;
  align-items:center!important;
  gap:10px!important;
  padding:9px 12px!important;
  border:0!important;
  border-bottom:1px solid rgba(151,180,205,.10)!important;
  border-radius:0!important;
  background:transparent!important;
  color:#dbeaf5!important;
  text-align:left!important;
  cursor:pointer!important;
}
.apr-app .apr-package-file:hover,
.apr-app .apr-package-file:focus-visible{background:rgba(46,195,232,.08)!important;outline:none!important}
.apr-app .apr-package-type{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:24px!important;
  border:1px solid rgba(46,195,232,.35)!important;
  color:#2ec3e8!important;
  font-size:9px!important;
  font-weight:700!important;
  letter-spacing:.08em!important;
}
.apr-app .apr-package-path{
  min-width:0!important;
  overflow:hidden!important;
  color:#dbeaf5!important;
  font-size:12px!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}
.apr-app .apr-package-file small{color:#97a6b5!important;font-size:10px!important;white-space:nowrap!important}

.apr-app .apr-document-preview{
  position:absolute!important;
  z-index:4!important;
  inset:0!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  background:#071018!important;
}
.apr-app .apr-document-preview[hidden]{display:none!important}
.apr-app .apr-pdf-frame{width:100%!important;height:100%!important;border:0!important;background:#fff!important}
.apr-app .apr-pdf-frame[hidden]{display:none!important}
.apr-app .apr-file-preview-message{
  max-width:420px!important;
  padding:32px!important;
  text-align:center!important;
}
.apr-app .apr-file-preview-message[hidden]{display:none!important}
.apr-app .apr-file-preview-message strong{display:block!important;margin:12px 0 7px!important;color:#eefcff!important;font-size:18px!important}
.apr-app .apr-file-preview-message span{display:block!important;color:#97a6b5!important;line-height:1.55!important}

/* =========================================================
   v0.6.0 — post-submission next steps
   ========================================================= */
.apr-app .apr-submit-overlay.is-success .apr-submit-card{
  max-width:620px!important;
  text-align:left!important;
}
.apr-app .apr-submit-overlay.is-success .apr-submit-kicker,
.apr-app .apr-submit-overlay.is-success .apr-submit-title,
.apr-app .apr-submit-overlay.is-success .apr-submit-message{
  text-align:center!important;
}
.apr-app .apr-submit-overlay.is-success .apr-progress,
.apr-app .apr-submit-overlay.is-success .apr-progress-label{display:none!important}
.apr-app .apr-next-steps[hidden]{display:none!important}
.apr-app .apr-next-steps{margin-top:24px!important}
.apr-app .apr-review-reference{
  padding:14px 16px!important;
  border:1px solid rgba(46,195,232,.28)!important;
  background:rgba(46,195,232,.055)!important;
  text-align:center!important;
}
.apr-app .apr-review-reference span,
.apr-app .apr-next-steps-label{
  color:#2ec3e8!important;
  font-family:"Pluto Sans Cond","Arial Narrow",Arial,sans-serif!important;
  font-size:10px!important;
  font-weight:700!important;
  letter-spacing:.14em!important;
  text-transform:uppercase!important;
}
.apr-app .apr-review-reference strong{
  display:block!important;
  margin-top:5px!important;
  color:#eefcff!important;
  font-family:"Pluto Sans Cond","Arial Narrow",Arial,sans-serif!important;
  font-size:17px!important;
  letter-spacing:.06em!important;
}
.apr-app .apr-next-steps-label{margin:22px 0 10px!important}
.apr-app .apr-next-step{
  display:grid!important;
  grid-template-columns:30px minmax(0,1fr)!important;
  gap:12px!important;
  padding:13px 0!important;
  border-top:1px solid rgba(151,180,205,.14)!important;
}
.apr-app .apr-next-step>span{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:26px!important;
  height:26px!important;
  border:1px solid rgba(46,195,232,.24)!important;
  border-radius:50%!important;
  background:rgba(46,195,232,.08)!important;
  color:#2ec3e8!important;
  font-size:9px!important;
  font-weight:800!important;
}
.apr-app .apr-next-step strong{color:#dbeaf5!important;font-size:13px!important}
.apr-app .apr-next-step p{margin:3px 0 0!important;color:#aebdca!important;font-size:12px!important;line-height:1.5!important}
.apr-app .apr-submit-overlay.is-success .apr-submit-success-actions{justify-content:stretch!important}
.apr-app .apr-submit-overlay.is-success .apr-add-another,
.apr-app .apr-submit-overlay.is-success .apr-close-success{flex:1!important}
@media(max-width:600px){
  .apr-app .apr-submit-overlay.is-success{padding:14px!important}
  .apr-app .apr-submit-overlay.is-success .apr-submit-card{width:calc(100vw - 28px)!important;max-height:calc(100dvh - 28px)!important;padding:24px 18px!important}
  .apr-app .apr-next-steps{margin-top:18px!important}
  .apr-app .apr-next-step{padding:11px 0!important}
}


/* =========================================================
   v0.6.1 — success state returns to normal page scrolling
   Uploading remains viewport-locked; completed reviews become
   normal page-flow content so the browser scrolls naturally.
   ========================================================= */

html:has(.apr-submit-overlay.is-success),
body:has(.apr-submit-overlay.is-success) {
    overflow: auto !important;
    overscroll-behavior: auto !important;
}

.apr-app .apr-submit-overlay.is-success {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: auto !important;
    min-height: 100% !important;
    align-items: flex-start !important;
    justify-content: center !important;
    overflow: visible !important;
    padding: 32px 24px 48px !important;
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
}

.apr-app .apr-submit-overlay.is-success .apr-submit-card {
    width: min(760px, 100%) !important;
    max-height: none !important;
    overflow: visible !important;
    margin: 0 auto !important;
}

@media (max-width: 600px) {
    .apr-app .apr-submit-overlay.is-success {
        padding: 22px 14px 36px !important;
    }

    .apr-app .apr-submit-overlay.is-success .apr-submit-card {
        width: 100% !important;
        max-height: none !important;
        overflow: visible !important;
    }
}


/* =========================================================
   v0.6.2 — contact gate uses normal page scrolling
   Keep the gate over the application, but remove the viewport
   lock/internal card scroll so the browser page owns scrolling.
   ========================================================= */

html.apr-contact-gate-open,
body.apr-contact-gate-open {
    overflow: auto !important;
    overscroll-behavior: auto !important;
}

.apr-app .apr-contact-gate {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: auto !important;
    min-height: 100% !important;
    padding: 32px 24px 48px !important;
    align-items: flex-start !important;
    justify-content: center !important;
    overflow: visible !important;
}

.apr-app .apr-contact-card {
    width: min(680px, 100%) !important;
    max-height: none !important;
    overflow: visible !important;
    margin: 0 auto !important;
}

@media (max-width: 900px) {
    .apr-app .apr-contact-gate {
        padding: 24px 16px 40px !important;
        align-items: flex-start !important;
    }

    .apr-app .apr-contact-card {
        width: 100% !important;
        max-height: none !important;
        overflow: visible !important;
    }
}

@media (max-width: 600px) {
    .apr-app .apr-contact-gate {
        padding: 18px 12px 32px !important;
    }
}


/* =========================================================
   v0.6.5 — mobile native-page flow
   Reduce nested-card feel on small screens and make success a
   true page state instead of a dialog layered over the form.
   ========================================================= */

@media (max-width: 900px) {
    .apr-app {
        width: 100% !important;
        max-width: none !important;
        margin: 14px 0 28px !important;
    }

    .apr-app .apr-shell {
        width: 100% !important;
        max-width: none !important;
    }

    .apr-app .apr-workspace {
        width: 100% !important;
        max-width: none !important;
        border-left: 0 !important;
        border-right: 0 !important;
        border-radius: 0 !important;
        box-shadow: none !important;
    }

    .apr-app .apr-sidebar {
        width: 100% !important;
        max-width: none !important;
        padding: 18px 16px 28px !important;
        border-left: 0 !important;
        border-right: 0 !important;
        border-radius: 0 !important;
    }

    .apr-app .apr-form,
    .apr-app .apr-form-section,
    .apr-app .apr-field,
    .apr-app .apr-field input,
    .apr-app .apr-field select,
    .apr-app .apr-field textarea,
    .apr-app .apr-submit {
        width: 100% !important;
        max-width: none !important;
    }

    .apr-app .apr-field-grid {
        grid-template-columns: 1fr !important;
        gap: 0 !important;
    }

    .apr-app .apr-contact-gate {
        width: 100% !important;
        max-width: none !important;
        padding: 18px 12px 30px !important;
    }

    .apr-app .apr-contact-card {
        width: 100% !important;
        max-width: none !important;
        margin: 0 !important;
        border-left: 0 !important;
        border-right: 0 !important;
        border-radius: 0 !important;
        box-shadow: none !important;
        padding: 24px 16px 28px !important;
    }

    .apr-app .apr-submit-overlay.is-success {
        position: static !important;
        inset: auto !important;
        width: 100% !important;
        min-height: 0 !important;
        padding: 0 !important;
        background: transparent !important;
        overflow: visible !important;
    }

    .apr-app .apr-submit-overlay.is-success .apr-submit-card {
        width: 100% !important;
        max-width: none !important;
        margin: 0 !important;
        padding: 28px 16px 34px !important;
        border-left: 0 !important;
        border-right: 0 !important;
        border-radius: 0 !important;
        box-shadow: none !important;
    }

    .apr-app.apr-has-success .apr-header,
    .apr-app.apr-has-success .apr-contact-gate,
    .apr-app.apr-has-success .apr-workspace > .apr-viewer-column,
    .apr-app.apr-has-success .apr-workspace > .apr-sidebar {
        display: none !important;
    }

    .apr-app.apr-has-success .apr-workspace {
        display: block !important;
        border: 0 !important;
        background: transparent !important;
    }
}

@media (max-width: 600px) {
    .apr-app .apr-header {
        padding: 0 16px 18px !important;
    }

    .apr-app .apr-header h2 {
        font-size: 38px !important;
        line-height: 1.05 !important;
    }

    .apr-app .apr-header p {
        font-size: 16px !important;
        line-height: 1.6 !important;
    }

    .apr-app .apr-submit-title {
        font-size: 30px !important;
    }

    .apr-app .apr-submit-message {
        font-size: 15px !important;
        line-height: 1.6 !important;
    }
}


/* =========================================================
   v0.6.6 — mobile viewport breakout + stable success routing
   ========================================================= */

@media (max-width: 900px) {
    .apr-app {
        width: 100vw !important;
        max-width: none !important;
        margin-left: calc(50% - 50vw) !important;
        margin-right: calc(50% - 50vw) !important;
    }

    .apr-app .apr-shell,
    .apr-app .apr-workspace,
    .apr-app .apr-sidebar,
    .apr-app .apr-contact-gate,
    .apr-app .apr-contact-card,
    .apr-app .apr-submit-overlay.is-success,
    .apr-app .apr-submit-overlay.is-success .apr-submit-card {
        max-width: none !important;
    }

    .apr-app .apr-header {
        padding-left: 16px !important;
        padding-right: 16px !important;
    }

    .apr-app .apr-sidebar {
        padding-left: 16px !important;
        padding-right: 16px !important;
    }

    .apr-app .apr-contact-gate {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    .apr-app .apr-contact-card {
        padding-left: 16px !important;
        padding-right: 16px !important;
    }

    .apr-app.apr-has-success .apr-submit-overlay.is-success {
        display: block !important;
        position: static !important;
        width: 100% !important;
    }

    .apr-app.apr-has-success .apr-submit-overlay.is-success .apr-submit-card {
        width: 100% !important;
        margin: 0 !important;
        padding-left: 16px !important;
        padding-right: 16px !important;
    }
}


/* =========================================================
   v0.6.8 — body-level upload portal
   ========================================================= */
.apr-submit-overlay.apr-submit-portal {
    position: fixed !important;
    inset: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    height: 100dvh !important;
    min-height: 100dvh !important;
    z-index: 2147483000 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 24px !important;
    overflow: auto !important;
    background: rgba(4, 8, 12, .90) !important;
    -webkit-backdrop-filter: blur(8px) !important;
    backdrop-filter: blur(8px) !important;
}

.apr-submit-overlay.apr-submit-portal .apr-submit-card {
    width: min(520px, calc(100vw - 48px)) !important;
    max-width: 520px !important;
    max-height: calc(100dvh - 48px) !important;
    margin: auto !important;
    overflow: auto !important;
}

@media (max-width: 600px) {
    .apr-submit-overlay.apr-submit-portal {
        padding: 16px !important;
    }

    .apr-submit-overlay.apr-submit-portal .apr-submit-card {
        width: min(100%, 520px) !important;
        max-height: calc(100dvh - 32px) !important;
        padding: 26px 20px !important;
    }
}


/* =========================================================
   v0.6.9.1 — upload portal visual-state hotfix
   ========================================================= */

/* Hidden must always win, including after the overlay is moved
   outside .apr-app and into document.body. */
.apr-submit-overlay.apr-submit-portal [hidden] {
    display: none !important;
}

/* Success-only controls must never appear during upload/processing. */
.apr-submit-overlay.apr-submit-portal:not(.is-success) .apr-submit-success-actions,
.apr-submit-overlay.apr-submit-portal:not(.is-success) .apr-next-steps {
    display: none !important;
}

/* Restore portal-scoped progress styling after leaving .apr-app. */
.apr-submit-overlay.apr-submit-portal .apr-progress {
    display: block !important;
    width: 100% !important;
    height: 7px !important;
    overflow: hidden !important;
    border-radius: 999px !important;
    background: rgba(151, 166, 181, .14) !important;
}

.apr-submit-overlay.apr-submit-portal .apr-progress > span {
    display: block !important;
    width: 0;
    height: 100% !important;
    border-radius: inherit !important;
    background: linear-gradient(
        90deg,
        #1e4281 0%,
        #2ec3e8 100%
    ) !important;
    box-shadow: 0 0 18px rgba(46, 195, 232, .32) !important;
    transition: width .18s ease !important;
}

.apr-submit-overlay.apr-submit-portal .apr-progress-label {
    display: block !important;
    margin-top: 12px !important;
    color: #f4f8fb !important;
    text-align: center !important;
}

/* Portal upload state should not expose success controls even if
   another theme/plugin applies button display rules. */
.apr-submit-overlay.apr-submit-portal:not(.is-success) .apr-add-another,
.apr-submit-overlay.apr-submit-portal:not(.is-success) .apr-close-success {
    display: none !important;
}


/* =========================================================
   v0.6.9.2 — portal design-token scope hotfix
   The upload overlay is temporarily moved outside .apr-app,
   so it must carry the ADDiTEC custom properties with it.
   ========================================================= */
.apr-submit-overlay.apr-submit-portal {

    --apr-ink: #f4f8fb;
    --apr-muted: #97a6b5;
    --apr-line: rgba(151,180,205,.18);
    --apr-blue: #2ec3e8;
    --apr-deep-blue: #1e4281;
    --apr-night: #070b10;

}
