:root{--ink:#17233f;--muted:#72809a;--line:#e6eaf1;--bg:#f5f7fb;--card:#fff;--accent:#4f6df5;--accent-soft:#eef1ff;--green:#168a61;--red:#d4515d;--shadow:0 12px 36px rgba(24,36,63,.08)}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--bg);font:14px/1.45 Inter,Pretendard,"Noto Sans KR",system-ui,sans-serif}button,input,select,textarea{font:inherit}.app{display:grid;grid-template-columns:238px minmax(720px,1fr);min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;padding:24px 16px;background:#17233f;color:#fff}.brand{display:flex;align-items:center;gap:11px;padding:0 7px 25px}.brand-mark{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:linear-gradient(145deg,#7289ff,#4d69ed);font-weight:900}.brand div{display:grid;min-width:0}.brand strong{font-size:13px}.brand small{color:#98a5c0;font-size:9px}.lang-toggle{margin-left:auto;flex:0 0 auto;min-width:34px;height:26px;padding:0 9px;border:1px solid rgba(255,255,255,.18);border-radius:7px;background:rgba(255,255,255,.08);color:#fff;font-size:10px;font-weight:800;letter-spacing:.03em;cursor:pointer}.lang-toggle:hover{background:rgba(255,255,255,.18)}.nav-title{margin:20px 10px 7px;color:#7786a4;font-size:9px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.nav-item,.nav-add{display:flex;width:100%;align-items:center;justify-content:space-between;padding:10px 11px;border:0;border-radius:9px;color:#aeb9cf;background:transparent;cursor:pointer;text-align:left}.nav-item:hover,.nav-item.active{color:#fff;background:rgba(255,255,255,.09)}.nav-item b{font-size:10px}.nav-add{justify-content:flex-start;color:#8295ff}.storage-note{position:absolute;left:18px;right:18px;bottom:22px;display:flex;align-items:center;gap:9px;padding:12px;border:1px solid rgba(255,255,255,.08);border-radius:10px;background:rgba(255,255,255,.04)}.storage-note>span{width:7px;height:7px;border-radius:50%;background:#45d6a0}.storage-note div{display:grid}.storage-note strong{font-size:10px}.storage-note small{color:#8290aa;font-size:8px}.workspace{padding:30px}.topbar{display:flex;justify-content:space-between;gap:20px;align-items:center}.eyebrow{margin:0;color:var(--accent);font-size:9px;font-weight:800;letter-spacing:.14em}.topbar h1{margin:3px 0 2px;font-size:25px;letter-spacing:-.04em}.topbar p:last-child{margin:0;color:var(--muted);font-size:11px}.top-actions{display:flex;gap:8px}.button{padding:10px 14px;border:0;border-radius:9px;font-weight:700;cursor:pointer}.button.primary{color:#fff;background:var(--accent);box-shadow:0 6px 15px rgba(79,109,245,.2)}.button.secondary{color:#4e5b73;background:#fff;border:1px solid var(--line)}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:25px 0 15px}.stats article{padding:15px 18px;border:1px solid var(--line);border-radius:13px;background:#fff}.stats span{display:block;color:var(--muted);font-size:10px}.stats strong{font-size:25px}.stats small{margin-left:3px;color:var(--muted)}.desk{display:grid;grid-template-columns:minmax(540px,1fr) 315px;min-height:560px;border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:var(--shadow);overflow:hidden}.list-pane{min-width:0;border-right:1px solid var(--line)}.toolbar{display:flex;gap:8px;padding:14px;border-bottom:1px solid var(--line)}.search{display:flex;align-items:center;gap:7px;flex:1;padding:0 10px;border:1px solid var(--line);border-radius:9px;background:#f9fafc}.search input{width:100%;height:34px;border:0;outline:0;background:transparent}.toolbar select{padding:0 9px;border:1px solid var(--line);border-radius:9px;background:#fff;color:#5c6880;font-size:11px}.bulk-bar{padding:9px 14px;background:var(--accent-soft)}.bulk-bar button{margin-left:8px;border:0;background:transparent;color:var(--accent);font-size:10px;font-weight:700;cursor:pointer}.table-wrap{position:relative}table{width:100%;border-collapse:collapse}th,td{padding:12px 10px;border-bottom:1px solid #f0f2f6;text-align:left}th{color:#8a95a9;font-size:9px;text-transform:uppercase}td{font-size:11px}tbody tr{cursor:pointer}tbody tr:hover,tbody tr.selected{background:#f8f9ff}.person{display:flex;gap:9px;align-items:center}.mini-avatar,.avatar{display:grid;place-items:center;border-radius:10px;background:var(--accent-soft);color:var(--accent);font-weight:800}.mini-avatar{width:31px;height:31px}.person div{display:grid}.person small{color:var(--muted);font-size:9px}.badge{display:inline-block;padding:4px 7px;border-radius:999px;background:#eef1f6;color:#657088;font-size:9px;font-weight:700}.badge.sent,.badge.done{background:#e6f7f0;color:var(--green)}.badge.error{background:#fcedeF;color:var(--red)}.chips{display:flex;gap:4px;flex-wrap:wrap}.chip{padding:3px 6px;border-radius:5px;background:#f0f2f7;color:#637089;font-size:8px}.empty,.detail-empty{padding:70px 20px;text-align:center;color:var(--muted)}.empty span{font-size:32px;color:var(--accent)}.empty h2{margin-bottom:3px;color:var(--ink);font-size:16px}.empty p{font-size:11px}.detail-pane{padding:19px;background:#fcfcfe}.detail-head{display:flex;align-items:center;gap:10px}.avatar{width:43px;height:43px;font-size:16px}.detail-head div:nth-child(2){min-width:0;flex:1}.detail-head h2{margin:0;font-size:16px}.detail-head p{margin:2px 0;color:var(--muted);font-size:9px}.icon-button{border:0;background:transparent;cursor:pointer}.detail-pane .chips{margin:12px 0}.field{display:grid;gap:5px;margin:12px 0;color:#58647a;font-size:10px;font-weight:700}.field input,.field select,.field textarea{width:100%;padding:9px;border:1px solid var(--line);border-radius:8px;background:#fff;outline:none}.field textarea{resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(79,109,245,.1)}.template-head{display:flex;justify-content:space-between;margin-top:18px;font-size:10px}.template-head button{border:0;color:var(--accent);background:transparent;font-size:9px;cursor:pointer}.message-preview{margin-top:7px;padding:12px;border-radius:10px;background:#f1f3f8;color:#536078;font-size:10px;white-space:pre-wrap}.action-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:11px}.action-button{padding:9px;border:1px solid var(--line);border-radius:8px;background:#fff;color:#566178;font-size:10px;font-weight:700;cursor:pointer}.primary-action{border-color:var(--accent);color:#fff;background:var(--accent)}.history{margin-top:20px;padding-top:14px;border-top:1px solid var(--line);font-size:10px}.history-item{margin-top:8px;padding:8px;border-radius:8px;background:#f5f7fa;color:var(--muted);font-size:9px}dialog{width:min(520px,calc(100% - 30px));padding:0;border:0;border-radius:15px;box-shadow:0 24px 70px rgba(10,20,40,.25)}dialog::backdrop{background:rgba(18,29,52,.55)}dialog form{padding:20px}dialog header,dialog footer{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}dialog header h2{margin:0}dialog header p{margin:3px 0;color:var(--muted);font-size:10px}dialog header .dialog-close{border:0;background:transparent;font-size:20px;cursor:pointer}dialog footer{justify-content:flex-end;margin-top:20px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}.full{grid-column:1/-1}.toast{position:fixed;right:24px;bottom:24px;padding:11px 15px;border-radius:9px;background:#17233f;color:#fff;box-shadow:var(--shadow);font-size:11px;opacity:0;transform:translateY(8px);pointer-events:none;transition:.2s}.toast.show{opacity:1;transform:none}@media(max-width:1050px){.app{grid-template-columns:190px 1fr}.desk{grid-template-columns:1fr}.detail-pane{display:none}.workspace{padding:22px}}@media(max-width:760px){.app{display:block}.sidebar{position:static;height:auto}.sidebar nav,.storage-note{display:none}.workspace{padding:14px}.topbar{align-items:flex-start}.top-actions{flex-wrap:wrap;justify-content:flex-end}.stats{grid-template-columns:1fr 1fr}.desk{min-height:400px}.toolbar{flex-wrap:wrap}.search{flex-basis:100%}.form-grid{display:block}}
.topbar>div:first-child{flex:0 0 auto}.topbar h1{white-space:nowrap;max-width:420px;overflow:hidden;text-overflow:ellipsis}.top-actions{flex-wrap:wrap;justify-content:flex-end}.title-row{display:flex;align-items:center;gap:7px}.icon-button[hidden]{display:none}.title-row .icon-button{margin-top:2px}.action-button:disabled{opacity:.45;cursor:not-allowed}.icon-button.danger{color:var(--red)}.shortcut-hint{margin:14px 2px 0;color:var(--muted);font-size:9px;text-align:center}.toast{display:flex;align-items:center;gap:11px}.toast.show{pointer-events:auto}.toast button{border:0;border-radius:6px;padding:5px 9px;background:rgba(255,255,255,.18);color:#fff;font-size:10px;font-weight:800;cursor:pointer;white-space:nowrap}
.gesture-actions{display:none}.gesture-button{min-height:48px;border:1px solid var(--line);border-radius:12px;color:#566178;background:#fff;font-size:10px;font-weight:800;cursor:pointer}.gesture-button span{font-size:16px}.gesture-button:hover{filter:brightness(.97)}.exclude-button{color:#c1495a;background:#fdf0f2;border-color:#f0ccd3}.defer-button{color:#96701c;background:#fdf6e7;border-color:#ead8aa}.move-button{color:#4c5ed3;background:#eef1ff;border-color:#ccd4f6}
/* 모바일 "더보기" 시트: 구조적 래퍼(#moreActionsPanel/#moreActionsSheet)가 데스크톱·태블릿에서 원래의 top-actions 한 줄처럼 보이도록 display:contents로 무산시키고, order로 원래 8버튼 순서(테마·데모·붙여넣기·복사·가져오기·내보내기·초기화·연락처)를 그대로 복원한다. 시각적 변화는 없음 — 실제 시트 UI는 mobile.css의 @media(max-width:760px)에서만 나타난다. */
#moreActionsPanel,#moreActionsSheet{display:contents}#moreActionsBackdrop,#moreActionsBtn,.more-sheet-grabber,#moreActionsCancel{display:none}
#themeBtn{order:1}#demoBtn{order:2}#pasteContactsBtn{order:3}#copyContactsBtn{order:4}#importBtn{order:5}#exportBtn{order:6}#resetBtn{order:7}#addContactBtn{order:8}#moreActionsBtn{order:9}
