/* 管理経費台帳アプリ スタイル */
* { box-sizing: border-box; }
body { font-family: -apple-system, "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif; }

.btn { @apply px-4 py-2 rounded-md font-medium transition; }

/* 印刷用スタイル */
@media print {
  .no-print { display: none !important; }
  body { background: #fff !important; }
  .print-page {
    page-break-after: always;
    padding: 0;
  }
  .print-page:last-child { page-break-after: auto; }
  #app { padding: 0 !important; }
}

@media screen {
  .print-only { display: none; }
}

/* テーブル */
.ledger-table th, .ledger-table td {
  border: 1px solid #cbd5e1;
  padding: 4px 8px;
}

/* スプレッドシート型テーブル */
.sheet-table { border-collapse: collapse; }
.sheet-table th, .sheet-table td {
  border: 1px solid #cbd5e1;
  padding: 0;
  height: 38px;
}
.sheet-table th { padding: 6px 4px; font-weight: 600; }
.num-cell { text-align: center; color: #94a3b8; font-size: 12px; background: #f8fafc; }
.cell-input {
  width: 100%;
  height: 100%;
  border: none;
  padding: 4px 6px;
  background: transparent;
  outline: none;
  font-size: 14px;
}
.cell-input:focus { background: #eef2ff; box-shadow: inset 0 0 0 2px #6366f1; }
.cell-input:disabled { background: #f1f5f9; color: #475569; }
.sheet-table td:has(> .prop-name) { padding: 4px 6px; }
.amount-cell { padding-right: 8px; }

/* メール送信ON/OFFのトグルスイッチ */
.notify-toggle {
  position: relative;
  display: inline-block;
  width: 42px;
  height: 22px;
  border-radius: 9999px;
  transition: background-color .2s;
  vertical-align: middle;
  cursor: pointer;
  border: none;
}
.notify-toggle.on { background-color: #16a34a; }
.notify-toggle.off { background-color: #cbd5e1; }
.notify-knob {
  position: absolute;
  top: 2px;
  left: 2px;
  width: 18px;
  height: 18px;
  background: #fff;
  border-radius: 50%;
  transition: left .2s;
  box-shadow: 0 1px 2px rgba(0,0,0,.3);
}
.notify-toggle.on .notify-knob { left: 22px; }
