:root{
  --fg:#1a1a1a; --muted:#6b7280; --line:#e6e6e6; --line-soft:#f0f0f0;
  --bg:#fafafa; --card:#fff; --accent:#cc0000; --green:#0a8a3a; --red:#c62828;
}
*,*::before,*::after{box-sizing:border-box;}
body{
  margin:0; font:14px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,system-ui,sans-serif;
  color:var(--fg); background:var(--bg);
}
a{color:#1565c0; text-decoration:none;}
a:hover{text-decoration:underline;}

.topbar{
  display:flex; align-items:center; justify-content:space-between;
  padding:12px 24px; background:#1a1a1a; color:#fff;
  border-bottom:3px solid var(--accent);
}
.topbar a{color:#fff;}
.brand a{font-weight:700; font-size:16px; margin-right:12px;}
.brand .tag{color:#aaa; font-size:12px;}
.topbar nav a{margin-left:18px; font-size:13px; color:#ccc;}
.topbar nav a:hover{color:#fff;}

main{max-width:1320px; margin:24px auto; padding:0 24px;}

.card{
  background:var(--card); border:1px solid var(--line); border-radius:6px;
  margin-bottom:18px; overflow:hidden;
}
.card-head{
  display:flex; align-items:center; justify-content:space-between;
  padding:12px 18px; background:#fafafa; border-bottom:1px solid var(--line);
}
.card-head h2{margin:0; font-size:16px;}
.card-head h3{margin:0; font-size:14px;}
.card-head small{color:var(--muted); font-size:12px;}

.badge{
  display:inline-block; font:600 10px/1 sans-serif;
  padding:3px 7px; border-radius:3px; letter-spacing:0.05em; text-transform:uppercase;
}
.badge.open{background:#e8f5e9; color:#0a8a3a;}
.badge.closed{background:#f4f4f4; color:#888;}

table.data{width:100%; border-collapse:collapse; font-size:13px;}
table.data th{
  background:#fafafa; font:600 11px/1.5 sans-serif; letter-spacing:0.05em;
  text-transform:uppercase; color:#666;
  padding:10px 14px; text-align:left; border-bottom:1px solid var(--line);
}
table.data td{
  padding:9px 14px; border-bottom:1px solid var(--line-soft); color:var(--fg);
}
table.data tbody tr:last-child td{border-bottom:none;}
table.data tbody tr:hover td{background:#fafafa;}
table.data .num,table.data th.num{text-align:right; font-variant-numeric:tabular-nums;}
table.data.small{font-size:12px;}

table.data .tk a{font-weight:700; color:var(--accent);}
table.data .up{color:var(--green); font-weight:600;}
table.data .down{color:var(--red); font-weight:600;}
table.data .small{font-size:11px; color:var(--muted);}
table.data .mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;}
.src{
  display:inline-block; margin-left:6px; padding:1px 5px;
  background:#eef4ff; color:#1565c0; border-radius:2px;
  font:600 9px sans-serif; letter-spacing:0.04em; text-transform:uppercase;
}

.kv-grid{
  display:grid; grid-template-columns:repeat(auto-fit, minmax(200px,1fr));
  gap:14px 22px; padding:18px;
}
.kv-grid label{display:block; font:600 10px sans-serif; letter-spacing:0.05em; text-transform:uppercase; color:#888;}
.kv-grid b{font-size:14px; font-weight:600;}
.kv-grid .lock{font-size:11px; color:#9a6b00;}

.actions{display:flex; gap:10px; padding:14px 18px; flex-wrap:wrap;}
.actions form{margin:0;}
button, .btn{
  background:#fff; border:1px solid var(--line); border-radius:4px;
  padding:7px 14px; font:600 12px sans-serif; cursor:pointer; color:var(--fg);
}
button:hover, .btn:hover{background:#fafafa; border-color:#bbb;}
button[type=submit]{background:var(--accent); color:#fff; border-color:var(--accent);}
button[type=submit]:hover{background:#a30000;}
button.link{background:transparent; border:none; color:var(--accent); cursor:pointer; padding:0; font-weight:600;}
button.link:hover{text-decoration:underline; background:transparent;}

form.form{padding:18px;}
form.form label{display:block; margin-bottom:14px;}
form.form input, form.form select{
  display:block; padding:8px 10px; font-size:13px;
  border:1px solid var(--line); border-radius:4px; width:280px; margin-top:4px;
}

form.form-inline{padding:14px 18px; display:flex; gap:10px; align-items:end; flex-wrap:wrap;}
form.form-inline label{font-size:11px; color:#666; font-weight:600; text-transform:uppercase; letter-spacing:0.05em;}
form.form-inline input{display:block; padding:7px 10px; border:1px solid var(--line); border-radius:4px; margin-top:4px; font-size:13px;}
form.form-inline button{margin-top:4px;}

.fund-form .row{display:flex; gap:18px; align-items:end; padding:6px 0; border-bottom:1px solid var(--line-soft);}
.fund-form .row:last-of-type{border-bottom:none;}
.fund-form .col{flex:0 0 320px;}
.fund-form .col-tight{flex:0 0 200px; font-size:12px;}
.fund-form .col span,.fund-form .col-tight span{display:block; font:600 10px sans-serif; letter-spacing:0.05em; text-transform:uppercase; color:#888;}
.fund-form input[type=text],.fund-form .col input{width:100%; padding:8px 10px; font-size:13px; border:1px solid var(--line); border-radius:4px; margin-top:4px;}

.empty{padding:18px; color:var(--muted);}
.muted{color:var(--muted); padding:0 18px; font-size:12px;}
.err{padding:8px 16px; background:#ffe8e8; color:var(--red); border:1px solid var(--red); border-radius:4px; margin:0 18px 12px;}
.ok{padding:8px 16px; background:#e8f5e9; color:var(--green); border:1px solid var(--green); border-radius:4px; margin:0 18px 12px;}

.login{max-width:380px; margin:80px auto;}
.login h2{padding:0 18px; margin:18px 0 0;}

.footer{max-width:1320px; margin:24px auto; padding:0 24px; color:var(--muted); font-size:11px;}
