/* Standardní zubní kříž (tooth-chart.js).
   Zuby jsou jen tenké šedé čárkované obrysy na bílé ploše; barvu nesou nálezy,
   takže na první pohled je vidět, co se zubem je, a ne jak je nakreslený. */
.tc-standard {
    --tc-line: #7b7b7b;
    --tc-axis: #f4a7b9;
    --tc-hover: #e03131;
    --tc-primary: #0a1df5;
    --tc-select: #e7f0ff;
    --tc-border: #d5d8dd;
}
.tc-standard .tc-toolbar { display: flex; align-items: center; gap: .5rem; margin-bottom: .5rem; }
.tc-standard .tc-menu { margin-left: auto; }
.tc-standard .tc-menu-btn { width: 2.1rem; height: 2.1rem; padding: 0; background: #e9ecef; border: 1px solid #e9ecef; color: #343a40; font-size: 1.1rem; }
.tc-standard .tc-menu-btn:hover { background: #dee2e6; }
.tc-standard .dropdown-item.active { font-weight: 600; background: var(--tc-select); color: inherit; }
.tc-standard .dropdown-item.active::after { content: '✓'; margin-left: .5rem; }

/* Plocha kříže: tečkovaný rámeček jako list karty. */
.tc-standard .tc-canvas { border: 1px dotted var(--tc-border); border-radius: 2px; background: #fff; padding: 2px; }
.tc-standard .tc-svg { display: block; width: 100%; height: auto; user-select: none; -webkit-user-select: none; }
.tc-standard .tc-axis { stroke: var(--tc-axis); stroke-width: 1; fill: none; }

.tc-standard .tc-line { fill: none; stroke: var(--tc-line); stroke-width: .9; stroke-dasharray: 3 2; stroke-linejoin: round; }
.tc-standard .tc-line.tc-faint { stroke: #a9a9a9; stroke-width: .6; stroke-dasharray: 2 2; }
.tc-standard .is-primary .tc-line { stroke: var(--tc-primary); }
.tc-standard .is-primary .tc-line.tc-faint { stroke: #7d87f8; }
.tc-standard .tc-unerupted { opacity: .45; }
.tc-standard .tc-fill { stroke: none; }
.tc-standard .tc-dead { opacity: .35; stroke: none; }
.tc-standard .tc-crownline { fill: none; stroke-width: 1.8; }
.tc-standard .tc-crownarc { fill: none; stroke-width: 3.2; stroke-linecap: round; }
.tc-standard .tc-denture { fill: none; stroke-width: 1.2; stroke-dasharray: 4 2; }
.tc-standard .tc-pulp { stroke: none; }
.tc-standard .tc-canal { fill: none; stroke-width: 2.4; stroke-linecap: round; }
.tc-standard .tc-post { fill: none; stroke-width: 3.4; stroke-linecap: round; }
.tc-standard .tc-mark { fill: none; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.tc-standard .tc-mark.tc-dashed { stroke-dasharray: 3 2; }
.tc-standard .tc-dot { stroke: none; }
.tc-standard .tc-splint { stroke-width: 3; stroke-linecap: butt; opacity: .8; }
.tc-standard .tc-implant-body { fill: #e9ecef; stroke: #868e96; stroke-width: 1; }
.tc-standard .tc-implant-thread { fill: none; stroke: #868e96; stroke-width: .9; }
.tc-standard .tc-plan { fill: none; stroke: #1c7ed6; stroke-width: 1.4; stroke-dasharray: 4 3; }

.tc-standard .tc-num { font: 700 13px/1 system-ui, -apple-system, 'Segoe UI', sans-serif; fill: #1f2328; text-anchor: middle; cursor: pointer; }
.tc-standard .tc-tag { font: 700 8px/1 system-ui, sans-serif; text-anchor: end; }
.tc-standard .tc-tag-left { text-anchor: start; font-size: 14px; }

/* Plošky: průhledné, ale klikací; zvýrazní se po najetí a když jsou vybrané. */
.tc-standard .tc-surf { stroke: none; }
.tc-standard .tc-hit { fill: transparent; }
.tc-standard .tc-col.is-selected .tc-hit { fill: var(--tc-select); }
.tc-standard .tc-surf.is-selected { fill: rgba(28, 126, 214, .35); }
.tc-standard[data-editable="1"] .tc-surf { cursor: pointer; }
.tc-standard[data-editable="1"] .tc-surf:hover { fill: rgba(224, 49, 49, .18); }
.tc-standard .tc-col { cursor: default; }

/* Najetí myší: červené rohové závorky kolem sloupce a písmena plošek. */
.tc-standard .tc-hover { display: none; pointer-events: none; }
.tc-standard .tc-col:hover .tc-hover { display: inline; }
.tc-standard .tc-bracket { fill: none; stroke: var(--tc-hover); stroke-width: 1.6; }
.tc-standard .tc-letter { font: 600 9px/1 system-ui, sans-serif; fill: var(--tc-hover); text-anchor: middle; }

/* Rychlý řádek. */
.tc-standard .tc-entry { display: flex; align-items: stretch; gap: .35rem; margin-bottom: .25rem; }
.tc-standard .tc-entry-field {
    position: relative; flex: 1; display: flex; flex-wrap: wrap; align-items: center; gap: .25rem;
    min-height: 2.25rem; padding: .2rem .4rem; border: 1px solid #ced4da; border-radius: 4px; background: #fff;
}
.tc-standard .tc-entry-field:focus-within { border-color: #4dabf7; box-shadow: 0 0 0 2px rgba(77, 171, 247, .2); }
.tc-standard .tc-chips { display: contents; }
.tc-standard .tc-chip {
    display: inline-flex; align-items: center; gap: .3rem; padding: .1rem .5rem; border-radius: 3px;
    font-size: .8125rem; line-height: 1.4; background: #f1f3f5; border: 1px solid #dee2e6; white-space: nowrap;
}
.tc-standard .tc-chip-loc { background: #e7f5ff; border-color: #a5d8ff; font-weight: 600; }
.tc-standard .tc-chip-op { background: #fff4e6; border-color: #ffd8a8; }
.tc-standard .tc-chip-surf { font-weight: 700; letter-spacing: .05em; }
.tc-standard .tc-chip-dot { display: inline-block; width: .7rem; height: .7rem; border-radius: 2px; border: 1px solid rgba(0, 0, 0, .15); }
.tc-standard .tc-entry-input { flex: 1; min-width: 8rem; border: 0; outline: 0; padding: .2rem; font-size: .875rem; background: transparent; }
.tc-standard .tc-entry-btn { width: 2.25rem; font-weight: 700; }
.tc-standard .tc-suggest {
    position: absolute; z-index: 30; left: -1px; right: -1px; top: 100%; max-height: 260px; overflow-y: auto;
    background: #fff; border: 1px solid #ced4da; border-radius: 0 0 4px 4px; box-shadow: 0 6px 16px rgba(0, 0, 0, .1);
}
.tc-standard .tc-suggest-item { display: flex; align-items: center; gap: .4rem; padding: .3rem .6rem; font-size: .875rem; cursor: pointer; }
.tc-standard .tc-suggest-item small { color: #6c757d; }
.tc-standard .tc-suggest-item.is-active, .tc-standard .tc-suggest-item:hover { background: #e7f5ff; }
.tc-standard .tc-step { font-size: .75rem; color: #6c757d; margin-bottom: .4rem; }
.tc-standard .tc-help { border: 1px solid #dee2e6; border-radius: 4px; padding: .6rem .8rem; margin-bottom: .5rem; background: #f8f9fa; font-size: .8125rem; }
.tc-standard .tc-help-cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: .5rem 1.5rem; }
.tc-standard .tc-help dl { display: grid; grid-template-columns: max-content 1fr; gap: .2rem .75rem; margin: 0; }
.tc-standard .tc-help dt { font-weight: 600; }
.tc-standard .tc-help dd { margin: 0; }

.tc-standard .tc-msg { font-size: .8125rem; padding: .35rem .6rem; border-radius: 4px; margin-bottom: .5rem; }
.tc-standard .tc-msg-error { background: #fff5f5; color: #c92a2a; border: 1px solid #ffc9c9; }
.tc-standard .tc-msg-info { background: #e7f5ff; color: #1864ab; border: 1px solid #a5d8ff; }

.tc-standard .tc-history { border: 1px solid #dee2e6; border-radius: 4px; padding: .5rem .75rem; margin-bottom: .5rem; }
.tc-standard .tc-history-row { display: grid; grid-template-columns: 2rem 1fr minmax(8rem, 16rem); align-items: center; gap: .75rem; }
.tc-standard .tc-history-label { font-size: .8125rem; color: #495057; }

.tc-standard .tc-under { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: .5rem; margin-top: .4rem; }
.tc-standard .tc-kpe { font-size: .875rem; }
.tc-standard .tc-pending { margin-top: .5rem; padding: .5rem .75rem; border: 1px dashed #ffc078; border-radius: 4px; background: #fff9db; font-size: .8125rem; }
.tc-standard .tc-pending-title { font-weight: 600; margin-bottom: .2rem; }
.tc-standard .tc-pending ul { margin: 0; padding-left: 1.1rem; }
.tc-standard .tc-pending-remove { padding: 0 .35rem; line-height: 1.2; }
.tc-standard .tc-records table { font-size: .8125rem; }
.tc-standard .tc-pager { display: flex; align-items: center; justify-content: flex-end; gap: .5rem; font-size: .8125rem; }

@media (max-width: 640px) {
    .tc-standard .tc-entry { flex-wrap: wrap; }
    .tc-standard .tc-entry-field { flex-basis: 100%; }
    .tc-standard .tc-history-row { grid-template-columns: 2rem 1fr; }
    .tc-standard .tc-history-label { grid-column: 2; }
    .tc-standard .tc-records { overflow-x: auto; }
}
