/* Consistent, restrained motion across the account, editor and support pages. */
button,.btn,.openlink,.accountnav a,[role="button"]{
 transition:background-color 150ms ease,border-color 150ms ease,color 150ms ease,box-shadow 150ms ease,filter 150ms ease,translate 150ms ease;
}
@media (hover:hover) and (pointer:fine){
 button:not(:disabled):not([aria-disabled="true"]):hover,
 .btn:not(:disabled):not([aria-disabled="true"]):hover,
 .openlink:hover,.accountnav a:hover,[role="button"]:not([aria-disabled="true"]):hover{
  filter:brightness(1.09);box-shadow:0 2px 8px #0002;translate:0 -1px;
 }
}
button:not(:disabled):active,.btn:not(:disabled):active,.openlink:active,.accountnav a:active{
 translate:0 0;filter:brightness(.96);
}
button:focus-visible,.btn:focus-visible,.openlink:focus-visible,.accountnav a:focus-visible,[role="button"]:focus-visible{
 outline:2px solid #7ca9ef;outline-offset:3px;
}
button:disabled,[aria-disabled="true"]{translate:none;box-shadow:none;}
/* Ensure the closed recovery panel never takes up canvas space. */
#projectSaveStatus[hidden]{display:none!important;}
@media (prefers-reduced-motion:reduce){
 button,.btn,.openlink,.accountnav a,[role="button"]{transition:none!important;animation:none!important;translate:none!important;transform:none!important;}
}

/* Light builder workspace, with a deliberately dark application header. */
:root[data-theme="light"] .plan-builder .pagebar,
:root[data-theme="light"] .plan-builder .statusbar{
 background:#f8fafc;border-color:#d4dde7;
}
:root[data-theme="light"] .plan-builder .statusbar{color:#526477;}
:root[data-theme="light"] .plan-builder .statusbar .copyr,
:root[data-theme="light"] .plan-builder .statusbar .coord{color:#627286;opacity:1;}
:root[data-theme="light"] .plan-builder .pagebar .toolseg{background:#edf2f7;border-color:#d4dde7;}
:root[data-theme="light"] .plan-builder .toolseg button.on,
:root[data-theme="light"] .plan-builder .btn.add{
 background:#315fa8;color:#fff;box-shadow:0 2px 5px #163a641a;
}
/* Header-only selectors keep dropdowns and recovery panels in the active theme. */
:root[data-theme="light"] .plan-builder .topbar .btn:not(.primary){
 background:#252e3c;border-color:#435064;color:#edf2f8;
}
:root[data-theme="light"] .plan-builder .topbar .btn:not(.primary):hover{background:#303d50;border-color:#64758c;}
:root[data-theme="light"] .plan-builder .topbar .btn.primary{
 background:#315fa8;border-color:#648dca;color:#fff;box-shadow:none;
}
:root[data-theme="light"] .plan-builder .topbar .zoom,
:root[data-theme="light"] .plan-builder .topbar .tierpick select{background:#252e3c;border-color:#435064;color:#edf2f8;}
:root[data-theme="light"] .plan-builder .topbar .zoom button{color:#edf2f8;}
:root[data-theme="light"] .plan-builder .topbar .zoom button:hover{background:#3b4960;}
:root[data-theme="light"] .plan-builder .topbar .zoom .lvl,
:root[data-theme="light"] .plan-builder .topbar .brand .tag{color:#b7c5d8;}
:root[data-theme="light"] .plan-builder .topbar .rv-a{fill:#5c8aa8;}
:root[data-theme="light"] .plan-builder .topbar .rv-b{fill:#7fb0cc;}
:root[data-theme="light"] .plan-builder .topbar .rv-c{fill:#4e7b96;}
:root[data-theme="light"] .plan-builder .topbar .rv-d{fill:#9cc2d8;}
:root[data-theme="light"] .plan-builder .topbar .rv-e{fill:#6b97b3;}
:root[data-theme="light"] .plan-builder .topbar .rv-out{stroke:#b6d2e2;}
:root[data-theme="light"] .plan-builder .topbar #projectSaveStatus .btn{
 background:#edf2f7;color:#21354b;border-color:#c8d4de;
}
.plan-check{width:min(620px,calc(100vw - 32px));max-height:85vh;overflow:auto;background:var(--panel,#fff);color:var(--ink,#142a38);border:1px solid var(--line-2,#ccd4de);border-radius:16px;padding:24px;box-shadow:0 20px 60px #0005;font:14px/1.6 system-ui;}
.plan-check::backdrop{background:#04061088;}
.plan-check h2{margin:0 0 12px;font-size:21px;}
.plan-check p{color:var(--muted,#526477);}
.plan-check ul{padding-left:22px;}
.plan-check li{margin:15px 0;}
.plan-check li .btn{margin:6px 0 0 10px;}
#draftingPanel .row{display:flex;align-items:center;gap:5px;}
#draftingPanel .row .inp{min-width:0;}
#draftingPanel .acts{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px;}
#draftingPanel .card-body>.btn{margin-top:9px;}
#draftingPanel .draft-dimension{display:flex;justify-content:space-between;align-items:center;gap:6px;margin:8px 0;font-size:12px;}
#dmShape{flex-wrap:wrap;}

/* Let the right rail scroll as one column instead of compressing its cards. */
#rightRail{overflow-y:auto;overflow-x:hidden;scrollbar-gutter:stable;}
#rightRail>*{flex-shrink:0;}
#rightRail #inventory{flex:1 0 auto!important;overflow:visible;min-height:96px;}
#drawingScalePanel{flex:none;min-width:0;margin:12px;padding:14px;overflow:visible;}
#drawingScalePanel h3{color:var(--ink);}
#drawingScalePanel .hint{color:var(--muted);font-size:12px;line-height:1.55;margin:10px 0;}
#drawingScalePanel .chkline{align-items:flex-start;color:var(--ink);line-height:1.5;gap:9px;padding:4px 0 10px;}
#drawingScalePanel .chkline input{flex:none;margin-top:2px;}
#drawingScalePanel .btn{max-width:100%;white-space:normal;height:auto;min-height:34px;line-height:1.4;}
#drawingScalePanel #dragCalibrate{width:100%;text-align:center;}
#drawingScalePanel #rightScaleReadout{padding:9px 10px;background:var(--bg-2);border:1px solid var(--line);border-radius:8px;color:var(--ink);overflow-wrap:anywhere;}
#drawingScalePanel #resetScalePosition{margin-bottom:12px;}
#drawingScalePanel #northSettings{border-top:1px solid var(--line);padding-top:12px;}
#drawingScalePanel #northSettings[hidden]{display:none;}
#drawingScalePanel .north-direction{display:grid;grid-template-columns:88px minmax(0,1fr);gap:12px;align-items:center;}
#drawingScalePanel .north-direction .fld{min-width:0;margin:0;}
#drawingScalePanel #northAngle{width:100%;min-width:0;box-sizing:border-box;}
#drawingScalePanel #northWheel{display:block;max-width:100%;}
#drawingScalePanel #northWheel:focus-visible{outline:2px solid var(--accent);outline-offset:3px;}

#titleDockControls{margin:14px 0 0;padding:12px;border:1px solid var(--line-2);border-radius:10px;min-width:0;}
#titleDockControls legend{font-size:12px;font-weight:600;color:var(--ink);padding:0 5px;}
#titleDockControls .fld{display:block;margin:6px 0 12px;}
#titleDockControls select,#titleDockSize{width:100%;box-sizing:border-box;}
#titleDockControls .hint{color:var(--muted);}
#titleDockControls .btn{white-space:normal;margin-top:5px;}
#titleDockControls [hidden]{display:none;}

#titleDockTools{position:fixed;z-index:1000;max-width:250px;display:flex;align-items:center;flex-wrap:wrap;gap:6px;padding:9px;background:var(--panel);color:var(--ink);border:1px solid var(--line-2);border-radius:10px;box-shadow:0 6px 24px #0003;font:12px/1.4 system-ui;}
#titleDockTools[hidden],#titleDockTools [hidden]{display:none;}
#titleDockToolStatus{flex-basis:100%;}
#titleDockControls .chkline{align-items:flex-start;line-height:1.5;}
#titleDockControls .chkline input{flex:none;margin-top:2px;}
