/* One assignment action area for product and environmental tools. */
[data-puxin-actions-hidden]{display:none!important}
#puxinToolActions{box-sizing:border-box;position:relative;z-index:4;flex:none;grid-column:1/-1;width:calc(100% - 32px);max-width:1440px;margin:16px auto;padding:18px 20px;background:#fff;border:1px solid #e1e7ee;border-radius:14px;color:#263746;box-shadow:0 3px 16px #18324b08;font:14px/1.6 'Microsoft YaHei','PingFang SC',sans-serif;text-align:left}
#puxinToolActions *,.pta-modal *{box-sizing:border-box}
body:has(.puxin-brandchip--fixed,.puxin-pagebar--floating) #puxinToolActions{margin-top:76px}
#puxinToolActions h2{font:700 16px/1.5 'Microsoft YaHei',sans-serif;color:#174d84;margin:0 0 18px;padding:0;border:0;letter-spacing:0;background:none}
#puxinToolActions .pta-fields{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:0 0 13px}
#puxinToolActions label{display:block;font-size:13px;font-weight:700;color:#485969;margin:0}
#puxinToolActions label small{font-size:12px;font-weight:400;color:#718295}
#puxinToolActions input{display:block;width:100%;height:43px;padding:9px 12px;margin:5px 0 0;border:1px solid #d8e2ec;border-radius:10px;background:#fff;color:#263746;font:14px/1.5 'Microsoft YaHei',sans-serif;box-shadow:none}
#puxinToolActions .pta-buttons{display:flex;align-items:center;flex-wrap:wrap;gap:9px}
#puxinToolActions button,.pta-modal button{font:700 13px/1.5 'Microsoft YaHei',sans-serif;min-height:40px;padding:10px 15px;border:1px solid #d8e2ec;border-radius:10px;background:#fff;color:#485969;cursor:pointer;letter-spacing:0;box-shadow:none;white-space:normal}
#puxinToolActions button.pta-primary,.pta-modal button.pta-primary{color:#fff;background:#1d5ca8;border-color:#1d5ca8}
#puxinToolActions button:hover,.pta-modal button:hover{filter:brightness(.95)}
#puxinToolActions button:disabled,.pta-modal button:disabled{cursor:wait;opacity:.55}
#puxinToolActions :is(input,button):focus-visible,.pta-modal :is(input,textarea,select,button):focus-visible{outline:3px solid #74b5f2;outline-offset:2px}
#puxinToolActions .pta-help,#puxinToolActions .pta-status{font-size:12px;line-height:1.6;color:#718295;margin:7px 0 0}
#puxinToolActions .pta-status:empty{display:none}
.pta-modal{position:fixed;inset:0;z-index:100010;background:#10233899;padding:24px;display:flex;align-items:center;justify-content:center;color:#263746;font:14px/1.6 'Microsoft YaHei',sans-serif}
.pta-dialog{background:#fff;border-radius:16px;width:min(1120px,100%);max-height:calc(100dvh - 48px);overflow:auto;box-shadow:0 20px 70px #0004}
.pta-modal-header,.pta-modal-footer{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:18px 22px;border-bottom:1px solid #e1e7ee}
.pta-modal-footer{border-top:1px solid #e1e7ee;border-bottom:0;flex-wrap:wrap}
.pta-modal h2{margin:0;font-size:20px;color:#174d84}.pta-modal p{margin:5px 0;font-size:13px;color:#718295}
.pta-editor{padding:20px 22px;display:grid;grid-template-columns:1fr 1fr;gap:24px}
.pta-form label{display:block;margin:0 0 12px;font-size:13px;font-weight:700}
.pta-form :is(input,textarea,select){display:block;width:100%;margin:5px 0 0;padding:9px;border:1px solid #d8e2ec;border-radius:7px;background:#fff;color:#263746;font:14px/1.5 'Microsoft YaHei',sans-serif}
.pta-form input[type=file]{font-size:12px;padding:6px}.pta-form textarea{min-height:74px;resize:vertical}
.pta-preview{background:#edf2f6;min-height:300px;padding:14px;display:flex;align-items:flex-start;justify-content:center}.pta-preview img{width:100%;height:auto;object-fit:contain}
.pta-dialog-status{flex:1;min-width:200px;font-size:13px;color:#526c81}
#puxinToolActions .pta-legacy-note{margin-top:10px;padding:9px 12px;border:1px solid #e0d3b8;border-radius:8px;background:#fffaf0;color:#66583c;font-size:12px;line-height:1.6}
#puxinToolActions .pta-legacy-note button{margin:4px 0 0 10px;padding:2px 0;min-height:24px;border:0;border-radius:0;background:transparent;color:#1558a4;text-decoration:underline;font-size:12px}
#puxinToolActions .pta-legacy-note[hidden],#puxinToolActions .pta-legacy-note button[hidden]{display:none!important}
.pta-record-preview{padding:20px;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:18px}.pta-record-preview figure{margin:0}.pta-record-preview img{width:100%;height:auto;border:1px solid #d8e2ec}
@media(max-width:700px){#puxinToolActions{width:calc(100% - 20px);margin:10px auto;padding:16px}#puxinToolActions .pta-fields{grid-template-columns:1fr;gap:10px}#puxinToolActions .pta-buttons{display:grid;grid-template-columns:1fr 1fr;gap:8px}#puxinToolActions button{padding:9px 8px;font-size:12px}.pta-modal{padding:8px}.pta-dialog{max-height:calc(100dvh - 16px)}.pta-editor{grid-template-columns:1fr;padding:14px}.pta-modal-header,.pta-modal-footer{padding:14px}.pta-modal h2{font-size:17px}}
@media print{#puxinToolActions,.pta-modal{display:none!important}}
@media(max-width:700px){body.pf-body #puxinToolActions{margin-top:4px}}
/* The older environment modeller used an absolute, viewport-sized editor.
   Put it in normal flow so the assignment panel does not cover its controls. */
html[data-puxin-page-id="lab-space-massing"],html[data-puxin-page-id="lab-space-massing"] body{height:auto;min-height:100%;overflow-x:hidden;overflow-y:auto}
html[data-puxin-page-id="lab-space-massing"] .topbar{height:auto;min-height:52px;flex-wrap:wrap;gap:8px;padding:8px 14px}
html[data-puxin-page-id="lab-space-massing"] .verstrip{position:relative;top:auto;left:auto;right:auto;height:auto;min-height:42px;flex-wrap:wrap}
html[data-puxin-page-id="lab-space-massing"] .wrap{position:relative;inset:auto;min-height:620px;height:calc(100vh - 120px);width:100%}
html[data-puxin-page-id="lab-space-massing"] .tacts{flex-wrap:wrap}
@media(max-width:700px){
html[data-puxin-page-id="lab-space-massing"] .topbar{padding:8px 10px;gap:6px}
html[data-puxin-page-id="lab-space-massing"] .topbar .brand{font-size:12px;white-space:normal;flex-wrap:wrap}
html[data-puxin-page-id="lab-space-massing"] .topbar .grow{display:none}
html[data-puxin-page-id="lab-space-massing"] .sitetabs{max-width:100%;overflow-x:auto;flex-wrap:wrap;border-radius:10px}
html[data-puxin-page-id="lab-space-massing"] .sitetab{padding:5px 10px}
html[data-puxin-page-id="lab-space-massing"] .stu{max-width:100%;flex-wrap:wrap}
html[data-puxin-page-id="lab-space-massing"] .wrap{display:flex;flex-direction:column;height:auto;min-height:0}
html[data-puxin-page-id="lab-space-massing"] .stage{order:-1;min-height:430px;height:430px;flex:0 0 430px;width:100%}
html[data-puxin-page-id="lab-space-massing"] .side,html[data-puxin-page-id="lab-space-massing"] .side.right{width:100%;flex:0 0 auto;overflow:visible;border:0}
}

/* 紧凑版（20261021）：一行排下标题、姓名学号、四个按钮和状态；说明收进「?」里，点开才显示 */
#puxinToolActions{display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px;margin:10px auto;padding:8px 12px;border-radius:12px;font-size:13px;line-height:1.5}
body:has(.puxin-brandchip--fixed,.puxin-pagebar--floating) #puxinToolActions{margin-top:70px}
#puxinToolActions h2{flex:none;margin:0;font-size:13px;line-height:32px;white-space:nowrap}
#puxinToolActions .pta-fields{display:flex;flex:0 1 auto;gap:6px;margin:0}
#puxinToolActions .pta-fields label{display:flex;align-items:center;margin:0}
#puxinToolActions .pta-cap{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
#puxinToolActions input{height:32px;margin:0;padding:4px 10px;border-radius:8px;font-size:13px}
#puxinToolActions #ptaName{width:138px}#puxinToolActions #ptaSid{width:210px}
#puxinToolActions .pta-buttons{flex:0 1 auto;gap:6px}
#puxinToolActions button{min-height:32px;padding:5px 12px;border-radius:8px;font-size:12.5px;line-height:1.4;white-space:nowrap}
#puxinToolActions .pta-tip{position:relative;flex:none}
#puxinToolActions .pta-tip>summary{list-style:none;display:grid;place-items:center;width:24px;height:24px;border:1px solid #c9d3de;border-radius:50%;color:#5d6f82;font:700 12px/1 'Microsoft YaHei',sans-serif;cursor:pointer;user-select:none}
#puxinToolActions .pta-tip>summary::-webkit-details-marker{display:none}
#puxinToolActions .pta-tip[open]>summary{background:#eef4fb;border-color:#9fbbdb;color:#174d84}
#puxinToolActions .pta-tip .pta-help{position:absolute;z-index:20;top:30px;right:0;width:min(340px,80vw);margin:0;padding:10px 12px;border:1px solid #d8e2ec;border-radius:10px;background:#fff;box-shadow:0 8px 24px #18324b1f;color:#4f5f70;font-size:12px;line-height:1.65}
#puxinToolActions .pta-status{flex:1 1 180px;min-width:0;margin:0;font-size:12px;line-height:32px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#puxinToolActions .pta-legacy-note,#puxinToolActions .pta-case-link{flex:1 1 100%;margin-top:0}
@media(max-width:900px){#puxinToolActions .pta-fields{flex:1 1 100%}#puxinToolActions .pta-fields label{flex:1 1 0}#puxinToolActions #ptaName,#puxinToolActions #ptaSid{width:100%}}
@media(max-width:700px){#puxinToolActions{width:calc(100% - 20px);margin:8px auto;padding:8px 10px;gap:6px}#puxinToolActions h2{line-height:1.6}#puxinToolActions .pta-buttons{display:grid;grid-template-columns:1fr 1fr auto;flex:1 1 100%;gap:6px}#puxinToolActions .pta-buttons button{padding:5px 6px;font-size:12px;white-space:nowrap}#puxinToolActions .pta-sub{display:none}#puxinToolActions .pta-tip{grid-row:1/3;grid-column:3;align-self:center}#puxinToolActions .pta-status{flex-basis:100%;line-height:1.5;white-space:normal}}

/* 返回本专业工具箱（20261021） */
#puxinToolActions .pta-back{flex:none;margin-left:auto;display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 12px;border:1px solid #d8e2ec;border-radius:8px;background:#f6f8fb;color:#33485c;font:700 12.5px/1 'Microsoft YaHei',sans-serif;text-decoration:none;white-space:nowrap}
#puxinToolActions .pta-back:hover{background:#eef3f8;color:#174d84}
#puxinToolActions .pta-back:focus-visible{outline:3px solid #74b5f2;outline-offset:2px}
@media(max-width:700px){#puxinToolActions .pta-back{order:-1;margin-left:auto;height:28px;padding:0 10px;font-size:12px}#puxinToolActions h2{flex:1 1 auto;order:-2}}

/* Touch controls and large-draft rescue, 2026-10-28. */
.puxin-draft-status{position:fixed;z-index:100020;left:12px;right:12px;bottom:max(12px,env(safe-area-inset-bottom));padding:12px;background:#fff7e4;color:#503b13;border:1px solid #c59438;border-radius:10px;display:flex;flex-wrap:wrap;gap:10px;font:14px/1.6 sans-serif;box-shadow:0 4px 24px #0003}
.puxin-draft-status[hidden]{display:none!important}.puxin-draft-status button{min-height:44px;padding:8px 12px;border:1px solid #bd9b60;border-radius:6px;background:white;color:#503b13}
@media(pointer:coarse){#puxinToolActions button,#puxinToolActions input,#puxinToolActions .pta-back,.pta-modal button{min-height:44px}#puxinToolActions .pta-tip>summary{width:40px;height:40px}.pta-modal input,.pta-modal textarea,.pta-modal select{font-size:16px}}
