:root{--bg:#f4f6f8;--panel:#fff;--line:#dfe4ea;--ink:#1d2530;--sub:#6b7686;--accent:#1a6ec4;--accent-w:#e8f1fb;--ok:#137a4b;--ok-w:#e6f5ee;--warn:#b4690e;--warn-w:#fdf3e3;--dan:#b3261e;--dan-w:#fdecea}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.7 "Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,system-ui,sans-serif}
header{background:#243447;color:#fff;padding:10px 16px;display:flex;gap:14px;align-items:center;flex-wrap:wrap}
header h1{font-size:15px;margin:0}
header .who{margin-left:auto;font-size:12px;display:flex;gap:10px;align-items:center}
header a{color:#cfe0f5}
nav{background:#fff;border-bottom:1px solid var(--line);padding:0 12px;display:flex;gap:2px;overflow-x:auto}
nav a{text-decoration:none;border-bottom:3px solid transparent;padding:11px 14px;color:var(--sub);white-space:nowrap}
nav a.on{color:var(--accent);border-bottom-color:var(--accent);font-weight:700}
main{padding:14px;max-width:1180px;margin:0 auto}
.card{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:14px;margin-bottom:14px}
.card h2{font-size:14px;margin:0 0 10px;padding-bottom:8px;border-bottom:1px solid var(--line)}
.bar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:10px}
input,select,textarea{font:inherit;border:1px solid #c8d0da;border-radius:5px;padding:5px 7px;background:#fff;color:var(--ink);max-width:100%}
textarea{width:100%;line-height:1.6}
button,.btn{font:inherit;border:1px solid #c8d0da;background:#fff;color:var(--ink);border-radius:5px;padding:6px 13px;cursor:pointer;text-decoration:none;display:inline-block}
button.b,.btn.b{border-color:var(--accent);background:var(--accent);color:#fff}
button.sm,.btn.sm{padding:2px 8px;font-size:12px}
button:hover{filter:brightness(.97)}
table{width:100%;border-collapse:collapse;font-size:13px}
th,td{border-bottom:1px solid var(--line);padding:7px 8px;text-align:left;vertical-align:top}
th{background:#f7f9fb;font-weight:700;font-size:12px;color:var(--sub);white-space:nowrap}
td.n,th.n{text-align:right;white-space:nowrap}
.pill{display:inline-block;font-size:11px;padding:1px 8px;border-radius:10px;white-space:nowrap}
.p-下書き{background:#eef1f4;color:#4b5563}.p-確定{background:var(--accent-w);color:var(--accent)}.p-送付済{background:var(--warn-w);color:var(--warn)}
.p-入金済{background:var(--ok-w);color:var(--ok)}.p-保留{background:var(--dan-w);color:var(--dan)}.p-freee{background:#ede7f6;color:#5b3fa8}
.p-ok{background:var(--ok-w);color:var(--ok)}.p-warn{background:var(--warn-w);color:var(--warn)}.p-ng{background:var(--dan-w);color:var(--dan)}.p-fix{background:var(--accent-w);color:var(--accent)}
.muted{color:var(--sub)}.small{font-size:12px}.kv{font-size:12px;color:var(--sub)}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px}
.f label{display:block;font-size:12px;color:var(--sub);margin-bottom:3px}.f input,.f select{width:100%}
.note{background:var(--accent-w);border-left:3px solid var(--accent);padding:9px 12px;border-radius:0 5px 5px 0;font-size:13px;margin:10px 0}
.note.w{background:var(--warn-w);border-color:var(--warn)}.note.d{background:var(--dan-w);border-color:var(--dan)}.note.o{background:var(--ok-w);border-color:var(--ok)}
.lines td{padding:4px 5px}.lines textarea{min-height:30px;font-size:13px;padding:4px 6px;resize:vertical}.lines input{width:100%;font-size:13px;padding:4px 6px}
.lines tr.head textarea{background:#fbfbf6;font-weight:600}
.totals{margin-left:auto;width:min(320px,100%);font-size:14px}.totals div{display:flex;justify-content:space-between;padding:4px 0}
.totals .tot{border-top:2px solid var(--ink);font-weight:700;font-size:17px;padding-top:7px;margin-top:4px}
.wrap{overflow-x:auto}
.tabs{display:flex;gap:6px;margin-bottom:10px;flex-wrap:wrap}.tabs a{border:1px solid var(--line);background:#fff;padding:5px 14px;border-radius:16px;font-size:13px;text-decoration:none;color:var(--ink)}.tabs a.on{background:var(--accent);color:#fff;border-color:var(--accent)}
.login{max-width:380px;margin:60px auto;background:#fff;border:1px solid var(--line);border-radius:8px;padding:26px}
.login h1{font-size:18px;margin:0 0 16px}
code{background:#eef1f4;padding:1px 5px;border-radius:3px;font-size:12px}
.prog{background:#eef1f4;border-radius:6px;height:9px;overflow:hidden;margin-bottom:12px}.prog div{height:100%;background:var(--ok)}
tr.dim{opacity:.55}
@media(max-width:640px){main{padding:8px}.card{padding:10px}}
tr.on td{background:var(--accent-w)}
