/* 제안함 아키타입 (모바일 재구성) — SC-M23 · SC-M24 · SC-H02 …
 *
 * "제안은 제안일 뿐이다. 승인 전에는 아무것도 발송되지 않는다" (캔버스).
 * 데스크톱은 카드 넷을 격자에 편다. 모바일에서 하는 일은 하나씩 판단하는 것이라
 * 카드마다 대상·예상효과·막는 것을 붙이고 승인 버튼을 단다.
 *
 * 막힌 제안은 승인 버튼을 주지 않는다 — 설정 화면으로 보내거나 미결로 남긴다.
 * 클래스는 .offer / .eff / .chk / .gates 로 (.blk .grid .open .card 는 이미 쓰인다).
 */

.m--offer .head { background: #fff; }
.m--offer .hd-row { display: flex; align-items: center; justify-content: space-between;
                    padding: .55rem .9rem .45rem; }
.m--offer .ttl { font-size: 1.05rem; font-weight: 700; letter-spacing: -.03em; }
.m--offer .mini { min-height: 30px; display: inline-flex; align-items: center; gap: .3rem; padding: 0 .6rem;
                  border: 1px solid var(--grid); font-size: .72rem; color: var(--ink-2);
                  text-decoration: none; }
.m--offer .stat { display: flex; flex-wrap: wrap; gap: .1rem .85rem; padding: 0 .9rem .5rem;
                  font-size: .72rem; color: var(--ink-3); }
.m--offer .stat b { font-size: .9rem; font-weight: 700; color: var(--ink); letter-spacing: -.02em; }
.m--offer .stat .bad, .m--offer .stat .bad b { color: var(--alert); }

.m--offer .plan { background: var(--sheet); }
.m--offer .rule { margin: .7rem .9rem .5rem; padding: .55rem .7rem; background: #fdfaf2;
                  border-left: 3px solid var(--wait-pay); font-size: .72rem; line-height: 1.6;
                  color: var(--ink-2); }
.m--offer .rule b { color: var(--ink); font-weight: 700; }

/* 제안 하나 */
.m--offer .offer { display: block; margin: 0 .9rem .5rem; padding: .65rem .8rem .7rem;
                   background: #fff; border: 1px solid var(--grid); position: relative; }
.m--offer .no { position: absolute; top: .6rem; right: .7rem; font-size: .9rem; color: var(--ink-3); }
.m--offer .ttl2 { display: block; font-size: .95rem; font-weight: 700; letter-spacing: -.025em;
                  padding-right: 1.5rem; }
.m--offer .cnt { display: block; font-size: 1.7rem; font-weight: 800; letter-spacing: -.05em;
                 line-height: 1.2; margin-top: .1rem; }
.m--offer .cnt em { font-style: normal; font-size: .85rem; font-weight: 600; margin-left: .1rem; }
.m--offer .cond { display: block; font-size: .7rem; color: var(--ink-2); line-height: 1.5;
                  margin-top: .1rem; }

.m--offer .eff { display: flex; flex-wrap: wrap; gap: .2rem 1.2rem; margin: .5rem 0 .35rem;
                 padding: .45rem .55rem; background: var(--sheet); }
.m--offer .eff span { display: flex; flex-direction: column; }
.m--offer .eff em { font-style: normal; font-size: .62rem; color: var(--ink-3); }
.m--offer .eff b { font-size: .9rem; font-weight: 700; letter-spacing: -.02em; }

.m--offer .chk { display: block; font-size: .7rem; color: #3f7a6f; line-height: 1.5; }
.m--offer .chk.bad { color: var(--alert); }
.m--offer .chk.warn { color: var(--wait-pay); }
.m--offer .chk b { font-weight: 700; }

.m--offer .act { display: block; width: 100%; min-height: 44px; margin-top: .55rem; border: 0;
                 background: var(--live); color: #fff; font: inherit; font-size: .86rem;
                 font-weight: 700; cursor: pointer; text-align: center; text-decoration: none;
                 line-height: 44px; }
.m--offer .act.go { background: #fff; color: var(--alert); border: 1px solid var(--alert); }
/* 반대 방향의 선택(수정 · 안 보냄)은 승인과 같은 버튼을 쓰지 않는다 (M38) — SC-D14 에서 처음 씀 */
.m--offer .act.quiet { background: #fff; color: var(--ink-2); border: 1px solid var(--grid);
                       font-weight: 600; }
.m--offer .undecided { display: block; width: 100%; min-height: 44px; margin-top: .55rem;
                       border: 1px dashed var(--grid); background: none; font: inherit;
                       font-size: .82rem; color: var(--ink-3); cursor: default; }
.m--offer .undecided i { font-style: normal; font-size: .64rem; opacity: .8; margin-left: .25rem; }
.m--offer .offer.stuck { border-left: 3px solid var(--alert); }
.m--offer .offer.hold { border-left: 3px solid var(--wait-pay); }

.m--offer .gates { padding: .5rem .9rem 0; }
.m--offer .gates h2 { display: flex; align-items: baseline; gap: .35rem; margin: .5rem 0 .4rem;
                      font-size: .7rem; font-weight: 700; letter-spacing: .08em; color: var(--ink-3); }
.m--offer .gates h2 i { font-style: normal; font-weight: 500; letter-spacing: 0; }
.m--offer .g { padding: .5rem .7rem; margin-bottom: .3rem; background: #fff;
               border-left: 3px solid var(--grid-2); font-size: .72rem; color: var(--ink-2);
               line-height: 1.55; }
.m--offer .g b { color: var(--ink); font-weight: 700; }
.m--offer .g.bad { border-left-color: var(--alert); background: #fdf9f8; }
.m--offer .kx { opacity: .72; }
.m--offer .g a, .m--offer .chk a { color: var(--live); font-weight: 700; }
.m--offer .pad { height: 2.5rem; }
