:root { --card-bg:#fff; --border:#d8dee6; --muted:#667085; --accent:#2563eb; --bg:#f2f5f9; }
* { box-sizing: border-box; }
body { margin:0; font-family:"Hiragino Sans","Noto Sans JP",Meiryo,sans-serif; background:var(--bg); color:#101828; }
.login-body { display:flex; align-items:center; justify-content:center; min-height:100vh; }
.login-box { background:var(--card-bg); border:1px solid var(--border); border-radius:12px; padding:32px; width:360px; max-width:92vw; }
.login-box h1 { text-align:center; }
.login-box .muted { text-align:center; margin-bottom:20px; }
.login-box .btn { width:100%; margin-top:8px; }
.login-box input { width:100%; padding:9px 10px; margin:4px 0 14px; border:1px solid var(--border); border-radius:8px; font-size:1rem; }
.muted { color:var(--muted); font-size:.86rem; }
.alert { padding:10px 12px; border-radius:8px; margin-bottom:12px; font-size:.9rem; }
.alert-error { background:#fee4e2; color:#b42318; }
.alert-ok { background:#d1fadf; color:#027a48; }
.btn { padding:9px 14px; border:1px solid var(--border); border-radius:8px; background:#fff; cursor:pointer; font-size:.95rem; }
.btn-primary { background:var(--accent); border-color:var(--accent); color:#fff; }
.btn-sm { padding:5px 10px; font-size:.85rem; }
.btn:disabled { opacity:.5; cursor:not-allowed; }
.topbar { display:flex; align-items:center; gap:12px; padding:12px 18px; background:var(--card-bg); border-bottom:1px solid var(--border); }
.topbar .spacer { flex:1; }
.content { padding:18px; max-width:1100px; margin:0 auto; }
.navgrid { list-style:none; padding:0; display:grid; grid-template-columns:repeat(auto-fill,minmax(180px,1fr)); gap:10px; }
.navgrid a { display:block; background:var(--card-bg); border:1px solid var(--border); border-radius:10px; padding:14px; text-decoration:none; color:inherit; }
.table { border-collapse:collapse; width:100%; background:var(--card-bg); }
.table th,.table td { border:1px solid var(--border); padding:8px 10px; font-size:.9rem; text-align:left; }
.tablewrap { overflow-x:auto; }
.badge { font-size:.72rem; background:#eef2f7; border:1px solid var(--border); border-radius:999px; padding:2px 10px; color:var(--muted); }
@media (max-width:760px){ .content{padding:12px;} .table th,.table td{font-size:.82rem;} }
