/* Scoped workspace for drawings; all plan geometry lives in its own transformed sheet. */
.pv-page { --pv-blue:#397bc5; --pv-line:#e1e7ee; --pv-muted:#8190a1; padding-top:29px; color:#30465c; }
.pv-page button,.pv-page input,.pv-page select { font-size:11px; }
.pv-page button { display:inline-flex; align-items:center; justify-content:center; gap:7px; }
.pv-page button:focus-visible,.pv-page a:focus-visible { outline:2px solid #70a7df; outline-offset:3px; }
.pv-heading { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:23px; }
.pv-heading .eyebrow { font-size:9px; letter-spacing:1.5px; color:#8699ad; margin-bottom:9px; }
.pv-heading h1 { font-size:32px; letter-spacing:-1px; font-weight:550; }
.pv-heading h1 span { color:#6e9bcc; }
.pv-heading p { margin-top:8px; color:#8593a3; font-size:12px; }
.pv-heading>.primary { padding:11px 15px; border-radius:7px; white-space:nowrap; }
.pv-overview { display:flex; align-items:center; gap:16px; padding:0 0 17px; font-size:10px; color:#8292a3; }
.pv-overview>span { display:flex; align-items:center; gap:7px; }
.pv-overview b { color:#405f80; font-weight:600; }
.pv-overview>i { height:11px; width:1px; background:#dce4ed; }
.pv-overview-end { margin-left:auto; font-size:9px; }
.pv-local-dot { width:5px; height:5px; background:#7da291; border-radius:100%; }
.pv-workspace { display:grid; grid-template-columns:190px minmax(220px,1fr) 250px; min-height:600px; border:1px solid var(--pv-line); border-radius:10px; overflow:hidden; background:white; box-shadow:0 4px 16px #30496304; }
.pv-plans { min-width:0; display:flex; flex-direction:column; border-right:1px solid var(--pv-line); background:#fcfdfe; }
.pv-panel-heading { min-height:56px; display:flex; align-items:center; justify-content:space-between; padding:16px; gap:8px; }
.pv-panel-heading h2 { font-size:11px; font-weight:600; letter-spacing:0; }
.pv-panel-heading>span { font-size:10px; color:#8a9cae; }
.pv-panel-heading>button { padding:0; font-size:10px; }
.pv-search { display:flex; align-items:center; gap:7px; border:1px solid #e2e8ef; background:white; border-radius:6px; padding:0 9px; color:#9aabbd; min-width:0; }
.pv-search>svg { flex-shrink:0; }
.pv-search input { padding:9px 0; width:100%; border:0; background:transparent; border-radius:0; font-size:10px; outline-offset:0; }
.pv-search input::placeholder { color:#9aa8b7; }
.pv-plans>.pv-search { margin:0 12px 10px; }
.pv-plans>select { margin:0 12px 10px; padding:7px 9px; width:calc(100% - 24px); background:#f6f8fb; border-color:#e5ebf1; font-size:9px; color:#7a8fa6; }
.pv-plan-list { flex:1; overflow-y:auto; max-height:570px; padding:4px 7px; }
.pv-plan-item { display:flex!important; align-items:flex-start!important; justify-content:flex-start!important; width:100%; gap:10px!important; border:1px solid transparent; padding:13px 8px; border-radius:6px; background:transparent; text-align:left; margin:2px 0; }
.pv-plan-item:hover { background:#f2f6fb; border-color:#e6edf6; }
.pv-plan-item.is-active { background:#edf4fd; border-color:#dce9f9; }
.pv-plan-item>span:last-child { min-width:0; flex:1; }
.pv-plan-item b { display:block; color:#55718f; font-size:10px; font-weight:600; line-height:1.45; overflow-wrap:anywhere; }
.pv-plan-item.is-active b { color:#3473bb; }
.pv-plan-item small { display:block; margin-top:4px; font-size:9px; line-height:1.5; color:#8298ae; }
.pv-plan-item em { display:block; font-size:8px; font-style:normal; color:#96a8ba; margin-top:6px; }
.pv-plan-thumb { display:grid; place-items:center; flex-shrink:0; width:32px; height:38px; background:white; border:1px solid #e2eaf2; border-radius:4px; color:#9fb7ce; }
.pv-plan-item.is-active .pv-plan-thumb { color:#6d9bd0; border-color:#d6e4f4; }
.pv-list-empty { text-align:center; padding:32px 10px; line-height:1.8; color:#99a8b7; font-size:10px; }
.pv-plans-footer { margin-top:auto; padding:18px 15px; border-top:1px solid #e9eef4; display:flex; align-items:center; gap:9px; font-size:8px; color:#9aabbb; line-height:1.7; }
.pv-plans-footer svg { flex-shrink:0; }
.pv-viewer { min-width:0; display:flex; flex-direction:column; background:#f0f3f7; }
.pv-viewer-header { min-height:57px; padding:10px 12px; background:white; border-bottom:1px solid var(--pv-line); display:flex; align-items:center; gap:10px; }
.pv-icon-button { width:28px; height:30px; padding:4px; border:0; background:transparent; color:#829bb5; flex-shrink:0; }
.pv-current-plan { min-width:0; flex:1; }
.pv-current-plan b { display:block; color:#466582; font-size:11px; line-height:1.5; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pv-current-plan>span { display:block; font-size:8px; color:#96a7b9; margin-top:2px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pv-viewer-header>select { border:1px solid #e7edf3; background:#fbfcfe; font-size:9px; color:#7d95ad; padding:7px; max-width:145px; }
.pv-toolbar { min-height:49px; padding:8px 11px; display:flex; align-items:center; gap:3px; background:#fdfefe; border-bottom:1px solid var(--pv-line); flex-wrap:wrap; }
.pv-tool { padding:6px; min-width:29px; height:30px; border:1px solid transparent; border-radius:5px; background:transparent; color:#8398ad; }
.pv-tool.is-active { background:#e7f0fd; color:#3678c5; border-color:#d7e6fa; }
.pv-tool:hover:not(:disabled) { color:#397bc5; background:#eef4fc; border-color:#d9e7f7; }
.pv-toolbar-divider { height:18px; width:1px; background:#e0e7ee; margin:0 6px; }
.pv-color { margin:0 3px; }
.pv-color input { width:22px; height:25px; min-width:22px; padding:1px; border:0; background:transparent; border-radius:4px; cursor:pointer; }
.pv-color input::-webkit-color-swatch-wrapper { padding:3px 1px; }
.pv-color input::-webkit-color-swatch { border-radius:4px; border:1px solid #0001; }
.pv-toolbar>select { padding:4px 3px; height:26px; font-size:9px; background:transparent; border-color:#e5ebf2; color:#8a9cb0; }
.pv-viewport { position:relative; flex:1; overflow:hidden; min-height:460px; height:calc(100vh - 375px); max-height:850px; touch-action:none; user-select:none; background-color:#edf1f6; background-image:radial-gradient(#cbd5e2 0.65px,transparent 0.65px); background-size:17px 17px; outline-offset:-3px; }
.pv-viewport[data-tool=pan] { cursor:grab; }
.pv-viewport[data-tool=pan]:active { cursor:grabbing; }
.pv-viewport[data-tool=pin],.pv-viewport[data-tool=pen],.pv-viewport[data-tool=line],.pv-viewport[data-tool=arrow],.pv-viewport[data-tool=rect],.pv-viewport[data-tool=ellipse] { cursor:crosshair; }
.pv-viewport[data-tool=text] { cursor:text; }
.pv-sheet { position:absolute; left:0; top:0; transform-origin:0 0; box-shadow:0 6px 28px #334e6e18,0 0 0 1px #cbd4e04d; background:white; }
.pv-sheet>img,.pv-sheet>svg { width:100%; height:100%; position:absolute; inset:0; display:block; }
.pv-sheet>img { pointer-events:none; max-width:none; max-height:none; }
.pv-sheet>.pv-detail-image[hidden] { display:none; }
.pv-sheet>.pv-detail-image { max-width:none; }
.pv-detail-state { position:absolute; right:15px; top:15px; max-width:calc(100% - 30px); border-radius:5px; padding:7px 9px; background:#fffffff2; color:#7b91a8; font-size:10px; pointer-events:none; }
.pv-detail-state:empty { display:none; }
.pv-sheet>svg { overflow:visible; }
.pv-vector-mark { pointer-events:visiblePainted; }
.pv-viewport[data-tool=select] .pv-vector-mark { cursor:move; }
.pv-hit-area { opacity:0; }
.pv-pin { cursor:pointer; pointer-events:all; filter:drop-shadow(0 2px 3px #1b314533); }
.pv-pin:hover { filter:drop-shadow(0 2px 5px #1d579a66); }
.pv-loading { position:absolute; left:20px; top:20px; padding:10px 13px; background:#fffffff5; border:1px solid #dde5ee; font-size:10px; color:#7d93aa; border-radius:6px; max-width:calc(100% - 40px); }
.pv-canvas-legend { position:absolute; left:12px; bottom:15px; display:flex; align-items:center; gap:5px; background:#ffffffed; border:1px solid #e0e6ef; border-radius:5px; padding:7px 9px; font-size:8px; color:#8b9aab; pointer-events:none; }
.pv-status-dot { display:inline-block; width:6px; height:6px; background:#d8804c; border-radius:50%; flex-shrink:0; }
.pv-status-dot.progress { background:#397bc5; height:6px; margin:0; overflow:visible; }
.pv-status-dot.resolved { background:#4b987f; }
.pv-canvas-legend .pv-status-dot:not(:first-child) { margin-left:4px; }
.pv-zoom { position:absolute; bottom:14px; right:13px; display:flex; align-items:center; background:#fffffff2; box-shadow:0 2px 7px #33486008; border:1px solid #dce4ee; border-radius:6px; padding:2px; color:#7089a3; }
.pv-zoom button { border:0; background:transparent; padding:5px; width:28px; height:28px; font-size:17px; font-weight:400; }
.pv-zoom output { font-size:9px; min-width:39px; text-align:center; font-variant-numeric:tabular-nums; }
.pv-zoom .pv-zoom-percent { display:flex; flex-direction:row; align-items:center; gap:1px; margin:0; font-size:10px; font-weight:400; color:#526f8c; }
.pv-zoom .pv-zoom-percent input { width:44px; min-width:0; border:0; background:transparent; padding:5px 1px; margin:0; font-size:11px; text-align:right; font-variant-numeric:tabular-nums; border-radius:3px; appearance:textfield; -moz-appearance:textfield; }
.pv-zoom .pv-zoom-percent input:focus { outline:2px solid #9abce5; background:#f4f8ff; }
.pv-zoom .pv-zoom-percent input::-webkit-inner-spin-button,.pv-zoom .pv-zoom-percent input::-webkit-outer-spin-button { -webkit-appearance:none; margin:0; }
.pv-zoom .pv-zoom-percent>span { padding-right:4px; }
.pv-zoom>i { width:1px; height:16px; background:#e6ecf2; margin:0 3px; }
.pv-viewer-footer { min-height:29px; display:flex; align-items:center; justify-content:space-between; padding:7px 12px; background:#f8fafc; border-top:1px solid #e4ebf3; font-size:8px; color:#94a4b5; gap:12px; line-height:1.5; }
.pv-viewer-footer>span:last-child { flex-shrink:0; }
.pv-plan-actions { display:flex; align-items:center; justify-content:flex-end; gap:7px; padding:9px; background:white; border-top:1px solid #e7edf3; flex-wrap:wrap; }
.pv-plan-actions>button,.pv-plan-actions>a { display:flex; align-items:center; gap:5px; font-size:9px; padding:5px 7px; color:#7a93ac; text-decoration:none; border-radius:5px; }
.pv-plan-actions>a:hover { background:#f0f5fb; }
.pv-panel { border-left:1px solid var(--pv-line); min-width:0; background:white; display:flex; flex-direction:column; }
.pv-panel-tabs { min-height:57px; display:flex; align-items:stretch; border-bottom:1px solid var(--pv-line); padding:0 10px; gap:10px; }
.pv-panel-tabs>button { padding:10px 3px; border:0; border-bottom:2px solid transparent; border-radius:0; background:transparent; color:#92a3b4; font-size:10px; }
.pv-panel-tabs>button.is-active { color:#397bc5; border-bottom-color:#397bc5; }
.pv-panel-tabs>button>span { border-radius:4px; padding:2px 4px; background:#f0f4f9; font-size:8px; }
.pv-panel-filters { display:flex; flex-direction:column; gap:9px; padding:14px 12px; border-bottom:1px solid #e7edf3; }
.pv-panel-filters>select { padding:7px 9px; border-color:#e1e8f0; font-size:10px; color:#7d93a9; }
.pv-panel-filters label.check,.pv-mark-controls label.check { font-size:9px; color:#8a9eb2; gap:6px; }
.pv-panel-filters input[type=checkbox],.pv-mark-controls input[type=checkbox] { width:12px; height:12px; }
.pv-ticket-list,.pv-mark-list { overflow-y:auto; max-height:570px; flex:1; }
.pv-ticket-item { width:100%; flex-direction:column; align-items:stretch!important; gap:8px!important; text-align:left; border:0; border-bottom:1px solid #edf1f6; border-radius:0; background:white; padding:16px; }
.pv-ticket-item:hover { background:#f6f9fe; }
.pv-ticket-item>div { display:flex; align-items:center; justify-content:space-between; gap:5px; }
.pv-ticket-number { color:#91a4b9; font-size:9px; display:flex; align-items:center; gap:6px; }
.pv-priority { font-size:8px; color:#c38b6b; }
.pv-ticket-item>b { font-size:11px; line-height:1.6; font-weight:550; color:#526f8c; overflow-wrap:anywhere; }
.pv-ticket-item>small { font-size:9px; font-weight:400; color:#98a9ba; overflow-wrap:anywhere; }
.pv-ticket-item>footer { display:flex; align-items:center; justify-content:space-between; gap:6px; margin-top:3px; }
.pv-ticket-item time { font-size:8px; font-weight:400; color:#93a5b8; }
.pv-status-badge { padding:4px 6px; font-size:8px; background:#faf0e8; color:#bd895f; border-radius:4px; width:fit-content; }
.pv-status-badge.progress { background:#edf4ff; color:#6d92bf; height:auto; overflow:visible; margin:0; }
.pv-status-badge.resolved { background:#edf5f0; color:#6b9b87; }
.pv-panel-empty { text-align:center; padding:55px 21px 30px; }
.pv-panel-empty>span { color:#acc0d4; display:inline-flex; align-items:center; justify-content:center; background:#f3f7fc; border:1px solid #eaf0f7; width:54px; height:54px; border-radius:15px; margin-bottom:19px; }
.pv-panel-empty h3 { font-size:11px; font-weight:550; color:#7c94ad; }
.pv-panel-empty p { font-size:10px; color:#a0afbe; line-height:1.9; margin:10px 0 17px; }
.pv-panel-empty button { font-size:9px; color:#7b9bc0; border-color:#dfe9f4; }
.pv-panel-note { margin-top:auto; padding:18px 16px; font-size:8px; color:#9aabbc; border-top:1px solid #edf1f6; line-height:1.8; }
.pv-ticket-detail { padding:17px; display:flex; flex-direction:column; align-items:flex-start; gap:15px; }
.pv-ticket-detail h2 { font-size:17px; color:#486782; line-height:1.5; letter-spacing:-.3px; overflow-wrap:anywhere; }
.pv-ticket-detail>p { font-size:11px; line-height:1.9; color:#8b9daf; white-space:pre-wrap; overflow-wrap:anywhere; }
.pv-ticket-detail>dl { margin:0; width:100%; border-top:1px solid #e8eef4; padding-top:12px; }
.pv-ticket-detail dt { margin-top:10px; font-size:9px; color:#a0afbd; }
.pv-ticket-detail dd { margin:5px 0 16px; font-size:11px; color:#68829d; overflow-wrap:anywhere; }
.pv-ticket-detail>button { width:100%; font-size:10px; }
.pv-ticket-detail>small { color:#a8b4c1; font-size:8px; }
.pv-danger { color:#b97b73!important; }
.pv-mark-controls { padding:17px 14px; border-bottom:1px solid #e9eef4; }
.pv-mark-controls>p,.pv-mark-actions>p { margin-top:10px; font-size:9px; line-height:1.8; color:#9bacbd; }
.pv-mark-item { width:calc(100% - 18px); margin:5px 9px; padding:11px 9px; justify-content:flex-start!important; gap:10px!important; border:1px solid transparent; background:transparent; font-size:10px!important; text-align:left; }
.pv-mark-item>span:last-child { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:#7b91a7; }
.pv-mark-item.is-active { background:#f0f6ff; border-color:#dce9fa; }
.pv-mark-actions { padding:15px; border-top:1px solid #e9eef4; }
.pv-mark-actions button { margin-top:12px; font-size:9px; }
.pv-empty-art { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:25px; text-align:center; background:radial-gradient(ellipse at 50% 39%,#f9fbfd99,#edf2f7dd 70%); }
.pv-empty-art>svg { width:265px; max-width:85%; margin-bottom:19px; transform:rotate(-4deg); filter:drop-shadow(0 12px 15px #5c7f9a0a); }
.pv-empty-art>.eyebrow { margin-bottom:12px; font-size:8px; letter-spacing:1.8px; color:#9cb0c5; }
.pv-empty-art h2 { font-size:21px; font-weight:500; color:#5c7b9b; letter-spacing:-.5px; line-height:1.4; }
.pv-empty-art p { margin:12px 0 23px; font-size:11px; line-height:1.9; color:#8fa3b7; }
.pv-empty-art button { font-size:10px; padding:10px 14px; }
.pv-empty-art small { margin-top:14px; color:#a6b5c4; font-size:8px; letter-spacing:.6px; }
.pv-page-footer { display:flex; justify-content:space-between; gap:15px; margin-top:16px; font-size:9px; color:#a0afbf; line-height:1.7; }
.pv-page-footer>span:first-child { display:flex; align-items:center; gap:7px; }
.pv-page-footer>span:last-child { flex-shrink:0; }
.pv-plans-hidden { grid-template-columns:minmax(220px,1fr) 250px; }
.pv-plans-hidden>.pv-plans { display:none; }
.pv-panel-hidden { grid-template-columns:190px minmax(220px,1fr); }
.pv-panel-hidden>.pv-panel { display:none; }
.pv-plans-hidden.pv-panel-hidden { grid-template-columns:minmax(0,1fr); }
.pv-workspace:fullscreen { border-radius:0; width:100vw; height:100vh; border:0; }
.pv-workspace:fullscreen .pv-viewport { height:auto; max-height:none; }
.pv-upload-file { padding:23px; display:flex; align-items:center; text-align:center; gap:9px; border:1px dashed #b9cce1; border-radius:8px; color:#7293b5; background:#f7faff; }
.pv-upload-file>b { color:#587c9f; font-size:12px; }
.pv-upload-file>span { font-size:10px; font-weight:400; color:#90a7be; }
.pv-upload-file>input { margin-top:10px; padding:7px; max-width:100%; font-size:10px; background:white; }
.pv-form-error { min-height:0; color:#b36e61; font-size:11px; line-height:1.6; }
.pv-form-error:empty { display:none; }
.pv-version-history { border-top:1px solid #e3eaf2; padding-top:17px; }
.pv-version-history h3 { font-size:12px; color:#6984a0; margin-bottom:10px; }
.pv-version-history>div { padding:12px 0; border-bottom:1px solid #edf1f6; }
.pv-version-history span { display:flex; align-items:center; gap:10px; font-size:11px; color:#6a86a1; }
.pv-version-history em { font-style:normal; font-size:9px; color:#7c9abd; background:#eff5fc; padding:3px 6px; border-radius:4px; }
.pv-version-history small { display:block; color:#94a7ba; font-size:10px; margin-top:6px; }
#pv-upload-form small { font-size:9px; color:#94a3b3; font-weight:400; }
@media(min-width:1650px) { .pv-workspace { grid-template-columns:210px minmax(300px,1fr) 270px; } .pv-plans-hidden { grid-template-columns:minmax(300px,1fr) 270px; } .pv-panel-hidden { grid-template-columns:210px minmax(300px,1fr); } .pv-plans-hidden.pv-panel-hidden { grid-template-columns:minmax(0,1fr); } }
@media(max-width:1250px) { .pv-workspace { grid-template-columns:155px minmax(200px,1fr) 210px; } .pv-plans-hidden { grid-template-columns:minmax(200px,1fr) 210px; } .pv-panel-hidden { grid-template-columns:155px minmax(200px,1fr); } .pv-plans-hidden.pv-panel-hidden { grid-template-columns:minmax(0,1fr); } .pv-plan-item { gap:7px!important; } .pv-plan-thumb { width:26px; height:33px; } .pv-plan-thumb svg { width:19px; } .pv-plan-item b { font-size:9px; } .pv-plan-item small { font-size:8px; } .pv-canvas-legend { bottom:59px; font-size:7px; padding:6px; } .pv-zoom { left:12px; right:auto; } .pv-empty-art h2 { font-size:18px; } .pv-empty-art p { font-size:10px; } .pv-viewer-header>select { max-width:105px; font-size:8px; } }
@media(max-width:1050px) { .pv-workspace { grid-template-columns:150px minmax(0,1fr); } .pv-panel { grid-column:1/-1; border-left:0; border-top:1px solid var(--pv-line); } .pv-panel-tabs { min-height:47px; } .pv-panel-filters { display:grid; grid-template-columns:minmax(0,1fr) 150px auto; align-items:center; } .pv-ticket-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); max-height:350px; } .pv-panel-empty { grid-column:1/-1; padding:25px; } .pv-panel-empty>span { display:none; } .pv-panel-empty p { margin-bottom:10px; } .pv-panel-note { display:none; } .pv-ticket-detail>dl { display:grid; grid-template-columns:100px minmax(0,1fr); align-items:baseline; gap:10px; } .pv-ticket-detail dt,.pv-ticket-detail dd { margin:0; } .pv-ticket-detail>button { width:auto; } .pv-plans-hidden { grid-template-columns:minmax(0,1fr); } .pv-panel-hidden { grid-template-columns:150px minmax(0,1fr); } .pv-plans-hidden.pv-panel-hidden { grid-template-columns:minmax(0,1fr); } .pv-mark-list { max-height:220px; } .pv-viewport { min-height:440px; } }
@media(max-width:760px) { .pv-page { padding-top:24px; } .pv-heading h1 { font-size:27px; } .pv-heading>.primary { font-size:9px; padding:9px 11px; } .pv-heading p { font-size:10px; } .pv-overview-end { display:none!important; } .pv-workspace { grid-template-columns:140px minmax(0,1fr); } .pv-plans-hidden { grid-template-columns:minmax(0,1fr); } .pv-panel-hidden { grid-template-columns:140px minmax(0,1fr); } .pv-plans-hidden.pv-panel-hidden { grid-template-columns:minmax(0,1fr); } .pv-overview { gap:12px; font-size:9px; } .pv-page-footer>span:last-child { display:none; } .pv-toolbar { gap:1px; padding:7px; } .pv-toolbar-divider { margin:0 3px; } .pv-tool { min-width:28px; } .pv-panel-filters { grid-template-columns:minmax(0,1fr) 125px; } .pv-panel-filters>.check { grid-column:1/-1; } }
@media(max-width:560px) { .pv-heading { flex-wrap:wrap; gap:16px; margin-bottom:20px; } .pv-heading>div { width:100%; } .pv-heading h1 { font-size:28px; } .pv-heading .eyebrow { font-size:8px; } .pv-heading>.primary { font-size:10px; } .pv-workspace,.pv-panel-hidden { grid-template-columns:minmax(0,1fr); } .pv-plans { border-right:0; border-bottom:1px solid var(--pv-line); } .pv-panel-heading { padding:12px 14px; min-height:40px; } .pv-plans>.pv-search,.pv-plans>select { display:none; } .pv-plan-list { display:flex; flex-wrap:nowrap; gap:4px; overflow-x:auto; max-height:135px; padding:0 9px 10px; } .pv-plan-item { width:170px; min-width:170px; padding:10px 8px; } .pv-list-empty { padding:0 6px 12px; text-align:left; font-size:9px; } .pv-list-empty br { display:none; } .pv-plans-footer { display:none; } .pv-viewer-header { padding:9px 8px; gap:6px; min-height:56px; } .pv-viewer-header>select { max-width:109px; } .pv-current-plan b { font-size:10px; } .pv-viewport { height:430px; min-height:430px; } .pv-tool { min-width:28px; } .pv-toolbar { padding:7px; column-gap:2px; row-gap:4px; } .pv-toolbar-divider { margin:0 2px; } .pv-empty-art { padding:20px 14px; } .pv-empty-art>svg { width:205px; margin-bottom:16px; } .pv-empty-art h2 { font-size:19px; } .pv-empty-art p { font-size:10px; } .pv-ticket-list { grid-template-columns:minmax(0,1fr); } .pv-ticket-item { padding:14px; } .pv-viewer-footer>span:last-child { display:none; } .pv-plan-actions { justify-content:flex-start; gap:3px; } .pv-plan-actions>button,.pv-plan-actions>a { font-size:8px; padding:5px; } .pv-page-footer { font-size:8px; } .pv-overview { flex-wrap:wrap; } .pv-panel-filters { grid-template-columns:minmax(0,1fr) 120px; } }
@media(prefers-reduced-motion:reduce) { .pv-page button { transition:none; } }

.pv-heading-actions { display:flex; gap:9px; align-items:center; flex-wrap:wrap; justify-content:flex-end; }
.pv-heading-actions>button { display:inline-flex; align-items:center; gap:7px; font-size:11px; padding:10px 13px; }
.pv-panel-filters #pv-company-filter { max-width:100%; }
.pv-assignment-hint { display:block; font-size:10px; font-weight:400; line-height:1.6; color:#7f93aa; margin-top:5px; }
.pv-assignment-preview { margin:0; padding:9px 11px; color:#426b94; background:#f1f6fc; border-radius:6px; font-size:11px; }
.pv-assignment-preview:empty { display:none; }
dialog.pv-print-modal { width:min(740px,calc(100vw - 32px)); max-width:none; }
.pv-print-dialog header { margin-bottom:24px; }
.pv-print-dialog h2 { margin:8px 0 10px; font-size:25px; color:#233d58; }
.pv-print-dialog header>p { color:#7c91a9; font-size:13px; line-height:1.7; max-width:570px; }
.pv-print-dialog .fields { gap:17px; }
.pv-print-dialog .fields>label { min-width:0; }
.pv-print-dialog .fields select { width:100%; }
.pv-print-summary { display:flex; flex-direction:column; gap:9px; border:1px solid #dfe9f4; border-radius:8px; padding:16px; background:#f7faff; color:#456c94; margin-top:4px; }
.pv-print-summary>strong { font-size:15px; }
.pv-print-summary>span { font-size:11px; line-height:1.6; overflow-wrap:anywhere; }
.pv-print-summary>span:empty { display:none; }
.pv-print-summary>small { font-size:11px; line-height:1.7; color:#7b91a8; }
.pv-print-dialog .actions { margin-top:13px; flex-wrap:wrap; }
@media(max-width:1050px) { .pv-panel-filters { grid-template-columns:minmax(0,1fr) 150px; } .pv-panel-filters .check { grid-column:1/-1; } }
@media(max-width:760px) { .pv-heading { gap:15px; align-items:flex-start; } .pv-heading-actions { max-width:100%; } .pv-heading-actions>button { font-size:10px; padding:9px 10px; } }
@media(max-width:560px) { .pv-heading-actions { justify-content:flex-start; width:100%; } .pv-print-dialog .actions { display:grid; grid-template-columns:1fr 1fr; } .pv-print-dialog .actions>button:first-child { grid-column:1/-1; } .pv-print-dialog .fields { grid-template-columns:1fr; } }

.pv-snap-toggle { display:inline-flex!important; flex-direction:row!important; align-items:center; gap:5px!important; margin:0 0 0 auto; padding:4px 5px; font-size:10px!important; color:#66829e; font-weight:400; white-space:nowrap; }
.pv-snap-toggle input { margin:0; width:13px; height:13px; min-width:13px; accent-color:#397bc5; }
.pv-spatial-note { position:absolute; left:14px; top:14px; max-width:calc(100% - 28px); padding:7px 9px; border:1px solid #dce6ef; border-radius:5px; background:#fffffff0; color:#728ba3; font-size:9px; line-height:1.5; pointer-events:none; }
.pv-spatial-note:empty { display:none; }
.pv-spatial-note>button { margin-left:8px; padding:3px 5px; font-size:9px; pointer-events:auto; color:#246b9c; }
.pv-viewport:has(.pv-loading) .pv-spatial-note { visibility:hidden; }
.pv-viewport[data-tool=measure],.pv-viewport[data-tool=calibrate] { cursor:crosshair; }
.pv-panel-tabs>button { min-width:0; padding-left:10px; padding-right:10px; }
.pv-measure-panel { padding:17px; color:#6d849c; overflow-y:auto; max-height:650px; }
.pv-measure-scale { padding-bottom:17px; border-bottom:1px solid #e4ebf3; }
.pv-measure-scale>span { display:block; font-size:8px; letter-spacing:1px; color:#8fa3b7; line-height:1.5; }
.pv-measure-scale>strong { display:block; margin-top:9px; font-size:13px; line-height:1.7; color:#385e83; font-weight:550; }
.pv-measure-scale>p,.pv-measure-note { font-size:10px; line-height:1.8; color:#8498ad; }
.pv-measure-scale>p { margin:9px 0 12px; }
.pv-measure-scale>button { font-size:10px; padding:8px 10px; }
.pv-measure-actions { margin:16px 0 12px; display:flex; align-items:flex-start; gap:10px; flex-wrap:wrap; }
.pv-measure-actions>button { font-size:10px; padding:8px 10px; }
.pv-measure-actions>label { display:flex; flex-direction:column; gap:5px; font-size:9px; color:#8096ad; flex:1; min-width:95px; }
.pv-measure-actions select { font-size:10px; padding:7px 8px; min-height:32px; }
.pv-measure-list { margin:16px 0; border-top:1px solid #e4ebf3; }
.pv-measure-list>p { font-size:10px; padding:13px 0; color:#92a5b8; line-height:1.7; }
.pv-measure-list>article { display:flex; align-items:center; border-bottom:1px solid #e8eef5; gap:7px; padding:10px 0; }
.pv-measure-list>article>button:first-child { display:flex; flex-direction:column; align-items:flex-start; gap:5px; flex:1; min-width:0; text-align:left; border:0; background:transparent; padding:5px 0; }
.pv-measure-list b { color:#326b9c; font-weight:550; font-size:14px; }
.pv-measure-list small { color:#91a4b8; font-size:9px; }
.pv-measure-list>article>button:last-child { padding:7px; }
.pv-dimension,.pv-snap-indicator { pointer-events:none; }
@media(max-width:1050px) { .pv-measure-panel { max-height:420px; } .pv-measure-actions>label { flex:0 1 150px; } }
@media(max-width:760px) { .pv-snap-toggle { font-size:9px!important; gap:4px!important; } .pv-spatial-note { font-size:8px; padding:6px 7px; } }

/* A compact workbench: related tools are grouped, plan management stays visible. */
.pv-plan-row{position:relative;min-width:0}
.pv-plan-row .pv-plan-item{padding-right:32px!important}
.pv-plan-menu>summary{position:absolute;right:3px;top:10px;display:grid;place-items:center;width:27px;height:28px;list-style:none;cursor:pointer;color:#758aa1;border-radius:6px}
.pv-plan-menu>summary::-webkit-details-marker{display:none}
.pv-plan-menu>summary:hover,.pv-plan-menu[open]>summary{background:#e5edf7;color:#2e65a6}
.pv-plan-menu>summary:focus-visible{outline:2px solid #70a7df;outline-offset:1px}
.pv-plan-menu>div{margin:1px 2px 9px;padding:4px;background:#fff;border:1px solid #dce5ef;border-radius:7px;box-shadow:0 3px 9px #253d5710}
.pv-plan-menu>div>button{width:100%;justify-content:flex-start;font-size:10px;min-height:31px;border:0;background:transparent;padding:6px 8px}
.pv-plan-menu>div>button:hover{background:#f0f5fb}
.pv-current-plan-actions{display:flex;align-items:center;gap:5px;padding:6px 12px;background:#fff;border-bottom:1px solid var(--pv-line);flex-wrap:wrap}
.pv-current-plan-actions>span{display:flex;align-items:center;gap:5px;margin-right:auto;color:#7c8fa4;font-size:10px}
.pv-current-plan-actions>button{padding:5px 8px;border:0;background:transparent;font-size:10px;color:#506c8a;border-radius:6px;white-space:nowrap}
.pv-current-plan-actions>button:hover{background:#f1f5fa}
.pv-current-plan-actions>button.pv-danger,.pv-plan-menu .pv-danger{color:#a05454}
.pv-current-plan-actions>button.pv-danger:hover,.pv-plan-menu .pv-danger:hover{background:#fff3f3;color:#9d3d3d}
.pv-tools-shell{background:#fff;border-bottom:1px solid var(--pv-line)}
.pv-toolbar{min-height:0;padding:11px 12px 9px;gap:9px;align-items:flex-start;border-bottom:0;background:#fff}
.pv-tool-group{display:flex;flex-direction:column;gap:5px;padding-right:9px;border-right:1px solid #e7edf3}
.pv-tool-group-label{font-size:9px;font-weight:600;letter-spacing:.3px;color:#73869b;padding-left:3px}
.pv-tool-group-buttons{display:flex;align-items:center;gap:2px}
.pv-tool{height:32px;min-width:31px;color:#5b718a;border-radius:6px;padding:6px}
.pv-tool-labelled{padding:6px 8px;gap:5px!important}
.pv-tool-labelled>span{font-size:10px;font-weight:500}
.pv-tool.is-active{background:#e8f1fc;border-color:#c9dcf4;color:#1b60ad;box-shadow:0 1px 2px #21476b09}
.pv-tool-group .pv-color{margin:0 2px}
.pv-tool-history{align-self:flex-end;margin-left:auto;display:flex;align-items:center}
.pv-tool-history .pv-tool{border-color:#e0e8f1;background:#fff}
.pv-navigation-options{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:8px 12px;background:#f8fafc;border-top:1px solid #edf1f6;font-size:10px;color:#6b8198}
.pv-wheel-choice{display:flex;flex-direction:row;align-items:center;gap:6px;margin:0;font-size:10px;color:#526d89;font-weight:500;white-space:nowrap}
.pv-wheel-choice select{padding:4px 7px;border:1px solid #dce5ee;border-radius:5px;font-size:10px;max-width:175px;color:#3a5a7e;background:#fff;min-height:27px}
.pv-wheel-hint{font-size:9px;line-height:1.5;color:#7c8fa4}
.pv-navigation-options .pv-snap-toggle{margin-left:auto;display:flex;align-items:center;gap:5px;font-size:10px;color:#5b758e;white-space:nowrap}
.pv-navigation-options .pv-snap-toggle input{width:13px;height:13px;margin:0;accent-color:#397bc5}
.pv-manage-heading{display:flex;align-items:center;gap:12px;margin-bottom:24px}
.pv-manage-heading>span{width:46px;height:46px;display:grid;place-items:center;background:#edf4fd;border:1px solid #dce8f8;color:#4977a8;border-radius:11px;flex:none}
.pv-manage-heading h2{margin:3px 0 0}
.pv-manage-heading p{margin:6px 0 0;font-size:12px;line-height:1.5;color:#7e91a6}
@media(max-width:1250px){.pv-tool-labelled>span{display:none}.pv-toolbar{gap:7px}.pv-tool-group{padding-right:7px}.pv-wheel-hint{flex-basis:100%;order:3}.pv-navigation-options .pv-snap-toggle{margin-left:auto}}
@media(max-width:760px){.pv-toolbar{padding:9px 8px;gap:7px}.pv-tool-group-label{font-size:8px}.pv-tool{height:31px;min-width:30px}.pv-tool-labelled{padding:6px}.pv-current-plan-actions{padding:6px 8px}.pv-current-plan-actions>button{font-size:9px;padding:5px}.pv-navigation-options{padding:7px 8px}.pv-wheel-choice select{max-width:160px}}
@media(max-width:560px){.pv-plan-row{flex:0 0 185px;min-width:185px}.pv-plan-row .pv-plan-item{width:100%;min-width:0}.pv-plan-list:has(.pv-plan-menu[open]){max-height:260px}.pv-current-plan-actions>span{font-size:9px}.pv-wheel-choice{gap:4px}.pv-navigation-options .pv-snap-toggle{font-size:9px}.pv-tool-group{gap:4px}.pv-tool-history{margin-left:0;order:-1}.pv-toolbar{column-gap:6px;row-gap:10px}}
/* Calibrated polygon areas use the same scale and plan version as distances. */
.pv-viewport[data-tool=area]{cursor:crosshair}
.pv-area-controls{padding:13px;border:1px solid #c8dfe6;border-radius:9px;background:#f3f9fb;margin:10px 0 14px}
.pv-area-controls>strong{font-size:11px;color:#24637a}
.pv-area-controls>p{font-size:10px;line-height:1.6;color:#638397;margin:7px 0}
.pv-area-controls>output{display:block;font-size:20px;font-weight:600;color:#167b93;margin:10px 0}
.pv-area-controls>div{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.pv-area-controls button{font-size:10px;padding:7px 9px}
.pv-area-controls #pv-area-error{color:#a14338;margin-bottom:0}
.pv-area-controls #pv-area-error:empty{display:none}
.pv-measure-actions>button{display:inline-flex;align-items:center;gap:5px}
