:root{--text:#1a1a2e;--muted:#756f77;--border:#e5dff2;--background:#f6f5ff;--primary:#df4994;--accent:#473692;--radius:16px;--font:'Noto Sans TC','Microsoft JhengHei',Arial,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--background);color:var(--text);font:16px/1.6 var(--font)}header{background:#fff;border-bottom:1px solid #efefef}nav{max-width:1170px;margin:auto;padding:22px 30px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{display:flex}.brand img{display:block;width:190px;height:auto}.home{color:var(--muted);font-size:14px;text-decoration:none;padding:8px 0}main{max-width:1170px;margin:auto;padding:44px 30px 0}.intro{margin-bottom:32px}.intro h1{font-size:32px;line-height:1.3;letter-spacing:.02em;margin:0 0 10px}.intro p{color:var(--muted);margin:0}.layout{display:grid;grid-template-columns:minmax(0,1fr) 350px;gap:32px;align-items:start}h2{font-size:20px;line-height:1.4;margin:0}.section-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}.section-title>span{font-size:13px;color:var(--muted)}.app-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.app{min-width:0;display:block;background:#fff;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;cursor:pointer;box-shadow:0 3px 12px #47369205;transition:border-color .15s,box-shadow .15s}.app:hover{border-color:#b6a4dc}.app:has(input:checked){border-color:var(--primary);box-shadow:0 0 0 2px #df499426}.app:has(input:focus-visible){outline:3px solid #ac94d7;outline-offset:4px}.app-cover{display:block;width:100%;height:auto;aspect-ratio:2/1;object-fit:contain;background:#f0eaf8}.app-content{display:block;padding:18px}.app-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.app-heading strong{font-size:17px;overflow-wrap:anywhere}.app input{flex:0 0 auto;margin:0;width:24px;height:24px;accent-color:var(--primary)}.app-description{white-space:pre-line;display:block;margin-top:8px;color:var(--muted);font-size:14px;line-height:1.75;overflow-wrap:anywhere}.verification{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:26px}.hint{font-size:14px;color:var(--muted);margin:12px 0 24px;line-height:1.8}.field{display:block;font-size:14px;font-weight:600;margin:20px 0 8px}input[type=text]{width:100%;min-width:0;border:1px solid #d7d0e2;border-radius:9px;padding:13px 12px;color:var(--text);background:#fff;font:16px/1.5 var(--font)}input::placeholder{color:#97919d}input:focus-visible,button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #b39cdb;outline-offset:3px}.captcha{display:grid;grid-template-columns:148px minmax(0,1fr);gap:10px;align-items:center}.captcha img{width:148px;height:auto;display:block;border-radius:8px}.refresh{display:inline-flex;align-items:center;min-height:44px;font-size:12px;color:var(--accent);text-decoration:none}button,.return{display:block;width:100%;border:0;border-radius:9px;background:linear-gradient(115deg,var(--primary),var(--accent));color:#fff;font:600 16px/1.5 var(--font);text-align:center;padding:15px 12px;min-height:52px;cursor:pointer;text-decoration:none;margin-top:12px}button:disabled{opacity:.45;cursor:not-allowed}.submit-note{text-align:center;font-size:12px;color:var(--muted);margin:10px 0 20px}.help{border-top:1px solid #efecf5;padding-top:12px;font-size:13px;color:var(--muted)}.help summary{cursor:pointer;min-height:44px;display:flex;align-items:center;gap:8px}.help summary:before{content:'＋';color:var(--accent)}.help[open] summary:before{content:'－'}.help p{margin:4px 0 8px;line-height:1.8}.empty{padding:30px 0;color:var(--muted)}.error{border:1px solid #eac0b7;background:#fff0ed;color:#963d2e;padding:16px;border-radius:12px;margin-bottom:24px}.success{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:28px;max-width:600px;margin:auto}.success>p{color:var(--text);font-size:18px;line-height:1.8}.queued{display:flex;justify-content:space-between;gap:16px;border-bottom:1px solid var(--border);padding:15px 0}.queued span{color:var(--accent);font-size:16px}.return{margin-top:24px}footer{text-align:center;color:var(--muted);font-size:12px;padding:44px 20px 28px}@media(max-width:980px){.layout{grid-template-columns:minmax(0,1fr) 320px;gap:24px}.app-grid{grid-template-columns:1fr}.verification{padding:22px}}@media(max-width:700px){nav{padding:18px 20px}.brand img{width:165px}.home{font-size:13px;min-height:44px;display:flex;align-items:center;gap:6px}main{padding:28px 20px 0}.intro{margin-bottom:26px}.intro h1{font-size:28px}.intro p{font-size:14px}.layout{grid-template-columns:1fr;gap:30px}.section-title{margin-bottom:14px}.section-title h2,h2{font-size:19px}.app-grid{gap:18px}.app-content{padding:17px 18px 19px}.verification{padding:22px}.hint{margin-bottom:20px}.captcha{grid-template-columns:minmax(0,148px) minmax(0,1fr)}.captcha img{max-width:100%}footer{padding-top:32px}}@media(prefers-reduced-motion:reduce){.app{transition:none}}

.catalog-group{grid-column:1/-1;margin:10px 0 -4px}.catalog-group:first-child{margin-top:0}.catalog-group h3{font-size:17px;margin:0;color:var(--accent)}.catalog-group p{margin:10px 0 0;padding:14px 16px;border-left:3px solid var(--primary);background:#fff;border-radius:0 10px 10px 0;font-size:13px;line-height:1.85;color:var(--muted)}.app-category{display:inline-block;margin-bottom:9px;border-radius:5px;padding:3px 8px;background:#eee8fb;color:var(--accent);font-size:12px;font-weight:600}.app-category--third-party{background:#fbeaf3;color:#9b2d66}

/* Touch-first multi-select rows; native buttons expose pressed state to assistive tech. */
.app-grid{grid-template-columns:1fr;gap:10px}.app{display:flex;align-items:center;gap:14px;width:100%;min-height:108px;margin:0;padding:14px;text-align:left;color:var(--text);font:inherit;background:#fff;box-shadow:none;border:1px solid var(--border);border-radius:14px;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.app-cover{flex:0 0 76px;width:76px;height:76px;aspect-ratio:1;object-fit:contain;border-radius:12px}.app-content{min-width:0;flex:1;padding:0}.app-name{display:block;font-size:16px;line-height:1.4;overflow-wrap:anywhere}.app-category{font-size:11px;margin:0 0 4px;padding:1px 6px}.app-description{font-size:13px;line-height:1.55;margin-top:5px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.app-selection{flex:0 0 44px;min-height:44px;display:flex;align-items:center;justify-content:center;color:var(--accent);font-size:12px;font-weight:600}.app-selection:after{content:'選取'}.app[aria-pressed=true]{background:#fcf1f8;border-color:var(--primary);box-shadow:0 0 0 1px var(--primary)}.app[aria-pressed=true] .app-selection:after{content:'✓ 已選';color:#aa286c}.app:focus-visible{outline:3px solid #ac94d7;outline-offset:3px}@media(max-width:700px){.app{gap:10px;padding:12px;min-height:96px}.app-cover{flex-basis:64px;width:64px;height:64px}.app-selection{flex-basis:40px}.catalog-group{margin-top:16px}.section-title>span{max-width:65%;text-align:right;font-size:12px}}

/* Readable phone typography and a full-width CAPTCHA, not a squeezed pair. */
:root{--muted:#514b59}input::placeholder{color:#696272}.captcha{grid-template-columns:1fr;gap:14px}.captcha img{width:100%;max-width:320px;height:auto;aspect-ratio:560/144;border:1px solid #c8d6cf;border-radius:10px}.captcha input{font-size:20px;letter-spacing:.12em;min-height:56px}.refresh{width:auto;margin:8px 0 6px;padding:6px 0;min-height:44px;background:none;color:var(--accent);border-radius:4px;font-size:15px;text-align:left}.hint{font-size:16px;line-height:1.75}.field{font-size:16px}.submit-note,.help{font-size:14px}.app-description{font-size:15px}.app-selection{font-size:14px}.app-category{font-size:12px}.app-name{font-size:18px}footer{font-size:14px}@media(max-width:700px){main{padding:24px 16px 0}.intro p{font-size:16px}.intro{margin-bottom:24px}.home{font-size:15px}.section-title h2,h2{font-size:21px}.section-title>span{font-size:14px}.catalog-group h3{font-size:18px}.catalog-group p{font-size:15px}.verification{padding:22px 20px}.hint{margin-bottom:22px}.app-selection{flex-basis:44px}.app{gap:10px}.app-description{line-height:1.6}.app-category{padding:2px 5px}.app-name{line-height:1.5}.app-cover{flex-basis:64px}input[type=text]{font-size:18px;padding:14px 12px;min-height:56px}.captcha input{font-size:20px}.submit-note{font-size:14px}.help{font-size:15px}.refresh{font-size:15px}}

.ip-hint{font-size:14px;color:var(--muted);line-height:1.75;margin:10px 0 18px}.verification-unavailable{font-size:15px;color:#703c1e;background:#fff5e8;border:1px solid #e8d3b8;border-radius:9px;padding:14px;line-height:1.7}.cf-turnstile{min-width:0;width:100%}

/* Guided install: explicit steps and one shared mobile-friendly guide. */
.intro{display:flex;align-items:center;justify-content:space-between;gap:16px}.intro h1{margin:0}.guide-link{display:inline-flex;align-items:center;justify-content:center;gap:6px;width:auto;min-height:44px;margin:0;padding:6px 0;border:0;border-radius:4px;background:none;color:var(--accent);font-size:15px;white-space:nowrap;text-decoration:underline;text-underline-offset:4px}.section-title{flex-wrap:wrap;gap:8px 12px}.step-title{display:flex;align-items:center;gap:8px;min-width:0}.step-number{display:inline-flex;align-items:center;justify-content:center;flex:none;width:30px;height:30px;border-radius:50%;color:#fff;background:var(--accent);font-size:17px;font-weight:700}.step-title h2{font-size:20px;white-space:nowrap}.step-title .first-category{font-size:14px;line-height:1.5;color:var(--accent);margin:0;font-weight:600}.device-title{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.device-title .guide-link{margin-left:auto}.section-title>span{margin-left:auto;max-width:none}.input-hint{font-size:13px;color:var(--muted);margin:8px 0 0}.segmented-field{display:grid;align-items:center;gap:4px}.code-segments{grid-template-columns:repeat(2,minmax(0,1fr)) 10px repeat(6,minmax(0,1fr))}.ip-segments{grid-template-columns:minmax(0,1fr) 6px minmax(0,1fr) 6px minmax(0,1fr) 6px minmax(0,1fr)}.segmented-field input[type=text]{width:100%;min-width:0;min-height:50px;padding:10px 0;text-align:center;font-size:20px;border-radius:7px}.segment-separator{text-align:center;font-size:20px;font-weight:600}.guide-open{overflow:hidden}.install-guide{padding:0;width:min(620px,calc(100% - 32px));max-height:calc(100dvh - 32px);border:1px solid var(--border);border-radius:20px;color:var(--text);background:#fff;box-shadow:0 20px 80px #1a1a2e40}.install-guide::backdrop{background:#1a1a2e88}.guide-panel{display:flex;flex-direction:column;max-height:calc(100dvh - 34px)}.guide-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 22px;border-bottom:1px solid var(--border);flex:none}.guide-close{flex:none;width:44px;min-height:44px;margin:0;padding:0;font-size:28px;background:#f2eef9;color:var(--accent);border-radius:50%}.guide-scroll{overflow-y:auto;overscroll-behavior:contain;padding:4px 24px 20px;line-height:1.8}.guide-lead{color:var(--muted)}.guide-step{padding:12px 0;border-bottom:1px solid #eee9f5}.guide-step:last-child{border:0}.guide-step h3{font-size:18px;margin:0 0 10px;line-height:1.6}.guide-step h3 span{display:inline-flex;width:26px;height:26px;align-items:center;justify-content:center;background:#eee8fb;color:var(--accent);border-radius:50%}.guide-step p{margin:8px 0;color:var(--muted)}.guide-info{padding:12px 16px;border-radius:12px;background:var(--background)}.guide-info strong{color:var(--accent)}.guide-footer{flex:none;padding:14px 22px;border-top:1px solid var(--border);background:#fff}.guide-footer button{margin:0;min-height:48px}.guide-step strong{color:var(--text)}
@media(max-width:700px){.intro h1{font-size:26px}.intro{gap:10px}.intro .guide-link{font-size:14px}.step-title h2{font-size:19px}.step-title .first-category{font-size:13px}.step-number{width:28px;height:28px;font-size:16px}.device-title .step-title h2{font-size:20px}.install-guide{width:calc(100% - 20px);max-height:calc(100dvh - 20px);border-radius:18px}.guide-panel{max-height:calc(100dvh - 22px)}.guide-header{padding:14px 18px}.guide-scroll{padding:2px 18px 18px}.guide-footer{padding:12px 18px}.segmented-field input[type=text]{font-size:18px}}

.guide-device-image{margin:14px 0 0}.guide-device-image img{display:block;width:100%;height:auto;border-radius:10px;border:1px solid var(--border)}.guide-device-image figcaption{margin-top:8px;color:var(--muted);font-size:14px;line-height:1.6}
