* { box-sizing: border-box; } .mat-app { display: flex; height: calc(100vh - 2px); width: 100%; margin: 0; color: #222; font: 13px/1.4 system-ui, sans-serif; background: white; } .sidebar { width: 360px; flex: none; border-right: 1px solid #ccc; display: flex; flex-direction: column; background: #fafafa; } .sidebar > input { margin: 6px 8px 2px; padding: 5px 7px; } .identity { display: flex; gap: 5px; padding: 8px; border-bottom: 1px solid #ddd; align-items: end; } .identity label { flex: 1; font-size: 11px; color: #555; } .identity input { width: 100%; display: block; padding: 4px 6px; } .filters { display: flex; padding: 4px 8px; gap: 7px; align-items: center; font-size: 11px; } .filters select { min-width: 0; flex: 1; font-size: 11px; } .counts { color: #666; font-size: 11px; padding: 0 8px 5px; } .badge-legend { display: flex; flex-wrap: wrap; gap: 3px 8px; padding: 0 8px 5px; color: #666; font-size: 9px; } .repository { font-size: 11px; padding: 0 8px 6px; color: #2678d8; } .figure-list { overflow-y: auto; flex: 1; } .pdfgroup { font-weight: 650; background: #e9e9e9; padding: 4px 8px; position: sticky; top: 0; z-index: 2; } .item { padding: 4px 7px 4px 12px; cursor: pointer; display: flex; gap: 5px; align-items: center; border-bottom: 1px solid #f0f0f0; min-width: 0; } .item:hover { background: #eef4ff; }.item.sel { background: #d6e6ff; } .item-name { flex: 1; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .item-badges { flex: none; display: flex; gap: 3px; align-items: center; } .item.draft { border-left: 3px solid #2a7ade; padding-left: 9px; }.item.stale { color: #a34200; } .queue-badge { border-radius: 8px; padding: 1px 5px; font-size: 9px; line-height: 1.4; white-space: nowrap; border: 1px solid transparent; } .queue-badge.ok { color: #176b2c; background: #e4f5e8; border-color: #b7ddc0; } .queue-badge.need { color: #955300; background: #fff0d6; border-color: #edc985; } .queue-badge.neutral { color: #555; background: #eee; border-color: #d5d5d5; } .queue-badge.ai { color: #6c5100; background: #fff9d8; border: 1px dashed #c69a20; } .main { flex: 1; min-width: 0; display: flex; flex-direction: column; } .toolbar { border-bottom: 1px solid #bbb; background: #fafafa; } .figure-summary { min-height: 31px; padding: 5px 9px; display: flex; gap: 8px; align-items: center; border-bottom: 1px solid #ddd; }.figure-summary .spacer { flex: 1; } .workflow { display: flex; align-items: stretch; min-width: 0; overflow-x: auto; } .step-panel { padding: 5px 8px 7px; border-right: 1px solid #d5d5d5; min-width: 0; } .review-step { flex: 0 0 330px; }.type-step { flex: 1 1 430px; }.georef-step { flex: 1 1 650px; } .step-title { display: flex; align-items: center; gap: 5px; min-height: 23px; font-size: 11px; font-weight: 700; color: #333; white-space: nowrap; } .step-number { display: inline-grid; place-items: center; width: 18px; height: 18px; border-radius: 50%; color: white; background: #374b67; font-size: 10px; } .step-controls, .types { display: flex; gap: 4px; align-items: center; flex-wrap: wrap; } .toolbar button { padding: 4px 8px; cursor: pointer; border: 1px solid #aaa; border-radius: 4px; background: #fff; } .toolbar button:hover, .import:hover { background: #edf4ff; border-color: #6d91be; } .toolbar input[type=range] { width: 68px; vertical-align: middle; }.meta { color: #666; } .prediction { border-radius: 9px; padding: 1px 6px; background: #eee; font-weight: 500; } .prediction.unverified { background: #fff6cf; color: #6f5300; border: 1px dashed #c69a20; } .state-note { color: #777; font-weight: 500; font-size: 10px; } .state-note.need { color: #a55a00; }.state-note.ok { color: #207638; } .state-button.active { color: white; background: #287946; border-color: #287946; box-shadow: inset 0 0 0 1px #ffffff55; } .state-button.suggested { color: #634900; background: #fff8d6; border: 2px dashed #c69a20; padding: 3px 7px; } .primary { color: white !important; background: #2678d8 !important; border-color: #2678d8 !important; } .primary.active { background: #287946 !important; border-color: #287946 !important; } .primary:disabled { color: #f5f5f5 !important; background: #9db8d8 !important; border-color: #9db8d8 !important; cursor: default; } .clicked { animation: click-flash .32s ease-out; } @keyframes click-flash { 0% { transform: scale(.95); box-shadow: 0 0 0 3px #2a7ade66; } 100% { transform: scale(1); } } .toolbar-actions { flex: 0 0 145px; padding: 5px 7px; display: grid; grid-template-columns: 1fr 1fr; gap: 4px; align-content: center; }.toolbar-actions button, .toolbar-actions .import { font-size: 10px; padding: 3px 5px; } .status { font-size: 11px; color: #278227; }.status.warn { color: #b44800; }.muted { color: #666; } .chip { font-size: 11px; padding: 3px 7px; border-radius: 10px; border: 1px solid #bbb; cursor: pointer; user-select: none; }.chip.on { color: white; font-weight: 650; border-color: transparent; } .maps { display: flex; flex: 1; min-height: 0; }.maps > div:not(.splitbar) { flex: 1; position: relative; } .map { height: 100%; background: #e8e8e8; }.splitbar { width: 5px; background: #ccc; } .maplabel { position: absolute; z-index: 500; top: 6px; left: 46px; background: white; padding: 2px 8px; border-radius: 3px; box-shadow: 0 1px 3px #0004; } .gcp-panel { height: 150px; flex: none; border-top: 1px solid #ccc; display: flex; } .table-wrap { flex: 1; overflow-y: auto; }.hint { width: 310px; flex: none; padding: 8px 10px; color: #555; overflow-y: auto; } table { border-collapse: collapse; width: 100%; font-size: 12px; } th, td { border: 1px solid #e0e0e0; padding: 2px 6px; text-align: right; } th { background: #f2f2f2; position: sticky; top: 0; }.del { text-align: center; color: #b00; cursor: pointer; } .swatch { display: inline-block; width: 12px; height: 12px; border-radius: 50%; vertical-align: middle; margin-right: 4px; } .gcp-icon div { width: 22px; height: 22px; border-radius: 50%; color: white; font: bold 12px/20px sans-serif; text-align: center; border: 2px solid white; box-shadow: 0 0 3px #000; } .import { padding: 4px 9px; border: 1px solid #888; border-radius: 4px; background: #eee; cursor: pointer; text-align: center; }.import input { display: none; } @media (max-width: 1100px) { .sidebar { width: 300px; }.workflow { flex-wrap: wrap; }.review-step { flex-basis: 38%; } .type-step { flex-basis: 62%; }.georef-step { flex-basis: calc(100% - 145px); }.gcp-panel { height: 125px; }.hint { width: 240px; } }