[{"data":1,"prerenderedAt":3420},["ShallowReactive",2],{"doc:\u002Fdesign":3},{"id":4,"title":5,"body":6,"description":1020,"extension":3413,"meta":3414,"navigation":3415,"path":3416,"seo":3417,"stem":3418,"__hash__":3419},"docs\u002FDESIGN.md","디자인 가이드 — 맑은 메시징 (사용자단)",{"type":7,"value":8,"toc":3344},"minimark",[9,13,57,60,65,348,368,370,374,492,497,510,520,522,526,544,550,764,768,826,842,850,857,972,976,1005,1007,1011,1021,1055,1059,1182,1207,1209,1213,1217,1223,1227,1285,1292,1298,1305,1307,1311,1315,1321,1343,1350,1356,1360,1371,1375,1386,1391,1410,1416,1428,1432,1441,1447,1465,1469,1479,1485,1510,1514,1607,1615,1617,1621,1630,1636,1758,1777,1783,1807,1814,1852,1856,1892,1898,1919,1923,1943,1949,1957,1971,2053,2060,2080,2125,2129,2157,2162,2166,2184,2190,2222,2226,2240,2246,2268,2271,2367,2371,2380,2384,2401,2405,2431,2433,2437,2440,2486,2488,2492,2578,2593,2595,2599,2642,2644,2648,2748,2750,2754,2816,2818,2822,2831,2835,2841,2872,2876,3052,3062,3066,3100,3119,3139,3158,3185,3202,3220,3222,3226,3275,3277,3281],[10,11,5],"h1",{"id":12},"디자인-가이드-맑은-메시징-사용자단",[14,15,16,37,50],"blockquote",{},[17,18,19,23,24,28,29,32,33,36],"p",{},[20,21,22],"strong",{},"정본(SoT)",": ",[25,26,27],"code",{},"design_handoff_malgn_noti"," 핸드오프 — Relay-inspired Design System ",[20,30,31],{},"v1.0",".\n",[20,34,35],{},"\"Less chrome, more clarity.\""," — Linear · Vercel · Nuxt UI 영감의 저밀도 라이트 모드. 색은 의미가 있을 때만, 라인은 1px, 숫자는 모노스페이스.",[17,38,39,40,45,46],{},"코딩 컨벤션 → ",[41,42,44],"a",{"href":43},".\u002FFRONTEND","FRONTEND.md"," · 기술 스택 → ",[41,47,49],{"href":48},".\u002FSTACK","STACK.md",[17,51,52,53,56],{},"⚠️ 2026-05-18: 기존 malgn-notifications 시안 기반 디자인(indigo\u002Fsky\u002FNoto Sans KR)에서 ",[20,54,55],{},"이 핸드오프 디자인으로 전면 피벗",". 시안은 IA(페이지 목록\u002F라우트)에 한해 참조하되, 디자인 언어의 정본은 이 문서다.",[58,59],"hr",{},[61,62,64],"h2",{"id":63},"_0-적용-현황","0. 적용 현황",[66,67,68,84],"table",{},[69,70,71],"thead",{},[72,73,74,78,81],"tr",{},[75,76,77],"th",{},"레이어",[75,79,80],{},"상태",[75,82,83],{},"위치",[85,86,87,110,132,150,163,186,199,217,245,280,314,334],"tbody",{},[72,88,89,101,104],{},[90,91,92,93,96,97,100],"td",{},"디자인 토큰 (",[25,94,95],{},":root"," + ",[25,98,99],{},"@theme",")",[90,102,103],{},"✅ 적용",[90,105,106],{},[41,107,109],{"href":108},"..\u002Fapp\u002Fassets\u002Fcss\u002Fmain.css","app\u002Fassets\u002Fcss\u002Fmain.css",[72,111,112,126,128],{},[90,113,114,115,118,119,118,122,125],{},"컴포넌트 CSS (",[25,116,117],{},".card","\u002F",[25,120,121],{},".btn",[25,123,124],{},".table","…)",[90,127,103],{},[90,129,130],{},[41,131,109],{"href":108},[72,133,134,142,144],{},[90,135,136,137,118,140,100],{},"Nuxt UI 색상 매핑 (",[25,138,139],{},"zinc",[25,141,139],{},[90,143,103],{},[90,145,146],{},[41,147,149],{"href":148},"..\u002Fapp\u002Fapp.config.ts","app\u002Fapp.config.ts",[72,151,152,155,157],{},[90,153,154],{},"폰트 (Inter\u002FJetBrains Mono\u002FPretendard)",[90,156,103],{},[90,158,159],{},[41,160,162],{"href":161},"..\u002Fnuxt.config.ts","nuxt.config.ts",[72,164,165,168,171],{},[90,166,167],{},"셸 (AppGnb\u002FAppFooter\u002Flayouts)",[90,169,170],{},"✅ Phase 2a 적용",[90,172,173,177,178,177,182],{},[41,174,176],{"href":175},"..\u002Fapp\u002Fcomponents\u002FAppGnb.vue","components\u002FAppGnb.vue"," · ",[41,179,181],{"href":180},"..\u002Fapp\u002Fcomponents\u002FAppFooter.vue","AppFooter.vue",[41,183,185],{"href":184},"..\u002Fapp\u002Flayouts\u002F","layouts\u002F",[72,187,188,191,193],{},[90,189,190],{},"홈 대시보드 (레퍼런스)",[90,192,170],{},[90,194,195],{},[41,196,198],{"href":197},"..\u002Fapp\u002Fpages\u002Fhome.vue","pages\u002Fhome.vue",[72,200,201,204,206],{},[90,202,203],{},"디자인 가이드 페이지 (라이브 카탈로그)",[90,205,103],{},[90,207,208,212,213,216],{},[41,209,211],{"href":210},"..\u002Fapp\u002Fpages\u002Fguide.vue","pages\u002Fguide.vue"," — ",[25,214,215],{},"\u002Fguide",", 18섹션 sticky nav",[72,218,219,222,225],{},[90,220,221],{},"발송 공용 컴포넌트군 + SMS 발송 (레퍼런스)",[90,223,224],{},"✅ Phase 2b-1 적용",[90,226,227,231,232,118,235,118,238,118,241,244],{},[41,228,230],{"href":229},"..\u002Fapp\u002Fpages\u002Fsend\u002Fsms.vue","pages\u002Fsend\u002Fsms.vue",", ",[25,233,234],{},"AppModal",[25,236,237],{},"AppSendFormCard",[25,239,240],{},"AppRecipientCard",[25,242,243],{},"AppSmsTemplateDialog"," 등",[72,246,247,250,253],{},[90,248,249],{},"알림톡·RCS·이메일·PUSH·Flow 발송 + 채널 프리뷰",[90,251,252],{},"✅ Phase 2b-2 적용",[90,254,255,231,259,118,262,118,265,118,268,118,271,118,274,118,277],{},[41,256,258],{"href":257},"..\u002Fapp\u002Fpages\u002Fsend\u002F","app\u002Fpages\u002Fsend\u002F",[25,260,261],{},"AppKakaoPreview",[25,263,264],{},"AppRcsPreview",[25,266,267],{},"AppEmailPreview",[25,269,270],{},"AppPushPreview",[25,272,273],{},"AppSegmented",[25,275,276],{},"AppKakaoTemplateDialog",[25,278,279],{},"AppTemplateVariableTextarea",[72,281,282,285,288],{},[90,283,284],{},"발송조회(5채널)·통계·주소록·충전·로그인·회원가입",[90,286,287],{},"✅ Phase 2b-3 적용",[90,289,290,294,295,294,299,294,303,294,307,231,311],{},[41,291,293],{"href":292},"..\u002Fapp\u002Fpages\u002Fhistory\u002F","pages\u002Fhistory\u002F","·",[41,296,298],{"href":297},"..\u002Fapp\u002Fpages\u002Fcontacts\u002Flist.vue","contacts\u002Flist",[41,300,302],{"href":301},"..\u002Fapp\u002Fpages\u002Fcharge\u002F","charge\u002F",[41,304,306],{"href":305},"..\u002Fapp\u002Fpages\u002Flogin\u002F","login\u002F",[41,308,310],{"href":309},"..\u002Fapp\u002Fpages\u002Fsignup.vue","signup",[25,312,313],{},"AppHistoryView",[72,315,316,319,322],{},[90,317,318],{},"발송 6채널 UX 2차 폴리시 — 3-카드 재배치·채널 템플릿\u002F부가 다이얼로그·플로우 관리",[90,320,321],{},"✅ 적용 (2026-05-20)",[90,323,324,231,326,294,329,294,332,244],{},[41,325,258],{"href":257},[25,327,328],{},"AppPush*Dialog",[25,330,331],{},"AppFlow*Dialog",[25,333,267],{},[72,335,336,339,342],{},[90,337,338],{},"발신정보·메시지관리·캠페인·계정\u002F문의 등 잔여",[90,340,341],{},"⏳ 핸드오프 시안 없음 — 별도 협의",[90,343,344],{},[41,345,347],{"href":346},"..\u002Fapp\u002Fpages\u002F","app\u002Fpages\u002F",[14,349,350],{},[17,351,352,353,356,357,118,359,118,361,363,364,367],{},"Phase 1(토큰·폰트·문서)·Phase 2(셸·홈·발송 6채널·조회\u002F통계\u002F주소록\u002F충전\u002F인증)는 모두 적용 완료. 모든 ",[25,354,355],{},"App*"," 컴포넌트가 ink\u002Faccent 신규 팔레트와 ",[25,358,117],{},[25,360,121],{},[25,362,124],{}," 클래스를 직접 사용한다(구 ",[25,365,366],{},"--gray-*"," 별칭 의존 없음).",[58,369],{},[61,371,373],{"id":372},"_1-디자인-원칙-7","1. 디자인 원칙 (7)",[66,375,376,389],{},[69,377,378],{},[72,379,380,383,386],{},[75,381,382],{},"#",[75,384,385],{},"원칙",[75,387,388],{},"의미",[85,390,391,404,417,433,446,463,479],{},[72,392,393,396,401],{},[90,394,395],{},"1",[90,397,398],{},[20,399,400],{},"Calm by default",[90,402,403],{},"채도 높은 색은 상태(error\u002Fsuccess)에만. 평상시 화면은 무채색.",[72,405,406,409,414],{},[90,407,408],{},"2",[90,410,411],{},[20,412,413],{},"Information first, decoration last",[90,415,416],{},"카드 그라데이션·아이콘 장식 금지. 데이터에 시선이 먼저.",[72,418,419,422,427],{},[90,420,421],{},"3",[90,423,424],{},[20,425,426],{},"Single accent, used sparingly",[90,428,429,432],{},[25,430,431],{},"#00DC82"," 한 가지 액센트. 페이지당 4–6회 이내.",[72,434,435,438,443],{},[90,436,437],{},"4",[90,439,440],{},[20,441,442],{},"Typographic hierarchy over boxes",[90,444,445],{},"박스를 여러 겹 쌓기보다 폰트로 위계.",[72,447,448,451,456],{},[90,449,450],{},"5",[90,452,453],{},[20,454,455],{},"Tabular numbers everywhere",[90,457,458,459,462],{},"모든 수치는 JetBrains Mono + ",[25,460,461],{},"tabular-nums",".",[72,464,465,468,473],{},[90,466,467],{},"6",[90,469,470],{},[20,471,472],{},"Hairline borders > shadows",[90,474,475,478],{},[25,476,477],{},"1px solid #ececec","가 기본. 그림자는 floating UI에만.",[72,480,481,484,489],{},[90,482,483],{},"7",[90,485,486],{},[20,487,488],{},"AI is a quiet partner",[90,490,491],{},"AI 요소는 ✨ + 그린 한 가지로만. 보라색·무지개 절대 금지.",[493,494,496],"h3",{"id":495},"do-dont","Do \u002F Don't",[17,498,499,502,503,505,506,509],{},[20,500,501],{},"✅ Do"," — 1px hairline으로 카드 분리 · 숫자는 모노+",[25,504,461],{}," · 액센트는 의미 있는 한 곳에만(AI\u002FLive\u002F+delta\u002FPrimary CTA) · AI 표식엔 항상 ",[25,507,508],{},"Sparkles","+그린 · 빈 공간을 두려워하지 않기 · 텍스트 톤 한 화면 3단계만(Primary\u002FSecondary\u002FMuted).",[17,511,512,515,516,519],{},[20,513,514],{},"❌ Don't"," — 카드에 drop shadow · 컬러풀(다색) 아이콘 · 보라\u002F무지개 AI · 12px 미만 본문 · ",[25,517,518],{},"ink-300"," 본문 텍스트(축 라벨 한정) · 화면당 액센트 6회 초과 · 컨테이너 radius 12px 이상 · 단순 강조 텍스트에 액센트 · 헤더 등 큰 영역에 액센트 채움.",[58,521],{},[61,523,525],{"id":524},"_2-컬러-시스템","2. 컬러 시스템",[17,527,528,529,532,533,535,536,539,540,543],{},"토큰 정본 = ",[41,530,531],{"href":108},"main.css"," ",[25,534,95],{},". 색은 ",[20,537,538],{},"항상 CSS 변수","로. ",[25,541,542],{},"bg-[#xxxxxx]"," 임의값 금지.",[493,545,547,548,100],{"id":546},"_21-ink-scale-무채색-11단-tailwind-zinc","2.1 Ink Scale (무채색 11단 ≈ Tailwind ",[25,549,139],{},[66,551,552,565],{},[69,553,554],{},[72,555,556,559,562],{},[75,557,558],{},"토큰",[75,560,561],{},"값",[75,563,564],{},"용도",[85,566,567,582,597,612,627,642,657,672,687,702,717,732,749],{},[72,568,569,574,579],{},[90,570,571],{},[25,572,573],{},"--ink-900",[90,575,576],{},[25,577,578],{},"#0a0a0a",[90,580,581],{},"Primary 텍스트, Primary 버튼 BG",[72,583,584,589,594],{},[90,585,586],{},[25,587,588],{},"--ink-800",[90,590,591],{},[25,592,593],{},"#18181b",[90,595,596],{},"Hover(primary), 강조 텍스트",[72,598,599,604,609],{},[90,600,601],{},[25,602,603],{},"--ink-700",[90,605,606],{},[25,607,608],{},"#27272a",[90,610,611],{},"라이트 표면 본문",[72,613,614,619,624],{},[90,615,616],{},[25,617,618],{},"--ink-600",[90,620,621],{},[25,622,623],{},"#3f3f46",[90,625,626],{},"보조 텍스트",[72,628,629,634,639],{},[90,630,631],{},[25,632,633],{},"--ink-500",[90,635,636],{},[25,637,638],{},"#52525b",[90,640,641],{},"3차 텍스트, 라벨",[72,643,644,649,654],{},[90,645,646],{},[25,647,648],{},"--ink-400",[90,650,651],{},[25,652,653],{},"#71717a",[90,655,656],{},"muted, placeholder, 아이콘 기본",[72,658,659,664,669],{},[90,660,661],{},[25,662,663],{},"--ink-300",[90,665,666],{},[25,667,668],{},"#a1a1aa",[90,670,671],{},"disabled 텍스트, 축 라벨",[72,673,674,679,684],{},[90,675,676],{},[25,677,678],{},"--ink-200",[90,680,681],{},[25,682,683],{},"#d4d4d8",[90,685,686],{},"disabled BG, hover border",[72,688,689,694,699],{},[90,690,691],{},[25,692,693],{},"--ink-100",[90,695,696],{},[25,697,698],{},"#e4e4e7",[90,700,701],{},"progress track, 옅은 divider",[72,703,704,709,714],{},[90,705,706],{},[25,707,708],{},"--ink-50",[90,710,711],{},[25,712,713],{},"#f4f4f5",[90,715,716],{},"subtle BG (segmented\u002Fhover)",[72,718,719,724,729],{},[90,720,721],{},[25,722,723],{},"--paper",[90,725,726],{},[25,727,728],{},"#fafaf9",[90,730,731],{},"앱 배경",[72,733,734,739,744],{},[90,735,736],{},[25,737,738],{},"--line",[90,740,741],{},[25,742,743],{},"#ececec",[90,745,746],{},[20,747,748],{},"hairline border (1px)",[72,750,751,756,761],{},[90,752,753],{},[25,754,755],{},"--white",[90,757,758],{},[25,759,760],{},"#ffffff",[90,762,763],{},"표면 (카드·탑바·입력)",[493,765,767],{"id":766},"_22-single-accent-green","2.2 Single Accent — Green",[66,769,770,780],{},[69,771,772],{},[72,773,774,776,778],{},[75,775,558],{},[75,777,561],{},[75,779,564],{},[85,781,782,796,811],{},[72,783,784,789,793],{},[90,785,786],{},[25,787,788],{},"--accent",[90,790,791],{},[25,792,431],{},[90,794,795],{},"AI 표식 · Live · +delta · Primary CTA",[72,797,798,803,808],{},[90,799,800],{},[25,801,802],{},"--accent-soft",[90,804,805],{},[25,806,807],{},"#e6fbf2",[90,809,810],{},"pill\u002F배경",[72,812,813,818,823],{},[90,814,815],{},[25,816,817],{},"--accent-ink",[90,819,820],{},[25,821,822],{},"#007a48",[90,824,825],{},"라이트 위 액센트 텍스트(대비 보강)",[17,827,828,830,831,834,835,118,838,841],{},[25,829,99],{},"에 ",[25,832,833],{},"--color-accent","로도 노출되어 ",[25,836,837],{},"bg-accent",[25,839,840],{},"text-accent"," 유틸 사용 가능.",[14,843,844],{},[17,845,846,849],{},[20,847,848],{},"액센트 사용",": ✅ AI UI · open\u002Fonline\u002Flive 상태 · 긍정 변동률 · Primary CTA(페이지당 ≤1). ❌ 단순 강조 텍스트 색 · 큰 영역 채움(헤더 배경 등).",[493,851,853,854,100],{"id":852},"_23-semantic-status-soft-bg-line-border-ink-text","2.3 Semantic \u002F Status (",[25,855,856],{},"*-soft BG + *-line border + *-ink text",[66,858,859,875],{},[69,860,861],{},[72,862,863,866,869,872],{},[75,864,865],{},"Status",[75,867,868],{},"soft",[75,870,871],{},"line",[75,873,874],{},"ink",[85,876,877,895,915,935,955],{},[72,878,879,882,886,891],{},[90,880,881],{},"Success",[90,883,884],{},[25,885,807],{},[90,887,888],{},[25,889,890],{},"rgba(0,220,130,.3)",[90,892,893],{},[25,894,822],{},[72,896,897,900,905,910],{},[90,898,899],{},"Warning",[90,901,902],{},[25,903,904],{},"#fffbeb",[90,906,907],{},[25,908,909],{},"#fde68a",[90,911,912],{},[25,913,914],{},"#b45309",[72,916,917,920,925,930],{},[90,918,919],{},"Danger",[90,921,922],{},[25,923,924],{},"#fff1f2",[90,926,927],{},[25,928,929],{},"#fecdd3",[90,931,932],{},[25,933,934],{},"#be123c",[72,936,937,940,945,950],{},[90,938,939],{},"Info",[90,941,942],{},[25,943,944],{},"#eff6ff",[90,946,947],{},[25,948,949],{},"#bfdbfe",[90,951,952],{},[25,953,954],{},"#1d4ed8",[72,956,957,960,964,968],{},[90,958,959],{},"Neutral",[90,961,962],{},[25,963,713],{},[90,965,966],{},[25,967,698],{},[90,969,970],{},[25,971,623],{},[493,973,975],{"id":974},"_24-channel-colors-점-표시-전용","2.4 Channel Colors (점 표시 전용)",[17,977,978,979,982,983,986,987,990,991,994,995,997,998,1000,1001,1004],{},"SMS ",[25,980,981],{},"#3b82f6"," · Kakao ",[25,984,985],{},"#fbbf24"," · RCS ",[25,988,989],{},"#8b5cf6"," · Email ",[25,992,993],{},"#f59e0b"," · Push ",[25,996,431],{}," · Flow ",[25,999,578],{},". 채널은 ",[20,1002,1003],{},"도트로만"," 구분, 큰 색 채움 금지.",[58,1006],{},[61,1008,1010],{"id":1009},"_3-타이포그래피","3. 타이포그래피",[1012,1013,1018],"pre",{"className":1014,"code":1016,"language":1017},[1015],"language-text","--font-sans:  \"Inter\", \"Pretendard Variable\", \"Pretendard\", -apple-system, \"Noto Sans KR\", sans-serif;\n--font-mono:  \"JetBrains Mono\", ui-monospace, monospace;\n--font-serif: \"Instrument Serif\", Georgia, serif;\n--font-base:  13px;\n","text",[25,1019,1016],{"__ignoreMap":1020},"",[1022,1023,1024,1034,1043,1049],"ul",{},[1025,1026,1027,1030,1031,462],"li",{},[20,1028,1029],{},"Inter"," — 모든 UI 텍스트. ",[25,1032,1033],{},"font-feature-settings: \"cv11\",\"ss01\",\"ss03\"",[1025,1035,1036,1039,1040,1042],{},[20,1037,1038],{},"JetBrains Mono"," — 모든 숫자·ID·kbd. ",[25,1041,461],{}," 필수.",[1025,1044,1045,1048],{},[20,1046,1047],{},"Pretendard"," — 한국어 fallback (Inter 다음).",[1025,1050,1051,1054],{},[20,1052,1053],{},"Instrument Serif"," — 대형 디스플레이 한정 (어드민에서 거의 미사용).",[493,1056,1058],{"id":1057},"type-scale","Type Scale",[66,1060,1061,1077],{},[69,1062,1063],{},[72,1064,1065,1068,1071,1074],{},[75,1066,1067],{},"Role",[75,1069,1070],{},"Size \u002F LH",[75,1072,1073],{},"Weight",[75,1075,1076],{},"Tracking",[85,1078,1079,1093,1106,1119,1131,1143,1156,1170],{},[72,1080,1081,1084,1087,1090],{},[90,1082,1083],{},"Display (page H1)",[90,1085,1086],{},"22 \u002F 28",[90,1088,1089],{},"600",[90,1091,1092],{},"-0.01em",[72,1094,1095,1098,1101,1103],{},[90,1096,1097],{},"Section H3 \u002F 카드 타이틀",[90,1099,1100],{},"13 \u002F 20",[90,1102,1089],{},[90,1104,1105],{},"-0.005em",[72,1107,1108,1111,1113,1116],{},[90,1109,1110],{},"Body",[90,1112,1100],{},[90,1114,1115],{},"400",[90,1117,1118],{},"0",[72,1120,1121,1124,1127,1129],{},[90,1122,1123],{},"Body large (AI 헤드라인)",[90,1125,1126],{},"15 \u002F 24",[90,1128,1115],{},[90,1130,1118],{},[72,1132,1133,1136,1139,1141],{},[90,1134,1135],{},"Label \u002F Caption",[90,1137,1138],{},"12 \u002F 16",[90,1140,1115],{},[90,1142,1118],{},[72,1144,1145,1148,1151,1153],{},[90,1146,1147],{},"Micro (eyebrow)",[90,1149,1150],{},"10–11 \u002F 14",[90,1152,1089],{},[90,1154,1155],{},"0.06em, UPPERCASE, mono",[72,1157,1158,1161,1164,1167],{},[90,1159,1160],{},"KPI Number",[90,1162,1163],{},"28 \u002F 28",[90,1165,1166],{},"500 (mono)",[90,1168,1169],{},"-0.02em",[72,1171,1172,1175,1178,1180],{},[90,1173,1174],{},"Inline mono (ID\u002F%\u002Fkbd)",[90,1176,1177],{},"11–12",[90,1179,1166],{},[90,1181,1118],{},[17,1183,1184,1187,1188,1191,1192,1195,1196,1199,1200,1203,1204],{},[20,1185,1186],{},"Color × Type",": Heading→",[25,1189,1190],{},"ink-900"," · Body→",[25,1193,1194],{},"ink-700\u002F800"," · Secondary→",[25,1197,1198],{},"ink-400~500"," · Muted→",[25,1201,1202],{},"ink-300~400",". ",[20,1205,1206],{},"한 화면 3단계 톤 초과 금지.",[58,1208],{},[61,1210,1212],{"id":1211},"_4-간격-라운드-그림자","4. 간격 · 라운드 · 그림자",[493,1214,1216],{"id":1215},"_41-spacing-tailwind-4px-base","4.1 Spacing (Tailwind 4px base)",[17,1218,1219,1222],{},[25,1220,1221],{},"1=4 · 1.5=6 · 2=8 · 2.5=10 · 3=12 · 4=16 · 5=20 · 6=24 · 8=32"," (px). 카드 패딩 16~20, 카드 간 24, Shell 패딩 32.",[493,1224,1226],{"id":1225},"_42-radius","4.2 Radius",[66,1228,1229,1239],{},[69,1230,1231],{},[72,1232,1233,1236],{},[75,1234,1235],{},"요소",[75,1237,1238],{},"radius",[85,1240,1241,1252,1263,1274],{},[72,1242,1243,1246],{},[90,1244,1245],{},"Pill \u002F Badge \u002F Button \u002F Input",[90,1247,1248,1251],{},[25,1249,1250],{},"--r-md"," 6px",[72,1253,1254,1257],{},[90,1255,1256],{},"Card \u002F Section \u002F Modal",[90,1258,1259,1262],{},[25,1260,1261],{},"--r-lg"," 8px",[72,1264,1265,1268],{},[90,1266,1267],{},"kbd \u002F 작은 요소",[90,1269,1270,1273],{},[25,1271,1272],{},"--r-sm"," 4px",[72,1275,1276,1279],{},[90,1277,1278],{},"Avatar",[90,1280,1281,1284],{},[25,1282,1283],{},"--r-full"," 9999px",[493,1286,1288,1289],{"id":1287},"_43-elevation-카드에-그림자-금지","4.3 Elevation — ",[20,1290,1291],{},"카드에 그림자 금지",[1012,1293,1296],{"className":1294,"code":1295,"language":1017},[1015],"--shadow-soft:    0 1px 2px rgba(0,0,0,.04)    \u002F* tooltip, segmented thumb *\u002F\n--shadow-popover: 0 4px 12px rgba(0,0,0,.08)   \u002F* dropdown, popover, toast *\u002F\n--shadow-modal:   0 12px 32px rgba(0,0,0,.12)  \u002F* modal *\u002F\n",[25,1297,1295],{"__ignoreMap":1020},[17,1299,1300,1301,1304],{},"카드·섹션은 항상 ",[25,1302,1303],{},"1px solid var(--line)"," hairline으로 분리. 그림자는 floating UI 전용.",[58,1306],{},[61,1308,1310],{"id":1309},"_5-레이아웃","5. 레이아웃",[493,1312,1314],{"id":1313},"_51-app-shell","5.1 App Shell",[1012,1316,1319],{"className":1317,"code":1318,"language":1017},[1015],"┌────────────────────────────────────────────────────┐\n│ Topbar (56px, sticky, bg-white\u002F80 backdrop-blur, ─b)│\n├────────────────────────────────────────────────────┤\n│ Content  (max-w 1400px · px-32 · py-32)            │\n└────────────────────────────────────────────────────┘\n",[25,1320,1318],{"__ignoreMap":1020},[1022,1322,1323,1337,1340],{},[1025,1324,1325,1326,96,1329,1332,1333,1336],{},"Topbar: 56px, sticky, ",[25,1327,1328],{},"rgba(255,255,255,.8)",[25,1330,1331],{},"backdrop-blur(8px)",", 하단 1px line. ",[20,1334,1335],{},"단일 행"," GNB(유틸바 없음, 시안의 2단 GNB 폐기).",[1025,1338,1339],{},"Content: max 1400px, 좌우 32px, 상하 32px.",[1025,1341,1342],{},"모바일(\u003C1024px): GNB 메뉴 숨김 → 햄버거 + 좌측 Drawer(280px).",[493,1344,1346,1347,100],{"id":1345},"_52-2-column-content-2col","5.2 2-Column (",[25,1348,1349],{},".content-2col",[17,1351,1352,1355],{},[25,1353,1354],{},"minmax(0,1fr) \u002F 320px",", gap 24px. \u003C1024px에서 1단 (aside가 위로).",[493,1357,1359],{"id":1358},"_53-density-spacious-linearvercel","5.3 Density (Spacious — Linear\u002FVercel)",[17,1361,1362,1363,1366,1367,1370],{},"테이블 row ~52px(",[25,1364,1365],{},"py-3",") · Nav item 32px · Button 28\u002F32\u002F36 (sm\u002Fmd\u002Flg) · Input 36px(",[25,1368,1369],{},"h-9",").",[493,1372,1374],{"id":1373},"_54-페이지-레이아웃-타입-a-b-c","5.4 페이지 레이아웃 타입 (A · B · C)",[17,1376,1377,1378,1381,1382,1385],{},"화면의 골격(헤더 · 내비게이션 · 콘텐츠 구성)을 ",[20,1379,1380],{},"3가지 페이지 레이아웃 타입","으로 정의한다. 새 화면은 셋 중 하나를 따른다. (§6.5의 \"테이블 스타일 A\u002FB\u002FC\"와는 ",[20,1383,1384],{},"별개 축"," — 이쪽은 페이지 전체 골격, 그쪽은 목록 테이블 패턴.)",[1387,1388,1390],"h4",{"id":1389},"a-페이지-표준-페이지","A 페이지 — 표준 페이지",[17,1392,1393,1394,1397,1398,1401,1402,1405,1406,1409],{},"전체 GNB + ",[25,1395,1396],{},".page-header","(크럼 + ",[25,1399,1400],{},"\u003Ch1>"," + 선택 설명) + ",[20,1403,1404],{},"단일 콘텐츠 열",". 앱 화면 대부분이 이 타입. ",[25,1407,1408],{},"default"," 레이아웃.",[1012,1411,1414],{"className":1412,"code":1413,"language":1017},[1015],"┌────────────────────────────────────┐\n│ GNB (전체 메뉴 · 문의 · 충전 · 계정)│\n├────────────────────────────────────┤\n│ crumb \u002F h1 \u002F desc                  │\n│ ┌────────────────────────────────┐ │\n│ │ 콘텐츠 (단일 열)               │ │\n│ └────────────────────────────────┘ │\n└────────────────────────────────────┘\n",[25,1415,1413],{"__ignoreMap":1020},[1022,1417,1418,1425],{},[1025,1419,1420,1421,1424],{},"콘텐츠: ",[25,1422,1423],{},".app-container .page-body"," 단일 열.",[1025,1426,1427],{},"레퍼런스: 발송 · 조회 · 메시지 관리 · 사이트맵 등 대부분.",[1387,1429,1431],{"id":1430},"b-페이지-좌측-메뉴-페이지-lnb","B 페이지 — 좌측 메뉴 페이지 (LNB)",[17,1433,1393,1434,1437,1438,1440],{},[20,1435,1436],{},"2단 구성","(좌측 sticky 서브메뉴 + 우측 콘텐츠 패널). 하위 항목이 여러 개인 페이지 그룹에 쓴다. ",[25,1439,1408],{}," 레이아웃 + 공용 셸 컴포넌트.",[1012,1442,1445],{"className":1443,"code":1444,"language":1017},[1015],"┌────────────────────────────────────┐\n│ GNB (전체 메뉴 · 문의 · 충전 · 계정)│\n├────────────────────────────────────┤\n│ crumb \u002F h1 (그룹명)                │\n│ ┌────────┬───────────────────────┐ │\n│ │ 서브   │ 콘텐츠 패널           │ │\n│ │ 메뉴   │ (흰 카드 · 1px 보더)  │ │\n│ │(220px) │                       │ │\n│ └────────┴───────────────────────┘ │\n└────────────────────────────────────┘\n",[25,1446,1444],{"__ignoreMap":1020},[1022,1448,1449,1455],{},[1025,1450,1451,1452,462],{},"좌측: sticky 서브메뉴(220px), 각 항목은 ",[20,1453,1454],{},"독립 라우트",[1025,1456,1457,1458,212,1462,1370],{},"레퍼런스: 나의 페이지 (",[41,1459,1461],{"href":1460},"..\u002Fapp\u002Fcomponents\u002FAppMyPageShell.vue","AppMyPageShell.vue",[25,1463,1464],{},"\u002Faccount\u002F*",[1387,1466,1468],{"id":1467},"c-페이지-독립-페이지-standalone","C 페이지 — 독립 페이지 (Standalone)",[17,1470,1471,1472,1475,1476,1409],{},"앱 GNB 없이 ",[20,1473,1474],{},"로고만 있는 sticky 상단 바"," + 콘텐츠 + 간단 푸터. 새 창으로 띄워 단독으로 보는 참고 · 문서 화면. ",[25,1477,1478],{},"blank",[1012,1480,1483],{"className":1481,"code":1482,"language":1017},[1015],"┌────────────────────────────────────┐\n│ 로고만 (56px, sticky · GNB 없음)    │\n├────────────────────────────────────┤\n│ ┌────────────────────────────────┐ │\n│ │ 콘텐츠 (자체 헤더 · 푸터)       │ │\n│ └────────────────────────────────┘ │\n└────────────────────────────────────┘\n",[25,1484,1482],{"__ignoreMap":1020},[1022,1486,1487,1490,1500],{},[1025,1488,1489],{},"상단: 로고 전용 바, GNB · 계정 메뉴 없음. 헤더 · 푸터를 페이지가 직접 구성.",[1025,1491,1492,1495,1496,1499],{},[20,1493,1494],{},"단일 루트로 감싸"," sticky 요소가 페이지 끝까지 고정되게 한다(",[25,1497,1498],{},"#__nuxt"," 높이 100% 제약 회피).",[1025,1501,1502,1503,212,1507,1370],{},"레퍼런스: 운영 가이드 (",[41,1504,1506],{"href":1505},"..\u002Fapp\u002Fpages\u002Fhelp.vue","help.vue",[25,1508,1509],{},"\u002Fhelp",[1387,1511,1513],{"id":1512},"a-b-c-비교","A · B · C 비교",[66,1515,1516,1532],{},[69,1517,1518],{},[72,1519,1520,1522,1526,1529],{},[75,1521],{},[75,1523,1525],{"align":1524},"center","A 페이지",[75,1527,1528],{"align":1524},"B 페이지",[75,1530,1531],{"align":1524},"C 페이지",[85,1533,1534,1547,1559,1577,1590],{},[72,1535,1536,1539,1542,1544],{},[90,1537,1538],{},"전체 GNB",[90,1540,1541],{"align":1524},"✅",[90,1543,1541],{"align":1524},[90,1545,1546],{"align":1524},"❌ (로고만)",[72,1548,1549,1552,1555,1557],{},[90,1550,1551],{},"좌측 서브메뉴",[90,1553,1554],{"align":1524},"❌",[90,1556,1541],{"align":1524},[90,1558,1554],{"align":1524},[72,1560,1561,1564,1568,1573],{},[90,1562,1563],{},"레이아웃",[90,1565,1566],{"align":1524},[25,1567,1408],{},[90,1569,1570,1572],{"align":1524},[25,1571,1408],{}," + 셸",[90,1574,1575],{"align":1524},[25,1576,1478],{},[72,1578,1579,1581,1584,1587],{},[90,1580,564],{},[90,1582,1583],{"align":1524},"일반 화면",[90,1585,1586],{"align":1524},"하위 메뉴가 많은 그룹",[90,1588,1589],{"align":1524},"단독 참고 · 문서",[72,1591,1592,1595,1598,1603],{},[90,1593,1594],{},"레퍼런스",[90,1596,1597],{"align":1524},"대부분 화면",[90,1599,1600],{"align":1524},[25,1601,1602],{},"AppMyPageShell",[90,1604,1605],{"align":1524},[25,1606,1509],{},[14,1608,1609],{},[17,1610,1611,1612,1614],{},"인증(로그인 · 회원가입 · 서비스 담당자 등록)과 비로그인 랜딩(",[25,1613,118],{},")은 별도 — 중앙 정렬 카드 \u002F 마케팅 레이아웃으로, A · B · C 분류에 포함하지 않는다.",[58,1616],{},[61,1618,1620],{"id":1619},"_6-컴포넌트-패턴","6. 컴포넌트 패턴",[14,1622,1623],{},[17,1624,1625,1627,1628,462],{},[25,1626,355],{}," 컴포넌트는 아래 클래스\u002F토큰을 직접 사용한다(적용 완료). 클래스 정본 = ",[41,1629,531],{"href":108},[493,1631,1633,1634,100],{"id":1632},"_61-버튼-btn","6.1 버튼 (",[25,1635,121],{},[66,1637,1638,1650],{},[69,1639,1640],{},[72,1641,1642,1645,1647],{},[75,1643,1644],{},"변형",[75,1646,564],{},[75,1648,1649],{},"시각",[85,1651,1652,1667,1686,1708,1727,1742],{},[72,1653,1654,1659,1662],{},[90,1655,1656],{},[25,1657,1658],{},".btn-primary",[90,1660,1661],{},"기본 액션(저장\u002F발송)",[90,1663,1664,1666],{},[25,1665,1190],{}," BG \u002F 흰 텍스트",[72,1668,1669,1674,1677],{},[90,1670,1671],{},[25,1672,1673],{},".btn-accent",[90,1675,1676],{},"AI \u002F Primary CTA (페이지 ≤1)",[90,1678,1679,1682,1683,1685],{},[25,1680,1681],{},"accent"," BG \u002F ",[25,1684,1190],{}," 텍스트",[72,1687,1688,1699,1702],{},[90,1689,1690,294,1693,294,1696],{},[25,1691,1692],{},".btn-soft",[25,1694,1695],{},".btn-outline",[25,1697,1698],{},".btn-neutral",[90,1700,1701],{},"보조\u002F취소",[90,1703,1704,1705,1707],{},"흰 BG \u002F ",[25,1706,871],{}," 보더",[72,1709,1710,1715,1718],{},[90,1711,1712],{},[25,1713,1714],{},".btn-error",[90,1716,1717],{},"위험(삭제)",[90,1719,1704,1720,1723,1724],{},[25,1721,1722],{},"danger-line"," 보더 \u002F ",[25,1725,1726],{},"danger-ink",[72,1728,1729,1734,1737],{},[90,1730,1731],{},[25,1732,1733],{},".btn-error-solid",[90,1735,1736],{},"강한 위험 확정",[90,1738,1739,1666],{},[25,1740,1741],{},"danger",[72,1743,1744,1749,1752],{},[90,1745,1746],{},[25,1747,1748],{},".btn-ghost",[90,1750,1751],{},"아이콘·메뉴 진입",[90,1753,1754,1755],{},"투명 → hover ",[25,1756,1757],{},"ink-50",[17,1759,1760,1761,1764,1765,1768,1769,1772,1773,1776],{},"크기 ",[25,1762,1763],{},".btn-sm","(28) \u002F 기본(32) \u002F ",[25,1766,1767],{},".btn-lg","(36) · ",[25,1770,1771],{},".btn-icon"," 정사각.\nNuxt UI 대응: ",[25,1774,1775],{},"UButton color=\"neutral\"","(기본=ink), AI\u002FCTA만 별도 accent 처리.",[493,1778,1780,1781,100],{"id":1779},"_62-카드-card","6.2 카드 (",[25,1782,117],{},[17,1784,1785,1786,96,1789,1203,1792,1795,1796,1799,1800,1803,1804],{},"흰 BG + ",[25,1787,1788],{},"1px line",[25,1790,1791],{},"r-lg",[25,1793,1794],{},".card-header","(step + title + required + hint) \u002F ",[25,1797,1798],{},".card-body","(20px). 잠금 시 ",[25,1801,1802],{},".card-body.locked","(중앙 안내). ",[20,1805,1806],{},"그림자·그라데이션 없음.",[493,1808,1810,1811,100],{"id":1809},"_63-폼-form-row","6.3 폼 (",[25,1812,1813],{},".form-row",[17,1815,1816,1819,1820,212,1823,1826,1827,1830,1831,1833,1834,1837,1838,1840,1841,1844,1845,1844,1848,1851],{},[25,1817,1818],{},"label 120px \u002F field 1fr"," 그리드, row 사이 1px line. 입력은 ",[25,1821,1822],{},".input\u002F.select\u002F.textarea",[25,1824,1825],{},"paper"," BG, focus 시 ",[25,1828,1829],{},"white"," BG + ",[25,1832,518],{}," border(outline 없음). 필수 ",[25,1835,1836],{},"*","는 ",[25,1839,1741],{},". 에러는 인풋 아래 빨간 텍스트. Nuxt UI: ",[25,1842,1843],{},"UForm","+",[25,1846,1847],{},"UFormField",[25,1849,1850],{},"UInput","+Zod.",[493,1853,1855],{"id":1854},"_64-모달-drawer","6.4 모달 \u002F Drawer",[17,1857,1858,1861,1862,1866,1867,1869,1870,1873,1874,1877,1878,1880,1881,118,1884,1887,1888,1891],{},[25,1859,1860],{},".modal","(r-lg, shadow-modal, slideUp 180ms) — header\u002Fbody\u002Ffooter. footer 확인 버튼은 ",[20,1863,1864],{},[25,1865,1658],{},"(",[25,1868,1190],{},") — 구 ",[25,1871,1872],{},".btn-sky"," 별칭은 폐기·제거됨. 모바일 메뉴는 좌측 ",[25,1875,1876],{},".drawer","(280px, slideRight). 팝업·다이얼로그는 모두 자체 ",[25,1879,234],{}," 기반(",[25,1882,1883],{},"AppConfirmDialog",[25,1885,1886],{},"App*Dialog",") — ",[25,1889,1890],{},"USlideover","는 사용하지 않으며 모바일 GNB 드로어에만 한정.",[493,1893,1895,1896,100],{"id":1894},"_65-테이블-table","6.5 테이블 (",[25,1897,124],{},[17,1899,1900,1901,1904,1905,1908,1909,1911,1912,1915,1916,462],{},"헤더: 투명 BG, ",[25,1902,1903],{},"10px mono UPPERCASE ink-400",", 하단 1px line. row: ",[25,1906,1907],{},"td 14px",", row 사이 1px line, hover ",[25,1910,1825],{},", 선택 ",[25,1913,1914],{},"accent-soft",". 숫자 셀 ",[25,1917,1918],{},".cell-mono",[1387,1920,1922],{"id":1921},"a-테이블-스타일-조회관리-목록-표준","A 테이블 스타일 — 조회·관리 목록 표준",[17,1924,1925,1926,1929,1930,1934,1935,1938,1939,1942],{},"발송 조회·이력·관리 등 ",[20,1927,1928],{},"목록 화면의 정본 테이블 패턴",". 레퍼런스 구현 = ",[41,1931,1933],{"href":1932},"..\u002Fapp\u002Fcomponents\u002FAppHistoryView.vue","AppHistoryView.vue","(발송 조회 5채널 공용), 테이블 요소에 ",[25,1936,1937],{},"data-table-style=\"a\"","로 명시. 화면은 항상 ",[20,1940,1941],{},"3개 영역","으로 구성된다 — ⓐ 검색(필터) 영역 → ⓑ 액션 영역 → ⓒ 테이블 본체.",[1012,1944,1947],{"className":1945,"code":1946,"language":1017},[1015],"ⓐ .filter-bar              검색(필터) 영역 — 독립 카드, 테이블 카드 \"위\"\n─────────────────────────────────────────────────────────\nⓑⓒ .list-card              흰 카드 · 1px line · r-lg · overflow hidden\n   ├─ ⓑ .list-toolbar       액션 영역 — 카드 \"안\" 최상단 (border-bottom 1px)\n   ├─ ⓒ .list-table-scroll  table.table.list-table (가로 스크롤)\n   └─    페이지네이션         카드 하단\n",[25,1948,1946],{"__ignoreMap":1020},[1950,1951,1953,1954],"h5",{"id":1952},"ⓐ-상단-검색필터-영역-filter-bar","ⓐ 상단 검색(필터) 영역 — ",[25,1955,1956],{},".filter-bar",[17,1958,1959,1960,1963,1964,1966,1967,1970],{},"목록 화면 최상단의 ",[20,1961,1962],{},"독립 카드","(흰 BG · 1px line · ",[25,1965,1791],{}," · padding 12 · ",[25,1968,1969],{},"margin-bottom 16","). 테이블 카드와 분리된 별개 블록이다.",[1022,1972,1973,1979,2046],{},[1025,1974,1975,1976,462],{},"레이아웃: ",[25,1977,1978],{},"display:flex; gap:8; flex-wrap:wrap; align-items:center",[1025,1980,1981,1982,1985,1986,1985,1989,32,1992],{},"좌 → 우 순서: ",[20,1983,1984],{},"필터 셀렉트들"," → ",[20,1987,1988],{},"날짜 범위",[20,1990,1991],{},"액션 버튼",[1022,1993,1994,2001,2020],{},[1025,1995,1996,1997,2000],{},"필터 셀렉트(",[25,1998,1999],{},".select.fb-select",", 폭 120px) — 채널\u002F상태\u002F시점\u002F목적 등. 첫 옵션은 항목명 placeholder.",[1025,2002,2003,2004,1887,2007,2010,2011,1866,2014,2017,2018,462],{},"날짜 범위(",[25,2005,2006],{},".fb-daterange",[25,2008,2009],{},"AppDateTimePicker","(시·분 표시, width 190) + ",[25,2012,2013],{},"~",[25,2015,2016],{},".fb-tilde",") + ",[25,2019,2009],{},[1025,2021,2022,2023,231,2026,2029,2030,1866,2033,2017,2036,1866,2039,96,2042,2045],{},"액션(",[25,2024,2025],{},".fb-actions",[25,2027,2028],{},"margin-left:auto","로 우측 정렬) — ",[25,2031,2032],{},"초기화",[25,2034,2035],{},".btn-neutral .btn-sm",[25,2037,2038],{},"검색하기",[25,2040,2041],{},".btn-primary .btn-sm",[25,2043,2044],{},"i-lucide-search"," 아이콘).",[1025,2047,2048,2049,2052],{},"검색 버튼 라벨은 ",[20,2050,2051],{},"\"검색하기\"","(아이콘 포함)로 통일. \"조회\" 금지.",[1950,2054,2056,2057],{"id":2055},"ⓑ-테이블-상단-액션-영역-list-toolbar","ⓑ 테이블 상단 액션 영역 — ",[25,2058,2059],{},".list-toolbar",[17,2061,2062,532,2065,2068,2069,2072,2073,231,2076,2079],{},[25,2063,2064],{},".list-card",[20,2066,2067],{},"내부 최상단"," 행(",[25,2070,2071],{},"border-bottom: 1px",", padding ",[25,2074,2075],{},"10 12",[25,2077,2078],{},"display:flex; justify-content:space-between","). 좌·우 2그룹.",[1022,2081,2082,2093,2118],{},[1025,2083,2084,23,2087,1866,2090,1370],{},[20,2085,2086],{},"좌측",[25,2088,2089],{},"총 N건",[25,2091,2092],{},".toolbar-count",[1025,2094,2095,23,2098,177,2101,177,2104,2107,2108,177,2111,2114,2115,462],{},[20,2096,2097],{},"우측",[25,2099,2100],{},"목록 다운로드 요청",[25,2102,2103],{},"다운로드 요청 목록",[25,2105,2106],{},"조회 필드 추가","(다중선택 드롭다운) · ",[25,2109,2110],{},"일괄 취소",[25,2112,2113],{},"선택 취소"," 순. 모두 ",[25,2116,2117],{},".btn-outline .btn-sm",[1025,2119,2120,2121,2124],{},"필터 영역(ⓐ)과 액션 영역(ⓑ)은 ",[20,2122,2123],{},"반드시 분리"," — 검색 조건은 카드 위, 목록 조작은 카드 안.",[1950,2126,2128],{"id":2127},"ⓒ-테이블-본체","ⓒ 테이블 본체",[17,2130,2131,1866,2134,2137,2138,2141,2142,2144,2145,2148,2149,2152,2153,2156],{},[25,2132,2133],{},".list-table-scroll",[25,2135,2136],{},"overflow-x:auto",") > ",[25,2139,2140],{},"table.table.list-table","(기본 ",[25,2143,124],{}," + 셀 ",[25,2146,2147],{},"nowrap","). 1열 체크박스 · ID는 mono ",[25,2150,2151],{},"accent-ink"," 링크 · 상태는 dot 배지 · 채널은 ",[25,2154,2155],{},".ch-pill",". 페이지네이션은 카드 하단.",[14,2158,2159],{},[17,2160,2161],{},"검색 조건이 필요한 목록 화면은 ⓐⓑⓒ 3영역 구조를 그대로 따른다.",[1387,2163,2165],{"id":2164},"b-테이블-스타일-검색-없는-단순-목록","B 테이블 스타일 — 검색 없는 단순 목록",[17,2167,2168,2171,2172,2174,2175,2179,2180,2183],{},[20,2169,2170],{},"검색(필터) 영역이 없는"," 가장 단순한 목록 패턴. A 테이블에서 ⓐ ",[25,2173,1956],{},"를 뺀 형태 — ⓑ 액션 영역 + ⓒ 테이블 본체만. 항목 수가 적고 검색이 불필요한 관리 화면(발신 번호·발신 프로필 등)에 쓴다. 레퍼런스 = ",[41,2176,2178],{"href":2177},"..\u002Fapp\u002Fpages\u002Fsender\u002Fnumbers.vue","sender\u002Fnumbers.vue",", 테이블 요소에 ",[25,2181,2182],{},"data-table-style=\"b\"","로 명시.",[1012,2185,2188],{"className":2186,"code":2187,"language":1017},[1015],"ⓑⓒ .list-card              흰 카드 · 1px line · r-lg · overflow hidden\n   ├─ ⓑ .list-toolbar       액션 영역 — 카드 \"안\" 최상단 (border-bottom 1px)\n   │     좌: 총 N개   \u002F   우: 페이지별 액션 버튼\n   └─ ⓒ table.table         테이블 본체 (가로 스크롤 필요 시 .list-table)\n",[25,2189,2187],{"__ignoreMap":1020},[1022,2191,2192,2195,2209],{},[1025,2193,2194],{},"ⓑ 액션 영역 구성·문구는 A와 동일.",[1025,2196,2197,2198,294,2201,2204,2205,2208],{},"우측 버튼은 화면 목적에 따라 다름(예: ",[25,2199,2200],{},"발신 번호 등록 안내",[25,2202,2203],{},"선택 삭제","). 페이지 상단 우측에는 별도 등록 CTA(",[25,2206,2207],{},"발신 번호 등록"," 등)를 둘 수 있다.",[1025,2210,2211,2212,2215,2216,1866,2219,2221],{},"검색이 필요하면 → 단일 검색어면 ",[20,2213,2214],{},"C 테이블","(액션 영역에 검색란), 다중 조건이면 ",[20,2217,2218],{},"A 테이블",[25,2220,1956],{},")로 승격한다.",[1387,2223,2225],{"id":2224},"c-테이블-스타일-액션-영역-인라인-검색","C 테이블 스타일 — 액션 영역 인라인 검색",[17,2227,2228,2229,2232,2233,2179,2237,2183],{},"별도 필터 영역 없이, ",[20,2230,2231],{},"ⓑ 액션 영역 안에 검색란 하나","를 둔 패턴. B 테이블에 단일 검색 입력을 더한 형태 — 다중 조건 필터까지는 필요 없지만 이름·도메인 등 한 가지로 찾고 싶을 때 쓴다. 레퍼런스 = ",[41,2234,2236],{"href":2235},"..\u002Fapp\u002Fpages\u002Fsender\u002Fdomains.vue","sender\u002Fdomains.vue",[25,2238,2239],{},"data-table-style=\"c\"",[1012,2241,2244],{"className":2242,"code":2243,"language":1017},[1015],"ⓑⓒ .list-card              흰 카드 · 1px line · r-lg · overflow hidden\n   ├─ ⓑ .list-toolbar       액션 영역 — 카드 \"안\" 최상단 (border-bottom 1px)\n   │     좌: 총 N개 · 검색란   \u002F   우: 페이지별 액션 버튼\n   └─ ⓒ table.table         테이블 본체 (가로 스크롤 필요 시 .list-table)\n",[25,2245,2243],{"__ignoreMap":1020},[1022,2247,2248,2265],{},[1025,2249,2250,2251,2254,2255,2258,2259,2261,2262,462],{},"검색란은 좌측 그룹의 ",[25,2252,2253],{},"총 N개"," 다음에 둔다. ",[20,2256,2257],{},"너비 260px 고정",", 돋보기 아이콘은 입력칸 오른쪽, 높이는 ",[25,2260,1763],{},"과 동일한 ",[20,2263,2264],{},"28px",[1025,2266,2267],{},"액션 영역 좌\u002F우 구성·문구는 A·B와 동일.",[1387,2269,1513],{"id":2270},"a-b-c-비교-1",[66,2272,2273,2286],{},[69,2274,2275],{},[72,2276,2277,2279,2281,2284],{},[75,2278],{},[75,2280,2218],{"align":1524},[75,2282,2283],{"align":1524},"B 테이블",[75,2285,2214],{"align":1524},[85,2287,2288,2301,2314,2326,2336,2349],{},[72,2289,2290,2295,2297,2299],{},[90,2291,2292,2293,100],{},"ⓐ 별도 검색(필터) 영역 (",[25,2294,1956],{},[90,2296,1541],{"align":1524},[90,2298,1554],{"align":1524},[90,2300,1554],{"align":1524},[72,2302,2303,2308,2310,2312],{},[90,2304,2305,2306,100],{},"ⓑ 액션 영역 (",[25,2307,2059],{},[90,2309,1541],{"align":1524},[90,2311,1541],{"align":1524},[90,2313,1541],{"align":1524},[72,2315,2316,2319,2322,2324],{},[90,2317,2318],{},"액션 영역 내 검색란",[90,2320,2321],{"align":1524},"—",[90,2323,1554],{"align":1524},[90,2325,1541],{"align":1524},[72,2327,2328,2330,2332,2334],{},[90,2329,2128],{},[90,2331,1541],{"align":1524},[90,2333,1541],{"align":1524},[90,2335,1541],{"align":1524},[72,2337,2338,2340,2343,2346],{},[90,2339,564],{},[90,2341,2342],{"align":1524},"다중 조건 검색 필수 목록(조회·이력)",[90,2344,2345],{"align":1524},"검색 불필요 소규모 목록",[90,2347,2348],{"align":1524},"단일 검색어 목록",[72,2350,2351,2353,2357,2362],{},[90,2352,1594],{},[90,2354,2355],{"align":1524},[25,2356,313],{},[90,2358,2359],{"align":1524},[25,2360,2361],{},"sender\u002Fnumbers",[90,2363,2364],{"align":1524},[25,2365,2366],{},"sender\u002Fdomains",[493,2368,2370],{"id":2369},"_66-badge-channel-pill","6.6 Badge \u002F Channel pill",[17,2372,2373,2376,2377,2379],{},[25,2374,2375],{},".badge-*"," 6톤(success\u002Fwarning\u002Ferror\u002Fprimary=info\u002Fsky=info\u002Fneutral), h-20, soft BG + line border. 채널은 ",[25,2378,2155],{},"(mono 코드 + 6px 컬러 도트) — 색에만 의존 금지, 항상 라벨 동반.",[493,2381,2383],{"id":2382},"_67-empty-toast","6.7 Empty \u002F Toast",[17,2385,2386,2389,2390,2393,2394,2397,2398,462],{},[25,2387,2388],{},".empty"," — 40px 아이콘 박스(line border) + h3(ink-900) + p(ink-500) + 1차 액션. ",[25,2391,2392],{},".toast"," — 우측 하단 stack, 흰 BG + line + shadow-popover, 4톤 아이콘색, ",[25,2395,2396],{},"aria-live",". Nuxt UI: ",[25,2399,2400],{},"useToast()",[493,2402,2404],{"id":2403},"_68-채널-미리보기","6.8 채널 미리보기",[17,2406,2407,2410,2411,2414,2415,2418,2419,2422,2423,2426,2427,2430],{},[25,2408,2409],{},".imsg","(iMessage) · ",[25,2412,2413],{},".kakao","(노란 리본+변수 pill) · ",[25,2416,2417],{},".rcs","(ink-900 verified+이미지+버튼) · ",[25,2420,2421],{},".email-preview","(subject\u002Fmeta\u002Fbody) · ",[25,2424,2425],{},".push-lock","(다크 잠금화면+frosted notif). 폰 셸 280×520, ",[25,2428,2429],{},"r-20",", shadow-soft.",[58,2432],{},[61,2434,2436],{"id":2435},"_7-ai-ux-패턴-이-시스템의-차별점","7. AI UX 패턴 (이 시스템의 차별점)",[17,2438,2439],{},"다음 4가지만 사용:",[2441,2442,2443,2456,2464,2470],"ol",{},[1025,2444,2445,2448,2449,2452,2453,2455],{},[20,2446,2447],{},"AI 라벨링"," — 텍스트 좌측 ",[25,2450,2451],{},"Sparkles size=12"," (",[25,2454,2151],{},"). 별도 컬러 박스 없음.",[1025,2457,2458,212,2461,2463],{},[20,2459,2460],{},"AI 요약 카드",[25,2462,1190],{}," BG + accent Sparkles 박스 + \"생성시간·모델·데이터범위\" 메타 + 재생성 버튼 상시.",[1025,2465,2466,2469],{},[20,2467,2468],{},"AI 추천 액션"," — 칩(라벨 + 작은 hint + hover 화살표 translate). 클릭 시 즉시 적용\u002F미리보기(블랙박스 금지).",[1025,2471,2472,212,2475,2478,2479,2482,2483],{},[20,2473,2474],{},"AI 생성 중",[25,2476,2477],{},".ai-shimmer","(그린 좌→우 그라데이션 클립)만. 스피너는 ",[25,2480,2481],{},"animate-spin","만. ",[20,2484,2485],{},"무지개·보라 금지.",[58,2487],{},[61,2489,2491],{"id":2490},"_8-모션","8. 모션",[66,2493,2494,2509],{},[69,2495,2496],{},[72,2497,2498,2500,2503,2506],{},[75,2499,83],{},[75,2501,2502],{},"속성",[75,2504,2505],{},"시간",[75,2507,2508],{},"easing",[85,2510,2511,2525,2537,2551,2564],{},[72,2512,2513,2516,2519,2522],{},[90,2514,2515],{},"사이드바 접기",[90,2517,2518],{},"width",[90,2520,2521],{},"300ms",[90,2523,2524],{},"ease-out",[72,2526,2527,2530,2532,2535],{},[90,2528,2529],{},"hover (bg\u002Fcolor\u002Fborder)",[90,2531,2321],{},[90,2533,2534],{},"150ms",[90,2536,1408],{},[72,2538,2539,2542,2545,2548],{},[90,2540,2541],{},"상태 도트(live)",[90,2543,2544],{},"opacity\u002Fscale",[90,2546,2547],{},"1.6s ∞",[90,2549,2550],{},"ease-in-out",[72,2552,2553,2556,2559,2562],{},[90,2554,2555],{},"AI shimmer",[90,2557,2558],{},"background-position",[90,2560,2561],{},"3.5s linear ∞",[90,2563,2321],{},[72,2565,2566,2569,2572,2575],{},[90,2567,2568],{},"Modal in",[90,2570,2571],{},"translateY(6px)→0 + opacity",[90,2573,2574],{},"180ms",[90,2576,2577],{},"ease",[17,2579,2580,2583,2584,2588,2589,2592],{},[20,2581,2582],{},"금지"," — 카드 scale hover, 그림자 점프, fade-in 진입. 모션은 항상 ",[2585,2586,2587],"em",{},"상태 변화의 결과",". 무한 애니메이션은 ",[25,2590,2591],{},"prefers-reduced-motion","에서 비활성(main.css에 반영됨).",[58,2594],{},[61,2596,2598],{"id":2597},"_9-접근성","9. 접근성",[1022,2600,2601,2615,2622,2625,2635],{},[1025,2602,2603,2604,2607,2608,2611,2612,2614],{},"최소 대비: ",[25,2605,2606],{},"ink-500 on white","(4.5:1) 이상. ",[25,2609,2610],{},"ink-400","은 14px+ \u002F ",[25,2613,518],{},"은 16px+(축 라벨)에서만.",[1025,2616,2617,2618,2621],{},"모든 interactive: ",[25,2619,2620],{},"outline:none"," + border-color 변경 또는 ring. focus 항상 가시.",[1025,2623,2624],{},"색에만 의존한 상태 전달 금지 — 라벨 + 도트 동반.",[1025,2626,2627,2628,2631,2632,1042],{},"아이콘 단독 버튼 ",[25,2629,2630],{},"aria-label"," 필수. 이미지 ",[25,2633,2634],{},"alt",[1025,2636,2637,2638,2641],{},"키보드: Tab\u002FEsc\u002FEnter 동작. (",[25,2639,2640],{},"⌘K"," 검색 등 단축키는 도입 시 정의)",[58,2643],{},[61,2645,2647],{"id":2646},"_10-톤-마이크로카피-한국어","10. 톤 & 마이크로카피 (한국어)",[66,2649,2650,2663],{},[69,2651,2652],{},[72,2653,2654,2657,2660],{},[75,2655,2656],{},"항목",[75,2658,2659],{},"가이드",[75,2661,2662],{},"예",[85,2664,2665,2676,2687,2697,2715,2726,2737],{},[72,2666,2667,2670,2673],{},[90,2668,2669],{},"인칭",[90,2671,2672],{},"사용자 시점, 존댓말",[90,2674,2675],{},"\"다시 생성\", \"내보내기\"",[72,2677,2678,2681,2684],{},[90,2679,2680],{},"버튼 길이",[90,2682,2683],{},"6자 이내 권장",[90,2685,2686],{},"\"내보내기\" ✅ \u002F \"리포트를 내보내기\" ❌",[72,2688,2689,2691,2694],{},[90,2690,2505],{},[90,2692,2693],{},"상대 시간 우선",[90,2695,2696],{},"\"방금 전\", \"3분 전\"",[72,2698,2699,2702,2707],{},[90,2700,2701],{},"숫자",[90,2703,2704,2705,100],{},"천단위 콤마, 단위는 작게(",[25,2706,2610],{},[90,2708,2709,177,2712],{},[25,2710,2711],{},"128,472",[25,2713,2714],{},"94.6%",[72,2716,2717,2720,2723],{},[90,2718,2719],{},"AI 호칭",[90,2721,2722],{},"\"AI\"로 통일",[90,2724,2725],{},"\"AI 일일 요약\" (봇\u002F에이전트 ✗)",[72,2727,2728,2731,2734],{},[90,2729,2730],{},"빈 상태",[90,2732,2733],{},"짧은 안내 + 1차 액션",[90,2735,2736],{},"\"아직 발송 이력이 없습니다 · 첫 발송 시작\"",[72,2738,2739,2742,2745],{},[90,2740,2741],{},"위험 액션",[90,2743,2744],{},"사유\u002F한번 더 확인",[90,2746,2747],{},"\"정말 삭제하시겠습니까? 되돌릴 수 없습니다.\"",[58,2749],{},[61,2751,2753],{"id":2752},"_11-데이터-시각화","11. 데이터 시각화",[1022,2755,2756,2774,2787,2800,2810,2813],{},[1025,2757,2758,2759,2761,2762,2764,2765,2768,2769,1203,2771],{},"시리즈 색: 1차 ",[25,2760,1190],{}," \u002F 2차(AI 등) ",[25,2763,1681],{}," \u002F 3차+ ",[25,2766,2767],{},"ink-500",",",[25,2770,518],{},[20,2772,2773],{},"새 색 금지.",[1025,2775,2776,2777,2780,2781,2784,2785,462],{},"음수\u002F감소 ",[25,2778,2779],{},"rose-600",". 단 ",[25,2782,2783],{},"inverse:true"," KPI(감소가 긍정)는 ",[25,2786,1681],{},[1025,2788,2789,2790,2792,2793,2796,2797,462],{},"Gridline ",[25,2791,743],{},", y축 0라인만 실선 나머지 ",[25,2794,2795],{},"2 3"," dash. 축 라벨 ",[25,2798,2799],{},"mono 10px ink-300",[1025,2801,2802,2803,96,2806,2809],{},"Tooltip ",[25,2804,2805],{},"border-line",[25,2807,2808],{},"shadow-sm"," + 11px, 시리즈 도트 1.5×1.5 + tabular 숫자.",[1025,2811,2812],{},"Area fill = 색 22% → 0% 수직 그라데이션.",[1025,2814,2815],{},"차트 라이브러리: Chart.js (STACK 참조).",[58,2817],{},[61,2819,2821],{"id":2820},"_12-발송-페이지-아키텍처-도메인-디자인-전환에도-유지","12. 발송 페이지 아키텍처 (도메인 — 디자인 전환에도 유지)",[14,2823,2824],{},[17,2825,2826,2827,2830],{},"단발 발송 6종(SMS\u002F알림톡\u002FRCS\u002F이메일\u002FPUSH\u002FFlow)의 공통 구조. 2026-05-19~20 작업에서 ",[20,2828,2829],{},"3+1 카드 골격","으로 재배치했다(구 5-카드의 발신\u002F메시지 카드를 통합·재구성).",[493,2832,2834],{"id":2833},"_121-발송-카드-골격-31-카드","12.1 발송 카드 골격 (3+1 카드)",[1012,2836,2839],{"className":2837,"code":2838,"language":1017},[1015],"① 템플릿 선택  (템플릿 사용유무 + 샘플 템플릿 선택)        ← Flow는 \"플로우 선택\"\n② 수신자 설정  (직접 입력·주소록·별칭 클릭 수정·삭제 + 치환자 입력 + 표)\n③ 메시지 설정  (좌: 발신 정보 · 발송 목적\u002F유형 · 본문 \u002F 우: 채널별 폰 미리보기 · AI)\n④ 발송 설정    (즉시 \u002F 예약 발송 + datetime)\n   ──────────  AppSendActionsBar: 초기화 · 발송하기(.btn-primary)\n",[25,2840,2838],{"__ignoreMap":1020},[17,2842,2843,2844,2846,2847,1844,2850,2853,2854,1837,2856,2859,2860,2863,2864,2867,2868,2871],{},"각 카드는 ",[25,2845,117],{},"(header ",[25,2848,2849],{},"title",[25,2851,2852],{},"required","). ",[25,2855,237],{},[25,2857,2858],{},"collapsible","(닫기\u002F열기 토글)·",[25,2861,2862],{},":locked","(점진적 disclosure)를 옵션으로 지원한다. 현재 게이팅은 ",[20,2865,2866],{},"Flow의 메시지 설정","(플로우 미선택 시)에만 적용 — SMS\u002F알림톡 등 다른 채널의 수신자·메시지 카드는 항상 사용 가능. 광고용 발송 선택 시 제목에 ",[25,2869,2870],{},"(광고)","가 자동 부착된다(SMS\u002F이메일\u002FPUSH).",[493,2873,2875],{"id":2874},"_122-채널-차이-매트릭스-요약","12.2 채널 차이 매트릭스 (요약)",[66,2877,2878,2902],{},[69,2879,2880],{},[72,2881,2882,2884,2887,2890,2893,2896,2899],{},[75,2883],{},[75,2885,2886],{"align":1524},"SMS",[75,2888,2889],{"align":1524},"알림톡",[75,2891,2892],{"align":1524},"RCS",[75,2894,2895],{"align":1524},"이메일",[75,2897,2898],{"align":1524},"PUSH",[75,2900,2901],{"align":1524},"Flow",[85,2903,2904,2926,2948,2970,2988,3007,3029],{},[72,2905,2906,2909,2912,2915,2918,2920,2923],{},[90,2907,2908],{},"Sender",[90,2910,2911],{"align":1524},"발신번호",[90,2913,2914],{"align":1524},"발신프로필",[90,2916,2917],{"align":1524},"브랜드+번호",[90,2919,2895],{"align":1524},[90,2921,2922],{"align":1524},"없음",[90,2924,2925],{"align":1524},"플로우",[72,2927,2928,2931,2934,2939,2941,2943,2945],{},[90,2929,2930],{},"Template",[90,2932,2933],{"align":1524},"optional",[90,2935,2936],{"align":1524},[20,2937,2938],{},"필수",[90,2940,2933],{"align":1524},[90,2942,2933],{"align":1524},[90,2944,2933],{"align":1524},[90,2946,2947],{"align":1524},"플로우=템플릿",[72,2949,2950,2953,2956,2959,2961,2964,2967],{},[90,2951,2952],{},"본문",[90,2954,2955],{"align":1524},"textarea",[90,2957,2958],{"align":1524},"변수영역만",[90,2960,2955],{"align":1524},[90,2962,2963],{"align":1524},"HTML",[90,2965,2966],{"align":1524},"input+textarea",[90,2968,2969],{"align":1524},"readonly\u002F노드",[72,2971,2972,2975,2978,2980,2982,2984,2986],{},[90,2973,2974],{},"AI 다듬기",[90,2976,2977],{"align":1524},"✓",[90,2979,2321],{"align":1524},[90,2981,2977],{"align":1524},[90,2983,2977],{"align":1524},[90,2985,2321],{"align":1524},[90,2987,2321],{"align":1524},[72,2989,2990,2993,2996,2999,3001,3003,3005],{},[90,2991,2992],{},"치환자",[90,2994,2995],{"align":1524},"템플릿시",[90,2997,2998],{"align":1524},"개별\u002F공통",[90,3000,2998],{"align":1524},[90,3002,2995],{"align":1524},[90,3004,2321],{"align":1524},[90,3006,2998],{"align":1524},[72,3008,3009,3012,3015,3018,3020,3023,3026],{},[90,3010,3011],{},"미리보기",[90,3013,3014],{"align":1524},"iMessage",[90,3016,3017],{"align":1524},"카카오",[90,3019,2892],{"align":1524},[90,3021,3022],{"align":1524},"이메일카드",[90,3024,3025],{"align":1524},"잠금화면",[90,3027,3028],{"align":1524},"선택노드",[72,3030,3031,3034,3037,3040,3043,3046,3049],{},[90,3032,3033],{},"단가",[90,3035,3036],{"align":1524},"9.9",[90,3038,3039],{"align":1524},"8.0",[90,3041,3042],{"align":1524},"12.0",[90,3044,3045],{"align":1524},"0.65",[90,3047,3048],{"align":1524},"0.0",[90,3050,3051],{"align":1524},"노드 합산",[17,3053,3054,3055,1866,3058,3061],{},"채널 차이는 단일 ",[25,3056,3057],{},"ChannelMeta",[25,3059,3060],{},"types\u002Fchannel.ts",") 객체로 표현하고 페이지\u002F컴포넌트가 분기 — 상세 타입 정의는 git 이력의 이전 DESIGN.md(커밋 ae40b0b 이전) 참조, 신규 컴포넌트 작업 시 재정리한다.",[493,3063,3065],{"id":3064},"_123-핵심-컴포넌트","12.3 핵심 컴포넌트",[17,3067,3068,212,3071,3073,3074,3076,3077,118,3079,3081,3082,3084,3085,3088,3089,3092,3093,177,3096,3099],{},[20,3069,3070],{},"공용 골격",[25,3072,237],{},"(=",[25,3075,117],{}," 래퍼, ",[25,3078,2858],{},[25,3080,2862],{},") · ",[25,3083,240],{},"(직접\u002F주소록\u002F별칭클릭 수정\u002F삭제 + 치환자 + 표, ",[25,3086,3087],{},"keyColumns"," 다중 키 지원) · ",[25,3090,3091],{},"AppSendOptionsCard","(즉시\u002F예약) · ",[25,3094,3095],{},"AppSendActionsBar",[25,3097,3098],{},"AppSendConfirmDialog","(비용 3셀).",[17,3101,3102,212,3105,3108,3109,3081,3111,3114,3115,3118],{},[20,3103,3104],{},"수신자 입력",[25,3106,3107],{},"AppRecipientFormDialog","(휴대폰\u002F이메일 다중 ",[25,3110,3087],{},[25,3112,3113],{},"AppAddressBookDialog","(개별\u002F그룹, 다중 키 컬럼) · ",[25,3116,3117],{},"AppPushRecipientDialog","(PUSH 전용, 별칭+토큰 다중+푸시 유형).",[17,3120,3121,212,3123,3126,3127,177,3129,177,3131,3133,3134,1866,3136,1370],{},[20,3122,3011],{},[25,3124,3125],{},"AppPhonePreview","(iMessage, 첨부 이미지) · ",[25,3128,261],{},[25,3130,264],{},[25,3132,267],{},"(다이얼로그·발송 페이지 공용) · ",[25,3135,270],{},[25,3137,3138],{},"platform: 'android'|'ios'",[17,3140,3141,212,3144,3146,3147,177,3149,177,3152,177,3155,462],{},[20,3142,3143],{},"템플릿 다이얼로그",[25,3145,243],{},"(카드 그리드) · ",[25,3148,276],{},[25,3150,3151],{},"AppRcsTemplateDialog",[25,3153,3154],{},"AppEmailTemplateDialog",[25,3156,3157],{},"AppPushTemplateDialog",[17,3159,3160,212,3163,177,3166,3169,3170,118,3172,118,3175,118,3178,3181,3182,462],{},[20,3161,3162],{},"PUSH 부가 항목",[25,3164,3165],{},"AppPushButtonDialog",[25,3167,3168],{},"AppPushMediaDialog","(미디어\u002FAndroid 미디어\u002FiOS 미디어\u002FAndroid 큰 아이콘을 ",[25,3171,2849],{},[25,3173,3174],{},"showType",[25,3176,3177],{},"showExpand",[25,3179,3180],{},"types"," prop으로 분기) · ",[25,3183,3184],{},"AppPushGroupDialog",[17,3186,3187,212,3190,3193,3194,3197,3198,3201],{},[20,3188,3189],{},"복합 플로우",[25,3191,3192],{},"AppFlowManageDialog","(목록·이름 클릭 수정) · ",[25,3195,3196],{},"AppFlowCreateDialog","(등록·수정 겸용, 드래그 순서) · ",[25,3199,3200],{},"AppFlowTemplatePickerDialog","(채널별 템플릿).",[17,3203,3204,212,3207,3210,3211,1866,3213,3216,3217,462],{},[20,3205,3206],{},"기타",[25,3208,3209],{},"AppAIRewriteDialog","(AI 문장 다듬기) · ",[25,3212,234],{},[25,3214,3215],{},"utils\u002FscrollLock"," 카운터 기반 본 페이지 스크롤 잠금, 중첩 모달 안전) · ",[25,3218,3219],{},"AppAdNoticeSms080Dialog",[58,3221],{},[61,3223,3225],{"id":3224},"_13-디자인-변경-추가-절차","13. 디자인 변경 \u002F 추가 절차",[2441,3227,3228,3237,3247,3255,3264],{},[1025,3229,3230,3236],{},[20,3231,3232,3233,3235],{},"핸드오프(",[25,3234,27],{},")에 패턴이 있나?"," → 있으면 토큰·클래스 그대로 차용.",[1025,3238,3239,3242,3243,3246],{},[20,3240,3241],{},"Nuxt UI에 있나?"," → 있으면 ",[25,3244,3245],{},"U*"," 우선, app.config 토큰으로 스타일.",[1025,3248,3249,1985,3252,3254],{},[20,3250,3251],{},"공통 패턴인가?",[25,3253,355],{}," 컴포넌트로 추출.",[1025,3256,3257,3260,3261,3263],{},[20,3258,3259],{},"새 색이 필요한가?"," → 만들지 말 것. 거의 모든 경우 ink\u002Faccent\u002Fsemantic으로 해결. 정말 필요하면 ",[25,3262,95],{},"에 추가 후 §2 등록.",[1025,3265,3266,3269,3270,3272,3273,462],{},[20,3267,3268],{},"점검"," — 1px hairline \u002F 액센트 ≤6회 \u002F tabular 숫자 \u002F 그림자=floating만 \u002F 1024px 반응형 \u002F focus·",[25,3271,2630],{}," \u002F ",[25,3274,2591],{},[58,3276],{},[61,3278,3280],{"id":3279},"_14-변경-이력","14. 변경 이력",[66,3282,3283,3293],{},[69,3284,3285],{},[72,3286,3287,3290],{},[75,3288,3289],{},"날짜",[75,3291,3292],{},"변경",[85,3294,3295,3303,3318,3329],{},[72,3296,3297,3300],{},[90,3298,3299],{},"~2026-05-13",[90,3301,3302],{},"(구) malgn-notifications 시안 기반 디자인 시스템 — indigo\u002Fsky\u002FNoto Sans KR, 1200px, 909줄 가이드. git 이력 보존.",[72,3304,3305,3310],{},[90,3306,3307],{},[20,3308,3309],{},"2026-05-18",[90,3311,3312,212,3315,3317],{},[20,3313,3314],{},"전면 피벗",[25,3316,27],{}," Relay-inspired v1.0를 디자인 정본으로 채택. ink 무채색+그린 액센트, Inter\u002FJetBrains Mono\u002FPretendard, 1400px. Phase 1: 토큰·폰트·Nuxt UI 매핑·문서 적용. Phase 2(컴포넌트\u002F페이지)는 체크포인트 후 진행.",[72,3319,3320,3323],{},[90,3321,3322],{},"2026-05-19",[90,3324,3325,3326,3328],{},"Phase 2 마무리 — ",[25,3327,215],{}," 라이브 카탈로그(17섹션) 추가, 셸·홈·발송 6채널·조회\u002F통계\u002F주소록\u002F충전\u002F인증 적용, Cloudflare Pages 프로덕션 배포. UI 스케일 115%·1400px·푸터 다크·헤더 불투명 등 페이지 설정 확정.",[72,3330,3331,3334],{},[90,3332,3333],{},"2026-05-20",[90,3335,3336,3337,3339,3340,3343],{},"발송 6채널 UX 2차 폴리시 — 3+1 카드 골격 재배치, 채널 템플릿\u002FPUSH 부가 항목 다이얼로그, 복합 플로우 등록·수정 통합 관리, ",[25,3338,267],{},"\u002F다중 키 컬럼\u002F",[25,3341,3342],{},"scrollLock"," 등 공용 컴포넌트 정리. 발송 옵션→발송 설정 등 문구 통일.",{"title":1020,"searchDepth":3345,"depth":3345,"links":3346},3,[3347,3349,3352,3360,3363,3369,3382,3401,3402,3403,3404,3405,3406,3411,3412],{"id":63,"depth":3348,"text":64},2,{"id":372,"depth":3348,"text":373,"children":3350},[3351],{"id":495,"depth":3345,"text":496},{"id":524,"depth":3348,"text":525,"children":3353},[3354,3356,3357,3359],{"id":546,"depth":3345,"text":3355},"2.1 Ink Scale (무채색 11단 ≈ Tailwind zinc)",{"id":766,"depth":3345,"text":767},{"id":852,"depth":3345,"text":3358},"2.3 Semantic \u002F Status (*-soft BG + *-line border + *-ink text)",{"id":974,"depth":3345,"text":975},{"id":1009,"depth":3348,"text":1010,"children":3361},[3362],{"id":1057,"depth":3345,"text":1058},{"id":1211,"depth":3348,"text":1212,"children":3364},[3365,3366,3367],{"id":1215,"depth":3345,"text":1216},{"id":1225,"depth":3345,"text":1226},{"id":1287,"depth":3345,"text":3368},"4.3 Elevation — 카드에 그림자 금지",{"id":1309,"depth":3348,"text":1310,"children":3370},[3371,3372,3374,3375],{"id":1313,"depth":3345,"text":1314},{"id":1345,"depth":3345,"text":3373},"5.2 2-Column (.content-2col)",{"id":1358,"depth":3345,"text":1359},{"id":1373,"depth":3345,"text":1374,"children":3376},[3377,3379,3380,3381],{"id":1389,"depth":3378,"text":1390},4,{"id":1430,"depth":3378,"text":1431},{"id":1467,"depth":3378,"text":1468},{"id":1512,"depth":3378,"text":1513},{"id":1619,"depth":3348,"text":1620,"children":3383},[3384,3386,3388,3390,3391,3398,3399,3400],{"id":1632,"depth":3345,"text":3385},"6.1 버튼 (.btn)",{"id":1779,"depth":3345,"text":3387},"6.2 카드 (.card)",{"id":1809,"depth":3345,"text":3389},"6.3 폼 (.form-row)",{"id":1854,"depth":3345,"text":1855},{"id":1894,"depth":3345,"text":3392,"children":3393},"6.5 테이블 (.table)",[3394,3395,3396,3397],{"id":1921,"depth":3378,"text":1922},{"id":2164,"depth":3378,"text":2165},{"id":2224,"depth":3378,"text":2225},{"id":2270,"depth":3378,"text":1513},{"id":2369,"depth":3345,"text":2370},{"id":2382,"depth":3345,"text":2383},{"id":2403,"depth":3345,"text":2404},{"id":2435,"depth":3348,"text":2436},{"id":2490,"depth":3348,"text":2491},{"id":2597,"depth":3348,"text":2598},{"id":2646,"depth":3348,"text":2647},{"id":2752,"depth":3348,"text":2753},{"id":2820,"depth":3348,"text":2821,"children":3407},[3408,3409,3410],{"id":2833,"depth":3345,"text":2834},{"id":2874,"depth":3345,"text":2875},{"id":3064,"depth":3345,"text":3065},{"id":3224,"depth":3348,"text":3225},{"id":3279,"depth":3348,"text":3280},"md",{},true,"\u002Fdesign",{"title":5,"description":1020},"DESIGN","Y0Tc5kN8I47j0nV2F_bWjg3ZjBD6fRGeJXE9rFql48k",1780638909349]