:root{font-family:"Noto Sans KR","Roboto","Malgun Gothic",sans-serif;font-weight:400;color:#333333;background:#F4F2EF;font-size:16px;line-height:1.6;color-scheme:light}*{box-sizing:border-box}body{margin:0}a{color:#333333;text-underline-offset:3px}header,nav,main,footer{max-width:1120px;margin:auto;padding:16px 24px}header{display:flex;align-items:center;gap:20px;border-bottom:1px solid #E6E3DF}.brand{font-size:22px;font-weight:700;text-decoration:none}.account{margin-left:auto;display:flex;gap:12px;align-items:center}nav{display:flex;gap:24px;padding-top:8px;padding-bottom:8px;border-bottom:1px solid #E6E3DF}nav a{font-weight:600;white-space:nowrap}main{min-height:65vh}h1{line-height:1.3;margin:24px 0 16px}h2{margin-top:28px}p{overflow-wrap:anywhere}.environment{font-size:13px;color:#666666;margin-top:0}.muted,small{color:#666666}form{margin:0}fieldset{border:1px solid #E6E3DF;padding:16px;margin:16px 0;background:#fff;min-width:0}legend{font-weight:700;padding:0 8px}label{display:block;font-weight:600;margin-bottom:10px}input,select,textarea,button{font:inherit;max-width:100%}input,select,textarea{display:block;width:100%;min-height:44px;border:1px solid #8A7057;border-radius:3px;padding:8px;background:white;color:#333333}input[type=checkbox]{display:inline-block;min-height:0;width:20px;height:20px;vertical-align:middle;margin-right:8px}button,.button{display:inline-block;min-height:44px;padding:9px 16px;border:1px solid #21201E;border-radius:3px;background:#21201E;color:#fff;cursor:pointer;text-decoration:none;font-weight:600}button:hover,.button:hover{background:#333333}button:disabled{opacity:.45;cursor:default}.quiet{background:white;color:#21201E}.danger{background:#fff;color:#333333;border-color:#333333}.quiet:hover,.danger:hover{background:#F4F2EF}:focus-visible{outline:3px solid #8A7057;outline-offset:3px}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px}.actions,.filters{display:flex;flex-wrap:wrap;gap:12px;align-items:end;margin:16px 0}.filters label{margin:0}.table-wrap{overflow-x:auto;background:#fff;border:1px solid #E6E3DF;margin:16px 0}table{width:100%;border-collapse:collapse;font-size:15px}th,td{padding:12px;text-align:left;vertical-align:top;border-bottom:1px solid #E6E3DF;overflow-wrap:anywhere}th{background:#F4F2EF;white-space:nowrap}td.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.badge{display:inline-block;background:#F4F2EF;border:1px solid #E6E3DF;padding:1px 8px;font-size:13px;white-space:nowrap}.card{border:1px solid #E6E3DF;background:#fff;padding:20px;margin:16px 0}.narrow{max-width:460px;margin:40px auto}.meta{font-size:14px;color:#666666}details{margin:14px 0}summary{cursor:pointer;font-weight:600;min-height:44px;padding:10px 0}.qr-pending{color:#666666;font-size:13px;margin:0}.skip{position:absolute;left:12px;top:-100px;background:white;padding:10px}.skip:focus{top:10px}footer{font-size:13px;color:#666666;border-top:1px solid #E6E3DF}.check{font-weight:400}.mono{font-family:monospace;word-break:break-all}.empty{padding:28px 12px;color:#666666}.tabs{display:flex;gap:16px;flex-wrap:wrap;margin:20px 0}.pagination{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:16px 0}.pagination a{display:inline-flex;align-items:center;justify-content:center;min-width:36px;min-height:36px;padding:0 8px;border:1px solid #E6E3DF;text-decoration:none;color:#333333}.pagination a[aria-current="page"]{border-color:#9C836A;border-width:2px;font-weight:700}
@media(max-width:650px){header,nav,main,footer{padding-left:14px;padding-right:14px}header{flex-wrap:wrap;gap:4px 12px}header>span{display:none}.account{font-size:13px;gap:8px}nav{gap:16px;overflow:auto}th,td{padding:9px;font-size:14px}.grid{grid-template-columns:1fr}.filters{align-items:stretch}.filters label{flex:1;min-width:120px}.actions button,.actions .button{flex:1;text-align:center}.table-wrap{max-width:100%}.narrow{margin-top:20px}}
@media print{body{background:#fff;color:#000}header,nav,footer,.environment,.no-print,.actions,.filters{display:none!important}main{max-width:none;padding:0}.table-wrap{overflow:visible;border:0}table{font-size:10pt}th,td{padding:5px;border:1px solid #aaa}thead{display:table-header-group}tr{break-inside:avoid}.card{border:0;padding:0}h1{font-size:18pt}.notice{background:white;border:1px solid #555}.qr-box svg{width:80mm}}
[hidden]{display:none!important}
.title-link{display:inline-block;padding:7px 0;font-weight:650;min-height:44px}.title-list th:first-child{width:70%}.report-summary{display:flex;flex-wrap:wrap;gap:20px;margin:20px 0;padding:16px 0;border-top:1px solid #E6E3DF;border-bottom:1px solid #E6E3DF}.report-summary div{min-width:130px}.report-summary dt{font-size:14px;color:#666666}.report-summary dd{font-size:21px;font-weight:700;margin:3px 0}.report-period{font-weight:600}.report-table tfoot{font-weight:700}.print-guard{border:2px solid #E66045;padding:16px;color:#333333;background:#F4F2EF;margin:20px 0}.worksheet-document{background:#fff;border:1px solid #E6E3DF;padding:24px;margin:28px auto;max-width:840px;color:#111}.document-heading{display:flex;justify-content:space-between;gap:18px;align-items:flex-start}.document-title{font-weight:700;font-size:20px;line-height:1.4;margin:0 0 12px}.document-heading h2{font-size:17px;margin:12px 0 4px}.document-meta{font-size:14px;margin:4px 0}.document-id{font:11px/1.5 monospace;overflow-wrap:anywhere;border-bottom:1px solid #333;padding-bottom:8px}.document-first-qr{flex:0 0 45mm;width:45mm}.worksheet-qr{margin:0;background:#fff;break-inside:avoid;text-align:center;width:45mm}.worksheet-qr svg{display:block;width:45mm;height:45mm;max-width:none;image-rendering:pixelated}.worksheet-qr figcaption{font-size:11px;text-align:center;margin-top:2px}.worksheet-columns{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;align-items:start;margin-top:12px}.paper-table{table-layout:fixed;font-size:12px;line-height:1.45}.paper-table th,.paper-table td{border:1px solid #555;padding:5px 3px;word-break:normal;overflow-wrap:anywhere}.paper-table th{font-size:10px;padding:5px 1px;text-align:center;white-space:normal;background:#F4F2EF}.paper-table small{font-size:10px;color:#333}.paper-number{width:8%}.paper-work{width:51%}.paper-quantity{width:17%}.paper-check{width:10%}.paper-memo{width:14%}.paper-blank{height:30px}.document-extra-qr{display:flex;flex-wrap:wrap;gap:12px;justify-content:flex-end;margin-top:16px}.document-footnote{border-top:1px solid #555;padding-top:8px;font-size:11px;line-height:1.5;margin-bottom:0}.document-warning{border:2px solid #111;padding:6px;font-weight:700}
@media(max-width:650px){.worksheet-document{padding:12px}.worksheet-columns{grid-template-columns:1fr}.document-heading{flex-direction:column}.document-first-qr{align-self:flex-end}.document-title{font-size:18px}.paper-table{font-size:13px}.title-list th:first-child{width:65%}}
@page{size:A4 portrait;margin:10mm}
@media print{.worksheet-document{display:none;margin:0;padding:0;border:0;max-width:none}.worksheet-document.qr-ready{display:block}.document-heading{display:flex;flex-direction:row;gap:5mm}.document-title{font-size:15pt;margin:0 0 3mm}.document-heading h2{font-size:11pt;margin:2mm 0}.document-meta{font-size:9pt;line-height:1.5}.document-id{font-size:7pt;margin:2mm 0;padding-bottom:2mm}.document-first-qr{width:45mm;flex:0 0 45mm}.worksheet-qr,.worksheet-qr svg{width:45mm;height:auto}.worksheet-qr svg{height:45mm}.worksheet-qr figcaption{font-size:7pt}.worksheet-columns{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:3mm;margin-top:3mm}.paper-table{font-size:8pt;line-height:1.35}.paper-table th,.paper-table td{padding:1.2mm .6mm;border:1px solid #333}.paper-table th{font-size:7pt}.paper-table small{font-size:6.5pt}.paper-blank{height:7mm}.document-extra-qr{gap:3mm;margin-top:3mm}.document-footnote{font-size:7pt;margin-top:3mm}.print-guard{display:block;border:2px solid #000;color:#000;background:#fff;font-size:16pt}.report-summary{margin:3mm 0;padding:2mm 0}.report-summary dd{font-size:13pt}.report-table{font-size:8pt;table-layout:fixed}.report-table th,.report-table td{font-size:8pt;padding:1.5mm}.report-table th{white-space:normal}.report-table-wrap{border:0}.report-period{font-size:10pt}}
@media screen{table{font-size:16px}nav a,.tabs a{display:inline-flex;align-items:center;min-height:44px}.check{min-height:44px;padding:8px 0}.table-wrap{max-width:100%}.account{flex-wrap:wrap}td form+form{margin-top:8px}}@media screen and (max-width:650px){th,td{font-size:16px}.paper-table th,.paper-table td{font-size:12px}.report-summary{gap:16px}}

/* Paradise City brand: warm neutrals; gold only as a small line accent. */
@media screen{h1,h2,h3,.brand{color:#191919}.brand{border-bottom:2px solid #9C836A;padding-bottom:3px}a{text-decoration-color:#9C836A}a:hover{color:#191919}nav a[aria-current="page"],.tabs a[aria-current="page"]{border-bottom:2px solid #9C836A}.danger{border-color:#E66045}.error,.notice,.success{color:#333333}.document-title{color:#191919}.document-id{border-color:#E6E3DF}.document-footnote{border-color:#E6E3DF}.paper-table th,.paper-table td{border-color:#E6E3DF}.document-warning{border-color:#E66045;color:#333333}}

/* --- 아래부터 신규: 상태 배지·타이포 스케일. 위 인쇄/작업지 규칙은 값을 바꾸지 않았다. --- */
:root{--color-ink:#333333;--color-ink-strong:#191919;--color-ink-muted:#666666;--color-caption:#999999;--color-border:#E6E3DF;--color-bg-pale:#F9F9F9;--color-bg-page:#F4F2EF;--color-gold:#9C836A}
/* 상태는 색만이 아니라 굵기·테두리로도 구분한다 (색만으로 의미를 전달하지 않음). */
@media screen{
.badge--draft{background:var(--color-bg-pale);color:var(--color-ink-muted);border-color:var(--color-border);font-weight:400}
.badge--submitted{background:#fff;color:var(--color-ink-strong);border:2px solid var(--color-gold);font-weight:700;padding:0 7px}
/* 승인완료는 유일하게 잉크로 채워 한눈에 끝난 건을 걸러낸다. */
.badge--approved{background:var(--color-ink-strong);color:#fff;border-color:var(--color-ink-strong);font-weight:600}
/* 취소는 색 대비가 2.71:1로 미달이었다 — 본문 색 + 취소선으로 구분한다. */
.badge--cancelled{background:var(--color-bg-pale);color:var(--color-ink);border-color:var(--color-ink-muted);border-style:dashed;font-weight:400;text-decoration:line-through}
/* 배너 3종은 배경이 페이지와 같은 색(대비 1.00:1)이라 알림인지 알 수 없었다. */
.notice,.success,.error{background:#fff;border:1px solid var(--color-border);border-left-width:4px;padding:10px 12px;margin:12px 0}
.notice{border-left-color:var(--color-gold)}
.success{border-left-color:var(--color-ink-strong);font-weight:500}
.error{border-left-color:#E66045;font-weight:500}
.notice::before{content:"안내 · ";font-weight:600}
.success::before{content:"완료 · ";font-weight:600}
.error::before{content:"오류 · ";font-weight:600}
/* 앱이 정한 44px 최소 터치 타깃을 표 안 링크와 페이지 링크만 어기고 있었다. */
.pagination a,.pagination span,td details>summary{display:inline-block;min-height:44px;line-height:44px;padding:0 12px}
td .danger,td button{min-height:44px;white-space:nowrap}
.price-cell{width:9em;text-align:right;min-height:44px}
/* 타이포 스케일 12/14/16/18/24/32 고정 (기존 26/20/17/13은 이 값으로 통일). */
h1{font-size:32px}
h2{font-size:24px}
h3{font-size:18px}
.environment,.badge,footer,small{font-size:12px}
}
@media screen and (max-width:650px){h1{font-size:24px}}
