@import"https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500&family=IBM+Plex+Sans:wght@400;500;600&display=swap";:root{--n-25: #f8f9f8;--n-50: #f1f3f2;--n-100: #e6e9e7;--n-200: #d5d9d7;--n-300: #b7bdba;--n-400: #939a97;--n-500: #6e7673;--n-600: #525956;--n-700: #3a403e;--n-800: #262b29;--n-900: #171a19;--n-950: #0e100f;--azurite-50: #e8eff8;--azurite-100: #cbdcf0;--azurite-300: #7fa6d8;--azurite-500: #2f62a8;--azurite-600: #27518b;--azurite-700: #1e3f6c;--malachite-50: #e4f1eb;--malachite-500: #2e7d5b;--malachite-700: #1d5540;--sulfur-50: #faf0d8;--sulfur-500: #c9930f;--sulfur-700: #8a6408;--cinnabar-50: #f8e8e5;--cinnabar-500: #a83a2c;--cinnabar-700: #78281e;--page: var(--n-50);--surface: #ffffff;--surface-sunk: var(--n-25);--well: var(--n-100);--well-edge: var(--n-200);--text: var(--n-900);--text-secondary: var(--n-600);--text-muted: var(--n-400);--text-inverse: #ffffff;--line: var(--n-200);--line-strong: var(--n-300);--accent: var(--azurite-500);--accent-hover: var(--azurite-600);--accent-text: var(--azurite-600);--accent-wash: var(--azurite-50);--accent-edge: var(--azurite-100);--on-accent: #ffffff;--ok: var(--malachite-500);--ok-text: var(--malachite-700);--ok-wash: var(--malachite-50);--warn: var(--sulfur-500);--warn-text: var(--sulfur-700);--warn-wash: var(--sulfur-50);--danger: var(--cinnabar-500);--danger-text: var(--cinnabar-700);--danger-wash: var(--cinnabar-50);--viewfinder: #12100e;--viewfinder-text: #e8e6e1;--viewfinder-mark: #7fd8a6;--font: "IBM Plex Sans", system-ui, -apple-system, sans-serif;--font-data: "IBM Plex Mono", ui-monospace, monospace;--text-xs: .6875rem;--text-sm: .8125rem;--text-base: 1rem;--text-lg: 1.1875rem;--text-xl: 1.4375rem;--text-2xl: 1.75rem;--leading-tight: 1.25;--leading-snug: 1.4;--leading-body: 1.6;--weight-regular: 400;--weight-medium: 500;--weight-strong: 600;--tracking-data: .01em;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.5rem;--space-6: 2rem;--space-7: 3rem;--radius-well: 4px;--radius-control: 8px;--radius-card: 12px;--radius-sheet: 16px;--radius-round: 999px;--lift: 0 1px 2px rgba(23, 26, 25, .06), 0 8px 24px rgba(23, 26, 25, .1);--focus-ring: 0 0 0 2px var(--page), 0 0 0 4px var(--accent);--duration-fast: .12s;--duration-base: .2s;--ease: cubic-bezier(.2, 0, 0, 1);--tap-target: 44px;--label-width: 38mm;--label-height: 21mm;--label-qr: 15mm}@media(prefers-color-scheme:dark){:root{--page: var(--n-900);--surface: var(--n-800);--surface-sunk: #1f2322;--well: var(--n-950);--well-edge: var(--n-800);--text: var(--n-100);--text-secondary: var(--n-400);--text-muted: var(--n-500);--text-inverse: var(--n-900);--line: #313735;--line-strong: var(--n-700);--accent: var(--azurite-300);--accent-hover: #9bb9e2;--accent-text: var(--azurite-300);--accent-wash: #1a2a40;--accent-edge: #2a3f5c;--on-accent: var(--n-950);--ok-text: #6fc79b;--ok-wash: #163024;--warn-text: #e0b445;--warn-wash: #33270a;--danger-text: #e08276;--danger-wash: #38150f;--lift: 0 1px 2px rgba(0, 0, 0, .4), 0 8px 24px rgba(0, 0, 0, .45)}}@media(prefers-reduced-motion:reduce){:root{--duration-fast: 0ms;--duration-base: 0ms}}*,*:before,*:after{box-sizing:border-box}body{margin:0;background:var(--page);color:var(--text);font-family:var(--font);font-size:var(--text-base);line-height:var(--leading-body);-webkit-font-smoothing:antialiased}.app{position:relative;min-height:100dvh;display:flex;flex-direction:column;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}:focus-visible{outline:none;box-shadow:var(--focus-ring)}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}.topbar{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-4) var(--space-3);background:var(--page)}.topbar h2{margin:0;font-size:var(--text-lg);font-weight:var(--weight-strong);line-height:var(--leading-tight);letter-spacing:-.01em}.topbar .sub{font-size:var(--text-xs);color:var(--text-muted)}.topbar .spacer{flex:1}.scroll{flex:1;overflow:hidden;padding:0 var(--space-4) var(--space-4)}.icon{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex:none}.icon-sm{width:16px;height:16px}.muted{color:var(--text-secondary)}.field{display:flex;align-items:center;gap:var(--space-2);height:var(--tap-target);padding:0 var(--space-3);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-control);font-size:var(--text-sm);color:var(--text-muted)}.field.is-focused{border-color:var(--accent);color:var(--text)}.chips{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-2)}.chip{display:inline-flex;align-items:center;gap:4px;padding:3px var(--space-2);font-size:var(--text-xs);border-radius:var(--radius-well);background:var(--accent-wash);color:var(--accent-text);border:1px solid var(--accent-edge)}.chip--plain{background:transparent;color:var(--text-secondary);border-color:var(--line)}.chip--ok{background:var(--ok-wash);color:var(--ok-text);border-color:transparent}.well{background:var(--well);border:1px solid var(--well-edge);border-radius:var(--radius-well);display:flex;align-items:center;justify-content:center;color:var(--text-muted)}.tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3)}.tile .well{aspect-ratio:1}.tile .inv{font-family:var(--font-data);font-size:var(--text-xs);color:var(--text-muted);letter-spacing:var(--tracking-data);margin-top:6px}.tile .name{font-size:var(--text-sm);font-weight:var(--weight-medium);line-height:var(--leading-tight)}.tile .meta{font-size:var(--text-xs);color:var(--text-secondary)}.fabs{position:absolute;right:var(--space-4);bottom:var(--space-4);display:flex;flex-direction:column;align-items:center;gap:var(--space-3)}.fab{width:56px;height:56px;border-radius:var(--radius-round);background:var(--accent);color:var(--on-accent);display:flex;align-items:center;justify-content:center;box-shadow:var(--lift)}.fab--quiet{width:44px;height:44px;background:var(--surface);color:var(--text-secondary);border:1px solid var(--line)}.fab .icon{width:24px;height:24px;stroke-width:1.8}.rows{border-top:1px solid var(--line);margin-top:var(--space-4)}.row{display:flex;justify-content:space-between;gap:var(--space-4);padding:var(--space-2) 0;font-size:var(--text-sm)}.row dt{color:var(--text-secondary);display:flex;align-items:center;gap:6px;margin:0}.row dd{margin:0;text-align:right}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:var(--tap-target);padding:0 var(--space-4);border-radius:var(--radius-control);border:1px solid var(--line-strong);background:var(--surface);color:var(--text);font-family:var(--font);font-size:var(--text-sm);font-weight:var(--weight-medium)}.btn--primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.btn--full{width:100%}.notice{display:flex;gap:var(--space-3);align-items:flex-start;padding:var(--space-3);border-radius:var(--radius-control);font-size:var(--text-xs);line-height:var(--leading-snug)}.notice--ok{background:var(--ok-wash);color:var(--ok-text)}.notice--warn{background:var(--warn-wash);color:var(--warn-text)}.segment{display:flex;border:1px solid var(--line);border-radius:var(--radius-control);overflow:hidden}.segment>*{flex:1;text-align:center;padding:10px 0;font-size:var(--text-sm);color:var(--text-secondary);border-left:1px solid var(--line)}.segment>:first-child{border-left:0}.segment .is-selected{background:var(--accent-wash);color:var(--accent-text);font-weight:var(--weight-medium)}.label-key{font-size:var(--text-xs);color:var(--text-muted);margin:var(--space-4) 0 6px}.suggest{border:1px solid var(--line);border-radius:var(--radius-control);overflow:hidden;margin-top:var(--space-1);background:var(--surface)}.suggest>div{padding:var(--space-2) var(--space-3);border-top:1px solid var(--line)}.suggest>:first-child{border-top:0}.suggest .is-active{background:var(--accent-wash)}.suggest .sp{font-size:var(--text-sm)}.suggest .rank{font-size:var(--text-xs);color:var(--text-secondary)}.map{position:relative;flex:1;background:#cfd9e0;overflow:hidden}.land{position:absolute;background:#dfe3d6}.water{position:absolute;background:#b9cbd8;border-radius:var(--radius-round)}.cluster{position:absolute;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-round);background:var(--azurite-500);color:#fff;font-size:var(--text-sm);font-weight:var(--weight-medium);border:3px solid #fff;box-shadow:var(--lift)}.pin{position:absolute;width:26px;height:26px;border-radius:var(--radius-round);background:#fff;border:2px solid var(--azurite-500);color:var(--azurite-500);display:flex;align-items:center;justify-content:center}.sheet-up{position:absolute;left:0;right:0;bottom:0;background:var(--surface);border-radius:var(--radius-sheet) var(--radius-sheet) 0 0;padding:var(--space-2) var(--space-4) var(--space-4);box-shadow:var(--lift)}.grabber{width:36px;height:4px;border-radius:var(--radius-round);background:var(--line-strong);margin:0 auto var(--space-3)}.strip{display:flex;gap:var(--space-2)}.strip .well{width:52px;height:52px;flex:none}.viewfinder{position:relative;height:300px;background:var(--viewfinder);color:var(--viewfinder-text)}.reticle{position:absolute;left:50%;top:140px;transform:translate(-50%,-50%);width:168px;height:168px}.reticle i{position:absolute;width:32px;height:32px;border:3px solid var(--viewfinder-mark)}.reticle i:nth-child(1){left:0;top:0;border-right:0;border-bottom:0;border-radius:6px 0 0}.reticle i:nth-child(2){right:0;top:0;border-left:0;border-bottom:0;border-radius:0 6px 0 0}.reticle i:nth-child(3){left:0;bottom:0;border-right:0;border-top:0;border-radius:0 0 0 6px}.reticle i:nth-child(4){right:0;bottom:0;border-left:0;border-top:0;border-radius:0 0 6px}.hit{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);border-radius:var(--radius-control);background:var(--ok-wash);color:var(--ok-text)}.hit .well{width:48px;height:48px;flex:none;background:var(--surface);border-color:var(--line)}.label{width:var(--label-width);height:var(--label-height);border:1px solid var(--line);display:flex;align-items:center;gap:2mm;padding:1.5mm;box-sizing:border-box;background:#fff;color:#171a19}.label .qr{width:var(--label-qr);height:var(--label-qr);flex:none;background:repeating-conic-gradient(#171a19 0,#171a19 25%,#fff 0,#fff 50%) 0 0 / 3mm 3mm}.label .lines{min-width:0;font-size:6.5pt;line-height:1.25}.label .lines b{font-weight:var(--weight-medium);display:block}.label .lines span{color:#525956;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.label .lines code{font-family:var(--font-data);font-size:6pt;color:#525956}.stat-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-3)}.stat{background:var(--surface-sunk);border-radius:var(--radius-control);padding:var(--space-3)}.stat b{display:block;font-size:var(--text-2xl);font-weight:var(--weight-strong);line-height:1.1;letter-spacing:-.02em}.stat span{font-size:var(--text-xs);color:var(--text-secondary)}.scroll{overflow-y:auto;-webkit-overflow-scrolling:touch}.spacer{flex:1}.small{font-size:var(--text-sm)}.centered{text-align:center}.mono{font-family:var(--font-data);letter-spacing:var(--tracking-data)}.brand{font-size:var(--text-2xl);font-weight:var(--weight-strong);letter-spacing:-.02em;margin:var(--space-6) 0 var(--space-2)}.form-narrow{max-width:26rem;margin:0 auto;width:100%}.topbar--bordered{border-bottom:1px solid var(--line)}.topbar-title{margin:0;font-size:var(--text-base);font-weight:var(--weight-strong)}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:var(--tap-target);height:var(--tap-target);margin:calc(var(--space-3) * -1);background:none;border:0;border-radius:var(--radius-control);color:inherit}.link-btn{min-height:var(--tap-target);padding:0 var(--space-2);background:none;border:0;color:var(--accent-text);font-size:var(--text-sm);font-weight:var(--weight-medium)}.link-btn:disabled{color:var(--text-muted)}.link-btn--quiet{color:var(--text-secondary);font-weight:var(--weight-regular)}.search-area{padding:0 var(--space-4) var(--space-3)}.field-bare{flex:1;min-width:0;height:100%;background:none;border:0;outline:none;color:var(--text);font-size:var(--text-sm)}.field-bare::placeholder{color:var(--text-muted)}.field-input{display:block;width:100%;min-height:var(--tap-target);padding:var(--space-2) var(--space-3);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-control);color:var(--text);font-size:var(--text-base)}.field-input:focus-visible{border-color:var(--accent)}.field-input::placeholder{color:var(--text-muted)}.field-area{min-height:auto;resize:vertical;line-height:var(--leading-snug)}.hint{display:block;font-size:var(--text-xs);color:var(--text-muted);line-height:var(--leading-snug);margin-top:var(--space-1)}.filter-sheet{margin-top:var(--space-3);padding:var(--space-3);background:var(--surface-sunk);border:1px solid var(--line);border-radius:var(--radius-card)}.segment>*{background:none;border-top:0;border-right:0;border-bottom:0;color:var(--text-secondary);font-size:var(--text-sm)}.chip{cursor:pointer}.chip--warn{background:var(--warn-wash);color:var(--warn-text);border-color:transparent}.btn{text-decoration:none}.btn--danger{background:var(--danger);border-color:var(--danger);color:var(--text-inverse)}.btn:disabled,.btn--primary:disabled{background:var(--surface-sunk);border-color:var(--line);color:var(--text-muted)}.notice--danger{background:var(--danger-wash);color:var(--danger-text)}.tile{display:block;color:inherit;text-decoration:none}.tile .name{color:var(--text)}.empty{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);text-align:center;padding:var(--space-7) var(--space-4)}.empty h2{margin:0;font-size:var(--text-lg)}.empty p{margin:0;max-width:34ch}.inv-line{font-family:var(--font-data);font-size:var(--text-xs);color:var(--text-muted);letter-spacing:var(--tracking-data);margin-top:var(--space-4)}.specimen-name{margin:0;font-size:var(--text-xl);font-weight:var(--weight-strong);line-height:var(--leading-tight);letter-spacing:-.01em}.seller-words{margin-top:var(--space-3);padding:var(--space-3);background:var(--surface-sunk);border-left:2px solid var(--line-strong);border-radius:0 var(--radius-control) var(--radius-control) 0;font-size:var(--text-sm)}.notes{margin:var(--space-1) 0 0;font-size:var(--text-sm);white-space:pre-wrap}.trip-block,.trip-picked{display:flex;gap:var(--space-3);align-items:center;margin-top:var(--space-4);padding:var(--space-3);border:1px solid var(--line);border-radius:var(--radius-control);color:inherit;text-decoration:none;font-size:var(--text-sm);line-height:var(--leading-snug)}.trip-picked{border-color:var(--accent);background:var(--accent-wash);color:var(--accent-text)}.trip-block-text{min-width:0}.actions{display:flex;gap:var(--space-2);margin-top:var(--space-6)}.actions .btn{flex:1}.photo-row{display:flex;gap:var(--space-2);margin-top:var(--space-4)}.photo-row .well{width:80px;height:80px;flex-direction:column;gap:2px}.well--dashed{border-style:dashed}.mineral-row{margin-bottom:var(--space-2)}.size-row{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-2)}.suggest-wrap{position:relative}.suggest{position:absolute;left:0;right:0;z-index:10;box-shadow:var(--lift)}.suggest>button{display:block;width:100%;text-align:left;padding:var(--space-2) var(--space-3);background:var(--surface);border:0;border-top:1px solid var(--line);color:inherit}.suggest>button:first-child{border-top:0}.suggest>button:hover,.suggest>button:focus-visible{background:var(--accent-wash)}.icon-xs{width:12px;height:12px}.icon-lg{width:28px;height:28px}.gallery-frame{display:block;width:100%;padding:0;background:var(--well);border:1px solid var(--well-edge);border-radius:var(--radius-well);overflow:hidden}.gallery-image{display:block;width:100%;height:260px;object-fit:contain}.dots{display:flex;justify-content:center;margin:var(--space-2) 0}.dot{width:22px;height:var(--tap-target);padding:0;display:flex;align-items:center;justify-content:center;background:none;border:0}.dot:after{content:"";display:block;width:5px;height:5px;border-radius:var(--radius-round);background:var(--line-strong);transition:background var(--duration-fast) var(--ease)}.dot.is-active:after{background:var(--text-secondary)}.tile-cover{width:100%;height:100%;object-fit:cover;display:block}.uploader{margin-top:var(--space-3);padding:var(--space-3);background:var(--surface-sunk);border:1px solid var(--line);border-radius:var(--radius-card)}.photo-row .well{background:var(--well);cursor:pointer}.photo-row .well:disabled{opacity:.5}.label-photos{margin-top:var(--space-3);padding:var(--space-3);border:1px solid var(--line);border-radius:var(--radius-control)}.label-thumb{width:72px;height:72px;object-fit:cover;display:block;border-radius:var(--radius-well);border:1px solid var(--well-edge)}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:center;justify-content:center;background:var(--viewfinder);padding:var(--space-4)}.lightbox-image{max-width:100%;max-height:100%;object-fit:contain}.lightbox-close{position:absolute;top:var(--space-4);right:var(--space-4);width:var(--tap-target);height:var(--tap-target);display:flex;align-items:center;justify-content:center;background:none;border:0;color:var(--viewfinder-text)}.export-banner{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-3);padding:var(--space-3);background:var(--warn-wash);color:var(--warn-text);border-radius:var(--radius-control);font-size:var(--text-sm);line-height:var(--leading-snug);text-decoration:none}.export-banner .hint{color:inherit;opacity:.75}.pending-photo{position:relative;width:80px;height:80px;flex:none}.pending-photo img{width:100%;height:100%;object-fit:cover;display:block;border-radius:var(--radius-well);border:1px solid var(--well-edge)}.pending-photo-remove{position:absolute;top:-6px;right:-6px;width:24px;height:24px;padding:0;display:flex;align-items:center;justify-content:center;background:var(--surface);color:var(--text-secondary);border:1px solid var(--line);border-radius:var(--radius-round);box-shadow:var(--lift)}.pending-photo-kind{position:absolute;left:0;right:0;bottom:0;width:100%;padding:2px;background:var(--surface);color:var(--text-secondary);border:0;border-top:1px solid var(--line);border-radius:0 0 var(--radius-well) var(--radius-well);font-size:var(--text-xs)}.photo-row{flex-wrap:wrap}@media(min-width:640px){body{background:var(--surface-sunk)}.app{max-width:620px;margin:0 auto;background:var(--page);min-height:100dvh;border-left:1px solid var(--line);border-right:1px solid var(--line)}.tiles{grid-template-columns:repeat(3,minmax(0,1fr))}}.account{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);background:var(--surface-sunk);border-radius:var(--radius-control)}.account-name{font-weight:var(--weight-medium)}.menu-row{display:flex;align-items:center;gap:var(--space-3);min-height:var(--tap-target);padding:var(--space-3);margin-bottom:var(--space-2);border:1px solid var(--line);border-radius:var(--radius-control);color:inherit;text-decoration:none;font-size:var(--text-sm);line-height:var(--leading-snug)}.later{margin:0;padding-left:var(--space-5);font-size:var(--text-sm);color:var(--text-secondary);line-height:var(--leading-body)}.confidence-row{display:flex;align-items:center;gap:var(--space-2);margin-top:var(--space-2)}.confidence-row .hint{margin-top:0;flex:none}.field-compact{min-height:36px;padding:var(--space-1) var(--space-2);font-size:var(--text-sm)}
