*{box-sizing:border-box}body,html{margin:0;padding:0;height:100%;font-family:system-ui,-apple-system,Segoe UI,Hiragino Sans,sans-serif;background:#0e1116;color:#e6e8eb}.platifact-shell{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto 1fr 32px;grid-template-areas:"toolbar toolbar" "map preview" "footer footer";height:100vh}.app-footer{grid-area:footer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:0;padding:4px 0;border-top:1px solid #232a33;background:#0b0e13;overflow:hidden}.credits{font-size:11px;color:#6b7686;text-align:center;padding:0 12px}.credits a{color:#8a95a6;text-decoration:none}.credits a:hover{color:#cdd5e0;text-decoration:underline}.ad-placeholder{width:100%;max-width:728px;height:60px;margin:6px auto;display:flex;align-items:center;justify-content:center;font-size:12px;color:#4a5667;background:repeating-linear-gradient(45deg,#11161d,#11161d 10px,#131922 0,#131922 20px);border:1px dashed #2b3440;border-radius:6px}.ad-frame{width:728px;max-width:100%;height:90px;overflow:hidden}.toolbar{grid-area:toolbar}.map-pane{grid-area:map;border-right:1px solid #232a33}.map-pane,.preview-pane{position:relative;min-width:0}.preview-pane{grid-area:preview;background:radial-gradient(120% 90% at 50% 12%,#38455a 0,#1c2430 48%,#0c0f15 100%);overflow:hidden}.preview-info{position:absolute;top:14px;left:14px;z-index:5;display:flex;flex-direction:column;gap:4px;padding:10px 14px;border-radius:10px;background:rgba(12,16,22,.62);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid hsla(0,0%,100%,.08);font-size:12px;color:#9aa4b2;pointer-events:none}.preview-info-row{display:flex;justify-content:space-between;gap:16px}.preview-info-row b{color:#eef2f7;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.preview-reset{top:14px;right:14px;padding:7px 12px;background:rgba(12,16,22,.62);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid hsla(0,0%,100%,.1)}.preview-badge,.preview-reset{position:absolute;z-index:5;font-size:12px}.preview-badge{bottom:16px;left:50%;transform:translateX(-50%);padding:6px 14px;border-radius:999px;background:rgba(37,99,235,.9);color:#fff}.empty-hint-icon{font-size:40px;color:#3a4658;margin-bottom:12px;line-height:1}.doc{min-height:100vh;padding:48px 20px 96px;display:flex;justify-content:center}.doc-inner{width:100%;max-width:760px;line-height:1.85;color:#c3cad4}.doc-inner h1{font-size:26px;margin:8px 0 4px;color:#eef2f7}.doc-inner h2{font-size:17px;margin:32px 0 8px;color:#e6e8eb}.doc-meta{font-size:12px;color:#6b7686;margin:0 0 24px}.doc-back{margin:0 0 16px;font-size:13px}.doc-inner a{color:#6ea8ff}.doc-inner ul{padding-left:22px}.doc-inner li{margin:6px 0}.doc-inner h3{font-size:15px;margin:20px 0 6px;color:#e6e8eb}.lp{min-height:100vh;padding:0 20px 96px;color:#c3cad4;line-height:1.85;background:radial-gradient(120% 520px at 50% 0,rgba(37,99,235,.15),transparent 70%);background-repeat:no-repeat}.lp>*{width:100%;max-width:780px;margin-left:auto;margin-right:auto}.lp a{color:#6ea8ff}.lp-hero{padding:56px 0 8px}.lp-back{margin:0 0 28px;font-size:13px;font-weight:600;letter-spacing:.04em}.lp-hero h1{margin:0 0 18px;font-size:clamp(30px,6vw,46px);line-height:1.25;letter-spacing:-.01em;color:#f2f5f9}.lp-sub{margin:0 0 20px;font-size:16px;color:#aab4c2;max-width:34em}.lp-badges{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 28px}.lp-badges span{padding:3px 10px;border-radius:999px;border:1px solid hsla(0,0%,100%,.12);font-size:12px;color:#9aa4b2}.lp-cta{display:flex;flex-wrap:wrap;align-items:center;gap:16px;margin:0}.lp-cta-end{margin-top:28px}.lp a.lp-btn{display:inline-block;padding:12px 26px;border-radius:9px;background:#2563eb;color:#fff;font-weight:600;font-size:15px;text-decoration:none}.lp a.lp-btn:hover{background:#1d4ed8}.lp-section{padding:44px 0 0}.lp-section h2{margin:0 0 14px;font-size:20px;color:#eef2f7;letter-spacing:-.005em}.lp-lead{margin:0 0 18px;font-size:14px;color:#8b95a5}.lp-steps{list-style:none;counter-reset:step;margin:0;padding:0;display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}.lp-steps li{counter-increment:step;position:relative;display:flex;flex-direction:column;gap:6px;padding:18px 16px 16px;border-radius:11px;border:1px solid hsla(0,0%,100%,.09);background:hsla(0,0%,100%,.025)}.lp-steps li:before{content:counter(step);position:absolute;top:12px;right:14px;font-size:30px;font-weight:700;line-height:1;color:hsla(0,0%,100%,.07)}.lp-step-icon{color:#6ea8ff;line-height:0}.lp-steps b{color:#eef2f7;font-size:15px}.lp-steps span:last-child{font-size:13px;line-height:1.7;color:#8b95a5}.lp-presets{list-style:none;margin:0;padding:0;display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.lp a.lp-preset{display:flex;flex-direction:column;border-radius:11px;overflow:hidden;border:1px solid hsla(0,0%,100%,.09);background:hsla(0,0%,100%,.025);text-decoration:none;transition:border-color .15s,background .15s}.lp a.lp-preset:hover{border-color:rgba(96,145,255,.5);background:rgba(37,99,235,.09)}.lp-preset-thumb{position:relative;display:block;height:132px;overflow:hidden;background:#10151c}.lp-preset-mosaic{position:absolute;display:block}.lp-preset-mosaic img{position:absolute;max-width:none}.lp-preset-name{padding:12px 14px 0;color:#eef2f7;font-size:14px;font-weight:600}.lp-preset-meta{padding:0 14px 13px;color:#6b7686;font-size:11px}.lp-features{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}.lp-features>div{padding:18px 16px;border-radius:11px;border:1px solid hsla(0,0%,100%,.09);background:hsla(0,0%,100%,.025)}.lp-features b{display:block;margin-bottom:6px;color:#eef2f7;font-size:15px}.lp-features p{margin:0;font-size:13px;line-height:1.75;color:#8b95a5}.lp-ref{margin-top:20px;padding-top:44px;border-top:1px solid hsla(0,0%,100%,.09)}.lp-ref details{border-bottom:1px solid hsla(0,0%,100%,.07)}.lp-ref summary{padding:14px 2px;cursor:pointer;font-size:15px;font-weight:600;color:#dbe2ea;list-style:none;display:flex;align-items:center;gap:10px}.lp-ref summary::-webkit-details-marker{display:none}.lp-ref summary:before{content:"+";flex:0 0 auto;width:18px;color:#6ea8ff;font-weight:400;font-size:17px}.lp-ref details[open]>summary:before{content:"−"}.lp-ref summary:hover{color:#fff}.lp-ref-body{padding:0 0 18px 28px;font-size:14px}.lp-ref-body p:first-child{margin-top:0}.lp-ref-body ul{padding-left:20px}.lp-ref-body li{margin:8px 0}.lp-outro p{font-size:14px}.lp-foot{margin-top:32px;font-size:12px;color:#6b7686}.doc-table-wrap{overflow-x:auto;margin:12px 0}.doc-table{border-collapse:collapse;width:100%;font-size:13px;line-height:1.6}.doc-table td,.doc-table th{border:1px solid hsla(0,0%,100%,.1);padding:8px 10px;text-align:left;vertical-align:top}.doc-table th{background:hsla(0,0%,100%,.04);white-space:nowrap}.doc-faq dt,.doc-table th{color:#e6e8eb;font-weight:600}.doc-faq dt{margin:18px 0 4px}.doc-faq dd{margin:0;color:#9aa4b2;font-size:14px}.map-pane .maplibregl-map{position:absolute;inset:0}.draw-controls{left:12px;display:flex;gap:6px}.draw-controls,.map-note{position:absolute;top:12px;z-index:10}.map-note{right:12px;background:rgba(245,158,11,.92);color:#1a1300;padding:6px 10px;border-radius:7px;font-size:12px;max-width:220px}.search-box{position:absolute;top:56px;left:12px;z-index:10;width:min(320px,calc(100% - 24px))}.search-box input{width:100%;padding:8px 60px 8px 12px;border-radius:8px;border:1px solid hsla(0,0%,100%,.12);background:rgba(12,16,22,.85);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#e6e8eb;font-size:13px}.search-box input::placeholder{color:#6b7686}.search-box input:focus{outline:none;border-color:#2563eb;background:rgba(12,16,22,.95)}.search-spin{right:34px;top:16px;pointer-events:none}.search-close,.search-spin{position:absolute;font-size:12px;color:#6b7686}.search-close{right:6px;top:8px;padding:4px 8px;border-radius:6px;background:transparent;border:1px solid transparent}.search-close:hover:not(:disabled){background:hsla(0,0%,100%,.06);color:#cdd5e0}.search-confirm{position:absolute;top:98px;left:12px;z-index:10;width:min(320px,calc(100% - 24px));display:flex;align-items:stretch;gap:4px}.search-confirm button:first-child{flex:1 1;min-width:0;padding:9px 12px;border-radius:8px;border:1px solid rgba(37,99,235,.55);background:rgba(37,99,235,.22);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#eaf0ff;font-size:13px;font-weight:600;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.search-confirm button:first-child:hover{background:rgba(37,99,235,.34)}.search-confirm-dismiss{flex:0 0 auto;width:34px;padding:0;border-radius:8px;border:1px solid hsla(0,0%,100%,.12);background:rgba(12,16,22,.85);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#6b7686;font-size:12px}.search-confirm-dismiss:hover{background:hsla(0,0%,100%,.06);color:#cdd5e0}.search-toggle{position:absolute;top:56px;left:12px;z-index:10;width:36px;height:36px;padding:0;border-radius:8px;border:1px solid hsla(0,0%,100%,.12);background:rgba(12,16,22,.85);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#cdd5e0;font-size:15px;display:flex;align-items:center;justify-content:center}.search-toggle:hover:not(:disabled){background:rgba(37,99,235,.25);border-color:#2563eb}.search-results{list-style:none;margin:4px 0 0;padding:4px 0;border-radius:8px;border:1px solid hsla(0,0%,100%,.12);background:rgba(12,16,22,.95);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);max-height:260px;overflow-y:auto;box-shadow:0 8px 24px rgba(0,0,0,.35)}.search-results li{padding:8px 12px;font-size:13px;color:#cdd5e0;cursor:pointer}.search-results li:hover{background:rgba(37,99,235,.15);color:#eef2f7}button{font:inherit;padding:7px 12px;border-radius:7px;border:1px solid #2b3440;background:#1a2029;color:#e6e8eb;cursor:pointer}button:hover:not(:disabled){background:#232c38}button:disabled{opacity:.45;cursor:not-allowed}button.active,button.primary{background:#2563eb;border-color:#2563eb;color:#fff}.toolbar-inner{display:flex;align-items:center;gap:16px;padding:10px 16px;border-bottom:1px solid #232a33;background:#11161d;flex-wrap:wrap}.toolbar-inner h1{font-size:15px;margin:0;font-weight:600}.stat{font-size:13px;color:#9aa4b2}.stat b{color:#e6e8eb}.toolbar-spacer{flex:1 1}.scale-field{display:flex;align-items:center;gap:6px;font-size:13px;color:#9aa4b2}.scale-field input{width:86px;padding:6px 8px;border-radius:6px;border:1px solid #2b3440;background:#1a2029;color:#e6e8eb}.scale-field input[type=checkbox]{width:auto}.scale-field select{padding:6px 8px;border-radius:6px;border:1px solid #2b3440;background:#1a2029;color:#e6e8eb}.warn{color:#f59e0b;font-size:13px}.empty-hint{align-items:center;color:#7c889a;font-size:14px;line-height:1.7;text-align:center;padding:24px;pointer-events:none}.empty-hint,.preset-gallery{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center}.preset-gallery{gap:10px;padding:20px;overflow-y:auto}.preset-gallery-head{display:flex;flex-direction:column;gap:2px;text-align:center;margin-bottom:2px}.preset-gallery-head b{color:#e6e8eb;font-size:15px}.preset-gallery-head span{color:#7c889a;font-size:12px}.preset-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;width:min(420px,100%);align-self:center}.preset-card{display:flex;align-items:stretch;gap:12px;width:100%;padding:0;border-radius:10px;border:1px solid hsla(0,0%,100%,.1);background:rgba(18,24,32,.72);overflow:hidden;cursor:pointer;text-align:left;transition:border-color .15s,background .15s,transform .1s}.preset-card:hover{border-color:rgba(96,145,255,.55);background:rgba(26,36,50,.9)}.preset-card:active{transform:scale(.995)}.preset-thumb{position:relative;flex:0 0 88px;width:88px;height:88px;overflow:hidden;background:#10151c}.preset-thumb img{position:absolute;max-width:none}.preset-body{display:flex;flex-direction:column;justify-content:center;gap:3px;padding:10px 12px 10px 0;min-width:0}.preset-name{color:#eef2f7;font-size:14px;font-weight:600}.preset-desc{color:#9aa4b2;font-size:12px;line-height:1.5}.preset-meta{color:#6b7686;font-size:11px}.btn-short,.mobile-tabs,.settings-dialog,.toolbar-settings-btn{display:none}.toolbar-fields-inline{display:contents}@media (max-width:768px){.platifact-shell{grid-template-columns:1fr;grid-template-rows:auto auto 1fr 32px;grid-template-areas:"toolbar" "tabs" "map" "footer"}.map-pane,.preview-pane{grid-area:map;border-right:none}.platifact-shell.show-map .preview-pane,.platifact-shell.show-preview .map-pane{visibility:hidden;pointer-events:none}.mobile-tabs{display:flex;grid-area:tabs;border-bottom:1px solid #232a33;background:#0b0e13}.mobile-tabs button{flex:1 1;padding:10px;border-radius:0;background:transparent;color:#9aa4b2;font-size:14px;border:none;border-bottom:2px solid transparent}.mobile-tabs button.active{color:#eef2f7;border-bottom-color:#2563eb;background:rgba(37,99,235,.06)}.toolbar-fields-inline{display:none}.toolbar-settings-btn{display:inline-block}.toolbar-inner{gap:8px;padding:8px 12px;flex-wrap:nowrap}.toolbar-inner h1{font-size:14px}.toolbar-inner .stat,.toolbar-inner .warn{font-size:11px}.toolbar-inner button{padding:6px 10px;font-size:13px}.btn-full{display:none}.btn-short{display:inline}.draw-controls button{padding:9px 12px}.preview-reset{padding:9px 14px;font-size:13px}}.settings-dialog[open]{display:block;position:fixed;inset:0;margin:auto;width:min(92vw,420px);max-height:88vh;padding:0;border:1px solid #232a33;border-radius:12px;background:#11161d;color:#e6e8eb}.settings-dialog::-webkit-backdrop{background:rgba(0,0,0,.55);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.settings-dialog::backdrop{background:rgba(0,0,0,.55);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.settings-dialog-body{display:flex;flex-direction:column;max-height:88vh}.settings-dialog-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid #232a33}.settings-dialog-header h2{margin:0;font-size:15px;font-weight:600}.settings-dialog-header button{padding:4px 10px;font-size:16px;line-height:1}.settings-dialog-fields{display:flex;flex-direction:column;gap:14px;padding:16px;overflow-y:auto}.settings-dialog-fields .scale-field{justify-content:space-between;font-size:14px}.settings-dialog-fields .scale-field input{width:110px}.settings-dialog-footer{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;border-top:1px solid #232a33}