:root{font-family:"Noto Sans CJK SC","PingFang SC","Microsoft YaHei",system-ui,sans-serif;color:#1c2b43;background:#f5f7fb;font-synthesis:none}
*{box-sizing:border-box}
body{margin:0;min-width:320px}
button,input,select{font:inherit}
button{cursor:pointer}
button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid #8db9ff;outline-offset:2px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
[hidden]{display:none!important}
.topbar{height:68px;background:#173b72;color:#fff;box-shadow:0 2px 10px #122e5812}
.topbar-inner{max-width:1240px;padding:0 32px;height:100%;margin:auto;display:flex;align-items:center;justify-content:space-between}
.brand{display:flex;align-items:center;gap:13px;white-space:nowrap}
.brand-link{color:inherit;text-decoration:none}
.brand-mark{width:35px;height:35px;border-radius:9px;background:#fff;display:flex;flex-direction:column;justify-content:center;gap:4px;padding:8px}
.brand-mark span{height:3px;border-radius:3px;background:#2158a0}
.brand-mark span:last-child{width:65%}
.brand-name{font-size:17px;font-weight:700;letter-spacing:.02em}
.topbar-meta{font-size:12px;color:#d7e5fb;display:flex;align-items:center;gap:10px;white-space:nowrap}
.live-dot{width:7px;height:7px;border-radius:50%;background:#54dcb4;box-shadow:0 0 0 3px #54dcb42b}
.topbar-separator{width:1px;height:14px;background:#7794b9;margin:0 2px}
.logout-button{border:1px solid #ffffff55;background:transparent;color:#fff;border-radius:5px;padding:5px 9px;font-size:12px}
.logout-button:hover{background:#ffffff20}
.auth-shell{min-height:calc(100vh - 68px);display:grid;place-items:center;padding:32px 16px}
.auth-card{width:min(100%,420px);background:#fff;border:1px solid #e3eaf3;border-radius:14px;padding:36px;box-shadow:0 12px 40px #173b7214}
.auth-eyebrow{font-size:12px;font-weight:700;color:#3676c8;margin:0 0 9px}
.auth-card h1{font-size:25px;margin:0 0 9px}
.auth-description{font-size:13px;line-height:1.65;color:#75869b;margin:0 0 27px}
.auth-card form{display:grid;gap:9px}
.auth-card label{font-size:13px;font-weight:650;color:#2e4562;margin-top:5px}
.auth-confirm{display:grid;gap:9px}
.auth-card input{height:44px;padding:0 12px;border:1px solid #d9e2ed;border-radius:7px;background:#fff;color:#203452;min-width:0}
.auth-card input:focus{border-color:#5e91d9;outline:3px solid #5e91d91c}
.auth-submit{height:44px;margin-top:14px;border:0;border-radius:7px;background:#2468b5;color:#fff;font-weight:650}
.auth-submit:hover{background:#1b579d}.auth-submit:disabled{opacity:.6;cursor:wait}
.auth-error{font-size:12px;color:#bd2d2d;margin:4px 0 0;line-height:1.5}
.auth-notice{padding:10px 12px;border-radius:6px;background:#fff5e8;color:#86531b;font-size:12px;line-height:1.6;margin:0 0 16px}
.auth-switch{font-size:13px;color:#76879c;margin:22px 0 0;text-align:center}
.auth-switch a{color:#2468b5;text-decoration:none;font-weight:650}.auth-switch a:hover{text-decoration:underline}
.auth-dialog{width:min(calc(100% - 32px),390px);padding:25px;border:1px solid #dce5f0;border-radius:12px;box-shadow:0 20px 60px #13294a30;color:#233b59}
.auth-dialog::backdrop{background:#17283d77}
.auth-dialog h2{font-size:20px;margin:0 0 11px}
.auth-dialog p{font-size:14px;line-height:1.7;color:#52667e;margin:0 0 22px}
.auth-dialog-actions{display:flex;justify-content:flex-end;gap:10px}
.auth-dialog-actions button{border:1px solid #d8e1ec;border-radius:6px;padding:9px 15px;background:#fff;color:#3e5774}
.auth-dialog-actions #confirmReplace{border-color:#2468b5;background:#2468b5;color:#fff}
.shell{max-width:1240px;margin:0 auto;padding:36px 32px 40px}
.page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:27px}
h1,h2,h3,p{margin-top:0}
h1{font-size:30px;line-height:1.25;letter-spacing:-.025em;margin-bottom:9px;color:#13294a}
.page-heading p{font-size:14px;color:#78879b;margin-bottom:0}
.refresh-button{border:1px solid #d7e1ee;background:#fff;color:#31527b;border-radius:8px;padding:10px 15px;display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;box-shadow:0 1px 2px #1639670a;white-space:nowrap}
.refresh-button:hover{border-color:#8cadd9;background:#f8fbff}
.refresh-button svg{width:17px;height:17px}








.filter-panel{background:#fff;border:1px solid #e4eaf2;border-radius:12px;padding:22px 24px 20px;box-shadow:0 2px 14px #1b3e7007;margin-bottom:20px}
.filter-primary{display:grid;grid-template-columns:minmax(0,1fr) 230px;gap:14px;margin-bottom:18px}
.search-field,.region-field{height:46px;border:1px solid #d9e2ed;border-radius:8px;display:flex;align-items:center;background:#fff;transition:border-color .15s,box-shadow .15s}
.search-field:focus-within,.region-field:focus-within{border-color:#5e91d9;box-shadow:0 0 0 3px #5e91d91c}
.search-field{gap:11px;padding:0 14px}
.search-field svg{color:#95a3b5;width:19px;height:19px;flex:none}
.search-field input{border:0;outline:0;min-width:0;flex:1;color:#203452;background:none;font-size:14px}
.search-field input::placeholder{color:#a0adbd}
.region-field{position:relative;padding:0 13px;gap:11px}
.region-field>span{font-size:12px;color:#8491a3;white-space:nowrap}
.region-field select{border:0;outline:0;appearance:none;background:transparent;min-width:0;width:100%;height:100%;color:#2d405c;font-size:13px;padding-right:19px;cursor:pointer}
.region-field svg{position:absolute;right:11px;width:17px;height:17px;pointer-events:none;color:#8190a3}
.filter-secondary{display:block}
.type-filters{border-top:1px solid #edf1f5;border-bottom:1px solid #edf1f5;margin-bottom:12px;padding:8px 0}
.type-filter-row{display:flex;align-items:center;min-width:0;gap:9px;padding:3px 0}
.type-filter-label{flex:none;width:66px;color:#516174;font-size:13px;white-space:nowrap}
.type-filter-choices{display:flex;align-items:center;gap:4px 10px;min-width:0;overflow-x:auto;scrollbar-width:thin}
.type-chip{flex:none;border:0;background:transparent;border-radius:4px;color:#344b65;font-size:13px;padding:6px 10px;white-space:nowrap}
.type-chip:hover{background:#edf4fa}
.type-chip.active{background:#76a9c7;color:#fff}
.date-filters{display:flex;align-items:center;flex-wrap:wrap;gap:4px 8px}
.filter-label{border:0;background:transparent;padding:6px 0;margin-right:0;color:#516174;font-size:13px;white-space:nowrap}
.filter-label:hover{color:#1f62ad}
.date-chip{border:0;background:transparent;border-radius:3px;color:#52657c;font-size:13px;padding:5px 7px;white-space:nowrap}
.date-chip:hover{background:#f4f7fb}
.date-chip.active{background:#fff0ef;color:#d93530;font-weight:600}
.custom-dates{display:flex;align-items:center;gap:6px;white-space:nowrap;color:#74849a;font-size:12px}
.custom-dates input{height:32px;width:112px;border:1px solid #e1e7ef;color:#526278;background:#fff;border-radius:6px;padding:0 8px;font-size:12px}
.result-panel{background:#fff;border:1px solid #e3eaf3;border-radius:12px;box-shadow:0 2px 14px #1b3e7007;overflow:hidden}
.results-toolbar{padding:24px 27px 19px;display:flex;align-items:start;justify-content:space-between;border-bottom:1px solid #edf1f5}
.results-toolbar h2{font-size:18px;color:#172b49;margin-bottom:5px;letter-spacing:-.01em}
.results-toolbar p{font-size:12px;color:#94a1b1;margin-bottom:0}
.result-count{display:inline-flex;min-width:25px;height:22px;align-items:center;justify-content:center;padding:0 6px;background:#eaf2ff;color:#2a63aa;border-radius:5px;font-size:12px;margin-left:5px;vertical-align:2px}
.sort-label{display:flex;align-items:center;gap:6px;font-size:12px;color:#7c8ba0;white-space:nowrap;padding-top:2px}
.sort-label svg{width:16px;height:16px}
.notice-row{display:grid;grid-template-columns:max-content max-content minmax(0,1fr) 92px;align-items:center;column-gap:8px;min-height:64px;padding:12px 22px;border-bottom:1px solid #edf1f5;cursor:pointer;background:#fff;transition:background .15s;text-decoration:none;color:inherit}
.notice-row:hover,.notice-row:focus-visible{background:#f8fbff;outline:none}
.notice-region,.notice-type{display:inline-flex;align-items:center;justify-content:center;min-height:28px;padding:4px 9px;border-radius:4px;white-space:nowrap;font-size:12px;line-height:1.35}
.notice-region{background:#e5f4ff;color:#17619a;font-weight:650}
.notice-type{background:#f1f4f8;color:#63748a}
.notice-title{min-width:0;margin:0 12px;font-size:14px;line-height:1.5;color:#19314f;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.notice-row:hover .notice-title{color:#1d5fae}
.notice-date{text-align:right;color:#53647a;font-size:12px;white-space:nowrap;font-variant-numeric:tabular-nums}
.loading-state,.empty-state{padding:70px 24px;text-align:center;color:#8391a4;font-size:14px}
.empty-state strong{display:block;color:#3d5574;font-size:16px;margin-bottom:8px}
.pagination{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:12px 24px;padding:17px 27px;color:#53647a}
.page-buttons,.page-numbers,.page-jump{display:flex;align-items:center}
.page-buttons{gap:6px;max-width:100%;overflow-x:auto}
.page-numbers{gap:3px;flex:none}
.page-buttons button{flex:none;min-width:34px;height:36px;padding:0 7px;background:#fff;border:0;border-radius:5px;font-size:14px;color:#283c56}
.page-buttons button:hover:not(:disabled){background:#edf4fb;color:#1c5aa6}
.page-buttons .page-number[aria-current="page"]{background:#e5f0fc;color:#165cad;font-weight:700}
.page-buttons button:disabled{opacity:.45;cursor:default}
.page-ellipsis{min-width:32px;text-align:center;color:#78879b;font-size:14px}
.page-jump{gap:6px;white-space:nowrap;font-size:12px}
.page-jump input{width:64px;height:34px;padding:0 6px;border:1px solid #dce4ee;border-radius:5px;color:#283c56;text-align:center;appearance:textfield}
.page-jump input::-webkit-inner-spin-button,.page-jump input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.page-jump button{height:34px;padding:0 11px;background:#fff;border:1px solid #dce4ee;border-radius:5px;color:#31527b;font-size:12px}
.page-jump button:hover{border-color:#7da5d4;color:#1c5aa6}
.page-footnote{color:#a0acb9;font-size:11px;text-align:center;margin:21px 0 0}
.detail-shell{max-width:1040px;margin:0 auto;padding:31px 32px 48px}
.back-link{display:inline-flex;align-items:center;gap:6px;margin-bottom:21px;color:#527197;text-decoration:none;font-size:13px;font-weight:600}
.back-link:hover{color:#1f62ad}
.back-link svg{width:17px;height:17px}
.detail-page{background:#fff;border:1px solid #e3eaf3;border-radius:12px;box-shadow:0 2px 14px #1b3e7007}
.detail-content{padding:36px 46px 46px}
.detail-title{font-size:22px;line-height:1.48;color:#152d4e;letter-spacing:-.015em;margin-bottom:17px;overflow-wrap:anywhere}
.detail-meta-line{display:flex;gap:8px;flex-wrap:wrap;color:#8796a8;font-size:12px;padding-bottom:24px;border-bottom:1px solid #e9eef4}
.detail-meta-line span{padding:4px 8px;background:#f3f6fa;border-radius:4px}
.detail-meta-line span{overflow-wrap:anywhere}
.detail-section{padding:25px 0;border-bottom:1px solid #e9eef4}
.detail-section>h2{font-size:15px;color:#193556;margin:0 0 17px;display:flex;align-items:center;gap:9px}
.detail-section>h2:before{content:"";width:3px;height:16px;background:#3676c8;border-radius:3px}
.detail-body{font-size:13px;line-height:1.95;color:#415269;white-space:pre-wrap;overflow-wrap:anywhere}
.notice-body-section{padding:2px 0 16px}
.notice-body-section+.notice-body-section{border-top:1px solid #edf1f5;padding-top:20px}
.notice-section-heading{font-size:15px;line-height:1.55;color:#24476e;margin:0 0 14px;font-weight:700}
.notice-subheading{font-size:13px;line-height:1.7;color:#2f4b6a;margin:18px 0 8px;font-weight:650}
.notice-paragraph{font-size:13px;line-height:1.95;color:#415269;margin:0 0 13px;overflow-wrap:anywhere}
.notice-source-image{display:block;max-width:100%;height:auto;margin:18px auto;border:1px solid #e3eaf3}
.notice-body-list{font-size:13px;line-height:1.9;color:#415269;margin:0 0 16px;padding-left:23px}
.notice-body-list li+li{margin-top:5px}
.notice-table-scroll{max-width:100%;overflow-x:auto;margin:8px 0 18px;border:1px solid #e3eaf3;border-radius:8px}
.notice-data-table{border-collapse:collapse;width:100%;min-width:540px;font-size:12px;line-height:1.7;color:#43566e}
.notice-data-table th,.notice-data-table td{border-bottom:1px solid #e8eef5;border-right:1px solid #e8eef5;padding:10px 12px;text-align:left;vertical-align:top;overflow-wrap:anywhere;min-width:105px}
.notice-data-table th{background:#f3f7fc;color:#31577e;font-weight:650}
.notice-data-table tr:last-child td,.notice-data-table tr:last-child th{border-bottom:0}
.notice-data-table td:last-child,.notice-data-table th:last-child{border-right:0}
.notice-data-table tr:nth-child(even) td{background:#fbfcfe}
.table-scroll-hint{display:none;color:#8798ac;font-size:11px;margin:0 0 5px}
.body-version-switch{display:inline-flex;gap:3px;padding:3px;margin:-4px 0 20px;background:#eef3f9;border-radius:8px}
.body-version-switch button{border:0;background:transparent;color:#657b97;border-radius:6px;padding:8px 15px;font-size:12px;font-weight:650}
.body-version-switch button[aria-pressed=true]{background:#fff;color:#225fa9;box-shadow:0 1px 4px #173b721c}
.original-document{font-family:"Noto Sans CJK SC","PingFang SC","Microsoft YaHei",sans-serif;font-size:13px;line-height:1.75;color:#29394d;overflow-x:auto;overflow-wrap:anywhere}
.original-document p{margin:0 0 .7em}
.original-document h1,.original-document h2,.original-document h3,.original-document h4{color:inherit;letter-spacing:normal;line-height:1.5;margin:1em 0 .6em}
.original-document h1{font-size:1.55em}.original-document h2{font-size:1.35em}.original-document h3{font-size:1.2em}
.original-document table{border-collapse:collapse;max-width:none;margin:.5em 0 1em;min-width:600px}
.original-document th,.original-document td{padding:5px 8px;border:1px solid #d9e2ee;vertical-align:top;overflow-wrap:anywhere;min-width:72px}
.original-document img{max-width:100%;height:auto}
.original-document a{color:#2264aa;text-decoration:underline}
.original-document ul,.original-document ol{padding-left:1.8em}
.detail-empty{font-size:13px;color:#9ba8b8;margin:0;line-height:1.7}
.detail-note{font-size:12px;color:#8b99aa;line-height:1.7;margin:9px 0 0}
.contact-card{padding:13px 15px;background:#f5f9ff;border:1px solid #e2edfa;border-radius:8px;margin-bottom:9px}
.contact-kind{font-size:11px;color:#6f85a2;margin-bottom:5px}
.contact-name{font-size:14px;color:#213f65;font-weight:650}
.contact-phone{color:#1e61ae;text-decoration:none;margin-left:12px;font-size:14px}
.contact-unit{display:block;color:#7b8da4;font-size:12px;margin-top:5px}
.attachment-list{margin:0;padding:0;list-style:none}
.attachment-list li{padding:10px 12px;border:1px solid #e8edf4;border-radius:6px;margin-bottom:8px;color:#4b607b;font-size:12px;overflow-wrap:anywhere}
.field-grid{display:grid;grid-template-columns:120px minmax(0,1fr);gap:10px 15px;font-size:12px;line-height:1.7;margin:0}
.field-grid dt{color:#8796a8}
.field-grid dd{margin:0;color:#41536c;white-space:pre-wrap;overflow-wrap:anywhere}
.detail-link{display:inline-flex;align-items:center;gap:6px;color:#2765af;text-decoration:none;font-size:13px;font-weight:600;overflow-wrap:anywhere}
.detail-link:hover{text-decoration:underline}
.other-source{margin-top:16px;padding-top:13px;border-top:1px solid #e9eef4}
.detail-link svg{width:15px;height:15px;flex:none}
.raw-html{margin-top:17px;font-size:12px;color:#8190a4}
.raw-html summary{cursor:pointer}
.raw-html pre{max-height:300px;overflow:auto;padding:12px;border:1px solid #e5eaf1;border-radius:6px;background:#f8fafc;color:#57677d;white-space:pre-wrap;word-break:break-all}
@media(max-width:760px){
  .topbar{height:60px}.topbar-inner{padding:0 18px}.brand-name{font-size:15px}.topbar-meta{font-size:11px}.topbar-separator,.topbar-meta .live-dot{display:none}
  .shell{padding:21px 16px 30px}.page-heading{margin-bottom:18px;align-items:flex-start}.page-heading h1{font-size:25px;margin-bottom:0}.page-heading p{display:none}.refresh-button{font-size:0;padding:9px}.refresh-button svg{width:18px;height:18px}

  .filter-panel{padding:16px}.filter-primary{grid-template-columns:1fr;gap:10px;margin-bottom:15px}.type-filter-label{width:62px;font-size:12px}.type-chip{font-size:12px;padding:6px 8px}.date-filters{gap:3px 8px}.filter-label{font-size:12px}.date-chip{padding:6px 7px;font-size:12px}.custom-dates{display:grid;width:100%;grid-template-columns:max-content minmax(0,1fr);gap:8px}.custom-dates input{width:100%;min-width:0}
  .results-toolbar{padding:18px 18px 14px}.notice-row{grid-template-columns:max-content max-content minmax(0,1fr) 86px;column-gap:6px;padding:10px 16px;min-height:58px}.notice-title{margin:0 5px;font-size:13px}.notice-region,.notice-type{font-size:11px;padding:4px 7px;min-height:26px}.notice-date{font-size:11px}.pagination{padding:15px 18px}.page-buttons{width:100%}.page-jump{margin:auto}
  .detail-shell{padding:20px 16px 30px}.back-link{margin-bottom:15px}.detail-content{padding:24px 21px 35px}.detail-title{font-size:19px}.field-grid{grid-template-columns:95px minmax(0,1fr)}.table-scroll-hint{display:block}
}
@media(max-width:620px){.notice-row{grid-template-columns:max-content max-content minmax(0,1fr) 86px;row-gap:5px;padding:11px 16px}.notice-title{grid-column:1/-1;grid-row:2;margin:0;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}.notice-date{grid-column:4;grid-row:1}}
@media(max-width:390px){.topbar-meta{font-size:0;gap:6px}.topbar-meta #signedInUser{font-size:11px}.date-filters{gap:0}.date-chip{padding:6px 7px}}
