.kb{display:grid;gap:2px;max-width:420px;margin:0 auto 1rem;padding:2px;background:#2d2a4a;border-radius:14px;overflow:hidden}.kb__row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2px}.kb__cell{display:flex;flex-direction:column;align-items:center;gap:.1rem;min-width:0;padding:.55rem .3rem;background:var(--color-card, #fff);text-align:center}.kb__cell:first-child{border-radius:0}.kb__cell.is-center{background:var(--color-surface, #FFF5F8)}.kb__cell.is-bad{background:#f1f1ec}.kb__cell.is-good{background:#e3f4ee}.kb__cell.is-mark .kb__star{text-decoration:underline;text-decoration-thickness:3px;text-decoration-color:#ffc845;text-underline-offset:4px}.kb__dir{font-size:.7rem;color:var(--color-text-muted)}.kb__star{font-family:var(--font-serif);font-size:.95rem;font-weight:700;line-height:1.35}.kb__bad{font-size:.66rem;line-height:1.35;color:#a33a2e;font-weight:700}.kb__good{font-size:.66rem;color:#1f6b52;font-weight:700}.kb--sm{max-width:none;margin:0;border-radius:10px}.kb--sm .kb__cell{padding:.3rem .15rem}.kb--sm .kb__star{font-size:.82rem}.kb--sm .kb__dir,.kb--sm .kb__bad,.kb--sm .kb__good{font-size:.6rem}[data-theme=dark] .kb__cell.is-bad{background:#2a2833}[data-theme=dark] .kb__cell.is-good{background:#183a31}[data-theme=dark] .kb__bad{color:#ffa99e}[data-theme=dark] .kb__good{color:#8fe3c6}.kb-legend{margin:0 auto 1.25rem;max-width:420px;font-size:.78rem;color:var(--color-text-muted);text-align:center}.ky-table td,.ky-table th{white-space:nowrap}.ky-table td.ky-wrap{white-space:normal;min-width:9rem}.ky-good{font-weight:700;color:#1f6b52}.ky-both{display:inline-block;padding:.05rem .5rem;border-radius:999px;background:#fff1c9;color:#2d2a4a;font-weight:700}.ky-none{color:var(--color-text-muted)}.ky-bad{font-size:.8rem;line-height:1.6}.ky-bad b{font-weight:700}[data-theme=dark] .ky-good{color:#8fe3c6}.ky-table tr.is-hl th,.ky-table tr.is-hl td{background:var(--ai-soft)}.ky-table thead th{white-space:nowrap}.ky-sticky th:first-child{position:sticky;left:0;z-index:1;background:var(--color-bg, #FCEBF0)}.ky-sticky tr.is-hl th:first-child{background:var(--color-bg, #FCEBF0)}.ky-months{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.9rem;margin-top:.75rem}.ky-months figure{margin:0;min-width:0}.ky-months figcaption{font-size:.78rem;font-weight:700;margin-bottom:.3rem}.ky-details{margin:0 0 1rem;padding:.75rem 1rem;border:1px solid var(--color-border);border-radius:12px;background:var(--color-card, #fff)}.ky-details summary{cursor:pointer;font-weight:700;font-size:.92rem}.ky-dirs{list-style:none;margin:0 0 1rem;padding:0;display:grid;gap:.5rem}.ky-dirs li{padding:.7rem .9rem;border:1px solid var(--color-border);border-radius:12px;background:var(--color-card, #fff);font-size:.9rem;line-height:1.8}.ky-dirs li strong{font-family:var(--font-serif);font-size:1.02rem;margin-right:.4rem}.ky-page .by-tag__year{font-size:2.2rem;white-space:nowrap}.ky-page .by-section p a,.ky-page .by-section td a,.ky-page .by-section li a,.ky-page .by-callout a{text-decoration:underline;text-decoration-color:var(--color-border);text-underline-offset:3px}.ky-calc{margin-top:1.5rem;padding:1.1rem 1rem 1.2rem;border:3px solid #2D2A4A;border-radius:20px;box-shadow:5px 5px #2d2a4a;background:var(--color-card, #fff)}.ky-calc h2{margin:0 0 .75rem;font-family:var(--font-serif);font-size:1.1rem;font-weight:700}.ky-calc__row{display:flex;flex-wrap:wrap;gap:.75rem;align-items:flex-end}.ky-calc label{display:grid;gap:.25rem;font-size:.8rem;font-weight:700}.ky-calc input{min-height:44px;padding:.4rem .6rem;border:2px solid #2D2A4A;border-radius:10px;background:#fff;color:#2d2a4a;font-size:1rem}.ky-calc input[type=date]{min-width:10.5rem}.ky-calc button{min-height:44px;padding:.4rem 1.2rem;border:2px solid #2D2A4A;border-radius:999px;background:#ffc845;color:#2d2a4a;font-weight:700;font-size:.95rem;box-shadow:2px 2px #2d2a4a;cursor:pointer}.ky-calc__hint{margin:.6rem 0 0;font-size:.78rem;color:var(--color-text-muted);line-height:1.7}.ky-result{margin-top:1rem}.ky-result[hidden]{display:none}.ky-result__error{color:#a33a2e;font-weight:700;font-size:.9rem}[data-theme=dark] .ky-result__error{color:#ffa99e}.ky-result p{font-size:.9rem;line-height:1.85;margin:.6rem 0 0}.ky-result a{color:var(--ai)}
