

.jw-button { appearance:none; display:inline-flex; align-items:center; justify-content:center; gap:6px; border:none; background:var(--jwbutton-bg); color:var(--jwbutton-color); height:var(--jwbutton-height); cursor:pointer; text-decoration:none; white-space:nowrap; user-select:none; padding:0 10px; border-radius:5px; transition:border-color .12s ease, box-shadow .12s ease, background .12s ease; }

.jw-button:hover { background:var(--jwbutton-bghover); box-shadow:0 10px 22px rgba(47,141,70,.15); }
.jw-button:active { transform:translateY(1px); }

.jw-button.typeA { --jwbutton-bg: transparent; color:var(--font-color); --jwbutton-bghover:#cee3ff; }
.jw-button.typeB { --jwbutton-bg: #F4F4F4; color:var(--font-color); border: 1px solid #d0d0d0; --jwbutton-bghover:#cee3ff; }
.jw-button.sm { --jwbutton-height: 24px; padding: 0 8px; font-size: 12px; }
.jw-button.lg { --jwbutton-height: 40px; padding: 0 16px; font-size: 16px; }
.jw-button.block { display: block; width: 100%; }

.jw-a { appearance:none; display:inline-flex; align-items:center; justify-content:center; gap:6px; border:none; background:var(--jw-a-bg); color:var(--jw-a-color); height:var(--jw-a-height); cursor:pointer; text-decoration:none; white-space:nowrap; user-select:none; padding:0 10px; border-radius:5px; transition:border-color .12s ease, box-shadow .12s ease, background .12s ease; }
.jw-a:hover { background:var(--jw-a-bghover); box-shadow:0 10px 22px rgba(47,141,70,.15); }
.jw-a:active { transform:translateY(1px); }

.jw-a.sm { --jw-a-height: 24px; padding: 6px 12px; font-size: 12px; border-radius: 10px; }
.jw-a.lg { --jw-a-height: 40px; padding: 14px 24px; font-size: 15px; border-radius: 14px; }

hr { border:0; border-top:1px solid rgba(0,0,0,0.3); }
.jw-hr2 { border:0; border-top:3px solid rgba(0,0,0,0.3); margin:20px 0; }


.filter-wrap { width:100%; }
.filter-wrap .status-tabs { display:flex; align-items:center; gap:34px; height:56px; }
.filter-wrap .status-tabs .tab { display:flex; align-items:center; gap:8px; color:#222; cursor:pointer; position:relative; }
.filter-wrap .status-tabs .tab .count { display:inline-flex; align-items:center; justify-content:center; height:20px; padding:0 10px; border-radius:10px; background:#efefef; font-size:12px; color:#666; }
.filter-wrap .status-tabs .tab.active { color:#4b74ff; }
.filter-wrap .status-tabs .tab.active .count { background:#e9edff; color:#4b74ff; }
.filter-wrap .status-tabs .tab.active:after { content:""; position:absolute; left:0; bottom:-18px; width:100%; height:2px; background:#4b74ff; }
.filter-wrap > hr { border-top:1px solid #e5e5e5; }

.filter-wrap .filter-tools { display:flex; align-items:center; justify-content:space-between; gap:20px; min-height:78px; }
.filter-wrap .filter-tools .reset-btn { color:#3fa9f5; background:transparent; border:0; }

.filter-wrap .filter-tools .filter-select { position:relative; height:40px; border:1px solid #ccc; border-radius:5px; display:flex; justify-content:center; align-items:center; }
.filter-wrap .filter-tools .filter-select > .text { position:absolute; top:50%; transform:translateY(-50%); left:10px; top:0; font-size:11px; color:#444; user-select: none; pointer-events: none; }
.filter-wrap .filter-tools .filter-select > .text:after{ content:""; position:absolute; left:-5px; top:50%; width:calc(100% + 10px); transform:translateY(-50%); height:4px; background:#fff; z-index:-1; }
.filter-wrap .filter-tools .filter-select select { width:100%; min-width:100px; height:100%; border:0; background:transparent; padding:0 26px 0 10px; color:#222; appearance:none; -webkit-appearance:none; -moz-appearance:none; outline:none; }
.filter-wrap .filter-tools .filter-select:after { content:""; position:absolute; right:10px; top:50%; width:6px; height:6px; border-right:2px solid #000; border-bottom:2px solid #000; transform:translateY(-50%) rotate(45deg); pointer-events:none; }


.filter-wrap .filter-tools .filter-input { position:relative; display:flex; align-items:center; height:40px; border:1px solid #ccc; border-radius:5px; }
.filter-wrap .filter-tools .filter-input .search-btn { margin-right:10px; }
.filter-wrap .filter-tools .filter-input > .text { position:absolute; top:50%; transform:translateY(-50%); left:10px; top:0; font-size:11px; color:#444; user-select: none; pointer-events: none; }
.filter-wrap .filter-tools .filter-input > .text:after{ content:""; position:absolute; left:-5px; top:50%; width:calc(100% + 10px); transform:translateY(-50%); height:4px; background:#fff; z-index:-1; }

.jw-tableA { width:100%; table-layout:fixed; border-collapse:collapse; }
.jw-tableA th { height:40px; background:#f4f6f8; border-top:1px solid #ccc; border-bottom:1px solid #ccc; text-align:center; }
.jw-tableA td { height:40px; }
.jw-tableA td { border-bottom:1px solid #ccc; }
.jw-tableA tr.hover:hover td { background:#F9F9F9; }
.jw-tableA .nodata { height:150px; text-align:center; }
.jw-tableA .checklist { width:60px; text-align:center; }
.jw-tableA .center { place-items:center; text-align:center; }

.jw-table-header { display:flex; align-items:center; justify-content:space-between; }

.jw-pagebox { margin-top:20px; display:flex; align-items:center; justify-content:center; gap:10px; }
.jw-pagebox > .info { flex:1; font-size:12px; font-weight:300; color:#666; min-width:90px; }
.jw-pagebox > .info.right { display:flex; justify-content:flex-end; }
.jw-pagebox > .contents { flex:0 0 auto; display:flex; justify-content:center; align-items:center; gap:6px; }
.jw-pagebox > .contents > div { position:relative; display:flex; justify-content:center; align-items:center; cursor:pointer; }

.jw-pagebox > .contents > .page { display:flex; justify-content:center; align-items:center; gap:4px; }
.jw-pagebox > .contents > .page > .p { width:32px; height:32px; display:flex; justify-content:center; align-items:center; cursor:pointer; border-radius:10px; }
.jw-pagebox > .contents > .page > .p:hover { background:#f3f4f6; }
.jw-pagebox > .contents > .page > .p.show { color:#4d7cff; font-weight:800; background:rgba(77,124,255, .10); }
.jw-pagebox > .contents > .page > .p.ellipsis { cursor:default; color:#9ca3af; }
.jw-pagebox > .contents > .page > .p.ellipsis:hover { background:transparent; }

.jw-checkbox { position: relative; display:inline-flex; align-items:center; cursor:pointer; }
.jw-checkbox input { position: absolute; opacity: 0; width: 0; height: 0; }
.jw-checkbox i { position:relative; width:20px; height:20px; border:1px solid var(--jw-checkbox-border-color); border-radius:3px; transition:background .1s ease; }
.jw-checkbox i::after { content:""; position:absolute; top:0; left:7px; width:6px; height:16px; border-right:2px solid var(--jw-checkbox-border-color); border-bottom:2px solid var(--jw-checkbox-border-color); transform:rotate(45deg) scale(0); opacity:0; transition:transform .2s ease,opacity .2s ease; }
.jw-checkbox input:checked + i::after { opacity:1; transform:rotate(45deg) scale(1); }
.jw-checkbox input:focus-visible + i { outline:2px solid #222; outline-offset:2px; }
.jw-checkbox span { margin-left:10px; color:#222; }


.jw-radio { position: relative; display:flex; align-items:center; cursor:pointer; }
.jw-radio input { position: absolute; opacity: 0; width: 0; height: 0; z-index:-1; }
.jw-radio .icon { position:relative; width:20px; height:20px; border:1px solid #CBCCD4; border-radius:50%; transition:border-color .1s ease; }
.jw-radio .icon::after { content:""; position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:10px; height:10px; border-radius:50%; background:#3F51B5; opacity:0; transition:opacity .2s ease; }
.jw-radio input:checked + .icon { border-color:#3F51B5; }
.jw-radio input:checked + .icon::after { opacity:1; }
.jw-radio input:focus-visible + .icon { outline:2px solid #222; outline-offset:2px; }
.jw-radio .text { margin-left:10px; color:#666; }
.jw-radio.is-accent input:checked + .icon { border-color:#ff0000; }
.jw-radio.is-accent .icon::after { background:#ff0000; }


#jw-update-form { display:flex; flex-direction:column; gap:20px; padding:32px; }
#jw-update-form .jw-grid { display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:20px; }
#jw-update-form label { display:block; margin-bottom:10px; font-size:16px; font-weight:600; color:#222; }
#jw-update-form input,
#jw-update-form textarea { width:100%; height:40px; border:1px solid #cfcfcf; border-radius:10px; padding:0 10px; color:#222; }
#jw-update-form .select-wrap { position:relative; width:100%; height:40px; border:1px solid #cfcfcf; border-radius:10px; background:#fff; display:flex; align-items:center; }
#jw-update-form .select-wrap:after { content:""; position:absolute; right:14px; top:50%; width:7px; height:7px; border-right:2px solid #666; border-bottom:2px solid #666; transform:translateY(-60%) rotate(45deg); pointer-events:none; }
#jw-update-form select { width:100%; height:100%; border:0; background:transparent; padding:0 26px 0 10px; color:#222; appearance:none; -webkit-appearance:none; -moz-appearance:none; outline:none; }

#jw-update-form textarea { height:200px; padding:10px; resize:none; }
#jw-update-form input:focus,
#jw-update-form textarea:focus { border-color:#1e73ff; }
#jw-update-form .select-wrap:focus-within { border-color:#1e73ff; }
#jw-update-form .jw-button { height:40px; }
#jw-update-form .village-address-grid { display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:20px; }

#jw-update-form .village-address-flex { display:flex; gap:10px; }
#jw-update-form .village-address-flex button { --jw-btn-px:10px; font-size:12px; }
#jw-update-form .address-box { display:flex; gap:10px; }

#jw-update-form .hope-people-wrap { display:flex; align-items:center; gap:8px; }
#jw-update-form .hope-people-wrap input { width:60px; flex:0 0 60px; }
#jw-update-form #hope_people { text-align:center; }

.filter-wrap .status-tabs .tab.active .count { min-width:20px; }


@media (max-width:560px) {
	.jw-pagebox { gap:6px; }
	.jw-pagebox > .info { display:none; }
	.jw-pagebox > .info.right { display:none; }
	.jw-pagebox > .contents > div.btn { width:30px; height:30px; }
	.jw-pagebox > .contents > .page > .p { width:30px; height:30px; }
}

.jw-ico { width:16px; height:16px; display:block; fill:currentColor; }

.jw-inputFile { display:inline-flex; align-items:center; gap:6px; height:30px; padding:0 10px; border-radius:5px; background:var(--jwbutton-bg); color:var(--jwbutton-color); cursor:pointer; user-select:none; white-space:nowrap; transition:background .12s ease; }
.jw-inputFile:hover { background:var(--jwbutton-bghover); }
.jw-inputFile input { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.jw-inputFile.typeA { background:transparent; color:var(--font-color); }
.jw-inputFile.typeB { background:#F4F4F4; color:var(--font-color); border:1px solid #d0d0d0; }

.jw-badge { display:inline-flex; align-items:center; height:22px; padding:0 10px; border-radius:11px; font-size:12px; font-weight:500; }
.jw-badge.default { background:#efefef; color:#666; }
.jw-badge.success { background:#e8f5e9; color:#2e7d32; }
.jw-badge.warning { background:#fff3e0; color:#e65100; }
.jw-badge.danger { background:#ffebee; color:#c62828; }
.jw-badge.info { background:#e3f2fd; color:#1565c0; }

.ic-close { position:relative; width:24px; height:24px; cursor:pointer; display:flex; justify-content:center; align-items:center; transition-duration:.5s; }
.ic-close::after { content:""; position:absolute; width:var(--line,2px); height:100%; background:var(--color,#222); transform:rotate(45deg); }
.ic-close::before { content:""; position:absolute; width:var(--line,2px); height:100%; background:var(--color,#222); transform:rotate(-45deg); }
.ic-close:hover { transform:rotate(360deg); }

.jw-tabs { display:flex; gap:0; border-bottom:2px solid #eee; }
.jw-tabs .tab { padding:10px 20px; cursor:pointer; color:#666; border-bottom:2px solid transparent; margin-bottom:-2px; transition:color .2s,border-color .2s; font-size:14px; }
.jw-tabs .tab:hover { color:#222; }
.jw-tabs .tab.active { color:#4b74ff; border-bottom-color:#4b74ff; font-weight:600; }

.jw-tooltip { position:relative; display:inline-flex; cursor:pointer; }
.jw-tooltip .tip { position:absolute; bottom:calc(100% + 6px); left:50%; transform:translateX(-50%); padding:6px 12px; background:#333; color:#fff; font-size:12px; border-radius:6px; white-space:nowrap; pointer-events:none; opacity:0; transition:opacity .2s; }
.jw-tooltip:hover .tip { opacity:1; }
.jw-tooltip .tip::after { content:""; position:absolute; top:100%; left:50%; transform:translateX(-50%); border:5px solid transparent; border-top-color:#333; }

.jw-toast { position:fixed; top:20px; right:20px; z-index:2000; display:flex; flex-direction:column; gap:8px; pointer-events:none; }
.jw-toast .item { display:flex; align-items:center; gap:10px; padding:14px 20px; background:#fff; border-radius:8px; box-shadow:0 4px 20px rgba(0,0,0,.12); font-size:14px; color:#222; pointer-events:auto; animation:jw-slideIn .3s ease; }
.jw-toast .item.success { border-left:4px solid #2e7d32; }
.jw-toast .item.error { border-left:4px solid #c62828; }
.jw-toast .item.info { border-left:4px solid #1565c0; }
@keyframes jw-slideIn { from { transform:translateX(100%); opacity:0; } to { transform:translateX(0); opacity:1; } }

.test-1 { position:relative; z-index:0; display:flex; height:260px; }
.test-2 { position:absolute; inset:0; background:rgba(0,0,0,.15); border-radius:12px; }
.test-3 { margin:20px; }
.test-4 { position:relative; top:auto; right:auto; width:320px; }

.jw-topbtn{ position:fixed; right:clamp(10px, calc(10px + (190 * ((100vw - 500px) / 1420))), 200px); bottom:18px; width:44px; height:44px; border-radius:14px; border:1px solid rgba(255,255,255, .12); background:rgba(20,22,26, .92); box-shadow:0 10px 30px rgba(0,0,0, .55); display:flex; align-items:center; justify-content:center; cursor:pointer; z-index:500; opacity:0; transform:translateY(10px); pointer-events:none; transition:opacity .18s ease, transform .18s ease; color:rgba(255,255,255, .92); }
.jw-topbtn.is-show{ opacity:1; transform:translateY(0); pointer-events:auto; }
.jw-topbtn:hover{ background:rgba(34,36,42, .95); border-color:rgba(255,255,255, .18); }
.jw-topbtn .jw-ico{ width:18px; height:18px; fill:currentColor; }

