/* Shared TEC components. Tokens are emitted once by TEC_Appearance. */
.tec-core,.tec-form,.tec-identity{box-sizing:border-box;color:var(--tec-text);font-family:var(--tec-font);font-size:16px;line-height:1.6;text-align:left}
:is(.tec-core,.tec-form,.tec-identity) *{box-sizing:border-box}
:is(.tec-core,.tec-form,.tec-identity) [hidden]{display:none!important}
:is(.tec-core,.tec-form,.tec-identity) h2,:is(.tec-core,.tec-form,.tec-identity) h3{font-family:inherit;color:var(--tec-text);letter-spacing:-.025em;line-height:1.15;text-wrap:balance}
:is(.tec-core,.tec-form,.tec-identity) p{margin:0 0 1em}
:is(.tec-core,.tec-form,.tec-identity) a{color:var(--tec-primary);text-underline-offset:3px}
:is(.tec-core,.tec-form,.tec-identity) .tec-field{min-width:0;margin:0}
:is(.tec-core,.tec-form,.tec-identity) .tec-field-label{display:block;margin:0 0 8px;color:var(--tec-text);font-size:var(--tec-label-size);font-weight:600;line-height:1.4}
:is(.tec-core,.tec-form,.tec-identity) .tec-field-input{display:block;width:100%;min-width:0;height:var(--tec-input-height);padding:12px 15px;font-family:inherit;font-size:16px;line-height:1.4;color:var(--tec-text);background:var(--tec-input-background);border:var(--tec-border-width) solid var(--tec-border);border-radius:var(--tec-input-radius);box-shadow:none;transition:border-color .15s,outline-color .15s}
:is(.tec-core,.tec-form,.tec-identity) select.tec-field-input{appearance:none;padding-right:40px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%23596963' stroke-width='1.5'%3E%3Cpath d='m4 6 4 4 4-4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center}
:is(.tec-core,.tec-form,.tec-identity) textarea.tec-field-input{height:auto;min-height:120px;resize:vertical}
:is(.tec-core,.tec-form,.tec-identity) .tec-field-input:hover{border-color:var(--tec-text-muted)}
:is(.tec-core,.tec-form,.tec-identity) :is(input,select,textarea,button,a):focus-visible{outline:3px solid var(--tec-primary);outline-offset:3px}
:is(.tec-core,.tec-form,.tec-identity) .tec-field-input:focus{border-color:var(--tec-primary)}
:is(.tec-core,.tec-form,.tec-identity) .tec-field-help{display:block;color:var(--tec-text-muted);font-size:var(--tec-help-size);line-height:1.5;margin-top:7px}
:is(.tec-core,.tec-form,.tec-identity) .tec-field-error{display:block;color:var(--tec-danger);font-size:var(--tec-help-size);line-height:1.5;margin-top:6px}
:is(.tec-core,.tec-form,.tec-identity) .tec-field-error:empty{display:none}
:is(.tec-core,.tec-form,.tec-identity) .tec-field--error .tec-field-input,:is(.tec-core,.tec-form,.tec-identity) [aria-invalid="true"]{border-color:var(--tec-danger)}
:is(.tec-core,.tec-form,.tec-identity) .tec-button{--tec-btn-bg:var(--tec-primary-bg);--tec-btn-fg:var(--tec-primary-fg);--tec-btn-border:var(--tec-primary-border);display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:var(--tec-button-height);max-width:100%;padding:10px var(--tec-button-padding);font-family:inherit;font-size:15px;font-weight:var(--tec-button-weight);line-height:1.35;text-align:center;text-decoration:none;text-transform:none;letter-spacing:normal;color:var(--tec-btn-fg);background:var(--tec-btn-bg);border:1px solid var(--tec-btn-border);border-radius:var(--tec-button-radius);box-shadow:none;cursor:pointer;white-space:normal;transition:background .15s,color .15s}
:is(.tec-core,.tec-form,.tec-identity) .tec-button-secondary{--tec-btn-bg:var(--tec-secondary-bg);--tec-btn-fg:var(--tec-secondary-fg);--tec-btn-border:var(--tec-secondary-border)}
:is(.tec-core,.tec-form,.tec-identity) .tec-button-skip{--tec-btn-bg:var(--tec-tertiary-bg);--tec-btn-fg:var(--tec-tertiary-fg);--tec-btn-border:var(--tec-tertiary-border)}
:is(.tec-core,.tec-form,.tec-identity) .tec-button:hover{background:var(--tec-primary-hover);color:var(--tec-hover-ink);border-color:var(--tec-primary-hover)}
:is(.tec-core,.tec-form,.tec-identity) .tec-button:disabled{opacity:.6;cursor:wait}
:is(.tec-core,.tec-form,.tec-identity) .tec-card{padding:clamp(20px,4vw,var(--tec-card-padding));border:1px solid var(--tec-border);border-radius:var(--tec-card-radius);background:var(--tec-surface);box-shadow:var(--tec-card-shadow)}
:is(.tec-core,.tec-form,.tec-identity) .tec-card h3{margin:8px 0 20px;font-size:clamp(23px,3vw,30px)}
:is(.tec-core,.tec-form,.tec-identity) .tec-card p:last-child{margin-bottom:0}
:is(.tec-core,.tec-form,.tec-identity) .tec-eyebrow{font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--tec-text-muted)}
:is(.tec-core,.tec-form,.tec-identity) .tec-message{padding:14px 18px;border-left:3px solid var(--tec-warning);background:var(--tec-surface);color:var(--tec-text);font-size:14px}
:is(.tec-core,.tec-form,.tec-identity) .tec-progress-track{height:var(--tec-progress-height);background:var(--tec-progress-inactive);border-radius:var(--tec-progress-radius);overflow:hidden}
:is(.tec-core,.tec-form,.tec-identity) .tec-progress-bar{display:block;height:100%;background:var(--tec-progress-active);border-radius:inherit;transition:width .2s}
:is(.tec-core,.tec-form,.tec-identity) .tec-form-actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-top:36px;padding-top:24px;border-top:1px solid var(--tec-border)}
@media(prefers-reduced-motion:reduce){:is(.tec-core,.tec-form,.tec-identity) *{transition:none!important}}
:is(.tec-core,.tec-form) .tec-password-toggle{display:inline-block;margin-top:6px;padding:6px 10px;border:1px solid var(--tec-border);border-radius:var(--tec-button-radius);background:var(--tec-surface);color:var(--tec-text);font:inherit;font-size:var(--tec-help-size);cursor:pointer}
:is(.tec-core,.tec-form) .tec-omit{display:flex;gap:10px;align-items:center;color:var(--tec-text-muted);font-size:var(--tec-help-size)}
:is(.tec-core,.tec-form) .tec-omit input{width:18px;height:18px;accent-color:var(--tec-primary)}
.tec-form[data-tec-profile-panel] .tec-field{margin-bottom:var(--tec-field-gap)}
/* One personal date field, three accessible parts; scoped to TEC. */
:is(.tec-core,.tec-form) .tec-date-parts{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.65fr) minmax(0,1.2fr);gap:0;width:100%;max-width:480px}
:is(.tec-core,.tec-form) .tec-date-parts .tec-field-input{min-width:0;width:100%;border-radius:0;padding-left:10px;padding-right:26px;background-position:right 6px center}
:is(.tec-core,.tec-form) .tec-date-parts select:first-child{border-radius:var(--tec-input-radius) 0 0 var(--tec-input-radius)}
:is(.tec-core,.tec-form) .tec-date-parts select:last-child{border-radius:0 var(--tec-input-radius) var(--tec-input-radius) 0}
:is(.tec-core,.tec-form) .tec-date-parts select:focus-visible{position:relative;z-index:1}
@media(max-width:340px){:is(.tec-core,.tec-form) .tec-date-parts{grid-template-columns:minmax(0,1fr);gap:8px}:is(.tec-core,.tec-form) .tec-date-parts select{border-radius:var(--tec-input-radius)!important}}
:is(.tec-core,.tec-form) .tec-select{position:relative;width:100%;min-width:0}
:is(.tec-core,.tec-form) .tec-select-control{text-align:left;cursor:pointer;padding-right:36px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%23596963' stroke-width='1.5'%3E%3Cpath d='m4 6 4 4 4-4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}
:is(.tec-core,.tec-form) .tec-select-panel{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:30;padding:10px;background:var(--tec-surface);border:1px solid var(--tec-border);border-radius:var(--tec-input-radius);box-shadow:0 8px 24px #0002}
:is(.tec-core,.tec-form) .tec-select-options{max-height:min(240px,35dvh);overflow-y:auto;overscroll-behavior:contain;margin-top:8px}
:is(.tec-core,.tec-form) .tec-select-options [role=option]{padding:10px 12px;min-height:44px;cursor:pointer;overflow-wrap:anywhere;border-radius:4px}
:is(.tec-core,.tec-form) .tec-select-options [role=option]:hover,:is(.tec-core,.tec-form) .tec-select-options .is-active{background:var(--tec-primary);color:var(--tec-primary-ink)}
:is(.tec-core,.tec-form) .tec-select-options [aria-selected=true]{font-weight:700}
:is(.tec-core,.tec-form) .tec-select-empty{padding:12px;color:var(--tec-text-muted)}
:is(.tec-core,.tec-form) .tec-info-block{padding:14px 16px;border:1px solid var(--tec-border);border-radius:var(--tec-input-radius);background:var(--tec-surface)}
:is(.tec-core,.tec-form) .tec-info-block__title{font-size:var(--tec-label-size);line-height:1.4;margin:0 0 6px;letter-spacing:normal}
:is(.tec-core,.tec-form) .tec-info-block__text{font-size:var(--tec-help-size);line-height:1.5;margin:0}
:is(.tec-core,.tec-form) .tec-info-block__note{font-size:var(--tec-help-size);line-height:1.5;margin:6px 0 0;color:var(--tec-text-muted)}
.tec-form .tec-pending-dialog{width:min(560px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow:auto;margin:auto;padding:clamp(20px,4vw,32px);border:1px solid var(--tec-border);border-radius:var(--tec-card-radius);background:var(--tec-surface);color:var(--tec-text);font:inherit}
.tec-form .tec-pending-dialog::backdrop{background:#0008}
.tec-form .tec-pending-dialog h2{font-size:24px;margin:0 0 16px}
.tec-form .tec-pending-dialog .tec-form-actions{margin-top:20px;padding-top:16px}
.tec-form.tec-profile .tec-profile-section{padding:28px 0;border-bottom:1px solid var(--tec-border);scroll-margin-top:100px}
.tec-form.tec-profile .tec-profile-section>h3{margin:0 0 20px;font-size:24px}
.tec-form.tec-profile .tec-profile-pending{border-left:3px solid var(--tec-warning);padding-left:12px}
.tec-form.tec-profile .tec-profile-pending-summary{padding:20px 0}
.tec-form.tec-profile .tec-profile-section input[type=checkbox]{margin-right:8px}

.tec-context-link{color:inherit;text-decoration:underline;text-underline-offset:.18em;font-weight:600}.tec-context-link:hover{text-decoration-thickness:2px}.tec-context-link:focus-visible{outline:3px solid currentColor;outline-offset:3px}.tec-link-context{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
