
/* ============================================================
   MYOPSAGENT INTERACTIVE BUSINESS DEMO
   Premium light interface
   ============================================================ */

:root{
    --moa-ink:#172033;
    --moa-ink-soft:#34425a;
    --moa-muted:#738096;
    --moa-muted-light:#9aa5b5;
    --moa-line:#e5eaf0;
    --moa-line-soft:#edf1f5;
    --moa-panel:#ffffff;
    --moa-panel-soft:#f8fafc;
    --moa-blue:#13a9eb;
    --moa-blue-dark:#087cb0;
    --moa-blue-soft:#eaf8ff;
    --moa-green:#34cfa3;
    --moa-green-soft:#ecfbf5;
    --moa-shadow:0 26px 80px rgba(28,45,72,.14);
    --moa-shadow-soft:0 12px 35px rgba(28,45,72,.07);
}

/* ============================================================
   OVERLAY / MODAL
   ============================================================ */

.moa-demo-overlay{
    position:fixed;
    inset:0;
    z-index:100000;
    display:none;
    align-items:center;
    justify-content:center;
    padding:30px;
    background:rgba(21,31,48,.38);
    backdrop-filter:blur(20px) saturate(120%);
    -webkit-backdrop-filter:blur(20px) saturate(120%);
}

.moa-demo-overlay.is-open{
    display:flex;
}

.moa-demo-modal{
    position:relative;
    width:min(1120px,100%);
    max-height:calc(100vh - 60px);
    overflow:hidden;
    border:1px solid rgba(203,213,225,.72);
    border-radius:30px;
    background:
        radial-gradient(circle at 12% -10%,rgba(19,169,235,.07),transparent 30%),
        radial-gradient(circle at 95% 8%,rgba(52,207,163,.05),transparent 27%),
        #fff;
    color:var(--moa-ink);
    box-shadow:
        0 42px 110px rgba(15,23,42,.22),
        0 10px 35px rgba(15,23,42,.07);
    animation:moaModalIn .32s cubic-bezier(.2,.8,.2,1);
}

@keyframes moaModalIn{
    from{opacity:0;transform:translateY(14px) scale(.985)}
    to{opacity:1;transform:translateY(0) scale(1)}
}

.moa-demo-close{
    position:absolute;
    top:18px;
    right:18px;
    z-index:30;
    width:40px;
    height:40px;
    display:flex;
    align-items:center;
    justify-content:center;
    border:1px solid rgba(203,213,225,.78);
    border-radius:50%;
    background:rgba(255,255,255,.88);
    color:#6b7689;
    cursor:pointer;
    box-shadow:0 7px 22px rgba(15,23,42,.07);
    backdrop-filter:blur(12px);
    transition:all .22s ease;
}

.moa-demo-close:hover{
    color:var(--moa-ink);
    border-color:#b9c4d2;
    background:#fff;
    transform:translateY(-1px) scale(1.04);
    box-shadow:0 10px 25px rgba(15,23,42,.1);
}

.moa-demo-screen{
    display:none;
}

.moa-demo-screen.is-active{
    display:block;
}

/* ============================================================
   START
   ============================================================ */

.moa-demo-start{
    padding:88px 34px 80px;
    background:
        radial-gradient(circle at 50% -20%,rgba(19,169,235,.13),transparent 44%),
        radial-gradient(circle at 82% 20%,rgba(52,207,163,.05),transparent 25%);
}

.moa-demo-start-inner{
    width:min(700px,100%);
    margin:auto;
    text-align:center;
}

.moa-demo-badge{
    display:inline-flex;
    align-items:center;
    gap:7px;
    margin-bottom:24px;
    padding:7px 12px;
    border:1px solid rgba(19,169,235,.16);
    border-radius:999px;
    background:rgba(235,248,255,.8);
    color:#1488bb;
    font-size:10px;
    font-weight:700;
    letter-spacing:.12em;
    text-transform:uppercase;
    box-shadow:0 7px 22px rgba(19,169,235,.06);
}

.moa-demo-badge i{
    font-size:9px;
}

.moa-demo-title{
    max-width:690px;
    margin:0 auto;
    color:var(--moa-ink);
    font-size:clamp(2rem,4vw,3.15rem);
    line-height:1.08;
    letter-spacing:-.045em;
    font-weight:640;
    text-wrap:balance;
    text-shadow:
        0 2px 0 rgba(255,255,255,.9),
        0 8px 22px rgba(31,55,85,.09);
}

.moa-demo-copy{
    max-width:575px;
    margin:23px auto 34px;
    color:var(--moa-muted);
    font-size:1rem;
    line-height:1.72;
    font-weight:400;
    letter-spacing:-.008em;
    text-wrap:balance;
}

.moa-demo-url-wrap{
    display:flex;
    align-items:center;
    gap:7px;
    padding:7px;
    border:1px solid #dce4ec;
    border-radius:17px;
    background:rgba(255,255,255,.94);
    box-shadow:
        0 16px 45px rgba(30,50,80,.08),
        0 2px 5px rgba(30,50,80,.025);
    transition:all .22s ease;
}

.moa-demo-url-wrap:hover{
    border-color:#c9d7e2;
    box-shadow:0 19px 48px rgba(30,50,80,.1);
}

.moa-demo-url-wrap:focus-within{
    border-color:rgba(19,169,235,.55);
    box-shadow:
        0 0 0 4px rgba(19,169,235,.075),
        0 17px 45px rgba(30,50,80,.09);
    transform:translateY(-1px);
}

.moa-demo-url-icon{
    width:43px;
    height:43px;
    display:flex;
    align-items:center;
    justify-content:center;
    flex:0 0 43px;
    border-radius:12px;
    background:var(--moa-blue-soft);
    color:var(--moa-blue-dark);
}

.moa-demo-url{
    flex:1;
    min-width:0;
    height:49px;
    padding:0 7px;
    border:0;
    outline:0;
    background:transparent;
    color:var(--moa-ink);
    font:inherit;
    font-size:14px;
}

.moa-demo-url::placeholder{
    color:#a4afbd;
}

.moa-demo-submit{
    height:48px;
    padding:0 21px;
    border:0;
    border-radius:11px;
    background:linear-gradient(135deg,#18b3f1,#12a2de);
    color:#fff;
    font-size:13px;
    font-weight:650;
    letter-spacing:-.01em;
    white-space:nowrap;
    cursor:pointer;
    box-shadow:0 8px 20px rgba(19,169,235,.2);
    transition:all .22s ease;
}

.moa-demo-submit:hover{
    transform:translateY(-1px);
    box-shadow:0 12px 27px rgba(19,169,235,.27);
    filter:brightness(1.02);
}

.moa-demo-submit:active{
    transform:translateY(0);
}

.moa-demo-submit:disabled{
    opacity:.55;
    cursor:wait;
    transform:none;
}

.moa-demo-small{
    margin:17px 0 0;
    color:#9aa6b6;
    font-size:11px;
    line-height:1.5;
}

.moa-demo-error{
    display:none;
    margin-top:16px;
    padding:12px 14px;
    border:1px solid #fecaca;
    border-radius:12px;
    background:#fff6f6;
    color:#b91c1c;
    font-size:13px;
    text-align:left;
}

.moa-demo-error.is-visible{
    display:block;
}

/* ============================================================
   SCANNING
   ============================================================ */

.moa-demo-scanning{
    padding:92px 32px 84px;
    text-align:center;
    background:
        radial-gradient(circle at 50% 20%,rgba(19,169,235,.08),transparent 33%),
        #fff;
}

.moa-demo-spinner{
    width:50px;
    height:50px;
    margin:0 auto 27px;
    border:3px solid #e7edf2;
    border-top-color:var(--moa-blue);
    border-radius:50%;
    box-shadow:0 7px 18px rgba(19,169,235,.08);
    animation:moaSpin .8s linear infinite;
}

@keyframes moaSpin{
    to{transform:rotate(360deg)}
}

.moa-demo-scanning h3{
    margin:0;
    color:var(--moa-ink);
    font-size:1.55rem;
    line-height:1.25;
    letter-spacing:-.025em;
    font-weight:620;
    text-shadow:0 7px 20px rgba(27,46,72,.07);
}

.moa-demo-scanning p{
    margin:10px 0 0;
    color:var(--moa-muted);
    font-size:14px;
}

.moa-demo-scan-steps{
    width:min(445px,100%);
    margin:34px auto 0;
    padding:16px 20px;
    border:1px solid var(--moa-line-soft);
    border-radius:18px;
    background:rgba(248,250,252,.72);
    text-align:left;
    box-shadow:0 12px 34px rgba(30,50,80,.045);
}

.moa-demo-scan-step{
    display:flex;
    align-items:center;
    gap:11px;
    padding:10px 0;
    color:#a0aaba;
    font-size:13px;
    transition:all .25s ease;
}

.moa-demo-scan-step + .moa-demo-scan-step{
    border-top:1px solid rgba(226,232,240,.66);
}

.moa-demo-scan-step i{
    width:18px;
    text-align:center;
}

.moa-demo-scan-step.is-done{
    color:#46566d;
}

.moa-demo-scan-step.is-done i{
    color:#22b68e;
}

/* ============================================================
   CONFIRM
   ============================================================ */

.moa-demo-confirm{
    padding:78px 34px 66px;
    background:
        radial-gradient(circle at 15% 5%,rgba(19,169,235,.055),transparent 29%),
        #fff;
}

.moa-demo-confirm-inner{
    width:min(760px,100%);
    margin:auto;
}

.moa-demo-confirm h2{
    max-width:620px;
    margin:0 0 11px;
    color:var(--moa-ink);
    font-size:clamp(1.8rem,3.5vw,2.45rem);
    line-height:1.15;
    letter-spacing:-.04em;
    font-weight:620;
    text-shadow:0 7px 20px rgba(31,55,85,.075);
}

.moa-demo-confirm-intro{
    margin:0 0 29px;
    color:var(--moa-muted);
    font-size:14px;
    line-height:1.65;
}

.moa-demo-found{
    padding:25px;
    border:1px solid #e3e9ef;
    border-radius:20px;
    background:
        linear-gradient(145deg,rgba(255,255,255,.96),rgba(248,251,253,.88));
    box-shadow:
        0 17px 43px rgba(25,45,72,.065),
        inset 0 1px 0 rgba(255,255,255,.8);
}

.moa-demo-found-top{
    display:flex;
    align-items:flex-start;
    gap:15px;
}

.moa-demo-found-icon{
    width:43px;
    height:43px;
    display:flex;
    align-items:center;
    justify-content:center;
    flex:0 0 43px;
    border-radius:13px;
    background:linear-gradient(145deg,#e9f8ff,#f4fcff);
    color:#1085b8;
    box-shadow:0 7px 18px rgba(19,169,235,.08);
}

.moa-demo-found-name{
    color:var(--moa-ink);
    font-size:1.22rem;
    line-height:1.3;
    letter-spacing:-.02em;
    font-weight:650;
    text-shadow:0 5px 15px rgba(31,55,85,.055);
}

.moa-demo-found-description{
    margin-top:8px;
    color:#69778c;
    font-size:13px;
    line-height:1.65;
}

.moa-demo-found-url{
    margin-top:9px;
    color:#9ca8b7;
    font-size:11px;
    word-break:break-all;
}

.moa-demo-found-items{
    display:flex;
    flex-wrap:wrap;
    gap:7px;
    margin-top:21px;
}

.moa-demo-found-item{
    padding:6px 10px;
    border:1px solid rgba(125,211,252,.52);
    border-radius:999px;
    background:rgba(240,249,255,.72);
    color:#397491;
    font-size:11px;
    font-weight:500;
}

.moa-demo-confirm-actions{
    display:flex;
    gap:10px;
    margin-top:22px;
}

.moa-demo-confirm-primary,
.moa-demo-confirm-secondary{
    min-height:47px;
    padding:0 19px;
    border-radius:11px;
    font-size:13px;
    font-weight:620;
    cursor:pointer;
    transition:all .22s ease;
}

.moa-demo-confirm-primary{
    border:0;
    background:linear-gradient(135deg,#17afea,#119dd8);
    color:#fff;
    box-shadow:0 8px 19px rgba(19,169,235,.18);
}

.moa-demo-confirm-primary:hover{
    transform:translateY(-1px);
    box-shadow:0 11px 25px rgba(19,169,235,.24);
}

.moa-demo-confirm-secondary{
    border:1px solid #dce4eb;
    background:#fff;
    color:#59677b;
}

.moa-demo-confirm-secondary:hover{
    border-color:#cbd5df;
    background:#f9fbfc;
    color:var(--moa-ink);
}

/* ============================================================
   EXPERIENCE
   ============================================================ */

.moa-demo-experience{
    display:grid;
    grid-template-columns:minmax(0,1fr) 342px;
    min-height:670px;
    max-height:calc(100vh - 60px);
    background:#fff;
}

.moa-demo-chat-side{
    display:flex;
    flex-direction:column;
    min-width:0;
    min-height:0;
}

.moa-demo-header{
    display:flex;
    align-items:center;
    gap:12px;
    padding:18px 23px;
    border-bottom:1px solid var(--moa-line-soft);
    background:rgba(255,255,255,.95);
}

.moa-demo-avatar{
    width:43px;
    height:43px;
    display:flex;
    align-items:center;
    justify-content:center;
    flex:0 0 43px;
    border-radius:50%;
    background:linear-gradient(145deg,#20b5ee,#47d5ac);
    color:#fff;
    box-shadow:
        0 9px 22px rgba(19,169,235,.19),
        inset 0 1px 0 rgba(255,255,255,.3);
}

.moa-demo-company-name{
    color:var(--moa-ink);
    font-size:14px;
    line-height:1.3;
    font-weight:650;
    letter-spacing:-.01em;
    text-shadow:0 4px 12px rgba(31,55,85,.05);
}

.moa-demo-online{
    margin-top:3px;
    color:#8390a2;
    font-size:10px;
}

.moa-demo-online::before{
    content:'';
    display:inline-block;
    width:6px;
    height:6px;
    margin-right:6px;
    border-radius:50%;
    background:#32c995;
    box-shadow:0 0 0 3px rgba(50,201,149,.1);
}

.moa-demo-tabs{
    display:flex;
    gap:6px;
    padding:11px 22px;
    border-bottom:1px solid var(--moa-line-soft);
    background:#fff;
}

.moa-demo-tab{
    padding:7px 13px;
    border:1px solid transparent;
    border-radius:999px;
    background:transparent;
    color:#7a879a;
    font-size:11px;
    font-weight:600;
    cursor:pointer;
    transition:all .2s ease;
}

.moa-demo-tab:hover{
    background:#f7f9fb;
    color:#43516a;
}

.moa-demo-tab.is-active{
    border-color:rgba(125,211,252,.48);
    background:#edf9ff;
    color:#247da7;
    box-shadow:0 4px 12px rgba(19,169,235,.06);
}

.moa-demo-chat{
    flex:1;
    min-height:370px;
    overflow-y:auto;
    padding:28px 25px;
    background:
        radial-gradient(circle at 10% 10%,rgba(19,169,235,.022),transparent 28%),
        linear-gradient(180deg,#fbfdff,#fafcfe);
}

.moa-demo-message{
    display:flex;
    margin-bottom:14px;
    animation:moaMessageIn .2s ease-out;
}

@keyframes moaMessageIn{
    from{opacity:0;transform:translateY(4px)}
    to{opacity:1;transform:translateY(0)}
}

.moa-demo-message.user{
    justify-content:flex-end;
}

.moa-demo-bubble{
    max-width:76%;
    padding:11px 14px;
    border-radius:17px;
    font-size:13px;
    line-height:1.6;
}

.moa-demo-message.user .moa-demo-bubble{
    border-bottom-right-radius:5px;
    background:linear-gradient(145deg,#223147,#172335);
    color:#fff;
    box-shadow:0 7px 18px rgba(15,23,42,.12);
}

.moa-demo-message.agent .moa-demo-bubble{
    border:1px solid #e1eaf1;
    border-bottom-left-radius:5px;
    background:rgba(255,255,255,.96);
    color:#415068;
    box-shadow:0 7px 20px rgba(30,50,80,.045);
}

/* ============================================================
   TYPING
   ============================================================ */

.moa-demo-typing{
    display:flex;
    align-items:center;
    gap:5px;
    min-width:54px;
}

.moa-demo-typing span{
    width:5px;
    height:5px;
    border-radius:50%;
    background:#91a0b1;
    animation:moaTyping 1.2s infinite ease-in-out;
}

.moa-demo-typing span:nth-child(2){
    animation-delay:.15s;
}

.moa-demo-typing span:nth-child(3){
    animation-delay:.3s;
}

@keyframes moaTyping{
    0%,60%,100%{transform:translateY(0);opacity:.4}
    30%{transform:translateY(-3px);opacity:1}
}

/* ============================================================
   SUGGESTIONS / INPUT
   ============================================================ */

.moa-demo-suggestions{
    display:flex;
    flex-wrap:wrap;
    gap:7px;
    padding:2px 22px 15px;
    background:#fbfdff;
}

.moa-demo-suggestion{
    padding:7px 11px;
    border:1px solid #dfe5eb;
    border-radius:999px;
    background:#fff;
    color:#66748a;
    font-size:10.5px;
    font-weight:500;
    cursor:pointer;
    box-shadow:0 3px 9px rgba(30,50,80,.025);
    transition:all .2s ease;
}

.moa-demo-suggestion:hover{
    border-color:#9cdbf7;
    background:#f1faff;
    color:#25769c;
    transform:translateY(-1px);
    box-shadow:0 7px 15px rgba(19,169,235,.07);
}

.moa-demo-input-row{
    display:flex;
    gap:9px;
    padding:15px 18px 18px;
    border-top:1px solid var(--moa-line-soft);
    background:#fff;
}

.moa-demo-chat-input{
    flex:1;
    min-width:0;
    height:48px;
    padding:0 17px;
    border:1px solid #dce4ec;
    border-radius:999px;
    outline:0;
    background:#f8fafc;
    color:var(--moa-ink);
    font:inherit;
    font-size:13px;
    transition:all .2s ease;
}

.moa-demo-chat-input:focus{
    border-color:#7dd3fc;
    background:#fff;
    box-shadow:0 0 0 3px rgba(19,169,235,.07);
}

.moa-demo-chat-input:disabled{
    opacity:.65;
}

.moa-demo-chat-input::placeholder{
    color:#a4afbd;
}

.moa-demo-send{
    width:48px;
    height:48px;
    display:flex;
    align-items:center;
    justify-content:center;
    flex:0 0 48px;
    border:0;
    border-radius:50%;
    background:linear-gradient(145deg,#1ab1eb,#119fd9);
    color:#fff;
    cursor:pointer;
    box-shadow:0 8px 18px rgba(19,169,235,.18);
    transition:all .2s ease;
}

.moa-demo-send:hover{
    transform:translateY(-1px);
    box-shadow:0 11px 23px rgba(19,169,235,.25);
}

.moa-demo-send:disabled{
    opacity:.5;
    cursor:wait;
    transform:none;
}

/* ============================================================
   RIGHT ACTION PANEL
   ============================================================ */

.moa-demo-action-side{
    overflow-y:auto;
    padding:31px 25px;
    border-left:1px solid #e7ecf1;
    background:
        radial-gradient(circle at 100% 0%,rgba(19,169,235,.055),transparent 31%),
        linear-gradient(180deg,#f9fbfd,#f7f9fb);
}

.moa-demo-action-label{
    color:#929eae;
    font-size:9px;
    font-weight:700;
    letter-spacing:.13em;
    text-transform:uppercase;
}

.moa-demo-action-title{
    margin:7px 0 23px;
    color:#28364b;
    font-size:1.08rem;
    line-height:1.35;
    font-weight:610;
    letter-spacing:-.025em;
    text-shadow:0 5px 14px rgba(31,55,85,.06);
}

.moa-demo-action-list{
    display:grid;
    gap:11px;
}

.moa-demo-action-item{
    display:flex;
    align-items:flex-start;
    gap:10px;
    color:#9aa6b5;
    font-size:12px;
    line-height:1.5;
}

.moa-demo-action-item i{
    width:15px;
    margin-top:3px;
    text-align:center;
    font-size:11px;
}

.moa-demo-action-item.is-active{
    color:#58667a;
}

.moa-demo-action-item.is-active i{
    color:#31b991;
}

/* ============================================================
   LIVE BUSINESS STATE
   ============================================================ */

.moa-demo-business-state{
    margin-top:25px;
}

.moa-demo-state-section{
    padding:18px 0;
    border-top:1px solid #e1e7ed;
}

.moa-demo-state-label{
    display:block;
    margin-bottom:10px;
    color:#99a4b2;
    font-size:9px;
    font-weight:700;
    letter-spacing:.11em;
    text-transform:uppercase;
}

.moa-demo-intent{
    display:inline-flex;
    align-items:center;
    gap:6px;
    padding:6px 9px;
    border:1px solid rgba(125,211,252,.5);
    border-radius:999px;
    background:#edf9ff;
    color:#327a9c;
    font-size:10px;
    font-weight:600;
}

.moa-demo-state-facts{
    display:grid;
    gap:2px;
}

.moa-demo-state-fact{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:13px;
    padding:9px 0;
    border-bottom:1px solid rgba(226,232,240,.72);
    font-size:10.5px;
}

.moa-demo-state-fact:last-child{
    border-bottom:0;
}

.moa-demo-state-fact span{
    color:#99a4b2;
}

.moa-demo-state-fact strong{
    max-width:165px;
    color:#4b5a70;
    text-align:right;
    font-weight:600;
}

.moa-demo-next-action{
    display:flex;
    align-items:flex-start;
    gap:10px;
    padding:13px;
    border:1px solid #caeedf;
    border-radius:13px;
    background:linear-gradient(145deg,#f2fcf8,#edf9f5);
    box-shadow:0 7px 18px rgba(52,207,163,.045);
}

.moa-demo-next-action > i{
    margin-top:3px;
    color:#29ad84;
}

.moa-demo-next-action strong{
    display:block;
    color:#26745e;
    font-size:11px;
    font-weight:650;
}

.moa-demo-next-action small{
    display:block;
    margin-top:4px;
    color:#748399;
    font-size:9.5px;
    line-height:1.45;
}

/* ============================================================
   CTA CARD
   ============================================================ */

.moa-demo-action-card{
    margin-top:28px;
    padding:19px;
    border:1px solid #dce9f0;
    border-radius:17px;
    background:rgba(255,255,255,.92);
    box-shadow:
        0 12px 30px rgba(30,50,80,.06),
        inset 0 1px 0 rgba(255,255,255,.8);
}

.moa-demo-action-card strong{
    display:block;
    color:#26354a;
    font-size:12.5px;
    line-height:1.4;
    font-weight:650;
    text-shadow:0 4px 12px rgba(31,55,85,.05);
}

.moa-demo-action-card span{
    display:block;
    margin-top:7px;
    color:#77859a;
    font-size:10.5px;
    line-height:1.55;
}

.moa-demo-cta{
    display:block;
    margin-top:15px;
    padding:10px;
    border-radius:10px;
    background:linear-gradient(135deg,#18afe9,#159fd7);
    color:#fff;
    text-align:center;
    font-size:11px;
    font-weight:650;
    text-decoration:none;
    box-shadow:0 7px 17px rgba(19,169,235,.16);
    transition:all .2s ease;
}

.moa-demo-cta:hover{
    color:#fff;
    transform:translateY(-1px);
    box-shadow:0 10px 23px rgba(19,169,235,.23);
}

/* ============================================================
   SCROLLBARS
   ============================================================ */

.moa-demo-chat::-webkit-scrollbar,
.moa-demo-action-side::-webkit-scrollbar{
    width:7px;
}

.moa-demo-chat::-webkit-scrollbar-track,
.moa-demo-action-side::-webkit-scrollbar-track{
    background:transparent;
}

.moa-demo-chat::-webkit-scrollbar-thumb,
.moa-demo-action-side::-webkit-scrollbar-thumb{
    background:#d8e0e8;
    border-radius:20px;
}

.moa-demo-chat::-webkit-scrollbar-thumb:hover,
.moa-demo-action-side::-webkit-scrollbar-thumb:hover{
    background:#c4ced8;
}

/* ============================================================
   MOBILE
   ============================================================ */

@media(max-width:800px){

    .moa-demo-overlay{
        padding:0;
        align-items:stretch;
        justify-content:stretch;
        overflow:hidden;
    }

    .moa-demo-modal{
        width:100%;
        height:100vh;
        height:100vh;
        max-height:none;
        min-height:0;
        overflow:hidden;
        border:0;
        border-radius:0;
    }

    /*
     * IMPORTANT:
     * Body scrolling is deliberately disabled while the modal is open,
     * therefore the active demo screen must become the scroll container.
     */
    .moa-demo-screen{
        width:100%;
        height:100%;
        min-height:0;
        overflow-x:hidden;
        overflow-y:auto;
        overscroll-behavior:contain;
        -webkit-overflow-scrolling:touch;
    }

    .moa-demo-screen.is-active{
        display:block;
    }

    .moa-demo-close{
        position:absolute;
        top:max(13px,env(safe-area-inset-top));
        right:13px;
        z-index:100;
    }

    /* START */
    .moa-demo-start{
        min-height:100%;
        padding:82px 21px max(38px,env(safe-area-inset-bottom));
    }

    .moa-demo-title{
        font-size:clamp(1.9rem,10vw,2.6rem);
        line-height:1.1;
    }

    .moa-demo-copy{
        margin-top:18px;
        font-size:.94rem;
    }

    .moa-demo-url-wrap{
        flex-wrap:wrap;
    }

    .moa-demo-url-icon{
        display:none;
    }

    .moa-demo-url{
        width:100%;
        flex-basis:100%;
        padding:0 8px;
    }

    .moa-demo-submit{
        width:100%;
    }

    /* SCANNING */
    .moa-demo-scanning{
        min-height:100%;
        padding:82px 20px max(40px,env(safe-area-inset-bottom));
    }

    /* CONFIRM */
    .moa-demo-confirm{
        min-height:100%;
        padding:76px 20px max(32px,env(safe-area-inset-bottom));
    }

    .moa-demo-confirm h2{
        font-size:1.85rem;
    }

    .moa-demo-confirm-actions{
        flex-direction:column;
    }

    .moa-demo-confirm-primary,
    .moa-demo-confirm-secondary{
        width:100%;
    }

    .moa-demo-found{
        padding:20px;
    }

    /* EXPERIENCE */
    #moaDemoExperience{
        overflow:hidden;
    }

    .moa-demo-experience{
        display:flex;
        flex-direction:column;
        width:100%;
        height:100%;
        min-height:0;
        max-height:none;
    }

    .moa-demo-chat-side{
        display:flex;
        flex-direction:column;
        height:100%;
        min-height:0;
    }

    .moa-demo-header{
        flex:0 0 auto;
    }

    .moa-demo-tabs{
        flex:0 0 auto;
        overflow-x:auto;
        scrollbar-width:none;
    }

    .moa-demo-tabs::-webkit-scrollbar{
        display:none;
    }

    .moa-demo-chat{
        flex:1 1 auto;
        min-height:0;
        overflow-y:auto;
        padding:22px 17px;
        -webkit-overflow-scrolling:touch;
    }

    .moa-demo-suggestions{
        flex:0 0 auto;
        padding-left:16px;
        padding-right:16px;
        flex-wrap:nowrap;
        overflow-x:auto;
        scrollbar-width:none;
    }

    .moa-demo-suggestions::-webkit-scrollbar{
        display:none;
    }

    .moa-demo-suggestion{
        flex:0 0 auto;
    }

    .moa-demo-input-row{
        flex:0 0 auto;
        padding-bottom:max(18px,env(safe-area-inset-bottom));
    }

    .moa-demo-bubble{
        max-width:88%;
    }

    .moa-demo-action-side{
        display:none;
    }
    
    /* Give scrolling screens genuine bottom breathing room */
    .moa-demo-start,
    .moa-demo-scanning,
    .moa-demo-confirm{
        box-sizing:border-box;
        padding-bottom:calc(100px + env(safe-area-inset-bottom)) !important;
    }
    
    /* Allow the scroll container to move content fully above the bottom edge */
    .moa-demo-screen{
        box-sizing:border-box;
        scroll-padding-bottom:120px;
    }
}
/* ============================================================
   REDUCED MOTION
   ============================================================ */

@media(prefers-reduced-motion:reduce){
    .moa-demo-modal,
    .moa-demo-message,
    .moa-demo-spinner,
    .moa-demo-typing span{
        animation:none !important;
    }

    .moa-demo-close,
    .moa-demo-submit,
    .moa-demo-confirm-primary,
    .moa-demo-confirm-secondary,
    .moa-demo-suggestion,
    .moa-demo-send,
    .moa-demo-cta,
    .moa-demo-url-wrap{
        transition:none !important;
    }
}