:root{
  --ground:#FBFCFE; --surface:#FFFFFF; --sunk:#F1F5FB;
  --line:#DCE3EF; --line-soft:#E9EEF7;
  --ink:#17203A; --ink-2:#4C5872; --ink-3:#7A869E;
  --indigo:#16305F; --indigo-soft:#E8EEFA;
  --gold:#9C7318; --gold-soft:#F7F0DE;
  --good:#2E6E52; --good-soft:#E3F0EA;
  --alert:#A2401F; --alert-soft:#FBE9E2;
  --sans:"Noto Sans JP",system-ui,-apple-system,sans-serif;
  --serif:"Noto Serif JP","Hiragino Mincho ProN",serif;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --ground:#0E1420; --surface:#171F2E; --sunk:#121926;
  --line:#2A3446; --line-soft:#212B3C;
  --ink:#E9EDF5; --ink-2:#AEB9CD; --ink-3:#8391A9;
  --indigo:#8FB0EC; --indigo-soft:#1C2740;
  --gold:#D9AE62; --gold-soft:#2A2317;
  --good:#63BE95; --good-soft:#16281E;
  --alert:#E08A6A; --alert-soft:#2C1B15;
}}
*{box-sizing:border-box}
body{margin:0;background:var(--ground);color:var(--ink);font-family:var(--sans);
  font-size:15px;line-height:1.7;-webkit-font-smoothing:antialiased;
  padding-bottom:env(safe-area-inset-bottom)}
a{color:var(--indigo)}
.wrap{max-width:560px;margin:0 auto;padding:0 14px 96px}
.top{display:flex;justify-content:space-between;align-items:center;padding:16px 0 12px}
.who{font-size:12.5px;color:var(--ink-3)}
.who b{display:block;font-size:15px;color:var(--ink);font-weight:500}
.date{font-family:var(--serif);font-size:17px;font-weight:600}
h2{font-size:11.5px;letter-spacing:.13em;color:var(--ink-3);font-weight:500;margin:22px 0 10px}
.card{background:var(--surface);border:1px solid var(--line-soft);border-radius:12px;
  padding:14px;margin-bottom:9px}
.row{display:flex;gap:13px;align-items:flex-start}
.t{font-variant-numeric:tabular-nums;font-weight:700;font-size:16px;width:48px;color:var(--indigo);flex:0 0 auto}
.b{flex:1;min-width:0}
.nm{font-weight:500}
.sub{font-size:12.5px;color:var(--ink-3)}
.chip{display:inline-block;font-size:11px;padding:1px 8px;border-radius:999px;margin-left:6px;
  background:var(--good-soft);color:var(--good);font-weight:500}
.chip.todo{background:var(--alert-soft);color:var(--alert)}
.btn{font-family:inherit;font-size:12.5px;font-weight:500;color:var(--indigo);
  border:1px solid color-mix(in srgb,var(--indigo) 32%,transparent);border-radius:999px;
  padding:6px 13px;background:var(--surface);cursor:pointer;text-decoration:none;flex:0 0 auto}
.btn:hover{background:var(--indigo-soft)}
label{display:block;font-size:13.5px;font-weight:500;margin-bottom:5px}
input,textarea,select{width:100%;font-family:inherit;font-size:16px;color:var(--ink);
  background:var(--sunk);border:1px solid var(--line);border-radius:9px;padding:10px 12px}
textarea{min-height:92px;resize:vertical;line-height:1.75}
input:focus,textarea:focus,select:focus{outline:2px solid var(--indigo);outline-offset:1px;background:var(--surface)}
.f{margin-bottom:12px}
.g2{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}
.prev{font-size:11.5px;color:var(--ink-3);margin-top:4px}
fieldset{border:0;padding:0;margin:0 0 20px}
legend{font-size:12px;letter-spacing:.1em;color:var(--ink-3);font-weight:500;margin-bottom:10px;padding:0}
form.card{padding:18px}
.chk{display:flex;flex-wrap:wrap;gap:7px}
.chk label{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:400;
  background:var(--surface);border:1px solid var(--line);border-radius:999px;
  padding:7px 13px;margin:0;cursor:pointer}
.chk input{width:auto;accent-color:var(--indigo)}
.save{position:sticky;bottom:0;background:linear-gradient(to top,var(--ground) 72%,transparent);
  padding:14px 0 16px;margin-top:16px}
.save button{width:100%;font-family:inherit;font-size:15.5px;font-weight:700;padding:15px;
  border:0;border-radius:12px;background:var(--indigo);color:#fff;cursor:pointer}
.note{background:var(--indigo-soft);border-radius:10px;padding:12px 14px;font-size:13px;
  color:var(--ink-2);line-height:1.8}
.ok{background:var(--good-soft);color:var(--good);border-radius:10px;padding:12px 14px;
  font-size:13.5px;margin-bottom:12px}
.err{background:var(--alert-soft);color:var(--alert);border-radius:10px;padding:12px 14px;
  font-size:13.5px;margin-bottom:12px}
.nav{position:fixed;left:0;right:0;bottom:0;background:var(--surface);
  border-top:1px solid var(--line);display:flex;
  padding-bottom:env(safe-area-inset-bottom);z-index:10}
.nav a{flex:1;text-align:center;padding:11px 4px 12px;font-size:11px;color:var(--ink-3);
  text-decoration:none;line-height:1.5}
.nav a b{display:block;font-size:17px;font-weight:400}
.nav a.on{color:var(--indigo);font-weight:500}
table{width:100%;border-collapse:collapse;font-size:13px}
th,td{padding:8px 6px;text-align:left;border-bottom:1px solid var(--line-soft);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
thead th{font-size:11.5px;color:var(--ink-3);font-weight:500}
.scroll{overflow-x:auto}
