@font-face{font-family:Inter;src:url('/inter.woff2') format('woff2');font-display:swap}
:root{color-scheme:light;--paper:#f7f3ee;--surface:#fffcf7;--ink:#2e2423;--muted:#635550;--line:#d7cdc2;--rust:#963c2e;--brown:#3e302e;--clay:#efd8ce}
*{box-sizing:border-box}
body{margin:0;color:var(--ink);background:var(--paper);font:1rem/1.54 Inter,system-ui,sans-serif}
h1,h2,p{margin:0}
a{color:#8b3628;text-underline-offset:.21em}
a:hover{color:#59251c}
input,select,button{font:inherit;color:inherit;min-width:0;border:1px solid #aea098;border-radius:5px;background:white;min-height:40px;padding:.39rem .55rem}
button,select{cursor:pointer}
button{font-size:.77rem;font-weight:700}
button:disabled{opacity:.55;cursor:default}
button:not(:disabled):hover{background:#f7e4dc}
:focus-visible{outline:3px solid #b05b49;outline-offset:2px}
.wrap{width:min(1170px,calc(100% - 52px));margin-inline:auto}
.top,.footer{display:flex;justify-content:space-between;align-items:center;gap:.7rem;flex-wrap:wrap}
.top{min-height:73px;border-bottom:1px solid var(--line)}
.top>a,.footer>a{font-size:.85rem}
.top .brand{display:flex;gap:.57rem;align-items:center;text-decoration:none;color:var(--ink);font-size:1.22rem;font-weight:760;letter-spacing:-.045em}
.brand b{display:grid;place-items:center;width:31px;height:29px;border-radius:4px;color:#fff4e3;background:var(--rust)}
.intro{display:grid;grid-template-columns:1.62fr 1fr;gap:1rem;align-items:end;padding:clamp(2.5rem,6.2vw,4.4rem) 0 1.95rem}
h1{font:400 clamp(2.85rem,6.8vw,6.5rem)/.91 Georgia,serif;letter-spacing:-.074em}
h1 span{color:var(--rust)}
.intro>p{color:var(--muted);max-width:25rem;padding-bottom:.28rem}
h2{font-size:1.21rem;line-height:1.2;letter-spacing:-.035em}
.workbench,.ranking,.sensitivity{border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:clamp(.9rem,2.6vw,1.65rem);min-width:0}
.toolbar,.controls{display:flex;align-items:center;justify-content:space-between;gap:.55rem;flex-wrap:wrap}
.toolbar p,.lesson p{color:var(--muted);font-size:.87rem;margin-top:.32rem}
.table-scroll{overflow:auto;margin:.95rem 0 .72rem;padding:.2rem;scroll-padding:.35rem}
#scroll-hint{font-size:.76rem;color:var(--muted);margin:.6rem 0 -.55rem}
table{width:100%;border-spacing:0;border-collapse:separate;table-layout:fixed}
th,td{padding:.42rem .48rem;border:1px solid var(--line);border-width:0 1px 1px 0;text-align:left}
th{width:159px}
th:first-child,td:first-child{border-left-width:1px}
th:first-child{position:sticky;left:0;z-index:1}
th:first-child:focus-within{z-index:2}
thead th{border-top-width:1px;background:#eee3dc;vertical-align:top;font-size:.82rem}
tbody th{background:#f9eee6}
table input{width:100%;min-height:36px}
table .score{font-variant-numeric:tabular-nums}
.weight{display:flex;align-items:center;gap:.35rem;margin-top:.3rem;font-size:.72rem}
.weight input{max-width:4.8rem}
.remove{margin-top:.3rem;background:transparent;border:0;text-decoration:underline;text-underline-offset:.17em;min-height:28px;padding:.15rem .1rem;color:#68483d;font-size:.71rem}
.controls{justify-content:flex-start}
.error{margin:.5rem 0 0;color:#982f25;font-size:.81rem}
.error:empty,#incomplete:empty{margin:0}
.result-grid{display:grid;grid-template-columns:1.08fr 1fr;gap:.85rem;margin-top:.85rem}
.ranking{background:var(--brown);color:#fff5eb;border-color:var(--brown)}
.sensitivity{background:var(--clay)}
ol{list-style:none;padding:0;margin:.76rem 0}
ol:empty{margin:0}
li{margin-bottom:.63rem}
li>div:first-child{display:flex;justify-content:space-between;gap:.35rem;flex-wrap:wrap;font-size:.82rem;overflow-wrap:anywhere}
li strong{min-width:0}
.rail{height:8px;background:#ffffff33;border-radius:4px;margin-top:.24rem}
.rail span{display:block;height:100%;border-radius:4px;background:#ffc18d}
.sensitivity .rail{background:#9e6b5c4a}
.sensitivity .rail span{background:#963c2e}
.sensitivity label{display:inline-grid;gap:.26rem;font-weight:650;font-size:.79rem;margin:.65rem .4rem 0 0;max-width:100%}
.sensitivity select{max-width:16rem}
.sensitivity input{max-width:6rem}
#incomplete,#sensitivity-result{font-size:.81rem;overflow-wrap:anywhere;margin:.62rem 0}
#incomplete{color:#f0ccbc}
#export{background:#fbe6d1;border-color:#fbe6d1;color:#493027;margin-top:.55rem}
#export:hover{background:white}
#export:focus-visible{outline-color:#ffce93}
#download-status{font-size:.78rem;margin-left:.38rem}
.lesson{margin-top:1.55rem;border-top:1px solid var(--line);padding:1.3rem 0}
.lesson a{display:inline-block;font-weight:680;font-size:.89rem;margin-top:.38rem}
.footer{border-top:1px solid var(--line);padding:1.1rem 0}
.guide{padding:clamp(2rem,8vw,5rem) 0;max-width:790px}
.guide h1{font-size:clamp(2.8rem,8vw,5.4rem);margin-bottom:1.35rem}
.guide h2{margin:1.75rem 0 .6rem}
.guide p+p{margin-top:.7rem}
@media(max-width:740px){.intro,.result-grid{grid-template-columns:1fr}.intro{gap:.92rem}.wrap{width:calc(100% - 28px)}.top{min-height:64px}}
@media(max-width:500px){th{width:115px}th:first-child{width:131px}.sensitivity select{max-width:13rem}table input{font-size:.8rem}}
