:root { font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial; }
body { margin: 18px; color: #111; }
h1 { margin: 0; font-size: 22px; }
.sub { margin: 4px 0 0; color: #555; }

.top { display:flex; align-items:flex-start; justify-content:space-between; gap: 12px; margin-bottom: 12px; }
.actions button { padding: 10px 12px; border: 1px solid #bbb; background: #fff; border-radius: 10px; cursor:pointer; }
.actions button:hover { background:#f3f3f3; }

/* Link-Button (Logout) */
.linkBtn {
  display:inline-block;
  padding: 10px 12px;
  border: 1px solid #bbb;
  background: #fff;
  border-radius: 10px;
  text-decoration: none;
  color: #111;
}
.linkBtn:hover { background:#f3f3f3; }

.meta { display:grid; grid-template-columns: repeat(3, minmax(160px, 1fr)); gap: 10px; margin: 12px 0 14px; }
.field label { display:block; font-size: 12px; color:#444; margin-bottom:4px; }
.field input, .field select, .field button {
  width: 100%; padding: 10px; border:1px solid #bbb; border-radius: 10px; background:#fff;
}
.field button { cursor:pointer; }

.sheet { border: 1px solid #ddd; border-radius: 14px; padding: 14px; }
table { width:100%; border-collapse: collapse; }
th, td { border:1px solid #222; padding: 8px; font-size: 14px; }
th { background:#f5f5f5; text-align:center; }
td:first-child { font-weight: 600; width: 140px; }
td.cell { padding: 4px; }
td.cell input {
  width: 100%; border: none; outline: none; padding: 6px; font-size: 14px;
}
tr.total td { font-weight: 700; background:#fafafa; }
tfoot td { text-align: right; }
tfoot td:first-child { text-align: left; }

.hint { display:flex; gap: 14px; margin-top: 12px; flex-wrap: wrap; }
.chk { display:flex; align-items:center; gap: 8px; color:#333; }

.sign { display:grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-top: 26px; }
.line { border-top: 2px solid #111; padding-top: 8px; font-size: 12px; color:#333; }

/* Login */
.loginWrap { min-height: 100vh; display:flex; align-items:center; justify-content:center; padding: 24px; }
.loginCard {
  width: 100%;
  max-width: 420px;
  border: 1px solid #ddd;
  border-radius: 16px;
  padding: 18px;
  box-shadow: 0 10px 30px rgba(0,0,0,0.06);
  background: #fff;
}
.loginLabel { display:block; margin: 10px 0 6px; font-size: 12px; color:#444; }
.loginInput {
  width: 100%;
  padding: 12px;
  border: 1px solid #bbb;
  border-radius: 12px;
  font-size: 14px;
}
.loginBtn {
  width: 100%;
  margin-top: 14px;
  padding: 12px;
  border: 1px solid #bbb;
  background: #fff;
  border-radius: 12px;
  cursor: pointer;
}
.loginBtn:hover { background:#f3f3f3; }
.loginError {
  margin: 12px 0;
  padding: 10px;
  border: 1px solid #e0b4b4;
  background: #fff0f0;
  border-radius: 12px;
  color: #7a1a1a;
}
.loginFoot { margin-top: 12px; color:#666; font-size: 12px; }

@media print {
  .noprint { display:none !important; }
  body { margin: 0; }
  .sheet { border:none; padding: 0; }
  th { background:#fff; }
}
