#root{min-height:100vh}:root{--bg:#f6f7f9;--panel:#fff;--text:#111827;--muted:#687280;--line:#e4e7eb;--ink:#0b3b36;--accent:#0f766e;--accent-soft:#0f766e17;--danger:#b91c1c;--danger-soft:#fef2f2;--warn:#b45309;--warn-soft:#fff7ed;--ok:#047857;--ok-soft:#f0fdf4;--shadow:0 1px 2px #1118270d, 0 18px 42px #11182714;--radius:14px;--radius-sm:10px;--mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--sans:system-ui, -apple-system, "Segoe UI", "Noto Sans JP", "Hiragino Sans", "Yu Gothic UI", Meiryo, sans-serif}*{box-sizing:border-box}html,body,#root{max-width:100%;overflow-x:hidden}body{background:var(--bg);min-width:320px;color:var(--text);font-family:var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0}button,input,textarea,select{font:inherit}button{border:1px solid var(--line);min-height:42px;color:var(--text);cursor:pointer;background:#fff;border-radius:12px;font-weight:800}button:disabled{opacity:.55;cursor:not-allowed}.appShell{width:min(1120px,100% - 28px);margin:0 auto;padding:14px 0 42px}.topbar{z-index:20;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fffffff5;justify-content:space-between;align-items:center;gap:14px;padding:12px 14px;display:flex;position:sticky;top:10px}.brand,.headerTools,.userLine,.actions,.historyTop{align-items:center;display:flex}.brand{gap:12px;min-width:0}.logo{background:var(--ink);color:#fff;letter-spacing:.12em;border-radius:6px;flex:none;place-items:center;width:44px;height:28px;font-size:12px;font-weight:900;display:grid}.titleWrap{min-width:0}.title,.subtitle{text-overflow:ellipsis;white-space:nowrap;margin:0;overflow:hidden}.title{font-size:15px;font-weight:900}.subtitle{color:var(--muted);margin-top:2px;font-size:12px}.headerTools{gap:8px}.statusPill{border:1px solid var(--line);white-space:nowrap;background:#fff;border-radius:999px;align-items:center;gap:8px;min-height:34px;padding:0 11px;font-size:12px;font-weight:800;display:inline-flex}.statusPill span{background:var(--warn);border-radius:99px;width:8px;height:8px}.statusPill.approved span{background:var(--ok)}.statusPill.sentback span{background:var(--danger)}.iconButton{border-radius:10px;place-items:center;width:34px;min-height:34px;padding:0;display:grid}.pageFlow{grid-template-columns:1fr;gap:12px;margin-top:12px;display:grid}.approvalFlow{gap:12px;display:grid}.panel{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);box-shadow:var(--shadow);padding:14px}.panelHeader{justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:12px;display:flex}.panelHeader h1,.panelHeader h2{margin:0;font-size:15px;font-weight:900}.panelHeader h1{font-size:17px}.panelHeader p{color:var(--muted);margin:3px 0 0;font-size:12px}.panelHeader.compact{align-items:center}.panelHeader.compact svg{color:var(--accent);flex:none}.docBadge,.deptTag{border:1px solid var(--line);min-height:28px;color:var(--muted);white-space:nowrap;background:#fff;border-radius:999px;align-items:center;padding:0 10px;font-size:12px;display:inline-flex}.summaryGrid{border:1px solid var(--line);border-radius:var(--radius-sm);background:#fafafa;grid-template-columns:1fr;gap:8px 10px;padding:10px;display:grid}.infoItem{grid-template-columns:94px minmax(0,1fr);align-items:start;gap:10px;display:grid}.infoItem span{color:var(--muted);font-size:12px}.infoItem strong{min-width:0;font-size:13px;font-weight:700}.amountSummary{border:1px solid var(--line);border-radius:var(--radius-sm);background:#fff;margin-top:10px;padding:10px 12px}.amountSummaryRow{border-bottom:1px solid var(--line);justify-content:space-between;align-items:baseline;gap:12px;min-height:34px;display:flex}.amountSummaryRow:last-child{border-bottom:0}.amountSummaryRow span{color:var(--muted);font-size:13px}.amountSummaryRow strong{font-family:var(--mono);white-space:nowrap;font-size:16px}.amountSummaryRow.emphasis strong{font-size:24px;font-weight:900}.tableFrame{border:1px solid var(--line);border-radius:var(--radius-sm);background:#fff;margin-top:10px;overflow:auto}.itemsTable{border-collapse:collapse;width:100%;min-width:980px}.itemsTable th,.itemsTable td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:10px 12px;font-size:13px}.itemsTable th{color:var(--muted);white-space:nowrap;background:#fafafa;font-size:12px}.itemsTable tr:last-child td{border-bottom:0}.right{white-space:nowrap;text-align:right!important}.itemName{white-space:pre-line}.dangerText{color:var(--danger);font-family:var(--mono);font-weight:900}.mobileItems,.mobileAlertFrame{display:none}.miniBadge{border:1px solid var(--line);white-space:nowrap;background:#fff;border-radius:999px;justify-content:center;align-items:center;min-height:24px;padding:0 8px;font-size:12px;font-weight:800;display:inline-flex}.miniBadge.ok{background:var(--ok-soft);color:var(--ok);border-color:#bbf7d0}.miniBadge.warn{background:var(--warn-soft);color:var(--warn);border-color:#fed7aa}.miniBadge.danger{background:var(--danger-soft);color:var(--danger);border-color:#fecaca}.priceJudgement{justify-items:start;gap:6px;display:grid}.priceJudgement small{color:var(--muted);font-family:var(--mono);white-space:nowrap;font-size:12px}.remarks{border:1px solid var(--line);border-radius:var(--radius);background:#fff;margin-top:14px;padding:14px 16px;box-shadow:0 1px 2px #1118270a,0 10px 24px #11182714}.sectionTitle{color:var(--text);margin-bottom:10px;font-size:14px;font-weight:900}.remarks p{color:#0f172a;margin:6px 0;padding-left:24px;font-size:14px;line-height:1.55;position:relative}.remarks p:before{content:"";background:#111827;border-radius:50%;width:5px;height:5px;position:absolute;top:.72em;left:6px}.reviewerStrip{border:1px solid var(--line);border-radius:var(--radius-sm);background:#fafafa;justify-content:space-between;align-items:center;gap:14px;margin-bottom:10px;padding:10px;display:flex}.reviewerStrip span,.field span{color:var(--muted);font-size:12px;display:block}.reviewerStrip strong{margin-top:4px;font-size:15px;display:block}.reviewerStrip small{color:var(--muted);margin-top:3px;font-size:12px;display:block}.alertHeader{align-items:center}.alertHeader span{color:var(--muted);font-size:13px}.alertSummary{border:1px solid var(--line);border-radius:7px;justify-content:space-between;align-items:center;gap:10px;min-height:30px;padding:0 10px;font-size:13px;display:flex}.alertSummary.warn{color:var(--danger);background:#fff1f2;border-color:#fecaca}.alertSummary.ok{background:var(--ok-soft);color:var(--ok);border-color:#bbf7d0}.alertSummary strong{font-weight:500}.alertList{gap:10px;margin-top:10px;display:grid}.alertItem{border-radius:var(--radius-sm);background:#fff1f2;border:1px solid #fecaca;justify-content:space-between;align-items:flex-start;gap:14px;padding:12px;display:flex}.alertItem strong{font-size:15px;font-weight:900;display:block}.alertItem span:not(.miniBadge){color:var(--danger);font-family:var(--mono);margin-top:5px;font-size:13px;font-weight:900;display:block}.alertItem small{color:var(--muted);margin-top:8px;font-size:13px;display:block}.alertItem .miniBadge{flex:none}.alertNote{color:var(--muted);margin:12px 0 0;font-size:13px}.field{gap:6px;margin-top:10px;display:grid}.field input,.field textarea,.field select{border:1px solid var(--line);width:100%;color:var(--text);background:#fff;border-radius:10px;outline:none;padding:10px}.field textarea{resize:vertical;min-height:92px}.field input:focus,.field textarea:focus,.field select:focus{border-color:#0f766e94;box-shadow:0 0 0 3px #0f766e1f}.actions{gap:10px}.inlineActions{grid-template-columns:1fr 1fr;margin-top:10px;display:grid}.primary,.danger{justify-content:center;align-items:center;gap:8px;display:inline-flex}.primary{background:var(--accent-soft);color:var(--ink);border-color:#0f766e59}.danger{color:#7f1d1d;background:#b91c1c0f;border-color:#b91c1c59}.message{overflow-wrap:anywhere;word-break:break-word;border-radius:10px;margin-top:10px;padding:9px 10px;font-size:12px;line-height:1.45}.message.error{background:var(--danger-soft);color:var(--danger);border:1px solid #fecaca}.message.success{background:var(--ok-soft);color:var(--ok);border:1px solid #bbf7d0}.message.warnMessage{background:var(--warn-soft);color:var(--warn);border:1px solid #fed7aa}.historyList{border:1px solid var(--line);border-radius:var(--radius-sm);max-height:360px;overflow:auto}.historyRow{border-bottom:1px solid var(--line);grid-template-columns:118px minmax(0,1fr);gap:10px;padding:10px;display:grid}.historyRow:last-child{border-bottom:0}.historyRow time{color:var(--muted);font-family:var(--mono);font-size:12px}.historyTop{justify-content:space-between;gap:8px}.historyTop strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:13px;overflow:hidden}.historyRow p{white-space:pre-wrap;word-break:break-word;margin:6px 0 0;font-size:13px}.historyRow small{color:var(--muted);margin-top:5px;font-size:12px;display:block}.mobileActionBar{display:none}.muted{color:var(--muted);margin:0;font-size:13px}.shellState{text-align:center;background:var(--bg);align-content:center;place-items:center;gap:12px;min-height:100vh;padding:24px;display:grid}.shellState h1{letter-spacing:.04em;margin:0;font-size:22px}.shellState p{max-width:560px;color:var(--muted);margin:0;line-height:1.6}.stateCard{border:1px solid var(--line);border-radius:var(--radius);width:min(640px,100vw - 32px);box-shadow:var(--shadow);background:#fff;justify-items:center;gap:10px;padding:28px 24px 22px;display:grid}.stateCard.error{background:linear-gradient(#fff 0%,#fff7f7 100%);border-color:#f5c2c7}.stateIcon{color:var(--accent)}.stateCard.error .stateIcon{color:#0f766e}.spin{animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=920px){body{background:#fff}.appShell{width:100%;max-width:100vw;padding:0 clamp(12px,3vw,18px) 92px;overflow-x:hidden}.topbar{box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:#fff;border-width:0 0 1px;border-radius:0;margin:0;padding:12px 0;top:10px}.pageFlow{gap:0;margin-top:0}.approvalFlow{gap:0}.panel{box-shadow:none;border-width:0 0 1px;border-radius:0;padding:14px 0}.panelHeader{margin-bottom:10px}.panelHeader h1,.panelHeader h2{font-size:15px}.panelHeader p{font-size:12px}.docBadge{display:none}.reviewerStrip{background:0 0;border-width:1px 0;border-radius:0;padding:10px 0}.summaryGrid{background:0 0;border:0;grid-template-columns:1fr;padding:0}.infoItem{border-bottom:1px solid var(--line);grid-template-columns:94px minmax(0,1fr);padding:9px 0}.infoItem span{font-size:13px;font-weight:700}.infoItem strong{word-break:break-word;font-size:15px;font-weight:500}.amountSummary{border-width:1px 0;border-radius:0;padding:10px 0}.amountSummaryRow strong{font-size:15px}.amountSummaryRow.emphasis strong{font-size:20px}.desktopTableFrame{display:none}.mobileItems{border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-top:10px;display:grid}.mobileItemRow{border-bottom:1px solid var(--line);grid-template-columns:42px minmax(0,1fr);gap:10px;padding:12px 0;display:grid}.mobileItemRow:last-child{border-bottom:0}.mobileItemNo{color:var(--muted);font-family:var(--mono);padding-top:2px;font-size:13px}.mobileItemMain{min-width:0}.mobileItemMain strong{font-size:15px;font-weight:900;display:block}.mobileItemMain span{color:var(--muted);word-break:break-word;margin-top:4px;font-size:13px;line-height:1.45;display:block}.mobileItemMeta{grid-column:2;grid-template-columns:58px minmax(0,1fr) minmax(0,1fr);align-items:center;gap:8px;margin-top:8px;display:grid}.mobileItemMeta span{color:var(--muted);font-size:13px}.mobileItemMeta strong,.mobileItemMeta em{text-align:right;font-family:var(--mono);font-size:15px;font-style:normal}.mobileItemRow .priceJudgement{grid-column:2;justify-content:space-between;align-items:center;gap:8px;margin-top:8px;display:flex}.priceJudgement.compact small{font-size:12px}.remarks{border:1px solid var(--line);border-radius:14px;margin-top:14px;padding:14px}.sectionTitle{font-size:14px}.remarks p{font-size:14px;line-height:1.55}.alertHeader span{font-size:12px}.alertSummary{border-radius:8px;min-height:32px;padding:6px 9px}.alertList{display:none}.alertNote{font-size:12px;line-height:1.5}.mobileAlertFrame{background:#fff1f2;border:1px solid #fecaca;border-radius:12px;margin-top:10px;display:block;overflow:hidden}.mobileAlertFrame table{border-collapse:collapse;table-layout:fixed;width:100%;min-width:0}.mobileAlertFrame th:first-child,.mobileAlertFrame td:first-child{width:34%}.mobileAlertFrame th:not(:first-child),.mobileAlertFrame td:not(:first-child){width:22%}.mobileAlertFrame th,.mobileAlertFrame td{border-bottom:1px solid var(--line);vertical-align:top;overflow-wrap:anywhere;padding:10px 8px;font-size:12px}.mobileAlertFrame tr:last-child td{border-bottom:0}.mobileAlertFrame th{color:var(--muted);text-align:left;font-size:12px}.mobileAlertFrame td strong{font-size:13px;display:block}.mobileAlertFrame td span{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin-top:4px;font-size:11px;display:block;overflow:hidden}.field{margin-top:12px}.field span{font-size:12px}.field input,.field textarea,.field select{border-radius:10px;padding:10px}.field textarea{min-height:92px}.inlineActions{display:none}.mobileActionBar{left:max(0px, env(safe-area-inset-left,0px));right:max(0px, env(safe-area-inset-right,0px));z-index:40;width:auto;max-width:100vw;padding:10px clamp(12px, 3vw, 18px) calc(10px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fffffff5;grid-template-columns:1fr 1fr;gap:10px;display:grid;position:fixed;bottom:0}.historyList{border-width:1px 0;border-radius:0;max-height:45vh}.historyRow{grid-template-columns:118px minmax(0,1fr);padding:10px 0}.historyRow small,.historyRow p,.reviewerStrip small{overflow-wrap:anywhere}}@media (width<=520px){.logo{width:42px}.statusPill{padding:0 9px}.iconButton{display:none}.title{font-size:14px}.subtitle{max-width:220px}.panelHeader h1{font-size:16px}.amountSummaryRow.emphasis strong{font-size:20px}.historyRow{grid-template-columns:1fr}.mobileAlertFrame th,.mobileAlertFrame td{font-size:11px}.mobileAlertFrame td strong{font-size:12px}}
