/* Physical AI stack in the homepage's light-gray portal style. */
.physical-ai-stack {
    --deep:#173552;
    --muted:#667b90;
    --panel:#e8eaed;
    --line:#e1e4e8;
    --teal:#286fae;
    display:block;
    padding:0;
    overflow:hidden;
    border:0;
    border-radius:0;
    color:var(--deep);
    background:transparent;
    box-shadow:none;
    font-family:Inter,"Noto Sans CJK SC","Microsoft YaHei",Arial,sans-serif;
}
.physical-ai-stack * { box-sizing:border-box; }
.physical-ai-stack .canvas {
    padding:clamp(10px,1.35vw,16px);
    border:0;
    border-radius:0;
    background:#eceef1;
    box-shadow:none;
}
.physical-ai-stack .layer {
    display:grid; grid-template-columns:90px minmax(0,1fr); gap:8px; align-items:center;
    margin:6px 0; padding:7px 9px; border:1px solid #dfe2e6; border-radius:6px;
    background:#fff;
}
.physical-ai-stack .layer-head { display:flex; min-width:0; min-height:32px; align-items:center; padding:0 3px; }
.physical-ai-stack .lh-title { color:#334c65; font-size:12px; font-weight:800; line-height:1.3; }
.physical-ai-stack .cards {
    display:grid; grid-template-columns:repeat(var(--cols),minmax(0,1fr)); gap:5px; min-width:0; padding:3px;
    border-radius:5px; background:transparent; box-shadow:none;
}
.physical-ai-stack .card {
    display:flex; min-width:0; min-height:43px; flex-direction:column; align-items:center; justify-content:center;
    padding:6px 5px; border:1px solid #d7dbe0; border-radius:5px; background:transparent;
    text-align:center; box-shadow:none; transition:border-color .15s,background .15s;
}
.physical-ai-stack .card:hover { border-color:#adb6c0; background:rgba(245,247,249,.55); }
.physical-ai-stack .card-title { display:block; color:#294660; font-size:11px; font-weight:800; line-height:1.25; overflow-wrap:anywhere; }
.physical-ai-stack .card-sub { display:block; margin-top:3px; color:#78899a; font-size:9px; line-height:1.25; overflow-wrap:anywhere; }
.physical-ai-stack .editable { border-radius:3px; cursor:text; }
.physical-ai-stack .editable:focus { outline:2px solid #8cb2d3; background:#f5f9fc; }
.physical-ai-stack .card[draggable=true] { cursor:grab; }
.physical-ai-stack .card.dragging { opacity:.45; }
.physical-ai-stack .loop { margin:7px 0; padding:6px; border:1px solid #ccd3dc; border-radius:6px; background:#dce1e7; }
.physical-ai-stack .loop-inner { display:grid; grid-template-columns:150px repeat(8,minmax(0,1fr)); gap:4px; align-items:stretch; }
.physical-ai-stack .loop-label { display:flex; min-height:50px; flex-direction:column; align-items:center; justify-content:center; border:1px solid #c5daf4; border-radius:5px; color:#244d78; background:linear-gradient(135deg,#eaf3ff,#d8e9ff); }
.physical-ai-stack .loop-label .a { font-size:15px; font-weight:800; }
.physical-ai-stack .loop-label .b { margin-top:3px; font-size:9px; }
.physical-ai-stack .loop-card { display:flex; min-height:50px; flex-direction:column; align-items:center; justify-content:center; padding:4px; border:1px solid #dfe3e8; border-radius:4px; background:#fff; text-align:center; }
.physical-ai-stack .loop-card .a { color:#31536f; font-size:10px; font-weight:800; overflow-wrap:anywhere; }
.physical-ai-stack .loop-card .b { margin-top:3px; color:#78899a; font-size:8px; }
.physical-ai-stack .data-groups { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; min-width:0; }
.physical-ai-stack .data-group { display:grid; min-width:0; grid-template-rows:auto minmax(0,1fr); gap:4px; padding:5px; border:1px solid #dfe2e6; border-radius:5px; background:rgba(255,255,255,.48); }
.physical-ai-stack .data-group-title { color:#4b697f; font-size:10px; font-weight:800; line-height:1.2; text-align:center; }
.physical-ai-stack .data-group .card { min-height:39px; }
@media(max-width:1050px) {
    .physical-ai-stack .layer { grid-template-columns:1fr; gap:5px; }
    .physical-ai-stack .layer-head { min-height:0; }
    .physical-ai-stack .cards { grid-template-columns:repeat(2,minmax(0,1fr)) !important; }
    .physical-ai-stack .loop-inner { grid-template-columns:repeat(4,minmax(0,1fr)); }
    .physical-ai-stack .loop-label { grid-column:1/-1; }
    .physical-ai-stack .data-groups { grid-template-columns:1fr; }
}
@media(max-width:650px) {
    .physical-ai-stack .canvas { padding:8px; }
    .physical-ai-stack .cards { grid-template-columns:1fr !important; }
    .physical-ai-stack .card { min-height:36px; }
    .physical-ai-stack .loop-inner { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .physical-ai-stack .loop-label { grid-column:1/-1; }
}
