/* ============================================================
   梅若町会 管理システム — フロントエンド CSS v2.0
   固定ページ表示用 / スマホ・PC 完全対応
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@400;600;700&family=Noto+Sans+JP:wght@300;400;500;700&family=DM+Mono:wght@400;500&display=swap');

:root {
  --ink:        #1a1208;
  --paper:      #faf7f0;
  --warm:       #fff9ee;
  --gold:       #b8860b;
  --gold-l:     #d4a017;
  --gold-pale:  #f5e6b0;
  --red:        #8b1a1a;
  --red-pale:   #fde8e8;
  --green:      #1a4a2a;
  --green-l:    #2d7a4a;
  --green-pale: #d4edda;
  --blue:       #2e6da4;
  --blue-pale:  #d8eaf5;
  --gray:       #6b6357;
  --gray-l:     #c4bdb3;
  --gray-pale:  #f0ece5;
  --border:     #d4cfc6;
  --r:          8px;
  --r-sm:       4px;
  --shadow:     0 2px 12px rgba(26,18,8,.10);
  --shadow-lg:  0 8px 32px rgba(26,18,8,.18);
}

/* ── ベース ── */
#umk-app *, #umk-app *::before, #umk-app *::after { box-sizing:border-box; }
#umk-app {
  font-family:'Noto Sans JP',sans-serif;
  color:var(--ink);
  background:var(--paper);
  min-height:100vh;
  padding-bottom:60px;
}

/* ── ヘッダーバー ── */
#umk-header {
  background:var(--ink);
  border-bottom:3px solid var(--gold);
  position:sticky; top:0; z-index:200;
  box-shadow:0 2px 8px rgba(0,0,0,.25);
}
#umk-header-inner {
  max-width:1100px; margin:0 auto;
  display:flex; align-items:center;
  justify-content:space-between;
  padding:0 16px; height:56px; gap:10px;
}
.umk-site-title {
  font-family:'Noto Serif JP',serif;
  font-size:clamp(14px,2.5vw,17px);
  font-weight:700; color:var(--gold-pale);
  letter-spacing:.08em; white-space:nowrap;
  display:flex; align-items:center; gap:8px;
  text-decoration:none;
}
.umk-site-title .crest {
  width:30px; height:30px; border-radius:50%;
  border:2px solid var(--gold);
  display:flex; align-items:center; justify-content:center;
  font-size:13px; color:var(--gold); flex-shrink:0;
}

/* ── ナビゲーション（横スクロール） ── */
#umk-nav {
  background:rgba(255,255,255,.06);
  border-top:1px solid rgba(255,255,255,.08);
  overflow-x:auto; -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
}
#umk-nav::-webkit-scrollbar { display:none; }
#umk-nav-list {
  display:flex; list-style:none; margin:0; padding:0 12px;
  white-space:nowrap; min-width:max-content;
}
#umk-nav-list li a, #umk-nav-list li button {
  display:flex; align-items:center; gap:5px;
  padding:10px 14px;
  color:var(--gray-l) !important;
  font-size:13px; font-weight:500;
  text-decoration:none !important;
  border:none; background:transparent; cursor:pointer;
  font-family:'Noto Sans JP',sans-serif;
  border-bottom:3px solid transparent;
  transition:all .15s;
  position:relative;
}
#umk-nav-list li a:hover, #umk-nav-list li button:hover { color:#fff !important; }
#umk-nav-list li.active a, #umk-nav-list li.active button {
  color:var(--gold-pale) !important;
  border-bottom-color:var(--gold);
}
.umk-nav-badge {
  background:var(--red); color:#fff;
  font-size:10px; font-family:'DM Mono',monospace;
  padding:1px 5px; border-radius:8px; font-weight:700;
}

/* ── メインコンテナ ── */
#umk-main {
  max-width:1100px; margin:0 auto;
  padding:24px 16px 0;
}

/* ── ページヘッダー ── */
.umk-page-head {
  display:flex; align-items:flex-end; justify-content:space-between;
  margin-bottom:20px; padding-bottom:12px;
  border-bottom:2px solid var(--gold);
  flex-wrap:wrap; gap:10px;
}
.umk-page-head h2 {
  font-family:'Noto Serif JP',serif !important;
  font-size:clamp(17px,3vw,22px) !important;
  font-weight:700 !important; color:var(--ink) !important;
  letter-spacing:.06em; line-height:1.3;
  margin:0 !important; padding:0 !important;
  border:none !important;
}
.umk-page-head .sub { font-size:12px; color:var(--gray); margin-top:2px; }

/* ── 統計カード ── */
.umk-stats { display:grid; grid-template-columns:repeat(auto-fit,minmax(140px,1fr)); gap:12px; margin-bottom:20px; }
.umk-stat {
  background:var(--warm); border:1px solid var(--border);
  border-radius:var(--r); padding:14px 16px; position:relative; overflow:hidden;
}
.umk-stat::before { content:''; position:absolute; top:0; left:0; right:0; height:3px; }
.umk-stat.gold::before  { background:var(--gold); }
.umk-stat.green::before { background:var(--green-l); }
.umk-stat.red::before   { background:var(--red); }
.umk-stat.blue::before  { background:var(--blue); }
.umk-stat-label { font-size:10px; color:var(--gray); letter-spacing:.12em; font-weight:700; text-transform:uppercase; }
.umk-stat-value { font-family:'DM Mono',monospace; font-size:26px; font-weight:500; margin:3px 0 2px; line-height:1; }
.umk-stat-unit  { font-size:12px; font-weight:400; color:var(--gray); }
.umk-stat-sub   { font-size:11px; color:var(--gray); }

/* ── メニューカード（ダッシュボード） ── */
.umk-menu-grid {
  display:grid; grid-template-columns:repeat(auto-fill,minmax(130px,1fr));
  gap:12px; margin-bottom:22px;
}
.umk-menu-card {
  display:flex; flex-direction:column; align-items:center;
  justify-content:center; gap:8px; padding:20px 10px;
  background:var(--warm); border:1px solid var(--border);
  border-radius:var(--r); text-decoration:none !important;
  color:var(--ink) !important; cursor:pointer;
  transition:all .18s; box-shadow:var(--shadow);
  position:relative; overflow:hidden;
}
.umk-menu-card::before { content:''; position:absolute; top:0; left:0; right:0; height:4px; }
.umk-menu-card.c-gold::before  { background:var(--gold); }
.umk-menu-card.c-green::before { background:var(--green-l); }
.umk-menu-card.c-red::before   { background:var(--red); }
.umk-menu-card.c-blue::before  { background:var(--blue); }
.umk-menu-card.c-gray::before  { background:var(--gray); }
.umk-menu-card:hover { transform:translateY(-3px); box-shadow:var(--shadow-lg); border-color:var(--gold-l); }
.umk-menu-card .icon  { font-size:30px; line-height:1; }
.umk-menu-card .label { font-size:12px; font-weight:700; text-align:center; }
.umk-menu-card .mbadge {
  position:absolute; top:8px; right:8px;
  background:var(--red); color:#fff; font-size:10px;
  padding:1px 5px; border-radius:8px; font-weight:700;
  font-family:'DM Mono',monospace;
}

/* ── アラート ── */
.umk-alert {
  display:flex; align-items:center; gap:8px;
  padding:11px 14px; margin-bottom:14px; border-radius:var(--r-sm); font-size:13px;
}
.umk-alert.warn { background:#fff3cd; border:1px solid #ffc107; border-left:4px solid #ffc107; color:#856404; }
.umk-alert.info { background:var(--blue-pale); border:1px solid var(--blue); border-left:4px solid var(--blue); color:var(--blue); }

/* ── フォームカード ── */
.umk-form-card {
  background:var(--warm); border:1px solid var(--border);
  border-radius:var(--r); margin-bottom:18px; box-shadow:var(--shadow); overflow:hidden;
}
.umk-fcard-head {
  display:flex; align-items:center; justify-content:space-between;
  padding:13px 18px; background:var(--ink); border-bottom:1px solid var(--border);
}
.umk-fcard-title {
  font-family:'Noto Serif JP',serif; font-size:14px; font-weight:700;
  color:var(--gold-pale); letter-spacing:.06em;
}
.umk-fcard-body { padding:18px 18px 10px; }
.umk-fcard-foot {
  display:flex; align-items:center; justify-content:flex-end;
  gap:10px; padding:13px 18px;
  background:var(--gray-pale); border-top:1px solid var(--border);
  flex-wrap:wrap;
}

/* フォームグリッド */
.umk-fgrid { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.umk-fgrid.cols3 { grid-template-columns:1fr 1fr 1fr; }
.umk-fg   { display:flex; flex-direction:column; gap:4px; }
.umk-fg.full { grid-column:1/-1; }
.umk-lbl {
  font-size:11px; font-weight:700; color:var(--gray);
  letter-spacing:.1em; text-transform:uppercase;
  display:flex; align-items:center; gap:3px;
}
.umk-lbl .req { color:var(--red); font-size:12px; }

.umk-inp, .umk-sel, .umk-ta {
  padding:10px 12px;
  border:1.5px solid var(--border) !important;
  border-radius:var(--r-sm); font-size:16px !important; /* iOS zoom 防止 */
  font-family:'Noto Sans JP',sans-serif;
  background:#fff; color:var(--ink);
  outline:none; box-shadow:none !important;
  transition:border-color .15s, box-shadow .15s; width:100%;
  -webkit-appearance:none; appearance:none;
}
.umk-inp:focus, .umk-sel:focus, .umk-ta:focus {
  border-color:var(--gold) !important;
  box-shadow:0 0 0 3px rgba(184,134,11,.15) !important;
}
.umk-ta { min-height:68px; resize:vertical; }

/* 在庫バー */
.umk-stock-bar {
  display:flex; gap:16px; align-items:center; flex-wrap:wrap;
  padding:10px 14px; border-radius:var(--r-sm); font-size:13px;
}
.umk-stock-bar.in  { background:var(--green-pale); border:1px solid var(--green-l); }
.umk-stock-bar.out { background:var(--red-pale);   border:1px solid var(--red); }
.umk-stock-bar strong { font-family:'DM Mono',monospace; font-size:15px; }

/* ラジオ */
.umk-radios { display:flex; flex-wrap:wrap; gap:7px; }
.umk-radios label {
  display:flex; align-items:center; gap:4px; cursor:pointer;
  padding:7px 13px; background:var(--gray-pale);
  border:1.5px solid var(--border); border-radius:20px;
  font-size:13px; font-weight:400; transition:all .12s; color:var(--ink);
  text-transform:none; letter-spacing:0;
}
.umk-radios label:has(input:checked) {
  background:var(--ink); border-color:var(--gold); color:var(--gold-pale);
}
.umk-radios input[type=radio] { display:none; }

/* ── ボタン ── */
.umk-btn {
  display:inline-flex; align-items:center; gap:6px;
  padding:11px 22px; border-radius:var(--r-sm);
  font-size:14px; font-weight:700; font-family:'Noto Sans JP',sans-serif;
  cursor:pointer; text-decoration:none !important; border:none;
  transition:all .15s; letter-spacing:.04em; line-height:1.3;
  white-space:nowrap; -webkit-tap-highlight-color:transparent;
}
.umk-btn-primary   { background:var(--ink); color:var(--gold-pale) !important; border:1.5px solid var(--gold); }
.umk-btn-primary:hover { background:var(--gold); color:var(--ink) !important; }
.umk-btn-green  { background:var(--green-l); color:#fff !important; border:1.5px solid var(--green-l); }
.umk-btn-green:hover  { background:var(--green); }
.umk-btn-red    { background:var(--red); color:#fff !important; border:1.5px solid var(--red); }
.umk-btn-red:hover    { background:#6b1414; }
.umk-btn-ghost  { background:transparent; color:var(--gray) !important; border:1.5px solid var(--border); }
.umk-btn-ghost:hover  { background:var(--gray-pale); color:var(--ink) !important; }
.umk-btn-danger { background:transparent; color:var(--red) !important; border:1.5px solid var(--red); }
.umk-btn-danger:hover { background:var(--red); color:#fff !important; }
.umk-btn-sm { padding:7px 13px; font-size:12px; }
.umk-btn-lg { padding:13px 28px; font-size:15px; }
.umk-btn:disabled { opacity:.5; cursor:not-allowed; }

/* ── テーブルカード ── */
.umk-tcard { background:var(--warm); border:1px solid var(--border); border-radius:var(--r); overflow:hidden; box-shadow:var(--shadow); margin-bottom:18px; }
.umk-tcard-head {
  display:flex; align-items:center; justify-content:space-between;
  padding:11px 16px; border-bottom:1px solid var(--border);
  background:var(--gray-pale); flex-wrap:wrap; gap:8px;
}
.umk-tcard-title { font-family:'Noto Serif JP',serif; font-size:14px; font-weight:600; color:var(--ink); }
.umk-twrap { overflow-x:auto; -webkit-overflow-scrolling:touch; }

table.umk-t { width:100%; border-collapse:collapse; font-size:13px; }
table.umk-t thead tr { background:var(--ink); }
table.umk-t th { font-family:'Noto Serif JP',serif; font-size:11px; font-weight:600; letter-spacing:.08em; padding:9px 13px; text-align:left; color:var(--gold-pale); white-space:nowrap; }
table.umk-t tbody tr { border-bottom:1px solid var(--border); transition:background .1s; }
table.umk-t tbody tr:last-child { border-bottom:none; }
table.umk-t tbody tr:hover { background:#fdf6e3; }
table.umk-t td { padding:10px 13px; vertical-align:middle; }
.td-m  { font-family:'DM Mono',monospace; font-size:12px; color:var(--gray); }
.td-ac { display:flex; gap:5px; align-items:center; flex-wrap:wrap; }

/* ── ツールバー ── */
.umk-toolbar { display:flex; align-items:center; gap:8px; padding:10px 14px; border-bottom:1px solid var(--border); flex-wrap:wrap; }
.umk-sbox { display:flex; align-items:center; gap:6px; background:var(--gray-pale); border:1.5px solid var(--border); border-radius:var(--r-sm); padding:7px 11px; flex:1; min-width:160px; max-width:300px; }
.umk-sbox input { border:none !important; background:transparent !important; font-size:14px !important; outline:none !important; box-shadow:none !important; font-family:'Noto Sans JP',sans-serif; width:100%; color:var(--ink); }
.umk-fsel { padding:7px 10px; border:1.5px solid var(--border) !important; border-radius:var(--r-sm); font-size:13px; font-family:'Noto Sans JP',sans-serif; background:var(--gray-pale) !important; color:var(--ink); outline:none; box-shadow:none !important; cursor:pointer; -webkit-appearance:none; }

/* ── バッジ ── */
.umk-badge { display:inline-flex; align-items:center; gap:4px; padding:3px 9px; border-radius:20px; font-size:11px; font-weight:700; white-space:nowrap; }
.umk-badge::before { content:''; width:6px; height:6px; border-radius:50%; background:currentColor; display:inline-block; }
.umk-badge.good  { background:var(--green-pale); color:var(--green-l); }
.umk-badge.warn  { background:var(--gold-pale);  color:var(--gold); }
.umk-badge.bad   { background:var(--red-pale);   color:var(--red); }
.umk-badge.info  { background:var(--blue-pale);  color:var(--blue); }

.umk-cat { display:inline-block; padding:2px 7px; border-radius:3px; font-size:11px; font-weight:700; background:var(--gray-pale); color:var(--gray); }
.umk-cat.equipment { background:var(--blue-pale);  color:var(--blue); }
.umk-cat.facility  { background:var(--gold-pale);  color:var(--gold); }
.umk-cat.furniture { background:#f5e6ff; color:#7b2d8b; }

/* ── 数量コントロール ── */
.umk-qty { display:inline-flex; align-items:center; border:1.5px solid var(--border); border-radius:var(--r-sm); overflow:hidden; }
.umk-qbtn { background:var(--gray-pale); border:none; width:36px; height:36px; font-size:18px; font-family:monospace; cursor:pointer; color:var(--ink); transition:background .1s; display:flex; align-items:center; justify-content:center; -webkit-tap-highlight-color:transparent; }
.umk-qbtn:hover { background:var(--border); }
.umk-qval { padding:0 14px; font-family:'DM Mono',monospace; font-size:14px; font-weight:600; min-width:50px; text-align:center; }

/* ── ログ ── */
.umk-log { padding:4px 0; }
.umk-log-item { display:flex; align-items:flex-start; gap:11px; padding:9px 0; border-bottom:1px solid var(--border); }
.umk-log-item:last-child { border-bottom:none; }
.umk-log-icon { width:30px; height:30px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:13px; flex-shrink:0; }
.umk-log-icon.in   { background:var(--green-pale); }
.umk-log-icon.out  { background:var(--red-pale); }
.umk-log-icon.edit { background:var(--gold-pale); }
.umk-log-text { font-size:13px; font-weight:500; }
.umk-log-meta { font-size:11px; color:var(--gray); margin-top:2px; }

/* ── エンプティ ── */
.umk-empty { text-align:center; padding:40px 16px; color:var(--gray-l); }
.umk-empty-icon { font-size:40px; opacity:.3; margin-bottom:8px; }

/* ── トグル ── */
.umk-collapsible { display:none; }
.umk-collapsible.open { display:block; }

/* ── フラッシュ ── */
.umk-flash { display:flex; align-items:center; gap:8px; padding:11px 14px; border-radius:var(--r-sm); font-size:13px; font-weight:500; margin-bottom:14px; animation:umkSlide .25s; }
.umk-flash.ok   { background:var(--green-pale); border:1px solid var(--green-l); color:var(--green); }
.umk-flash.err  { background:var(--red-pale);   border:1px solid var(--red);     color:var(--red); }
.umk-flash.warn { background:var(--gold-pale);  border:1px solid var(--gold);    color:var(--gold); }
@keyframes umkSlide { from{opacity:0;transform:translateY(-6px)} to{opacity:1;transform:none} }

/* ── ダッシュボード 2カラム ── */
.umk-2col { display:grid; grid-template-columns:1fr 1fr; gap:16px; }

/* ── ログインノーティス ── */
.umk-login-notice { text-align:center; padding:60px 20px; }
.umk-btn-login { display:inline-block; margin-top:12px; padding:12px 28px; background:var(--ink); color:var(--gold-pale); border-radius:var(--r-sm); font-weight:700; text-decoration:none; font-size:15px; }

/* ── レスポンシブ ── */
@media (max-width: 640px) {
  .umk-fgrid, .umk-fgrid.cols3 { grid-template-columns:1fr; }
  .umk-fg.full { grid-column:1; }
  .umk-menu-grid { grid-template-columns:repeat(3,1fr); }
  .umk-2col { grid-template-columns:1fr; }
  .umk-stats { grid-template-columns:repeat(2,1fr); }
  .umk-btn-lg { width:100%; justify-content:center; }
  .umk-fcard-foot { flex-direction:column; }
  .umk-fcard-foot .umk-btn { width:100%; justify-content:center; }
  .umk-page-head { flex-direction:column; align-items:flex-start; }
  .umk-page-head > div:last-child { width:100%; display:flex; gap:8px; }
  .umk-page-head > div:last-child .umk-btn { flex:1; justify-content:center; }
  #umk-header-inner .umk-btn { display:none; } /* ヘッダーのExcelボタンはSPでは非表示 */
}
@media (max-width: 400px) {
  .umk-menu-grid { grid-template-columns:repeat(2,1fr); }
}
