    :root {
      --bg: #f7f9fc;
      --card: #ffffff;
      --input: #ffffff;
      --text: #17243a;
      --muted: #4a5a73;
      --border: #dce3ea;
      --primary: #0f7043;
      --primary-hover: #0b5c37;
      --primary-fg: #ffffff;
      --warn-bg: #fdf3e0;
      --warn-border: #e3b959;
      --warn-text: #9a6206;
      --err-bg: #fdecec;
      --err-border: #f0a8ae;
      --err-text: #c62f3b;
      --ok-bg: #e9f7f0;
      --ok-border: #7fcba6;
      --ok-text: #0f7043;
    }
    :root[data-theme="dark"] {
      --bg: #090d14;
      --card: #131b26;
      --input: #0c1220;
      --text: #e5edf7;
      --muted: #93a5bc;
      --border: #293747;
      --primary: #00e58a;
      --primary-hover: #3cf59f;
      --primary-fg: #06251a;
      --warn-bg: rgba(255, 178, 36, 0.12);
      --warn-border: rgba(255, 178, 36, 0.45);
      --warn-text: #ffb224;
      --err-bg: rgba(255, 92, 108, 0.12);
      --err-border: rgba(255, 92, 108, 0.45);
      --err-text: #ff5c6c;
      --ok-bg: rgba(0, 229, 138, 0.12);
      --ok-border: rgba(0, 229, 138, 0.45);
      --ok-text: #00e58a;
    }
    * { box-sizing: border-box; }
    body {
      margin: 0;
      padding: 20px 14px 48px;
      font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Hiragino Sans", "Noto Sans JP", sans-serif;
      background: var(--bg);
      color: var(--text);
      line-height: 1.6;
    }
    .container { max-width: 880px; margin: 0 auto; }
    .card {
      background: var(--card);
      border: 1px solid var(--border);
      border-radius: 12px;
      padding: 18px 20px;
      margin-bottom: 16px;
      box-shadow: 0 2px 6px rgba(0,0,0,0.04);
    }
    h1 { font-size: 1.35rem; margin: 0 0 6px 0; }
    h2 { font-size: 1.05rem; margin: 0 0 10px 0; border-bottom: 1px solid var(--border); padding-bottom: 6px; }
    label { display: block; font-weight: 700; font-size: 0.9rem; margin-bottom: 4px; }
    textarea, input[type="text"], input[type="password"], input[type="file"] {
      width: 100%;
      max-width: 100%;
      box-sizing: border-box;
      padding: 9px 11px;
      border: 1px solid var(--border);
      border-radius: 8px;
      background: var(--input);
      color: var(--text);
      font-size: 0.92rem;
      word-break: break-all;
      overflow-wrap: anywhere;
    }
    textarea { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 0.82rem; }
    .btn {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 6px;
      padding: 9px 16px;
      border-radius: 8px;
      border: 1px solid var(--border);
      background: var(--card);
      color: var(--text);
      font-weight: 700;
      font-size: 0.9rem;
      cursor: pointer;
      text-decoration: none;
    }
    .btn-primary {
      background: var(--primary);
      color: var(--primary-fg);
      border-color: var(--primary);
    }
    .btn-primary:hover { background: var(--primary-hover); }
    .status {
      padding: 12px 14px;
      border-radius: 8px;
      font-size: 0.88rem;
      white-space: pre-wrap;
      margin-top: 10px;
      border: 1px solid var(--border);
    }
    .status.warn { background: var(--warn-bg); border-color: var(--warn-border); color: var(--warn-text); }
    .status.err { background: var(--err-bg); border-color: var(--err-border); color: var(--err-text); font-weight: 700; }
    .status.ok { background: var(--ok-bg); border-color: var(--ok-border); color: var(--ok-text); font-weight: 700; }
    .meta-grid {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
      gap: 8px 16px;
      font-size: 0.85rem;
    }
  
