/* =====================================================================
   TARS Motion 共通部品（CSS）
   - 色・書体は tars-brand スキルの値。サイトに組み込むときは :root をサイト側の定義に任せる
   - 構造: .tm（置き場）> .tm-stage（固定サイズのキャンバス。幅に合わせて拡大縮小）
           > .tm-frame（製品の窓）> .tm-scene（場面の HTML）
   - 接頭辞: tm- は共通、ta- は TARS 管理画面の部品、sl- は Slack の部品
   ===================================================================== */
:root{
  --p50:#f4f2ff;--p100:#e5dffe;--p200:#c8b8ff;--p300:#a086f5;--p400:#6b40e8;--p500:#3a00d7;--p600:#2d00a8;--p700:#20007a;--p800:#14004d;
  --k100:#ffd9e9;--k500:#ff096c;--k600:#cc0055;
  --n50:#f8f7fd;--n100:#f0eef9;--n200:#d8d5ea;--n400:#8b87a3;--n600:#4a4460;--n800:#1d1a2e;--n900:#0d0b1a;
  --surf-1:#fdfcff;--surf-2:#f8f6ff;--surf-3:#ede9ff;
  --ok-600:#059669;
  --grad:linear-gradient(135deg,#3a00d7,#ff096c);
  --shadow-sm:0 1px 2px rgba(29,26,46,.05);
  --shadow-md:0 4px 12px rgba(29,26,46,.08);
  --f-en:'Space Grotesk',sans-serif;
  --f-ja:'Noto Sans JP',sans-serif;
}

/* ---------- 共通: キャンバス・窓・カーソル ---------- */
.tm{position:relative;width:100%;}
.tm-stage{position:absolute;left:0;top:0;transform-origin:0 0;font-family:var(--f-ja);font-size:15px;line-height:1.7;letter-spacing:.02em;color:var(--n800);-webkit-font-smoothing:antialiased;}
.tm-stage *,.tm-stage *::before,.tm-stage *::after{box-sizing:border-box;margin:0;padding:0;}
.tm-frame{position:absolute;left:0;top:0;background:#fff;border:1px solid var(--n200);border-radius:12px;box-shadow:var(--shadow-md);overflow:hidden;}
.tm-scene{position:absolute;inset:0;}
.tm [hidden]{display:none!important;}
.tm-mascot{display:inline-block;flex:none;width:22px;height:22px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAABACAYAAABGHBTIAAAN+klEQVR42uWbaZBdxXXHf6f73vuW0YxGspAYBBKbTdkGC4PMYsAOGBLA7GYJKZcJJEYxcSGIoAqBQBY7ZaoIJpBCTrHEhYNFEmzKS4QFilgFFgQZzGIDQhISWoDRjKSZd+/t7pMPbzSaee+NRsuMEEm/el/uct75d58+y//0E4Zx3M5jY4x1Rwn+WIseasTtYwmjI7RkJWDxFav6cSy6xBJesqLzC1nl2ZOZuna4dJLhEDoreuzISMNfW8KJVnRCgsHiEDwGT0SgCjiQoERADEBORFhmROeakD9wopv63C4N+Nro118xQa8xEk4pYi1kiORYtAqy5xuhvYA3X1csgQJQEEMg9ZHqr4LmNx3vpr24SwGextymyIYZEUwtYEtKBYuvApGwTYA3rX6EUsai5N2i/kcu77jxWGZt+MQBX8rjn02M3FcQezRUMD1Ae4FsJ+BNz8U9wD3Zs4JedHh2xR93RF+zIy9PZe7h1pjfWomOzqmghCH3BwGlm4wYe5SF3y4s3XrEJwJ4CvMOCyb+hcFOdKQM96iQY8VMSLz8YlF08+E7FfDFPLFfZOwcgx3nydlZI8MRiR0bGzPnpcLN++8UwJfzXAlj7jckE3cm2L6gE7ETYg0PLGJmedgBd0g2PaJ0jKPCJzUq5JQlOapYMFcPK+Dv8NSXRMw0vxP27GAjJSfGXv5WfP2kYQMsotdaCuXh8Mbb471jbFlNuHZYAF/AMweL2NN2hdXdvMqOCHPqkvj6Lw854CBcaCkkoPU3FYJXgteGt7d7KKhXdAC5ipIQJV7cRUMK+Bzmjwiip4UGXtmFQAjKiLEJzeMKKIrzO27yIfOgSjKuTDK2hAZFM1/3XI5H4dQ3uLJ5a+RGWzcr8ZcNdqLi6sB+9rBWTrxuXyZMbkGMsPrVTp6+5S3em7caa7cf7LjjJ7Lf9Mk0HzQGgrLh5VWsvPEZup5fjk02r5MnEIuZYIvFQ6iwYEgAC+ZISyJ9AfugTDyomSm/PoSmz8S91/c9bgx7HTGKfzv5OZYtWI2NthGs84z9+p4c8vNTsE2b5Y46aV+aD2/jjyf8lPSVDyCWTVZPgUhS/JEwOGCzld55ktZsIkX5xhUTe8Gu+9DTvqZqcnHZcvTVn8MY2bY9rSBG2H/65F6w7Ws96z6syo1Gl9h92uGg9bqoMmnI9rDCRPqEIg1QSCwTv9KCKtx28SrOPuAdzj7gbWacvYI8VcZNaqU8KkG3YTtrUOJRRVomfYY8gxnnruCcz73D2Qe8w63fXUVQaDq0DdOUoEH7hSjQiUMC+FAWxYK09lvhnqJy00QXSkJSEJKiISmb6n3V7XPYSq9VFEuGpFiVXSjV/GhNTEa0Vbk33uE9fCDrbUpS6GubIpBmnvcWdtD2hSYuu3Mc371hNzTAiNbqHC59eR1d7RnJNqQ2YoSsvcK6l9cy7ptNzHiwjQ3rAmKgqaUqaMOLK/Ebsx7H1UcnpLCcNyPYcoI/qDpd7BZAXC1XIAjzbl9K56pqItLUYnrBpp2Op298C4JuG8XQYxlv37wI15kB1QncBDZfvZFVt7+AmIZCXQU36AYaNHC8zt3hQHn/O1bs+CoJpxgUK7B+bcrb8z6ieUxMcYQlXe9Z+vRH/PKSxSx/7kNiKxhRDPS+V/3Sc73mGoo1QmVpB+ueWUFxXBlbjvEdKR1PLGXJ9/6LyuLV2Nj0ey9GUMKSn/jyvQtYoDtM8fylPPdoQeIzoNKPqrEoEhyWQHNrRCyBtD3D4ClYdojikSwnNlAcnWA0oB93ERGIEql7rwlDTvbYPukNpw+Jlzbo6zLAo9YYrDVUOnK623OMEazdIeao+puJRawhb09xHSkSGySxA+gnAG8MWaalqq+rhEEdjlQ34ZCSyGIHlxtQVOSNISwezPsBNzys/RDQrjke0PeGDLBHP1K8Y5eEDIGQSdA1QwY4gvXwCXI6W1xhAejObOgcMsABU1FId8UV7gnd3aU47h4ywAaXCWSySwIWgLzSWVO77gjgIuIGS9k+LWOrAK+h6BX8/xvAJTJlmwq9Tzng9awLArtsWNouwCfwytjjeGcc/8fGhvIVu2vTtLG9IfbrvDZC0Vs89ryILnOiLJ6nGl8+ly988GkGuqZ8dVvRZ3fYoMc7NKTFqY8kleSqyCM3xDR9X+gGhJjyeV46m7+u809fwLHu0wh2PjMjE7p+3CyFb3ZTQQUS4ktCseKMwhmBFMWjeBxdCBzXQmmvTQK6KQmIGSgSRiRYYiJiIpIhUzwhJsISYUnYevpzUtGNF+S49WQ9qAIBh4qeaUBa6dcrUkCjgGnadKWZZqMQ1VYsUv2qI30oJz8r1/w8p+l/GuwOg42wpJo/muJOy8lPyXA/s1tZ6+TGtSqaaE1FJcioAaZN1DRiy+rokoSglXvuCCd9v8/lOdfbx+6NSC7WAdJvg+lRPQy4so7sgRPzqRf2ufyrF5Lb1pUkmuLJtqyXMzkmBKlhdBQVA4O8vYWUzpM5VTO7HpH/J0eeNwpjEREB3+EJ66IGZioIGc45dXfW3osxP8rxmRkkPDrRitRkhgKIkhuByvbFVyGgXpC6dqLk2qWoq829LRav7k7r4oPE+i853B2NzF9RF5m47ohSZn2nEtLBG3/W15uPoFAxOgCR5wmhb6YliNaqJRDldJfqZjiiTZBSX2baYHHq3iv4/KqLOH/5RZWLlq/LO6d79UtsHxUUsJii+tBWZzgayUBNxqwPwF7esBExA5rXr521Qjxm88qEUcDo/tS6oOCEQleDKZ4QEfejZSwGRN64kAsrm489TU0RXWr66aZEWFSo6yRY8R7E17ZZjDByZInWzdvGTTSYfhNenSnxkSBvCHZveqorRRGssSK3n6ULr0rQLhG92mBbtc927zHXtYZ8VQOntLdUJ6RvQw5V3qt3j7JSROpIORH2qX027Y7akyT/0Ihp3VTLeJQS0Uiv2exlpWtnWnWJqt5mEQl96h2DEIQlBsJv6k3EYbCHIfbJIPK8IT4t1JSblhiUhXdxcmeD7b1PIxdvhJUNAsL7tT6k5906wF9lWjeiv4tqrDXDkxCdhPqFwNOx2MPyuuJOIDDPWJoeCaQfSM1W3gxQpL4RLnicYmT2ACznxPrOkqIi9byTmuWNOvto4+aYRR9whDo3m+ExGGMQqQVrMeT4dgM/MQvYZ5UgtwhJA15eG9KjMSW8uofu9t+YV3vvXhbFIjK+9uBLQCHIR3Xb3eiKUPdsANjjNebUpW0Hp+k8h//3UoOMTns+teEoJiIoP5T0rncMwFi+eE+g+z5LCdlCNiMYYkpk2v2EaHIpdZ4bVrJ0lKJj+wIWIOBRQnu9g/MfOJxKXTdQdlvVtHJUvQ6zgkTp33eTPV+mwJZicoShLDHdZA8UKt2395aHjyDec+CUQPcPBOm0lDAkGCJMbyZbRJCNuVbu9Bqd+c8c097Y5KLdgJG1Hj0Qghrq3jHWrlG0u691VR0nIzWzYxv9xsEbZ60hzU+paDZbkEqZmEJPRp9gKRJRJkZU13apu6rU/dW/FWbn/ToPC6q81ay/0MUPG5Oeh/pjBL9HQAnoSq/6rKh/5H6+9octcthWxkfYuG+i0wOlW0y0ru6FNG0njjsMUu4LOCKK1OTjgVdp2Mad9TEZU96Kr78nNe5Mgx5m1Y8NhCCwzKl/CmN+Prryw2VbbLXMZdJbBK4HuJhFMcBsJuebD5bOH1MgHtlJvuJBjq1LloPq3kYitJ+jExRd79KOjtrn92D1+lW654ci0qY15ph53bsR2EXMLLcUmto6440dB2y4bjGwuDpRM40wK2w3xTObyfkmsOcwJ7lAnro5mPjVzPhXm4x58RL7+Ml1e6xB/DQYUPloBGF97b1jmeUQVjeigEWkTtaLyU1nFQvlRRn5qy1Z8vs3Cz+4aVPnfzCw23QwrWDaLo1lxHRgd9CSxR5k1T58Gb/5Yo2ae9eXkQKi709hSj7AMYeVtc5SAa2ZvBeT2w4wYh80yOeBEqJtzRSv/lOy4h+G+GDaHAtyfiDrIQoUR0pMoVnFXto/BjOhPjQYVOVPWzgltFzq+0UIulfNacCLSyQjUlyPDoEMhwgXvMbMZMgAv8u+RqFUC8SRgXDqVB5tBZjJawnC+P5xtdrqFKOvDAhYeb/hQRVl/HzuLwIs5M4WlHOymoyv57nyqK0+ZLcV4yUm50Z5zdRlY4GIuM3a0q1XxL88OLdLrhXsXn1z2Go7M3MQ/W5AJdS86/H9drHHY8XuGeL2Gc/EdxzskvQfE4n28jVJSowF4dnxzOoa0sOlquE+j9P6MjInIppigllkiWcowdTEZYLqm3vk+uaAsr38jyNfa2rUCQRJJLomSFiUEF1YmzL2kAUekbuH/DTtfhzzeCB/0lJoUDs7BLG+QT/LYkHk4XM5d0Bm5Vz+Zi3IQzH1x6wcHkFs3qDTUyDCaXhy/woLhxzwLCTYINd4XJc0ZinqUzuJSUmXqbM/HpR4y7tvTTV9uxHohrKrBcEGVTN9a8LRdp2Iv5+vvSC474GkdhA6NiYhaFgjqhdcybcG7c7/FZetFjjf41cUBpGdEKFQyUOY8vn8upeG9U8e/xL+7F+DuFMU/5LBYomRasmOwWCJsVU656lg/J9f6c/5762VfYb7u0WZ+BOc5nMNRmMiTK9sIe6R7gmvOPypB+bX/XSn/RXv28xtGm2SM626bxkTDrT4loiwPlJ+H6Fz1oZ3H72Lqdv1f4E5zLGtydrTI/XfNoRDrPgWq7oxlvCHSPiPNN34syOY1bk9iv8vtMZQBqHHfQQAAAAASUVORK5CYII=) center/contain no-repeat;}
svg.tm-i{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;} /* 線画アイコン（Lucide 系） */
.tm-clone{position:absolute;z-index:4;pointer-events:none;margin:0!important;}
.tm-cursor{position:absolute;left:0;top:0;width:20px;height:22px;z-index:9;pointer-events:none;opacity:0;}
.tm-ripple{position:absolute;left:0;top:0;width:28px;height:28px;margin:-14px 0 0 -14px;border-radius:50%;border:2px solid var(--p400);z-index:8;pointer-events:none;opacity:0;}
.tm-debug{position:absolute;left:8px;top:-22px;z-index:10;font:500 12px/1 var(--f-en);color:var(--n600);}

/* ---------- テロップ ----------
   幕間（interlude）: 窓を白で覆い、一文だけを見せてから戻る
   重ね（overlay）  : 画面を薄く残したまま、上に一文を重ねる
   字幕（subtitle） : 窓の下の帯に出し、画面は止めない */
.tm-cap{position:absolute;inset:0;z-index:7;display:flex;align-items:center;justify-content:center;padding:0 40px;text-align:center;background:#fff;}
.tm-cap.is-overlay{background:rgba(255,255,255,.82);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);}
.tm-cap-eb{display:inline-flex;align-items:center;gap:10px;margin-bottom:14px;font:500 13px/1 var(--f-en);letter-spacing:.2em;text-transform:uppercase;color:var(--p500);}
.tm-cap-eb::before{content:'';width:24px;height:2px;border-radius:2px;background:var(--grad);}
.tm-cap-t{font-size:36px;font-weight:600;line-height:1.45;letter-spacing:.02em;color:var(--n900);}
.is-compact .tm-cap-t{font-size:28px;}
.tm-cap-l{display:block;overflow:hidden;padding-bottom:.06em;} /* 行ごとに見えない枠の下から押し上げる */
.tm-cap-l>span{display:inline-block;}
.tm-cap-ph{display:inline-block;}
.tm-sub{position:absolute;left:4px;right:0;height:36px;display:flex;align-items:center;gap:12px;}
.tm-sub-no{width:22px;font:500 13px/1 var(--f-en);letter-spacing:.16em;color:var(--p500);}
.tm-sub-bar{flex:none;width:24px;height:2px;border-radius:2px;background:var(--grad);}
.tm-sub-win{position:relative;flex:1;height:36px;overflow:hidden;}
.tm-sub-t{position:absolute;left:0;top:0;line-height:36px;font-size:21px;font-weight:600;letter-spacing:.02em;color:var(--n900);white-space:nowrap;}
.is-compact .tm-sub-t{font-size:19px;}

/* ---------- 棒グラフ（TM.chart.bars が描く） ---------- */
.tm-ch{display:block;width:100%;height:auto;overflow:visible;}
.tm-ch-grid{stroke:var(--n100);stroke-width:1;stroke-dasharray:1;stroke-dashoffset:1;}
.tm-ch-axis{font-family:var(--f-en);font-size:11px;fill:var(--n600);opacity:0;}
.tm-ch-cat{font-family:var(--f-en);font-size:12px;font-weight:500;fill:var(--n800);}
.tm-ch-bar{fill:var(--p200);transform-box:fill-box;transform-origin:50% 100%;transform:scaleY(0);}
.tm-ch-bar.is-key{fill:var(--p500);}
.tm-ch-val{font-family:var(--f-en);font-size:12px;font-weight:500;fill:var(--n600);opacity:0;}
.tm-ch-val.is-key{fill:var(--p600);font-weight:700;}
.tm-ch-ref{stroke:var(--p400);stroke-width:1.5;stroke-dasharray:4 4;transform-box:fill-box;transform-origin:0 50%;transform:scaleX(0);}
/* 複製（.tm-clone）は動きの状態を引き継がないので、完成状態で固定する */
.tm-clone .tm-ch-bar,.tm-clone .tm-ch-ref{transform:none;}
.tm-clone .tm-ch-bar:not(.is-key){fill:var(--p100);}
.tm-clone .tm-ch-grid{stroke-dashoffset:0;}
.tm-clone .tm-ch-axis,.tm-clone .tm-ch-val{opacity:1;}

/* =====================================================================
   TARS 管理画面（ta-）
   サイドバーは出さない（チャット欄が狭くなり、読めない小さな文字が増えて目が散る。2026-10-05 判断）
   左上にロゴと画面名、右上に操作を置く。用語はノートブック廃止（#3262）後の形に合わせる
   ===================================================================== */
.ta-app{position:absolute;inset:0;}
.ta-head{position:absolute;left:0;right:0;top:0;height:48px;display:flex;align-items:center;justify-content:space-between;padding:0 20px 0 24px;border-bottom:1px solid var(--n100);}
.ta-brand{display:flex;align-items:center;gap:8px;font:600 15px/1 var(--f-en);color:var(--n900);}
.ta-hl{display:inline-block;font-family:var(--f-ja);font-size:13px;font-weight:400;color:var(--n600);}
.ta-head-r{display:flex;gap:8px;}
.ta-hbtn{display:flex;align-items:center;gap:6px;height:32px;padding:0 12px;border:1px solid var(--n200);border-radius:8px;background:#fff;font-size:13px;line-height:1;color:var(--n600);}
.ta-hbtn svg{width:15px;height:15px;}
.ta-hbtn.is-on{background:var(--surf-3);border-color:var(--p300);color:var(--p700);}
.is-compact .ta-hbtn{padding:0 8px;}
.is-compact .ta-hbtn-l{display:none;}

/* チャット（中身を縦に送ってスクロールを表す。上へ送った発言は端でぼかす） */
.ta-view{position:absolute;top:48px;left:0;right:0;bottom:76px;overflow:hidden;
  -webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 20px);mask-image:linear-gradient(to bottom,transparent 0,#000 20px);}
.ta-content{padding:20px 32px 16px;}
.is-compact .ta-content{padding:16px 20px 12px;}
.ta-user{display:flex;justify-content:flex-end;}
.ta-bubble{padding:8px 16px;border-radius:12px;background:var(--surf-3);color:var(--n900);font-weight:500;}
.ta-bot{display:flex;gap:12px;margin-top:16px;}
.is-compact .ta-bot{gap:10px;}
.ta-av{flex:none;display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid var(--n100);border-radius:50%;background:#fff;}
.ta-body{flex:1;min-width:0;}
.ta-step{display:flex;align-items:center;gap:8px;height:32px;font-size:13px;color:var(--n600);}
.ta-ico{position:relative;flex:none;width:16px;height:16px;}
.ta-ico svg{position:absolute;inset:0;width:16px;height:16px;}
.ta-spin{animation:tm-rot .8s linear infinite;}
.ta-check{color:var(--ok-600);opacity:0;}
@keyframes tm-rot{to{transform:rotate(360deg);}}
.ta-tbl{padding:0 8px;border-radius:6px;background:var(--n100);color:var(--n600);font-family:var(--f-en);font-size:12px;line-height:22px;}
.ta-sql{width:fit-content;margin:2px 0 6px 24px;overflow:hidden;border:1px solid var(--n100);border-radius:8px;background:var(--n50);}
.ta-sql pre{padding:8px 12px;font-family:ui-monospace,'SF Mono',Menlo,monospace;font-size:12px;line-height:1.6;color:var(--n600);white-space:pre;}
.ta-sql b{font-weight:500;color:var(--p600);}
.ta-card{margin-top:8px;padding:10px 12px 4px 16px;border:1px solid var(--n200);border-radius:12px;background:#fff;}
.ta-card-h{display:flex;align-items:center;gap:6px;min-height:26px;}
.ta-card-t{flex:1;min-width:0;font-size:13px;font-weight:600;color:var(--n900);white-space:nowrap;}
.ta-add{display:inline-flex;align-items:center;gap:5px;height:26px;padding:0 10px;border:1px solid var(--n200);border-radius:8px;background:#fff;font-size:12px;line-height:1;color:var(--n600);white-space:nowrap;}
.ta-add svg{width:12px;height:12px;color:var(--p500);}
.ta-add.is-press{background:var(--surf-3);border-color:var(--p300);color:var(--p700);}
.ta-dl{display:flex;align-items:center;justify-content:center;width:26px;height:26px;color:var(--n600);}
.ta-dl svg{width:14px;height:14px;}
.ta-insight{margin-top:10px;font-size:14px;color:var(--n800);}
.ta-insight strong{font-weight:600;color:var(--n900);}
.ta-chunk{display:inline-block;opacity:0;}
.ta-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px;}
.ta-chip{display:inline-flex;align-items:center;height:30px;padding:0 12px;border:1px solid var(--n200);border-radius:100px;background:#fff;font-size:13px;color:var(--n800);opacity:0;}

.ta-input{position:absolute;left:32px;right:32px;bottom:16px;height:48px;display:flex;align-items:center;gap:12px;padding:0 8px 0 16px;border:1px solid var(--n200);border-radius:12px;background:#fff;box-shadow:var(--shadow-sm);}
.is-compact .ta-input{left:20px;right:20px;}
.ta-input.is-focus{border-color:var(--p400);box-shadow:0 0 0 2px rgba(58,0,215,.15);}
.ta-field{flex:1;min-width:0;overflow:hidden;white-space:nowrap;color:var(--n900);}
.ta-ph{color:var(--n400);}
.ta-caret{display:inline-block;width:1.5px;height:1.1em;margin-left:1px;vertical-align:-.15em;background:var(--p500);animation:tm-blink 1s steps(1) infinite;}
@keyframes tm-blink{50%{opacity:0;}}
.ta-send{flex:none;display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px;background:var(--p200);}
.ta-send svg{width:16px;height:16px;color:#fff;}
.ta-send.is-ready{background:var(--p500);}

/* ダッシュボード */
.ta-dash{position:absolute;top:48px;left:0;right:0;bottom:0;z-index:2;padding:20px 24px;background:#fff;}
.is-compact .ta-dash{padding:16px;}
.ta-dv-title{margin-bottom:12px;font-size:15px;font-weight:600;color:var(--n900);}
.ta-dv-title span{margin-left:8px;font-size:13px;font-weight:400;color:var(--n600);}
.ta-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:12px;}
.is-compact .ta-kpis{gap:8px;}
.ta-tile{padding:12px 16px;border:1px solid var(--n200);border-radius:12px;background:#fff;}
.is-compact .ta-tile{padding:10px 12px;}
.ta-kpi-l{font-size:12px;color:var(--n600);}
.ta-kpi-v{font-family:var(--f-en);font-size:22px;font-weight:600;line-height:1.3;color:var(--n900);}
.is-compact .ta-kpi-v{font-size:17px;}
.ta-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:stretch;} /* 隣のタイルを新しいタイルと同じ高さに */
.is-compact .ta-row{grid-template-columns:1fr;}
.ta-tile-t{font-size:13px;font-weight:600;color:var(--n900);}
.ta-line{display:flex;flex-direction:column;}
.is-compact .ta-line{display:none;}
.ta-line-plot{position:relative;flex:1;min-height:0;margin-top:8px;}
.ta-line-plot svg{position:absolute;inset:0;width:100%;height:100%;}
.ta-slot{border:1.5px dashed var(--n200);border-radius:12px;}

/* =====================================================================
   Slack（sl-）: チャンネル・メンション・スレッド・TARS の返信
   Slack のロゴと配色は使わず、ブランドの色で Slack と分かる形（# チャンネル、スレッド、アプリの印）に組む
   サイドバーは出さない。縦長（スマホ）ではスレッドを全面に開く
   ===================================================================== */
.sl-app{position:absolute;inset:0;}
.sl-main{position:absolute;inset:0;}
.sl-head{display:flex;align-items:center;gap:6px;height:44px;padding:0 18px;border-bottom:1px solid var(--n100);font-size:14px;font-weight:600;color:var(--n900);}
.sl-head svg{width:14px;height:14px;color:var(--n600);}
.sl-head small{margin-left:auto;font-family:var(--f-en);font-size:12px;font-weight:500;color:var(--n600);}
.sl-view,.sl-tview{position:absolute;left:0;right:0;overflow:hidden;
  -webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 16px);mask-image:linear-gradient(to bottom,transparent 0,#000 16px);}
.sl-view{top:44px;bottom:84px;}
.sl-list{padding:12px 18px 8px;}
.sl-msg{display:flex;gap:10px;padding:6px 0;}
.sl-av{flex:none;display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px;font-size:13px;font-weight:600;line-height:1;}
.sl-av.is-a{background:var(--k100);color:var(--k600);}
.sl-av.is-b{background:var(--p100);color:var(--p700);}
.sl-av.is-c{background:var(--n100);color:var(--n600);}
.sl-av.is-app{border:1px solid var(--n100);background:#fff;}
.sl-mb{flex:1;min-width:0;}
.sl-name{font-size:13px;font-weight:600;line-height:1.5;color:var(--n900);}
.sl-tag{margin-left:5px;padding:1px 4px;border-radius:3px;background:var(--n100);font-size:10px;font-weight:500;color:var(--n600);vertical-align:1px;}
.sl-time{margin-left:6px;font-family:var(--f-en);font-size:11px;font-weight:400;color:var(--n600);}
.sl-text{font-size:13.5px;line-height:1.6;color:var(--n800);}
.sl-mention{padding:0 3px;border-radius:4px;background:var(--p50);color:var(--p600);font-weight:500;}
.sl-replies{display:inline-flex;align-items:center;gap:6px;margin-top:4px;font-size:12px;font-weight:600;line-height:1.5;color:var(--p600);}
.sl-replies .tm-mascot{width:18px;height:18px;border-radius:4px;border:1px solid var(--n100);background-color:#fff;}
.sl-composer{position:absolute;left:18px;right:18px;bottom:16px;height:52px;display:flex;align-items:center;gap:8px;padding:0 8px 0 12px;border:1px solid var(--n200);border-radius:8px;background:#fff;}
.sl-composer.is-focus{border-color:var(--n400);}
.sl-field{flex:1;min-width:0;overflow:hidden;white-space:nowrap;font-size:13.5px;color:var(--n900);}
.sl-field .sl-mention{margin-right:4px;}
.sl-ph{color:var(--n600);}
.sl-send{flex:none;display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:6px;background:var(--n100);color:var(--n400);}
.sl-send svg{width:15px;height:15px;}
.sl-send.is-ready{background:var(--p500);color:#fff;}
/* メンションの候補 */
.sl-pop{position:absolute;left:18px;bottom:74px;width:236px;padding:6px;border:1px solid var(--n200);border-radius:8px;background:#fff;box-shadow:var(--shadow-md);transform-origin:20% 100%;}
.sl-pop-h{padding:4px 8px 6px;font-size:11px;color:var(--n600);}
.sl-pop-i{display:flex;align-items:center;gap:8px;height:32px;padding:0 8px;border-radius:6px;font-size:13px;color:var(--n800);}
.sl-pop-i .tm-mascot{width:20px;height:20px;}
.sl-pop-i.is-on{background:var(--surf-3);}
.sl-pop-i small{margin-left:auto;font-size:11px;color:var(--n600);}
/* スレッド */
.sl-thread{position:absolute;top:0;right:0;bottom:0;z-index:3;width:360px;border-left:1px solid var(--n200);background:#fff;}
.is-compact .sl-thread{left:0;width:auto;border-left:0;}
.sl-thead{display:flex;align-items:center;gap:8px;height:44px;padding:0 10px 0 16px;border-bottom:1px solid var(--n100);}
.sl-thead b{font-size:14px;font-weight:600;color:var(--n900);}
.sl-thead span{font-size:12px;color:var(--n600);}
.sl-x{display:flex;align-items:center;justify-content:center;width:28px;height:28px;margin-left:auto;color:var(--n600);}
.sl-x svg{width:15px;height:15px;}
.sl-tview{top:44px;bottom:0;}
.sl-tlist{padding:10px 16px 16px;}
.sl-div{display:flex;align-items:center;gap:8px;margin:4px 0;font-size:11px;line-height:1.5;color:var(--n600);}
.sl-div::after{content:'';flex:1;height:1px;background:var(--n100);}
.sl-prog{display:flex;align-items:center;gap:6px;min-height:22px;font-size:13px;color:var(--n600);}
.sl-prog .ta-ico{width:14px;height:14px;}
.sl-prog .ta-ico svg{width:14px;height:14px;}
.sl-prog-t{display:inline-block;}
.sl-more{display:inline-flex;align-items:center;gap:4px;margin-left:6px;font-weight:500;color:var(--p600);}
.sl-more svg{width:12px;height:12px;}
.sl-table{margin-top:8px;overflow:hidden;border:1px solid var(--n200);border-radius:8px;}
.sl-table table{width:100%;border-collapse:collapse;font-size:12px;line-height:1.5;}
.sl-table th{padding:4px 10px;background:var(--n50);font-weight:600;color:var(--n600);text-align:left;}
.sl-table td{padding:4px 10px;border-top:1px solid var(--n100);font-family:var(--f-en);color:var(--n800);}
.sl-table .r{text-align:right;}
.sl-chart{margin-top:8px;padding:8px 10px 0;border:1px solid var(--n200);border-radius:8px;}
.sl-chart-t{font-size:12px;font-weight:600;line-height:1.5;color:var(--n900);}
/* Slack のグラフは色を指定できないので、棒はすべて同じ色にする（強調は本文で） */
.sl-chart .tm-ch-bar,.sl-chart .tm-ch-bar.is-key{fill:var(--p300);}
.sl-chart .tm-ch-val.is-key{fill:var(--n600);font-weight:500;}

/* =====================================================================
   フィルム: 台本に film: true を付けると、窓の枠を外して紙（--surf-1）として使う。サイトの外で使う動画向け
   ===================================================================== */
.tm-film .tm-frame{background:var(--surf-1);border:0;border-radius:0;box-shadow:none;}
.tm-film .tm-cap{background:var(--surf-1);}
.tm-film .tm-cap-t{font-size:48px;}
.tm-film .tm-cap-eb{font-size:15px;}
.tm-film .tm-cursor{width:24px;height:26px;}

/* 大きな文字の行（フィルム向け）: 見えない枠の中の span を m.riseIn / m.riseOut で押し上げる・抜く */
.tm-ln{display:inline-block;overflow:hidden;vertical-align:top;padding:.04em 0 .08em;}
.tm-ln>span{display:inline-block;}
