/* IDRCIN Observatory - fibre-first autonomous point-sensing revamp */
.grid4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.principle-banner{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:0 0 18px;padding:20px 24px;border:1px solid var(--accent);border-radius:20px;background:linear-gradient(135deg,rgba(43,122,82,.13),var(--paper));font-size:clamp(1rem,2vw,1.35rem)}
.principle-banner span{color:var(--muted)}
.mode-badge{display:inline-flex;width:max-content;max-width:100%;padding:6px 9px;border:1px solid var(--line);border-radius:999px;background:var(--soft);color:var(--accent);font:800 .66rem/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.07em}
.mode-fd{border-color:#2b7a52}.mode-fe{border-color:#4a91e0}.mode-ap{border-color:#d97706}.mode-rs{border-color:#7c3aed}.mode-no{border-color:#64748b}
.observation-layers .card{min-height:240px}.observation-layers h3{margin-top:18px}
.decision-tree{margin-top:18px;text-align:center}.decision-flow{display:grid;justify-items:center;gap:9px}.decision-flow>div:not(.decision-split){width:min(620px,100%);padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--soft)}
.decision-split{display:grid;grid-template-columns:1fr 1fr;gap:14px;width:min(840px,100%)}.decision-split>div{display:grid;gap:8px;padding:18px;border:1px solid var(--line);border-radius:16px;background:var(--paper)}.decision-answer{font:900 .7rem/1 ui-monospace,monospace;color:var(--accent)}.decision-split small{color:var(--muted)}
.hybrid-architecture{display:grid;gap:24px;text-align:center}.architecture-head{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.architecture-head span,.architecture-stack span{padding:18px;border:1px solid var(--line);border-radius:16px;background:var(--soft);font-weight:900}.architecture-head small{display:block;margin-top:6px;color:var(--muted);font-weight:600}.architecture-join{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;position:relative;padding-top:34px}.architecture-join i{height:2px;background:var(--accent);transform-origin:center;animation:branchSignal 3.8s ease-in-out infinite}.architecture-join b{grid-column:1/-1;justify-self:center;padding:12px 24px;border-radius:999px;background:var(--accent);color:#fff}.architecture-stack{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.architecture-stack span{position:relative}.architecture-stack span:not(:last-child):after{content:"→";position:absolute;right:-12px;color:var(--accent)}
.sparse-corridor{margin-top:18px}.corridor-caption{display:flex;justify-content:space-between;gap:12px}.corridor-caption span{color:var(--muted)}.fibre-line{height:44px;position:relative}.fibre-line:before{content:"";position:absolute;left:2%;right:2%;top:21px;height:3px;border-radius:99px;background:linear-gradient(90deg,var(--accent),var(--accent-2),var(--accent));box-shadow:0 0 14px rgba(43,122,82,.42)}.fibre-line i{position:absolute;top:16px;left:2%;width:12px;height:12px;border-radius:50%;background:#b9ffd2;box-shadow:0 0 0 6px rgba(43,122,82,.14);animation:corridorPulse 5s linear infinite}.pod-row{display:flex;justify-content:space-around;gap:12px;padding-top:40px}.pod{position:relative;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--paper);font:800 .7rem/1 ui-monospace,monospace;color:var(--accent)}.pod:before{content:"";position:absolute;left:50%;bottom:100%;height:35px;border-left:1px dashed var(--accent)}
.architecture-guardrail{margin-top:18px;padding:18px 20px;border-left:4px solid #d97706;border-radius:14px;background:rgba(217,119,6,.08)}.architecture-guardrail p{margin:7px 0 0;color:var(--muted)}
.communication-paths{margin-top:18px}.communication-paths h3{margin-top:14px}.terminology-lock{display:flex;flex-wrap:wrap;gap:7px;margin-top:18px}.terminology-lock span{padding:6px 9px;border:1px solid var(--line);border-radius:999px;background:var(--paper);color:var(--muted);font:700 .65rem/1 ui-monospace,monospace}
.workflow-expanded{counter-reset:workflow}.workflow-expanded .workflow-step{grid-template-columns:minmax(180px,.5fr) 1.5fr;counter-increment:workflow}.workflow-expanded .workflow-step b:before{content:counter(workflow,decimal-leading-zero) " · "}.workflow-expanded p{margin:0;color:var(--muted)}
.sensing-classes .card{min-height:330px}.pod-technical{margin-top:18px}.pod-stack{display:grid;gap:6px;margin:16px 0}.pod-stack span,.pod-stack b{padding:9px 12px;border:1px solid var(--line);border-radius:9px;background:var(--soft);text-align:center;font-size:.82rem}.pod-stack b{width:60%;justify-self:center;color:var(--accent)}
.lifecycle{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:18px 0}.lifecycle span{padding:9px 11px;border:1px solid var(--line);border-radius:999px;background:var(--soft);font-weight:800;font-size:.78rem}.lifecycle i{color:var(--accent);font-style:normal}.resilience-strip{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:18px;padding:20px;border:1px solid var(--line);border-radius:18px;background:var(--paper)}.resilience-strip>span{padding:8px 10px;border-radius:10px;background:var(--soft);font-weight:800;font-size:.76rem}.resilience-strip>p{flex-basis:100%;margin:3px 0 0;color:var(--muted)}
.terrain-profile{fill:rgba(43,122,82,.12);stroke:var(--line)}.pod-marker circle{fill:#d97706;stroke:var(--paper);stroke-width:5}.pod-marker text{fill:var(--ink);text-anchor:middle;font:800 12px ui-monospace,monospace}.twin-corridor .track{stroke-dasharray:10 8;animation:dashFlow 8s linear infinite}
.digital-twin{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:18px}.twin-map{position:relative;min-height:280px;border:1px solid var(--line);border-radius:18px;background:radial-gradient(circle at 65% 35%,rgba(43,122,82,.24),transparent 22%),linear-gradient(145deg,var(--soft),var(--paper));overflow:hidden}.twin-map:before,.twin-map:after{content:"";position:absolute;inset:15%;border:1px solid rgba(43,122,82,.18);border-radius:48% 52% 38% 62%}.twin-map:after{inset:29%;border-radius:35% 65% 55% 45%}.twin-fibre{position:absolute;left:8%;right:8%;top:53%;height:3px;background:var(--accent);transform:rotate(-8deg)}.twin-pod{position:absolute;width:15px;height:15px;border:3px solid var(--paper);border-radius:50%;background:#d97706;box-shadow:0 0 0 6px rgba(217,119,6,.12);animation:podPing 2.8s ease-in-out infinite}.twin-pod.p1{left:24%;top:61%}.twin-pod.p2{left:58%;top:40%;animation-delay:.6s}.twin-pod.p3{left:78%;top:55%;animation-delay:1.2s}.twin-fields{display:flex;flex-wrap:wrap;gap:7px}.twin-fields code{padding:6px 8px;border:1px solid var(--line);border-radius:8px;background:var(--soft);color:var(--accent);font-size:.72rem}
.health-dashboard{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:18px}.health-dashboard>div{display:grid;gap:8px;padding:15px;border:1px solid var(--line);border-radius:14px;background:var(--paper)}.health-dashboard small{color:var(--muted)}.health{width:max-content;padding:5px 8px;border-radius:999px;font:800 .65rem/1 ui-monospace,monospace}.health.ok{color:#166534;background:#dcfce7}.health.warn{color:#92400e;background:#fef3c7}.health.alert{color:#991b1b;background:#fee2e2}
.plus-architecture{display:grid;grid-template-columns:1fr auto 1fr;gap:14px;align-items:center;text-align:center;margin-top:18px;padding:18px;border:1px solid var(--line);border-radius:16px;background:var(--paper)}.plus-architecture>span{padding:12px;border-radius:12px;background:var(--soft);font-weight:900}.plus-architecture small{grid-column:1/-1;color:var(--muted)}
html[data-theme="dark"] .fibre-panel{background-color:#111813;background-image:linear-gradient(180deg,#18221d,#111813);border-color:#314239;color:#e7efe9}
html[data-theme="dark"] .fibre-panel h3,html[data-theme="dark"] .fibre-panel b{color:#f8fafc}
html[data-theme="dark"] .fibre-panel p,html[data-theme="dark"] .fibre-panel small{color:#b9c7bf!important}
html[data-theme="dark"] .fibre-panel .label{background:#203129;border-color:#3c5b49;color:#b8edca}
.library-tools{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:16px}.library-tools label{display:grid;gap:6px;color:var(--accent);font:800 .72rem/1 ui-monospace,monospace}.library-tools select{min-height:42px;padding:8px 12px;border:1px solid var(--line);border-radius:12px;background:var(--paper);color:var(--ink)}.library-tools>span{font-weight:900}.instrument-library{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.instrument-card{padding:20px;border:1px solid var(--line);border-radius:18px;background:var(--paper);box-shadow:0 8px 22px rgba(13,35,22,.04)}.instrument-card[hidden]{display:none}.instrument-head{display:flex;justify-content:space-between;gap:8px;align-items:center}.instrument-head>span:last-child{color:var(--muted);font:700 .65rem/1 ui-monospace,monospace}.instrument-card h3{margin:14px 0 5px}.instrument-card>p{margin:0 0 12px;color:var(--muted)}.instrument-card dl{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0}.instrument-card dl>div{padding:9px;border-radius:10px;background:var(--soft)}.instrument-card dt{color:var(--accent);font:800 .64rem/1 ui-monospace,monospace;text-transform:uppercase}.instrument-card dd{margin:5px 0 0;color:var(--muted);font-size:.8rem}.instrument-limit{margin-top:10px;padding-top:10px;border-top:1px solid var(--line);color:var(--muted);font-size:.82rem}.instrument-limit b{color:var(--ink)}
.fusion-graphs{display:grid;gap:14px}.fusion-row{display:flex;align-items:center;justify-content:center;gap:9px;flex-wrap:wrap;padding:18px;border:1px solid var(--line);border-radius:18px;background:var(--paper)}.fusion-row span{padding:10px 12px;border:1px solid var(--line);border-radius:12px;font-weight:800;font-size:.8rem}.fusion-row i{font-style:normal;color:var(--muted)}.fusion-row b{color:var(--accent);font-size:1.4rem}.source-ap{background:rgba(217,119,6,.1)}.source-fd{background:rgba(43,122,82,.12)}.source-fe{background:rgba(74,145,224,.12)}.source-rs{background:rgba(124,58,237,.1)}.fusion-output{background:var(--accent)!important;color:#fff}
.mode-counts{display:grid;grid-template-columns:repeat(6,1fr);gap:9px;margin-bottom:16px}.mode-counts div{padding:13px;border:1px solid var(--line);border-radius:14px;background:var(--paper)}.mode-counts b{display:block;font-size:1.35rem;color:var(--accent)}.mode-counts span{font:800 .59rem/1.35 ui-monospace,monospace;color:var(--muted)}.study-tools-revamp{grid-template-columns:1.35fr repeat(4,1fr)}.programme-status{margin:0 0 14px;color:var(--muted)}.programme-status b{color:var(--ink)}
.study-card .hardware-state{display:inline-flex;padding:5px 8px;border-radius:999px;background:rgba(217,119,6,.1);color:#b45309;font:800 .65rem/1 ui-monospace,monospace}.study-card .study-body-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:14px}.study-card .study-body-grid>div{padding:9px;border-radius:9px;background:var(--soft)}
.output-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.output-grid span{padding:18px;border:1px solid var(--line);border-radius:15px;background:var(--paper);font-weight:850}.data-distinction{display:flex;justify-content:center;align-items:center;gap:18px;margin:18px 0;padding:18px;border:1px solid #d97706;border-radius:16px;background:rgba(217,119,6,.07)}.data-distinction b{color:#d97706;font-size:1.4rem}.pipeline-visual{display:flex;gap:8px;overflow-x:auto;padding:16px;border:1px solid var(--line);border-radius:18px;background:var(--paper);scrollbar-width:thin}.pipeline-visual span{position:relative;flex:0 0 150px;padding:12px;border-radius:10px;background:var(--soft);font-size:.76rem;font-weight:800}.pipeline-visual span:not(:last-child):after{content:"→";position:absolute;right:-9px;color:var(--accent)}.governance-cards{margin-top:18px}
.pod-risks{grid-template-columns:repeat(3,1fr)}.pod-risks .card{padding:18px}.pod-risks h3{font-size:1rem}.validation-table{margin-top:18px}.maintenance-ecology{margin-top:18px}.not-validated{margin-top:18px;padding:20px;border:1px solid #dc2626;border-radius:18px;background:rgba(220,38,38,.07)}.not-validated strong{color:#dc2626}.not-validated p{margin:7px 0 0;color:var(--muted)}
.cta-band h2{font-size:clamp(2rem,4vw,4rem);max-width:900px}.cta-band p{max-width:850px;color:#e5f4ea}.do-not-deploy{display:flex;gap:8px;overflow-x:auto;margin:18px 0;padding-bottom:6px}.do-not-deploy span{position:relative;flex:0 0 auto;padding:10px 13px;border:1px solid rgba(255,255,255,.35);border-radius:999px;background:rgba(255,255,255,.12);font-size:.78rem;font-weight:800}.do-not-deploy span:not(:last-child):after{content:"→";position:absolute;right:-9px}
.scene .research-pod{position:absolute;z-index:5;width:14px;height:14px;border:3px solid #fff;border-radius:50%;background:#d97706;box-shadow:0 0 0 7px rgba(217,119,6,.14);animation:podPing 3s ease-in-out infinite}.scene .research-pod.pod-a{left:27%;top:58%}.scene .research-pod.pod-b{left:62%;top:64%;animation-delay:.7s}.scene .research-pod.pod-c{left:78%;top:51%;animation-delay:1.4s}.scene .dataflow{max-width:88%}
@keyframes branchSignal{0%,100%{transform:scaleX(.2);opacity:.3}50%{transform:scaleX(1);opacity:1}}
@keyframes corridorPulse{0%{left:2%;opacity:0}10%,90%{opacity:1}100%{left:96%;opacity:0}}
@keyframes dashFlow{to{stroke-dashoffset:-72}}
@keyframes podPing{50%{transform:scale(1.16);box-shadow:0 0 0 11px rgba(217,119,6,.04)}}
@media(max-width:1050px){.grid4,.health-dashboard,.mode-counts{grid-template-columns:repeat(2,1fr)}.study-tools-revamp{grid-template-columns:repeat(2,1fr)}.study-tools-revamp label:first-child{grid-column:1/-1}}
@media(max-width:760px){.grid4,.architecture-head,.architecture-stack,.decision-split,.digital-twin,.instrument-library,.output-grid,.pod-risks{grid-template-columns:1fr}.principle-banner{grid-template-columns:1fr}.architecture-join{grid-template-columns:1fr}.architecture-join i{display:none}.architecture-stack span:not(:last-child):after{content:"↓";right:auto;bottom:-18px;left:50%}.pod-row{overflow-x:auto;justify-content:flex-start;padding:40px 4px 4px}.pod{flex:0 0 auto}.workflow-expanded .workflow-step{grid-template-columns:1fr}.study-tools-revamp{grid-template-columns:1fr}.study-tools-revamp label:first-child{grid-column:auto}.mode-counts{grid-template-columns:repeat(2,1fr)}.instrument-card dl,.study-card .study-body-grid{grid-template-columns:1fr}.plus-architecture{grid-template-columns:1fr}.plus-architecture small{grid-column:auto}.data-distinction{flex-direction:column;gap:6px}.health-dashboard{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.health-dashboard,.mode-counts{grid-template-columns:1fr}.corridor-caption{display:grid}.fusion-row{justify-content:flex-start}.library-tools{align-items:stretch;display:grid}.instrument-head{align-items:flex-start;display:grid}}
@media(prefers-reduced-motion:reduce){.architecture-join i,.fibre-line i,.twin-corridor .track,.twin-pod,.scene .research-pod{animation:none!important}.pipeline-visual{scroll-behavior:auto}}
