:root{font-family:'DM Sans',system-ui,Arial,sans-serif;color:#f5f5ff;background:#0b0e19;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-height:100vh;overflow-x:hidden}button,input,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}a{color:#a995ff} .hidden{display:none!important}.glow{position:fixed;pointer-events:none;z-index:-1;filter:blur(70px);border-radius:50%;opacity:.25}.glow-a{top:-190px;left:-170px;width:600px;height:600px;background:#5d35e8}.glow-b{right:-180px;bottom:-170px;width:560px;height:560px;background:#1858a2}.app{max-width:1200px;margin:auto;padding:0 34px}.topbar{height:88px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #ffffff10}.brand{display:flex;gap:10px;align-items:center;color:white;text-decoration:none;font:700 30px 'Space Grotesk',sans-serif;letter-spacing:-1.6px}.brand-icon{font-size:24px;display:grid;place-items:center;width:38px;height:38px;border-radius:12px;color:white;background:linear-gradient(140deg,#9469ff,#5268f7)}.brand-dot{color:#9b7bff}.header-right{display:flex;gap:10px;align-items:center;color:#b3b6ce;font-size:12px}.live-dot,.pulse-dot{width:8px;height:8px;background:#45dfac;border-radius:50%;box-shadow:0 0 12px #45dfac;display:inline-block}.header-badge{color:#baabff;background:#7f60ff25;border:1px solid #9a7cfa45;padding:5px 8px;border-radius:7px;font-size:10px;font-weight:800;letter-spacing:1px;margin-left:12px}.layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(400px,480px);gap:70px;align-items:start;padding-top:70px;padding-bottom:65px}.intro{padding-top:45px;position:relative;min-height:700px}.eyebrow{color:#baabf7;font-size:11px;letter-spacing:2.2px;font-weight:800}.sparkle{color:#a17fff;margin-right:7px}h1,h2{font-family:'Space Grotesk',system-ui,sans-serif;letter-spacing:-2.8px}h1{font-size:clamp(50px,5.4vw,76px);line-height:1.08;margin:23px 0}.gradient{background:linear-gradient(100deg,#c7a2ff,#8166ff 54%,#5eb7f6);background-clip:text;-webkit-background-clip:text;color:transparent}.tagline{max-width:480px;color:#a9adc4;font-size:17px;line-height:1.8;margin-bottom:28px}.feature-chips{display:flex;flex-wrap:wrap;gap:9px}.feature-chips span{color:#bbc1d9;font-size:11px;background:#ffffff08;border:1px solid #ffffff14;padding:10px;border-radius:30px}.panel{background:linear-gradient(145deg,#1a1e32,#141828);border:1px solid #ffffff1a;box-shadow:0 26px 90px #0005,0 0 0 1px #ffffff08;border-radius:25px;padding:29px}.panel-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:30px}.panel-kicker{font-size:10px;color:#a89ce9;letter-spacing:1.8px;font-weight:800}.panel h2{font-size:26px;letter-spacing:-1.1px;margin:8px 0 0}.panel h2 span{color:#aa88ff}.mode-icon{display:grid;place-items:center;width:39px;height:39px;background:#7663f125;border:1px solid #a18aff40;border-radius:12px;color:#b69bff;font-size:23px}.field{margin-bottom:25px}.label-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;gap:8px}.label-row label,.label-row>label,.label-row>span:first-child{font-size:13px;font-weight:700}.helper{font-size:10px;color:#838aa8}select{appearance:none;background:#101526 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23b8a8e6' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 16px center;border:1px solid #363c53;border-radius:12px;color:#f8f7ff;width:100%;height:48px;padding:0 15px;outline:none;font-size:13px}select:focus,input:focus{border-color:#9c87ff;outline:2px solid #8e72ef26}.radius-pill{font-size:11px!important;color:#d6cbff;border:1px solid #8d70ff65;background:#7050dd22;padding:6px 10px;border-radius:20px;font-weight:700}input[type=range]{width:100%;accent-color:#9877ff;cursor:pointer;height:19px}.range-labels{display:flex;justify-content:space-between;color:#848aa4;font-size:10px}.location-state{font-size:11px;color:#989eb8;margin-top:11px}.interest-list{display:flex;gap:8px;flex-wrap:wrap}.chip{color:#b3bad4;background:#101526;border:1px solid #343a52;border-radius:9px;padding:9px 11px;font-size:11px;font-weight:700;transition:all .16s}.chip:hover{transform:translateY(-2px);border-color:#806eff}.chip.active{color:#e4d9ff;background:#6a50cd40;border-color:#8668f5}.age-gate{display:flex;gap:10px;align-items:flex-start;font-size:11px;line-height:1.7;color:#979eb8;margin:14px 0 19px}.age-gate input{margin:4px 0 0;accent-color:#9478fe}.primary-button{width:100%;border:0;border-radius:12px;background:linear-gradient(100deg,#9c7aff,#6e60f6);color:white;font-weight:800;padding:16px 18px;box-shadow:0 8px 27px #8062ef4a;transition:transform .18s,filter .18s,box-shadow .18s}.primary-button:hover{transform:translateY(-2px);filter:brightness(1.1);box-shadow:0 11px 30px #8062ef70}.primary-button span{margin-left:9px}.under-button{text-align:center;color:#8188a3;font-size:11px;margin:13px 0 0}.art{height:370px;max-width:500px;position:relative;margin-top:20px}.orbit-ring{border:1px solid #8d71ff27;border-radius:50%;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}.ring-one{width:180px;height:180px}.ring-two{width:300px;height:300px}.ring-three{width:420px;height:420px}.center-star{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:91px;height:91px;display:grid;place-items:center;border-radius:25px;background:linear-gradient(145deg,#b594ff,#5c5ef0);font-size:55px;box-shadow:0 0 70px #7554ff80}.avatar{position:absolute;z-index:2;background:#262a46;border:1px solid #7f74c54d;display:grid;place-items:center;border-radius:19px;width:61px;height:61px;font-size:29px;box-shadow:0 10px 26px #050713}.avatar-a{left:10%;top:18%;transform:rotate(-10deg)}.avatar-b{right:12%;top:18%;transform:rotate(10deg)}.avatar-c{right:15%;bottom:11%;transform:rotate(-6deg)}.float-message{position:absolute;z-index:3;background:#25243b;border:1px solid #7163a46b;box-shadow:0 10px 20px #04050b88;color:#e5dcff;padding:12px 15px;border-radius:13px;font-size:11px}.float-one{top:23%;right:-5%}.float-one span{color:#aa91ff}.float-two{bottom:8%;left:0}.chat-status{font-size:12px;color:#c4c9e2;display:flex;align-items:center;gap:10px;margin-bottom:15px}.chat-feed{height:360px;overflow:auto;display:flex;flex-direction:column;gap:9px;padding:15px;background:#0e1323;border:1px solid #33384c;border-radius:13px}.system-msg{align-self:center;color:#8c94af;font-size:11px;text-align:center;margin:8px}.message{max-width:85%;padding:11px 13px;border-radius:13px;font-size:13px;overflow-wrap:anywhere;line-height:1.5}.mine{align-self:flex-end;background:#6855c7;color:white;border-bottom-right-radius:3px}.theirs{align-self:flex-start;background:#28304b;color:#e6e9fb;border-bottom-left-radius:3px}.shared-tags{min-height:20px;color:#bba9ff;font-size:11px;margin:10px 0}.message-form{display:flex;gap:9px;margin-top:5px}.message-form input{background:#101526;color:#fff;border:1px solid #343a52;border-radius:11px;min-width:0;flex:1;padding:14px}.message-form button{border:0;color:white;background:#7963ed;border-radius:11px;width:48px}.chat-buttons{display:flex;gap:7px;margin-top:12px;flex-wrap:wrap}.next-button{width:auto;flex:1;min-width:130px}.secondary-button{border:1px solid #343a52;background:#242a41;color:#c6c8dc;border-radius:11px;font-size:11px;font-weight:700;padding:13px 11px}.secondary-button:hover{background:#333954}footer{border-top:1px solid #ffffff15;display:flex;justify-content:space-between;gap:20px;padding:22px 0 35px;color:#888fa8;font-size:11px;line-height:1.7}footer strong{color:#c3c6dd}footer>div{max-width:700px}.toast{position:fixed;left:50%;bottom:25px;transform:translateX(-50%);background:#292640;border:1px solid #8d75f5;padding:13px 18px;border-radius:12px;color:white;box-shadow:0 14px 50px #0008;font-size:13px;z-index:10}@media(max-width:920px){.layout{grid-template-columns:1fr;gap:20px;padding-top:35px}.intro{min-height:0;padding-top:0}.art{display:none}.panel{max-width:620px;width:100%;margin:0 auto 20px}.feature-chips{margin-bottom:10px}h1{font-size:60px}}@media(max-width:520px){.app{padding:0 17px}.topbar{height:70px}.header-right{font-size:10px}.layout{padding-top:26px}.intro .eyebrow{font-size:9px}h1{font-size:46px;letter-spacing:-2px}.tagline{font-size:14px}.panel{padding:19px;border-radius:19px}.panel h2{font-size:23px}.feature-chips{gap:5px}.feature-chips span{font-size:10px;padding:7px}.secondary-button{font-size:10px}footer{flex-direction:column}}

/* Orbit v0.2 — chat-first application shell */
.app{max-width:1680px;padding:0 26px}.topbar{height:74px}.workspace{display:grid;grid-template-columns:minmax(290px,345px) minmax(0,1fr);gap:20px;min-height:calc(100vh - 175px);padding:22px 0 26px}.filter-panel,.conversation-panel{border:1px solid #ffffff19;border-radius:22px;background:linear-gradient(155deg,#191c31 0%,#111626 68%);box-shadow:0 18px 65px #0004}.filter-panel{padding:24px;display:flex;flex-direction:column;min-width:0}.sidebar-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:26px}.sidebar-heading h2{font-size:22px;letter-spacing:-.9px;margin:9px 0 0}.filter-symbol{font-size:20px;color:#ab98fe;background:#7963ed23;border:1px solid #7963ed45;width:39px;height:39px;border-radius:12px;display:grid;place-items:center}.filter-panel .field{margin-bottom:23px}.filter-panel .chip{padding:9px 10px}.sidebar-note{font-size:11px;line-height:1.6;color:#858ea9;margin:12px 2px}.sidebar-bottom{margin-top:auto;display:flex;align-items:center;gap:10px;padding-top:16px;border-top:1px solid #ffffff12;color:#a3a9c3;font-size:11px}.sidebar-beta{margin-left:auto;color:#b7a5fe;font-weight:800}.conversation-panel{display:flex;flex-direction:column;min-width:0;overflow:hidden}.conversation-top{height:91px;padding:19px 28px;border-bottom:1px solid #ffffff15;display:flex;align-items:center;gap:16px}.conversation-avatar{width:47px;height:47px;flex:0 0 auto;border-radius:16px;background:linear-gradient(125deg,#a582ff,#5358e9);box-shadow:0 0 35px #775cf955;display:grid;place-items:center;font-size:28px}.conversation-title{flex:1;min-width:0}.conversation-title h2{font-size:21px;letter-spacing:-.6px;margin:7px 0 0}.conversation-label,.session-tag{font-size:10px;font-weight:800;letter-spacing:1px;border:1px solid #836ef547;color:#b9a8ff;border-radius:50px;padding:8px 10px}.welcome-view{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:30px 24px 44px;min-height:550px}.welcome-view h1{font-size:clamp(32px,3.8vw,56px);margin:14px 0;letter-spacing:-2px}.welcome-view p{color:#a4abc6;max-width:530px;line-height:1.8;margin:0 0 26px}.welcome-art{height:220px;width:340px;max-width:100%;position:relative}.welcome-ring{border:1px solid #8d73f544;border-radius:50%;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}.welcome-ring.outer{width:260px;height:210px}.welcome-ring.inner{width:185px;height:160px}.welcome-center{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:94px;height:94px;border-radius:28px;display:grid;place-items:center;font-size:60px;background:linear-gradient(145deg,#aa86ff,#5c60ef);box-shadow:0 0 55px #7357ff88}.welcome-bubble{position:absolute;padding:10px 13px;background:#252643;border:1px solid #8472bc88;border-radius:13px;font-size:12px;box-shadow:0 14px 24px #0005}.welcome-bubble.b1{top:10px;left:3px;transform:rotate(-6deg)}.welcome-bubble.b2{top:35px;right:-6px;transform:rotate(7deg)}.welcome-bubble.b3{bottom:5px;left:26px;transform:rotate(5deg)}.welcome-cta{background:linear-gradient(110deg,#9e79ff,#6761f6);border:0;border-radius:13px;color:white;padding:17px 34px;font-weight:800;box-shadow:0 12px 32px #7962ef5a}.welcome-cta:hover{filter:brightness(1.12);transform:translateY(-2px)}.welcome-cta span{margin-left:18px}.welcome-chips{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-top:25px}.welcome-chips span{color:#aeb4d0;background:#ffffff08;border:1px solid #ffffff16;padding:9px 11px;border-radius:30px;font-size:11px}.chat-view{flex:1;display:flex;flex-direction:column;min-height:550px;padding:18px 26px 20px}.chat-status{margin-bottom:12px}.session-tag{margin-left:auto;color:#9199b8;border-color:#ffffff20}.chat-view .chat-feed{flex:1;height:auto;min-height:340px;border-radius:15px;padding:20px}.chat-view .message{font-size:14px;padding:12px 16px}.chat-view .message-form input{padding:17px}.chat-view .chat-buttons{margin-top:13px}.chat-view .next-button{max-width:380px}.filters-locked select,.filters-locked input,.filters-locked .chip{pointer-events:none;opacity:.48}.filters-locked .age-gate,.filters-locked #startBtn{display:none}.filters-locked #filterNote::before{content:'● Matching active. ';color:#45dfac}footer{padding:14px 0 24px}footer>div{max-width:900px}
@media(max-width:900px){.workspace{grid-template-columns:minmax(260px,315px) minmax(0,1fr);gap:13px}.app{padding:0 14px}.filter-panel{padding:17px}.conversation-top{padding:17px}.conversation-title h2{font-size:17px}.chat-view{padding:14px}.welcome-view h1{font-size:33px}.welcome-art{transform:scale(.8);margin:-12px}}
@media(max-width:700px){.workspace{grid-template-columns:1fr}.filter-panel{order:2}.conversation-panel{order:1;min-height:550px}.conversation-top{height:77px}.chat-view{min-height:480px}.chat-view .chat-feed{min-height:300px}.filter-panel .field{margin-bottom:17px}.welcome-view{min-height:450px}.session-tag,.conversation-label{display:none}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important}}

/* v0.3 interest input and queue guidance */
.interest-entry{display:flex;gap:8px;min-width:0}.interest-entry input{min-width:0;flex:1;background:#101425;border:1px solid #34395a;color:#fff;padding:11px 12px;border-radius:10px;outline:none}.interest-entry input:focus{border-color:#9981ff;box-shadow:0 0 0 3px #7866ec30}.interest-entry button{border:1px solid #8671f3;background:#6e57dd;color:white;border-radius:10px;padding:0 15px;font-weight:700}.custom-interest-list{margin-top:9px}.interest-hint,.queue-help{font-size:12px;line-height:1.5;color:#a4acca;margin:8px 0 0}.queue-help{padding:10px 12px;background:#211d3b;border:1px solid #55478d;border-radius:10px;margin:10px 0}.custom-interests{margin-top:12px}

/* Stable local release: clearer connection states and consistent lockable controls */
.typing-indicator{min-height:18px;margin:5px 0;color:#ac9ef5;font-size:12px;font-style:italic}
.chat-status .pulse-dot.is-waiting{background:#ffc36b;box-shadow:0 0 12px #ffc36b}
.filters-locked #addInterest{pointer-events:none;opacity:.45}
.filters-locked #customInterest{pointer-events:none;opacity:.45}
.queue-help{margin-top:12px;min-height:35px}
#chatFeed{overscroll-behavior:contain}
@media(min-width:1200px){.app{max-width:1800px}.chat-view .chat-feed{min-height:450px}}


/* Orbit v0.4 — quiet typing indicator and accessible reporting dialog */
.composer-meta{display:flex;justify-content:space-between;gap:8px;align-items:center;font-size:11px;color:#8d96b5;margin:5px 2px 9px}
#characterCount{font-variant-numeric:tabular-nums;white-space:nowrap}
.typing-indicator{display:flex;align-items:center;gap:6px;font-style:normal;margin:9px 1px 3px;min-height:20px}
.typing-dots{display:inline-flex;align-items:center;gap:3px}
.typing-dots i{display:block;width:4px;height:4px;border-radius:50%;background:#a68aff;animation:typingBounce 1.1s infinite ease-in-out}
.typing-dots i:nth-child(2){animation-delay:.15s}.typing-dots i:nth-child(3){animation-delay:.3s}
@keyframes typingBounce{0%,60%,100%{transform:translateY(0);opacity:.45}30%{transform:translateY(-3px);opacity:1}}
.report-dialog{background:#171b2f;color:#f3f1ff;border:1px solid #6d5daa;border-radius:23px;width:min(440px,calc(100vw - 28px));padding:25px;box-shadow:0 25px 95px #000c;max-height:calc(100dvh - 30px);overflow-y:auto}
.report-dialog::backdrop{background:rgba(4,5,14,.75);backdrop-filter:blur(5px)}
.report-head{display:flex;align-items:center;justify-content:space-between}
.report-symbol{display:grid;place-items:center;width:40px;height:40px;border-radius:13px;background:#885de32b;color:#d2bfff;font-size:24px}
.dialog-close{background:none;border:0;color:#b9bfd8;font-size:27px;padding:0 6px}
.report-dialog h2{font-size:26px;letter-spacing:-1.2px;margin:14px 0 7px}
.report-dialog p{line-height:1.6;color:#a7adc9;font-size:12px;margin:0 0 16px}
.report-options{border:0;padding:0;margin:0 0 12px;display:grid;gap:7px}
.report-options legend{font-size:12px;font-weight:700;margin-bottom:8px}
.report-options label{display:flex;align-items:center;gap:9px;padding:10px 12px;border:1px solid #363b56;background:#101426;border-radius:10px;font-size:12px;cursor:pointer}
.report-options input{accent-color:#9a79ff}
.report-extra{display:block;font-size:12px;font-weight:700;margin:8px 0}
.report-dialog textarea{width:100%;resize:vertical;background:#101526;border:1px solid #363b56;border-radius:10px;color:#fff;padding:11px;font:inherit;font-size:12px;min-height:70px;outline:none}
.report-dialog textarea:focus{border-color:#9880ff}
.report-actions{display:flex;gap:9px;justify-content:flex-end;margin-top:15px}
.report-actions .primary-button{width:auto;flex:1;padding:13px 15px;font-size:12px}
.report-actions .secondary-button{font-size:12px;padding:12px 15px}
@media(max-width:520px){.composer-meta{font-size:10px}.report-dialog{padding:18px}}
@media(prefers-reduced-motion:reduce){.typing-dots i{animation:none}}

/* v0.4.3: visible connection state and quick local self-test link. */
.match-health{background:#151c32;border:1px solid #3a456d;border-radius:12px;padding:12px 14px;margin-top:14px;font-size:12px;line-height:1.55;color:#c6cced;overflow-wrap:anywhere}
.match-health[data-status=waiting]{border-color:#9272dc;color:#dbccff}
.match-health[data-status=connected]{border-color:#38a887;color:#a7eed8}
.match-health[data-status=error]{border-color:#b85c70;color:#ffb6c5}
.sidebar-diagnostic{font-size:10px;white-space:nowrap}
@media(max-width:440px){.sidebar-bottom{gap:6px}.sidebar-diagnostic{font-size:9px}}

/* v0.5: configurable interest and region timers */
.wait-card{background:linear-gradient(150deg,#242044,#171b30);border:1px solid #806bd855;padding:14px 14px 10px;border-radius:15px;margin:0 0 20px}
.wait-card strong{color:#f1eaff;font-size:13px}
.wait-card p{color:#aaa9ce;font-size:11px;line-height:1.55;margin:9px 0 14px}
.wait-setting{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:11px 0}
.wait-setting label{font-size:12px;color:#ebe7ff;line-height:1.35}
.wait-input{display:flex;align-items:center;gap:6px;flex:none}
.wait-input input{width:61px;padding:9px 5px;text-align:center;background:#101526;border:1px solid #6754a3;border-radius:9px;color:#fff;font:inherit;font-size:13px;outline:none}
.wait-input input:focus{border-color:#b69afa;box-shadow:0 0 0 3px #8d6fff36}
.wait-input span{font-size:11px;color:#b3a9df}
.wait-timers{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}
.wait-timers span{background:#6a54c327;border:1px solid #8a6be364;color:#d8ccff;padding:8px 10px;border-radius:11px;font-size:11px;font-variant-numeric:tabular-nums}
.filters-locked .wait-card{opacity:.66}

.strict-choices{display:grid;gap:7px;margin-top:13px}
.strict-choices label{display:flex;align-items:center;gap:8px;font-size:11px;color:#c8bee8;cursor:pointer}
.strict-choices input{accent-color:#a98cff}

/* v0.5.1: make active interests and strict-match status unmistakable */
.selected-interest-summary{font-size:11px;line-height:1.6;color:#d1c6ff;background:#7455cb18;border:1px solid #8c70d64d;border-radius:10px;padding:9px 11px;margin:9px 0 0;overflow-wrap:anywhere}
.search-criteria{font-size:11px;line-height:1.5;color:#d7ccff;background:#7259c825;border:1px solid #856ad750;border-radius:10px;padding:10px 12px;margin:0 0 11px;overflow-wrap:anywhere}


/* v0.5.2 — Desktop app fits the viewport, with independently scrollable panels.
   This is deliberately CSS-only: matchmaking logic and geographic filters are unchanged. */
@media (min-width: 701px) {
  .app {
    height: 100vh;
    height: 100dvh;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
  }
  .topbar { flex: 0 0 70px; min-height: 0; }
  .workspace {
    flex: 1 1 auto;
    min-height: 0;
    height: 0;
    overflow: hidden;
    padding: 12px 0;
    align-items: stretch;
  }
  .filter-panel {
    min-height: 0;
    height: 100%;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-width: thin;
    scrollbar-color: #6456a1 #15192c;
  }
  .conversation-panel {
    min-height: 0;
    height: 100%;
  }
  .conversation-top { flex: 0 0 74px; height: 74px; }
  .chat-view {
    min-height: 0;
    overflow: hidden;
    flex: 1 1 0;
    padding: 12px 20px 14px;
  }
  .chat-view .chat-feed {
    flex: 1 1 0;
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-width: thin;
    scrollbar-color: #6456a1 #0e1323;
  }
  .chat-status,.search-criteria,.queue-help,.wait-timers,.typing-indicator,
  .shared-tags,.composer-meta,.message-form,.chat-buttons,.under-button { flex-shrink: 0; }
  .chat-status { margin-bottom: 8px; }
  .search-criteria { padding: 7px 11px; margin-bottom: 7px; }
  .chat-view .message-form input { padding: 12px 14px; }
  .chat-view .chat-buttons { margin-top: 8px; }
  .chat-view .under-button { margin-top: 6px; }
  .chat-view .shared-tags { margin: 6px 0; }
  .chat-view .composer-meta { margin: 4px 2px 6px; }
  footer { flex: 0 0 auto; padding: 5px 0 8px; line-height: 1.4; }
}

/* On narrow screens the conversation remains compact, while preferences can
   be reached below it without making the conversation itself page-length. */
@media (max-width: 700px) {
  .conversation-panel {
    height: calc(100vh - 91px);
    height: calc(100dvh - 91px);
    min-height: 360px;
  }
  .chat-view { min-height: 0; overflow: hidden; padding: 12px; }
  .chat-view .chat-feed { min-height: 0; flex: 1 1 0; overflow-y: auto; }
  .conversation-top { flex: 0 0 70px; height: 70px; }
  .filter-panel { height: auto; min-height: 0; overflow: visible; }
  .chat-view .message-form input { padding: 12px; }
  .chat-view .chat-buttons { margin-top: 8px; }
  .chat-view .under-button { margin-top: 7px; }
  .chat-view .search-criteria { padding: 7px 9px; }
}

/* Orbit v0.6 social additions: independent of the existing match layout. */
.header-action { background:#22243a; border:1px solid #3b3b5b; border-radius:13px; color:#f5f1ff; padding:9px 13px; font:inherit; font-size:12px; font-weight:750; cursor:pointer; max-width:200px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.header-action:hover { border-color:#9580fa; background:#302a53; }
.friend-badge { display:inline-flex; align-items:center; justify-content:center; min-width:19px; height:19px; padding:0 4px; border-radius:9px; background:#6053c8; color:white; margin-left:4px; }
.peer-name { color:#bfb1fc; font-size:12px; font-weight:700; margin-top:3px; }
.orbit-dialog { width:min(92vw,510px); max-height:85vh; overflow:auto; border:1px solid #474164; border-radius:21px; background:#191b2b; color:#f5f5ff; padding:0; box-shadow:0 20px 80px #000b; }
.orbit-dialog::backdrop { background:rgba(4,5,15,.76); }
.orbit-dialog-body { padding:26px; display:flex; flex-direction:column; gap:13px; }
.orbit-dialog-body h2 { font-size:23px; margin:5px 0; }
.orbit-dialog-body h3 { font-size:15px; margin:8px 0 0; }
.orbit-dialog-body p { color:#acb2cc; font-size:13px; line-height:1.6; margin:0; }
.orbit-dialog-body label { font-size:12px; font-weight:700; }
.orbit-dialog-body input { padding:13px 14px; font-size:14px; border-radius:11px; background:#0d1020; border:1px solid #343852; color:#f3f2ff; min-width:0; }
.orbit-dialog-body input:focus { outline:2px solid #8f75ff; }
.orbit-dialog-body button { cursor:pointer; }
.orbit-dialog-body .secondary-button { padding:11px 13px; }
.social-dialog-heading { display:flex; justify-content:space-between; align-items:start; }
.social-close { font-size:24px; background:transparent; border:0; color:#c4c1d8; padding:0 6px; }
.social-submit { margin-top:4px; }
.recovery-panel { display:flex; flex-direction:column; gap:12px; background:#121625; border:1px solid #353650; padding:17px; border-radius:14px; margin-top:8px; }
.orbit-dialog-body .prototype-disclosure { font-size:11px; color:#aaa0c8; }
.social-list { display:flex; flex-direction:column; gap:7px; }
.friend-row { display:flex; align-items:center; gap:12px; border:1px solid #343650; background:#111525; padding:11px; border-radius:13px; }
.friend-avatar { background:#6754c7; color:white; border-radius:50%; min-width:33px; height:33px; display:grid; place-items:center; font-weight:800; }
.friend-info { display:flex; flex-direction:column; min-width:0; flex:1; gap:2px; }
.friend-info strong { font-size:13px; white-space:nowrap; text-overflow:ellipsis; overflow:hidden; }
.friend-info small { color:#a9aac2; font-size:11px; }
.friend-info .friend-online { color:#62eac2; }
.friend-actions { display:flex; gap:6px; }
.friend-actions button { padding:7px 9px !important; font-size:11px; }
.empty-list { padding:12px; border:1px dashed #373957; border-radius:11px; }
@media (max-width:700px) { .header-action { padding:7px; max-width:130px; font-size:10px; } .friend-badge { min-width:16px; height:16px; } .header-badge { display:none; } .friend-row { flex-wrap:wrap; } .friend-actions { margin-left:auto; } }

/* v0.7 optional Google identity card; keeps original chat layout untouched. */
.google-account-panel { margin: 18px 0; padding: 18px; border: 1px solid rgba(142,126,240,.26); border-radius: 16px; background: rgba(102,80,194,.085); }
.google-account-panel h3 { margin: 0 0 8px; color: #f5f3ff; font-size: 1rem; }
.google-account-panel p { margin: 0 0 14px; color: #b7bbd4; line-height: 1.5; }
.google-account-panel small { display: block; margin-top: 12px; color: #939bb7; line-height: 1.5; }
.google-signin-wrap { min-height: 0; max-width: 100%; overflow: hidden; }
.google-account-panel .secondary-button { margin-top: 5px; }


/* Orbit v0.8: full-height chat workspace. Chat messages scroll; composer stays in view. */
@media (min-width:701px) {
  .app {max-width:none; width:100%; padding:0 clamp(14px,2vw,36px);}
  .workspace {grid-template-columns:clamp(292px,23vw,360px) minmax(0,1fr); gap:16px;}
  .chat-view .chat-feed {min-height:0; flex:1 1 0;}
  .conversation-panel {min-width:0;}
}
.mobile-filter-open,.mobile-filter-close,.drawer-scrim {display:none;}
@media(max-width:700px){
  html,body {height:100%; overflow:hidden; overscroll-behavior:none;}
  body {min-height:0;}
  .app {height:100vh;height:100dvh;max-height:100dvh;display:flex;flex-direction:column;overflow:hidden;padding:0;}
  .topbar {flex:0 0 56px;height:56px;padding:0 13px;gap:8px;}
  .brand {font-size:23px;gap:7px;} .brand-icon {width:31px;height:31px;font-size:19px;border-radius:10px;}
  .header-right {gap:6px;} .header-right .live-dot, #onlineCount {display:none;}
  .header-action {max-width:94px;padding:7px 8px;font-size:10px;}
  .workspace {flex:1 1 auto;height:0;min-height:0;display:block;overflow:hidden;padding:0;margin:0;}
  .conversation-panel {height:100%;min-height:0;border:0;border-top:1px solid #ffffff14;border-radius:0;background:linear-gradient(145deg,#15182a,#0b1020 60%);box-shadow:none;}
  .conversation-top {flex:0 0 61px;height:61px;min-height:0;padding:9px 12px;gap:9px;}
  .mobile-filter-open {display:inline-flex;align-items:center;gap:4px;flex:0 0 auto;border:1px solid #61588d;border-radius:12px;background:#2a2348;color:#e8deff;padding:10px;font-size:12px;font-weight:800;}
  .conversation-avatar {width:32px;height:32px;border-radius:10px;font-size:20px;}
  .conversation-title .panel-kicker {display:none;}
  .conversation-title h2 {font-size:14px;letter-spacing:-.2px;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .peer-name {font-size:11px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .chat-view {flex:1 1 0;height:0;min-height:0;padding:8px 11px max(9px,env(safe-area-inset-bottom));display:flex;flex-direction:column;overflow:hidden;}
  .chat-status {flex:0 0 auto;margin:0 0 5px;font-size:11px;}
  .search-criteria {flex:0 0 auto;font-size:10px;line-height:1.25;padding:6px 8px;margin:0 0 6px;max-height:48px;overflow:hidden;}
  .chat-view .chat-feed {flex:1 1 0;min-height:0;height:0;overflow-y:auto;overscroll-behavior:contain;border-radius:14px;padding:13px 11px;gap:9px;}
  .chat-view .message {font-size:14px;max-width:88%;padding:10px 13px;}
  .chat-view .system-msg {font-size:11px;}
  .queue-help,.wait-timers,.typing-indicator {flex:0 0 auto;margin:3px 0;font-size:10px;}
  .shared-tags {flex:0 0 auto;min-height:0;max-height:22px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin:4px 1px 2px;font-size:10px;}
  .composer-meta {flex:0 0 auto;margin:0 1px 4px;font-size:9px;}
  .message-form {flex:0 0 auto;margin:0;gap:7px;}
  .chat-view .message-form input {min-height:48px;padding:10px 13px;border-radius:17px;font-size:14px;}
  .message-form button {flex:0 0 48px;width:48px;border-radius:15px;}
  .chat-buttons {flex:0 0 auto;display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:6px;margin-top:7px;}
  .chat-view .next-button {min-width:0;max-width:none;padding:10px 7px;font-size:12px;grid-column:auto;}
  .chat-buttons .secondary-button {min-height:43px;padding:7px 5px;font-size:10px;}
  .chat-buttons #stopBtn {grid-column:1/-1;min-height:34px;padding:5px 10px;background:transparent;}
  .chat-view .under-button {display:none;}
  .welcome-view {flex:1 1 0;min-height:0;padding:22px 16px 30px;overflow:auto;}
  .welcome-art {height:155px;transform:scale(.7);margin:-12px 0;} .welcome-view h1 {font-size:clamp(29px,8vw,41px);}
  .welcome-view p {font-size:13px;}
  .filter-panel {display:flex;position:fixed;z-index:81;left:0;top:0;bottom:0;width:min(88vw,380px);height:100dvh;max-height:100dvh;overflow-y:auto;overscroll-behavior:contain;order:initial;border-radius:0 19px 19px 0;transform:translateX(-110%);transition:transform .2s ease;box-shadow:0 15px 70px #000a;}
  .filters-open .filter-panel {transform:translateX(0);}
  .drawer-scrim:not([hidden]) {display:block;position:fixed;inset:0;z-index:80;background:#030510b8;}
  .mobile-filter-close {display:block;align-self:flex-end;border:1px solid #696087;border-radius:9px;background:#22253e;color:#eee8ff;padding:8px 12px;margin:0 0 12px;}
  footer {display:none;}
}
@media(max-height:700px) and (max-width:700px){
  .topbar {flex-basis:48px;height:48px;} .conversation-top {flex-basis:53px;height:53px;}
  .chat-buttons #stopBtn {grid-column:auto;} .chat-buttons {grid-template-columns:1.5fr 1fr 1fr 0.65fr;}
  .chat-buttons .secondary-button {font-size:9px;}
  .chat-status {margin-bottom:3px;} .search-criteria {margin-bottom:4px;}
}
@media(prefers-reduced-motion:reduce){.filter-panel{transition:none;}}

/* Orbit v0.9: persistent friend conversations */
.dm-feed { min-height:230px; max-height:min(48vh,450px); overflow-y:auto; padding:12px; display:flex; flex-direction:column; gap:9px; border:1px solid #343650; border-radius:13px; background:#0c1020; }
.dm-bubble { white-space:pre-wrap; overflow-wrap:anywhere; max-width:85%; padding:10px 13px; border-radius:13px; background:#30364e; align-self:flex-start; color:#fff; font-size:14px; }
.dm-bubble.dm-mine { background:#6046a8; align-self:flex-end; }
.dm-form { display:flex; gap:8px; }
.dm-form input { flex:1; min-width:0; }
.friend-actions { flex-wrap:wrap; }

/* v1.0 social discovery tools */
.friend-tools{display:grid;gap:9px;padding:12px 0}.friend-tools label{font-size:12px;font-weight:650;color:#c5bee9}.friend-tools input:not([type=checkbox]){width:100%;min-width:0;border:1px solid #4d4775;border-radius:9px;background:#131327;color:#f4f0ff;padding:10px}.friend-code-row{display:flex;gap:8px;align-items:center}.friend-code-row input{flex:1}.friend-code-row button{flex-shrink:0}.friend-check{display:flex;align-items:center;gap:8px}.blocked-manager{margin-top:18px;padding:10px;border:1px solid #4d4775;border-radius:10px}.blocked-manager summary{cursor:pointer;font-weight:650}@media(max-width:500px){.friend-code-row{flex-wrap:wrap}.friend-code-row button{width:100%}}

/* v1.1 account data tools and accessible DM actions */
.account-data-panel { margin-top:18px; padding:14px; border:1px solid rgba(172,156,255,.25); border-radius:12px; }
.account-data-panel button { margin:5px 5px 5px 0; }
.dm-help { font-size:12px; opacity:.78; }
.dm-bubble[role="button"] { cursor:pointer; }
.dm-bubble[role="button"]:focus-visible { outline:2px solid #a894ff; outline-offset:3px; }

.orbit-legal-footer{padding:12px 20px;text-align:center;color:#aab5d0;font-size:12px}.orbit-legal-footer a{color:inherit;margin:0 5px;text-decoration:underline}

/* =======================================================================
   Orbit v1.4 — Social + Safety interface, based on the approved mockup.
   The actual interface is responsive and keeps the stable match engine.
   No CSS transforms are applied to text or modal headings.
   ======================================================================= */
:root {
  font-family: "Segoe UI", Arial, sans-serif;
  font-synthesis: none;
  --orbit-panel: #121630;
  --orbit-surface: #161b38;
  --orbit-outline: #3c3c73;
  --orbit-purple: #7953ee;
  --orbit-purple-bright: #9774ff;
  --orbit-muted: #b9bfdc;
}
html { font-size: 16px; }
body { background: radial-gradient(ellipse 60% 50% at 25% -12%,#2b1a6f 0%,transparent 75%),#090c1c; }
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible {outline:2px solid #b9a0ff; outline-offset:2px;}
.topbar {border-bottom:1px solid #ffffff1c; padding-inline:12px; gap:16px;}
.brand {letter-spacing:-.025em; font-weight:800;}
.brand-icon {background:linear-gradient(145deg,#9171ff,#532ed4);box-shadow:0 4px 24px #7656fd62;}
.app-nav {display:flex;align-items:center;gap:5px;margin-inline:clamp(16px,4vw,65px) auto;}
.app-nav .nav-link,.app-nav .nav-current {display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:8px 16px;border-radius:12px;border:1px solid transparent;background:transparent;text-decoration:none;color:#c9cae5;font-size:13px;font-weight:650;letter-spacing:normal;white-space:nowrap;}
.app-nav .nav-current {color:#fff;background:#6f4be0;border-color:#9273ff5c;box-shadow:0 2px 18px #6c43d62e;}
.app-nav .nav-link:hover{color:#fff;background:#28254b;border-color:#ffffff26;}
.header-action{border-color:#4c4477;background:#262341;font-weight:700;}
.header-action.has-unread{border-color:#a991ff;box-shadow:0 0 0 2px #7953ee33;}
.header-badge{border:1px solid #594b8b;background:#231a48;color:#ddd1ff;letter-spacing:.06em;}
.filter-panel,.conversation-panel{border-color:#58519455;background:linear-gradient(150deg,#171b37,#0e1226 85%);box-shadow:0 10px 45px #02041463;}
.filter-panel h2,.conversation-panel h2,.orbit-dialog h2,.orbit-dialog h3,.orbit-dialog h4 {
  font-family:"Segoe UI",Arial,sans-serif !important;
  letter-spacing:normal !important;
  font-stretch:normal;
  font-weight:700;
  line-height:1.3;
  text-shadow:none;
  transform:none;
}
.panel-kicker{letter-spacing:.16em;}
.primary-button,.next-button{background:linear-gradient(120deg,#8d67f8,#6b48e2);border-color:#a28aff44;box-shadow:0 7px 18px #5e3fd631;}
.primary-button:hover,.next-button:hover{background:linear-gradient(120deg,#a07cff,#7952ed);}
.secondary-button{border-color:#444568;background:#242a46;color:#f4efff;}
.secondary-button:hover{background:#343055;border-color:#8d73ea;}

/* Professional social dialogs: no cramped titles or clipped friend actions. */
.orbit-dialog {width:min(94vw,690px);max-height:min(91dvh,940px);border:1px solid #62539a;border-radius:22px;background:linear-gradient(153deg,#191d3a 0%,#11162d 77%);box-shadow:0 24px 100px #000b;color:#f7f6ff;}
.orbit-dialog::backdrop {background:#030513cc;backdrop-filter:blur(5px);}
.orbit-dialog-body{padding:clamp(18px,3vw,28px);gap:14px;}
.orbit-dialog-body h2{font-size:clamp(22px,2.3vw,27px);margin:0;letter-spacing:0;}
.orbit-dialog-body h3{font-size:15px;margin:15px 0 8px;}
.orbit-dialog-body p{font-size:13px;color:#b8bfda;line-height:1.55;}
.social-dialog-heading{align-items:center;gap:14px;min-height:45px;}
.social-dialog-heading>div{min-width:0;}
.social-dialog-heading h2{white-space:normal;overflow-wrap:anywhere;letter-spacing:normal!important;}
.orbit-dialog-body .dialog-close {flex:none;min-width:38px;min-height:38px;background:#222947;border:1px solid #565077;color:#d6d2ee;border-radius:10px;padding:3px 10px;font-size:21px;line-height:1;}
.orbit-dialog-body .dialog-close:hover{background:#46376e;color:white;}
.orbit-dialog-body input:not([type=checkbox]),.orbit-dialog-body select,.orbit-dialog-body textarea{min-width:0;background:#0d132c;border:1px solid #50447b;border-radius:11px;color:#f7f6ff;padding:11px 12px;font:inherit;font-size:13px;}
.orbit-dialog-body input::placeholder,.orbit-dialog-body textarea::placeholder{color:#8f95b7;opacity:1;}
.friend-tools{background:#1a2042;border:1px solid #4f4779;border-radius:16px;padding:16px;margin-top:2px;gap:10px;}
.friend-tools>label,.friend-tools .friend-check{font-size:12px;color:#ddd8f5;font-weight:700;}
.friend-code-row{display:flex;gap:9px;flex-wrap:nowrap;}
.friend-code-row input {min-width:0;flex:1 1 0;font-family:Consolas,"Courier New",monospace!important;font-size:12px!important;}
.friend-code-row button{flex:none;}
.friend-filter-row{display:grid;grid-template-columns:minmax(0,1fr) 142px;gap:10px;align-items:stretch;margin-top:8px;}
.search-field{display:flex;align-items:center;gap:8px;min-width:0;min-height:40px;padding:0 10px;border:1px solid #50447b;border-radius:11px;background:#0d132c;color:#aaa0e8;}
.search-field span{font-size:22px;line-height:1;flex:none;}
.search-field input{border:0!important;background:transparent!important;outline:0!important;padding:8px 0!important;flex:1;min-width:0;}
.friend-options-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.friend-options-row .friend-check{display:flex;align-items:center;gap:7px;margin-right:auto;white-space:nowrap;}
.friend-options-row .secondary-button{padding:8px 11px;font-size:11px;}
.tiny-note{font-size:11px!important;color:#a6a9cd!important;line-height:1.5;}
.orbit-dialog-body>h3{display:flex;align-items:center;gap:7px;padding-top:6px;border-top:1px solid #ffffff13;}
.orbit-dialog-body>h3 span{font-weight:600;color:#cab6ff;}
.social-list{gap:9px;}
.friend-row{padding:13px;border-radius:13px;border:1px solid #414265;background:#11172e;display:grid;grid-template-columns:40px minmax(0,1fr);column-gap:11px;row-gap:8px;align-items:center;}
.friend-row.friend-pinned{border-color:#8870ce;box-shadow:inset 3px 0 #9476ff;}
.friend-avatar{width:40px;min-width:40px;height:40px;font-size:17px;font-weight:800;background:linear-gradient(140deg,#976dff,#6341d3);}
.friend-info{min-width:0;display:flex;flex-direction:column;gap:4px;}
.friend-info strong{color:#fff;font-size:14px;letter-spacing:normal;white-space:normal;overflow-wrap:anywhere;}
.friend-info small{font-size:11px;}
.friend-actions{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:7px;margin:0!important;min-width:0;}
.friend-actions button{flex:0 0 auto;min-height:32px;white-space:nowrap;padding:7px 11px!important;border-radius:9px;font-size:11px;line-height:1.2;}
.friend-actions .friend-chat{background:#40347b;border-color:#7d6ad0;}
.friend-actions .friend-danger{color:#ffb8c3;border-color:#7d425c;background:#3a2038;}
.friend-actions .friend-danger:hover{background:#682a43;}
.blocked-manager{border-color:#55477f;background:#12172e;padding:12px;margin-top:16px;}
.blocked-manager>summary{color:#e5deff;padding:4px;}
.blocked-manager .friend-row{grid-template-columns:1fr auto;}
.blocked-manager .friend-row strong{font-size:13px;overflow-wrap:anywhere;}
.blocked-manager button{font-size:11px;}

/* Large, readable conversation view inspired by the approved three-panel concept. */
#dmDialog{width:min(96vw,820px);max-height:min(94dvh,960px);overflow:hidden;}
#dmDialog .orbit-dialog-body{height:min(85dvh,820px);max-height:calc(94dvh - 2px);display:flex;flex-direction:column;min-height:360px;}
.dm-heading-main{display:flex;align-items:center;gap:14px;min-width:0;}
.dm-heading-main>div{min-width:0;}
.dm-heading-main h2{font-size:clamp(18px,2vw,23px);overflow-wrap:anywhere;}
.dm-back-icon{width:38px;height:38px;display:grid;place-items:center;border:1px solid #61538f;background:#22264b;border-radius:11px;font-size:28px;color:#bfb2ff;line-height:1;}
.dm-presence{font-size:12px;color:#a9afcf;padding-top:4px;}
.dm-presence.online{color:#69e2b3;}
.dm-toolbar{display:flex;gap:8px;align-items:center;min-height:38px;}
.dm-toolbar .search-field{flex:1;min-height:36px;}
.dm-toolbar button{padding:8px 12px!important;font-size:11px;white-space:nowrap;}
.dm-feed{flex:1 1 0;min-height:0;max-height:none;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#7565b2 #0e142c;background:#0d1229;border:1px solid #393b66;border-radius:15px;padding:16px 18px;gap:13px;}
.dm-date-divider{text-align:center;color:#9fa5c9;font-size:11px;display:flex;align-items:center;gap:16px;justify-content:center;margin:9px 0;}
.dm-date-divider:before,.dm-date-divider:after{content:"";height:1px;background:#343654;flex:1;}
.dm-message{display:flex;flex-direction:column;gap:4px;max-width:min(78%,470px);align-self:flex-start;}
.dm-message.mine{align-self:flex-end;align-items:flex-end;}
.dm-message.theirs{align-items:flex-start;}
.dm-bubble{max-width:100%;padding:11px 14px;background:#2f3659;border:1px solid #454d7b;border-radius:16px 16px 16px 5px;font-size:14px;line-height:1.5;font-weight:500;white-space:pre-wrap;overflow-wrap:anywhere;color:#f7f7ff;}
.dm-message.mine .dm-bubble{background:linear-gradient(135deg,#7e5bee,#6546d8);border-color:#9677f1;border-radius:16px 16px 5px 16px;}
.dm-message-meta{display:flex;gap:10px;align-items:center;font-size:10px;color:#a7a9ca;min-height:18px;}
.dm-mini-action{background:transparent;border:0;color:#aaa9d1;font:inherit;font-size:11px;cursor:pointer;padding:2px 4px;border-radius:5px;}
.dm-mini-action:hover{background:#ffffff1b;color:#fff;}
.dm-report-action{color:#ffadb9;border:1px solid #9b455e60;background:#61203b2a;padding:4px 7px;}
.dm-report-action:hover{background:#79334c;color:#ffe5e8;}
.dm-empty{align-self:center;margin:auto;color:#b9b9dd!important;text-align:center;padding:20px;}
.dm-form{display:flex;gap:9px;flex:none;}
.dm-form input{min-height:48px;flex:1;}
.dm-form .primary-button{width:auto;min-width:93px;padding:10px 13px;font-size:13px;}
.dm-privacy-notice{padding:10px 12px;background:#1a2142;border:1px solid #474c7b;border-radius:10px;font-size:11px!important;color:#bfc6e4!important;flex:none;}
.dm-report-dialog{width:min(92vw,460px);}
.dm-report-dialog .orbit-dialog-body{height:auto;}
.dm-report-dialog select,.dm-report-dialog textarea{display:block;width:100%;}
.report-form-actions{display:flex;gap:10px;justify-content:end;align-items:center;}
.report-form-actions .primary-button{width:auto;min-width:140px;}
.orbit-legal-footer{font-size:11px;line-height:1.5;}

@media(max-width:1000px){
  .app-nav{gap:2px;margin-inline:8px auto;}
  .app-nav .nav-link,.app-nav .nav-current{font-size:11px;padding:8px;}
  .header-right{gap:7px;}
  .header-badge{display:none;}
}
@media(max-width:700px){
  .app-nav{display:none;}
  .topbar{padding:0 9px;}
  .orbit-dialog{max-height:95dvh;width:calc(100vw - 16px);border-radius:16px;}
  .orbit-dialog-body{padding:16px;gap:11px;}
  .orbit-dialog-body h2{font-size:21px;}
  .friend-tools{padding:12px;}
  .friend-filter-row{grid-template-columns:minmax(0,1fr) 116px;}
  .friend-filter-row select{font-size:11px;}
  .friend-options-row{gap:6px;}
  .friend-options-row button{font-size:10px;}
  #dmDialog{width:100vw;max-height:100dvh;height:100dvh;margin:0;border-radius:0;}
  #dmDialog .orbit-dialog-body{height:100dvh;max-height:100dvh;padding:12px 12px max(12px,env(safe-area-inset-bottom));}
  .dm-feed{padding:12px 10px;gap:11px;}
  .dm-message{max-width:89%;}
  .dm-bubble{font-size:13px;padding:10px 12px;}
  .dm-privacy-notice{font-size:10px!important;padding:7px 9px;}
  .dm-heading-main h2{font-size:18px;}
  .dm-form .primary-button{min-width:70px;padding:9px;font-size:12px;}
}
@media(max-width:385px){
  .header-action{font-size:9px;padding:6px;}
  .friend-filter-row{grid-template-columns:1fr;}
  .friend-code-row{flex-wrap:wrap;}
  .friend-code-row button{flex:1;}
  .friend-options-row .friend-check{width:100%;}
}
@media(prefers-reduced-motion:reduce){.orbit-dialog::backdrop{backdrop-filter:none;}}

/* ======================================================================
 ORBIT 1.5 — responsive social + safety product UI
 Retains the original match engine, all existing account/session IDs and data.
 ====================================================================== */
:root{--orbit-surface:#121730;--orbit-surface-2:#1b2245;--orbit-border:#554884;--orbit-glow:#9472ff;--orbit-viewport-height:100dvh;color-scheme:dark;}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;font-kerning:normal;}
body{font-family:Inter,"Segoe UI",system-ui,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;}
button,input,textarea,select{font-family:inherit;letter-spacing:normal;}
button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid #b299ff;outline-offset:3px;}
button{touch-action:manipulation;}
.app{isolation:isolate;}
.topbar{background:linear-gradient(105deg,#251657cb,#0b1028ee 70%);border-bottom:1px solid #6550a55e;}
.brand{letter-spacing:-.8px;font-family:Inter,"Segoe UI",Arial,sans-serif;font-weight:850;}
.brand-icon{box-shadow:0 0 22px #6c49e994;background:linear-gradient(140deg,#9c79ff,#6848ea 72%);}
.app-nav .nav-current,.app-nav .nav-link{border-radius:11px;min-height:37px;}
.app-nav .nav-current{background:linear-gradient(120deg,#6843de,#9a5bfd);border:1px solid #b99fff66;}
.header-action{background:linear-gradient(135deg,#25244c,#1c2343);border:1px solid #66568f;color:#f1eaff;border-radius:13px;min-height:38px;}
.header-action:hover{border-color:#a58aff;background:#343063;}
.conversation-panel{background:linear-gradient(155deg,#191a3b,#0e132c 70%);}
.chat-view .message.mine{background:linear-gradient(130deg,#855af6,#6545d6);}
.chat-view .message.theirs{background:#30395a;}
.chat-feed,.dm-feed{scrollbar-width:thin;scrollbar-color:#7864be #10142d;}
.orbit-dialog{background:linear-gradient(150deg,#1d2045,#111731 83%);border-color:#5f4d9b;box-shadow:0 26px 110px #02020de8;}
.orbit-dialog-body{overscroll-behavior:contain;}
.orbit-dialog-body h2{font-family:Inter,"Segoe UI",system-ui,sans-serif!important;font-weight:750;letter-spacing:-.25px!important;line-height:1.3!important;text-shadow:none!important;transform:none!important;}
.friend-tools{background:linear-gradient(125deg,#23264f,#1c2342);border:1px solid #594b91;}
.friend-code-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:stretch;gap:8px;}
.friend-code-row input{width:100%!important;min-width:0!important;max-width:100%;}
.friend-code-row button{width:auto;min-width:71px;white-space:nowrap;}
#friendCodeForm{grid-template-columns:minmax(0,1fr) auto;}
#friendCodeDisplay{font-size:12px!important;overflow:hidden;text-overflow:ellipsis;}
.friend-row{grid-template-columns:44px minmax(0,1fr);background:linear-gradient(135deg,#141a36,#111730);border-color:#4b4479;}
.friend-row:hover{border-color:#8068c0;}
.friend-avatar{width:42px;height:42px;min-width:42px;box-shadow:0 4px 12px #08091a88;}
.friend-actions{display:flex!important;grid-column:1/-1;flex-wrap:wrap;gap:7px;align-items:center;}
.friend-actions button{min-height:36px;display:inline-flex;align-items:center;justify-content:center;}
.friend-actions .friend-danger,.friend-danger{background:#421f39!important;color:#ffc0ce!important;border:1px solid #94435a!important;}
.friend-actions .friend-danger:hover,.friend-danger:hover{background:#6a2b47!important;}
.friend-report{order:8;}
.friend-actions .friend-danger:last-child{order:9;}
.dm-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;}
.dm-heading-main{flex:1;min-width:0;}
.dm-heading-actions{display:flex;flex:none;align-items:center;gap:8px;}
.dm-heading-actions .friend-danger{min-height:39px;padding:8px 13px;font-size:12px;font-weight:700;border-radius:10px;white-space:nowrap;}
.dm-back-icon{flex:none;cursor:pointer;font-family:inherit;}
.dm-feed{display:flex;flex-direction:column;align-items:stretch;gap:12px;background:#0c122a;}
.dm-message{display:flex;flex-direction:column;max-width:min(78%,500px);width:max-content;min-width:0;flex:none;align-self:flex-start;background:none;}
.dm-message.mine{align-self:flex-end;align-items:flex-end;}
.dm-message.theirs{align-self:flex-start;align-items:flex-start;}
.dm-message .dm-bubble{display:block;min-width:0;max-width:100%;width:fit-content;align-self:unset!important;white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px;line-height:1.5;}
.dm-message-meta{width:auto!important;max-width:100%;background:none!important;opacity:1;white-space:nowrap;gap:10px;padding-top:4px;}
.dm-message-meta time{font-variant-numeric:tabular-nums;}
.dm-form{flex:none;min-width:0;}
.dm-form input{font-size:15px;}
.dm-form button{box-shadow:0 6px 20px #6435da66;}
.dm-privacy-notice{background:#1a2245;color:#c4ccea!important;}
.evidence-choice,.appearance-check{display:flex;align-items:flex-start;gap:9px;font-size:12px;line-height:1.5;color:#ced0f3;cursor:pointer;}
.evidence-choice input,.appearance-check input{width:17px;height:17px;flex:none;accent-color:#9165ff;}
.appearance-panel{display:grid;gap:12px;padding:15px;border:1px solid #565084;border-radius:14px;background:#1b2042;}
.appearance-panel h3{margin:0!important;}
.appearance-row{display:grid;grid-template-columns:1fr minmax(130px,190px);align-items:center;gap:12px;}
.appearance-row select{width:100%;}
.orbit-dialog .friend-info strong{font-size:14px;letter-spacing:0;}
.orbit-dialog .blocked-manager>summary{font-size:13px;}
.dm-mini-action{font-size:12px;}
/* Higher contrast and text preferences are deliberately opt-in, local-only. */
:root[data-orbit-text="large"] .orbit-dialog-body,:root[data-orbit-text="large"] .chat-view,:root[data-orbit-text="large"] .filter-panel{font-size:110%;}
:root[data-orbit-text="large"] .dm-message .dm-bubble,:root[data-orbit-text="large"] .friend-info strong{font-size:16px;}
.orbit-high-contrast .orbit-dialog,.orbit-high-contrast .friend-row,.orbit-high-contrast .dm-feed,.orbit-high-contrast .friend-tools{border-color:#a397ec!important;}
.orbit-high-contrast .tiny-note,.orbit-high-contrast .orbit-dialog p{color:#e3e6fc!important;}
.orbit-reduce-motion *{animation-duration:0.01ms!important;transition-duration:0.01ms!important;scroll-behavior:auto!important;}
@media (max-width:700px){
  html,body{min-width:0;}
  body{height:var(--orbit-viewport-height);min-height:0;}
  .app{height:var(--orbit-viewport-height);max-height:var(--orbit-viewport-height);min-height:0;}
  .topbar{height:58px;flex-basis:58px;padding-inline:11px;}
  .brand{font-size:24px;letter-spacing:-.3px;}
  .topbar .brand-icon{width:35px;height:35px;font-size:22px;}
  .topbar .header-action{min-height:35px;font-size:11px;}
  .conversation-top{min-height:63px;flex-basis:63px;}
  .conversation-title h2{font-size:clamp(15px,4.2vw,20px);font-weight:800;letter-spacing:normal;}
  .conversation-avatar{width:35px;height:35px;flex:none;}
  .chat-view{padding:7px 10px max(8px,env(safe-area-inset-bottom));}
  .chat-view .chat-feed{padding:14px 12px;border:1px solid #373e71;min-height:0;}
  .chat-view .message{font-size:15px;line-height:1.4;border-radius:16px;}
  .chat-status{font-size:12px;}
  .search-criteria{font-size:11px;}
  .message-form{gap:8px;}
  .chat-view .message-form input{font-size:16px;min-width:0;min-height:49px;}
  .chat-buttons{display:grid;grid-template-columns:minmax(0,1.5fr) repeat(2,minmax(0,1fr));gap:7px;}
  .chat-buttons #nextBtn{grid-column:1/2;font-size:13px;font-weight:800;min-height:47px;}
  .chat-buttons #addFriendButton{grid-column:2/3;}
  .chat-buttons #blockMatchBtn{grid-column:3/4;}
  .chat-buttons #reportBtn{grid-column:1/3;min-height:37px;}
  .chat-buttons #stopBtn{grid-column:3/4;min-height:37px;background:#242647;}
  .chat-buttons .secondary-button{min-height:47px;font-size:11px;white-space:normal;overflow-wrap:normal;}
  body.orbit-keyboard-open .chat-buttons,body.orbit-keyboard-open .composer-meta,body.orbit-keyboard-open .shared-tags,body.orbit-keyboard-open .queue-help,body.orbit-keyboard-open .wait-timers,body.orbit-keyboard-open .chat-status,body.orbit-keyboard-open .search-criteria {display:none!important;}
  body.orbit-keyboard-open .conversation-top{min-height:47px;height:47px;flex-basis:47px;}
  body.orbit-keyboard-open .chat-view .message-form{margin-top:5px;}
  .orbit-dialog{box-sizing:border-box;width:calc(100vw - 12px);max-width:none;max-height:calc(var(--orbit-viewport-height) - 12px);margin:auto;overflow:hidden;border-radius:16px;}
  .orbit-dialog .orbit-dialog-body{box-sizing:border-box;max-height:calc(var(--orbit-viewport-height) - 14px);overflow-y:auto;overflow-x:hidden;padding:clamp(12px,3vw,16px);}
  #friendsDialog{width:min(100vw - 12px,580px);}
  #friendsDialog .orbit-dialog-body{display:flex;flex-direction:column;align-items:stretch;}
  #friendsDialog .friend-tools{padding:13px 12px;min-width:0;width:100%;}
  #friendsDialog .friend-code-row,#friendsDialog #friendCodeForm{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:7px;min-width:0;width:100%;}
  #friendsDialog .friend-code-row input{width:100%!important;min-width:0!important;max-width:100%!important;min-height:42px;font-size:12px!important;}
  #friendsDialog .friend-code-row button{width:100%!important;min-width:0!important;min-height:39px;font-size:13px!important;}
  #friendsDialog .friend-filter-row{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:8px;width:100%;min-width:0;}
  #friendsDialog .friend-filter-row .search-field{width:100%;min-width:0;}
  #friendsDialog .friend-filter-row select{width:100%;min-height:40px;font-size:13px;}
  #friendsDialog .friend-options-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;}
  #friendsDialog .friend-options-row .friend-check{grid-column:1/-1;width:100%;font-size:13px;}
  #friendsDialog .friend-options-row button{width:100%;min-height:39px;font-size:12px;white-space:normal;}
  .friend-row{display:grid;grid-template-columns:44px minmax(0,1fr);padding:14px;min-width:0;}
  .friend-actions{grid-column:1/-1;gap:8px;}
  .friend-actions button{min-height:41px;padding:9px 12px!important;font-size:12px;}
  #dmDialog{width:100vw;height:var(--orbit-viewport-height);max-height:var(--orbit-viewport-height);border:0;border-radius:0;margin:0;}
  #dmDialog .orbit-dialog-body{height:var(--orbit-viewport-height);max-height:var(--orbit-viewport-height);min-height:0;padding:12px 12px max(12px,env(safe-area-inset-bottom));overflow:hidden;display:flex;}
  .dm-heading{flex:0 0 auto;gap:6px;align-items:center;}
  .dm-heading-main{gap:8px;min-width:0;}
  .dm-heading-main h2{font-size:clamp(15px,4.3vw,19px);max-width:100%;white-space:normal;}
  .dm-heading-actions{gap:6px;}
  .dm-heading-actions .friend-danger{min-height:37px;font-size:11px;padding:7px;}
  .dm-heading-actions .dialog-close{min-width:36px;min-height:36px;}
  .dm-back-icon{width:34px;height:36px;font-size:24px;}
  .dm-toolbar{flex:0 0 auto;gap:6px;}
  .dm-toolbar .search-field{width:100%;min-width:0;}
  .dm-toolbar input{font-size:12px!important;}
  .dm-feed{min-height:0!important;flex:1 1 0!important;height:0!important;padding:12px 10px;gap:11px;}
  .dm-message{min-width:0;width:max-content;max-width:85%;}
  .dm-message .dm-bubble{max-width:100%;width:fit-content;font-size:15px;padding:10px 13px;border-radius:15px;}
  .dm-message-meta{font-size:11px;min-height:19px;}
  .dm-form{flex:0 0 auto;gap:7px;}
  .dm-form input{min-width:0;min-height:48px!important;font-size:16px!important;}
  .dm-form .primary-button{min-width:78px;font-size:12px;}
  #dmSearchNotice,.dm-privacy-notice{font-size:10px!important;line-height:1.35;}
  .dm-privacy-notice{max-height:57px;overflow-y:auto;}
  .appearance-row{grid-template-columns:1fr;}
}
@media(max-width:385px){
  .chat-buttons{grid-template-columns:repeat(2,minmax(0,1fr));}
  .chat-buttons #nextBtn{grid-column:1/2;}
  .chat-buttons #addFriendButton{grid-column:2/3;}
  .chat-buttons #blockMatchBtn{grid-column:1/2;}
  .chat-buttons #reportBtn{grid-column:2/3;}
  .chat-buttons #stopBtn{grid-column:1/-1;}
  .dm-heading-actions .friend-danger{font-size:10px;}
}
@media(max-height:700px) and (max-width:700px){
  .chat-buttons #stopBtn{grid-column:3/4;}
  body.orbit-keyboard-open .chat-feed{min-height:0;}
}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:0.01ms!important;transition-duration:0.01ms!important;scroll-behavior:auto!important;}}
/* Compact mobile sharing controls while keeping each field full-width. */
@media(max-width:700px){
 #friendsDialog .friend-code-row:not(#friendCodeForm){grid-template-columns:repeat(2,minmax(0,1fr))!important;}
 #friendsDialog #friendCodeDisplay{grid-column:1/-1!important;}
 #friendsDialog #copyFriendCode,#friendsDialog #shareFriendCode{grid-column:auto!important;}
}


/* Orbit v1.6: visual-viewport keyboard layout. Native dialog default centering
   uses the layout viewport on some Android browsers, so explicitly anchor it. */
@media (max-width:700px) {
  :root { --orbit-viewport-top: 0px; }
  body.orbit-dm-open {overflow:hidden;overscroll-behavior:none;}
  #dmDialog[open] {
    position:fixed!important;
    inset:var(--orbit-viewport-top) 0 auto 0!important;
    margin:0!important;
    box-sizing:border-box;
    width:100vw!important;
    max-width:100vw!important;
    height:var(--orbit-viewport-height)!important;
    max-height:var(--orbit-viewport-height)!important;
    padding:0!important;
    overflow:hidden!important;
    border:0!important;
    border-radius:0!important;
  }
  #dmDialog[open]>.orbit-dialog-body {
    box-sizing:border-box;
    display:flex!important;
    flex-direction:column;
    width:100%;
    height:100%!important;
    min-height:0!important;
    max-height:100%!important;
    overflow:hidden!important;
    gap:9px;
    padding:10px 12px max(9px,env(safe-area-inset-bottom))!important;
  }
  #dmDialog .dm-heading, #dmDialog .dm-toolbar {flex:none;min-height:0;}
  #dmDialog .dm-feed {
    flex:1 1 auto!important;
    height:auto!important;
    max-height:none!important;
    min-height:0!important;
    overflow-y:auto!important;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
  }
  #dmDialog .dm-form {flex:none;min-height:0;display:flex;}
  #dmDialog .dm-form input {min-height:48px!important;max-height:56px;font-size:16px!important;}
  #dmDialog .dm-form button {min-height:48px;}
  body.orbit-dm-open.orbit-keyboard-open #dmDialog .dm-toolbar,
  body.orbit-dm-open.orbit-keyboard-open #dmDialog #dmSearchNotice,
  body.orbit-dm-open.orbit-keyboard-open #dmDialog #dmDraftInfo,
  body.orbit-dm-open.orbit-keyboard-open #dmDialog .dm-privacy-notice {display:none!important;}
  body.orbit-dm-open.orbit-keyboard-open #dmDialog>.orbit-dialog-body {gap:6px;padding-bottom:5px!important;}
  body.orbit-dm-open.orbit-keyboard-open #dmDialog .dm-heading {min-height:38px;}
  body.orbit-dm-open.orbit-keyboard-open #dmDialog .dm-heading h2 {font-size:16px;line-height:1.2;}
  body.orbit-dm-open.orbit-keyboard-open #dmDialog .dm-presence {display:none;}
  body.orbit-dm-open.orbit-keyboard-open #dmDialog .dm-heading-actions .friend-danger {min-height:34px;}
  body.orbit-dm-open.orbit-keyboard-open #dmDialog .dm-feed {border-radius:11px;}
  .dm-message {max-width:88%;width:max-content;}
  .dm-message .dm-bubble {max-width:100%;width:fit-content;}
}

/* v1.6.2 — first-time matching setup and private, explicit location test */
.nearby-opt-in { display:flex; gap:10px; align-items:flex-start; margin:12px 0 10px; padding:12px; border:1px solid #ffffff1d; border-radius:13px; background:#ffffff08; color:#dad9ef; font-size:13px; line-height:1.5; cursor:pointer; }
.nearby-opt-in input { width:18px; height:18px; min-width:18px; margin:2px 0 0; accent-color:#a98bff; }
.nearby-opt-in small { display:block; margin-top:3px; color:#a8acc7; font-size:11px; }
.nearby-opt-in:has(input:disabled) { opacity:.64; cursor:default; }
.test-location { width:100%; min-height:40px; margin:2px 0 0; }
.location-check-status { font-size:12px; line-height:1.5; margin:9px 0 0; padding:10px 12px; border-radius:10px; background:#ffffff07; color:#b4bbd7; overflow-wrap:anywhere; }
.location-check-status[data-status="error"] { background:#ff627512; color:#ffb3bf; border:1px solid #ff62753b; }
.location-check-status[data-status="success"] { background:#42dba61a; color:#9de9c7; border:1px solid #42dba642; }
.location-check-status[data-status="waiting"] { color:#dacaff; }
@media(max-width:700px) { .welcome-cta { min-height:54px; font-size:15px; } .nearby-opt-in { font-size:13px; } .test-location { font-size:13px; } }

/* v1.6.3 — privacy-safe active match counts and helpful location permissions */
.availability-title{display:block;font-size:12px;margin:0 0 8px;color:#ede6ff}
.availability-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-bottom:9px}
.availability-item{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0;gap:2px;padding:8px 4px;border:1px solid #8b70cf55;border-radius:10px;background:#a384e70d;text-align:center}
.availability-item b{font-size:15px;line-height:1.2;color:#e6d8ff;font-variant-numeric:tabular-nums}
.availability-item span{font-size:10px;line-height:1.25;color:#b8bdd6;overflow-wrap:break-word}
.availability-advice{margin:0;font-size:11px;line-height:1.45;color:#dedcf3}
.availability-footnote{margin:7px 0 0;font-size:10px;line-height:1.45;color:#a6aac6}
.location-help-btn{display:block;width:100%;border:none;background:transparent;text-decoration:underline;color:#bba9f9;text-align:left;padding:9px 3px;cursor:pointer;font-size:12px}
.location-help-text{font-size:12px;line-height:1.5;padding:10px 12px;border:1px solid #8077a855;border-radius:9px;color:#e0d9f8;background:#211c3a}
.location-help-text[hidden]{display:none!important}
@media(max-width:520px){.availability-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.availability-item{padding:6px 4px}.availability-title{margin-bottom:5px}.availability-footnote{font-size:9px}.queue-help{max-height:190px;overflow-y:auto}}

/* v1.6.5: both validated start controls appear on desktop and mobile,
   at the top and bottom of filters. They share visual styling and behaviour. */
#setupView .quick-restart:not(.hidden), #setupView #startBtn {
  display:block;
  width:100%;
  min-height:52px;
}
#setupView .quick-restart:not(.hidden) {margin:0 0 22px;}
#setupView.filters-locked .quick-restart,
#setupView.filters-locked #startBtn {display:none;}


/* Orbit Premium v1.8: distinct from external reference site's visuals. */
.premium-header {border:1px solid rgba(218,189,255,.55)!important;color:#ffe3a4!important;background:rgba(100,60,160,.3)!important}
.premium-inline-link {border:0;background:transparent;color:#e3c0ff;cursor:pointer;font-weight:800}
.premium-field-note {font-size:.78rem;color:var(--muted,#bcbacf);margin:6px 0 13px;line-height:1.5}
.premium-gender-grid {display:grid;grid-template-columns:1fr 1fr;gap:12px}
.premium-gender-grid label {display:grid;gap:8px;font-weight:600;font-size:.8rem}
.premium-gender-grid select {min-width:0;width:100%;background:#18182c;color:#fff;border:1px solid #69627e;padding:12px;border-radius:12px}
.premium-gender-grid select:disabled {opacity:.6;cursor:not-allowed}
.orbit-premium-status {margin:14px 0;padding:16px;background:linear-gradient(130deg,rgba(88,53,139,.25),rgba(30,39,95,.25));border:1px solid rgba(177,140,255,.36);border-radius:16px}
.orbit-premium-status h3 {margin:0 0 8px;color:#f5d88c}.orbit-premium-status p{margin:0 0 12px;font-size:.87rem}
.premium-status-actions{display:flex;flex-wrap:wrap;gap:10px}
.premium-dialog {width:min(760px,calc(100vw - 24px));max-width:760px;max-height:calc(100dvh - 28px)}
.premium-dialog-body{padding:26px!important;overflow-y:auto;max-height:calc(100dvh - 28px);color:#f7f5ff}
.premium-intro{font-size:.93rem;opacity:.83;margin:0 0 18px;line-height:1.55}
.premium-period {display:flex;gap:4px;padding:4px;border-radius:15px;background:#131427;width:fit-content;max-width:100%;margin:0 auto 22px}
.premium-period button{color:#d1c9ea;border:none;background:transparent;padding:11px 16px;border-radius:12px;font-weight:700;cursor:pointer}
.premium-period button.premium-period-active{color:#fff;background:#5147ae;box-shadow:0 2px 12px #0003}
.premium-cards{display:grid;grid-template-columns:1fr 1fr;gap:13px}
.premium-plan{background:#1f2034;border:1px solid #565276;border-radius:19px;padding:20px;display:flex;flex-direction:column;min-width:0}
.premium-plan-featured{background:linear-gradient(145deg,#432675,#25215b 57%,#1b274b);border:1px solid #a282ff}
.premium-tier{letter-spacing:1.5px;font-size:.7rem;font-weight:900;color:#e8bcff}
.premium-plan h3{font-size:1.35rem;line-height:1.2;margin:9px 0 16px}
.premium-price{display:flex;align-items:baseline;gap:8px;margin-bottom:18px}.premium-price strong{font-size:2.1rem;font-weight:850;letter-spacing:-1.5px}.premium-price span{font-size:.83rem;color:#c7bee7}
.premium-plan ul{padding-left:20px;margin:0 0 20px;line-height:1.7;font-size:.86rem;flex:1}.premium-plan li{padding:3px 0}
.premium-buy{width:100%;padding:14px;border:1px solid #a897ff;border-radius:13px;background:#f5f0ff;color:#231344;font-weight:850;cursor:pointer}
.premium-buy-plus{background:linear-gradient(105deg,#a976f6,#735ff9);color:#fff}
.premium-buy:disabled{cursor:wait;opacity:.5}
.premium-disclaimer{text-align:center;line-height:1.5;font-size:.75rem;color:#c6bfe0;margin:16px 0 0}
#premiumManageInDialog{display:block;margin:14px auto 0}
#premiumManageInDialog.hidden{display:none}
@media(max-width:670px){.premium-dialog-body{padding:17px!important}.premium-cards{grid-template-columns:1fr}.premium-plan{padding:17px}.premium-price strong{font-size:1.7rem}.premium-gender-grid{grid-template-columns:1fr}.premium-period button{padding:10px}}

/* v1.8.1: Keep checkout unavailability and sign-in errors visible near the chosen plan. */
.premium-purchase-notice {margin:12px 0 0;padding:12px 13px;border-radius:11px;background:rgba(251,194,96,.12);border:1px solid rgba(251,194,96,.35);color:#fff0cb;font-size:.82rem;line-height:1.5;}
.premium-purchase-notice.hidden {display:none;}

/* v1.8.2 — show subscription ownership instead of a second checkout. */
.premium-current-panel{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px;margin:0 0 20px;padding:19px 20px;background:linear-gradient(125deg,rgba(98,71,169,.35),rgba(29,39,75,.8));border:1px solid #a18eff88;border-radius:17px}
.premium-current-kicker{font-size:.68rem;color:#c6b0ff;font-weight:850;letter-spacing:1.5px}
.premium-current-panel h3{font-size:1.25rem;letter-spacing:-.4px;margin:6px 0;color:#f5efff}
.premium-current-panel p{max-width:510px;font-size:.81rem;line-height:1.55;color:#d0c9e5;margin:7px 0 0}
.premium-current-manage{white-space:nowrap;border-color:#a394e6;color:#fff;background:#6550b3;font-weight:800}
.premium-checkout-recovery{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.premium-checkout-recovery button{min-height:42px;font-weight:750}
.premium-plan-owned{border-color:#ac8fff;box-shadow:0 0 0 1px #a489ec55}
.premium-plan-state{width:100%;text-align:center;margin:0;padding:12px;border-radius:12px;border:1px solid #8d78c366;background:#ffffff0b;color:#dfd2ff;font-weight:800;font-size:.82rem}
@media(max-width:670px){.premium-current-panel{padding:15px}.premium-current-manage{width:100%}}

/* v1.9 restricted-preview premium attachment and voice call controls */
.plus-badge-setting{display:flex;align-items:center;gap:10px;padding:12px;border:1px solid #6655ac;border-radius:12px;margin:12px 0;color:#d7cbff;font-weight:600}.plus-badge-setting input{accent-color:#9a78ff;width:17px;height:17px}.plus-badge-setting.hidden{display:none}
.premium-media-controls{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:5px 0 11px}.premium-media-controls .secondary-button{font-size:.86rem}.media-controls-note{color:#b4afcf;font-size:.73rem;flex:1;min-width:190px}.media-offer-card,.media-incoming-card{background:#292446;border:1px solid #695bb5;border-radius:14px;padding:13px 16px;max-width:min(410px,96%);margin:10px 0;color:#f8f5ff}.media-offer-card p,.media-incoming-card p{font-size:.88rem;line-height:1.4;margin:0 0 10px}.media-offer-actions{display:flex;gap:8px}.media-note{font-size:.8rem;color:#bdb4e8;text-align:center;padding:8px}.received-media{display:block;max-width:100%;max-height:300px;border-radius:10px}.received-media.hidden{display:none}.voice-call-dialog{max-width:min(440px,94vw)}.voice-call-buttons{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin-top:16px}.voice-call-warning{color:#b7b0d0;font-size:.85rem}#orbitCallRemoteAudio{width:100%;min-height:40px}#orbitCallRemoteAudio:not([src]){opacity:.7}
/* v1.10: symmetric live attachments, expand-to-viewer, consent-based voice. */
.media-attachment-card{background:#282443;border:1px solid #685ab4;border-radius:14px;padding:11px;margin:12px 0;max-width:min(390px,98%);display:flex;flex-direction:column;gap:8px;color:#fff}
.media-attachment-heading{font-size:.85rem;font-weight:700;line-height:1.4}
.media-thumbnail-button{display:flex;flex-direction:column;align-items:stretch;gap:6px;border:0;padding:0;background:none;color:#d8cdfa;cursor:zoom-in;text-align:left}
.media-thumbnail{display:block;max-width:100%;max-height:275px;object-fit:contain;border-radius:10px;background:#141226}
.media-zoom-hint{font-size:.75rem;font-weight:600;opacity:.85}
.media-thumbnail-button:focus-visible{outline:3px solid #c09bff;outline-offset:4px;border-radius:6px}
.orbit-media-viewer{border:1px solid #8c7fe2;border-radius:15px;background:#1b1933;color:#fff;max-width:95vw;max-height:94vh;padding:15px;min-width:min(330px,90vw);box-shadow:0 15px 70px rgba(0,0,0,.7)}
.orbit-media-viewer::backdrop{background:rgba(0,0,0,.86)}
.orbit-media-viewer-body{display:flex;flex-direction:column;gap:12px;max-width:92vw;max-height:89vh}
.orbit-media-viewer-top{display:flex;align-items:center;justify-content:space-between;gap:16px}
.orbit-media-viewer-top strong{overflow-wrap:anywhere}
.viewer-expanded-media{display:block;max-width:90vw;max-height:78vh;object-fit:contain;margin:auto;background:#0b0a14;border-radius:10px}
.voice-call-dialog .voice-call-buttons button{min-height:41px}
@media (max-width:700px){.orbit-media-viewer{padding:8px}.media-attachment-card{max-width:100%}.viewer-expanded-media{max-height:75vh}}
.media-sent-card{align-self:flex-end}.media-received-card{align-self:flex-start}

/* v1.11 - responsive Godot-style image viewer: centred zoom, drag-pan, pinch */
.orbit-media-viewer{box-sizing:border-box;width:min(1120px,97vw);height:min(92dvh,950px);max-width:97vw;max-height:92dvh;min-width:0;padding:0;overflow:hidden;border:1px solid #8877d8;border-radius:16px}
.orbit-media-viewer-body{display:flex;flex-direction:column;box-sizing:border-box;width:100%;height:100%;max-width:none;max-height:none;min-height:0;gap:0}
.orbit-media-viewer-top{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;padding:10px 14px;background:#211d38}
.orbit-media-viewer-top strong{flex:1;min-width:130px;font-size:.85rem}
.media-viewer-toolbar{display:flex;gap:6px;align-items:center}
.media-viewer-toolbar .media-zoom-control{min-width:42px;min-height:39px;padding:6px 10px;font-size:.9rem}
.media-viewer-stage{position:relative;display:grid;place-items:center;min-height:0;flex:1;width:100%;overflow:hidden;background:#0c0b19;touch-action:none;overscroll-behavior:contain;user-select:none;cursor:zoom-in}
.media-viewer-stage.can-pan{cursor:grab}
.media-viewer-stage.can-pan:active{cursor:grabbing}
.media-viewer-stage img.viewer-expanded-media{display:block;max-width:100%;max-height:100%;width:auto;height:auto;margin:0;object-fit:contain;border-radius:0;background:transparent;transform-origin:center center;pointer-events:none;user-select:none;-webkit-user-drag:none;will-change:transform}
.media-viewer-stage video.viewer-expanded-media{max-width:100%;max-height:100%;margin:auto;object-fit:contain;cursor:auto;pointer-events:auto}
.media-viewer-help{margin:0;padding:7px 12px;background:#211d38;color:#bdb4de;text-align:center;font-size:.73rem}
@media(max-width:700px){
 .orbit-media-viewer{width:100vw;max-width:100vw;height:95dvh;max-height:95dvh;border-radius:10px;padding:0}
 .orbit-media-viewer-top{gap:6px;padding:8px}
 .orbit-media-viewer-top strong{flex-basis:100%;font-size:.8rem}
 .media-viewer-toolbar .media-zoom-control{min-height:43px;min-width:48px}
 .media-viewer-help{font-size:.68rem}
}
/* Orbit v1.12 — Settings workspace and responsive controls. Original Orbit styling. */
.sidebar-heading .filter-symbol{cursor:pointer;flex-shrink:0;font:inherit;color:#b9a9ff;transition:filter .18s,transform .18s}
.sidebar-heading .filter-symbol:hover{filter:brightness(1.25);transform:rotate(25deg)}
.sidebar-heading .filter-symbol:focus-visible{outline:3px solid #c4b0ff;outline-offset:3px}
.orbit-settings-dialog{padding:0!important;width:min(900px,calc(100vw - 28px))!important;max-width:900px!important;height:min(680px,calc(100dvh - 28px));max-height:calc(100dvh - 28px);background:#121424!important;overflow:hidden!important}
.orbit-settings-shell{display:grid;grid-template-columns:225px minmax(0,1fr);height:100%;min-height:0}
.orbit-settings-nav{display:flex;flex-direction:column;min-width:0;min-height:0;padding:22px 14px 18px;background:#19192d;border-right:1px solid #ffffff19}
.orbit-settings-brand{display:flex;gap:10px;align-items:center;padding:0 8px 26px;color:#f8f6ff}
.settings-orb{width:38px;height:38px;flex:0 0 38px;border-radius:13px;display:grid;place-items:center;background:linear-gradient(135deg,#a176ff,#555def);font-size:25px}
.orbit-settings-brand strong{display:block;font-size:15px;line-height:1.2;letter-spacing:-.3px}
.orbit-settings-brand small{color:#a7a6c2;font-size:11px;display:block;margin-top:5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:142px}
.orbit-settings-tabs{display:flex;flex-direction:column;gap:5px;overflow:auto;min-height:0}
.orbit-settings-tabs button{border:1px solid transparent;background:transparent;color:#c1bdd8;text-align:left;padding:12px 13px;border-radius:12px;font-size:13px;font-weight:750;display:flex;align-items:center;gap:12px;line-height:1.3}
.orbit-settings-tabs button:hover{background:#ffffff11;color:#fff}
.orbit-settings-tabs button.is-current{border-color:#b195fa55;background:linear-gradient(110deg,#6f57ce65,#3b3c7b6e);color:#fff}
.settings-nav-foot{display:flex;flex-wrap:wrap;gap:10px;padding:15px 6px 0;margin-top:auto;border-top:1px solid #ffffff17}
.settings-nav-foot a{color:#a9a5c7;font-size:10px;text-decoration:none}
.orbit-settings-main{display:flex;flex-direction:column;min-height:0;min-width:0}
.orbit-settings-top{padding:25px 30px 15px;display:flex;align-items:flex-start;justify-content:space-between;border-bottom:1px solid #ffffff0e}
.orbit-settings-top h2{margin:6px 0 0;font-size:26px;letter-spacing:-.8px}
.orbit-settings-content{min-height:0;overflow:auto;overscroll-behavior:contain;padding:22px 30px 40px}
.orbit-settings-panel[hidden]{display:none!important}
.orbit-settings-panel{display:flex;flex-direction:column;gap:16px;color:#f2edff}
.settings-profile-card{display:flex;align-items:center;gap:17px;background:linear-gradient(110deg,#44337b8c,#25356664);border:1px solid #9374e37c;padding:24px;border-radius:18px}
.settings-profile-avatar{width:65px;height:65px;flex:none;display:grid;place-items:center;border-radius:20px;background:linear-gradient(140deg,#a881ff,#535edb);font-size:35px}
.settings-profile-card h3{margin:0 0 7px;font-size:19px}
.settings-profile-card p{margin:0;color:#cfcaed!important;font-size:12px!important}
.settings-group{background:#1b1d30;border:1px solid #ffffff16;border-radius:17px;padding:19px 20px;min-width:0}
.settings-group h3{font-size:15px;margin:0 0 8px;letter-spacing:-.2px}
.settings-group p,.orbit-settings-panel .settings-note{font-size:12px;line-height:1.65;color:#b5b7d2;margin:6px 0 15px}
.settings-group .secondary-button{font-size:12px;padding:12px 17px}
.settings-actions{display:flex;flex-wrap:wrap;gap:10px}
.settings-danger{border-color:#a53e5a!important;color:#ffacbd!important}
.settings-switch-line{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid #ffffff12;padding:14px 0;font-size:13px;font-weight:700;cursor:pointer}
.settings-switch-line:first-of-type{border-top:0}
.settings-switch-line input{height:19px;width:37px;appearance:none;background:#545569;position:relative;border:0;border-radius:20px;flex:none;cursor:pointer}
.settings-switch-line input:before{content:"";position:absolute;top:2px;left:2px;width:15px;height:15px;background:#faf9ff;border-radius:100%;transition:transform .18s}
.settings-switch-line input:checked{background:#8266ef}
.settings-switch-line input:checked:before{transform:translateX(18px)}
.settings-switch-line input:disabled{opacity:.42;cursor:not-allowed}
.settings-switch-line small{display:block;font-size:11px;line-height:1.55;font-weight:400;color:#adb0c8;margin-top:4px}
.settings-locked-row{color:#a4f5cf;background:#2b664529;border:1px solid #78dba050;border-radius:11px;padding:13px;font-size:12px}
.settings-inline-link{font-size:13px;color:#bda8ff;text-decoration:none}
.settings-theme-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:15px}
.settings-theme-grid button{border:1px solid #505076;background:#111629;color:#d7d3e9;padding:12px 9px;border-radius:13px;font-size:12px;font-weight:700}
.settings-theme-grid button.is-current{border-color:#b49afe;box-shadow:0 0 0 2px #9e7efb40;color:#fff}
.settings-theme-preview{display:block;height:46px;border-radius:10px;border:1px solid #ffffff29;margin-bottom:11px}
.theme-midnight{background:linear-gradient(125deg,#15142f 52%,#7256cd 52%)}
.theme-charcoal{background:linear-gradient(125deg,#181a21 52%,#51596b 52%)}
.theme-twilight{background:linear-gradient(125deg,#272044 52%,#a36ee3 52%)}
.settings-range-head{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:13px;font-weight:700}
.settings-range-head output{color:#c4a7ff;font-size:12px;font-variant-numeric:tabular-nums}
.settings-group input[type=range]{margin-top:14px}
.settings-preview-message{font-size:var(--orbit-chat-font,14px);border-radius:12px;background:#292e4d;padding:13px 15px;margin-top:14px}
:root[data-orbit-theme=charcoal] body{background:#101117}
:root[data-orbit-theme=charcoal] .filter-panel,:root[data-orbit-theme=charcoal] .conversation-panel{background:linear-gradient(145deg,#24262d,#15171e)}
:root[data-orbit-theme=charcoal] .chat-feed{background:#12141c}
:root[data-orbit-theme=twilight] body{background:#181127}
:root[data-orbit-theme=twilight] .filter-panel,:root[data-orbit-theme=twilight] .conversation-panel{background:linear-gradient(145deg,#2e2247,#17172d)}
:root[data-orbit-theme=twilight] .chat-feed{background:#181429}
:root[data-orbit-density=compact] .chat-view{padding:12px 15px 10px}
:root[data-orbit-density=compact] .chat-view .chat-feed{min-height:280px;padding:11px}
:root[data-orbit-density=compact] .filter-panel{padding:15px}
:root[data-orbit-density=compact] .chat-buttons{margin-top:7px}
#chatFeed{gap:var(--orbit-message-gap,9px)}
#chatFeed .message{font-size:var(--orbit-chat-font,14px)}
@media(max-width:700px){
 .orbit-settings-dialog{width:calc(100vw - 14px)!important;height:calc(100dvh - 14px)!important;max-height:calc(100dvh - 14px);border-radius:17px!important}
 .orbit-settings-shell{display:flex;flex-direction:column}
 .orbit-settings-nav{padding:13px 12px 7px;border-right:0;border-bottom:1px solid #ffffff18;flex:0 0 auto}
 .orbit-settings-brand{padding:0 6px 9px}
 .orbit-settings-tabs{display:flex;flex-direction:row;gap:7px;overflow:auto;scrollbar-width:thin;padding-bottom:4px}
 .orbit-settings-tabs button{flex:none;padding:10px 12px;font-size:11px;border-radius:10px}
 .settings-nav-foot{display:none}
 .orbit-settings-main{flex:1}
 .orbit-settings-top{padding:14px 18px 9px}
 .orbit-settings-top h2{font-size:22px}
 .orbit-settings-content{padding:15px 15px 38px}
 .settings-group{padding:14px 15px;border-radius:14px}
 .settings-theme-grid{gap:7px}
 .settings-profile-card{padding:15px}
 .settings-profile-avatar{width:50px;height:50px;font-size:26px}
}

.media-video-fullscreen{font-size:12px;white-space:nowrap}

.mobile-settings-button{display:none;border:1px solid #735da7;background:#292447;color:#d4c5ff;border-radius:11px;place-items:center;width:35px;height:35px;flex:0 0 35px;font-size:19px;cursor:pointer}
.mobile-settings-button:hover{background:#41366b}
@media(max-width:700px){.mobile-settings-button{display:grid}.conversation-title{min-width:0}.conversation-title h2{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}

/* RadarChat brand asset: unchanged official purple icon, no extra background square. */
.radarchat-icon-host { background: transparent !important; padding: 0 !important; }
.radarchat-logo-image { display: block; width: 100%; height: 100%; object-fit: contain; border-radius: inherit; }
.brand-icon.radarchat-icon-host { box-shadow: none; }
.welcome-center.radarchat-icon-host { background: transparent !important; box-shadow: 0 0 55px #7357ff66; }


/* RadarChat v1.13.3 — responsive header and action visibility.
   Keep the approved radar logo, purple branding and existing IDs/handlers unchanged.
   Phones: stack the brand and the three account actions rather than clipping them.
   Tablets: collapse redundant desktop navigation, retaining every account action.
*/
.topbar > .brand { flex-shrink: 0; min-width: 0; }
.topbar .header-right { min-width: 0; }
.topbar .header-action { min-width: 0; }
.topbar #myDisplayName { overflow: hidden; text-overflow: ellipsis; }

@media (min-width: 701px) and (max-width: 1330px) {
  .topbar .app-nav { display: none; }
  .topbar .header-right { margin-left: auto; gap: 8px; }
  .topbar #onlineCount,
  .topbar .header-right > .live-dot { display: none; }
  .topbar .brand { font-size: clamp(23px, 2.5vw, 30px); }
  .topbar .header-action { max-width: min(190px, 22vw); }
}

@media (max-width: 700px) {
  /* A deliberate two-row header keeps Premium, Friends and Profile accessible
     even at 320 CSS pixels and with browser font scaling. */
  .topbar {
    flex: 0 0 auto;
    height: auto;
    min-height: 110px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: stretch;
    gap: 7px;
    padding: 8px max(10px, env(safe-area-inset-right)) 9px max(10px, env(safe-area-inset-left));
  }
  .topbar > .brand {
    flex: 0 0 auto;
    display: flex;
    align-self: flex-start;
    max-width: 100%;
    min-width: 0;
    gap: 8px;
    font-size: clamp(20px, 5.4vw, 26px);
    line-height: 1.2;
    white-space: nowrap;
  }
  .topbar .brand-icon { flex: 0 0 34px; width: 34px; height: 34px; }
  .topbar .app-nav,
  .topbar #onlineCount,
  .topbar .header-right > .live-dot { display: none; }
  .topbar .header-right {
    flex: 0 0 auto;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(5px, 1.8vw, 9px);
    width: 100%;
    max-width: 100%;
    min-width: 0;
    margin: 0;
  }
  .topbar .header-right .header-action {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-width: 0;
    max-width: none;
    min-height: 39px;
    padding: 8px 5px;
    font-size: clamp(10px, 2.7vw, 12px);
    font-weight: 750;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .topbar .header-right .friend-badge { flex: 0 0 auto; margin-left: 5px; }
  .topbar #myDisplayName {
    display: inline-block;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
}

/* Keep room for conversation and message input on short landscape phones. */
@media (max-width: 700px) and (max-height: 480px) {
  .topbar { min-height: 91px; gap: 3px; padding-top: 4px; padding-bottom: 4px; }
  .topbar > .brand { font-size: 19px; }
  .topbar .brand-icon { flex-basis: 29px; width: 29px; height: 29px; }
  .topbar .header-right .header-action { min-height: 34px; padding-block: 5px; }
  /* The hero remains readable in a short landscape viewport; the logo in the
     fixed header stays visible, so only the duplicate decorative art hides. */
  .welcome-view { justify-content: flex-start; overflow-y: auto; padding: 10px 12px 15px; }
  .welcome-view .welcome-art { display: none; }
  .welcome-view h1 { font-size: clamp(22px, 4.9vw, 33px); line-height: 1.16; margin: 5px 0 8px; }
  .welcome-view p { font-size: 12px; line-height: 1.4; margin: 0 0 10px; }
  .welcome-view .welcome-cta { min-height: 40px; padding: 9px 15px; }
  .welcome-view .welcome-chips { margin-top: 9px; gap: 6px; }
  .welcome-view .welcome-chips span { padding: 6px 8px; font-size: 10px; }
}


/* RadarChat v1.13.4 — refinement after responsive-header feedback.
   Only layout and landing-page copy change. No logo/brand-colour changes.
   Existing interaction IDs and all subscription / matchmaking logic are retained.
*/
.welcome-eyebrow {
  color:#c2aeff;
  font-size:10px;
  font-weight:850;
  letter-spacing:1.85px;
  line-height:1.5;
  text-align:center;
  margin:8px 0 0;
}
.welcome-view h1 {
  text-wrap:balance;
  max-width:850px;
}
.welcome-view .welcome-chips span:first-child {
  color:#dfd2ff;
  background:#8164ff18;
  border-color:#a185f966;
  font-weight:750;
}
.topbar .header-action:focus-visible,
.mobile-filter-open:focus-visible,
.mobile-settings-button:focus-visible,
.welcome-cta:focus-visible {outline:2px solid #d1beff; outline-offset:3px;}

@media (max-width:700px) {
  /* Tighten the working two-row header without sacrificing account buttons. */
  .topbar {
    height:auto;
    flex-basis:auto;
    min-height:89px;
    padding:6px max(11px, env(safe-area-inset-right)) 7px max(11px, env(safe-area-inset-left));
    gap:5px;
  }
  .topbar > .brand {
    font-size:clamp(20px,5.3vw,24px);
    gap:7px;
    line-height:1.13;
  }
  .topbar .brand-icon {
    width:31px;
    height:31px;
    flex:0 0 31px;
  }
  .topbar .header-right {
    gap:clamp(5px,1.5vw,9px);
  }
  .topbar .header-right .header-action {
    min-height:39px;
    padding:7px 5px;
    border-radius:13px;
    font-size:clamp(10px,2.85vw,12px);
  }

  /* Use the space wasted by the duplicate icon: no ellipses in the heading. */
  .conversation-top {
    flex:0 0 auto;
    height:auto;
    min-height:62px;
    padding:9px 12px;
    gap:8px;
  }
  .conversation-top .conversation-avatar {display:none;}
  .conversation-top .conversation-title {flex:1 1 0; min-width:0;}
  .conversation-top .conversation-title h2 {
    white-space:normal;
    overflow:visible;
    text-overflow:clip;
    overflow-wrap:break-word;
    font-size:clamp(13px,3.55vw,16px);
    line-height:1.28;
    letter-spacing:-.2px;
    margin:0;
  }
  .conversation-top .mobile-filter-open {min-height:40px; padding:9px 10px;}
  .conversation-top .mobile-settings-button {width:39px; height:39px; flex:0 0 39px;}

  /* Compact but legible mobile welcome screen. */
  .welcome-view {
    justify-content:flex-start;
    min-height:0;
    overflow-y:auto;
    padding:clamp(13px,2.7vh,28px) 13px 24px;
    overscroll-behavior:contain;
  }
  .welcome-view .welcome-art {
    width:min(340px,100%);
    max-width:100%;
    height:clamp(145px,22vh,185px);
    transform:scale(.77);
    transform-origin:center;
    margin:-8px auto -5px;
    flex:none;
  }
  .welcome-view .welcome-eyebrow {
    font-size:9px;
    margin:3px 0 8px;
    letter-spacing:1.45px;
  }
  .welcome-view h1 {
    font-size:clamp(30px,8.5vw,43px);
    line-height:1.1;
    letter-spacing:-1.5px;
    margin:6px 0 12px;
    max-width:440px;
  }
  .welcome-view h1 .gradient {display:block;}
  .welcome-view p {
    max-width:420px;
    font-size:clamp(12px,3.45vw,15px);
    line-height:1.57;
    margin:0 0 19px;
  }
  .welcome-view .welcome-cta {
    min-height:52px;
    max-width:310px;
    width:100%;
    padding:12px 16px;
    font-size:clamp(13px,3.6vw,16px);
    display:inline-flex;
    justify-content:center;
    align-items:center;
    border-radius:16px;
  }
  .welcome-view .welcome-cta span {margin-left:12px;}
  .welcome-view .welcome-chips {
    gap:7px;
    margin-top:15px;
    max-width:445px;
  }
  .welcome-view .welcome-chips span {
    font-size:10px;
    padding:7px 9px;
  }
}

/* Smaller tablets: retain full title rather than introducing a new clip point. */
@media (min-width:701px) and (max-width:1050px) {
  .conversation-top .conversation-title h2 {
    font-size:clamp(14px,1.8vw,19px);
    line-height:1.3;
    text-wrap:balance;
  }
}

/* When landscape gives very little height, hide only decorative hero art. */
@media (max-width:700px) and (max-height:480px) {
  .topbar {min-height:80px; padding-block:4px; gap:3px;}
  .topbar > .brand {font-size:19px;}
  .topbar .brand-icon {width:27px;height:27px;flex-basis:27px;}
  .topbar .header-right .header-action {min-height:33px;padding-block:4px;}
  .conversation-top {min-height:48px; padding-block:5px;}
  .welcome-view {padding:10px 12px 16px;}
  .welcome-view .welcome-art {display:none;}
  .welcome-view .welcome-eyebrow {margin:0 0 6px; font-size:9px;}
  .welcome-view h1 {font-size:clamp(23px,4.8vw,32px); margin:2px 0 7px;line-height:1.1;}
  .welcome-view h1 .gradient {display:inline;}
  .welcome-view p {font-size:12px;line-height:1.3;margin:0 0 8px;}
  .welcome-view .welcome-cta {min-height:38px;max-width:270px;padding:7px 12px;}
  .welcome-view .welcome-chips {margin-top:8px;gap:5px;}
  .welcome-view .welcome-chips span {padding:5px 7px;font-size:9px;}
}


/* RadarChat Match Experience — UI-only v1.14.0
   Server matching, eligibility, privacy, billing and immutable brand assets are untouched. */
.chat-view{position:relative;min-width:0;}
.discovery-stage{
  flex:1 1 auto;min-height:0;display:flex;flex-direction:column;align-items:center;
  gap:12px;padding:clamp(16px,2.4vh,26px) clamp(12px,3vw,28px) 22px;
  background:radial-gradient(ellipse at 50% 35%,#5035a52f 0,transparent 65%);
  border:1px solid #9881ff26;border-radius:20px;overflow-y:auto;overscroll-behavior:contain;
  scrollbar-width:thin;scrollbar-color:#594c86 transparent;
}
.discovery-topline{width:min(100%,600px);display:flex;justify-content:space-between;align-items:center;gap:12px;
  color:#c7baff;font-size:10px;font-weight:850;letter-spacing:1.15px;}
.discovery-live{display:inline-flex;gap:9px;align-items:center;}
.discovery-live-dot{width:8px;height:8px;border-radius:50%;background:#ad84ff;box-shadow:0 0 12px #9864ff;animation:discoveryBlink 2.6s infinite;}
.discovery-elapsed{color:#acabc4;letter-spacing:0;font-size:11px;font-variant-numeric:tabular-nums;}
.discovery-radar{position:relative;flex:0 0 auto;width:clamp(144px,24vh,240px);aspect-ratio:1;display:grid;place-items:center;isolation:isolate;margin:auto auto 0;}
.discovery-radar-glow{position:absolute;inset:5%;border-radius:50%;background:radial-gradient(circle,#8b5cf64c,transparent 68%);}
.discovery-radar-ring{position:absolute;inset:8%;width:auto;height:auto;left:8%;top:8%;right:8%;bottom:8%;transform:none;border-radius:50%;border:1px solid #b4a0ff55;}
.discovery-radar-ring.ring-two{inset:24%;left:24%;top:24%;right:24%;bottom:24%;width:auto;height:auto;transform:none;border-color:#b4a0ff7a;}
.discovery-radar-ring.ring-three{inset:40%;left:40%;top:40%;right:40%;bottom:40%;width:auto;height:auto;transform:none;border-color:#d9bcff90;}
.discovery-sweep{position:absolute;inset:8%;border-radius:50%;background:conic-gradient(from -7deg,transparent 0deg,transparent 275deg,#bd8bff08 294deg,#b891ff4d 343deg,#bc9eff88 360deg);animation:discoverySweep 4.5s linear infinite;}
.discovery-radar-icon{position:relative;z-index:1;width:clamp(48px,7.8vh,72px);aspect-ratio:1;border-radius:19px;box-shadow:0 0 33px #9575ff5e;}
.discovery-radar-icon img{display:block;width:100%;height:100%;object-fit:contain;}
.discovery-copy{display:grid;gap:7px;max-width:460px;text-align:center;}
.discovery-copy h3{font-family:'Space Grotesk',system-ui,sans-serif;font-size:clamp(21px,3vw,31px);font-weight:800;letter-spacing:-.9px;line-height:1.16;margin:0;color:#f6f1ff;text-wrap:balance;}
.discovery-copy p{margin:0;font-size:clamp(12px,1.6vw,14px);line-height:1.55;color:#b4b3d1;}
.discovery-preferences{display:flex;justify-content:center;gap:7px;flex-wrap:wrap;max-width:550px;}
.discovery-preference{display:inline-flex;align-items:center;gap:5px;background:#51418550;border:1px solid #9579ea55;color:#ded2ff;
  border-radius:999px;padding:8px 12px;min-width:0;max-width:100%;overflow-wrap:anywhere;font-size:11px;font-weight:700;line-height:1.25;}
.discovery-preference>span:first-child{color:#cdafff;}
.discovery-hint{text-align:center;max-width:520px;color:#adaccd;font-size:11px;line-height:1.45;margin:0;}
.discovery-actions{display:flex;justify-content:center;gap:9px;flex-wrap:wrap;margin-top:4px;margin-bottom:auto;width:100%;}
.discovery-actions button{min-height:42px;padding:10px 16px;font-size:12px;font-weight:800;border-radius:12px;}
.discovery-primary{background:linear-gradient(115deg,#9c71f9,#6556ef);border:1px solid #b5a6ff;color:#fff;}
.discovery-secondary{background:#282745;border:1px solid #696094;color:#e6ddff;}
.chat-view.is-searching .chat-feed,.chat-view.is-searching #connectedBanner,
.chat-view.is-searching .typing-indicator,.chat-view.is-searching .shared-tags,
.chat-view.is-searching .composer-meta,.chat-view.is-searching .premium-media-controls,
.chat-view.is-searching .message-form,.chat-view.is-searching #newMessagesButton {display:none!important;}
.chat-view.is-searching .chat-buttons{flex:0 0 auto;margin-top:10px;}
.chat-view.is-searching .chat-buttons>:not(#stopBtn){display:none!important;}
.chat-view.is-searching .chat-buttons #stopBtn{grid-column:1/-1;width:100%;max-width:none;min-height:39px;}
.chat-view.is-searching .search-criteria{max-height:none;overflow:visible;}
.chat-view.is-searching .queue-help{max-height:115px;overflow-y:auto;flex:0 0 auto;}
.chat-view.is-searching .wait-timers{flex:0 0 auto;margin:6px 0;}
.connected-banner{display:flex;align-items:center;gap:11px;min-width:0;background:linear-gradient(105deg,#48357775,#252e5c80);
  border:1px solid #9b81f76b;border-radius:15px;padding:11px 13px;margin:0 0 10px;animation:matchReveal .3s ease both;}
.connected-avatar{flex:0 0 39px;width:39px;height:39px;border:1px solid #d9c1ff76;border-radius:14px;display:grid;place-items:center;
  background:linear-gradient(125deg,#8a62e3,#4a48b5);color:white;font-size:23px;box-shadow:0 0 20px #805bdb42;}
.connected-details{flex:1 1 0;min-width:0;display:grid;gap:4px;}
.connected-details strong{font-size:14px;color:#f9f6ff;overflow-wrap:anywhere;}
.connected-details span{font-size:11px;color:#c2bbe2;line-height:1.35;overflow-wrap:anywhere;}
.connected-quick-actions{flex:0 0 auto;display:flex;gap:6px;}
.connected-quick-actions button{min-width:38px;min-height:38px;border-radius:11px;color:#f5efff;background:#644da450;border:1px solid #9f86e68c;font-size:21px;}
.connected-quick-actions button:disabled{opacity:.4;}
.chat-view .message{position:relative;animation:matchReveal .18s ease-out both;border:1px solid #ffffff15;box-shadow:0 3px 12px #00000028;padding-bottom:22px;}
.chat-view .message.mine{border-radius:17px 17px 5px 17px;background:linear-gradient(140deg,#845ff1,#6248d9);}
.chat-view .message.theirs{border-radius:17px 17px 17px 5px;background:#2e3659;border-color:#7675b44a;}
.chat-view .message::after{content:attr(data-time);position:absolute;bottom:6px;right:11px;font-size:9px;color:#ffffff9a;line-height:1;letter-spacing:.2px;}
.chat-view #chatFeed{scroll-behavior:smooth;overscroll-behavior:contain;}
.new-messages-button{z-index:2;align-self:center;border:1px solid #ae9bff;background:#5542b9;color:#fff;font-weight:800;
  border-radius:999px;padding:8px 16px;font-size:11px;box-shadow:0 5px 20px #0006;cursor:pointer;}
.chat-view.is-connected #sendBtn:not(:disabled){box-shadow:0 2px 18px #8068e75b;}
.discovery-primary:hover,.discovery-secondary:hover,.connected-quick-actions button:not(:disabled):hover{filter:brightness(1.12);transform:translateY(-1px);}
.discovery-primary:focus-visible,.discovery-secondary:focus-visible,.connected-quick-actions button:focus-visible,.new-messages-button:focus-visible{outline:2px solid #e0c9ff;outline-offset:2px;}
@keyframes discoverySweep{to{transform:rotate(360deg)}}
@keyframes discoveryBlink{50%{opacity:.42;transform:scale(.7)}}
@keyframes matchReveal{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:700px){
 .discovery-stage{padding:12px 10px 14px;gap:9px;border-radius:14px;}
 .discovery-radar{width:clamp(118px,20vh,182px);}
 .discovery-copy h3{font-size:clamp(20px,5vw,26px);}
 .discovery-copy p{font-size:12px;}
 .discovery-preference{font-size:10px;padding:6px 9px;}
 .discovery-hint{font-size:10px;}
 .discovery-actions button{min-height:40px;flex:1 1 120px;}
 .chat-view.is-searching .chat-buttons #stopBtn{min-height:35px;}
 .chat-view.is-searching .chat-status{display:flex;}
 .connected-banner{padding:9px;gap:8px;}
 .connected-avatar{flex-basis:33px;width:33px;height:33px;font-size:19px;}
 .connected-details strong{font-size:12px;}
 .connected-details span{font-size:10px;}
 .connected-quick-actions button{min-width:34px;min-height:34px;font-size:18px;}
}
@media(max-width:700px) and (max-height:650px){
 .discovery-radar{width:100px;}
 .discovery-stage{gap:7px;padding-block:7px;}
 .discovery-hint{font-size:9px;}
 .discovery-preference{padding:5px 8px;}
}
@media(max-width:360px){
 .discovery-stage{gap:5px;padding:7px 8px 8px;}
 .discovery-topline{font-size:9px;letter-spacing:.6px;}
 .discovery-radar{width:96px;}
 .discovery-copy{gap:4px;}
 .discovery-copy h3{font-size:18px;}
 .discovery-copy p{font-size:10px;line-height:1.35;}
 .discovery-preference{font-size:9px;padding:5px 7px;}
 .discovery-hint{font-size:9px;line-height:1.3;}
 .discovery-actions button{min-height:34px;padding:7px 8px;font-size:11px;}
}
@media(prefers-reduced-motion:reduce){.discovery-sweep,.discovery-live-dot,.chat-view .message,.connected-banner{animation:none!important;}}
.orbit-reduce-motion .discovery-sweep,.orbit-reduce-motion .discovery-live-dot,.orbit-reduce-motion .chat-view .message,.orbit-reduce-motion .connected-banner{animation:none!important;}

/* RadarChat v1.15 — chat-first layout & accessibility improvements.
   Existing brand assets, colours, matching protocol and subscriber features remain unchanged. */
.desktop-filter-toggle,.desktop-filter-close {
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  border:1px solid #7664aa;border-radius:11px;background:#2b2449;
  color:#e9e0ff;font:inherit;font-size:12px;font-weight:750;
  padding:10px 12px;cursor:pointer;white-space:nowrap;
}
.desktop-filter-close{align-self:flex-end;margin:0 0 10px;min-height:38px;background:#25213d;}
.desktop-filter-toggle:hover,.desktop-filter-close:hover{background:#423366;}
.desktop-filter-toggle:focus-visible,.desktop-filter-close:focus-visible,.header-report:focus-visible,.chat-more-toggle:focus-visible{
  outline:2px solid #d4bfff;outline-offset:2px;
}
@media(min-width:701px){
  .workspace.desktop-filters-hidden{grid-template-columns:minmax(0,1fr)!important;}
  .workspace.desktop-filters-hidden>.filter-panel{display:none!important;}
  .workspace.desktop-filters-hidden>.conversation-panel{min-width:0;width:100%;}
  .desktop-filter-close{display:flex;}
}
.geo-rule-note{color:#bbb5dc;font-size:11px;line-height:1.5;margin:9px 0 0;}
/* The active search explanation and connected match banner are the single source
   of current matchmaking status. Never keep search diagnostics in a connected chat. */
.chat-view.is-connected>.chat-status,
.chat-view.is-connected>.search-criteria,
.chat-view.is-connected>.shared-tags{display:none!important;}
.header-report{align-items:center;justify-content:center;gap:6px;border:1px solid #8b567d;
  border-radius:10px;background:#3b1e3b;color:#ffd7ea;font-size:11px;font-weight:750;
  min-height:37px;padding:7px 11px;white-space:nowrap;cursor:pointer;}
.header-report:not(.hidden){display:inline-flex;}
.chat-more-toggle{display:none;}

@media(max-width:700px){
  .desktop-filter-toggle,.desktop-filter-close{display:none!important;}
  /* Give the conversation the space previously occupied by duplicate banners,
     technical labels and a two-row wall of action buttons. */
  .conversation-top{min-height:49px!important;padding:6px 10px!important;gap:7px!important;}
  .conversation-title{min-width:0;}
  .conversation-title h2{font-size:15px!important;line-height:1.25;}
  .conversation-title .peer-name{display:none!important;}
  .conversation-top .mobile-filter-open{min-height:36px!important;padding:6px 9px!important;font-size:12px!important;}
  .conversation-top .mobile-settings-button{width:36px!important;height:36px!important;flex-basis:36px!important;}
  .conversation-top .conversation-label{display:none;}
  .header-report{min-height:36px;padding:5px 9px;flex:0 0 auto;font-size:11px;}
  .chat-view.is-connected{padding:7px 10px max(7px,env(safe-area-inset-bottom));gap:0;}
  .chat-view.is-connected>.chat-status,.chat-view.is-connected>.search-criteria,
  .chat-view.is-connected>.shared-tags{display:none!important;}
  .chat-view.is-connected .connected-banner{min-height:55px;max-height:63px;
    padding:8px 9px!important;margin:0 0 7px!important;flex:0 0 auto;}
  .chat-view.is-connected .connected-details{overflow:hidden;}
  .chat-view.is-connected .connected-details strong{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .chat-view.is-connected .connected-details span{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .chat-view.is-connected .connected-quick-actions button{min-height:37px;min-width:37px;}
  .chat-view.is-connected .chat-feed{flex:1 1 auto;height:0;min-height:0;
    border-radius:14px;padding:12px 10px;gap:8px;}
  .chat-view.is-connected .system-msg{font-size:11px;margin:7px auto;color:#a9a9c9;}
  .chat-view.is-connected .premium-media-controls{min-height:0;margin:3px 0;gap:5px;}
  .chat-view.is-connected .media-controls-note{display:none!important;}
  .chat-view.is-connected .composer-meta{display:none!important;}
  .chat-view.is-connected .message-form{margin:6px 0 0!important;gap:7px;}
  .chat-view.is-connected .message-form input{min-height:48px!important;font-size:16px;}
  .chat-view.is-connected .message-form button{min-height:48px;width:48px;flex-basis:48px;}
  .chat-view.is-connected .chat-buttons{display:grid;grid-template-columns:minmax(0,1fr) 72px 76px;
    align-items:stretch;gap:7px;margin:7px 0 0;flex:0 0 auto;}
  .chat-view.is-connected .chat-buttons #nextBtn{order:1;grid-column:1;min-width:0;min-height:42px;
    padding:7px;font-size:12px;}
  .chat-view.is-connected .chat-buttons #stopBtn{order:2;grid-column:2;min-height:42px;
    padding:7px 5px;font-size:11px;background:#242647;}
  .chat-view.is-connected .chat-buttons #moreChatActions{order:3;grid-column:3;display:inline-flex;
    align-items:center;justify-content:center;min-height:42px;font-size:12px;}
  .chat-view.is-connected .chat-buttons #addFriendButton,
  .chat-view.is-connected .chat-buttons #blockMatchBtn,
  .chat-view.is-connected .chat-buttons #reportBtn{display:none;}
  .chat-view.is-connected.chat-more-open .chat-buttons #addFriendButton,
  .chat-view.is-connected.chat-more-open .chat-buttons #blockMatchBtn,
  .chat-view.is-connected.chat-more-open .chat-buttons #reportBtn{display:block;grid-row:2;min-height:40px;white-space:normal;}
  .chat-view.is-connected.chat-more-open .chat-buttons #addFriendButton{grid-column:1;order:4;}
  .chat-view.is-connected.chat-more-open .chat-buttons #blockMatchBtn{grid-column:2;order:5;}
  .chat-view.is-connected.chat-more-open .chat-buttons #reportBtn{grid-column:3;order:6;}
  .chat-view.is-connected .under-button{display:none;}
  .geo-rule-note{font-size:12px;line-height:1.45;margin-top:8px;}
  .filter-panel{padding-bottom:max(44px,env(safe-area-inset-bottom))!important;}
  .filter-panel .location-check-status{line-height:1.5;overflow-wrap:anywhere;}
  /* Android shrinks the visual viewport while the keyboard is open; keep the
     editor and latest messages visible, not the secondary action controls. */
  body.orbit-keyboard-open .topbar{display:none!important;}
  body.orbit-keyboard-open .conversation-top{min-height:41px!important;height:41px!important;
    flex:0 0 41px!important;}
  body.orbit-keyboard-open .conversation-top .mobile-filter-open,
  body.orbit-keyboard-open .conversation-top .mobile-settings-button{display:none!important;}
  body.orbit-keyboard-open .chat-view.is-connected .connected-banner{min-height:40px;max-height:44px;padding:4px 8px!important;}
  body.orbit-keyboard-open .chat-view.is-connected .connected-avatar{display:none;}
  body.orbit-keyboard-open .chat-view.is-connected .premium-media-controls{display:none!important;}
  body.orbit-keyboard-open .chat-view.is-connected .chat-buttons{display:none!important;}
}
@media(max-width:360px){
  .chat-view.is-connected .chat-buttons{grid-template-columns:minmax(0,1fr) 63px 68px;gap:5px;}
  .chat-view.is-connected .chat-buttons #stopBtn,
  .chat-view.is-connected .chat-buttons #moreChatActions{font-size:10px;}
  .header-report{font-size:10px;padding:5px 6px;}
  .conversation-top .mobile-filter-open{font-size:11px!important;}
}
@media(prefers-reduced-motion:reduce){
  .desktop-filter-toggle,.desktop-filter-close,.header-report,.chat-more-toggle{transition:none!important;}
}
/* Phone landscape: prioritise the conversation over duplicated global navigation.
   The filters drawer, Report, Next and Stop remain accessible in the chat. */
@media(max-width:700px) and (max-height:480px){
  body.radarchat-in-chat .topbar{display:none!important;}
  body.radarchat-in-chat .conversation-top{min-height:41px!important;height:41px!important;flex:0 0 41px!important;}
  body.radarchat-in-chat .chat-view.is-connected .connected-banner{min-height:43px;max-height:45px;}
  body.radarchat-in-chat .chat-view.is-connected .connected-avatar{display:none;}
  body.radarchat-in-chat .chat-view.is-connected .chat-buttons #nextBtn,
  body.radarchat-in-chat .chat-view.is-connected .chat-buttons #stopBtn,
  body.radarchat-in-chat .chat-view.is-connected .chat-buttons #moreChatActions{min-height:35px;}
  body.radarchat-in-chat .chat-view.is-connected .message-form input,
  body.radarchat-in-chat .chat-view.is-connected .message-form button{min-height:40px!important;}
}


/* RadarChat v1.16 — relaxing purple conversation surfaces.
   One palette shared by stranger chats, friend DMs, mobile and desktop.
   No logo/identity artwork, payments, matching rules or message storage changes. */
:root {
  --radarchat-conversation-top:#302651;
  --radarchat-conversation-bottom:#241d42;
  --radarchat-input:#352a55;
  --radarchat-surface-border:rgba(182,151,255,.34);
  --radarchat-message-received:#483b70;
  --radarchat-message-sent:#7654df;
}
/* Colour the surrounding chatting panel as well as the feed so keyboard-open
   mode doesn't suddenly expose the old near-black background. */
.conversation-panel:has(.chat-view.is-connected),
#chatView.is-connected,
#dmDialog,
#dmDialog>.orbit-dialog-body {
  background:linear-gradient(153deg,#2a2249 0%,#241d40 54%,#2c244c 100%);
}
#chatView #chatFeed,
#dmDialog .dm-feed {
  background:linear-gradient(160deg,var(--radarchat-conversation-top),var(--radarchat-conversation-bottom) 80%,#30264e);
  border:1px solid var(--radarchat-surface-border);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.045);
  scrollbar-color:#9473dc #30254f;
}
#chatView .message.theirs,
#dmDialog .dm-message.theirs .dm-bubble {
  background:var(--radarchat-message-received);
  color:#fcfaff;
  border:1px solid rgba(201,179,255,.23);
}
#chatView .message.mine,
#dmDialog .dm-message.mine .dm-bubble {
  background:linear-gradient(135deg,#916bf4,var(--radarchat-message-sent));
  color:#fff;
  border:1px solid rgba(210,186,255,.26);
}
#chatView .message-form input,
#dmDialog .dm-form input {
  background:var(--radarchat-input);
  color:#f9f7ff;
  border:1px solid rgba(186,161,250,.40);
  box-shadow:inset 0 1px 1px rgba(0,0,0,.05);
}
#chatView .message-form input::placeholder,
#dmDialog .dm-form input::placeholder {color:#c2b6db;opacity:1;}
#chatView .message-form input:focus,
#dmDialog .dm-form input:focus {
  border-color:#c5a8ff;
  outline:2px solid rgba(183,154,255,.65);
  outline-offset:2px;
  box-shadow:0 0 0 4px rgba(141,105,225,.18);
}
/* Timestamps no longer sit under/inside every bubble. Date separators in
   friend history are retained; message chronology is still stored server-side. */
#chatView .message {padding-bottom:12px;}
#chatView .message::after {content:none!important;display:none!important;}
#dmDialog .dm-message-meta:empty {display:none;}
#dmDialog .dm-message-meta {min-height:0;padding-top:2px;}
/* Keep the friend conversation header part of the same calming palette. */
#dmDialog .dm-heading {background:transparent;}
#dmDialog .dm-form {background:transparent;}
/* Fullscreen attachment viewer: touch drag and optional directional pan. */
.orbit-media-viewer .media-viewer-stage {
  touch-action:none;
  overscroll-behavior:none;
  -webkit-user-select:none;
  user-select:none;
}
.orbit-media-viewer .media-viewer-stage.can-pan{cursor:grab;}
.orbit-media-viewer .media-viewer-stage.is-panning{cursor:grabbing;}
.orbit-media-viewer .media-viewer-help {
  display:flex;align-items:center;justify-content:center;gap:9px;flex-wrap:wrap;
  background:#30254f;color:#e5d9ff;min-height:39px;
}
.media-pan-buttons {display:flex;align-items:center;gap:4px;}
.media-pan-buttons button {
  min-width:30px;min-height:30px;border-radius:8px;padding:3px 6px;
  background:#514075;border:1px solid #977dce;color:#f6f1ff;
  font-weight:800;touch-action:manipulation;
}
.media-pan-buttons button:disabled{opacity:.35;cursor:default;}
.media-pan-buttons button:not(:disabled):active{background:#7558c5;}
@media(max-width:700px){
  .orbit-media-viewer .media-viewer-help{font-size:11px;padding:6px 8px;gap:6px;}
  .media-pan-buttons button{min-width:33px;min-height:33px;}
}


/* RadarChat v1.17 — quieter, deeper shared purple surfaces across phone,
   desktop and friend messages. This does not alter the immutable icon. */
:root {
  --radarchat-conversation-top:#28213f;
  --radarchat-conversation-bottom:#201a35;
  --radarchat-input:#2b2444;
  --radarchat-surface-border:rgba(172,150,223,.27);
  --radarchat-message-received:#3d325b;
  --radarchat-message-sent:#6851bc;
}
.conversation-panel:has(.chat-view.is-connected),
#chatView.is-connected,
#dmDialog,
#dmDialog>.orbit-dialog-body {
  background:linear-gradient(155deg,#27203f 0%,#201a35 65%,#282040 100%);
}
#chatView #chatFeed,
#dmDialog .dm-feed {
  background:linear-gradient(168deg,#292140 0%,#211b35 77%,#26203d 100%);
  border-color:var(--radarchat-surface-border);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.028);
}
#chatView .message.theirs,
#dmDialog .dm-message.theirs .dm-bubble {
  background:#3c305b;
  border-color:rgba(172,148,220,.24);
  box-shadow:none;
}
#chatView .message.mine,
#dmDialog .dm-message.mine .dm-bubble {
  background:linear-gradient(138deg,#7258c6,#604aab);
  border-color:rgba(194,172,239,.23);
  box-shadow:none;
}
#chatView .message-form input,
#dmDialog .dm-form input {
  background:#2b2444;
  border-color:rgba(157,135,203,.39);
  box-shadow:none;
}
#chatView .message-form input:focus,
#dmDialog .dm-form input:focus {
  border-color:#a08bd5;
  outline:2px solid rgba(155,132,213,.35);
  box-shadow:0 0 0 3px rgba(131,105,180,.12);
}
#chatView .message,
#chatView .connected-banner,
#dmDialog .dm-message {animation:none!important;}
#chatView .connected-banner {
  background:linear-gradient(120deg,#3c305a,#2b2448);
  border-color:rgba(157,135,203,.38);
  box-shadow:none;
}
/* Searching should feel steady, not flashy. Dim the rings and stop pulsing. */
.chat-view.is-searching .discovery-stage {
  background:radial-gradient(ellipse at 50% 38%,rgba(94,70,145,.12),transparent 67%);
  border-color:rgba(159,136,214,.21);
}
.discovery-radar-glow{background:radial-gradient(circle,rgba(105,84,166,.18),transparent 68%);}
.discovery-radar-ring{border-color:rgba(162,139,214,.29);}
.discovery-radar-ring.ring-two{border-color:rgba(167,147,221,.34);}
.discovery-radar-ring.ring-three{border-color:rgba(177,154,222,.30);}
.discovery-radar-icon{box-shadow:0 0 18px rgba(110,84,170,.22);}
.discovery-sweep {
  background:conic-gradient(from -7deg,transparent 0deg,transparent 286deg,rgba(155,131,213,.03) 313deg,rgba(165,142,218,.24) 360deg);
  animation:discoverySweep 12s linear infinite;
}
.discovery-live-dot {
  background:#9b84cf;
  box-shadow:0 0 4px rgba(161,134,213,.25);
  animation:none!important;
}
.discovery-preference{background:rgba(73,58,113,.28);border-color:rgba(153,132,203,.32);}
.discovery-primary{background:linear-gradient(120deg,#795cc5,#6550ad);border-color:rgba(175,154,222,.53);}
.discovery-secondary{background:#2a2445;border-color:#665580;}
.chat-view.is-searching .search-criteria,
.chat-view.is-searching .queue-help {background:#292141;border-color:rgba(167,144,211,.3);}
.chat-view.is-searching .availability-panel,
.chat-view.is-searching .availability-card {background:#2b2444;border-color:rgba(164,141,212,.26);}
/* Dim the animated surrounds, not the actual official brand artwork. */
.chat-view.is-connected #sendBtn:not(:disabled) {box-shadow:0 2px 12px rgba(102,78,163,.18);}
@media(max-width:700px){
  .discovery-sweep{animation-duration:18s;opacity:.53;}
  #chatView .connected-banner{background:#302746;}
}
@media(prefers-reduced-motion:reduce){.discovery-sweep{animation:none!important;}}
