:root{--bg:#f4f4ef;--card:#e9e9e2;--row:#fcfcfa;--fg:#1d1d1b;--fg-muted:#6e6e68;--fg-body:#4f4f49;--border:#dcdcd4}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--fg);-webkit-font-smoothing:antialiased;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif;font-size:14px;line-height:1.55}.layout{display:flex;min-height:100vh}.sidebar{display:flex;position:sticky;border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;gap:6px;width:210px;height:100vh;padding:26px 20px;top:0}.sidebar .brand{margin-bottom:18px;font-weight:600}.sidebar nav{display:flex;flex-direction:column;gap:2px}.sidebar nav a{color:var(--fg-body);text-decoration:none;border-radius:7px;margin:0 -10px;padding:7px 10px;font-weight:500}.sidebar nav a:hover{color:var(--fg);background:var(--card)}.sidebar nav a.active{color:var(--fg);background:var(--card);font-weight:650}.sidebar .spacer{flex:1}.sidebar .muted{overflow:hidden;text-overflow:ellipsis}.logo{display:block;align-self: flex-start;height:20px;margin-bottom:8px}main{flex:1;min-width:0;max-width:780px;padding:28px 36px}h1{letter-spacing:-.01em;margin-bottom:18px;font-size:24px;font-weight:550}h2{margin:28px 0 12px;font-size:15px;font-weight:650}main .logo{margin:60px 0 20px}form.stack{display:flex;flex-direction:column;gap:12px;max-width:400px;margin-bottom:12px}input,select,textarea{font:inherit;background:var(--row);border:1px solid var(--border);outline:none;color:var(--fg);border-radius:8px;padding:11px 13px;font-size:16px}input:focus,select:focus,textarea:focus{border-color:var(--fg)}textarea{resize:vertical}.detail-panel textarea,.detail-panel select{width:100%;font-size:14px}.save-note{margin-top:8px}button{display:inline-flex;background:var(--fg);color:#fff;cursor:pointer;border:none;border-radius:7px;align-self: flex-start;align-items: center;padding:10px 20px;font-family:inherit;font-size:15px;font-weight:500}button:hover{background:#000}button.ghost{color:var(--fg-body);border:1px solid var(--border);background:0 0}button.ghost:hover{background:var(--card);color:var(--fg)}.sidebar button{margin-top:8px;padding:7px 14px;font-size:13px}table{border-collapse:separate;border-spacing:0;background:var(--row);border:1px solid var(--border);overflow:hidden;border-radius:8px;width:100%}th{text-align:left;color:var(--fg-muted);letter-spacing:.07em;text-transform:uppercase;background:var(--card);padding:10px 12px;font-size:11px;font-weight:600}td{text-align:left;border-top:1px solid var(--border);vertical-align:top;padding:10px 12px}.thumb{border:1px solid var(--border);border-radius:6px;height:56px;margin-right:4px}.picker{position:relative;display:flex;flex-direction:column}.picker input{width:100%}.suggestions{list-style:none;position:absolute;z-index:1000;background:var(--row);border:1px solid var(--border);overflow-y:auto;border-radius:8px;max-height:280px;top:calc(100% - 4px);left:0;right:0;box-shadow:0 6px 18px #1d1d1b14}.suggestions button{display:block;text-align:left;font:inherit;cursor:pointer;color:var(--fg);background:0 0;border:none;border-radius:0;align-self:stretch;width:100%;padding:10px 13px;font-size:14px;font-weight:400}.suggestions button:hover{background:var(--card)}.locations-main{display:flex;gap:28px;max-width:none}.locations-list{flex-shrink:0;width:420px}.map-col{position:sticky;display:flex;flex-direction:column;flex:1;gap:10px;min-width:0;height:calc(100vh - 56px);top:28px}.map-back{display:none}.map-panel{position:relative;background:var(--row);border:1px solid var(--border);overflow:hidden;border-radius:8px;flex:1}.map-panel .map{height:100%}.split-main{display:flex;gap:28px;max-width:none}.split-list{flex:1;min-width:0;max-width:780px}.detail-panel{position:sticky;overflow-y:auto;background:var(--row);border:1px solid var(--border);border-radius:8px;flex-shrink:0;align-self: flex-start;width:340px;max-height:calc(100vh - 56px);padding:20px;top:28px}.detail-panel .back{margin-bottom:14px}.detail-title{margin:0;font-size:18px}td.nowrap{white-space:nowrap}.row-actions{white-space:nowrap;text-align:right}.row-actions button{padding:6px 12px;font-size:13px}.row-actions button+button{margin-left:6px}td input{width:100%;min-width:140px;padding:7px 10px;font-size:14px}.toolbar{display:flex;flex-wrap:wrap;align-items: center;gap:10px;margin:28px 0 12px}.toolbar h2{flex:1;margin:0}.toolbar select,.toolbar button,.toolbar input{box-sizing:border-box;align-self: center;height:38px;padding:0 12px;font-size:14px}.toolbar .picker,.toolbar .filter-input{width:190px}.serial-edit{display:flex;align-items: center;gap:10px}.serial-edit input{flex:1;min-width:0}.detail-rows{margin:14px 0}.detail-rows div{display:flex;border-bottom:1px solid var(--border);gap:10px;padding:6px 0;font-size:14px}.detail-rows dt{color:var(--fg-muted);flex-shrink:0;width:100px}.detail-rows dd{margin:0}.photo-grid{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:14px}.photo-cell{position:relative}.photo-cell .thumb{height:84px;margin:0}.photo-remove{position:absolute;border-radius:50%;justify-content:center;width:22px;height:22px;padding:0;font-size:11px;line-height:1;top:-7px;right:-7px}.photo-cell .thumb{cursor:pointer}.serial-link{color:var(--fg);text-decoration:underline;text-decoration-color:var(--border);text-underline-offset:3px;font-weight:500}.serial-link:hover{text-decoration-color:var(--fg)}.lightbox{position:fixed;z-index:300;display:flex;background:#1d1d1be0;justify-content:center;align-items: center;inset:0}.lightbox img{border-radius:8px;max-width:92vw;max-height:92vh}.lightbox button{position:absolute;color:#fff;background:#fcfcfa2b;border-radius:50%;justify-content:center;width:40px;height:40px;padding:0;font-size:20px;line-height:1}.lightbox button:hover{background:#fcfcfa4d}.lightbox-close{font-size:15px;top:16px;right:16px}.lightbox-prev{top:50%;left:16px;transform:translateY(-50%)}.lightbox-next{top:50%;right:16px;transform:translateY(-50%)}.lightbox-count{position:absolute;color:#fcfcfac0;font-size:13px;bottom:16px;left:50%;transform:translate(-50%)}.map-panel>.muted{display:block;padding:16px}.map-reset{position:absolute;z-index:10;background:var(--row);top:12px;right:12px}tr.clickable{cursor:pointer}tr.clickable:hover td,tr.selected td{background:var(--card)}.error{color:#b03a2e;font-size:14px}.muted{color:var(--fg-muted);font-size:13px}.add-photos{display:inline-flex;vertical-align:top;cursor:pointer;color:var(--fg-body);border:1px solid var(--border);white-space:nowrap;background:0 0;border-radius:7px;align-items: center;padding:4px 10px;font-size:12px;font-weight:500}.add-photos:hover{background:var(--card);color:var(--fg)}.add-photos input{display:none}.add-photos.disabled{opacity:.6;cursor:default}.add-photos.disabled:hover{color:var(--fg-body);background:0 0}.photo-drop{border:1.5px dashed #0000;border-radius:10px;margin:-8px;padding:8px}.photo-drop.drag-over{border-color:var(--fg-muted);background:var(--card)}.drop-hint{margin-left:8px}.photo-uploading{display:flex;border:1px dashed var(--border);border-radius:6px;justify-content:center;align-items: center;width:84px;height:84px}.spinner{border:2px solid var(--border);border-top-color:var(--fg-muted);animation:spin .8s linear infinite;border-radius:50%;width:18px;height:18px}@keyframes spin{to{transform:rotate(360deg)}}.table-scroll{overflow-x:auto}.table-scroll table{min-width:100%}.topbar{display:none}@media (max-width:800px){.layout{flex-direction:column}.topbar{display:flex;position:sticky;z-index:50;background:var(--bg);border-bottom:1px solid var(--border);align-items: center;gap:14px;padding:12px 16px;top:0}.topbar .logo{margin:0}.hamburger{color:var(--fg);display:flex;background:0 0;border:none;padding:2px}.hamburger:hover{background:0 0}.backdrop{position:fixed;z-index:90;background:#1d1d1b66;inset:0}.sidebar{position:fixed;z-index:100;background:var(--bg);width:250px;height:100dvh;transition:transform .2s;top:0;bottom:0;left:0;transform:translate(-100%)}.sidebar.open{transform:none;box-shadow:0 0 30px #1d1d1b33}main{padding:20px 16px}.locations-main{flex-direction:column}.locations-list{width:auto}.map-col,.locations-main.has-selection .locations-list{display:none}.locations-main.has-selection .map-col{display:flex;position:static;height:calc(100dvh - 130px)}.map-back{display:inline-flex;align-self: flex-start}.split-main{flex-direction:column}.split-main.has-selection .split-list{display:none}.detail-panel{position:static;width:auto;max-height:none}.thumb{height:44px}}.sighting-list{list-style:none;background:var(--row);border:1px solid var(--border);overflow:hidden;border-radius:8px;margin:0;padding:0}.sighting-list li+li{border-top:1px solid var(--border)}.sighting-list a{display:flex;color:inherit;text-decoration:none;overflow-wrap:anywhere;flex-direction:column;gap:2px;padding:10px 14px}.sighting-list a:hover{background:var(--card)}.sighting-where{font-weight:600}.sighting-date{font-size:14px}.sighting-list .muted{font-size:13px}
