:root{color:#14221b;background:#eef6f1;font-family:Inter,PingFang SC,Microsoft YaHei,Segoe UI,system-ui,-apple-system,BlinkMacSystemFont,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:linear-gradient(120deg,#e8f6eceb,#eff7fff0),#eef6f1}button,input,select{font:inherit}button{border:0;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.62}.workspace{min-height:100vh;padding:16px}.workspace-header{height:72px;display:flex;align-items:center;gap:18px;padding:0 18px;border:1px solid rgba(49,109,79,.16);background:#ffffffe6;box-shadow:0 12px 30px #164d3214;border-radius:8px;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.brand{display:flex;align-items:center;gap:12px;min-width:310px}.brand-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:8px;color:#fff;background:#17884d}.brand h1{margin:0;font-size:20px;line-height:1.2;letter-spacing:0}.brand p{margin:3px 0 0;color:#6f8077;font-size:12px}.mode-switch,.map-tabs{display:inline-flex;align-items:center;gap:4px;padding:4px;border-radius:8px;background:#eef5f1;border:1px solid #d9e8de}.mode-switch button,.map-tabs button{min-height:34px;padding:0 14px;border-radius:6px;color:#52635a;background:transparent;white-space:nowrap}.mode-switch button.active,.map-tabs button.active{color:#0f6d42;background:#fff;box-shadow:0 4px 12px #13673d1f}.header-actions{margin-left:auto;display:flex;align-items:center;gap:8px}.ghost-button,.icon-text-button,.quick-actions button,.raw-toggle,.point-table-head button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:34px;padding:0 12px;border:1px solid #d9e7df;border-radius:7px;color:#2b6b4c;background:#fff}.workspace-grid{display:grid;grid-template-columns:minmax(320px,360px) minmax(460px,1fr) minmax(360px,400px);gap:14px;margin-top:14px;height:calc(100vh - 118px);min-height:680px}.panel{overflow:hidden;border-radius:8px;border:1px solid rgba(51,112,82,.16);background:#ffffffeb;box-shadow:0 14px 36px #144c3114}.left-panel,.right-panel{display:flex;min-height:0;flex-direction:column}.panel-scroll{flex:1;min-height:0;overflow:auto;padding:14px}.panel-scroll::-webkit-scrollbar,.canvas-shell::-webkit-scrollbar,.json-preview pre::-webkit-scrollbar{width:8px;height:8px}.panel-scroll::-webkit-scrollbar-thumb,.canvas-shell::-webkit-scrollbar-thumb,.json-preview pre::-webkit-scrollbar-thumb{border-radius:8px;background:#cbdcd2}.form-stack{display:grid;gap:12px}.config-section,.summary-card,.plans-section,.raw-section{border:1px solid #e0ebe5;border-radius:8px;background:#fff;padding:14px}.config-section.compact{padding:12px}.section-title,.summary-title,.section-heading{display:flex;align-items:center;gap:8px;margin-bottom:12px;color:#173f2d;font-size:15px;font-weight:700}.section-title.row-between{justify-content:space-between}.section-title.row-between>span{display:inline-flex;align-items:center;gap:8px}.step-index{display:inline-grid;width:26px;height:22px;place-items:center;border-radius:6px;color:#0e6f44;background:#e8f6ee;font-size:12px}.field-grid{display:grid;gap:10px}.field-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.field-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.field{display:grid;gap:6px;margin-bottom:10px}.field span{color:#52635a;font-size:12px;font-weight:650}.field input,.field select{width:100%;height:38px;border:1px solid #d7e3dc;border-radius:7px;outline:none;padding:0 10px;color:#17251e;background:#fbfdfc}.field input:focus,.field select:focus{border-color:#2f9d6a;box-shadow:0 0 0 3px #2f9d6a1f}.field small{color:#87968d;font-size:11px}.field em,.inline-error{color:#c03b35;font-size:12px;font-style:normal}.input-with-suffix{position:relative}.input-with-suffix input{padding-right:34px}.input-with-suffix b{position:absolute;right:10px;top:50%;color:#7b8e84;font-size:12px;transform:translateY(-50%)}.mode-pill-row{display:grid;gap:8px}.mode-pill{display:inline-flex;width:fit-content;align-items:center;border-radius:7px;padding:7px 10px;color:#12683f;background:#e8f6ee;font-size:13px;font-weight:700}.hint{color:#7a8d83;font-size:12px;line-height:1.5}.coordinate-rules{display:grid;gap:8px;margin-top:10px;border:1px solid #dbeae2;border-radius:8px;padding:10px;background:#fbfefd}.coordinate-rules-title{color:#173f2d;font-size:13px;font-weight:780}.coordinate-rules-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.coordinate-rules-grid div{min-width:0;border:1px solid #e7f0eb;border-radius:7px;padding:7px;background:#fff}.coordinate-rules-grid span{display:block;margin-bottom:3px;color:#75877f;font-size:11px;font-weight:650}.coordinate-rules-grid b{display:block;min-width:0;overflow-wrap:anywhere;color:#173f2d;font-size:12px;line-height:1.45}.finding-list{display:grid;gap:10px}.finding-card{overflow:hidden;border:1px solid #e0ebe5;border-radius:8px;background:#fbfdfc}.finding-summary{width:100%;min-height:42px;display:grid;grid-template-columns:20px 1fr auto;align-items:center;gap:8px;padding:0 10px;color:#20372b;background:#f8fbf9;text-align:left}.finding-summary span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:750}.finding-body{padding:12px}.severity{display:inline-flex;align-items:center;width:fit-content;min-height:24px;border-radius:6px;padding:0 8px;font-size:12px;font-weight:750}.severity.轻度{color:#47691a;background:#eff8cf}.severity.中度{color:#a45112;background:#ffebcf}.severity.重度{color:#a73232;background:#ffe0df}.point-table-head{display:flex;align-items:center;justify-content:space-between;margin:6px 0 8px;color:#52635a;font-size:12px;font-weight:700}.point-table{display:grid;gap:6px}.point-row{display:grid;grid-template-columns:22px repeat(2,minmax(0,1fr)) 30px;gap:6px;align-items:center}.point-row.labels{order:-1;color:#7f8e85;font-size:11px;text-align:center}.point-row>span:first-child{color:#809188;font-size:12px;text-align:center}.point-lock{display:inline-flex;align-items:center;justify-content:center;min-height:28px;border-radius:6px;color:#66786f;background:#f0f6f3;font-size:11px;font-weight:700}.point-row input{width:100%;height:32px;min-width:0;border:1px solid #d8e6de;border-radius:6px;padding:0 6px}.mini-danger,.delete-finding{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:32px;border-radius:6px;color:#b03a36;background:#fff0ef}.delete-finding{width:100%;margin-top:12px}.quick-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.quick-actions button{min-width:0;padding:0 8px;font-size:12px}.generate-bar{border-top:1px solid #e1ebe5;padding:12px;background:#f8fcf9f5}.primary-button{width:100%;height:46px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:8px;color:#fff;background:#168750;box-shadow:0 10px 20px #16875038;font-weight:780}.notice,.toast-error,.toast-success{display:flex;align-items:center;gap:7px;margin-bottom:10px;border-radius:7px;padding:9px 10px;color:#a15817;background:#fff4df;font-size:12px}.toast-error{position:fixed;z-index:20;top:96px;left:50%;max-width:min(720px,calc(100vw - 32px));margin:0;border:1px solid #ffd2d0;color:#9d302d;background:#fff4f3;box-shadow:0 12px 32px #78322a24;transform:translate(-50%)}.toast-success{position:fixed;z-index:20;top:96px;left:50%;max-width:min(720px,calc(100vw - 32px));margin:0;border:1px solid #bde8cc;color:#12683f;background:#effaf3;box-shadow:0 12px 32px #1c673d1f;transform:translate(-50%)}.dialog-backdrop{position:fixed;inset:0;z-index:30;display:grid;place-items:center;padding:24px;background:#0f231a47;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.dialog-card{width:min(560px,100%);max-height:min(620px,calc(100vh - 48px));display:flex;flex-direction:column;overflow:hidden;border:1px solid #cfe2d7;border-radius:8px;background:#fff;box-shadow:0 24px 70px #0f372338}.dialog-head{min-height:58px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid #e1ebe5;padding:0 16px;background:#fbfdfc}.dialog-head h2{margin:0;color:#173f2d;font-size:18px}.dialog-head button{min-height:32px;border-radius:7px;padding:0 12px;color:#2f6d51;background:#edf7f1}.dialog-body{overflow:auto;padding:16px}.dialog-muted{margin:0;color:#6c7f75;line-height:1.6}.help-list{display:grid;gap:10px}.help-list p{margin:0;color:#5d7066;line-height:1.55}.point-error{grid-column:1 / -1;color:#c03b35;font-size:12px}.placeholder-section{display:grid;gap:8px;border:1px dashed #a5cdbc;border-radius:8px;padding:16px;color:#416557;background:#f6fcf8;line-height:1.55}.placeholder-section p{margin:0;color:#74877d;font-size:13px}.map-panel{display:flex;min-width:0;min-height:0;flex-direction:column}.map-toolbar{min-height:58px;display:flex;align-items:center;gap:12px;justify-content:space-between;padding:10px 12px;border-bottom:1px solid #e1ebe5;background:#fbfdfc}.tool-buttons{display:flex;align-items:center;gap:6px}.icon-button{width:34px;height:34px;display:inline-grid;place-items:center;border:1px solid #d9e7df;border-radius:7px;color:#2f6d51;background:#fff}.canvas-shell{position:relative;flex:1;min-height:0;overflow:auto;background-color:#f7faf8;background-image:linear-gradient(#dfece5 1px,transparent 1px),linear-gradient(90deg,#dfece5 1px,transparent 1px);background-size:28px 28px}.empty-map,.map-loading{position:absolute;inset:0;display:grid;place-items:center;align-content:center;gap:12px;padding:28px;text-align:center}.empty-illustration{width:92px;height:92px;display:grid;place-items:center;border-radius:8px;color:#168750;background:#e8f6ee;border:1px solid #cfe7d8}.empty-map h2{max-width:480px;margin:0;font-size:22px;letter-spacing:0}.empty-map p{max-width:520px;margin:0;color:#73877c;line-height:1.65}.pulse-grid{width:160px;height:92px;border-radius:8px;background:linear-gradient(90deg,#16875014,#1e80d629,#16875014),repeating-linear-gradient(0deg,transparent,transparent 17px,rgba(22,135,80,.18) 18px),repeating-linear-gradient(90deg,transparent,transparent 17px,rgba(30,128,214,.18) 18px);animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.55}50%{opacity:1}}.map-image-frame{min-height:100%;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:28px}.map-image-frame img,.compare-pane img{width:auto;max-width:min(100%,calc((100% - 56px) * var(--map-zoom, 1)));max-height:min(calc(100vh - 210px),calc((100vh - 210px) * var(--map-zoom, 1)));transform-origin:center;transition:transform .18s ease;border-radius:8px;box-shadow:0 18px 45px #1e372a29}.map-caption{position:sticky;bottom:16px;border-radius:7px;padding:8px 10px;color:#536c5f;background:#ffffffe6;font-size:12px}.image-preview-backdrop{position:fixed;inset:0;z-index:40;display:grid;place-items:center;padding:18px;background:#0c1f167a;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.image-preview-card{width:min(1180px,calc(100vw - 36px));height:min(820px,calc(100vh - 36px));display:flex;min-width:0;min-height:0;flex-direction:column;overflow:hidden;border:1px solid #cfe2d7;border-radius:8px;background:#fbfdfc;box-shadow:0 28px 80px #09261947}.image-preview-head{min-height:58px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid #dceae2;padding:10px 12px 10px 16px;background:#fff}.image-preview-head>div:first-child{display:grid;gap:3px;min-width:0}.image-preview-head strong{color:#173f2d;font-size:16px}.image-preview-head span{color:#72857a;font-size:12px}.image-preview-actions{display:flex;align-items:center;gap:6px}.image-preview-body{flex:1;min-height:0;overflow:auto;padding:18px;background-color:#f7faf8;background-image:linear-gradient(#dfece5 1px,transparent 1px),linear-gradient(90deg,#dfece5 1px,transparent 1px);background-size:28px 28px}.image-preview-body img{display:block;max-width:none;height:auto;margin:0 auto;border-radius:8px;box-shadow:0 18px 45px #1e372a29;transform-origin:top center}.compare-view{min-height:100%;display:grid;grid-template-columns:repeat(2,minmax(260px,1fr));gap:14px;padding:18px}.compare-pane{display:grid;grid-template-rows:auto 1fr;gap:10px;min-height:0;border:1px solid #dfe9e4;border-radius:8px;background:#ffffffd6;padding:12px;overflow:auto}.compare-title{color:#244737;font-weight:760}.result-scroll{display:grid;align-content:start;gap:12px}.summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.metric{min-width:0;border-radius:7px;padding:10px;background:#f6faf8}.metric.wide{grid-column:1 / -1}.metric span,.fact span{display:block;margin-bottom:5px;color:#75877f;font-size:12px}.metric strong,.fact b{display:block;min-width:0;overflow-wrap:anywhere;color:#173f2d;font-size:13px}.result-empty,.muted-box{display:grid;place-items:center;gap:8px;min-height:120px;border-radius:8px;color:#6e8177;background:#f7faf8;text-align:center;line-height:1.5}.result-empty p{margin:0}.plan-list{display:grid;gap:10px}.plan-card{border:1px solid #e0ebe5;border-radius:8px;background:#fbfdfc;padding:12px;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.plan-card:hover,.plan-card.selected{border-color:#8fd0b0;box-shadow:0 10px 24px #1569411f;transform:translateY(-1px)}.plan-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.plan-top h3{margin:8px 0 0;color:#173f2d;font-size:16px;letter-spacing:0}.plan-top button{width:30px;height:30px;display:inline-grid;flex:0 0 auto;place-items:center;border-radius:6px;color:#2e6c4e;background:#edf7f1}.plan-drug{margin:10px 0;border-radius:7px;padding:9px 10px;color:#114e77;background:#e9f4ff;font-weight:760}.plan-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.fact{min-width:0;border-radius:7px;padding:8px;background:#fff;border:1px solid #e6eee9}.region-fact{grid-column:1 / -1;min-width:0;border:1px solid #dbeae2;border-radius:7px;padding:10px;background:#fbfefd}.region-fact>span{display:block;margin-bottom:6px;color:#75877f;font-size:12px}.region-head{margin-bottom:8px;color:#173f2d;font-size:15px;font-weight:780}.region-points{display:grid;grid-template-columns:auto minmax(0,1fr);gap:5px 8px;align-items:center}.region-points small{color:#75877f;font-size:12px}.region-points b{min-width:0;overflow-wrap:anywhere;color:#173f2d;font-size:13px}.region-corners{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.region-corners div{min-width:0;border:1px solid #e6eee9;border-radius:6px;padding:7px;background:#fff}.region-corners small{display:block;margin-bottom:3px;color:#75877f;font-size:11px}.region-corners b{min-width:0;overflow-wrap:anywhere;color:#173f2d;font-size:12px}.region-meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}.region-meta em{border-radius:999px;padding:4px 8px;color:#24543f;background:#eef7f2;font-size:12px;font-style:normal;font-weight:720}.plan-more{display:grid;gap:8px;margin-top:10px}.plan-more pre,.json-preview pre{margin:0;overflow:auto;border-radius:7px;padding:10px;color:#20342a;background:#f3f7f5;font-size:12px;line-height:1.5;white-space:pre-wrap}.raw-toggle{width:100%;justify-content:flex-start}.raw-panels{display:grid;gap:10px;margin-top:10px}.json-preview{display:grid;gap:8px}.json-preview>div{display:flex;align-items:center;justify-content:space-between;color:#53675d;font-size:13px;font-weight:700}.json-preview button{display:inline-flex;align-items:center;gap:5px;min-height:28px;border-radius:6px;padding:0 8px;color:#2f6d51;background:#edf7f1}@media(max-width:1320px){.workspace-grid{grid-template-columns:340px minmax(440px,1fr);grid-template-areas:"left map" "right right";height:auto}.left-panel{grid-area:left;height:720px}.map-panel{grid-area:map;height:720px}.right-panel{grid-area:right;min-height:420px;max-height:620px}}@media(max-width:980px){.workspace{padding:10px}.workspace-header{height:auto;flex-wrap:wrap;padding:12px}.brand{width:100%;min-width:0}.header-actions{width:100%;margin-left:0;overflow-x:auto}.workspace-grid{grid-template-columns:1fr;grid-template-areas:"left" "map" "right";min-height:0}.left-panel,.map-panel,.right-panel{height:auto;max-height:none}.left-panel{min-height:680px}.map-panel{min-height:620px}.compare-view{grid-template-columns:1fr}}@media(max-width:640px){.field-grid.two,.field-grid.three,.plan-facts,.summary-grid,.quick-actions{grid-template-columns:1fr}.mode-switch,.map-tabs,.tool-buttons{width:100%;overflow-x:auto}.map-toolbar{align-items:stretch;flex-direction:column}}
