:root{color-scheme:light;--ink:#20312c;--muted:#64756e;--line:#d6e0d8;--paper:#f6f8f4;--green:#25654c;--blue:#315f89;--gold:#8c621e}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.55 system-ui,-apple-system,'Segoe UI',sans-serif}main{max-width:1160px;margin:auto;padding:24px}nav{display:flex;gap:24px;align-items:center;border-bottom:1px solid var(--line);padding:12px 0 20px;margin-bottom:28px}nav a{font-weight:600;text-decoration:none;color:var(--green)}nav a:first-child{margin-right:auto;font-size:18px}h1{font-size:32px;letter-spacing:-1px;margin:0 0 8px}h2{font-size:18px;margin:0 0 14px}h3{font-size:16px}p{margin:8px 0 16px}.eyebrow{text-transform:uppercase;font-size:11px;font-weight:700;letter-spacing:1.8px;color:var(--green)}.muted,small{color:var(--muted)}.card{padding:22px;background:#fff;border:1px solid var(--line);border-radius:12px;margin:18px 0}.row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.spread{justify-content:space-between}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.stat{font-size:27px;font-weight:650}.badge{font-size:11px;padding:3px 8px;border-radius:20px;background:#eaf0e9;display:inline-block}.notice{border-left:4px solid var(--gold);padding:12px 16px;background:#fff9e9}.error{color:#a52b27;white-space:pre-wrap}.success{color:var(--green)}button,input,select,textarea{font:inherit}button{cursor:pointer;border:1px solid #bbcbbf;border-radius:7px;padding:8px 13px;background:#fff;color:var(--ink)}button:hover{background:#edf3ee;border-color:var(--green)}button:disabled{opacity:.5;cursor:wait}button.primary{background:var(--green);color:white;border-color:var(--green)}a{color:var(--blue)}input,select,textarea{border:1px solid #b7c8bd;border-radius:6px;padding:8px;background:#fff;color:var(--ink)}textarea{width:100%;resize:vertical}input:focus,button:focus-visible,select:focus{outline:2px solid #5f9980;outline-offset:2px}#query{width:min(100%,400px);font:23px ui-monospace,monospace;letter-spacing:2px}#symbols{font-size:22px;min-height:35px}.candidates{display:flex;flex-wrap:wrap;gap:8px;max-height:340px;overflow:auto;min-height:80px}.candidate{min-width:100px;max-width:155px;position:relative}.candidate>button{width:100%;min-height:87px;padding:6px;background:#f7fafc;border-color:#c4d5e5}.candidate>button.component{background:#eff8f1;border-color:#b8d9c2}.candidate .han{display:block;font-size:33px;line-height:1.3}.candidate small{display:block;font-size:10px}.candidate a{position:absolute;right:4px;top:1px;font-size:11px}.keyboard{overflow:auto;padding:6px 0}.krow{display:flex;justify-content:center;gap:6px;min-width:710px;margin-bottom:6px}.key{width:58px;height:65px;padding:4px;line-height:1.1}.key .letter{display:block;font-size:10px;text-align:left;color:var(--muted)}.key .glyph{display:block;font-size:22px;margin-top:6px}.key.mod{width:90px}.key.active{background:#daeadf}.space{min-width:300px}.mono{font-family:ui-monospace,monospace;word-break:break-all}.sequence{font-size:21px;line-height:1.8;word-break:break-all}.bigchar{font-size:72px;line-height:1.2}.tablewrap{overflow:auto}table{width:100%;border-collapse:collapse;text-align:left;font-size:13px}th,td{border-bottom:1px solid var(--line);padding:10px;vertical-align:top}th{color:var(--muted);font-weight:600}.chars{display:flex;flex-wrap:wrap;gap:5px}.chars button{font-size:25px;min-width:45px;padding:4px}.vector{max-width:360px;max-height:360px;display:block;border:1px solid var(--line);margin:16px 0;background:#fff}.steps{display:flex;gap:5px;flex-wrap:wrap}.steps svg{width:65px;height:65px;border:1px solid var(--line)}details{margin:12px 0}summary{cursor:pointer;font-weight:600}footer{font-size:12px;color:var(--muted);padding:20px 0}pre{white-space:pre-wrap;word-break:break-word;font-size:12px}.review{background:#fff9e9}#auditlog{max-height:500px;overflow:auto}.auditr{padding:7px;border-bottom:1px solid var(--line)}@media(max-width:720px){main{padding:16px}.grid{grid-template-columns:1fr}nav{gap:12px;font-size:12px}nav a:first-child{font-size:15px}h1{font-size:27px}.card{padding:16px}}
