:root { font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif; }
body { margin: 0; background: #fafafa; color: #111; }
a { color: inherit; }
.container { max-width: 1100px; margin: 0 auto; padding: 16px; }
.topbar { background: #fff; border-bottom: 1px solid #eee; }
.topbar .container { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.brand a { text-decoration: none; font-weight: 700; }
.nav { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.sep { display: inline-block; width: 8px; }
.muted { color: #666; font-size: 14px; }

.card { background: #fff; border: 1px solid #eee; border-radius: 10px; padding: 16px; max-width: 620px; }
label { display:block; margin-top: 12px; margin-bottom: 6px; font-weight: 600; }
input, select { width: 100%; padding: 10px; border: 1px solid #ddd; border-radius: 8px; background: #fff; }
.checkbox { display:flex; align-items:center; gap:10px; margin-top: 14px; font-weight: 600; }
.checkbox input { width: auto; }

.btn { display:inline-block; padding: 10px 12px; border-radius: 10px; background: #111; color: #fff; text-decoration:none; border: none; cursor: pointer; }
.btn:hover { opacity: 0.92; }

.flash { margin: 12px 0; padding: 10px 12px; border-radius: 10px; border: 1px solid #eee; background: #fff; }
.flash.success { border-color: #c9f2d2; }
.flash.error { border-color: #ffd0d0; }

.table { background: #fff; border: 1px solid #eee; border-radius: 10px; overflow: hidden; }
.row { display:grid; grid-template-columns: 220px 1fr 80px 70px 80px 140px 160px; gap: 12px; padding: 12px; border-top: 1px solid #f1f1f1; align-items: center; }
.row.head { font-weight: 700; background:#fcfcfc; border-top: none; }
.ellipsis { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
