:root{--bg:#111f2b;--panel:#1b2d3a;--ink:#f5f7f3;--muted:#a9bcc0;--line:#405366;--accent:#9fc5ff}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:radial-gradient(circle at 96% 43%,#243d5a 0,transparent 26%),var(--bg);color:var(--ink);font-family:Inter,"Noto Sans TC","Microsoft JhengHei",system-ui,sans-serif}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}.shell{max-width:1230px;margin:0 auto;padding:0 30px}.topbar{height:76px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{font-size:16px;font-weight:800;letter-spacing:.04em}.topbar > nav{display:flex;gap:24px;font-size:13px;color:#c7d2df}.topbar > nav a:hover,.back:hover{color:var(--accent)}.intro{padding:57px 0 35px;display:flex;align-items:end;justify-content:space-between;gap:25px}.eyebrow{color:var(--accent);letter-spacing:.18em;font-size:11px;font-weight:800;margin:0 0 12px}.intro h1{font-size:clamp(30px,3.4vw,48px);line-height:1.24;letter-spacing:-.045em;max-width:820px;margin:0}.intro h1 em{font-style:normal;color:var(--accent)}.intro p:not(.eyebrow),.goal-hero p:not(.eyebrow){color:#b7c9ca;font-size:14px;line-height:1.8;margin:15px 0 0}.stats{display:flex;gap:22px;flex:none}.stats div{min-width:94px;border-left:1px solid var(--line);padding-left:18px}.stats strong{font-size:30px;display:block}.stats span,.goal-total span{font-size:11px;color:var(--muted)}.section-head{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:18px}.section-head h2{font-size:23px;margin:0;letter-spacing:-.025em}.section-head>p{color:var(--muted);font-size:12px;margin:0}.sdg-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:11px}.sdg-card{position:relative;display:flex;flex-direction:column;height:211px;padding:15px 16px 12px;border:1px solid #ffffff25;border-radius:5px;background:linear-gradient(150deg,color-mix(in srgb,var(--sdg-color),white 8%),var(--sdg-color));overflow:hidden;transition:transform .18s,filter .18s,box-shadow .18s}.sdg-card:before,.sdg-card:after{content:"";position:absolute;width:94px;height:94px;right:-38px;top:-58px;border:1px solid #ffffff40;border-radius:50%}.sdg-card:after{width:140px;height:140px;right:-60px;top:-76px;opacity:.55}.sdg-card:hover,.sdg-card:focus-visible{transform:translateY(-4px);filter:brightness(1.1);box-shadow:0 13px 28px #0005;outline:none}.sdg-card.zero{filter:saturate(.65) brightness(.68)}.sdg-card.zero:hover{filter:saturate(.8) brightness(.85)}.card-number{font-size:14px;font-weight:900;letter-spacing:.12em;z-index:1}.card-icon{font-family:"Segoe UI Symbol",system-ui,sans-serif;align-self:center;font-size:46px;line-height:1;margin:9px 0 15px;font-weight:800;z-index:1}.card-name{font-size:15px;font-weight:850;line-height:1.23;max-width:145px;z-index:1}.card-count{display:flex;align-items:center;gap:4px;border-top:1px solid #ffffff3e;margin-top:auto;padding-top:12px;font-size:11px;z-index:1}.card-count strong{font-size:19px}.card-arrow{margin-left:auto;border:1px solid #ffffff70;border-radius:50%;display:grid;place-items:center;width:28px;height:28px;font-size:16px}.grid-note{color:#aab8c4;font-size:11px;margin:18px 0 0}.upload-panel,.results{margin-top:60px}.upload-panel{border-top:1px solid var(--line);padding-top:33px}.drop{min-height:165px;border:1px dashed #667b92;border-radius:10px;background:#ffffff08;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;cursor:pointer;transition:.2s}.drop:hover,.drop.drag{background:#9fc5ff17;border-color:var(--accent)}.drop input{position:absolute;width:1px;height:1px;opacity:0}.upload-icon{font-size:31px;color:var(--accent)}.drop strong{font-size:15px;margin-top:4px}.drop small{font-size:12px;color:var(--muted);margin-top:10px}.actions{display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:12px;margin-top:16px}.actions button,.save{border:0;border-radius:7px;background:var(--accent);color:#142235;font-weight:800;padding:12px 18px}.actions button:disabled,.save:disabled{opacity:.55;cursor:wait}#feedback{font-size:13px;line-height:1.8;margin-top:12px;color:#f8d1a8}#feedback:empty{display:none}.count{font-size:13px;background:#34465f;color:var(--accent);border-radius:100px;padding:4px 9px}.documents{display:grid;gap:11px}.document-card{border:1px solid var(--line);background:#1d3142;border-radius:10px;padding:20px}.document-heading{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.pdf-mark{font-size:10px;font-weight:900;background:#9fc5ff24;color:var(--accent);border-radius:6px;width:44px;height:49px;display:grid;place-items:center}.document-meta{flex:1;min-width:190px}.document-meta h3{font-size:15px;overflow-wrap:anywhere;margin:0 0 5px}.document-meta p{font-size:11px;color:var(--muted);margin:0}.pdf-link,.review-btn,.missing-pdf{font-size:12px;white-space:nowrap}.pdf-link{color:var(--accent)}.review-btn{border:1px solid #697b91;border-radius:7px;background:transparent;color:#e7eef8;padding:8px 11px}.missing-pdf{color:#bcae9c}.badges{display:flex;gap:7px;flex-wrap:wrap;margin-top:17px}.badge{border-left:3px solid var(--badge-color);background:#ffffff12;padding:7px 10px;border-radius:5px;font-size:12px}.badge:hover{background:#ffffff24}.empty-tag{font-size:12px;color:#efcb9b}.details{display:none;border-top:1px solid var(--line);margin-top:17px}.document-card.open .details{display:block}.evidence{padding:16px 0;border-bottom:1px solid var(--line);font-size:13px;line-height:1.7}.evidence:last-child{border:0}.evidence-title{font-weight:800;color:var(--accent)}.evidence-title span{float:right;color:var(--muted);font-weight:400}.evidence p{margin:7px 0}.evidence blockquote{margin:8px 0 0;background:#ffffff0a;border-left:3px solid var(--accent);padding:10px 12px}.edit{border-top:1px solid var(--line);padding-top:17px;margin-top:15px}.edit p{color:var(--muted);font-size:12px}.goal-checks{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:14px 0}.goal-checks label{font-size:12px;border:1px solid var(--line);border-radius:5px;padding:7px}.goal-checks input{accent-color:#9fc5ff}.no-results{text-align:center;padding:50px;border:1px dashed var(--line);border-radius:10px;color:var(--muted)}.no-results span{font-size:33px;color:var(--accent)}.no-results h3{color:var(--ink);font-size:17px}.no-results p{font-size:12px}.goal-hero{background:linear-gradient(115deg,color-mix(in srgb,var(--sdg-color),#111f2b 28%),#182b3b);border:1px solid #ffffff30;border-radius:12px;margin-top:35px;padding:30px 38px;overflow:hidden}.back{font-size:12px;color:#e3ecfb}.goal-hero-row{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-top:37px}.goal-hero h1{font-size:clamp(30px,4vw,48px);margin:0}.goal-hero h1 span{font-family:"Segoe UI Symbol",system-ui,sans-serif;margin-right:10px}.goal-total{text-align:center;min-width:80px}.goal-total strong{font-size:44px;display:block}.goal-hero .eyebrow{color:#e4ecfb}footer{padding:65px 0 35px;text-align:center;color:#8e9fb3;font-size:11px}@media(max-width:1030px){.sdg-grid{grid-template-columns:repeat(4,1fr)}.goal-checks{grid-template-columns:repeat(3,1fr)}}@media(max-width:670px){.shell{padding:0 16px}.topbar{height:64px}.topbar > nav{gap:10px;font-size:11px}.intro{padding:35px 0 24px;display:block}.stats{margin-top:20px}.sdg-grid{grid-template-columns:repeat(2,1fr);gap:9px}.sdg-card{height:190px;padding:13px}.card-icon{font-size:37px;margin:5px 0 13px}.section-head>p{display:none}.goal-checks{grid-template-columns:repeat(2,1fr)}.goal-hero{padding:23px}.goal-hero-row{margin-top:25px}.pdf-link{margin-left:56px}}
/* In-page PDF preview */
.year-switch{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin:23px 0 0;color:var(--muted);font-size:12px}.year-switch span{margin-right:7px;font-weight:700}.year-switch a{border:1px solid var(--line);border-radius:8px;padding:9px 17px;font-size:14px;font-weight:800;color:var(--ink);background:#ffffff0a}.year-switch a:hover,.year-switch a:focus-visible{border-color:var(--accent)}.year-switch a.active{background:var(--accent);color:#142235;border-color:var(--accent)}.year-switch+.intro{padding-top:34px}.year-switch+.goal-hero{margin-top:23px}
.pdf-link,.pdf-page{background:none;border:0;color:var(--accent);padding:0;font-size:12px;white-space:nowrap}.pdf-link:hover,.pdf-page:hover{text-decoration:underline}.pdf-page{font-weight:600}.pdf-opened{overflow:hidden}.pdf-overlay[hidden]{display:none!important}.pdf-overlay{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;background:#081421e8;padding:16px}.pdf-dialog{display:flex;flex-direction:column;width:min(1200px,100%);height:min(94vh,1000px);background:#f4f6fa;color:#1b2d3a;border-radius:12px;overflow:hidden;box-shadow:0 24px 80px #0009}.pdf-toolbar{display:flex;align-items:center;gap:18px;min-height:53px;padding:10px 15px;background:#e8edf5}.pdf-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}.pdf-external{color:#2f5f91;font-size:12px;font-weight:700;white-space:nowrap}.pdf-close{border:0;background:#d6dfeb;border-radius:6px;width:30px;height:30px;font-size:15px}.pdf-frame{flex:1;width:100%;border:0;background:#fff}.pdf-help{font-size:11px;color:#647489;text-align:center;margin:0;padding:7px;background:#e8edf5}@media(max-width:670px){.pdf-overlay{padding:4px}.pdf-dialog{height:98vh}.pdf-toolbar{gap:8px}.pdf-title{font-size:12px}.pdf-external{font-size:11px}}
.year-switch{justify-content:center}.page-switch{display:flex;justify-content:center;gap:5px;flex-wrap:wrap;max-width:700px;margin:18px auto;padding:5px;border:1px solid var(--line);border-radius:10px}.page-switch a{flex:1;text-align:center;padding:10px;border-radius:6px;min-width:120px;font-size:12px}.page-switch a.active,.language-switch a.active{background:var(--accent);color:#142235}.language-switch{display:flex;gap:4px;border:1px solid var(--line);border-radius:8px;padding:3px;white-space:nowrap}.language-switch a{padding:6px;border-radius:5px;font-size:12px}.topbar{gap:12px}.topbar > nav{margin-left:auto}.the-match-list{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:14px;border-top:1px solid var(--line);padding-top:12px;font-size:12px}.the-match-list strong{color:var(--accent)}.the-match-list a{border:1px solid #8aa2c2;border-radius:6px;padding:7px}.document-card:target{outline:2px solid var(--accent);scroll-margin-top:20px}@media(max-width:670px){.topbar{height:auto;min-height:64px;flex-wrap:wrap;padding:12px 0}.topbar > nav{order:3;flex-basis:100%;justify-content:center;margin:0}.language-switch{margin-left:auto}.page-switch{display:grid;grid-template-columns:repeat(2,1fr)}}
.nstc-section{margin:65px 0 45px;border-top:1px solid var(--line);padding-top:30px}.nstc-note{color:var(--muted);font-size:12px;line-height:1.7}.nstc-card .pdf-mark{width:54px;flex:none;font-size:9px}.nstc-researchers{font-size:11px;color:var(--muted);line-height:1.6;margin:12px 0 0}.nstc-editor{border-top:1px solid var(--line);padding-top:13px;margin-top:16px}.nstc-editor[hidden]{display:none}.nstc-editor p{font-size:12px;color:var(--muted)}.nstc-feedback{margin-left:12px;color:#f8d1a8}
.home-view-switch{display:flex;justify-content:center;gap:8px;margin:18px auto 0;padding:5px;width:max-content;max-width:100%;border:1px solid #5f718a;border-radius:12px;background:#ffffff0a}.home-view-switch a{display:block;padding:10px 18px;border-radius:8px;color:#dce8f6;text-decoration:none;font-size:13px;font-weight:700}.home-view-switch a.active{background:#c9dcff;color:#142235}.home-view-switch a:hover,.home-view-switch a:focus-visible{outline:2px solid #c9dcff;outline-offset:2px}@media(max-width:480px){.home-view-switch a{padding:9px 12px;font-size:12px}}
.home-toolbar{display:flex;align-items:center;justify-content:center;gap:12px;margin:22px 0 0}.home-toolbar .year-switch{margin:0;flex:none;flex-wrap:nowrap;white-space:nowrap;gap:6px}.home-toolbar .year-switch span{margin-right:3px}.home-toolbar .year-switch a{padding:9px 12px}.home-toolbar .home-view-switch{flex:none;margin:0}.home-toolbar .home-view-switch a{padding:10px 12px;white-space:nowrap}.home-toolbar .page-switch{display:flex;flex:1;min-width:0;max-width:none;margin:0;flex-wrap:nowrap}.home-toolbar .page-switch a{min-width:0;padding:10px 7px;white-space:nowrap}@media(max-width:1050px){.home-toolbar{flex-wrap:wrap}.home-toolbar .page-switch{flex:0 1 700px;width:100%;margin:0 auto}}@media(max-width:600px){.home-toolbar{flex-direction:row;flex-wrap:wrap;gap:6px;margin-top:10px}.home-toolbar .year-switch{gap:3px}.home-toolbar .year-switch span{display:none}.home-toolbar .year-switch a{padding:6px 5px;font-size:11px}.home-toolbar .home-view-switch{gap:3px;padding:3px;border-radius:8px;width:auto}.home-toolbar .home-view-switch a{padding:6px 5px;font-size:11px;border-radius:5px}.home-toolbar .page-switch{display:none}}
.topbar > nav{display:none}@media(max-width:600px){.topbar > nav{display:flex;gap:12px;flex-wrap:wrap}.page-switch{display:none}}
.topbar:has(.home-toolbar){gap:8px}.topbar:has(.home-toolbar) .brand{flex:0 1 300px;min-width:0;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar:has(.home-toolbar) .language-switch{flex:none;margin-left:0}.topbar:has(.home-toolbar) .home-toolbar{flex:1;min-width:0;margin:0;gap:6px;flex-wrap:nowrap}.topbar:has(.home-toolbar) .year-switch{gap:3px;font-size:11px}.topbar:has(.home-toolbar) .year-switch span{margin-right:2px}.topbar:has(.home-toolbar) .year-switch a{padding:7px 6px;font-size:12px}.topbar:has(.home-toolbar) .home-view-switch{gap:3px;padding:3px;border-radius:8px}.topbar:has(.home-toolbar) .home-view-switch a{padding:7px 6px;font-size:11px}.topbar:has(.home-toolbar) .page-switch{gap:2px;padding:3px;border-radius:8px}.topbar:has(.home-toolbar) .page-switch a{padding:8px 4px;font-size:11px}
.topbar:has(.home-toolbar) .brand{order:1}.topbar:has(.home-toolbar) .home-toolbar{order:2}.topbar:has(.home-toolbar) .language-switch{order:3}
@media(max-width:1050px){.topbar:has(.home-toolbar){height:auto;flex-wrap:wrap;padding:10px 0}.topbar:has(.home-toolbar) .home-toolbar{order:3;flex:0 0 100%;margin:8px 0 0;flex-wrap:wrap}.topbar:has(.home-toolbar)>.language-switch{margin-left:auto}}@media(max-width:600px){.topbar:has(.home-toolbar) .brand{flex:0 1 70%;font-size:13px}.topbar:has(.home-toolbar) .home-toolbar{gap:6px;margin:6px 0 0;flex:0 0 100%}.topbar:has(.home-toolbar)>.topbar-mobile-nav{order:4}.topbar:has(.home-toolbar) .page-switch{display:none}}
.portal-page{min-height:100dvh;background:radial-gradient(circle at 18% 28%,rgba(159,197,255,.14),transparent 32%),radial-gradient(circle at 84% 68%,rgba(78,143,189,.14),transparent 30%),#111f2b}.portal-shell{min-height:100dvh;display:flex;flex-direction:column}.portal-topbar{flex:none}.portal-hero{padding:72px 0 30px;text-align:center}.portal-hero h1{font-size:clamp(34px,5.6vw,72px);line-height:1.05;margin:0;letter-spacing:-.04em}.portal-hero p:not(.eyebrow){max-width:620px;margin:18px auto 0;color:#c0cbda;line-height:1.8}.portal-grid{display:grid;grid-template-columns:repeat(2,minmax(260px,520px));justify-content:center;gap:18px;margin:auto 0 78px}.portal-card{position:relative;min-height:330px;display:flex;flex-direction:column;justify-content:flex-end;gap:18px;padding:30px;border:1px solid rgba(255,255,255,.16);border-radius:14px;overflow:hidden;background:#ffffff09;box-shadow:0 24px 70px rgba(0,0,0,.22);transition:transform .2s,border-color .2s,background .2s}.portal-card[hidden]{display:none}.portal-card:before{content:"";position:absolute;inset:auto -60px -80px auto;width:270px;height:270px;border-radius:50%;opacity:.72}.portal-card-sdg:before{background:conic-gradient(#e5243b,#dda63a,#4c9f38,#0a97d9,#19486a,#e5243b)}.portal-card-esg:before{background:conic-gradient(#4fb477 0 120deg,#45a6d9 120deg 240deg,#d4a33f 240deg 360deg)}.portal-card-indicators:before{background:radial-gradient(circle,#9fc5ff 0 12%,transparent 13%),conic-gradient(#9fc5ff,#9fd3ff,#f4cd9d,#9fc5ff)}.portal-card:hover,.portal-card:focus-visible{transform:translateY(-4px);border-color:var(--accent);background:#ffffff12;outline:0}.portal-kicker{position:relative;z-index:1;color:#9fc5ff;font-size:13px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.portal-card strong{position:relative;z-index:1;font-size:clamp(27px,3.1vw,42px);line-height:1.08;max-width:560px}.portal-card small{position:relative;z-index:1;color:#d5dfed;line-height:1.65;font-size:14px;max-width:520px}.portal-action{position:relative;z-index:1;align-self:flex-start;background:#9fc5ff;color:#142235;border-radius:8px;padding:12px 16px;font-weight:900;font-size:13px}@media(max-width:760px){.portal-grid{grid-template-columns:1fr;margin-bottom:44px}.portal-card{min-height:260px}.portal-hero{padding-top:42px}}
.the-result-tools{display:flex;align-items:center;flex-wrap:wrap;gap:7px;margin-top:9px;font-size:11px}.the-result-tools>span{color:var(--muted);font-weight:800}.the-result-tools button{border:1px solid #60758e;background:#ffffff0b;color:#dbe7f6;border-radius:6px;padding:6px 9px;font-size:11px}.the-result-tools button:hover,.the-result-tools button:focus-visible{border-color:var(--accent);outline:0}.the-result-tools.marked .the-mark{background:#c9dcff;color:#142235;border-color:#c9dcff;font-weight:800}.the-result-tools button:disabled{opacity:.55;cursor:wait}
.the-mark-indicator{display:inline-block;margin:5px 0;padding:4px 8px;border-radius:5px;background:#c9dcff;color:#142235;font-size:11px;font-weight:800}
.the-match-item{display:inline-flex;align-items:center;flex-wrap:wrap;gap:4px}.the-match-item button{border:1px solid #60758e;border-radius:6px;background:#ffffff0b;color:#dbe7f6;padding:7px;font-size:11px}.the-match-item button:hover,.the-match-item button:focus-visible{border-color:var(--accent);outline:0}

.indicator-links {margin: .6rem 0; padding: .75rem 1rem; border: 1px solid #52716d; border-radius: .6rem; display: flex; flex-wrap: wrap; gap: .45rem .7rem; align-items: center}
.indicator-links > strong {width: 100%; font-size: .9rem}
.indicator-link {display: inline-flex; flex-wrap: wrap; gap: .35rem; align-items: center; padding: .3rem .5rem; background: #203a3d; border-radius: .35rem}
.indicator-link a {color: #c5ddff; text-decoration: underline; text-underline-offset: .2em}
.indicator-edit, .indicator-link button {cursor: pointer; border: 1px solid #748aa5; color: inherit; background: transparent; border-radius: .3rem; padding: .3rem .5rem}
.indicator-empty {opacity: .76; font-size: .9rem}
.indicator-options {max-height: 50vh; overflow: auto; display: grid; gap: .35rem; margin: 1rem 0}
.indicator-options label {display: flex; gap: .5rem; align-items: baseline; padding: .35rem; cursor: pointer}




