/* Applications share the SMONAD header, footer, type and reading preferences. */
.app-hub,.app-suite{--app-blue:#146b91;--app-line:#c9dce5;--app-pale:#eaf3f8;color:var(--s-ink,#183c3e);font-family:var(--s-sans,system-ui,sans-serif);line-height:1.75}
.app-hub *,.app-suite *{box-sizing:border-box}
.app-hub{max-width:1280px;padding:32px;margin:auto}
.app-hub [hidden],.app-suite [hidden]{display:none!important}
.app-breadcrumb{display:flex;flex-wrap:wrap;gap:10px;font-size:.8rem;color:#526970;margin-bottom:28px}
.app-kicker{font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;font-weight:750;color:var(--app-blue)}
.app-hero{padding:14px 0 42px;border-bottom:1px solid var(--app-line);margin-bottom:30px}
.app-hero h1{font:400 clamp(2.5rem,4.8vw,4.4rem)/1.1 var(--s-serif,Georgia,serif);letter-spacing:-.04em;margin:15px 0 24px;max-width:950px}
.app-hero p{max-width:850px}.app-lead{font-size:1.08rem;color:#405c66;line-height:1.85}
.app-hub-meta{display:flex;flex-wrap:wrap;gap:12px 30px;font-size:.8rem;color:#456371}
.app-hub-meta span{border-left:2px solid #86acc0;padding-left:12px}
.app-controls{display:flex;flex-wrap:wrap;gap:18px;justify-content:space-between;align-items:end;margin:28px 0}
.app-controls label{display:block;font-size:.8rem;font-weight:700;margin-bottom:5px}
.app-controls input{min-width:270px;max-width:100%;padding:11px 14px;border:1px solid #9dbbc9;border-radius:6px;background:#fffefa;font:inherit}
.app-filters{display:flex;flex-wrap:wrap;gap:8px}.app-filters button{padding:9px 14px;border:1px solid var(--app-line);border-radius:25px;background:#fffefa;color:#315969;font:inherit;font-size:.8rem;cursor:pointer;min-height:42px}
.app-filters button[aria-pressed=true]{background:#155e87;color:white;border-color:#155e87}
.app-count{font-size:.78rem;color:#526970;margin-bottom:15px}
.app-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
.app-card{display:flex;flex-direction:column;padding:28px 30px;border:1px solid var(--app-line);border-radius:12px;background:var(--s-white,#fffefa);min-width:0;box-shadow:0 6px 22px #143c5005}
.app-card-top{display:flex;justify-content:space-between;align-items:center;gap:20px}.app-card svg{width:72px;height:60px;stroke:#146b91;stroke-width:1.7;fill:none;flex-shrink:0}
.app-card .app-index{font:500 .68rem var(--s-sans,system-ui);letter-spacing:.1em;color:#487687}
.app-card h2{font:400 1.9rem/1.2 var(--s-serif,Georgia);letter-spacing:-.025em;margin:20px 0 14px}
.app-card h2 a{color:inherit;text-decoration:none}.app-card h2 a:hover{text-decoration:underline}
.app-card p{font-size:.94rem;color:#45616c;margin:0 0 14px}.app-card ul{font-size:.85rem;margin:0 0 22px;padding-left:18px}.app-card li{padding-block:2px}
.app-card-bottom{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;margin-top:auto;padding-top:18px;border-top:1px solid var(--app-line)}
.app-badge{display:inline-block;font-size:.68rem;border:1px solid #bfd1d9;border-radius:4px;padding:4px 8px;color:#315969;background:#eff5f6;line-height:1.5}
.app-open{color:#075581;font-weight:700;font-size:.82rem;text-decoration:none}.app-open:hover{text-decoration:underline}
.app-routes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin:42px 0}.app-route{border-top:3px solid #7ca7bb;padding:16px 10px}.app-route h3{font:400 1.35rem var(--s-serif,Georgia)}.app-route p,.app-route a{font-size:.87rem}
.app-scope{background:#eef2ec;border-left:3px solid #927246;padding:22px 26px;margin:30px 0}.app-scope h2{font:400 1.55rem var(--s-serif,Georgia);margin:0 0 10px}.app-scope p{font-size:.88rem;margin:8px 0}
.app-suite{max-width:1500px;display:grid;grid-template-columns:230px minmax(0,1fr);gap:0;margin:auto}
.app-sidebar{padding:24px 16px 30px 22px;border-right:1px solid var(--app-line);background:#eef4f7;align-self:start;position:sticky;top:calc(var(--s-sticky-nav-height,88px) + 8px);max-height:calc(100dvh - var(--s-sticky-nav-height,88px) - 16px);overflow:auto}
.app-sidebar .app-kicker{margin:0 10px 16px}.app-sidebar nav,.app-mobile-nav nav{display:grid;gap:4px}.app-sidebar nav a,.app-mobile-nav nav a{display:block;padding:10px 12px;border-radius:5px;text-decoration:none;color:#315969;font-size:.79rem;line-height:1.55}
.app-sidebar nav a[aria-current],.app-mobile-nav nav a[aria-current]{background:#fffefa;box-shadow:inset 3px 0 #267cb1;color:#075581;font-weight:750}.app-sidebar nav a:hover{background:#dfeef5}.app-side-note{font-size:.72rem;padding:18px 10px;color:#526970}
.app-main{min-width:0;padding:30px 38px 60px;width:100%;max-width:none}.app-main .app-hero h1{font-size:clamp(2.2rem,3.9vw,3.5rem)}.app-main .app-hero{padding-top:4px}
.app-mobile-nav{display:none}.app-toc{display:flex;flex-wrap:wrap;gap:10px 22px;padding:18px 0;border-bottom:1px solid var(--app-line);font-size:.8rem}.app-toc a{color:#075581}
.app-section{margin:42px 0;scroll-margin-top:calc(var(--s-sticky-nav-height,88px) + 22px)}.app-section>h2{font:400 2rem/1.2 var(--s-serif,Georgia);letter-spacing:-.025em;margin-bottom:16px}.app-section>p{max-width:85ch}.app-section>h3{font:400 1.5rem var(--s-serif,Georgia)}
.app-question{border-left:3px solid #5c99b6;padding:12px 20px;background:#edf4f7;font-size:.88rem;margin:20px 0}.app-question strong{display:block;margin-bottom:5px}
.app-related{display:flex;flex-wrap:wrap;gap:10px 24px;padding:20px 0;font-size:.83rem;border-block:1px solid var(--app-line)}
.app-panel{background:#f0f6f8;border:1px solid var(--app-line);border-radius:10px;padding:24px;margin:22px 0;min-width:0}.app-panel>h3{font:400 1.5rem var(--s-serif,Georgia);margin:0 0 14px}.app-panel label{display:block;font-weight:650;font-size:.86rem;margin:12px 0 6px}.app-panel label output{float:right}
.app-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px 22px}.app-fields>div{min-width:0}.app-panel input:not([type=range]),.app-panel select,.app-panel textarea{width:100%;max-width:100%;padding:11px 12px;background:#fffefa;border:1px solid #9cb7c5;border-radius:5px;font:inherit;font-size:.9rem;color:#183c3e}.app-panel textarea{font: .8rem/1.65 ui-monospace,Consolas,monospace;min-height:220px;resize:vertical;white-space:pre;overflow:auto}.app-panel input[type=range]{width:100%;min-height:36px;accent-color:#146b91}
.app-actions{display:flex;flex-wrap:wrap;gap:9px;margin:18px 0}.app-actions button{border:1px solid #146b91;background:#fffefa;color:#075581;border-radius:5px;padding:10px 15px;min-height:44px;cursor:pointer;font:inherit;font-weight:650;font-size:.82rem}.app-actions .app-primary{background:#155e87;color:white}.app-actions button:disabled{opacity:.5;cursor:default}.app-small{font-size:.8rem;color:#526970;line-height:1.7}
.app-readout{background:#fffefa;border-left:3px solid #146b91;padding:14px 18px;font-size:.9rem;line-height:1.8}.app-error{background:#fff1e9;border-left:3px solid #a54227;color:#702b1a;padding:14px;font-size:.87rem}
.app-table{max-width:100%;overflow:auto;margin:18px 0}.app-table table{border-collapse:collapse;width:100%;font-size:.8rem;background:#fffefa}.app-table th,.app-table td{text-align:left;padding:10px 12px;border-bottom:1px solid #d7e2e8;vertical-align:top}.app-table th{background:#e6f0f5;font-weight:650}.app-table caption{text-align:left;padding:10px 0;color:#45616c}.app-table:focus-visible{outline:3px solid #c88040}
.app-plot{background:#fffefa;border:1px solid var(--app-line);border-radius:8px;overflow:hidden;margin:20px 0}.app-plot svg{display:block;width:100%;height:auto}.app-plot-label{font:12px system-ui;fill:#315969}
.app-legend{font-size:.78rem;color:#45616c;display:flex;flex-wrap:wrap;gap:12px 25px}.app-legend span:nth-child(1){color:#146b91}.app-legend span:nth-child(2){color:#a35a2a}
.app-suite .h-explorer,.app-suite .g-explorer,.app-suite .rg-lab,.app-suite .s-demo,.app-suite .wb{background:#f1f6f7;border-color:var(--app-line);border-radius:9px;margin:22px 0}
.app-suite .g-explorer{padding:22px}.app-suite .h-explorer button,.app-suite .g-explorer .g-actions button{background:#155e87;border-color:#155e87}.app-suite .h-explorer button.h-secondary,.app-suite .g-explorer [data-download=csv],.app-suite .g-explorer [data-reset]{background:#fffefa;color:#075581}
.app-suite .h-chart,.app-suite .g-chart{max-width:100%}.app-suite .rg-lab-formula{overflow:auto}.app-suite .g-status,.app-suite .h-status{background:#e6eff4;border-left-color:#6c9db5}
.app-suite .wb{max-width:100%}.app-suite .h-table-wrap,.app-suite .g-table-wrap{max-width:100%;overflow:auto}
.app-hub :focus-visible,.app-suite :focus-visible{outline:3px solid #bb7028;outline-offset:3px}
@media(max-width:1050px){.app-suite{grid-template-columns:205px minmax(0,1fr)}.app-main{padding:26px}.app-card{padding:24px}}
@media(max-width:900px){.app-suite{display:block}.app-sidebar{display:none}.app-mobile-nav{display:block;margin:0 0 25px;border:1px solid var(--app-line);background:#edf4f8;border-radius:7px;padding:12px 15px}.app-mobile-nav summary{cursor:pointer;font-weight:700;color:#075581}.app-mobile-nav nav{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:12px}.app-main{padding:24px}.app-routes{grid-template-columns:1fr}.app-routes .app-route{padding:10px}}
@media(max-width:620px){.app-hub{padding:24px 18px}.app-card-grid,.app-fields{grid-template-columns:minmax(0,1fr)}.app-hero{padding-bottom:28px}.app-hub .app-hero h1{font-size:2.7rem}.app-main{padding:20px 16px 40px}.app-main .app-hero h1{font-size:2.35rem}.app-card h2{font-size:1.75rem}.app-controls>div{width:100%}.app-controls input{width:100%;min-width:0}.app-panel{padding:16px}.app-section>h2{font-size:1.75rem}.app-card-bottom{gap:16px}.app-plot{margin-inline:-5px}.app-suite .g-explorer{padding:16px}.app-suite .s-demo,.app-suite .wb{padding:16px}.app-toc{gap:8px 18px}}
@media print{.app-sidebar,.app-mobile-nav,.app-controls,.app-actions,.app-toc{display:none}.app-suite{display:block}.app-main,.app-hub{padding:0}.app-card-grid{display:block}.app-card{break-inside:avoid;margin-bottom:15px}.app-table{overflow:visible}.app-panel{background:white}.app-plot{break-inside:avoid}}
