* { box-sizing: border-box; }
body { font-family: "Hiragino Sans", "Yu Gothic", sans-serif; margin: 0; color: #222; background: #f7f7f7; }
.topbar { background: #2c6e9b; padding: 12px 20px; display: flex; justify-content: space-between; align-items: center; }
.topbar a { color: #fff; text-decoration: none; font-weight: bold; }
.topbar-right { display: flex; gap: 16px; align-items: center; }
.topbar a.logout, .topbar a.reset-pw { font-weight: normal; opacity: .85; }
.login-box { max-width: 360px; margin: 80px auto; background: #fff; padding: 24px; border-radius: 6px; box-shadow: 0 2px 8px rgba(0,0,0,.1); }
.login-box .error { color: #c00; font-size: .9rem; }
.login-box .success { color: #1a7a3c; font-size: .9rem; }
.container { max-width: 1000px; margin: 0 auto; padding: 20px; }
h1 { font-size: 1.4rem; }
.grid { width: 100%; border-collapse: collapse; background: #fff; }
.grid th, .grid td { border: 1px solid #ccc; padding: 6px 8px; text-align: left; }
.grid th { background: #eef3f7; }
.btn, button { display: inline-block; background: #2c6e9b; color: #fff; border: 0; padding: 6px 12px; border-radius: 4px; cursor: pointer; text-decoration: none; }
.btn-cancel { margin-left: 8px; color: #555; }
.field { margin: 8px 0; }
.field label { display: block; font-weight: bold; font-size: .85rem; margin-bottom: 2px; }
.field input[type=text], .field input[type=password], .field textarea, .field select { width: 100%; padding: 6px; border: 1px solid #bbb; border-radius: 4px; }
.field .choice { display: inline-block; margin-right: 12px; font-weight: normal; }
.form-group { border-bottom: 2px solid #2c6e9b; padding-bottom: 4px; margin-top: 20px; }
.tabs { margin: 16px 0 0; border-bottom: 2px solid #2c6e9b; }
.tab { background: #dde; color: #333; border-radius: 4px 4px 0 0; margin-right: 4px; }
.tab.active { background: #2c6e9b; color: #fff; }
.tab-panel { display: none; padding: 16px 0; }
.tab-panel.active { display: block; }
.panel-actions { margin-bottom: 8px; }
.search { margin: 12px 0; display: flex; gap: 8px; align-items: center; }
.table-field .grid input { border: 0; }
