:root{
 --obs-ink:#071923;--obs-night:#031016;--obs-deep:#062733;--obs-panel:#0a2029;--obs-line:rgba(69,103,242,.17);
 --obs-cyan:#4567f2;--obs-blue:#4a79ff;--obs-gold:#f2c96b;--obs-white:#f7fcff;--obs-muted:#8ea7b1;
 --obs-shadow:0 28px 80px rgba(0,15,22,.27);--obs-radius:22px;
}
body.page-observatory{background:var(--obs-night);color:var(--obs-white)}
body.page-observatory main{min-height:0}body.page-observatory .site-footer{display:none}
body.page-observatory .free-forever-bar{display:none}
.obs-kicker{display:inline-flex;align-items:center;gap:.55rem;color:var(--obs-cyan);font-size:.68rem;font-weight:900;letter-spacing:.16em;text-transform:uppercase}
.obs-kicker i{width:8px;height:8px;border-radius:50%;background:var(--obs-cyan);box-shadow:0 0 0 7px rgba(69,103,242,.12);animation:obsPulse 1.7s infinite}

/* Public preview */
.obs-public{position:relative;min-height:calc(100vh - 80px);overflow:hidden;background:radial-gradient(circle at 20% 10%,rgba(74,121,255,.18),transparent 30%),radial-gradient(circle at 85% 35%,rgba(69,103,242,.13),transparent 27%),linear-gradient(155deg,#020c12,#061c26 55%,#041319);color:#fff}
.obs-public__mesh{position:absolute;inset:0;opacity:.22;background-image:linear-gradient(rgba(122,201,214,.09) 1px,transparent 1px),linear-gradient(90deg,rgba(122,201,214,.09) 1px,transparent 1px);background-size:50px 50px;mask-image:linear-gradient(to bottom,#000,transparent 86%)}
.obs-public__mesh i{position:absolute;width:8px;height:8px;border-radius:50%;background:var(--obs-cyan);box-shadow:0 0 24px var(--obs-cyan);animation:obsNode 3s infinite}.obs-public__mesh i:nth-child(1){left:9%;top:22%}.obs-public__mesh i:nth-child(2){left:33%;top:12%;animation-delay:.6s}.obs-public__mesh i:nth-child(3){left:73%;top:18%;animation-delay:1.2s}.obs-public__mesh i:nth-child(4){left:88%;top:55%;animation-delay:1.8s}.obs-public__mesh i:nth-child(5){left:54%;top:68%;animation-delay:2.4s}.obs-public__mesh i:nth-child(6){left:16%;top:71%;animation-delay:1s}
.obs-public__hero{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(420px,.95fr);gap:clamp(2rem,6vw,7rem);align-items:center;padding-top:clamp(4rem,8vw,8rem);padding-bottom:clamp(4rem,8vw,8rem)}
.obs-public__copy h1{max-width:920px;margin:1rem 0 1.2rem;font-size:clamp(3.4rem,7.1vw,7.7rem);line-height:.87;letter-spacing:-.075em;font-weight:950}.obs-public__copy h1 em{color:var(--obs-cyan);font-style:normal}.obs-public__copy>p{max-width:750px;color:rgba(239,250,255,.7);font-size:clamp(1rem,1.4vw,1.23rem);line-height:1.7}
.obs-public__actions{display:flex;flex-wrap:wrap;gap:.7rem;margin:2rem 0}.obs-public__actions button,.obs-public__actions a{min-height:54px;display:inline-flex;align-items:center;justify-content:center;padding:.85rem 1.2rem;border-radius:999px;font-size:.78rem;font-weight:950;text-decoration:none;cursor:pointer}.obs-public__actions button{border:0;color:#03202a;background:linear-gradient(135deg,var(--obs-cyan),var(--obs-gold));box-shadow:0 14px 38px rgba(69,103,242,.2)}.obs-public__actions a{border:1px solid rgba(255,255,255,.16);color:#fff;background:rgba(255,255,255,.06)}
.obs-public__audiences{display:flex;flex-wrap:wrap;gap:.45rem}.obs-public__audiences span{padding:.45rem .7rem;border:1px solid rgba(255,255,255,.09);border-radius:999px;color:rgba(255,255,255,.6);font-size:.67rem;font-weight:800}
.obs-public__visual{min-height:560px;display:grid;place-items:center}.obs-public-graph{position:relative;width:min(590px,42vw);aspect-ratio:1;border:1px solid rgba(69,103,242,.17);border-radius:42px;overflow:hidden;background:radial-gradient(circle at 50% 50%,rgba(69,103,242,.1),transparent 47%),rgba(3,19,27,.62);box-shadow:0 55px 120px rgba(0,0,0,.4);transform:perspective(1200px) rotateY(-7deg) rotateX(3deg)}.obs-public-graph canvas{width:100%;height:100%}.obs-public-graph::before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(transparent 49.7%,rgba(69,103,242,.07) 50%,transparent 50.3%),linear-gradient(90deg,transparent 49.7%,rgba(69,103,242,.07) 50%,transparent 50.3%)}
.obs-public-graph__badge{position:absolute;left:1.2rem;bottom:1.2rem;display:flex;align-items:center;gap:.65rem;padding:.75rem .9rem;border:1px solid rgba(255,255,255,.12);border-radius:15px;background:rgba(2,15,21,.78);backdrop-filter:blur(12px)}.obs-public-graph__badge strong{font-size:1.7rem;color:var(--obs-cyan)}.obs-public-graph__badge span{max-width:115px;color:rgba(255,255,255,.62);font-size:.66rem;line-height:1.3}.obs-public-graph__pulse{position:absolute;right:1.3rem;top:1.3rem;display:flex;gap:.3rem}.obs-public-graph__pulse i{width:5px;height:24px;border-radius:9px;background:var(--obs-cyan);transform-origin:center;animation:obsWave 1.1s infinite}.obs-public-graph__pulse i:nth-child(2){animation-delay:.2s}.obs-public-graph__pulse i:nth-child(3){animation-delay:.4s}
.obs-public__demo{position:relative;z-index:2;padding-bottom:7rem}.obs-public-window{display:grid;grid-template-columns:74px 1fr;min-height:680px;border:1px solid rgba(255,255,255,.12);border-radius:30px;overflow:hidden;background:rgba(5,25,34,.78);box-shadow:0 45px 100px rgba(0,0,0,.35);backdrop-filter:blur(20px)}.obs-public-window__rail{display:flex;flex-direction:column;align-items:center;gap:.9rem;padding:1.2rem .6rem;border-right:1px solid rgba(255,255,255,.08);background:rgba(1,12,18,.62)}.obs-public-window__rail i{width:42px;height:42px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.08);border-radius:12px;color:rgba(255,255,255,.45);font-style:normal}.obs-public-window__rail i:nth-child(3){color:#041b24;background:var(--obs-cyan)}.obs-public-window__top{height:58px;display:flex;align-items:center;justify-content:space-between;padding:0 1.2rem;border-bottom:1px solid rgba(255,255,255,.08);font-size:.65rem;letter-spacing:.12em}.obs-public-window__top span{color:var(--obs-cyan)}.obs-public-window__top b{color:rgba(255,255,255,.45)}.obs-public-window__grid{display:grid;grid-template-columns:1.2fr .8fr;grid-template-rows:1fr 1fr;gap:.8rem;padding:.8rem;height:calc(100% - 58px)}.obs-public-window__grid article{position:relative;min-height:270px;border:1px solid rgba(255,255,255,.08);border-radius:20px;overflow:hidden;background:rgba(2,15,22,.72)}.obs-public-window__grid article>span{position:absolute;left:.9rem;bottom:.9rem;padding:.35rem .55rem;border-radius:8px;color:rgba(255,255,255,.7);background:rgba(0,0,0,.38);font-size:.65rem;font-weight:850}.obs-demo-map{grid-row:span 2}.obs-demo-map div{position:absolute;inset:8%;background:radial-gradient(circle at 44% 24%,rgba(69,103,242,.9) 0 1.2%,transparent 1.4%),radial-gradient(circle at 58% 39%,rgba(74,121,255,.9) 0 1.5%,transparent 1.7%),radial-gradient(circle at 46% 56%,rgba(242,201,107,.9) 0 1.2%,transparent 1.4%),radial-gradient(circle at 62% 75%,rgba(69,103,242,.9) 0 1.4%,transparent 1.6%),linear-gradient(132deg,transparent 17%,rgba(29,94,216,.2) 18% 23%,transparent 24% 36%,rgba(74,121,255,.15) 37% 43%,transparent 44%);clip-path:polygon(47% 0,62% 7%,61% 18%,73% 27%,63% 38%,67% 51%,55% 65%,54% 80%,42% 100%,34% 89%,39% 71%,27% 60%,34% 44%,25% 31%,39% 23%)}.obs-demo-network canvas{width:100%;height:100%}.obs-demo-wave>div{height:100%;display:flex;align-items:center;justify-content:center;gap:3px;padding:2rem}.obs-demo-wave i{width:4px;height:calc(16px + (var(--i) % 9) * 7px);border-radius:4px;background:linear-gradient(var(--obs-cyan),var(--obs-blue));animation:obsWave 1.5s infinite;animation-delay:calc(var(--i)*-.04s)}.obs-demo-matrix>div{display:grid;grid-template-columns:repeat(8,1fr);gap:4px;padding:2rem;height:100%}.obs-demo-matrix i{border-radius:4px;background:rgba(69,103,242,var(--v));opacity:1}
.obs-public__capabilities{display:grid;grid-template-columns:repeat(4,1fr);gap:.7rem;margin-top:.8rem}.obs-public__capabilities article{padding:1.5rem;border:1px solid rgba(255,255,255,.08);border-radius:20px;background:rgba(6,30,39,.7)}.obs-public__capabilities span{color:var(--obs-cyan);font-size:.65rem;font-weight:950;letter-spacing:.15em}.obs-public__capabilities h2{margin:.75rem 0 .35rem;font-size:1.15rem}.obs-public__capabilities p{margin:0;color:rgba(255,255,255,.52);font-size:.78rem;line-height:1.55}

/* Gate */
.obs-access-gate{position:fixed;z-index:2050;inset:0;display:grid;place-items:center;padding:1rem;opacity:0;visibility:hidden;transition:.25s}.obs-access-gate.is-open{opacity:1;visibility:visible}.obs-access-gate__backdrop{position:absolute;inset:0;background:rgba(0,8,12,.88);backdrop-filter:blur(14px)}.obs-access-gate__dialog{position:relative;width:min(1080px,95vw);max-height:94vh;overflow:auto;padding:clamp(2rem,5vw,5rem);border:1px solid rgba(255,255,255,.14);border-radius:36px;text-align:center;color:#fff;background:radial-gradient(circle at 85% 10%,rgba(69,103,242,.18),transparent 31%),radial-gradient(circle at 12% 88%,rgba(74,121,255,.2),transparent 35%),linear-gradient(145deg,#03131c,#092d38);box-shadow:0 70px 180px rgba(0,0,0,.7)}.obs-access-gate__dialog::after{content:"";position:absolute;inset:0;pointer-events:none;border-radius:inherit;opacity:.11;background-image:linear-gradient(rgba(255,255,255,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.08) 1px,transparent 1px);background-size:42px 42px}.obs-access-gate__close{position:absolute;z-index:3;right:1.2rem;top:1.2rem;width:44px;height:44px;border:1px solid rgba(255,255,255,.14);border-radius:50%;color:#fff;background:rgba(255,255,255,.06);font-size:1.7rem}.obs-access-gate__mark{position:relative;z-index:2;width:96px;height:96px;display:grid;place-content:center;margin:0 auto 1.4rem;border:1px solid rgba(255,255,255,.14);border-radius:28px;background:linear-gradient(145deg,rgba(69,103,242,.18),rgba(74,121,255,.18))}.obs-access-gate__mark span{font-size:2rem;font-weight:950;letter-spacing:-.08em}.obs-access-gate__mark small{color:var(--obs-gold);font-size:.55rem;letter-spacing:.16em}.obs-access-gate__eyebrow{position:relative;z-index:2;color:var(--obs-gold);font-size:.7rem;font-weight:950;letter-spacing:.14em;text-transform:uppercase}.obs-access-gate h2{position:relative;z-index:2;margin:.8rem auto 1.2rem;max-width:900px;font-size:clamp(2.5rem,5.6vw,5.6rem);line-height:.92;letter-spacing:-.065em}.obs-access-gate h2 em{color:var(--obs-cyan);font-style:normal}.obs-access-gate__dialog>p:not(.obs-access-gate__eyebrow){position:relative;z-index:2;max-width:850px;margin-inline:auto;color:rgba(255,255,255,.65);font-size:1rem;line-height:1.7}.obs-access-gate__features{position:relative;z-index:2;display:flex;flex-wrap:wrap;justify-content:center;gap:.45rem;margin:1.5rem 0}.obs-access-gate__features span{padding:.48rem .7rem;border:1px solid rgba(255,255,255,.12);border-radius:999px;color:rgba(255,255,255,.68);background:rgba(255,255,255,.05);font-size:.7rem;font-weight:850}.obs-access-gate__actions{position:relative;z-index:2;display:flex;justify-content:center;gap:.7rem;flex-wrap:wrap}.obs-access-gate__actions a{min-height:54px;display:inline-flex;align-items:center;justify-content:center;padding:.85rem 1.2rem;border-radius:999px;text-decoration:none;font-weight:950}.obs-access-gate__register{color:#03202a;background:linear-gradient(135deg,var(--obs-cyan),var(--obs-gold))}.obs-access-gate__login{color:#fff;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.06)}.obs-access-gate__preview{position:relative;z-index:2;margin-top:1rem;border:0;color:rgba(255,255,255,.48);background:transparent;text-decoration:underline}.obs-gate-open{overflow:hidden}

/* Authenticated platform */
.obs-platform{min-height:calc(100vh - 72px);background:var(--obs-night);color:var(--obs-white)}
.obs-platform-hero{position:relative;min-height:176px;display:grid;grid-template-columns:minmax(0,1fr) 230px auto;align-items:center;gap:1.5rem;padding:1.7rem clamp(1rem,2.6vw,3rem);overflow:hidden;border-bottom:1px solid var(--obs-line);background:radial-gradient(circle at 75% 45%,rgba(69,103,242,.12),transparent 26%),linear-gradient(135deg,#03131c,#082833)}.obs-platform-hero__grid{position:absolute;inset:0;opacity:.18;background-image:linear-gradient(rgba(69,103,242,.1) 1px,transparent 1px),linear-gradient(90deg,rgba(69,103,242,.1) 1px,transparent 1px);background-size:40px 40px;mask-image:linear-gradient(90deg,#000,transparent 90%)}.obs-platform-hero__copy{position:relative;z-index:2}.obs-platform-hero h1{margin:.5rem 0 .3rem;font-size:clamp(2.1rem,3.5vw,4.2rem);line-height:.92;letter-spacing:-.06em}.obs-platform-hero h1 em{color:var(--obs-cyan);font-style:normal}.obs-platform-hero__copy>p{margin:0;max-width:850px;color:rgba(255,255,255,.58);font-size:.82rem}.obs-platform-hero__signal{position:relative;width:170px;height:150px;justify-self:center}.obs-orbit{position:absolute;inset:15%;border:1px solid rgba(69,103,242,.25);border-radius:50%;animation:obsSpin 18s linear infinite}.obs-orbit--b{inset:2%;border-color:rgba(74,121,255,.22);animation-direction:reverse;animation-duration:27s}.obs-orbit i{position:absolute;width:7px;height:7px;border-radius:50%;background:var(--obs-cyan);box-shadow:0 0 16px var(--obs-cyan)}.obs-orbit i:nth-child(1){left:10%;top:20%}.obs-orbit i:nth-child(2){right:7%;top:45%}.obs-orbit i:nth-child(3){left:45%;bottom:-4px}.obs-orbit--b i{background:var(--obs-blue);box-shadow:0 0 16px var(--obs-blue)}.obs-orbit--b i:nth-child(4){right:14%;bottom:12%}.obs-orbit__core{position:absolute;inset:34%;display:grid;place-content:center;text-align:center;border:1px solid rgba(255,255,255,.14);border-radius:50%;background:rgba(2,16,23,.8);box-shadow:0 0 50px rgba(69,103,242,.12)}.obs-orbit__core strong{font-size:1.5rem;letter-spacing:-.08em}.obs-orbit__core span{color:var(--obs-gold);font-size:.42rem;letter-spacing:.11em}.obs-platform-hero__status{position:relative;z-index:2;display:grid;grid-template-columns:repeat(3,minmax(95px,1fr));gap:.5rem}.obs-platform-hero__status article{padding:.75rem .85rem;border:1px solid rgba(255,255,255,.09);border-radius:14px;background:rgba(1,14,20,.52)}.obs-platform-hero__status span{display:block;color:var(--obs-muted);font-size:.58rem;font-weight:850;text-transform:uppercase;letter-spacing:.11em}.obs-platform-hero__status strong{display:block;margin-top:.25rem;font-size:1.25rem}
.obs-app-shell{position:relative;display:grid;grid-template-columns:74px 318px minmax(0,1fr) 0;height:calc(100vh - 248px);min-height:650px;overflow:hidden;transition:grid-template-columns .25s ease}.obs-platform.is-query-collapsed .obs-app-shell{grid-template-columns:74px 0 minmax(0,1fr) 0}.obs-platform.is-inspector-open .obs-app-shell{grid-template-columns:74px 318px minmax(0,1fr) 360px}.obs-platform.is-query-collapsed.is-inspector-open .obs-app-shell{grid-template-columns:74px 0 minmax(0,1fr) 360px}
.obs-module-rail{position:relative;z-index:20;display:flex;flex-direction:column;align-items:center;gap:.4rem;padding:.75rem .45rem;border-right:1px solid var(--obs-line);background:#020d13}.obs-module-rail button{position:relative;width:58px;min-height:54px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.2rem;border:1px solid transparent;border-radius:14px;color:#66838e;background:transparent;font-size:.53rem;font-weight:850;cursor:pointer}.obs-module-rail button svg{width:20px;height:20px}.obs-module-rail button:hover{color:#fff;background:rgba(255,255,255,.05)}.obs-module-rail button.is-active{color:#03181f;border-color:rgba(69,103,242,.4);background:linear-gradient(145deg,var(--obs-cyan),#8af0df);box-shadow:0 10px 28px rgba(69,103,242,.17)}.obs-module-rail__line{width:34px;height:1px;margin:.2rem 0;background:rgba(255,255,255,.09)}
.obs-query-panel{position:relative;z-index:18;min-width:0;overflow:hidden;border-right:1px solid var(--obs-line);background:#061821;transition:opacity .22s}.obs-platform.is-query-collapsed .obs-query-panel{opacity:0;pointer-events:none}.obs-query-panel__head{height:68px;display:flex;align-items:center;justify-content:space-between;padding:.8rem .9rem;border-bottom:1px solid var(--obs-line)}.obs-query-panel__head span{display:block;color:var(--obs-cyan);font-size:.55rem;font-weight:950;letter-spacing:.13em;text-transform:uppercase}.obs-query-panel__head strong{display:block;margin-top:.15rem;font-size:.93rem}.obs-query-panel__head button{width:34px;height:34px;border:1px solid var(--obs-line);border-radius:10px;color:#fff;background:rgba(255,255,255,.04);font-size:1.4rem}.obs-query-form{height:calc(100% - 68px);overflow:auto;padding:.8rem}.obs-query-search>span,.obs-query-form label>span{display:block;margin-bottom:.3rem;color:#809ba5;font-size:.58rem;font-weight:850;text-transform:uppercase;letter-spacing:.08em}.obs-query-search>div{display:flex;align-items:center;gap:.45rem;padding:.6rem .7rem;border:1px solid var(--obs-line);border-radius:12px;background:#031219}.obs-query-search svg{width:17px;color:var(--obs-cyan)}.obs-query-form input,.obs-query-form select{width:100%;min-height:39px;border:1px solid rgba(139,192,201,.16);border-radius:10px;color:#eaf8fb;background:#031219;padding:.55rem .65rem;font-size:.73rem}.obs-query-search input{min-height:0;padding:0;border:0;background:transparent}.obs-query-form details{margin-top:.65rem;border:1px solid var(--obs-line);border-radius:13px;background:rgba(255,255,255,.02)}.obs-query-form summary{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.75rem;cursor:pointer;list-style:none}.obs-query-form summary::-webkit-details-marker{display:none}.obs-query-form summary b{font-size:.73rem}.obs-query-form summary small{color:#617d87;font-size:.57rem}.obs-query-form details>div{display:grid;gap:.55rem;padding:0 .7rem .75rem}.obs-query-dates{display:grid!important;grid-template-columns:1fr 1fr;gap:.45rem!important;padding:0!important}.obs-query-form__actions{position:sticky;bottom:-.8rem;z-index:2;display:grid!important;grid-template-columns:1fr auto;gap:.45rem!important;margin:.8rem -.8rem -.8rem;padding:.8rem!important;border-top:1px solid var(--obs-line);background:#061821}.obs-query-form__actions button,.obs-query-form__actions a{min-height:42px;display:flex;align-items:center;justify-content:center;border-radius:11px;font-size:.68rem;font-weight:950;text-decoration:none}.obs-query-form__actions button{border:0;color:#032029;background:linear-gradient(135deg,var(--obs-cyan),var(--obs-gold))}.obs-query-form__actions a{padding:0 .7rem;border:1px solid var(--obs-line);color:#dcecf0;background:#0b2530}
.obs-science-stage{position:relative;min-width:0;display:grid;grid-template-rows:68px minmax(0,1fr) 28px;overflow:hidden;background:#07171e}.obs-stage-command{position:relative;z-index:15;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.8rem;padding:.55rem .8rem;border-bottom:1px solid var(--obs-line);background:rgba(5,22,29,.94);backdrop-filter:blur(14px)}.obs-stage-command__left{display:flex;align-items:center;gap:.65rem}.obs-stage-command__left>button{display:none}.obs-stage-command__left span{display:block;color:var(--obs-cyan);font-size:.55rem;font-weight:950;text-transform:uppercase;letter-spacing:.11em}.obs-stage-command__left strong{display:block;margin-top:.15rem;font-size:.75rem}.obs-stage-command__presets{display:flex;justify-content:center;gap:.35rem;overflow:auto}.obs-stage-command__presets button,.obs-stage-command__actions button{white-space:nowrap;border:1px solid var(--obs-line);border-radius:10px;color:#a9bec6;background:rgba(255,255,255,.03);font-size:.61rem;font-weight:850}.obs-stage-command__presets button{padding:.48rem .62rem}.obs-stage-command__presets button:hover{color:#fff;border-color:rgba(69,103,242,.3)}.obs-stage-command__actions{display:flex;gap:.35rem}.obs-stage-command__actions button{padding:.48rem .6rem}.obs-stage-body{position:relative;min-height:0;overflow:hidden}.obs-stage-status{display:flex;align-items:center;justify-content:space-between;padding:0 .8rem;border-top:1px solid var(--obs-line);color:#5f7c86;background:#020d12;font-size:.55rem}.obs-stage-status span:first-child{display:flex;align-items:center;gap:.35rem}.obs-stage-status i{width:6px;height:6px;border-radius:50%;background:#4fe0a2;box-shadow:0 0 12px #4fe0a2}.obs-active-query{display:flex;align-items:center;gap:.5rem;padding:.35rem .7rem;border-bottom:1px solid var(--obs-line);background:#0a212a}.obs-active-query>span{color:var(--obs-gold);font-size:.53rem;font-weight:950;text-transform:uppercase;letter-spacing:.1em}.obs-active-query>div{display:flex;gap:.3rem;overflow:auto}.obs-active-query button{white-space:nowrap;padding:.25rem .45rem;border:1px solid rgba(242,201,107,.18);border-radius:999px;color:#d8c99f;background:rgba(242,201,107,.05);font-size:.55rem}.obs-stage-error{margin:.7rem;padding:.8rem;border:1px solid rgba(255,104,104,.25);border-radius:12px;color:#ffc2c2;background:rgba(136,22,22,.16)}
.obs-view{display:none;height:100%;min-height:0;overflow:auto;padding:.75rem}.obs-view.is-active{display:block;animation:obsViewIn .25s ease}.obs-view::-webkit-scrollbar,.obs-query-form::-webkit-scrollbar,.obs-audio-library>div::-webkit-scrollbar{width:7px}.obs-view::-webkit-scrollbar-thumb,.obs-query-form::-webkit-scrollbar-thumb,.obs-audio-library>div::-webkit-scrollbar-thumb{background:#1d4652;border-radius:9px}
.obs-inspector{position:relative;z-index:17;min-width:0;overflow:hidden;border-left:1px solid var(--obs-line);background:#061821;opacity:0;pointer-events:none;transition:opacity .2s}.obs-platform.is-inspector-open .obs-inspector{opacity:1;pointer-events:auto}.obs-inspector__head{height:68px;display:flex;align-items:center;justify-content:space-between;padding:.8rem;border-bottom:1px solid var(--obs-line)}.obs-inspector__head span{display:block;color:var(--obs-cyan);font-size:.55rem;font-weight:950;text-transform:uppercase;letter-spacing:.11em}.obs-inspector__head strong{display:block;margin-top:.15rem;font-size:.8rem}.obs-inspector__head button{width:34px;height:34px;border:1px solid var(--obs-line);border-radius:10px;color:#fff;background:rgba(255,255,255,.04);font-size:1.3rem}.obs-inspector__body{height:calc(100% - 68px);overflow:auto;padding:.9rem}.obs-inspector__empty{height:100%;display:grid;place-content:center;text-align:center;color:#68848e}.obs-inspector__empty i{font-size:3rem;font-style:normal}.obs-inspector__empty p{max-width:230px;font-size:.75rem;line-height:1.55}.obs-inspector-card h3{margin:.4rem 0;font-size:1.4rem}.obs-inspector-card>span{color:var(--obs-cyan);font-size:.58rem;font-weight:950;text-transform:uppercase;letter-spacing:.1em}.obs-inspector-card p{color:#8da7b0;font-size:.75rem;line-height:1.55}.obs-inspector-card dl{display:grid;gap:.4rem;margin:1rem 0}.obs-inspector-card dl div{display:flex;justify-content:space-between;gap:1rem;padding:.55rem .65rem;border:1px solid var(--obs-line);border-radius:10px}.obs-inspector-card dt{color:#7d98a2;font-size:.63rem}.obs-inspector-card dd{margin:0;font-size:.68rem;font-weight:900}.obs-inspector-card audio{width:100%;margin:.6rem 0}.obs-inspector-card a,.obs-inspector-card button{min-height:40px;display:flex;align-items:center;justify-content:center;width:100%;margin-top:.45rem;border:1px solid var(--obs-line);border-radius:10px;color:#fff;background:#0b2b36;text-decoration:none;font-size:.68rem;font-weight:900}.obs-inspector-card button.is-primary{border:0;color:#032029;background:var(--obs-cyan)}
.obs-filter-backdrop{display:none}

/* Shared cards */
.obs-science-card{min-height:0;padding:.9rem;border:1px solid var(--obs-line);border-radius:var(--obs-radius);background:linear-gradient(155deg,rgba(13,40,50,.94),rgba(4,22,29,.96));box-shadow:0 14px 40px rgba(0,0,0,.13)}.obs-science-card>header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:.55rem}.obs-science-card>header span,.obs-map-console>header span,.obs-graph-console>header span,.obs-corpus-console>header span,.obs-compare-console>header span,.obs-quality-console>header span,.obs-audio-player>header span{display:block;color:var(--obs-cyan);font-size:.53rem;font-weight:950;text-transform:uppercase;letter-spacing:.12em}.obs-science-card h2,.obs-map-console h2,.obs-graph-console h2,.obs-corpus-console h2,.obs-compare-console h2,.obs-quality-console h2,.obs-audio-player h2{margin:.16rem 0 0;font-size:clamp(1rem,1.4vw,1.35rem);letter-spacing:-.025em}.obs-science-card header button,.obs-card-switch button{border:1px solid var(--obs-line);border-radius:9px;color:#8da8b1;background:rgba(255,255,255,.03);font-size:.57rem;font-weight:850}.obs-science-card header>button{padding:.42rem .55rem}.obs-chart-frame{position:relative;height:250px}.obs-chart-frame canvas{width:100%!important;height:100%!important}.obs-chart-frame--donut{height:190px}.obs-card-switch{display:flex;gap:.25rem}.obs-card-switch button{padding:.38rem .48rem}.obs-card-switch button.is-active{color:#031920;background:var(--obs-cyan)}

/* Overview */
.obs-kpi-strip{display:grid;grid-template-columns:repeat(6,minmax(120px,1fr));gap:.55rem;margin-bottom:.6rem}.obs-kpi-strip article{position:relative;min-height:112px;overflow:hidden;padding:.8rem;border:1px solid var(--obs-line);border-radius:16px;background:linear-gradient(145deg,#0b2b36,#071a22);cursor:pointer}.obs-kpi-strip article:hover{border-color:rgba(69,103,242,.35);transform:translateY(-1px)}.obs-kpi-strip span{display:block;color:#77949e;font-size:.56rem;font-weight:900;text-transform:uppercase;letter-spacing:.1em}.obs-kpi-strip strong{display:block;margin:.55rem 0 .18rem;font-size:clamp(1.45rem,2vw,2.2rem);line-height:1;letter-spacing:-.05em}.obs-kpi-strip small{color:#67838d;font-size:.58rem}.obs-kpi-strip i{position:absolute;left:0;bottom:0;width:var(--p);height:3px;background:linear-gradient(90deg,var(--obs-blue),var(--obs-cyan))}.obs-overview-grid{display:grid;grid-template-columns:1.25fr .75fr .8fr 1fr;grid-template-rows:minmax(330px,1fr);gap:.6rem;min-height:calc(100% - 119px)}.obs-science-card--timeline{grid-column:span 2}.obs-science-card--timeline footer{display:flex;justify-content:space-between;color:#68848d;font-size:.58rem}.obs-science-card--timeline footer span{display:flex;align-items:center;gap:.3rem}.obs-science-card--timeline footer i{width:6px;height:6px;border-radius:50%;background:var(--obs-cyan)}.obs-science-card--lexical{display:flex;flex-direction:column}.obs-lexical-radar{position:relative;min-height:190px;flex:1}.obs-lexical-radar canvas{width:100%!important;height:100%!important}.obs-lexical-radar>div{position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%);text-align:center;pointer-events:none}.obs-lexical-radar span{display:block;color:#718d96;font-size:.53rem;text-transform:uppercase}.obs-lexical-radar strong{display:block;font-size:1.35rem}.obs-lexical-radar small{display:block;color:#68848e;font-size:.5rem}.obs-trigram-cloud{display:flex;flex-wrap:wrap;justify-content:center;gap:.25rem;padding-top:.45rem;border-top:1px solid var(--obs-line)}.obs-trigram-cloud button{border:0;color:#b5cbd1;background:transparent;font-size:calc(.53rem * var(--w));font-weight:850}.obs-trigram-cloud sup{color:var(--obs-cyan);font-size:.42rem}.obs-origin-list{display:grid;gap:.3rem;max-height:180px;overflow:auto}.obs-origin-list button{display:grid;grid-template-columns:1fr auto;gap:.1rem .6rem;padding:.45rem .55rem;border:1px solid var(--obs-line);border-radius:9px;text-align:left;color:#fff;background:rgba(255,255,255,.02)}.obs-origin-list span{font-size:.65rem}.obs-origin-list strong{grid-row:span 2;font-size:.9rem}.obs-origin-list small{color:#69858e;font-size:.52rem}.obs-actors-tabs{display:flex;gap:.3rem;margin-bottom:.45rem}.obs-actors-tabs button{padding:.4rem .55rem;border:1px solid var(--obs-line);border-radius:9px;color:#829da6;background:transparent;font-size:.58rem;font-weight:850}.obs-actors-tabs button.is-active{color:#041a22;background:var(--obs-cyan)}.obs-actors-list{display:none;max-height:260px;overflow:auto}.obs-actors-list.is-active{display:grid;gap:.25rem}.obs-actors-list a,.obs-actors-list>button{display:grid;grid-template-columns:28px 1fr auto;align-items:center;gap:.45rem;padding:.48rem;border:1px solid transparent;border-radius:10px;color:#fff;text-align:left;text-decoration:none;background:rgba(255,255,255,.025)}.obs-actors-list a:hover,.obs-actors-list>button:hover{border-color:var(--obs-line);background:rgba(69,103,242,.05)}.obs-actors-list em{color:#58757f;font-size:.55rem;font-style:normal}.obs-actors-list strong{display:block;font-size:.65rem}.obs-actors-list small{display:block;color:#66828c;font-size:.5rem}.obs-actors-list b{color:var(--obs-cyan);font-size:.75rem}

/* Map */
.obs-map-console{height:calc(100% - 238px);min-height:430px;display:grid;grid-template-rows:auto minmax(0,1fr) auto;border:1px solid var(--obs-line);border-radius:var(--obs-radius);overflow:hidden;background:#051820}.obs-map-console>header{display:flex;justify-content:space-between;gap:1rem;padding:.85rem;border-bottom:1px solid var(--obs-line)}.obs-map-console>header p,.obs-graph-console>header p,.obs-corpus-console>header p,.obs-compare-console>header p,.obs-quality-console>header p{margin:.22rem 0 0;color:#718d96;font-size:.65rem}.obs-map-metrics{display:flex;align-items:center;gap:.25rem;flex-wrap:wrap}.obs-map-metrics button{padding:.42rem .55rem;border:1px solid var(--obs-line);border-radius:9px;color:#85a0aa;background:rgba(255,255,255,.03);font-size:.57rem;font-weight:850}.obs-map-metrics button.is-active{color:#041a22;background:var(--obs-cyan)}.obs-map-console__body{display:grid;grid-template-columns:minmax(0,1fr) 270px;min-height:0}.obs-map-canvas{position:relative;min-height:380px;background:#031219}.obs-map-canvas .leaflet-container{background:#031219}.obs-map-ranking{overflow:hidden;border-left:1px solid var(--obs-line);background:#061a22}.obs-map-ranking>div:first-child{padding:.7rem;border-bottom:1px solid var(--obs-line)}.obs-map-ranking>div:first-child span{display:block;color:#718f98;font-size:.52rem;text-transform:uppercase}.obs-map-ranking>div:first-child strong{display:block;margin-top:.2rem;font-size:.72rem}.obs-map-ranking>div:last-child{height:calc(100% - 58px);overflow:auto;padding:.4rem}.obs-map-ranking button{width:100%;display:grid;grid-template-columns:25px 1fr auto;align-items:center;gap:.35rem;padding:.45rem;border:0;border-bottom:1px solid rgba(255,255,255,.05);color:#fff;text-align:left;background:transparent}.obs-map-ranking button:hover{background:rgba(69,103,242,.06)}.obs-map-ranking em{color:#506e78;font-size:.5rem;font-style:normal}.obs-map-ranking strong{display:block;font-size:.62rem}.obs-map-ranking small{display:block;color:#617e88;font-size:.48rem}.obs-map-ranking b{color:var(--obs-cyan);font-size:.68rem}.obs-map-console>footer{display:flex;justify-content:space-between;align-items:center;padding:.48rem .7rem;border-top:1px solid var(--obs-line);color:#718b95;font-size:.56rem}.obs-map-legend{display:flex;align-items:center;gap:.2rem}.obs-map-legend i{width:22px;height:7px;border-radius:3px}.obs-map-legend i:nth-of-type(1){background:#163a43}.obs-map-legend i:nth-of-type(2){background:#17616a}.obs-map-legend i:nth-of-type(3){background:#218c8b}.obs-map-legend i:nth-of-type(4){background:#4bc9aa}.obs-map-legend i:nth-of-type(5){background:#f2c96b}.obs-map-secondary{display:grid;grid-template-columns:1.1fr .9fr;gap:.6rem;margin-top:.6rem;height:232px}.obs-map-secondary .obs-chart-frame{height:175px}.obs-map-loader{position:absolute;z-index:500;inset:0;display:grid;place-content:center;text-align:center;color:#76939c;background:#031219}.obs-map-loader span{width:32px;height:32px;margin:0 auto .5rem;border:2px solid rgba(69,103,242,.15);border-top-color:var(--obs-cyan);border-radius:50%;animation:obsSpin 1s linear infinite}.obs-map-loader strong{font-size:.62rem}

/* Graph */
.obs-graph-console{height:100%;display:grid;grid-template-rows:auto minmax(0,1fr);border:1px solid var(--obs-line);border-radius:var(--obs-radius);overflow:hidden;background:#031219}.obs-graph-console>header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.8rem;border-bottom:1px solid var(--obs-line);background:#071d26}.obs-graph-actions{display:flex;align-items:end;gap:.35rem}.obs-graph-actions label span{display:block;margin-bottom:.2rem;color:#6f8b95;font-size:.5rem;text-transform:uppercase}.obs-graph-actions input{min-height:36px;width:220px;padding:.45rem .6rem;border:1px solid var(--obs-line);border-radius:9px;color:#fff;background:#031219;font-size:.65rem}.obs-graph-actions button{min-height:36px;padding:.4rem .55rem;border:1px solid var(--obs-line);border-radius:9px;color:#9cb3ba;background:rgba(255,255,255,.03);font-size:.56rem;font-weight:850}.obs-graph-console__body{display:grid;grid-template-columns:minmax(0,1fr) 230px;min-height:0}.obs-network-stage{position:relative;min-height:0;overflow:hidden;background:radial-gradient(circle at 50% 50%,rgba(69,103,242,.07),transparent 40%),#020d12}.obs-network-stage canvas{width:100%;height:100%;display:block;cursor:grab}.obs-network-stage canvas:active{cursor:grabbing}.obs-network-hint{position:absolute;left:.6rem;bottom:.6rem;padding:.35rem .5rem;border:1px solid var(--obs-line);border-radius:8px;color:#65818a;background:rgba(2,13,18,.72);font-size:.5rem}.obs-network-loading{position:absolute;inset:0;display:none;place-content:center;text-align:center;background:rgba(2,13,18,.72);backdrop-filter:blur(4px)}.obs-network-loading.is-active{display:grid}.obs-network-loading i{width:36px;height:36px;margin:0 auto .6rem;border:2px solid rgba(69,103,242,.15);border-top-color:var(--obs-cyan);border-radius:50%;animation:obsSpin 1s linear infinite}.obs-network-loading span{color:#9ab2ba;font-size:.65rem}.obs-network-legend{overflow:auto;padding:.65rem;border-left:1px solid var(--obs-line);background:#061821}.obs-network-legend>div{padding-bottom:.55rem;border-bottom:1px solid var(--obs-line)}.obs-network-legend>div span{display:block;color:#75919a;font-size:.52rem;text-transform:uppercase}.obs-network-legend>div strong{display:block;margin-top:.2rem;font-size:.72rem}.obs-network-legend>button{width:100%;display:grid;grid-template-columns:13px 1fr auto;align-items:center;gap:.45rem;padding:.45rem .2rem;border:0;border-bottom:1px solid rgba(255,255,255,.04);color:#aec2c8;text-align:left;background:transparent;font-size:.6rem}.obs-network-legend>button i{width:10px;height:10px;border-radius:50%}.obs-network-legend>button b{color:#617e87}.obs-network-legend p{color:#5e7a84;font-size:.55rem;line-height:1.5}.obs-network-legend .is-corpus{background:#f2c96b}.obs-network-legend .is-variant{background:#4567f2}.obs-network-legend .is-municipality{background:#4a79ff}.obs-network-legend .is-province{background:#9c7cff}.obs-network-legend .is-variety{background:#ff8f70}.obs-network-legend .is-company{background:#51cf72}.obs-network-legend .is-contributor{background:#f7a9d4}.obs-network-legend .is-source{background:#8eb6c4}.obs-network-legend .is-origin{background:#ffb35c}.obs-network-legend .is-category{background:#e7df7c}

/* Audio */
.obs-audio-lab{height:calc(100% - 180px);min-height:440px;display:grid;grid-template-columns:minmax(0,1fr) 360px;border:1px solid var(--obs-line);border-radius:var(--obs-radius);overflow:hidden;background:#04151c}.obs-audio-player{display:grid;grid-template-rows:auto minmax(150px,1fr) 0 auto auto;padding:.9rem;min-width:0}.obs-audio-player>header{display:flex;justify-content:space-between;gap:1rem}.obs-audio-player>header p{margin:.25rem 0;color:#708b94;font-size:.64rem}.obs-audio-player>header button{height:35px;padding:.4rem .55rem;border:1px solid var(--obs-line);border-radius:9px;color:#a3bac1;background:rgba(255,255,255,.03);font-size:.56rem;font-weight:850}.obs-waveform{position:relative;min-height:190px;margin:.65rem 0;border:1px solid var(--obs-line);border-radius:18px;overflow:hidden;background:radial-gradient(circle at 50% 50%,rgba(69,103,242,.07),transparent 42%),#020d12}.obs-waveform canvas{width:100%;height:100%}.obs-waveform__cursor{position:absolute;top:0;bottom:0;left:0;width:1px;background:var(--obs-gold);box-shadow:0 0 12px var(--obs-gold);pointer-events:none}.obs-waveform>span{position:absolute;right:.55rem;bottom:.45rem;padding:.25rem .4rem;border-radius:7px;color:#91a9b1;background:rgba(0,0,0,.45);font-size:.55rem}.obs-audio-controls{display:flex;align-items:center;justify-content:center;gap:.35rem;flex-wrap:wrap}.obs-audio-controls button,.obs-audio-controls select{min-height:36px;border:1px solid var(--obs-line);border-radius:9px;color:#a8bec5;background:#09232d;font-size:.58rem;font-weight:850}.obs-audio-controls button{padding:.4rem .55rem}.obs-audio-controls button.is-active{color:#031920;background:var(--obs-cyan)}.obs-audio-controls .obs-audio-play{width:48px;height:48px;border:0;border-radius:50%;color:#031920;background:linear-gradient(145deg,var(--obs-cyan),var(--obs-gold));font-size:1rem}.obs-audio-controls label{display:flex;align-items:center;gap:.3rem;color:#718b95;font-size:.53rem}.obs-audio-controls select{padding:.35rem}.obs-audio-compare{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:.5rem;margin-top:.65rem}.obs-audio-compare article{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.5rem;padding:.55rem;border:1px solid var(--obs-line);border-radius:12px;background:rgba(255,255,255,.02)}.obs-audio-compare article span{color:var(--obs-cyan);font-size:.52rem;font-weight:950}.obs-audio-compare article strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.62rem}.obs-audio-compare article button{border:0;color:#8ba4ac;background:transparent;font-size:.54rem}.obs-audio-compare>i{color:var(--obs-gold);font-size:.55rem;font-style:normal;font-weight:950}.obs-audio-library{display:grid;grid-template-rows:auto minmax(0,1fr);border-left:1px solid var(--obs-line);background:#061821}.obs-audio-library header{padding:.7rem;border-bottom:1px solid var(--obs-line)}.obs-audio-library header span{display:block;color:#6f8a94;font-size:.52rem;text-transform:uppercase}.obs-audio-library header strong{display:block;margin:.18rem 0 .45rem;font-size:.72rem}.obs-audio-library input{width:100%;min-height:36px;padding:.45rem .55rem;border:1px solid var(--obs-line);border-radius:9px;color:#fff;background:#031219;font-size:.62rem}.obs-audio-library>div{overflow:auto;padding:.35rem}.obs-audio-library>div>button{width:100%;display:grid;grid-template-columns:28px 1fr auto;align-items:center;gap:.4rem;padding:.5rem;border:1px solid transparent;border-radius:11px;color:#fff;text-align:left;background:transparent}.obs-audio-library>div>button:hover,.obs-audio-library>div>button.is-active{border-color:rgba(69,103,242,.2);background:rgba(69,103,242,.06)}.obs-audio-library>div>button i{width:25px;height:25px;display:grid;place-items:center;border-radius:50%;color:#031920;background:var(--obs-cyan);font-size:.5rem;font-style:normal}.obs-audio-library strong{display:block;font-size:.63rem}.obs-audio-library small{display:block;color:#607b85;font-size:.49rem}.obs-audio-library em{max-width:80px;color:#78949d;font-size:.5rem;font-style:normal;text-align:right}.obs-audio-stats{display:grid;grid-template-columns:1fr 1fr .55fr;gap:.6rem;margin-top:.6rem;height:174px}.obs-audio-stats article{min-height:0;padding:.7rem;border:1px solid var(--obs-line);border-radius:17px;background:#071d26}.obs-audio-stats article>span{color:var(--obs-cyan);font-size:.53rem;font-weight:950;text-transform:uppercase}.obs-audio-stats .obs-chart-frame{height:130px}.obs-audio-stats article:last-child{display:grid;place-content:center;text-align:center}.obs-audio-stats article:last-child strong{font-size:2.6rem}.obs-audio-stats article:last-child small{color:#6d8992}.obs-audio-stats article:last-child b{margin-top:.4rem;color:var(--obs-cyan);font-size:1.15rem}

/* Corpus */
.obs-corpus-console{height:100%;display:grid;grid-template-rows:auto minmax(0,1fr) auto;border:1px solid var(--obs-line);border-radius:var(--obs-radius);overflow:hidden;background:#051820}.obs-corpus-console>header{display:flex;justify-content:space-between;gap:1rem;padding:.8rem;border-bottom:1px solid var(--obs-line)}.obs-corpus-console>header>div:last-child{display:flex;gap:.35rem}.obs-corpus-console>header button{height:36px;padding:.4rem .6rem;border:1px solid var(--obs-line);border-radius:9px;color:#a3b9c0;background:rgba(255,255,255,.03);font-size:.57rem;font-weight:850}.obs-corpus-layout{display:grid;grid-template-columns:minmax(0,1fr) 245px;min-height:0}.obs-corpus-table-wrap{overflow:auto}.obs-corpus-table{width:100%;min-width:900px;border-collapse:separate;border-spacing:0}.obs-corpus-table th{position:sticky;z-index:2;top:0;padding:.65rem;border-bottom:1px solid var(--obs-line);color:#718d96;background:#071c25;font-size:.54rem;text-align:left;text-transform:uppercase;letter-spacing:.08em}.obs-corpus-table td{padding:.62rem;border-bottom:1px solid rgba(255,255,255,.055);vertical-align:top;font-size:.62rem}.obs-corpus-table tr:hover td{background:rgba(69,103,242,.025)}.obs-corpus-table td strong,.obs-corpus-table td span,.obs-corpus-table td small{display:block}.obs-corpus-table td>span{margin-top:.18rem;color:var(--obs-cyan);font-size:.72rem;font-weight:850}.obs-corpus-table td small{margin-top:.18rem;color:#68848d;max-width:270px}.obs-corpus-table td em{display:inline-flex;padding:.25rem .4rem;border:1px solid var(--obs-line);border-radius:999px;color:#a8bec5;font-size:.5rem;font-style:normal}.obs-corpus-table td a{color:#c4dde3;text-decoration:none}.obs-corpus-table td i{display:inline-flex;margin-top:.3rem;padding:.22rem .35rem;border-radius:6px;font-size:.48rem;font-style:normal}.obs-corpus-table td i.is-yes{color:#9df0c5;background:rgba(77,211,143,.1)}.obs-corpus-table td i.is-no{color:#d5a6a6;background:rgba(211,77,77,.08)}.obs-corpus-table td button{padding:.35rem .45rem;border:1px solid var(--obs-line);border-radius:8px;color:#031920;background:var(--obs-cyan);font-size:.54rem;font-weight:900}.obs-corpus-insights{overflow:auto;padding:.65rem;border-left:1px solid var(--obs-line);background:#061821}.obs-corpus-insights>article{padding:.55rem;border-bottom:1px solid rgba(255,255,255,.06)}.obs-corpus-insights>article span{display:block;color:#6c8891;font-size:.5rem;text-transform:uppercase}.obs-corpus-insights>article strong{display:block;margin:.2rem 0;font-size:1.25rem}.obs-corpus-insights>article small{color:#69848e;font-size:.53rem}.obs-token-list{display:grid;gap:.25rem;margin-top:.65rem}.obs-token-list>span{color:var(--obs-cyan);font-size:.52rem;font-weight:950;text-transform:uppercase}.obs-token-list button{display:flex;justify-content:space-between;padding:.38rem;border:0;border-bottom:1px solid rgba(255,255,255,.05);color:#abc0c7;background:transparent;font-size:.57rem}.obs-token-list em{color:#5f7b84;font-style:normal}.obs-pagination{display:flex;align-items:center;justify-content:center;gap:.7rem;padding:.45rem;border-top:1px solid var(--obs-line);font-size:.58rem}.obs-pagination a{padding:.38rem .55rem;border:1px solid var(--obs-line);border-radius:8px;color:#bdd1d7;text-decoration:none}.obs-pagination span{color:#69858e}.obs-empty{display:grid;place-content:center;min-height:180px;text-align:center;color:#69858e}.obs-empty strong{display:block;color:#aac0c6}

/* Compare */
.obs-compare-console{height:100%;overflow:auto}.obs-compare-console>header,.obs-quality-console>header{display:flex;justify-content:space-between;gap:1rem;margin-bottom:.6rem;padding:.85rem;border:1px solid var(--obs-line);border-radius:17px;background:#071d26}.obs-compare-console>header button{align-self:center;height:38px;padding:.45rem .65rem;border:1px solid var(--obs-line);border-radius:9px;color:#a9bdc4;background:rgba(255,255,255,.03);font-size:.57rem;font-weight:850}.obs-compare-hero{display:grid;grid-template-columns:.65fr 1.2fr .65fr;gap:.6rem;min-height:340px}.obs-compare-hero>article{display:grid;place-content:center;text-align:center;padding:1rem;border:1px solid var(--obs-line);border-radius:20px;background:linear-gradient(145deg,#0a2a35,#061820)}.obs-compare-hero>article span{color:var(--obs-cyan);font-size:.65rem;font-weight:950}.obs-compare-hero>article h3{margin:.55rem 0;font-size:1.45rem}.obs-compare-hero>article strong{font-size:3rem;letter-spacing:-.06em}.obs-compare-hero>article small{color:#6f8992}.obs-compare-hero>article a{margin-top:.8rem;color:var(--obs-gold);font-size:.6rem;text-decoration:none}.obs-compare-hero>div{padding:.7rem;border:1px solid var(--obs-line);border-radius:20px;background:#04151c}.obs-compare-hero canvas{width:100%!important;height:100%!important}.obs-compare-metrics{display:grid;grid-template-columns:repeat(6,1fr);gap:.45rem;margin:.6rem 0}.obs-compare-metrics article{padding:.55rem;border:1px solid var(--obs-line);border-radius:13px;background:#071d26}.obs-compare-metrics>article>span{display:block;margin-bottom:.45rem;color:#718b94;font-size:.52rem;text-transform:uppercase}.obs-compare-metrics article div{position:relative;margin:.3rem 0;padding:.3rem .4rem;border-radius:7px;background:#031219;overflow:hidden}.obs-compare-metrics article i{position:absolute;inset:0 auto 0 0;width:var(--p);background:linear-gradient(90deg,rgba(74,121,255,.3),rgba(69,103,242,.22))}.obs-compare-metrics article div:nth-of-type(2) i{background:linear-gradient(90deg,rgba(242,201,107,.3),rgba(255,143,112,.2))}.obs-compare-metrics strong{position:relative;z-index:1;font-size:.62rem}.obs-compare-bottom{display:grid;grid-template-columns:.8fr 1.2fr;gap:.6rem;height:260px}.obs-ranking-table{display:grid;gap:.2rem;max-height:195px;overflow:auto}.obs-ranking-table a{display:grid;grid-template-columns:24px 1fr auto;align-items:center;gap:.4rem;padding:.4rem;border-bottom:1px solid rgba(255,255,255,.05);color:#fff;text-decoration:none}.obs-ranking-table em{color:#58747d;font-size:.5rem;font-style:normal}.obs-ranking-table strong{display:block;font-size:.6rem}.obs-ranking-table small{display:block;color:#607c85;font-size:.48rem}.obs-ranking-table b{color:var(--obs-cyan);font-size:.68rem}.obs-compare-bottom .obs-chart-frame{height:200px}

/* Quality */
.obs-quality-console{height:100%;overflow:auto}.obs-quality-console>header>strong{align-self:center;color:var(--obs-cyan);font-size:1.2rem}.obs-quality-grid{display:grid;grid-template-columns:1.1fr .9fr 1fr 1fr;gap:.6rem}.obs-quality-grid>.obs-science-card{min-height:335px}.obs-quality-radar{grid-column:span 2}.obs-quality-radar>.obs-chart-frame{height:220px}.obs-quality-radar>div:last-child{display:grid;grid-template-columns:repeat(3,1fr);gap:.35rem}.obs-quality-radar>div:last-child span{display:grid;grid-template-columns:65px 1fr auto;align-items:center;gap:.35rem;color:#77939c;font-size:.52rem}.obs-quality-radar i,.obs-consent-meter i{height:4px;border-radius:4px;background:linear-gradient(90deg,var(--obs-blue) var(--p),rgba(255,255,255,.07) var(--p))}.obs-quality-radar em{color:#b9ccd1;font-style:normal}.obs-quality-number-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.35rem}.obs-quality-number-grid span{padding:.55rem;border:1px solid var(--obs-line);border-radius:10px;background:#031219}.obs-quality-number-grid strong{display:block;font-size:1rem}.obs-quality-number-grid small{color:#66828b;font-size:.48rem}.obs-quality-lexicon .obs-chart-frame{height:185px}.obs-quality-categories .obs-chart-frame,.obs-quality-sources .obs-chart-frame{height:245px}.obs-consent-meter{display:grid;grid-template-columns:1fr auto;gap:.3rem;margin-top:.35rem}.obs-consent-meter span{color:#728d96;font-size:.55rem}.obs-consent-meter strong{color:var(--obs-cyan);font-size:.62rem}.obs-consent-meter i{grid-column:1/-1}.obs-quality-matrix{margin-top:.6rem;border:1px solid var(--obs-line);border-radius:17px;overflow:hidden;background:#061821}.obs-quality-matrix>header{display:flex;justify-content:space-between;padding:.7rem;border-bottom:1px solid var(--obs-line)}.obs-quality-matrix>header span{display:block;color:var(--obs-cyan);font-size:.52rem;font-weight:950;text-transform:uppercase}.obs-quality-matrix>header h2{margin:.15rem 0;font-size:1rem}.obs-quality-matrix>header small{color:#6f8992}.obs-quality-matrix>div{overflow:auto}.obs-quality-matrix table{width:100%;min-width:850px;border-collapse:separate;border-spacing:3px}.obs-quality-matrix th,.obs-quality-matrix td{padding:.48rem;border-radius:6px;text-align:center;font-size:.55rem}.obs-quality-matrix thead th{color:#76919a;background:#031219}.obs-quality-matrix tbody th{text-align:left;background:#071d26}.obs-quality-matrix tbody th strong,.obs-quality-matrix tbody th span{display:block}.obs-quality-matrix tbody th span{color:#66818b;font-size:.48rem}.obs-quality-matrix td{background:rgba(69,103,242,calc(.04 + var(--i)*.55))}.obs-quality-matrix td b{color:rgba(255,255,255,calc(.45 + var(--i)*.55))}

/* Leaflet */
.obs-map-popup{min-width:220px;color:#071923}.obs-map-popup strong{display:block;font-size:1rem}.obs-map-popup span{display:block;color:#54717b;font-size:.72rem}.obs-map-popup dl{display:grid;grid-template-columns:1fr 1fr;gap:.3rem;margin:.55rem 0}.obs-map-popup dl div{padding:.35rem;border-radius:7px;background:#edf6f7}.obs-map-popup dt{font-size:.58rem}.obs-map-popup dd{margin:0;font-weight:900}.obs-map-popup button,.obs-map-popup a{display:flex;justify-content:center;margin-top:.35rem;padding:.4rem;border:0;border-radius:8px;color:#fff;background:#1d5ed8;text-decoration:none;font-size:.65rem;font-weight:850}

@keyframes obsPulse{0%,100%{transform:scale(.9);opacity:.65}50%{transform:scale(1.2);opacity:1}}@keyframes obsNode{0%,100%{transform:scale(.8);opacity:.55}50%{transform:scale(1.35);opacity:1}}@keyframes obsWave{0%,100%{transform:scaleY(.45);opacity:.45}50%{transform:scaleY(1.15);opacity:1}}@keyframes obsSpin{to{transform:rotate(360deg)}}@keyframes obsViewIn{from{opacity:.35;transform:translateY(4px)}to{opacity:1;transform:none}}

@media(max-width:1499px){.obs-app-shell{grid-template-columns:68px 290px minmax(0,1fr) 0}.obs-platform.is-query-collapsed .obs-app-shell{grid-template-columns:68px 0 minmax(0,1fr) 0}.obs-platform.is-inspector-open .obs-app-shell{grid-template-columns:68px 290px minmax(0,1fr) 320px}.obs-kpi-strip{grid-template-columns:repeat(3,1fr)}.obs-overview-grid{grid-template-columns:1.25fr .75fr;grid-template-rows:repeat(2,minmax(300px,1fr));min-height:auto}.obs-science-card--timeline{grid-column:span 2}.obs-quality-grid{grid-template-columns:1fr 1fr}.obs-quality-radar{grid-column:span 2}}
@media(max-width:1199.98px){.obs-public__hero{grid-template-columns:1fr 420px}.obs-platform-hero{grid-template-columns:1fr 180px}.obs-platform-hero__status{display:none}.obs-app-shell{height:calc(100vh - 235px)}.obs-stage-command{grid-template-columns:auto 1fr}.obs-stage-command__presets{display:none}.obs-map-console__body{grid-template-columns:minmax(0,1fr) 235px}.obs-audio-lab{grid-template-columns:minmax(0,1fr) 310px}.obs-compare-metrics{grid-template-columns:repeat(3,1fr)}}
@media(max-width:991.98px){body.page-observatory .site-footer{display:block}.obs-public__hero{grid-template-columns:1fr}.obs-public__visual{min-height:430px}.obs-public-graph{width:min(560px,85vw)}.obs-public-window{grid-template-columns:55px 1fr}.obs-public-window__grid{grid-template-columns:1fr}.obs-demo-map{grid-row:auto}.obs-public__capabilities{grid-template-columns:1fr 1fr}.obs-platform-hero{min-height:145px;grid-template-columns:1fr 130px}.obs-platform-hero__signal{width:120px;height:120px}.obs-app-shell,.obs-platform.is-query-collapsed .obs-app-shell,.obs-platform.is-inspector-open .obs-app-shell,.obs-platform.is-query-collapsed.is-inspector-open .obs-app-shell{grid-template-columns:62px minmax(0,1fr);height:calc(100vh - 207px);min-height:620px}.obs-module-rail button{width:50px;min-height:48px}.obs-module-rail button span{display:none}.obs-query-panel{position:fixed;z-index:1220;left:0;top:0;bottom:0;width:min(340px,90vw);transform:translateX(-105%);transition:transform .25s}.obs-platform.is-filter-open .obs-query-panel{transform:translateX(0);opacity:1;pointer-events:auto}.obs-science-stage{grid-column:2}.obs-inspector{position:fixed;z-index:1230;right:0;top:0;bottom:0;width:min(360px,92vw);transform:translateX(105%);opacity:1;transition:transform .25s}.obs-platform.is-inspector-open .obs-inspector{transform:translateX(0)}.obs-filter-backdrop{position:fixed;z-index:1210;inset:0;border:0;background:rgba(0,8,12,.68);opacity:0;visibility:hidden;transition:.2s}.obs-platform.is-filter-open .obs-filter-backdrop{display:block;opacity:1;visibility:visible}.obs-stage-command__left>button{display:flex;align-items:center;gap:.3rem;padding:.42rem .55rem;border:1px solid var(--obs-line);border-radius:9px;color:#b1c5ca;background:#0a252f;font-size:.57rem}.obs-stage-command__left>button svg{width:16px}.obs-overview-grid{grid-template-columns:1fr}.obs-science-card--timeline{grid-column:auto}.obs-map-console{height:auto;min-height:720px}.obs-map-console__body{grid-template-columns:1fr}.obs-map-ranking{border-left:0;border-top:1px solid var(--obs-line);max-height:230px}.obs-map-secondary{height:auto;grid-template-columns:1fr}.obs-map-secondary .obs-science-card{min-height:230px}.obs-graph-console__body{grid-template-columns:1fr}.obs-network-legend{position:absolute;right:1rem;top:5.3rem;width:210px;max-height:70%;border:1px solid var(--obs-line);border-radius:14px;background:rgba(6,24,33,.92);backdrop-filter:blur(10px)}.obs-audio-lab{height:auto;grid-template-columns:1fr}.obs-audio-library{min-height:330px;border-left:0;border-top:1px solid var(--obs-line)}.obs-audio-stats{height:auto;grid-template-columns:1fr 1fr}.obs-audio-stats article:last-child{grid-column:span 2;min-height:150px}.obs-corpus-layout{grid-template-columns:1fr}.obs-corpus-insights{display:none}.obs-compare-hero{grid-template-columns:1fr}.obs-compare-hero>div{height:360px}.obs-compare-bottom{height:auto;grid-template-columns:1fr}.obs-quality-grid{grid-template-columns:1fr}.obs-quality-radar{grid-column:auto}}
@media(max-width:767.98px){.obs-public__hero{padding-top:3rem;padding-bottom:3rem}.obs-public__copy h1{font-size:clamp(3rem,15vw,5.2rem)}.obs-public-window{display:block}.obs-public-window__rail{display:none}.obs-public-window__grid{height:auto}.obs-public-window__grid article{min-height:230px}.obs-public__capabilities{grid-template-columns:1fr}.obs-access-gate__dialog{padding:2rem 1.1rem;border-radius:24px}.obs-access-gate h2{font-size:clamp(2.5rem,12vw,4rem)}.obs-access-gate__actions{display:grid}.obs-access-gate__actions a{width:100%}.obs-platform-hero{grid-template-columns:1fr;min-height:135px}.obs-platform-hero__signal{display:none}.obs-platform-hero h1{font-size:2.4rem}.obs-platform-hero__copy>p{display:none}.obs-app-shell,.obs-platform.is-query-collapsed .obs-app-shell,.obs-platform.is-inspector-open .obs-app-shell{grid-template-columns:52px minmax(0,1fr);height:calc(100vh - 197px)}.obs-module-rail{padding:.5rem .25rem}.obs-module-rail button{width:44px;min-height:44px}.obs-stage-command{grid-template-columns:1fr auto;padding:.45rem}.obs-stage-command__left>div{display:none}.obs-stage-command__actions button:first-child,.obs-stage-command__actions button:last-child{display:none}.obs-view{padding:.45rem}.obs-kpi-strip{grid-template-columns:1fr 1fr}.obs-kpi-strip article{min-height:96px}.obs-overview-grid{grid-template-rows:auto}.obs-science-card{min-height:300px}.obs-science-card--timeline{min-height:360px}.obs-map-console>header,.obs-graph-console>header,.obs-corpus-console>header,.obs-compare-console>header,.obs-quality-console>header{flex-direction:column}.obs-map-metrics{overflow:auto;flex-wrap:nowrap}.obs-map-canvas{min-height:430px}.obs-map-console{min-height:780px}.obs-graph-console>header{align-items:stretch}.obs-graph-actions{display:grid;grid-template-columns:1fr 1fr}.obs-graph-actions label{grid-column:span 2}.obs-graph-actions input{width:100%}.obs-network-legend{display:none}.obs-audio-player{padding:.6rem}.obs-waveform{min-height:160px}.obs-audio-controls{justify-content:flex-start}.obs-audio-compare{grid-template-columns:1fr}.obs-audio-compare>i{display:none}.obs-audio-stats{grid-template-columns:1fr}.obs-audio-stats article:last-child{grid-column:auto}.obs-compare-metrics{grid-template-columns:1fr 1fr}.obs-quality-radar>div:last-child{grid-template-columns:1fr}.obs-quality-number-grid{grid-template-columns:1fr 1fr}.obs-stage-status span:nth-child(2){display:none}}
@media(max-width:479.98px){.obs-kpi-strip{grid-template-columns:1fr}.obs-platform-hero h1{font-size:2rem}.obs-compare-metrics{grid-template-columns:1fr}.obs-public__audiences span:nth-child(n+4){display:none}}
@media(prefers-reduced-motion:reduce){.obs-kicker i,.obs-public__mesh i,.obs-public-graph__pulse i,.obs-demo-wave i,.obs-orbit,.obs-map-loader span,.obs-network-loading i{animation:none!important}}
@media print{body.page-observatory{background:#fff;color:#111}.site-header,.obs-platform-hero,.obs-module-rail,.obs-query-panel,.obs-stage-command,.obs-stage-status,.obs-inspector{display:none!important}.obs-app-shell{display:block;height:auto}.obs-science-stage{display:block;background:#fff}.obs-stage-body,.obs-view{display:block!important;height:auto;overflow:visible}.obs-view:not(.is-active){display:none!important}.obs-science-card,.obs-map-console,.obs-corpus-console,.obs-quality-matrix{break-inside:avoid;box-shadow:none}}

/* Pipeline scientifica: dal corpus di base alle attestazioni territoriali. */
.obs-pipeline{margin-bottom:.6rem;padding:.72rem;border:1px solid var(--obs-line);border-radius:18px;background:linear-gradient(135deg,rgba(10,41,52,.96),rgba(5,24,33,.98));box-shadow:inset 0 1px rgba(255,255,255,.025)}
.obs-pipeline>header{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:.62rem;padding:0 .15rem}.obs-pipeline>header span{display:block;color:var(--obs-cyan);font-size:.54rem;font-weight:900;letter-spacing:.14em;text-transform:uppercase}.obs-pipeline>header h2{margin:.14rem 0 0;font-size:1rem;letter-spacing:-.025em}.obs-pipeline>header p{max-width:630px;margin:0;color:#718d96;font-size:.58rem;line-height:1.5;text-align:right}
.obs-pipeline__flow{display:grid;grid-template-columns:repeat(6,minmax(120px,1fr));gap:.42rem}.obs-pipeline__flow article{position:relative;min-height:83px;overflow:hidden;padding:.62rem .68rem;border:1px solid rgba(145,197,204,.12);border-radius:13px;background:rgba(255,255,255,.025);cursor:pointer;transition:border-color .16s,transform .16s,background .16s}.obs-pipeline__flow article:not(:last-child):after{content:"";position:absolute;z-index:2;right:-.46rem;top:50%;width:.48rem;height:1px;background:rgba(69,103,242,.42)}.obs-pipeline__flow article:hover{transform:translateY(-1px);border-color:rgba(69,103,242,.34);background:rgba(69,103,242,.045)}.obs-pipeline__flow article.is-gap{border-color:rgba(242,201,107,.2);background:rgba(242,201,107,.04)}.obs-pipeline__flow span{display:block;color:#6f8b94;font-size:.49rem;font-weight:900;letter-spacing:.1em;text-transform:uppercase}.obs-pipeline__flow strong{display:block;margin:.34rem 0 .12rem;font-size:1.35rem;line-height:1;letter-spacing:-.05em}.obs-pipeline__flow small{display:block;color:#718d96;font-size:.52rem}.obs-pipeline__flow i{position:absolute;left:0;bottom:0;width:var(--p,100%);height:2px;background:linear-gradient(90deg,var(--obs-blue),var(--obs-cyan))}.obs-pipeline__flow .is-gap i{background:linear-gradient(90deg,rgba(242,201,107,.35),var(--obs-gold))}
@media(max-width:1499px){.obs-pipeline__flow{grid-template-columns:repeat(3,1fr)}.obs-pipeline__flow article:nth-child(3):after{display:none}}
@media(max-width:767.98px){.obs-pipeline>header{align-items:flex-start;flex-direction:column}.obs-pipeline>header p{text-align:left}.obs-pipeline__flow{grid-template-columns:1fr 1fr}.obs-pipeline__flow article:nth-child(even):after{display:none}}
@media(max-width:479.98px){.obs-pipeline__flow{grid-template-columns:1fr}.obs-pipeline__flow article:after{display:none}}

/* ========================================================================
   OSSERVATORIO — esperienza mobile nativa
   Il workspace non viene più compresso come un desktop: navigazione
   orizzontale, viste a tutta larghezza, filtri/ispettore come bottom sheet.
   ======================================================================== */
@media (max-width: 767.98px) {
  body.page-observatory {
    overflow-x: clip;
    background: #031016;
  }
  body.page-observatory .site-footer { display: none !important; }

  /* Anteprima pubblica: una sola idea per schermata, senza sovraccarico. */
  .obs-public__hero {
    gap: 1.4rem;
    padding: 2.1rem .9rem 2.5rem;
  }
  .obs-public__copy h1 {
    max-width: 12ch;
    margin: .8rem 0 1rem;
    font-size: clamp(2.65rem, 13vw, 4.15rem);
    line-height: .92;
  }
  .obs-public__copy > p { font-size: .94rem; line-height: 1.58; }
  .obs-public__actions { display: grid; grid-template-columns: 1fr; margin: 1.35rem 0; }
  .obs-public__actions button,
  .obs-public__actions a { width: 100%; min-height: 50px; }
  .obs-public__audiences { gap: .35rem; }
  .obs-public__audiences span { padding: .38rem .55rem; font-size: .58rem; }
  .obs-public__visual { min-height: 300px; }
  .obs-public-graph {
    width: min(330px, 88vw);
    border-radius: 26px;
    transform: none;
  }
  .obs-public-graph__badge { left: .75rem; bottom: .75rem; padding: .55rem .65rem; }
  .obs-public__demo { padding: 0 .75rem 3rem; }
  .obs-public-window { min-height: 0; border-radius: 22px; }
  .obs-public-window__top { height: auto; min-height: 52px; align-items: flex-start; flex-direction: column; gap: .2rem; padding: .75rem; }
  .obs-public-window__grid { gap: .55rem; padding: .55rem; }
  .obs-public-window__grid article { min-height: 180px; border-radius: 15px; }
  .obs-public__capabilities { gap: .55rem; }
  .obs-public__capabilities article { padding: 1.05rem; border-radius: 16px; }
  .obs-access-gate { padding: 0; align-items: end; }
  .obs-access-gate__dialog {
    width: 100%;
    max-height: 92dvh;
    padding: 1.35rem .9rem calc(1rem + env(safe-area-inset-bottom));
    border-radius: 24px 24px 0 0;
    text-align: left;
  }
  .obs-access-gate__mark { width: 68px; height: 68px; margin: 0 0 1rem; border-radius: 19px; text-align: center; }
  .obs-access-gate h2 { max-width: 13ch; font-size: clamp(2.1rem, 10vw, 3.2rem); line-height: .96; }
  .obs-access-gate__features { justify-content: flex-start; }
  .obs-access-gate__preview { width: 100%; }

  /* Hero autenticata: compatta ma informativa. */
  .obs-platform { min-height: 0; }
  .obs-platform-hero {
    min-height: 0;
    display: grid;
    grid-template-columns: 1fr;
    gap: .8rem;
    padding: 1rem .85rem .85rem;
  }
  .obs-platform-hero__copy { min-width: 0; }
  .obs-platform-hero .obs-kicker { font-size: .56rem; }
  .obs-platform-hero h1 {
    max-width: 15ch;
    margin: .45rem 0 .35rem;
    font-size: clamp(1.75rem, 8.8vw, 2.45rem);
    line-height: .96;
  }
  .obs-platform-hero__copy > p {
    display: block;
    max-width: 42rem;
    color: rgba(255,255,255,.56);
    font-size: .69rem;
    line-height: 1.45;
  }
  .obs-platform-hero__signal { display: none; }
  .obs-platform-hero__status {
    display: grid;
    grid-template-columns: repeat(3, minmax(0,1fr));
    gap: .38rem;
  }
  .obs-platform-hero__status article { padding: .52rem .58rem; border-radius: 11px; }
  .obs-platform-hero__status span { font-size: .46rem; letter-spacing: .07em; }
  .obs-platform-hero__status strong { margin-top: .12rem; font-size: .92rem; }

  /* Il software diventa un flusso verticale, non una griglia desktop compressa. */
  .obs-app-shell,
  .obs-platform.is-query-collapsed .obs-app-shell,
  .obs-platform.is-inspector-open .obs-app-shell,
  .obs-platform.is-query-collapsed.is-inspector-open .obs-app-shell {
    display: flex;
    flex-direction: column;
    height: auto;
    min-height: 0;
    overflow: visible;
  }

  /* Navigazione degli ambienti: barra orizzontale leggibile e scorrevole. */
  .obs-module-rail {
    position: sticky;
    z-index: 1120;
    top: 64px;
    width: 100%;
    min-width: 0;
    display: flex;
    flex-direction: row;
    align-items: stretch;
    gap: .25rem;
    overflow-x: auto;
    overflow-y: hidden;
    padding: .4rem .45rem;
    border-right: 0;
    border-bottom: 1px solid var(--obs-line);
    background: rgba(2,13,19,.97);
    box-shadow: 0 10px 24px rgba(0,0,0,.2);
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }
  .obs-module-rail::-webkit-scrollbar { display: none; }
  .obs-module-rail button {
    flex: 0 0 72px;
    width: 72px;
    min-height: 52px;
    padding: .35rem .3rem;
    gap: .15rem;
    border-radius: 12px;
    font-size: .49rem;
  }
  .obs-module-rail button svg { width: 18px; height: 18px; }
  .obs-module-rail button span { display: block !important; line-height: 1.1; }
  .obs-module-rail__line { display: none; }

  .obs-science-stage {
    width: 100%;
    display: flex;
    flex-direction: column;
    overflow: visible;
    background: #07171e;
  }
  .obs-stage-command {
    position: relative;
    z-index: 20;
    display: grid;
    grid-template-columns: minmax(0,1fr) auto;
    gap: .45rem;
    padding: .55rem .6rem;
    background: #061a22;
  }
  .obs-stage-command__left { min-width: 0; gap: .5rem; }
  .obs-stage-command__left > button {
    flex: 0 0 auto;
    min-height: 40px;
    display: inline-flex;
    align-items: center;
    gap: .25rem;
    padding: .42rem .52rem;
    border: 1px solid rgba(69,103,242,.2);
    border-radius: 10px;
    color: #d6e9ed;
    background: rgba(69,103,242,.07);
    font-size: .56rem;
  }
  .obs-stage-command__left > div { display: block; min-width: 0; }
  .obs-stage-command__left span,
  .obs-stage-command__left strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .obs-stage-command__left span { font-size: .49rem; }
  .obs-stage-command__left strong { font-size: .64rem; }
  .obs-stage-command__presets { display: none; }
  .obs-stage-command__actions { gap: .28rem; }
  .obs-stage-command__actions button,
  .obs-stage-command__actions button:first-child,
  .obs-stage-command__actions button:last-child {
    width: 40px;
    height: 40px;
    display: grid;
    place-items: center;
    padding: 0;
    overflow: hidden;
    font-size: 0;
    border-radius: 10px;
  }
  .obs-stage-command__actions button::before { font-size: .75rem; font-weight: 950; }
  .obs-stage-command__actions button[data-observatory-save-view]::before { content: "☆"; }
  .obs-stage-command__actions button[data-observatory-copy]::before { content: "↗"; }
  .obs-stage-command__actions button[data-observatory-print]::before { content: "PDF"; font-size: .54rem; }
  .obs-stage-body { overflow: visible; }
  .obs-stage-status {
    min-height: 32px;
    gap: .5rem;
    padding: .35rem .6rem;
    font-size: .48rem;
  }
  .obs-stage-status span:nth-child(2) { display: none; }
  .obs-active-query { padding: .4rem .55rem; }
  .obs-active-query > span { display: none; }

  /* Filtri e ispettore diventano bottom sheet comprensibili. */
  .obs-query-panel,
  .obs-inspector {
    position: fixed;
    z-index: 1320;
    left: 0;
    right: 0;
    top: auto;
    bottom: 0;
    width: 100%;
    max-width: none;
    max-height: 88dvh;
    overflow: hidden;
    border: 1px solid var(--obs-line);
    border-bottom: 0;
    border-radius: 24px 24px 0 0;
    background: #061821;
    box-shadow: 0 -28px 70px rgba(0,0,0,.5);
    opacity: 1;
    pointer-events: none;
    transform: translateY(105%);
    transition: transform .25s ease;
  }
  .obs-platform.is-filter-open .obs-query-panel,
  .obs-platform.is-inspector-open .obs-inspector {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);
  }
  .obs-query-panel__head,
  .obs-inspector__head { height: 62px; padding: .7rem .85rem; }
  .obs-query-panel__head::before,
  .obs-inspector__head::before {
    content: "";
    position: absolute;
    top: 7px;
    left: 50%;
    width: 42px;
    height: 4px;
    border-radius: 999px;
    background: rgba(255,255,255,.18);
    transform: translateX(-50%);
  }
  .obs-query-form { height: calc(88dvh - 62px); padding: .75rem .75rem calc(1rem + env(safe-area-inset-bottom)); }
  .obs-query-form details { margin-top: .5rem; }
  .obs-query-form summary { min-height: 48px; }
  .obs-query-form input,
  .obs-query-form select { min-height: 44px; font-size: .78rem; }
  .obs-query-form__actions { bottom: calc(-.75rem - env(safe-area-inset-bottom)); margin: .75rem -.75rem calc(-1rem - env(safe-area-inset-bottom)); padding: .75rem .75rem calc(.75rem + env(safe-area-inset-bottom)) !important; }
  .obs-inspector__body { max-height: calc(88dvh - 62px); overflow: auto; padding-bottom: env(safe-area-inset-bottom); }
  .obs-filter-backdrop { z-index: 1300; }

  /* Tutte le viste scorrono nel documento e utilizzano l'intera larghezza. */
  .obs-view {
    height: auto;
    min-height: 0;
    overflow: visible;
    padding: .55rem;
  }
  .obs-view.is-active { display: block; }
  .obs-kpi-strip { grid-template-columns: repeat(2, minmax(0,1fr)); gap: .45rem; }
  .obs-kpi-strip article { min-height: 88px; padding: .65rem; border-radius: 14px; }
  .obs-kpi-strip strong { font-size: 1.55rem; }
  .obs-pipeline { padding: .6rem; border-radius: 15px; }
  .obs-pipeline__flow { grid-template-columns: 1fr 1fr; gap: .35rem; }
  .obs-pipeline__flow article { min-height: 76px; padding: .55rem; }
  .obs-pipeline__flow article::after { display: none !important; }
  .obs-overview-grid,
  .obs-quality-grid,
  .obs-map-secondary,
  .obs-compare-bottom { display: grid; grid-template-columns: 1fr; gap: .5rem; height: auto; }
  .obs-science-card,
  .obs-science-card--timeline,
  .obs-quality-grid > .obs-science-card {
    min-height: 0;
    padding: .72rem;
    border-radius: 16px;
  }
  .obs-science-card > header { gap: .5rem; margin-bottom: .4rem; }
  .obs-science-card h2,
  .obs-map-console h2,
  .obs-graph-console h2,
  .obs-corpus-console h2,
  .obs-compare-console h2,
  .obs-quality-console h2,
  .obs-audio-player h2 { font-size: 1.02rem; line-height: 1.12; }
  .obs-chart-frame,
  .obs-chart-frame--donut { height: 235px; }

  /* Mappe: area principale dominante, classifica separata e leggibile. */
  .obs-map-console,
  .obs-graph-console,
  .obs-corpus-console,
  .obs-audio-lab,
  .obs-compare-console,
  .obs-quality-console {
    height: auto;
    min-height: 0;
    border-radius: 17px;
  }
  .obs-map-console > header,
  .obs-graph-console > header,
  .obs-corpus-console > header,
  .obs-compare-console > header,
  .obs-quality-console > header {
    align-items: flex-start;
    flex-direction: column;
    gap: .65rem;
    padding: .72rem;
  }
  .obs-map-metrics {
    width: 100%;
    overflow-x: auto;
    flex-wrap: nowrap;
    padding-bottom: .15rem;
    scrollbar-width: none;
  }
  .obs-map-metrics::-webkit-scrollbar { display: none; }
  .obs-map-metrics button { flex: 0 0 auto; min-height: 39px; }
  .obs-map-console__body { grid-template-columns: 1fr; }
  .obs-map-canvas { min-height: 58dvh; }
  .obs-map-ranking { max-height: 260px; border-left: 0; border-top: 1px solid var(--obs-line); }
  .obs-map-console > footer { align-items: flex-start; flex-direction: column; gap: .35rem; }
  .obs-map-secondary .obs-science-card { min-height: 0; }

  /* Grafo: canvas ampio; controlli in una toolbar orizzontale. */
  .obs-graph-actions {
    width: 100%;
    display: grid;
    grid-template-columns: minmax(0,1fr) auto auto;
    align-items: end;
    gap: .35rem;
  }
  .obs-graph-actions label { grid-column: auto; min-width: 0; }
  .obs-graph-actions input { width: 100%; min-height: 42px; }
  .obs-graph-actions button { min-height: 42px; }
  .obs-graph-console__body { display: block; }
  .obs-network-stage { min-height: 64dvh; }
  .obs-network-hint { right: .5rem; line-height: 1.35; }
  .obs-network-legend { display: none; }

  /* Audio: un player alla volta, controlli grandi e confronto sequenziale. */
  .obs-audio-lab { display: block; }
  .obs-audio-player { display: block; padding: .7rem; }
  .obs-audio-player > header { align-items: flex-start; flex-direction: column; gap: .5rem; }
  .obs-waveform { min-height: 180px; margin: .55rem 0; }
  .obs-audio-controls { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: .35rem; }
  .obs-audio-controls .obs-audio-play { grid-row: span 2; width: 52px; height: 52px; justify-self: center; align-self: center; }
  .obs-audio-controls button,
  .obs-audio-controls select { min-height: 42px; }
  .obs-audio-controls label { justify-content: center; }
  .obs-audio-compare { grid-template-columns: 1fr; }
  .obs-audio-compare > i { display: none; }
  .obs-audio-library { min-height: 280px; border-left: 0; border-top: 1px solid var(--obs-line); }
  .obs-audio-stats { grid-template-columns: 1fr; height: auto; }
  .obs-audio-stats article,
  .obs-audio-stats article:last-child { min-height: 160px; grid-column: auto; }

  /* Corpus: da tabella desktop a schede leggibili. */
  .obs-corpus-console { display: block; }
  .obs-corpus-console > header > div:last-child { width: 100%; display: grid; grid-template-columns: repeat(3,1fr); }
  .obs-corpus-console > header button { min-height: 40px; }
  .obs-corpus-layout { display: block; }
  .obs-corpus-table-wrap { overflow: visible; padding: .5rem; }
  .obs-corpus-table { display: block; width: 100%; min-width: 0; }
  .obs-corpus-table thead { display: none; }
  .obs-corpus-table tbody { display: grid; gap: .55rem; }
  .obs-corpus-table tr {
    display: block;
    overflow: hidden;
    border: 1px solid var(--obs-line);
    border-radius: 15px;
    background: #071d26;
  }
  .obs-corpus-table td {
    display: block;
    padding: .62rem .7rem;
    border-bottom: 1px solid rgba(255,255,255,.055);
    font-size: .69rem;
  }
  .obs-corpus-table td:last-child { border-bottom: 0; }
  .obs-corpus-table td::before {
    display: block;
    margin-bottom: .25rem;
    color: #6f8d96;
    font-size: .48rem;
    font-weight: 900;
    letter-spacing: .09em;
    text-transform: uppercase;
  }
  .obs-corpus-table td:nth-child(1)::before { content: "Forma"; }
  .obs-corpus-table td:nth-child(2)::before { content: "Classificazione"; }
  .obs-corpus-table td:nth-child(3)::before { content: "Territorio"; }
  .obs-corpus-table td:nth-child(4)::before { content: "Documentazione"; }
  .obs-corpus-table td:nth-child(5)::before { content: "Audio"; }
  .obs-corpus-table td > span { font-size: .82rem; }
  .obs-corpus-table td button { min-height: 40px; padding: .45rem .65rem; }
  .obs-corpus-insights { display: none; }
  .obs-pagination { flex-wrap: wrap; padding: .65rem; }

  /* Confronti e qualità: gerarchia netta, nessun pannello schiacciato. */
  .obs-compare-hero { grid-template-columns: 1fr 1fr; gap: .45rem; min-height: 0; }
  .obs-compare-hero > article { min-height: 185px; padding: .7rem; }
  .obs-compare-hero > article h3 { font-size: 1rem; }
  .obs-compare-hero > article strong { font-size: 2rem; }
  .obs-compare-hero > div { grid-column: 1 / -1; grid-row: 2; height: 310px; }
  .obs-compare-metrics { grid-template-columns: 1fr 1fr; gap: .4rem; }
  .obs-compare-bottom { grid-template-columns: 1fr; }
  .obs-quality-radar { grid-column: auto; }
  .obs-quality-radar > div:last-child { grid-template-columns: 1fr; }
  .obs-quality-number-grid { grid-template-columns: 1fr 1fr; }
  .obs-quality-matrix > header { align-items: flex-start; flex-direction: column; gap: .35rem; }
  .obs-quality-matrix > div {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    box-shadow: inset -22px 0 22px -25px rgba(255,255,255,.35);
  }
}

@media (max-width: 389.98px) {
  .obs-module-rail button { flex-basis: 66px; width: 66px; }
  .obs-platform-hero__status strong { font-size: .82rem; }
  .obs-kpi-strip { grid-template-columns: 1fr; }
  .obs-pipeline__flow { grid-template-columns: 1fr; }
  .obs-stage-command__left strong { max-width: 125px; }
  .obs-compare-hero { grid-template-columns: 1fr; }
  .obs-compare-hero > div { grid-column: 1; grid-row: auto; }
  .obs-quality-number-grid { grid-template-columns: 1fr; }
}

/* ========================================================================
   OSSERVATORIO — chiarezza operativa, identità blu e filtri ricercabili
   ======================================================================== */
:root {
  --obs-cyan: #4567f2;
  --obs-blue: #1d5ed8;
  --obs-deep: #0b2d56;
  --obs-night: #edf2fb;
  --obs-panel: #ffffff;
  --obs-line: rgba(29, 94, 216, .16);
  --obs-white: #10243d;
  --obs-muted: #617694;
  --obs-shadow: 0 18px 52px rgba(34, 70, 120, .12);
}

body.page-observatory { background: #edf2fb; }
.obs-public {
  background:
    radial-gradient(circle at 18% 12%, rgba(41, 199, 232, .16), transparent 28%),
    radial-gradient(circle at 84% 34%, rgba(69, 103, 242, .22), transparent 30%),
    linear-gradient(145deg, #06162c, #0b2d56 58%, #123d73);
}
.obs-public__hero { min-height: 0; padding-top: clamp(3rem, 6vw, 5.2rem); padding-bottom: clamp(3rem, 6vw, 5.2rem); }
.obs-public__copy h1 { font-size: clamp(3.2rem, 6vw, 6.3rem); }
.obs-public__copy h1 em,
.obs-kicker,
.obs-query-panel__head span,
.obs-stage-command__left span,
.obs-pipeline > header span,
.obs-science-card > header span,
.obs-audio-stats article > span,
.obs-quality-matrix > header span { color: #4567f2; }
.obs-public .obs-kicker,
.obs-public__copy h1 em { color: #65d6f2; }

.obs-platform { min-height: 100vh; overflow: visible; color: #10243d; background: #edf2fb; }
.obs-platform-hero {
  min-height: 112px;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 1rem;
  padding: .8rem clamp(1rem, 2.3vw, 2.2rem);
  overflow: visible;
  border-bottom-color: rgba(255,255,255,.12);
  background:
    radial-gradient(circle at 82% 35%, rgba(41, 199, 232, .18), transparent 26%),
    linear-gradient(135deg, #07172e, #0b2d56 58%, #173e78);
}
.obs-platform-hero__copy { min-width: 0; }
.obs-platform-hero h1 { margin: .28rem 0 .22rem; max-width: none; color: #fff; font-size: clamp(1.9rem, 2.8vw, 3.1rem); line-height: 1; }
.obs-platform-hero h1 br { display: none; }
.obs-platform-hero h1 em { color: #8ddff2; }
.obs-platform-hero__copy > p { max-width: 1050px; color: rgba(255,255,255,.72); font-size: .76rem; line-height: 1.45; }
.obs-platform-hero .obs-kicker { color: #9de7f7; }
.obs-platform-hero__signal { display: none; }
.obs-platform-hero__status { position: relative; z-index: 2; display: grid; grid-template-columns: repeat(3, minmax(92px, 1fr)); gap: .45rem; }
.obs-platform-hero__status article { min-width: 92px; padding: .55rem .65rem; border: 1px solid rgba(255,255,255,.16); border-radius: 13px; background: rgba(255,255,255,.08); backdrop-filter: blur(12px); }
.obs-platform-hero__status span { color: rgba(255,255,255,.62); }
.obs-platform-hero__status strong { color: #fff; }

.obs-app-shell,
.obs-platform.is-query-collapsed .obs-app-shell,
.obs-platform.is-inspector-open .obs-app-shell,
.obs-platform.is-query-collapsed.is-inspector-open .obs-app-shell {
  height: auto;
  min-height: calc(100vh - 112px);
  overflow: visible;
  align-items: start;
  background: #edf2fb;
}
.obs-module-rail {
  position: sticky;
  top: 72px;
  height: calc(100vh - 72px);
  max-height: calc(100vh - 72px);
  background: linear-gradient(180deg, #07172e, #0b2d56);
  border-right-color: rgba(255,255,255,.1);
}
.obs-module-rail button { color: #a8bbd8; }
.obs-module-rail button:hover { color: #fff; background: rgba(255,255,255,.08); }
.obs-module-rail button.is-active { color: #fff; border-color: rgba(255,255,255,.24); background: linear-gradient(145deg, #4567f2, #1d5ed8); box-shadow: 0 12px 28px rgba(29,94,216,.28); }

.obs-query-panel {
  position: sticky;
  top: 72px;
  max-height: calc(100vh - 72px);
  overflow: visible;
  color: #10243d;
  border-right-color: #d8e3f2;
  background: #f7faff;
  box-shadow: 12px 0 34px rgba(34,70,120,.06);
}
.obs-query-panel__head {
  min-height: 76px;
  height: auto;
  display: grid;
  grid-template-columns: minmax(0,1fr) auto auto;
  gap: .55rem;
  padding: .78rem .8rem;
  border-bottom-color: #dbe5f3;
  background: #fff;
}
.obs-query-panel__head strong { color: #10243d; }
.obs-query-panel__head small { display: block; margin-top: .12rem; color: #6a7e99; font-size: .55rem; line-height: 1.35; }
.obs-query-panel__head button { color: #31527d; border-color: #d8e3f2; background: #f2f6fc; }
.obs-query-panel__count { align-self: center; padding: .28rem .45rem; border-radius: 999px; color: #667b98 !important; background: #edf2fa; font-size: .5rem !important; letter-spacing: 0 !important; text-transform: none !important; white-space: nowrap; }
.obs-query-panel__count.has-filters { color: #fff !important; background: #4567f2; }
.obs-query-form { height: auto; max-height: calc(100vh - 148px); overflow-y: auto; padding: .75rem; }
.obs-query-search > span,
.obs-query-form label > span { color: #58708e; }
.obs-query-search > div { border-color: #d6e1f0; background: #fff; box-shadow: 0 5px 16px rgba(34,70,120,.05); }
.obs-query-search svg { color: #4567f2; }
.obs-query-form input,
.obs-query-form select { color: #10243d; border-color: #d6e1f0; background: #fff; }
.obs-query-form input::placeholder { color: #8798af; }
.obs-query-form details { border-color: #dce5f2; background: #fff; box-shadow: 0 6px 20px rgba(34,70,120,.04); }
.obs-query-form details[open] { border-color: rgba(69,103,242,.28); box-shadow: 0 9px 24px rgba(69,103,242,.08); }
.obs-query-form summary { justify-content: flex-start; min-height: 54px; padding: .65rem .7rem; }
.obs-query-form summary > i { flex: 0 0 28px; width: 28px; height: 28px; display: grid; place-items: center; border-radius: 9px; color: #4567f2; background: #edf2ff; font-size: .52rem; font-style: normal; font-weight: 950; }
.obs-query-form summary > span { min-width: 0; flex: 1; }
.obs-query-form summary b { display: block; color: #183454; }
.obs-query-form summary small { display: block; color: #70839d; }
.obs-query-form summary::after { content: "+"; margin-left: auto; color: #6b7f9a; font-size: 1rem; }
.obs-query-form details[open] summary::after { content: "−"; }
.obs-query-form__actions { background: rgba(247,250,255,.96) !important; border-top-color: #dce5f2 !important; }
.obs-query-form__actions button { color: #fff; background: linear-gradient(135deg, #4567f2, #1d5ed8); box-shadow: 0 10px 24px rgba(29,94,216,.2); }
.obs-query-form__actions a { color: #31527d; background: #edf2fa; }

/* Select ricercabili: la select nativa resta nel form, la UI viene potenziata. */
.obs-native-select { position: absolute !important; width: 1px !important; height: 1px !important; overflow: hidden !important; opacity: 0 !important; pointer-events: none !important; }
.obs-combobox { position: relative; width: 100%; }
.obs-combobox__trigger { width: 100%; min-height: 42px; display: flex; align-items: center; justify-content: space-between; gap: .55rem; padding: .55rem .65rem; border: 1px solid #d6e1f0; border-radius: 10px; color: #415a79; text-align: left; background: #fff; font-size: .71rem; cursor: pointer; }
.obs-combobox__trigger.has-value { color: #10243d; font-weight: 800; }
.obs-combobox__trigger i { width: 8px; height: 8px; border-right: 2px solid #6d82a0; border-bottom: 2px solid #6d82a0; transform: rotate(45deg) translateY(-2px); transition: transform .18s; }
.obs-combobox.is-open .obs-combobox__trigger { border-color: #4567f2; box-shadow: 0 0 0 3px rgba(69,103,242,.12); }
.obs-combobox.is-open .obs-combobox__trigger i { transform: rotate(225deg) translate(-2px,-1px); }
.obs-combobox__menu { position: absolute; z-index: 80; left: 0; right: 0; top: calc(100% + 5px); overflow: hidden; border: 1px solid #d4dff0; border-radius: 13px; background: #fff; box-shadow: 0 20px 50px rgba(26,57,103,.2); }
.obs-combobox__menu[hidden] { display: none !important; }
.obs-combobox__search { display: block; padding: .5rem; border-bottom: 1px solid #e2e9f4; background: #f7faff; }
.obs-combobox__search input { min-height: 38px !important; padding: .48rem .58rem !important; border-color: #cad8eb !important; background: #fff !important; }
.obs-combobox__options { max-height: 250px; overflow-y: auto; overscroll-behavior: contain; padding: .3rem; scrollbar-width: thin; scrollbar-color: #9db2d2 transparent; }
.obs-combobox__option { width: 100%; min-height: 36px; padding: .45rem .55rem; border: 0; border-radius: 8px; color: #2a4568; text-align: left; background: transparent; font-size: .67rem; cursor: pointer; }
.obs-combobox__option:hover,
.obs-combobox__option:focus { outline: none; color: #123c7a; background: #edf3ff; }
.obs-combobox__option.is-selected { color: #fff; background: #4567f2; }
.obs-combobox__empty { margin: 0; padding: .8rem; color: #7689a3; text-align: center; font-size: .65rem; }

.obs-science-stage { grid-template-rows: auto auto auto; min-height: calc(100vh - 112px); overflow: visible; background: #edf2fb; }
.obs-stage-command { position: sticky; z-index: 100; top: 72px; border-bottom-color: #d9e3f1; background: rgba(255,255,255,.96); box-shadow: 0 8px 24px rgba(34,70,120,.08); }
.obs-stage-command__left span { color: #4567f2; }
.obs-stage-command__left strong { color: #183454; }
.obs-stage-command__presets button,
.obs-stage-command__actions button { color: #3e5878; border-color: #d6e1f0; background: #f6f9fd; }
.obs-stage-command__presets button:hover,
.obs-stage-command__actions button:hover { color: #fff; border-color: #4567f2; background: #4567f2; }
.obs-stage-body { overflow: visible; background: #edf2fb; }
.obs-stage-status { color: #647995; border-top-color: #d9e3f1; background: #fff; }
.obs-active-query { border-bottom-color: #d9e3f1; background: #f7faff; }
.obs-view { height: auto; min-height: 0; overflow: visible; padding: .85rem; color: #10243d; }

.obs-kpi-strip article,
.obs-pipeline,
.obs-science-card,
.obs-map-console,
.obs-graph-console,
.obs-corpus-console,
.obs-audio-lab,
.obs-audio-stats article,
.obs-compare-console > header,
.obs-quality-console > header,
.obs-quality-matrix,
.obs-compare-hero > article,
.obs-compare-hero > div,
.obs-compare-metrics article {
  color: #10243d;
  border-color: #d9e3f1;
  background: #fff;
  box-shadow: 0 10px 30px rgba(34,70,120,.07);
}
.obs-pipeline { background: linear-gradient(135deg, #fff, #f5f8fd); }
.obs-pipeline__flow article { border-color: #dce5f2; background: #f8faff; }
.obs-pipeline__flow article:hover { border-color: rgba(69,103,242,.38); background: #eef3ff; }
.obs-pipeline__flow article:not(:last-child)::after { background: rgba(69,103,242,.42); }
.obs-pipeline__flow i { background: linear-gradient(90deg, #1d5ed8, #4567f2); }
.obs-science-stage h2,
.obs-science-stage h3,
.obs-science-stage strong { color: #10243d; }
.obs-science-stage p,
.obs-science-stage small { color: #637893; }
.obs-kpi-strip article > span,
.obs-science-card > header span { color: #4567f2; }
.obs-kpi-strip article i { background: linear-gradient(90deg, #1d5ed8, #4567f2); }
.obs-chart-frame { background: transparent; }
.obs-card-switch,
.obs-map-metrics { border-color: #d8e3f2; background: #f2f6fc; }
.obs-card-switch button,
.obs-map-metrics button { color: #5d7390; }
.obs-card-switch button.is-active,
.obs-map-metrics button.is-active { color: #fff; background: #4567f2; }

/* Le superfici tecniche rimangono scure, ma sono incorniciate da un workspace chiaro. */
.obs-map-canvas,
.obs-network-stage,
.obs-waveform { background-color: #07182f; }
.obs-network-legend { color: #fff; border-color: rgba(255,255,255,.12); background: rgba(7,24,47,.94); }
.obs-network-legend strong,
.obs-network-legend span { color: #fff; }
.obs-map-ranking { border-color: #d9e3f1; background: #f8faff; }
.obs-map-ranking button { color: #183454; border-bottom-color: #e1e8f3; }
.obs-map-ranking button:hover { background: #edf3ff; }
.obs-map-ranking button b { color: #1d5ed8; }
.obs-ranking-table a { color: #183454; border-bottom-color: #e0e7f1; }

/* Fonoteca: ricerca evidente, elenco realmente scorrevole e stato vuoto. */
.obs-audio-lab { height: auto; min-height: 610px; grid-template-columns: minmax(0,1fr) minmax(330px, 390px); overflow: visible; }
.obs-audio-player { background: #fff; }
.obs-audio-player > header button { color: #31527d; border-color: #d8e3f2; background: #f2f6fc; }
.obs-audio-controls button,
.obs-audio-controls select { color: #31527d; border-color: #d6e1f0; background: #f3f7fc; }
.obs-audio-controls button.is-active { color: #fff; background: #4567f2; }
.obs-audio-controls .obs-audio-play { color: #fff; background: linear-gradient(145deg, #4567f2, #1d5ed8); box-shadow: 0 12px 26px rgba(29,94,216,.25); }
.obs-audio-compare article { border-color: #d9e3f1; background: #f7faff; }
.obs-audio-compare article span { color: #4567f2; }
.obs-audio-library { min-height: 610px; max-height: 720px; border-left-color: #d9e3f1; background: #f7faff; }
.obs-audio-library header { position: sticky; z-index: 3; top: 0; padding: .75rem; border-bottom-color: #d9e3f1; background: rgba(255,255,255,.98); }
.obs-audio-library header span { color: #4567f2; font-weight: 900; }
.obs-audio-library header strong { color: #183454; }
.obs-audio-library header strong b { color: #1d5ed8; }
.obs-audio-search { position: relative; display: flex; align-items: center; gap: .4rem; }
.obs-audio-search svg { position: absolute; left: .65rem; width: 16px; color: #4567f2; pointer-events: none; }
.obs-audio-library .obs-audio-search input { min-height: 42px; padding-left: 2rem; padding-right: 2rem; color: #10243d; border-color: #d6e1f0; background: #f7faff; font-size: .68rem; }
.obs-audio-search > button { position: absolute; right: .35rem; width: 30px; height: 30px; display: none; place-items: center; border: 0; border-radius: 8px; color: #5f7592; background: #e8eef7; font-size: 1rem; }
.obs-audio-search > button.is-visible { display: grid; }
.obs-audio-library > div { min-height: 0; max-height: 625px; overflow-y: auto; overscroll-behavior: contain; padding: .42rem; scrollbar-width: thin; scrollbar-color: #9db2d2 transparent; }
.obs-audio-library > div > button { color: #183454; border-bottom: 1px solid #e3eaf4; border-radius: 10px; }
.obs-audio-library > div > button:hover,
.obs-audio-library > div > button.is-active { border-color: rgba(69,103,242,.24); background: #edf3ff; }
.obs-audio-library > div > button i { color: #fff; background: #4567f2; }
.obs-audio-library small,
.obs-audio-library em { color: #6b809b; }
.obs-audio-library__empty { margin: 1rem; padding: 1rem; border: 1px dashed #c9d6e8; border-radius: 12px; color: #71859e; text-align: center; background: #fff; font-size: .67rem; }
.obs-audio-library__empty[hidden],
.obs-audio-library > div > button[hidden] { display: none !important; }

.obs-corpus-console { height: auto; min-height: 620px; overflow: visible; }
.obs-corpus-console > header { border-bottom-color: #d9e3f1; }
.obs-corpus-table-wrap { overflow-x: auto; }
.obs-corpus-table tr { border-color: #e0e7f2; background: #fff; }
.obs-corpus-table td { color: #254362; border-bottom-color: #e8edf5; }
.obs-corpus-table td strong { color: #10243d; }
.obs-corpus-table td button { color: #fff; background: #4567f2; }
.obs-corpus-insights article { border-color: #d9e3f1; background: #f8faff; }
.obs-pagination { border-top-color: #d9e3f1; background: #fff; }
.obs-pagination a { color: #31527d; border-color: #d6e1f0; background: #f4f7fc; }
.obs-pagination a.is-active { color: #fff; background: #4567f2; }

.obs-compare-console,
.obs-quality-console { overflow: visible; }
.obs-compare-metrics article div,
.obs-quality-number-grid span { background: #f2f6fc; }
.obs-quality-matrix thead th { color: #526a88; background: #edf2f8; }
.obs-quality-matrix tbody th { background: #f7faff; }
.obs-quality-matrix td { background: rgba(69,103,242,calc(.05 + var(--i)*.48)); }

.obs-inspector { color: #10243d; border-left-color: #d9e3f1; background: #fff; }
.obs-inspector__head { border-bottom-color: #d9e3f1; background: #f7faff; }
.obs-inspector__head strong { color: #10243d; }
.obs-inspector__head button { color: #31527d; border-color: #d8e3f2; background: #edf2fa; }

@media (max-width: 1199.98px) {
  .obs-platform-hero { grid-template-columns: 1fr auto; }
  .obs-platform-hero__status { display: grid; }
  .obs-app-shell,
  .obs-platform.is-query-collapsed .obs-app-shell,
  .obs-platform.is-inspector-open .obs-app-shell,
  .obs-platform.is-query-collapsed.is-inspector-open .obs-app-shell { height: auto; min-height: calc(100vh - 112px); }
}

@media (max-width: 991.98px) {
  .obs-platform-hero { min-height: 0; grid-template-columns: 1fr; }
  .obs-platform-hero__status { max-width: 420px; }
  .obs-app-shell,
  .obs-platform.is-query-collapsed .obs-app-shell,
  .obs-platform.is-inspector-open .obs-app-shell,
  .obs-platform.is-query-collapsed.is-inspector-open .obs-app-shell { height: auto; min-height: 0; }
  .obs-query-panel { position: fixed; top: 0; max-height: none; color: #10243d; background: #f7faff; }
  .obs-science-stage { min-height: 0; }
}

@media (max-width: 767.98px) {
  body.page-observatory { background: #edf2fb; }
  .obs-public__hero { padding: 1.65rem .85rem 2rem; }
  .obs-public__copy h1 { font-size: clamp(2.35rem, 11vw, 3.45rem); }
  .obs-platform-hero { gap: .55rem; padding: .72rem .75rem .68rem; }
  .obs-platform-hero h1 { max-width: none; font-size: clamp(1.5rem, 7vw, 2rem); }
  .obs-platform-hero__copy > p { display: block; max-height: 3.9em; overflow: auto; color: rgba(255,255,255,.7); font-size: .63rem; }
  .obs-platform-hero__status { max-width: none; gap: .3rem; }
  .obs-platform-hero__status article { min-width: 0; padding: .42rem .48rem; }
  .obs-module-rail { top: 64px; height: auto; max-height: none; background: #0b2d56; }
  .obs-science-stage { background: #edf2fb; }
  .obs-stage-command { position: relative; top: auto; background: #fff; }
  .obs-stage-command__left > button { color: #31527d; border-color: #d4e0ef; background: #edf3fb; }
  .obs-stage-command__actions button,
  .obs-stage-command__actions button:first-child,
  .obs-stage-command__actions button:last-child { color: #31527d; border-color: #d4e0ef; background: #edf3fb; }
  .obs-stage-body { background: #edf2fb; }
  .obs-query-panel,
  .obs-inspector { color: #10243d; border-color: #d3deed; background: #f7faff; }
  .obs-query-panel__head,
  .obs-inspector__head { background: #fff; }
  .obs-query-panel__head { grid-template-columns: minmax(0,1fr) auto auto; }
  .obs-query-panel__head small { max-width: 210px; }
  .obs-query-form { background: #f7faff; }
  .obs-combobox__menu { position: fixed; z-index: 1500; left: .75rem; right: .75rem; top: auto; bottom: calc(.75rem + env(safe-area-inset-bottom)); max-height: 62dvh; border-radius: 18px; box-shadow: 0 28px 80px rgba(26,57,103,.28); }
  .obs-combobox__options { max-height: calc(62dvh - 58px); }
  .obs-view { padding: .5rem; }
  .obs-kpi-strip article,
  .obs-pipeline,
  .obs-science-card,
  .obs-map-console,
  .obs-graph-console,
  .obs-corpus-console,
  .obs-audio-lab,
  .obs-audio-stats article,
  .obs-compare-console > header,
  .obs-quality-console > header,
  .obs-quality-matrix { border-radius: 15px; box-shadow: 0 7px 22px rgba(34,70,120,.06); }
  .obs-map-canvas { min-height: 52dvh; }
  .obs-network-stage { min-height: 58dvh; }
  .obs-audio-lab { min-height: 0; }
  .obs-audio-player { padding: .65rem; }
  .obs-audio-library { min-height: 0; max-height: none; border-top-color: #d9e3f1; background: #f7faff; }
  .obs-audio-library header { position: sticky; top: 0; }
  .obs-audio-library > div { max-height: 46dvh; min-height: 230px; }
  .obs-audio-library > div > button { grid-template-columns: 30px minmax(0,1fr); }
  .obs-audio-library > div > button em { grid-column: 2; max-width: none; text-align: left; }
  .obs-corpus-table tr { background: #fff; }
  .obs-corpus-table td { background: #fff; }
}


/* ========================================================================
   FONOTECA COMPLETA — elenco scorrevole, ricerca globale e caricamento progressivo
   ======================================================================== */
.obs-audio-lab {
  align-items: stretch;
}

.obs-audio-library {
  height: clamp(560px, calc(100vh - 215px), 760px);
  min-height: 560px;
  max-height: none;
  grid-template-rows: auto minmax(0, 1fr) auto;
  overflow: hidden;
}

.obs-audio-library > [data-audio-list] {
  min-height: 0;
  max-height: none;
  overflow-y: scroll;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
  scrollbar-width: auto;
  scrollbar-color: #7392bd #e7edf6;
}

.obs-audio-library > [data-audio-list]::-webkit-scrollbar {
  width: 11px;
}

.obs-audio-library > [data-audio-list]::-webkit-scrollbar-track {
  border-radius: 999px;
  background: #e7edf6;
}

.obs-audio-library > [data-audio-list]::-webkit-scrollbar-thumb {
  border: 2px solid #e7edf6;
  border-radius: 999px;
  background: #7392bd;
}

.obs-audio-library > [data-audio-list]::-webkit-scrollbar-thumb:hover {
  background: #4567f2;
}

.obs-audio-library__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .65rem;
  padding: .62rem .72rem;
  border-top: 1px solid #d9e3f1;
  color: #617793;
  background: #fff;
  font-size: .62rem;
  font-weight: 800;
}

.obs-audio-library__footer button {
  min-height: 36px;
  padding: .45rem .7rem;
  border: 1px solid #cfdced;
  border-radius: 10px;
  color: #fff;
  background: #4567f2;
  font-size: .61rem;
  font-weight: 900;
}

.obs-audio-library__footer button:hover {
  background: #1d5ed8;
}

.obs-audio-library__footer button:disabled {
  cursor: wait;
  opacity: .65;
}

.obs-audio-library__footer button[hidden] {
  display: none !important;
}

@media (max-width: 991.98px) {
  .obs-audio-library {
    height: auto;
    min-height: 0;
    max-height: none;
  }

  .obs-audio-library > [data-audio-list] {
    min-height: 320px;
    max-height: 54dvh;
  }
}

@media (max-width: 575.98px) {
  .obs-audio-library > [data-audio-list] {
    min-height: 280px;
    max-height: 58dvh;
  }

  .obs-audio-library__footer {
    position: sticky;
    bottom: 0;
    z-index: 3;
  }
}

/* ========================================================================
   LABORATORIO AUDIO — confronto A/B stabile e realmente utilizzabile
   ======================================================================== */
[data-observatory-audio-player] {
  display: none !important;
}

.obs-audio-player {
  grid-template-rows: auto minmax(260px, 1fr) auto auto !important;
  align-content: stretch;
  row-gap: .78rem;
  overflow: visible;
}

.obs-audio-player .obs-waveform {
  min-height: 260px;
  margin: 0;
}

.obs-audio-controls {
  position: relative;
  z-index: 3;
  display: grid;
  grid-template-columns: auto 52px auto minmax(118px, auto) auto;
  justify-content: center;
  align-items: center;
  gap: .45rem;
  min-height: 54px;
  margin: 0;
  padding: .35rem .5rem;
  border: 1px solid #d9e3f1;
  border-radius: 15px;
  background: #f7faff;
}

.obs-audio-controls label {
  min-width: 118px;
  justify-content: space-between;
  padding-left: .25rem;
}

.obs-audio-controls label > span {
  color: #607793;
  font-size: .56rem;
  font-weight: 850;
}

.obs-audio-compare {
  position: relative;
  z-index: 2;
  display: block;
  margin: 0;
  padding: .72rem;
  border: 1px solid #d9e3f1;
  border-radius: 17px;
  background: #fff;
  box-shadow: 0 8px 24px rgba(34,70,120,.05);
}

.obs-audio-compare__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: .62rem;
}

.obs-audio-compare__head > div {
  min-width: 0;
}

.obs-audio-compare__head span {
  display: block;
  color: #4567f2;
  font-size: .53rem;
  font-weight: 950;
  text-transform: uppercase;
  letter-spacing: .1em;
}

.obs-audio-compare__head strong {
  display: block;
  max-width: 100%;
  margin-top: .16rem;
  overflow: hidden;
  color: #10243d;
  font-size: .68rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.obs-audio-compare__head small {
  max-width: 310px;
  color: #6a7f9b;
  font-size: .56rem;
  line-height: 1.45;
  text-align: right;
}

.obs-audio-compare__slots {
  display: grid;
  grid-template-columns: minmax(0,1fr) 38px minmax(0,1fr);
  align-items: stretch;
  gap: .62rem;
}

.obs-audio-compare__slots > i {
  align-self: center;
  justify-self: center;
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border: 1px solid #f0d98e;
  border-radius: 50%;
  color: #8d6b00;
  background: #fff8dc;
  font-size: .56rem;
  font-style: normal;
  font-weight: 950;
}

.obs-audio-compare article {
  min-width: 0;
  display: grid;
  grid-template-columns: auto minmax(0,1fr);
  grid-template-rows: auto auto;
  align-items: center;
  gap: .36rem .65rem;
  padding: .72rem;
  border: 1px solid #d9e3f1;
  border-radius: 14px;
  background: #f7faff;
  transition: border-color .18s ease, box-shadow .18s ease, background .18s ease;
}

.obs-audio-compare article.is-assigned {
  border-color: rgba(69,103,242,.45);
  background: #f2f5ff;
  box-shadow: 0 8px 20px rgba(69,103,242,.08);
}

.obs-audio-compare article > span {
  grid-row: 1 / span 2;
  align-self: start;
  margin-top: .12rem;
  color: #4567f2;
  font-size: .58rem;
  font-weight: 950;
  text-transform: uppercase;
  letter-spacing: .06em;
}

.obs-audio-compare article > div:not(.obs-audio-slot-actions) {
  min-width: 0;
}

.obs-audio-compare article strong {
  display: block;
  overflow: hidden;
  color: #10243d;
  font-size: .72rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.obs-audio-compare article small {
  display: block;
  margin-top: .12rem;
  overflow: hidden;
  color: #6d819c;
  font-size: .54rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.obs-audio-slot-actions {
  grid-column: 2;
  display: flex;
  align-items: center;
  gap: .36rem;
  flex-wrap: wrap;
}

.obs-audio-slot-actions button {
  min-height: 32px;
  padding: .35rem .55rem;
  border: 1px solid #d4dfed;
  border-radius: 9px;
  color: #31527d;
  background: #fff;
  font-size: .53rem;
  font-weight: 850;
  cursor: pointer;
}

.obs-audio-slot-actions button:first-child {
  color: #fff;
  border-color: #4567f2;
  background: #4567f2;
}

.obs-audio-slot-actions button:hover:not(:disabled) {
  transform: translateY(-1px);
  box-shadow: 0 6px 14px rgba(34,70,120,.1);
}

.obs-audio-slot-actions button:disabled {
  opacity: .42;
  cursor: not-allowed;
  box-shadow: none;
  transform: none;
}

@media (max-width: 1199.98px) {
  .obs-audio-player {
    grid-template-rows: auto minmax(230px, 1fr) auto auto !important;
  }
  .obs-audio-player .obs-waveform {
    min-height: 230px;
  }
  .obs-audio-compare__head {
    display: block;
  }
  .obs-audio-compare__head small {
    display: block;
    max-width: none;
    margin-top: .28rem;
    text-align: left;
  }
  .obs-audio-compare__slots {
    grid-template-columns: 1fr;
  }
  .obs-audio-compare__slots > i {
    width: auto;
    height: auto;
    border: 0;
    border-radius: 0;
    background: transparent;
  }
}

@media (max-width: 767.98px) {
  .obs-audio-player {
    display: grid !important;
    grid-template-rows: auto minmax(190px, auto) auto auto !important;
    row-gap: .6rem;
  }
  .obs-audio-player .obs-waveform {
    min-height: 190px;
  }
  .obs-audio-controls {
    grid-template-columns: repeat(3, minmax(0,1fr));
    justify-content: stretch;
  }
  .obs-audio-controls .obs-audio-play {
    grid-row: auto;
    width: 46px;
    height: 46px;
    justify-self: center;
  }
  .obs-audio-controls label {
    grid-column: span 2;
    min-width: 0;
  }
  .obs-audio-controls [data-audio-loop] {
    grid-column: auto;
  }
  .obs-audio-compare {
    padding: .58rem;
  }
  .obs-audio-compare article {
    grid-template-columns: 1fr;
  }
  .obs-audio-compare article > span,
  .obs-audio-slot-actions {
    grid-column: 1;
    grid-row: auto;
  }
  .obs-audio-slot-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }
  .obs-audio-slot-actions button:first-child {
    grid-column: 1 / -1;
  }
}

/* ========================================================================
   WAVEFORM STABILE + GRAFO AD ALTO CONTRASTO
   ======================================================================== */
.obs-audio-player {
  grid-template-rows: auto 210px auto auto !important;
}

.obs-audio-player .obs-waveform {
  position: relative;
  width: 100%;
  height: 210px;
  min-height: 0 !important;
  max-height: 210px;
  overflow: hidden;
  contain: strict;
  isolation: isolate;
}

.obs-audio-player .obs-waveform canvas {
  position: absolute;
  inset: 0;
  display: block;
  width: 100% !important;
  height: 100% !important;
  max-width: none;
  max-height: none;
}

.obs-network-legend > button {
  min-height: 40px;
  margin: 2px 0;
  padding: .48rem .45rem;
  border: 1px solid transparent;
  border-radius: 9px;
  color: #f5f8ff !important;
  cursor: pointer;
  transition: background .16s ease, border-color .16s ease, opacity .16s ease, transform .16s ease;
}

.obs-network-legend > button span {
  color: #f5f8ff !important;
  font-weight: 800;
}

.obs-network-legend > button b {
  color: #b9cae5 !important;
  font-variant-numeric: tabular-nums;
}

.obs-network-legend > button:hover,
.obs-network-legend > button:focus-visible {
  border-color: rgba(126,160,255,.45);
  background: rgba(69,103,242,.16);
  outline: none;
  transform: translateX(-2px);
}

.obs-network-legend > button.is-muted {
  opacity: .46;
  border-color: rgba(255,255,255,.06);
  background: rgba(255,255,255,.025);
}

.obs-network-legend > button.is-muted i {
  filter: grayscale(1);
  opacity: .48;
}

.obs-network-legend > button.is-muted span {
  text-decoration: line-through;
  text-decoration-thickness: 1px;
}

.obs-network-legend > .obs-network-legend__all {
  display: block;
  width: 100%;
  min-height: 36px;
  margin-top: .55rem;
  color: #fff !important;
  text-align: center;
  background: rgba(69,103,242,.2);
  border-color: rgba(126,160,255,.34);
  font-size: .56rem;
  font-weight: 900;
}

.obs-network-hint {
  color: #d8e4f6;
  border-color: rgba(255,255,255,.16);
  background: rgba(2,13,28,.86);
}

@media (max-width: 1199.98px) {
  .obs-audio-player {
    grid-template-rows: auto 180px auto auto !important;
  }
  .obs-audio-player .obs-waveform {
    height: 180px;
    max-height: 180px;
  }
}

@media (max-width: 767.98px) {
  .obs-audio-player {
    grid-template-rows: auto 150px auto auto !important;
  }
  .obs-audio-player .obs-waveform {
    height: 150px;
    max-height: 150px;
  }
  .obs-graph-console__body {
    display: grid;
    grid-template-columns: 1fr;
  }
  .obs-network-legend {
    position: static !important;
    width: auto !important;
    max-height: none !important;
    display: flex !important;
    gap: .38rem;
    overflow-x: auto;
    padding: .55rem;
    border: 0;
    border-top: 1px solid rgba(255,255,255,.12);
    border-radius: 0;
    background: #07182f;
    scrollbar-width: thin;
  }
  .obs-network-legend > div,
  .obs-network-legend > p {
    display: none;
  }
  .obs-network-legend > button {
    flex: 0 0 auto;
    width: auto;
    min-height: 36px;
    display: flex;
    align-items: center;
    gap: .38rem;
    padding: .42rem .55rem;
    border-color: rgba(255,255,255,.1);
    background: rgba(255,255,255,.035);
  }
  .obs-network-legend > button b {
    margin-left: .2rem;
  }
  .obs-network-legend > .obs-network-legend__all {
    display: flex;
    width: auto;
    margin: 2px 0;
  }
}
