/* Deficiency editor: trades, photos, photo preview and photo mark-up editor. (Files load in this order: base, layout, projects, viewer, editor, report, report-blocks — see index.html; later files win.) */
/* ---------- Trades ---------- */
.newtrade{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:10px;border:1px dashed var(--accent);border-radius:8px;background:var(--accent-soft)}
.newtrade-btns{grid-column:1/-1;display:flex;gap:8px}
.chip-select{padding:4px 30px 4px 10px;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;-webkit-appearance:none;appearance:none;background-image:var(--chev);background-repeat:no-repeat;background-position:right 10px center;background-size:12px 12px}
.tr-list{display:grid;gap:6px}
.tr-cols,.tr-row{display:grid;grid-template-columns:28px minmax(0,1.2fr) minmax(0,1fr) 40px auto;gap:8px;align-items:center}
.tr-cols{font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);padding:0 0 2px}
.tr-row{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:6px 8px}
.tr-row .input{padding:7px 8px}
.tr-row.dragging{border-color:var(--accent);box-shadow:var(--shadow);position:relative;z-index:2}
.tr-row.arch{background:var(--surface-2)}
.tr-handle{width:28px;height:34px;display:grid;place-items:center;color:var(--muted);cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}
.tr-handle:active{cursor:grabbing}
.tr-use{font-family:var(--f-mono);font-size:12px;text-align:center;color:var(--muted);font-variant-numeric:tabular-nums}
.tr-acts{display:flex;gap:2px}
.tr-acts .btn{padding:6px 8px}
.tr-acts .btn.danger:not(.armed){color:var(--muted)}
.tr-acts .btn.danger:not(.armed):hover{color:var(--open)}
.tr-add{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) auto;gap:8px;padding-left:36px}
.tr-copy{display:grid;gap:8px;border-top:1px solid var(--line);padding-top:12px}
.tr-copy>.btn{justify-self:start}
.tr-copy-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px}
.tr-archived summary{cursor:pointer;color:var(--muted);font-size:13px;font-weight:500;margin-bottom:6px}
.inl{vertical-align:-1px}
@media (max-width:600px){
  .tr-cols{display:none}
  .tr-row{grid-template-columns:28px minmax(0,1fr) 34px;grid-template-areas:"h n u" "h w w" "a a a"}
  .tr-row .tr-handle{grid-area:h}.tr-row .tr-name{grid-area:n}.tr-row .tr-who{grid-area:w}.tr-row .tr-use{grid-area:u}.tr-row .tr-acts{grid-area:a;justify-content:flex-end}
  .tr-add{grid-template-columns:1fr;padding-left:0}
  .newtrade{grid-template-columns:1fr}
}

/* photo markup */
.pmk{--pmk-stage:#2b2e33;position:fixed;inset:0;z-index:45;background:var(--bg);display:grid;grid-template-rows:auto minmax(0,1fr);color:var(--ink)}
@media screen and (prefers-color-scheme:dark){:root:not([data-theme="light"]) .pmk{--pmk-stage:#16181b}}
@media screen{:root[data-theme="dark"] .pmk{--pmk-stage:#16181b}}
.pmk-head{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;background:var(--surface);border-bottom:1px solid var(--line);
  padding:calc(6px + env(safe-area-inset-top,0px)) max(12px,env(safe-area-inset-right,0px)) 6px max(12px,env(safe-area-inset-left,0px));min-height:52px}
.pmk-head h2{margin:0;font-size:15px;font-weight:600;white-space:nowrap}
.pmk-hbtn{justify-self:start;min-height:40px;padding:0 10px;border:0;border-radius:8px;background:none;color:var(--accent);font:500 15px/1 var(--f-sans);cursor:pointer}
.pmk-hbtn:hover{background:var(--accent-soft)}
.pmk-save{justify-self:end;min-height:40px;min-width:84px}
.pmk-stage{position:relative;overflow:hidden;touch-action:none;-webkit-user-select:none;user-select:none;background:var(--pmk-stage)}
.pmk-stage.panning{cursor:grabbing}
.pmk-stage[data-tool="text"]{cursor:text}.pmk-stage[data-tool="eraser"]{cursor:cell}
.pmk-stage:not([data-tool="text"]):not([data-tool="eraser"]){cursor:crosshair}
.pmk-view{position:absolute;left:0;top:0;transform-origin:0 0}
.pmk-view canvas{display:block;box-shadow:0 2px 18px rgba(0,0,0,.35)}
.pmk .mk-textin{position:absolute;z-index:3;min-width:140px;max-width:min(70%,520px);font-weight:600;line-height:1.25;padding:2px 4px;border:1.5px dashed var(--accent);border-radius:4px;background:rgba(255,255,255,.92);resize:none;overflow:hidden;box-shadow:var(--shadow);-webkit-user-select:text;user-select:text}
.pmk-tbox{position:absolute;z-index:2;border:1.5px dashed #fff;outline:1.5px dashed var(--accent);outline-offset:-1.5px;border-radius:4px;pointer-events:none}
.pmk-tbox[hidden]{display:none}
.pmk-h{position:absolute;right:-11px;bottom:-11px;width:22px;height:22px;border-radius:50%;background:var(--accent);border:2px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.4);pointer-events:auto;cursor:nwse-resize;touch-action:none}
.pmk-h::before{content:"";position:absolute;inset:-9px}
.pmk-dock{position:absolute;left:50%;transform:translateX(-50%);bottom:calc(12px + env(safe-area-inset-bottom,0px));z-index:4;display:grid;justify-items:center;gap:8px;max-width:calc(100% - 16px)}
.pmk-tools{display:flex;flex-wrap:nowrap;align-items:center;gap:2px;padding:5px 6px;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:0 6px 24px rgba(0,0,0,.28)}
.pmk-tools .tb-btn{min-width:40px;height:40px}
.pmk-tools .tb-sep{margin:0 3px}
.pmk-style i{display:block;border-radius:50%;box-shadow:0 0 0 2px var(--surface),0 0 0 3px var(--line)}
.pmk-pop{display:grid;gap:6px;padding:10px;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:0 6px 24px rgba(0,0,0,.28);width:max-content;max-width:calc(100vw - 24px)}
.pmk-pop[hidden]{display:none}
.pmk-row{display:flex;flex-wrap:wrap;gap:2px;justify-content:center}
.pmk-colors{display:grid;grid-template-columns:repeat(5,40px)}
.pmk-pop .st-btn{min-width:40px;height:40px}
.pmk-finger{display:flex;align-items:center;gap:8px;min-height:40px;padding:0 6px;border:0;border-top:1px solid var(--line);background:none;color:var(--ink);font:500 13px/1 var(--f-sans);cursor:pointer;margin-top:2px;padding-top:6px}
.pmk-finger span{flex:1;text-align:left}
.pmk-finger .sw{width:34px;height:20px;border-radius:10px;background:var(--line);position:relative;transition:background .15s}
.pmk-finger .sw::after{content:"";position:absolute;left:2px;top:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.3);transition:left .15s}
.pmk-finger[aria-pressed="true"] .sw{background:var(--accent)}.pmk-finger[aria-pressed="true"] .sw::after{left:16px}
.pmk-confirm{position:absolute;inset:0;z-index:6;display:grid;place-items:center;background:rgba(0,0,0,.45);padding:16px}
.pmk-confirm[hidden]{display:none}
.pmk-card{display:grid;gap:8px;max-width:340px;padding:18px;border-radius:14px;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow)}
.pmk-card b{font-size:16px}.pmk-card span{color:var(--muted);font-size:14px}
.pmk-card div{display:flex;justify-content:flex-end;gap:8px;margin-top:6px}
@media (max-width:380px){.pmk-tools{gap:0;padding:4px}.pmk-tools .tb-btn{min-width:38px;padding:0 4px}.pmk-tools .tb-sep{margin:0 1px}}
.top select.btn{padding-right:30px;background-position:right 10px center}
.viewer{grid-template-rows:auto minmax(0,1fr)}
.viewer>.vbar{grid-row:1}.viewer>.scroller{grid-row:2}
/* ---------- v0.2.8: photo preview bar, media menu, home logo, shared report back ---------- */
.lightbox{padding:calc(68px + env(safe-area-inset-top,0px)) 16px calc(16px + env(safe-area-inset-bottom,0px))}
.lightbox img,.lightbox video{max-height:100%}
.lb-bar{position:absolute;top:calc(12px + env(safe-area-inset-top,0px));right:max(12px,env(safe-area-inset-right,0px));display:flex;gap:8px;align-items:center}
.lb-btn{display:inline-flex;align-items:center;gap:8px;min-height:40px;min-width:40px;padding:0 14px;border-radius:10px;border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.12);color:#fff;font:600 14px/1 var(--f-sans);cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.lb-btn:hover{background:rgba(255,255,255,.22)}
.lb-btn:focus-visible{outline:2px solid #fff;outline-offset:2px}
.lb-btn.lb-mark{background:#fff;color:#111;border-color:#fff}
.lb-btn.lb-mark:hover{background:#e9edf3}
.lightbox .lb-close{width:40px;height:40px;padding:0;justify-content:center;border-radius:50%}
@media (max-width:480px){.lb-dl span{display:none}.lb-dl{padding:0;width:40px;justify-content:center}}
.tmore{position:absolute;top:4px;right:4px;width:32px;height:32px;display:grid;place-items:center;border:0;border-radius:8px;background:rgba(17,20,26,.62);color:#fff;cursor:pointer;z-index:2}
.tmore:hover{background:rgba(17,20,26,.82)}
@media (pointer:coarse){.tmore{width:36px;height:36px}}
.media-menu{z-index:60;min-width:180px}
.vm-item.danger{color:var(--open)}
a.logo{color:inherit;text-decoration:none;border-radius:8px}
a.logo:hover .logo-txt{text-decoration:underline;text-underline-offset:3px}
a.logo:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.top-left a.logo.home{display:inline-flex;align-items:center;gap:8px;font-size:15px;font-weight:600;padding:0 8px;min-height:34px;flex:none}
.top-left .crumb{color:var(--muted);flex:none}
@media (max-width:1279px){.top-left a.logo.home .logo-txt,.top-left .crumb{display:none}}
.sh-top .sh-left{display:flex;align-items:center;gap:10px;min-width:0}
/* v0.4.1: Levels / Areas dialogs, repair cost */
.ls-tabs{margin:0 16px;display:grid;grid-template-columns:repeat(3,1fr)}
.tr-row.ls-row{grid-template-columns:28px minmax(0,1fr) 40px auto}
@media (max-width:600px){.tr-row.ls-row{grid-template-columns:28px minmax(0,1fr) 34px;grid-template-areas:"h n u" "a a a"}}
.cost-total{flex-basis:100%;display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;font-size:13px;padding:2px 2px 0}
.cost-total b{font-variant-numeric:tabular-nums;font-size:15px}
.cost-err{color:var(--open)!important;text-transform:none!important;letter-spacing:0!important;font-weight:400!important}
#fCost{font-variant-numeric:tabular-nums}
.lists .tr-add{grid-template-columns:minmax(0,1fr) auto}
.loc-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.loc-now{font-size:13px;color:var(--muted)}
/* v0.5.0 Quick titles: suggestions under the title, the Quick titles row, Settings list */
.qt-anchor{position:relative}
.qt-sug{position:absolute;left:0;right:0;top:100%;margin-top:2px;z-index:30;background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.16);padding:4px;display:grid;max-height:280px;overflow:auto;text-transform:none;letter-spacing:0;font-weight:400}
.qt-s{display:flex;align-items:center;gap:8px;min-height:40px;padding:6px 10px;border:0;border-radius:6px;background:none;color:var(--ink);text-align:left;cursor:pointer;font:inherit;font-size:14px}
.qt-s span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.qt-s i{display:flex;color:var(--accent)}.qt-s b{font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--muted);font-weight:500}
.qt-s:hover,.qt-s.on{background:var(--accent-soft)}
.qt-bar{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:-4px}
.qt-bar:has(.qt-row[hidden]):has(.qt-save[hidden]){display:none}
.qt-row{flex:1 1 100%;display:flex;flex-wrap:wrap;align-items:center;gap:6px;min-width:0}
.qt-lab{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.qt-find{width:auto;flex:0 1 160px;padding:5px 8px;font-size:13px}
.qt-chips{display:flex;gap:6px;overflow-x:auto;flex:1 1 100%;padding-bottom:2px;scrollbar-width:thin}
.qt-chip{white-space:nowrap;flex:0 0 auto;max-width:240px;overflow:hidden;text-overflow:ellipsis}
.qt-save{padding:4px 8px;font-size:13px;color:var(--accent)}
.qtm-list{display:grid;gap:0;max-height:min(52vh,460px);overflow:auto;border:1px solid var(--line);border-radius:8px}
.qtm-list>p{margin:12px}
.qtm-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:4px;padding:6px 6px 6px 4px;border-bottom:1px solid var(--line)}
.qtm-row:last-child{border-bottom:0}
.qtm-move{display:grid}.qtm-move .icon-btn{width:28px;height:20px}
.qtm-main{display:grid;gap:2px;min-width:0}.qtm-t{padding:5px 8px}
.qtm-meta{font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-left:2px}
.qtm-tools{display:flex;flex-wrap:wrap;gap:8px}.qtm-tools select{width:auto;flex:1 1 180px}
/* v0.5.2 repair time: hours with quick choices, est. cost suggestion, rate per trade */
.time-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.time-row input{flex:0 0 96px;width:96px}
.h-chips{display:flex;flex-wrap:wrap;gap:4px}
.h-chip{padding:4px 9px;font-size:13px}
.h-chip[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.est-cost{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:4px;padding:6px 8px;border:1px dashed var(--accent);border-radius:8px;background:var(--accent-soft);font-size:13px;text-transform:none;letter-spacing:0;font-weight:400;color:var(--ink)}
.est-cost .btn{padding:4px 10px;font-size:13px}
.tr-cols.rated,.tr-row.rated{grid-template-columns:28px minmax(0,1.2fr) minmax(0,1fr) 84px 40px 140px}
.tr-row.rated .tr-acts{justify-content:flex-end}
@media (max-width:600px){
  .tr-row.rated{grid-template-columns:28px minmax(0,1fr) 84px 34px;grid-template-areas:"h n n u" "h w r r" "a a a a"}
  .tr-row .tr-rate{grid-area:r}
}
/* v0.5.7.8 edit my site visits */
.vis-editor{display:grid;gap:8px}
.vis-erow{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.vis-erow .input{width:auto;min-height:36px}
.vis-erow input[type="date"]{min-width:140px}
