:root{color-scheme:dark;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#e6f2eb;background:#0b100e;--panel:#121b17;--panel-2:#19251f;--line:#294238;--muted:#9fb4aa;--accent:#57c9a2;--self:#176b50;--incoming:#202d27;--chat-font-size:17px;--chat-font-weight:400;--input-font-size:16px;--input-font-weight:400;--memo-font-size:16px;--memo-font-weight:400}
*{box-sizing:border-box}html,body{height:100%;margin:0;overflow:hidden}body{background:#0b100e}button,input,textarea{font:inherit;font-size:16px}button{cursor:pointer}button:disabled,input:disabled,textarea:disabled{opacity:.55;cursor:wait}[hidden]{display:none!important}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}:focus-visible{outline:3px solid #f4c95d;outline-offset:2px}
/* トーストは短く小さく（のっくり 2026-09-25） */
.toast{position:fixed;z-index:1000;top:50%;left:50%;transform:translate(-50%,-50%);width:max-content;max-width:min(calc(100vw - 48px),360px);padding:11px 16px;border:2px solid #d9fff1;border-radius:12px;background:#59e0b2;color:#07100c;text-align:center;font-size:1rem;font-weight:800;box-shadow:0 0 0 4px #0b100ecc,0 10px 30px #000e}
#notice{position:fixed;z-index:900;left:50%;bottom:calc(92px + env(safe-area-inset-bottom));transform:translateX(-50%);width:min(calc(100vw - 28px),720px);margin:0;padding:10px 14px;border-radius:12px;background:#541f24;color:#fff;white-space:pre-wrap;text-align:center;box-shadow:0 8px 24px #0009}#notice:empty{display:none}
.app-screen{height:100dvh;max-width:760px;margin:0 auto;background:#0f1713;border-inline:1px solid #18251f}.list-header,.chat-header{height:calc(64px + env(safe-area-inset-top));padding:env(safe-area-inset-top) 16px 0;display:flex;align-items:center;background:var(--panel);border-bottom:1px solid var(--line)}.list-header{justify-content:space-between}.list-header h1{margin:0;font-size:1.5rem}.text-button{border:0;background:transparent;color:var(--muted);min-height:44px;padding:8px}
.header-actions{display:flex;align-items:center;gap:2px}.header-actions #notifications{color:var(--accent)}.app-update-button{min-width:44px;height:36px;padding:0 8px;border:1px solid #65e1b3;border-radius:18px;background:#173d2f;color:#72e6ba;font-size:.74rem;font-weight:850}.app-update-button:active{background:#245b46}
.talk-list{max-height:calc(58dvh - 64px - env(safe-area-inset-top));overflow-y:auto;background:#0f1713}.talk-row{display:flex;align-items:stretch;border-bottom:1px solid var(--line)}.talk-link{display:grid;grid-template-columns:52px minmax(0,1fr) auto;gap:12px;align-items:center;min-width:0;min-height:78px;padding:12px 8px 12px 16px;color:inherit;text-decoration:none;flex:1}.talk-row:active{background:var(--panel-2)}.talk-avatar{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;background:#264d3e;color:#dff9ef;font-weight:800;font-size:1.05rem}.talk-content{min-width:0;display:flex;flex-direction:column}.talk-title{font-size:1rem;font-weight:750;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.talk-preview{margin-top:6px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.talk-side{align-self:stretch;display:flex;flex-direction:column;align-items:flex-end;justify-content:space-between;min-width:48px}.talk-time{color:var(--muted);font-size:.74rem;white-space:nowrap}.unread-badge{position:absolute;right:-6px;top:-6px;z-index:2;min-width:22px;height:22px;padding:0 6px;border:2px solid #0f1713;border-radius:11px;display:grid;place-items:center;background:#ff5b65;color:#fff;font-size:.75rem;font-weight:800}.chat-status{font-size:.7rem;margin-top:3px}.chat-status.online{color:#66d7a9}.chat-status.ended{color:var(--muted)}.row-action{width:42px;border:0;background:transparent;color:var(--muted);font-size:1.45rem}.row-action:active{background:#ffffff10}
.machine-group-title{position:sticky;z-index:5;top:0;margin:0;padding:8px 14px;border-block:1px solid #ffffff12;background:#17231df4;color:#dceae3;font-size:.8rem;letter-spacing:.03em}.machine-group-title.machine-tone-0{border-left:6px solid #48d6a4}.machine-group-title.machine-tone-1{border-left:6px solid #6aa8ff}.machine-group-title.machine-tone-2{border-left:6px solid #d78cff}.machine-group-title.machine-tone-3{border-left:6px solid #f0bc5a}.talk-row.machine-tone-0{--machine-tint:#48d6a414}.talk-row.machine-tone-1{--machine-tint:#6aa8ff18}.talk-row.machine-tone-2{--machine-tint:#d78cff16}.talk-row.machine-tone-3{--machine-tint:#f0bc5a16}.talk-row[class*="machine-tone-"]{box-shadow:inset 760px 0 var(--machine-tint)}
.catalog-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 16px;border-top:1px solid #1e3028}.catalog-title{display:block;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.catalog-meta{display:block;margin-top:4px;color:var(--muted);font-size:.72rem}.catalog-launch{padding:7px 11px;border:1px solid var(--line);border-radius:16px;background:transparent;color:var(--accent)}
.chat-screen{display:grid;grid-template-rows:auto minmax(0,1fr) auto}.chat-header{position:relative;padding-inline:8px}.back-button{width:44px;height:44px;display:grid;place-items:center;color:var(--accent);font-size:2.2rem;line-height:1;text-decoration:none}.chat-heading{min-width:0;text-align:center;flex:1}.chat-title-row{display:flex;align-items:center;justify-content:center;gap:6px;min-width:0}.chat-heading h1{margin:0;font-size:1.05rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-heading p{margin:3px 0 0;color:var(--muted);font-size:.73rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stop-button-inline{flex:0 0 auto;width:22px;height:22px;padding:0;border:1px solid #fff;border-radius:50%;background:transparent;color:#fff;font-size:.5rem;line-height:1}.stop-button-inline:active{background:#ffffff30}
.chat-scroll{min-height:0;overflow-y:auto;overscroll-behavior-y:contain;padding:12px 14px 18px;scrollbar-gutter:stable}.messages{display:flex;flex-direction:column;gap:10px}.message-row{display:flex;width:100%}.message-row.incoming{justify-content:flex-start}.message-row.self{justify-content:flex-end}.message{position:relative;min-width:0;max-width:min(82%,590px);padding:10px 12px 7px;border-radius:18px;background:var(--incoming);box-shadow:0 1px 2px #0005}.message-row.incoming .message{border-bottom-left-radius:5px}.message-row.self .message{background:var(--self);border-bottom-right-radius:5px}.message-body{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.45}.message-body:empty{display:none}.message-url{color:#b9f4df;overflow-wrap:anywhere}.message-image-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.message-image-link{display:block;flex:0 0 auto;padding:0;border:0;background:transparent}.message-image{display:block;width:auto;max-width:min(70%,250px);max-height:36vh;border-radius:12px;object-fit:cover}.message-image-more{align-self:center;color:var(--muted);font-size:.72rem}.message-meta{display:flex;align-items:flex-end;justify-content:flex-end;gap:7px;margin-top:5px;color:#c3d2ca;font-size:.68rem}.message-state{max-width:180px;text-align:right}.copy-message{width:30px;height:30px;min-width:30px;padding:0;border:0;border-radius:50%;background:transparent;color:#c3d2ca;font-size:1rem}.copy-message:active{background:#ffffff18}.older-button{display:block;margin:0 auto 14px;padding:8px 14px;border:1px solid var(--line);border-radius:18px;background:var(--panel);color:var(--accent)}.empty{text-align:center;color:var(--muted);margin:30vh 0 0}
.composer{padding:6px 10px max(4px,env(safe-area-inset-bottom));background:var(--panel);border-top:1px solid var(--line)}.composer-row{display:flex;align-items:flex-end;gap:8px}.file-input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.image-button{flex:0 0 42px;width:42px;height:42px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;color:var(--accent);font-size:1.75rem;line-height:1}.message-input-label{flex:1;min-width:0}.message-input-label textarea{display:block;width:100%;min-height:42px;max-height:126px;padding:10px 12px;border:1px solid var(--line);border-radius:20px;resize:none;overflow-y:auto;background:#0f1713;color:inherit}.message-input-label textarea::placeholder{color:#7f988c}.send-button{flex:0 0 auto;min-height:42px;padding:8px 14px;border:0;border-radius:21px;background:var(--accent);color:#07100c;font-weight:750}.send-button:disabled{background:#3a4741;color:#87928d;cursor:not-allowed;opacity:.78}.model-status-row{display:flex;align-items:center;margin-left:8px;color:var(--muted);font-size:.75rem}
.composer-status-row{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:0;color:var(--muted);font-size:.75rem}.composer-status-row:has(#send-status:empty):has(.retry-button[hidden]){display:none}.retry-button{margin-top:6px;padding:6px 10px;border:1px solid var(--line);border-radius:14px;background:transparent;color:var(--accent)}.image-preview{margin-bottom:8px;padding:8px;border:1px solid var(--line);border-radius:12px;background:#0f1713}.chat-image-selection{display:flex;gap:8px;overflow-x:auto}.chat-image-card{position:relative;flex:0 0 72px}.chat-image-preview{display:block;width:72px;height:72px;padding:0;border:0;border-radius:9px;background:transparent;overflow:hidden}.chat-image-preview img{width:100%;height:100%;object-fit:cover}.chat-image-remove{position:absolute;right:-4px;top:-4px;width:25px;height:25px;padding:0;border:1px solid #fff;border-radius:50%;background:#a72e3b;color:#fff;font-size:1rem;line-height:1}
.login-screen{height:100dvh;display:grid;place-items:center;padding:24px}.login-card{width:min(100%,420px);padding:28px;border:1px solid var(--line);border-radius:20px;background:var(--panel);text-align:center}.app-mark{display:block;width:88px;height:88px;margin:0 auto 16px;border-radius:24px;background:#fff}.login-card h1{margin:0}.login-card p{color:var(--muted)}.login-card label{display:block;text-align:left}.login-card input{display:block;width:100%;margin:8px 0 16px;padding:12px;border:1px solid var(--line);border-radius:10px;background:#0f1713;color:inherit}.login-card button{width:100%;min-height:46px;border:0;border-radius:12px;background:var(--accent);color:#07100c;font-weight:750}.copy-fallback{position:fixed!important;left:-10000px!important;top:0!important;width:1px!important;height:1px!important;opacity:0!important}
.preparing-indicator{margin:6px 14px 0;color:var(--muted);font-size:.78rem;display:flex;align-items:center;gap:6px}.preparing-indicator.settled .preparing-dots{display:none}.preparing-dots{display:inline-block;min-width:1.2em;animation:preparing-pulse 1.2s steps(3,end) infinite}@keyframes preparing-pulse{0%{opacity:.3}50%{opacity:1}100%{opacity:.3}}
.status-dot{width:9px;height:9px;border-radius:50%;flex:0 0 auto;background:var(--muted)}.status-dot-idle{background:#7f988c}.status-dot-waiting{background:#3fb97c;box-shadow:0 0 0 3px rgba(63,185,124,.25)}.status-dot-busy{background:#e0a83f;animation:preparing-pulse 1.2s steps(3,end) infinite}.status-dot-failed{background:#e0543f}
.session-controls{position:relative;display:flex;justify-content:flex-start;margin-top:4px}.session-menu-toggle{min-height:28px;padding:3px 10px;border:1px solid var(--line);border-radius:14px;background:transparent;color:var(--muted);font-size:.75rem}.session-menu{position:absolute;z-index:20;left:0;bottom:34px;width:min(310px,calc(100vw - 28px));padding:6px;border:1px solid var(--line);border-radius:14px;background:#17231d;box-shadow:0 10px 30px #000b}.session-menu button{display:flex;width:100%;justify-content:space-between;gap:14px;padding:11px 12px;border:0;border-radius:9px;background:transparent;color:inherit;text-align:left}.session-menu button:active{background:#ffffff12}.session-menu span{color:var(--muted);font-size:.75rem}
.app-dialog{width:min(calc(100vw - 24px),480px);padding:0;border:1px solid var(--line);border-radius:18px;background:var(--panel);color:inherit;box-shadow:0 18px 60px #000c}.app-dialog::backdrop{background:#000a}.app-dialog form,.app-dialog>section{padding:18px}.app-dialog header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.app-dialog h2{margin:0;font-size:1.15rem}/* × は大きく押しやすく（のっくり 2026-09-25） */
.dialog-close{flex:0 0 auto;width:48px;height:48px;margin:-6px -8px -6px 0;border:0;border-radius:50%;background:#ffffff12;color:#e6f2eb;font-size:1.9rem;line-height:1;touch-action:manipulation}.dialog-close:active{background:#ffffff26}.app-dialog label{display:block;margin:12px 0;color:var(--muted);font-size:.8rem}.app-dialog select,.machine-name{display:block;width:100%;margin-top:6px;padding:11px;border:1px solid var(--line);border-radius:10px;background:#0f1713;color:inherit}.primary-button,.secondary-button{width:100%;min-height:44px;border-radius:12px;font-weight:700}.primary-button{border:0;background:var(--accent);color:#07100c}.secondary-button{border:1px solid var(--line);background:transparent;color:var(--accent)}.dialog-hint{min-height:1.2em;color:#f4c95d;font-size:.8rem}.machine-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:end;margin-bottom:12px}.machine-row label{margin:0}.machine-row button{min-height:40px;padding:7px 10px;border:1px solid var(--line);border-radius:10px;background:transparent;color:var(--accent)}.machine-state{font-size:.7rem}.machine-state.online{color:#66d7a9}.machine-state.offline{color:var(--muted)}.pairing-result{margin-top:12px;padding:12px;border:1px solid var(--line);border-radius:12px;background:#0f1713}.pairing-result p{margin:0 0 8px;color:var(--muted);font-size:.8rem}.pairing-result code{display:block;font-size:1.5rem;letter-spacing:.08em;text-align:center;color:#f4c95d}
@media (min-width:761px){.app-screen{box-shadow:0 0 50px #0008}.message{max-width:70%}}

/* 未開始プロジェクトでも、起動前からメモを書き溜められる。 */
.catalog-actions{display:flex;align-items:center;gap:5px}.catalog-memo{position:relative;width:42px;height:42px;padding:0;border:0;border-radius:50%;background:transparent;color:inherit;font-size:1.65rem}.catalog-memo:active{background:#ffffff12}

/* チャット本文の文字サイズは機能メニューから端末ごとに調整する。 */
.message-body{font-size:var(--chat-font-size);font-weight:var(--chat-font-weight)}.message-input-label textarea{font-size:var(--input-font-size);font-weight:var(--input-font-weight)}.memo-text,.memo-card-title{font-size:var(--memo-font-size);font-weight:var(--memo-font-weight)}.memo-card-title{font-weight:max(700,var(--memo-font-weight))}#memo-body{font-size:var(--memo-input-font-size);font-weight:var(--memo-input-font-weight)}
.memo-dialog.common-notes .memo-text,.memo-dialog.common-notes .memo-card-title{font-size:var(--note-font-size);font-weight:var(--note-font-weight)}.memo-dialog.common-notes .memo-card-title{font-weight:max(700,var(--note-font-weight))}#memo-editor-dialog.common-notes #memo-body{font-size:var(--note-input-font-size);font-weight:var(--note-input-font-weight)}
.chat-font-setting{display:grid!important;grid-template-columns:1fr auto;gap:6px 10px;margin:5px 4px 9px!important;padding:10px 8px 12px;border-bottom:1px solid var(--line);color:inherit!important;font-size:.8rem!important}.chat-font-setting output{color:var(--accent)}.chat-font-setting input{grid-column:1/3;width:100%;margin:0;padding:0;accent-color:var(--accent)}
.font-settings-dialog section{max-height:88dvh;overflow-y:auto}.font-setting-group{margin:12px 0;padding:13px;border:1px solid var(--line);border-radius:13px;background:#0f1713}.font-setting-group>strong{color:#fff}.font-setting-group label{display:grid;grid-template-columns:1fr auto;gap:5px 10px}.font-setting-group output{color:var(--accent)}.font-setting-group input{grid-column:1/3;width:100%;accent-color:var(--accent)}.font-preview{margin:10px 0;padding:11px;border-radius:10px;background:#1d2b24;color:#e9f3ee}
.font-stepper{display:grid;grid-template-columns:1fr 48px 72px 48px;align-items:center;gap:6px;margin-top:8px;color:var(--muted)}.font-stepper button{height:44px;border:1px solid var(--line);border-radius:12px;background:#17231d;color:var(--accent);font-size:1.1rem}.font-stepper button:active{background:#245b46}.font-stepper output{text-align:center;color:#fff;font-weight:800}
.header-more-button{flex:0 0 44px;width:44px;height:44px;padding:0;border:0;border-radius:50%;background:transparent;color:var(--muted);font-size:1.5rem;line-height:1}.header-more-button:active{background:#ffffff12}.dialog-header-actions{display:flex;align-items:center;gap:2px}

/* 稼働状態は色・帯・記号の三重表現で一目で区別する。 */
.talk-list{max-height:calc(100dvh - 128px - env(safe-area-inset-top))}.talk-row{border-left:6px solid transparent}.talk-row.online{border-left-color:#36df9f;background:linear-gradient(90deg,#153b2c 0,#101a15 48%)}.talk-row.ended{border-left-color:#59615d;background:#0b100e;filter:saturate(.35)}.talk-row.ended .talk-link{opacity:.68}.talk-row.ended .row-action{background:#151a17}.talk-link{min-height:82px;padding-left:10px}.talk-avatar{position:relative}.talk-row.ended .talk-avatar{background:#303633;color:#aeb7b2}.talk-state-mark{position:absolute;right:-3px;bottom:-3px;width:21px;height:21px;display:grid;place-items:center;border:3px solid #0f1713;border-radius:50%;background:#0f1713;color:#38e19f;font-size:.72rem;line-height:1}.talk-row.ended .talk-state-mark{color:#9aa19d;font-size:.6rem}.talk-title{font-weight:800}.chat-status{font-size:.72rem;font-weight:850;letter-spacing:.02em}.chat-status.online{color:#65f0b9}.chat-status.ended{color:#a6ada9}


/* スクロール中だけ、その位置の日付を右上へ浮かせる。 */
.chat-scroll{position:relative}
/* チャット欄は横にスクロールさせない。長い英数字も折り返す（のっくり 2026-09-25） */
.chat-scroll{overflow-x:hidden;overscroll-behavior-x:none}.choice-question legend,.choice-words,.choice-done{max-width:100%;overflow-wrap:anywhere}.floating-date{position:sticky;z-index:8;top:7px;display:block;width:max-content;margin:0 0 -28px auto;padding:5px 9px;border:1px solid #ffffff18;border-radius:12px;background:#17231de8;color:#b8c8c0;font-size:.7rem;box-shadow:0 3px 12px #0007;pointer-events:none}

/* セッション操作は閉じ方が分かる大きな×を持つ。 */
.session-menu{width:min(330px,calc(100vw - 28px));padding:8px;border-radius:16px}.session-menu-header{display:flex;align-items:center;justify-content:space-between;padding:2px 4px 6px 12px;border-bottom:1px solid var(--line);color:var(--muted);font-size:.78rem}.session-menu .session-menu-close{display:grid;width:40px;height:40px;padding:0;place-items:center;border:0;border-radius:50%;background:transparent;color:inherit;font-size:1.65rem}.session-menu>button:not(.session-menu-close){padding:12px}

/* ソフトキーボード表示中もタイトルバーを画面上端へ残す。 */
body{position:fixed;inset:0;width:100%}.chat-screen{position:fixed;z-index:1;top:var(--visual-top,0px);left:50%;width:min(100%,760px);height:var(--visual-height,100dvh);transform:translateX(-50%)}.chat-header{position:relative;z-index:30}

/* 一度しか触らない操作は三点メニューへ退避する。 */
.header-actions{position:relative}.more-button{font-size:1.5rem;line-height:1}.list-menu{position:absolute;z-index:40;right:4px;top:48px;width:180px;padding:6px;border:1px solid var(--line);border-radius:12px;background:#17231d;box-shadow:0 10px 30px #000b}.list-menu button{display:block;width:100%;padding:11px;border:0;border-radius:8px;background:transparent;color:inherit;text-align:left}.list-menu button:active{background:#ffffff12}

/* 未開始プロジェクト検索。 */
.catalog-search{display:block;padding:0 12px 10px}.catalog-search input{width:100%;min-height:42px;padding:9px 12px;border:1px solid var(--line);border-radius:12px;background:#0b100e;color:inherit}

/* チャットとメモの左フリック操作。 */
.talk-row,.memo-row{position:relative;overflow:hidden;touch-action:pan-y}.talk-row>.talk-link,.talk-row>.row-action,.memo-card{position:relative;z-index:2;transition:transform .18s ease}.talk-row.swiped>.talk-link,.talk-row.swiped>.row-action{transform:translateX(-104px)}.swipe-action{position:absolute;z-index:1;right:0;top:0;width:104px;height:100%;border:0;background:#a33d46;color:#fff;font-weight:800;opacity:0;pointer-events:none;transition:opacity .12s}.swiped>.swipe-action{opacity:1;pointer-events:auto}.archive-action{background:#775f28}.archive-action.archive-locked{background:#4a4a44;color:#9a9a93}.memo-button{position:relative;width:38px;height:38px;margin-top:5px;padding:0;border:0;border-radius:50%;background:transparent;color:#f1f5f3;font-size:1.65rem;line-height:1}.memo-button:active{background:#ffffff12}.memo-count{position:absolute;right:-2px;top:-3px;min-width:18px;height:18px;padding:0 4px;display:grid;place-items:center;border-radius:9px;background:#ff4f5f;color:#fff;font-size:.65rem;font-weight:850}.talk-row .talk-side{align-items:center;justify-content:flex-start;gap:3px}.archived-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 2px;border-bottom:1px solid var(--line)}.archived-row button{padding:7px 11px;border:1px solid var(--line);border-radius:12px;background:transparent;color:var(--accent)}

/* メモアイコンは時刻の真下へ置き、カード全体を編集入口にする。 */
.talk-row>.memo-button{position:absolute;z-index:4;right:45px;top:36px;margin:0;transition:transform .18s ease}.talk-row.swiped>.memo-button{transform:translateX(-104px)}.memo-card>:not(.memo-select-hitbox,.memo-sent-stamp){grid-column:2}.memo-card{cursor:pointer}.memo-select{cursor:pointer}.image-viewer-dialog #image-viewer-stage{touch-action:pan-y}

/* プロジェクト別メモ。 */
.memo-dialog{width:min(calc(100vw - 12px),620px);height:min(92dvh,820px)}.memo-dialog>section{height:100%;display:grid;grid-template-rows:auto auto auto minmax(0,1fr) auto}.memo-toolbar{display:grid;grid-template-columns:1fr 64px 1fr;gap:8px;align-items:center}.memo-toolbar #memo-expand{justify-self:end;width:auto;min-width:112px}.memo-add-button{width:58px;height:58px;padding:0;border:0;border-radius:50%;background:var(--accent);color:#07100c;font-size:2.2rem;font-weight:500;line-height:1;box-shadow:0 5px 18px #0008}.memo-summary{display:flex;justify-content:center;gap:10px;margin-top:8px;color:var(--muted);font-size:.76rem}.memo-summary span{padding:5px 9px;border-radius:13px;background:#0f1713}.memo-summary-unsent strong{color:#ffcf66}.memo-summary-sent strong{color:var(--accent)}.memo-list{min-height:0;margin-top:8px;overflow-y:auto}.memo-row{min-height:88px;margin-bottom:8px;border-radius:13px}.memo-row.swiped .memo-card{transform:translateX(-88px)}.memo-row .memo-delete{width:88px}.memo-card{min-height:88px;display:grid;grid-template-columns:52px minmax(0,1fr);grid-template-rows:auto 1fr auto;column-gap:5px;padding:9px 11px 9px 5px;overflow:hidden;background:#17231d;border:1px solid var(--line);border-radius:13px}.memo-select-hitbox{z-index:4;grid-column:1;grid-row:1/4;align-self:stretch;display:grid;min-width:48px;min-height:52px;place-items:start center;padding-top:5px;cursor:pointer}.memo-card .memo-select{width:26px;height:26px;margin:0;accent-color:var(--accent)}.memo-card-title{margin:0 0 5px;font-weight:800;overflow-wrap:anywhere}.memo-text{display:-webkit-box;margin:0;overflow:hidden;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.42;-webkit-box-orient:vertical;-webkit-line-clamp:3}.memo-card.expanded .memo-text{display:block;overflow:visible}.memo-card small{margin-top:7px;color:var(--muted)}.memo-row.sent .memo-card{background:#121916;border-color:#355044}.memo-row.sent .memo-card-title,.memo-row.sent .memo-text{text-decoration:line-through;text-decoration-thickness:2px;text-decoration-color:#9fcdb8aa}.memo-sent-stamp{position:absolute;z-index:3;right:13px;top:24px;padding:4px 10px;border:3px double #65d7a6;border-radius:5px;transform:rotate(-13deg);color:#65d7a6cc;font-size:1rem;letter-spacing:.12em;pointer-events:none}.memo-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding-top:10px}.danger-button{min-height:44px;border:1px solid #a84c54;border-radius:12px;background:transparent;color:#ff9ba2;font-weight:700}.count-badge{display:inline-grid;min-width:21px;height:21px;margin-left:5px;padding:0 5px;place-items:center;border-radius:11px;background:#07100c;color:#fff;font-size:.72rem}.app-dialog textarea,.app-dialog input{display:block;width:100%;margin-top:6px;padding:11px;border:1px solid var(--line);border-radius:10px;background:#0f1713;color:inherit}.app-dialog textarea{resize:vertical}.app-dialog input[readonly],.app-dialog textarea[readonly]{border-color:transparent;background:#111a16;color:#e1e9e5}.memo-image-tools{margin:12px 0}.memo-image-picker{display:block!important;min-height:42px!important;margin:0!important;padding:10px 12px;border:1px solid var(--line);border-radius:12px;color:var(--accent)!important;text-align:center}.memo-image-picker[hidden]{display:none!important}.memo-image-selection{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:8px}.memo-edit-image{position:relative;aspect-ratio:1;border-radius:10px;overflow:hidden;background:#09100c}.memo-edit-image img{width:100%;height:100%;object-fit:cover}.memo-edit-image img[role="button"]{cursor:zoom-in}.memo-edit-image button{position:absolute;right:3px;top:3px;width:30px;height:30px;padding:0;border:0;border-radius:50%;background:#000c;color:#fff;font-size:1.2rem}.memo-thumbs{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;min-width:0}.memo-thumb{width:64px;height:64px;padding:0;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#09100c;flex:0 0 auto}.memo-thumb img{display:block;width:100%;height:100%;object-fit:cover}.image-viewer-dialog{width:min(calc(100vw - 24px),760px);height:min(calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 28px),760px);max-width:none;max-height:none;margin:auto;padding:0;border:1px solid var(--line);border-radius:18px;background:#07100d;color:#fff}.image-viewer-dialog::backdrop{background:#000d}.image-viewer-dialog>section{height:100%;display:grid;grid-template-rows:auto minmax(0,1fr);padding:10px}.image-viewer-dialog header{display:flex;align-items:center;justify-content:space-between;min-height:48px;padding:0 2px 6px 12px}.image-viewer-dialog header button{width:44px;height:44px;border:0;border-radius:50%;background:#ffffff18;color:#fff;font-size:1.8rem}.image-viewer-dialog header strong{color:#d7e2dc}.image-viewer-dialog #image-viewer-stage{min-height:0;display:grid;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center}.image-viewer-dialog img{display:block;max-width:100%;max-height:100%;margin:auto;object-fit:contain}.image-viewer-nav{height:64px;border:0;background:transparent;color:#fff;font-size:2.5rem}.image-viewer-nav:disabled{visibility:hidden}

/* 端末ごとの通知時間帯・一時ミュート設定。 */
.notification-settings-dialog{width:min(calc(100vw - 24px),520px)}.notification-settings-dialog hr{width:100%;margin:18px 0;border:0;border-top:1px solid var(--line)}.quiet-enabled,.switch-carry-label{display:flex!important;align-items:center;gap:9px;margin:8px 0 14px!important}.quiet-enabled input,.switch-carry-label input{display:inline-block;width:24px;height:24px;margin:0;accent-color:var(--accent)}.quiet-time-row{display:grid;grid-template-columns:1fr auto 1fr;gap:10px;align-items:end}.quiet-time-row span{padding-bottom:12px;color:var(--muted)}.notification-settings-dialog .primary-button{width:100%;margin-top:12px}.mute-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.mute-actions .secondary-button{margin-top:12px}.notification-settings-dialog button:disabled{opacity:.45}

/* 現在値と編集欄を分け、保存操作を小さく保つ。 */
.notification-current{margin:12px 0 18px;padding:12px 14px;border:1px solid #4d8b73;border-radius:13px;background:#0a1510}.notification-current strong{display:block;margin-bottom:7px;color:#fff}.notification-current p{margin:4px 0;color:var(--muted);font-size:.86rem}.notification-current span{color:#72e6ba;font-weight:800}.settings-subtitle{margin:16px 0 4px;font-size:.92rem}.quiet-periods{display:grid;gap:8px;margin-top:8px}.quiet-time-row{display:flex;align-items:end;gap:7px}.quiet-time-row label{flex:1;min-width:0}.quiet-time-row input{width:100%}.quiet-remove{flex:0 0 38px;height:38px;padding:0;border:1px solid #8f4c54;border-radius:50%;background:transparent;color:#ff9da8;font-size:1.25rem}.quiet-edit-actions{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:10px}.notification-settings-dialog #quiet-save{width:auto;min-width:84px;margin:0;padding-inline:20px}.notification-settings-dialog #mute-status:empty{display:none}

/* チャット一覧は画面の残り全部を使う。全フォルダは左下のボタンから開くモーダルで、親フォルダ別・名前順に見せる。 */
#chooser{display:flex;flex-direction:column;position:relative}.list-header{flex:0 0 auto}.talk-list{flex:1 1 auto;max-height:none;min-height:0;padding-bottom:88px}
.folders-fab{position:absolute;z-index:20;left:16px;bottom:calc(18px + env(safe-area-inset-bottom));width:60px;height:60px;padding:0;border:1px solid #65e1b3;border-radius:50%;background:#173d2f;color:#fff;font-size:1.7rem;line-height:1;box-shadow:0 6px 20px #000b}.folders-fab:active{background:#245b46}
.folders-dialog{width:min(calc(100vw - 12px),620px);height:min(92dvh,820px)}.folders-dialog>section{height:100%;display:grid;grid-template-rows:auto auto minmax(0,1fr)}.folders-dialog h2 small{color:var(--muted);font-size:.8rem;font-weight:400}.folders-dialog .catalog-search{margin:0;padding:0 0 10px}.catalog-list{min-height:0;overflow-y:auto}.catalog-launch.running{border-color:#4d8b73;background:#153b2c;color:#9fe9c9}
.catalog-group-title{position:sticky;z-index:2;top:0;margin:0;padding:9px 16px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#17231df2;color:#b9e8d5;font-size:.8rem;letter-spacing:.02em}

/* 前後の画像が似ていても切替が分かるよう、操作方向からスライドさせる。 */
.viewer-slide-from-right{animation:viewer-from-right .24s ease-out}.viewer-slide-from-left{animation:viewer-from-left .24s ease-out}@keyframes viewer-from-right{from{opacity:.15;transform:translateX(48px) scale(.97)}to{opacity:1;transform:translateX(0) scale(1)}}@keyframes viewer-from-left{from{opacity:.15;transform:translateX(-48px) scale(.97)}to{opacity:1;transform:translateX(0) scale(1)}}@media (prefers-reduced-motion:reduce){.viewer-slide-from-right,.viewer-slide-from-left{animation-duration:.01ms}}

/* 接続待ち・切替中・端末不通を、終了済みとは別の見た目にする。 */
.chat-status.reconnecting,.chat-status.switching{color:#f4c95d}.chat-status.offline,.chat-status.unknown{color:var(--muted)}
.talk-row.reconnecting,.talk-row.switching{border-left-color:#f4c95d;background:linear-gradient(90deg,#393216 0,#101a15 48%)}
.talk-row.offline,.talk-row.unknown{border-left-color:#777;background:#0e1411}

/* PCのROADMAP.mdをカード表示し、変更依頼を現在のCodexへ送る。 */
.roadmap-button{flex:0 0 44px;width:44px;height:44px;padding:0;border:0;border-radius:50%;background:transparent;color:inherit;font-size:1.35rem}.roadmap-button:active{background:#ffffff12}.roadmap-dialog{width:min(calc(100vw - 12px),680px);height:min(92dvh,860px)}.roadmap-dialog>section{height:100%;display:grid;grid-template-rows:auto auto auto minmax(0,1fr)}.roadmap-list{min-height:0;overflow-y:auto}.roadmap-card{position:relative;margin:0 0 10px;padding:13px;border:1px solid var(--line);border-left:5px solid #f0bd4f;border-radius:14px;background:#131f19}.roadmap-card.completed{border-left-color:#53d89e}.roadmap-card.cancelled{border-left-color:#808a85;opacity:.72}.roadmap-card small{color:var(--muted)}.roadmap-card h3{margin:7px 72px 7px 0;font-size:1rem;overflow-wrap:anywhere}.roadmap-card ul{margin:7px 0 10px;padding-left:20px;color:#c8d5cf;font-size:.83rem}.roadmap-state{position:absolute;right:10px;top:10px;padding:4px 7px;border-radius:10px;background:#0a100d;color:var(--accent);font-size:.7rem}.roadmap-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:5px}.roadmap-actions button{min-height:38px;padding:5px;border:1px solid var(--line);border-radius:9px;background:transparent;color:var(--accent)}.roadmap-actions .roadmap-delete{color:#ff9ba2}

/* 共通ノートはメモ画面を流用する。送り先の会話が無いので送信まわりは隠す。 */
.memo-dialog.common-notes .memo-summary,.memo-dialog.common-notes #memo-send{display:none}.memo-dialog.common-notes .memo-actions{grid-template-columns:1fr}

/* チャット一覧の三点メニュー。 */
.chat-actions-dialog .secondary-button{display:flex;flex-direction:column;align-items:center;justify-content:center;margin-bottom:10px;padding:8px}.chat-actions-dialog .secondary-button span{margin-top:2px;color:var(--muted);font-size:.8rem;font-weight:400}

/* ダイアログはスマホ上端のステータスバー・下端のホームバーに食い込ませない。 */
.app-dialog,.image-viewer-dialog{top:env(safe-area-inset-top);bottom:env(safe-area-inset-bottom);max-height:calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 16px);overflow-y:auto}
.memo-dialog,.folders-dialog{height:min(calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 16px),820px)}.roadmap-dialog{height:min(calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 16px),860px)}.font-settings-dialog section{max-height:none}

/* 小さすぎた文字を読みやすい大きさへ。 */
.memo-summary{font-size:.95rem}.app-dialog label{font-size:.92rem}.memo-image-picker{font-size:1rem!important}.dialog-hint{font-size:.9rem}.memo-card small{font-size:.84rem}.catalog-meta{font-size:.84rem}.count-badge{font-size:.82rem}.session-menu-toggle{font-size:.9rem;min-height:34px}.composer-status-row{font-size:.88rem}.session-menu span{font-size:.85rem}.talk-time{font-size:.8rem}.chat-status{font-size:.8rem}.catalog-group-title,.machine-group-title{font-size:.88rem}.memo-count{font-size:.72rem}

/* チャット一覧のメモアイコンは、見た目より広い範囲で押せる。 */
.talk-row>.memo-button::before{content:"";position:absolute;inset:-16px -3px -22px -20px}

/* メモ一覧の一括選択。 */
.memo-bulk{position:relative;justify-self:start}.memo-bulk>.secondary-button{width:auto;min-width:104px;padding:0 12px}.memo-bulk-menu{left:0;right:auto;top:50px;width:170px}

/* チャット一覧のアプリアイコンと、アイコン登録の切り抜き画面。 */
.talk-avatar-image{position:absolute;inset:0;width:100%;height:100%;border-radius:50%;object-fit:cover;background:#264d3e}.talk-avatar .talk-state-mark,.talk-avatar .unread-badge{z-index:3}
.icon-canvas{display:block;width:min(100%,300px);aspect-ratio:1;margin:12px auto 4px;border-radius:50%;box-shadow:0 0 0 3px var(--accent);touch-action:none;cursor:grab}.icon-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.font-settings-dialog header{position:sticky;z-index:3;top:-18px;margin:-18px -18px 0;padding:18px 18px 10px;background:var(--panel)}
.font-settings-dialog section{overflow:visible}.memo-dialog.common-notes>section{grid-template-rows:auto auto minmax(0,1fr) auto}

/* 実装一覧: タイトルを大きく、タップで操作ボタンを出す。予定→実装済み（日付別）→見送りの順 */
.roadmap-section{margin:14px 2px 8px;font-size:.95rem;color:var(--accent)}.roadmap-section:first-child{margin-top:2px}.roadmap-date-heading{margin:12px 2px 6px;color:var(--muted);font-size:.82rem;font-weight:700}.roadmap-head{display:block;width:100%;padding:0;border:0;background:transparent;color:inherit;text-align:left}.roadmap-card h3{margin:0;font-size:1.18rem;font-weight:800;line-height:1.35}.roadmap-date{display:block;margin-top:4px;font-size:.78rem}.roadmap-card ul{font-size:.92rem}.roadmap-actions{grid-template-columns:repeat(3,1fr)}.roadmap-actions .roadmap-request{border-color:#57c9a2;background:#173d2f;font-weight:800}.roadmap-button svg{display:block;margin:auto}
/* セッションの切り替わり: 帯を出さず、チャット欄に区切り線を入れる */
.session-divider{display:flex;align-items:center;gap:10px;margin:8px 0;color:var(--muted);font-size:.85rem;white-space:nowrap}.session-divider::before,.session-divider::after{content:"";flex:1;border-top:1px dashed #3f5a4e}
/* 翻訳: 吹き出し右上の「⋯」メニューと、翻訳済みの印。⋯ は右へ浮かせて本文を回り込ませる */
.message-more{float:right;width:28px;height:24px;margin:-6px -6px 0 4px;padding:0;border:0;border-radius:12px;background:transparent;color:#c3d2ca;font-size:1.05rem;line-height:1;opacity:.75}.message-more:active{background:#ffffff18;opacity:1}
.message-body{-webkit-user-select:text;user-select:text}.translation-label{margin-right:auto;padding:0;border:0;background:transparent;color:#8fd8bb;font-size:.72rem;text-decoration:underline}.translation-label.waiting{text-decoration:none;color:var(--muted)}
.message-menu-dialog{width:min(calc(100vw - 24px),420px)}.message-menu-dialog section{display:grid;gap:8px;padding:14px}.message-menu-dialog button{min-height:50px;border:1px solid var(--line);border-radius:12px;background:#17231d;color:inherit;font-size:1.02rem}.message-menu-dialog #message-menu-translate{border-color:#57c9a2;color:#72e6ba;font-weight:800}.message-menu-dialog .message-menu-cancel{color:var(--muted)}
/* 作業中・返信中などの状態表示を読みやすい大きさに */
.preparing-indicator{font-size:.95rem;color:#b9cdc3}
/* チャット上部: 左に戻る・真ん中にプロジェクト名・右に実装一覧 */
.chat-header .chat-heading{position:absolute;left:64px;right:64px;bottom:0;height:64px;display:flex;flex-direction:column;justify-content:center;pointer-events:none}
.chat-header #update-chat{margin-left:auto}.chat-header .roadmap-button{margin-left:auto}.chat-header #update-chat:not([hidden])+.roadmap-button{margin-left:4px}
.chat-header #update-chat:not([hidden]){position:relative;z-index:1}
.session-controls .session-menu{bottom:calc(100% + 6px)}
/* フォルダ一覧の履歴ボタンと、最近開いた日時 */
.catalog-history-button{width:40px;height:40px;border:0;border-radius:50%;background:transparent;color:var(--muted);font-size:1.25rem}
.catalog-history-button[aria-pressed="true"]{background:#173d2f;color:#72e6ba}
.catalog-recent-time{color:var(--muted);font-size:.8rem}
/* まとめて送ったメモの画像は、そのメモの本文の下に出す */
.message-body+.message-image-list+.message-body{margin-top:12px}
.message-video{display:block;max-width:min(100%,320px);max-height:48vh;border-radius:12px;background:#000}
/* 選択肢カード（AI の質問・画像の選択・プランの承認） */
.choice-card{display:flex;flex-direction:column;gap:10px;margin-top:10px;padding:10px;border:1px solid var(--line);border-radius:14px;background:#0f1713}
.choice-question{margin:0;padding:0;border:0;min-width:0}.choice-question legend{padding:0;margin-bottom:6px;font-weight:700;font-size:.95rem}
.choice-header{display:inline-block;margin-right:6px;padding:1px 8px;border-radius:10px;background:#ffffff14;color:var(--accent);font-size:.78rem;font-weight:700}
.choice-option{display:flex;align-items:center;gap:10px;margin:6px 0;padding:9px 10px;border:1px solid var(--line);border-radius:12px;cursor:pointer}
.choice-option:has(input:checked){border-color:var(--accent);background:#66d7a914}
.choice-option input{flex:0 0 auto;width:22px;height:22px;margin:0;accent-color:var(--accent)}
.choice-image{flex:0 0 auto;width:96px;height:96px;border-radius:10px;object-fit:cover;background:#fff}
.choice-words{display:flex;flex-direction:column;gap:2px;min-width:0}.choice-words small{color:var(--muted);font-size:.82rem}
.choice-other{width:100%;margin-top:4px;padding:9px 10px;border:1px solid var(--line);border-radius:10px;background:transparent;color:inherit;font-size:16px;font-family:inherit;resize:none;overflow-y:auto;min-height:2.6em}
.choice-submit:disabled{background:#3a4741;color:#87928d}
.choice-key{min-height:44px;padding:8px 12px;border:1px solid var(--accent);border-radius:12px;background:transparent;color:var(--accent);font-weight:700;text-align:left}
.choice-key:disabled{border-color:var(--line);color:var(--muted)}
.choice-done{margin:0;color:var(--muted);font-size:.85rem;white-space:pre-wrap}
/* メモのロック（長押しで切り替え）。長押しで文字選択・iOS のメニューが出ないようにする */
.memo-card{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.memo-row.locked .memo-card{padding-top:30px;border-color:#b8934a}.memo-lock-badge{position:absolute;z-index:3;right:9px;top:7px;padding:2px 9px;border:1px solid #d9b26288;border-radius:11px;background:#3a2f16;color:#ffd98a;font-size:.8rem;font-weight:800;pointer-events:none}
/* 実装一覧（メモ）の入口アイコンと、PC の ROADMAP を見るボタン */
.memo-button,.catalog-memo{display:inline-grid;place-items:center}.memo-button svg,.catalog-memo svg{display:block}.memo-roadmap-button{width:auto;min-height:34px;margin-right:6px;padding:4px 10px;font-size:.8rem}
.message.peer{border:2px solid var(--peer-color);background:var(--peer-bg)}.message.peer-in{--peer-color:#f0bd4f;--peer-bg:#2b2716}.message.peer-out{--peer-color:#6fb3ee;--peer-bg:#17242f}.peer-header{display:flex;align-items:center;gap:8px;margin:-2px 0 7px;padding-bottom:7px;border-bottom:1px solid #ffffff1c;font-size:.78rem;color:var(--peer-color)}.peer-header strong{color:#fff}.peer-avatar{position:relative;flex:0 0 30px;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;overflow:hidden;background:#264d3e;color:#dff9ef;font-size:.7rem;font-weight:800}.peer-avatar img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.peer-label{min-width:0;overflow-wrap:anywhere}

/* 共同作業の部屋: 一覧ではアイコン 2 つ・「共同」の印・ふつうの行の 1.5 倍の高さ */
.room-group-title{border-left:6px solid #f0a35a}
.room-row{border-left:6px solid #f0a35a;background:linear-gradient(90deg,#3a2a17 0,#101a15 55%)}
.room-link{grid-template-columns:auto minmax(0,1fr) auto;min-height:123px;width:100%;border:0;background:transparent;font:inherit;text-align:left;cursor:pointer}
.room-avatars{display:flex;align-items:center}
.room-avatars .talk-avatar{width:56px;height:56px;border:3px solid #0f1713;overflow:visible}
.room-avatars .talk-avatar+.talk-avatar{margin-left:-14px}
.room-more{margin-left:4px;color:var(--muted);font-size:.8rem;font-weight:800}
.room-title-line{display:flex;align-items:center;gap:6px;min-width:0}
.room-badge{flex:0 0 auto;padding:2px 8px;border-radius:10px;background:#f0a35a;color:#1b1206;font-size:.74rem;font-weight:850;white-space:nowrap}
.room-members{margin-top:4px;color:#f3c99a;font-size:.84rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.room-link .talk-preview{white-space:normal;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}
/* 共同作業の部屋の画面: 上のバーだけ共同作業仕様、あとは普段のチャットと同じ */
.room-link{cursor:pointer}
.room-start-button{margin-top:6px;padding:5px 10px;border:1px solid #f0a35a;border-radius:14px;background:#3a2a17;color:#ffd3a3;font-size:.8rem;font-weight:800;white-space:nowrap}
.room-header{background:linear-gradient(90deg,#4a3218,#1b2620);border-bottom:2px solid #f0a35a}
.room-header .chat-title-row{gap:8px;min-width:0}
.room-header h1{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.room-back{border:0;background:transparent}
.room-members-line{margin:2px 0 0;color:#f3c99a;font-size:.82rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.room-rename{flex:0 0 auto;width:40px;height:40px;border:1px solid #f0a35a88;border-radius:50%;background:transparent;color:#ffd3a3;font-size:1.1rem}
.room-goal-banner{margin:10px auto 14px;max-width:92%;padding:8px 12px;border-radius:12px;background:#2a2116;color:#f3d6b4;font-size:.86rem;text-align:center;white-space:pre-wrap;overflow-wrap:anywhere}
.room-footer{display:flex;flex-direction:column;align-items:center;gap:3px;width:100%;padding:12px 16px calc(12px + env(safe-area-inset-bottom));border:0;border-top:1px solid var(--line);background:#121a16;color:var(--muted);font:inherit;font-size:.86rem}
.room-footer strong{color:var(--accent);font-size:.95rem}
.room-footer.warning{background:#3a2a12;color:#ffd08a}
.room-footer.warning strong{color:#fff;padding:6px 16px;border-radius:14px;background:#c9781f}
.room-screen .message.room-kind-join,.room-screen .message.room-kind-leave,.room-screen .message.room-kind-decline,.room-screen .message.room-kind-desk{opacity:.8}
.room-header .room-rename{margin-left:auto}
.message-state.peer-unread{color:#9fb1a8}.message-state.peer-unread.late{color:#ffb4a8}
/* 全員が抜けた部屋: 灰色にして、進行中の部屋と見分ける */
.room-row.room-ended{border-left-color:#5c605d;background:#111613}
.room-ended .room-badge{background:#4a4f4c;color:#d5dad7}
.room-ended .room-avatars,.room-ended .talk-content{opacity:.55;filter:grayscale(1)}
.room-ended .room-members{color:var(--muted)}
/* 一覧の欄の見出し: タップで折りたたむ（▾ が横を向く） */
.group-toggle{display:flex;align-items:center;gap:8px;cursor:pointer;user-select:none;-webkit-user-select:none}
.group-chevron{display:inline-block;width:1em;font-size:1.35rem;line-height:1;color:#9fb8ad;text-align:center;transition:transform .15s}
.group-toggle.collapsed .group-chevron{transform:rotate(-90deg)}
/* ダイアログの選択欄・入力欄の文字を大きく（スマホで読めるように。のっくり 2026-09-24） */
.app-dialog select,.app-dialog label{font-size:17px}
/* 起動・画面切り替えの読み込み中。前回の画面の写しがあれば、上に小さな札だけ出す */
.splash{position:fixed;inset:0;z-index:200;display:grid;place-content:center;justify-items:center;gap:14px;background:#0b100e;color:var(--muted);font-size:1rem}
.splash img{width:96px;height:96px;border-radius:22px}
.splash p{margin:0}
.splash.over-snapshot{inset:auto;left:50%;top:calc(env(safe-area-inset-top) + 12px);transform:translateX(-50%);display:flex;align-items:center;gap:8px;padding:6px 14px;border-radius:16px;background:#000c;color:#e6f2eb;font-size:.9rem}
.splash.over-snapshot img{width:22px;height:22px;border-radius:6px}
.snapshot{position:fixed;inset:0;z-index:150;overflow:hidden;background:#0b100e;pointer-events:none}
/* ROADMAP の見直しボタン（一覧の下に固定）と、却下カード */
.roadmap-dialog>section{grid-template-rows:auto auto auto minmax(0,1fr) auto}.roadmap-review{margin-top:8px;min-height:42px}.roadmap-card.cancelled h3{text-decoration:line-through}.roadmap-actions .roadmap-reject{color:#c9b3ff}
/* 通知の準備に失敗したときの案内のボタン（もう一度・閉じる） */
.notice-actions{display:flex;justify-content:center;gap:8px;margin-top:8px}.notice-actions button{min-height:36px;padding:4px 16px;border:1px solid #ffffff66;border-radius:10px;background:#ffffff1a;color:#fff;font-size:.9rem}
/* 未依頼の数のバッジは黄色に黒字（のっくり 2026-09-25）。チャット画面の実装一覧ボタンにも付ける */
.memo-count{background:#f5c542;color:#111}.roadmap-button{position:relative}.roadmap-button .memo-count{right:0;top:0}
/* ROADMAP ボタンの実装予定の数: 白い丸に緑の字 */
.memo-roadmap-button{display:inline-flex;align-items:center;gap:5px}.roadmap-open-count{display:inline-grid;min-width:20px;height:20px;padding:0 5px;place-items:center;border-radius:10px;background:#fff;color:#12824f;font-size:.72rem;font-weight:850}.roadmap-open-count[hidden]{display:none}
/* ROADMAP の実装予定のチェックと、下の「見直し」「実装依頼」 */
.roadmap-card.selectable{padding-left:52px}.roadmap-select-hitbox{position:absolute;left:0;top:0;bottom:0;width:50px;display:grid;place-items:start center;padding-top:13px;cursor:pointer}.roadmap-select{width:26px;height:26px;margin:0;accent-color:var(--accent)}
.roadmap-bottom{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding-top:8px}.roadmap-bottom .roadmap-review{margin-top:0}
/* 実装済み・却下・依頼済みの折りたたみ見出し */
.fold-heading{margin:14px 2px 8px;font-size:.95rem;color:var(--accent)}
/* 個別チャットのノート（実装一覧ボタンの左） */
.chat-header .project-notes-button{margin-left:auto}.chat-header .project-notes-button+.roadmap-button{margin-left:0}.chat-header #update-chat:not([hidden])+.project-notes-button{margin-left:4px}.project-notes-button{flex:0 0 auto;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;min-width:40px;height:44px;padding:0 3px;border:0;border-radius:10px;background:transparent;color:inherit}.project-notes-button span{font-size:.58rem;line-height:1}.project-notes-button:active{background:#ffffff12}.project-notes-button svg{display:block}
.chat-header .chat-heading{left:94px;right:94px}
/* 上へスクロール中に届いた新着（LINE 方式の「ここから未読」と「↓ 新着」ボタン） */
.unread-divider{color:#f5c542}.unread-divider::before,.unread-divider::after{border-top-color:#f5c54288}.new-messages-dock{position:sticky;z-index:9;bottom:10px;height:0;display:flex;justify-content:center}.new-messages-button{transform:translateY(-100%);min-height:36px;padding:6px 14px;border:0;border-radius:18px;background:#f5c542;color:#111;font-size:.82rem;font-weight:800;box-shadow:0 3px 12px #0008}.new-messages-button[hidden]{display:none}
/* 一覧の通知アイコン（長押しで切り替え）。状態で見た目を変える */
.notify-mode-button{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;min-width:40px;height:44px;padding:0 4px;border:0;border-radius:10px;background:transparent;color:var(--accent);-webkit-touch-callout:none;user-select:none;-webkit-user-select:none;touch-action:manipulation}.notify-mode-button[hidden]{display:none}.notify-mode-button span{font-size:.58rem;line-height:1;white-space:nowrap}.notify-mode-button:active{background:#ffffff12}.notify-mode-button svg{display:block}.notify-mode-button .notify-slash{display:none}.notify-mode-button.mode-partial path:nth-of-type(4){display:none}.notify-mode-button.mode-partial{color:#9fdcc4}.notify-mode-button.mode-silent{color:#f5c542}.notify-mode-button.mode-silent .notify-wave,.notify-mode-button.mode-off .notify-wave,.notify-mode-button.mode-timed .notify-wave{display:none}.notify-mode-button.mode-off,.notify-mode-button.mode-timed{color:#8f9c96}.notify-mode-button.mode-off .notify-slash,.notify-mode-button.mode-timed .notify-slash{display:inline}
.notify-mode-dialog button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}.notify-mode-dialog button small{color:var(--muted);font-size:.72rem}.notify-mode-dialog button.current{border-color:#57c9a2;color:#72e6ba;font-weight:800}.notify-mode-dialog button{position:relative}.notify-mode-dialog button.current::before{content:"✓";position:absolute;left:16px;top:50%;transform:translateY(-50%)}.notify-mode-dialog .dialog-hint{margin:0;text-align:center}.notify-timed{display:grid;gap:8px;padding:10px;border:1px solid var(--line);border-radius:12px}.notify-timed label{display:flex;align-items:center;justify-content:space-between;gap:8px}.notify-timed input{width:90px}
/* 選択肢の画像はタップで拡大できることを虫めがねで示す */
.choice-image{cursor:zoom-in}.choice-image-frame{position:relative;flex:0 0 auto;display:block;line-height:0}.choice-image-frame::after{content:"🔍";position:absolute;right:4px;bottom:4px;padding:2px 3px;border-radius:6px;background:#000a;font-size:.75rem;line-height:1;pointer-events:none}
/* 選択肢の画像は、名前の下に横幅いっぱい・切らずに全体を出す（小さな正方形では見比べられないため） */
.choice-option:has(.choice-image-frame){flex-wrap:wrap}.choice-option .choice-words{order:2}.choice-option .choice-image-frame{order:3;flex:1 0 100%}.choice-option .choice-image{display:block;width:100%;height:auto;max-height:280px;object-fit:contain;background:#0a0f0c}
/* 画像ビューアは全画面。2 本指で拡大・ドラッグで移動・ダブルタップで拡大／元に戻す */
.image-viewer-dialog{inset:0;width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;border:0;border-radius:0;background:#000;overflow:hidden}.image-viewer-dialog>section{position:relative;height:100%;display:block;padding:0}.image-viewer-dialog header{position:absolute;z-index:3;left:0;right:0;top:0;padding:calc(env(safe-area-inset-top) + 6px) 10px 8px 16px;background:linear-gradient(#000c,#0000)}.image-viewer-dialog #image-viewer-stage{position:absolute;inset:0;display:block;overflow:hidden;touch-action:none}.image-viewer-dialog #image-viewer-stage img{position:absolute;inset:0;width:100%;height:100%;max-width:none;max-height:none;margin:0;object-fit:contain;transform-origin:center;will-change:transform;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.image-viewer-nav{position:absolute;z-index:2;top:50%;width:44px;transform:translateY(-50%);text-shadow:0 0 6px #000}#image-viewer-prev{left:0}#image-viewer-next{right:0}.image-viewer-dialog.zoomed .image-viewer-nav{display:none}
/* AI の吹き出しの Markdown 整形（のっくり 2026-09-25） */
.message-body.markdown{white-space:normal}.message-body.markdown>:first-child{margin-top:0}.message-body.markdown>:last-child{margin-bottom:0}
.message-body.markdown p{margin:0 0 .7em}.message-body.markdown .md-heading{margin:.9em 0 .4em;font-size:1.08em;font-weight:800;line-height:1.35;color:#f2fbf6}.message-body.markdown h3.md-heading{font-size:1.18em}
.message-body.markdown ul,.message-body.markdown ol{margin:0 0 .7em;padding-left:1.4em}.message-body.markdown li{margin:.15em 0}.message-body.markdown li>ul,.message-body.markdown li>ol{margin:.15em 0 0}.message-body.markdown li.md-task{list-style:none;margin-left:-1.1em}
.message-body.markdown code{padding:.08em .35em;border-radius:5px;background:#0006;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.88em;overflow-wrap:anywhere}
.message-body.markdown pre{margin:0 0 .7em;padding:9px 10px;border-radius:9px;background:#0008;overflow-x:auto;max-width:100%;white-space:pre}.message-body.markdown pre code{padding:0;background:transparent;font-size:.82em;overflow-wrap:normal}
.message-body.markdown blockquote{margin:0 0 .7em;padding:2px 0 2px 10px;border-left:3px solid var(--accent);color:#cfe0d7}
.message-body.markdown hr{margin:.8em 0;border:0;border-top:1px solid #ffffff2a}
.message-body.markdown .md-table-wrap{max-width:100%;margin:0 0 .7em;overflow-x:auto}.message-body.markdown table{border-collapse:collapse;font-size:.9em}.message-body.markdown th,.message-body.markdown td{padding:4px 8px;border:1px solid #ffffff26;text-align:left;vertical-align:top;overflow-wrap:anywhere;min-width:4em}.message-body.markdown th{background:#ffffff10;font-weight:800}
/* メモ・ノート・ROADMAP の編集はほぼ全画面。本文の欄を残りの高さいっぱいに広げる（のっくり 2026-09-25） */
#memo-editor-dialog,#roadmap-editor-dialog{width:min(calc(100vw - 12px),760px);height:min(calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 16px),1000px);max-height:none}
#memo-editor-form,#roadmap-editor-form{height:100%;display:flex;flex-direction:column;overflow-y:auto}
#memo-editor-form>header,#roadmap-editor-form>header{margin-bottom:6px}
#memo-editor-form>label,#roadmap-editor-form>label{flex:0 0 auto;margin:6px 0}
#memo-editor-form>label:has(textarea),#roadmap-editor-form>label:has(textarea){flex:1 1 auto;display:flex;flex-direction:column;min-height:14em}
#memo-body,#roadmap-edit-details{flex:1 1 auto;min-height:12em;resize:none;line-height:1.55}
#memo-editor-form .memo-image-tools{flex:0 0 auto;margin:6px 0}
#memo-editor-form>.primary-button,#roadmap-editor-form>.primary-button{flex:0 0 auto;margin-top:8px}
/* ROADMAP の依頼済みのハンコ（のっくり 2026-09-25） */
.roadmap-card.requested{background:#121916;border-color:#355044}.roadmap-card .roadmap-sent-stamp{right:14px;top:auto;bottom:10px;font-size:.85rem;padding:3px 8px}
/* 端末の並べ替え（のっくり 2026-09-25） */
.small-pill-button{margin-left:auto;margin-right:12px;min-height:32px;padding:4px 12px;border:1px solid var(--line);border-radius:999px;background:transparent;color:var(--accent);font-size:.8rem}
.order-list{display:flex;flex-direction:column;gap:6px;margin:8px 0}.order-panel{position:relative;display:flex;align-items:center;min-height:48px;border-radius:8px;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;cursor:grab}.order-grip{margin-left:auto;color:#9fb8ad;font-size:1.2rem}.order-panel.dragging{z-index:6;transform:scale(1.03);box-shadow:0 6px 18px #0009;background:#24362c}#order-reset{display:block;color:var(--accent)}
/* 横幅が広い画面: 左に一覧・右にチャット（html.swapped で左右入れ替え） */
html.split body{display:flex}html.split.swapped body{flex-direction:row-reverse}
html.split #chooser,html.split #room-screen{position:relative;flex:0 0 min(400px,42vw);max-width:none;margin:0;order:1}
html.split .split-pane{order:2;flex:1 1 auto;min-width:0;height:100dvh;display:flex;align-items:center;justify-content:center;background:#0f1713;border-inline:1px solid #18251f}
#split-frame{display:block;width:100%;height:100%;border:0;background:#0f1713}.split-empty{margin:0;color:var(--muted)}
html.split .talk-row.split-active{background:#1d3a2e}.split-swap{font-size:1.3rem}
html.embedded .chat-header .back-button{visibility:hidden}
/* 実装依頼の送信確認（OS の confirm の代わり） */
.send-confirm-dialog{width:min(calc(100vw - 24px),420px)}
.send-confirm-message{margin:4px 0 14px;font-size:1.05rem;line-height:1.6;white-space:pre-wrap}
.send-confirm-dialog textarea{min-height:52px;max-height:50dvh;font-size:16px;line-height:1.5;resize:none;overflow-y:auto}
.send-confirm-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;margin-top:6px}
.send-confirm-actions button{min-height:44px;padding:0 14px;border-radius:12px;font-weight:750;font-size:.95rem}
.send-confirm-cancel{border:0;background:transparent;color:var(--muted);margin-right:auto}
.send-confirm-secondary{border:1px solid var(--line);background:transparent;color:var(--accent)}
.send-confirm-primary{border:0;background:var(--accent);color:#07100c}
