:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--bg:#faf8f6;--surface:#fff;--surface-2:#f1ece6;--text:#1f1a17;--muted:#6b625b;--border:#e2dad2;--accent:#b9470f;--accent-text:#fff;--accent-soft:#f8d9c5;--skin:#ebe3db;--skin-hover:#ddd1c5;--skin-stroke:#b3a597;--pin:#3d281d;--pin-ring:#fff;--ok:#2f7d45;--warn:#a86108;--bad:#b42318;--radius:12px;-webkit-text-size-adjust:100%;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.45}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#171412;--surface:#211d1a;--surface-2:#2b2622;--text:#f2ece6;--muted:#a99f96;--border:#3a332d;--accent:#f08a4b;--accent-text:#1a0f08;--accent-soft:#5a2e15;--skin:#3a332d;--skin-hover:#4a413a;--skin-stroke:#6f6358;--pin:#f5d0b5;--pin-ring:#171412;--ok:#6cc486;--warn:#e3a64a;--bad:#f07a6e}}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0}h1,h2{margin:0;line-height:1.2}h1{font-size:1.4rem}h2{font-size:1.1rem}p{margin:0}a{color:var(--accent)}img{display:block}.container{max-width:720px;padding:16px 16px calc(32px + env(safe-area-inset-bottom));margin:0 auto}.app-header{z-index:10;padding:calc(8px + env(safe-area-inset-top)) 16px 8px;background:color-mix(in srgb, var(--bg) 88%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;display:flex;position:sticky;top:0}.brand{color:var(--text);align-items:center;gap:8px;font-size:1.1rem;font-weight:700;text-decoration:none;display:flex}.header-actions{align-items:center;gap:8px;min-width:0;display:flex}.icon-link{width:44px;height:44px;color:var(--text);border-radius:50%;place-items:center;display:grid}.icon-link:hover{background:var(--surface-2)}.stack{flex-direction:column;gap:16px;display:flex}.stack.tight{gap:4px}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.row.spread{justify-content:space-between}.section-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.muted{color:var(--muted)}.hint{color:var(--accent);text-align:center;font-weight:600}.error{color:var(--bad);width:100%}.status{font-weight:600}.empty-state{text-align:center;flex-direction:column;align-items:center;gap:12px;padding:48px 16px;display:flex}.disclaimer{color:var(--muted);font-size:.85rem}.small{font-size:.85rem}code{background:var(--surface-2);overflow-wrap:anywhere;border-radius:4px;padding:1px 5px;font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:.85em}.visually-hidden{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute;overflow:hidden}.back-link{align-self:flex-start;padding:8px 0;font-weight:600;text-decoration:none}button,.button,input,select,textarea{font:inherit;color:inherit}button,.button{border:1px solid var(--border);background:var(--surface);cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:999px;justify-content:center;align-items:center;gap:6px;min-height:44px;padding:0 16px;font-weight:600;text-decoration:none;display:inline-flex;position:relative}button:hover:not(:disabled),.button:hover{background:var(--surface-2)}button.primary,.button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}button.primary:hover:not(:disabled),.button.primary:hover{background:color-mix(in srgb, var(--accent) 88%, black)}button.danger{color:var(--bad);border-color:color-mix(in srgb, var(--bad) 40%, var(--border))}button.small{min-height:36px;padding:0 12px;font-size:.9rem}button.link{min-height:0;color:var(--accent);background:0 0;border:0;padding:4px 0}button.link:hover:not(:disabled){background:0 0;text-decoration:underline}button:disabled,.button.disabled{opacity:.5;cursor:default}button:focus-visible,.button:focus-within,a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}input:not([type]),input[type=text],input[type=password],input[type=date],select,textarea{border:1px solid var(--border);background:var(--surface);border-radius:10px;width:100%;min-height:44px;padding:8px 12px}select{width:auto;max-width:40vw}textarea{resize:vertical}.field{flex-direction:column;gap:6px;display:flex}.field>span{color:var(--muted);font-size:.9rem;font-weight:600}input.title-input{background:0 0;border-color:#0000;margin-left:-8px;padding:4px 8px;font-size:1.3rem;font-weight:700}input.title-input:hover,input.title-input:focus{border-color:var(--border);background:var(--surface)}.segmented{background:var(--surface-2);border-radius:999px;gap:3px;padding:3px;display:inline-flex}.segmented button{background:0 0;border:0;min-height:38px;padding:0 14px}.segmented button[aria-pressed=true]{background:var(--surface);box-shadow:0 1px 3px #00000026}.segmented.small button{min-height:32px;font-size:.85rem}.toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.tag{background:var(--surface-2);border-radius:999px;align-self:flex-start;padding:2px 8px;font-size:.8rem;font-weight:600;display:inline-block}.tag.changed{background:color-mix(in srgb, var(--bad) 18%, transparent);color:var(--bad)}.banner{border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;display:flex}.banner>div{flex-direction:column;min-width:0;display:flex}.banner>button,.banner>.button{white-space:nowrap;flex-shrink:0}.banner .muted{font-size:.9rem}.banner.due{border-color:var(--accent);background:color-mix(in srgb, var(--accent-soft) 45%, var(--surface))}.placing-panel{border-radius:var(--radius);border:2px solid var(--accent);background:var(--surface);gap:12px;padding:12px;display:flex}.placing-thumb{object-fit:cover;border-radius:8px;flex-shrink:0;width:88px;height:88px}.body-map{-webkit-user-select:none;user-select:none;touch-action:manipulation;width:100%;height:min(62vh,560px);display:block}.body-map .region{fill:var(--skin);stroke:var(--skin-stroke);stroke-width:.8px;stroke-linejoin:round;transition:fill .15s}.body-map.interactive .region{cursor:pointer}.body-map.interactive .region:hover{fill:var(--skin-hover)}.body-map .region.selected{fill:var(--accent-soft);stroke:var(--accent);stroke-width:1.2px}.body-map.pins-inert .region{cursor:crosshair}.body-map.pins-inert .pin{pointer-events:none}.body-map .pin{cursor:pointer}.body-map .pin-hit{fill:#0000}.body-map .pin-dot{fill:var(--pin);stroke:var(--pin-ring);stroke-width:1.5px}.body-map .pin.highlight .pin-dot{fill:var(--accent)}.body-map .side-mark{fill:var(--muted);font-size:11px;font-weight:700}.body-map.mini{flex-shrink:0;width:72px;height:158px}.body-map.mini .side-mark{display:none}.mole-header{align-items:center;gap:16px;display:flex}.mole-list{flex-direction:column;gap:8px;display:flex}.mole-card{border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);color:var(--text);align-items:center;gap:12px;padding:8px;text-decoration:none;display:flex}.mole-card:hover{background:var(--surface-2)}.mole-card-body{flex-direction:column;gap:2px;min-width:0;display:flex}.mole-card-body .muted{font-size:.9rem}.thumb{background:var(--surface-2);width:64px;height:64px;color:var(--muted);border-radius:8px;flex-shrink:0;place-items:center;font-size:.7rem;display:grid;overflow:hidden}.thumb img{object-fit:cover;width:100%;height:100%}.photo-buttons{flex-wrap:wrap;gap:8px;display:flex}.photo-buttons .button{flex:140px}.frame{aspect-ratio:1;border-radius:var(--radius);background:#111;place-items:center;display:grid;overflow:hidden}.frame img{object-fit:contain;width:100%;height:100%}.frame .muted{color:#999;font-size:.9rem}.frame.overlay{position:relative}.frame.overlay img{position:absolute;inset:0}figure{flex-direction:column;gap:6px;margin:0;display:flex}figcaption{font-size:.9rem}.compare{flex-direction:column;gap:10px;display:flex}.compare>.segmented{align-self:center}.side-by-side{grid-template-columns:1fr 1fr;gap:8px;display:grid}.mix-slider{grid-template-columns:auto 1fr auto;align-items:center;gap:10px;font-size:.85rem;font-weight:600;display:grid}.mix-slider input{width:100%;accent-color:var(--accent)}.timeline{scroll-snap-type:x proximity;gap:8px;padding:4px 2px 8px;display:flex;overflow-x:auto}.timeline-item{scroll-snap-align:start;border-radius:10px;flex-direction:column;flex-shrink:0;width:84px;min-height:0;padding:4px;font-size:.75rem}.timeline-item img{object-fit:cover;border-radius:6px;width:74px;height:74px}.timeline-item[aria-pressed=true]{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.dot{border:1.5px solid var(--surface);border-radius:50%;width:10px;height:10px;position:absolute;top:8px;right:8px}.dot.unchanged{background:var(--ok)}.dot.unsure{background:var(--warn)}.dot.changed{background:var(--bad)}.assessment{flex-direction:column;gap:8px;display:flex}.assessment .segmented{border-radius:22px;flex-wrap:wrap;align-self:flex-start}.assessment button.assess-unchanged[aria-pressed=true]{background:var(--ok);color:#fff}.assessment button.assess-unsure[aria-pressed=true]{background:var(--warn);color:#fff}.assessment button.assess-changed[aria-pressed=true]{background:var(--bad);color:#fff}.advice{background:var(--surface-2);border-radius:10px;padding:10px 12px;font-size:.9rem}details>summary{cursor:pointer;padding:8px 0;font-weight:600}.check-summary{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.check-summary li+li{border-top:1px solid var(--border)}.check-summary button.link{text-align:left;width:100%;color:var(--text);grid-template-columns:1fr auto;gap:0 8px;padding:10px 0;display:grid}.check-summary button.link .muted{grid-column:1;font-size:.85rem;font-weight:400}.check-summary button.link .tag{grid-area:1/2/span 2;align-self:center}.check-summary button[aria-current=true]{color:var(--accent)}.people-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.people-list li{align-items:center;gap:8px;display:flex}.people-list input{flex:1;min-width:0}form.row input{flex:1;width:auto;min-width:0}.map-layout{flex-direction:column;gap:16px;display:flex}@media (width>=960px){.container{max-width:1080px}.map-layout{grid-template-columns:1fr 1fr;align-items:start;gap:32px;display:grid}.map-layout .body-map{height:min(72vh,720px)}.map-layout>section{position:sticky;top:88px}.side-by-side{gap:16px}}.ai-result{background:var(--surface-2);border-radius:10px;flex-direction:column;gap:8px;padding:12px 14px;display:flex}.ai-result dl{gap:6px;margin:0;display:grid}.ai-result dl>div{grid-template-columns:64px 1fr;gap:8px;display:grid}.ai-result dt{color:var(--muted);font-size:.85rem;font-weight:600}.ai-result dd{margin:0;font-size:.9rem}.tag.ai-no_visible_change{background:color-mix(in srgb, var(--ok) 18%, transparent);color:var(--ok)}.tag.ai-possible_change{background:color-mix(in srgb, var(--warn) 18%, transparent);color:var(--warn)}.tag.ai-clear_change{background:color-mix(in srgb, var(--bad) 18%, transparent);color:var(--bad)}.live-camera{z-index:100;padding:calc(12px + env(safe-area-inset-top)) 16px calc(16px + env(safe-area-inset-bottom));color:#fff;background:#000;flex-direction:column;justify-content:space-between;align-items:center;gap:12px;display:flex;position:fixed;inset:0}.live-top{justify-content:space-between;width:100%;display:flex}.live-camera button:not(.shutter):not(.primary){color:#fff;background:#ffffff24;border-color:#0000}.live-camera button:not(.shutter):not(.primary):hover:not(:disabled){background:#ffffff3d}.live-stage{width:min(100%, calc((100dvh - 240px) * var(--aspect)));aspect-ratio:var(--aspect);background:#111;border-radius:12px;position:relative;overflow:hidden}.live-stage video,.live-stage img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.live-stage .ghost{pointer-events:none}.live-controls{flex-direction:column;align-items:center;gap:14px;width:min(100%,420px);display:flex}.live-controls .mix-slider{width:100%}.live-error{text-align:center;max-width:420px;margin:auto}.shutter{background:#ffffff40;border:4px solid #fff;border-radius:50%;width:72px;height:72px;min-height:72px;padding:0}.shutter:hover:not(:disabled){background:#fff6}.login{text-align:center;align-items:center;max-width:360px;margin:10vh auto 0}.login .field{text-align:left;width:100%}.save-button{min-height:36px;padding:0 14px;font-size:.9rem}.save-button.dirty{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.save-button.dirty:hover:not(:disabled){background:color-mix(in srgb, var(--accent) 88%, black)}.save-button:not(.dirty){color:var(--muted)}.welcome{text-align:center;align-items:center;max-width:420px;margin:8vh auto 0}.welcome>button,.welcome form,.welcome form button{width:100%}.welcome .field{text-align:left}button.link.inline{padding:0;font-weight:500;text-decoration:underline;display:inline}@media (width<=400px){.brand-name{display:none}}.account{position:relative}.avatar{border:1px solid var(--border);background:var(--accent-soft);width:36px;height:36px;min-height:36px;color:var(--text);border-radius:50%;flex-shrink:0;place-items:center;padding:0;font-weight:700;display:inline-grid;overflow:hidden}.avatar img{object-fit:cover;width:100%;height:100%}.account-menu{z-index:30;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);flex-direction:column;gap:6px;width:min(280px,100vw - 32px);padding:14px;display:flex;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 10px 30px #0000002e}.account-menu>.stack{border-bottom:1px solid var(--border);overflow-wrap:anywhere;padding:0 4px 6px}.account-menu .menu-item{width:100%;min-height:40px;color:var(--text);background:0 0;border:0;border-radius:8px;justify-content:flex-start;align-items:center;padding:0 10px;font-weight:600;text-decoration:none;display:flex}.account-menu .menu-item:hover{background:var(--surface-2)}.account-menu .menu-item.danger{color:var(--bad)}.account-row{align-items:center;gap:12px;display:flex}.account-row .avatar{width:48px;height:48px;font-size:1.2rem}
