html, body {
  margin: 0;
  padding: 0;
  background: #bfc5cf;
  color: #121212;
  font-family: Tahoma, "Segoe UI", Arial, sans-serif;
  font-size: 12px;
}

a {
  color: #003c88;
  text-decoration: none;
}

a:hover {
  text-decoration: underline;
}

.page {
  width: 1380px;
  margin: 16px auto 28px;
}

.note {
  margin: 8px 0 14px;
  color: #24303f;
}

.window {
  background: #f2f2f2;
  border: 1px solid #4f5864;
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.18);
}

.osbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 6px 10px;
  background: linear-gradient(180deg, #f0e9dc, #dbceb4);
  border-bottom: 1px solid #8f8370;
  font-size: 11px;
}

.appmenu {
  display: flex;
  gap: 14px;
  padding: 3px 8px;
  background: #f6f6f6;
  border-bottom: 1px solid #b4b4b4;
  font-size: 11px;
}

.banner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 8px 12px;
  color: #fff;
  background: linear-gradient(180deg, #284fb4 0%, #005dc1 58%, #0d3d87 100%);
  border-bottom: 1px solid #052e69;
}

.brand {
  font-size: 20px;
  font-weight: 700;
  font-style: italic;
  letter-spacing: 0.02em;
}

.brand small {
  font-size: 12px;
  font-style: normal;
  margin-left: 8px;
}

.banner-right {
  text-align: right;
  font-size: 11px;
  line-height: 1.35;
}

.tabrow {
  display: flex;
  flex-wrap: wrap;
  gap: 2px;
  padding: 4px 6px 0;
  background: #ececec;
  border-bottom: 1px solid #b3b3b3;
}

.tab {
  padding: 4px 8px;
  border: 1px solid #b4b4b4;
  border-bottom: none;
  background: linear-gradient(180deg, #f7f7f7, #d8d8d8);
  color: #222;
}

.tab.active {
  background: #ffffff;
  color: #0b2c7b;
  font-weight: 700;
}

.subtabrow {
  display: flex;
  gap: 2px;
  padding: 4px 6px;
  background: #fff;
  border-bottom: 1px solid #c8c8c8;
}

.subtab {
  padding: 3px 8px;
  border: 1px solid #c5c5c5;
  background: #f8f8f8;
}

.subtab.active {
  background: #fff7d7;
  border-color: #d2b567;
}

.filters {
  display: grid;
  grid-template-columns: 140px 140px 200px 130px 160px 90px 140px 50px;
  gap: 6px;
  padding: 6px;
  background: #efefef;
  border-bottom: 1px solid #b9b9b9;
}

.fieldbox,
.selectbox,
.btn,
.tinybtn,
.statbox,
.railbtn,
.listitem,
.msgitem,
.card {
  border: 1px solid #9da6b2;
  background: #fff;
}

.fieldbox,
.selectbox {
  padding: 3px 5px;
  min-height: 24px;
}

.fieldbox .label,
.selectbox .label {
  display: block;
  color: #5f6773;
  font-size: 10px;
  margin-bottom: 2px;
}

.fieldbox .value,
.selectbox .value {
  font-weight: 700;
}

.btn,
.tinybtn,
.railbtn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 24px;
  padding: 0 8px;
  background: linear-gradient(180deg, #fefefe, #dbdbdb);
}

.btn.strong {
  color: #8d1f06;
  font-weight: 700;
}

.shell {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 122px;
  gap: 0;
}

.main {
  background: #fff;
}

.right-rail {
  padding: 4px;
  background: #ececec;
  border-left: 1px solid #b6b6b6;
}

.right-rail .railstack {
  display: grid;
  gap: 4px;
}

.railbtn {
  min-height: 26px;
  justify-content: flex-start;
  font-size: 11px;
}

.gridwrap {
  padding: 6px;
}

.grid {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
}

.grid th,
.grid td {
  border: 1px solid #d4d4d4;
  padding: 3px 4px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.grid th {
  background: linear-gradient(180deg, #f8f8f8, #dedede);
  font-weight: 700;
  color: #263342;
}

.grid tbody tr:nth-child(odd) td {
  background: #ffffff;
}

.grid tbody tr:nth-child(even) td {
  background: #f7fbff;
}

.grid tbody tr.green td {
  background: #dbf8ce;
}

.grid tbody tr.yellow td {
  background: #fff4b3;
}

.grid tbody tr.selected td {
  background: #cae6ff;
}

.split-bottom {
  display: grid;
  grid-template-columns: 1.2fr 0.8fr;
  gap: 6px;
  padding: 0 6px 6px;
}

.pane {
  border: 1px solid #b7b7b7;
  background: #fff;
}

.pane-title {
  padding: 4px 6px;
  background: linear-gradient(180deg, #f4f4f4, #d8d8d8);
  border-bottom: 1px solid #bdbdbd;
  font-weight: 700;
}

.statusline {
  display: flex;
  justify-content: space-between;
  padding: 4px 6px;
  background: #f3f3f3;
  border-top: 1px solid #c7c7c7;
  color: #3a4652;
}

.editor-frame {
  padding: 6px;
  background: #fff;
}

.threecol {
  display: grid;
  grid-template-columns: 170px minmax(0, 1fr) 280px;
  gap: 6px;
}

.leftnav,
.props,
.board {
  border: 1px solid #b9b9b9;
  background: #fff;
}

.leftnav .list,
.props .list,
.stack {
  display: grid;
  gap: 4px;
  padding: 6px;
}

.listitem {
  padding: 6px;
  background: linear-gradient(180deg, #ffffff, #efefef);
}

.listitem.active {
  background: linear-gradient(180deg, #fff7d8, #f4d57b);
  border-color: #c5a043;
  font-weight: 700;
}

.formgrid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 6px;
  padding: 6px;
}

.card {
  padding: 6px;
  background: #fff;
}

.card .cardtitle {
  font-weight: 700;
  margin-bottom: 4px;
  color: #1a346e;
}

.detailband {
  margin: 6px;
  border: 1px solid #5dba57;
  background: #d7ffd3;
}

.detailband .head {
  padding: 3px 6px;
  border-bottom: 1px solid #78c16e;
  font-weight: 700;
}

.detailband .body {
  display: grid;
  grid-template-columns: 1.8fr 1fr 1fr;
  gap: 0;
}

.detailcell {
  min-height: 66px;
  padding: 4px;
  border-right: 1px solid #7bc26d;
  border-top: 1px solid #7bc26d;
}

.detailcell:last-child {
  border-right: none;
}

.modal {
  position: relative;
  margin: 18px auto;
  width: 860px;
  border: 2px solid #394a68;
  background: #f5f5f5;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.28);
}

.modal.small {
  width: 620px;
}

.modal .titlebar {
  display: flex;
  justify-content: space-between;
  padding: 6px 8px;
  color: #fff;
  background: linear-gradient(180deg, #234dab, #0059b5, #17397f);
  font-weight: 700;
}

.modal .body {
  padding: 8px;
}

.msglist {
  display: grid;
  gap: 4px;
}

.msgitem {
  padding: 5px 6px;
}

.msgitem.error {
  background: #ffe4e4;
  border-color: #d78f8f;
}

.msgitem.warn {
  background: #fff4cf;
  border-color: #d4bf67;
}

.msgitem.ok {
  background: #e3f6e1;
  border-color: #92c68d;
}

.kpis {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 6px;
  padding: 6px;
}

.kpi {
  border: 1px solid #9ea6b4;
  background: #fff;
  padding: 6px;
}

.kpi .name {
  font-size: 10px;
  color: #566372;
  margin-bottom: 2px;
}

.kpi .val {
  font-size: 18px;
  font-weight: 700;
}

.timeline {
  display: grid;
  gap: 4px;
}

.timeline .step {
  padding: 6px;
  border: 1px solid #a5adb7;
  background: #fff;
}

.process-nav {
  margin: 0 0 10px;
  padding: 8px 10px;
  border: 1px solid #848f9d;
  background: #e9edf3;
  font-size: 12px;
}

.toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  padding: 6px;
  background: #f1f1f1;
  border-bottom: 1px solid #c5c5c5;
}

.twocol {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6px;
  padding: 6px;
}

.twopanels {
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: 6px;
  padding: 0 6px 6px;
}

.checkgrid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 4px 12px;
  padding: 6px;
}

.tree {
  display: grid;
  gap: 2px;
  padding: 6px;
}

.treeitem {
  padding: 4px 6px;
  border: 1px solid #b3b3b3;
  background: linear-gradient(180deg, #ffffff, #efefef);
}

.treeitem.active {
  background: linear-gradient(180deg, #fff7d8, #f4d57b);
  border-color: #c5a043;
  font-weight: 700;
}

.treeitem.child {
  margin-left: 14px;
}

.sectiontitle {
  padding: 4px 6px;
  border-bottom: 1px solid #c3c3c3;
  background: linear-gradient(180deg, #f5f5f5, #dfdfdf);
  font-weight: 700;
  color: #2d3f58;
}

.badge-row {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
}

.badge {
  padding: 2px 6px;
  border: 1px solid #afb8c2;
  background: #f7f7f7;
  color: #324255;
  font-size: 11px;
}

.badge.ok {
  background: #e3f6e1;
  border-color: #92c68d;
}

.badge.warn {
  background: #fff4cf;
  border-color: #d4bf67;
}

.badge.err {
  background: #ffe4e4;
  border-color: #d78f8f;
}

.notebox {
  margin: 6px;
  padding: 6px;
  border: 1px solid #b7b7b7;
  background: #f8fbff;
}

.small {
  font-size: 11px;
}

.muted {
  color: #5a6675;
}

.matrix {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
}

.matrix th,
.matrix td {
  border: 1px solid #d2d2d2;
  padding: 4px;
  text-align: center;
}

.matrix th {
  background: linear-gradient(180deg, #f7f7f7, #dfdfdf);
  color: #253347;
}

.process-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

.process-card {
  border: 1px solid #848f9d;
  background: #f8f9fb;
  padding: 8px;
  min-height: 120px;
}

.process-card .num {
  color: #17397f;
  font-weight: 700;
  margin-bottom: 4px;
}

.process-card h3 {
  margin: 0 0 5px;
  font-size: 14px;
}

.footerhint {
  padding: 6px 8px;
  color: #28405e;
  font-size: 11px;
  border-top: 1px solid #b9b9b9;
  background: #f6f6f6;
}
