:root{--bg:#f6f7f9;--surface:#fff;--surface-2:#f1f4f8;--text:#1c2330;--muted:#5f6b7c;--border:#dfe3ea;--accent:#0a5cad;--accent-soft:#e6f0fa;--master:#1f77d0;--inService:#1b8577;--phd:#c8541f;--on-color:#fff;--shadow:#141e3224;--radius:12px;--header-h:56px;--group-row-h:36px;color-scheme:light}:root[data-theme=dark]{--bg:#12161d;--surface:#1a2029;--surface-2:#222a35;--text:#e6e9ee;--muted:#9aa5b5;--border:#2c3542;--accent:#6cb0f5;--accent-soft:#1d2c3f;--master:#5aa9f0;--inService:#5fc9ba;--phd:#f0935f;--on-color:#10151c;--shadow:#00000073;color-scheme:dark}*,:before,:after{box-sizing:border-box}[hidden]{display:none!important}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{background:var(--bg);color:var(--text);-webkit-tap-highlight-color:transparent;margin:0;font-family:system-ui,-apple-system,Segoe UI,Noto Sans TC,PingFang TC,Microsoft JhengHei,sans-serif;line-height:1.65}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}h1,h2,h3{text-wrap:balance;line-height:1.3}h1{margin:0 0 8px;font-size:clamp(1.6rem,1.2rem + 2vw,2rem)}h2{margin:2.5rem 0 .75rem;font-size:clamp(1.2rem,1.1rem + .6vw,1.45rem)}[id]{scroll-margin-top:calc(var(--header-h) + 12px)}.container{max-width:1040px;padding-left:max(16px, env(safe-area-inset-left));padding-right:max(16px, env(safe-area-inset-right));margin:0 auto}.muted{color:var(--muted)}.faint{color:var(--muted);opacity:.6}.sub{color:var(--muted);font-size:.85rem}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.site-header{background:var(--surface);border-bottom:1px solid var(--border)}.site-header .container{min-height:var(--header-h);align-items:center;gap:0 16px;display:flex}.brand{color:var(--text);white-space:nowrap;margin-right:auto;padding:8px 0;font-size:1.15rem;font-weight:700}.brand:hover{text-decoration:none}.site-nav{gap:4px;display:flex}.site-nav a{color:var(--muted);border-radius:8px;padding:6px 12px;font-weight:500}.site-nav a:hover{background:var(--surface-2);color:var(--text);text-decoration:none}.site-nav a[aria-current=page]{background:var(--accent-soft);color:var(--accent)}.header-actions{align-items:center;gap:8px;display:flex}.icon-button,.search-open{border:1px solid var(--border);min-width:36px;height:36px;color:var(--text);font:inherit;cursor:pointer;background:0 0;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:0;display:inline-flex}.icon-button:hover,.search-open:hover{background:var(--surface-2)}.icon-button svg,.search-open svg{flex:none;width:18px;height:18px}.search-open{background:var(--bg);color:var(--muted);padding:0 10px;font-size:.9rem}kbd{border:1px solid var(--border);background:var(--surface);color:var(--muted);font:inherit;border-radius:5px;padding:0 6px;font-size:.78rem;line-height:1.5}.theme-toggle .icon-sun,:root[data-theme=dark] .theme-toggle .icon-moon{display:none}:root[data-theme=dark] .theme-toggle .icon-sun{display:block}main{min-height:70vh;padding-top:28px}.site-footer{padding:24px 0 max(24px, env(safe-area-inset-bottom));border-top:1px solid var(--border);color:var(--muted);margin-top:64px;font-size:.875rem}.site-footer nav{flex-wrap:wrap;gap:4px 20px;margin-bottom:8px;display:flex}.site-footer p{margin:0}.to-top{right:max(16px, env(safe-area-inset-right));bottom:max(16px, env(safe-area-inset-bottom));z-index:25;border:1px solid var(--border);background:var(--surface);width:44px;height:44px;color:var(--text);box-shadow:0 4px 14px var(--shadow);cursor:pointer;opacity:0;visibility:hidden;border-radius:50%;place-items:center;padding:0;transition:opacity .2s,transform .2s,visibility .2s;display:grid;position:fixed;transform:translateY(8px)}.to-top.show{opacity:1;visibility:visible;transform:none}.to-top svg{width:20px;height:20px}.hero{text-align:center;padding:36px 0 8px}.hero h1{font-size:clamp(2rem,1.4rem + 3vw,2.6rem)}.hero-links{flex-wrap:wrap;justify-content:center;gap:8px;margin:20px 0 0;display:flex}.search{text-align:left;max-width:560px;margin:24px auto 0;position:relative}.search input{width:100%;font:inherit;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);appearance:none;padding:13px 16px;font-size:max(16px,1.05rem)}.search input::placeholder{color:var(--muted);opacity:.8}.search input:focus{outline:2px solid var(--accent);outline-offset:1px}.search.has-icon input{padding-left:46px}.search-icon{width:20px;height:20px;color:var(--muted);pointer-events:none;position:absolute;top:15px;left:16px}.search-results{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin:6px 0 0;padding:0;list-style:none;overflow:hidden}.search-results:empty{display:none}.search-results a{color:var(--text);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:0 12px;padding:10px 16px;display:flex}.search-results a:hover,.search-results a:focus,.search-results a.active{background:var(--accent-soft);text-decoration:none}.search-results .name{font-weight:600}.search-results .match{color:var(--accent);margin-left:8px;font-size:.85rem;font-weight:400}.search-results .meta{color:var(--muted);text-align:right;margin-left:auto;font-size:.85rem}.search-results .empty{color:var(--muted);padding:10px 16px}.search.inline{max-width:420px;margin:16px 0}.search.inline input{padding:10px 14px;font-size:16px}.filter-count{color:var(--muted);margin:-8px 0 12px;font-size:.85rem}.search-dialog{border:1px solid var(--border);background:var(--surface);width:min(600px,100vw - 24px);max-height:none;color:var(--text);box-shadow:0 24px 64px var(--shadow);border-radius:16px;margin:10vh auto auto;padding:0}.search-dialog::backdrop{background:#0a0e1480}.search-dialog-body{padding:12px}.search-dialog .search{max-width:none;margin:0}.search-dialog .search input{background:var(--bg)}.search-dialog .search-results{border:none;border-radius:8px;max-height:min(60vh,60dvh);overflow-y:auto}.search-dialog .hint{color:var(--muted);margin:10px 4px 2px;font-size:.8rem}.chips{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.chip{border:1px solid var(--border);background:var(--surface);min-height:32px;color:var(--text);font:inherit;cursor:pointer;border-radius:999px;align-items:center;padding:3px 12px;font-size:.88rem;line-height:1.4;display:inline-flex}a.chip,button.chip{color:var(--accent)}a.chip:hover,button.chip:hover{background:var(--accent-soft);border-color:var(--accent);text-decoration:none}span.chip{cursor:default;color:var(--muted)}.suggest{max-width:640px;color:var(--muted);flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;margin:14px auto 0;font-size:.88rem;display:flex}.tiles{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin:24px 0;display:grid}.tile{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px}.tile .label{color:var(--muted);font-size:.85rem}.tile .value{font-variant-numeric:tabular-nums;font-size:1.7rem;font-weight:700;line-height:1.3}.tile .value small{color:var(--muted);font-size:.9rem;font-weight:400}.tile .note{color:var(--muted);font-size:.8rem;line-height:1.5}.tile.master{border-top:3px solid var(--master)}.tile.inService{border-top:3px solid var(--inService)}.tile.phd{border-top:3px solid var(--phd)}.tile.master .value{color:var(--master)}.tile.inService .value{color:var(--inService)}.tile.phd .value{color:var(--phd)}.notice{background:var(--accent-soft);border-radius:var(--radius);padding:12px 16px;font-size:.92rem}.prose>p,.prose>ul,.prose>section>p{max-width:46em}.dept h3{margin:20px 0 6px;font-size:1rem}.dept ul{flex-wrap:wrap;gap:2px 18px;margin:0;padding:0;list-style:none;display:flex}.dept li a{padding:3px 0;display:inline-block}.page-head{margin-bottom:20px}.page-head h1{margin:0}.page-head .muted{margin:4px 0 12px}.breadcrumb{color:var(--muted);margin:0 0 6px;font-size:.9rem}.chart-box{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);height:360px;padding:12px}.chart-box.small{height:250px}.cloud{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-wrap:wrap;align-items:baseline;gap:6px 14px;padding:16px;line-height:1.4;display:flex}.cloud span{font-size:calc(.85rem + var(--w,0) * 1.35rem);overflow-wrap:anywhere}.table-wrap{-webkit-overflow-scrolling:touch;border:1px solid var(--border);border-radius:var(--radius);background:linear-gradient(270deg, var(--surface) 40%, transparent) right / 36px 100% no-repeat local, linear-gradient(270deg, var(--shadow), transparent) right / 14px 100% no-repeat scroll, var(--surface);overflow-x:auto}table{border-collapse:separate;border-spacing:0;width:100%;font-size:.92rem}th,td{text-align:left;vertical-align:top;border-bottom:1px solid var(--border);padding:10px 12px}tbody tr:last-child td{border-bottom:none}th{white-space:nowrap;color:var(--muted);vertical-align:bottom;font-size:.85rem;font-weight:600}td.num,th.num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}td.nowrap{white-space:nowrap}.thesis-title{overflow-wrap:anywhere;font-weight:600}.thesis-sub{color:var(--muted);overflow-wrap:anywhere;font-size:.85rem}.badge{white-space:nowrap;color:var(--on-color);background:var(--master);border-radius:999px;padding:0 8px;font-size:.8rem;font-weight:600;display:inline-block}.badge.inService{background:var(--inService)}.badge.phd{background:var(--phd)}.dot{background:var(--master);border-radius:50%;width:8px;height:8px;margin-right:6px;display:inline-block}.dot.inService{background:var(--inService)}.dot.phd{background:var(--phd)}.faq h3{margin-bottom:4px}.faq p{margin-top:4px}table.rank tbody{counter-reset:rank}table.rank tbody tr:not([hidden]){counter-increment:rank}table.rank.only-recent tbody tr[data-recent="0"]{counter-increment:none;display:none}.rank-number:before{content:counter(rank);color:var(--muted)}table.rank th,table.rank td{padding-left:9px;padding-right:9px}table.rank .col-rank{width:1%}table.rank td.col-name{font-weight:500}table.rank thead tr:first-child th{height:var(--group-row-h);padding-top:6px;padding-bottom:6px}table.rank thead tr:first-child th[rowspan]{height:auto}th.group{text-align:center;color:var(--text);border-bottom-color:#0000}.g-start{border-left:1px solid var(--border)}th[data-sort]{cursor:pointer;user-select:none}th[data-sort]:hover{color:var(--accent);background:var(--accent-soft)}th[data-sort]:after{content:"";vertical-align:-.12em;opacity:.5;--sort-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 16'%3E%3Cpath d='M5 1 9.5 6.5h-9z'/%3E%3Cpath d='M5 15 .5 9.5h9z'/%3E%3C/svg%3E");width:.6em;height:.95em;-webkit-mask:var(--sort-icon) center / contain no-repeat;mask:var(--sort-icon) center / contain no-repeat;background:currentColor;margin-left:.35em;display:inline-block}th[data-sort]:hover:after{opacity:.9}th[aria-sort]{color:var(--accent)}th[aria-sort]:after{opacity:1}th[aria-sort=ascending]:after{--sort-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 16'%3E%3Cpath d='M5 3.5 9.5 11h-9z'/%3E%3C/svg%3E")}th[aria-sort=descending]:after{--sort-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 16'%3E%3Cpath d='M5 12.5.5 5h9z'/%3E%3C/svg%3E")}.controls{flex-wrap:wrap;align-items:center;gap:8px 24px;margin:4px 0 12px;display:flex}.toggle{cursor:pointer;align-items:center;gap:8px;min-height:36px;font-size:.92rem;display:inline-flex}.toggle input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent);flex:none;margin:0}.controls select{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:5px 8px;font-size:16px}.filters{flex-wrap:wrap;align-items:stretch;gap:8px;margin:12px 0;display:flex}.filters .search.inline{flex:260px;margin:0}.filters select{min-width:0;max-width:100%;min-height:44px;font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex:0 auto;padding:0 10px;font-size:16px}.filters+.filter-count{margin-top:-4px}.mobile-only{display:none}.cloud a{font-size:calc(.85rem + var(--w,0) * 1.35rem);overflow-wrap:anywhere;border-radius:4px}.cloud a:hover{background:var(--accent-soft);text-decoration:none}.cloud span{color:var(--muted)}@media (hover:hover){tbody tr:hover td{background:var(--surface-2)}}@media (width>=1080px){.table-wrap{background:var(--surface);overflow:clip}thead th{top:var(--header-h);z-index:2;background:var(--surface);position:sticky}table.rank thead tr:nth-child(2) th{top:calc(var(--header-h) + var(--group-row-h))}}@media (width<=1079px){table.rank .col-name{z-index:1;background:var(--surface);box-shadow:1px 0 0 var(--border);position:sticky;left:0}}@media (width>=641px){.site-header{z-index:30;position:sticky;top:0}}@media (width<=640px){:root{--header-h:0px}main{padding-top:20px}.site-header .container{flex-wrap:wrap}.brand{padding:12px 0}.site-nav{flex-basis:100%;order:3;gap:0;margin:0 -8px}.site-nav a{text-align:center;border-bottom:2px solid #0000;border-radius:0;flex:1;padding:9px 0 7px}.site-nav a[aria-current=page]{border-bottom-color:var(--accent);background:0 0}.icon-button,.search-open{width:40px;height:40px;color:var(--text);background:0 0;padding:0}.search-open span,.search-open kbd{display:none}.search-dialog{margin-top:12px}.search-dialog .hint{display:none}.hero{padding:20px 0 0}.tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:20px 0}.tile{padding:12px}.tile .value{font-size:1.45rem}.tile:last-child:nth-child(odd){grid-column:1/-1}.chart-box{height:300px;padding:8px 6px}.chart-box.small{height:230px}.cloud{gap:4px 12px;padding:12px}.cloud span,.cloud a{font-size:calc(.82rem + var(--w,0) * .68rem)}.mobile-only{display:block}.filters select{flex:45%}.chips.scroll{scrollbar-width:none;flex-wrap:nowrap;margin:0 -16px;padding:2px 16px 6px;overflow-x:auto}.chips.scroll::-webkit-scrollbar{display:none}.chips.scroll .chip{flex:none}.dept ul{gap:0 18px}.dept li a{padding:7px 0}.controls{flex-direction:column;align-items:flex-start}.search.inline{max-width:none}th,td{padding:9px 10px}table.rank .col-rank{display:none}table.rank .col-name{padding-left:2.7em;position:sticky}table.rank td.col-name:not(.nowrap){white-space:normal;min-width:9.5em;max-width:11.5em}table.rank td.col-name:before{content:counter(rank);text-align:right;width:1.9em;color:var(--muted);font-variant-numeric:tabular-nums;font-weight:400;position:absolute;left:6px}table.cards,table.cards tbody{display:block}table.cards thead{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}table.cards tr{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:6px 10px;padding:14px 12px;display:flex}table.cards tr:last-child{border-bottom:none}table.cards td{white-space:normal;text-align:left;color:var(--muted);border:0;padding:0;font-size:.85rem;display:block}table.cards td[data-label]:before{content:attr(data-label) " "}table.cards .c-program{order:1}table.cards .c-year{order:2}table.cards .c-year:after{content:" 學年度"}table.cards .c-duration{color:var(--text);order:3;margin-left:auto;font-size:1rem;font-weight:700}table.cards .c-main{color:var(--text);flex-basis:100%;order:4;font-size:.95rem}table.cards .c-entry{order:5}table.cards .c-submit{order:6}table.cards .keywords{-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}.brand-group{align-items:center;gap:10px;margin-right:auto;display:flex}.brand-group .brand{margin-right:0}.school-menu{position:relative}.school-menu summary{border:1px solid var(--border);background:var(--accent-soft);height:32px;color:var(--accent);white-space:nowrap;cursor:pointer;user-select:none;border-radius:999px;align-items:center;gap:6px;padding:0 10px;font-size:.9rem;font-weight:600;list-style:none;display:inline-flex}.school-menu summary::-webkit-details-marker{display:none}.school-menu summary:after{content:"";border-bottom:2px solid;border-right:2px solid;width:.5em;height:.5em;margin-top:-.25em;transform:rotate(45deg)}.school-menu[open] summary:after{margin-top:.2em;transform:rotate(-135deg)}.school-menu ul{z-index:40;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);min-width:12.5em;box-shadow:0 12px 32px var(--shadow);margin:0;padding:6px;list-style:none;position:absolute;top:calc(100% + 6px);left:0}.school-menu li a,.school-menu li .disabled{color:var(--text);white-space:nowrap;border-radius:8px;justify-content:space-between;align-items:baseline;gap:16px;padding:7px 10px;display:flex}.school-menu li a:hover{background:var(--surface-2);text-decoration:none}.school-menu li a[aria-current]{background:var(--accent-soft);color:var(--accent);font-weight:600}.school-menu li .muted,.school-menu li .disabled span{font-size:.8rem}.school-menu li .disabled{color:var(--muted);opacity:.7}.school-menu li.all{border-top:1px solid var(--border);margin-top:4px;padding-top:4px}.school-menu li.all a{color:var(--accent)}.school-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;margin:0 0 8px;padding:0;list-style:none;display:grid}.school-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);height:100%;color:var(--text);flex-direction:column;gap:2px;padding:14px 16px;display:flex;position:relative}a.school-card:hover{border-color:var(--accent);background:var(--accent-soft);text-decoration:none}.school-card strong{font-size:1.3rem;line-height:1.3}.school-card .abbr{color:var(--muted);letter-spacing:.04em;font-size:.8rem;font-weight:600;position:absolute;top:14px;right:16px}.school-card .facts{color:var(--muted);margin-top:8px;font-size:.82rem;line-height:1.5}a.school-card .facts{color:var(--text)}.school-card.pending{color:var(--muted);background:0 0;border-style:dashed}@media (width<=640px){.brand-group{gap:8px}.school-menu summary{height:34px}.school-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.school-card{padding:12px}.school-card strong{font-size:1.15rem}.school-card .sub{display:none}.school-card .abbr{top:12px;right:12px}}
