*{box-sizing:border-box}
body{margin:0;min-width:1280px;font-family:'Fira Sans',system-ui,sans-serif;background:#F2F4F7;color:#14213D;-webkit-font-smoothing:antialiased}
a{color:#0B4DA2;text-decoration:none}a:hover{color:#083B7E}
button{font-family:inherit}
input,select,textarea{font-family:inherit}
input:focus-visible,select:focus-visible,button:focus-visible,a:focus-visible,textarea:focus-visible{outline:3px solid #F2B705;outline-offset:2px}
.page{display:flex;flex-direction:column;min-height:calc(100vh - 34px)}
.hidden{display:none!important}
#toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%) translateY(20px);opacity:0;transition:all .25s;background:#14213D;color:#fff;padding:14px 20px;border-radius:10px;font-size:15px;z-index:100;box-shadow:0 10px 30px rgba(0,0,0,.25);pointer-events:none;max-width:560px}
#toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
#toast.err{background:#A11C12}
.fld{display:flex;flex-direction:column;gap:6px;font-size:14px;font-weight:600;color:#14213D}
.fld input,.fld select,.fld textarea{height:48px;padding:0 14px;border:1px solid #D6DCE5;border-radius:8px;font-size:15px;font-weight:400;color:#14213D;background:#fff}
.fld textarea{height:auto;padding:12px 14px}
.fld .hint{font-size:13px;font-weight:400;color:#4B5565}
.req{color:#A11C12}
.tab{display:inline-flex;align-items:center;gap:8px;height:44px;padding:0 16px;border-radius:8px;font:600 15px 'Fira Sans',sans-serif;cursor:pointer;border:1px solid #D6DCE5;background:#fff;color:#14213D}
.tab[aria-selected=true]{background:#0B4DA2;border-color:#0B4DA2;color:#fff}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:48px;padding:0 20px;border-radius:8px;font:600 15px 'Fira Sans',sans-serif;cursor:pointer;border:1px solid #0B4DA2;background:#0B4DA2;color:#fff;white-space:nowrap}
.btn:hover{background:#083B7E;color:#fff}
.btn.sec{background:#fff;color:#083B7E;border-color:#D6DCE5}
.btn.sec:hover{background:#EEF3FB}
.btn.sm{height:36px;padding:0 12px;font-size:13px}
.btn.danger{background:#fff;color:#A11C12;border-color:#E9B8B3}
.btn[disabled]{opacity:.55;cursor:default}
.kcard{display:flex;flex-direction:column;gap:8px;text-align:left;padding:20px;border-radius:12px;cursor:pointer;background:#fff;border:2px solid #D6DCE5}
.kcard:has(input:checked){background:#EEF3FB;border-color:#0B4DA2}
.kcard input{accent-color:#0B4DA2;width:18px;height:18px;margin:0}
.err{color:#A11C12;font-size:14px;font-weight:600;min-height:20px}
table.t{width:100%;border-collapse:collapse;font-size:14px}
table.t th{background:#F2F4F7;text-align:left;color:#4B5565;font-size:13px;padding:10px 14px;font-weight:600}
table.t td{padding:12px 14px;border-top:1px solid #E6EAF0;vertical-align:top}
tr.click{cursor:pointer}tr.click:hover td{background:#F7F9FD}
.modal-bg{position:fixed;inset:0;background:rgba(10,24,56,.55);display:flex;align-items:center;justify-content:center;z-index:50}
.modal{background:#fff;border-radius:16px;padding:28px;width:480px;display:flex;flex-direction:column;gap:16px;box-shadow:0 20px 60px rgba(0,0,0,.3)}
.skel{background:linear-gradient(90deg,#E6EAF0,#F2F4F7,#E6EAF0);background-size:200% 100%;animation:sk 1.2s infinite;border-radius:12px}
@keyframes sk{0%{background-position:200% 0}100%{background-position:-200% 0}}
@media (max-width:1535px){.langsw{display:none!important}}
@media (max-width:1439px){.logo-sub{display:none!important}.mainnav{gap:14px!important}.tb-site{display:none}.logo-t{font-size:15px!important}.mainnav a{font-size:14px!important}.langsw{display:none!important}}
@media (prefers-reduced-motion:reduce){.skel{animation:none}#toast{transition:none}}

.oc{background:#fff;border:1px solid #D6DCE5;border-radius:14px}
.oc-h{display:flex;align-items:center;gap:12px;font-family:'Fira Sans Condensed','Fira Sans',sans-serif;font-size:24px;font-weight:700;margin:0}
.chipx{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:6px;font-size:13px;font-weight:600;white-space:nowrap}
.kv{display:flex;flex-direction:column;gap:4px;padding:14px 0;border-bottom:1px solid #E6EAF0}
.kv:last-child{border-bottom:0}
.kv span{font-size:13px;color:#4B5565;font-weight:600}
.kv b{font-size:16px;font-weight:500;line-height:1.4}
.tbtn{display:inline-flex;align-items:center;gap:8px;height:40px;padding:0 14px;border:1px solid #D6DCE5;background:#fff;border-radius:8px;font:600 14px 'Fira Sans',sans-serif;color:#14213D;cursor:pointer}
.tbtn[aria-pressed=true]{background:#0B4DA2;border-color:#0B4DA2;color:#fff}
.ibtn{width:48px;height:48px;display:inline-flex;align-items:center;justify-content:center;border:1px solid #D6DCE5;background:#fff;border-radius:8px;cursor:pointer;color:#14213D}
.cd{display:flex;flex-direction:column;align-items:center;min-width:64px;padding:10px 8px;background:#fff;border:1px solid #D6DCE5;border-radius:8px}
.cd b{font-family:'Fira Sans Condensed','Fira Sans',sans-serif;font-size:28px;line-height:1}
.cd span{font-size:12px;color:#4B5565;margin-top:6px}
.mini{height:210px;border-radius:10px;overflow:hidden;position:relative;background:#DDE4EE}
.mini .cap{position:absolute;left:10px;bottom:10px;z-index:500;background:rgba(20,33,61,.85);color:#fff;font-size:13px;font-weight:600;padding:5px 10px;border-radius:6px}
.leaflet-container{font-family:'Fira Sans',sans-serif}
.area-lbl{background:#0B4DA2;color:#fff;border:0;border-radius:6px;font-weight:700;font-size:14px;padding:6px 10px;box-shadow:0 2px 8px rgba(0,0,0,.3)}
.area-lbl:before{display:none}
#omap:fullscreen{height:100vh!important}
@media print{#omap,.no-print,header,footer,.page>div:first-child,nav,#toast{display:none!important}.oc{break-inside:avoid;border-color:#999}body{min-width:0}}
