body { margin: 0; background: #eef0f3; font: 13px/1.45 "Helvetica Neue", Helvetica, Arial, sans-serif; color: #333; }
.wrap { width: 960px; margin: 0 auto; }
#header { background: var(--brand, #2f4f7f); color: #fff; padding: 10px 0; border-bottom: 3px solid rgba(0,0,0,.25); }
#header .brand { font-size: 18px; font-weight: bold; }
#header .user { float: right; font-size: 12px; }
#header .user a { color: #fff; }
#header .user .btn { color: #333; margin-left: 8px; }
#menu { background: #fafafa; border-bottom: 1px solid #ccc; }
#menu a { display: inline-block; padding: 8px 14px; color: #333; text-decoration: none; border-right: 1px solid #ddd; }
#menu a:hover, #menu a.active { background: #e6e9ee; }
#content { background: #fff; border: 1px solid #d5d8dc; margin-top: 14px; padding: 16px 20px; min-height: 380px; }
#footer { color: #888; font-size: 11px; padding: 10px 0; }
h2 { margin: 0 0 12px; font-size: 18px; color: #222; }
h3 { margin: 18px 0 8px; font-size: 14px; color: #444; border-bottom: 1px solid #e5e5e5; padding-bottom: 4px; }
.panel { border: 1px solid #d5d8dc; padding: 14px 18px; background: #fcfcfc; }
.panel.narrow { width: 320px; margin: 40px auto; }
input[type=text], input[type=password], input[type=date], select, textarea { font: inherit; padding: 4px 6px; border: 1px solid #aaa; border-radius: 3px; }
textarea { width: 100%; box-sizing: border-box; }
.btn { font: inherit; padding: 4px 12px; border: 1px solid #999; border-radius: 3px; background: linear-gradient(#fff, #e4e4e4); cursor: pointer; color: #333; text-decoration: none; display: inline-block; }
.btn.primary { background: linear-gradient(#5b8bd0, #2f5ea8); color: #fff; border-color: #2a5294; }
table.data { border-collapse: collapse; width: 100%; margin: 8px 0; }
table.data th { background: #e9ecf0; text-align: left; padding: 6px 8px; border: 1px solid #d0d4d9; }
table.data td { padding: 5px 8px; border: 1px solid #e1e4e8; vertical-align: top; }
table.data tr:nth-child(even) td { background: #f8f9fa; }
table.form td { padding: 4px 8px 4px 0; }
.flash { padding: 8px 12px; margin-bottom: 12px; border: 1px solid; border-radius: 3px; }
.flash.info { background: #eef5fc; border-color: #b6d4f2; }
.flash.success { background: #edf7ed; border-color: #b5dbb5; }
.flash.error { background: #fbeeee; border-color: #e3b5b5; color: #8a1f1f; }
.pager { margin: 10px 0; }
.pager a, .pager strong { display: inline-block; padding: 2px 7px; border: 1px solid #ccc; margin-right: 2px; text-decoration: none; }
.pager strong { background: #e6e9ee; }
.label { display: inline-block; padding: 1px 6px; border-radius: 3px; background: #ddd; font-size: 11px; }
.label.missing { background: #f6d6d6; color: #8a1f1f; }
.label.ok { background: #d8efd8; color: #22662a; }
.filters td { padding-right: 10px; }
.gallery { display: flex; flex-wrap: wrap; gap: 10px; }
.gallery a { display: block; border: 1px solid #ccc; padding: 4px; background: #111; color: #ddd; text-align: center; font-size: 11px; text-decoration: none; }
.gallery img { display: block; height: 120px; }
