/* ===== Chat workflow v2: 契約済み→進行→請求 ===== */
.tg-chat-list-tabs{display:flex;gap:8px;overflow-x:auto;margin:12px 0 16px;padding-bottom:2px}.tg-chat-list-tabs button{flex:none;min-height:40px;padding:0 14px;border:1px solid #424242;border-radius:999px;background:#121212;color:#ddd;font-weight:800;font-size:12px}.tg-chat-list-tabs button.active{background:#241d08;border-color:var(--tg-gold);color:var(--tg-gold-soft)}
.tg-contract-tag{display:inline-flex;align-items:center;gap:5px;padding:4px 8px;border-radius:999px;background:#12351f;border:1px solid #28683d;color:#9df0b4;font-size:10px;font-weight:900;white-space:nowrap}.tg-contract-tag.pending{background:#2c2208;border-color:#6c5518;color:#ffe187}.tg-contract-tag.done{background:#222;border-color:#555;color:#d7d7d7}
.tg-project-line{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:5px}.tg-project-name{color:#fff;font-weight:850}.tg-list-item.chat-v2{align-items:flex-start}.tg-list-item.chat-v2 .tg-item-side{padding-top:1px}
.tg-chat-page.v2{grid-template-rows:auto auto auto minmax(0,1fr) auto}.tg-chat-header.v2{grid-template-columns:auto 1fr auto;background:#080808}.tg-chat-header.v2 .head-main{text-align:left;min-width:0}.tg-chat-header.v2 .head-main h1{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tg-chat-header.v2 .head-main p{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tg-contract-bar{padding:10px 12px;border-bottom:1px solid #2e2e2e;background:#0e140f}.tg-contract-box{border:1px solid #345f41;border-radius:13px;background:linear-gradient(180deg,#102116,#0d1711);overflow:hidden}.tg-contract-title{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border-bottom:1px solid #294433}.tg-contract-title b{font-size:13px}.tg-contract-title a{color:var(--tg-gold-soft);font-size:11px;font-weight:900}.tg-contract-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:0}.tg-contract-meta div{padding:9px 10px;border-right:1px solid #294433}.tg-contract-meta div:last-child{border-right:0}.tg-contract-meta small{display:block;color:#8fb99b;font-size:9px;margin-bottom:3px}.tg-contract-meta b{font-size:12px;line-height:1.35}
.tg-quick-tools{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;padding:8px 10px;border-bottom:1px solid #292929;background:#0b0b0b}.tg-quick-tools button,.tg-quick-tools a{min-height:42px;border:1px solid #454545;border-radius:10px;background:#141414;color:#eee;display:grid;place-items:center;font-size:10px;font-weight:850}.tg-quick-tools .accent{border-color:#6c5412;color:var(--tg-gold-soft);background:#171307}
.tg-system-card{margin:8px 0;padding:12px;border:1px solid #343434;border-radius:13px;background:#101214;color:#e8e8e8;font-size:12px;line-height:1.6}.tg-system-card strong{display:block;margin-bottom:4px}.tg-system-card.green{border-color:#2e6240;background:#0d1811}.tg-system-card .mini-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:8px}.tg-system-card .mini-grid span{padding:8px;border-radius:9px;background:#171a1d}.tg-attachment{display:flex;align-items:center;gap:10px;margin-top:8px;padding:10px;border:1px solid #393939;border-radius:11px;background:#171717}.tg-attachment .fileicon{width:36px;height:36px;border-radius:9px;background:#7a2d23;display:grid;place-items:center;font-size:18px}.tg-attachment small{display:block;color:#aaa;font-size:10px}
.tg-chat-cta{display:grid;gap:8px;margin:10px 0}.tg-chat-cta a,.tg-chat-cta button{min-height:50px;border-radius:12px;display:grid;place-items:center;font-weight:900}.tg-chat-cta .primary{border:0;background:var(--tg-gold);color:#181000}.tg-chat-cta .secondary{border:1px solid #665016;background:#111;color:var(--tg-gold-soft)}.tg-chat-cta .pay{border:1px solid #31618d;background:#0d1b27;color:#9ed1ff}
.tg-composer.v2{padding-top:8px}.tg-composer-row{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center}.tg-composer-row input{min-width:0}.tg-composer-row .send{min-width:58px;height:54px;border:0;border-radius:12px;background:var(--tg-gold);color:#161000;font-weight:900}.tg-compose-actions.v2{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:7px}.tg-compose-actions.v2 button{min-height:34px;border:0;background:transparent;color:#bbb;font-size:10px}
@media(max-width:420px){.tg-contract-meta{grid-template-columns:1fr 1fr}.tg-contract-meta div:nth-child(2){border-right:0}.tg-contract-meta div:nth-child(3){grid-column:1/-1;border-top:1px solid #294433}.tg-quick-tools{grid-template-columns:repeat(4,1fr)}.tg-quick-tools button,.tg-quick-tools a{font-size:9px;padding:0 2px}}

/* v140: explicit account identity and role-specific actions. */
.tg-role-badge{display:inline-flex;align-items:center;flex:none;padding:3px 8px;border:1px solid #60636d;border-radius:999px;font-size:calc(var(--tg-base)*.66);font-weight:800;line-height:1.4;white-space:nowrap}
.tg-role-badge.company{color:#b6ddff;border-color:#396c94;background:#132536}
.tg-role-badge.worker{color:#ffe198;border-color:#897035;background:#302611}
.tg-role-badge.unknown{color:#d6d8dc;background:#21242a}
.tg-chat-page.v3{grid-template-rows:auto auto minmax(0,1fr) auto;height:100dvh;min-height:0;background:#08090b}
.tg-chat-header.v3{min-height:0;padding:10px 12px;gap:8px;align-items:center;background:#0f1115}
.tg-chat-header.v3 .head-main{min-width:0;text-align:left}
.tg-chat-header.v3 .head-main h1{font-size:calc(var(--tg-base)*.92);line-height:1.5;margin:5px 0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
.tg-chat-header.v3>a{font-size:calc(var(--tg-base)*.8);white-space:nowrap}
.tg-chat-header.v3 .tg-translate{width:38px;min-width:38px;min-height:44px}
.tg-chat-header.v3 .tg-chat-counterpart{display:flex;align-items:center;gap:6px;font-size:calc(var(--tg-base)*.74);line-height:1.4;margin:0}
.tg-chat-counterpart #partnerName{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tg-chat-details{border-bottom:1px solid #303641;background:#12161c;max-height:32dvh;overflow:auto}
.tg-chat-details summary{cursor:pointer;min-height:46px;display:flex;justify-content:space-between;gap:10px;align-items:center;padding:10px 14px;font-size:calc(var(--tg-base)*.72);font-weight:700;list-style:none}
.tg-chat-details summary::-webkit-details-marker{display:none}.tg-chat-details summary span:last-child{color:#d1dded;white-space:nowrap}.tg-chat-details summary span:last-child::after{content:' ＋'}.tg-chat-details[open] summary span:last-child::after{content:' −'}
.tg-chat-detail-body{padding:0 14px 12px;font-size:calc(var(--tg-base)*.76);line-height:1.6}.tg-chat-facts{margin:0}.tg-chat-facts>div{display:grid;grid-template-columns:5em minmax(0,1fr);gap:8px;border-top:1px solid #303641;padding:8px 0}.tg-chat-facts dt{color:#b5becb}.tg-chat-facts dd{margin:0;overflow-wrap:anywhere}.tg-chat-detail-link{display:inline-block;color:#ffe198;text-decoration:underline;padding:6px 0}.tg-chat-detail-link[hidden]{display:none}
.tg-chat-page.v3 .tg-messages{padding:16px 12px;overscroll-behavior:contain;scroll-padding-bottom:16px}
.tg-chat-page.v3 .tg-bubble{max-width:86%;margin-bottom:22px;margin-right:auto;min-width:0}.tg-chat-page.v3 .tg-bubble.mine{margin-left:auto;margin-right:0}
.tg-message-identity{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:7px}.tg-message-name{font-size:calc(var(--tg-base)*.68);line-height:1.5;color:#cbd0d9;overflow-wrap:anywhere;min-width:0}.tg-bubble.mine .tg-message-identity{justify-content:flex-end}
.tg-chat-page.v3 .tg-bubble p{white-space:pre-wrap;overflow-wrap:anywhere;border-radius:4px 16px 16px;background:#20262f;border:1px solid #475465;padding:12px 14px;font-size:var(--tg-base);line-height:1.65;color:#f6f7fa}
.tg-chat-page.v3 .tg-bubble.mine p{border-radius:16px 4px 16px 16px;background:#eac64d;border-color:#eac64d;color:#171408;font-weight:600}
.tg-chat-page.v3 .tg-bubble time{text-align:left;color:#b1b9c6;font-size:calc(var(--tg-base)*.64)}.tg-chat-page.v3 .tg-bubble.mine time{text-align:right}
.tg-chat-empty{color:#b8c0cd;font-size:calc(var(--tg-base)*.85);text-align:center;line-height:1.8;padding:24px 10px;margin:0}
.tg-composer.v3{padding:8px 12px max(8px,env(safe-area-inset-bottom,0px));border-top:1px solid #3d4654;background:#0f1115;position:static;min-width:0}
.tg-chat-role-actions{display:grid;grid-template-columns:1fr 1.25fr;gap:8px;margin-bottom:8px}.tg-chat-role-actions button,.tg-chat-role-actions a{min-height:42px;border:1px solid #49535f;background:#191e26;border-radius:9px;padding:7px 8px;font-size:calc(var(--tg-base)*.72);font-weight:750;text-align:center;display:flex;align-items:center;justify-content:center;line-height:1.4}
[data-chat-role="company"] #chatInvoiceAction{border-color:#497597;background:#142b3c;color:#b6ddff}[data-chat-role="worker"] #chatInvoiceAction{border-color:#80672e;background:#2b2311;color:#ffe198}
.tg-chat-role-actions [aria-disabled="true"]{opacity:.5;pointer-events:none}.tg-composer.v3 button:disabled{opacity:.5;cursor:default}
.tg-composer.v3 textarea{resize:none;min-width:0;width:100%;min-height:48px;max-height:100px;padding:11px 12px;border:1px solid #677382;border-radius:12px;background:#171c23;color:#fff;font-size:var(--tg-base);line-height:1.4}
.tg-composer.v3 .send{min-width:54px;height:48px;border:0;border-radius:12px;background:#eac64d;color:#171408;font-weight:850}
.tg-chat-status{margin:0;font-size:calc(var(--tg-base)*.72);line-height:1.6;color:#cad7e7;overflow-wrap:anywhere}.tg-chat-status:not(:empty){margin:3px 0 8px}.tg-chat-status[data-error="true"]{color:#ffacb6}
.tg-chat-composer-note{font-size:calc(var(--tg-base)*.6);color:#aeb7c6;margin:6px 0 0;text-align:center}
@media(max-height:600px){.tg-chat-header.v3 .head-main h1{-webkit-line-clamp:1}.tg-chat-header.v3{padding-top:5px;padding-bottom:5px}.tg-chat-composer-note{display:none}.tg-chat-details{max-height:24dvh}.tg-chat-role-actions{margin-bottom:5px}}

.tg-chat-list-name{display:block;margin-top:5px;overflow-wrap:anywhere}.chat-v2 .tg-item-copy,.card.chat>span:nth-child(2){min-width:0}.chat-v2[hidden],.card.chat[hidden]{display:none}
