:root{
  --font-mincho:'Hiragino Mincho ProN','Yu Mincho','YuMincho',serif;
  --font-gothic:'Hiragino Kaku Gothic ProN','Yu Gothic','YuGothic','Meiryo',sans-serif;
  --ink:#2b2420;
  --paper:#f6f1e7;
  --wood-deep:#5f3c26;
  --gold:#b5893a;
  --pine:#3c5145;
  --line:#dcd0b8;
  --white:#fffdf8;
  --attention:#c73838;
}
*{box-sizing:border-box;}
body{
  margin:0;
  background:var(--paper);
  font-family:var(--font-gothic);
  color:var(--ink);
  min-height:100vh;
}
header{
  padding:28px 20px 18px;
  text-align:center;
  background:var(--white);
  border-bottom:1px solid var(--line);
}
header .eyebrow{ font-size:12.5px; letter-spacing:.3em; color:var(--gold); font-weight:700; }
header h1{ font-family:var(--font-mincho); font-size:26px; margin:8px 0; }

main{ max-width:760px; margin:0 auto; padding:24px 16px 60px; }

.login-box{
  max-width:380px; margin:60px auto;
  background:var(--white); border:1.5px solid var(--line); border-radius:14px;
  padding:30px 24px; text-align:center;
}
.login-box input{
  width:100%; font-size:19px; padding:14px 16px; border:1.5px solid var(--line);
  border-radius:8px; margin:14px 0;
}
.login-box button, .card button{
  width:100%; font-size:17px; font-weight:700; padding:13px; border:none;
  border-radius:8px; background:var(--wood-deep); color:#fff; cursor:pointer;
}
.login-box .err{ color:var(--attention); font-size:14px; min-height:1.4em; }

.card{
  background:var(--white); border:1.5px solid var(--line); border-radius:14px;
  padding:20px; margin-bottom:20px;
}
.card h2{ font-family:var(--font-mincho); font-size:19px; margin:0 0 4px; }
.card .updated{ font-size:13px; color:#8a7d68; margin-bottom:14px; }
.card .empty{ color:#8a7d68; font-size:14px; padding:10px 0; }

table{ width:100%; border-collapse:collapse; font-size:14px; }
th, td{ border-bottom:1px solid var(--line); padding:8px 6px; text-align:left; white-space:nowrap; }
th{ background:var(--paper); position:sticky; top:0; }
.table-wrap{ overflow-x:auto; }

dl.kv{ margin:0; }
dl.kv div{ display:flex; gap:10px; padding:6px 0; border-bottom:1px solid var(--line); }
dl.kv dt{ color:#8a7d68; min-width:9em; }
dl.kv dd{ margin:0; }

pre.raw{ white-space:pre-wrap; word-break:break-all; font-size:12.5px; background:var(--paper); padding:10px; border-radius:8px; }

.refresh-hint{
  background:var(--white); border:1.5px dashed var(--line); border-radius:14px;
  padding:16px 18px; font-size:14px; color:#5b5145; margin-bottom:20px; line-height:1.7;
}
.refresh-hint b{ color:var(--pine); }
