@import url('https://fonts.googleapis.com/css2?family=Chakra+Petch:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500;600&family=Noto+Sans+TC:wght@400;500;600;700&display=swap');
:root{--ink:#e8f0f6;--muted:#92a2b8;--line:#253747;--page:#080e16;--panel:#101b28;--cyan:#78f0cf;--violet:#b4a2ff;--green:var(--cyan);--lime:var(--cyan);--blue:#142436;--mono:'IBM Plex Mono',monospace;--display:'Chakra Petch','Noto Sans TC',sans-serif;color-scheme:dark;font-family:'Noto Sans TC',system-ui,sans-serif;font-size:16px;color:var(--ink);background:var(--page)}
*{box-sizing:border-box}html{scroll-padding-top:105px}body{margin:0;background:radial-gradient(ellipse at 90% 0,#4b42951c,transparent 36%),radial-gradient(ellipse at 20% 12%,#19756913,transparent 36%),linear-gradient(#69879606 1px,transparent 1px),linear-gradient(90deg,#69879606 1px,transparent 1px);background-size:auto,auto,40px 40px,40px 40px;min-width:320px}button,input,select,textarea{font:inherit}button{cursor:pointer;border:0;transition:background .18s,border-color .18s,color .18s,transform .18s}button:disabled{cursor:not-allowed;opacity:.5}button:not(:disabled):active{transform:translateY(1px)}a{color:inherit;text-underline-offset:4px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--cyan);outline-offset:4px}input,select,textarea{min-width:0;border:1px solid #334759;border-radius:7px;background:#0a1421;color:var(--ink)}[hidden]{display:none!important}h1,h2,h3,p{margin:0}h1{font:600 clamp(1.65rem,2.35vw,2.45rem)/1.4 var(--display);letter-spacing:-.025em}h2{font-size:1rem;font-weight:600}.mono,kbd{font-family:var(--mono)}.muted{font-size:.8125rem;color:var(--muted)}.small-label,.eyebrow,.side-heading{font-size:.75rem;letter-spacing:.08em}.eyebrow{font:500 .75rem/1.7 var(--mono);color:var(--cyan);letter-spacing:.14em;margin-bottom:10px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.skip{position:fixed;top:-60px;z-index:50;background:var(--cyan);color:#071c1b;padding:12px}.skip:focus{top:10px}
/* The shared shell keeps browsing and transmission visible together. */
.topbar{min-height:86px;padding:18px 30px;display:flex;align-items:center;justify-content:space-between;gap:24px;background:#0b131eee;border-bottom:1px solid #293948;position:sticky;top:0;z-index:20;backdrop-filter:blur(18px)}.topbar:after{content:'';position:absolute;height:2px;bottom:-1px;left:0;width:225px;background:linear-gradient(90deg,var(--cyan),transparent)}.brand{display:flex;align-items:center;gap:12px;font:700 1.7rem/1.05 var(--display);text-decoration:none;letter-spacing:.035em;flex-shrink:0}.brand-symbol{display:grid;place-items:center;width:42px;height:42px;font-size:2rem;color:var(--cyan);border:1px solid #62bcae;background:#163333;clip-path:polygon(8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%,0 8px)}.brand-light{color:var(--cyan);font-weight:500}.brand small{display:block;font:400 .65rem var(--mono);color:#97acba;letter-spacing:.12em;margin-top:7px}.top-right{display:flex;gap:24px;align-items:center}.text-button{background:transparent;color:#c4d2e1;font-size:.875rem;padding:10px 0;text-decoration:none;min-height:40px}.text-button:hover{color:var(--cyan)}.terminal-state{display:flex;align-items:center;gap:8px;font-size:.8125rem;color:#9fb0c1}.terminal-state i{width:7px;height:7px;border-radius:50%;background:#697b8c}.terminal-state[data-state=connected]{color:var(--cyan)}.terminal-state[data-state=connected] i{background:var(--cyan);box-shadow:0 0 10px #78f0cf55}.terminal-state[data-state=connecting] i{background:var(--violet);animation:status-pulse 1.2s ease-in-out infinite}.shell{display:grid;grid-template-columns:218px minmax(0,1fr);min-height:calc(100vh - 86px)}.sidebar{border-right:1px solid var(--line);padding:30px 13px 24px;background:#0b141f;position:sticky;top:86px;align-self:start;height:calc(100dvh - 86px);display:flex;flex-direction:column}.side-heading{display:flex;justify-content:space-between;align-items:center;gap:7px;color:#93a7ba;margin:0 10px 14px;letter-spacing:.03em}.side-heading .mono{font-size:.75rem;color:#91acbb}.category{width:100%;display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 11px;text-align:left;border:1px solid transparent;border-radius:7px;background:transparent;color:#a4b4c8;line-height:1.55;font-size:.875rem;position:relative}.category:hover{background:#172735;color:#e8f7fb}.category.active{border-color:#376f69;background:linear-gradient(100deg,#183831,#16303a);color:var(--cyan)}.category.active:before{content:'';position:absolute;left:-1px;top:12px;bottom:12px;width:2px;background:var(--cyan);border-radius:2px}.category .count{font:400 .75rem var(--mono);color:#98aebd;flex-shrink:0}.category.active .count{color:var(--cyan)}.families{margin-top:28px;margin-bottom:12px}.sidebar nav{overflow:auto;scrollbar-color:#354e60 transparent;scrollbar-width:thin;min-height:120px;flex:1}.shell main{display:grid;grid-template-columns:minmax(280px,1fr) 340px;gap:26px;align-items:start;padding:32px 28px 42px;max-width:1640px;margin:0 auto;width:100%}.library-panel{min-width:0}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:24px}.page-heading p{font-size:.875rem;color:#a2b1c3;margin-top:10px;line-height:1.8}.heading-cursor{display:inline-block;width:7px;height:.68em;margin-left:10px;background:var(--cyan);vertical-align:baseline;box-shadow:0 0 14px #78f0cf40}.outline-button{padding:10px 14px;border:1px solid #3b5365;background:#152535;color:#d1e0e8;font-size:.875rem;border-radius:7px;white-space:nowrap;min-height:42px}.outline-button:hover{border-color:var(--cyan);color:var(--cyan);background:#1a333e}.library-summary{display:flex;gap:23px;align-items:center;border-bottom:1px solid var(--line);padding-bottom:23px;margin-bottom:23px;font:400 .75rem var(--mono);color:#94a7b8}.library-summary>span{white-space:nowrap}.library-summary strong{font:500 1.45rem var(--display);color:#e6faf5;margin-right:5px}.summary-format{margin-left:auto;color:#849caf;font-size:.65rem;letter-spacing:.04em}.summary-format b{font-weight:400;color:#445d6e;margin:0 5px}.library-tools{border:1px solid #2c4251;background:#0e1a27;border-radius:10px;padding:10px;margin-bottom:23px}.search-row{display:flex;gap:9px}.search-box{display:flex;align-items:center;gap:10px;flex:1;min-width:0;padding:0 13px;background:#0a1420;border:1px solid #2c4254;border-radius:7px}.search-box>span{font-size:1.6rem;color:var(--cyan)}.search-box input{flex:1;outline:none;border:0;background:transparent;font-size:.875rem;padding:13px 0;width:100%}.search-box:focus-within{border-color:var(--cyan);box-shadow:0 0 0 2px #78f0cf12}.search-box kbd{font-size:.75rem;border:1px solid #3a5062;border-radius:4px;padding:1px 6px;color:#97abbf}.protocol-filter select{height:49px;padding:0 10px;font-size:.875rem}.results-top{display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:14px}.results-top h2{font-size:.9375rem;line-height:1.6;overflow-wrap:anywhere}.results-top .muted{white-space:nowrap;font-family:var(--mono)}
/* Original pixel artwork is shown on an LCD-like light surface. */
.table-wrap{border:1px solid #2a414f;border-radius:11px;overflow:hidden;background:#101b29}table{width:100%;table-layout:fixed;border-collapse:collapse}thead{background:#162432}th{font-size:.75rem;color:#a0b3c4;font-weight:400;padding:13px 16px;text-align:left;letter-spacing:.06em}th:nth-child(2){width:70px}th:last-child{width:63px;padding-left:0}td{padding:15px 16px;border-top:1px solid #263746;vertical-align:middle;transition:background .18s}td:nth-child(2){padding:12px 7px}td:last-child{padding:0 12px 0 0}tbody tr:hover td{background:#152535}.entry-button{width:100%;min-height:48px;padding:0;display:flex;gap:14px;align-items:center;text-align:left;background:transparent;color:#e4edf7;font-size:1rem;line-height:1.5;overflow-wrap:anywhere}.entry-button:hover .entry-zh{color:var(--cyan)}.entry-copy{min-width:0;display:block}.entry-zh{display:block;font-weight:500}.entry-en{display:block;color:#a4b6c9;font:400 .8125rem/1.65 var(--mono);margin-top:5px}.entry-sub{display:flex;align-items:center;gap:7px;flex-wrap:wrap;color:#8fa6ba;font-size:.75rem;line-height:1.6;margin-top:7px}.entry-sub:empty{display:none}.entry-sub.with-image{margin-left:74px}.entry-visual{display:grid;place-items:center;width:60px;height:60px;flex:0 0 60px;border:1px solid #b5cfc2;border-radius:8px;background:#c2d4c7;position:relative;box-shadow:inset 0 0 0 3px #a5bfb166}.entry-visual img{width:48px;height:48px;object-fit:contain;image-rendering:pixelated}.entry-visual.no-image{font:400 .75rem var(--mono);color:#889eae;background:#15232e;border-color:#354b5a;box-shadow:none}tr.selected td{background:#16312f}tr.selected td:first-child{box-shadow:inset 3px 0 var(--cyan)}.selected .entry-visual{border-color:var(--cyan);background:#d0e8d7}.protocol-tag{display:inline-block;font:500 .75rem var(--mono);background:#162e38;color:#90e2d3;padding:5px 7px;border:1px solid #33525e;border-radius:5px;white-space:nowrap}.row-arrow{display:grid;place-items:center;min-width:44px;min-height:44px;border:1px solid #395163;background:#142736;color:#abc4d5;border-radius:7px;font-size:.8125rem}.row-arrow:hover{border-color:var(--cyan);color:var(--cyan)}.selected .row-arrow{background:#78f0cf;color:#09281f;border-color:#78f0cf}.untested{font-size:.75rem;background:#3b2d21;color:#f5c38f;border:1px solid #6b503b;border-radius:4px;padding:2px 5px}.list-footer{display:flex;align-items:center;justify-content:space-between;margin-top:20px;gap:14px}.page-button{min-width:44px;min-height:42px;padding:8px 11px;border:1px solid #365061;background:#142433;color:#b5c7d9;margin-left:7px;border-radius:7px;font-size:.8125rem}.page-button:hover:not(:disabled){color:var(--cyan);border-color:var(--cyan)}.category-notes{padding:13px 15px;background:#201e37;border:1px solid #514668;border-left:2px solid var(--violet);border-radius:7px;font-size:.875rem;line-height:1.75;color:#c5bede;margin-bottom:15px}.empty{padding:40px 18px;border:1px solid var(--line);background:#101b2a;border-radius:10px;text-align:center}.empty p{font-size:.875rem;color:#a3b2c4;line-height:1.8;margin:12px 0 20px}.catalog-loading{min-height:220px;display:flex;justify-content:center;align-items:center;gap:12px;color:#a7c3ce;font-size:.875rem;border:1px solid var(--line);border-radius:11px}.loading-orbit{width:20px;height:20px;border:2px solid #395562;border-top-color:var(--cyan);border-radius:50%;animation:orbit .8s linear infinite}
/* Connection, staged command and actual transport state. */
.control-rail{display:grid;gap:19px;min-width:0}.connection-panel,.send-panel,.monitor-panel{padding:20px;border:1px solid #304656;border-radius:12px;background:linear-gradient(130deg,#172638,#0f1a28);position:relative;overflow:hidden}.connection-panel:before,.send-panel:before,.monitor-panel:before{content:'';position:absolute;top:0;left:20px;width:46px;height:2px;background:var(--cyan)}.section-top{display:flex;justify-content:space-between;align-items:center;gap:8px}.step{font:500 .75rem var(--mono);color:var(--cyan);margin-right:8px}.status-badge{padding:5px 8px;background:#182a37;color:#a4b7c6;border:1px solid #3b4e60;border-radius:20px;font-size:.75rem;white-space:nowrap}.status-badge.connected{background:#173c34;color:var(--cyan);border-color:#3b7264}.transport-tabs{display:flex;background:#091522;border:1px solid #2c4458;border-radius:8px;padding:4px;margin:19px 0 15px}.transport-tabs button{padding:10px 7px;font-size:.875rem;flex:1;border-radius:5px;background:transparent;color:#97adc2;min-height:42px}.transport-tabs button[aria-pressed=true]{background:#264453;color:#bdffeb;box-shadow:inset 0 -2px var(--cyan)}.field-label{display:block;font-size:.875rem;color:#b1c3d1;margin:12px 0 8px}.connection-panel input,.connection-panel select{width:100%;padding:11px;font-size:.875rem;min-height:44px}.baud-row{display:flex;align-items:center;gap:10px;font-size:.8125rem;color:#a0b6c8;margin-top:12px}.baud-row select{width:98px;padding:5px 7px;font:400 .8125rem var(--mono);min-height:35px}.baud-row .mono{font-size:.75rem;color:#89a1b5;margin-left:auto}.connection-hint{font-size:.875rem;color:#a0b5c8;line-height:1.8;margin:13px 0 16px}.connect-button{display:flex;align-items:center;justify-content:center;gap:9px;width:100%;padding:13px;background:#213f4c;color:#baffec;border:1px solid #4a827e;border-radius:7px;font-size:.875rem;min-height:46px}.connect-button:hover{background:#2b555c;border-color:var(--cyan)}.connection-detail{font-size:.8125rem;line-height:1.75;color:#98b0c5;margin-top:10px;min-height:23px;overflow-wrap:anywhere}.send-panel{border-color:#575077;background:linear-gradient(145deg,#24293f,#131e2d 70%);scroll-margin-top:12px}.send-panel:before{background:var(--violet);width:60px}.send-panel .step{color:var(--violet)}.selected-meta{display:flex;justify-content:space-between;align-items:center;gap:10px;color:#b8b1d8;font-size:.8125rem;margin-top:21px;line-height:1.6}.send-panel h3{font:600 1.35rem/1.4 var(--display);margin-top:13px;overflow-wrap:anywhere}.selected-english{color:#a8b4cc;font:400 .75rem/1.7 var(--mono);margin:8px 0 12px;overflow-wrap:anywhere}.selected-english:empty{display:none}#selected-description{color:#bdc8da;font-size:.875rem;line-height:1.8;overflow-wrap:anywhere}.selected-art{border:1px solid #92b5ae;border-radius:10px;background:linear-gradient(#adc5b933 1px,transparent 1px),linear-gradient(90deg,#adc5b933 1px,transparent 1px),radial-gradient(ellipse,#e0eadd,#b0c8bb);background-size:12px 12px,12px 12px,auto;margin:18px 0 14px;min-height:156px;display:flex;align-items:center;justify-content:center;padding:18px;position:relative;box-shadow:inset 0 0 0 5px #759b8d22}.selected-art:before,.selected-art:after{content:'';position:absolute;width:16px;height:16px;border-color:#5c8a79;border-style:solid;pointer-events:none}.selected-art:before{left:10px;top:10px;border-width:2px 0 0 2px}.selected-art:after{right:10px;bottom:10px;border-width:0 2px 2px 0}.selected-art img{width:112px;height:112px;object-fit:contain;image-rendering:pixelated;position:relative;z-index:1}.code-label{display:flex;align-items:center;justify-content:space-between;margin:12px 0 6px;font:500 .75rem var(--mono);letter-spacing:.12em;color:#bcb3d8}.copy-button{background:transparent;color:#c9baff;font-size:.8125rem;padding:10px 0 10px 12px;min-height:40px;letter-spacing:0}.copy-button:hover{color:var(--cyan)}.send-panel textarea{width:100%;padding:12px;min-height:102px;border:1px solid #4e526d;background:#0b1423;color:#baf2da;font:400 .875rem/1.8 var(--mono);resize:vertical;overflow-wrap:anywhere;word-break:break-all;border-radius:7px}.validation{font-size:.8125rem;color:#9fc0b5;line-height:1.7;margin-top:8px}.validation.invalid{color:#ffb7ad}.compatibility{margin-top:12px;padding:12px;background:#382b29;border:1px solid #735b46;border-radius:7px;color:#f2cbaa;font-size:.8125rem;line-height:1.8}.turn-hint{font-size:.8125rem;color:#a9bad0;line-height:1.8;margin-top:12px}.send-button{width:100%;padding:14px 16px;display:flex;justify-content:center;gap:10px;align-items:center;background:linear-gradient(110deg,#81edcb,#aeaeff);color:#0d2529;font-size:.9375rem;font-weight:600;border:1px solid transparent;border-radius:7px;margin-top:18px;min-height:49px;position:relative;overflow:hidden}.send-button:disabled{background:#26374a;color:#8b9eaf;border-color:#35495f;opacity:1}.send-button:not(:disabled):hover{background:linear-gradient(110deg,#a3ffe3,#c1baff);box-shadow:0 4px 20px #88c7e01c}.send-status{font-size:.8125rem;line-height:1.8;text-align:center;color:#9fb5cc;margin-top:11px;min-height:23px}.transfer-track{height:2px;background:#415269;margin:14px 0;overflow:hidden;border-radius:2px}.transfer-track span{display:block;width:100%;height:100%;background:var(--violet);transform:scaleX(0);transform-origin:left}.send-panel[data-state=sending] .transfer-track span,.send-panel[data-state=waiting] .transfer-track span{width:32%;transform:none;animation:transfer 1.5s ease-in-out infinite;background:linear-gradient(90deg,transparent,var(--cyan),var(--violet),transparent)}.send-panel[data-state=received] .transfer-track span{transform:scaleX(1);background:var(--cyan);transition:transform .3s}.send-panel[data-state=received] .send-status{color:var(--cyan)}.send-panel[data-state=timeout] .transfer-track span,.send-panel[data-state=error] .transfer-track span{transform:scaleX(1);background:#ebbb91}.send-panel[data-state=error] .send-status{color:#ffb7ad}.is-busy:before{content:'';display:inline-block;flex:0 0 15px;width:15px;height:15px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:orbit .8s linear infinite}.monitor-panel{padding-bottom:16px}.monitor-actions{display:flex;gap:10px}.monitor-actions button{color:#a6bbcc;background:transparent;font-size:.8125rem;padding:8px 0;min-height:36px}.monitor-actions button:hover{color:var(--cyan)}.monitor{background:#07111b;border:1px solid #2e4658;border-radius:7px;height:165px;overflow:auto;padding:12px;margin-top:14px;color:#a6c4cf;font:400 .75rem/1.9 var(--mono);overflow-wrap:anywhere;scrollbar-color:#365668 transparent;scrollbar-width:thin}.log-line{display:flex;gap:9px;align-items:baseline;margin-bottom:8px}.log-tag{color:#9bb3c1;flex-shrink:0}.log-line.tx{color:#c1baff}.log-line.rx{color:var(--cyan)}.log-line.error{color:#efba8c}.log-time{display:block;color:#8ba3b5;font-size:.75rem}.monitor-bottom{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;font:400 .75rem var(--mono);color:#9ab1c1;margin-top:10px}.monitor-bottom button{font-size:.8125rem;background:transparent;color:#b6c5db;padding:7px 0;min-height:34px}
/* Overlays and accessible finite feedback. */
dialog{width:calc(100% - 32px);max-width:680px;max-height:85dvh;border:1px solid #526f7f;background:#111f30;color:var(--ink);border-radius:15px;padding:28px;box-shadow:0 24px 80px #0008}dialog::backdrop{background:#030a13bd;backdrop-filter:blur(7px)}.dialog-heading{display:flex;justify-content:space-between;align-items:center;gap:12px}.dialog-heading h2{font-size:1.3rem}.guide-content{font-size:1rem;line-height:1.9}.guide-content h3{font-size:1.05rem;color:var(--cyan);margin:25px 0 10px}.guide-content p+p{margin-top:14px}.guide-content ol{padding-left:23px}.guide-content li+li{margin-top:10px}.guide-content a{color:#c2b6ff}.toast{position:fixed;bottom:26px;left:50%;translate:-50% 0;background:#183d3c;border:1px solid #81b6a7;padding:14px 22px;border-radius:10px;max-width:calc(100vw - 32px);width:max-content;text-align:center;z-index:40;color:#d3fff0;font-size:.875rem;line-height:1.7;box-shadow:0 12px 40px #0008}.site-footer{padding:26px 22px;border-top:1px solid var(--line);text-align:center;color:#a2b2c3;font-size:.875rem;line-height:1.9;background:#0a1420}.site-footer span{color:var(--ink)}.site-footer a{color:var(--cyan)}#mobile-category,.mobile-selection{display:none}
@keyframes orbit{to{transform:rotate(360deg)}}@keyframes status-pulse{50%{opacity:.4}}@keyframes transfer{from{translate:-100% 0}to{translate:420% 0}}
@media(min-width:1550px){.shell{grid-template-columns:235px minmax(0,1fr)}.shell main{padding:38px 40px;gap:34px;grid-template-columns:minmax(380px,1fr) 380px}.sidebar{padding-left:16px;padding-right:16px}.entry-visual{width:66px;height:66px;flex-basis:66px}.entry-visual img{width:52px;height:52px}.entry-sub.with-image{margin-left:80px}}
@media(max-width:1250px){.shell{grid-template-columns:196px minmax(0,1fr)}.shell main{padding:26px 20px;gap:20px;grid-template-columns:minmax(255px,1fr) 315px}.sidebar{padding-left:9px;padding-right:9px}.page-heading{align-items:flex-start;flex-wrap:wrap;gap:16px}.page-heading .outline-button{padding:8px 13px}.summary-format{display:none}.entry-button{gap:11px}.entry-sub.with-image{margin-left:61px}.entry-visual{width:50px;height:50px;flex-basis:50px}.entry-visual img{width:42px;height:42px}td,th{padding-left:12px;padding-right:12px}.connection-panel,.send-panel,.monitor-panel{padding:18px}.top-right{gap:17px}.brand small{font-size:.6rem}.entry-zh{font-size:.9375rem}.protocol-filter select{padding:0 6px}.search-box{padding:0 9px}.search-box kbd{display:none}.library-summary{gap:20px}}
@media(max-width:1060px){.shell{display:block}.sidebar{display:none}.shell main{grid-template-columns:minmax(290px,1fr) 335px;padding:27px 24px;gap:25px}#mobile-category{display:block;width:100%;min-height:45px;padding:10px 12px;font-size:.875rem;margin-top:10px}.topbar{padding:17px 24px}.brand small{font-size:.6rem}.terminal-state{display:none}.page-heading{flex-wrap:nowrap}.entry-visual{width:58px;height:58px;flex-basis:58px}.entry-visual img{width:48px;height:48px}.entry-sub.with-image{margin-left:69px}.entry-zh{font-size:1rem}}
@media(max-width:760px){html{scroll-padding-top:89px}.shell main{display:flex;flex-direction:column;padding:25px 16px 32px;gap:30px}.library-panel,.control-rail{width:100%}.topbar{min-height:75px;padding:15px 16px;gap:12px}.brand{font-size:1.4rem;gap:9px}.brand-symbol{width:36px;height:36px;font-size:1.7rem}.brand small{display:none}.top-right{gap:15px}.text-button{font-size:.8125rem}.page-heading{flex-wrap:wrap;gap:18px}.page-heading h1{font-size:1.8rem}.page-heading p{font-size:.875rem}.heading-cursor{width:5px}.library-summary{padding-bottom:20px;margin-bottom:20px}.library-summary strong{font-size:1.35rem}.summary-format{display:inline;font-size:.55rem}.library-tools{margin-bottom:20px}.table-wrap{max-height:670px;overflow:auto;scrollbar-width:thin}thead th{position:sticky;top:0;background:#162432;z-index:1}th:nth-child(2){width:57px}th:last-child{width:57px}.entry-button{gap:10px}.entry-sub.with-image{margin-left:62px}.entry-visual{width:52px;height:52px;flex-basis:52px}.entry-visual img{width:44px;height:44px}.entry-zh{font-size:.9375rem}.entry-en{font-size:.75rem}.row-arrow{font-size:.75rem}td:last-child{padding-right:8px}.results-top h2{font-size:.875rem}.results-top .muted{font-size:.75rem}.connection-panel,.send-panel,.monitor-panel{padding:21px}.selected-art{min-height:176px}.selected-art img{width:128px;height:128px}.send-panel{scroll-margin-top:12px}.mobile-selection:not([hidden]){position:fixed;bottom:0;left:0;right:0;z-index:25;display:flex;align-items:center;justify-content:space-between;gap:14px;background:#101f2cf5;border-top:1px solid #426c70;padding:12px 16px calc(12px + env(safe-area-inset-bottom));backdrop-filter:blur(18px);box-shadow:0 -8px 35px #0004}.mobile-selection>div{min-width:0}.mobile-selection .small-label{display:block;font-size:.65rem;color:var(--cyan);margin-bottom:4px}.mobile-selection strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.875rem;font-weight:500}.mobile-selection .outline-button{background:#244449;border-color:#549081;color:#c4ffe9}.site-app:has(.mobile-selection:not([hidden])){padding-bottom:83px}.site-app .toast{bottom:96px}.page-button{padding:9px 12px}.control-rail input,.control-rail select,.send-panel textarea{font-size:1rem}.protocol-filter select{font-size:.8125rem}.auth-panel{min-width:0}.monitor-actions button{min-height:42px}.monitor-bottom button{min-height:42px}}
@media(max-width:400px){.summary-format{display:none}.brand{font-size:1.25rem}.top-right{gap:12px}.topbar .text-button{font-size:.75rem}.entry-visual{width:44px;height:44px;flex-basis:44px}.entry-visual img{width:36px;height:36px}.entry-sub.with-image{margin-left:54px}.page-heading h1{font-size:1.65rem}.protocol-filter select{max-width:106px}.entry-zh{font-size:.875rem}.search-box input{font-size:.8125rem}.list-footer{flex-wrap:wrap}.library-summary{gap:18px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}.transfer-track span{translate:0!important}.send-panel[data-state=waiting] .transfer-track span,.send-panel[data-state=sending] .transfer-track span{transform:scaleX(1);width:100%;background:var(--violet)}}
/* A-Com installer shares the workbench's existing dialog and terminal surfaces. */
.firmware-open{width:100%;margin-top:14px;font-size:.875rem}.firmware-dialog{width:min(720px,calc(100vw - 32px));max-height:calc(100dvh - 40px)}.firmware-content{padding:24px;line-height:1.65}.firmware-content>p{margin:12px 0}.firmware-release{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.firmware-release strong{color:var(--accent,#9becd2);font-family:var(--mono,monospace)}.firmware-release span{color:var(--muted,#acb6c5)}.firmware-note{padding:12px 14px;border-left:2px solid #b9a1ff;background:#b9a1ff0b;font-size:.875rem}.firmware-steps{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:22px 0;padding:0;counter-reset:firmware}.firmware-steps li{padding:10px;border:1px solid #344656;border-radius:7px;font-size:.875rem;color:#9bafc2}.firmware-steps li:before{counter-increment:firmware;content:'0' counter(firmware);display:block;font-family:monospace;margin-bottom:4px}.firmware-steps li[data-state=current]{border-color:#b9a1ff;color:#ded4ff;background:#b9a1ff12}.firmware-steps li[data-state=done]{border-color:#80cab3;color:#b6f3dc;background:#9becd20b}.firmware-actions{display:flex;gap:12px;align-items:stretch}.firmware-actions .send-button{margin:0;flex:1}.firmware-actions .outline-button{flex:1}.firmware-content progress{display:block;width:100%;height:7px;margin:20px 0;accent-color:#9becd2}.firmware-status{min-height:3em;font-size:.9375rem;overflow-wrap:anywhere}.firmware-status[data-state=error]{color:#ffb5ae}.firmware-status[data-state=success]{color:#a9eed4}.firmware-content h3{font-size:1rem;margin:12px 0}.firmware-output{white-space:pre-wrap;overflow-wrap:anywhere;background:#080f18;border:1px solid #344656;border-radius:8px;padding:16px;min-height:130px;max-height:270px;overflow:auto;font-size:.875rem;line-height:1.7;color:#c2f3dc;user-select:text}.firmware-sources{display:flex;gap:18px;flex-wrap:wrap;font-size:.875rem}.firmware-sources a{color:#aac8c3}.firmware-content code{font-size:.875rem}@media(max-width:500px){.firmware-content{padding:16px}.firmware-actions{flex-direction:column}.firmware-steps{gap:6px}.firmware-steps li{padding:8px;font-size:.8125rem}.firmware-dialog .dialog-heading{padding:16px}.firmware-dialog .dialog-heading h2{font-size:1.125rem}}

/* Keep both names readable in the compact library. */
.entry-en{display:block;line-height:1.6;overflow-wrap:anywhere}.entry-purpose{display:block;color:#b5c9cd;font-size:.875rem;line-height:1.65;margin-top:5px;overflow-wrap:anywhere}.translation-note{display:inline-block;font:400 .75rem/1.5 var(--display);letter-spacing:.03em;color:#efd3a5;border:1px solid #b68f5d66;border-radius:4px;padding:1px 5px;margin-top:5px}.translation-note[hidden]{display:none}#selected-description-english:empty,#selected-context:empty{display:none}.entry-copy{min-width:0}.entry-zh{line-height:1.65}

.language-switch{display:flex;flex-shrink:0;gap:2px;padding:3px;background:#0a162866;border:1px solid #bed9ef38;border-radius:20px}.language-switch button{min-width:42px;min-height:34px;padding:5px 9px;border-radius:17px;background:transparent;color:#b9cbd9;font:500 .8125rem/1.3 var(--display);white-space:nowrap}.language-switch button[aria-pressed=true]{background:#b6f3e525;color:#d7fff2;box-shadow:inset 0 0 0 1px #b5eedd44}.language-switch button:hover{color:white;background:#ffffff15}.language-switch button:focus-visible{outline:2px solid var(--cyan);outline-offset:3px}html[lang=en] .row-arrow{min-width:54px}html[lang=en] .firmware-actions{flex-wrap:wrap}html[lang=en] .firmware-actions button{white-space:normal}html[lang=en] .firmware-steps li{line-height:1.55}@media(max-width:760px){.topbar{flex-wrap:wrap}.top-right{margin-left:auto;gap:10px;flex-wrap:wrap;justify-content:flex-end}.language-switch button{min-height:36px;min-width:40px}.admin-header-actions{flex-wrap:wrap;justify-content:flex-end}.topbar .text-button{white-space:normal;text-align:center}.firmware-steps{gap:8px}.firmware-steps li{font-size:.75rem}}@media(max-width:440px){.topbar .top-right{width:100%;justify-content:space-between}.topbar .brand{min-height:36px}.admin-header-actions{width:100%;justify-content:space-between}}
html[lang=en] .table-wrap th:nth-child(2){width:66px;padding-left:5px;padding-right:5px;letter-spacing:0}html[lang=en] .table-wrap th:last-child{width:76px}

/* Battle presets share the library's glass surfaces and existing transport. */
.battle-simulator{margin-bottom:24px;border:1px solid #9ac9ce42;border-radius:16px;background:linear-gradient(125deg,#7ddac60b,#a996f80b);box-shadow:inset 0 1px #e5ffff12;backdrop-filter:blur(18px)}.battle-simulator summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:17px 18px;cursor:pointer;font-weight:600;color:var(--cyan);list-style:none}.battle-simulator summary::-webkit-details-marker{display:none}.battle-simulator summary:after{content:'＋';font-size:1.2rem}.battle-simulator[open] summary:after{content:'−'}.battle-simulator summary:focus-visible{outline:2px solid var(--cyan);outline-offset:3px;border-radius:16px}.battle-kicker{margin-left:auto;font:400 .65rem var(--mono);letter-spacing:.1em;color:#9bb4c1}.battle-body{padding:0 18px 18px;min-width:0}.battle-intro{font-size:.875rem;line-height:1.8;color:#b5c9d3;margin-bottom:16px}.battle-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px}.battle-fields label{min-width:0}.battle-fields select{width:100%;min-height:46px;padding:10px;font-size:.875rem;text-overflow:ellipsis}.battle-preview{border-top:1px solid #a1c4dd24;padding-top:16px}.battle-opponent{display:flex;align-items:center;gap:14px}.battle-opponent>div{min-width:0}.battle-opponent h3{font-size:1rem;line-height:1.6}.battle-opponent p{color:#b5c9d3;font-size:.8125rem;line-height:1.7;margin:5px 0}.battle-art{display:grid;place-items:center;flex:0 0 76px;min-height:76px;background:#d1e4dc;border-radius:12px;border:1px solid #b3e8d6}.battle-art img{width:64px;height:64px;object-fit:contain;image-rendering:pixelated}.battle-code{font:400 .75rem/1.8 var(--mono);white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-all;background:#07131b66;border:1px solid #9dc4cf24;padding:12px;border-radius:9px;color:#bee9e1;user-select:text;margin:14px 0}.battle-notice{font-size:.8125rem;line-height:1.8;color:#bacbd8;margin:12px 0}.battle-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:16px}.battle-actions .outline-button{border-color:#71b7aa77;color:#c4ffe9;background:#7edac415;white-space:normal}.battle-actions .muted{flex:1;min-width:150px;line-height:1.7}.battle-footnote{color:#91a7b7;font-size:.75rem;line-height:1.8;margin-top:14px}@media(max-width:760px){.battle-fields{grid-template-columns:1fr}.battle-simulator summary{padding:15px}.battle-body{padding:0 15px 16px}.battle-fields select{font-size:1rem}.battle-kicker{font-size:.6rem}.battle-actions{align-items:stretch}.battle-actions button{min-height:46px}.battle-art{flex-basis:64px;min-height:64px}.battle-art img{width:52px;height:52px}}

.battle-fields input{width:100%;min-height:46px;padding:10px;font-size:.875rem}.verification-badge{display:inline-block;font-size:.75rem;color:#aeeeda;border:1px solid #70cbb055;border-radius:5px;padding:2px 7px;margin:4px 5px 4px 0}.battle-body>#battle-count{margin:0 0 12px}@media(max-width:760px){.battle-fields input{font-size:1rem}}

.verification-badge[data-state=generated-unverified]{color:#f0d5a7;border-color:#deb37166;background:#deb3710b}

/* Copyright and source credits at the end of the page. */
.site-footer{padding:30px 34px;text-align:left}.footer-content{max-width:1160px;margin:0 auto}.footer-copyright{margin:0 0 13px;font-size:.875rem;color:#d5e6ed}.footer-copyright strong{font-weight:600;color:#d5fff1}.footer-notice{font-size:.8125rem;line-height:1.85;color:#91a6b8}.footer-notice p{margin:0}.footer-notice p+p{margin-top:7px}.footer-credits{display:flex;flex-wrap:wrap;align-items:center;gap:6px 22px;border-top:1px solid #a6c6d326;margin-top:20px;padding-top:14px}.site-footer .footer-credits-label{font-size:.72rem;color:#8fa8ba;margin-right:8px}.footer-credits a{display:inline-flex;align-items:center;min-height:34px;font-size:.8125rem;white-space:nowrap;text-underline-offset:4px}.footer-credits a:focus-visible{outline:2px solid var(--cyan);outline-offset:4px;border-radius:3px}@media(max-width:760px){.site-footer{padding:26px 20px}.footer-notice{font-size:.75rem;line-height:1.9}.footer-credits{gap:4px 20px}.site-footer .footer-credits-label{flex-basis:100%;margin-right:0}.footer-credits a{min-height:40px}}

/* Optional creator support, separate from device controls. */
.patreon-link{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:42px;padding:8px 13px;border:1px solid #7bd8c84d;border-radius:9px;background:#6debdc0c;color:var(--cyan);font-size:.8125rem;line-height:1.5;text-decoration:none;text-align:center}.patreon-link:hover{background:#6debdc1c;border-color:var(--cyan)}.patreon-link:focus-visible{outline:2px solid var(--cyan);outline-offset:4px}.patreon-support{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:24px;padding-bottom:24px;border-bottom:1px solid #a6c6d326}.patreon-support h2{margin:0 0 6px;color:#d5fff1;font-size:1rem;font-weight:600}.patreon-support p{margin:0;max-width:680px;font-size:.8125rem;line-height:1.8;color:#a2b2c3}.patreon-support>.patreon-link{flex-shrink:0}@media(max-width:760px){.patreon-support{align-items:flex-start;flex-direction:column}.topbar .patreon-link{padding:7px 10px;font-size:.75rem}}
