:root{font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;line-height:1.35;color:#111;background:#f6f7fb}*{box-sizing:border-box}body{margin:0}.container{max-width:980px;margin:0 auto;padding:18px}.header{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:18px;padding:18px 20px;border-radius:20px;background:linear-gradient(135deg,#2563eb,#1d4ed8);color:#fff;box-shadow:0 10px 30px #2563eb40}.header h1{margin:0;font-size:30px;color:#fff}.header .muted{color:#ffffffd9}.logo{width:52px;height:52px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:28px;background:#ffffff26}.logo{font-size:34px}h1{margin:0;font-size:28px}h2{margin:0 0 10px;font-size:18px}h3{margin:0 0 8px;font-size:15px}.muted{color:#5b6472}.footer{margin:18px 0 8px;font-size:12px}.card{background:#fff;border-radius:18px;padding:18px;margin:16px 0;border:1px solid rgba(0,0,0,.04);box-shadow:0 10px 25px #0000000f,0 2px 6px #0000000a;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.grid{display:grid;grid-template-columns:1fr 180px 180px 180px;gap:10px}@media(max-width:920px){.grid{grid-template-columns:1fr 1fr}}label{display:grid;gap:6px;font-size:12px;color:#2f3743}.span2{grid-column:span 2}@media(max-width:920px){.span2{grid-column:span 2}}input,select,button{font:inherit}input,select{border:1px solid #d8dce6;border-radius:10px;padding:10px;outline:none;background:#fff}input:focus,select:focus{border-color:#95a3ff;box-shadow:0 0 0 4px #7887ff26}.row{display:flex;gap:10px;align-items:center;margin-top:12px}.row.wrap{flex-wrap:wrap}.spacer{flex:1}button{border:1px solid #d8dce6;background:#fff;border-radius:10px;padding:10px 12px;cursor:pointer}button:hover{filter:brightness(.98)}button.primary{background:#2f5cff;color:#fff;border-color:#2f5cff}button.danger{background:#ff3b30;color:#fff;border-color:#ff3b30}button.small{padding:8px 10px;border-radius:10px;font-size:12px}.fileBtn{display:inline-flex;align-items:center;gap:8px;border:1px solid #d8dce6;border-radius:10px;padding:10px 12px;cursor:pointer;-webkit-user-select:none;user-select:none}.fileBtn input{display:none}.msg{margin:10px 0 0;font-size:12px;min-height:16px}.msg.ok{color:#137333}.msg.err{color:#b42318}.list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}@media(max-width:920px){.list{grid-template-columns:1fr}}.catch{border-radius:16px;padding:16px;background:linear-gradient(180deg,#fff,#f8fafc);border:1px solid rgba(0,0,0,.04);box-shadow:0 8px 20px #0000000f,0 2px 6px #0000000a;transition:transform .15s ease,box-shadow .15s ease}.catch:hover{transform:translateY(-2px);box-shadow:0 14px 30px #00000014,0 4px 10px #0000000d}.catchTop{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px;font-weight:600}.catchTop strong{font-size:18px;letter-spacing:.3px}.title{font-weight:700;font-size:18px;letter-spacing:.2px}.meta{font-size:13px;color:#64748b;margin-top:4px}.pill{font-size:12px;color:#2f3743;background:#f2f4ff;border:1px solid #dfe4ff;padding:6px 8px;border-radius:999px}.meta{display:grid;grid-template-columns:1fr 1fr;gap:6px 10px;font-size:13px;margin-bottom:8px}.meta .k{color:#5b6472}.meta .v{color:#111}.notes{font-size:13px;color:#2f3743;background:#fafbff;border:1px dashed #d8dce6;padding:8px 10px;border-radius:10px;margin-bottom:10px}.statsGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:12px}@media(max-width:920px){.statsGrid{grid-template-columns:repeat(2,minmax(0,1fr))}}.stat{border:1px solid #e6e8ee;border-radius:12px;padding:10px;background:#fff}.stat .k{font-size:12px;color:#5b6472}.stat .v{font-size:16px;font-weight:700;margin-top:4px}.split{display:grid;grid-template-columns:1fr 1fr;gap:10px}@media(max-width:920px){.split{grid-template-columns:1fr}}.miniList{border:1px solid #e6e8ee;border-radius:12px;padding:10px;background:#fff}.miniRow{display:flex;justify-content:space-between;gap:10px;padding:6px 0;border-bottom:1px solid #f0f2f7;font-size:13px}.miniRow:last-child{border-bottom:0}.chart{border:1px solid #e6e8ee;border-radius:12px;padding:10px;background:#fff;min-height:160px}.bars{display:flex;gap:10px;height:140px;align-items:flex-end}.barCol{flex:1;display:grid;gap:6px;justify-items:center;font-size:12px;color:#5b6472}.bar{width:100%;max-width:40px;background:#2f5cff;border-radius:10px 10px 6px 6px}.barLabel{text-transform:capitalize}.barValue{color:#111;font-weight:700}@media(max-width:600px){body{margin:0;padding:0}.container{width:100%;max-width:100%;padding:16px;box-sizing:border-box}.header{display:flex;flex-direction:column;align-items:flex-start;gap:8px;margin-bottom:16px}h1{font-size:32px;line-height:1.1;margin:0}h2{font-size:24px;line-height:1.2;margin-bottom:12px}label,.muted,.pill,.meta,.miniRow,.catch,.catchTop,.barLabel,.barValue{font-size:16px}.card{padding:18px;border-radius:16px}.grid{display:block!important}.grid>*{display:block;width:100%!important;min-width:0;margin-bottom:12px}}.grid label{display:block;width:100%}.grid input,.grid textarea,.grid select{width:100%}:is(.row,.row.wrap) .row,:is(.row,.row.wrap) .row.wrap{display:flex;flex-direction:column;align-items:stretch;gap:12px}:is(.row,.row.wrap) .spacer{display:none}:is(.row,.row.wrap) input,:is(.row,.row.wrap) select,:is(.row,.row.wrap) button,:is(.row,.row.wrap) textarea,:is(.row,.row.wrap) .fileBtn{width:100%;box-sizing:border-box;min-height:54px;font-size:18px;padding:12px 14px;border-radius:14px}:is(.row,.row.wrap) button{width:100%;margin-top:8px}:is(.row,.row.wrap) #addBtn{min-height:60px;font-size:22px;font-weight:700}:is(.row,.row.wrap) #clearBtn{min-height:56px}:is(.row,.row.wrap) #exportBtn,:is(.row,.row.wrap) .fileBtn{min-height:52px;font-size:16px}:is(.row,.row.wrap) #map{height:220px!important;margin-top:10px!important;border-radius:14px}:is(.row,.row.wrap) .pill{width:100%;min-height:48px;padding:12px 14px;box-sizing:border-box;white-space:normal;word-break:break-word}:is(.row,.row.wrap) .catch{padding:14px}:is(.row,.row.wrap) .catchTop,:is(.row,.row.wrap) .meta,:is(.row,.row.wrap) .miniRow{display:flex;flex-direction:column;gap:8px}:is(.row,.row.wrap) footer.footer{padding-bottom:28px}:is(.row,.row.wrap) footer.footer label,:is(.row,.row.wrap) footer.footer label.span2,:is(.row,.row.wrap) footer.footer #gpsBtn{grid-column:1 / -1!important;width:100%}:is(.row,.row.wrap) footer.footer .grid>*{width:100%;min-width:0}:is(.row,.row.wrap) footer.footer .card+.card{margin-top:16px}.cardMap{margin-bottom:14px;border-radius:16px;overflow:hidden}#map{width:100%;height:400px}.modeSwitch{display:flex;gap:10px;margin:12px 0 16px}.modeSwitch button{flex:1}.modeSwitch button.active{background:#3b82f6;color:#fff;border-color:#3b82f6;font-weight:700}.quickSpecies{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:12px}.quickSpeciesBtn{padding:10px 14px;border-radius:10px;border:1px solid #d8dce6;background:#f8fafc;font-weight:600;cursor:pointer}.quickSpeciesBtn.active{background:#3b82f6;color:#fff;border-color:#3b82f6}.dark{background:#0f172a;color:#e5e7eb}.dark .card{background:#1e293b;border-color:#334155}.dark input,.dark select,.dark textarea{background:#0f172a;color:#e5e7eb;border-color:#334155}.dark button{background:#334155;color:#e5e7eb}
