:root{--lng-ink: #1e2a4a;--lng-ink-2: #2d3d66;--lng-ochre: #b7791f;--lng-ochre-dark: #8f5d12;--lng-paper: #fffdf8;--lng-cream: #f7f2e7;--lng-line: #e6dcc8;--lng-text: #1f2533;--lng-muted: #5f6675;--lng-radius: 10px;--lng-shadow: 0 10px 28px rgba(30, 42, 74, 0.08);--primary: #2d3d66;--primary-dark: #1e2a4a;--border: #e6dcc8;--surface: #ffffff;--shadow-soft: 0 10px 28px rgba(30, 42, 74, 0.08);--surface-muted: #f7f2e7;--text-main: #1f2533;--text-muted: #5f6675;}
.lng-tool{background: var(--lng-paper);border: 1px solid var(--lng-line);border-radius: var(--lng-radius);box-shadow: var(--lng-shadow);padding: 1.25rem 1.25rem 1.5rem;margin: 1.5rem 0 3rem;}
.lng-byline{display: flex;flex-wrap: wrap;justify-content: space-between;gap: 0.25rem 1rem;font-size: 0.82rem;color: var(--lng-muted);padding-bottom: 0.85rem;margin-bottom: 1rem;border-bottom: 1px dashed var(--lng-line);}
.lng-byline .author-link{color: var(--lng-ink-2);font-weight: 600;text-decoration: underline;text-underline-offset: 2px;}
.lng-bar{display: flex;flex-wrap: wrap;align-items: flex-start;gap: 1rem 1.5rem;}
.lng-bar-foot{flex: 1 1 100%;display: flex;flex-wrap: wrap;align-items: center;gap: 0.75rem 1.5rem;padding-top: 1rem;border-top: 1px dashed var(--lng-line);}
.lng-field-inline{display: flex;align-items: center;gap: 0.65rem;}
.lng-field-inline .lng-label{font-size: 0.75rem;font-weight: 700;letter-spacing: 0.07em;text-transform: uppercase;color: var(--lng-muted);}
.lng-field{border: 0;padding: 0;margin: 0;min-width: 0;}
.lng-field-wide{flex: 1 1 420px;}
.lng-field label,.lng-field legend{display: block;font-size: 0.75rem;font-weight: 700;letter-spacing: 0.07em;text-transform: uppercase;color: var(--lng-muted);margin-bottom: 0.4rem;float: none;width: auto;padding: 0;}
.lng-field select{min-width: 210px;background: #fff;color: var(--lng-text);border: 1px solid var(--lng-line);border-radius: 8px;padding: 0.55rem 0.7rem;font-size: 0.95rem;}
.lng-field select:focus{outline: 2px solid var(--lng-ochre);outline-offset: 1px;}
.lng-chips,.lng-seg{display: flex;flex-wrap: wrap;gap: 0.35rem;}
.lng-chips label,.lng-seg label{margin: 0;text-transform: none;letter-spacing: 0;font-size: 0.88rem;font-weight: 600;color: var(--lng-text);}
.lng-chips input,.lng-seg input,.lng-switch input{position: absolute;opacity: 0;pointer-events: none;}
.lng-chips span{display: inline-block;padding: 0.38rem 0.75rem;border: 1px solid var(--lng-line);border-radius: 6px;background: #fff;cursor: pointer;transition: background 0.15s, border-color 0.15s;}
.lng-chips input:checked + span{background: var(--lng-ink);border-color: var(--lng-ink);color: #fff;}
.lng-seg{gap: 0;border: 1px solid var(--lng-line);border-radius: 8px;overflow: hidden;}
.lng-seg span{display: inline-block;min-width: 2.8rem;text-align: center;padding: 0.45rem 0.6rem;background: #fff;cursor: pointer;border-right: 1px solid var(--lng-line);}
.lng-seg label:last-child span{border-right: 0;}
.lng-seg input:checked + span{background: var(--lng-ochre);color: #fff;}
.lng-chips input:focus-visible + span,.lng-seg input:focus-visible + span,.lng-switch input:focus-visible + .lng-switch-track{outline: 2px solid var(--lng-ochre);outline-offset: 2px;}
.lng-switch{display: inline-flex;align-items: center;gap: 0.55rem;font-size: 0.9rem;font-weight: 600;color: var(--lng-text);cursor: pointer;margin: 0;}
.lng-switch-track{position: relative;width: 2.4rem;height: 1.35rem;border-radius: 999px;background: #cfc6b4;transition: background 0.15s;flex-shrink: 0;}
.lng-switch-track::after{content: "";position: absolute;top: 0.2rem;left: 0.2rem;width: 0.95rem;height: 0.95rem;border-radius: 50%;background: #fff;transition: transform 0.15s;}
.lng-switch input:checked + .lng-switch-track{background: var(--lng-ink-2);}
.lng-switch input:checked + .lng-switch-track::after{transform: translateX(1.05rem);}
.lng-roll{margin-left: auto;padding-left: 1.6rem;background: var(--lng-ochre);color: #fff;border: 0;border-radius: 8px;padding: 0.7rem 1.4rem;font-weight: 700;font-size: 1rem;display: inline-flex;align-items: center;gap: 0.5rem;cursor: pointer;transition: background 0.15s;}
.lng-roll:hover{background: var(--lng-ochre-dark);}
.lng-roll:focus-visible{outline: 2px solid var(--lng-ink);outline-offset: 2px;}
.lng-roll:disabled{opacity: 0.75;cursor: wait;}
.lng-status{margin: 1rem 0 0.75rem;font-size: 0.9rem;color: var(--lng-muted);}
.lng-status.is-error{color: #a3321b;font-weight: 600;}
.lng-table-wrap{overflow-x: auto;border: 1px solid var(--lng-line);border-radius: 8px;background: #fff;}
.lng-roster,.lng-ends{width: 100%;border-collapse: collapse;font-size: 0.95rem;}
.lng-roster th,.lng-roster td,.lng-ends th,.lng-ends td{padding: 0.6rem 0.75rem;border-bottom: 1px solid var(--lng-cream);text-align: left;vertical-align: middle;}
.lng-roster thead th,.lng-ends thead th{background: var(--lng-cream);font-size: 0.74rem;letter-spacing: 0.07em;text-transform: uppercase;color: var(--lng-muted);font-weight: 700;}
.lng-roster tbody tr:last-child th,.lng-roster tbody tr:last-child td,.lng-ends tbody tr:last-child td{border-bottom: 0;}
.lng-roster tr.is-locked{background: #fdf6e6;}
.lng-roster tr.is-new{animation: lngIn 0.35s ease;}
.lng-col-lock{width: 2.75rem;}
.lng-name{font-family: Georgia, "Times New Roman", serif;font-size: 1.2rem;font-weight: 700;color: var(--lng-ink);white-space: nowrap;}
.lng-origin{white-space: nowrap;color: var(--lng-text);}
.lng-meaning{color: var(--lng-muted);min-width: 220px;}
.lng-lock{width: 2rem;height: 2rem;border: 1px solid var(--lng-line);border-radius: 6px;background: #fff;color: var(--lng-muted);cursor: pointer;display: inline-flex;align-items: center;justify-content: center;}
.lng-lock[aria-pressed="true"]{background: var(--lng-ochre);border-color: var(--lng-ochre);color: #fff;}
.lng-lock:focus-visible{outline: 2px solid var(--lng-ochre);outline-offset: 1px;}
.lng-tag{display: inline-block;font-size: 0.76rem;font-weight: 700;padding: 0.18rem 0.55rem;border-radius: 4px;white-space: nowrap;}
.lng-tag-occupation{background: #e7efe2;color: #2f5a24;}
.lng-tag-patronymic{background: #e4e9f5;color: #2d3d66;}
.lng-tag-place{background: #f5ead6;color: #7a4f0c;}
.lng-tag-nickname{background: #f6e2de;color: #8a2f1f;}
.lng-tag-lineage{background: #ece4f3;color: #573a78;}
.lng-tag-chosen{background: #dff0ee;color: #1f5e57;}
.lng-actions{display: flex;flex-wrap: wrap;gap: 0.5rem;margin-top: 1rem;}
.lng-ghost{background: #fff;border: 1px solid var(--lng-line);color: var(--lng-ink-2);border-radius: 8px;padding: 0.5rem 0.95rem;font-size: 0.9rem;font-weight: 600;display: inline-flex;align-items: center;gap: 0.45rem;cursor: pointer;}
.lng-ghost:hover{border-color: var(--lng-ink-2);}
.lng-ghost.is-done{background: var(--lng-ink-2);color: #fff;border-color: var(--lng-ink-2);}
.lng-read,.lng-limits{margin: 0 auto 2.75rem;color: var(--lng-text);line-height: 1.7;}
.lng-read h2,.lng-limits h2{font-size: 1.55rem;font-weight: 800;color: var(--lng-ink);margin-bottom: 0.85rem;}
.lng-read h3{font-size: 1rem;font-weight: 700;color: var(--lng-ink);margin: 0 0 0.4rem;}
.lng-notes{list-style: none;padding: 0;margin: 0;display: grid;gap: 0.6rem;}
.lng-notes li{padding: 0.75rem 1rem;border-left: 3px solid var(--lng-ochre);background: var(--lng-paper);border-radius: 0 8px 8px 0;}
.lng-types{display: grid;grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));gap: 0.85rem;margin-top: 1.25rem;}
.lng-type{border: 1px solid var(--lng-line);border-radius: 8px;padding: 0.9rem 1rem;background: #fff;}
.lng-type b{display: block;font-size: 0.78rem;color: var(--lng-muted);margin: 0.45rem 0 0.3rem;font-weight: 600;}
.lng-type p{margin: 0;font-size: 0.93rem;line-height: 1.6;}
.lng-ends{margin: 0;}
.lng-ends code{background: var(--lng-cream);color: var(--lng-ink);padding: 0.1rem 0.35rem;border-radius: 4px;font-size: 0.88rem;}
.lng-read .lng-table-wrap{margin: 1rem 0;}
.lng-ladders{display: grid;gap: 0.75rem;margin: 1rem 0;}
.lng-ladder{border: 1px solid var(--lng-line);border-radius: 8px;padding: 0.8rem 1rem;background: #fff;}
.lng-ladder p{margin: 0;display: flex;flex-wrap: wrap;gap: 0.4rem;}
.lng-ladder span{font-family: Georgia, "Times New Roman", serif;background: var(--lng-cream);border-radius: 4px;padding: 0.15rem 0.55rem;}
.lng-steps{padding-left: 1.25rem;}
.lng-steps li{margin-bottom: 0.5rem;}
.lng-limits{background: var(--lng-cream);border-radius: var(--lng-radius);padding: 1.5rem 1.75rem;}
.lng-limits ul{margin: 0;padding-left: 1.1rem;}
.lng-limits li{margin-bottom: 0.65rem;}
.lng-limits a{color: var(--lng-ink-2);font-weight: 600;}
@keyframes lngIn{from{background: #fbefd2;}to{background: transparent;}}
@media (max-width: 767px){.lng-tool{padding: 1rem;}.lng-bar{flex-direction: column;align-items: stretch;}.lng-bar-foot{flex-direction: column;align-items: stretch;}.lng-field-inline{justify-content: space-between;}.lng-field select{width: 100%;min-width: 0;}.lng-roll{margin-left: 0;justify-content: center;}.lng-roster thead{display: none;}.lng-roster tr{display: grid;grid-template-columns: 2.75rem 1fr;padding: 0.6rem 0.25rem;border-bottom: 1px solid var(--lng-cream);}.lng-roster th,.lng-roster td{border: 0;padding: 0.15rem 0.5rem;}.lng-roster .lng-col-lock{grid-row: span 4;}.lng-meaning{min-width: 0;}.lng-limits{padding: 1.25rem;}}
@media (prefers-reduced-motion: reduce){.lng-roster tr.is-new{animation: none;}.lng-switch-track,.lng-switch-track::after{transition: none;}}