:root{--hd:#2f5f9e;--sel:#d6e4f5;--bd:#8a8a8a}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;padding:8px 12px 0;display:flex;flex-direction:column;height:100dvh;background:#f7f7f7;color:#222;font:14px/1.45 -apple-system,BlinkMacSystemFont,"Noto Sans JP","Yu Gothic","Hiragino Kaku Gothic ProN",Meiryo,sans-serif}
#top{flex:none}
.btn{display:inline-block;padding:3px 14px;margin:0 6px 0 0;border:1px solid var(--bd);background:#fff;color:#222;text-decoration:none;cursor:pointer}
.btn:hover{background:#eef3fa}.btn.cur{background:var(--sel);border-color:var(--hd);font-weight:bold}
nav{margin-bottom:6px}.tg{margin-left:12px!important}
body[data-page=noho] td:first-child{white-space:nowrap}
input,select{font:inherit;border:1px solid var(--bd);background:#fff;padding:2px 6px}
input:focus,select:focus{outline:2px solid var(--hd);outline-offset:0}
details{margin:4px 0}summary{cursor:pointer}
#filters{max-height:34vh;overflow:auto}
.f{display:flex;align-items:baseline;margin:3px 0}
.f>b{flex:none;min-width:5.5em}.cs{flex:1}
.f label{display:inline-block;border:1px solid var(--bd);background:#fff;padding:0 6px;margin:0 3px 3px 0;cursor:pointer}
.f label:has(input:checked){background:var(--sel);border-color:var(--hd)}
.f input[type=checkbox]{margin:0 3px 0 0}
.cnt{margin:2px 0;color:#555}
.wrap{flex:1;min-height:0;overflow:auto;padding-bottom:8px}
table{table-layout:fixed;border-collapse:separate;border-spacing:0;background:#fff;border:2px solid #000}
th,td{border-right:1px solid var(--bd);border-bottom:1px solid var(--bd);padding:3px 6px;text-align:left;vertical-align:top;overflow-wrap:anywhere}
th{background:var(--hd);color:#fff;cursor:pointer;user-select:none}
th.sorted{background:#1f4678}
thead{position:sticky;top:0;z-index:3}
tr.base td{background:var(--sel);font-weight:bold}
td.n,th.n{text-align:right}
tbody tr:hover{background:#f3f6fa}
.rb{font-size:11px;color:#555;display:block}
/* 管理画面 */
.ttl{font-size:14px;margin:4px 0}
.btn.pri{background:var(--hd);color:#fff;border-color:#1f4678}
.btn.del{color:#8a1f1f;border-color:#8a1f1f;font-weight:bold}
.err{color:#8a1f1f;margin:6px 0;min-height:1.4em}.ok{color:#1f4678}
table.auto{table-layout:auto}
table.auto td{max-width:18em}
td.act{white-space:nowrap}
.fl{display:block;margin:5px 0}.fl>span{display:inline-block;min-width:7em}
.fl input[type=text],.fl input:not([type]),input.w{width:26em;max-width:90%}
input.s{width:5.5em}
dialog{border:2px solid #000;padding:12px 16px;max-width:min(46em,96vw);max-height:92vh;overflow:auto;background:#fff}
dialog::backdrop{background:rgba(0,0,0,.35)}
.box{background:#fff;border:1px solid var(--bd);padding:8px 12px;margin:8px 0;max-width:36em}
.sm{color:#555;font-size:12px}
/* TOP画面 */
body.doc{display:block;height:auto;max-width:50em;margin:0 auto;padding:16px 14px 32px;line-height:1.7}
body.doc h1{font-size:20px;margin:0 0 10px}
body.doc h2{font-size:16px;margin:22px 0 6px;padding-bottom:2px;border-bottom:1px solid var(--bd)}
body.doc h3{font-size:14px;margin:14px 0 2px}
body.doc p{margin:4px 0}
body.doc footer{margin-top:32px;border-top:2px solid #000;padding-top:8px;font-size:13px}
body.doc a:not(.btn){color:var(--hd)}
/* ページ上部のサイト内リンク(TOP / 管理者画面) */
.site{display:flex;justify-content:space-between;font-size:12px;margin-bottom:4px}
.site a{color:var(--hd)}
