*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Arial,Helvetica,sans-serif;background:#f4f6f8;color:#17202a}

header{
  background:linear-gradient(135deg,#0f172a,#1e3a8a);
  color:#fff;
  padding:42px 8%;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:24px
}

header small{
  display:inline-block;
  background:rgba(255,255,255,.14);
  padding:7px 10px;
  border-radius:999px;
  margin-bottom:12px
}

header h1{margin:0;font-size:42px;line-height:1.08}
header p{margin:12px 0 0;color:#dbeafe;max-width:760px;font-size:17px}

header span{
  background:rgba(255,255,255,.14);
  padding:10px 14px;
  border-radius:999px;
  white-space:nowrap
}

nav{
  position:sticky;
  top:0;
  z-index:10;
  background:#fff;
  padding:10px 6%;
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  overflow-x:hidden;
  box-shadow:0 8px 22px rgba(15,23,42,.06)
}

nav a{
  text-decoration:none;
  color:#0f172a;
  background:#eef2ff;
  border:1px solid #dbeafe;
  padding:8px 11px;
  border-radius:999px;
  white-space:nowrap;
  font-weight:700;
  font-size:14px;
  line-height:1.1
}

main{padding:30px 8%}

.section-title{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:20px;
  margin:12px 0 18px
}

.section-title h2{margin:0;font-size:30px}
.section-title p{margin:0;color:#64748b;text-align:right}

.level-tabs{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin:0 0 18px
}

.level-tabs button{
  border:1px solid #c7d2fe;
  background:#fff;
  color:#1e293b;
  padding:12px 16px;
  border-radius:999px;
  font-weight:800;
  cursor:pointer;
  box-shadow:0 8px 22px rgba(15,23,42,.05)
}

.level-tabs button.active{
  color:#fff;
  background:#1d4ed8;
  border-color:#1d4ed8
}

.level-panel{display:none}
.level-panel.active{display:block}

.level-intro{
  display:flex;
  justify-content:space-between;
  gap:20px;
  align-items:flex-start;
  background:#fff;
  border:1px solid #e5e7eb;
  border-radius:18px;
  padding:24px;
  box-shadow:0 12px 30px rgba(15,23,42,.08);
  margin-bottom:18px
}

.level-intro h2{margin:10px 0 8px;font-size:28px}
.level-intro p{margin:0;color:#64748b;max-width:760px}
.level-intro strong{
  min-width:260px;
  background:#eef6ff;
  border:1px solid #bfdbfe;
  color:#334155;
  padding:14px;
  border-radius:14px
}

.badge, article span{
  display:inline-block;
  background:#e0ecff;
  color:#1d4ed8;
  border-radius:999px;
  padding:6px 10px;
  font-size:13px;
  font-weight:800
}

.activity-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(290px,1fr));
  gap:18px
}

article{
  background:#fff;
  border-radius:16px;
  padding:20px;
  box-shadow:0 12px 30px rgba(15,23,42,.07);
  border:1px solid #e5e7eb
}

article h3{font-size:21px;line-height:1.3;margin:14px 0 10px}
article p{color:#64748b}
article ul{margin:14px 0 0;padding-left:20px;color:#475569}
article li{margin:7px 0}

.example{
  border-top:1px solid #e5e7eb;
  border-bottom:1px solid #e5e7eb;
  padding:12px 0;
  margin:14px 0
}

.learning-block{
  background:#f8fafc;
  border:1px solid #e2e8f0;
  border-radius:14px;
  padding:12px;
  margin:14px 0 0
}

.learning-block b{
  display:block;
  margin-bottom:6px;
  color:#0f172a
}

.learning-block p{margin:0}

.example b{display:block;margin-bottom:6px;color:#0f172a}
.example p{margin:0}

article small{
  display:block;
  margin-top:14px;
  color:#64748b;
  background:#eef6ff;
  border:1px solid #bfdbfe;
  border-radius:12px;
  padding:10px
}

.quick-index{margin-top:42px}

.index-table{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
  gap:12px
}

.index-table div{
  background:#fff;
  border:1px solid #e5e7eb;
  border-radius:14px;
  padding:14px;
  box-shadow:0 8px 22px rgba(15,23,42,.05)
}

.index-table b{
  display:block;
  margin-bottom:6px;
  color:#0f172a
}

.index-table span{color:#64748b}

.catalog{margin-top:42px}

.catalog-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(330px,1fr));
  gap:18px
}

.catalog-group{
  background:#fff;
  border:1px solid #e5e7eb;
  border-radius:18px;
  padding:18px;
  box-shadow:0 12px 30px rgba(15,23,42,.07)
}

.catalog-group h3{
  margin:0 0 14px;
  font-size:21px
}

.catalog-list{
  display:grid;
  gap:9px
}

.catalog-list div{
  display:grid;
  grid-template-columns:minmax(150px,.9fr) 1.1fr;
  gap:10px;
  align-items:start;
  background:#f8fafc;
  border:1px solid #e2e8f0;
  border-radius:12px;
  padding:10px
}

.catalog-list b{
  color:#0f172a;
  line-height:1.25
}

.catalog-list span{
  color:#64748b;
  line-height:1.35
}

.visuals{margin-top:42px}

.visual-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:18px
}

.diagram{
  background:#fff;
  border-radius:18px;
  padding:22px;
  box-shadow:0 12px 30px rgba(15,23,42,.08);
  border:1px solid #e5e7eb;
  min-height:310px
}

.diagram h3{margin:0 0 18px;font-size:22px}
.diagram p{color:#64748b}

.diagram.professional{
  position:relative;
  grid-column:1/-1;
  overflow:hidden;
  background:
    linear-gradient(180deg,rgba(255,255,255,.95),rgba(255,255,255,.98)),
    radial-gradient(circle at top right,rgba(29,78,216,.12),transparent 38%);
  min-height:430px
}

.diagram.professional::before{
  content:"";
  position:absolute;
  inset:0;
  background-image:linear-gradient(#eef2ff 1px,transparent 1px),linear-gradient(90deg,#eef2ff 1px,transparent 1px);
  background-size:26px 26px;
  opacity:.35;
  pointer-events:none
}

.diagram.professional > *{position:relative}

.diagram.wide{
  grid-column:1/-1
}

.diagram-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  margin-bottom:18px
}

.diagram-head span{
  background:#e0ecff;
  color:#1d4ed8;
  border-radius:999px;
  padding:7px 10px;
  font-size:12px;
  font-weight:900;
  text-transform:uppercase
}

.diagram-head h3{
  margin:0;
  max-width:420px
}

.process-map{
  display:grid;
  grid-template-columns:1fr 24px 1fr 24px 1fr 24px 1fr;
  align-items:center;
  gap:10px;
  margin:20px 0
}

.process-map i{
  height:3px;
  background:linear-gradient(90deg,#93c5fd,#1d4ed8);
  border-radius:999px
}

.process-node{
  min-height:118px;
  background:#f8fafc;
  border:1px solid #dbeafe;
  border-radius:18px;
  padding:14px;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.7)
}

.process-node small{
  display:inline-grid;
  place-items:center;
  width:34px;
  height:34px;
  border-radius:12px;
  background:#1d4ed8;
  color:#fff;
  font-weight:900;
  margin-bottom:10px
}

.process-node b,.process-node span{
  display:block
}

.process-node b{font-size:18px}
.process-node span{color:#64748b;margin-top:6px}
.process-node.start{border-color:#86efac}
.process-node.finish{border-color:#f8d56b;background:#fffaf0}

.metric-row{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin:18px 0
}

.metric-row span{
  background:#0f172a;
  color:#dbeafe;
  border-radius:999px;
  padding:9px 12px;
  font-size:13px
}

.metric-row b{color:#fff;margin-right:6px}

.layer-map{
  display:grid;
  gap:12px;
  margin:20px 0
}

.layer-map div{
  display:grid;
  grid-template-columns:112px 1fr 1fr;
  gap:12px;
  align-items:center;
  background:#f8fafc;
  border:1px solid #dbeafe;
  border-left:7px solid #1d4ed8;
  border-radius:16px;
  padding:14px
}

.layer-map em{
  font-style:normal;
  color:#1d4ed8;
  font-weight:900;
  font-size:13px;
  text-transform:uppercase
}

.layer-map b{font-size:18px}
.layer-map span{color:#64748b}

.ops-board{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;
  margin:20px 0
}

.ops-column{
  background:#f8fafc;
  border:1px solid #dbeafe;
  border-radius:18px;
  padding:14px
}

.ops-column h4{
  margin:0 0 12px;
  color:#1d4ed8;
  font-size:16px
}

.ops-column span{
  display:block;
  background:#fff;
  border:1px solid #e5e7eb;
  border-radius:12px;
  padding:10px;
  margin-top:9px;
  font-weight:800
}

.flowline{
  display:grid;
  grid-template-columns:1fr auto 1fr;
  gap:10px;
  align-items:center
}

.flowline span{
  display:grid;
  place-items:center;
  min-height:54px;
  background:#eef2ff;
  border:1px solid #c7d2fe;
  border-radius:14px;
  font-weight:800;
  text-align:center
}

.flowline i{
  width:28px;
  height:2px;
  background:#1d4ed8
}

.stack{
  display:flex;
  flex-direction:column-reverse;
  gap:9px
}

.stack span{
  background:#f8fafc;
  border:1px solid #dbeafe;
  border-left:6px solid #1d4ed8;
  border-radius:12px;
  padding:12px;
  font-weight:800
}

.architecture{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:10px
}

.architecture span{
  min-height:64px;
  display:grid;
  place-items:center;
  border-radius:14px;
  background:linear-gradient(180deg,#fff,#fffaf0);
  border:1px solid #f8d56b;
  font-weight:800;
  text-align:center
}

.sources{
  margin-top:42px;
  background:#fff;
  border-radius:18px;
  padding:24px;
  border:1px solid #e5e7eb
}

.source-list{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:16px
}

.source-list a{
  background:#f1f5f9;
  color:#0f172a;
  text-decoration:none;
  padding:9px 12px;
  border-radius:999px;
  border:1px solid #e2e8f0
}

footer{
  text-align:center;
  padding:26px;
  color:#64748b
}

@media(max-width:780px){
  header{display:block;padding:30px 6%}
  header h1{font-size:30px}
  header span{display:inline-block;margin-top:16px}
  main{padding:24px 6%}
  nav{padding:9px 5%;gap:6px}
  nav a{font-size:12px;padding:7px 9px}
  .section-title{display:block}
  .section-title p{text-align:left;margin-top:6px}
  .level-intro{display:block}
  .level-intro strong{display:block;min-width:0;margin-top:16px}
  .flowline{grid-template-columns:1fr}
  .flowline i{width:2px;height:20px;margin:auto}
  .architecture{grid-template-columns:repeat(2,1fr)}
  .catalog-list div{grid-template-columns:1fr}
  .diagram.wide{grid-column:auto}
  .diagram-head{display:block}
  .diagram-head span{display:inline-block;margin-bottom:10px}
  .process-map{grid-template-columns:1fr}
  .process-map i{width:3px;height:22px;margin:auto}
  .layer-map div{grid-template-columns:1fr}
  .ops-board{grid-template-columns:1fr}
}
