/* 한지·먹색 테마 (2026-11-14 사용자 지시). 오늘의 편지 화면의 종이결·먹색 글씨·와인색 강조를 업무 화면에 맞춘다.
   값은 market/notes/palette-hanji.md 와 같다. 꽃 장식은 쓰지 않는다. 가독성(대비 4.5 이상, 글자 크기)을 우선한다.
   이 파일은 다른 CSS보다 나중에 불러온다. */
:root{
  --hj-page:#f1ebdc; --hj-paper:#fbf9f4; --hj-rim:#e6dccb; --hj-line:#ddd2bc; --hj-wash:#ece4d2;
  --hj-ink:#1f1a16; --hj-ink2:#4a4038; --hj-sub:#5f5346; --hj-hint:#6f6356;
  --hj-blue:#2f4858; --hj-wine:#7c2b24; --hj-ochre:#8f6420;
  --hj-serif:'Noto Serif KR','Noto Serif CJK KR','Source Han Serif K','Nanum Myeongjo','AppleMyungjo','Batang',serif;
  --ink:var(--hj-ink); --muted:var(--hj-sub); --canvas:var(--hj-page); --paper:var(--hj-paper); --border:var(--hj-line);
}
/* 바탕: 한지 질감. 글자가 올라가는 면(카드·패널)은 질감 없이 단색으로 두어 읽기 쉽게 한다. */
body{background:var(--hj-page) url('hanji-ivory.webp') center top/760px auto repeat;color:var(--hj-ink)}
.app-header{background:var(--hj-paper);border-bottom:1px solid var(--hj-rim);box-shadow:0 1px 0 #fff8}
.panel{background:var(--hj-paper);border:1px solid var(--hj-line);box-shadow:0 0 0 5px var(--hj-rim),0 6px 18px #4a403810;border-radius:16px}
.assistant-composer{background:#fffdf8;border:1px solid var(--hj-line)}
/* 제목은 명조 계열, 조작 글씨는 고딕 */
.workspace-intro h1,.assistant-welcome h2,.panel-title h2,.panel-title strong,.assistant-welcome h1{font-family:var(--hj-serif);font-weight:700;color:var(--hj-ink);letter-spacing:-.3px}
.eyebrow,.assistant-welcome .eyebrow,.workspace-intro .eyebrow{color:var(--hj-wine);font-weight:700;font-size:12px;letter-spacing:.2px}
/* 읽기 쉬운 크기·대비 */
.nav-item{color:var(--hj-ink2);font-size:15px}
.nav-item:hover{background:var(--hj-wash)}
.panel-tabs button{font-size:15px;color:var(--hj-sub)}
.panel-tabs button[aria-selected=true]{color:var(--hj-blue);border-bottom-color:var(--hj-blue)}
.assistant-panel .connection-label,.composer-bottom>span,.connection-note p,.assistant-welcome>p:last-child{color:var(--hj-sub);font-size:14px}
.assistant-welcome>p:last-child{line-height:1.8}
.assistant-composer textarea{font-size:16px;line-height:1.7;color:var(--hj-ink)}
.assistant-composer textarea::placeholder,input::placeholder,textarea::placeholder{color:var(--hj-hint);opacity:1}
.composer-context span,.composer-bottom .ai-status-pill{font-size:13px;color:var(--hj-sub)}
a:focus-visible,button:focus-visible,summary:focus-visible,[tabindex]:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #4d7388;outline-offset:2px}
::selection{background:#d9c9a8;color:var(--hj-ink)}
/* 상태 표시 글씨: 12px 이하로 작아지지 않게 하고 대비를 유지한다 */
.ai-status-pill,.assistant-bar .ai-connection-control .ai-connection-toggle,.composer-bottom>span{font-size:13px}
.shared-chat-status,.codex-inline-status{font-size:14px}
.shared-chat-status,.shared-chat-status span{color:var(--hj-sub)}
/* 로그인·쇼핑몰 등 모듈 화면의 바탕도 같은 한지 질감으로 맞춘다 */
html:not(.darkMode) body:has(#mb_login),html:not(.darkMode) body:has(.wm-module-bar){background:var(--hj-page) url('hanji-ivory.webp') center top/760px auto repeat!important}
.wm-module-bar{background:var(--hj-rim)!important;border-bottom-color:var(--hj-line)!important}
/* 로그인 화면: 회색 바탕과 순백 카드를 한지·종이색으로 */
.loginBoxWrap{background:var(--hj-page) url('hanji-ivory.webp') center top/760px auto repeat!important}
.loginBoxWrap .loginWrap.cardBox{background:var(--hj-paper)!important;box-shadow:0 0 0 6px var(--hj-rim),0 10px 28px #4a403814}
.loginBoxWrap .loginBox,.loginBoxWrap .memberBox,.loginBoxWrap .loginBox>*:first-child{background:transparent!important}
/* AI 선택·상태·대화 탭 바는 대화를 스크롤해도 항상 위에 고정한다.
   (바깥 영역이 스크롤되는 상황에서도 밀려 올라가지 않게 하는 안전장치, 2026-11-14) */
.assistant-bar{position:sticky;top:0;z-index:6;background:var(--hj-paper)}
/* 보조 서비스 펼침 메뉴: 종이색 면 */
.more-nav>div{background:var(--hj-paper);border-color:var(--hj-line)}
.more-nav>div a,.more-nav>div button{color:var(--hj-ink2)}
/* 입력창: 연한 테두리(대비 1.5)를 진한 먹갈색(대비 5.1)으로, 글자는 먹색, 안내문은 더 진하게.
   입력 중에는 청묵 테두리와 굵은 링으로 어디에 쓰는지 분명히 보이게 한다. (2026-11-14 사용자 지시) */
:root{--hj-field-line:#7a6a56;--hj-field-bg:#fffdf8;--hj-hint:#5f5346}
.assistant-panel .assistant-composer{border:1.5px solid var(--hj-field-line)!important;background:var(--hj-field-bg)!important;box-shadow:0 2px 6px #4a403814}
.assistant-panel .assistant-composer:focus-within{border-color:var(--hj-blue)!important;box-shadow:0 0 0 3px #4d738840,0 2px 6px #4a403814}
.assistant-composer textarea,.assistant-composer textarea:focus{color:var(--hj-ink)!important;outline:none}
html body input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]):not([type=hidden]):not([type=color]):not([type=button]):not([type=submit]),
html body select,html body textarea:not(#assistantInput){border-color:var(--hj-field-line);color:var(--hj-ink)}
html body input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]):not([type=hidden]):not([type=color]):not([type=button]):not([type=submit]):focus,
html body select:focus,html body textarea:not(#assistantInput):focus{border-color:var(--hj-blue);box-shadow:0 0 0 3px #4d738840;outline:none}
::placeholder{color:var(--hj-hint)!important;opacity:1!important}
