/* MirAI-V2 — Delivery document stylesheet (formal, print/A4-ready, CJK-capable) */
:root{
  --ink:#1a1a1a; --muted:#555; --line:#d0d0d0; --accent:#0b5cad; --accent-soft:#eaf2fb;
  --warn:#b00020; --warn-soft:#fdecef; --ok:#0a7d33;
  --font-sans:"Pretendard Variable","Pretendard","Yu Gothic UI","Meiryo","Noto Sans JP","Malgun Gothic","Segoe UI",sans-serif;
  --font-mono:"Cascadia Code","Consolas","Noto Sans Mono CJK JP",monospace;
}
*{box-sizing:border-box;}
html{font-size:15px;}
body{margin:0;color:var(--ink);font-family:var(--font-sans);line-height:1.7;background:#f4f5f7;}
.page{max-width:820px;margin:0 auto;background:#fff;padding:48px 56px;box-shadow:0 1px 4px rgba(0,0,0,.08);}

/* Cover page */
.cover{min-height:60vh;display:flex;flex-direction:column;justify-content:center;border-bottom:3px solid var(--accent);padding-bottom:40px;margin-bottom:8px;}
.cover .product{font-size:.95rem;letter-spacing:.08em;color:var(--accent);font-weight:600;}
.cover h1{font-size:2.1rem;margin:.4em 0 .2em;line-height:1.3;}
.cover .subtitle{font-size:1.05rem;color:var(--muted);margin-bottom:2em;}
.cover .meta{font-size:.9rem;color:#333;border-top:1px solid var(--line);padding-top:1em;}
.cover .meta table{border:none;width:auto;}
.cover .meta td{border:none;padding:3px 18px 3px 0;}
.cover .meta td:first-child{color:var(--muted);white-space:nowrap;}
.confidential{display:inline-block;border:1px solid var(--warn);color:var(--warn);font-size:.72rem;
  padding:2px 8px;border-radius:3px;letter-spacing:.04em;margin-bottom:1.2em;}

/* Revision history */
.revision h2,.toc h2{font-size:1.1rem;}
table{border-collapse:collapse;width:100%;margin:1em 0;font-size:.88rem;}
th,td{border:1px solid var(--line);padding:7px 10px;text-align:left;vertical-align:top;}
th{background:var(--accent-soft);font-weight:600;}
tbody tr:nth-child(even){background:#fafbfc;}

/* Table of contents */
.toc ol{margin:0;padding-left:1.4em;}
.toc a{color:var(--accent);text-decoration:none;}
.toc a:hover{text-decoration:underline;}

/* Body */
h1{font-size:1.7rem;border-bottom:2px solid var(--accent);padding-bottom:.25em;margin-top:1.6em;}
h2{font-size:1.3rem;margin-top:1.8em;border-left:4px solid var(--accent);padding-left:.5em;}
h3{font-size:1.08rem;margin-top:1.4em;color:#222;}
p,li{font-size:.95rem;}
code{font-family:var(--font-mono);background:#f0f2f4;padding:1px 5px;border-radius:3px;font-size:.85em;}
pre{background:#1e1e2e;color:#e6e6e6;padding:14px 16px;border-radius:6px;overflow:auto;font-family:var(--font-mono);font-size:.82rem;}
.note,.warn,.ok{padding:12px 16px;border-radius:6px;margin:1em 0;font-size:.9rem;}
.note{background:var(--accent-soft);border-left:4px solid var(--accent);}
.warn{background:var(--warn-soft);border-left:4px solid var(--warn);}
.ok{background:#e9f7ee;border-left:4px solid var(--ok);}
.placeholder{background:#fff3cd;border:1px dashed #c9a300;padding:0 4px;border-radius:3px;font-style:normal;}
.checklist{list-style:none;padding-left:0;}
.checklist li::before{content:"\2610  ";color:var(--accent);font-weight:700;}
footer.docfoot{margin-top:3em;border-top:1px solid var(--line);padding-top:1em;color:var(--muted);font-size:.8rem;display:flex;justify-content:space-between;}

@media print{
  body{background:#fff;}
  .page{box-shadow:none;max-width:none;margin:0;padding:0 12mm;}
  .cover{min-height:auto;page-break-after:always;}
  h1{page-break-before:auto;}
  .page-break{page-break-before:always;}
  @page{size:A4;margin:18mm 0;}
}

/* ============================================================
   Sign-off & fillable form components  (hardcopy / print sign)
   Used by signature-forms_*.html and the signature sections of
   acceptance-test_*.html / maintenance-sla_*.html.
   ============================================================ */

/* Screen-only print toolbar */
.formbar{position:sticky;top:0;z-index:20;display:flex;gap:10px;align-items:center;
  justify-content:flex-end;background:rgba(255,255,255,.94);backdrop-filter:saturate(1.2) blur(4px);
  margin:-48px -56px 26px;padding:11px 56px;border-bottom:1px solid var(--line);}
.formbar .hint{margin-right:auto;color:var(--muted);font-size:.82rem;}
.btn{font:inherit;font-size:.86rem;border:1px solid var(--accent);color:#fff;background:var(--accent);
  padding:7px 16px;border-radius:6px;cursor:pointer;line-height:1.2;}
.btn.ghost{background:#fff;color:var(--accent);}
.btn:hover{filter:brightness(1.06);}

/* Fillable field — type on screen, prints as a clean ruled blank.
   <span class="fld" contenteditable="true" data-ph="YYYY-MM-DD"></span> */
.fld{display:inline-block;min-width:7em;padding:0 .35em;border-bottom:1px solid #9aa3ad;
  line-height:1.95;color:var(--ink);outline:none;vertical-align:baseline;border-radius:2px 2px 0 0;}
.fld:hover{background:#f3f7fc;}
.fld:focus{background:var(--accent-soft);border-bottom-color:var(--accent);}
.fld[data-ph]:empty::before{content:attr(data-ph);color:#abb2bb;}
.fld.block{display:block;width:100%;min-width:0;}
.fld.lg{min-width:13em;}
/* Auto-filled — mirrored from a linked field above (screen cue only) */
.fld[data-autofilled]{background:#eef5ff;border-bottom-style:dashed;border-bottom-color:var(--accent);}
.fld[data-autofilled]:focus{background:var(--accent-soft);}

/* Seal / stamp box */
.seal-box{display:inline-block;position:relative;width:20mm;height:20mm;border:1px solid #9aa3ad;
  border-radius:4px;background:#fff;vertical-align:middle;}
.seal-box::after{content:attr(data-seal);position:absolute;top:3px;right:5px;font-size:.58rem;color:#c2c8cf;}

/* Key-value header block for forms */
table.kv{table-layout:fixed;}
table.kv th{width:30%;background:#fafbfc;color:#333;font-weight:600;}
table.kv td .fld{width:100%;min-width:0;}

/* Signature block (table: rows = fields, columns = parties) */
.sigtable{table-layout:fixed;margin-top:.8em;}
.sigtable thead th{background:var(--accent-soft);text-align:center;font-size:.92rem;}
.sigtable tbody th{width:8.5em;background:#fafbfc;color:#333;font-weight:600;white-space:nowrap;}
.sigtable td{vertical-align:bottom;}
.sigtable td .fld{width:100%;min-width:0;border:none;border-radius:0;}
.sigtable td .fld:focus{background:var(--accent-soft);}
.sigtable .row-sign td{height:17mm;}
.sigtable .row-seal td{height:22mm;text-align:center;vertical-align:middle;}

/* Result / choice boxes */
.choices{margin:.5em 0;}
.choice{display:flex;align-items:center;gap:.55em;padding:5px 0;font-size:.96rem;cursor:pointer;
  user-select:none;width:max-content;}
.choice .box{display:inline-flex;align-items:center;justify-content:center;width:1.15em;height:1.15em;
  border:1.5px solid var(--accent);border-radius:3px;color:var(--accent);font-weight:700;line-height:1;flex:0 0 auto;}
.choice.checked .box::after{content:"\2713";}
.formhead{display:flex;align-items:baseline;justify-content:space-between;gap:1em;}
.formhead .formno{color:var(--accent);font-weight:600;font-size:.9rem;letter-spacing:.04em;}

@media print{
  thead{display:table-header-group;}
  tr,img,pre,.note,.warn,.ok,.sigblock,.sigtable,.seal-box,.choices,table.kv{break-inside:avoid;}
  h1,h2,h3{break-after:avoid;}
  .form-page{break-before:always;}
  .formbar,.no-print{display:none !important;}
  .fld{border-bottom:1px solid #444;background:none !important;}
  .fld[data-autofilled]{border-bottom-style:solid !important;border-bottom-color:#444 !important;}
  .fld[data-ph]:empty::before{content:"";}
  .choice .box{border-color:#000;color:#000;}
  a[href]{color:inherit;text-decoration:none;}
}
