:root{
  --bg:#f5f7fb;
  --card:#ffffff;
  --text:#1f2937;
  --muted:#6b7280;
  --line:#d6dbe3;
  --primary:#2563eb;
  --danger:#b91c1c;
}
*{box-sizing:border-box}
body{
  margin:0;
  font-family:Arial, Helvetica, sans-serif;
  background:var(--bg);
  color:var(--text);
}
a{color:var(--primary);text-decoration:none}
a:hover{text-decoration:underline}
.container{max-width:1400px;margin:0 auto;padding:20px}
.topbar{
  background:#111827;
  color:#fff;
}
.topbar a{color:#fff}
.brand{font-size:22px;font-weight:700}
.row{display:flex}
.wrap{flex-wrap:wrap}
.space-between{justify-content:space-between}
.center{align-items:center}
.gap{gap:12px}
.stack{display:flex;flex-direction:column;gap:12px}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:20px}
.grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}
.card{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:16px;
  padding:20px;
  margin-top:20px;
  box-shadow:0 8px 24px rgba(0,0,0,.04);
}
.narrow{max-width:420px;margin:40px auto}
.side{width:360px}
.wide{width:440px}
.flex-1{flex:1}
label{display:flex;flex-direction:column;gap:6px;font-size:14px}
input,select,textarea,button{
  font:inherit;
}
input,select,textarea{
  width:100%;
  padding:10px 12px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#fff;
}
textarea{resize:vertical}
.btn{
  display:inline-block;
  background:var(--primary);
  color:#fff;
  border:none;
  border-radius:10px;
  padding:10px 14px;
  cursor:pointer;
}
.btn-light{
  background:#eef2ff;
  color:#1e3a8a;
}
.alert{
  background:#fee2e2;
  color:var(--danger);
  border:1px solid #fecaca;
  border-radius:10px;
  padding:10px 12px;
  margin-bottom:12px;
}
table{
  width:100%;
  border-collapse:collapse;
  font-size:14px;
}
th,td{
  border-bottom:1px solid var(--line);
  padding:10px 8px;
  text-align:left;
  vertical-align:top;
}
th{
  background:#f8fafc;
}
.compact th,.compact td{padding:8px 6px}
.inline{flex-direction:row;align-items:center;gap:8px}
.inline-form{display:flex;gap:8px;align-items:center}
.muted{color:var(--muted)}
.small{font-size:12px}
hr{border:none;border-top:1px solid var(--line);margin:18px 0}
pre{
  background:#0f172a;
  color:#e2e8f0;
  padding:12px;
  border-radius:12px;
  overflow:auto;
  max-height:400px;
  white-space:pre-wrap;
}
.log-block{
  border-top:1px solid var(--line);
  padding-top:16px;
  margin-top:16px;
}
@media (max-width: 980px){
  .grid-2,.grid-3{grid-template-columns:1fr}
  .side,.wide{width:100%}
}

.owner-group-header{margin-top:18px;margin-bottom:8px;padding:10px 12px;background:#f8fafc;border:1px solid var(--line);border-radius:12px;}
.grouped-table{margin-bottom:18px;}
