/* TESSA Site Core plugin. Uses theme tokens when present and falls back to the same values. */

/* Tessa figure */
.tsc-tessa { --tsc-bot: 140px; margin: 0; display: flex; align-items: flex-end; gap: .75rem; max-width: 100%; }
.tsc-tessa--left { flex-direction: row-reverse; justify-content: flex-end; }
.tsc-tessa--right { justify-content: flex-end; }
.tsc-tessa--s { --tsc-bot: 84px; }
.tsc-tessa--m { --tsc-bot: 140px; }
.tsc-tessa--l { --tsc-bot: 220px; }
.tsc-tessa .tsc-bot { flex: none; width: var(--tsc-bot); height: auto; overflow: visible; transform-origin: 50% 100%; animation: tsc-bob 3.4s ease-in-out infinite; }
.tsc-tessa__bubble { position: relative; align-self: flex-start; margin: 0; max-width: 24rem; padding: .7rem 1rem; background: var(--wp--preset--color--panel, #201D3A); color: var(--wp--preset--color--contrast, #F4F4F8); border: 1.5px solid var(--wp--preset--color--cyan, #43AEE6); border-radius: 12px 12px 4px 12px; font-size: .95rem; line-height: 1.5; }
.tsc-tessa--left .tsc-tessa__bubble { border-radius: 12px 12px 12px 4px; }
@media (max-width: 560px) { .tsc-tessa--l { --tsc-bot: 150px; } .tsc-tessa { flex-wrap: wrap; } .tsc-tessa__bubble { max-width: 100%; } }
@keyframes tsc-bob { 50% { transform: translateY(-4px); } }
.tsc-bot .tsc-eye { transform-box: fill-box; transform-origin: center; animation: tsc-blink 4.8s infinite; }
@keyframes tsc-blink { 0%, 93%, 100% { transform: scaleY(1); } 96% { transform: scaleY(.08); } }
.tsc-bot .tsc-arm { transform-box: fill-box; transform-origin: 50% 8%; }
.tsc-tessa--wave .tsc-arm--r { animation: tsc-wave .5s ease-in-out infinite alternate; }
@keyframes tsc-wave { from { transform: rotate(-14deg); } to { transform: rotate(14deg); } }
.tsc-tessa--point .tsc-arm--r { animation: tsc-point 1.1s ease-in-out infinite alternate; }
@keyframes tsc-point { from { transform: rotate(0); } to { transform: rotate(8deg); } }
.tsc-tessa--cheer .tsc-arm { animation: tsc-cheer .45s ease-in-out infinite alternate; }
@keyframes tsc-cheer { from { transform: rotate(-10deg); } to { transform: rotate(10deg); } }
.tsc-bot .tsc-mouth, .tsc-bot .tsc-ant { transform-box: fill-box; transform-origin: center; }
.tsc-tessa--present .tsc-ant, .tsc-tessa--wave .tsc-ant { animation: tsc-ping .9s ease-in-out infinite alternate; }
@keyframes tsc-ping { from { transform: scaleY(1); } to { transform: scaleY(1.3); } }
@media (prefers-reduced-motion: reduce) { .tsc-tessa .tsc-bot, .tsc-bot * { animation: none !important; } }

/* Forms */
.tsc-form-wrap { max-width: 640px; }
.tsc-form .tsc-field { margin: 0 0 1rem; display: flex; flex-direction: column; gap: .35rem; }
.tsc-form label { font-weight: 500; font-size: .9rem; }
.tsc-req { color: var(--wp--preset--color--yellow, #F4C54E); }
.tsc-form input[type="text"], .tsc-form input[type="email"], .tsc-form select, .tsc-form textarea { width: 100%; box-sizing: border-box; font: inherit; color: var(--wp--preset--color--contrast, #F4F4F8); background: var(--wp--preset--color--panel, #201D3A); border: 1.5px solid var(--wp--preset--color--line, #34305A); border-radius: 8px; padding: .7rem .85rem; min-height: 44px; }
.tsc-form select option { color: #17152A; background: #fff; }
.tsc-form input:focus, .tsc-form select:focus, .tsc-form textarea:focus { outline: 3px solid var(--wp--preset--color--yellow, #F4C54E); outline-offset: 1px; }
.tsc-form [aria-invalid="true"] { border-color: var(--wp--preset--color--pink, #DB4A82); }
.tsc-error, .tsc-status--error { color: var(--wp--preset--color--pink, #DB4A82); font-size: .85rem; min-height: 0; }
.tsc-note { color: var(--wp--preset--color--muted, #A9A7C4); font-size: .85rem; margin: 0 0 1rem; }
.tsc-status { margin: 0 0 .75rem; font-size: .9rem; }
.tsc-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.tsc-form-done[hidden], .tsc-form[hidden] { display: none; }
.tsc-submit { cursor: pointer; }

/* Integration status labels */
.tsc-status-pill { display: inline-block; border-radius: 999px; padding: .1rem .65rem; font-size: .75rem; font-weight: 700; border: 1.5px solid currentColor; white-space: nowrap; }
.tsc-status-pill--now { color: var(--wp--preset--color--cyan, #43AEE6); }
.tsc-status-pill--planned { color: var(--wp--preset--color--muted, #A9A7C4); border-style: dashed; }

/* Tables inside TESSA pages */
.wp-block-table table { border-collapse: collapse; width: 100%; }
.wp-block-table th, .wp-block-table td { border: 1px solid var(--wp--preset--color--line, #34305A); padding: .75rem 1rem; text-align: left; vertical-align: top; }
.wp-block-table th { font-family: var(--wp--preset--font-family--mono, ui-monospace, monospace); font-size: .75rem; letter-spacing: .1em; text-transform: uppercase; color: var(--wp--preset--color--muted, #A9A7C4); font-weight: 500; }
.wp-block-table td:last-child { width: 8rem; }
