/* 青藍システム496 会員ページ 共通CSS */
*{box-sizing:border-box;margin:0;padding:0}
:root{--ink:#1a2436;--ink-d:#0c1320;--ai:#2c4a78;--mist:#dde4ec;--gold:#a88142;--gold-d:#8c6c36;--gold-l:#c9a76b;--white:#fdfcf8;--paper:#f5f1e8;--paper-d:#ebe5d3;--gray:#888;--gray-d:#555;--line:#d8d2c2;--err:#c0392b;--ok:#3d8b4a}
html,body{overflow-x:hidden;max-width:100%}
body{font-family:'Inter','Noto Sans JP',sans-serif;color:var(--ink);background:#fff;line-height:1.7;-webkit-font-smoothing:antialiased;min-height:100vh;display:flex;flex-direction:column}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font-family:inherit}

/* ヘッダ */
.m-hd{background:var(--ink-d);color:#fff;padding:14px 36px;display:flex;justify-content:space-between;align-items:center}
.m-hd .logo a{color:#fff;font-family:'Noto Serif JP',serif;font-size:1.15rem;font-weight:600;letter-spacing:.04em;display:inline-flex;align-items:baseline;gap:14px}
.m-hd .logo .sub{font-size:.74rem;font-weight:400;color:var(--gold-l);letter-spacing:.18em;padding-left:14px;border-left:1px solid rgba(168,129,66,.4)}
.m-hd .nav{display:flex;gap:24px;align-items:center}
.m-hd .nav a{color:rgba(255,255,255,.85);font-size:.86rem;letter-spacing:.08em;transition:.2s}
.m-hd .nav a:hover{color:var(--gold-l)}
.m-hd .nav a.active{color:var(--gold-l);border-bottom:1px solid var(--gold-l);padding-bottom:4px}

/* 寺院名バッジ（メニューと明確に分離） */
.m-hd .nav .m-hd-user{
  display:inline-flex;align-items:center;gap:8px;
  margin-left:6px;padding:6px 16px;
  background:rgba(168,129,66,.12);
  border:1px solid rgba(201,167,107,.4);
  border-radius:99px;
  color:var(--gold-l);font-size:.82rem;letter-spacing:.04em;
  white-space:nowrap;
}
.m-hd .nav .m-hd-user .ic{font-size:.6rem;color:var(--gold);opacity:.85}
.m-hd .nav .m-hd-user .sama{color:rgba(201,167,107,.7);font-size:.74rem;margin-left:1px}

/* ログアウトボタン（アウトライン） */
.m-hd .nav a.m-hd-logout{
  padding:6px 14px;border:1px solid rgba(255,255,255,.35);
  border-radius:2px;font-size:.78rem;letter-spacing:.1em;
  color:#fff;transition:.25s;
}
.m-hd .nav a.m-hd-logout:hover{
  background:rgba(255,255,255,.1);border-color:#fff;color:#fff;
}

/* レイアウト */
.m-wrap{max-width:1080px;width:100%;margin:0 auto;padding:48px 30px 60px;flex:1 0 auto}
.m-wrap.narrow{max-width:560px}
.m-page-title{font-family:'Noto Serif JP',serif;font-size:1.7rem;letter-spacing:.04em;font-weight:500;margin-bottom:8px;color:var(--ink)}
.m-page-sub{color:var(--gray-d);font-size:.88rem;margin-bottom:26px;letter-spacing:.04em}
.m-page-sub .m-last-login{color:var(--gray);font-size:.78rem;margin-left:14px;letter-spacing:.04em}

/* ページヘッダ（マイページ用：寺院・担当者・最終ログインを構造化） */
.m-page-head{margin-bottom:28px;padding-bottom:18px;border-bottom:1px solid var(--line);position:relative}
.m-page-head::after{content:'';position:absolute;left:0;bottom:-1px;width:60px;height:1px;background:var(--gold)}
.m-page-head .m-page-title{margin-bottom:14px}
.m-page-meta{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:12px}
.m-page-user{font-family:'Noto Serif JP',serif;color:var(--ink);font-size:1rem;letter-spacing:.04em;display:inline-flex;align-items:baseline;gap:14px;flex-wrap:wrap}
.m-page-user .temple{font-size:1.1rem;font-weight:600}
.m-page-user .sep{color:var(--line);font-weight:400}
.m-page-user .person{color:var(--gray-d);font-size:.95rem;font-weight:400}
.m-page-login{display:inline-flex;align-items:baseline;gap:10px;font-size:.78rem;letter-spacing:.06em;color:var(--gray)}
.m-page-login .lbl{font-family:'Noto Serif JP',serif;color:var(--gold-d);font-size:.74rem;letter-spacing:.16em;padding-right:10px;border-right:1px solid var(--line)}
.m-page-login .val{font-family:'Inter','Noto Sans JP',sans-serif;color:var(--ink);font-size:.84rem;letter-spacing:.04em}

/* サポートページのストレージバー */
.m-storage-bar{display:flex;flex-wrap:wrap;gap:0;margin-bottom:18px;padding:14px 22px;background:var(--paper);border:1px solid var(--line);font-size:.82rem;color:var(--gray-d);letter-spacing:.04em}
.m-storage-bar span{padding:0 22px;border-right:1px solid var(--line)}
.m-storage-bar span:first-child{padding-left:0}
.m-storage-bar span:last-child{border-right:none}
.m-storage-bar b{color:var(--ink);font-weight:600;margin-right:4px}

/* カード */
.m-card{background:#fff;padding:30px 40px;box-shadow:0 16px 40px -20px rgba(15,25,45,.18);border:1px solid var(--line);margin-bottom:24px}
.m-card h2{font-family:'Noto Serif JP',serif;font-size:1.15rem;font-weight:600;color:var(--ink);margin-bottom:18px;padding-bottom:14px;border-bottom:1px solid var(--gold);letter-spacing:.04em}
.m-card p{font-size:.92rem;line-height:1.95;color:#444;margin-bottom:12px}
.m-card .meta{color:var(--gray);font-size:.8rem;letter-spacing:.04em}

/* フォーム */
.m-form .row{margin-bottom:20px}
.m-form .row.inline{display:grid;grid-template-columns:160px 1fr;gap:18px;align-items:flex-start}
.m-form label{display:block;font-family:'Noto Serif JP',serif;font-size:.9rem;color:var(--ink);margin-bottom:8px;font-weight:500;letter-spacing:.04em}
.m-form label .star{color:var(--gold);margin-left:6px;font-size:.82rem}
.m-form .help{font-size:.78rem;color:var(--gray);margin-top:6px;letter-spacing:.02em}
.m-form input[type=text],.m-form input[type=email],.m-form input[type=password],.m-form input[type=tel],.m-form textarea,.m-form select{width:100%;border:1px solid var(--line);background:var(--paper);padding:12px 14px;font-family:inherit;font-size:.95rem;line-height:1.6;color:var(--ink);transition:.2s;border-radius:0}
.m-form input:focus,.m-form textarea:focus{outline:0;border-color:var(--gold);background:#fff}
.m-form textarea{min-height:120px;resize:vertical}
.m-form .err{color:var(--err);font-size:.82rem;margin-top:6px}

/* ボタン */
.m-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:14px 38px;background:var(--gold);color:#fff;border:1px solid var(--gold);font-family:inherit;font-size:.95rem;letter-spacing:.16em;font-weight:500;cursor:pointer;transition:.3s;text-align:center;text-decoration:none}
.m-btn .ic-dl{width:18px;height:18px;flex:0 0 18px;display:block}
.m-btn:hover{background:var(--gold-d);border-color:var(--gold-d)}
.m-btn.ghost{background:transparent;color:var(--ink);border-color:var(--line)}
.m-btn.ghost:hover{background:var(--ink);color:#fff;border-color:var(--ink)}
.m-btn.danger{background:var(--err);border-color:var(--err)}
.m-btn.danger:hover{background:#a02414;border-color:#a02414}
.m-btn.full{width:100%}
.m-actions{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;margin-top:30px}

/* メッセージ */
.m-alert{padding:14px 18px;margin-bottom:24px;border:1px solid var(--line);background:#fff;font-size:.9rem;line-height:1.7}
.m-alert.err{border-color:#e3b3a8;background:#fdf2ef;color:#7e261a}
.m-alert.ok{border-color:#b3d7b9;background:#f0f7f0;color:#205c2c}
.m-alert.info{border-color:var(--gold-l);background:#fdf8ee;color:#7c5e2a}

/* テーブル */
.m-tbl{width:100%;border-collapse:collapse;margin-top:12px;font-size:.88rem}
.m-tbl th,.m-tbl td{padding:12px 14px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.m-tbl th{background:var(--paper);font-family:'Noto Serif JP',serif;font-weight:500;letter-spacing:.04em;font-size:.82rem;color:var(--ink)}
.m-tbl td .badge{display:inline-block;padding:2px 10px;font-size:.72rem;letter-spacing:.06em;background:var(--paper-d);color:var(--ink)}
.m-tbl td .badge.ok{background:#e0eee2;color:#205c2c}
.m-tbl td .badge.del{background:#eee0e0;color:#7e261a}

/* ダッシュボード（旧タイル ─ 互換のため残置） */
.m-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:24px}
.m-tile{background:#fff;border:1px solid var(--line);padding:34px 28px;text-align:center;cursor:pointer;transition:.3s;color:inherit;display:flex;flex-direction:column;justify-content:space-between;min-height:230px}
.m-tile:hover{transform:translateY(-3px);border-color:var(--gold);box-shadow:0 18px 36px -16px rgba(168,129,66,.3)}
.m-tile .ji{font-family:'Noto Serif JP',serif;font-size:2.6rem;color:var(--ai);font-weight:400;line-height:1;margin-bottom:18px;transition:.3s}
.m-tile:hover .ji{color:var(--gold)}
.m-tile h3{font-family:'Noto Serif JP',serif;font-size:1.1rem;font-weight:500;letter-spacing:.06em;margin-bottom:8px}
.m-tile p{font-size:.82rem;color:var(--gray-d);line-height:1.7;flex:1}
.m-tile .arrow{margin-top:14px;color:var(--gold);font-family:'Cormorant Garamond',serif;font-size:.85rem;letter-spacing:.18em;font-style:italic}

/* ダッシュボード行（m-card 内で使用） */
.m-dash-lines{margin:0}
.m-dash-li{display:grid;grid-template-columns:54px 1fr 100px;align-items:center;padding:22px 4px;border-bottom:1px solid var(--line);transition:.25s;color:inherit}
.m-dash-li:last-of-type{border-bottom:none}
.m-dash-li:hover{background:var(--paper);padding-left:14px;padding-right:14px}
.m-dash-li .n{font-family:'Noto Serif JP',serif;color:var(--gold);font-size:1.25rem;font-weight:500;letter-spacing:.04em}
.m-dash-li .c h3{font-family:'Noto Serif JP',serif;font-size:1.05rem;font-weight:600;letter-spacing:.04em;margin-bottom:2px;color:var(--ink)}
.m-dash-li .c p{font-size:.82rem;color:var(--gray-d);line-height:1.55;margin:0}
.m-dash-li .a{text-align:right;color:var(--gold);font-family:'Noto Serif JP',serif;font-size:.92rem;font-weight:500;letter-spacing:.12em;transition:.2s}
.m-dash-li:hover .a{color:var(--gold-d);transform:translateX(2px)}
.m-dash-meta{margin-top:24px;padding-top:20px;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;justify-content:flex-start;gap:0;font-size:.78rem;color:var(--gray);letter-spacing:.06em}
.m-dash-meta span{padding:0 18px;border-right:1px solid var(--line)}
.m-dash-meta span:first-child{padding-left:0}
.m-dash-meta span:last-child{border-right:none}
.m-dash-meta b{color:var(--ink);font-weight:500;margin-left:6px}

/* アップロード */
.m-drop{border:2px dashed var(--line);background:var(--paper);padding:50px 30px;text-align:center;cursor:pointer;transition:.3s}
.m-drop.over{border-color:var(--gold);background:#fdf8ee}
.m-drop .pickbtn{display:inline-block;background:var(--gold);color:#fff;padding:10px 28px;font-size:.88rem;letter-spacing:.16em}
.m-drop .hint{margin-top:12px;font-size:.82rem;color:var(--gray-d)}
.m-progress{margin-top:18px;height:8px;background:var(--paper-d);overflow:hidden;display:none}
.m-progress.show{display:block}
.m-progress > .bar{height:100%;width:0;background:var(--gold);transition:width .15s}
.m-upinfo{margin-top:12px;font-size:.82rem;color:var(--gray-d)}

/* footer */
.m-foot{margin-top:auto;background:var(--ink-d);color:rgba(255,255,255,.6);border-top:1px solid var(--gold);flex-shrink:0}
.m-foot-inner{display:none}
.m-foot-brand .m-foot-logo{font-family:'Noto Serif JP',serif;font-size:1.18rem;font-weight:600;color:#fff;letter-spacing:.04em;margin-bottom:6px}
.m-foot-brand .m-foot-logo span{display:block;font-family:'Cormorant Garamond',serif;font-size:.78rem;font-style:italic;color:var(--gold-l);letter-spacing:.18em;font-weight:400;margin-top:4px}
.m-foot-brand .m-foot-tag{font-size:.78rem;color:rgba(255,255,255,.58);line-height:1.85;margin-top:18px;letter-spacing:.02em}
.m-foot-col h4{font-family:'Noto Serif JP',serif;font-size:.86rem;color:var(--gold-l);font-weight:500;letter-spacing:.16em;margin-bottom:18px;padding-bottom:8px;border-bottom:1px solid rgba(168,129,66,.25)}
.m-foot-col nav{display:flex;flex-direction:column;gap:9px}
.m-foot-col nav a{font-size:.82rem;color:rgba(255,255,255,.78);letter-spacing:.04em;transition:.2s}
.m-foot-col nav a:hover{color:var(--gold-l);padding-left:4px}
.m-foot-list{list-style:none;display:flex;flex-direction:column;gap:9px;font-size:.82rem;color:rgba(255,255,255,.78)}
.m-foot-list li{display:flex;gap:10px;align-items:baseline;line-height:1.55}
.m-foot-list .lbl{flex:0 0 42px;font-size:.7rem;color:var(--gold-l);letter-spacing:.1em}
.m-foot-list a{color:rgba(255,255,255,.85);transition:.2s}
.m-foot-list a:hover{color:var(--gold-l)}
.m-foot-bar{padding:18px 36px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;font-size:.72rem;color:rgba(255,255,255,.55);letter-spacing:.1em;max-width:1200px;margin:0 auto}
.m-foot-bar .lk a{color:rgba(255,255,255,.6);transition:.2s}
.m-foot-bar .lk a:hover{color:var(--gold-l)}
.m-foot-bar .sep{margin:0 10px;color:rgba(255,255,255,.2)}

/* Remember-me チェックボックス（大きめ） */
.m-check{display:flex;align-items:center;gap:12px;margin:8px 0 22px;cursor:pointer;user-select:none;padding:8px 4px;font-size:.95rem;color:var(--ink)}
.m-check input{appearance:none;-webkit-appearance:none;width:22px;height:22px;border:1.5px solid var(--line);background:#fff;cursor:pointer;display:inline-block;flex:0 0 22px;position:relative;transition:.2s;border-radius:3px;margin:0}
.m-check input:hover{border-color:var(--gold-l)}
.m-check input:checked{background:var(--gold);border-color:var(--gold)}
.m-check input:checked::after{content:'';position:absolute;left:6px;top:2px;width:7px;height:12px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}
.m-check input:focus-visible{outline:2px solid var(--gold-l);outline-offset:2px}
.m-check span{font-family:inherit;letter-spacing:.04em}

/* 認証画面用（センタリング） */
.m-auth-wrap{flex:1 0 auto;display:flex;align-items:center;justify-content:center;padding:40px 16px}
.m-auth-card{background:#fff;width:100%;max-width:460px;padding:48px 40px;border:1px solid var(--line);box-shadow:0 30px 80px -30px rgba(15,25,45,.25)}
.m-auth-card h1{font-family:'Noto Serif JP',serif;font-size:1.4rem;letter-spacing:.06em;font-weight:500;text-align:center;margin-bottom:8px}
.m-auth-card .sub{text-align:center;color:var(--gray-d);font-size:.84rem;margin-bottom:30px;letter-spacing:.04em}
.m-auth-card .links{margin-top:22px;text-align:center;font-size:.82rem}
.m-auth-card .links a{color:var(--gold);text-decoration:underline;text-underline-offset:3px}

/* モバイル */
@media(max-width:768px){
  .m-hd{flex-wrap:wrap;padding:14px 18px;gap:14px}
  .m-hd .logo a{font-size:1rem}
  .m-hd .nav{gap:14px;width:100%;flex-wrap:wrap;justify-content:flex-start}
  .m-hd .nav a{font-size:.78rem;letter-spacing:.06em}
  .m-hd .nav .me{display:none}
  .m-wrap{padding:36px 18px}
  .m-card{padding:24px 20px}
  .m-page-title{font-size:1.25rem}
  .m-form .row.inline{grid-template-columns:1fr;gap:6px}
  .m-tiles{grid-template-columns:1fr;gap:14px}
  .m-tile{min-height:auto;padding:24px 22px}
  .m-tbl{font-size:.82rem}
  .m-tbl th,.m-tbl td{padding:10px 8px}
  .m-actions{flex-direction:column}
  .m-actions .m-btn{width:100%}
  .m-auth-card{padding:34px 24px}
  /* footer モバイル */
  .m-foot-inner{grid-template-columns:1fr;gap:30px;padding:40px 22px 24px}
  .m-foot-bar{flex-direction:column;text-align:center;padding:16px 22px}
  /* page head モバイル */
  .m-page-meta{flex-direction:column;align-items:flex-start;gap:8px}
  .m-page-user .temple{font-size:1rem}
  .m-page-user .person{font-size:.86rem}
  /* dashboard モバイル */
  .m-dash-li{grid-template-columns:42px 1fr 70px;padding:20px 0}
  .m-dash-li:hover{padding-left:8px;padding-right:8px}
  .m-dash-li .n{font-size:1.1rem}
  .m-dash-li .c h3{font-size:1rem}
  .m-dash-li .c p{font-size:.78rem}
  .m-dash-li .a{font-size:.84rem;letter-spacing:.06em}
  .m-dash-meta{flex-direction:column;gap:8px;align-items:flex-start}
  .m-dash-meta span{padding:2px 0;border-right:none}
}
