:root{--bg:#fff;--surface:#f6f7f9;--border:#d6dae0;--text:#14171a;--muted:#5a6472;--accent:#1a5fb4;--accent-text:#fff;--edited:#fff4d6;--edited-border:#e0a800;--error:#b3261e;--note:#0f6b3f;--row-alt:#fbfcfd}@media (prefers-color-scheme:dark){:root{--bg:#14171a;--surface:#1e2227;--border:#333a42;--text:#e6e9ed;--muted:#9aa4b2;--accent:#6ba3e8;--accent-text:#10131a;--edited:#3a3320;--edited-border:#b58900;--error:#f2b8b5;--note:#7ee0a8;--row-alt:#191d21}}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font:15px/1.45 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.app{padding:0 12px 48px}header{border-bottom:1px solid var(--border);background:var(--bg);z-index:2;flex-wrap:wrap;align-items:center;gap:8px 16px;padding:12px 0;display:flex;position:sticky;top:0}header h1{white-space:nowrap;margin:0;font-size:17px}header nav{flex-wrap:wrap;gap:4px;display:flex}.who{align-items:center;gap:8px;margin-left:auto;display:flex}.centred{text-align:center;max-width:26rem;margin:12vh auto;padding:0 16px}.centred h1{font-size:24px}button{font:inherit;border:1px solid var(--accent);background:var(--accent);color:var(--accent-text);cursor:pointer;border-radius:6px;min-height:36px;padding:7px 14px}button:disabled{opacity:.45;cursor:default}button.quiet{color:var(--text);border-color:var(--border);background:0 0}button.tab{color:var(--text);background:0 0;border-color:#0000;padding:6px 10px}button.tab.active{border-color:var(--accent);color:var(--accent);font-weight:600}input,select{font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:5px;min-width:0;padding:5px 7px}input:disabled,select:disabled{background:var(--surface);color:var(--muted)}input[type=checkbox]{width:18px;height:18px}.toolbar{flex-wrap:wrap;align-items:center;gap:8px;padding:10px 0;display:flex}.toolbar input[type=search]{flex:12rem}.spacer{flex:auto}.bulk{background:var(--surface);border:1px solid var(--border);border-radius:8px;flex-wrap:wrap;align-items:center;gap:8px 12px;margin-bottom:10px;padding:10px 12px;display:flex}.bulk label{color:var(--muted);align-items:center;gap:6px;display:flex}.bulk .count{color:var(--text);font-weight:600}.muted{color:var(--muted)}.small{font-size:13px}.error,.note,.banner{border:1px solid;border-radius:6px;margin:0 0 10px;padding:9px 12px}.error{color:var(--error);border-color:var(--error)}.note{color:var(--note);border-color:var(--note)}.banner{color:var(--muted);border-color:var(--border);background:var(--surface)}@media (width>=861px){.app{flex-direction:column;height:100dvh;display:flex}.app>*{flex:none}.app>.grid,.app>.history{flex:auto;min-height:14rem;overflow:auto}.app>.detail{max-height:45dvh;overflow-y:auto}}.grid{border:1px solid var(--border);overscroll-behavior:contain;border-radius:8px}.grid.resizing{cursor:col-resize;-webkit-user-select:none;user-select:none}table.records{table-layout:fixed;width:var(--table-width);border-collapse:separate;border-spacing:0;font-size:14px}table.records th,table.records td{text-align:left;border-bottom:1px solid var(--border);border-right:1px solid var(--border);vertical-align:middle;text-overflow:ellipsis;padding:5px 8px;overflow:hidden}table.records thead th{background:var(--surface);z-index:2;vertical-align:bottom;padding-right:12px;font-size:13px;position:sticky;top:0}table.records th .hint{color:var(--muted);white-space:normal;font-size:11px;font-weight:400;display:block}table.records th button.sort{width:100%;min-height:0;color:inherit;text-align:left;background:0 0;border:none;align-items:baseline;gap:4px;padding:0;font-weight:600;display:flex}table.records th button.sort .heading{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}table.records th button.sort .arrow{color:var(--accent);font-size:9px}.resizer{cursor:col-resize;touch-action:none;-webkit-user-select:none;user-select:none;z-index:1;width:9px;height:100%;position:absolute;top:0;right:0}.resizer:after{content:"";border-radius:2px;width:3px;position:absolute;top:0;bottom:0;right:0}.resizer:hover:after,.resizer:focus-visible:after,.resizer.active:after{background:var(--accent)}.resizer:focus-visible{outline:none}table.records tbody tr{background:var(--bg)}table.records tbody tr:nth-child(2n){background:var(--row-alt)}table.records .pinned{position:sticky;left:0}table.records td.pinned{background:inherit;z-index:1}table.records th.pinned{z-index:3}table.records .select{text-align:center;text-overflow:clip;padding:5px 0}table.records .id.pinned{left:var(--id-start);box-shadow:2px 0 0 var(--border)}table.records td input[type=text],table.records td input[type=number],table.records td select{width:100%}td.id,.records td.id{white-space:nowrap;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}td.readonly{color:var(--muted);white-space:nowrap}table.records tbody tr.edited{background:var(--edited)}td.edited-cell input,td.edited-cell select{border-color:var(--edited-border);border-width:2px}@media (width<=860px){table.records thead,table.records colgroup{display:none}.grid{border:none}table.records{width:auto}table.records .pinned{box-shadow:none;position:static}table.records td.derived{white-space:normal}.combobox{flex:auto;min-width:0}table.records,table.records tbody,table.records tr,table.records td{width:auto;display:block}table.records tr{border:1px solid var(--border);background:var(--bg);border-radius:8px;margin-bottom:10px;padding:6px 8px}table.records tbody tr:nth-child(2n){background:var(--row-alt)}table.records td{border:none;align-items:center;gap:10px;padding:4px 0;display:flex;overflow:visible}table.records td:before{content:attr(data-label);color:var(--muted);flex:0 0 8rem;font-size:13px}table.records td.select:before{content:"Select"}header h1{font-size:16px}}.detail{border:1px solid var(--border);background:var(--surface);border-radius:8px;margin-bottom:12px;padding:12px 14px}.detail header{border-bottom:1px solid var(--border);background:0 0;justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;padding:0 0 8px;display:flex;position:static}.detail-id{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:17px;font-weight:600}.detail section{margin-bottom:10px}.detail h3{margin:0 0 6px;font-size:14px}.detail h4{color:var(--muted);margin:8px 0 4px;font-size:13px;font-weight:600}.detail ul,.detail ol{margin:0;padding-left:18px}.detail li{margin-bottom:3px}.detail ol.trail{list-style:decimal}button.link{min-height:0;font:inherit;color:var(--accent);cursor:pointer;text-align:left;background:0 0;border:none;padding:0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;text-decoration:underline}button.link:hover{text-decoration:none}td.id button.link{font-size:inherit}ul.audit{margin:0;padding:0;list-style:none}.audit-entry{border-left:3px solid var(--border);margin-bottom:8px;padding:6px 0 6px 10px}.audit-entry.failed{border-left-color:var(--error)}.audit-head{flex-wrap:wrap;align-items:baseline;gap:4px 10px;display:flex}table.audit-changes{border-collapse:collapse;margin-top:4px;font-size:13px}table.audit-changes th{text-align:left;color:var(--muted);vertical-align:top;white-space:nowrap;padding:1px 10px 1px 0;font-weight:600}table.audit-changes td{vertical-align:top;overflow-wrap:anywhere;padding:1px 6px 1px 0}table.audit-changes td.was{color:var(--muted);text-decoration:line-through}table.audit-changes td.arrow{color:var(--muted);padding:0 6px}td.derived{white-space:normal;overflow-wrap:anywhere;font-size:13px}.combobox,.combobox input{width:100%}input.unknown{border-color:var(--error);border-style:dashed}.suggestions{border:1px solid var(--border);background:var(--bg);max-width:min(34rem,94vw);color:var(--text);border-radius:6px;margin:0;padding:4px 0;font-size:14px;list-style:none;inset:auto;overflow-y:auto;box-shadow:0 6px 22px #0003}.suggestions li{cursor:pointer;grid-template-columns:auto minmax(0,1fr);column-gap:10px;padding:5px 10px;display:grid}.suggestions li[aria-selected=true]{background:var(--accent);color:var(--accent-text)}.suggestion-id{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px}.suggestion-label,.suggestion-detail{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.suggestions li>.suggestion-label:first-child,.suggestion-detail{grid-column:1/-1}.suggestion-detail{color:var(--muted);font-size:12px}.suggestions li[aria-selected=true] .suggestion-detail{color:inherit;opacity:.8}.new-record{border:1px solid var(--border);background:var(--surface);color:inherit;border-radius:8px;min-width:min(30rem,92vw);max-height:86vh;padding:20px;overflow-y:auto}.new-record::backdrop{background:#00000073}.new-record h2{margin:0 0 4px;font-size:1.1rem}.new-record .field{flex-direction:column;gap:2px;margin-top:12px;display:flex}.new-record .field:has(input[type=checkbox]){flex-direction:row;align-items:center;gap:8px}.new-record .actions{justify-content:flex-end;gap:8px;margin-top:20px;display:flex}.export-page{max-width:42rem;padding:8px 0}.export-page h2{margin:0 0 8px;font-size:1.1rem}.brand{align-items:baseline;gap:6px;display:flex}.brand .version{color:var(--muted);white-space:nowrap;font-size:11px}.photo-strip{flex-wrap:wrap;gap:8px;margin:0;list-style:none;display:flex;padding:0!important}.detail .photo-strip li{margin:0}button.photo-thumb{border:1px solid var(--border);background:var(--bg);border-radius:6px;min-height:0;padding:0;display:block;overflow:hidden}button.photo-thumb:hover,button.photo-thumb:focus-visible{border-color:var(--accent)}.thumb{object-fit:cover;justify-content:center;align-items:center;width:112px;height:112px;display:flex}.photo-placeholder{background:var(--surface);color:var(--muted);text-align:center;font-size:12px}.thumb.photo-placeholder:not(.failed){animation:1.2s ease-in-out infinite alternate photo-pulse}@keyframes photo-pulse{to{opacity:.5}}.photo-viewer{border:1px solid var(--border);background:var(--surface);color:inherit;border-radius:8px;width:min(96vw,1100px);max-height:94dvh;padding:0}.photo-viewer::backdrop{background:#000000b3}.photo-viewer header{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:8px 12px;font-size:14px;display:flex}.photo-viewer header a{color:var(--accent)}.photo-stage{justify-content:center;align-items:center;gap:8px;padding:8px;display:flex}.photo-stage .full{object-fit:contain;border-radius:4px;justify-content:center;align-items:center;min-width:12rem;max-width:calc(100% - 96px);min-height:12rem;max-height:calc(94dvh - 80px);display:flex}.photo-stage button.step{flex:none;width:40px;padding:4px 0 8px;font-size:28px;line-height:1}
