/* ============================================================
   N-eSign UI — Premium Design System  "Ivory Editorial"
   2026-06-16  共通基盤。各ページは nz- プレフィクスのクラスを利用。
   テナントのブランド色は body 等へ --brand を inline 上書きで反映可。
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=Shippori+Mincho:wght@400;500;600;700;800&family=Noto+Sans+JP:wght@400;500;700&display=swap');

:root{
  --paper:#f5f1e8;        /* 生成りの紙 */
  --paper-2:#efe9dc;
  --surface:#fffdf8;      /* カード面（温かい白） */
  --inset:#f2ede2;        /* 入力欄など沈め面 */
  --ink:#1c1a15;          /* 濃インク（温黒） */
  --ink-2:#39342b;
  --muted:#7c766a;        /* 補助文字 */
  --faint:#a59f90;
  --line:#e5decf;         /* ヘアライン */
  --line-2:#d8cfba;
  --accent:#1c1a15;       /* 主アクション＝濃インク */
  --brand:#0f5132;        /* テナント色の一点（上書き可） */
  --brand-soft:rgba(15,81,50,.10);
  --danger:#8f2a2a;
  --danger-bg:#f7ecea;
  --warn-bg:#f6efdc;
  --warn-ink:#7a5b1e;
  --radius:16px;
  --radius-sm:11px;
  --shadow:0 24px 60px -32px rgba(48,38,18,.42);
  --shadow-sm:0 10px 26px -16px rgba(48,38,18,.30);
  --serif:'Shippori Mincho',serif;
  --sans:'Noto Sans JP',sans-serif;
}

*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent;}

body.nz{
  background:var(--paper);
  color:var(--ink);
  font-family:var(--sans);
  font-size:15px;
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

/* 紙の質感（極薄のグラデと斑） */
.nz-bg::before{
  content:'';position:fixed;inset:0;pointer-events:none;z-index:0;
  background:
    radial-gradient(ellipse 60% 45% at 18% 8%, rgba(255,255,255,.55) 0%, transparent 60%),
    radial-gradient(ellipse 55% 50% at 85% 95%, rgba(15,81,50,.04) 0%, transparent 60%);
}

/* ---- タイポ ---- */
.nz-serif{font-family:var(--serif);}
.nz-h1{font-family:var(--serif);font-weight:600;font-size:25px;letter-spacing:.04em;line-height:1.4;}
.nz-h2{font-family:var(--serif);font-weight:600;font-size:19px;letter-spacing:.03em;}
.nz-eyebrow{font-size:10.5px;letter-spacing:.28em;text-transform:uppercase;color:var(--faint);font-weight:700;}
.nz-muted{color:var(--muted);}

/* ---- ブランド / シール印 ---- */
.nz-brand{text-align:center;}
.nz-mark{
  display:inline-flex;align-items:center;justify-content:center;
  width:60px;height:60px;margin-bottom:16px;
}
.nz-mark svg{width:60px;height:60px;display:block;}
.nz-seal{display:inline-flex;align-items:center;justify-content:center;
  width:62px;height:62px;border-radius:16px;background:var(--ink);
  color:#f5f1e8;font-family:var(--serif);font-weight:600;font-size:30px;line-height:1;
  box-shadow:var(--shadow-sm);position:relative;}
.nz-seal::after{content:'';position:absolute;bottom:12px;left:50%;transform:translateX(-50%);
  width:26px;height:1.5px;background:var(--brand);border-radius:2px;}
.nz-sysname{font-family:var(--serif);font-weight:600;font-size:23px;letter-spacing:.06em;color:var(--ink);}
.nz-syssub{font-size:10.5px;letter-spacing:.26em;text-transform:uppercase;color:var(--faint);margin-top:7px;font-weight:700;}

/* ---- 罫線 ---- */
.nz-rule{height:1px;background:var(--line);border:0;margin:18px 0;}
.nz-rule-accent{height:0;border:0;margin:16px 0;
  border-top:1px solid var(--line-2);position:relative;}
.nz-rule-accent::after{content:'';position:absolute;left:50%;top:-1px;transform:translateX(-50%);
  width:46px;height:2px;background:var(--brand);}

/* ---- カード ---- */
.nz-card{
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  padding:34px 30px 28px;
}

/* ---- フォーム ---- */
.nz-field{margin-bottom:18px;}
.nz-label{display:block;font-size:11px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--muted);font-weight:700;margin-bottom:8px;}
.nz-input{
  width:100%;padding:14px 15px;
  background:var(--surface);
  border:1.5px solid var(--line-2);
  border-radius:var(--radius-sm);
  color:var(--ink);font-size:16px;font-family:var(--sans);
  outline:none;transition:border-color .18s, box-shadow .18s;
  -webkit-appearance:none;
}
.nz-input::placeholder{color:var(--faint);}
.nz-input:focus{border-color:var(--ink);box-shadow:0 0 0 3px rgba(28,26,21,.06);}

/* ---- ボタン ---- */
.nz-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  width:100%;padding:15px 18px;min-height:54px;
  background:var(--ink);color:#f6f1e7;border:1px solid var(--ink);
  border-radius:var(--radius-sm);
  font-family:var(--sans);font-size:15.5px;font-weight:700;letter-spacing:.08em;
  cursor:pointer;transition:transform .12s, background .2s, box-shadow .2s;
  box-shadow:var(--shadow-sm);
}
.nz-btn:hover{background:#000;}
.nz-btn:active{transform:translateY(1px);}
.nz-btn svg{width:17px;height:17px;}
.nz-btn-ghost{
  background:transparent;color:var(--ink);border:1.5px solid var(--line-2);
  box-shadow:none;
}
.nz-btn-ghost:hover{background:var(--inset);}

/* ---- 注記 / アラート ---- */
.nz-note{display:flex;gap:10px;align-items:flex-start;
  border-radius:var(--radius-sm);padding:11px 14px;font-size:12.5px;line-height:1.6;}
.nz-note svg{flex:0 0 auto;width:16px;height:16px;margin-top:2px;}
.nz-note-warn{background:var(--warn-bg);color:var(--warn-ink);border:1px solid #e7d6a8;}
.nz-note-err{background:var(--danger-bg);color:var(--danger);border:1px solid #e6c9c5;}

/* ---- リンク ---- */
.nz-link{color:var(--muted);text-decoration:none;border-bottom:1px solid transparent;transition:.18s;}
.nz-link:hover{color:var(--ink);border-bottom-color:var(--line-2);}

/* ---- フッター ---- */
.nz-foot{text-align:center;margin-top:18px;font-size:10.5px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--faint);font-weight:600;}

/* ---- バッジ（一覧用・横展開で使用） ---- */
.nz-badge{display:inline-flex;align-items:center;gap:6px;
  padding:3px 10px;border-radius:999px;font-size:11px;font-weight:700;letter-spacing:.04em;
  border:1px solid var(--line-2);background:var(--inset);color:var(--ink-2);}
.nz-badge-ok{background:var(--brand-soft);color:var(--brand);border-color:transparent;}

/* ---- 管理画面 インラインアイコン（絵文字置換用） ---- */
.aic{width:1em;height:1em;vertical-align:-.14em;display:inline-block;flex:0 0 auto;}
.qa-icon .aic,.bi .aic,.rc-icon .aic{width:1em;height:1em;}
