:root{--navy:#011b62;--navy-2:#233a85;--grey:#dce0e0;--bg:#f4f5f7;--card:#fff;--text:#16181d;--muted:#667085;--line:#e2e5ea;--danger:#c4162a;--warn-bg:#fff4e0;--warn:#8a5300;--radius:12px;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);color:var(--text);background:var(--bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}*{box-sizing:border-box}html,body{height:100%;margin:0}body{overscroll-behavior:none}body.no-scroll{position:fixed;inset:0;overflow:hidden}#app{flex-direction:column;min-height:100%;display:flex}.boot{color:var(--muted);padding:2rem}h1{white-space:nowrap;text-overflow:ellipsis;min-width:0;margin:0;font-size:1.2rem;overflow:hidden}h2{margin:0 0 .6rem;font-size:1.05rem}p{margin:.4rem 0;line-height:1.4}.muted{color:var(--muted)}.small{font-size:.85rem}.spacer{flex:1}.hidden{display:none!important}.bar{z-index:5;padding:calc(.5rem + var(--safe-top)) max(.75rem, env(safe-area-inset-right)) .5rem max(.75rem, env(safe-area-inset-left));border-bottom:1px solid var(--line);background:#fff;align-items:center;gap:.5rem;min-height:56px;display:flex;position:sticky;top:0}.logo{width:auto;height:26px}.btn{appearance:none;border:1px solid var(--line);color:var(--text);font:inherit;cursor:pointer;white-space:nowrap;touch-action:manipulation;background:#fff;border-radius:10px;min-height:44px;padding:.6rem .95rem;font-size:.95rem}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.45;cursor:default}.btn.primary{background:var(--navy);border-color:var(--navy);color:#fff}.btn.danger{background:var(--danger);border-color:var(--danger);color:#fff}.btn.ghost{color:var(--navy);background:0 0;border-color:#0000}.btn.ghost.light{color:#fff}.btn.small{min-height:38px;padding:.4rem .7rem;font-size:.88rem}.danger-text{color:var(--danger)!important}.linklike{color:var(--navy);font:inherit;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.toolbar{flex-wrap:wrap;gap:.5rem;margin-bottom:1rem;display:flex}.row{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.page{padding:1rem max(1rem, env(safe-area-inset-right)) calc(2rem + var(--safe-bottom)) max(1rem, env(safe-area-inset-left));width:100%;max-width:1200px;margin:0 auto}.page.narrow{max-width:720px}.section{border:1px solid var(--line);border-radius:var(--radius);background:#fff;margin-bottom:1rem;padding:1rem}.cards{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:.8rem;display:grid}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;display:flex;overflow:hidden}.card-main{all:unset;cursor:pointer;align-items:center;gap:.8rem;padding:.8rem;display:flex}.card-main:focus-visible{outline:2px solid var(--navy)}.card-text{flex-direction:column;gap:.2rem;min-width:0;display:flex}.card-title{text-overflow:ellipsis;white-space:nowrap;font-size:1.05rem;overflow:hidden}.card-actions{flex-wrap:wrap;gap:.4rem;padding:0 .8rem .8rem;display:flex}.thumb{background:var(--grey);border-radius:8px;flex:none;place-items:center;width:84px;height:84px;display:grid;overflow:hidden}.thumb.big{width:120px;height:90px}.thumb img{object-fit:cover;width:100%;height:100%}.thumb-empty{color:#9aa3ad;font-size:1.8rem}.badge{color:var(--muted);background:#eef0f3;border-radius:99px;align-self:flex-start;padding:.15rem .5rem;font-size:.75rem}.badge.warn{background:var(--warn-bg);color:var(--warn)}.badge.ok{color:#17693a;background:#e6f5ec}.empty{text-align:center;border:1px dashed var(--line);border-radius:var(--radius);background:#fff;grid-column:1/-1;padding:2.5rem 1rem}.notice{background:var(--warn-bg);color:var(--warn);border-radius:10px;justify-content:space-between;align-items:center;gap:.8rem;margin:0 0 1rem;padding:.6rem .9rem;display:flex}.notice.small{font-size:.9rem;display:block}.storage{color:var(--muted);margin-top:1.5rem;font-size:.85rem}.backdrop{z-index:50;background:#0a0f1e73;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.dialog{background:#fff;border-radius:16px;width:min(440px,100%);max-height:calc(100% - 2rem);padding:1.2rem;overflow:auto;box-shadow:0 20px 50px #00000040}.dialog.wide{width:min(860px,100%)}.dialog-actions{flex-wrap:wrap;justify-content:flex-end;gap:.5rem;margin-top:1rem;display:flex}.field{flex-direction:column;gap:.35rem;margin-bottom:.9rem;display:flex}.field>span{color:var(--muted);text-transform:uppercase;letter-spacing:.03em;font-size:.8rem}.input{font:inherit;background:#fff;border:1px solid #cfd5dd;border-radius:10px;width:100%;padding:.6rem .7rem;font-size:16px}textarea.input{resize:vertical;min-height:90px}.choices{gap:.5rem;display:grid}.choice{all:unset;border:1px solid var(--line);cursor:pointer;border-radius:12px;flex-direction:column;gap:.2rem;padding:.9rem 1rem;display:flex}.choice:hover,.choice:focus-visible{border-color:var(--navy)}.filename{word-break:break-all;font-weight:600}.spinner{border:4px solid var(--grey);border-top-color:var(--navy);border-radius:50%;width:34px;height:34px;margin:.5rem auto;animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.busy{text-align:center}.checks{gap:.3rem;margin-top:.6rem;display:grid}.check{align-items:center;gap:.6rem;padding:.4rem 0;font-size:1rem;display:flex}.check input{width:22px;height:22px}.pdf-pages{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.6rem;max-height:52vh;margin-bottom:1rem;display:grid;overflow:auto}.pdf-page{all:unset;cursor:pointer;border:2px solid #0000;border-radius:10px;flex-direction:column;align-items:center;gap:.3rem;padding:.4rem;display:flex}.pdf-page.selected{border-color:var(--navy);background:#eef1fa}.pdf-thumb{aspect-ratio:1.41;border:1px solid var(--line);background:#fafafa;place-items:center;width:100%;display:grid}.pdf-thumb img{max-width:100%;max-height:100%}.toast{left:50%;bottom:calc(1.2rem + var(--safe-bottom));color:#fff;z-index:80;pointer-events:none;background:#1d2333;border-radius:99px;padding:.7rem 1.1rem;transition:transform .25s;position:fixed;transform:translate(-50%,150%)}.toast.show{transform:translate(-50%)}.update-banner{left:50%;top:calc(.6rem + var(--safe-top));z-index:90;border:1px solid var(--line);background:#fff;border-radius:12px;align-items:center;gap:.6rem;padding:.5rem .5rem .5rem 1rem;display:flex;position:fixed;transform:translate(-50%);box-shadow:0 6px 20px #00000026}.work{min-height:0;height:calc(100dvh - 57px - var(--safe-top));flex:1;display:flex}.stage-wrap{flex:1;min-width:0;position:relative}.stage{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;background:#d9dce1;position:absolute;inset:0;overflow:hidden}.stage.editing{cursor:crosshair}.world{transform-origin:0 0;will-change:transform;position:absolute;top:0;left:0}.base-img{pointer-events:none;background:#fff;width:100%;height:100%;display:block;box-shadow:0 2px 12px #0003}.markers{position:absolute;inset:0}.marker{width:34px;height:34px;transform:scale(var(--inv,1));color:#fff;cursor:pointer;border:2.5px solid #fff;border-radius:50%;place-items:center;margin:-17px 0 0 -17px;font-size:15px;font-weight:700;display:grid;position:absolute;box-shadow:0 1px 5px #00000073}.marker.selected{outline-offset:2px;z-index:2;outline:4px solid #011b628c}.marker.dragging{opacity:.8;z-index:3}.hint{left:50%;bottom:calc(.6rem + var(--safe-bottom));color:#fff;pointer-events:none;white-space:nowrap;text-overflow:ellipsis;background:#141823bf;border-radius:99px;max-width:95%;padding:.35rem .8rem;font-size:.8rem;position:absolute;overflow:hidden;transform:translate(-50%)}.segmented{border:1px solid var(--line);border-radius:10px;display:inline-flex;overflow:hidden}.seg{appearance:none;font:inherit;cursor:pointer;background:#fff;border:0;min-height:38px;padding:.45rem .9rem}.seg.active{background:var(--navy);color:#fff}.points-list{z-index:4;background:#fff;border-radius:12px;width:min(320px,80%);max-height:70%;padding:.4rem;position:absolute;top:.6rem;left:.6rem;overflow:auto;box-shadow:0 8px 24px #0003}.pl-row{all:unset;cursor:pointer;box-sizing:border-box;border-radius:8px;align-items:center;gap:.6rem;width:100%;padding:.45rem;display:flex}.pl-row:hover{background:#f2f4f7}.pl-title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.dot{color:#fff;border-radius:50%;flex:none;place-items:center;width:26px;height:26px;font-size:.8rem;font-weight:700;display:inline-grid}.dot.big{width:34px;height:34px;font-size:1rem}.panel-host:empty{display:none}.panel-host{border-left:1px solid var(--line);-webkit-overflow-scrolling:touch;background:#fff;flex:none;width:400px;overflow:auto}.panel-head{border-bottom:1px solid var(--line);z-index:1;background:#fff;align-items:center;gap:.6rem;padding:.7rem .9rem;display:flex;position:sticky;top:0}.panel-head h2{margin:0}.panel-body{padding:.9rem .9rem calc(1.5rem + var(--safe-bottom))}.panel-foot{border-top:1px solid var(--line);margin-top:1.4rem;padding-top:.8rem}.status-row{gap:.4rem;display:flex}.status-btn{appearance:none;font:inherit;border:2px solid var(--c);min-height:44px;color:var(--c);cursor:pointer;background:#fff;border-radius:10px;flex:1;font-weight:600}.status-btn.active{background:var(--c);color:#fff}.photo-grid{grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:.4rem;margin-bottom:.5rem;display:grid}.photo-grid:empty{display:none}.photo-thumb{all:unset;aspect-ratio:1;background:var(--grey);cursor:pointer;border-radius:8px;overflow:hidden}.photo-thumb img{object-fit:cover;width:100%;height:100%;display:block}.audio{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.audio audio{max-width:100%;height:40px}.rec-dot{background:var(--danger);border-radius:50%;width:12px;height:12px;animation:1s infinite blink}@keyframes blink{50%{opacity:.2}}@media (width<=760px){.work.with-panel .panel-host{z-index:20;border-left:0;border-top:1px solid var(--line);border-radius:16px 16px 0 0;width:auto;height:72dvh;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -10px 30px #0003}.hide-narrow{display:none}.bar h1{font-size:1rem}.cards{grid-template-columns:1fr}}.gallery{z-index:60;background:#000;flex-direction:column;display:flex;position:fixed;inset:0}.gallery-bar{color:#fff;padding:calc(.4rem + var(--safe-top)) .6rem .4rem;align-items:center;gap:.8rem;display:flex}.gallery-info{color:#aab;font-size:.8rem}.gallery-strip{touch-action:pan-x;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;flex:1;display:flex;overflow:auto hidden}.gallery-strip::-webkit-scrollbar{display:none}.gallery-slide{scroll-snap-align:center;scroll-snap-stop:always;flex:0 0 100%;place-items:center;height:100%;display:grid}.gallery-slide img{object-fit:contain;max-width:100%;max-height:100%}.gallery-nav{color:#fff;cursor:pointer;background:#ffffff26;border:0;border-radius:10px;width:48px;height:64px;font-size:2rem;position:absolute;top:50%;transform:translateY(-50%)}.gallery-nav.prev{left:.5rem}.gallery-nav.next{right:.5rem}@media (pointer:coarse){.gallery-nav{display:none}}.storage-box .meter{background:#eceef2;border-radius:99px;height:10px;margin-bottom:.5rem;overflow:hidden}.meter-fill{background:var(--navy);height:100%}
