@import url('/fonts.css');
:root{--paper:#f6f5f0;--white:#fffefa;--ink:#273b31;--text:#3e483f;--muted:#60655b;--line:#dddcd2;--green:#2e4c3b;--soft:#e9ede3;--orange:#b57958;--serif:Georgia,'Times New Roman',serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:20px}body{margin:0;background:var(--paper);color:var(--ink);font-family:'Golos Text',Arial,sans-serif;font-size:14px;line-height:1.55}button,input,select{font:inherit}button,a,input{ -webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #b57958;outline-offset:4px}button{border:0}button:disabled{cursor:default}p,h1,h2,h3{margin:0}::selection{background:#d7e0ca} .skip{position:absolute;top:-60px;left:16px;padding:10px;background:var(--green);color:white;z-index:100}.skip:focus{top:8px}.header{max-width:1440px;margin:auto;height:100px;padding:0 6%;display:flex;align-items:center;gap:32px;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:12px;font-size:19px;font-weight:650;letter-spacing:2px;line-height:1.4;flex-shrink:0}.brand-mark{font-family:'Noto Serif JP',serif;font-size:31px;display:grid;place-items:center;border:1px solid #66775f;border-radius:50%;width:48px;height:48px;letter-spacing:0}.brand small{display:block;font-size:8px;font-weight:500;letter-spacing:1.4px;color:var(--muted)}.header nav{display:flex;gap:32px;align-self:stretch;margin:auto}.nav-link{background:none;font-size:13px;color:var(--muted);padding:3px 0 0;position:relative}.nav-link.active{color:var(--ink);font-weight:550}.nav-link.active:after{position:absolute;content:'';height:2px;background:var(--green);bottom:0;left:0;right:0}.nav-link span{font-size:10px;margin-left:4px;background:#e5e8de;border-radius:50%;padding:3px 6px}.source-top{border:1px solid var(--line);border-radius:5px;padding:9px 13px;font-size:12px;white-space:nowrap}.source-top span{margin-left:14px;font-size:17px}.hero{max-width:1280px;margin:auto;display:grid;grid-template-columns:1.25fr 1fr;gap:20px;padding:45px 4.5% 36px;align-items:center}.eyebrow{font-size:10px;letter-spacing:1.6px;display:flex;align-items:center;gap:10px;color:#5d6655;font-weight:500}.dot{width:5px;height:5px;background:var(--orange);border-radius:50%}.eyebrow-line{height:1px;width:24px;background:#c1c5b7}.hero h1{font-size:clamp(34px,3.5vw,49px);line-height:1.15;font-weight:450;letter-spacing:-2px;margin:21px 0 18px}.hero h1 em{font-family:var(--serif);font-size:1.11em;color:#5a6752;font-weight:400;letter-spacing:-1.8px}.hero-copy>p{font-size:13px;color:var(--muted);line-height:1.8}.hero-bottom{display:flex;gap:19px;margin-top:24px;align-items:center;font-size:13px;color:#5d6654}.hero-bottom b{font-size:10px;font-weight:450;color:#5e6659;margin-left:5px}.hero-bottom i{width:1px;height:14px;background:var(--line)}.hero-art{align-self:stretch;display:flex;align-items:center;max-width:480px}.hero-art svg{width:100%;max-height:305px}.workspace{max-width:1280px;margin:0 auto 60px;display:grid;grid-template-columns:218px 1fr;border-top:1px solid var(--line);min-height:670px}.sidebar{padding:29px 25px 20px 0;border-right:1px solid var(--line)}.side-title{font-size:10px;font-weight:600;letter-spacing:1.6px;margin-bottom:16px}.audience-switch{display:flex;padding:3px;background:#eaeae1;border-radius:6px;gap:2px}.audience-switch button{background:transparent;font-size:11px;flex:1;padding:7px 4px;border-radius:4px;color:var(--muted)}.audience-switch button.selected{background:var(--white);color:var(--ink);box-shadow:0 1px 4px #1b34240d}.rank-caption{font-size:9px;letter-spacing:1.2px;color:var(--muted);margin:26px 0 12px}.grade{display:flex;align-items:center;width:100%;padding:10px 12px;text-align:left;gap:10px;background:transparent;border-radius:5px;margin:3px 0;color:#5f6657;font-size:12px}.grade .rank-dot{width:7px;height:7px;border:1px solid #a8ad9e;border-radius:50%}.grade .rank-jp{font-size:11px;margin-left:auto;opacity:1}.grade:hover{background:#eaece2}.grade.active{background:var(--green);color:#fffefa}.grade.active .rank-dot{background:#d3ddc8;border-color:#d3ddc8}.grade.active .rank-jp{color:#d2dcc8}.grade[data-rank="a-shodan"],.grade[data-rank="c-shodan"]{margin-top:16px}.side-note{border-top:1px solid var(--line);margin-top:30px;padding:22px 9px}.side-note>span{font-family:'Noto Serif JP',serif;font-size:23px;color:#5f6656;letter-spacing:6px}.side-note p{font-size:10px;line-height:1.9;color:#62645b;margin-top:9px}.main-content{padding:30px 0 20px 35px;min-width:0}.content-header{display:flex;justify-content:space-between;gap:25px;align-items:center;margin-bottom:22px}.breadcrumb{font-size:10px;color:var(--muted);margin-bottom:8px}.breadcrumb span{margin:0 7px;color:#63645b}.title-line{display:flex;align-items:center;gap:15px}.title-line h2{font-size:32px;font-weight:450;line-height:1.1;letter-spacing:-1px}.rank-kanji{font-size:18px;font-family:'Noto Serif JP',serif;color:#5f6656;border-left:1px solid var(--line);padding-left:15px}.grade-subtitle{font-size:11px;color:var(--muted);margin-top:8px}.print-btn{background:transparent;border:1px solid var(--line);border-radius:5px;font-size:11px;padding:8px 13px;white-space:nowrap;display:flex;gap:8px;align-items:center}.icon{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle;flex-shrink:0}.progress-panel{background:#e9ece2;border:1px solid #dde2d2;border-radius:7px;padding:16px 19px;display:flex;align-items:center;gap:22px;margin-bottom:17px}.progress-symbol{border:1px solid #b7c4ac;color:#54694e;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;flex-shrink:0}.progress-body{flex:1}.progress-top{display:flex;justify-content:space-between;gap:8px;font-size:11px;margin-bottom:9px}.progress-top strong{font-weight:500}.progress-top span{font-size:10px;color:var(--muted)}.bar{height:4px;background:#d6decb;border-radius:5px;overflow:hidden}.bar>span{height:100%;background:#6e865f;display:block;transition:width .3s}.progress-percent{font-family:var(--serif);font-size:25px;color:#56694e;line-height:1}.grade-note{display:flex;align-items:flex-start;gap:9px;font-size:10px;line-height:1.7;color:#626558;margin:0 0 23px;padding:0 2px}.grade-note .icon{width:14px;height:14px;margin-top:2px}.list-toolbar{display:flex;align-items:center;justify-content:space-between;gap:15px;padding-bottom:13px;border-bottom:1px solid var(--line)}.tabs{display:flex;gap:18px;align-self:stretch;flex-wrap:wrap}.tab{background:none;padding:3px 0 8px;color:var(--muted);font-size:11px;position:relative}.tab.active{color:var(--green);font-weight:550}.tab.active:after{position:absolute;content:'';height:2px;background:var(--green);bottom:-14px;left:0;right:0}.tab small{font-size:9px;margin-left:5px;color:#61655b}.search{position:relative;display:flex;align-items:center;gap:7px;color:#62645a}.search input{background:var(--white);border:1px solid var(--line);border-radius:5px;padding:8px 10px 8px 30px;width:195px;font-size:10px;outline-offset:2px;color:var(--ink)}.search .icon{position:absolute;left:9px;width:13px;height:13px}.section-label{font-size:9px;letter-spacing:1.2px;color:#616557;display:flex;justify-content:space-between;align-items:center;margin:18px 0 10px}.section-label select{background:none;border:0;color:#5f6558;font-size:10px;max-width:160px;padding:3px}.tech-list{display:grid;gap:9px}.tech-card{display:grid;grid-template-columns:26px 1fr auto auto;align-items:center;gap:13px;border:1px solid var(--line);border-radius:7px;padding:17px 16px;background:var(--white);transition:border-color .2s,box-shadow .2s}.tech-card:hover{border-color:#aebba3;box-shadow:0 3px 12px #33453007}.item-num{font-size:10px;color:#626557;font-variant-numeric:tabular-nums;align-self:start;padding-top:4px}.card-open{background:transparent;text-align:left;padding:0;min-width:0}.card-heading{display:flex;align-items:baseline;flex-wrap:wrap;gap:9px}.card-heading h3{font-size:13px;font-weight:550;letter-spacing:-.15px}.variation{font-size:9px;color:#616558;white-space:nowrap}.card-jp{font-family:'Noto Serif JP',serif;font-size:12px;color:#5a6751;letter-spacing:.3px;margin-top:3px}.card-ru{font-size:10px;color:#626558;margin-top:6px;line-height:1.6}.type-badge{font-size:8px;letter-spacing:.3px;padding:4px 7px;border:1px solid #e1e5d8;border-radius:3px;white-space:nowrap;color:#5c6750;background:#f2f4ec}.type-badge.throw{color:#7d5d45;border-color:#eaded0;background:#faf4ed}.type-badge.control{color:#55666e;background:#eff3f3;border-color:#dce4e4}.check-btn{width:22px;height:22px;border:1px solid #d6d9cd;border-radius:50%;background:none;color:white;font-size:12px;display:grid;place-items:center;padding:0}.check-btn.done{background:#6d855f;border-color:#6d855f}.check-btn .icon{width:13px;height:13px}.card-done .card-heading h3{color:#5c6656}.card-bottom{display:flex;align-items:center;gap:10px;margin-top:8px;font-size:9px;color:#626558}.arrow-label{margin-left:auto;white-space:nowrap;font-size:10px;color:#5a6751}.legend{font-size:10px;color:var(--muted);padding:13px 0;border-top:1px solid var(--line);margin-top:15px;line-height:1.8}.empty{border:1px dashed #cbd1be;border-radius:6px;padding:40px;text-align:center;color:var(--muted)}.empty p{margin-bottom:12px}.link-button{background:none;padding:0;border-bottom:1px solid currentColor;font-size:12px;color:var(--green)}.end-note{display:flex;align-items:center;justify-content:center;gap:10px;font-size:10px;color:#606559;padding-top:24px}.sources{max-width:1280px;margin:auto;padding:35px 0 43px;border-top:1px solid var(--line);display:grid;grid-template-columns:1.1fr 1fr;gap:80px}.sources h2{font-size:26px;font-family:var(--serif);font-weight:400;margin:10px 0 15px}.sources p{font-size:11px;line-height:1.9;color:var(--muted);margin-bottom:10px}.source-links{padding-top:15px}.source-links a{display:flex;justify-content:space-between;font-size:11px;padding:13px 0;border-bottom:1px solid var(--line);gap:12px}.source-links a:hover{color:#825b3f}.source-links a span{color:#626559;white-space:nowrap;font-size:10px}footer{max-width:1280px;border-top:1px solid var(--line);margin:auto;display:flex;align-items:center;gap:25px;padding:22px 0 30px;color:#61655a;font-size:10px}.footer-brand{font-size:21px;display:flex;align-items:center;gap:10px}.footer-brand b{font-size:10px;letter-spacing:1px;font-weight:550}footer a{margin-left:auto}dialog{width:min(880px,calc(100vw - 32px));max-height:92vh;border:1px solid var(--line);border-radius:12px;padding:0;background:var(--white);color:var(--ink);box-shadow:0 20px 100px #13291c40;overscroll-behavior:contain}dialog::backdrop{background:#1e3029aa;backdrop-filter:blur(3px)}.detail-top{padding:27px 32px 22px;border-bottom:1px solid var(--line);position:relative}.close-btn{position:absolute;right:20px;top:17px;width:31px;height:31px;display:grid;place-items:center;border-radius:50%;background:#eeefe7}.detail-eyebrow{font-size:9px;color:var(--muted);letter-spacing:1px;margin-bottom:15px;padding-right:35px}.detail-top h2{font-size:23px;font-weight:500;line-height:1.35;padding-right:20px}.detail-jp{font-family:'Noto Serif JP',serif;font-size:23px;color:#57684b;line-height:1.7;margin-top:10px}.detail-kana{font-size:12px;color:#606654;margin-top:5px}.readings{display:flex;gap:25px;flex-wrap:wrap;margin-top:16px}.reading small{display:block;color:#61655a;font-size:8px;letter-spacing:1px;margin-bottom:3px}.reading{font-size:12px}.audio-btn{display:flex;align-items:center;gap:8px;border:1px solid #cfd8c4;border-radius:5px;background:#f1f4e9;color:#556949;padding:7px 10px;font-size:10px;align-self:center;margin-left:auto}.detail-body{padding:23px 32px 28px}.detail-body>p{font-size:13px;line-height:1.9;color:#5f6558}.detail-section-title{font-size:11px;font-weight:600;letter-spacing:.5px;margin:24px 0 12px;display:flex;align-items:center;gap:10px}.detail-section-title small{font-size:9px;font-weight:400;color:#62645a;margin-left:auto}.variant-buttons{display:flex;gap:7px;align-items:center;margin:18px 0 0;font-size:11px;color:var(--muted);flex-wrap:wrap}.variant-buttons button{border:1px solid #d9dfce;background:#f8f8f0;padding:5px 10px;border-radius:4px;font-size:10px}.variant-buttons button.active{color:white;background:var(--green);border-color:var(--green)}.variant-note{font-size:10px!important;background:#f1f3eb;padding:11px 13px;border-left:2px solid #a3b794;margin-top:12px;line-height:1.75!important;color:#5d6655!important}.scheme{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid #dfe4d4;border-radius:7px;overflow:hidden;background:#f1f3eb}.phase{padding:11px 12px 14px;border-right:1px solid #dfe4d4}.phase:last-child{border-right:0}.phase svg{width:100%;height:130px;display:block}.phase-header{font-size:9px;color:#5b6751;display:flex;align-items:center;gap:7px}.phase-header b{border:1px solid #c5ceba;border-radius:50%;width:18px;height:18px;display:grid;place-items:center;font-size:9px;font-weight:450}.phase p{font-size:10px;line-height:1.7;color:#5c6754;margin-top:5px}.scheme-legend{display:flex;gap:18px;font-size:9px;color:#5f6558;margin-top:8px}.scheme-legend span{display:flex;align-items:center;gap:5px}.scheme-legend i{width:7px;height:7px;border-radius:50%;background:#476647}.scheme-legend i.uke{background:#b98d71}.detail-focus{font-size:11px;color:#5f6656;line-height:1.8;border-left:2px solid #b4bda4;padding-left:13px;margin:20px 0}.detail-footer{display:flex;justify-content:space-between;gap:15px;align-items:center;border-top:1px solid var(--line);padding-top:18px;flex-wrap:wrap}.primary-btn{background:var(--green);color:white;border-radius:5px;padding:10px 16px;font-size:11px;display:flex;align-items:center;gap:9px}.detail-source{font-size:10px;color:#5d6652}.detail-terms{display:flex;gap:7px;flex-wrap:wrap}.term-chip{border:1px solid var(--line);border-radius:4px;padding:7px 10px;font-size:10px;background:#fafaf4;color:#5f6653}.detail-caution{font-size:9px;line-height:1.8;color:#63645b;margin-top:14px}#toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%,20px);background:var(--green);color:#fffefa;padding:12px 20px;border-radius:6px;font-size:12px;opacity:0;pointer-events:none;z-index:20;transition:opacity .2s,transform .2s;max-width:90vw;text-align:center}#toast.show{opacity:1;transform:translate(-50%,0)}.glossary-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.glossary-card{border:1px solid var(--line);background:var(--white);border-radius:6px;padding:17px;text-align:left;width:100%}.glossary-card h3{font-size:13px;font-weight:500}.glossary-card .card-jp{font-size:20px;margin:8px 0}.glossary-card p{font-size:11px;color:var(--muted)}.glossary-card .reading-text{color:#5f6656;font-size:10px;margin-top:7px}.view-intro{font-size:12px;color:var(--muted);margin-bottom:22px;max-width:620px}.glossary-search{margin-bottom:22px}.glossary-search input{width:100%;padding:11px 15px 11px 35px;font-size:12px}.progress-grade{padding:18px;border:1px solid var(--line);border-radius:6px;margin-bottom:10px;background:var(--white)}.progress-grade-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:11px}.progress-grade-top button{background:none;padding:0;font-size:14px;font-weight:500}.progress-grade-top span{font-size:10px;color:var(--muted)}.progress-actions{display:flex;gap:18px;align-items:center;margin:20px 0;flex-wrap:wrap}.quiet-btn{padding:8px 12px;border:1px solid var(--line);background:transparent;border-radius:4px;font-size:11px}.muted{font-size:10px;color:var(--muted)}.print-list{display:none}
.detail-body>.detail-caution{font-size:9px;line-height:1.8;color:#626559;margin-bottom:15px}
@media(min-width:1450px){.hero{padding-left:0;padding-right:0}.header{padding-left:calc((100% - 1280px)/2);padding-right:calc((100% - 1280px)/2)}}@media(max-width:1370px){.workspace,.sources,footer{margin-left:6%;margin-right:6%}.hero{padding-left:6%;padding-right:6%}}@media(max-width:1050px){.header nav{gap:18px}.brand{font-size:16px}.brand small{font-size:7px}.workspace{grid-template-columns:180px 1fr}.sidebar{padding-right:18px}.main-content{padding-left:24px}.hero h1{font-size:38px}.hero-bottom{gap:10px}.hero-bottom b{font-size:9px}.tabs{gap:12px}.search input{width:160px}.tech-card{gap:9px;padding:15px 12px}.type-badge{display:none}.sources{gap:35px}.card-heading h3{font-size:12px}}
@media(max-width:760px){.header{height:77px;padding:0 5%;gap:15px;flex-wrap:wrap}.brand{font-size:15px;letter-spacing:1.6px}.brand-mark{width:36px;height:36px;font-size:25px}.brand small{font-size:6px;letter-spacing:.9px}.header nav{gap:14px;margin:0 0 0 auto}.nav-link{font-size:10px}.nav-link span{display:none}.source-top{display:none}.hero{padding:28px 5% 30px;grid-template-columns:1fr .75fr;gap:0}.hero h1{font-size:31px;letter-spacing:-1.3px;margin-top:17px}.hero h1 em{letter-spacing:-1px}.hero .eyebrow{font-size:8px;gap:6px;letter-spacing:1px}.eyebrow-line{width:12px}.hero-copy>p{font-size:11px}.desktop-br{display:none}.hero-bottom{display:none}.hero-art{margin-left:-15px;align-self:center}.hero-art svg{min-width:180px}.workspace{margin:0 5% 35px;display:block}.sidebar{border-right:0;border-bottom:1px solid var(--line);padding:16px 0 13px;display:flex;align-items:center;flex-wrap:wrap;gap:14px}.side-title{font-size:8px;margin:0}.audience-switch{width:185px;margin-left:auto}.audience-switch button{font-size:10px;padding:5px 4px}.rank-caption,.side-note{display:none}#grades{display:flex;gap:7px;overflow-x:auto;width:100%;padding:0 2px 5px;scrollbar-width:thin;scrollbar-color:#bdc6b1 transparent}.grade{width:auto;flex-shrink:0;gap:7px;font-size:11px;padding:7px 12px;margin:0!important;border:1px solid var(--line)}.grade .rank-jp{display:none}.grade .rank-dot{width:5px;height:5px}.main-content{padding:23px 0 10px}.content-header{margin-bottom:18px}.title-line h2{font-size:29px}.grade-subtitle{font-size:11px}.print-btn{font-size:10px;padding:7px 9px}.progress-panel{gap:13px;padding:13px}.progress-symbol{width:30px;height:30px}.progress-percent{font-size:23px}.list-toolbar{flex-wrap:wrap;gap:18px}.tabs{gap:16px;width:100%}.tab{font-size:11px;padding-bottom:3px}.tab.active:after{bottom:-7px}.search{width:100%}.search input{width:100%;font-size:11px;padding:9px 10px 9px 30px}.tech-card{grid-template-columns:19px 1fr 22px;gap:10px;padding:15px 12px}.card-heading h3{font-size:12px}.card-jp{font-size:11px;overflow-wrap:anywhere}.card-ru{font-size:10px}.arrow-label{font-size:9px}.card-bottom{font-size:8px}.sources{grid-template-columns:1fr;margin:0 5%;gap:10px;padding:28px 0}.sources h2{font-size:24px}.sources p{font-size:10px}.source-links{padding-top:0}.source-links a{font-size:10px}.source-links a span{font-size:9px}footer{margin:0 5%;flex-wrap:wrap;gap:9px;font-size:8px}.footer-brand{font-size:19px}.footer-brand b{font-size:9px}footer p{order:3;width:100%}.detail-top{padding:24px 20px 19px}.detail-top h2{font-size:19px}.detail-jp{font-size:20px}.detail-body{padding:18px 20px 23px}.detail-body>p{font-size:12px}.readings{gap:12px}.audio-btn{margin-left:0}.scheme{grid-template-columns:1fr}.phase{border-right:0;border-bottom:1px solid #dfe4d4;display:grid;grid-template-columns:110px 1fr;column-gap:15px;align-items:center}.phase:last-child{border-bottom:0}.phase-header{grid-column:2;grid-row:1;align-self:end}.phase svg{grid-column:1;grid-row:1/3;height:110px}.phase p{grid-column:2;grid-row:2;align-self:start}.detail-section-title small{font-size:8px}.glossary-grid{grid-template-columns:1fr}.glossary-card .card-jp{font-size:19px}.detail-footer{gap:12px}.detail-caution{font-size:9px}.close-btn{right:12px;top:12px}}
@media(max-width:440px){.header{padding:0 4%;gap:10px}.brand{gap:7px;font-size:13px}.brand small{font-size:5.5px}.header nav{gap:11px}.nav-link{font-size:9px}.hero{grid-template-columns:1fr}.hero-art{display:none}.hero h1{font-size:35px}.hero-copy>p{max-width:300px}.hero .eyebrow{font-size:8px}.hero-bottom{display:flex;margin-top:19px}.hero-bottom b{font-size:9px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
@media print{body{background:white;color:black;font-size:11px}.header,.hero,.sidebar,.sources,footer,.progress-panel,.grade-note,.list-toolbar,.section-label,.end-note,dialog,#toast,.check-btn,.print-btn,.card-bottom,.legend{display:none!important}.workspace{display:block;margin:0;border:0;min-height:0}.main-content{padding:0}.tech-list{gap:5px}.tech-card{break-inside:avoid;box-shadow:none;grid-template-columns:25px 1fr;padding:9px;background:white;border-color:#ccc}.card-heading h3{font-size:12px}.card-jp{font-size:11px}.card-ru{font-size:10px}.type-badge{display:none}.content-header{margin-bottom:20px}.print-list{display:block;font-size:9px;color:#555;margin-top:20px}.progress-grade{break-inside:avoid}.glossary-card{break-inside:avoid}}

.account-menu{position:relative;flex-shrink:0;margin-left:-10px}.account-menu>summary{list-style:none;cursor:pointer;width:32px;height:32px;border:1px solid #cfd7c3;border-radius:50%;display:grid;place-items:center;font-size:12px;color:#576949;background:#edf1e6}.account-menu>summary::-webkit-details-marker{display:none}.account-panel{position:absolute;right:0;top:44px;width:240px;padding:17px;background:#fffefa;border:1px solid #d9dece;border-radius:7px;box-shadow:0 8px 30px #24392b18;z-index:10}.account-panel strong{font-size:12px;display:block;overflow-wrap:anywhere;font-weight:550}.account-panel small{font-size:9px;color:#5f6655;display:block;margin:4px 0 13px}.account-panel a,.account-panel button{display:block;font-size:11px;padding:8px 0;border:0;background:none;text-align:left;color:#58684a}.account-panel a:hover,.account-panel button:hover{color:#7a5e48}
@media(max-width:760px){.print-btn{display:none}.header{height:100px;display:grid;grid-template-columns:1fr auto;gap:0;padding-top:10px;padding-bottom:0}.header nav{grid-column:1/3;grid-row:2;justify-content:center;margin:0;align-self:stretch;min-height:35px}.account-menu{grid-column:2;grid-row:1;margin:0}.account-panel{top:39px}.brand{grid-column:1;grid-row:1}.header .source-top{display:none}}
@media print{.account-menu{display:none}}
.next-exam{margin-top:22px;padding:12px;border:1px solid #b9cbb0;border-radius:6px;background:#edf2e7;display:grid;gap:5px}.next-exam>span{font-size:8px;letter-spacing:1px;color:#57684f}.next-exam>button{padding:0;background:none;text-align:left;font-size:14px;font-weight:600}.next-exam>button b{float:right;font-weight:400}.next-exam small{font-size:10px;color:#5c6755;line-height:1.5;overflow-wrap:anywhere}.grade.recommended:not(.active){border:1px solid #a3b99a;color:#39563e}.next-star{font-size:10px;color:#56694c}.grade.active .next-star{color:#314b32}.profile-level{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:12px 0;margin-bottom:8px}.level-field{display:grid;gap:5px;font-size:10px;color:var(--muted);margin-bottom:9px}.level-field[hidden]{display:none}.level-field select,.level-field input{width:100%;border:1px solid var(--line);border-radius:4px;padding:7px;background:var(--paper);color:var(--ink);font:inherit;font-size:11px}.account-panel .profile-level button{color:var(--green);font-weight:600}.level-message{display:block;font-size:10px;color:var(--muted);overflow-wrap:anywhere}@media(max-width:760px){.next-exam{width:100%;margin:0;grid-template-columns:1fr auto;align-items:center;padding:8px 10px}.next-exam>span{grid-column:1}.next-exam>button{grid-column:2;grid-row:1/3;font-size:12px}.next-exam>button b{float:none;margin-left:8px}.next-exam small{grid-column:1;font-size:9px}.grade.recommended:not(.active){border-color:#8faa80}}

[hidden]{display:none!important}.account-login{font-size:12px;white-space:nowrap;border:1px solid var(--line);border-radius:5px;padding:7px 12px}.progress-status{font-size:10px;color:var(--muted);margin:0 0 15px}.progress-status button{margin-left:12px}.check-btn:disabled,.primary-btn:disabled,.quiet-btn:disabled{opacity:.5}body.guest .tech-card{grid-template-columns:26px 1fr auto}@media(max-width:1050px){body.guest .tech-card{grid-template-columns:26px 1fr}}@media(max-width:760px){.account-login{grid-column:2;grid-row:1;font-size:11px}body.guest .tech-card{grid-template-columns:19px 1fr}}@media print{.account-login,.progress-status{display:none}}

.exercise-review{margin-top:10px;padding:8px 10px;border-left:2px solid #839875;background:var(--soft);font-size:10px;text-align:left;overflow-wrap:anywhere}.exercise-review>strong{display:block;font-weight:550}.exercise-review>span{color:var(--muted)}.exercise-review>p{margin:5px 0 0;white-space:pre-wrap}.exercise-review.review-cancelled{border-color:#b57958}.detail-body>.exercise-review{font-size:12px;margin-bottom:15px}@media print{.exercise-review{display:none}}

/* The heading owns the native open button; its overlay preserves the card hit area. */
.tech-card{position:relative}.card-copy{min-width:0}.card-open::after{content:"";position:absolute;inset:0;border-radius:7px}.check-btn{position:relative;z-index:1}.card-open:focus-visible::after{outline:3px solid #b57958;outline-offset:3px}
@media print{.card-open::after{display:none}}

body.detail-open{overflow:hidden}
.hero-kanji{writing-mode:vertical-rl}
.progress-grade [data-progress-confirmed],.progress-grade [data-progress-extra]{margin-top:9px}

/* Static widths keep progress indicators compatible with style-src self. */
.bar>.progress-width-0{width:0%}
.bar>.progress-width-1{width:1%}
.bar>.progress-width-2{width:2%}
.bar>.progress-width-3{width:3%}
.bar>.progress-width-4{width:4%}
.bar>.progress-width-5{width:5%}
.bar>.progress-width-6{width:6%}
.bar>.progress-width-7{width:7%}
.bar>.progress-width-8{width:8%}
.bar>.progress-width-9{width:9%}
.bar>.progress-width-10{width:10%}
.bar>.progress-width-11{width:11%}
.bar>.progress-width-12{width:12%}
.bar>.progress-width-13{width:13%}
.bar>.progress-width-14{width:14%}
.bar>.progress-width-15{width:15%}
.bar>.progress-width-16{width:16%}
.bar>.progress-width-17{width:17%}
.bar>.progress-width-18{width:18%}
.bar>.progress-width-19{width:19%}
.bar>.progress-width-20{width:20%}
.bar>.progress-width-21{width:21%}
.bar>.progress-width-22{width:22%}
.bar>.progress-width-23{width:23%}
.bar>.progress-width-24{width:24%}
.bar>.progress-width-25{width:25%}
.bar>.progress-width-26{width:26%}
.bar>.progress-width-27{width:27%}
.bar>.progress-width-28{width:28%}
.bar>.progress-width-29{width:29%}
.bar>.progress-width-30{width:30%}
.bar>.progress-width-31{width:31%}
.bar>.progress-width-32{width:32%}
.bar>.progress-width-33{width:33%}
.bar>.progress-width-34{width:34%}
.bar>.progress-width-35{width:35%}
.bar>.progress-width-36{width:36%}
.bar>.progress-width-37{width:37%}
.bar>.progress-width-38{width:38%}
.bar>.progress-width-39{width:39%}
.bar>.progress-width-40{width:40%}
.bar>.progress-width-41{width:41%}
.bar>.progress-width-42{width:42%}
.bar>.progress-width-43{width:43%}
.bar>.progress-width-44{width:44%}
.bar>.progress-width-45{width:45%}
.bar>.progress-width-46{width:46%}
.bar>.progress-width-47{width:47%}
.bar>.progress-width-48{width:48%}
.bar>.progress-width-49{width:49%}
.bar>.progress-width-50{width:50%}
.bar>.progress-width-51{width:51%}
.bar>.progress-width-52{width:52%}
.bar>.progress-width-53{width:53%}
.bar>.progress-width-54{width:54%}
.bar>.progress-width-55{width:55%}
.bar>.progress-width-56{width:56%}
.bar>.progress-width-57{width:57%}
.bar>.progress-width-58{width:58%}
.bar>.progress-width-59{width:59%}
.bar>.progress-width-60{width:60%}
.bar>.progress-width-61{width:61%}
.bar>.progress-width-62{width:62%}
.bar>.progress-width-63{width:63%}
.bar>.progress-width-64{width:64%}
.bar>.progress-width-65{width:65%}
.bar>.progress-width-66{width:66%}
.bar>.progress-width-67{width:67%}
.bar>.progress-width-68{width:68%}
.bar>.progress-width-69{width:69%}
.bar>.progress-width-70{width:70%}
.bar>.progress-width-71{width:71%}
.bar>.progress-width-72{width:72%}
.bar>.progress-width-73{width:73%}
.bar>.progress-width-74{width:74%}
.bar>.progress-width-75{width:75%}
.bar>.progress-width-76{width:76%}
.bar>.progress-width-77{width:77%}
.bar>.progress-width-78{width:78%}
.bar>.progress-width-79{width:79%}
.bar>.progress-width-80{width:80%}
.bar>.progress-width-81{width:81%}
.bar>.progress-width-82{width:82%}
.bar>.progress-width-83{width:83%}
.bar>.progress-width-84{width:84%}
.bar>.progress-width-85{width:85%}
.bar>.progress-width-86{width:86%}
.bar>.progress-width-87{width:87%}
.bar>.progress-width-88{width:88%}
.bar>.progress-width-89{width:89%}
.bar>.progress-width-90{width:90%}
.bar>.progress-width-91{width:91%}
.bar>.progress-width-92{width:92%}
.bar>.progress-width-93{width:93%}
.bar>.progress-width-94{width:94%}
.bar>.progress-width-95{width:95%}
.bar>.progress-width-96{width:96%}
.bar>.progress-width-97{width:97%}
.bar>.progress-width-98{width:98%}
.bar>.progress-width-99{width:99%}
.bar>.progress-width-100{width:100%}
