/* Project workspace: the existing panels and save handlers remain authoritative. */
@media screen {
#gpDetailOverlay .gp-detail-panel{width:100%;max-width:none;height:100%;height:100dvh;min-height:0;border:0!important;border-radius:0!important;animation:gpWorkspaceIn .24s ease both}
#gpDetailOverlay .gp-detail-header{display:block;position:relative;z-index:5;padding:0;flex:none;background:#f8fafc!important;border-bottom:1px solid #dce4ed;box-shadow:0 4px 14px #26394d0a}
#gpDetailOverlay .gp-detail-titlebar{display:grid;grid-template-columns:minmax(180px,240px) minmax(0,1fr) 40px;align-items:center;gap:12px;min-height:84px;padding:12px 20px}
#gpDetailOverlay .gp-detail-identity{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px;min-width:0}
#gpDetailTitle{min-width:0;overflow-wrap:anywhere;line-height:1.25;font-size:18px!important}
#gpDetailStatusBadge{grid-column:1 / -1;justify-self:start;margin:0!important;font-size:10px!important}
#gpDetailOverlay .gp-detail-close{display:grid;place-items:center;flex:none;grid-column:3;grid-row:1;width:40px;height:40px;margin:0;padding:0;border:1px solid #e8cd58;border-radius:13px;background:#ffe66b;color:#36301a;font-size:19px;box-shadow:0 5px 15px #b9a43420;transition:background .18s,box-shadow .18s,transform .18s}
#gpDetailOverlay .gp-detail-close span{transition:transform .22s ease}
#gpDetailOverlay .gp-detail-close:hover{background:#ffda3b;box-shadow:0 7px 20px #ad912638;transform:translateY(-2px)}
#gpDetailOverlay .gp-detail-close:hover span{transform:rotate(90deg)}
#gpDetailOverlay .gp-detail-close:active{transform:scale(.94)}
#gpDetailOverlay :is(.gp-detail-close,.gp-tab-btn):focus-visible{outline:3px solid #806711;outline-offset:2px}
#gpDetailOverlay .gp-detail-body{display:block;min-height:0;padding:16px 28px 24px;overflow-y:auto;overscroll-behavior:contain;scroll-padding-top:12px}
#gpDetailOverlay .gp-tabbar{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));position:static;gap:4px;margin:0;padding:0;overflow:visible;border:0;border-radius:0;background:#f8fafc!important}
#gpDetailOverlay .gp-tab-btn{min-width:0;min-height:34px;padding:6px 8px;margin:0;border:1px solid transparent;border-radius:10px;white-space:normal;line-height:1.25;text-align:center;font-size:11px;transition:background .18s,color .18s,box-shadow .18s,transform .18s}
#gpDetailOverlay .gp-tab-btn:hover{background:#fff9df;color:#5e501b;transform:translateY(-1px)}
#gpDetailOverlay .gp-tab-btn.active{background:#fff0b0!important;color:#574711!important;border-color:#eed783!important;box-shadow:0 3px 9px #a58b2120}
#gpDetailBody>[id^="gpTab-"]{min-width:0;padding:4px 3px 20px}
/* The task chart can still enter its dedicated focus view. */
#gpDetailOverlay.ptg-fullscreen .gp-tabbar{display:none}
#gpDetailOverlay.ptg-fullscreen .gp-detail-body{display:flex;flex-direction:column;overflow:hidden;gap:12px}
#gpDetailOverlay.ptg-fullscreen #gpTab-tasks{flex:1;min-height:0;overflow:hidden;padding:0}
body.bm-app-mirror #gpDetailPanel{background-color:#eaf0f5!important;background-image:var(--bm-wall)!important;box-shadow:none}
#gpDetailOverlay.ptg-fullscreen .gp-detail-titlebar{grid-template-columns:minmax(0,1fr) 40px;min-height:60px;padding:10px 16px}
#gpDetailOverlay.ptg-fullscreen .gp-detail-close{grid-column:2}
#gpDetailOverlay.ptg-fullscreen .gp-detail-identity{display:flex;flex-wrap:wrap}
/* Shared vertical rhythm: grid boundaries must keep the same space as cards. */
#gpDetailBody{--gp-section-gap:20px;--gp-inner-gap:14px}
body.bm-app-mirror #gpDetailBody :is(.pd-wrap,.pdoc-wrap,.gp-fin-wrap){display:grid;grid-template-columns:minmax(0,1fr);gap:var(--gp-section-gap);background:transparent;margin:0;padding:0}
body.bm-app-mirror #gpDetailBody :is(.pd-wrap,.pdoc-wrap,.gp-fin-wrap)>*{margin-block:0!important;min-width:0}
body.bm-app-mirror #gpDetailBody :is(.pd-dir-grid,.pd-extra-meetings-grid,.gp-fin-grid,.mka-cols){gap:var(--gp-section-gap)}
body.bm-app-mirror #gpDetailBody :is(.pd-2col,.pd-src-2col,.pd-dir-2col,.pdoc-grid){gap:var(--gp-inner-gap)}
body.bm-app-mirror #gpDetailBody :is(.pd-dir-grid,.pd-extra-meetings-grid)>.pd-zone{margin:0}
body.bm-app-mirror #gpDetailBody :is(.gptk-card,.trip-proj-card,.pfa-card,.pfa-grp,.gp-dept-block){margin-bottom:var(--gp-section-gap)}
body.bm-app-mirror #gpDetailBody .gp-plan-budget>.gp-meta-card{margin-bottom:var(--gp-section-gap)}
body.bm-app-mirror #gpDetailBody .plan-sum-card{margin-bottom:var(--gp-inner-gap)}
body.bm-app-mirror #gpDetailBody :is(.gptk-card,.trip-proj-card,.pfa-card,.gp-dept-block,.plan-sum-card):last-child{margin-bottom:0}
body.bm-app-mirror #gpDetailBody :is(.pd-zone,.pd-col,.pd-tech,.pd-photo-box,.pd-spec-main-card,.pdoc-flow,.pdoc-win,.pdoc-cdoc,.pfa-card,.pfa-sec,.gp-meta-card,.gp-dept-block,.gp-fin-block,.gptk-card,.trip-proj-card){background:rgba(255,255,255,.78);border-color:#fff;border-radius:20px;box-shadow:var(--bm-shadow)}
body.bm-app-mirror #gpDetailBody :is(.pd-zone,.pdoc-flow,.pdoc-win,.gp-fin-block){padding:20px}
body.bm-app-mirror #gpDetailBody :is(.pd-zone,.pdoc-win){border-left-width:1px}
body.bm-app-mirror #gpDetailBody :is(.pd-zone-hd,.pdoc-ttl,.gp-meta-title){font-size:18px;letter-spacing:-.025em}
body.bm-app-mirror #gpDetailBody :is(.pd-intro,.pdoc-step,.pd-chk-group){background:rgba(241,246,250,.85);border-color:#dfe7ed;border-radius:14px}
body.bm-app-mirror #gpDetailBody .pdoc-step--ext{background:rgba(241,246,250,.5)}
body.bm-app-mirror #gpDetailBody .pdoc-flow-steps{gap:var(--gp-inner-gap)}
body.bm-app-mirror #gpDetailBody :is(.pd-col,.pd-tech,.pdoc-win){min-width:0}
@keyframes gpWorkspaceIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@media(min-width:1600px){#gpDetailOverlay .gp-tabbar{grid-template-columns:repeat(9,minmax(0,1fr))}}
@media(max-width:1050px){
 #gpDetailOverlay .gp-detail-titlebar{grid-template-columns:minmax(160px,200px) minmax(0,1fr) 40px;gap:10px;padding:12px 16px}
 #gpDetailOverlay .gp-detail-body{padding:12px 18px 18px}
 #gpDetailOverlay .gp-tabbar{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:700px){
 #gpDetailBody{--gp-section-gap:16px;--gp-inner-gap:12px}
 #gpDetailOverlay .gp-detail-titlebar{grid-template-columns:minmax(0,1fr) 40px;gap:10px;padding:12px;min-height:72px}
 #gpDetailTitle{font-size:16px!important}
 #gpDetailOverlay .gp-detail-close{grid-column:2;width:40px;height:40px;border-radius:13px}
 #gpDetailOverlay .gp-detail-body{padding:8px 10px 12px}
 #gpDetailOverlay .gp-tabbar{grid-column:1 / -1;grid-row:2;gap:4px;padding:0}
 #gpDetailOverlay .gp-tab-btn{font-size:10.5px;min-height:40px;padding:6px;border-radius:10px}
 body.bm-app-mirror #gpDetailBody :is(.pd-zone,.pdoc-flow,.pdoc-win,.gp-fin-block){padding:14px;border-radius:16px}
 body.bm-app-mirror #gpDetailBody :is(.pd-zone-hd,.pdoc-ttl,.gp-meta-title){font-size:16px}
}
@media(prefers-reduced-motion:reduce){
 #gpDetailOverlay,#gpDetailOverlay .gp-detail-panel{animation:none!important}
 #gpDetailOverlay :is(.gp-detail-close,.gp-detail-close span,.gp-tab-btn){transition:none;transform:none!important}
}
}
