Files
njts-accounting-core/frontend/css/mobile.css
2026-06-01 00:35:29 +09:00

381 lines
9.7 KiB
CSS
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/* ==================================================================
mobile.css — iOS Safari・Android Chrome レスポンシブ対応
ブレークポイント: 767px 以下をモバイルとして扱う
PC のレイアウトは変更しない (screen media query で完全に隔離)
================================================================== */
/* ── iOS Safari フォントブースト無効化 ── */
html {
-webkit-text-size-adjust: 100%;
}
@media screen and (max-width: 767px) {
/* ── body 余白を縮小 ── */
body {
padding: 12px !important;
margin: 8px !important;
}
/* ── h1・h2 フォントサイズ ── */
h1 {
font-size: 1.35rem !important;
}
h2 {
font-size: 1.1rem !important;
}
/* ================================================================
テーブル: 横スクロール
会計・給与テーブルは列数が多く、横スクロールが最適解
================================================================ */
table {
display: block;
overflow-x: auto;
-webkit-overflow-scrolling: touch;
max-width: 100%;
}
/* テーブルを包む overflow:hidden ラッパーも解放する */
.doc-table-wrap {
overflow-x: auto !important;
}
/* ================================================================
フォーム入力: 16px で iOS の自動ズームを防ぐ
================================================================ */
input[type="text"],
input[type="date"],
input[type="number"],
input[type="password"],
input[type="email"],
input[type="tel"],
select,
textarea {
font-size: 16px !important;
max-width: 100%;
box-sizing: border-box;
}
/* ================================================================
ボタン: タップ領域を 44px 以上に (iOS HIG 推奨)
================================================================ */
button,
input[type="submit"],
input[type="button"],
.btn,
.upload-btn,
.back-link,
.logout-btn,
.change-pw-btn {
min-height: 44px;
touch-action: manipulation;
}
/* ================================================================
index.html
================================================================ */
/* 2カラムカードグリッド → 1カラム */
.grid {
grid-template-columns: 1fr !important;
}
/* ヘッダー: タイトルとユーザー情報を縦積み */
header {
flex-direction: column !important;
align-items: flex-start !important;
gap: 10px !important;
}
header h1 {
font-size: 18px !important;
}
.user-info {
flex-wrap: wrap !important;
width: 100% !important;
gap: 8px !important;
font-size: 13px !important;
}
/* カード内ボタン群: 縦積み・margin-left をリセット */
.card p:last-child {
display: flex !important;
flex-direction: column !important;
gap: 8px !important;
}
.btn {
margin-left: 0 !important;
display: block !important;
text-align: center !important;
box-sizing: border-box !important;
}
/* パスワード変更モーダル: 画面幅に合わせる */
.modal-box {
width: 92vw !important;
max-width: 92vw !important;
padding: 20px !important;
}
/* ================================================================
payroll.html (給与システムメニュー)
================================================================ */
.menu-grid {
grid-template-columns: 1fr !important;
}
.menu-card {
padding: 20px !important;
}
/* ================================================================
journal-entry.html / journal-edit.html (仕訳入力)
================================================================ */
/* 検索フォーム: 2カラムグリッド → 1カラム */
.search-form-grid {
grid-template-columns: 1fr !important;
gap: 12px !important;
}
.search-form-row,
.search-form-row-full {
flex-direction: column !important;
align-items: flex-start !important;
gap: 4px !important;
}
.search-form-row label,
.search-form-row-full label {
min-width: unset !important;
width: 100%;
}
.search-form-row input,
.search-form-row select,
.search-form-row-full input,
.search-form-row-full select {
width: 100% !important;
box-sizing: border-box !important;
}
/* 検索ボタン群 */
.search-buttons {
flex-wrap: wrap !important;
gap: 6px !important;
}
.search-buttons button {
flex: 1 1 auto !important;
min-width: 100px !important;
}
/* .row: 日付・摘要・勘定科目などの入力行 */
.row {
flex-direction: column !important;
align-items: flex-start !important;
gap: 6px !important;
width: 100%;
}
.row label {
min-width: unset !important;
}
.row input,
.row select {
width: 100% !important;
box-sizing: border-box !important;
}
/* ================================================================
trial-balance.html (試算表)
テキスト中心の inline 検索フォームを縦積みにする
================================================================ */
.search-form {
text-align: left !important;
padding: 12px !important;
}
/* trial-balance の検索フォームは label/input が直接子要素 */
.search-form > label {
display: block !important;
margin: 6px 0 2px !important;
}
.search-form > input[type="text"],
.search-form > input[type="date"],
.search-form > input[type="number"] {
display: block !important;
width: 100% !important;
margin: 0 0 8px 15px !important;
box-sizing: border-box !important;
}
.search-form > button {
display: inline-block !important;
margin: 4px 4px 0 0 !important;
width: auto !important;
min-width: 80px;
}
/* ================================================================
nenkin-portal.html (社会保険電子文書)
================================================================ */
.page-header {
flex-direction: column !important;
align-items: flex-start !important;
gap: 10px !important;
}
.upload-zone {
padding: 20px 16px !important;
}
/* フィルターバー: wrapping は既存スタイルで対応済み、幅を補完 */
.filter-bar {
gap: 8px !important;
}
.filter-select {
width: 100% !important;
box-sizing: border-box !important;
}
/* ================================================================
payroll-employees.html / payroll-settings.html (タブ UI)
================================================================ */
.nav-tabs {
flex-wrap: wrap !important;
justify-content: flex-start !important;
gap: 6px !important;
border-bottom: none !important;
}
.nav-tab {
padding: 8px 14px !important;
font-size: 0.85rem !important;
border-radius: 6px !important;
}
/* container の余白縮小 */
.container {
margin: 10px !important;
padding: 16px 12px !important;
border-radius: 10px !important;
}
/* ================================================================
payroll-settings.html (2/3カラムフォームグリッド → 1カラム)
================================================================ */
.form-row {
display: flex !important;
flex-direction: column !important;
gap: 10px !important;
}
.form-row-3 {
display: flex !important;
flex-direction: column !important;
gap: 10px !important;
}
.form-group {
width: 100%;
}
.form-group input,
.form-group select,
.form-group textarea {
width: 100% !important;
box-sizing: border-box !important;
}
/* ================================================================
payroll-calculation.html (月次給与計算)
================================================================ */
/* フィルター行のラベルを縦積み */
.filters {
display: flex !important;
flex-direction: column !important;
gap: 8px !important;
padding: 12px !important;
}
.filters label {
display: flex !important;
flex-direction: column !important;
gap: 4px !important;
margin-right: 0 !important;
width: 100%;
}
.filters input,
.filters select {
width: 100% !important;
box-sizing: border-box !important;
}
/* ── split-layout: PC は左右分割、モバイルは上下積み ── */
/* 左リスト・右明細を縦方向に並べ直す */
.split-layout {
flex-direction: column !important;
}
.split-left {
flex: none !important;
width: 100% !important;
max-width: none !important;
min-width: 0 !important;
max-height: none !important;
overflow-y: visible !important;
position: static !important;
}
.split-right {
width: 100% !important;
min-width: 0 !important;
border-left: none !important;
border-top: 2px solid #e0e8f0 !important;
padding-left: 0 !important;
padding-top: 16px !important;
margin-top: 8px !important;
max-height: none !important;
overflow-y: visible !important;
position: static !important;
}
/* ── タブ(給与計算・賞与計算・帳票出力)を折り返し ── */
.nav-tabs-calc {
flex-wrap: wrap !important;
gap: 6px !important;
border-bottom: none !important;
}
.nav-tab-calc {
padding: 8px 14px !important;
font-size: 0.9rem !important;
border-radius: 6px !important;
}
/* ── 新規計算モーダルinline style の width:800px を上書き) ── */
#calculateModal,
#bonusModal {
width: 92vw !important;
left: 4vw !important;
transform: none !important;
max-width: 92vw !important;
padding: 20px 16px !important;
box-sizing: border-box !important;
}
}