:root{
  --ink:#1b1f23; --muted:#5f6b76; --line:#d9dee3; --bg:#f4f6f8; --card:#fff;
  --accent:#2f7d32; --accent-ink:#fff; --warn:#b3261e; --warn-bg:#fdecea; --ok:#1e6b35; --ok-bg:#e8f5ec;
  --gray-bg:#eef0f2;
}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--ink);
  font-family:"Hiragino Sans","Hiragino Kaku Gothic ProN","Yu Gothic UI","Meiryo",system-ui,sans-serif;font-size:15px;line-height:1.6}
[hidden]{display:none!important}
a{color:var(--accent)}
h1{font-size:20px;margin:0 0 8px}
h2{font-size:16px;margin:0 0 10px}
.small{font-size:13px}
.muted{color:var(--muted)}
.err{color:var(--warn);min-height:1.4em;margin:8px 0 0}
.ok{color:var(--ok)}
.warn{color:var(--warn)}
button{font:inherit;padding:9px 16px;border-radius:6px;border:1px solid var(--line);background:#fff;color:var(--ink);cursor:pointer}
button:disabled{opacity:.45;cursor:not-allowed}
button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:600}
button.link{border:none;background:none;color:var(--muted);padding:0 4px;text-decoration:underline}
input,select{font:inherit;padding:8px 10px;border:1px solid var(--line);border-radius:6px;background:#fff;width:100%}
label{display:block;margin:0 0 12px;font-size:13px;color:var(--muted)}
label input,label select{margin-top:4px;color:var(--ink);font-size:15px}
label.check{display:flex;gap:8px;align-items:flex-start;color:var(--ink);font-size:14px}
label.check input{width:auto;margin-top:4px}

.top{display:flex;align-items:center;gap:20px;padding:10px 20px;background:#fff;border-bottom:1px solid var(--line);flex-wrap:wrap}
.brand{font-size:15px}
.brand b{color:var(--accent);letter-spacing:.04em}
.top nav{display:flex;gap:4px;flex:1}
.top nav a{padding:6px 12px;border-radius:6px;text-decoration:none;color:var(--ink)}
.top nav a.on{background:var(--gray-bg);font-weight:600}
.me{font-size:13px;color:var(--muted);display:flex;gap:10px;align-items:center}
.me .sub{color:var(--muted)}
main{max-width:1280px;margin:0 auto;padding:20px 16px 60px}
.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:18px;margin-bottom:16px}
.narrow{max-width:420px;margin:40px auto}
.head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:6px}
.head input[type=search]{max-width:340px}
.legend{display:flex;gap:8px;margin:4px 0 12px}

.badge{display:inline-block;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap}
.badge.ready{background:var(--ok-bg);color:var(--ok)}
.badge.issued{background:#e7eefb;color:#1d4f9a}
.badge.blocked{background:var(--gray-bg);color:var(--muted)}
.badge.void{background:var(--warn-bg);color:var(--warn)}

table.list{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden}
table.list th,table.list td{padding:10px 12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;font-size:14px}
table.list th{background:#fafbfc;font-size:12px;color:var(--muted);font-weight:600;white-space:nowrap}
table.list tr.row{cursor:pointer}
table.list tr.row:hover td{background:#f8faf8}
table.list td.why{font-size:12px;color:var(--muted);min-width:220px}
table.list td.nw{white-space:nowrap}
#list,#issued,#users,#voids{overflow-x:auto}
.site-h td{background:#f2f4f6!important;font-weight:600;font-size:13px}

.detail{display:grid;grid-template-columns:340px minmax(0,1fr);gap:16px;align-items:start}
.detail>*{min-width:0}
.side dl{display:grid;grid-template-columns:92px 1fr;gap:4px 10px;margin:0 0 14px;font-size:14px}
.side dt{color:var(--muted)}
.side dd{margin:0}
.side button{width:100%;margin-bottom:8px}
.blockbox{background:var(--gray-bg);border-radius:8px;padding:12px 14px;margin-bottom:12px;font-size:14px}
.blockbox ul{margin:6px 0 6px 18px;padding:0}
.status{min-height:1.4em;font-size:14px}
.status[data-kind=ok]{color:var(--ok)}
.status[data-kind=warn]{color:var(--warn)}
.preview{background:#e9ecef;overflow:hidden;padding:16px}
.fit{position:relative;margin:0 auto}
.fit .nt{position:absolute;left:0;top:0;transform-origin:0 0;box-shadow:0 2px 16px rgba(0,0,0,.18)}
@media (max-width:900px){.detail{grid-template-columns:minmax(0,1fr)}.top nav{order:3;flex-basis:100%}}

.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:0 14px;align-items:end;margin-top:12px}
.add{margin-top:14px}
.add summary{cursor:pointer;color:var(--accent);font-weight:600}
.newpw{margin-top:14px;padding:12px 14px;border:2px solid var(--accent);border-radius:8px;background:var(--ok-bg);font-size:14px}
.newpw code{font-size:18px;letter-spacing:.06em;user-select:all}
.scroll{max-height:420px;overflow:auto}
.scroll table td{font-size:12px}

/* ── 納品書の紙面（2026-09-02 確定様式・7列・注記2項）── */
.nt{width:210mm;min-height:297mm;background:#fff;color:#111;padding:14mm 15mm 10mm;text-align:left;
  font-family:"Hiragino Sans","Hiragino Kaku Gothic ProN","Noto Sans JP","Yu Gothic",sans-serif;font-size:9.4pt;line-height:1.5}
.nt *{box-sizing:border-box}
.nt-title{font-family:"Hiragino Mincho ProN","Yu Mincho","YuMincho","Noto Serif JP",serif;font-size:22pt;
  letter-spacing:.5em;text-align:center;margin:0 0 5mm;font-weight:600}
.nt-meta{text-align:right;font-size:9pt;margin:0 0 4mm}
.nt-meta div{margin-bottom:1mm}
.nt-parties{display:flex;justify-content:space-between;align-items:flex-start;gap:6mm;margin-bottom:4mm}
.nt-to{font-size:12pt;padding-top:1mm;min-width:0}
.nt-to .nm{display:inline-block;min-width:52mm;max-width:88mm;border-bottom:1px solid #111;padding:0 2mm 1.5mm 1mm}
.nt-to .sama{font-size:10.5pt;margin-left:3mm}
.nt-from{font-size:9pt;line-height:1.7;position:relative;padding-right:20mm;flex:none}
.nt-from .co{font-size:10.5pt;font-weight:600}
.nt-seal{position:absolute;right:2mm;top:8mm;width:15mm;height:15mm;border:1px solid #bbb;border-radius:2px;
  color:#bbb;font-size:7pt;display:flex;align-items:center;justify-content:center}
.nt-lead{margin:0 0 3.2mm}
.nt-h{font-size:9.5pt;font-weight:600;margin:0 0 2mm;padding-left:2mm;border-left:3px solid #111;line-height:1.5}
.nt table{width:100%;border-collapse:collapse;font-size:inherit;background:#fff}
.nt .nt-info td{border:1px solid #999;padding:1.35mm 2mm;font-size:8.8pt;width:64mm;color:#111;background:#fff;text-align:left}
.nt .nt-info td.h{background:#f2f2f2;width:26mm;white-space:nowrap}
.nt .nt-detail{margin-top:1mm}
.nt .nt-detail th,.nt .nt-detail td{border:1px solid #999;padding:1mm 1.4mm;font-size:8.4pt;text-align:center;vertical-align:middle;color:#111;white-space:nowrap}
.nt .nt-detail th{background:#f2f2f2;font-weight:600;font-size:8pt;line-height:1.3}
.nt .nt-detail th span{font-weight:400}
.nt .nt-detail td.l{text-align:left;white-space:normal}
.nt .nt-detail td.r{text-align:right;padding-right:3mm}
.nt .nt-detail tfoot td{background:#fafafa;font-weight:600}
.nt .w10{width:10mm}.nt .w16{width:16mm}.nt .w28{width:28mm}.nt .w30{width:30mm}
.nt-sec{margin-bottom:2.8mm}
.nt-notes{font-size:7.3pt;line-height:1.45;color:#333}
.nt-notes ol{margin:0;padding-left:5mm}
.nt-notes li{margin-bottom:.8mm}
.nt-foot{margin-top:2mm;font-size:8pt;color:#666;border-top:1px solid #ddd;padding-top:2mm;display:flex;justify-content:space-between}

/* PDF作成用の裏側の紙（画面外） */
.print-host{position:fixed;left:-10000px;top:0;pointer-events:none}
@media print{
  @page{size:A4 portrait;margin:0}
  body{background:#fff}
  .top,main{display:none!important}
  .print-host{position:static;left:auto}
  .print-host .nt{box-shadow:none}
}
