:root{--purple:#54308c;--purple-dark:#432470;--purple-tint:#f6f3fa;--purple-edge:#e4dcf0;--green:#94a34d;--green-dark:#5c6b22;--ink:#1b1b1b;--muted:#5f5f5f;--grey10:#e8e8e8;--rule:#ccc;--canvas:#f3f3f3;--white:#fff;--error:#b3261e;--error-tint:#fbe9e7;--red-edge:#f2c4bf;--red-dark:#8c1d18;--amber-tint:#fdf4e7;--amber-edge:#f2d9b3;--amber-dark:#8a3d06;--purple-light:#b9a6dc;--font:"DM Sans", "DM Sans 14pt", "Segoe UI", system-ui, Arial, sans-serif;--mono:ui-monospace, Consolas, "Cascadia Mono", monospace;--radius-s:8px;--radius:12px;--radius-l:16px;--shadow:0 1px 2px #0000000d;--tabbar-h:58px;--safe-top:env(safe-area-inset-top,0px);--ease-out:cubic-bezier(.215, .61, .355, 1);--safe-bottom:env(safe-area-inset-bottom,0px);--head-h:61px;--gutter-l:max(16px, env(safe-area-inset-left,0px));--gutter-r:max(16px, env(safe-area-inset-right,0px));--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body{margin:0}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}html,body{overscroll-behavior-y:none}body{background:var(--canvas);color:var(--ink);font-family:var(--font);-webkit-tap-highlight-color:transparent;-webkit-font-smoothing:antialiased;font-size:16px;line-height:1.4}h1,h2,h3{color:var(--purple);text-wrap:balance;margin:0;font-weight:700}h1{font-size:22px;line-height:1.2}h2{font-size:19px}p{margin:0}a{color:var(--purple)}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--purple);outline-offset:2px}.muted{color:var(--muted)}.small{font-size:14px}.wrap{overflow-wrap:anywhere}.lead{text-align:center;font-size:17px}.skip{z-index:50;background:var(--white);border-radius:var(--radius-s);padding:8px 12px;position:absolute;top:-48px;left:8px}.skip:focus{top:calc(8px + var(--safe-top))}.btn{border-radius:var(--radius);cursor:pointer;-webkit-user-select:none;user-select:none;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;min-height:48px;padding:10px 18px;font-size:17px;font-weight:700;text-decoration:none;transition:background-color .15s,transform .1s;display:inline-flex}.btn:active:not(:disabled){transform:scale(.98)}.btn:disabled{opacity:.55;cursor:default}.btn-primary{background:var(--purple);color:var(--white);border-color:var(--purple)}@media (hover:hover){.btn-primary:hover:not(:disabled){background:var(--purple-dark)}}.btn-go{background:var(--green);color:var(--ink);border-color:var(--green)}@media (hover:hover){.btn-go:hover:not(:disabled){background:#87964a;border-color:#87964a}}.btn-secondary{background:var(--white);color:var(--purple);border-color:var(--purple)}@media (hover:hover){.btn-secondary:hover:not(:disabled){background:var(--purple-tint)}}.btn-quiet{color:var(--purple);background:0 0}@media (hover:hover){.btn-quiet:hover:not(:disabled){background:var(--purple-tint)}}.btn-wide{width:100%}.btn-small{min-height:44px;padding:8px 10px;font-size:15px}.btn>svg{flex:none}.icon-btn{width:44px;height:44px;color:var(--purple);cursor:pointer;background:0 0;border:0;border-radius:999px;place-items:center;margin-left:-10px;display:inline-grid}@media (hover:hover){.icon-btn:hover{background:var(--purple-tint)}}.icon-btn:active{background:var(--purple-edge)}.app{min-height:100vh;min-height:100dvh}.main-col{min-width:0}.main{padding-bottom:calc(var(--tabbar-h) + var(--safe-bottom) + 24px)}.sidebar{display:none}.offline{z-index:20;padding:calc(6px + var(--safe-top)) 16px 6px;background:var(--ink);color:var(--white);justify-content:center;align-items:center;gap:8px;font-size:14px;font-weight:700;display:flex;position:sticky;top:0}.tabbar{z-index:30;height:calc(var(--tabbar-h) + var(--safe-bottom));padding:0 env(safe-area-inset-right,0px) var(--safe-bottom) env(safe-area-inset-left,0px);border-top:1px solid var(--grey10);-webkit-backdrop-filter:saturate(1.6)blur(14px);background:#fffffff0;display:flex;position:fixed;inset:auto 0 0}.tab{color:var(--muted);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;font-size:12px;font-weight:700;text-decoration:none;transition:color .15s;display:flex}.tab svg{transition:transform .15s}.tab:active svg{transform:scale(.9)}.tab[aria-current=page]{color:var(--purple)}.page-header{z-index:10;border-bottom:1px solid var(--grey10);box-shadow:inset 0 3px 0 var(--purple);padding-top:var(--safe-top);-webkit-backdrop-filter:saturate(1.6)blur(14px);background:#fffffff5;position:sticky;top:0}.offline+.main .page-header{top:calc(32px + var(--safe-top));box-shadow:none;padding-top:0}.page-header-in{min-height:60px;padding:6px var(--gutter-r) 6px var(--gutter-l);align-items:center;gap:10px;display:flex}.page-header h1{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.header-mark{display:flex}.page-header .icon-btn+h1{margin-left:-6px}.header-actions{align-items:center;gap:4px;margin-right:-8px;display:flex}.header-add{align-items:center;gap:8px;display:flex}.header-add:empty{display:none}@media (min-width:900px){.header-actions .icon-btn,.header-actions .icon-btn:hover,.header-actions .icon-btn:active{background:0 0}@media (hover:hover){.header-actions .icon-btn:hover{color:var(--purple-dark)}}.header-actions .icon-btn:active{color:var(--purple-dark);opacity:.7}}.btn-head{gap:6px;min-height:40px;padding:6px 14px 6px 10px;font-size:15px}.btn-head.btn-primary{order:1}.title-note{color:var(--muted);letter-spacing:.03em;vertical-align:.12em;margin-left:4px;font-size:.62em;font-weight:600}.page-header h1:has(+.title-done){flex:0 auto}.title-done{flex:none;width:24px;height:24px;margin-left:-2px;margin-right:auto}.page-body{padding:16px var(--gutter-r) 0 var(--gutter-l);flex-direction:column;gap:14px;display:flex}.page-body.narrow{max-width:640px}.card{background:var(--white);border:1px solid var(--grey10);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;gap:12px;min-width:0;padding:16px;display:flex}.card-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.avatar{background:var(--purple);width:36px;height:36px;color:var(--white);letter-spacing:.02em;border-radius:999px;flex:none;place-items:center;font-size:14px;font-weight:700;display:inline-grid}.avatar-lg{width:56px;height:56px;font-size:20px}.profile{flex-direction:row;align-items:center;gap:14px}.profile-text{flex-direction:column;flex:1;min-width:0;display:flex}.profile-text strong{font-size:18px}.badge{background:var(--purple-tint);border:1px solid var(--purple-edge);color:var(--purple);border-radius:999px;flex:none;padding:3px 10px;font-size:13px;font-weight:700}.avatar{position:relative}.avatar-mark{line-height:0;display:flex;position:absolute;bottom:-4px;right:-6px}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.chip{color:var(--muted);border:1px solid var(--rule);border-radius:999px;padding:2px 10px;font-size:13px}.steps{flex-direction:column;gap:8px;margin:0;padding-left:22px;display:flex}.inline-icon{vertical-align:-3px;color:var(--purple)}.version{text-align:center;color:var(--muted);padding:4px 0 8px;font-size:13px}.empty{text-align:center;color:var(--muted);flex-direction:column;align-items:center;gap:10px;padding:56px 24px;display:flex}.empty-icon{background:var(--purple-tint);width:64px;height:64px;color:var(--purple);border-radius:999px;place-items:center;margin-bottom:4px;display:grid}.empty h2{color:var(--ink);font-size:19px}.empty .btn{margin-top:8px}.list{background:var(--white);border:1px solid var(--grey10);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.list-group{flex-direction:column;gap:8px;display:flex}.list-heading{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;padding:6px 4px 0;font-size:14px}.list-note{margin:0;padding:0 4px;font-size:14px}.health-head{align-items:center;gap:14px;display:flex}.health-head>svg{color:var(--green);flex:none}.health-head.degraded>svg{color:var(--error)}.health-head strong{font-size:18px}.health-mark{flex:none;font-size:14px;font-weight:700;display:inline-flex}.health-mark.ok{color:var(--green)}.health-mark.bad{color:var(--error)}.health-mark.muted{color:var(--muted);font-weight:400}.health-settings{margin:0;padding:4px 16px;list-style:none}.health-settings li{justify-content:space-between;align-items:center;gap:12px;min-height:40px;display:flex}.health-settings li+li{border-top:1px solid var(--grey10)}.health-settings code{overflow-wrap:anywhere;font-size:13px}.activity-filters{flex-direction:column;gap:10px;display:flex}.kind-chips{scrollbar-width:none;gap:8px;margin:0 -16px;padding:2px 16px;display:flex;overflow-x:auto}.kind-chips::-webkit-scrollbar{display:none}@media (min-width:900px){.kind-chips{flex-wrap:wrap;margin:0;padding:0;overflow:visible}}.kind-chip{border:1px solid var(--rule);background:var(--white);min-height:44px;color:var(--ink);font:inherit;cursor:pointer;border-radius:999px;flex:none;align-items:center;gap:6px;padding:6px 14px;font-size:15px;font-weight:600;transition:background-color .12s,color .12s,border-color .12s;display:inline-flex}.kind-chip svg{color:var(--muted)}.kind-chip[aria-pressed=true]{background:var(--purple);border-color:var(--purple);color:var(--white)}.kind-chip[aria-pressed=true] svg{color:var(--white)}@media (hover:hover){.kind-chip[aria-pressed=false]:hover{border-color:var(--purple)}}.activity-selects{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}@media (max-width:600px){.activity-selects{grid-template-columns:repeat(2,minmax(0,1fr))}.activity-selects .select:first-child{grid-column:1/-1}}.select{border:1px solid var(--grey10);border-radius:var(--radius);background:var(--white);min-width:0;min-height:46px;color:var(--muted);align-items:center;gap:8px;padding:0 12px;display:flex;position:relative}.select:focus-within{outline:2px solid var(--purple);outline-offset:-1px}.select select{min-width:0;height:44px;font:inherit;color:var(--ink);appearance:none;text-overflow:ellipsis;cursor:pointer;background:0 0;border:0;outline:0;flex:1;font-size:16px}.select .select-chevron{pointer-events:none;flex:none}.activity-clear{align-self:flex-start;padding-top:0}.activity-list{margin:0;padding:0;list-style:none}.activity-list li+li .row{border-top:1px solid var(--grey10)}.activity-row{align-items:flex-start;min-height:0;padding-block:12px}.activity-row .row-icon{width:36px;height:36px;margin-top:1px}.history-head{align-items:center;gap:4px;margin-top:2px;display:flex}.history-head .list-heading{flex:1;min-width:0;padding:0}.history-toggle{border-radius:var(--radius-s);width:100%;min-height:44px;color:inherit;font:inherit;letter-spacing:inherit;text-transform:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;padding:0 4px;display:flex}.history-chevron{transition:transform .2s var(--ease-out)}.history-toggle[aria-expanded=true] .history-chevron{transform:rotate(180deg)}.history-filter{width:40px;height:40px;color:var(--muted);margin:0}.history-filter[aria-expanded=true]{background:var(--purple-tint);color:var(--purple)}.history-filter.on{color:var(--purple);position:relative}.history-filter.on:after{content:"";border:2px solid var(--canvas);background:var(--purple);border-radius:999px;width:8px;height:8px;position:absolute;top:8px;right:8px}.history-pop{min-width:240px;top:calc(100% + 2px);right:0}.check-item .check{border-radius:6px;width:22px;height:22px}.check-item .check svg{color:inherit}.check-item[aria-checked=true] .check{background:var(--purple);border-color:var(--purple);color:var(--white)}.history-none{color:var(--muted);margin:0;padding:14px 4px}@media (prefers-reduced-motion:reduce){.history-chevron{transition:none}}.activity-sentence{overflow-wrap:break-word;line-height:1.4}.activity-sentence strong,.activity-detail-sentence strong{overflow-wrap:anywhere;max-width:100%;display:inline-block}.activity-more{flex-direction:column;align-items:center;gap:8px;padding:4px 0 24px;display:flex}.more-link{border-radius:var(--radius-s);width:-moz-fit-content;width:fit-content;min-height:44px;color:var(--purple);font:inherit;cursor:pointer;background:0 0;border:0;justify-content:center;align-self:center;align-items:center;margin-inline:auto;padding:8px 16px;font-size:15px;font-weight:700;display:flex}.more-link:disabled{color:var(--muted);cursor:default}@media (hover:hover){.more-link:hover:not(:disabled){background:var(--purple-tint)}}.activity-detail{flex-direction:column;gap:18px;display:flex}.activity-detail-sentence{overflow-wrap:anywhere;margin:0;font-size:17px;line-height:1.45}.activity-wrap{overflow-wrap:anywhere}.activity-changes h3{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin:0 0 8px;font-size:14px}.activity-changes ul{border:1px solid var(--grey10);border-radius:var(--radius-s);margin:0;padding:0;list-style:none}.activity-changes li{flex-direction:column;gap:4px;padding:10px 12px;display:flex}.activity-changes li+li{border-top:1px solid var(--grey10)}.activity-field{overflow-wrap:anywhere;font-size:15px;font-weight:700}.activity-from-to{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px;font-size:15px;display:flex}.activity-from-to svg{flex:none}.activity-from-to .was{overflow-wrap:anywhere;-webkit-text-decoration:line-through #0000004d;text-decoration:line-through #0000004d}.activity-from-to .now{color:var(--ink);overflow-wrap:anywhere;font-weight:600}.activity-from-to .none{font-style:italic;font-weight:400;text-decoration:none}.row-icon.row-icon-muted{background:var(--grey10);color:var(--muted)}.row-icon.row-icon-danger{background:var(--error-tint);color:var(--error)}.page-sub{margin:-4px 4px 0}.list.pop-host{overflow:visible}.pop-host>:first-child,.pop-host>:first-child .row{border-radius:var(--radius) var(--radius) 0 0;border-top:0}.pop-host>:last-child,.pop-host>:last-child.row{border-radius:0 0 var(--radius) var(--radius)}.pop-anchor{position:relative}.pop{z-index:5;border-radius:var(--radius-l);background:var(--white);transform-origin:100% 0;flex-direction:column;min-width:230px;padding:6px;animation:.14s ease-out pop-in;display:flex;position:absolute;top:calc(100% - 8px);right:10px;box-shadow:0 12px 32px #0000002e,0 0 0 1px #0000000d}.pop-item{border-radius:var(--radius-s);min-height:46px;color:var(--ink);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:12px;padding:0 12px;font-weight:600;text-decoration:none;display:flex}.pop-item svg{color:var(--purple)}@media (hover:hover){.pop-item:hover,.pop-item:focus-visible{background:var(--purple-tint);outline:none}}@keyframes pop-in{0%{opacity:0;transform:scale(.94)translateY(-4px)}}@media (prefers-reduced-motion:reduce){.pop{animation:none}}.ptr{justify-content:center;align-items:flex-end;display:flex;overflow:hidden}.ptr-settle{transition:height .28s cubic-bezier(.2,.9,.3,1)}.ptr-mark{background:var(--white);width:40px;height:40px;color:var(--muted);border-radius:999px;place-items:center;margin-bottom:12px;display:grid;box-shadow:0 2px 8px #00000024}.ptr-ready,.ptr-spin{color:var(--purple)}.ptr-spin svg{animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.ptr-spin svg{animation-duration:2.4s}}.device-marks{flex:none;align-items:center;gap:10px;display:inline-flex}.photo-count{min-width:38px;color:var(--purple);font-variant-numeric:tabular-nums;justify-content:flex-end;align-items:center;gap:4px;font-size:14px;font-weight:600;display:inline-flex}.photo-count.none{color:var(--rule)}.done-mark{background:var(--green);width:20px;height:20px;color:var(--white);border-radius:999px;place-items:center;display:inline-grid}.done-mark.off{background:0 0}.done-mark svg{display:block}.done-mark.pending{background:var(--purple)}.tip{z-index:90;border-radius:var(--radius-s);background:var(--ink);max-width:min(320px,100vw - 16px);color:var(--white);pointer-events:none;padding:6px 10px;font-size:13px;font-weight:600;line-height:1.35;animation:.12s ease-out tip-in;position:fixed;transform:translateY(-100%);box-shadow:0 4px 14px #00000038}.tip.below{transform:none}@keyframes tip-in{0%{opacity:0}}@media (prefers-reduced-motion:reduce){.tip{animation:none}}.import-count{text-align:right;min-width:38px;color:var(--muted);font-variant-numeric:tabular-nums;flex:none;padding-right:30px;font-size:14px;font-weight:600}.photo-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;display:grid}@media (min-width:600px){.photo-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}}.photo-tile{aspect-ratio:1;border-radius:var(--radius-s);background:var(--grey10);min-height:0;color:var(--muted);cursor:pointer;-webkit-tap-highlight-color:transparent;border:0;place-items:center;padding:0;display:grid;position:relative;overflow:hidden}.photo-tile img{object-fit:cover;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;width:100%;height:100%;display:block}.photo-tile:active:not(.skeleton){transform:scale(.97)}.photo-tile{transition:transform .1s}.photo-tile:focus-visible{outline:3px solid var(--purple);outline-offset:2px}.photo-tile.skeleton{cursor:default;min-height:0}.photo-tile.missing{background:var(--error-tint);color:var(--error)}.photo-tile.upload img{opacity:.55}.photo-tile.upload.done img{opacity:1}.photo-tile.upload.failed img{opacity:.35;filter:grayscale()}.tile-progress{background:#ffffffbf;border-radius:999px;height:5px;position:absolute;bottom:8px;left:8px;right:8px;overflow:hidden}.tile-progress>span{border-radius:inherit;background:var(--purple);height:100%;transition:width .2s linear;display:block}.tile-badge{background:var(--error);width:40px;height:40px;color:var(--white);border-radius:999px;place-items:center;display:grid;position:absolute;box-shadow:0 2px 8px #0003}.tile-override{filter:drop-shadow(0 1px 3px #00000059);line-height:0;display:flex;position:absolute;bottom:6px;left:6px}.photo-empty{border:2px dashed var(--rule);border-radius:var(--radius);width:100%;color:var(--muted);font:inherit;background:0 0;flex-direction:column;align-items:center;gap:8px;padding:26px 16px;font-weight:600;display:flex}.photo-empty svg{color:var(--purple)}button.photo-empty{cursor:pointer;color:var(--purple);border-color:var(--purple-edge);transition:background .15s}@media (hover:hover){button.photo-empty:hover{background:var(--purple-tint)}}button.photo-empty:active{background:var(--purple-tint)}.device-map{border-radius:var(--radius);background:var(--grey10);box-shadow:var(--shadow);-webkit-user-select:none;user-select:none;touch-action:pan-y;cursor:grab;position:relative;overflow:hidden}.device-map.moving{cursor:grabbing}.device-map>img{pointer-events:none;-webkit-user-drag:none;max-width:none;transition:opacity .2s;display:block;position:absolute}.device-map.active,.floor-plan.active{outline:2px solid var(--purple);outline-offset:2px}.device-map.loading>img{opacity:0}.device-map.loading>:not(img){visibility:hidden}.map-pin{cursor:pointer;background:0 0;border:0;place-items:center;padding:0;display:grid;position:absolute}.map-pin.photo{background:var(--white);width:26px;height:26px;color:var(--purple);border:2px solid var(--purple);border-radius:50%;margin:-13px 0 0 -13px;font-family:inherit;font-size:13px;font-weight:700;line-height:1;box-shadow:0 1px 4px #00000059}.map-pin.device{z-index:1;filter:drop-shadow(0 2px 3px #0006);width:34px;height:42px;margin:-42px 0 0 -17px}.map-pin.device path{fill:var(--purple);stroke:var(--white);stroke-width:2px}.map-pin.device circle{fill:var(--white)}.map-leaders{pointer-events:none;position:absolute;inset:0}.map-leaders line{stroke:var(--white);stroke-width:2px}.map-leaders circle{fill:var(--white);stroke:var(--purple);stroke-width:1.5px}.floor-plan{border-radius:var(--radius);background:var(--white);height:300px;box-shadow:var(--shadow);-webkit-user-select:none;user-select:none;touch-action:pan-y;cursor:grab;position:relative;overflow:hidden}.floor-plan:active{cursor:grabbing}.floor-plan.full{height:100%;box-shadow:none;touch-action:none;border-radius:0}.floor-plan>img{transform-origin:0 0;pointer-events:none;-webkit-user-drag:none;max-width:none;position:absolute;top:0;left:0}.floor-plan.loading{background:var(--grey10)}.floor-chip{z-index:2;color:var(--ink);pointer-events:none;background:#fffffff0;border-radius:999px;padding:6px 11px;font-size:14px;font-weight:700;position:absolute;top:10px;left:10px;box-shadow:0 1px 4px #0003}.floor-plan.full .floor-chip,.floor-plan.full .map-controls{top:calc(var(--safe-top) + 12px)}.floor-error{text-align:center;color:var(--muted);margin:0;font-size:14px;position:absolute;inset:auto 0 12px}.floor-dialog{background:var(--white);border:0;width:100%;max-width:none;height:100%;max-height:none;margin:0;padding:0;position:fixed;inset:0}.floor-dialog::backdrop{background:#00000080}.map-accuracy{pointer-events:none;background:#54308c29;border:1.5px solid #fffc;border-radius:50%;position:absolute}.map-controls{z-index:2;flex-direction:column;align-items:flex-end;gap:6px;display:flex;position:absolute;top:10px;right:10px}.map-controls .map-btn:not(.map-type){width:40px;padding:0}.map-controls .map-type{width:84px}.map-btn{border-radius:var(--radius-s);min-width:40px;height:40px;color:var(--ink);cursor:pointer;background:#fffffff0;border:0;place-items:center;padding:0 10px;font-family:inherit;font-size:14px;font-weight:600;display:grid;box-shadow:0 1px 4px #0000004d}.map-btn:disabled{color:var(--rule);cursor:default}@media (pointer:coarse){.map-controls .map-zoom{display:none}}.pin-place{flex-direction:column;gap:10px;display:flex}.pin-place>.pin-map{align-self:center;width:100%;max-width:576px}.pin-map{border-radius:var(--radius);background:var(--grey10);box-shadow:var(--shadow);touch-action:none;cursor:grab;-webkit-user-select:none;user-select:none;outline-offset:3px;position:relative;overflow:hidden}.pin-map.moving{cursor:grabbing}.pin-map>img{pointer-events:none;max-width:none;position:absolute}.pin-plan{background:var(--white)}.pin-plan>img{transform-origin:0 0;-webkit-user-drag:none;top:0;left:0}.pin-plan.loading{background:var(--grey10)}.pin-map.loading>img{opacity:.6}.pin-centre{z-index:3;pointer-events:none;filter:drop-shadow(0 2px 3px #0006);width:34px;height:42px;margin:-42px 0 0 -17px;transition:transform .15s ease-out;position:absolute;top:50%;left:50%}.pin-centre path{fill:var(--purple);stroke:var(--white);stroke-width:2px}.pin-centre circle{fill:var(--white)}.pin-centre.lifted{transform:translateY(-10px)}.pin-tip{z-index:2;opacity:0;pointer-events:none;background:#00000073;border-radius:50%;width:8px;height:4px;margin:-2px 0 0 -4px;transition:opacity .15s;position:absolute;top:50%;left:50%}.pin-tip.shown{opacity:1}.map-was{border:3px solid var(--purple);pointer-events:none;background:#ffffffbf;border-radius:50%;width:14px;height:14px;margin:-7px 0 0 -7px;position:absolute}.map-me{border:3px solid var(--white);pointer-events:none;background:#1a73e8;border-radius:50%;width:18px;height:18px;margin:-9px 0 0 -9px;position:absolute;box-shadow:0 1px 4px #0006}.map-me-ring{pointer-events:none;background:#1a73e829;border:1.5px solid #1a73e880;border-radius:50%;position:absolute}.map-btn.busy svg{animation:.8s ease-in-out infinite alternate pin-locating}@keyframes pin-locating{to{opacity:.3}}.pin-hint{text-align:center;color:var(--muted);margin:0;font-size:14px}.map-failed{color:var(--muted);justify-content:center;align-items:center;gap:6px;margin-top:4px;font-size:14px;display:flex}.photo-tips-link{min-height:44px;color:var(--purple);grid-column:1/-1;justify-self:center;align-items:center;gap:6px;padding:4px 8px;font-size:15px;font-weight:600;text-decoration:none;display:inline-flex}@media (hover:hover){.photo-tips-link:hover{text-decoration:underline}}.capture{flex-direction:column;gap:12px;display:flex}.capture-frame{border-radius:var(--radius);background:#111;place-items:center;min-height:160px;max-height:52vh;display:grid;overflow:hidden}.capture-frame img{object-fit:contain;max-width:100%;max-height:52vh;display:block}.capture-frame.none{min-height:120px;color:var(--muted);flex-direction:column;justify-content:center;gap:6px;font-weight:600;display:flex}.capture-frame.none svg{color:var(--purple)}.capture-frame.small,.capture-frame.small img{max-height:34vh}.capture-frame.small{min-height:120px}.capture-done{z-index:2;border:1px solid var(--green);border-radius:var(--radius-l);background:var(--green);box-shadow:0 0 0 8px var(--white);animation:done-in .32s var(--ease-out);flex:none;align-items:center;gap:16px;padding:16px 18px;display:flex;position:sticky;top:-8px}.capture:has(.capture-done)>*{scroll-margin-top:104px}.capture-done-mark{background:var(--white);width:54px;height:54px;color:var(--green-dark);animation:done-pop .42s var(--ease-out);border-radius:999px;flex:none;place-items:center;display:grid;box-shadow:0 2px 6px #38421238}.capture-done-mark svg{fill:none;stroke:currentColor;stroke-width:3.2px;stroke-linecap:round;stroke-linejoin:round}.capture-done-mark path{stroke-dasharray:24;stroke-dashoffset:24px;animation:done-draw .36s .16s var(--ease-out) forwards}.capture-done-title{min-width:0;color:var(--ink);font-size:23px;font-weight:700;line-height:1.2}.capture-done.kept{border-color:var(--red-edge);background:var(--error-tint)}.capture-done.kept .capture-done-mark{box-shadow:none;background:0 0}.capture-done.kept .capture-done-title{color:var(--red-dark)}@keyframes done-in{0%{opacity:0;transform:translateY(6px)}}@keyframes done-pop{0%{transform:scale(.4)}70%{transform:scale(1.08)}to{transform:scale(1)}}@keyframes done-draw{to{stroke-dashoffset:0}}@media (prefers-reduced-motion:reduce){.capture-done,.capture-done-mark{animation:none}.capture-done-mark path{stroke-dashoffset:0;animation:none}}.capture-note{scroll-margin-bottom:16px}.keep-reasons{flex-wrap:wrap;gap:8px;display:flex}.keep-reason{border:1px solid var(--rule);background:var(--white);min-height:40px;color:var(--ink);font:inherit;cursor:pointer;border-radius:999px;padding:8px 14px;font-size:15px;font-weight:600}.keep-reason.on{border-color:var(--red-edge);background:var(--error-tint);color:var(--red-dark)}.kept-review{color:var(--muted);align-items:flex-start;gap:6px;margin:2px 0 0;font-size:14px;font-weight:600;display:flex}.kept-review.done{color:var(--green-dark)}.kept-review svg{flex:none;margin-top:2px}.kept-approve{align-self:flex-start;margin-top:4px}.chat-bubble .kept-review,.chat-bubble .kept-approve{margin-top:6px}.chat-bubble .kept-approve{display:flex}.btn-progress{cursor:default;background:var(--purple-tint);color:var(--purple);border-color:var(--purple-edge);position:relative;overflow:hidden}.btn-progress:active{transform:none}.btn-progress-fill{background:#54308c33;transition:width .25s linear;position:absolute;inset:0 auto 0 0}.btn-progress-text{font-variant-numeric:tabular-nums;position:relative}.btn-progress.checking:before{content:"";background:linear-gradient(90deg,#0000,#54308c29,#0000);animation:1.4s ease-in-out infinite check-sweep;position:absolute;inset:0;transform:translate(-100%)}@keyframes check-sweep{to{transform:translate(100%)}}@media (prefers-reduced-motion:reduce){.btn-progress.checking:before{animation:none;transform:none}}.check-failed{border-radius:var(--radius);background:var(--error-tint);color:var(--ink);align-items:flex-start;gap:10px;padding:12px 14px;display:flex}.check-failed-mark{background:var(--error);width:28px;height:28px;color:var(--white);border-radius:999px;flex:none;place-items:center;display:grid}.check-failed-reason{margin:3px 0 0;font-weight:700}.check-failed-more{color:var(--muted);margin:2px 0 0;font-size:14px}.plegend{color:var(--muted);grid-template-columns:repeat(2,minmax(0,max-content));gap:6px 20px;margin:0;font-size:13px;display:grid}@media (min-width:600px){.plegend{flex-wrap:wrap;gap:6px 18px;display:flex}}.plegend span{white-space:nowrap;align-items:center;gap:7px;display:inline-flex}.pdot{border-radius:999px;width:10px;height:10px;display:inline-block}.pdot.complete{background:var(--green)}.pdot.photos{background:var(--purple-light)}.pdot.pending{background:var(--purple)}.pdot.none{background:var(--white);box-shadow:inset 0 0 0 1.5px #a8a8a8}.pcards{flex-direction:column;gap:10px;display:flex}.pcard{border-radius:var(--radius);background:var(--white);border:1px solid var(--grey10);overflow:hidden;box-shadow:0 1px 2px #0000000f}.pcard-head{width:100%;color:var(--ink);text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:1fr auto;grid-template-areas:"title chevron""bar chevron""sub chevron";align-items:center;gap:8px 12px;padding:14px 12px 14px 16px;display:grid}.pcard-head.nobar{grid-template-areas:"title chevron"}.pcard-head:active{background:var(--purple-tint)}@media (hover:hover){.pcard-head:hover{background:var(--canvas)}}.pcard-title{grid-area:title;justify-content:space-between;align-items:baseline;gap:12px;min-width:0;display:flex}.pcard-name{text-overflow:ellipsis;white-space:nowrap;font-size:17px;font-weight:700;overflow:hidden}.pcard-pc{letter-spacing:-.01em;font-variant-numeric:tabular-nums;flex:none;font-size:20px;line-height:1}.pcard-head .sbar{grid-area:bar}.pcard-sub{color:var(--muted);font-variant-numeric:tabular-nums;grid-area:sub;font-size:13px}.pcard-chevron{color:var(--rule);grid-area:chevron;place-items:center;transition:transform .2s;display:grid}.pfig{font-variant-numeric:tabular-nums;flex:none;align-items:baseline;gap:4px;font-size:14px;display:inline-flex}.pfig strong{color:var(--ink);font-size:15px}@media (prefers-reduced-motion:reduce){.pcard-chevron{transition:none}}.lightbox{width:100%;max-width:none;height:100%;max-height:none;color:var(--white);background:#0b0b0c;border:0;margin:0;padding:0;position:fixed;inset:0;overflow:hidden}.lightbox::backdrop{background:#0b0b0c}.lightbox[open]{animation:fade-in .18s var(--ease-out)}.lightbox.closing{animation:.18s ease-in forwards lb-out}@keyframes lb-out{to{opacity:0}}.lightbox:focus{outline:none}.lb{display:flex;position:absolute;inset:0}.lb-main{background:#0b0b0c;flex-direction:column;flex:1;min-width:0;display:flex;position:relative}.lb-bar{z-index:3;padding:calc(var(--safe-top) + 6px) calc(max(10px, env(safe-area-inset-right)) + 52px) 18px max(14px, env(safe-area-inset-left));background:linear-gradient(#0000008c,#0000);align-items:center;gap:8px;transition:opacity .2s;display:flex;position:absolute;top:0;left:0;right:0}.lb-count{font-variant-numeric:tabular-nums;text-shadow:0 1px 3px #00000080;flex:1;font-size:15px;font-weight:700}.lb-btn.lb-close{top:calc(var(--safe-top) + 6px);right:max(10px, env(safe-area-inset-right));z-index:6;transition:background .15s,color .15s,opacity .2s;position:absolute}.lb-tools{gap:6px;display:flex}.lb-btn{width:44px;height:44px;color:var(--white);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);cursor:pointer;background:#ffffff24;border:0;border-radius:999px;place-items:center;transition:background .15s,opacity .15s;display:grid}.lb-btn:hover:not(:disabled){background:#ffffff3d}.lb-btn:active:not(:disabled){background:#ffffff52}.lb-btn:disabled{opacity:.35;cursor:default}.lb-btn[aria-pressed=true]{background:var(--white);color:var(--ink)}.lb-btn.lb-pill{white-space:nowrap;gap:6px;width:auto;padding:0 14px 0 12px;font-size:14px;font-weight:700;display:inline-flex}.lb-btn.lb-pill.on{background:var(--white);color:var(--ink)}span.lb-btn.lb-pill{cursor:default}.lb-btn:focus-visible,.lb-nav:focus-visible,.lb-caption:focus-visible{outline:2px solid var(--white);outline-offset:2px}@media (pointer:coarse){.lb-btn.fine{display:none}}.lb-stage{touch-action:none;-webkit-user-select:none;user-select:none;cursor:grab;flex:1;position:relative;overflow:hidden}.lb-stage:active{cursor:grabbing}.lb-track{will-change:transform, opacity;position:absolute;inset:0}.lb-track.sliding{transition:transform .22s var(--ease-out)}.lb-slide{place-items:center;width:100%;height:100%;display:grid;position:absolute;top:0;overflow:hidden}.lb-slide img{object-fit:contain;transform-origin:50%;will-change:transform;-webkit-user-drag:none;pointer-events:none;max-width:100%;max-height:100%;display:block}.lb-slide img.easing,.lb-ink.easing{transition:transform .24s var(--ease-out)}.lb-slide>img,.lb-slide>.lb-ink{grid-area:1/1}.lb-ink{transform-origin:50%;will-change:transform;pointer-events:none;display:block}.lb-ink path{fill:none;stroke-linecap:round;stroke-linejoin:round}.lb-missing{text-align:center;flex-direction:column;align-items:center;gap:10px;max-width:280px;padding:20px;display:flex}.lb-nav{z-index:2;width:48px;height:48px;color:var(--ink);cursor:pointer;background:#ffffffe6;border:0;border-radius:999px;place-items:center;margin-top:-24px;display:none;position:absolute;top:50%;box-shadow:0 2px 10px #0000004d}.lb-nav.prev{left:16px}.lb-nav.next{right:16px}.lb-nav:disabled{opacity:0;pointer-events:none}@media (hover:hover) and (pointer:fine){.lb-nav{display:grid}}.lb-chip{z-index:2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);pointer-events:none;animation:fade-in .2s var(--ease-out);background:#0009;border-radius:999px;align-items:center;gap:8px;padding:7px 14px;font-size:13px;font-weight:700;display:inline-flex;position:absolute;bottom:16px;left:50%;transform:translate(-50%)}.lb-spinner{border:2px solid #ffffff59;border-top-color:var(--white);border-radius:999px;width:14px;height:14px;animation:.8s linear infinite lb-spin}@keyframes lb-spin{to{transform:rotate(360deg)}}.lb-caption{z-index:3;min-height:56px;padding:22px max(16px, env(safe-area-inset-right)) calc(var(--safe-bottom) + 12px) max(16px, env(safe-area-inset-left));color:var(--white);font:inherit;text-align:left;cursor:pointer;touch-action:none;background:linear-gradient(#0000,#0009);border:0;align-items:center;gap:10px;transition:opacity .2s;display:flex;position:absolute;bottom:0;left:0;right:0}.lb-caption-text{text-overflow:ellipsis;white-space:nowrap;text-shadow:0 1px 3px #00000080;flex:1;min-width:0;overflow:hidden}.lb-tag{text-shadow:0 1px 3px #00000080;flex:none;align-items:center;gap:6px;font-size:13px;font-weight:700;display:inline-flex}.lb-caption-icon{opacity:.85;flex:none}.lb-caption-more{background:#ffffff29;border-radius:999px;flex:none;align-items:center;gap:2px;padding:6px 12px;font-size:14px;font-weight:700;display:inline-flex}.lightbox.bare .lb-bar,.lightbox.bare .lb-caption,.lightbox.bare .lb-close{opacity:0;pointer-events:none}.lb-panel{z-index:4;border-radius:var(--radius-l) var(--radius-l) 0 0;background:var(--canvas);max-height:72%;color:var(--ink);flex-direction:column;animation:.26s cubic-bezier(.2,.9,.3,1) sheet-up;display:flex;position:absolute;bottom:0;left:0;right:0;box-shadow:0 -8px 30px #00000059}.lb-panel[hidden]{display:none}.lb-panel-head{touch-action:none;cursor:grab;-webkit-user-select:none;user-select:none;flex:none;padding:8px 20px 10px}.lb-grab{background:#c9c9c9;border-radius:999px;width:38px;height:5px;margin:0 auto 10px;display:block}.lb-panel-head h2{color:var(--purple);font-size:19px;line-height:1.25}.lb-when{color:var(--muted);margin:2px 0 0;font-size:14px}.lb-panel-body{padding:4px 16px calc(var(--safe-bottom) + 20px);overscroll-behavior:contain;flex-direction:column;gap:12px;display:flex;overflow-y:auto}.lb-panel-body>*{flex:none}.lb-section{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-top:4px;padding:0 4px;font-size:14px;font-weight:700}.lb-none{border-radius:var(--radius);background:var(--white);color:var(--muted);box-shadow:var(--shadow);align-items:flex-start;gap:10px;padding:12px 14px;display:flex}.lb-none svg{flex:none;margin-top:1px}.lb-acts{border:1px solid var(--grey10);border-radius:var(--radius);background:var(--white);box-shadow:var(--shadow);grid-template-columns:repeat(auto-fill,minmax(62px,1fr));gap:4px;padding:8px 6px;display:grid}.lb-act{border-radius:var(--radius-s);min-width:0;color:var(--ink);font:inherit;text-align:center;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;flex-direction:column;align-items:center;gap:5px;padding:6px 2px;font-size:12.5px;font-weight:700;line-height:1.2;text-decoration:none;display:flex}.lb-act-icon{background:var(--purple-tint);width:40px;height:40px;color:var(--purple);border-radius:999px;place-items:center;transition:background .15s;display:grid}.lb-act.danger{color:var(--error)}.lb-act.danger .lb-act-icon{background:var(--error-tint);color:var(--error)}.lb-act:active .lb-act-icon{filter:brightness(.94)}@media (hover:hover){.lb-act:hover .lb-act-icon{filter:brightness(.95)}}.lb-act:focus-visible{outline:2px solid var(--purple);outline-offset:1px}.drawn-list .row{gap:10px;padding-right:8px}.drawn-eye{cursor:pointer;border:0;width:44px;height:44px;padding:0;transition:background .15s,color .15s}.drawn-eye[aria-pressed=false]{background:var(--grey10);color:var(--muted)}.drawn-list .row.off .row-title{color:var(--muted)}.drawn-remove{width:44px;height:44px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:999px;flex:none;place-items:center;padding:0;transition:background .15s,color .15s;display:grid}.drawn-remove:active{background:var(--error-tint);color:var(--error)}@media (hover:hover){.drawn-remove:hover{background:var(--error-tint);color:var(--error)}}.drawn-eye:focus-visible,.drawn-remove:focus-visible{outline:2px solid var(--purple);outline-offset:2px}.photo-facts .row{min-height:0;padding-top:11px;padding-bottom:11px}.photo-facts .row+.row{border-top:1px solid var(--grey10)}.photo-facts .row-icon{background:var(--grey10);color:var(--muted)}.facts-file{overflow-wrap:anywhere;font-weight:500}.device-map.compact{box-shadow:none}@media (min-width:900px){.lb-panel{width:400px;max-height:none;box-shadow:none;border-radius:0;flex:none;animation:none;position:relative;bottom:auto;left:auto;right:auto;transition:none!important;transform:none!important}.lb-panel-head{padding:calc(var(--safe-top) + 14px) 68px 8px 20px;touch-action:auto;cursor:auto;-webkit-user-select:text;user-select:text}.lb-grab{display:none}.lightbox.with-panel .lb-bar{padding-right:max(10px, env(safe-area-inset-right))}.lightbox.with-panel .lb-btn.lb-close{color:var(--ink);-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0}.lightbox.with-panel .lb-btn.lb-close:hover{background:var(--grey10)}.lightbox.with-panel .lb-btn.lb-close:active{background:#dcdcdc}.lightbox.with-panel .lb-btn.lb-close:focus-visible{outline-color:var(--purple)}}@media (prefers-reduced-motion:reduce){.lb-track.sliding,.lb-slide img.easing,.lb-ink.easing{transition:none}.lightbox[open],.lightbox.closing,.lb-panel{animation:none}}.override-card{border-radius:var(--radius);background:var(--error-tint);border:1px solid var(--red-edge);animation:override-in .24s var(--ease-out);align-items:flex-start;gap:12px;padding:12px 14px;display:flex}.override-mark{flex:none;place-items:center;height:30px;display:grid}.override-text{flex-direction:column;gap:4px;min-width:0;padding-top:4px;display:flex}.override-title{color:var(--red-dark);font-weight:700}.override-reason{color:var(--muted);font-weight:600}.override-note{border-left:3px solid var(--red-edge);color:var(--ink);white-space:pre-line;overflow-wrap:anywhere;padding-left:10px}@keyframes override-in{0%{opacity:0;transform:translateY(6px)}}.unread{background:var(--error);min-width:20px;height:20px;color:var(--white);font-variant-numeric:tabular-nums;box-shadow:0 0 0 2px var(--white);border-radius:999px;flex:none;place-items:center;padding:0 6px;font-size:12px;font-weight:700;line-height:1;display:inline-grid}.tab-icon{place-items:center;display:grid;position:relative}.tab-badge{min-width:18px;height:18px;padding:0 5px;font-size:11px;position:absolute;top:-6px;left:14px}.side-badge{box-shadow:none;margin-left:auto}.icon-btn.badged{position:relative}.help-chat{background:var(--purple-tint);min-height:44px;color:var(--purple);white-space:nowrap;border-radius:999px;align-items:center;gap:4px;padding:0 6px 0 14px;font-size:15px;font-weight:700;text-decoration:none;display:inline-flex}.header-actions .help-chat{margin-right:8px}.help-chat-icon{place-items:center;width:32px;height:32px;display:inline-grid;position:relative}.help-chat .icon-badge{top:-5px;right:-7px}@media (hover:hover){.help-chat:hover{background:var(--purple-edge)}}.help-chat:active{background:var(--purple-edge)}.icon-badge{min-width:18px;height:18px;padding:0 5px;font-size:11px;position:absolute;top:3px;right:1px}.chat-trail{flex-direction:column;flex:none;align-items:flex-end;gap:5px;display:flex}.chat-when{color:var(--muted);white-space:nowrap;font-size:13px}.chat-preview{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.new-chat .new-chat-text{resize:none;min-height:220px}.chat-thread{flex-direction:column;gap:3px;margin:0;padding:0;list-style:none;display:flex}.chat-msg{max-width:84%;animation:fade-in .2s var(--ease-out);flex-direction:column;display:flex}.chat-msg.head{margin-top:10px}.chat-msg:first-child{margin-top:0}.chat-msg.ours{align-self:flex-end;align-items:flex-end}.chat-msg.theirs{align-self:flex-start;align-items:flex-start}.chat-meta{color:var(--muted);margin:0 8px 3px;font-size:13px}.chat-meta strong{color:var(--ink)}.chat-bubble{white-space:pre-wrap;overflow-wrap:anywhere;border-radius:20px;padding:9px 14px;line-height:1.38}.ours .chat-bubble{background:var(--purple);color:var(--white)}.ours.head .chat-bubble{border-top-right-radius:6px}.theirs .chat-bubble{background:var(--white);color:var(--ink);box-shadow:0 1px 2px #00000012}.theirs.head .chat-bubble{border-top-left-radius:6px}.chat-event{border-radius:var(--radius-l);background:var(--grey10);max-width:90%;color:var(--muted);text-align:center;flex-direction:column;align-self:center;align-items:center;gap:2px;margin:14px 0 4px;padding:7px 14px;font-size:13px;font-weight:700;display:flex}.chat-event-reason{color:var(--ink);overflow-wrap:anywhere;font-weight:400}.chat-compose{bottom:calc(var(--tabbar-h) + var(--safe-bottom) + 10px);z-index:5;border:1px solid var(--grey10);background:var(--white);border-radius:26px;align-items:flex-end;gap:6px;margin-top:6px;padding:5px;display:flex;position:sticky;box-shadow:0 4px 16px #00000014}.chat-compose:focus-within{border-color:var(--purple)}.page-body:has(>.chat-compose){min-height:calc(100dvh - var(--safe-top) - 72px - var(--tabbar-h) - var(--safe-bottom) - 40px)}.app:has(.offline) .page-body:has(>.chat-compose){min-height:calc(100dvh - var(--safe-top) - 104px - var(--tabbar-h) - var(--safe-bottom) - 40px)}.page-body:has(>.chat-compose)>.chat-thread{margin-bottom:auto}@media (min-width:900px){.page-body:has(>.chat-compose){min-height:calc(100dvh - 140px)}}.chat-compose .chat-input{resize:none;background:0 0;border:0;border-radius:20px;flex:1;min-height:40px;max-height:200px;padding:8px 12px}.chat-compose .chat-input:focus{outline:0}.chat-send{background:var(--purple);width:44px;height:44px;color:var(--white);cursor:pointer;border:0;border-radius:999px;flex:none;place-items:center;transition:background .15s,transform .1s;display:grid}.chat-send:active:not(:disabled){transform:scale(.92)}.chat-send:disabled{background:var(--grey10);color:var(--muted);cursor:default}@media (prefers-reduced-motion:reduce){.override-card{animation:none}.tile-progress>span,.btn-progress-fill{transition:none}}.drop{border:2px dashed var(--rule);border-radius:var(--radius);background:var(--white);width:100%;color:var(--purple);font:inherit;text-align:center;cursor:pointer;flex-direction:column;align-items:center;gap:6px;padding:30px 20px;transition:border-color .15s,background-color .15s;display:flex}.drop.over,.drop:focus-visible{border-color:var(--purple);background:var(--purple-tint);outline:none}@media (hover:hover){.drop:hover{border-color:var(--purple)}}.drop:disabled{cursor:progress}.drop-title{color:var(--ink);font-weight:700}.drop-sub{color:var(--muted);font-size:14px}.input-wrap{position:relative}.input-wrap.has-btn .input{padding-right:52px}.input-btn{border:0;border-left:1px solid var(--grey10);border-radius:0 var(--radius) var(--radius) 0;width:48px;height:100%;color:var(--purple);cursor:pointer;background:0 0;place-items:center;display:grid;position:absolute;top:0;right:0}@media (hover:hover){.input-btn:hover{background:var(--purple-tint)}}.row-picked{color:var(--purple);flex:none}.textarea{resize:vertical;min-height:96px;line-height:1.4}.notes{white-space:pre-wrap;font-weight:400}.center{text-align:center}.sheet-actions{gap:10px;display:flex}.sheet-actions.stacked{flex-direction:column;gap:4px}.sheet-actions-quiet{justify-content:center;gap:8px;margin-bottom:-6px;display:flex}.sheet-actions-quiet .btn{flex:1;max-width:200px}.btn-muted{color:var(--muted)}.sheet-actions .btn-back,.sheet-actions .btn-fit{flex:none;padding-inline:22px}.picker{flex-direction:column;gap:12px;display:flex}.picker-crumb{align-items:center;gap:4px;margin-left:-8px;display:flex}.picker-crumb-text{min-width:0;color:var(--purple);overflow-wrap:anywhere;flex:1;font-weight:700}.picker-empty{color:var(--muted);margin:4px}.check-row{cursor:pointer}.check{border:2px solid var(--rule);color:#0000;border-radius:7px;flex:none;place-items:center;width:24px;height:24px;transition:background-color .12s,border-color .12s;display:grid}.check-row[aria-checked=true]{background:var(--purple-tint)}.check-row[aria-checked=true] .check{background:var(--purple);border-color:var(--purple);color:var(--white)}[hidden]{display:none!important}.api-intro,.api-errors{padding:14px 16px}.api-intro code,.api-detail code,.api-errors code,.api-path{font-family:var(--mono);font-size:.88em}.api-path{overflow-wrap:normal}.method{text-align:center;min-width:62px;font:700 12px/1.4 var(--mono);letter-spacing:.03em;background:var(--purple-tint);color:var(--purple);border:1px solid var(--purple-edge);border-radius:6px;flex:none;padding:3px 0}.method-post{background:var(--purple);color:var(--white);border-color:var(--purple)}.method-put,.method-patch{background:var(--white);border-color:var(--purple)}.method-delete{background:var(--error-tint);color:var(--error);border-color:#f2c4bf}.api-detail{flex-direction:column;gap:12px;display:flex}.api-codes{flex-wrap:wrap;gap:6px;display:flex}.api-codes code,.api-errors dt code{background:var(--canvas);border-radius:5px;padding:1px 6px}.api-body h3{margin:0 0 6px;font-size:15px}.api-fields{flex-direction:column;gap:4px;margin:0;padding-left:18px;display:flex}.api-fields .api-fields{margin-top:4px}.api-type{color:var(--purple);font-family:var(--mono);font-size:.85em}.api-req{color:var(--ink);margin-left:6px;font-size:12px;font-weight:700}.api-errors .details{gap:8px 14px}.api-error{display:contents}.help-topic-h{font:inherit;color:inherit;margin:0}.help-topic-q{width:100%;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0}.help-topic-chevron{transition:transform .18s}.help-topic.open .help-topic-chevron{color:var(--purple);transform:rotate(180deg)}.help-topic.open .help-topic-q .row-title{color:var(--purple)}.help-topic-body{padding:0 0 6px 52px}.help-topic-body .faq-q,.help-topic-body .faq-a{padding-left:4px}.help-topic-guide{color:var(--purple);padding-left:4px;text-decoration:none}.help-topic-guide .row-title{color:var(--purple);font-size:15px;font-weight:600}@media (prefers-reduced-motion:reduce){.help-topic-chevron{transition:none}}.faq+.faq{border-top:1px solid var(--grey10)}.faq .row{border-top:0}.faq-chevron{transition:transform .18s}.faq.open .faq-chevron{color:var(--purple);transform:rotate(90deg)}.faq-a{padding:0 16px 14px}.prose{line-height:1.55}.prose p,.prose ul,.prose ol{margin:0 0 10px}.prose>:last-child,.prose section>:last-child{margin-bottom:0}.prose ul,.prose ol{padding-left:22px}.prose li+li{margin-top:4px}.prose a{color:var(--purple)}.prose code{font-family:var(--mono);background:var(--canvas);border-radius:5px;padding:1px 5px;font-size:.9em}.prose .guide-code code{border-radius:var(--radius-s);overflow-wrap:anywhere;padding:10px 12px;line-height:1.45;display:block}.guide{flex-direction:column;gap:6px;padding:18px 18px 20px;display:flex}.guide h2{color:var(--purple);text-wrap:balance;margin:14px 0 6px;font-size:18px}.guide section{scroll-margin-top:90px}.guide h4{margin:8px 0 4px;font-size:16px}@media (prefers-reduced-motion:reduce){.faq-chevron{transition:none}}.row{border:0;border-top:1px solid var(--grey10);background:var(--white);width:100%;min-height:60px;color:var(--ink);text-align:left;align-items:center;gap:12px;padding:10px 16px;text-decoration:none;transition:background-color .12s;display:flex}.row:first-child{border-top:0}.row.row-stack{flex-direction:column;align-items:stretch;gap:10px;padding-block:14px}.row.row-stack .segmented{align-self:stretch}a.row,button.row{cursor:pointer}@media (hover:hover){a.row:hover,button.row:hover{background:var(--canvas)}}a.row:active,button.row:active,.row.changed{background:var(--purple-tint)}.row.locked{cursor:pointer}.row.locked .row-title{color:var(--muted)}.toggle.locked{opacity:.55;cursor:pointer}.toggle.locked .toggle-knob{color:var(--muted);place-items:center;display:grid}.matrix td.locked:last-child .needs-tip{left:auto;right:6px;translate:none}.matrix td.locked{position:relative}.needs-tip{z-index:3;border-radius:var(--radius-s);background:var(--white);color:var(--error);white-space:nowrap;pointer-events:none;opacity:0;padding:6px 10px;font-size:13px;font-weight:500;transition:opacity .12s;position:absolute;bottom:calc(100% - 4px);left:50%;translate:-50%;box-shadow:0 4px 16px #00000024}.matrix td.locked:hover .needs-tip,.matrix td.locked:focus-within .needs-tip{opacity:1}.flash{animation:1.8s ease-out flash}@keyframes flash{0%,30%{background:var(--purple-edge);box-shadow:inset 0 0 0 2px var(--purple)}to{background:0 0;box-shadow:inset 0 0 0 2px #0000}}@media (prefers-reduced-motion:reduce){.flash{animation-duration:10ms}}.row-text{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.row-title{overflow-wrap:anywhere;font-weight:700}.row-sub{color:var(--muted);overflow-wrap:anywhere;font-size:14px}.row-sub .rough{color:var(--ink);font-weight:700}.row-line{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.row-chevron{color:var(--rule);flex:none;margin-right:-6px}.row-icon{border-radius:var(--radius-s);background:var(--purple-tint);width:40px;height:40px;color:var(--purple);flex:none;place-items:center;display:grid}.avatar-muted{background:var(--grey10);color:var(--muted)}.skeleton{min-height:180px}.skeleton .row{min-height:60px}.skeleton,.skeleton .row{background:linear-gradient(90deg, var(--white) 0%, var(--canvas) 50%, var(--white) 100%) var(--white);background-size:200% 100%;animation:1.4s linear infinite shimmer}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.form{flex-direction:column;gap:16px;display:flex}.field{flex-direction:column;gap:6px;display:flex}.field>label,.field>.label{font-size:15px;font-weight:700}.field-hint{color:var(--muted);font-size:14px}.field-error{color:var(--error);font-size:14px}.input{border:1px solid var(--rule);border-radius:var(--radius);background:var(--white);width:100%;min-height:48px;padding:10px 12px;font-size:17px}.input:focus{outline:2px solid var(--purple);outline-offset:-1px;border-color:var(--purple)}.search{border:1px solid var(--grey10);border-radius:var(--radius);background:var(--white);min-height:46px;color:var(--muted);align-items:center;gap:8px;padding:0 12px;display:flex}.search:focus-within{outline:2px solid var(--purple);outline-offset:-1px}.search input{min-width:0;color:var(--ink);background:0 0;border:0;outline:0;flex:1;padding:10px 0;font-size:17px}.perm-roles{top:calc(var(--safe-top) + var(--head-h));z-index:4;background:var(--canvas);margin:-8px -4px 0;padding:8px 4px;position:sticky}.offline+.main .perm-roles{top:calc(var(--safe-top) + 32px + var(--head-h))}.offline+.main .matrix thead th{top:calc(32px + var(--head-h))}.segmented{border-radius:var(--radius);background:var(--grey10);gap:3px;padding:3px;display:flex}.segment{border-radius:var(--radius-s);min-height:42px;color:var(--ink);cursor:pointer;white-space:nowrap;background:0 0;border:0;flex:1;padding:6px 8px;font-size:15px;font-weight:700;transition:background-color .15s,color .15s}.segment[aria-checked=true]{background:var(--white);color:var(--purple);box-shadow:0 1px 3px #0000001f}.segment-count{color:var(--muted);font-variant-numeric:tabular-nums;margin-left:2px;font-weight:600}.toggle{background:var(--rule);cursor:pointer;border:0;border-radius:999px;flex:none;width:52px;height:32px;padding:0;transition:background-color .18s;position:relative}.toggle[aria-checked=true],[aria-checked=true]>.toggle{background:var(--purple)}.toggle:disabled{opacity:.5;cursor:default}.toggle-knob{background:var(--white);border-radius:999px;width:26px;height:26px;transition:transform .18s;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #00000040}.toggle[aria-checked=true] .toggle-knob,[aria-checked=true]>.toggle .toggle-knob{transform:translate(20px)}.switch-row .toggle{display:inline-block}.own-row{cursor:pointer;gap:6px}.own-row>.row-text{margin-right:6px}.own-row.own{box-shadow:inset 3px 0 0 var(--purple)}.own-row.own .row-sub{color:var(--purple)}.own-row .own-reset{flex:none;margin:-6px 0}@media (hover:hover){.own-row:hover{background:var(--canvas)}.own-row.changed:hover{background:var(--purple-tint)}}.own-intro{flex-direction:column;gap:10px;display:flex}.own-intro p{margin:0}.own-summary{border-top:1px solid var(--grey10);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding-top:10px;font-weight:700;display:flex}.own-summary .btn{margin:-6px -8px -6px 0}.own-list{flex-direction:column;gap:4px;margin:0;padding-left:20px;display:flex}.switch-row:disabled{cursor:default}.switch-row:disabled .toggle{opacity:.5}.btn-danger{background:var(--error);color:var(--white);border-color:var(--error)}.btn-danger-quiet{color:var(--error);background:0 0}@media (hover:hover){.btn-danger-quiet:hover:not(:disabled){background:var(--error-tint)}}.notice{border-radius:var(--radius);background:var(--purple-tint);border:1px solid var(--purple-edge);align-items:flex-start;gap:10px;padding:12px 14px;display:flex}.notice svg{color:var(--purple);flex:none;margin-top:1px}.notice.error{background:var(--error-tint);color:#7d1a14;border-color:#f2c4bf}.notice.error svg{color:var(--error)}.details{grid-template-columns:max-content 1fr;gap:6px 14px;margin:0;display:grid}.details dt{color:var(--muted)}.details dd{min-width:0;margin:0}.copy-link{flex-direction:column;gap:10px;display:flex}.copy-link code{font-family:var(--mono);background:var(--canvas);border-radius:var(--radius-s);padding:10px;font-size:13px}.confirm{border-radius:var(--radius);background:var(--error-tint);text-align:center;flex-direction:column;gap:10px;padding:14px;display:flex}.confirm.calm{background:var(--purple-tint);box-shadow:inset 0 0 0 1px var(--purple-edge)}.confirm-actions{gap:10px;display:flex}.confirm-actions .btn{flex:1}.fab{right:max(18px, env(safe-area-inset-right,0px));bottom:calc(var(--tabbar-h) + var(--safe-bottom) + 18px);z-index:25;background:var(--purple);width:60px;height:60px;color:var(--white);cursor:pointer;border:0;border-radius:999px;place-items:center;transition:transform .12s,background-color .15s;display:grid;position:fixed;box-shadow:0 6px 18px #54308c59,0 2px 4px #0000001f}@media (hover:hover){.fab:hover{background:var(--purple-dark)}}.fab:active{transform:scale(.94)}.main:has(.fab){padding-bottom:calc(var(--tabbar-h) + var(--safe-bottom) + 96px)}.savebar{left:12px;right:12px;bottom:calc(var(--tabbar-h) + var(--safe-bottom) + 12px);z-index:26;border-radius:var(--radius-l);background:var(--ink);color:var(--white);align-items:center;gap:8px;padding:8px 8px 8px 16px;animation:.2s ease-out rise;display:flex;position:fixed;box-shadow:0 8px 24px #00000040}.savebar span{flex:1;font-weight:700}.savebar .btn{min-height:42px;font-size:16px}.savebar .btn-quiet{color:var(--white)}@media (hover:hover){.savebar .btn-quiet:hover:not(:disabled){background:#ffffff1f}}.main:has(.savebar){padding-bottom:calc(var(--tabbar-h) + var(--safe-bottom) + 96px)}@keyframes rise{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}.grid-card{padding:0;overflow:clip}.matrix{border-collapse:collapse;width:100%}.matrix th,.matrix td{border-top:1px solid var(--grey10);text-align:left;padding:10px 14px}.matrix thead th{top:var(--head-h);z-index:3;background:var(--white);color:var(--muted);box-shadow:inset 0 -1px 0 var(--grey10);border-top:0;font-size:14px;position:sticky}.matrix thead th:not(:first-child),.matrix td{text-align:center;width:86px;padding-inline:6px}.matrix tbody th[scope=row]{font-weight:400}.matrix-area th{background:var(--canvas);color:var(--purple);text-transform:uppercase;letter-spacing:.04em;font-size:14px;font-weight:700}.matrix td.changed{background:var(--purple-tint)}.matrix .toggle{vertical-align:middle}html:has(dialog[open]){overflow:hidden}.sheet{width:100%;max-width:100%;max-height:92dvh;translate:0 calc(-1 * var(--lift,0px));color:var(--ink);background:0 0;border:0;margin:auto 0 0;padding:0;overflow:visible}.sheet:focus,.sheet:focus-visible{outline:none}.sheet[open]{animation:.28s cubic-bezier(.2,.9,.3,1) sheet-up}.sheet.closing{animation:.22s cubic-bezier(.4,0,1,1) forwards sheet-down}.sheet::backdrop{background:#1b1b1b73;transition:opacity .22s;animation:.2s fade-in}.sheet.closing::backdrop{opacity:0}.sheet.fading::backdrop{opacity:0}.sheet-in{background:var(--white);border-radius:var(--radius-l) var(--radius-l) 0 0;will-change:transform;outline:none;flex-direction:column;max-height:92dvh;display:flex;position:relative;box-shadow:0 -8px 30px #0000002e}.sheet-in:after{content:"";background:var(--white);height:100dvh;position:absolute;top:100%;left:0;right:0}.sheet-drag{touch-action:none;cursor:grab;-webkit-user-select:none;user-select:none}.sheet-drag:active{cursor:grabbing}.sheet-grip{background:var(--rule);border-radius:3px;width:40px;height:5px;margin:10px auto 2px}.sheet-head{align-items:center;gap:8px;padding:4px 8px 6px 20px;display:flex}.sheet-head h2{overflow-wrap:anywhere;flex:1;min-width:0;font-size:20px}.sheet-head .icon-btn{color:var(--muted);cursor:pointer;margin:0}.sheet-body{overscroll-behavior:contain;flex-direction:column;flex:auto;gap:14px;min-height:0;padding:8px 20px 20px;display:flex;overflow-y:auto}.sheet-foot{padding:12px 20px calc(12px + var(--safe-bottom));border-top:1px solid var(--grey10)}@keyframes sheet-up{0%{transform:translateY(100%)}to{transform:none}}@keyframes sheet-down{0%{transform:none}to{transform:translateY(100%)}}.toasts{left:0;right:0;bottom:calc(var(--tabbar-h) + var(--safe-bottom) + 14px);z-index:60;pointer-events:none;flex-direction:column;align-items:center;gap:8px;padding:0 16px;display:flex;position:fixed}.toast{border-radius:var(--radius);background:var(--ink);max-width:520px;color:var(--white);align-items:center;gap:8px;padding:10px 16px;font-weight:700;animation:.2s ease-out rise;display:flex;box-shadow:0 8px 24px #00000040}.toast.ok svg{color:var(--green)}body:has(.savebar) .toasts{bottom:calc(var(--tabbar-h) + var(--safe-bottom) + 88px)}.toast.error{background:var(--error)}.toast.update{pointer-events:auto;font:inherit;cursor:pointer;background:var(--green);color:var(--ink);border:0;padding:12px 18px;font-weight:700}.toast.update svg{color:var(--ink)}.toast.update:disabled{cursor:progress}.toast.update:disabled svg{animation:.9s linear infinite spin}@media (max-width:899px){body:has(.fab) .toasts{padding:0 84px}}.toast.update:focus-visible{outline:3px solid var(--purple);outline-offset:3px}@media (hover:hover){.toast.update:hover:not(:disabled){filter:brightness(.94)}}.nav-dot{border-radius:999px;flex:none;width:10px;height:10px}.nav-dot.stopped{background:var(--error);box-shadow:0 0 0 2px var(--white);animation:dot-in .24s var(--ease-out)}.tab-icon .nav-dot{position:absolute;top:-1px;right:-5px}.side-link .nav-dot{margin-left:auto;margin-right:4px}@keyframes dot-in{0%{opacity:0;transform:scale(.4)}}@media (prefers-reduced-motion:reduce){.nav-dot{animation:none}}.unsaved-mark{background:var(--error);width:20px;height:20px;color:var(--white);border-radius:999px;flex:none;place-items:center;display:inline-grid}.unsaved-mark svg{display:block}.device-marks .unsaved-mark{margin-right:-6px}.read-line{overflow-wrap:anywhere;justify-content:center;align-items:center;gap:6px;margin:4px 0 0;font-size:15px;display:flex}.label-card{border-radius:var(--radius);background:var(--purple-tint);border:1px solid var(--purple-edge);text-align:left;gap:10px;margin-top:8px;padding:12px 14px;display:grid}.label-card.warn{background:var(--error-tint);border-color:#0000}.label-card-title{overflow-wrap:anywhere;align-items:center;gap:8px;margin:0;font-weight:700;display:flex}.label-card-title svg{color:var(--purple);flex:none}.label-card.warn .label-card-title svg{color:var(--error)}.label-card-sub{color:var(--muted);margin:-6px 0 0 26px;font-size:15px}.label-card-actions{flex-wrap:wrap;gap:8px;display:flex}.label-card-actions .btn{flex:auto;min-height:44px;padding-inline:12px}.label-fields{gap:2px;margin:0;padding:0;list-style:none;display:grid}.label-fields label{cursor:pointer;grid-template-columns:auto 7.5em 1fr;align-items:baseline;gap:10px;padding:6px 0;display:grid}.label-fields input{width:20px;height:20px;accent-color:var(--purple);align-self:center;margin:0}.label-field-name{color:var(--muted);font-size:15px}.label-field-value{overflow-wrap:anywhere;font-weight:600}.label-field-was{color:var(--muted);font-size:14px;font-weight:400;display:block}.label-card-sub.plain{margin:0;font-size:14px}.label-closeup-wrap{position:relative}.label-closeup{border-radius:var(--radius-s);background-color:var(--ink);background-repeat:no-repeat;width:100%;box-shadow:inset 0 0 0 1px #00000014}.label-closeup.loading{aspect-ratio:2;background:var(--grey10)}.closeup-toggle{min-height:32px;color:var(--ink);font:inherit;cursor:pointer;background:#fffffff0;border:0;border-radius:999px;padding:0 12px;font-size:13px;font-weight:700;position:absolute;bottom:8px;right:8px;box-shadow:0 1px 4px #0000004d}.read-items{gap:8px;margin:0;padding:0;list-style:none;display:grid}.read-item{border-radius:var(--radius-s);background:var(--white);border:1px solid var(--purple-edge);gap:8px;padding:10px 12px;display:grid}.read-item.ok{border-color:var(--green);box-shadow:inset 3px 0 0 var(--green)}.read-item.saved{background:0 0;border-style:dashed;justify-content:space-between;align-items:center;gap:10px;display:flex}.read-item-top{align-items:center;gap:8px;min-width:0;display:flex}.read-value{min-width:0;font-family:var(--mono);letter-spacing:.06em;overflow-wrap:anywhere;color:var(--ink);flex:1;font-size:19px;font-weight:600}.read-value u{-webkit-text-decoration:underline dotted var(--purple);text-decoration:underline dotted var(--purple);text-underline-offset:4px;text-decoration-thickness:2px}.read-item.saved .read-value{color:var(--muted);font-size:16px}.read-edit{border:1px solid var(--purple);border-radius:var(--radius-s);min-width:0;min-height:40px;font-family:var(--mono);letter-spacing:.06em;color:var(--ink);background:var(--white);flex:1;padding:4px 10px;font-size:18px;font-weight:600}.icon-btn.small{flex:none;width:36px;height:36px;margin:0}.read-item-controls{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.read-item-controls select{border:1px solid var(--rule);border-radius:var(--radius-s);background:var(--white);min-height:44px;color:var(--ink);font:inherit;flex:160px;padding:0 10px;font-size:16px}.read-item-ok{cursor:pointer;align-items:center;gap:8px;min-height:40px;padding:0 4px;font-weight:700;display:inline-flex}.read-item-ok input{width:22px;height:22px;accent-color:var(--green);margin:0}.read-item-ok:has(input:disabled){color:var(--muted);cursor:default}.equipment-row{align-items:flex-start;padding-block:12px}.equipment-row .row-chevron{align-self:center}.equipment-list{gap:4px;margin-top:6px;display:grid}.equipment-item{grid-template-columns:7.5em minmax(0,1fr);align-items:baseline;gap:10px;font-size:15px;display:grid}.equipment-name{color:var(--muted)}.equipment-value{overflow-wrap:anywhere;font-weight:600}.equipment-value.mono{font-family:var(--mono);letter-spacing:.02em}.read-item-saved{color:var(--green-dark);flex:none;align-items:center;gap:4px;font-size:13px;font-weight:700;display:inline-flex}.check-details-link{min-height:44px;color:var(--purple);font:inherit;cursor:pointer;background:0 0;border:0;place-self:center;align-items:center;gap:6px;padding:6px 10px;font-size:15px;font-weight:600;display:inline-flex}.check-details{gap:18px}.cd-section{gap:6px;display:grid}.cd-section h3{color:var(--ink);font-size:16px}.cd-section h3 .muted{font-size:14px;font-weight:400}.cd-section p{margin:0}.cd-result{font-size:17px}.cd-table{border-collapse:collapse;width:100%;font-size:15px}.cd-table th,.cd-table td{border-bottom:1px solid var(--grey10);text-align:left;padding:6px 4px;font-weight:400}.cd-table thead th{color:var(--muted);text-transform:uppercase;letter-spacing:.03em;font-size:13px;font-weight:600}.cd-table td{white-space:nowrap;font-variant-numeric:tabular-nums}.cd-answer{border-radius:6px;padding:1px 6px;display:inline-block}.cd-answer.good{color:#4f5a1e}.cd-answer.bad{color:var(--error)}.cd-answer.unsure{color:#8a5a00}.cd-answer.used{background:var(--purple-tint);box-shadow:inset 0 0 0 1px var(--purple-edge);font-weight:700}.cd-none{color:var(--muted)}.cd-facts{color:var(--muted);overflow-wrap:anywhere;gap:4px;margin:0;padding-left:18px;font-size:14px;display:grid}.cd-error{color:var(--error)}.btn-big{min-height:56px;font-size:18px}.steps-big{text-align:left;flex-direction:column;gap:12px;width:100%;margin:0;padding:0;list-style:none;display:flex}.step{align-items:flex-start;gap:12px;font-size:17px;line-height:1.45;display:flex}.step-n{background:var(--purple);width:28px;height:28px;color:var(--white);border-radius:999px;flex:none;place-items:center;font-size:15px;font-weight:700;display:grid}.install-done{color:var(--purple);align-items:center;gap:8px;font-weight:700;display:flex}.nudge{left:12px;right:12px;bottom:calc(var(--tabbar-h) + var(--safe-bottom) + 12px);z-index:24;border-radius:var(--radius-l);background:var(--white);border:1px solid var(--purple-edge);align-items:center;gap:8px;padding:8px 6px 8px 16px;animation:.25s ease-out rise;display:flex;position:fixed;box-shadow:0 8px 24px #00000024}.nudge-text{flex:1;font-size:15px;font-weight:700;line-height:1.3}.nudge-go{min-height:44px;padding:6px 16px;font-size:16px}.nudge-close{color:var(--muted);margin:0}.main:has(.fab)~.nudge{bottom:calc(var(--tabbar-h) + var(--safe-bottom) + 90px)}.main:has(~.nudge){padding-bottom:calc(var(--tabbar-h) + var(--safe-bottom) + 96px)}.main:has(~.nudge) .chat-compose:not(.comment-compose){bottom:calc(var(--tabbar-h) + var(--safe-bottom) + 86px)}.fullscreen{min-height:100vh;min-height:100dvh;padding:calc(24px + var(--safe-top)) var(--gutter-r) calc(24px + var(--safe-bottom)) var(--gutter-l);place-items:center;display:grid}.fullscreen-card{background:var(--white);border:1px solid var(--grey10);border-radius:var(--radius);width:min(400px,100%);box-shadow:inset 0 3px 0 var(--purple), var(--shadow);flex-direction:column;align-items:center;gap:16px;padding:28px 22px 22px;display:flex;overflow:hidden}.fullscreen-card .btn-quiet{margin-top:-6px}.fullscreen-logo{width:auto;height:54px}.fullscreen-logo.small{opacity:.9;height:30px;margin-top:6px}.fullscreen-card.install{text-align:center;gap:18px}.fullscreen-card.install h1{font-size:26px}.splash{min-height:100vh;flex-direction:column;justify-content:center;align-items:center;gap:22px;min-height:100dvh;animation:.3s .15s both fade-in;display:flex}.splash-line{background:linear-gradient(90deg, transparent, var(--purple), transparent) var(--grey10);background-repeat:no-repeat;background-size:50% 100%;border-radius:3px;width:120px;height:3px;animation:1.1s ease-in-out infinite slide}@keyframes slide{0%{background-position:-100% 0}to{background-position:200% 0}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@media (min-width:900px){.app{grid-template-columns:252px minmax(0,1fr);display:grid}.tabbar,.header-mark{display:none}.main{padding-bottom:48px}.sidebar{height:100vh;background:var(--white);border-right:1px solid var(--grey10);height:100dvh;box-shadow:inset 0 3px 0 var(--purple);flex-direction:column;gap:6px;padding:0 12px 12px;display:flex;position:sticky;top:0}.sidebar-brand{color:var(--purple);flex-direction:column;gap:6px;padding:24px 12px 20px;font-size:17px;font-weight:700;text-decoration:none;display:flex}.sidebar-brand img{align-self:flex-start;width:auto;height:34px}.sidebar nav{flex-direction:column;flex:1;gap:2px;display:flex}.side-link,.side-account{border-radius:var(--radius-s);color:var(--ink);align-items:center;gap:12px;padding:10px 12px;font-weight:700;text-decoration:none;display:flex}.side-link svg{color:var(--muted)}.side-link:hover,.side-account:hover{background:var(--canvas)}.side-link[aria-current=page],.side-account[aria-current=page]{background:var(--purple-tint);color:var(--purple)}.side-link[aria-current=page] svg{color:var(--purple)}.side-account{border-top:1px solid var(--grey10);border-radius:0 0 var(--radius-s) var(--radius-s);padding-top:14px;font-weight:400}.side-account-text{flex-direction:column;min-width:0;line-height:1.25;display:flex}.side-account-text strong{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.side-account-text span{color:var(--muted);font-size:14px}:root{--head-h:77px}.page-header{box-shadow:none;background:#f3f3f3f0;border-bottom-color:#0000}.page-header-in,.page-body{max-width:1040px;margin-inline:auto;padding-left:40px;padding-right:40px}.main:has(.page-body.narrow) .page-header-in{max-width:720px}:is(.main:has(.page-body.narrow) .page-header-in,.page-body.narrow){margin-left:max(0px,50% - 520px);margin-right:auto}.page-header-in{min-height:76px;padding-top:18px}.page-header h1{font-size:28px}.page-body.narrow{max-width:720px}.icon-btn{margin-left:-12px}.chat-compose{bottom:20px}.savebar{width:min(640px,100vw - 332px);animation:none;bottom:24px;left:calc(292px + max(0px,50vw - 646px));right:auto}.toasts{bottom:28px;left:252px}body:has(.savebar) .toasts{bottom:104px}.sheet{width:min(520px,100vw - 48px);margin:auto}.sheet-in{border-radius:var(--radius-l);box-shadow:0 20px 60px #00000040}.sheet[open]{animation:.18s ease-out pop}.sheet.closing{animation:.16s ease-in forwards pop-out}.sheet-drag{cursor:auto;touch-action:auto}.sheet-grip,.sheet-in:after{display:none}.sheet-head{padding-top:14px}.sheet-foot{padding-bottom:14px}}@keyframes pop{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:none}}@keyframes pop-out{to{opacity:0;transform:scale(.97)}}.actions{grid-template-columns:1fr 1fr;gap:10px;display:grid}.actions.three{grid-template-columns:repeat(3,1fr)}@media (max-width:480px){.actions.three{grid-template-columns:1fr}}.subhead{color:var(--muted);margin:4px 0 0;font-size:14px;font-weight:700}.status{color:var(--purple);margin:0;font-weight:700}.bar{background:var(--grey10);border-radius:4px;height:8px;overflow:hidden}.bar>div{background:var(--purple);height:100%;transition:width .2s}.verdict{border:1px solid;border-radius:8px;flex-direction:column;gap:2px;padding:10px 12px;display:flex}.verdict strong{font-size:18px}.verdict.ok{background:var(--purple-tint);border-color:var(--purple-edge)}.verdict.ok strong:before{content:"";background:var(--green);vertical-align:1px;border-radius:50%;width:10px;height:10px;margin-right:8px;display:inline-block}.verdict.bad{background:var(--error-tint);border-color:var(--error);color:var(--error)}.facts{grid-template-columns:max-content 1fr;gap:6px 14px;margin:0;font-size:15px;display:grid}.facts dt{color:var(--muted)}.facts dd{min-width:0;margin:0}.mono{font-family:var(--mono);font-size:12.5px}.lab-error{color:var(--error);background:var(--error-tint);border-radius:6px;margin:0;padding:8px 10px}.results{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.results li{border-top:1px solid var(--grey10);align-items:center;gap:10px;padding:8px 0;font-size:15px;display:flex}.results li:first-child{border-top:0}.grow{flex:1;min-width:0}.dot{border-radius:50%;flex:none;width:10px;height:10px}.dot.ok{background:var(--green)}.dot.bad{background:var(--error)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.device-layout{flex-direction:column;gap:20px;display:flex}.device-main,.device-side{display:contents}@media (min-width:1024px){.device-layout{grid-template-columns:minmax(0,1.6fr) minmax(300px,1fr);align-items:start;gap:28px;display:grid}.device-main,.device-side{flex-direction:column;grid-row:1;gap:22px;min-width:0;display:flex}.device-main{grid-column:1}.device-side{top:calc(var(--safe-top) + 93px);grid-column:2;position:sticky}.device-side.tall{position:static}.offline+.main .device-side{top:calc(var(--safe-top) + 93px + 32px)}}@media (min-width:1280px){.device-photos .photo-grid{grid-template-columns:repeat(5,minmax(0,1fr))}}.section-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.section-link{min-height:36px;color:var(--purple);font:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:5px;padding:6px 4px 0;font-size:14px;font-weight:700;text-decoration:none;display:inline-flex}.status-card{border:1px solid var(--grey10);border-radius:var(--radius);background:var(--white);box-shadow:var(--shadow);flex-direction:column;gap:10px;padding:12px 14px;display:flex}.status-head{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.status-head .status-text{flex:150px}.status-action{flex:none;gap:6px;min-height:44px;margin-left:auto;padding-inline:12px}.device-side .status-action{flex:100%}@media (max-width:600px){.status-action{flex:100%}}.status-mark{background:var(--grey10);width:36px;height:36px;color:var(--muted);border-radius:999px;flex:none;place-items:center;display:grid}.status-card.photos .status-mark{background:var(--purple-tint);color:var(--purple)}.status-card.complete .status-mark{background:var(--green);color:var(--white)}.status-card.pending .status-mark{background:var(--purple);color:var(--white)}.sent-back{border-radius:var(--radius-s);background:var(--amber-tint);border:1px solid var(--amber-edge);color:var(--ink);align-items:flex-start;gap:10px;padding:10px 12px;display:flex}.sent-back>svg{color:var(--amber-dark);flex:none;margin-top:2px}.sent-back p{flex-direction:column;gap:2px;min-width:0;margin:0;font-size:14px;display:flex}.sent-back strong{color:var(--amber-dark)}.sent-back-reason{white-space:pre-line;overflow-wrap:anywhere}.waiting-icon{background:var(--purple);color:var(--white)}.row-count{background:var(--purple-tint);min-width:28px;color:var(--purple);text-align:center;border-radius:999px;flex:none;padding:2px 8px;font-size:14px;font-weight:700}.status-text{flex-direction:column;gap:2px;min-width:0;display:flex}.status-text strong{font-size:16px}.status-text .muted{font-size:14px}.attention{border-radius:var(--radius);background:var(--error-tint);width:100%;color:var(--ink);font:inherit;text-align:left;cursor:pointer;animation:fade-in .2s var(--ease-out);border:0;align-items:center;gap:12px;padding:12px 14px;display:flex}.attention:active{filter:brightness(.97)}.attention:focus-visible{outline:3px solid var(--error);outline-offset:2px}.attention-mark{background:var(--error);width:34px;height:34px;color:var(--white);border-radius:999px;flex:none;place-items:center;display:grid}.attention-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.attention-text span{color:var(--muted);font-size:14px}.attention-go{color:var(--error);flex:none;align-items:center;gap:2px;font-size:15px;font-weight:700;display:inline-flex}.tile-num{min-width:22px;height:22px;color:var(--ink);font-variant-numeric:tabular-nums;pointer-events:none;background:#ffffffeb;border-radius:999px;justify-content:center;align-items:center;gap:2px;padding:0 7px;font-size:12px;font-weight:700;display:inline-flex;position:absolute;bottom:6px;right:6px;box-shadow:0 1px 4px #00000040}.tile-num.placed{background:var(--purple);color:var(--white);padding-left:5px}.tile-num svg{stroke-width:2.4px}.section-links{align-items:center;gap:14px;display:inline-flex}.photo-grid.can-reorder{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;position:relative}.photo-grid.can-reorder img{-webkit-touch-callout:none}.photo-grid.can-reorder .photo-tile{touch-action:manipulation}.tile-shift{clip-path:inset(50%);background:var(--white);width:1px;height:1px;color:var(--purple);cursor:pointer;border:0;border-radius:999px;place-items:center;padding:0;display:grid;position:absolute;top:50%;overflow:hidden;box-shadow:0 1px 4px #0000004d}.tile-shift.earlier{left:6px}.tile-shift.later{right:6px}.tile-shift:focus-visible{clip-path:none;outline:3px solid var(--purple);outline-offset:2px;z-index:2;width:36px;height:36px;margin-top:-18px;overflow:visible}.tile-shift svg{stroke-width:2.4px}.photo-cell{min-width:0;position:relative}.photo-cell>.photo-tile{width:100%}@media (hover:hover) and (pointer:fine){.photo-grid.can-reorder .photo-cell>.photo-tile{cursor:grab}}.photo-cell.lifted{z-index:5;will-change:transform}.photo-cell.lifted>.photo-tile{box-shadow:0 14px 30px #00000052, 0 0 0 3px var(--purple);cursor:grabbing;transition:transform .15s var(--ease-out), box-shadow .15s;transform:scale(1.08)}.photo-grid.arranging .photo-tile:active:not(.skeleton){transform:none}.photo-grid.arranging .photo-cell.lifted>.photo-tile:active{transform:scale(1.08)}.photo-grid.arranging .photo-cell:not(.lifted)>.photo-tile{animation:.28s ease-in-out infinite alternate tile-wiggle;animation-delay:var(--wiggle-delay,0s)}@keyframes tile-wiggle{0%{transform:rotate(-1.4deg)}to{transform:rotate(1.4deg)}}@media (prefers-reduced-motion:reduce){.photo-grid.arranging .photo-cell:not(.lifted)>.photo-tile{outline:2px dashed var(--purple-light);outline-offset:2px;animation:none}.photo-cell.lifted>.photo-tile{transition:none}}.tile-comments{height:22px;color:var(--purple);font-variant-numeric:tabular-nums;pointer-events:none;background:#ffffffeb;border-radius:999px;align-items:center;gap:3px;padding:0 7px 0 6px;font-size:12px;font-weight:700;display:inline-flex;position:absolute;top:6px;right:6px;box-shadow:0 1px 4px #00000040}.tile-comments svg{stroke-width:2.4px}.lb-caption-count{font-variant-numeric:tabular-nums;flex:none;align-items:center;gap:3px;font-size:14px;font-weight:700;display:inline-flex}.photo-comments{flex-direction:column;gap:10px;display:flex}.photo-comments .chat-thread{padding:2px 0}.chat-row{align-items:center;gap:4px;max-width:100%;display:flex}.comment-delete{width:36px;height:36px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:999px;flex:none;place-items:center;padding:0;display:grid}.comment-delete:focus-visible{outline:3px solid var(--purple);outline-offset:1px}@media (hover:hover){.comment-delete:hover{color:var(--error);background:var(--error-tint)}}.override-entry .chat-bubble,.ours.override-entry .chat-bubble{background:var(--error-tint);color:var(--ink);border:1px solid var(--red-edge);box-shadow:none}.override-entry-head{color:var(--red-dark);align-items:center;gap:5px;margin-bottom:2px;font-size:13px;font-weight:700;display:flex}.override-dot{flex:none}.comment-compose{box-shadow:none;margin-top:2px;position:relative;bottom:auto}.tag-list{z-index:6;border:1px solid var(--grey10);border-radius:var(--radius-l);background:var(--white);animation:tag-list-in .12s var(--ease-out);margin:0;padding:4px;list-style:none;position:absolute;bottom:calc(100% + 6px);left:0;right:0;box-shadow:0 8px 24px #00000024}.chat-compose:not(:focus-within) .tag-list{display:none}.tag-option{border-radius:var(--radius);cursor:pointer;align-items:center;gap:10px;min-height:44px;padding:4px 10px 4px 6px;font-weight:600;display:flex}.tag-option.active{background:var(--purple-tint);color:var(--purple)}.avatar-sm{width:30px;height:30px;font-size:12px}@keyframes tag-list-in{0%{opacity:0;transform:translateY(4px)}}@media (prefers-reduced-motion:reduce){.tag-list{animation:none}}.tag{white-space:nowrap;font-weight:700}.theirs .tag{color:var(--purple)}.tag.you{background:var(--purple-tint);color:var(--purple);border-radius:6px;padding:0 4px}.ours .tag.you{color:var(--white);background:#ffffff38}.comments-none{margin:0;font-size:14px}.comment-quote{border-left:3px solid var(--rule);color:var(--muted);white-space:pre-wrap;overflow-wrap:anywhere;margin:0;padding-left:10px}.row-label{color:var(--muted);font-size:13px}.row-value{overflow-wrap:anywhere;font-size:16px}.row-value .mono{font-size:14.5px}button.info-row{font:inherit}.mono-input{font-family:var(--mono);letter-spacing:.02em}.unsaved{gap:16px}.unsaved-group{border:1px solid var(--grey10);border-radius:var(--radius);background:var(--white);box-shadow:var(--shadow);flex-direction:column;display:flex;overflow:hidden}.unsaved-head{border:0;border-bottom:1px solid var(--grey10);background:var(--purple-tint);width:100%;min-height:56px;color:var(--ink);font:inherit;text-align:left;cursor:pointer;align-items:center;gap:10px;padding:10px 14px;display:flex}.unsaved-name{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.unsaved-name strong{overflow-wrap:anywhere;font-size:16px}.unsaved-name .muted{font-size:13px}.unsaved-open{color:var(--purple);flex:none;align-items:center;gap:2px;font-size:15px;font-weight:700;display:inline-flex}.unsaved-list{margin:0;padding:0;list-style:none}.unsaved-row{align-items:center;gap:12px;padding:12px 14px;display:flex}.unsaved-row+.unsaved-row{border-top:1px solid var(--grey10)}.unsaved-thumb{border-radius:var(--radius-s);background:var(--grey10);flex:none;width:56px;height:56px;position:relative;overflow:hidden}.unsaved-thumb img{object-fit:cover;width:100%;height:100%;display:block}.unsaved-row.failed .unsaved-thumb img{filter:grayscale(.6);opacity:.7}.unsaved-badge{background:var(--error);width:22px;height:22px;color:var(--white);border-radius:999px;place-items:center;display:grid;position:absolute;bottom:4px;right:4px}.unsaved-text{flex-direction:column;flex:1;gap:2px;min-width:0;font-size:14px;display:flex}.unsaved-text strong{font-size:15px}.unsaved-row.failed .unsaved-text strong{color:var(--error)}.unsaved-text span{overflow-wrap:anywhere}.unsaved-actions{flex-direction:column;flex:none;align-items:stretch;gap:4px;display:flex}.unsaved-busy{border:2px solid var(--purple-edge);border-top-color:var(--purple);border-radius:999px;width:18px;height:18px;animation:.8s linear infinite lb-spin}@media (prefers-reduced-motion:reduce){.unsaved-busy{animation:none}}.tile-drawn{width:22px;height:22px;color:var(--purple);pointer-events:none;background:#ffffffeb;border-radius:999px;place-items:center;display:grid;position:absolute;top:6px;left:6px;box-shadow:0 1px 4px #00000040}.tile-drawn svg{stroke-width:2.4px}.draw{z-index:20;color:var(--white);-webkit-user-select:none;user-select:none;animation:fade-in .15s var(--ease-out);background:#0b0b0c;flex-direction:column;display:flex;position:fixed;inset:0}.draw-bar{padding:calc(var(--safe-top) + 10px) 12px 8px;align-items:center;gap:10px;display:flex}.draw-title{text-align:center;flex:1;min-width:0;font-weight:700}.draw-save{min-width:84px;min-height:40px;padding-inline:16px}.draw-stage{flex:1;place-items:center;min-height:0;margin:4px 12px;display:grid;position:relative}.draw-canvas{position:relative}.draw-canvas img,.draw-canvas svg{width:100%;height:100%;position:absolute;inset:0}.draw-canvas img{pointer-events:none;-webkit-user-drag:none}.draw-canvas svg{touch-action:none;cursor:crosshair}.draw-canvas svg.erasing{cursor:none}.erase-ring{box-sizing:border-box;border:1.5px solid var(--white);pointer-events:none;border-radius:50%;position:absolute;top:0;left:0;box-shadow:0 0 0 1px #0000008c,inset 0 0 0 1px #00000059}.erase-ring[hidden]{display:none}.draw-canvas path{fill:none;stroke-linecap:round;stroke-linejoin:round}.draw-tools{width:100%;max-width:520px;padding:10px max(16px, env(safe-area-inset-right)) calc(var(--safe-bottom) + 14px) max(16px, env(safe-area-inset-left));justify-content:space-between;align-items:center;gap:12px;margin:0 auto;display:flex}.draw-tools-main,.draw-tools-side{align-items:center;gap:12px;display:flex}.draw-tools-side{gap:8px}.pen-anchor{display:inline-flex;position:relative}.pen-circle{cursor:pointer;touch-action:none;background:#ffffff24;border:0;border-radius:999px;place-items:center;width:48px;height:48px;padding:0;transition:background .15s,opacity .15s;display:grid}.pen-circle[aria-expanded=true]{background:#ffffff4d}.pen-circle:not(.on){opacity:.5}.pen-swatch{background:var(--pen);border-radius:999px;width:30px;height:30px;box-shadow:0 0 0 2px #ffffffe6,0 1px 4px #00000080}.pen-dot{border-radius:999px;display:block;box-shadow:0 0 0 1.5px #ffffffd9}.draw-tool{width:44px;height:44px;color:var(--white);cursor:pointer;background:#ffffff24;border:0;border-radius:999px;place-items:center;padding:0;display:grid}.draw-tool.on{background:var(--white);color:#0b0b0c}.draw-tool:disabled{opacity:.35;cursor:default}.pen-circle:focus-visible,.draw-tool:focus-visible{outline:3px solid var(--purple-light);outline-offset:2px}.pen-pop{z-index:3;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);animation:pen-pop-in .16s var(--ease-out);background:#1c1c1ef0;border-radius:26px;padding:16px 14px;position:absolute;bottom:calc(100% + 12px);left:50%;transform:translate(-50%);box-shadow:0 10px 30px #00000073}@keyframes pen-pop-in{0%{opacity:0}}.pen-track{cursor:pointer;touch-action:none;border-radius:13px;outline:none;width:26px;height:min(240px,36vh);position:relative}.pen-pop.colour .pen-track{box-shadow:inset 0 0 0 1px #ffffff59}.pen-track:focus-visible{box-shadow:0 0 0 3px var(--purple-light)}.pen-wedge{clip-path:polygon(0 0,100% 0,56% 100%,44% 100%);background:#ffffffd9;position:absolute;inset:0}.pen-thumb{border:3px solid var(--white);pointer-events:none;border-radius:999px;width:34px;height:34px;margin:-17px 0 0 -17px;position:absolute;left:50%;box-shadow:0 2px 8px #00000080}.pen-pop.size .pen-thumb{background:#1c1c1e;place-items:center;display:grid}.pen-pop.size .pen-thumb:after{content:"";width:min(var(--dot), 24px);height:min(var(--dot), 24px);background:var(--pen);border-radius:999px}@media (prefers-reduced-motion:reduce){.pen-pop,.draw{animation:none}}a.pcard.pcard-head{text-decoration:none}.ptoolbar{flex-wrap:wrap;align-items:center;gap:10px 16px;display:flex}.pselect{align-items:center;min-width:0;max-width:100%;display:inline-flex;position:relative}.pselect select{appearance:none;border:1px solid var(--purple-edge);background:var(--purple-tint);max-width:100%;min-height:44px;color:var(--purple);font:inherit;text-overflow:ellipsis;cursor:pointer;border-radius:999px;padding:8px 36px 8px 14px;font-size:16px;font-weight:700}.pselect>svg{color:var(--purple);pointer-events:none;position:absolute;right:12px}.pselect.static{background:var(--purple-tint);color:var(--purple);text-overflow:ellipsis;white-space:nowrap;border-radius:999px;padding:8px 14px;font-size:15px;font-weight:700;overflow:hidden}.pviews{border-radius:var(--radius);background:var(--grey10);gap:3px;width:100%;padding:3px;display:flex}.pview-tab{border-radius:var(--radius-s);min-width:0;min-height:48px;color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;flex-direction:column;flex:1;align-items:center;gap:2px;padding:5px 2px;font-size:12px;font-weight:700;display:flex}.pview-tab span{white-space:nowrap;text-overflow:ellipsis;max-width:100%;overflow:hidden}.pview-tab.on{background:var(--white);color:var(--purple);box-shadow:0 1px 2px #0000001f}@media (hover:hover){.pview-tab:not(.on):hover{color:var(--ink)}}@media (min-width:900px){.pviews{width:auto;margin-left:auto}.pview-tab{flex-direction:row;flex:none;gap:7px;min-height:40px;padding:6px 14px;font-size:14px}}.pview-loading{flex-direction:column;gap:12px;display:flex}.skeleton-block{border-radius:var(--radius);background:var(--grey10);height:140px;animation:1.2s ease-in-out infinite alternate skeleton-pulse;display:block}.skeleton-block.short{height:80px}@keyframes skeleton-pulse{0%{opacity:1}to{opacity:.55}}@media (prefers-reduced-motion:reduce){.skeleton-block{animation:none}}.pview{flex-direction:column;gap:14px;min-width:0;display:flex}.pcard-plain{background:var(--white);border:1px solid var(--grey10);border-radius:var(--radius);box-shadow:var(--shadow);min-width:0;padding:14px 16px}.pcard-h{align-items:baseline;gap:8px;margin:0 0 8px;font-size:16px;font-weight:700;display:flex}.pcard-h-note{color:var(--muted);margin-left:auto;font-size:13px;font-weight:500}.pstack{flex-direction:column;gap:14px;min-width:0;display:flex}.pcols,.prow2{gap:14px;display:grid}@media (min-width:900px){.pcols{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);align-items:start}.prow2{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start}.prow2.wide-left{grid-template-columns:minmax(0,1.7fr) minmax(0,1fr)}.floors-cols{grid-template-columns:minmax(0,1.8fr) minmax(0,1fr)}}.smark{border-radius:999px;flex:none;place-items:center;display:inline-grid}.smark.complete{background:var(--green);color:var(--white)}.smark.pending{background:var(--purple);color:var(--white)}.smark.photos{background:var(--purple-light);color:var(--purple-dark)}.smark.photos svg{stroke-width:2.2px}.smark.none{background:var(--white);box-shadow:inset 0 0 0 1.5px #a8a8a8}.sbar{gap:2px;width:100%;height:8px;display:flex}.sbar.thin{height:6px}.sbar.large{height:12px}.sbar>span{outline-offset:1px;border-radius:999px;min-width:3px}.sbar-complete{background:var(--green);color:var(--ink)}.sbar-pending{background:var(--purple);color:var(--white)}.sbar-photos{background:var(--purple-light);color:var(--ink)}.sbar-none{background:var(--grey10);color:var(--ink)}.sbar-empty{background:var(--grey10);flex:1}.sbar>span:focus-visible,.proom:focus-visible{outline:2px solid var(--ink)}@media (hover:hover){.sbar>span:hover{filter:brightness(1.06)}}.ptip{z-index:1000;border-radius:var(--radius-s);max-width:260px;color:var(--white);pointer-events:none;background:#1b1b1b;padding:7px 10px;font-size:13px;line-height:1.35;position:fixed;box-shadow:0 6px 18px #00000040}.ptip-value{font-size:15px;font-weight:700;display:block}.ptip-name{color:#d9d9d9;display:block}.pgroup{border-top:1px solid var(--grey10);grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"name fig""bar bar";align-items:center;gap:7px 12px;padding:11px 0;display:grid}.pgroup:first-of-type{border-top:0;padding-top:4px}.pgroup-name{grid-area:name;align-items:center;gap:8px;min-width:0;font-size:15px;font-weight:700;display:flex}.pgroup-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.pgroup-fig{white-space:nowrap;font-variant-numeric:tabular-nums;grid-area:fig;font-size:14px}.pgroup .sbar{grid-area:bar}.pgroup.link{background:linear-gradient(var(--grey10), var(--grey10)) 16px 0 / calc(100% - 32px) 1px no-repeat;color:var(--ink);border-top:0;grid-template-columns:minmax(0,1fr) auto 16px;grid-template-areas:"name fig chev""bar bar chev";column-gap:10px;margin:0 -16px;padding-inline:16px 12px;text-decoration:none}.pgroup.link:first-of-type{background-image:none;padding-top:8px}.pgroup-chevron{color:var(--rule);grid-area:chev}.pgroup.link:active{background-color:var(--purple-tint)}@media (hover:hover){.pgroup.link:hover{background-color:var(--canvas)}.pview .pgroup.link:hover{text-decoration:none}}.pgroup.link:focus-visible{outline:2px solid var(--purple);outline-offset:-2px}.phero{flex-direction:column;gap:10px;padding:16px;display:flex}.phero-top{justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.phero-num{letter-spacing:-.035em;font-variant-numeric:tabular-nums;flex:none;font-size:56px;font-weight:700;line-height:.9}.phero-num small{letter-spacing:0;margin-left:2px;font-size:26px}.phero .spark{flex:0 200px;min-width:0;height:44px;margin-bottom:2px;display:block}.phero-text{flex-direction:column;gap:1px;margin-bottom:4px;display:flex}.phero-text strong{font-size:17px}.pstatus-rows{margin:4px 0 0;padding:0;list-style:none}.pstatus-rows li{border-top:1px solid var(--grey10);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;min-height:56px;padding:8px 0;display:grid}.psr-text{flex-direction:column;min-width:0;display:flex}.psr-label{font-size:15px;font-weight:700}.psr-note{color:var(--muted);font-size:13px}.psr-value{letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:24px;font-weight:700}@media (min-width:900px){.pstatus-rows{border-top:1px solid var(--grey10);grid-template-columns:repeat(4,minmax(0,1fr));margin-top:6px;display:grid}.pstatus-rows li{border-top:0;grid-template-columns:auto minmax(0,1fr);grid-template-areas:"mark value""text text";align-content:start;gap:6px 10px;padding:14px 16px 2px}.pstatus-rows li+li{border-left:1px solid var(--grey10)}.pstatus-rows li:first-child{padding-left:0}.pstatus-rows .smark{grid-area:mark}.psr-text{grid-area:text}.psr-value{grid-area:value;font-size:28px;line-height:1}}.pfeed{margin:0;padding:0;list-style:none}.pfeed li{border-top:1px solid var(--grey10);align-items:center;gap:12px;padding:9px 0;display:flex}.pfeed li:first-child{border-top:0;padding-top:2px}.pfeed-text{flex-direction:column;min-width:0;display:flex}.pfeed-what{overflow-wrap:anywhere;font-size:15px}.pfeed-meta{color:var(--muted);font-size:13px}.pfeed a{color:var(--ink);font-weight:700}.pfilters{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.pfilters .segmented{flex:100%}@media (min-width:900px){.pfilters .segmented{flex:0 auto}.pfilters .segment{padding-inline:16px}}.pchip{border:1px solid var(--grey10);background:var(--white);min-height:44px;color:var(--ink);font:inherit;cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:6px 14px;font-size:14px;font-weight:700;display:inline-flex}.pchip:disabled{color:var(--rule);cursor:default}.pexport{margin-left:auto}.pstats{border:1px solid var(--grey10);border-radius:var(--radius);background:var(--white);box-shadow:var(--shadow);grid-template-columns:repeat(2,minmax(0,1fr));display:grid;overflow:hidden}.pstat{flex-direction:column;gap:3px;min-width:0;padding:14px 16px;display:flex}.pstat:nth-child(2n){border-left:1px solid var(--grey10)}.pstat:nth-child(n+3){border-top:1px solid var(--grey10)}.pstat-label{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:500;overflow:hidden}.pstat-value{letter-spacing:-.02em;font-variant-numeric:tabular-nums;white-space:nowrap;text-overflow:ellipsis;font-size:26px;font-weight:700;line-height:1.1;overflow:hidden}.pstat-note{color:var(--muted);text-wrap:balance;font-size:13px}.pstat .sbar{margin-top:9px}@media (min-width:900px){.pstats{grid-template-columns:repeat(4,minmax(0,1fr))}.pstat:nth-child(n+3){border-top:0}.pstat+.pstat{border-left:1px solid var(--grey10)}.pstat{padding:16px 20px}.pstat-value{font-size:30px}}.pchart{width:100%;min-width:0;position:relative}.pchart svg{touch-action:pan-y;display:block;overflow:visible}.chart-legend{flex-wrap:wrap;gap:6px 16px;margin-top:8px;display:flex}.pline{border-radius:2px;width:14px;height:2px;display:inline-block}.pline.dash{border-top:2px dashed #7d8c34;border-radius:0;height:0}.pattn{margin:0;padding:0;list-style:none}.pattn li{border-top:1px solid var(--grey10)}.pattn li:first-child{border-top:0}.pattn-row{width:100%;min-height:48px;color:var(--ink);font:inherit;text-align:left;background:0 0;border:0;align-items:center;gap:10px;padding:6px 2px;font-size:14px;display:flex}button.pattn-row{cursor:pointer}@media (hover:hover){button.pattn-row:hover{background:var(--canvas)}}.pattn-icon{border-radius:var(--radius-s);background:var(--purple-tint);width:30px;height:30px;color:var(--purple);flex:none;place-items:center;display:grid}.pattn-icon.overridden{background:var(--error-tint)}.pattn-n{text-align:right;font-variant-numeric:tabular-nums;min-width:32px;font-size:18px}.pattn-text{flex:1;min-width:0}.pattn-chevron{color:var(--muted);flex:none;transition:transform .2s}.pattn li.open .pattn-chevron{transform:rotate(180deg)}.pattn-devices{flex-wrap:wrap;gap:8px;padding:2px 0 12px 42px;display:flex}.pcard-plain>.pattn-devices{padding-left:0}.pdev-chip{background:var(--canvas);border:1px solid var(--grey10);min-height:36px;color:var(--ink);border-radius:999px;align-items:center;gap:6px;padding:4px 12px;font-size:13px;font-weight:700;text-decoration:none;display:inline-flex}.pdev-chip.complete:before,.pdev-chip.pending:before,.pdev-chip.photos:before,.pdev-chip.none:before{content:"";border-radius:999px;width:8px;height:8px;display:inline-block}.pdev-chip.complete:before{background:var(--green)}.pdev-chip.pending:before{background:var(--purple)}.pdev-chip.photos:before{background:var(--purple-light)}.pdev-chip.none:before{background:var(--white);box-shadow:inset 0 0 0 1.5px #a8a8a8}a.pdev-chip:active{background:var(--purple-tint)}.pattn-none{color:var(--muted);align-items:center;gap:8px;margin:4px 0;display:flex}.pattn-none svg{color:var(--green)}.prooms{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:4px;display:grid}.proom{border-radius:var(--radius-s);flex-direction:column;gap:2px;min-width:0;padding:8px 10px;font-size:13px;display:flex}.proom-name{text-overflow:ellipsis;white-space:nowrap;font-weight:700;overflow:hidden}.proom-pc{font-variant-numeric:tabular-nums}.pscale{color:var(--muted);align-items:center;gap:8px;margin-top:10px;font-size:12px;display:flex}.pscale span{gap:2px;display:flex}.pscale i{border-radius:3px;width:18px;height:10px;display:block}.plevels{scrollbar-width:thin;gap:8px;margin:0 -2px;padding:2px 2px 6px;display:flex;overflow-x:auto}.plevel{border:1px solid var(--grey10);border-radius:var(--radius);background:var(--white);min-width:112px;color:var(--ink);font:inherit;text-align:left;cursor:pointer;flex-direction:column;flex:none;align-items:stretch;gap:4px;padding:8px 12px;font-size:13px;display:flex}.plevel strong{font-size:15px}.plevel.on{border-color:var(--purple);box-shadow:inset 0 0 0 1px var(--purple)}.pplan-card{flex-direction:column;gap:10px;padding:10px;display:flex}.pplan{aspect-ratio:3/2;height:auto;max-height:460px;box-shadow:none;border:1px solid var(--grey10)}.pplan.full{aspect-ratio:auto;height:100%;max-height:none}.ppin{z-index:1;border-radius:999px;place-items:center;width:22px;height:22px;margin:-11px 0 0 -11px;display:grid;position:absolute}.ppin:after{content:"";width:12px;height:12px;box-shadow:0 0 0 2px var(--white), 0 1px 3px #00000059;border-radius:999px}.ppin.complete:after{background:var(--green)}.ppin.pending:after{background:var(--purple)}.ppin.photos:after{background:var(--purple-light)}.ppin.none:after{background:var(--white);box-shadow:inset 0 0 0 2px #8a8a8a,0 1px 3px #00000059}.ppin:focus-visible{outline:2px solid var(--ink)}.pempty{color:var(--muted);flex-direction:column;align-items:center;gap:6px;padding:28px 16px;display:flex}.pempty p{margin:0}.pcol-tabs{border-radius:var(--radius);background:var(--grey10);gap:3px;padding:3px;display:flex}.pcol-tab{border-radius:var(--radius-s);min-width:0;min-height:58px;color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;flex-direction:column;flex:1 1 0;align-items:center;gap:3px;padding:7px 2px 6px;display:flex}.pcol-tab-top{align-items:center;gap:6px;display:flex}.pcol-tab-top strong{color:var(--ink);font-variant-numeric:tabular-nums;font-size:17px}.pcol-tab-name{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:12px;font-weight:700;overflow:hidden}.pcol-tab.on{background:var(--white);color:var(--purple);box-shadow:0 1px 2px #0000001f}.pcol-tab:focus-visible{outline:2px solid var(--purple);outline-offset:-2px}.pboard{display:block}.pcol{flex-direction:column;gap:8px;min-width:0;display:flex}.pcol .pdcard{border:1px solid var(--grey10)}.pcol-none{text-align:center;padding:20px 0}.pcol-h{align-items:center;gap:8px;margin:0 0 2px;font-size:14px;font-weight:700;display:flex}.pcol-h strong{font-variant-numeric:tabular-nums;margin-left:auto;font-size:20px}.pcol-none{margin:4px 2px;font-size:14px}.pcol .more-link{align-self:stretch;width:auto;margin-top:2px;font-size:14px}.pdcard{border-radius:var(--radius-s);background:var(--white);flex-direction:column;gap:3px;padding:10px 12px;display:flex;box-shadow:0 1px 2px #0000000f}.pdcard-top{align-items:center;gap:8px;font-size:15px;font-weight:700;display:flex}.pdcard-top a{color:var(--ink)}.pview a:not(.btn):not(.row){text-decoration:none}@media (hover:hover){.pview a:not(.btn):not(.row):hover{text-decoration:underline}}.pdcard-age{background:var(--canvas);color:var(--muted);white-space:nowrap;border-radius:999px;margin-left:auto;padding:1px 8px;font-size:12px;font-weight:700}.pdcard-age.old{background:var(--amber-tint);color:var(--amber-dark)}.pdcard-sub{color:var(--muted);overflow-wrap:anywhere;text-wrap:pretty;font-size:13px}.pdcard-actions{gap:6px;margin-top:6px;display:flex}.pdcard-actions .btn{white-space:nowrap;flex:1 1 0;min-width:0;padding-inline:8px}@media (min-width:900px){.pboard{grid-template-columns:repeat(4,minmax(0,1fr));align-items:start;gap:10px;display:grid}.pcol{border-radius:var(--radius);background:#ececec;padding:10px}.pcol .pdcard{border:0}.pcol-none{text-align:left;padding:0}.pdcard-actions{flex-direction:column}.pdcard-actions .btn{flex:none}}.ptable-card{padding:0;overflow:hidden}.ptable-head{align-items:center;gap:12px;padding:10px 12px 6px 16px;display:flex}.ptable-head .pcard-h{margin:0}.pcard-h-count{color:var(--muted);font-variant-numeric:tabular-nums;font-weight:500}.ptable-foot{border-top:1px solid var(--grey10);padding:12px 16px 14px}.ptable-scroll{background:linear-gradient(to left, var(--white) 30%, #fff0) right / 28px 100% no-repeat local, radial-gradient(farthest-side at 100% 50%, #00000024, #0000) right / 12px 100% no-repeat scroll;overflow-x:auto}.ptable-scroll:focus-visible{outline:2px solid var(--purple);outline-offset:-2px}.ptable{border-collapse:separate;border-spacing:0;font-variant-numeric:tabular-nums;width:100%;font-size:14px}.ptable th,.ptable td{border-bottom:1px solid var(--grey10);text-align:right;white-space:nowrap;padding:9px 10px}.ptable .text{text-align:left}.ptable thead th{border-bottom-color:var(--rule);color:var(--muted);padding:0;font-size:12px}.ptable thead th button{width:100%;min-height:40px;color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;justify-content:flex-end;align-items:center;gap:2px;padding:6px 10px;font-weight:700;display:inline-flex}.ptable thead th.text button{justify-content:flex-start}.ptable thead th[aria-sort]{color:var(--purple)}.ptable tbody th{font-weight:700}.ptable tbody th a{color:var(--ink)}.ptable tfoot th,.ptable tfoot td{border-bottom:0;border-top:1px solid var(--rule);font-weight:700}.ptable tr>:first-child{z-index:1;background:var(--white);box-shadow:1px 0 0 var(--grey10);text-overflow:ellipsis;max-width:46vw;position:sticky;left:0;overflow:hidden}.ptable td.warn{color:var(--amber-dark);font-weight:700}.ptable .left{text-align:left}.ptable thead th.left button{justify-content:flex-start}.ptable-done{align-items:center;gap:8px;display:inline-flex}.ptable-done .sbar{width:60px}@media (min-width:900px){.ptable-done .sbar{width:80px}}.ptable-done strong{min-width:38px}.pstatus{align-items:center;gap:6px;display:inline-flex}.pstatus:before{content:"";border-radius:999px;width:8px;height:8px}.pstatus.complete:before{background:var(--green)}.pstatus.pending:before{background:var(--purple)}.pstatus.photos:before{background:var(--purple-light)}.pstatus.none:before{background:var(--white);box-shadow:inset 0 0 0 1.5px #a8a8a8}a.pgroup-text{color:var(--ink);text-decoration:underline;-webkit-text-decoration-color:var(--rule);text-decoration-color:var(--rule);text-underline-offset:3px}@media (hover:hover){a.pgroup-text:hover{text-decoration-color:currentColor}}
