:root { min-height:100%; color-scheme: light; font-size:var(--tta-font-size,16px); font-family: var(--tta-font-body, system-ui, sans-serif); scroll-behavior: smooth; }
* { box-sizing: border-box; }
body { min-height:100%; min-height:100dvh; margin: 0; overflow-x:hidden; background: var(--tta-background, #f2f6f5); color: var(--tta-color-ink, #16243a); }
a { color: inherit; }
.tta-pwa-shell { width: min(100%, 760px); min-height: 100vh; margin: 0 auto; padding: calc(env(safe-area-inset-top) + 78px) 16px calc(82px + env(safe-area-inset-bottom)); }
.tta-pwa-shell > main { width:100%; min-width:0; }
.tta-pwa-header { position: fixed; z-index: 20; top: 0; left: 50%; display: flex; width: min(100%, 760px); min-height: calc(72px + env(safe-area-inset-top)); padding: calc(10px + env(safe-area-inset-top)) 16px 10px; align-items: center; gap: 12px; transform: translateX(-50%); border-bottom: 1px solid rgba(18, 83, 78, .08); background: rgba(255,255,255,.9); box-shadow: 0 7px 24px rgba(29, 59, 62, .06); backdrop-filter: blur(18px); }
.tta-brand-icon { width: 48px; height: 48px; border-radius: 15px; object-fit: cover; background: #fff; box-shadow: 0 4px 14px rgba(15, 71, 67, .14); }
.tta-brand-copy { display: grid; flex: 1; line-height: 1.15; }
.tta-pwa-kicker, .tta-eyebrow { color: var(--tta-theme, #087f75); font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
.tta-pwa-kicker { font-size:.72rem; }
.tta-eyebrow { font-size:calc(.72rem - 1px); }
.tta-brand-copy strong { margin-top: 4px; font-size: .95rem; }
.tta-user-identity { display: flex; align-items: center; gap: 9px; border-radius:18px; cursor:pointer; }
.tta-user-identity:focus-visible { outline:3px solid color-mix(in srgb, var(--tta-theme, #087f75) 30%, white); outline-offset:3px; }
.tta-user-copy { display: none; text-align: right; }
.tta-user-copy small, .tta-user-copy strong { display: block; max-width: 145px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tta-user-copy small { color: var(--tta-color-muted, #718096); font-size: .7rem; }
.tta-user-copy strong { font-size: .86rem; }
.tta-user-avatar { width: 46px; height: 46px; border: 3px solid #fff; border-radius: 50%; object-fit: cover; background: #dfe9e7; box-shadow: 0 0 0 2px color-mix(in srgb, var(--tta-theme, #087f75) 28%, white); }
.tta-install-button, .tta-primary-button, .tta-secondary-button { display: inline-flex; min-height: 44px; border: 0; border-radius: 14px; align-items: center; justify-content: center; cursor: pointer; font: inherit; font-weight: 800; padding: 11px 17px; text-decoration: none; }
.tta-install-button, .tta-primary-button { background: var(--tta-theme, #087f75); color: #fff; box-shadow: 0 7px 16px color-mix(in srgb, var(--tta-theme, #087f75) 23%, transparent); }
.tta-install-button { min-height: 38px; padding: 8px 11px; font-size: .78rem; }
.tta-secondary-button { border: 1px solid color-mix(in srgb, var(--tta-theme, #087f75) 25%, white); background: color-mix(in srgb, var(--tta-theme, #087f75) 8%, white); color: var(--tta-theme, #087f75); }
.tta-loading, .tta-error { padding: 32px 12px; text-align: center; }
.tta-error { color: #9b1c1c; }
.tta-welcome { padding: 10px 5px 12px; }
.tta-welcome h1 { margin: 5px 0 4px; font-size: clamp(1.55rem, 5.8vw, 2.15rem); letter-spacing: -.03em; line-height: 1.08; }
.tta-welcome p { max-width: 520px; margin: 7px 0 0; color: var(--tta-color-muted, #68758a); font-size: 1.03rem; line-height: 1.45; }
.tta-card { position: relative; margin: 14px 0; overflow: hidden; border: 1px solid rgba(54, 87, 99, .12); border-radius: 24px; background: rgba(255,255,255,.96); box-shadow: 0 14px 38px rgba(33, 61, 70, .08); padding: 20px; }
.tta-card-heading { display: flex; min-height: 45px; align-items: flex-start; justify-content: space-between; gap: 14px; }
.tta-card h2 { margin: 4px 0 16px; font-size: 1.4rem; letter-spacing: -.025em; }
.tta-count-badge { display: grid; min-width: 30px; height: 30px; padding: 0 8px; border-radius: 15px; place-items: center; background: color-mix(in srgb, var(--tta-theme, #087f75) 12%, white); color: var(--tta-theme, #087f75); font-size: .8rem; font-weight: 900; }
.tta-login-card { margin-top: 12vh; padding: 32px 24px; text-align: center; }
.tta-login-card .tta-card-icon { display: block; font-size: 2rem; }
.tta-login-card .tta-primary-button { margin-top: 10px; }
.tta-match-card { color: #fff; background: linear-gradient(145deg, color-mix(in srgb, var(--tta-theme, #087f75) 88%, #173a50), var(--tta-theme, #087f75)); }
.tta-match-card::after { position: absolute; width: 170px; height: 170px; top: -75px; right: -65px; border-radius: 50%; background: rgba(255,255,255,.08); content: ""; }
.tta-match-card .tta-eyebrow, .tta-match-card dt { color: rgba(255,255,255,.72); }
.tta-match-card h2 { color: #fff; }
.tta-match-pictogram { z-index: 1; display: grid; flex-shrink: 0; width: 45px; height: 45px; border-radius: 14px; place-items: center; background: rgba(255,255,255,.15); font-size: 1.35rem; }
.tta-match-pictogram--floating { position: absolute; top: 20px; right: 20px; }
.tta-match-team { display: block; margin: 2px 0 17px; font-size: 1.12rem; }
.tta-match-pictogram--floating ~ .tta-match-team { padding-right: 55px; }
.tta-match-summary { margin: 0; padding-right: 28px; color: rgba(255,255,255,.86); line-height: 1.5; }
.tta-match-summary-arrow { position: absolute; right: 20px; bottom: 18px; display: flex; color: #fff; }
.tta-match-card.is-summary { cursor: pointer; }
.tta-match-card dl { display: grid; grid-template-columns: max-content 1fr; gap: 8px 14px; margin: 0; }
.tta-match-card dd { margin: 0; font-weight: 700; }
.tta-match-card .tta-primary-button { background: #fff; color: var(--tta-theme, #087f75); box-shadow: none; }
.tta-match-presence { margin-top:20px; border-top:1px solid rgba(255,255,255,.22); padding-top:17px; }
.tta-match-presence-state { display:flex; margin:0 0 13px; align-items:flex-start; flex-direction:column; gap:3px; }
.tta-match-presence-state strong { color:rgba(255,255,255,.7); font-size:.72rem; letter-spacing:.07em; text-transform:uppercase; }
.tta-match-presence-state span { font-weight:850; }
.tta-match-presence-state small { color:rgba(255,255,255,.7); font-size:.7rem; }
.tta-match-presence-actions { display:flex; align-items:stretch; gap:9px; }
.tta-match-presence-actions button { min-width:0; flex:1; padding-right:10px; padding-left:10px; font-size:.78rem; }
.tta-match-presence .tta-secondary-button { border-color:rgba(255,255,255,.5); background:transparent; color:#fff; }
.tta-match-presence-feedback { min-height:18px; margin:8px 0 0; color:#fff; font-size:.76rem; font-weight:750; text-align:center; }
.tta-presence-locked-message { margin:0; padding:10px 12px; border-radius:12px; background:rgba(255,255,255,.14); color:#fff; font-size:.82rem; line-height:1.4; text-align:center; }
.tta-match-presence.has-answered .tta-match-presence-actions { opacity:.9; }
.tta-match-teammates { margin-top:16px; padding-top:14px; border-top:1px solid rgba(255,255,255,.2); }
.tta-match-teammates h3 { margin:0 0 8px; color:#fff; font-size:.86rem; }
.tta-teammates-list { display:flex; flex-direction:column; gap:6px; margin:0; padding:0; list-style:none; }
.tta-teammates-list li { display:flex; align-items:center; justify-content:space-between; gap:10px; color:#fff; font-size:.84rem; }
.tta-teammate-status { color:rgba(255,255,255,.72); font-size:.78rem; }
.tta-presence-modify { width:100%; min-height:44px; border:1px solid rgba(255,255,255,.7); border-radius:14px; background:rgba(255,255,255,.12); color:#fff; cursor:pointer; font:inherit; font-weight:850; }
.tta-availabilities-card .tta-card-heading { min-height: 0; margin-bottom: 12px; }
.tta-availabilities-empty { margin: 0; color: var(--tta-color-muted, #68758a); }
.tta-availability-pills { display: flex; flex-direction: column; gap: 8px; }
.tta-availability-pill { width: 100%; min-height: 44px; padding: 10px 16px; border: 1px solid rgba(54,87,99,.16); border-radius: 12px; background: #fff; color: inherit; cursor: pointer; font: inherit; font-size: .8rem; font-weight: 800; text-align: left; white-space: nowrap; }
.tta-availability-pill.is-available { border-color: color-mix(in srgb, #1e8e5a 35%, white); background: color-mix(in srgb, #1e8e5a 12%, white); color: #146341; }
.tta-availability-pill.is-unavailable { border-color: color-mix(in srgb, #c0362c 35%, white); background: color-mix(in srgb, #c0362c 12%, white); color: #8a251d; }
.tta-availability-pill:disabled { opacity: .55; cursor: default; }
.tta-availabilities-legend { margin: 10px 0 0; color: var(--tta-color-muted, #68758a); font-size: .8rem; }

.tta-confirm-dialog { width:min(92vw,480px); border:0; border-radius:22px; padding:0; box-shadow:0 24px 80px rgba(10,28,36,.35); }
.tta-confirm-dialog::backdrop { background:rgba(13,29,39,.66); backdrop-filter:blur(4px); }
.tta-confirm-dialog-panel { padding:24px; color:#26354a; }
.tta-confirm-dialog-panel h2 { margin:5px 0 10px; }
.tta-confirm-dialog-panel p { margin:0 0 20px; color:#58667a; line-height:1.55; }
.tta-confirm-dialog-panel .tta-match-presence-actions { margin-bottom:10px; }
.tta-dialog-cancel { width:100%; min-height:42px; border:0; background:transparent; color:#657287; cursor:pointer; font:inherit; font-weight:750; }
.tta-announcements-card { border:1px solid #f1ca72; background:linear-gradient(145deg,#fffdf7,#fff7df); }
.tta-announcements-card h2 { margin:5px 0 12px; }
.tta-announcement-viewport { overflow:hidden; touch-action:pan-y; }
.tta-announcement-list { display:flex; transition:transform .45s ease; }
.tta-announcement { position:relative; box-sizing:border-box; min-width:100%; flex:0 0 100%; padding:13px 0 13px 14px; }
.tta-announcement.is-unread::before { position:absolute; top:19px; left:0; width:7px; height:7px; border-radius:50%; background:#e58b20; content:""; }
.tta-announcement h3 { margin:0; font-size:.98rem; }
.tta-announcement p { margin:5px 0; color:#4e596a; font-size:.88rem; line-height:1.45; white-space:pre-line; }
.tta-announcement small { color:#8a7145; font-size:.7rem; }
.tta-announcement-link { display:inline-block; margin-left:10px; color:var(--tta-theme,#087f75); font-size:.76rem; font-weight:800; }
.tta-announcement-dots { display:flex; align-items:center; justify-content:center; gap:8px; padding-top:10px; }
.tta-announcement-dots button { width:9px; height:9px; min-width:9px; min-height:9px; margin:0; padding:0; border:0; border-radius:50%; background:rgba(138,113,69,.35); box-shadow:none; cursor:pointer; }
.tta-announcement-dots button.is-active { background:#e58b20; transform:scale(1.2); }
@media (prefers-reduced-motion:reduce) { .tta-announcement-list { transition:none; } }
.tta-gallery-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:11px; }
.tta-photo-preview-heading { align-items:center; margin-bottom:12px; }
.tta-photo-preview-heading h2 { margin:0; font-size:1.22rem; }
.tta-photo-all-link { min-height:38px; flex:0 0 auto; border:0; border-radius:14px; background:var(--tta-theme,#087f75); box-shadow:0 7px 16px color-mix(in srgb,var(--tta-theme,#087f75) 23%,transparent); color:#fff; cursor:pointer; font:inherit; font-size:.75rem; font-weight:850; padding:8px 11px; text-align:center; }
.tta-random-photo { display:block; width:100%; aspect-ratio:16/10; overflow:hidden; border:0; border-radius:16px; background:#e4ecec; cursor:pointer; padding:0; }
.tta-random-photo img { display:block; width:100%; height:100%; object-fit:cover; }
.tta-photos-view > .tta-view-heading { padding-bottom:14px; }
.tta-photo-filters { display:flex; margin:0 -4px 14px; padding:0 4px 5px; gap:8px; overflow-x:auto; scrollbar-width:none; }
.tta-photo-filters::-webkit-scrollbar { display:none; }
.tta-photos-browser { margin-top:0; }
.tta-gallery-tile { position:relative; min-height:145px; overflow:hidden; border:0; border-radius:16px; background:#dce7e6; color:#fff; cursor:pointer; padding:0; text-align:left; }
.tta-gallery-tile::after { position:absolute; inset:35% 0 0; background:linear-gradient(transparent,rgba(10,24,31,.85)); content:""; }
.tta-gallery-tile img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.tta-gallery-tile strong,.tta-gallery-tile small { position:absolute; z-index:1; right:10px; bottom:27px; left:10px; }
.tta-gallery-tile small { bottom:10px; font-size:.7rem; }
.tta-photo-detail h1 { margin:18px 0; font-size:1.5rem; }
.tta-photo-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.tta-photo-grid a { display:block; aspect-ratio:1; overflow:hidden; border-radius:12px; background:#e5ecec; }
.tta-photo-grid img { width:100%; height:100%; object-fit:cover; }
.tta-empty-message { max-width: 520px; margin: 0; color: rgba(255,255,255,.86); line-height: 1.55; }
.tta-news-list { list-style: none; margin: 0; padding: 0; }
.tta-news-list li { display: flex; min-height: 82px; align-items: center; gap: 13px; padding: 12px 0; border-top: 1px solid #edf1f2; }
.tta-news-list li:first-child { border-top: 0; }
.tta-news-list img, .tta-news-placeholder { flex: 0 0 66px; width: 66px; height: 66px; border-radius: 15px; object-fit: cover; }
.tta-news-placeholder { display: grid; place-items: center; background: color-mix(in srgb, var(--tta-theme, #087f75) 12%, white); color: var(--tta-theme, #087f75); font-size: .72rem; font-weight: 900; }
.tta-news-copy { display: grid; min-width: 0; gap: 7px; }
.tta-news-list a { display: -webkit-box; overflow: hidden; font-weight: 750; line-height: 1.3; text-decoration: none; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.tta-meta { display: flex; align-items: center; gap: 7px; color: #728094; font-size: .79rem; }
.tta-unread-dot { display: none; width: 8px; height: 8px; border-radius: 50%; background: #62b64d; box-shadow: 0 0 0 4px rgba(98,182,77,.12); }
.tta-news-list .is-unread .tta-unread-dot { display: inline-block; }
.tta-card-footer { display: flex; margin-top: 18px; justify-content: flex-end; }
.tta-view { padding-top:0; }
.tta-view-heading { padding:8px 5px 9px; }
.tta-view-heading h1 { margin: 5px 0 0; font-size: clamp(1.5rem, 5.6vw, 2.05rem); letter-spacing: -.03em; line-height:1.1; }
.tta-view > .tta-card { margin-top:0; }
.tta-news-author { font:inherit; font-style:italic; }
.tta-pagination { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 9px; margin: 18px 0; }
.tta-page-button { min-height: 42px; border: 1px solid color-mix(in srgb, var(--tta-theme, #087f75) 24%, white); border-radius: 13px; background: #fff; color: var(--tta-theme, #087f75); cursor: pointer; font: inherit; font-size: .8rem; font-weight: 800; padding: 8px 11px; }
.tta-page-button:last-child { justify-self: end; }
.tta-page-button:disabled { cursor: default; opacity: .4; }
.tta-page-position { color: #728094; font-size: .76rem; font-weight: 700; white-space: nowrap; }
.tta-article { margin-top: 7px; padding: 0 20px 26px; }
.tta-article-image { width: calc(100% + 40px); max-height: 360px; margin: 0 -20px 22px; object-fit: cover; }
.tta-article > h1 { margin: 8px 0 22px; font-size: clamp(1.45rem, 5.5vw, 2rem); letter-spacing: -.03em; line-height: 1.15; }
.tta-article-content { color: #273449; font-size: 1rem; line-height: 1.7; overflow-wrap: anywhere; }
.tta-article-content img { max-width: 100%; height: auto; border-radius: 14px; }
.tta-article-content iframe { max-width: 100%; }
.tta-article-content a { color: var(--tta-theme, #087f75); font-weight: 700; }
.tta-article-content > :last-child { margin-bottom: 0; }
.tta-chat-preview-list { list-style:none; margin:0; padding:0; }
.tta-chat-preview-list li { display:flex; align-items:flex-start; gap:11px; padding:11px 0; border-top:1px solid #edf1f2; }
.tta-chat-preview-list li:first-child { border-top:0; }
.tta-chat-preview-list img { flex:0 0 42px; width:42px; height:42px; border-radius:50%; object-fit:cover; background:#dfe9e7; }
.tta-chat-preview-list li > div { min-width:0; flex:1; }
.tta-chat-preview-head { display:flex; align-items:baseline; justify-content:space-between; gap:9px; }
.tta-chat-preview-head strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:.88rem; }
.tta-chat-preview-head time { flex:0 0 auto; color:#7b8798; font-size:.68rem; }
.tta-chat-preview-list p { display:-webkit-box; margin:4px 0 0; overflow:hidden; color:#5f6d80; font-size:.84rem; line-height:1.35; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
.tta-chat-card[role="button"] { cursor:pointer; }
.tta-chat-card[role="button"]:focus-visible { outline:3px solid color-mix(in srgb, var(--tta-theme, #087f75) 32%, white); outline-offset:3px; }
.tta-forum-card[role="button"] { cursor:pointer; }
.tta-forum-card[role="button"]:focus-visible { outline:3px solid color-mix(in srgb, var(--tta-theme, #087f75) 32%, white); outline-offset:3px; }
.tta-forum-preview-list, .tta-forum-topic-list, .tta-forum-posts { margin:0; padding:0; list-style:none; }
.tta-forum-preview-list li { display:flex; align-items:flex-start; gap:11px; padding:11px 0; border-top:1px solid #edf1f2; cursor:pointer; }
.tta-forum-preview-list li:first-child { border-top:0; }
.tta-forum-preview-list img { flex:0 0 42px; width:42px; height:42px; border-radius:50%; object-fit:cover; background:#dfe9e7; }
.tta-forum-preview-list li > div { display:grid; min-width:0; flex:1; gap:3px; }
.tta-forum-preview-topic { display:flex; align-items:center; gap:7px; overflow:hidden; font-size:.88rem; text-overflow:ellipsis; white-space:nowrap; }
.tta-forum-preview-list .is-unread .tta-unread-dot { display:inline-block; flex:0 0 8px; }
.tta-forum-preview-list p { display:-webkit-box; margin:0; overflow:hidden; color:#445267; font-size:.84rem; line-height:1.35; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
.tta-forum-preview-meta { color:#7b8798; font-size:.68rem; }
.tta-forum-topics-card { padding-top:8px; padding-bottom:8px; }
.tta-forum-categories { display:flex; margin:-2px -16px 8px; padding:3px 16px 8px; gap:8px; overflow-x:auto; scrollbar-width:none; }
.tta-forum-categories::-webkit-scrollbar { display:none; }
.tta-forum-category { min-height:38px; flex:0 0 auto; border:1px solid color-mix(in srgb,var(--tta-theme,#087f75) 20%,white); border-radius:20px; background:#fff; color:#516075; cursor:pointer; font:inherit; font-size:.78rem; font-weight:800; padding:8px 14px; white-space:nowrap; }
.tta-forum-category.is-active { border-color:var(--tta-theme,#087f75); background:var(--tta-theme,#087f75); color:#fff; box-shadow:0 6px 14px color-mix(in srgb,var(--tta-theme,#087f75) 20%,transparent); }
.tta-forum-topic-list li { border-top:1px solid #edf1f2; }
.tta-forum-topic-list li:first-child { border-top:0; }
.tta-forum-topic-button { display:grid; width:100%; gap:5px; border:0; background:transparent; color:inherit; cursor:pointer; font:inherit; padding:15px 0; text-align:left; }
.tta-forum-topic-title { display:flex; align-items:center; gap:9px; font-size:1rem; font-weight:800; line-height:1.3; }
.tta-forum-topic-list .is-unread .tta-unread-dot { display:inline-block; flex:0 0 8px; }
.tta-forum-name { color:var(--tta-theme,#087f75); font-size:.72rem; font-weight:800; text-transform:uppercase; letter-spacing:.05em; }
.tta-forum-topic-meta { color:#748195; font-size:.74rem; line-height:1.35; }
.tta-forum-topic-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:12px; }
.tta-forum-topic-heading > div { width:100%; min-width:0; }
.tta-forum-topic-heading h1 { overflow-wrap:anywhere; }
.tta-is-forum-topic-view { width:100%; overflow:hidden; overscroll-behavior:none; }
.tta-is-forum-topic-view .tta-pwa-shell { height:100dvh; min-height:0; overflow:hidden; }
.tta-forum-topic-view { display:flex; width:100%; max-width:100%; height:calc(100dvh - 160px - env(safe-area-inset-top) - env(safe-area-inset-bottom)); min-height:430px; flex-direction:column; overflow:hidden; }
.tta-forum-topic-view .tta-forum-topic-heading { flex:0 0 auto; }
.tta-forum-thread { display:flex; min-height:0; flex:1; flex-direction:column; padding:0; overflow-y:auto; overscroll-behavior:contain; scroll-padding-top:16px; }
.tta-forum-posts { display:flex; flex:0 0 auto; padding:16px; flex-direction:column; gap:15px; overflow:visible; }
.tta-forum-posts li { display:flex; min-width:0; align-items:flex-start; gap:9px; }
.tta-forum-posts li.is-mine { flex-direction:row-reverse; }
.tta-forum-post-avatar { flex:0 0 38px; width:38px; height:38px; border-radius:50%; object-fit:cover; background:#dfe9e7; }
.tta-forum-post-body { min-width:0; flex:1; border-radius:17px 17px 17px 5px; background:#f2f5f6; padding:11px 13px; overflow-wrap:anywhere; }
.tta-forum-posts .is-mine .tta-forum-post-body { border-radius:17px 17px 5px 17px; background:color-mix(in srgb,var(--tta-theme,#087f75) 12%,white); }
.tta-forum-post-meta { display:flex; align-items:baseline; justify-content:space-between; gap:10px; color:#738094; font-size:.68rem; }
.tta-forum-post-meta strong { color:#344257; font-size:.8rem; }
.tta-forum-post-meta time { flex:0 0 auto; white-space:nowrap; }
.tta-forum-post-content { margin-top:7px; color:#26354a; font-size:.9rem; line-height:1.5; }
.tta-forum-post-content > :first-child { margin-top:0; }
.tta-forum-post-content > :last-child { margin-bottom:0; }
.tta-forum-post-content img, .tta-forum-post-content iframe { max-width:100%; height:auto; }
.tta-forum-post-content .tta-inline-forum-image { width:auto; max-width:100%; max-height:480px; margin:12px auto; object-fit:contain; }
.tta-forum-attachments-separator { margin:10px 0; border:0; border-top:1px solid rgba(38,53,74,.12); }
.tta-forum-attachments { display:flex; flex-direction:column; gap:8px; }
.tta-forum-attachment.is-image { display:block; overflow:hidden; border-radius:13px; background:#e8eeee; }
.tta-forum-attachment.is-image img { display:block; width:100%; max-height:420px; object-fit:contain; }
.tta-forum-attachment.is-file { display:inline-flex; align-items:center; gap:8px; max-width:100%; padding:8px 12px; border-radius:11px; background:#e8eeee; color:#26354a; text-decoration:none; }
.tta-forum-attachment-icon { flex:0 0 auto; display:flex; color:var(--tta-theme,#087f75); }
.tta-forum-attachment-name { overflow:hidden; font-size:.82rem; font-weight:700; white-space:nowrap; text-overflow:ellipsis; }
.tta-forum-composer { display:grid; flex:0 0 auto; gap:9px; padding:15px; border-top:1px solid #e5ebec; background:#fff; }
.tta-forum-composer label { font-size:.8rem; font-weight:800; }
.tta-forum-input { width:100%; min-height:105px; resize:vertical; border:1px solid #d8e1e3; border-radius:15px; background:#f7f9f9; color:var(--tta-color-ink, #16243a); font:inherit; font-size:16px; line-height:1.45; padding:12px 13px; }
.tta-forum-input:focus { border-color:var(--tta-theme,#087f75); outline:2px solid color-mix(in srgb,var(--tta-theme,#087f75) 14%,transparent); }
.tta-forum-attachment-picker { display:flex; align-items:center; gap:10px; }
.tta-forum-image-button { min-height:38px; padding:8px 12px; font-size:.78rem; }
.tta-forum-image-input { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; }
.tta-forum-image-help { color:#748195; font-size:.7rem; }
.tta-forum-image-preview { position:relative; width:max-content; max-width:100%; }
.tta-forum-image-preview:empty { display:none; }
.tta-forum-image-preview img { display:block; width:auto; max-width:100%; height:110px; border-radius:13px; object-fit:cover; }
.tta-forum-image-remove { position:absolute; top:5px; right:5px; min-height:30px; border:0; border-radius:10px; background:rgba(22,36,58,.82); color:#fff; cursor:pointer; font:inherit; font-size:.68rem; font-weight:800; padding:5px 8px; }
.tta-forum-composer .tta-primary-button { justify-self:end; }
.tta-forum-readonly { margin:0; padding:14px 16px; border-top:1px solid #e5ebec; color:var(--tta-color-muted, #68758a); text-align:center; }
.tta-is-chat-view { width:100%; overflow:hidden; overscroll-behavior:none; }
.tta-is-chat-view .tta-pwa-shell { height:100dvh; min-height:0; overflow:hidden; }
.tta-chat-view { display:flex; width:100%; max-width:100%; height:calc(100dvh - 160px - env(safe-area-inset-top) - env(safe-area-inset-bottom)); min-height:430px; flex-direction:column; overflow:hidden; }
.tta-chat-view-heading { flex:0 0 auto; padding:8px 5px 9px; }
.tta-chat-view-heading h1 { font-size:clamp(1.5rem,5.6vw,2.05rem); }
.tta-chat-room-filters { margin:10px -4px 0; padding:0 4px 4px; }
.tta-chat-room-badge { display:inline-flex; align-items:center; justify-content:center; min-width:18px; height:18px; margin-left:6px; padding:0 5px; border-radius:999px; background:#c0362c; color:#fff; font-size:.68rem; font-weight:800; }
.tta-forum-category.is-active .tta-chat-room-badge { background:rgba(255,255,255,.35); }
.tta-chat-panel { display:flex; width:100%; max-width:100%; flex:1; min-height:0; flex-direction:column; overflow:hidden; border:1px solid rgba(54,87,99,.12); border-radius:24px; background:#fff; box-shadow:0 14px 38px rgba(33,61,70,.08); }
.tta-chat-messages { display:flex; flex:1; min-height:0; margin:0; padding:16px; flex-direction:column; gap:13px; overflow-y:auto; overscroll-behavior:contain; list-style:none; }
.tta-chat-messages li { display:flex; width:auto; max-width:88%; min-width:0; align-items:flex-end; gap:8px; }
.tta-chat-messages li.is-mine { align-self:flex-end; flex-direction:row-reverse; }
.tta-chat-message-avatar { flex:0 0 34px; width:34px; height:34px; border-radius:50%; object-fit:cover; background:#dfe9e7; }
.tta-chat-message-body { min-width:0; max-width:100%; border-radius:17px 17px 17px 5px; background:#f0f4f5; padding:9px 12px; overflow-wrap:anywhere; word-break:break-word; }
.tta-chat-messages .is-mine .tta-chat-message-body { border-radius:17px 17px 5px 17px; background:color-mix(in srgb,var(--tta-theme,#087f75) 13%,white); }
.tta-chat-message-meta { display:flex; align-items:baseline; justify-content:space-between; gap:12px; color:#738094; font-size:.65rem; }
.tta-chat-message-meta strong { overflow:hidden; color:#344257; font-size:.74rem; text-overflow:ellipsis; white-space:nowrap; }
.tta-chat-message-meta time { flex:0 0 auto; white-space:nowrap; }
.tta-chat-message-body p { margin:4px 0 0; color:#26354a; font-size:.9rem; line-height:1.42; white-space:pre-wrap; }
.tta-chat-composer { display:flex; width:100%; max-width:100%; flex:0 0 auto; align-items:flex-end; gap:8px; padding:10px; overflow:hidden; border-top:1px solid #e8eeee; background:#fff; }
.tta-chat-input { width:auto; min-width:0; max-width:100%; max-height:110px; min-height:44px; flex:1 1 auto; resize:none; border:1px solid #d8e1e3; border-radius:15px; background:#f7f9f9; color:var(--tta-color-ink, #16243a); font:inherit; font-size:16px; line-height:1.35; padding:11px 13px; }
.tta-chat-input:focus { border-color:var(--tta-theme,#087f75); outline:2px solid color-mix(in srgb,var(--tta-theme,#087f75) 14%,transparent); }
.tta-chat-send { min-width:0; min-height:44px; flex:0 0 auto; border:0; border-radius:14px; background:var(--tta-theme,#087f75); color:#fff; cursor:pointer; font:inherit; font-size:.8rem; font-weight:800; padding:10px 12px; }
.tta-chat-send:disabled { cursor:wait; opacity:.55; }
.tta-chat-readonly { margin:0; padding:13px 16px; border-top:1px solid #e8eeee; color:var(--tta-color-muted, #68758a); font-size:.84rem; text-align:center; }
.tta-profile-identity { display: flex; align-items: center; gap: 15px; margin-bottom: 22px; padding-bottom: 20px; border-bottom: 1px solid #edf1f2; font-size: 1.15rem; }
.tta-profile-avatar { width: 68px; height: 68px; border: 3px solid #fff; border-radius: 50%; object-fit: cover; background: #dfe9e7; box-shadow: 0 0 0 2px color-mix(in srgb, var(--tta-theme, #087f75) 22%, white); }
.tta-profile-fields { display: grid; grid-template-columns: minmax(100px, 40%) 1fr; gap: 0; margin: 0; }
.tta-profile-fields dt, .tta-profile-fields dd { margin: 0; padding: 11px 0; border-bottom: 1px solid #edf1f2; }
.tta-profile-fields dt { color: #728094; font-size: .84rem; }
.tta-profile-fields dd { font-weight: 700; overflow-wrap: anywhere; }
.tta-profile-notice { margin-top: 20px; border-radius: 15px; background: color-mix(in srgb, var(--tta-theme, #087f75) 8%, white); padding: 15px; }
.tta-profile-notice strong { color: var(--tta-theme, #087f75); }
.tta-profile-notice p { margin: 5px 0 0; color: #5f6d80; font-size: .88rem; line-height: 1.5; }
.tta-device-diagnostic { margin-top: 18px; border: 1px solid #dfe8e7; border-radius: 16px; background: rgba(255,255,255,.78); padding: 0 16px 16px; color: #35445a; }
.tta-device-diagnostic summary { cursor: pointer; font-weight: 800; padding: 15px 0; }
.tta-device-diagnostic > p { margin: 0 0 12px; color: #6a778a; font-size: .82rem; line-height: 1.45; }
.tta-device-diagnostic-list { display: grid; grid-template-columns: minmax(120px,1fr) minmax(130px,1fr); margin: 0 0 14px; font-size: .82rem; }
.tta-device-diagnostic-list dt,.tta-device-diagnostic-list dd { margin: 0; border-bottom: 1px solid #edf1f2; padding: 8px 0; }
.tta-device-diagnostic-list dt { color: #6a778a; }
.tta-device-diagnostic-list dd { text-align: right; font-weight: 750; }
.tta-device-diagnostic-list dd.is-ok { color: #177149; }
.tta-device-diagnostic-list dd.is-warning { color: #9b6510; }
.tta-device-diagnostic-list dd.is-error { color: #b33131; }
.tta-device-diagnostic-list dd.is-neutral { color: #59677a; }
.tta-push-card { margin-top:16px; }
.tta-push-onboarding { border-color:color-mix(in srgb,var(--tta-theme,#087f75) 30%,white); background:linear-gradient(145deg,#fff,color-mix(in srgb,var(--tta-theme,#087f75) 7%,white)); }
.tta-push-onboarding h2 { margin:5px 0 9px; font-size:1.25rem; }
.tta-push-onboarding p { margin:0; color:#566479; font-size:.9rem; line-height:1.5; }
.tta-push-onboarding-actions { display:flex; margin-top:16px; align-items:stretch; gap:9px; }
.tta-push-onboarding-actions button { min-width:0; flex:1; padding-right:10px; padding-left:10px; font-size:.78rem; }
.tta-push-card h2 { margin:4px 0 10px; font-size:1.25rem; }
.tta-push-status { margin:0 0 14px; color:#435167; font-size:.9rem; line-height:1.5; }
.tta-push-device-guide { margin:0 0 15px; border:1px solid #efc46b; border-radius:14px; background:#fff8e8; padding:13px; color:#664d17; }
.tta-push-device-guide strong { display:block; font-size:.88rem; }
.tta-push-device-guide p { margin:5px 0 0; font-size:.78rem; line-height:1.5; }
.tta-push-actions { display:flex; align-items:stretch; flex-direction:column; gap:9px; }
.tta-push-actions button { width:100%; }
.tta-push-help { margin:13px 0 0; color:#778397; font-size:.76rem; line-height:1.45; }
.tta-push-preferences { display:flex; margin-top:20px; padding-top:18px; border-top:1px solid #e8eeee; flex-direction:column; gap:0; }
.tta-push-preferences[hidden] { display:none; }
.tta-push-preferences-locked { margin-top:18px; border-top:1px solid #e8eeee; padding:16px 2px 2px; color:#536176; }
.tta-push-preferences-locked[hidden] { display:none; }
.tta-push-preferences-locked strong { display:block; font-size:.88rem; }
.tta-push-preferences-locked p { margin:5px 0 0; font-size:.78rem; line-height:1.5; }
.tta-push-preferences-heading { margin-bottom:8px; }
.tta-push-preferences-heading p { margin:4px 0 0; color:#6c798c; font-size:.8rem; line-height:1.45; }
.tta-push-preference { display:flex; min-height:58px; align-items:center; justify-content:space-between; gap:16px; border-bottom:1px solid #edf1f2; cursor:pointer; }
.tta-push-preference-copy { display:flex; min-width:0; flex-direction:column; gap:2px; }
.tta-push-preference-copy strong { color:#26354a; font-size:.9rem; }
.tta-push-preference-copy small { color:#778397; font-size:.73rem; line-height:1.35; }
.tta-push-preference input { width:22px; height:22px; flex:0 0 22px; accent-color:var(--tta-theme,#087f75); }
.tta-push-preferences .tta-secondary-button { margin-top:14px; }
.tta-push-feedback { min-height:18px; margin:8px 0 0; color:var(--tta-theme,#087f75); font-size:.78rem; font-weight:700; text-align:center; }
.tta-pwa-nav { position: fixed; z-index: 100; right: 0; bottom: 0; left: 0; display: flex; width:100%; max-width:100vw; justify-content: center; padding: 8px max(8px, env(safe-area-inset-right)) calc(8px + env(safe-area-inset-bottom)) max(8px, env(safe-area-inset-left)); border-top: 1px solid rgba(40, 67, 77, .1); background: rgba(255,255,255,.96); box-shadow: 0 -8px 25px rgba(26, 57, 65, .07); -webkit-backdrop-filter: blur(18px); backdrop-filter: blur(18px); }
.tta-pwa-nav a { position: relative; display: flex; width:auto; max-width:96px; min-width:0; min-height:58px; flex:1 1 20%; border-radius:15px; align-items:center; flex-direction:column; justify-content:center; gap:3px; overflow:hidden; color:#758093; font-size:.66rem; font-weight:750; text-align:center; text-decoration:none; }
.tta-pwa-nav a.is-active { background: color-mix(in srgb, var(--tta-theme, #087f75) 9%, white); color: var(--tta-theme, #087f75); }
.tta-nav-icon { position: relative; display: block; width: 24px; height: 24px; }
.tta-nav-icon svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.tta-nav-badge { position:absolute; top:-7px; right:-10px; display:grid; min-width:18px; height:18px; padding:0 4px; border:2px solid #fff; border-radius:10px; place-items:center; background:#d92d20; color:#fff; box-sizing:border-box; font-size:.58rem; font-weight:900; line-height:1; }
.tta-nav-badge.is-dot { top:-3px; right:-5px; min-width:9px; width:9px; height:9px; padding:0; border-radius:50%; }
.tta-nav-badge.is-urgent { background: #ef8b2c; }
@media (min-width: 540px) { .tta-user-copy { display: block; } }
@media (max-width: 430px) { .tta-push-onboarding-actions { flex-direction:column; } }
@media (max-width: 430px) { .tta-match-presence-actions { flex-direction:column; } }
@media (min-width: 700px) { .tta-pwa-shell { padding-right: 24px; padding-left: 24px; } .tta-pwa-header { padding-right: 24px; padding-left: 24px; } .tta-card { padding: 24px; } .tta-article { padding: 0 28px 30px; } .tta-article-image { width: calc(100% + 56px); margin-right: -28px; margin-left: -28px; } }
@media (prefers-reduced-motion: reduce) { :root { scroll-behavior: auto; } }
