* { box-sizing: border-box; }
body { margin: 0; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; background: #faf9f7; color: #333; line-height: 1.6; }
a { color: #c1123f; text-decoration: none; }
a:hover { text-decoration: underline; }

header { border-bottom: 1px solid #e7e5e4; background: #fff; }
.bar { max-width: 720px; margin: 0 auto; padding: 12px 16px; display: flex; justify-content: space-between; align-items: center; }
.logo { font-size: 1.25rem; font-weight: 600; color: #1c1917; }
.logo b { color: #c1123f; font-weight: 600; }
nav a { margin-left: 16px; font-size: .9rem; color: #78716c; }
main { max-width: 720px; margin: 0 auto; padding: 24px 16px; }
footer { max-width: 720px; margin: 0 auto; padding: 40px 16px; font-size: .75rem; color: #a8a29e; }

input[type=text] { width: 100%; padding: 12px 16px; font-size: 1.1rem; border: 1px solid #d6d3d1; border-radius: 10px; outline: none; }
input[type=text]:focus { border-color: #c1123f; }
.hint { margin-top: 32px; text-align: center; color: #a8a29e; font-size: .9rem; }

ul.results { list-style: none; margin: 24px 0 0; padding: 0; }
ul.results li { border-top: 1px solid #f0efed; }
ul.results a { display: block; padding: 12px 8px; color: inherit; }
ul.results a:hover { background: #fff; text-decoration: none; }
.head { font-size: 1.25rem; font-weight: 600; color: #1c1917; }
.read { font-size: .9rem; color: #78716c; margin-left: 8px; }
.badge { display: inline-block; font-size: .7rem; padding: 2px 6px; border-radius: 4px; margin-left: 6px; }
.badge.jlpt { background: #ecfdf5; color: #047857; }
.badge.common { background: #fffbeb; color: #b45309; }
.badge.freq { background: #f5f5f4; color: #57534e; }
.gloss { margin: 2px 0 0; font-size: .9rem; color: #57534e; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

.back { font-size: .85rem; color: #a8a29e; }
.entry-head { font-size: 2.5rem; font-weight: 600; color: #1c1917; margin: 8px 0 0; }
.entry-read { font-size: 1.25rem; color: #78716c; margin-left: 12px; }
.badges { margin: 8px 0; }
ol.senses { margin: 24px 0 0; padding-left: 20px; }
ol.senses li { margin-bottom: 14px; }
.pos { font-size: .75rem; color: #c1123f; margin-bottom: 2px; }

h1 { color: #1c1917; font-weight: 600; }
.card { border: 1px solid #e7e5e4; background: #fff; border-radius: 10px; padding: 16px; margin-top: 12px; }

.examples { margin-top: 28px; }
.examples h2 { font-size: 1rem; font-weight: 600; color: #57534e; border-top: 1px solid #f0efed; padding-top: 16px; }
.examples h2 .src { font-weight: 400; font-size: .8rem; color: #a8a29e; }
.ex { margin: 14px 0; }
.ex .jp { font-size: 1.15rem; color: #1c1917; }
.ex .id { font-size: .9rem; color: #78716c; margin-top: 2px; }
ruby rt { font-size: .5em; color: #a8a29e; font-weight: 400; }
