@font-face{font-family:Noto Sans TC;src:url(/fonts/noto-sans-tc-400.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Noto Sans TC;src:url(/fonts/noto-sans-tc-650.woff2)format("woff2");font-weight:650;font-style:normal;font-display:swap}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0c1420;--text:#f5f7fb;--muted:#b5c0d0;--accent:#70b5f5;--font:"Noto Sans TC", sans-serif}*{box-sizing:border-box}html{max-width:100%;font-size:100%;overflow-x:clip}body{background-color:var(--bg);max-width:100%;color:var(--text);font-family:var(--font);font-synthesis:none;background-image:radial-gradient(47% 52% at 8% 17%,#2d62a342,#0000 75%),radial-gradient(50% 38% at 76% 0,#2970c23d,#0000 78%),radial-gradient(34% 46% at 100% 92%,#2b508321,#0000 78%);background-attachment:fixed;margin:0;font-size:.875rem;font-weight:400;line-height:1.5;overflow-x:clip}button,input,select{font:inherit;color:inherit}button{cursor:pointer}button:disabled{opacity:.45;cursor:default}:focus-visible{outline-offset:3px;outline:2px solid #77b9ff}[hidden]{display:none!important}.skip{z-index:40;min-height:44px;color:var(--text);background:#202c3c;border-radius:12px;align-items:center;padding:0 16px;text-decoration:none;display:inline-flex;position:absolute;top:8px;left:16px;transform:translateY(-150%)}.skip:focus{transform:none}.app{grid-template-columns:220px minmax(350px,1fr) minmax(320px,410px);gap:16px;max-width:1580px;min-height:100vh;margin:auto;padding:16px;display:grid}.sidebar{-webkit-backdrop-filter:blur(24px)saturate(120%);background:linear-gradient(145deg,#25395296,#121c2cad);border:1px solid #d5e8ff21;border-radius:19px;flex-direction:column;align-self:start;min-width:0;height:calc(100vh - 32px);padding:22px 14px;display:flex;position:sticky;top:16px;overflow:auto;box-shadow:inset 0 1px #ffffff17,0 12px 38px #00000021}.brand{letter-spacing:.02em;align-items:center;gap:11px;padding:9px 8px 24px;font-size:1.125rem;font-weight:650;display:flex}.logo{color:#fff;background:linear-gradient(140deg,#7db7ff,#665bd0 65%,#ab78d9);border-radius:12px;place-items:center;width:37px;height:37px;font-size:.95rem;font-weight:650;display:grid;box-shadow:0 7px 18px #0003}.nav-item{color:#cbd5e3;text-align:left;background:0 0;border:0;border-radius:11px;align-items:center;gap:12px;width:100%;min-height:44px;padding:12px 13px;display:flex}.nav-item.active{color:#fff;background:#5586c03d}.nav-item:hover{color:#fff;background:#5b89bd33}.nav-item .count{color:#bdc9dc;background:#7d98b82e;border-radius:20px;margin-left:auto;padding:2px 7px;font-size:.75rem}.side-label{color:#9eacc0;letter-spacing:.06em;margin:24px 12px 8px;font-size:.75rem}.side-bottom{color:#9eacc0;border-top:1px solid #39485d;margin-top:auto;padding:18px 12px 3px;font-size:.75rem;line-height:1.8}.main{min-width:0;padding-top:6px}.hero{-webkit-backdrop-filter:blur(18px);background:radial-gradient(67% 110% at 95% 0,#3a75b940,#0000 80%),linear-gradient(135deg,#283d59a3,#141f30a1);border:1px solid #cce2ff21;border-radius:22px;margin-bottom:16px;padding:23px 24px 21px;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffff1a}.hero h1{letter-spacing:.04em;margin:0 0 7px;font-size:1.6875rem;font-weight:650;line-height:1.2}.hero p{color:#c7d1e0;margin:0}.search-wrap{margin:0 0 12px;position:relative}.search-wrap input{color:#fff;-webkit-backdrop-filter:blur(14px);background:#43577340;border:1px solid #d2e6ff38;border-radius:14px;width:100%;height:49px;min-height:44px;padding:0 52px 0 43px;box-shadow:inset 0 1px #ffffff13}.search-wrap input::placeholder{color:#aab7c9;opacity:1}.search-icon{color:#c4d0df;pointer-events:none;position:absolute;top:12px;left:15px}.clear{color:#fff;background:#46556a;border:0;border-radius:9px;min-width:44px;min-height:44px;position:absolute;top:2px;right:4px}.filters{flex-wrap:wrap;gap:8px;max-width:100%;margin-bottom:12px;display:flex}.chip{color:#cbd6e4;background:#3c4c624d;border:1px solid #c3d9f524;border-radius:999px;min-height:44px;padding:9px 13px;box-shadow:inset 0 1px #ffffff0e}.chip.active{color:#fff;background:#3a79bd70;border-color:#74b8f98c;box-shadow:inset 0 1px #ffffff1a}.toolbar{justify-content:space-between;align-items:center;gap:10px;margin-bottom:11px;display:flex}.toolbar select{color:#fff;background:#36496061;border:1px solid #c0d5f326;border-radius:11px;min-height:44px;padding:10px}.meta{color:#aebcd0;font-size:.75rem}.cards{gap:9px;display:grid}.tool{text-align:left;width:100%;color:inherit;background:linear-gradient(135deg,#2a384bf0,#1f2b3bf2);border:1px solid #cee2ff21;border-radius:14px;gap:12px;min-height:108px;padding:13px 14px;transition:border-color .16s ease-out,background .16s ease-out;display:flex;position:relative;box-shadow:inset 0 1px #ffffff0b}.tool:hover{border-color:#8eb6df66}.tool.selected{background:linear-gradient(130deg,#2d4158f2,#1f2d3ff2);border-color:#72abe24a;box-shadow:inset 0 1px #ffffff0e}.tool.selected:before{content:"";background:#73b9fa;border-radius:4px;width:2px;position:absolute;top:13px;bottom:13px;left:0}.tool-icon{color:#d5e2f2;background:#243044;border:1px solid #cee2ff29;border-radius:12px;flex:none;place-items:center;width:48px;height:48px;font-size:.75rem;font-weight:650;display:grid;overflow:hidden}.tool-icon img{object-fit:contain;background:#f7f8fa;width:100%;height:100%}.tool-info{flex:1;min-width:0}.tool h2{margin:0 0 3px;font-size:1rem;font-weight:650;line-height:1.3}.category{color:#b5c3d6;font-size:.75rem}.summary{color:#d5e0ec;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:6px 0;font-size:.8125rem;line-height:1.45;display:-webkit-box;overflow:hidden}.tool-foot{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.tag{color:#c8d5e4;background:#68809d3b;border-radius:99px;padding:3px 8px;font-size:.75rem}.date{color:#9fb0c5;margin-left:auto;font-size:.75rem}.empty{text-align:center;color:var(--muted);border:1px dashed #56657b;border-radius:16px;padding:40px 18px}.empty h2{margin:0 0 8px;font-size:1.25rem;font-weight:650}.detail{-webkit-backdrop-filter:blur(28px)saturate(115%);scrollbar-width:thin;background:linear-gradient(145deg,#23334987,#121d2e94);border:1px solid #cee4ff1f;border-radius:19px;min-width:0;height:calc(100vh - 32px);padding:20px;position:sticky;top:16px;overflow:auto;box-shadow:inset 0 1px #ffffff16,0 18px 50px #00000024}.detail-top{align-items:center;gap:14px;display:flex}.detail-top .tool-icon{width:58px;height:58px}.detail h2{margin:0 0 6px;font-size:1.3125rem;font-weight:650;line-height:1.25}.detail-desc{color:#d8e2ef;margin:17px 0;line-height:1.6}.detail-actions{flex-wrap:wrap;gap:9px;margin:14px 0 18px;display:flex}.action{color:#fff;background:#4c60793d;border:1px solid #c1d8f42e;border-radius:12px;justify-content:center;align-items:center;min-height:44px;padding:10px 14px;font-weight:650;text-decoration:none;display:inline-flex}.action.primary{background:#276fae;border-color:#498bc5}.tabs{border-bottom:1px solid #bcd1eb26;margin-bottom:12px;display:flex}.tab{color:#b9c6d7;background:0 0;border:0;border-bottom:2px solid #0000;flex:1;min-height:44px;padding:10px 5px}.tab.active{color:#fff;border-bottom-color:#49a8ff}.panel{background:0 0;border:0;border-bottom:1px solid #cde0f821;border-radius:0;margin:0 0 5px;padding:12px 2px 17px}.panel h3{margin:0 0 9px;font-size:.95rem;font-weight:650}.panel p,.panel li{color:#d0dbe8;line-height:1.65}.panel ul{margin:0;padding-left:20px}.panel small,.fine{color:#a9b8ca}.history-item+.history-item{margin-top:14px}.source-link{color:#8dc8ff;overflow-wrap:anywhere;align-items:center;max-width:100%;min-height:44px;display:inline-flex}.note{color:#d9e4f2;background:#4d607b24;border:1px solid #bcd2ef1f;border-radius:12px;margin-top:8px;padding:13px;line-height:1.6}.pill{background:#394a61;border-radius:20px;margin:4px 4px 0 0;padding:5px 9px;font-size:.75rem;display:inline-block}.mobile-back{color:#fff;background:#334459;border:0;border-radius:12px;align-items:center;gap:8px;min-height:44px;margin-bottom:18px;padding:11px 15px;display:none}.media-missing{color:#d9e4f2;background:#4d607b24;border:1px solid #bcd2ef1f;border-radius:12px;margin-top:8px;padding:12px 14px}.footer{color:#91a4bb;margin-top:22px;font-size:.75rem;line-height:1.6}.footer a{color:#8dc8ff;align-items:center;min-height:44px;padding:0 4px;display:inline-flex}.mobile-nav,.mobile-backdrop{display:none}@media (width<=1199px){.app{grid-template-columns:195px minmax(0,1fr)}.detail{z-index:11;max-width:680px;height:auto;margin:auto;display:none;position:fixed;inset:14px;box-shadow:0 0 0 100vmax #03070dba}.detail.drawer-open{display:block}.mobile-back{display:inline-flex}.mobile-backdrop.open{z-index:9;background:#02060eb8;display:block;position:fixed;inset:0}}@media (width<=767px),(height<=500px){.app{padding:10px 13px calc(92px + env(safe-area-inset-bottom));display:block}.sidebar{display:none}.main{padding:0}.hero{margin-bottom:13px;padding:17px}.hero h1{font-size:1.4375rem}.hero p{font-size:.75rem;line-height:1.45}.tool{gap:10px;min-height:108px;padding:12px}.tool-icon{width:48px;height:48px}.detail{padding:20px 17px calc(28px + env(safe-area-inset-bottom));border-radius:0;max-width:none;inset:0}.toolbar{align-items:flex-start}.meta{text-align:right;max-width:170px}.filters{scrollbar-width:none;flex-wrap:nowrap;width:100%;max-width:100%;padding-bottom:5px;overflow-x:auto}.filters::-webkit-scrollbar{display:none}.chip{flex:none}.mobile-nav{bottom:calc(10px + env(safe-area-inset-bottom));z-index:7;-webkit-backdrop-filter:blur(24px)saturate(130%);background:#233246c4;border:1px solid #dcecff2e;border-radius:20px;grid-template-columns:repeat(3,1fr);padding:6px;display:grid;position:fixed;left:14px;right:14px;box-shadow:0 10px 38px #0008,inset 0 1px #ffffff1a}.mobile-nav button{color:#c2d0df;background:0 0;border:0;border-radius:14px;min-height:49px;font-size:.8125rem}.mobile-nav button.active{color:#f3f9ff;background:#4682c645}.mobile-nav button span{margin-bottom:2px;font-size:1.15rem;display:block}}@media (height<=500px){.hero{margin-bottom:8px;padding:10px 14px}.hero p{display:none}.hero h1{margin:0;font-size:1.15rem}.search-wrap{margin-bottom:8px}.search-wrap input{height:44px}.filters,.toolbar{margin-bottom:6px}}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.sidebar,.detail,.hero,.mobile-nav{background-color:#1c293b}.search-wrap input,.chip{background-color:#2b384a}}@media (prefers-reduced-transparency:reduce){.sidebar,.hero,.detail,.search-wrap input,.mobile-nav{-webkit-backdrop-filter:none;background:#202c3c}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}body.drawer-lock{overflow:hidden}
