/* POV Design System — internal theme as plain hex for existing HTML / Apps Script UIs. Source of truth: tokens/*.css
   Self-contained: fonts + logo paths point at ./assets/ next to this file. If you host assets elsewhere, edit the url() lines only. */
@font-face{font-family:"Pretendard";src:url("./assets/fonts/Pretendard-Regular.woff") format("woff");font-weight:400;font-display:swap}
@font-face{font-family:"Pretendard";src:url("./assets/fonts/Pretendard-Medium.woff") format("woff");font-weight:500;font-display:swap}
@font-face{font-family:"Pretendard";src:url("./assets/fonts/Pretendard-SemiBold.woff") format("woff");font-weight:600;font-display:swap}
@font-face{font-family:"Pretendard";src:url("./assets/fonts/Pretendard-Bold.woff") format("woff");font-weight:700;font-display:swap}
@font-face{font-family:"Hanken Grotesk";src:url("./assets/fonts/HankenGrotesk-Variable.ttf") format("truetype");font-weight:100 900;font-display:swap}
@font-face{font-family:"POV Baskerville";src:url("./assets/fonts/Baskerville.ttf") format("truetype");font-weight:400;font-display:swap}
/* Apps Script / no-file-hosting fallback: uncomment this CDN line instead of the local @font-face above.
@import url("https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/static/pretendard.min.css"); */
:root{--pov-font-kr:Pretendard,"Noto Sans KR",-apple-system,"Malgun Gothic",sans-serif;--pov-font-num:"Hanken Grotesk",Pretendard,sans-serif;--pov-font-serif:"POV Baskerville",Georgia,serif;--pov-paper-0:#FBFAF6;--pov-paper-1:#F8F6F0;--pov-paper-2:#EFEDE7;--pov-paper-3:#E4E2DC;--pov-stone-1:#D3D1CA;--pov-stone-2:#C2BFB8;--pov-stone-3:#AFACA5;--pov-clay-3:#76746E;--pov-umber-2:#51504B;--pov-ink-1:#343330;--pov-ink-3:#1B1B18;--pov-apple:#943F30;--pov-moss:#5F6844;--r:4px}
html,body{margin:0;background:#FBFAF6;color:#1B1B18;font:400 13px/1.55 var(--pov-font-kr)}
a{color:#51504B;text-decoration:none}a:hover{color:#1B1B18}
h1,.pov-title{font-family:inherit;font-weight:600;font-size:20px;line-height:1.3;margin:0}.pov-desc{font-size:12px;color:#76746E;margin-top:4px}
/* shell */
.pov-sidebar{width:220px;background:#EFEDE7;border-right:1px solid #D3D1CA;padding:22px 16px}.pov-sidebar a{display:flex;align-items:center;gap:10px;height:36px;padding:0 10px;border-radius:4px;color:#51504B}.pov-sidebar a.is-active{background:#fff;color:#1B1B18;font-weight:600;box-shadow:0 1px 2px rgba(0,0,0,.06)}
.pov-topbar{height:52px;display:flex;align-items:center;justify-content:space-between;padding:0 16px;background:#EFEDE7;border-bottom:1px solid #D3D1CA}
.pov-tabbar{display:grid;grid-auto-flow:column;gap:4px;height:64px;padding:8px 10px;background:#EFEDE7;border-top:1px solid #D3D1CA}.pov-tabbar a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border-radius:6px;font-size:10.5px;color:#76746E;white-space:nowrap}.pov-tabbar a.is-active{background:#fff;color:#1B1B18;font-weight:600}
/* panel */
.pov-panel{background:#fff;border:1px solid #D3D1CA;border-radius:4px;overflow:hidden}.pov-panel__head{display:flex;align-items:center;gap:8px;height:36px;padding:0 16px;background:#EFEDE7;border-bottom:1px solid #D3D1CA;font-family:inherit;font-weight:600;font-size:12px;line-height:1}.pov-panel__head .count{font-size:11px;color:#76746E}.pov-panel--late .pov-panel__head{background:#943F30;border-color:#943F30;color:#fff}.pov-panel__body{padding:2px 16px 4px}
.pov-stat{padding:8px 10px;border:1px solid #D3D1CA;border-radius:4px;background:#fff}.pov-stat__label{font-size:10px;letter-spacing:.24em;color:#76746E}.pov-stat__num{font-family:inherit;font-weight:600;font-size:16px;line-height:1.1;margin-top:4px;font-variant-numeric:tabular-nums}.pov-stat--late .pov-stat__num{color:#943F30}
/* rows */
.pov-row{display:flex;align-items:center;gap:14px;min-height:38px;padding:6px 0;border-bottom:1px solid #E4E2DC}.pov-row:last-child{border-bottom:0}.pov-row__title{font-family:inherit;font-weight:500;font-size:11px;line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pov-row__sub,.pov-row__meta{font-size:10.5px;color:#76746E}
/* status pills */
.pov-pill{display:inline-flex;align-items:center;justify-content:center;height:20px;min-width:52px;padding:0 7px;border-radius:4px;border:1px solid #D3D1CA;background:#fff;font-size:10.5px;color:#51504B;white-space:nowrap}
.pov-pill--seen{border-color:#1B1B18;color:#1B1B18}.pov-pill--progress{background:#1B1B18;border-color:#1B1B18;color:#fff}.pov-pill--done{border-color:#5F6844;color:#5F6844}.pov-pill--late{border-color:#943F30;color:#943F30}
/* buttons */
.pov-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:32px;padding:0 14px;border-radius:4px;border:1px solid #1B1B18;background:#fff;color:#1B1B18;font-family:inherit;font-weight:500;font-size:12px;line-height:1;cursor:pointer}.pov-btn--primary{background:#1B1B18;color:#F8F6F0}.pov-btn--lg{height:40px;width:100%}
/* chips · filters */
.pov-chip{display:inline-flex;align-items:center;height:32px;padding:0 12px;border-radius:4px;border:1px solid #D3D1CA;background:transparent;color:#51504B;font-size:12px}.pov-chip.is-on{background:#1B1B18;border-color:#1B1B18;color:#F8F6F0;font-weight:600}
/* forms */
.pov-field{display:grid;gap:6px}.pov-field>label{font-family:inherit;font-weight:500;font-size:11px;line-height:1;color:#51504B}.pov-input,.pov-select,.pov-textarea{height:36px;border:1px solid #D3D1CA;border-radius:4px;background:#fff;padding:0 12px;font-family:inherit;font-weight:400;font-size:12px;line-height:1;color:#1B1B18;outline:0;width:100%;box-sizing:border-box}.pov-textarea{height:auto;padding:10px 12px;line-height:1.6}.pov-input:focus,.pov-select:focus,.pov-textarea:focus{border-color:#1B1B18}.pov-input.is-invalid{border-color:#943F30}.pov-hint{font-size:10.5px;color:#76746E}.pov-hint--error{color:#943F30}
/* sheet render */
.pov-sheet{background:#fff;border:1px solid #D3D1CA;border-radius:4px;overflow:auto}.pov-sheet table{border-collapse:collapse;width:100%;font-size:11px}.pov-sheet th{height:32px;padding:0 12px;background:#343330;color:#fff;font-weight:700;text-align:left;white-space:nowrap}.pov-sheet td{height:38px;padding:0 12px;border:1px solid #D3D1CA;white-space:nowrap}.pov-sheet tbody tr:nth-child(even) td{background:#F7F7F7}.pov-sheet td.num{text-align:right;font-variant-numeric:tabular-nums}.pov-sheet tr.section td{background:#E9E7E1;font-weight:700;border-top:1px solid #C2BFB8}.pov-sheet tfoot td{background:#EFEDE7;font-weight:700;border-top:2px solid #1B1B18;height:40px}
.pov-sheet td.late-row{background:#F5DED9;box-shadow:inset 3px 0 0 #943F30}
/* inventory status (same as Google Sheets legend) — text 700, tint on the status cell only */
.pov-inv{font-weight:700;white-space:nowrap}.pov-inv--minus{color:#B3261E;background:#F1D8D2}.pov-inv--danger{color:#B3261E;background:#F9E7E4}.pov-inv--warn{color:#C8641A;background:#FBE2CB}.pov-inv--low{color:#B08900;background:#FBF3C4}.pov-inv--over{color:#2F6FB5;background:#E1EAF5}.pov-inv--out{color:#7A4B2A;background:#ECE1D3}.pov-inv--out-long{color:#7A7A7A}.pov-inv--ok{color:#3B7A2A}
/* 대조·검증 3 tints */
.pov-tint--apple{background:#F9E7E4;color:#B3261E;font-weight:700}.pov-tint--sand{background:#FBF3C4;color:#8A6D00;font-weight:700}.pov-tint--moss{background:#E6EDDF;color:#3B7A2A;font-weight:700}

/* logo — real image assets, never text. wordmark 12–14px tall in shells; symbol 26px when the sidebar is collapsed */
.pov-logo{display:inline-block;height:12px;width:auto;background:url("./assets/logo/wordmark.png") no-repeat left center/contain;aspect-ratio:1000/88}
.pov-logo--symbol{height:26px;background-image:url("./assets/logo/symbol.png");aspect-ratio:1}
.pov-logo--stacked{height:48px;background-image:url("./assets/logo/stacked.png");aspect-ratio:auto;width:120px}
.pov-sidebar .pov-logo{height:14px}.pov-topbar .pov-logo{height:12px}
/* numbers · dates use the latin face */
.pov-stat__num,.pov-row__meta,.pov-sheet td.num{font-family:var(--pov-font-num)}

/* sign-in — shared by the internal app and every standalone tool (see components/internal/signin.card.html) */
.pov-signin{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px;padding:40px 24px;background:#FBFAF6}
.pov-signin .pov-logo{height:13px}
.pov-signin__card{width:380px;max-width:100%;background:#fff;border:1px solid #D3D1CA;border-radius:5px;padding:32px 32px 24px;display:grid;gap:14px;text-align:center}
.pov-signin__title{margin:0;font:600 20px/1.3 var(--pov-font-kr)}
.pov-signin__desc{margin:0;font:400 12px/1.6 var(--pov-font-kr);color:#51504B}
.pov-signin__google{display:flex;align-items:center;justify-content:center;gap:10px;height:40px;width:100%;margin-top:6px;border:1px solid #D3D1CA;border-radius:4px;background:#fff;font:500 13px var(--pov-font-kr);color:#1B1B18;cursor:pointer}.pov-signin__google:hover{border-color:#1B1B18}.pov-signin__google svg,.pov-signin__google img{width:16px;height:16px;flex:none}
.pov-signin__domains{margin:0;font:400 12px/1.5 var(--pov-font-num);color:#76746E}
.pov-signin__hr{height:1px;background:#E4E2DC;margin-top:6px}
.pov-signin__help{margin:0;font:400 12px/1.5 var(--pov-font-kr);color:#76746E}
.pov-signin__error{display:flex;align-items:flex-start;gap:8px;padding:10px 12px;border:1px solid #943F30;border-radius:4px;background:#F9E7E4;color:#B3261E;font:400 11px/1.5 var(--pov-font-kr);text-align:left}
.pov-signin__foot{font:400 10.5px/1 var(--pov-font-num);color:#76746E;letter-spacing:.04em}
/* 로그인 카드 안에서 form 이 버튼을 감쌀 때도 폭을 유지한다 */
.pov-signin__card form{display:block}
/* shell layout · 문의 대시보드에서 추가 (기존 팔레트·치수만 사용) */
.pov-shell{display:flex;min-height:100vh}
/* 화면이 하나뿐일 때 — 사이드바 없이 로고 줄 + 화면 헤더 */
.pov-app{min-height:100vh}
.pov-brandbar{display:flex;align-items:center;height:40px}
.pov-brandbar .pov-logo{height:20px}
.pov-brandbar--center{justify-content:center;margin-bottom:4px}
.pov-sidebar{flex:0 0 auto;box-sizing:border-box;position:relative;transition:width .12s ease}
.pov-sidebar--mini{width:64px;padding:22px 8px}.pov-sidebar--mini a{justify-content:center;padding:0}.pov-sidebar--mini .pov-sidebar__label{display:none}
.pov-sidebar__brand{display:flex;align-items:center;height:36px;margin:0 0 22px 8px}
.pov-sidebar--mini .pov-sidebar__brand{margin-left:0;justify-content:center}
.pov-sidebar__handle{position:absolute;top:26px;right:-12px;width:24px;height:24px;border-radius:50%;border:1px solid #D3D1CA;background:#fff;color:#51504B;font-size:11px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0}
.pov-content{flex:1 1 auto;min-width:0;display:flex;flex-direction:column}
.pov-main{padding:32px 36px;display:grid;gap:20px;max-width:1180px;margin:0 auto;box-sizing:border-box}
.pov-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.pov-toolbar__spacer{flex:1 1 auto}
.pov-stats{display:grid;grid-template-columns:repeat(3,112px);gap:8px}
.pov-stats .pov-stat{padding:10px 12px}
.pov-stats .pov-stat__label{font-size:11px;letter-spacing:.16em}
.pov-stats .pov-stat__num{font-size:22px;margin-top:6px}
/* 카테고리 태그 · 상태 필(회신 안 함) */
.pov-tag{display:inline-flex;align-items:center;height:20px;padding:0 7px;border-radius:4px;background:#EFEDE7;color:#76746E;font-size:10.5px;white-space:nowrap}
.pov-pill--declined{border-color:#AFACA5;color:#76746E}
/* 카테고리 색 — 시스템의 기존 틴트만 (대조 3틴트 + 재고 over). 일반·주문은 무채색 */
.pov-tag--collab{background:#E6EDDF;color:#3B7A2A}
.pov-tag--stocking{background:transparent;border:1px solid #E4E2DC;color:#AFACA5}.pov-tag--order{background:#FBF3C4;color:#8A6D00}.pov-tag--ad{background:transparent;border:1px dashed #C2BFB8;color:#76746E}
.pov-tag--b2b{background:#E1EAF5;color:#2F6FB5}
.pov-tag--press{background:#F9E7E4;color:#B3261E}
.pov-tag--pending{background:transparent;border:1px dashed #C2BFB8;color:#76746E}
.pov-tag--out{background:transparent;border:1px solid #E4E2DC;color:#AFACA5}
/* 행 확장 영역 (회신 초안) — 목록은 Sheets 규격 zebra(#F7F7F7), 행을 패널 가장자리까지 채운다 */
.pov-row--stack{display:block;padding:18px 16px;margin:0 -16px}
.pov-panel__body>.pov-row--stack:nth-child(even){background:#F7F7F7}
.pov-row__line{display:flex;align-items:center;gap:14px;min-height:38px}
.pov-drawer{display:grid;gap:8px;padding:10px 0 4px}
.pov-field--inline{display:inline-flex;align-items:center;gap:8px}
.pov-field--inline>span{font-family:inherit;font-weight:500;font-size:11px;line-height:1;color:#51504B}
.pov-select--sm{height:30px;width:auto;padding:0 28px 0 10px}
.pov-drawer__summary{margin:0;font-size:12.5px;line-height:1.6;color:#51504B;white-space:normal}
/* 받은 메일 본문 — 회신 초안 위에, 참조용 회색 박스 */
.pov-mail{border:1px solid #E4E2DC;border-radius:4px;background:#FBFAF6;overflow:hidden}
.pov-mail__head{display:flex;align-items:center;gap:10px;height:32px;padding:0 12px;border-bottom:1px solid #E4E2DC;font-family:inherit;font-weight:600;font-size:11.5px;line-height:1;color:#51504B}
.pov-mail__body{margin:0;padding:12px;max-height:320px;overflow:auto;white-space:pre-wrap;word-break:break-word;font-family:inherit;font-weight:400;font-size:12.5px;line-height:1.65;color:#343330}
.pov-mail--sent{border-color:#C9D2BC;background:#F6F8F1}
.pov-mail--sent .pov-mail__head{border-bottom-color:#C9D2BC;color:#5F6844}
.pov-mail__label{font-family:inherit;font-weight:600;font-size:11.5px;line-height:1;color:#51504B;margin-top:4px}
.pov-linkbtn{border:0;background:none;padding:0;color:#51504B;font-family:inherit;font-weight:400;font-size:10.5px;line-height:1;text-decoration:underline;cursor:pointer}
.pov-linkbtn:hover{color:#1B1B18}
/* 확인 모달 */
.pov-modal{position:fixed;inset:0;background:rgba(27,27,24,.32);display:flex;align-items:center;justify-content:center;padding:24px}
.pov-modal.is-closed{display:none}
.pov-modal__box{width:100%;max-width:420px;background:#fff;border:1px solid #D3D1CA;border-radius:4px;overflow:hidden}
.pov-modal__body{padding:16px;display:grid;gap:14px}
/* PageHeader — 제목 20/600 + desc 좌, 액션(32px) 우 · 액션과 우측 그룹 사이 1×24 헤어라인 */
.pov-pagehead{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}
.pov-pagehead .pov-desc{font-size:13px}
/* 화면 안내 — 실패는 apple 로 눈에 띄게 */
.pov-notice{font-size:12.5px;line-height:1.5;color:#76746E;margin:6px 0 0}
.pov-notice--error{color:#943F30;font-weight:500}
/* 진행 중 표시 — 버튼 안 작은 회전 링 */
.pov-spinner{width:12px;height:12px;flex:none;border:1.5px solid #D3D1CA;border-top-color:#1B1B18;border-radius:50%;animation:pov-spin .7s linear infinite}
@keyframes pov-spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.pov-spinner{animation-duration:2.4s}}
.pov-pagehead__actions{display:flex;align-items:center;gap:8px;flex:none;min-height:44px}
.pov-rule{width:1px;height:24px;background:#D3D1CA;margin:0 4px}
/* 목록 필터 칩 — 참고 구현 Toolbar 기준 26px */
.pov-chip--sm{height:30px;padding:0 14px;gap:5px;font-size:12.5px;line-height:1;min-width:112px;justify-content:center}
/* 칩 안 건수는 라벨과 같은 폰트로 — 라틴 폰트를 쓰면 한글과 기준선이 어긋난다 */
.pov-chip--sm .count{font-family:inherit;font-size:11.5px;line-height:1;opacity:.65;font-variant-numeric:tabular-nums}
/* 클릭 가능한 행 hover */
.pov-row--link{cursor:pointer}.pov-row--link:hover .pov-row__title{text-decoration:underline;text-underline-offset:3px}
/* 빈 상태 — 회색 한 줄 + 버튼 하나 */
.pov-empty{display:grid;gap:12px;justify-items:start;padding:6px 0 10px}
.pov-empty__line{font-size:13px;line-height:1.5;color:#76746E}
.pov-row__main{flex:1 1 auto;min-width:0;max-width:760px}
.pov-row__main .pov-row__title{font-size:13px}
/* 요약은 한 줄, 넘치면 말줄임 — 펼치면 전문이 보인다 */
.pov-row__main .pov-row__sub{margin-top:3px;font-size:12px;line-height:1.5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* 오른쪽 메타(날짜·태그·필)는 절대 줄바꿈되지 않는다 */
.pov-row__line>.pov-row__meta,.pov-row__line>.pov-tag,.pov-row__line>.pov-pill{flex:none;white-space:nowrap}
.pov-row__line>.pov-row__meta{margin-left:auto;min-width:36px;text-align:right}
.pov-row--link.is-open .pov-row__title{font-weight:600}
/* Avatar — 사진 › 이니셜 (헤더 44) */
.pov-avatar{width:44px;height:44px;border-radius:50%;flex:none;object-fit:cover;background:#E4E2DC}
.pov-avatar--initial{display:grid;place-items:center;font-family:inherit;font-weight:500;font-size:15px;line-height:1;color:#1B1B18}
