/* A visible boundary keeps the hosting and the model route understandable. */
.local-models { padding:92px 0 96px; color:#28412e; }
.lm-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:32px; margin-bottom:38px; }
.lm-heading h2 { font:500 clamp(35px,3.5vw,48px)/1.2 var(--font-brand); letter-spacing:-1.5px; margin:0; }
.lm-heading p { max-width:560px; margin:19px 0 0; font-size:13px; line-height:1.8; color:#758169; }
.lm-route-switch { display:flex; gap:3px; flex-shrink:0; padding:4px; border:1px solid #d6ddce; border-radius:11px; background:#eef0e6; }
.lm-route-button { min-height:42px; padding:11px 14px; border-radius:7px; color:#768168; font:500 11px/1.4 var(--font-brand); white-space:nowrap; transition:background .2s,color .2s,box-shadow .2s; }
.lm-route-button:hover { color:#30492e; }
.lm-route-button.selected { background:#fffef8; color:#3f5831; box-shadow:0 2px 6px #283a1d0b; }
.lm-route-button:focus-visible { outline:2px solid #6e8a55; outline-offset:4px; }
.lm-stage { display:grid; grid-template-columns:minmax(0,1fr) 54px 248px; align-items:center; }
.lm-boundary { min-width:0; border:1.5px solid #b6c5a3; border-radius:20px; background:#eef2e5; position:relative; padding:0 27px 24px; }
.lm-boundary-top { display:flex; align-items:center; justify-content:space-between; gap:15px; padding:21px 0 20px; border-bottom:1px solid #d2ddc4; }
.lm-boundary-top>span:first-child { display:flex; align-items:center; gap:8px; font-size:12px; font-weight:500; color:#557143; }
.lm-boundary-top .icon { width:14px; height:14px; }
.lm-hosted { padding:6px 8px; border:1px solid #c4d2b4; border-radius:5px; font-size:9px; color:#718860; white-space:nowrap; }
.lm-pipeline { display:grid; grid-template-columns:minmax(0,1fr) 42px minmax(0,.95fr); align-items:center; gap:0; padding:25px 0 24px; }
.lm-origin { min-width:0; }
.lm-lotse-brand { display:flex; align-items:center; gap:9px; margin:0 0 13px; }
.lm-lotse-brand>img { width:32px; height:32px; object-fit:contain; }
.lm-lotse-brand>span { color:#314931; font-size:19px; line-height:1.1; font-weight:600; letter-spacing:-.8px; }
.lm-lotse-brand small { display:block; color:#7e8f70; font-weight:400; font-size:9px; line-height:1.7; letter-spacing:0; margin-top:2px; }
.lm-source-document { min-height:196px; padding:18px 18px 14px; border:1px solid #dbe3d0; border-radius:9px; background:#fffef9; box-shadow:0 5px 12px #31452904; }
.lm-document-label { display:flex; align-items:center; justify-content:space-between; gap:7px; font-size:9px; line-height:1.5; color:#829171; margin-bottom:17px; }
.lm-document-label>span:last-child { font-size:7px; letter-spacing:.7px; color:#a2ad93; }
.lm-data { display:grid; gap:11px; margin:0; }
.lm-data>div { display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 12px; justify-content:space-between; }
.lm-data dt { color:#94a083; font-size:10px; line-height:1.5; }
.lm-data dd { margin:0; font-size:13px; line-height:1.5; color:#4d6341; font-weight:500; }
.lm-source-proof { display:flex; align-items:center; gap:6px; border-top:1px solid #e7eade; padding-top:12px; margin-top:17px; font-size:8px; color:#909e7e; }
.lm-source-proof img { width:13px; height:13px; object-fit:contain; }
.lm-inner-transfer { position:relative; height:30px; display:flex; align-items:center; justify-content:center; color:#9aac87; }
.lm-inner-transfer:before { content:''; position:absolute; left:0; right:0; height:1px; top:50%; background:#bdccaa; }
.lm-inner-transfer>.icon { position:relative; z-index:1; width:16px; height:16px; padding-left:1px; background:#eef2e5; }
.lm-inner-transfer>span { position:absolute; z-index:2; top:calc(50% - 2px); left:0; width:4px; height:4px; border-radius:50%; background:#8ca46b; animation:lm-inner-flow 5s ease-in-out infinite; }
.lm-model-area { padding:17px 0 0; min-width:0; }
.lm-processor { position:relative; padding:23px 18px 21px; border:1px solid #496344; border-radius:12px; background:#263f31; color:#ecf2df; min-height:210px; }
.lm-processor-corners { position:absolute; inset:-5px; pointer-events:none; }
.lm-processor-corners i { width:11px; height:11px; position:absolute; border-color:#a6bc8a; border-style:solid; border-width:0; }
.lm-processor-corners i:nth-child(1) { top:0; left:0; border-top-width:1px; border-left-width:1px; border-radius:5px 0 0; }
.lm-processor-corners i:nth-child(2) { top:0; right:0; border-top-width:1px; border-right-width:1px; border-radius:0 5px 0 0; }
.lm-processor-corners i:nth-child(3) { bottom:0; right:0; border-bottom-width:1px; border-right-width:1px; border-radius:0 0 5px; }
.lm-processor-corners i:nth-child(4) { bottom:0; left:0; border-bottom-width:1px; border-left-width:1px; border-radius:0 0 0 5px; }
.lm-model-symbol { width:33px; height:33px; stroke:#cee995; stroke-width:1.35; display:block; margin-bottom:16px; }
.lm-model-label { display:block; font-size:9px; color:#a8bd91; margin-bottom:7px; line-height:1.5; }
.lm-processor h3 { font:500 17px/1.35 var(--font-brand); letter-spacing:-.3px; margin:0 0 15px; color:#edf5df; }
.lm-rules { display:grid; gap:7px; border-top:1px solid #526747; padding-top:12px; }
.lm-rules>span { display:flex; justify-content:space-between; flex-wrap:wrap; gap:3px 9px; color:#9db58a; font-size:10px; line-height:1.5; }
.lm-rules b { color:#d5e5b7; font-weight:450; }
.lm-model-note { display:flex; justify-content:center; align-items:center; gap:5px; color:#7b9068; font-size:8px; line-height:1.6; margin-top:13px; }
.lm-model-note>.icon { width:11px; height:11px; flex-shrink:0; }
.lm-retained { display:flex; align-items:center; gap:11px; padding:15px 15px 14px; border-top:1px solid #d4dfc8; border-radius:0 0 7px 7px; background:#e8eedf; }
.lm-retained-lock { width:29px; height:29px; display:grid; place-items:center; flex-shrink:0; border:1px solid #c8d7b9; border-radius:50%; color:#81986d; }
.lm-retained-lock>.icon { width:13px; height:13px; }
.lm-retained strong { display:block; color:#667d53; font-size:10px; line-height:1.5; font-weight:500; }
.lm-retained div>span { display:block; color:#8b9b7b; font-size:8px; line-height:1.7; margin-top:4px; }
.lm-retained div>span>span { margin:0 6px; color:#b1bf9f; }
.lm-crossing { align-self:center; position:relative; height:38px; color:#8ea374; }
.lm-crossing:before { content:''; position:absolute; top:50%; height:1px; left:0; right:0; background:#b0c29a; }
.lm-crossing>.icon { position:absolute; top:calc(50% - 7px); right:0; width:14px; height:14px; background:var(--paper,#f6f6f0); }
.lm-crossing-label { position:absolute; bottom:calc(50% + 10px); left:50%; transform:translateX(-50%); font-size:8px; color:#80956a; white-space:nowrap; }
.lm-crossing-dot { position:absolute; z-index:1; top:calc(50% - 2px); left:0; width:4px; height:4px; border-radius:50%; background:#8aa368; animation:lm-external-flow 6s ease-in-out infinite; }
.lm-outside { padding:20px 0 20px 0; min-width:0; }
.lm-outside-top { display:flex; flex-direction:column; gap:6px; text-align:center; color:#627951; font-size:12px; font-weight:500; }
.lm-outside-status { color:#94a184; font-size:9px; line-height:1.5; font-weight:400; }
.lm-external-logos { display:flex; justify-content:center; gap:13px; margin:20px 0 23px; }
.lm-external-logos>span { display:grid; place-items:center; width:41px; height:43px; background:#fffef9; border:1px solid #dde3d4; border-radius:11px; transition:opacity .25s,filter .25s; }
.lm-external-logos img { width:25px; height:25px; object-fit:contain; }
.lm-approved-context { border:1px solid #d8e1ca; border-radius:11px; padding:19px 18px 21px; background:#f9fbf4; min-height:182px; }
.lm-context-label { display:flex; align-items:center; gap:6px; color:#7c9264; font-size:9px; margin-bottom:19px; line-height:1.5; }
.lm-context-label>.icon { width:12px; height:12px; }
.lm-approved-context .lm-data { gap:12px; }
.lm-approved-context .lm-data dd { font-size:12px; }
.lm-data code { font-family:var(--mono,monospace); font-size:10px; background:#eaf0df; padding:4px 6px; border-radius:4px; color:#738b55; white-space:nowrap; }
.lm-approved-context .lm-data .lm-preserved { font-size:15px; color:#385d36; font-weight:600; }
.lm-section-bottom { padding-top:23px; }
.lm-section-bottom>p { max-width:550px; margin:0; color:#859477; font-size:11px; line-height:1.8; }
.lm-local-prompt { font-size:15px; line-height:1.65; color:#48603b; margin:14px 0 20px; letter-spacing:-.2px; }
.lm-local-prompt strong { font-weight:500; }
.lm-local-user { display:flex; align-items:center; gap:6px; font-size:9px; color:#8d9d79; }
.lm-local-user>span { width:19px; height:19px; display:grid; place-items:center; font-size:8px; color:#6e8657; background:#edf2e5; border-radius:5px; }
.lm-local-answer { color:#d2e2b7; font-size:12px; line-height:1.7; margin:0; }
.lm-local-answer strong { color:#e0efbd; font-size:20px; line-height:1.8; font-weight:500; }
.lm-local-citation { display:block; color:#91aa7a; font-size:8px; margin-top:8px; line-height:1.6; }
.lm-closed-route { display:flex; align-items:center; flex-direction:column; justify-content:center; text-align:center; min-height:139px; gap:12px; }
.lm-closed-route>.icon { width:26px; height:26px; color:#b1bca5; }
.lm-closed-route strong { color:#8e9c7d; font-size:12px; font-weight:500; }
.lm-closed-route p { font-size:9px; color:#a4af94; line-height:1.6; margin:0; max-width:140px; }
.lm-stage[data-route=local] .lm-external-logos>span { opacity:.35; filter:grayscale(1); }
.lm-stage[data-route=local] .lm-approved-context { background:transparent; border-style:dashed; border-color:#dce2d3; }
.lm-stage[data-route=local] .lm-crossing:before { background:none; border-top:1px dashed #d1d9c6; }
.lm-stage[data-route=local] .lm-crossing-dot,.lm-stage[data-route=local] .lm-crossing>.icon { display:none; }
.lm-stage[data-route=local] .lm-crossing:after { content:''; position:absolute; width:8px; height:15px; left:calc(50% - 4px); top:calc(50% - 7px); border-left:1px solid #c1cdb1; border-right:1px solid #c1cdb1; background:var(--paper,#f6f6f0); transform:rotate(22deg); }
.lm-stage[data-route=local] .lm-crossing-label { color:#a6b296; }
.lm-stage[data-route=local] .lm-processor { min-height:230px; }
.lm-stage[data-route=local] .lm-source-document { min-height:216px; }
@keyframes lm-inner-flow { 0%,8%{left:0;opacity:0} 20%{opacity:1} 75%{opacity:1} 90%,100%{left:calc(100% - 4px);opacity:0} }
@keyframes lm-external-flow { 0%,25%{left:0;opacity:0} 38%{opacity:1} 79%{opacity:1} 94%,100%{left:calc(100% - 4px);opacity:0} }
.motion-paused .lm-inner-transfer>span,.motion-paused .lm-crossing-dot { animation-play-state:paused; }
@media(max-width:1100px) {
 .lm-heading { display:block; }
 .lm-route-switch { width:max-content; margin-top:26px; }
 .lm-stage { grid-template-columns:minmax(0,1fr) 45px 214px; }
 .lm-boundary { padding:0 22px 21px; }
 .lm-pipeline { grid-template-columns:minmax(0,1fr) 35px minmax(0,1fr); }
 .lm-source-document { padding:15px 14px 13px; }
 .lm-data dd { font-size:12px; }
 .lm-processor { padding:21px 15px 19px; }
 .lm-processor h3 { font-size:16px; }
 .lm-rules>span { font-size:9px; }
 .lm-approved-context { padding:17px 14px 19px; }
}
@media(max-width:880px) {
 .local-models { padding:76px 0 78px; }
 .lm-stage { grid-template-columns:1fr; }
 .lm-boundary { padding:0 27px 25px; }
 .lm-pipeline { grid-template-columns:minmax(0,1fr) 70px minmax(0,1fr); padding:25px 0; }
 .lm-source-document { padding:18px 20px 15px; }
 .lm-data dd { font-size:14px; }
 .lm-processor { padding:24px 24px 22px; }
 .lm-processor h3 { font-size:19px; }
 .lm-rules>span { font-size:11px; }
 .lm-crossing { width:46px; height:56px; justify-self:center; }
 .lm-crossing:before { height:100%; width:1px; left:50%; top:0; }
 .lm-crossing>.icon { top:auto; bottom:-2px; left:calc(50% - 7px); transform:rotate(90deg); }
 .lm-crossing-label { left:calc(50% + 14px); bottom:auto; top:20px; transform:none; }
 .lm-crossing-dot { top:0; left:calc(50% - 2px); animation:lm-down-flow 6s ease-in-out infinite; }
 .lm-outside { display:grid; grid-template-columns:1fr minmax(0,1.1fr); grid-template-rows:auto 1fr; align-items:center; gap:0 30px; padding:0 27px; }
 .lm-outside-top { grid-column:1; grid-row:1; padding-top:15px; }
 .lm-external-logos { grid-column:1; grid-row:2; align-self:start; margin:18px 0 0; }
 .lm-approved-context { grid-column:2; grid-row:1 / 3; padding:18px 20px; }
 .lm-stage[data-route=local] .lm-crossing:before { border-top:0; border-left:1px dashed #d1d9c6; }
 .lm-stage[data-route=local] .lm-crossing:after { left:calc(50% - 7px); top:calc(50% - 4px); width:15px; height:8px; border-left:0; border-right:0; border-top:1px solid #c1cdb1; border-bottom:1px solid #c1cdb1; }
}
@media(max-width:600px) {
 .local-models { padding:58px 0 62px; }
 .lm-heading { margin-bottom:27px; }
 .lm-heading h2 { font-size:36px; letter-spacing:-1px; }
 .lm-heading p { font-size:12px; margin-top:15px; }
 .lm-route-switch { display:flex; width:100%; margin-top:24px; }
 .lm-route-button { flex:1; padding:11px 8px; font-size:10px; min-height:44px; }
 .lm-boundary { border-radius:15px; padding:0 18px 18px; }
 .lm-boundary-top { padding:17px 0; gap:8px; }
 .lm-boundary-top>span:first-child { font-size:11px; gap:6px; }
 .lm-boundary-top .icon { width:12px; height:12px; }
 .lm-hosted { font-size:8px; padding:5px 6px; }
 .lm-pipeline { grid-template-columns:1fr; padding:20px 0 18px; }
 .lm-lotse-brand { margin-bottom:12px; }
 .lm-lotse-brand>img { width:30px; height:30px; }
 .lm-source-document { min-height:0; padding:17px 18px 14px; }
 .lm-document-label { margin-bottom:14px; }
 .lm-data { gap:9px; }
 .lm-data dt { font-size:11px; }
 .lm-data dd { font-size:14px; }
 .lm-source-proof { font-size:9px; margin-top:14px; padding-top:11px; }
 .lm-inner-transfer { height:38px; width:28px; justify-self:center; }
 .lm-inner-transfer:before { left:50%; right:auto; top:0; width:1px; height:100%; }
 .lm-inner-transfer>.icon { transform:rotate(90deg); padding:0; }
 .lm-inner-transfer>span { left:calc(50% - 2px); top:0; animation:lm-down-flow 5s ease-in-out infinite; }
 .lm-model-area { padding:5px 0 0; }
 .lm-processor { min-height:0; padding:20px; display:grid; grid-template-columns:40px minmax(0,1fr); column-gap:12px; }
 .lm-model-symbol { width:31px; height:31px; grid-column:1; grid-row:1 / 3; margin:3px 0 0; }
 .lm-model-label { grid-column:2; font-size:9px; margin:0 0 5px; }
 .lm-processor h3 { grid-column:2; font-size:18px; margin:0 0 16px; }
 .lm-rules { grid-column:1 / -1; gap:9px; padding-top:14px; }
 .lm-rules>span { font-size:11px; }
 .lm-model-note { font-size:9px; margin-top:12px; }
 .lm-retained { padding:13px 12px; gap:9px; }
 .lm-retained strong { font-size:11px; }
 .lm-retained div>span { font-size:9px; line-height:1.8; }
 .lm-retained div>span>span { display:block; height:2px; visibility:hidden; }
 .lm-outside { gap:0 15px; padding:0; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); }
 .lm-outside-top { font-size:11px; }
 .lm-outside-status { font-size:8px; max-width:115px; align-self:center; }
 .lm-external-logos { gap:7px; margin-top:15px; }
 .lm-external-logos>span { width:31px; height:33px; border-radius:8px; }
 .lm-external-logos img { width:20px; height:20px; }
 .lm-approved-context { padding:15px 13px; min-height:173px; }
 .lm-context-label { font-size:8px; margin-bottom:16px; gap:5px; }
 .lm-context-label>.icon { width:11px; height:11px; flex-shrink:0; }
 .lm-approved-context .lm-data { gap:10px; }
 .lm-approved-context .lm-data>div { gap:4px 6px; }
 .lm-approved-context .lm-data dt { font-size:9px; }
 .lm-data code { font-size:9px; padding:3px 4px; }
 .lm-section-bottom { display:block; padding-top:22px; }
 .lm-section-bottom>p { max-width:100%; font-size:11px; }
 .lm-local-prompt { font-size:16px; margin:12px 0 18px; }
 .lm-local-answer { font-size:13px; }
 .lm-local-answer strong { font-size:22px; }
 .lm-local-citation { font-size:9px; }
 .lm-closed-route { min-height:141px; gap:10px; }
 .lm-closed-route strong { font-size:11px; }
 .lm-closed-route p { font-size:9px; }
 .lm-stage[data-route=local] .lm-processor,.lm-stage[data-route=local] .lm-source-document { min-height:0; }
}
@media(max-width:375px) {
 .lm-heading h2 { font-size:32px; }
 .lm-route-button { font-size:9px; padding:11px 6px; }
 .lm-boundary { padding:0 15px 15px; }
 .lm-boundary-top>span:first-child { font-size:10px; }
 .lm-outside { gap:0 12px; }
 .lm-external-logos { gap:5px; }
 .lm-external-logos>span { width:27px; height:30px; }
 .lm-external-logos img { width:18px; height:18px; }
 .lm-approved-context { padding:14px 10px; }
 .lm-data code { font-size:8px; }
}
@keyframes lm-down-flow { 0%,8%{top:0;opacity:0} 20%{opacity:1} 75%{opacity:1} 90%,100%{top:calc(100% - 4px);opacity:0} }
@media(prefers-reduced-motion:reduce) {
 .lm-inner-transfer>span,.lm-crossing-dot { animation:none; display:none; }
 .lm-route-button,.lm-external-logos>span { transition:none; }
}
