:root{
  --bg:#fcfcfc; --card:#fff; --text:#0b1220; --muted:#666666;
  --border:#dddddd;
/*  --border:rgba(11,18,32,.12);*/
  --accent:#2563eb; --accent2:#7c3aed;
  --shadow:0 10px 28px rgba(11,18,32,.10);
  --radius:8px;
  --font: "Segoe UI", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;

  /* menu.css compatibility tokens (別PJ資産の流用を前提にマッピング) */
  --blue:#4f80b8;
  --bdr_gray:#bbb;
  --bg_white:#fff;
  --bg_gray:#eee;
  --green:#528f76;
  --black:#111;
  --txt_gray:var(--muted);
  --txt_white:#ffffff;
  --txt_red:#ff0000;
  --txt_black:#111;
  --txt_gray:#666;
}

*{box-sizing:border-box}
body{
  margin:0;
  font-size:14px;
  font-family:var(--font);
  background:var(--bg);
  color:var(--text);
  line-height:1.25
}
.readonly{background:var(--bg_gray) !important;}
.container{max-width:980px;margin:0 auto;padding:20px}
.topbar{position:sticky;top:0;backdrop-filter:blur(10px);border-bottom:1px solid var(--border)}
.topbar-inner{display:flex;justify-content:space-between;align-items:center;max-width:980px;margin:0 auto;}
.brand{display:flex;gap:10px;align-items:center;font-weight:800}
.logo{width:34px;height:34px;border-radius:var(--radius);background:linear-gradient(135deg,var(--accent),var(--accent2));display:inline-block}
.badge{font-size:0.9rem;color:var(--muted);border:1px solid var(--border);padding:4px 10px;border-radius:var(--radius);background:#fff}
.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}
.card-pad{padding:18px}
.h1{font-size:22px;margin:0 0 10px}
.p{color:var(--muted);margin:0 0 16px}
.label{display:block;font-size:0.9rem;color:var(--muted);margin:0 0 6px}
.input{width:100%;padding:13px 14px;border-radius:var(--radius);border:1px solid var(--border);background:#fff}
.btn{
  display:inline-flex;
  justify-content:center;
  align-items:center;
  gap:8px;
  padding:10px 14px;
  min-height:40px;
  line-height:1;
  border-radius:var(--radius);
  border:1px solid var(--bdr_gray);
  background:var(--bg_gray);
  color:var(--txt_black);
  cursor:pointer;
  text-decoration:none;
  appearance:none;
}

.btn-primary{
  border-color: var(--border);
  background:var(--green);
  filter: brightness(120%);
}
.hr{height:1px;background:var(--border);margin:14px 0}
.small{font-size:12px;color:var(--muted)}
.txt_caution{font-size:12px;color:var(--txt_red)}
/* Links styled as buttons */
a.btn{ text-decoration:none; }

/* List/table action buttons: slightly smaller */
.table .btn{
  padding:6px 10px;
  min-height:32px;
  font-size:0.85rem;
}
