.hapi-jlpt-language {max-width:860px;margin:0 auto}
.hapi-jlpt-language [data-jlpt-panel][hidden] {display:none!important}
.hapi-jlpt-language-picker {margin:0 10px 11px;padding:8px 8px 5px;border:1px solid #d5e6cc;border-radius:15px;background:linear-gradient(135deg,#f7fff2 0%,#fffdf6 100%);box-shadow:0 4px 14px rgba(57,113,15,.07)}
.hapi-jlpt-language-title {display:flex;align-items:center;gap:6px;padding:0 4px 6px;color:#315125;line-height:1.25}
.hapi-jlpt-language-title>span:first-child {display:grid;place-items:center;width:23px;height:23px;border-radius:50%;background:#e7f4df;font-size:14px}
.hapi-jlpt-language-title strong {font-size:13px;letter-spacing:.02em}
.hapi-jlpt-language-title small {padding-left:6px;border-left:1px solid #c6dabb;color:#718369;font-size:11px;font-weight:700}
.hapi-jlpt-language-swipe {margin-left:auto;color:#7a9670;font-size:10px;font-weight:700;white-space:nowrap}
.hapi-jlpt-language-tabs {position:relative;display:flex;gap:6px;padding:2px 1px 7px;flex-wrap:nowrap;overflow-x:auto;max-width:100%;scrollbar-width:thin;overscroll-behavior-x:contain}
.hapi-jlpt-language-tabs button {flex:0 0 auto;min-height:31px;padding:4px 10px;border:1px solid #c8dec0;border-radius:999px;background:rgba(255,255,255,.9);box-shadow:0 1px 2px rgba(57,113,15,.08);color:#39602c;cursor:pointer;font:inherit;font-size:12px;line-height:1.45;font-weight:700;white-space:nowrap;transition:transform .16s ease,background .16s ease,border-color .16s ease,box-shadow .16s ease}
.hapi-jlpt-language-tabs button:hover {border-color:#82ad6b;background:#f0fae9;transform:translateY(-1px)}
.hapi-jlpt-language-tabs button[aria-selected=true] {background:linear-gradient(135deg,#4d8b22,#31660f);color:#fff;border-color:#31660f;box-shadow:0 3px 8px rgba(57,113,15,.23)}
.hapi-jlpt-language-tabs button:focus-visible {outline:3px solid #e9a51d;outline-offset:3px}
.hapi-jlpt-ne {padding:10px;color:#2d392f;font-family:system-ui,sans-serif;font-size:15px;line-height:1.8;overflow-wrap:anywhere}
.hapi-jlpt-ne h1 {font-size:24px;margin:4px 0}
.hapi-jlpt-ne h2 {font-size:19px;margin:0}
.hapi-jlpt-ne header {padding:16px;border:1px solid #dfe8dc;border-radius:18px;background:linear-gradient(135deg,#f0fae7,#fff);margin-bottom:9px}
.hapi-jlpt-ne header img {float:right;width:56px;height:56px;object-fit:contain}
.hapi-jlpt-ne p {margin:6px 0}
.hapi-jlpt-ne .jlpt-state {padding:10px;border:1px solid #eed5bb;background:#fff3e8;border-radius:12px;margin-bottom:8px}
.hapi-jlpt-ne .jlpt-levels {display:grid;grid-template-columns:repeat(auto-fit,minmax(min(230px,100%),1fr));gap:7px;margin-bottom:8px}
.hapi-jlpt-ne article {padding:11px;border:1px solid #dfe7dc;border-radius:13px;background:#fff;min-width:0}
.hapi-jlpt-ne .jlpt-level-heading {display:flex;justify-content:space-between;align-items:start;gap:8px}
.hapi-jlpt-ne .jlpt-level-heading strong {font-size:20px;color:#39710f}
.hapi-jlpt-ne .jlpt-status {background:#eef8e8;padding:4px 7px;border-radius:8px}
.hapi-jlpt-ne .jlpt-status.closed {background:#fff0ed}
.hapi-jlpt-ne small {font-size:13px}
.hapi-jlpt-ne details {padding:0 11px;border:1px solid #dfe7dc;border-radius:13px;margin-bottom:7px;background:#fff}
.hapi-jlpt-ne summary {padding:10px 0;cursor:pointer;font-weight:700}
.hapi-jlpt-ne details>div {padding-bottom:10px}
.hapi-jlpt-ne a {color:#315b17;text-decoration:underline}
@media (max-width:480px){.hapi-jlpt-language-picker{margin-left:6px;margin-right:6px}.hapi-jlpt-language-title{padding-bottom:5px}.hapi-jlpt-language-tabs button{font-size:11px;padding:4px 9px}.hapi-jlpt-language-swipe{font-size:9px}}
