:root{font-family:Inter,Segoe UI,system-ui,-apple-system,sans-serif;color:#1c2f43;background:#edf2f7;font-synthesis:none}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-size:13px}button,input{font:inherit}button{cursor:pointer}button:disabled{opacity:.55;cursor:not-allowed}
.app{margin:0 auto;max-width:1040px;min-height:100vh}.topbar{background:linear-gradient(125deg,#123654,#154d7a);padding:19px 20px 14px;color:white;box-shadow:0 5px 18px #183f6212}
.brand-row{display:flex;gap:12px;align-items:center}.brand-mark{background:#eaf5ff;color:#145387;width:42px;height:42px;display:grid;place-items:center;font-weight:800;border-radius:12px;letter-spacing:.4px}.brand-copy{flex:1;min-width:0}.brand-copy h1{font-size:18px;margin:0 0 3px;letter-spacing:-.35px}.brand-copy p{font-size:11px;color:#c9ddeb;margin:0}.square-btn{border:1px solid #ffffff30;color:white;background:#ffffff12;border-radius:9px;width:33px;height:33px;font-size:19px}
.context-row{margin-top:16px;display:flex;justify-content:space-between;gap:9px;flex-wrap:wrap;align-items:center;font-size:11px;color:#e0effb}.connection{display:flex;align-items:center;gap:7px}.connection i{width:8px;height:8px;border-radius:50%;display:inline-block;background:#e8ad58}.connection i.good{background:#65ddae}.connection i.bad{background:#ff8a84}.project-label{white-space:nowrap;max-width:160px;overflow:hidden;text-overflow:ellipsis;background:#ffffff16;padding:5px 8px;border-radius:7px}
main{padding:14px;display:grid;gap:12px}.actionstrip{display:flex;gap:8px}.actionstrip .primary{flex:1}.btn{padding:10px 13px;border-radius:9px;border:1px solid transparent;font-size:12px;font-weight:650;transition:background .1s ease}.btn.primary{background:#0b6ca9;color:#fff}.btn.primary:hover{background:#095b92}.btn.secondary{color:#145681;background:white;border-color:#cddae5}.btn.secondary:hover{background:#f4f9fd}.btn.plain{color:#526678;background:transparent;border:1px solid #dbe2e9}.text-btn{border:0;background:transparent;color:#126aa2;font-size:11px;font-weight:600;padding:5px}.text-btn:hover{text-decoration:underline}
.notice{background:#eaf3fc;border:1px solid #cbdff1;color:#215b81;border-radius:9px;padding:10px 12px;line-height:1.5;font-size:12px}.notice.warn{background:#fff7e9;border-color:#f6ddaa;color:#8b5614}.notice.error{background:#fff0ee;border-color:#f2c0be;color:#9b3832}.notice.success{background:#ecf8ef;border-color:#c4e8cf;color:#28744e}
.stats-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.stat{padding:11px 7px;background:#fff;border:1px solid #dce5ee;border-radius:10px;text-align:center}.stat strong{font-size:19px;color:#144a70;display:block;line-height:1.2;font-weight:750}.stat span{font-size:10px;color:#6f8193;display:block;margin-top:4px}
.element-card,.documents-card,.viewer-card,.settings-panel{background:white;border:1px solid #d9e3ec;border-radius:12px;padding:14px;box-shadow:0 2px 10px #17365408;min-width:0}.section-head{display:flex;align-items:center;justify-content:space-between;gap:9px;margin-bottom:12px}.section-head h2{font-size:13px;letter-spacing:.1px;margin:0;color:#1c3b56;font-weight:750}.type-badge,.doc-type{font-size:10px;font-weight:700;color:#155f91;background:#e9f3fa;border-radius:6px;padding:5px 7px}.element-card h3{font-size:15px;margin:0 0 11px;color:#1c344d}.bimline{background:#f2f6fa;border:1px solid #e6ecf3;border-radius:8px;padding:10px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.bimline>span{font-size:11px;color:#71859a}.bimline strong{font-size:11px;color:#1c5078;flex:1;overflow-wrap:anywhere;min-width:110px}.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 14px;margin-top:13px}.detail-grid small{display:block;color:#8090a0;font-size:10px;margin-bottom:4px}.detail-grid b{display:block;font-size:12px;font-weight:650;overflow-wrap:anywhere}.muted-row{font-size:11px;color:#718394;border-top:1px solid #e7edf3;padding-top:9px;margin-top:13px}.muted-xs{font-size:11px;color:#8494a3}.pill{background:#ecf0f4;color:#65798b;font-size:10px;border-radius:99px;padding:4px 9px;font-weight:650}.pill.good{background:#e8f6ee;color:#167c4c}.pill.warn{background:#fff3de;color:#95651b}
.tabs{display:flex;gap:5px;border-bottom:1px solid #e5eaf0;padding-bottom:9px}.tab{background:#f4f6fa;border:0;color:#718498;border-radius:7px;padding:8px 13px;font-size:11px;font-weight:650}.tab.active{background:#dceef9;color:#0e649a}.searchwrap{margin:10px 0;display:flex;align-items:center;gap:8px;border:1px solid #dbe4ec;background:#fcfdfe;border-radius:9px;padding:0 10px}.searchwrap span{color:#8395a6;font-size:22px}.searchwrap input{border:0;outline:0;background:transparent;padding:10px 0;width:100%;font-size:12px}.file-list{max-height:270px;overflow:auto}.file-item{width:100%;display:flex;align-items:center;gap:10px;padding:10px 7px;margin-top:5px;background:white;border:1px solid #e4ebf0;border-radius:9px;text-align:left}.file-item.active{background:#eef8ff;border-color:#98c7e7}.file-icon{border-radius:9px;width:34px;height:36px;display:grid;place-items:center;flex:none;font-weight:800;font-size:10px;background:#edf4ff;color:#386ba1}.file-icon.pdf{background:#fff0ef;color:#b94444}.file-meta{flex:1;min-width:0}.file-meta strong{font-size:11px;font-weight:650;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-meta small{display:block;font-size:10px;color:#8090a0;padding-top:4px}.file-item .chev{color:#879bad;font-size:16px}.empty{padding:20px 12px;text-align:center;color:#8b9aaa;line-height:1.5;font-size:12px}
.image-stage,.pdf-stage{position:relative;border:1px dashed #d4e1eb;border-radius:9px;background:#f5f8fb;overflow:hidden;display:flex;align-items:center;justify-content:center}.image-stage{min-height:215px;height:235px}.image-stage img{width:100%;height:100%;object-fit:contain;background:#111a23}.media-empty{text-align:center;color:#8294a4;font-size:11px;padding:20px;display:flex;flex-direction:column;align-items:center;gap:10px}.media-illustration{border-radius:13px;background:#e8eff6;color:#6f96b4;padding:13px 18px;font-size:29px}.thumbnails{display:flex;gap:7px;overflow-x:auto;padding-top:10px}.thumb{height:58px;width:72px;flex:none;border:2px solid transparent;border-radius:7px;overflow:hidden;background:#e7edf1;padding:0}.thumb.active{border-color:#0d78bf}.thumb img{width:100%;height:100%;object-fit:cover}.photo-arrows{position:absolute;left:8px;right:8px;bottom:8px;display:flex;justify-content:space-between;pointer-events:none}.photo-arrows button{pointer-events:auto;background:#0b1a21a8;color:white;border:0;border-radius:7px;padding:7px 11px}.pdf-stage{height:430px;background:#f8fafc}.pdf-stage iframe{height:100%;width:100%;border:0;background:white}.selected-filename{font-size:11px;font-weight:650;color:#576d7f;overflow-wrap:anywhere;margin-bottom:10px}.footer-note{margin:9px 0 0}.tiny,.subtext{font-size:11px;line-height:1.55;color:#738699}.bottom-actions{display:flex;justify-content:space-between;align-items:center;gap:9px}.foot-status{text-align:center;color:#8e9bab;font-size:10px;padding:4px 0 10px}.field-label{display:block;font-weight:650;color:#496175;margin:12px 0 7px;font-size:11px}.settings-panel input{width:100%;border:1px solid #ccd9e5;border-radius:8px;padding:10px;font-size:11px}.settings-panel code{overflow-wrap:anywhere}.btn-row{display:flex;gap:8px;margin-top:10px}[hidden]{display:none!important}
@media(min-width:760px){.app{max-width:1250px}main{grid-template-columns:repeat(2,minmax(0,1fr))}.actionstrip,.notice,.stats-row,.element-card,.documents-card,.bottom-actions,.foot-status,.settings-panel{grid-column:1/-1}.viewer-card{min-height:500px}.image-stage{height:350px}.pdf-stage{height:455px}}
@media(max-width:360px){.stat strong{font-size:16px}.element-card,.documents-card,.viewer-card{padding:11px}main{padding:9px}.topbar{padding:14px}.btn{font-size:11px;padding:10px 8px}}

/* One-column test: CTA and status text */
.bottom-actions{flex-wrap:wrap}.bottom-actions .btn.primary{white-space:normal;text-align:center;flex:1}.bottom-actions .btn.secondary{flex:0 0 auto}

/* Embedded PDF.js viewer, no native PDF iframe. */
.pdf-stage{display:block;position:relative;overflow:hidden;background:#eef3f7;height:465px}
.pdf-loading,.pdf-viewer-error{padding:25px 15px;color:#556779;text-align:center;font-size:12px}
.pdf-viewer-error{color:#a12e27}
.pdf-toolbar{height:38px;display:flex;align-items:center;gap:5px;padding:5px 7px;border-bottom:1px solid #ccd9e3;background:#f9fcff;box-sizing:border-box}
.pdf-control{border:1px solid #cfdae4;background:white;border-radius:5px;min-width:29px;height:27px;color:#244866;font-size:15px;cursor:pointer}
.pdf-control:disabled{opacity:.35;cursor:default}
.pdf-page-indicator{font-size:11px;white-space:nowrap;color:#39556d}
.pdf-controls-spacer{flex:1}
.pdf-scroll{height:calc(100% - 38px);width:100%;min-height:0;overflow:auto;display:flex;align-items:flex-start;justify-content:flex-start;padding:8px;box-sizing:border-box;background:#e5ebef}
.pdf-canvas{display:block;background:white;box-shadow:0 2px 9px #0002;flex:none;max-width:none}
.pdf-preview-image{max-width:100%;height:auto;margin:0 auto;box-shadow:0 2px 9px #0002;flex:none}
.pdf-fallback-label{background:#fff3d5;color:#805e19;padding:7px;font-size:10px;line-height:1.4}
.pdf-fallback-label + .pdf-scroll{height:calc(100% - 48px)}

/* Dashboard V3 - tabs per QC/NT/Images */
.three-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;padding-bottom:10px}
.three-tabs .tab{display:flex;align-items:center;justify-content:center;gap:6px;min-width:0;flex-wrap:wrap;white-space:normal;line-height:1.3;text-align:center;padding:11px 6px;min-height:48px}
.three-tabs .tab small{font-size:10px;font-weight:800;background:#ffffffcf;color:#2c617e;border-radius:10px;padding:2px 6px;min-width:20px}
.three-tabs .tab.active{background:#0d6da7;color:white;box-shadow:0 2px 7px #0d6da721}
.three-tabs .tab.active small{background:#e5f3fb;color:#125986}
.three-tabs .tab:focus-visible{outline:3px solid #70c6ff;outline-offset:2px}
.tab-desc{margin:10px 0 2px;color:#597489;font-size:11px;line-height:1.55}
.empty-state{padding:22px 12px;text-align:center;background:#f6f9fc;border:1px dashed #cfdae4;border-radius:10px;color:#587085}
.empty-state strong{display:block;font-weight:800;color:#28465f;font-size:13px;margin-bottom:5px}
.empty-state p{font-size:11px;line-height:1.5;margin:0}
@media (min-width:760px){#pdfViewerCard,#imageViewerCard{grid-column:1/-1}.pdf-stage{height:520px}.image-stage{height:380px}}
@media (max-width:400px){.three-tabs .tab{font-size:10px;gap:3px}}


/* V3.1: Compact identity/status, larger readable text, content-first layout. */
html,body{font-size:14px}
.app{max-width:1100px}
.topbar{padding:11px 15px 9px;box-shadow:none}
.brand-row{gap:10px}
.brand-mark{width:32px;height:32px;border-radius:9px;font-size:12px}
.brand-copy h1{font-size:17px;line-height:1.2;margin:0 0 2px}
.brand-copy p{font-size:12px;line-height:1.25}
.square-btn{width:31px;height:31px}
.context-row{margin-top:6px;font-size:12px}
.project-label{padding:2px 6px}
main{display:flex;flex-direction:column;gap:8px;padding:10px}
.element-card,.documents-card,.viewer-card,.settings-panel{padding:12px;border-radius:10px}
.element-card{order:0}
.actionstrip{order:1;gap:7px}
.notice{order:2;padding:7px 10px;border-radius:7px;font-size:13px;line-height:1.35}
.documents-card{order:3;padding:12px}
.pdf-card,#imageViewerCard{order:4;padding:12px}
.diagnostic-panel{order:5}
.bottom-actions{order:6}
.foot-status{order:7}
.settings-panel{order:-1}
.compact-element{padding:10px 12px}
.element-brief{display:flex;align-items:center;justify-content:space-between;gap:10px}
.element-name-wrap{flex:1;min-width:0}
.eyebrow{display:block;color:#788c9e;font-size:10px;letter-spacing:.5px;font-weight:750;margin:0 0 2px}
.compact-element h3{font-size:16px;line-height:1.25;margin:0;color:#183a55;overflow-wrap:anywhere}
.type-badge{flex:none;padding:3px 7px;font-size:10px}
.bimline{margin-top:7px;padding:6px 8px;min-height:30px;gap:6px;flex-wrap:nowrap}
.bimline>span{font-size:11px;flex:none}
.bimline strong{font-size:13px;min-width:0;font-weight:700;line-height:1.35}
.text-btn{font-size:12px;flex:none;padding:2px 4px}
.element-details{border-top:1px solid #e8eef4;margin-top:7px}
.element-details summary{cursor:pointer;display:flex;align-items:center;justify-content:space-between;color:#2b698e;font-size:12px;font-weight:700;list-style:none;padding:5px 1px 0}
.element-details summary::-webkit-details-marker{display:none}
.element-details summary span{transition:transform .2s}
.element-details[open] summary span{transform:rotate(180deg)}
.detail-grid{margin-top:8px;gap:8px 12px}
.detail-grid small{font-size:11px;margin-bottom:2px}
.detail-grid b{font-size:13px}
.muted-row{font-size:12px;padding-top:7px;margin-top:8px}
.actionstrip .btn{min-height:34px;padding:7px 9px;font-size:13px}
.actionstrip .primary{flex:1}
.btn{font-size:13px}
.section-head{margin-bottom:8px}
.section-head h2{font-size:16px;line-height:1.3}
.pill{font-size:11px}
.three-tabs{gap:7px;padding-bottom:10px}
.three-tabs .tab{font-size:14px;min-height:51px;padding:9px 6px;font-weight:750;line-height:1.2}
.three-tabs .tab small{font-size:12px;min-width:22px}
.tab-desc{font-size:13px;margin:8px 0 3px}
.searchwrap{margin:8px 0;padding:0 10px}
.searchwrap input{font-size:14px;padding:9px 0}
.file-list{max-height:200px}
.file-item{gap:9px;padding:10px 9px;margin-top:5px}
.file-meta strong{font-size:13px;line-height:1.35}
.file-meta small{font-size:12px;line-height:1.3}
.file-icon{font-size:11px;width:38px;height:38px}
.selected-filename{font-size:13px}
.doc-type{font-size:12px}
.pdf-stage{height:min(64vh,640px);min-height:440px}
.image-stage{height:min(60vh,580px);min-height:340px}
.media-empty,.empty,.empty-state p{font-size:13px}
.empty-state strong{font-size:15px}
.tiny,.subtext,.footer-note{font-size:12px}
.pdf-page-indicator,.pdf-loading,.pdf-viewer-error{font-size:13px}
.pdf-control{height:31px;min-width:31px}
.pdf-toolbar{height:42px}
.pdf-scroll{height:calc(100% - 42px)}
.diagnostic-panel{background:#f5f8fb;border:1px solid #dce6ef;border-radius:9px}
.diagnostic-panel summary{padding:9px 11px;font-size:12px;font-weight:700;color:#47667d;cursor:pointer;display:flex;align-items:center;justify-content:space-between}
.diagnostic-panel .diagnostic-cue{font-size:11px;font-weight:500}
.diagnostic-panel[open] .stats-row{padding:0 9px 9px}
.stat{padding:8px 4px}
.stat strong{font-size:18px}
.stat span{font-size:11px}
.foot-status{font-size:11px}
.bottom-actions .btn{min-height:36px}
/* A Trimble embedded panel is often 350–700px wide; keep document view full width. */
@media(min-width:760px){
  .app{max-width:1250px}
  main{display:flex;flex-direction:column}
  .viewer-card{min-height:0}
  .pdf-stage{height:min(70vh,720px);min-height:500px}
  .image-stage{height:min(66vh,660px);min-height:410px}
}
@media(max-width:440px){
  main{padding:7px;gap:7px}
  .topbar{padding:10px 12px 8px}
  .brand-copy h1{font-size:16px}
  .brand-copy p{font-size:11px}
  .element-card,.documents-card,.viewer-card{padding:9px}
  .bimline{flex-wrap:wrap}
  .bimline strong{flex-basis:calc(100% - 60px);font-size:12px}
  .bimline .text-btn{margin-left:auto}
  .three-tabs .tab{font-size:12px;min-height:52px;padding:7px 4px}
  .three-tabs .tab small{font-size:11px}
  .pdf-stage{height:470px;min-height:380px}
  .image-stage{height:340px;min-height:270px}
}

/* V3.2: both test controls remain readable inside the narrow Trimble sidebar. */
.bottom-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.45fr);gap:7px}
.bottom-actions .btn{font-size:12px;min-height:43px;line-height:1.35;white-space:normal;min-width:0;padding:9px 8px}
.bottom-actions .btn.secondary{flex:initial}
@media(max-width:460px){.bottom-actions{grid-template-columns:1fr}.bottom-actions .btn{min-height:39px;font-size:13px}}

/* V3.3: one compact volume result; keep the QC/NT/photo tabs as the main content. */
.volume-strip{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:7px;padding:8px 10px;border:1px solid #c9e1ef;background:#f0f8fc;border-radius:9px;min-width:0}
.volume-caption{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
.volume-caption strong{font-size:13px;color:#1b4a68;line-height:1.2}
.volume-caption small{font-size:11px;color:#697f92;line-height:1.35}
.volume-value{color:#0e668f;font-size:20px;font-weight:800;white-space:nowrap;line-height:1.25;letter-spacing:-.3px}
.volume-value.is-missing{font-size:12px;color:#708296;white-space:normal;text-align:right;max-width:45%}
@media(max-width:380px){.volume-strip{padding:7px 8px}.volume-value{font-size:18px}.volume-caption strong{font-size:12px}}


/* V3.4: document / progress workspace switching */
.workspace-switch{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(0,1fr);gap:6px}
.workspace-button{border:1px solid #cfdde7;background:#fff;border-radius:9px;padding:12px 8px;color:#335b77;font-size:13px;font-weight:750;text-align:center;min-height:43px}
.workspace-button.active{border-color:#0874b3;background:#0d6da7;color:white}
.workspace-pane{display:flex;flex-direction:column;gap:9px;min-width:0}
.p4d-card{background:#fff;border:1px solid #d9e3ec;border-radius:11px;padding:14px;min-width:0}
.p4d-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:9px;margin-bottom:8px}
.p4d-heading h2{margin:0;color:#173c59;font-size:17px}
.p4d-badge{background:#eaf5ff;color:#1f5e8f;font-size:11px;border-radius:8px;padding:6px 8px;font-weight:700;white-space:nowrap}
.p4d-help{color:#647b8f;font-size:12px;line-height:1.55;margin:6px 0 10px}
.p4d-actions{display:flex;gap:7px;flex-wrap:wrap;margin:9px 0}.p4d-actions .btn{min-height:35px;font-size:12px}
.p4d-upload{cursor:pointer;display:inline-flex;align-items:center;justify-content:center}
.p4d-notice{padding:9px 10px;border-radius:8px;background:#eef5fc;color:#365a75;font-size:12px;line-height:1.45}
.p4d-notice.success{background:#ecf8ee;color:#267448}.p4d-notice.warn{background:#fff7e5;color:#915c0d}.p4d-notice.error{background:#fff1ef;color:#a53a36}
.p4d-source{font-size:11px;color:#607d93;overflow-wrap:anywhere;margin-top:6px}
.p4d-current{padding:14px 9px;border-radius:10px;background:#f1f6fb;text-align:center;display:flex;gap:4px;align-items:center;flex-direction:column;color:#54728a}
.p4d-current span:first-child{font-size:10px;font-weight:750;letter-spacing:.5px}.p4d-current strong{font-size:22px;color:#143c59;font-weight:800}
#p4dRange{width:100%;accent-color:#0d6da7;margin:19px 0 12px;cursor:pointer}
.p4d-row{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}
.p4d-row label{display:flex;align-items:center;gap:8px;font-size:12px;color:#45617b;font-weight:600}
.p4d-row input,.p4d-row select{font-size:13px;padding:7px;border:1px solid #d4e1eb;border-radius:7px;max-width:150px;background:white;color:#183c55}
.p4d-controls{display:grid;grid-template-columns:1fr 1.3fr 1fr;gap:6px;margin:12px 0}.p4d-controls button{padding:9px 4px;font-size:12px}
.p4d-legend{display:flex;gap:7px 13px;flex-wrap:wrap;margin-top:12px}.p4d-legend span{display:flex;align-items:center;gap:5px;font-size:11px;color:#5d7284}.p4d-legend i{width:12px;height:12px;border-radius:4px;display:inline-block}
.p4d-checkbox{display:flex;align-items:flex-start;gap:8px;color:#4d667d;font-size:12px;margin:12px 0 9px;line-height:1.45}.p4d-checkbox input{margin-top:1px}
.p4d-tasks{max-height:390px;overflow-y:auto;display:flex;flex-direction:column;gap:7px}.p4d-task{display:flex;gap:9px;border:1px solid #e2ebf2;background:#fafcfe;border-radius:8px;padding:8px 9px}.p4d-task-color{width:5px;border-radius:5px;flex:none}.p4d-task-body{flex:1;min-width:0}.p4d-task-title{font-size:13px;font-weight:750;color:#244863}.p4d-task-id{font-size:11px;color:#637d92;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}.p4d-task-detail{font-size:12px;color:#4d6881;margin-top:4px}.p4d-milestone{color:#7446b3}.p4d-empty{padding:20px;color:#8095a7;text-align:center}
@media(max-width:420px){.workspace-button{font-size:11px;padding:10px 5px}.p4d-heading h2{font-size:16px}.p4d-actions .btn{flex:1 1 45%}.p4d-badge{font-size:9px}.p4d-current strong{font-size:18px}}

/* V3.6 – Interactive daily Gantt in the slim 3D Viewer extension panel */
.p4d-gantt-wrap{margin:12px 0 13px;border:1px solid #d5e4f1;border-radius:10px;background:#fff;overflow:hidden}
.p4d-gantt-heading{display:flex;gap:8px;justify-content:space-between;align-items:center;padding:10px 10px 8px;flex-wrap:wrap;background:#f4f9fd}
.p4d-gantt-heading h3{font-size:13px;margin:0;color:#1d4d6a}
.p4d-gantt-nav{display:flex;align-items:center;gap:5px;font-size:11px;color:#58758e;font-weight:700}
.p4d-gantt-nav .btn{padding:5px 7px;min-height:27px;font-size:10px}
.p4d-gantt-scroll{overflow:auto;max-height:400px;max-width:100%;border-top:1px solid #dce8f1;scrollbar-color:#b4c8d9 transparent}
.p4d-gantt-grid{display:grid;grid-auto-rows:27px;width:max-content;min-width:100%;align-items:stretch;gap:1px;background:#e7edf3}
.p4d-gantt-grid button{cursor:pointer;font-family:inherit}
.p4d-gantt-sticky{position:sticky;left:0;z-index:2;background:#f8fbfe;display:flex;align-items:center;min-width:0;padding:0 7px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.p4d-gantt-head{z-index:4;font-size:11px;font-weight:800;color:#315d7d}
.p4d-gantt-label{font-size:11px;color:#3a627f;border:0;text-align:left;font-weight:650}
.p4d-gantt-group{background:#e7f3fd;color:#215c88;font-weight:800}
.p4d-gantt-sub{font-size:10px;font-weight:500;padding-left:15px}
.p4d-gantt-day{border:0;background:#f3f8fc;font-size:10px;font-weight:700;color:#43627d;padding:0;white-space:nowrap}
.p4d-gantt-day.is-day{background:#175a95;color:white}
.p4d-gantt-cell{border:0;background:#fff;position:relative;min-height:26px;padding:0}
.p4d-gantt-cell.state-form{background:#3b82f6}
.p4d-gantt-cell.state-steel{background:#f59e0b}
.p4d-gantt-cell.state-concrete{background:#10b981}
.p4d-gantt-cell.state-done{background:#bddac9}
.p4d-gantt-cell.state-milestone{background:#8b5cf6}
.p4d-gantt-cell.is-day{outline:2px solid #153d60;outline-offset:-2px;z-index:1}
.p4d-gantt-cell:hover,.p4d-gantt-day:hover{filter:brightness(.91);outline:2px solid #25485c;outline-offset:-2px}
.p4d-gantt-diamond{font-size:12px;color:#fff;text-shadow:0 1px 1px #4d2365;position:absolute;top:5px;left:9px}
.p4d-gantt-summary .p4d-gantt-diamond{right:0;left:auto;top:0;color:#7c3bb5;text-shadow:0 1px white}
.p4d-gantt-focus{font-size:11px;line-height:1.45;color:#4d6c84;padding:8px 10px;background:#f8fbfe}
.p4d-slider-caption{font-size:11px;font-weight:750;color:#335f7e;display:block;margin-top:12px}
@media(max-width:420px){.p4d-gantt-nav .btn{font-size:9px}.p4d-gantt-heading{padding:9px 6px}}

.p4d-beam-alert{background:#fff4e4;color:#984e04;font-weight:700;padding:8px 10px;border-radius:7px;border:1px solid #f2bf77;}
